@zenify-omni/chat-js 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/api/campaign.js +19 -0
  4. package/api/chat.js +518 -0
  5. package/api/chatroom.js +254 -0
  6. package/api/contact.js +45 -0
  7. package/api/crm-organization.js +101 -0
  8. package/api/customer.js +143 -0
  9. package/api/facebook-labels.js +11 -0
  10. package/api/field.js +11 -0
  11. package/api/file.js +17 -0
  12. package/api/filter.js +50 -0
  13. package/api/group.js +11 -0
  14. package/api/iam.js +23 -0
  15. package/api/index.js +54 -0
  16. package/api/orgTree.js +45 -0
  17. package/api/post.js +111 -0
  18. package/api/queue.js +15 -0
  19. package/api/report.js +422 -0
  20. package/api/send.js +21 -0
  21. package/api/session-event.js +30 -0
  22. package/api/session.js +249 -0
  23. package/api/settings/assign-task.js +10 -0
  24. package/api/settings/channel.js +136 -0
  25. package/api/settings/chat-layout.js +37 -0
  26. package/api/settings/chat-timeout.js +10 -0
  27. package/api/settings/common.js +32 -0
  28. package/api/settings/config.js +19 -0
  29. package/api/settings/index.js +24 -0
  30. package/api/settings/ivr.js +25 -0
  31. package/api/settings/queue-v3.js +56 -0
  32. package/api/settings/queue.js +48 -0
  33. package/api/settings/routing.js +32 -0
  34. package/api/settings/service.js +31 -0
  35. package/api/settings.js +567 -0
  36. package/api/shipping.js +19 -0
  37. package/api/shopee.js +21 -0
  38. package/api/smart-qc/index.js +4 -0
  39. package/api/smart-qc/keyword.js +10 -0
  40. package/api/tag.js +11 -0
  41. package/api/user.js +177 -0
  42. package/client.js +391 -0
  43. package/config/env.js +76 -0
  44. package/constants/advance-filter.js +358 -0
  45. package/constants/auto-assign-tag.js +13 -0
  46. package/constants/chat-message.js +423 -0
  47. package/constants/chat-room-tag.js +7 -0
  48. package/constants/chat-source.js +68 -0
  49. package/constants/chatbot.js +58 -0
  50. package/constants/common.js +4 -0
  51. package/constants/crm-organization.js +75 -0
  52. package/constants/distribute.js +8 -0
  53. package/constants/distribution-log.js +14 -0
  54. package/constants/events.js +27 -0
  55. package/constants/file-upload.js +86 -0
  56. package/constants/lead.js +111 -0
  57. package/constants/mask-data-config.js +16 -0
  58. package/constants/month.js +78 -0
  59. package/constants/quick-filter.js +49 -0
  60. package/constants/regex.js +34 -0
  61. package/constants/setting.js +62 -0
  62. package/constants/shipping.js +12 -0
  63. package/constants/social.js +21 -0
  64. package/constants/sortable-fields.js +146 -0
  65. package/constants/tenant_config.js +154 -0
  66. package/constants/use-query-key.js +470 -0
  67. package/constants/user.js +293 -0
  68. package/exceptions/axios-error.js +24 -0
  69. package/exceptions/https-error.js +28 -0
  70. package/exceptions/validator-error.js +20 -0
  71. package/lib/avatar-color.js +31 -0
  72. package/lib/i18n/index.js +85 -0
  73. package/lib/i18n/language-store.js +74 -0
  74. package/lib/i18n/locales/en/campaign.json +3 -0
  75. package/lib/i18n/locales/en/chat.json +656 -0
  76. package/lib/i18n/locales/en/common.json +1846 -0
  77. package/lib/i18n/locales/en/customer.json +20 -0
  78. package/lib/i18n/locales/en/lead.json +5 -0
  79. package/lib/i18n/locales/en/lumi.json +4 -0
  80. package/lib/i18n/locales/en/notification.json +107 -0
  81. package/lib/i18n/locales/en/org.json +4 -0
  82. package/lib/i18n/locales/en/posts.json +8 -0
  83. package/lib/i18n/locales/en/settings.json +39 -0
  84. package/lib/i18n/locales/vi/campaign.json +3 -0
  85. package/lib/i18n/locales/vi/chat.json +660 -0
  86. package/lib/i18n/locales/vi/common.json +1846 -0
  87. package/lib/i18n/locales/vi/customer.json +20 -0
  88. package/lib/i18n/locales/vi/lead.json +5 -0
  89. package/lib/i18n/locales/vi/lumi.json +4 -0
  90. package/lib/i18n/locales/vi/notification.json +107 -0
  91. package/lib/i18n/locales/vi/org.json +4 -0
  92. package/lib/i18n/locales/vi/posts.json +8 -0
  93. package/lib/i18n/locales/vi/settings.json +39 -0
  94. package/lib/i18n/server-label.js +33 -0
  95. package/lib/phone.js +70 -0
  96. package/lib/user-avatar.js +21 -0
  97. package/package.json +45 -0
  98. package/socket/index.js +30 -0
  99. package/transport-registry.js +77 -0
  100. package/utils/access-detail.js +119 -0
  101. package/utils/auth.js +205 -0
  102. package/utils/chunk-reload-guard.js +4 -0
  103. package/utils/concurrency-limiter.js +30 -0
  104. package/utils/crm-organization.js +0 -0
  105. package/utils/currency.js +14 -0
  106. package/utils/customers.js +42 -0
  107. package/utils/data.js +178 -0
  108. package/utils/date.js +144 -0
  109. package/utils/debounced-invalidate.js +15 -0
  110. package/utils/emoticon.js +134 -0
  111. package/utils/export.js +7 -0
  112. package/utils/field-layout.js +33 -0
  113. package/utils/filter-adapters.js +9 -0
  114. package/utils/filter.js +18 -0
  115. package/utils/formatters.js +6 -0
  116. package/utils/image-compression.js +169 -0
  117. package/utils/leads.js +13 -0
  118. package/utils/microlink.js +20 -0
  119. package/utils/org-tree.js +108 -0
  120. package/utils/request.js +461 -0
  121. package/utils/session-end.js +19 -0
  122. package/utils/string.js +154 -0
  123. package/utils/table-display-config.js +80 -0
  124. package/utils/validation.js +49 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "toast.transferOwnerSuccess": "Assignee changed successfully",
