@ezychat/web 0.0.0-stage → 0.1.39

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 (186) hide show
  1. package/dist-lib/assets/font-1be3448e292f.woff2 +0 -0
  2. package/dist-lib/assets/font-3100e775e861.woff2 +0 -0
  3. package/dist-lib/assets/font-34b9c504cab7.woff2 +0 -0
  4. package/dist-lib/assets/font-5c66f9e07e90.woff2 +0 -0
  5. package/dist-lib/assets/font-6e9e020a25f9.woff2 +0 -0
  6. package/dist-lib/assets/font-71d5ee93cc1e.woff2 +0 -0
  7. package/dist-lib/assets/font-ca157063339a.woff2 +0 -0
  8. package/dist-lib/chunks/admin-BPgvUcQO.js +602 -0
  9. package/dist-lib/chunks/admin-B_hIZ1Sp.js +603 -0
  10. package/dist-lib/chunks/app-C2A7ZZsu.js +97 -0
  11. package/dist-lib/chunks/app-RX8Fy2Oz.js +97 -0
  12. package/dist-lib/chunks/auth-Cif_yktU.js +127 -0
  13. package/dist-lib/chunks/auth-DJBQd10l.js +127 -0
  14. package/dist-lib/chunks/common-BwLWsyiW.js +80 -0
  15. package/dist-lib/chunks/common-CDytP7HK.js +80 -0
  16. package/dist-lib/chunks/errors-BIyy5VTn.js +39 -0
  17. package/dist-lib/chunks/errors-CEweqDjm.js +39 -0
  18. package/dist-lib/chunks/inbox-IiNeuwOm.js +487 -0
  19. package/dist-lib/chunks/inbox-VvClcCZP.js +487 -0
  20. package/dist-lib/chunks/registerSW-Gn8zt2XY.js +16 -0
  21. package/dist-lib/ezychat-web.css +2 -0
  22. package/dist-lib/index.js +16732 -0
  23. package/dist-lib/public/apple-touch-icon.png +0 -0
  24. package/dist-lib/public/brand/ezychat-logo.png +0 -0
  25. package/dist-lib/public/favicon.ico +0 -0
  26. package/dist-lib/public/icon-192.png +0 -0
  27. package/dist-lib/public/icon-512.png +0 -0
  28. package/dist-lib/public/icon-maskable-512.png +0 -0
  29. package/dist-lib/public/illustrations/empty-inbox.png +0 -0
  30. package/dist-lib/public/illustrations/link-whatsapp.png +0 -0
  31. package/dist-lib/public/illustrations/no-results.png +0 -0
  32. package/dist-lib/public/illustrations/tunnel.png +0 -0
  33. package/dist-lib/public/illustrations/welcome.png +0 -0
  34. package/dist-lib/public/share-app.svg +16 -0
  35. package/dist-lib/sw.ts +71 -0
  36. package/dist-lib/types/App.d.ts +2 -0
  37. package/dist-lib/types/access/AccessGate.d.ts +24 -0
  38. package/dist-lib/types/access/BannerSlot.d.ts +35 -0
  39. package/dist-lib/types/access/events.d.ts +16 -0
  40. package/dist-lib/types/admin/AdminLayout.d.ts +36 -0
  41. package/dist-lib/types/admin/AiConnectionBanner.d.ts +7 -0
  42. package/dist-lib/types/admin/AiConnectionSection.d.ts +3 -0
  43. package/dist-lib/types/admin/AiContextPanel.d.ts +11 -0
  44. package/dist-lib/types/admin/AiEditDialog.d.ts +13 -0
  45. package/dist-lib/types/admin/AiMemberPage.d.ts +1 -0
  46. package/dist-lib/types/admin/AiQuickConnect.d.ts +22 -0
  47. package/dist-lib/types/admin/AiTryIt.d.ts +8 -0
  48. package/dist-lib/types/admin/AiVoiceSection.d.ts +2 -0
  49. package/dist-lib/types/admin/AuditPage.d.ts +1 -0
  50. package/dist-lib/types/admin/CloudflareSetup.d.ts +5 -0
  51. package/dist-lib/types/admin/CreateTokenDialog.d.ts +13 -0
  52. package/dist-lib/types/admin/CustomerEnrichmentSection.d.ts +1 -0
  53. package/dist-lib/types/admin/EnrichmentAuditScore.d.ts +4 -0
  54. package/dist-lib/types/admin/IntegrationsSection.d.ts +7 -0
  55. package/dist-lib/types/admin/MembersPage.d.ts +2 -0
  56. package/dist-lib/types/admin/QuickRepliesPage.d.ts +2 -0
  57. package/dist-lib/types/admin/ResolveAllChatsCard.d.ts +1 -0
  58. package/dist-lib/types/admin/SettingsPage.d.ts +2 -0
  59. package/dist-lib/types/admin/TokenConnectSteps.d.ts +12 -0
  60. package/dist-lib/types/admin/TunnelPage.d.ts +1 -0
  61. package/dist-lib/types/admin/WhatsAppPage.d.ts +11 -0
  62. package/dist-lib/types/admin/adminUi.d.ts +62 -0
  63. package/dist-lib/types/admin/ai-status.d.ts +12 -0
  64. package/dist-lib/types/admin/audit-actions.d.ts +10 -0
  65. package/dist-lib/types/admin/line-diff.d.ts +26 -0
  66. package/dist-lib/types/admin/use-chatgpt-sign-in.d.ts +14 -0
  67. package/dist-lib/types/api/ai.d.ts +174 -0
  68. package/dist-lib/types/api/client.d.ts +22 -0
  69. package/dist-lib/types/api/enrichment.d.ts +8 -0
  70. package/dist-lib/types/api/queries.d.ts +664 -0
  71. package/dist-lib/types/api/resume-reconnect.d.ts +15 -0
  72. package/dist-lib/types/api/socket.d.ts +19 -0
  73. package/dist-lib/types/api/voice.d.ts +33 -0
  74. package/dist-lib/types/auth/AuthProvider.d.ts +15 -0
  75. package/dist-lib/types/auth/AuthShell.d.ts +28 -0
  76. package/dist-lib/types/auth/ChangePasswordPage.d.ts +2 -0
  77. package/dist-lib/types/auth/LoginPage.d.ts +2 -0
  78. package/dist-lib/types/auth/RequireAuth.d.ts +12 -0
  79. package/dist-lib/types/auth/UserMenu.d.ts +5 -0
  80. package/dist-lib/types/components/app/AboutDialog.d.ts +7 -0
  81. package/dist-lib/types/components/app/AppCredits.d.ts +8 -0
  82. package/dist-lib/types/components/app/DesktopUpdates.d.ts +3 -0
  83. package/dist-lib/types/components/app/DevBuildBadge.d.ts +5 -0
  84. package/dist-lib/types/components/app/ErrorBoundary.d.ts +23 -0
  85. package/dist-lib/types/components/app/FeatureRequestAction.d.ts +7 -0
  86. package/dist-lib/types/components/app/SearchField.d.ts +7 -0
  87. package/dist-lib/types/components/app/SegmentedControl.d.ts +19 -0
  88. package/dist-lib/types/components/app/ShareAppAction.d.ts +5 -0
  89. package/dist-lib/types/components/app/index.d.ts +81 -0
  90. package/dist-lib/types/components/ui/alert-dialog.d.ts +18 -0
  91. package/dist-lib/types/components/ui/avatar.d.ts +11 -0
  92. package/dist-lib/types/components/ui/badge.d.ts +9 -0
  93. package/dist-lib/types/components/ui/button.d.ts +10 -0
  94. package/dist-lib/types/components/ui/card.d.ts +9 -0
  95. package/dist-lib/types/components/ui/checkbox.d.ts +4 -0
  96. package/dist-lib/types/components/ui/command.d.ts +18 -0
  97. package/dist-lib/types/components/ui/dialog.d.ts +17 -0
  98. package/dist-lib/types/components/ui/drawer.d.ts +13 -0
  99. package/dist-lib/types/components/ui/dropdown-menu.d.ts +25 -0
  100. package/dist-lib/types/components/ui/input.d.ts +3 -0
  101. package/dist-lib/types/components/ui/label.d.ts +4 -0
  102. package/dist-lib/types/components/ui/popover.d.ts +10 -0
  103. package/dist-lib/types/components/ui/progress.d.ts +4 -0
  104. package/dist-lib/types/components/ui/radio-group.d.ts +5 -0
  105. package/dist-lib/types/components/ui/scroll-area.d.ts +5 -0
  106. package/dist-lib/types/components/ui/select.d.ts +15 -0
  107. package/dist-lib/types/components/ui/separator.d.ts +4 -0
  108. package/dist-lib/types/components/ui/sheet.d.ts +14 -0
  109. package/dist-lib/types/components/ui/skeleton.d.ts +2 -0
  110. package/dist-lib/types/components/ui/sonner.d.ts +4 -0
  111. package/dist-lib/types/components/ui/switch.d.ts +6 -0
  112. package/dist-lib/types/components/ui/table.d.ts +10 -0
  113. package/dist-lib/types/components/ui/tabs.d.ts +11 -0
  114. package/dist-lib/types/components/ui/textarea.d.ts +3 -0
  115. package/dist-lib/types/components/ui/tooltip.d.ts +7 -0
  116. package/dist-lib/types/create-app.d.ts +20 -0
  117. package/dist-lib/types/extensions/context.d.ts +8 -0
  118. package/dist-lib/types/extensions/i18n.d.ts +15 -0
  119. package/dist-lib/types/extensions/index.d.ts +4 -0
  120. package/dist-lib/types/extensions/routes.d.ts +12 -0
  121. package/dist-lib/types/extensions/types.d.ts +116 -0
  122. package/dist-lib/types/i18n/LanguageSelect.d.ts +4 -0
  123. package/dist-lib/types/i18n/LocaleSync.d.ts +2 -0
  124. package/dist-lib/types/i18n/date-locale.d.ts +5 -0
  125. package/dist-lib/types/i18n/index.d.ts +17 -0
  126. package/dist-lib/types/i18n/locale-store.d.ts +26 -0
  127. package/dist-lib/types/i18n/resources.d.ts +1711 -0
  128. package/dist-lib/types/i18n/use-change-locale.d.ts +9 -0
  129. package/dist-lib/types/inbox/ChatAvatar.d.ts +13 -0
  130. package/dist-lib/types/inbox/ChatFilters.d.ts +6 -0
  131. package/dist-lib/types/inbox/ChatList.d.ts +9 -0
  132. package/dist-lib/types/inbox/ChatListItem.d.ts +13 -0
  133. package/dist-lib/types/inbox/Composer.d.ts +30 -0
  134. package/dist-lib/types/inbox/Conversation.d.ts +7 -0
  135. package/dist-lib/types/inbox/ConversationHeader.d.ts +25 -0
  136. package/dist-lib/types/inbox/CustomerPanel.d.ts +32 -0
  137. package/dist-lib/types/inbox/EmojiPicker.d.ts +6 -0
  138. package/dist-lib/types/inbox/EventItem.d.ts +14 -0
  139. package/dist-lib/types/inbox/GettingStartedCard.d.ts +10 -0
  140. package/dist-lib/types/inbox/GroupPanel.d.ts +19 -0
  141. package/dist-lib/types/inbox/InboxPage.d.ts +2 -0
  142. package/dist-lib/types/inbox/MediaView.d.ts +8 -0
  143. package/dist-lib/types/inbox/MessageBubble.d.ts +31 -0
  144. package/dist-lib/types/inbox/MessageList.d.ts +21 -0
  145. package/dist-lib/types/inbox/NotesPanel.d.ts +15 -0
  146. package/dist-lib/types/inbox/PanelHeader.d.ts +13 -0
  147. package/dist-lib/types/inbox/ProfileImageContext.d.ts +5 -0
  148. package/dist-lib/types/inbox/QuickReplyPicker.d.ts +18 -0
  149. package/dist-lib/types/inbox/ReconnectBanner.d.ts +8 -0
  150. package/dist-lib/types/inbox/TagInput.d.ts +14 -0
  151. package/dist-lib/types/inbox/TypingIndicator.d.ts +6 -0
  152. package/dist-lib/types/inbox/VoiceNote.d.ts +36 -0
  153. package/dist-lib/types/inbox/WaBanner.d.ts +9 -0
  154. package/dist-lib/types/inbox/chat-title.d.ts +4 -0
  155. package/dist-lib/types/inbox/navigation-guard.d.ts +17 -0
  156. package/dist-lib/types/inbox/timeline.d.ts +26 -0
  157. package/dist-lib/types/inbox/useCanonicalChatRedirect.d.ts +2 -0
  158. package/dist-lib/types/inbox/useDirectory.d.ts +21 -0
  159. package/dist-lib/types/inbox/useSwipeReply.d.ts +11 -0
  160. package/dist-lib/types/index.d.ts +43 -0
  161. package/dist-lib/types/lib/ai-handoff.d.ts +4 -0
  162. package/dist-lib/types/lib/app-links.d.ts +9 -0
  163. package/dist-lib/types/lib/desktop-updates.d.ts +15 -0
  164. package/dist-lib/types/lib/error-reporter.d.ts +6 -0
  165. package/dist-lib/types/lib/format.d.ts +20 -0
  166. package/dist-lib/types/lib/jid.d.ts +15 -0
  167. package/dist-lib/types/lib/links.d.ts +40 -0
  168. package/dist-lib/types/lib/share-app.d.ts +18 -0
  169. package/dist-lib/types/lib/theme.d.ts +29 -0
  170. package/dist-lib/types/lib/use-media-query.d.ts +2 -0
  171. package/dist-lib/types/lib/utils.d.ts +2 -0
  172. package/dist-lib/types/lib/version.d.ts +12 -0
  173. package/dist-lib/types/lib/voice-recorder.d.ts +26 -0
  174. package/dist-lib/types/pwa/InstallHint.d.ts +9 -0
  175. package/dist-lib/types/pwa/PushToggle.d.ts +20 -0
  176. package/dist-lib/types/pwa/desktop-notifications.d.ts +18 -0
  177. package/dist-lib/types/pwa/push.d.ts +13 -0
  178. package/dist-lib/types/setup/AiAssistantStep.d.ts +9 -0
  179. package/dist-lib/types/setup/SetupWizard.d.ts +3 -0
  180. package/dist-lib/types/setup/WaLinkStep.d.ts +8 -0
  181. package/dist-lib/types/setup/agent-name.d.ts +8 -0
  182. package/dist-lib/types/setup/connected-label.d.ts +7 -0
  183. package/dist-lib/types/setup/username.d.ts +9 -0
  184. package/dist-lib/types/wa/PhoneLink.d.ts +4 -0
  185. package/package.json +81 -4
  186. package/README.md +0 -3
