@wexio/messenger-widget-react 1.0.4 → 1.0.6

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 (71) hide show
  1. package/README.md +22 -150
  2. package/dist/{widget-react-BfPdgAQ-.js → widget-react-A2LiLuw0.js} +1151 -1006
  3. package/dist/{widget-react-DwL_rsx_.js → widget-react-B0fjhAJD.js} +72 -56
  4. package/dist/{widget-react-D-QrEVpv.js → widget-react-BC-2nOW4.js} +1 -1
  5. package/dist/{widget-react-CZs0xRrr.js → widget-react-BMpc2uNT2.js} +1 -1
  6. package/dist/widget-react-BNG2P8TD.js +337 -0
  7. package/dist/widget-react-BcPE3ZoY.js +337 -0
  8. package/dist/widget-react-BdgqHrUV.js +337 -0
  9. package/dist/widget-react-BdohGq4s2.js +337 -0
  10. package/dist/widget-react-BthaWcns.js +337 -0
  11. package/dist/widget-react-C-8yYmmX2.js +337 -0
  12. package/dist/widget-react-C2atp9Wc.js +337 -0
  13. package/dist/widget-react-C7J17SWR.js +337 -0
  14. package/dist/{widget-react-BAOIDvhV.js → widget-react-CB6Jxluy.js} +1362 -1328
  15. package/dist/widget-react-CKZ5tNDZ.js +337 -0
  16. package/dist/widget-react-CLRkytx8.js +337 -0
  17. package/dist/widget-react-CMvMg68M.js +337 -0
  18. package/dist/widget-react-COu0Pgwj2.js +337 -0
  19. package/dist/widget-react-CSqqxBrZ2.js +337 -0
  20. package/dist/widget-react-CVLlTbB_2.js +337 -0
  21. package/dist/{widget-react-DtOeNw5z.js → widget-react-CVx50FQP2.js} +18 -9
  22. package/dist/{widget-react-AgErOR36.js → widget-react-CYlAGnu_2.js} +19 -7
  23. package/dist/{widget-react-CPYwD6FR.js → widget-react-CdjAa7d12.js} +2 -2
  24. package/dist/widget-react-Cfgp7JeP.js +337 -0
  25. package/dist/widget-react-CozbWJT5.js +337 -0
  26. package/dist/widget-react-Crxd4qSM.js +337 -0
  27. package/dist/widget-react-D3ZFysG9.js +337 -0
  28. package/dist/widget-react-DAT3UgdW2.js +285 -0
  29. package/dist/widget-react-DRyfg-bL.js +337 -0
  30. package/dist/widget-react-DhC6mv1r.js +337 -0
  31. package/dist/widget-react-DiF8_rWm.js +337 -0
  32. package/dist/widget-react-DjXlAiu5.js +337 -0
  33. package/dist/widget-react-DkhMvmdX2.js +337 -0
  34. package/dist/{widget-react-CUuKGDZN.js → widget-react-DqRO9d652.js} +2 -2
  35. package/dist/widget-react-Dq_sYldT.js +337 -0
  36. package/dist/{widget-react-Cj_zbk_F.js → widget-react-Dr-NACA0.js} +19 -7
  37. package/dist/widget-react-DviuEPoq.js +337 -0
  38. package/dist/{widget-react-CDPzwV1i.js → widget-react-DxkbC0xE.js} +1823 -1833
  39. package/dist/widget-react-JOt2DXbR.js +337 -0
  40. package/dist/widget-react-L8PMkUr7.js +337 -0
  41. package/dist/widget-react-LWisk9g6.js +337 -0
  42. package/dist/{widget-react-DSw03RG7.js → widget-react-_xdGdTzK.js} +1 -1
  43. package/dist/widget-react-fNts-U3I2.js +337 -0
  44. package/dist/widget-react-iKCOmnGh.js +337 -0
  45. package/dist/{widget-react-C5COLy3m.js → widget-react-wTlmXnex2.js} +1 -1
  46. package/dist/widget-react-xzOjEdXk2.js +337 -0
  47. package/dist/widget-react.d.ts +3 -21
  48. package/dist/widget-react.js +4028 -3450
  49. package/package.json +1 -1
  50. package/dist/widget-react-AgErOR36.js.map +0 -1
  51. package/dist/widget-react-BAOIDvhV.js.map +0 -1
  52. package/dist/widget-react-BfPdgAQ-.js.map +0 -1
  53. package/dist/widget-react-BxvW64LH.js.map +0 -1
  54. package/dist/widget-react-C5COLy3m.js.map +0 -1
  55. package/dist/widget-react-CAWxn8I0.js +0 -247
  56. package/dist/widget-react-CAWxn8I0.js.map +0 -1
  57. package/dist/widget-react-CDPzwV1i.js.map +0 -1
  58. package/dist/widget-react-CPYwD6FR.js.map +0 -1
  59. package/dist/widget-react-CUBFPjaV.js.map +0 -1
  60. package/dist/widget-react-CUuKGDZN.js.map +0 -1
  61. package/dist/widget-react-CZs0xRrr.js.map +0 -1
  62. package/dist/widget-react-Cj_zbk_F.js.map +0 -1
  63. package/dist/widget-react-D-QrEVpv.js.map +0 -1
  64. package/dist/widget-react-D8TPnM9r.js.map +0 -1
  65. package/dist/widget-react-DE7AVrCo.js.map +0 -1
  66. package/dist/widget-react-DOX6j7_Q.js.map +0 -1
  67. package/dist/widget-react-DSw03RG7.js.map +0 -1
  68. package/dist/widget-react-Dew7YaLU.js.map +0 -1
  69. package/dist/widget-react-DtOeNw5z.js.map +0 -1
  70. package/dist/widget-react-DwL_rsx_.js.map +0 -1
  71. package/dist/widget-react.js.map +0 -1