3
+ "message.selectAgentToTransfer": "Please select an agent to transfer to",
4
+ "toast.transferToAgentSuccess": "Transferred to agent {label} successfully",
5
+ "field.newOwner": "New assignee",
6
+ "action.filterLeadFile": "Filter lead list",
7
+ "action.filterCustomerFile": "Filter customer list",
8
+ "placeholder.note": "Enter note...",
9
+ "field.sourceChannel": "Source channel",
10
+ "placeholder.greetingMessage": "Enter greeting / opening message...",
11
+ "message.invalidZaloPhone": "Invalid Zalo phone number",
12
+ "message.alreadyFriend": "The user is already a friend",
13
+ "message.friendRequestAlreadySent": "The friend request was already sent",
14
+ "message.friendRequestGreeting": "Hi, I'm {name}. Let's connect!",
15
+ "message.zaloUserNotFound": "No Zalo user found with this phone number",
16
+ "message.messageRequired": "Message cannot be empty",
17
+ "column.conversionMethod": "Conversion method",
18
+ "label.customerIdCannotBeEmpty": "Customer ID cannot be empty",
19
+ "label.allocationFailed": "Allocation failed"
20
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "confirm.mergeIntoExisting": "Do you want to merge the information into the existing account?",
3
+ "action.mergeCustomer": "Merge customer",
4
+ "message.phoneBelongsTo": "The phone number <0>{{phone}}</0> already belongs to {{crmLabel}} <1>{{existingName}}</1> in the system."
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "action.sendFeedback": "Send feedback",
3
+ "field.answerInstructions": "Reply guidance"
4
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "_comment": "MIRROR of contact-center-be app/lib/i18n/locales/en/notification.json — keep in sync. Rendered client-side for the real-time notification toast.",
3
+ "distribute.ticketTitle": "Ticket distribution",
4
+ "involvement.ccAdded": "You were added as CC on {count} tickets",
5
+ "distribute.failureContent": "An error occurred while distributing your {target}. Please try again later.",
6
+ "import.successContent": "File {tagName} imported on {beginDate} has been processed. <br />\n - Total {tagName}: {total} <br />\n - Success: {success} <br />\n - Failed: {error} <br />",
7
+ "import.invalidFileContent": "Your {tagName} file is invalid. Please check the sample file again",
8
+ "import.processingErrorContent": "An error occurred while processing your {tagName} file. Please try again later",
9
+ "kpi.newTitle": "New target",
10
+ "kpi.assignedContent": "You have just been assigned the target \"{name}\". Check your target report now.",
11
+ "distribute.title": "Distribute {target}",
12
+ "distribute.target.customer": "customers",
13
+ "distribute.target.lead": "leads",
14
+ "distribute.target.organization": "organizations",
15
+ "distribute.completionContent": "The {target} distribution on {formattedDate} has been processed <br/>\n Total: {total} <br/>\n Succeeded: {updated}<br/>\n Failed: {failed} <br/>",
16
+ "distribute.failureContentAlt": "An error occurred while distributing your {target}. Please try again later.",
17
+ "distribute.assignedContent": "You have just been assigned {count} {target} from {name}<br/>Please check the details and take action.<br/>",
18
+ "knowledge.crawlTitle": "Crawl URL into chatbot knowledge",
19
+ "knowledge.crawlContent": "\n The process of adding URL {urlTitle} on {formattedDate} has been completed. <br />\n - Total: {total} <br />\n - Succeeded: {success} <br />\n - Failed: {failed} <br />",
20
+ "export.customerListTitle": "Customer list",
21
+ "export.leadListTitle": "Lead list",
22
+ "export.customerListSuccessContent": "Successfully exported the customer list at {beginDate}",
23
+ "export.leadListSuccessContent": "Successfully exported the lead list at {beginDate}",
24
+ "export.customerListErrorContent": "An error occurred while exporting your customer list, please try again later!",
25
+ "task.dueSoonTitle": "Task due soon",
26
+ "task.overdueTitle": "Task overdue",
27
+ "task.assignedDueSoonContent": "Your task {taskName} is due at {deadline}. Please check its progress.",
28
+ "task.sharedDueSoonContent": "Task {taskName} you are following is about to be due at {deadline}. Please check its progress.",
29
+ "task.assignedOverdueContent": "Your task {taskName} was overdue at {deadline}.",
30
+ "task.sharedOverdueContent": "Task {taskName} you are following was overdue at {deadline}.",
31
+ "task.sharedTitle": "Task shared with you",
32
+ "task.sharedNewContent": "You have been shared the task {taskName}. Please check its progress.",
33
+ "import.organizationSuccessTitle": "Import organizations",
34
+ "import.organizationSuccessContent": "The organization file imported on {beginDate} has been processed. <br />\n - Total organizations: {total} <br />\n - Success: {success} <br />\n - Failed: {failure} <br />",
35
+ "involvement.ticketNotificationTitle": "Ticket notification",
36
+ "involvement.ccAddedSingle": "You were added as CC on ticket #{code} {subject}",
37
+ "involvement.followerAdded": "You were added as a follower on {count} tickets",
38
+ "involvement.followerAddedSingle": "You were added as a follower on ticket #{code} {subject}",
39
+ "involvement.assigneeAdded": "You were assigned to handle {count} tickets",
40
+ "involvement.assigneeAddedSingle": "You were assigned to handle ticket {subject}",
41
+ "export.ticketListTitle": "Ticket list",
42
+ "export.ticketListSuccessContent": "Successfully exported the ticket list at {beginDate}",
43
+ "export.ticketListErrorContent": "An error occurred while exporting your ticket list, please try again later!",
44
+ "distribute.dealCompletionContent": "The {target} distribution on {formattedDate} is complete.<br/>Total: {total}<br/>Succeeded: {updated}",
45
+ "distribute.dealFailureContent": "Error distributing {target}. Please check again.",
46
+ "distribute.dealAssignedContent": "You received {count} new {target} from {name}",
47
+ "export.smsReportTitle": "Export SMS report",
48
+ "export.smsReportDoneContent": "The SMS report has been processed",
49
+ "ticket.expiringTitle": "Ticket about to expire",
50
+ "ticket.expiringAdminMultiContent": "{count} tickets are about to reach their due date. Please check the detailed list.",
51
+ "ticket.expiringAdminSingleContent": "Ticket #{code} {subject} is about to expire. Please check its progress.",
52
+ "ticket.expiringTeamMultiContent": "{count} tickets in your department are about to reach their due date. Please check the detailed list.",
53
+ "ticket.expiringTeamSingleContent": "Ticket #{code} {subject} in your department is about to expire. Please check its progress.",
54
+ "ticket.expiringAgentMultiContent": "You have {count} tickets about to expire.",
55
+ "ticket.expiringAgentSingleContent": "You have ticket #{code} {subject} about to expire.",
56
+ "chatbot.agentRequestTitle": "Conversation notification",
57
+ "chatbot.agentRequestContent": "The ChatBot conversation with {requesterName} needs support, please take over and handle the conversation now!",
58
+ "export.znsReportTitle": "Export ZNS report",
59
+ "export.znsReportDoneContent": "The ZNS report has been processed",
60
+ "export.znsTemplatesReportTitle": "Export ZNS templates report",
61
+ "export.znsTemplatesReportDoneContent": "The ZNS templates report has been processed",
62
+ "export.znsTemplatesReportErrorContent": "An error occurred while exporting the ZNS templates report. Please try again",
63
+ "import.campaignTitle": "Import customers into campaign",
64
+ "import.campaignErrorContent": "The campaign import on {beginDate} finished, but the result file is not yet available. Please try downloading it again in a few minutes.",
65
+ "import.campaignFileSuccessContent": "The {target} file imported on {beginDate} has been processed. <br />\n - Total {target}: {total} <br />\n - Success: {success} <br />\n - Failed: {error} <br />\n - Already existing: {existing}",
66
+ "import.campaignFilterSuccessContent": "The {target} list from the filter at {beginDate} has been processed. <br />\n - Total {target}: {total} <br />\n - Success: {success} <br />\n - Failed: {error} <br />\n - Already existing: {existing}",
67
+ "export.callHistoryReportTitle": "Call history report",
68
+ "export.callHistoryReportSuccessContent": "The call history report exported on {beginDate} is ready for download",
69
+ "export.callHistoryReportSuccessLimitedContent": "The call history report exported on {beginDate} is ready for download. <br /> Note: Only the most recent {maxRows} records are shown",
70
+ "export.callHistoryReportErrorContent": "An error occurred while exporting the call history report on {beginDate}. Please try again",
71
+ "export.znsCampaignDetailTitle": "ZNS campaign customer details",
72
+ "export.znsCampaignDetailSuccessContent": "Successfully exported the ZNS campaign customer details at {beginDate}",
73
+ "export.campaignContactListTitle": "Campaign contact list",
74
+ "export.campaignContactListSuccessContent": "Successfully exported the campaign contact list at {beginDate}",
75
+ "export.campaignContactListErrorContent": "An error occurred while exporting your campaign contact list, please try again later!",
76
+ "comment.selfMentionTitle": "You mentioned yourself in a comment",
77
+ "comment.selfMentionContent": "You mentioned yourself in a comment on ticket {code}",
78
+ "comment.mentionTitle": "You were mentioned in a comment",
79
+ "comment.mentionContent": "{name} mentioned you in a comment on ticket {code}",
80
+ "import.contactSuccessContent": "The {target} file imported on {beginDate} has been processed. <br />\n - Total {target}: {total} <br />\n - Success: {success} <br />\n - Failed: {error} <br />",
81
+ "import.contactSuccessAssignedContent": "The {target} file imported on {beginDate} has been processed. <br />\n - Total {target}: {total} <br />\n - Success: {success} <br />\n - Failed: {error} <br />- Assigned: {assigned} <br />",
82
+ "export.sttLogSuccessContent": "Successfully exported {sheetName} at {beginDate}",
83
+ "export.sttLogErrorContent": "An error occurred while exporting your {sheetName}, please try again later!",
84
+ "qc.mentionTitle": "QA Comment notification",
85
+ "qc.mentionContent": "{name} mentioned you in the manual QA campaign result of ticket {code}",
86
+ "contact.newContactTitle": "New {label} added notification",
87
+ "contact.newContactContent": "You are in charge of {label} {name}",
88
+ "deal.assignedTitle": "Deal notification",
89
+ "deal.assignedContent": "You have been assigned to handle a deal",
90
+ "import.campaignErrorTitle": "Importing customers into the campaign failed",
91
+ "import.campaignErrorMessageContent": "An error occurred while importing into the campaign: {message}",
92
+ "survey.newTitle": "New survey",
93
+ "survey.newContent": "A new survey has been received from customer {customerName}",
94
+ "account.disconnectedTitle": "Account disconnected",
95
+ "account.disconnectedContentPersonal": "The private Zalo account \"{name}\" has been disconnected.",
96
+ "account.disconnectedContentGeneral": "The shared Zalo account \"{name}\" has been disconnected.",
97
+ "sla.breachTitle": "SLA Breach: {metricLabel}",
98
+ "sla.breachContent": "{entityLabel} has breached the {metricLabel} SLA. Please take action immediately.",
99
+ "sla.warningTitle": "SLA Warning: {metricLabel} Approaching",
100
+ "sla.warningContent": "{entityLabel} will breach the {metricLabel} SLA in {timeLeftMinutes} minutes.",
101
+ "chat.timeoutReminderTitle": "Conversation ending soon",
102
+ "chat.timeoutReminderContent": "The conversation with {name} will end in {minutes} minutes",
103
+ "chat.timeoutEndedTitle": "Conversation ended",
104
+ "chat.timeoutEndedContent": "The conversation with {name} has ended. Review it in the \"Closed\" tab",
105
+ "chat.unhandledTitle": "Conversation",
106
+ "chat.unhandledContent": "The conversation with {name} has had no interaction for {duration}"
107
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "label.thePreviousAssigneeCannotBe": "The previous assignee cannot be empty",
3
+ "label.theNewAssigneeCannotBe": "The new assignee cannot be empty"
4
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "dialog.selectPosts": "Select post",
3
+ "column.postedAt": "Post time",
4
+ "empty.noPosts": "No posts",
5
+ "dialog.totalPostsSuffix": "/ {totalCount} posts",
6
+ "message.selectedPostsCount": "{length} posts selected",
7
+ "label.noContent": "(No content)"
8
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "chatTimeout.allChannels": "All channels",
3
+ "chatTimeout.channelUnit": "channels",
4
+ "channel.zaloPersonal": "Personal Zalo",
5
+ "user.agentList": "Agent list",
6
+ "routing.generalSettings": "General settings",
7
+ "common.saveSettingsSuccess": "Settings saved successfully",
8
+ "routing.settings.selectSeenRuleRequired": "Please select a viewed rule for the conversation",
9
+ "routing.settings.conversationSetup": "Conversation setup",
10
+ "routing.applyToOutbound": "Apply routing rule to outgoing conversations",
11
+ "routing.outboundAutoRoutingHint": "When sending outbound messages, the system automatically invokes the Routing Rule to distribute according to the configuration.",
12
+ "routing.applyToManualAssign": "Apply the routing rule to manual allocation",
13
+ "routing.manualAssignAutoRoutingHint": "When assigning agents manually, the system automatically invokes the Routing Rule to distribute according to the configuration.",
14
+ "routing.assignWhenAgentInactive": "Allocate when the agent is inactive",
15
+ "routing.allowOfflineAssignHint": "Allow the system to keep distributing conversations to an agent even when their current status is Offline.",
16
+ "routing.settings.autoSavePhoneNumber": "Automatically save phone number",
17
+ "routing.autoSavePhoneHint": "When a phone number is detected in a conversation, the system automatically saves it to the contact list.",
18
+ "routing.reassignConversationRule": "Conversation reallocation rules",
19
+ "routing.settings.redistributionRuleHint": "Each group applies to one conversation status and one set of channels, with its own daily redistribution times.",
20
+ "routing.settings.redistributionRuleTitle": "Redistribution rule {index}",
21
+ "routing.settings.addRedistributionRule": "Add redistribution rule",
22
+ "routing.settings.conversationStatus": "Conversation status",
23
+ "routing.settings.openConversation": "Open conversations",
24
+ "routing.settings.missedConversation": "Missed conversations",
25
+ "routing.settings.applyToChannel": "Apply to channel",
26
+ "routing.settings.dailyRedistributeTime": "Daily redistribution times",
27
+ "routing.settings.addMilestone": "Add milestone",
28
+ "routing.viewedRuleForConversation": "Seen rules for conversations",
29
+ "routing.settings.seenByUserView": "Count as read by user view",
30
+ "routing.settings.seenByAssignedAgent": "Count as read for the assigned agent",
31
+ "routing.settings.seenByAnyMember": "Count as read when any member of the conversation views it.",
32
+ "common.numberPlaceholder": "Enter number",
33
+ "smartView.selectCycle": "Select cycle",
34
+ "smartView.toleranceDays": "Tolerance (days)",
35
+ "smartView.plusMinusDays": "± days",
36
+ "smartView.anchorDate": "Milestone date",
37
+ "smartView.emptyMeansTodayHint": "Leave blank = calculated from the current date, auto-updated daily",
38
+ "user.unknownError": "Unknown error"
39
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "field.messageType": "Loại tin nhắn"
3
+ }