@@ -0,0 +1,487 @@
1
+ //#region src/i18n/locales/ms/inbox.json
2
+ var e = "Mencuba semula…", t = {
3
+ you: "Anda",
4
+ agent: "Ejen #{{id}}",
5
+ ai: "{{name}} (AI)"
6
+ }, n = {
7
+ chats: "Sembang",
8
+ title: "Peti masuk",
9
+ admin: "Admin",
10
+ version: "{{appName}} · v{{version}}",
11
+ selectTitle: "Pilih sembang",
12
+ selectDescription: "Pilih perbualan daripada senarai untuk membaca dan membalas sebagai satu pasukan."
13
+ }, r = {
14
+ searchLabel: "Cari sembang",
15
+ searchPlaceholder: "Cari nama atau nombor",
16
+ assignment: "Tugasan",
17
+ status: "Status sembang",
18
+ mine: "Saya",
19
+ unassigned: "Belum ditugaskan",
20
+ all: "Semua",
21
+ open: "Terbuka",
22
+ resolved: "Selesai",
23
+ tag: "Tag",
24
+ tagLabel: "Tapis mengikut tag",
25
+ tagSearch: "Cari tag",
26
+ tagClear: "Kosongkan tapisan tag",
27
+ tagEmpty: "Belum ada tag"
28
+ }, i = {
29
+ loading: "Memuatkan sembang",
30
+ loadFailed: "Tidak dapat memuatkan sembang",
31
+ loadingMore: "Memuatkan lagi sembang",
32
+ loadMore: "Muat lagi",
33
+ showAllOpen: "Tunjuk semua sembang terbuka",
34
+ empty: {
35
+ me: {
36
+ title: "Tiada tugasan untuk anda",
37
+ description: "Tiada sembang ditugaskan kepada anda."
38
+ },
39
+ none: {
40
+ title: "Semua sudah beres",
41
+ description: "Setiap sembang ada pemiliknya. Syabas."
42
+ },
43
+ any: {
44
+ title: "Belum ada sembang",
45
+ description: "Perbualan WhatsApp baharu akan dipaparkan di sini."
46
+ },
47
+ search: "Tiada sembang sepadan dengan “{{query}}”.",
48
+ resolvedTitle: "Tiada sembang selesai",
49
+ resolvedDescription: "Tiada sembang selesai di sini.",
50
+ tag: "Tiada sembang dengan tag “{{tag}}”."
51
+ }
52
+ }, a = {
53
+ group: "Kumpulan",
54
+ unknownContact: "Kenalan tidak dikenali",
55
+ resolved: "Selesai",
56
+ assignedTo: "Ditugaskan kepada {{name}}",
57
+ unread_other: "{{count}} belum dibaca",
58
+ moreTags: "+{{count}}"
59
+ }, o = {
60
+ back: "Kembali ke sembang",
61
+ phoneHidden: "Nombor telefon disembunyikan",
62
+ resolved: "Selesai",
63
+ assignedTo: "Ditugaskan kepada",
64
+ unassigned: "Belum ditugaskan",
65
+ you: "{{name}} (anda)",
66
+ notesLabel_other: "Nota ({{count}})",
67
+ notesTitle: "Nota dalaman",
68
+ notes: "Nota",
69
+ reopen: "Buka semula",
70
+ resolve: "Selesai",
71
+ ai: "{{name}} (AI Ejen Jualan)",
72
+ customer: "Pelanggan",
73
+ customerLabel: "Butiran pelanggan",
74
+ groupMembers_one: "Kumpulan · {{count}} ahli",
75
+ groupMembers_other: "Kumpulan · {{count}} ahli",
76
+ openGroupInfo: "Buka maklumat kumpulan untuk {{name}}",
77
+ openCustomer: "Buka butiran pelanggan untuk {{name}}"
78
+ }, s = {
79
+ loading: "Memuatkan sembang",
80
+ notFound: "Sembang ini tidak wujud.",
81
+ loadFailed: "Tidak dapat memuatkan sembang ini.",
82
+ back: "Kembali ke sembang",
83
+ label: "Perbualan dengan {{name}}",
84
+ sendingBlocked: "Mesej tidak boleh dihantar sehingga WhatsApp dipautkan semula.",
85
+ reconnecting: "WhatsApp sedang disambung semula — mesej akan dihantar apabila bersambung.",
86
+ placeholderBlocked: "WhatsApp tidak bersambung",
87
+ placeholder: "Taip mesej — “/” untuk balasan pantas",
88
+ updateFailed: "Kemas kini gagal",
89
+ retryFailed: "Cubaan semula gagal",
90
+ someoneElse: "orang lain",
91
+ confirmTitle: "Ditugaskan kepada {{name}}",
92
+ confirmBody: "Sembang ini ditugaskan kepada <strong>{{name}}</strong> — balas juga? Anda tidak akan ditanya lagi untuk sembang ini dalam sesi ini.",
93
+ replyAnyway: "Balas juga"
94
+ }, c = {
95
+ placeholder: "Taip mesej",
96
+ attach: "Lampirkan fail",
97
+ message: "Mesej",
98
+ send: "Hantar",
99
+ quickReplies: "Balasan pantas",
100
+ replyingTo: "Membalas {{name}}",
101
+ cancelReply: "Batalkan balasan",
102
+ voice: {
103
+ record: "Rakam nota suara",
104
+ delete: "Padam rakaman",
105
+ review: "Semak",
106
+ send: "Hantar nota suara",
107
+ sendFailed: "Tidak dapat dihantar. Cuba lagi.",
108
+ play: "Main",
109
+ pause: "Jeda",
110
+ recordingTime: "Merakam, {{time}}",
111
+ maxLength: "Maks {{time}}",
112
+ insecure: "Nota suara memerlukan pautan selamat. Rakam daripada aplikasi desktop, atau buka peti masuk dengan pautan akses jauh anda (https).",
113
+ insecureShort: "Nota suara memerlukan pautan selamat",
114
+ blockedTitle: "Mikrofon disekat.",
115
+ blockedBody: "Benarkan mikrofon untuk laman ini dalam tetapan pelayar anda (ikon di sebelah alamat), kemudian cuba lagi.",
116
+ noMicrophone: "Tiada mikrofon ditemui. Sambungkan satu, kemudian cuba lagi.",
117
+ failed: "Tidak dapat mula merakam. Cuba lagi.",
118
+ lost: "Rakaman tidak dapat disimpan. Sila rakam semula.",
119
+ tryAgain: "Cuba lagi",
120
+ cancel: "Batal",
121
+ previewUnavailable: "Pelayar ini tidak dapat memainkannya semula, tetapi anda masih boleh menghantarnya."
122
+ }
123
+ }, l = {
124
+ title: "Balasan pantas",
125
+ noMatch: "Tiada balasan pantas bermula dengan “/{{query}}”."
126
+ }, u = {
127
+ insert: "Masukkan emoji",
128
+ title: "Emoji",
129
+ search: "Cari emoji",
130
+ searchPlaceholder: "Cari emoji…",
131
+ categories: "Kategori emoji",
132
+ choices: "Pilihan emoji",
133
+ empty: "Tiada emoji ditemui. Cuba “senyum”, “hati” atau “trak”.",
134
+ category: {
135
+ all: "Semua",
136
+ faces: "Muka",
137
+ gestures: "Isyarat",
138
+ hearts: "Hati",
139
+ work: "Kerja"
140
+ },
141
+ names: {
142
+ grinningFace: "Muka tersengih",
143
+ smilingFace: "Muka senyum",
144
+ tearsOfJoy: "Ketawa sampai menangis",
145
+ rollingOnTheFloorLaughing: "Ketawa berguling",
146
+ winkingFace: "Muka kenyit mata",
147
+ heartEyes: "Mata hati",
148
+ smilingFaceWithHearts: "Muka senyum dengan hati",
149
+ sunglassesFace: "Muka berkaca mata hitam",
150
+ thinkingFace: "Muka berfikir",
151
+ smilingFaceWithSweat: "Muka senyum berpeluh",
152
+ pensiveFace: "Muka murung",
153
+ cryingFace: "Muka menangis",
154
+ loudlyCryingFace: "Menangis teresak-esak",
155
+ surprisedFace: "Muka terkejut",
156
+ upsideDownFace: "Muka terbalik",
157
+ huggingFace: "Muka memeluk",
158
+ thumbsUp: "Ibu jari ke atas",
159
+ thumbsDown: "Ibu jari ke bawah",
160
+ wavingHand: "Lambai tangan",
161
+ foldedHands: "Tangan bertangkup",
162
+ okHand: "Tangan OK",
163
+ clappingHands: "Tepuk tangan",
164
+ raisedHands: "Angkat tangan",
165
+ handshake: "Berjabat tangan",
166
+ flexedBiceps: "Otot lengan",
167
+ victoryHand: "Tanda kemenangan",
168
+ redHeart: "Hati merah",
169
+ orangeHeart: "Hati oren",
170
+ yellowHeart: "Hati kuning",
171
+ greenHeart: "Hati hijau",
172
+ blueHeart: "Hati biru",
173
+ purpleHeart: "Hati ungu",
174
+ whiteHeart: "Hati putih",
175
+ twoHearts: "Dua hati",
176
+ checkMark: "Tanda betul",
177
+ crossMark: "Tanda pangkah",
178
+ questionMark: "Tanda soal",
179
+ warning: "Amaran",
180
+ pushpin: "Pin tekan",
181
+ package: "Bungkusan",
182
+ deliveryTruck: "Trak penghantaran",
183
+ locationPin: "Pin lokasi",
184
+ calendar: "Kalendar",
185
+ alarmClock: "Jam loceng",
186
+ telephone: "Telefon",
187
+ speechBalloon: "Belon pertuturan",
188
+ moneyBag: "Beg duit",
189
+ partyPopper: "Peletup parti",
190
+ birthdayCake: "Kek hari jadi",
191
+ gift: "Hadiah",
192
+ glowingStar: "Bintang bersinar",
193
+ fire: "Api"
194
+ }
195
+ }, d = {
196
+ system: "Sistem",
197
+ someone: "Seseorang",
198
+ someoneLower: "seseorang",
199
+ tookByReply: "{{actor}} mengambil sembang ini dengan membalas",
200
+ took: "{{actor}} mengambil sembang ini",
201
+ assigned: "{{actor}} menugaskan sembang ini kepada {{assignee}}",
202
+ returned: "Sembang dikembalikan kepada pasukan",
203
+ unassigned: "{{actor}} membatalkan tugasan sembang ini",
204
+ handedToTeam: "{{actor}} menyerahkan sembang ini kepada pasukan: {{reason}}",
205
+ handedTo: "{{actor}} menyerahkan sembang ini kepada {{assignee}}: {{reason}}",
206
+ handoffReason: {
207
+ asked_for_human: "pelanggan meminta untuk bercakap dengan orang",
208
+ missing_facts: "jawapan tiada dalam konteks perniagaan",
209
+ sensitive: "topik sensitif",
210
+ needs_action: "pelanggan mahu sesuatu dilakukan (pesanan, tempahan, bayaran…)",
211
+ unsupported_message: "mesej yang tidak dapat dibaca oleh AI",
212
+ ai_unavailable: "AI tidak tersedia",
213
+ lookup_failed: "carian dalam sistem yang disambungkan gagal",
214
+ business_rule: "sepadan dengan peraturan serahan anda"
215
+ },
216
+ resolved: "{{actor}} menyelesaikan sembang ini",
217
+ reopenedByMessage: "Sembang dibuka semula oleh mesej baharu",
218
+ reopened: "{{actor}} membuka semula sembang ini",
219
+ aiToolUsed: "AI menyemak {{title}} · {{source}}",
220
+ internalNote: "Nota dalaman"
221
+ }, f = {
222
+ label: "Mesej",
223
+ loadingOlder: "Memuatkan mesej lama",
224
+ start: "Permulaan perbualan",
225
+ loading: "Memuatkan mesej",
226
+ empty: "Belum ada mesej.",
227
+ viaPhone: "melalui telefon",
228
+ jumpToLatest: "Lompat ke terkini"
229
+ }, p = {
230
+ status: {
231
+ pending: "Belum dihantar",
232
+ sent: "Dihantar",
233
+ delivered: "Diterima",
234
+ read: "Dibaca",
235
+ failed: "Gagal"
236
+ },
237
+ you: "Anda",
238
+ contact: "Kenalan",
239
+ quotedMessage: "Mesej dipetik",
240
+ notSent: "Tidak dihantar",
241
+ voiceNote: "Nota suara",
242
+ quote: {
243
+ image: "[Imej]",
244
+ video: "[Video]",
245
+ audio: "[Audio]",
246
+ sticker: "[Pelekat]",
247
+ document: "[Dokumen] {{name}}",
248
+ message: "Mesej"
249
+ },
250
+ transcript: {
251
+ label: "Transkrip:",
252
+ pending: "Sedang ditranskripsi…",
253
+ failed: "Nota suara ini tidak dapat ditranskripsi",
254
+ too_long: "Terlalu panjang untuk ditranskripsi",
255
+ unsupported: "Format audio ini tidak dapat ditranskripsi"
256
+ },
257
+ reply: "Balas"
258
+ }, m = {
259
+ types: {
260
+ text: "teks",
261
+ image: "imej",
262
+ video: "video",
263
+ audio: "audio",
264
+ document: "dokumen",
265
+ sticker: "pelekat",
266
+ system: "sistem"
267
+ },
268
+ preview: "Pratonton imej",
269
+ download: "Muat turun",
270
+ tapToLoad: "Ketik untuk muat",
271
+ loading: "Media sedang dimuatkan",
272
+ uploading: "Memuat naik {{label}}…",
273
+ downloading: "Memuat turun {{label}}…",
274
+ loadFailed: "Tidak dapat memuatkan {{label}}",
275
+ unavailable: "{{label}} tidak tersedia",
276
+ retryDownload: "Cuba muat turun semula",
277
+ openImage: "Buka imej",
278
+ openSticker: "Buka pelekat",
279
+ imageAlt: "Imej",
280
+ document: "Dokumen",
281
+ file: "Fail",
282
+ fileDownload: "{{type}} · Muat turun"
283
+ }, h = {
284
+ title: "Nota dalaman",
285
+ description: "Hanya pasukan anda boleh melihat nota. Nota tidak akan dihantar melalui WhatsApp.",
286
+ close: "Tutup nota",
287
+ loading: "Memuatkan nota",
288
+ empty: "Belum ada nota.",
289
+ newNote: "Nota baharu",
290
+ placeholder: "Tambah nota untuk pasukan anda",
291
+ add: "Tambah nota",
292
+ saveFailed: "Tidak dapat menyimpan nota"
293
+ }, g = {
294
+ title: "Menyambung semula ke pelayan…",
295
+ body: "Mesej dan kemas kini baharu mungkin lewat sehingga sambungan pulih."
296
+ }, _ = {
297
+ one: "{{name}} sedang menaip…",
298
+ two: "{{first}} dan {{second}} sedang menaip…",
299
+ many_other: "{{count}} rakan sepasukan sedang menaip…"
300
+ }, v = {
301
+ settingsShort: "Tetapan",
302
+ openSettings: "Buka tetapan WhatsApp",
303
+ connecting: {
304
+ title: "Menyambung ke WhatsApp…",
305
+ body: "Mesej yang anda hantar akan dihantar apabila sambungan pulih."
306
+ },
307
+ disconnected: {
308
+ title: "WhatsApp terputus",
309
+ body: "Menyambung semula secara automatik. Mesej akan dihantar apabila bersambung."
310
+ },
311
+ qr: {
312
+ title: "WhatsApp belum dipautkan",
313
+ body: "Admin perlu mengimbas kod QR untuk memautkan nombor pasukan."
314
+ },
315
+ loggedOut: {
316
+ title: "WhatsApp telah dilog keluar",
317
+ body: "Admin perlu memautkan semula nombor sebelum mesej boleh dihantar."
318
+ },
319
+ replaced: {
320
+ title: "WhatsApp dibuka dalam sesi lain",
321
+ body: "Aplikasi ini terputus kerana nombor digunakan di tempat lain. Admin boleh mengambil alih."
322
+ },
323
+ blocked: {
324
+ title: "Sambungan WhatsApp disekat",
325
+ body: "Sambungan ditolak. Admin perlu menyemak halaman WhatsApp."
326
+ }
327
+ }, y = {
328
+ label: "Nombor WhatsApp (dengan kod negara)",
329
+ requesting: "Memohon…",
330
+ getCode: "Dapatkan kod pautan",
331
+ enterCode: "Masukkan kod ini pada telefon anda",
332
+ copied: "Kod disalin",
333
+ copy: "Salin kod",
334
+ step1: "Buka WhatsApp pada telefon dengan nombor ini.",
335
+ step2: "Pergi ke <strong>Tetapan → Peranti dipautkan → Pautkan peranti</strong>.",
336
+ step3: "Ketik <strong>Pautkan dengan nombor telefon</strong> dan masukkan kod."
337
+ }, b = {
338
+ unsupported: "Pemberitahuan tidak disokong dalam pelayar ini.",
339
+ label: "Pemberitahuan",
340
+ labelDevice: "Pemberitahuan pada peranti ini",
341
+ desktopHint: "Makluman dipaparkan apabila aplikasi ini di latar belakang. Biarkan ia berjalan dalam dulang sistem dan benarkan {{product}} dalam tetapan pemberitahuan sistem anda.",
342
+ blocked: "Pemberitahuan disekat. Benarkan dalam tetapan laman pelayar.",
343
+ errors: {
344
+ browserUnsupported: "Pelayar ini tidak menyokong pemberitahuan tolak.",
345
+ permissionDenied: "Kebenaran pemberitahuan tidak diberikan.",
346
+ serviceWorker: "Service worker belum aktif. Muat semula halaman dan cuba lagi.",
347
+ noKey: "Pelayan tidak memulangkan kunci tolak",
348
+ desktopUnavailable: "Pemberitahuan desktop tidak tersedia. Semak tetapan pemberitahuan sistem pengendalian anda."
349
+ }
350
+ }, x = {
351
+ title: "Tambah ke Skrin Utama untuk menerima pemberitahuan",
352
+ body: "Ketik butang Kongsi <share/> dalam Safari, pilih <strong>Tambah ke Skrin Utama</strong>, kemudian buka {{product}} dari skrin utama dan hidupkan pemberitahuan.",
353
+ share: "Kongsi"
354
+ }, S = {
355
+ title: "Pelanggan",
356
+ description: "Butiran yang disimpan pasukan tentang pelanggan ini",
357
+ close: "Tutup butiran pelanggan",
358
+ empty: "Belum ada butiran",
359
+ emptyHint: "Tambah syarikat, e-mel, alamat dan tag supaya mana-mana rakan sepasukan boleh menyambung sembang ini.",
360
+ addDetails: "Tambah butiran",
361
+ edit: "Sunting",
362
+ save: "Simpan",
363
+ cancel: "Batal",
364
+ saveFailed: "Tidak dapat menyimpan butiran pelanggan",
365
+ noName: "Tiada nama",
366
+ whatsappName: "WhatsApp: {{name}}",
367
+ updatedBy: "Dikemas kini oleh {{name}} · {{when}}",
368
+ updated: "Dikemas kini {{when}}",
369
+ updatedByYou: "Anda mengemas kini ini · {{when}}",
370
+ changedWhileEditing: "Dikemas kini oleh {{name}} semasa anda menyunting — perubahan anda dan perubahan mereka dikekalkan",
371
+ changedWhileEditingUnknown: "Dikemas kini oleh rakan sepasukan semasa anda menyunting — perubahan anda dan perubahan mereka dikekalkan",
372
+ changedWhileEditingYou: "Anda menyimpan perubahan di tempat lain semasa menyunting di sini — kedua-duanya dikekalkan",
373
+ name: "Nama",
374
+ company: "Syarikat",
375
+ email: "E-mel",
376
+ otherPhone: "Telefon lain",
377
+ address: "Alamat / kawasan",
378
+ tags: "Tag",
379
+ tagPlaceholder: "Taip tag",
380
+ addTag: "Tambah tag",
381
+ tagLimit: "Sehingga 10 tag",
382
+ removeTag: "Buang tag {{tag}}",
383
+ discardTitle: "Buang perubahan anda?",
384
+ discard: "Buang",
385
+ keepEditing: "Teruskan menyunting",
386
+ open: "Buka sembang",
387
+ errors: {
388
+ email: "Masukkan alamat e-mel yang sah",
389
+ otherPhone: "Gunakan digit, ruang, +, -, ( atau )",
390
+ tooLong: "Gunakan paling banyak {{max}} aksara",
391
+ tags: "Semak tag: sehingga 10, setiap satu paling banyak 30 aksara"
392
+ },
393
+ otherPhoneHint: "Nombor WhatsApp {{phone}} sudah disimpan.",
394
+ wa: {
395
+ title: "Daripada WhatsApp",
396
+ pushName: "Nama di WhatsApp",
397
+ savedName: "Disimpan dalam telefon sebagai",
398
+ phone: "Telefon",
399
+ phoneHidden: "Disembunyikan oleh WhatsApp",
400
+ lid: "ID WhatsApp",
401
+ copyLid: "Salin ID WhatsApp",
402
+ copied: "ID WhatsApp disalin"
403
+ }
404
+ }, C = {
405
+ title: "Maklumat kumpulan",
406
+ description: "Ahli kumpulan WhatsApp ini. Hanya pasukan anda yang melihat senarai ini.",
407
+ close: "Tutup maklumat kumpulan",
408
+ loading: "Memuatkan ahli",
409
+ memberCount_one: "{{count}} ahli",
410
+ memberCount_other: "{{count}} ahli",
411
+ adminCount_one: "{{count}} pentadbir",
412
+ adminCount_other: "{{count}} pentadbir",
413
+ created: "Dicipta {{date}} oleh {{name}}",
414
+ createdOn: "Dicipta {{date}}",
415
+ search: "Cari ahli",
416
+ all: "Semua",
417
+ admins: "Pentadbir",
418
+ admin: "Pentadbir",
419
+ member: "Ahli",
420
+ you: "Anda",
421
+ hiddenNumber: "Nombor disembunyikan oleh WhatsApp",
422
+ noName: "Nama belum dikongsi",
423
+ showMore: "Tunjuk lagi ({{shown}} daripada {{total}})",
424
+ none: "Tiada ahli yang sepadan dengan carian anda.",
425
+ partial: "WhatsApp menyenaraikan {{listed}} daripada {{total}} ahli.",
426
+ foot: "Nama datang daripada WhatsApp. Ahli yang belum menghantar mesej mungkin hanya menunjukkan nombor.",
427
+ unavailable: "Tidak dapat memuatkan ahli. WhatsApp perlu disambungkan.",
428
+ retry: "Cuba lagi",
429
+ back: "Ahli",
430
+ details: "Butiran WhatsApp",
431
+ phone: "Telefon",
432
+ lid: "ID WhatsApp",
433
+ username: "Nama pengguna",
434
+ about: "Perihal",
435
+ aboutLoading: "Memuatkan…",
436
+ aboutFailed: "Tidak dapat dimuatkan",
437
+ role: "Peranan",
438
+ openChat: "Buka perbualan",
439
+ hasChat: "Anda sudah ada perbualan terus dengan ahli ini.",
440
+ message: "Hantar mesej",
441
+ noChat: "Anda belum ada perbualan dengan ahli ini.",
442
+ confirmTitle: "Mulakan perbualan dengan {{name}}?",
443
+ confirmWarn: "Hanya hantar mesej kepada orang yang menjangkakannya. Mesej yang tidak diminta boleh menyebabkan nombor WhatsApp anda disekat.",
444
+ cancel: "Batal",
445
+ start: "Mulakan perbualan",
446
+ startFailed: "Tidak dapat memulakan perbualan",
447
+ listLabel: "Ahli kumpulan"
448
+ }, w = {
449
+ title: "Bermula",
450
+ ai: "Pembantu AI",
451
+ aiHint: "Menjawab soalan biasa dan menyerahkan sembang kepada pasukan anda.",
452
+ teammates: "Rakan sepasukan",
453
+ teammatesHint: "Kongsi peti masuk dengan pasukan anda.",
454
+ phone: "Akses telefon",
455
+ phoneHint: "Buka peti masuk pada telefon di luar Wi-Fi ini.",
456
+ setUp: "Sediakan",
457
+ add: "Tambah",
458
+ hide: "Sembunyikan panduan bermula"
459
+ }, T = {
460
+ retrying: e,
461
+ directory: t,
462
+ page: n,
463
+ filters: r,
464
+ chatList: i,
465
+ chatListItem: a,
466
+ header: o,
467
+ conversation: s,
468
+ composer: c,
469
+ quickReplies: l,
470
+ emoji: u,
471
+ events: d,
472
+ messageList: f,
473
+ message: p,
474
+ media: m,
475
+ notes: h,
476
+ reconnect: g,
477
+ typing: _,
478
+ waBanner: v,
479
+ phoneLink: y,
480
+ push: b,
481
+ installHint: x,
482
+ customer: S,
483
+ groupInfo: C,
484
+ gettingStarted: w
485
+ };
486
+ //#endregion
487
+ export { i as chatList, a as chatListItem, c as composer, s as conversation, S as customer, T as default, t as directory, u as emoji, d as events, r as filters, w as gettingStarted, C as groupInfo, o as header, x as installHint, m as media, p as message, f as messageList, h as notes, n as page, y as phoneLink, b as push, l as quickReplies, g as reconnect, e as retrying, _ as typing, v as waBanner };
@@ -0,0 +1,16 @@
1
+ import { registerSW as e } from "virtual:pwa-register";
2
+ //#region src/pwa/registerSW.ts
3
+ var t = !1;
4
+ function n() {
5
+ !t && typeof window < "u" && "serviceWorker" in navigator && (t = !0, e({
6
+ immediate: !0,
7
+ onRegisterError(e) {
8
+ console.warn("Service worker registration failed", e);
9
+ }
10
+ }), navigator.serviceWorker.addEventListener("message", (e) => {
11
+ let t = e.data;
12
+ t?.type === "navigate" && typeof t.url == "string" && t.url.startsWith("/") && window.location.assign(t.url);
13
+ }));
14
+ }
15
+ //#endregion
16
+ export { n as default, n as registerSW };