@@ -0,0 +1,337 @@
1
+ import "react";
2
+ import "react-dom";
3
+ import "react/jsx-runtime";
4
+ import "react-dom/client";
5
+ import { x as e } from "./widget-react-DE7AVrCo.js";
6
+ //#region messages/he.json
7
+ var t = /* @__PURE__ */ e({
8
+ article: () => m,
9
+ authError: () => _,
10
+ branding: () => f,
11
+ default: () => y,
12
+ header: () => r,
13
+ help: () => c,
14
+ home: () => a,
15
+ languageSelector: () => d,
16
+ launcher: () => i,
17
+ lightbox: () => g,
18
+ messages: () => o,
19
+ news: () => l,
20
+ peek: () => h,
21
+ prechat: () => s,
22
+ profile: () => v,
23
+ reactions: () => u,
24
+ sound: () => p,
25
+ tabs: () => n
26
+ }), n = {
27
+ home: "בית",
28
+ messages: "הודעות",
29
+ help: "עזרה",
30
+ news: "חדשות",
31
+ profile: "פרופיל"
32
+ }, r = {
33
+ close: "סגירה",
34
+ back: "חזרה",
35
+ conversationSubtitle: "גם הצוות שלנו יכול לעזור",
36
+ helpTitle: "עזרה",
37
+ newsTitle: "חדשות",
38
+ expand: "הרחבת הווידג'ט",
39
+ collapse: "כיווץ הווידג'ט"
40
+ }, i = {
41
+ open: "פתיחת צ'אט",
42
+ close: "סגירת צ'אט",
43
+ loading: "מתחבר…"
44
+ }, a = {
45
+ greetingHeadline: "שלום 👋",
46
+ greetingSubheadline: "במה נוכל לעזור?",
47
+ askTitle: "שאלו שאלה",
48
+ askSubtitle: "הבוט והצוות שלנו יוכלו לעזור",
49
+ recentMessageLabel: "הודעה אחרונה",
50
+ recentMessageTitle: "הודעה אחרונה",
51
+ recentMessageFromFallback: "Gaia",
52
+ recentMessageAgo: "4ש'",
53
+ recentMessageSample: "שלום 👋 תודה שפניתם - נחזור אליכם מיד.",
54
+ featuredArticleLoading: "מאמר מומלץ",
55
+ featuredArticleTap: "הקישו לקריאה",
56
+ featuredArticleEmpty: "בחרו מאמר",
57
+ featuredArticleSetUp: "הגדירו את הבלוק הזה בלוח הבקרה",
58
+ featuredArticleDemoEyebrow: "Pioneer · שמרו את התאריך",
59
+ featuredArticleDemoHeadline: "8 באוקטובר 2026",
60
+ featuredArticleDemoSubline: "סן פרנסיסקו · פרונטלי + וירטואלי",
61
+ featuredArticleDemoCta: "צפו בלוח האירועים",
62
+ seeAgenda: "צפו בלוח האירועים",
63
+ browseHelp: "עיון בעזרה",
64
+ whatsNew: "מה חדש",
65
+ searchPlaceholder: "חיפוש בעזרה",
66
+ pinnedArticlesTitle: "קראו את אלה ראשונים",
67
+ popularArticlesTitle: "מאמרים פופולריים",
68
+ pinnedArticleRow: "מאמר מוצמד {n}",
69
+ newsPreviewTitle: "החדשות האחרונות",
70
+ newsPreviewRow: "עדכון חדשות {n}",
71
+ myConversationsTitle: "השיחות שלך",
72
+ myConversationsEmpty: "צפייה בשיחות שלך",
73
+ teamStatusOnline: "אנחנו מחוברים",
74
+ teamStatusReplyTime: "בדרך כלל עונים תוך מספר דקות"
75
+ }, o = {
76
+ today: "היום",
77
+ yesterday: "אתמול",
78
+ unreadMessages: "הודעות שלא נקראו",
79
+ emptyTitle: "אין עדיין הודעות",
80
+ emptyBody: "התחילו שיחה והצוות שלנו יחזור אליכם כאן.",
81
+ sendCta: "שלחו לנו הודעה",
82
+ attach: "צירוף קובץ",
83
+ commands: "פקודות מהירות",
84
+ record: "הקלטת הודעה קולית",
85
+ stopRecording: "עצירת הקלטה",
86
+ recording: "מקליט…",
87
+ uploading: "מעלה…",
88
+ uploadFailed: "ההעלאה נכשלה",
89
+ voiceDenied: "הגישה למיקרופון נדחתה",
90
+ voiceUnsupported: "הקלטה קולית אינה נתמכת בדפדפן זה",
91
+ fileTooLarge: "הקובץ גדול מדי (מקסימום 10MB)",
92
+ fileMimeNotAllowed: "סוג קובץ זה אינו נתמך",
93
+ emoji: "הוספת אימוג'י",
94
+ cancelRecording: "ביטול הקלטה",
95
+ pauseRecording: "השהיית הקלטה",
96
+ resumeRecording: "חידוש הקלטה",
97
+ playPreview: "השמעת ההקלטה",
98
+ emojiPicker: "בורר אימוג'י",
99
+ emojiSearch: "חיפוש…",
100
+ playAudio: "השמעה",
101
+ pauseAudio: "השהיה",
102
+ openAudio: "פתיחת אודיו",
103
+ removeAttachment: "הסרה",
104
+ aiAssistant: "עוזר AI",
105
+ operator: "נציג",
106
+ openImage: "פתיחת תמונה",
107
+ openPreview: "פתיחת תצוגה מקדימה",
108
+ play: "השמעה",
109
+ pause: "השהיה",
110
+ typing: "מקליד…",
111
+ aiThinking: "חושב…",
112
+ aiSearching: "מחפש…",
113
+ typingSomeone: "מישהו",
114
+ signInToChat: "אנא היכנסו כדי להתחיל את השיחה.",
115
+ signInUnavailable: "הכניסה אינה זמינה כעת.",
116
+ googleSignIn: "כניסה עם Google",
117
+ passkeySignIn: "כניסה עם מפתח גישה",
118
+ passkeyRegister: "פעם ראשונה? הגדירו מפתח גישה",
119
+ passkeyError: "הכניסה נכשלה. נסו שוב.",
120
+ passkeyNoCredential: "אין עדיין מפתח גישה במכשיר הזה — הקישו על «הגדירו מפתח גישה» כדי ליצור אחד.",
121
+ googleSignInDemo: "המשך עם Google"
122
+ }, s = {
123
+ title: "לפני שמתחילים",
124
+ subtitle: "כמה פרטים מהירים כדי שהצוות יוכל לעזור מהר יותר.",
125
+ labelName: "שם",
126
+ labelEmail: "דוא\"ל",
127
+ labelPhone: "טלפון",
128
+ labelCustom: "פרטים",
129
+ required: "שדה חובה",
130
+ invalidEmail: "אנא הזינו כתובת דוא\"ל תקינה",
131
+ invalidPhone: "אנא הזינו מספר טלפון תקין",
132
+ submit: "המשך",
133
+ submitFailed: "השליחה נכשלה - נסו שוב."
134
+ }, c = {
135
+ searchPlaceholder: "חיפוש בעזרה",
136
+ emptyTitle: "אין עדיין מאמרים",
137
+ emptyBody: "המפעיל שלכם עדיין לא פרסם דבר.",
138
+ back: "חזרה",
139
+ helpful: "האם זה היה מועיל?",
140
+ yes: "כן",
141
+ no: "לא",
142
+ thanks: "תודה על המשוב.",
143
+ unresolvedCta: "עדיין צריכים עזרה? שלחו לנו הודעה",
144
+ noResults: "אין תוצאות",
145
+ articleNotFound: "המאמר לא נמצא",
146
+ articleNotTranslated: "המאמר הזה עדיין אינו זמין בשפה שלכם.",
147
+ writtenBy: "נכתב על ידי {names}",
148
+ relatedTitle: "מאמרים קשורים",
149
+ collectionsCount: "{count, plural, =0 {אין אוספים} one {אוסף אחד} two {שני אוספים} other {# אוספים}}",
150
+ articlesCount: "{count, plural, =0 {אין מאמרים} one {מאמרים: #} two {מאמרים: #} other {מאמרים: #}}",
151
+ authorsByline: "מחברים {first}{remaining, plural, =0 {} one { ועוד אחד} two { ועוד #} other { ועוד #}}"
152
+ }, l = {
153
+ emptyTitle: "אין עדיין עדכונים",
154
+ emptyBody: "חזרו לכאן כדי לקרוא חדשות מוצר והודעות.",
155
+ helpful: "האם המאמר הזה היה מועיל?",
156
+ yes: "כן",
157
+ no: "לא",
158
+ thanks: "תודה על המשוב.",
159
+ searchPlaceholder: "חיפוש בחדשות",
160
+ noResults: "לא נמצאו פוסטים מתאימים",
161
+ editedAt: "נערך {when}",
162
+ articleNotFound: "המאמר לא נמצא.",
163
+ articleNotTranslated: "הפוסט הזה עדיין אינו זמין בשפה שלכם.",
164
+ readOriginal: "קריאת המקור",
165
+ relatedTitle: "קשורים",
166
+ writtenBy: "נכתב על ידי {names}"
167
+ }, u = {
168
+ ariaLabel: "תגובות",
169
+ tapAria: "תגובה עם {emoji}"
170
+ }, d = {
171
+ title: "קריאה בשפה אחרת",
172
+ ariaLabel: "שפות המאמר"
173
+ }, f = {
174
+ poweredBy: "מופעל על ידי",
175
+ wexio: "Wexio"
176
+ }, p = {
177
+ mute: "השתקת צלילי התראה",
178
+ unmute: "הפעלת צלילי התראה"
179
+ }, m = {
180
+ tableOfContents: "תוכן עניינים",
181
+ tabFallback: "לשונית {n}"
182
+ }, h = {
183
+ newMessage: "הודעה חדשה",
184
+ dismiss: "סגירה",
185
+ aiAssistant: "עוזר AI",
186
+ operator: "נציג"
187
+ }, g = {
188
+ mediaPreview: "תצוגה מקדימה של מדיה",
189
+ close: "סגירת תצוגה מקדימה",
190
+ previous: "הקודם",
191
+ next: "הבא"
192
+ }, _ = {
193
+ turnstileTitle: "לא הצלחנו לאמת את הדפדפן",
194
+ turnstileBody: "לא הצלחנו להשלים את בדיקת האבטחה. זו לעיתים בעיית רשת או חוסם פרסומות — נסו שוב או רעננו את הדף.",
195
+ genericTitle: "לא הצלחנו להתחבר",
196
+ genericBody: "משהו השתבש במהלך הכניסה. נסו שוב בעוד רגע.",
197
+ retry: "נסו שוב",
198
+ dismiss: "סגירה"
199
+ }, v = {
200
+ title: "הפרופיל שלך",
201
+ subtitle: "עדכנו את הפרטים שלכם ואת אופן פעולת הווידג'ט.",
202
+ uploadAvatar: "החלפת תמונה",
203
+ removeAvatar: "הסרת תמונה",
204
+ avatarUploading: "מעלה…",
205
+ preferencesHeading: "העדפות",
206
+ preferenceLanguage: "שפה",
207
+ preferenceDesktopNotifications: "התראות שולחן עבודה",
208
+ preferenceDesktopNotificationsHint: "קבלו התראת מערכת כשהווידג'ט לא במוקד.",
209
+ preferenceThemeMode: "ערכת נושא",
210
+ themeAuto: "כמו במערכת",
211
+ themeLight: "בהירה",
212
+ themeDark: "כהה",
213
+ themeLocked: "ערכת הנושא נקבעת על ידי המפעיל.",
214
+ pinnedHint: "נקבע על ידי המפעיל — לא ניתן לעריכה.",
215
+ requiredHint: "חובה",
216
+ invalidEmail: "אנא הזינו כתובת דוא\"ל תקינה.",
217
+ invalidPhone: "השתמשו בפורמט בינלאומי, למשל +14155552671.",
218
+ noFields: "אין עדיין מה לערוך כאן.",
219
+ save: "שמירת שינויים",
220
+ saving: "שומר…",
221
+ cancel: "ביטול",
222
+ saved: "השינויים נשמרו.",
223
+ loading: "טוען פרופיל…",
224
+ loadError: "לא הצלחנו לטעון את הפרופיל. נסו שוב.",
225
+ retry: "ניסיון חוזר",
226
+ errorFieldNotAllowed: "השדה הזה לא ניתן לעריכה בווידג'ט הזה. נסו לרענן.",
227
+ errorFieldPinned: "השדה הזה נעול על ידי החשבון שלכם.",
228
+ errorFieldInvalid: "חלק מהערכים אינם תקינים. בדקו את השדות המודגשים.",
229
+ errorThemeLocked: "ערכת הנושא נעולה על ידי המפעיל.",
230
+ errorFeatureDisabled: "עריכת הפרופיל הושבתה על ידי המפעיל.",
231
+ errorGeneric: "לא הצלחנו לשמור את השינויים. נסו שוב.",
232
+ notificationsBlocked: "התראות חסומות בדפדפן. עדכנו את הרשאות האתר כדי להפעיל.",
233
+ notificationsRequest: "אשרו התראות כשהדפדפן יבקש כדי להפעיל את זה.",
234
+ systemFields: {
235
+ avatar: "תמונה",
236
+ wexioId: "Wexio ID",
237
+ telegramId: "Telegram ID",
238
+ whatsappId: "WhatsApp ID",
239
+ viberId: "Viber ID",
240
+ instagramId: "Instagram ID",
241
+ optInWhatsapp: "אישור WhatsApp",
242
+ webVerified: "מבקר מאומת",
243
+ firstName: "שם פרטי",
244
+ lastName: "שם משפחה",
245
+ username: "שם משתמש",
246
+ language: "שפה",
247
+ email: "דוא\"ל",
248
+ phone: "טלפון",
249
+ company: "חברה",
250
+ location: "מיקום",
251
+ isValid: "חשבון תקין",
252
+ chatStatus: "סטטוס שיחה",
253
+ chatCategory: "קטגוריית שיחה",
254
+ priority: "עדיפות",
255
+ leadSource: "מקור הליד",
256
+ leadStatus: "סטטוס הליד",
257
+ interestLevel: "רמת עניין",
258
+ productInterest: "עניין במוצר",
259
+ budgetRange: "תקציב",
260
+ purchaseTimeline: "לוח זמנים לרכישה",
261
+ lastMessageSentAt: "הודעה אחרונה שנשלחה",
262
+ lastMessageReceivedAt: "הודעה אחרונה שהתקבלה",
263
+ lastSeenAt: "ביקור אחרון",
264
+ firstMessageReceivedAt: "פנייה ראשונה",
265
+ isBlocked: "חסום",
266
+ registrationDate: "תאריך הרשמה",
267
+ aiAvailable: "סיוע AI",
268
+ totalMessagesSent: "הודעות שנשלחו",
269
+ totalMessagesReceived: "הודעות שהתקבלו",
270
+ totalAiMessagesSent: "הודעות AI שנשלחו",
271
+ totalBotMessagesSent: "הודעות בוט שנשלחו",
272
+ totalUserMessagesSent: "הודעות נציג שנשלחו",
273
+ flowCompletionRate: "אחוז השלמת תהליכים",
274
+ lastFlowCompleted: "תהליך אחרון שהושלם",
275
+ totalFlowsStarted: "תהליכים שהתחילו",
276
+ totalFlowsCompleted: "תהליכים שהושלמו"
277
+ },
278
+ systemFieldOptions: {
279
+ chatStatus: {
280
+ ISSUE: "תקלה",
281
+ RESOLVED: "טופל",
282
+ PENDING: "ממתין",
283
+ IN_PROGRESS: "בתהליך",
284
+ CLOSED: "סגור"
285
+ },
286
+ chatCategory: {
287
+ SALES: "מכירות",
288
+ SUPPORT: "תמיכה",
289
+ BILLING: "חיוב",
290
+ FEEDBACK: "משוב",
291
+ GENERAL: "כללי",
292
+ OTHER: "אחר"
293
+ },
294
+ priority: {
295
+ LOW: "נמוכה",
296
+ MEDIUM: "בינונית",
297
+ HIGH: "גבוהה",
298
+ URGENT: "דחופה"
299
+ },
300
+ leadStatus: {
301
+ NEW: "חדש",
302
+ CONTACTED: "נוצר קשר",
303
+ QUALIFIED: "מוכשר",
304
+ NEGOTIATING: "במשא ומתן",
305
+ WON: "נסגר בהצלחה",
306
+ LOST: "אבד"
307
+ },
308
+ interestLevel: {
309
+ LOW: "נמוכה",
310
+ MEDIUM: "בינונית",
311
+ HIGH: "גבוהה",
312
+ VERY_HIGH: "גבוהה מאוד"
313
+ }
314
+ }
315
+ }, y = {
316
+ tabs: n,
317
+ header: r,
318
+ launcher: i,
319
+ home: a,
320
+ messages: o,
321
+ prechat: s,
322
+ help: c,
323
+ news: l,
324
+ reactions: u,
325
+ languageSelector: d,
326
+ branding: f,
327
+ sound: p,
328
+ article: m,
329
+ peek: h,
330
+ lightbox: g,
331
+ authError: _,
332
+ profile: v
333
+ };
334
+ //#endregion
335
+ export { t as n, y as t };
336
+
337
+ //# sourceMappingURL=widget-react-D3ZFysG9.js.map
@@ -0,0 +1,285 @@
1
+ import "react";
2
+ import "react-dom";
3
+ import "react/jsx-runtime";
4
+ import "react-dom/client";
5
+ import { i as e } from "./widget-react-DE7AVrCo.js";
6
+ import { D as t, S as n, f as r, p as i, r as a } from "./widget-react-A2LiLuw0.js";
7
+ import { a as o, c as ee, i as s, l as c, n as l, o as u, r as te, s as d, t as f } from "./widget-react-DxkbC0xE.js";
8
+ import { f as p, g as m, l as h, n as g, r as _, u as v } from "./widget-react-CB6Jxluy.js";
9
+ import { i as y, n as b } from "./widget-react-BxvW64LH.js";
10
+ import { t as x } from "./widget-react-D8TPnM9r.js";
11
+ import { useEffect as S, useMemo as C, useState as w } from "react";
12
+ import { jsx as T, jsxs as E } from "react/jsx-runtime";
13
+ //#region components/widget/help-article-view/helpers.ts
14
+ function ne(e) {
15
+ let t = (e) => Array.isArray(e) ? e : [];
16
+ return {
17
+ id: String(e._id ?? ""),
18
+ title: typeof e.title == "string" ? e.title : "",
19
+ excerpt: typeof e.excerpt == "string" ? e.excerpt : "",
20
+ content: typeof e.content == "string" ? e.content : "",
21
+ contentFormat: e.contentFormat === d.HTML ? d.HTML : d.MARKDOWN,
22
+ authors: t(e.authors).filter((e) => !!e && typeof e == "object").map((e) => ({
23
+ _id: String(e._id ?? ""),
24
+ name: typeof e.name == "string" ? e.name : null,
25
+ photo: e.photo
26
+ })),
27
+ tags: t(e.tags).filter((e) => !!e && typeof e == "object").map((e) => ({
28
+ _id: String(e._id ?? ""),
29
+ slug: typeof e.slug == "string" ? e.slug : "",
30
+ label: typeof e.label == "string" ? e.label : ""
31
+ }))
32
+ };
33
+ }
34
+ //#endregion
35
+ //#region components/widget/help-article-view/index.tsx
36
+ function D({ slug: b, locale: D, isDummy: k, onHandoff: A, onOpenArticle: j, onOpenTranslation: M, onTitleResolved: N }) {
37
+ let P = y("help"), F = y("demo"), I = t(), { config: L } = n(), R = L.messenger?.showRelatedHelpArticles ?? !0, z = L.messenger?.showReactionCounts ?? !0, B = x(), [V, H] = w(D), U = o(V, F), W = C(() => {
38
+ if (k) return null;
39
+ let e = I.previewData?.helpArticles;
40
+ return Array.isArray(e) ? e.find((e) => e && typeof e == "object" && e.slug === b) ?? null : null;
41
+ }, [
42
+ I.previewData,
43
+ k,
44
+ b
45
+ ]), G = !!W, { data: K, loading: q } = _({
46
+ variables: { args: {
47
+ slug: b,
48
+ locale: D
49
+ } },
50
+ skip: k || G
51
+ }), [J] = g(), Y = C(() => k ? p(U).find((e) => e.slug === b) : null, [
52
+ k,
53
+ b,
54
+ U
55
+ ]), X = k ? Y ? {
56
+ id: Y.id,
57
+ title: Y.title,
58
+ excerpt: Y.excerpt,
59
+ content: Y.contentMarkdown,
60
+ contentFormat: d.MARKDOWN,
61
+ authors: Y.authors,
62
+ tags: Y.tags,
63
+ reactionCounts: null,
64
+ locale: V,
65
+ translations: []
66
+ } : null : G && W ? {
67
+ ...ne(W),
68
+ reactionCounts: W.reactionCounts ?? null,
69
+ locale: D,
70
+ translations: []
71
+ } : K?.visitorHelpArticle ? {
72
+ id: K.visitorHelpArticle._id,
73
+ title: K.visitorHelpArticle.title,
74
+ excerpt: K.visitorHelpArticle.excerpt ?? "",
75
+ content: K.visitorHelpArticle.content,
76
+ contentFormat: K.visitorHelpArticle.contentFormat,
77
+ authors: K.visitorHelpArticle.authors,
78
+ tags: K.visitorHelpArticle.tags,
79
+ reactionCounts: K.visitorHelpArticle.reactionCounts ?? null,
80
+ locale: K.visitorHelpArticle.locale,
81
+ translations: K.visitorHelpArticle.translations
82
+ } : null, { data: Z } = h({
83
+ variables: {
84
+ articleId: X?.id ?? "",
85
+ limit: 5,
86
+ locale: D
87
+ },
88
+ skip: k || G || !X?.id || !R
89
+ }), re = C(() => {
90
+ if (!G || !X?.id) return [];
91
+ let e = (I.previewData?.helpArticles ?? []).filter((e) => !!e && typeof e == "object"), t = new Set((X.tags ?? []).map((e) => typeof e == "object" && e && "slug" in e ? String(e.slug) : null).filter((e) => !!e)), n = (() => {
92
+ let e = W;
93
+ if (!e) return null;
94
+ let t = e.folderId;
95
+ if (typeof t == "string") return t;
96
+ let n = e.folder;
97
+ if (n && typeof n == "object" && "_id" in n) {
98
+ let e = n._id;
99
+ return typeof e == "string" ? e : null;
100
+ }
101
+ return null;
102
+ })();
103
+ return e.filter((e) => String(e._id ?? "") !== X.id).map((e) => {
104
+ let r = typeof e.folderId == "string" ? e.folderId : e.folder && typeof e.folder == "object" && "_id" in e.folder ? String(e.folder._id ?? "") : null, i = Array.isArray(e.tags) ? e.tags.map((e) => typeof e == "object" && e && "slug" in e ? String(e.slug) : null).filter((e) => !!e) : [];
105
+ return {
106
+ raw: e,
107
+ score: (n && r === n ? 2 : 0) + i.filter((e) => t.has(e)).length
108
+ };
109
+ }).filter((e) => e.score > 0).sort((e, t) => t.score - e.score).slice(0, 5).map(({ raw: e }) => ({
110
+ _id: String(e._id ?? ""),
111
+ title: typeof e.title == "string" ? e.title : "",
112
+ slug: typeof e.slug == "string" ? e.slug : "",
113
+ excerpt: typeof e.excerpt == "string" ? e.excerpt : null
114
+ }));
115
+ }, [
116
+ G,
117
+ X,
118
+ W,
119
+ I.previewData
120
+ ]), Q = G ? re : Z?.visitorHelpRelated ?? [], ie = k || G ? null : K?.visitorHelpArticle?.viewerReaction ?? null, ae = !k && !G && K?.visitorHelpArticle ? [K.visitorHelpArticle._id, ...(K.visitorHelpArticle.translations ?? []).map((e) => e._id)] : X?.id ? [X.id] : [];
121
+ S(() => {
122
+ k || !X?.id || !m() || J({ variables: { articleId: X.id } }).catch(() => {});
123
+ }, [
124
+ X?.id,
125
+ k,
126
+ J
127
+ ]), u(X?.title, N);
128
+ let oe = () => A();
129
+ if (!q && !X) return /* @__PURE__ */ T("div", {
130
+ className: "flex flex-1 flex-col items-center justify-center px-6 py-12",
131
+ children: /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T(i, {
132
+ className: "py-8 text-center",
133
+ children: /* @__PURE__ */ T("p", {
134
+ className: "text-sm font-semibold text-wx-fg",
135
+ children: P("articleNotFound")
136
+ })
137
+ }) })
138
+ });
139
+ let se = D.split("-")[0].toLowerCase(), $ = X ? X.locale.split("-")[0].toLowerCase() : null;
140
+ return !k && !G && !L.contentLocaleFallback && $ !== null && $ !== se ? /* @__PURE__ */ T("div", {
141
+ className: "flex flex-1 flex-col items-center justify-center px-6 py-12",
142
+ children: /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T(i, {
143
+ className: "py-8 text-center",
144
+ children: /* @__PURE__ */ T("p", {
145
+ className: "text-sm font-semibold text-wx-fg",
146
+ children: P("articleNotTranslated")
147
+ })
148
+ }) })
149
+ }) : X ? /* @__PURE__ */ T(a, {
150
+ className: "flex-1",
151
+ children: /* @__PURE__ */ E("div", {
152
+ className: "flex flex-col px-5 pt-5 pb-12",
153
+ children: [
154
+ /* @__PURE__ */ T("h2", {
155
+ className: "text-xl leading-tight font-bold text-wx-fg",
156
+ children: X.title
157
+ }),
158
+ X.authors.length > 0 && /* @__PURE__ */ E("p", {
159
+ className: "mt-2 flex items-center gap-2 text-xs text-wx-fg-muted",
160
+ children: [/* @__PURE__ */ T("span", {
161
+ className: "flex -space-x-1.5",
162
+ children: X.authors.slice(0, 3).map((e) => /* @__PURE__ */ T("span", {
163
+ className: "h-5 w-5 overflow-hidden rounded-full bg-wx-bg-elevated ring-1 ring-wx-bg",
164
+ "aria-hidden": "true",
165
+ children: e.photo?.url ? /* @__PURE__ */ T("img", {
166
+ src: e.photo.url,
167
+ alt: "",
168
+ className: "h-full w-full object-cover"
169
+ }) : /* @__PURE__ */ T("span", {
170
+ className: "flex h-full w-full items-center justify-center text-[10px] font-semibold uppercase text-wx-fg-muted",
171
+ children: (e.name ?? "?").charAt(0)
172
+ })
173
+ }, e._id))
174
+ }), /* @__PURE__ */ T("span", { children: P("writtenBy", { names: X.authors.map((e) => e.name ?? "").filter(Boolean).join(", ") }) })]
175
+ }),
176
+ X.tags.length > 0 && /* @__PURE__ */ T("div", {
177
+ className: "mt-2 flex flex-wrap gap-1",
178
+ children: X.tags.map((e) => /* @__PURE__ */ T("span", {
179
+ className: "rounded-full bg-wx-bg-elevated px-2 py-0.5 text-[11px] font-medium text-wx-fg-muted",
180
+ children: e.label
181
+ }, e._id))
182
+ }),
183
+ X.excerpt && /* @__PURE__ */ T("p", {
184
+ className: "mt-2 mb-5 text-sm text-wx-fg-muted",
185
+ children: X.excerpt
186
+ }),
187
+ /* @__PURE__ */ T(te, {
188
+ content: X.content,
189
+ isHtml: X.contentFormat === d.HTML || c(X.content),
190
+ markdownMarginClass: "mt-3"
191
+ }),
192
+ /* @__PURE__ */ E(v, {
193
+ type: "button",
194
+ variant: "solid",
195
+ size: "lg",
196
+ className: "mt-6 w-full shrink-0 min-h-12",
197
+ onClick: oe,
198
+ ...B.parentHandlers,
199
+ children: [/* @__PURE__ */ T(e, {
200
+ ref: B.iconRef,
201
+ size: 16
202
+ }), /* @__PURE__ */ T("span", { children: P("unresolvedCta") })]
203
+ }),
204
+ X.id && /* @__PURE__ */ T(f, {
205
+ surface: ee.HELP,
206
+ itemId: X.id,
207
+ reactionCounts: X.reactionCounts,
208
+ viewerReaction: ie,
209
+ groupItemIds: ae,
210
+ isDummy: k,
211
+ showCounts: z,
212
+ className: "mt-4"
213
+ }),
214
+ /* @__PURE__ */ T(l, {
215
+ currentLocale: k ? V : X.locale,
216
+ locales: k ? [...s] : X.translations.map((e) => e.locale),
217
+ allowedLocales: k ? void 0 : L.supportedLocales,
218
+ onSelect: k ? (e) => H(e) : (e) => {
219
+ let t = X.translations.find((t) => t.locale === e);
220
+ t && M?.(t.slug, t.locale);
221
+ },
222
+ className: "mt-6"
223
+ }),
224
+ R && Q.length > 0 && /* @__PURE__ */ E("section", {
225
+ className: "mt-6",
226
+ children: [/* @__PURE__ */ T("p", {
227
+ className: "mb-2 text-xs font-semibold tracking-wide text-wx-fg-muted uppercase",
228
+ children: P("relatedTitle")
229
+ }), /* @__PURE__ */ T("ul", {
230
+ className: "flex flex-col gap-1.5",
231
+ children: Q.map((e) => /* @__PURE__ */ T("li", { children: /* @__PURE__ */ E("button", {
232
+ type: "button",
233
+ onClick: () => j?.(e.slug),
234
+ className: "flex w-full flex-col items-start gap-0.5 rounded-wx-lg bg-wx-bg-elevated px-3 py-2 text-left transition-colors hover:bg-wx-bg-elevated/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-wx-primary",
235
+ children: [/* @__PURE__ */ T("span", {
236
+ className: "block truncate text-sm font-medium text-wx-fg",
237
+ children: e.title
238
+ }), e.excerpt && /* @__PURE__ */ T("span", {
239
+ className: "line-clamp-1 block text-xs text-wx-fg-muted",
240
+ children: e.excerpt
241
+ })]
242
+ }) }, e._id))
243
+ })]
244
+ })
245
+ ]
246
+ })
247
+ }) : /* @__PURE__ */ T(O, {});
248
+ }
249
+ function O() {
250
+ return /* @__PURE__ */ T(a, {
251
+ className: "flex-1",
252
+ children: /* @__PURE__ */ E("div", {
253
+ className: "flex flex-col px-5 pt-5 pb-12",
254
+ "aria-busy": "true",
255
+ "aria-live": "polite",
256
+ children: [
257
+ /* @__PURE__ */ E("div", {
258
+ className: "animate-pulse space-y-2.5",
259
+ children: [/* @__PURE__ */ T("div", { className: "h-5 w-3/4 rounded-md bg-wx-bg-elevated" }), /* @__PURE__ */ T("div", { className: "h-5 w-1/2 rounded-md bg-wx-bg-elevated" })]
260
+ }),
261
+ /* @__PURE__ */ E("div", {
262
+ className: "mt-4 flex items-center gap-2 animate-pulse",
263
+ children: [/* @__PURE__ */ T("div", { className: "h-5 w-5 rounded-full bg-wx-bg-elevated" }), /* @__PURE__ */ T("div", { className: "h-3 w-32 rounded-md bg-wx-bg-elevated" })]
264
+ }),
265
+ /* @__PURE__ */ T("div", {
266
+ className: "mt-6 space-y-2.5 animate-pulse",
267
+ children: [
268
+ "w-full",
269
+ "w-11/12",
270
+ "w-10/12",
271
+ "w-full",
272
+ "w-9/12",
273
+ "w-full",
274
+ "w-11/12",
275
+ "w-7/12"
276
+ ].map((e, t) => /* @__PURE__ */ T("div", { className: b("h-3 rounded-md bg-wx-bg-elevated", e) }, t))
277
+ })
278
+ ]
279
+ })
280
+ });
281
+ }
282
+ //#endregion
283
+ export { D as HelpArticleView };
284
+
285
+ //# sourceMappingURL=widget-react-DAT3UgdW2.js.map