@bigbinary/neeto-rules-frontend 2.5.51 → 2.5.53
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.
- package/README.md +0 -2
- package/app/javascript/src/translations/hu.json +390 -0
- package/dist/.ready +1 -0
- package/dist/CannedResponsesPane.js +5 -13
- package/dist/CannedResponsesPane.js.map +1 -1
- package/dist/NeetoRules.js +10 -10
- package/dist/NeetoRules.js.map +1 -1
- package/dist/NeetoRulesForm.js +45 -52
- package/dist/NeetoRulesForm.js.map +1 -1
- package/dist/RulePreview.js +1 -2
- package/dist/RulePreview.js.map +1 -1
- package/dist/RulesReorder.js +3 -3
- package/dist/cjs/CannedResponsesPane.js +3 -11
- package/dist/cjs/CannedResponsesPane.js.map +1 -1
- package/dist/cjs/NeetoRules.js +7 -7
- package/dist/cjs/NeetoRules.js.map +1 -1
- package/dist/cjs/NeetoRulesForm.js +36 -43
- package/dist/cjs/NeetoRulesForm.js.map +1 -1
- package/dist/cjs/RulePreview.js +1 -2
- package/dist/cjs/RulePreview.js.map +1 -1
- package/dist/cjs/RulesReorder.js +3 -3
- package/dist/cjs/index.js +3 -3
- package/dist/constants-BjXYr8nk.js.map +1 -1
- package/dist/constants-C_bfl8XZ.js.map +1 -1
- package/dist/{index-D1EFD4U6.js → index-Bh-zrY6W.js} +22 -14
- package/dist/index-Bh-zrY6W.js.map +1 -0
- package/dist/{index-B2URQ5Q-.js → index-CfUbVR_5.js} +25 -17
- package/dist/index-CfUbVR_5.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/useActiveField-D2fv_EeJ.js.map +1 -1
- package/dist/useActiveField-DunVO8SS.js.map +1 -1
- package/dist/{useAutomationRulesApi-BTjEL2XD.js → useAutomationRulesApi-C1T2E1AN.js} +2 -2
- package/dist/{useAutomationRulesApi-BTjEL2XD.js.map → useAutomationRulesApi-C1T2E1AN.js.map} +1 -1
- package/dist/{useAutomationRulesApi-BxBbjNga.js → useAutomationRulesApi-C9I3wUZ8.js} +2 -2
- package/dist/{useAutomationRulesApi-BxBbjNga.js.map → useAutomationRulesApi-C9I3wUZ8.js.map} +1 -1
- package/dist/useUtilityStore-BV6jVHMM.js.map +1 -1
- package/dist/useUtilityStore-_59l0Cmi.js.map +1 -1
- package/dist/utils-B3roKiff.js.map +1 -1
- package/dist/utils-CfCq6Ltz.js.map +1 -1
- package/package.json +28 -29
- package/dist/index-B2URQ5Q-.js.map +0 -1
- package/dist/index-D1EFD4U6.js.map +0 -1
package/README.md
CHANGED
|
@@ -59,8 +59,6 @@ The Engine is used to manage automation rules feature within neeto applications.
|
|
|
59
59
|
```ruby
|
|
60
60
|
mount NeetoRulesEngine::Engine, at: "/neeto_rules"
|
|
61
61
|
```
|
|
62
|
-
**NOTE: The mount point must be `/neeto_rules` and cannot be changed to any
|
|
63
|
-
other path.**
|
|
64
62
|
|
|
65
63
|
4. Run the following command to copy the migrations from the engine to the host
|
|
66
64
|
application:
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
{
|
|
2
|
+
"neetoRules": {
|
|
3
|
+
"common": {
|
|
4
|
+
"title": "Automatizálási szabályok",
|
|
5
|
+
"collapseSidebar": "Oldalsáv összeomlása",
|
|
6
|
+
"back": "Vissza",
|
|
7
|
+
"automationRuleWithCount_one": "{{count}} automatizálási szabály",
|
|
8
|
+
"automationRuleWithCount_other": "{{count}} automatizálási szabály",
|
|
9
|
+
"events": "Események",
|
|
10
|
+
"name": "Név",
|
|
11
|
+
"description": "Leírás",
|
|
12
|
+
"conditions": "Feltételek",
|
|
13
|
+
"condition": "Feltétel",
|
|
14
|
+
"preview": "Előnézet",
|
|
15
|
+
"addAction": "Akció hozzáadása",
|
|
16
|
+
"actions": "Akciók",
|
|
17
|
+
"saveChange": "Változások mentése",
|
|
18
|
+
"value": "Érték",
|
|
19
|
+
"email": "Email",
|
|
20
|
+
"action": "Akció",
|
|
21
|
+
"addItem": "Elem hozzáadása",
|
|
22
|
+
"emailId": "Email cím",
|
|
23
|
+
"emailIds": "Email címek",
|
|
24
|
+
"assign": "Hozzárendel {{what}}",
|
|
25
|
+
"then": "Akkor",
|
|
26
|
+
"and": "és {{what}}",
|
|
27
|
+
"to": "hoz",
|
|
28
|
+
"noOptions": "Nincsenek lehetőségek",
|
|
29
|
+
"by": "által",
|
|
30
|
+
"when": "Amikor",
|
|
31
|
+
"if": "Ha",
|
|
32
|
+
"or": "vagy",
|
|
33
|
+
"search": "Keresés",
|
|
34
|
+
"as": "mint",
|
|
35
|
+
"delete": "Törlés",
|
|
36
|
+
"viewMore": "Továbbiak megtekintése",
|
|
37
|
+
"viewLess": "Kevesebb megtekintése",
|
|
38
|
+
"sms": "SMS",
|
|
39
|
+
"phoneNumber": "Telefonszám",
|
|
40
|
+
"phoneNumbers": "Telefonszámok",
|
|
41
|
+
"data": "Adatok",
|
|
42
|
+
"reorder": "Újracsoportosítás",
|
|
43
|
+
"at": "nál",
|
|
44
|
+
"apply": "Alkalmaz és küld",
|
|
45
|
+
"addDelay": "Késleltetés hozzáadása",
|
|
46
|
+
"andIf": "és ha",
|
|
47
|
+
"orIf": "vagy ha",
|
|
48
|
+
"andWhen": "és amikor",
|
|
49
|
+
"orWhen": "vagy amikor",
|
|
50
|
+
"andThen": "és akkor"
|
|
51
|
+
},
|
|
52
|
+
"cannedResponses": {
|
|
53
|
+
"title": "Kész válaszok"
|
|
54
|
+
},
|
|
55
|
+
"form": {
|
|
56
|
+
"noEvents": "Egy esemény nélkül a szabály óránként fog működni.",
|
|
57
|
+
"addEvent": "Esemény hozzáadása",
|
|
58
|
+
"noCondition": "Nincsenek a megadott feltételeknek megfelelő jegyek",
|
|
59
|
+
"noTicketFields": "Nincsenek további feltételek.",
|
|
60
|
+
"subjectText": "A jegy tárgyából generálódik.",
|
|
61
|
+
"note": "Megjegyzés",
|
|
62
|
+
"thisHappens": "ez történik",
|
|
63
|
+
"addValue": "érték hozzáadása",
|
|
64
|
+
"doThis": "ezt csináld",
|
|
65
|
+
"selectValues": "válaszd ki az értékeket",
|
|
66
|
+
"selectValue": "válaszd ki az értéket",
|
|
67
|
+
"list": "Lista",
|
|
68
|
+
"selectVerb": "válaszd ki a szót",
|
|
69
|
+
"selectField": "válaszd ki a mezőt",
|
|
70
|
+
"addCondition": "Feltétel hozzáadása",
|
|
71
|
+
"selectDate": "Dátum kiválasztása",
|
|
72
|
+
"selectTime": "Idő kiválasztása",
|
|
73
|
+
"delayExecutionBy": "Késleltetett végrehajtás",
|
|
74
|
+
"addConditionDescription": "Adj hozzá egy feltételt, amelynek teljesülnie kell a szabály futtatásához.",
|
|
75
|
+
"addConditionVerbAndValueDescription": "Add meg a feltételes kiváltót, amely életre hívja a szabályt.",
|
|
76
|
+
"addActionDescription": "Adj hozzá egy akciót, amely a szabály eredményeként történik.",
|
|
77
|
+
"addActionSubItemDescription": "Add meg a részleteket arról, hogy ez az akció hogyan történjen.",
|
|
78
|
+
"addEventDescription": "Adj hozzá egy kiváltót, amely életre hívja a szabályt.",
|
|
79
|
+
"actionTriggeredBy": "A kiváltott akció",
|
|
80
|
+
"addPerformerDescription": "Add meg, hogy ki az, aki a szabályt beindító akciót végrehajtja.",
|
|
81
|
+
"aiGeneratedName": "Hamarosan elérhető lesz egy AI által generált név."
|
|
82
|
+
},
|
|
83
|
+
"labels": {
|
|
84
|
+
"active": "Aktív",
|
|
85
|
+
"body": "Tartalom",
|
|
86
|
+
"selectValues": "Válaszd ki az értékeket",
|
|
87
|
+
"selectValue": "Válaszd ki az értéket",
|
|
88
|
+
"multipleValues": "Több érték",
|
|
89
|
+
"id": "ID",
|
|
90
|
+
"name": "Név",
|
|
91
|
+
"firstName": "Keresztnév",
|
|
92
|
+
"lastName": "Vezetéknév",
|
|
93
|
+
"subdomain": "Aldomain",
|
|
94
|
+
"number": "Szám",
|
|
95
|
+
"source": "Forrás/Csatorna",
|
|
96
|
+
"url": "URL/Link",
|
|
97
|
+
"customerURL": "Vevő URL/Link",
|
|
98
|
+
"createdAt": "Létrehozva",
|
|
99
|
+
"updatedAt": "Frissítve",
|
|
100
|
+
"ticket": "Jegy",
|
|
101
|
+
"requester": "Kérvényező",
|
|
102
|
+
"organization": "Munkaterület",
|
|
103
|
+
"memberOrRequester": "Tag vagy Kérvényező",
|
|
104
|
+
"system": "Rendszer",
|
|
105
|
+
"ui": "UI",
|
|
106
|
+
"email": "Email",
|
|
107
|
+
"twitter": "Twitter",
|
|
108
|
+
"chat": "Csevegés",
|
|
109
|
+
"none": "Nincs",
|
|
110
|
+
"questions": "Kérdések",
|
|
111
|
+
"incident": "Incidens",
|
|
112
|
+
"problem": "Probléma",
|
|
113
|
+
"featureRequest": "Funkciókérés",
|
|
114
|
+
"refund": "Visszatérítés",
|
|
115
|
+
"low": "Alacsony",
|
|
116
|
+
"medium": "Közepes",
|
|
117
|
+
"high": "Magas",
|
|
118
|
+
"urgent": "Sürgős",
|
|
119
|
+
"any": "Bármely",
|
|
120
|
+
"happy": "Boldog",
|
|
121
|
+
"neutral": "Semleges",
|
|
122
|
+
"unhappy": "Boldogtalan",
|
|
123
|
+
"yes": "Igen",
|
|
124
|
+
"no": "Nem",
|
|
125
|
+
"member": "Tag",
|
|
126
|
+
"admin": "Admin",
|
|
127
|
+
"created": "Létrehozva",
|
|
128
|
+
"channel": "Csatorna",
|
|
129
|
+
"customerEmail": "Vásárló e-mail",
|
|
130
|
+
"subject": "Tárgy",
|
|
131
|
+
"description": "Leírás",
|
|
132
|
+
"latestComment": "Legutóbbi megjegyzés",
|
|
133
|
+
"anyComment": "Bármely megjegyzés",
|
|
134
|
+
"subjectOrDescription": "Tárgy vagy leírás",
|
|
135
|
+
"status": "Állapot",
|
|
136
|
+
"category": "Kategória",
|
|
137
|
+
"priority": "Prioritás",
|
|
138
|
+
"company": "Cég",
|
|
139
|
+
"assignedMember": "Kiosztott tag",
|
|
140
|
+
"assignedTeam": "Kiosztott csapat",
|
|
141
|
+
"mailbox": "Postaláda",
|
|
142
|
+
"tags": "Címkék",
|
|
143
|
+
"submitterRole": "Beküldő szerepe",
|
|
144
|
+
"hoursSince": {
|
|
145
|
+
"created": "Órák a létrehozás óta",
|
|
146
|
+
"updatedBy": {
|
|
147
|
+
"memberOrRequester": "Órák a frissítéstől, Tag vagy Kérvényező által",
|
|
148
|
+
"requester": "Órák a frissítéstől, Kérvényező által",
|
|
149
|
+
"member": "Órák a frissítéstől, Tag által"
|
|
150
|
+
},
|
|
151
|
+
"firstAssigned": "Órák az első kiosztás óta",
|
|
152
|
+
"lastAssigned": "Órák az utolsó kiosztás óta",
|
|
153
|
+
"new": "Órák az új óta",
|
|
154
|
+
"open": "Órák a megnyitás óta",
|
|
155
|
+
"onHold": "Órák a felfüggesztés óta",
|
|
156
|
+
"waitingOnCustomer": "Órák az ügyfélre várva",
|
|
157
|
+
"closed": "Órák a lezárás óta",
|
|
158
|
+
"spammed": "Órák a spam óta",
|
|
159
|
+
"trashed": "Órák a törlés óta"
|
|
160
|
+
},
|
|
161
|
+
"feedback": "Visszajelzés",
|
|
162
|
+
"memberOutOfOffice": "Tag távol van az irodából",
|
|
163
|
+
"unassigned": "Nincs kiosztva",
|
|
164
|
+
"checked": "Jelölve",
|
|
165
|
+
"unchecked": "Nincs jelölve",
|
|
166
|
+
"text": "Szöveg",
|
|
167
|
+
"ruleSummary": "Automatikus szabály összefoglaló",
|
|
168
|
+
"template": "Sablon",
|
|
169
|
+
"remainingItemsCount": "{{count}} további",
|
|
170
|
+
"endpoint": "Végpont",
|
|
171
|
+
"key": "Kulcs",
|
|
172
|
+
"value": "Érték",
|
|
173
|
+
"remove_tags": "Címkék eltávolítása",
|
|
174
|
+
"add_tags": "Címkék hozzáadása",
|
|
175
|
+
"change_status": "Állapot megváltoztatása",
|
|
176
|
+
"add_note": "Megjegyzés hozzáadása",
|
|
177
|
+
"add_reply": "Válasz hozzáadása",
|
|
178
|
+
"assign_group": "Kiosztás {{taxonomies.group.singular}}",
|
|
179
|
+
"assign_agent": "Kiosztás {{taxonomies.agent.singular}}",
|
|
180
|
+
"change_priority": "Prioritás megváltoztatása",
|
|
181
|
+
"selectCannedResponse": "Canned válasz kiválasztása",
|
|
182
|
+
"headers": "Fejlécek",
|
|
183
|
+
"includeHeaders": "Fejlécek belefoglalása",
|
|
184
|
+
"addEntity": "Hozzáadás {{entity}}",
|
|
185
|
+
"templateName": "Sablon név",
|
|
186
|
+
"saveAsTemplate": "Mentés sablonként",
|
|
187
|
+
"viewHelpArticle": "Segítségcikk megtekintése"
|
|
188
|
+
},
|
|
189
|
+
"placeholders": {
|
|
190
|
+
"autoGenerateName": "A név automatikusan generálódik a szabálya alapján, ha üresen hagyja.",
|
|
191
|
+
"if": "Ha",
|
|
192
|
+
"multiSelect": "Példa: sürgős, számlázás",
|
|
193
|
+
"select": "Kiválasztás",
|
|
194
|
+
"emailField": "Írja be az e-mailt, majd nyomja meg az enter-t",
|
|
195
|
+
"selectTags": "Címkék kiválasztása",
|
|
196
|
+
"selectOption": "Válasszon lehetőséget",
|
|
197
|
+
"value": "Érték",
|
|
198
|
+
"selectTemplate": "Sablon kiválasztása",
|
|
199
|
+
"phoneNumberField": "Írja be a telefonszámot, majd nyomja meg az enter-t",
|
|
200
|
+
"searchRules": "Automatikus szabályok keresése",
|
|
201
|
+
"enterDelay": "Késleltetés megadása",
|
|
202
|
+
"chooseOption": "Válasszon egy lehetőséget"
|
|
203
|
+
},
|
|
204
|
+
"buttons": {
|
|
205
|
+
"save": "Mentés",
|
|
206
|
+
"cancel": "Mégse",
|
|
207
|
+
"continue": "Folytatás",
|
|
208
|
+
"cancelNameGeneration": "Névgenerálás megszüntetése"
|
|
209
|
+
},
|
|
210
|
+
"validations": {
|
|
211
|
+
"required": {
|
|
212
|
+
"entity": "{{entity}} kötelező",
|
|
213
|
+
"condition": "Feltétel kötelező",
|
|
214
|
+
"value": "Érték kötelező",
|
|
215
|
+
"email": "E-mail kötelező",
|
|
216
|
+
"action": "Akció kötelező",
|
|
217
|
+
"emailId": "E-mail cím kötelező",
|
|
218
|
+
"field": "Mező kötelező",
|
|
219
|
+
"verb": "Ige kötelező",
|
|
220
|
+
"ruleName": "Szabály név kötelező",
|
|
221
|
+
"name": "A név kötelező",
|
|
222
|
+
"subject": "A téma kötelező",
|
|
223
|
+
"content": "A tartalom kötelező",
|
|
224
|
+
"decimal": "A tizedes szám kötelező",
|
|
225
|
+
"url": "A URL kötelező",
|
|
226
|
+
"body": "A törzs kötelező",
|
|
227
|
+
"text": "A szöveg kötelező"
|
|
228
|
+
},
|
|
229
|
+
"inValidEmail": "Az email érvénytelen",
|
|
230
|
+
"inValidURL": "A URL érvénytelen",
|
|
231
|
+
"noBlankSpaces": "Az érték nem tartalmazhat üres helyet",
|
|
232
|
+
"positiveDecimal": "Az értéknek pozitív tizedes számnak kell lennie.",
|
|
233
|
+
"decimal": "Az értéknek tizedes számnak kell lennie.",
|
|
234
|
+
"atLeastOne": {
|
|
235
|
+
"option": "Legalább egy opció kötelező",
|
|
236
|
+
"email": "Legalább egy email kötelező",
|
|
237
|
+
"tag": "Legalább egy címke kötelező"
|
|
238
|
+
},
|
|
239
|
+
"atLeastOneValue": "Legalább egy érték kötelező",
|
|
240
|
+
"emailList": "Kérjük, győződjön meg róla, hogy minden email érvényes.",
|
|
241
|
+
"positiveInteger": "Az értéknek pozitív egész számnak kell lennie.",
|
|
242
|
+
"positiveNumber": "Az értéknek pozitív egész számnak kell lennie.",
|
|
243
|
+
"number": "Az értéknek egész számnak kell lennie.",
|
|
244
|
+
"leadingSpace": "Nem lehet vezető üres hely",
|
|
245
|
+
"slack": {
|
|
246
|
+
"invalidChannel": "Nem sikerült csatlakozni a csatornához, kérjük, válasszon más lehetőségeket.",
|
|
247
|
+
"errorInIntegration": "Nem sikerült csatlakozni a Slackhoz! Kérjük, ellenőrizze az integrációs beállításokat, vagy távolítsa el ezt az akciót, hogy biztosítsa az automatizálási szabály helyes működését.<br/><br/>Menjen a <button>Slack Integráció</button>."
|
|
248
|
+
},
|
|
249
|
+
"invalidPhoneNumber": "A telefonszám érvénytelen",
|
|
250
|
+
"invalidUrlEntity": "{{entity}} érvényes URL-nek kell lennie",
|
|
251
|
+
"maximumEmails": "Csak legfeljebb {{max}} email cím megengedett",
|
|
252
|
+
"maxDelay": "A késleltetés nem lehet több, mint {{max}}",
|
|
253
|
+
"minDelay": "A késleltetés nem lehet kevesebb, mint {{min}}",
|
|
254
|
+
"invalidJsonBody": "A törzsnek érvényes JSON-nak kell lennie"
|
|
255
|
+
},
|
|
256
|
+
"conditionVerbs": {
|
|
257
|
+
"is": "Van",
|
|
258
|
+
"isNot": "Nincs",
|
|
259
|
+
"contains": "Tartalmaz",
|
|
260
|
+
"doesNotContain": "Nem tartalmaz",
|
|
261
|
+
"containsAnyOf": "Bármelyikből tartalmaz",
|
|
262
|
+
"containsAllOf": "Mindent tartalmaz",
|
|
263
|
+
"containsNoneOf": "Egyet sem tartalmaz",
|
|
264
|
+
"startsWith": "Kezdődik ezzel",
|
|
265
|
+
"endsWith": "Ez végződik",
|
|
266
|
+
"lessThan": "Kevesebb, mint",
|
|
267
|
+
"greaterThan": "Több, mint",
|
|
268
|
+
"anyTime": "Bármikor",
|
|
269
|
+
"during": "Közben",
|
|
270
|
+
"notDuring": "Nem közben",
|
|
271
|
+
"anyOf": "Van",
|
|
272
|
+
"noneOf": "Nincs",
|
|
273
|
+
"isBefore": "Korábban van",
|
|
274
|
+
"isAfter": "Után van"
|
|
275
|
+
},
|
|
276
|
+
"operators": {
|
|
277
|
+
"and": "és",
|
|
278
|
+
"or": "vagy"
|
|
279
|
+
},
|
|
280
|
+
"note": {
|
|
281
|
+
"add": "Megjegyzés hozzáadása",
|
|
282
|
+
"added": "A megjegyzés hozzáadva"
|
|
283
|
+
},
|
|
284
|
+
"ticket": {
|
|
285
|
+
"changeStatus": "A jegy státuszának megváltoztatása",
|
|
286
|
+
"selectStatus": "Állapot kiválasztása",
|
|
287
|
+
"changePriority": "A jegy prioritásának megváltoztatása",
|
|
288
|
+
"selectPriority": "Prioritás kiválasztása",
|
|
289
|
+
"created": "A jegy létrejött",
|
|
290
|
+
"updated": "A jegy frissült",
|
|
291
|
+
"deleted": "A jegy törölve",
|
|
292
|
+
"spammed": "A jegy spamnek minősült"
|
|
293
|
+
},
|
|
294
|
+
"priority": {
|
|
295
|
+
"changed": "A prioritás megváltozott"
|
|
296
|
+
},
|
|
297
|
+
"category": {
|
|
298
|
+
"changed": "A kategória megváltozott"
|
|
299
|
+
},
|
|
300
|
+
"status": {
|
|
301
|
+
"changed": "A státusz megváltozott"
|
|
302
|
+
},
|
|
303
|
+
"team": {
|
|
304
|
+
"updated": "A csapat frissült"
|
|
305
|
+
},
|
|
306
|
+
"member": {
|
|
307
|
+
"updated": "A tag frissült"
|
|
308
|
+
},
|
|
309
|
+
"reply": {
|
|
310
|
+
"added": "A válasz hozzáadva"
|
|
311
|
+
},
|
|
312
|
+
"feedback": {
|
|
313
|
+
"received": "Visszajelzés érkezett"
|
|
314
|
+
},
|
|
315
|
+
"tags": {
|
|
316
|
+
"add": "Címkék hozzáadása",
|
|
317
|
+
"remove": "Címkék eltávolítása"
|
|
318
|
+
},
|
|
319
|
+
"assign": {
|
|
320
|
+
"member": "Tag hozzárendelése",
|
|
321
|
+
"selectMember": "Tag kiválasztása",
|
|
322
|
+
"team": "Csapat hozzárendelése",
|
|
323
|
+
"selectTeam": "Csapat kiválasztása",
|
|
324
|
+
"firstResponder": "Első válaszadóra történő hozzárendelés",
|
|
325
|
+
"lastResponder": "Utolsó válaszadóra történő hozzárendelés",
|
|
326
|
+
"roundRobin": "Tagok hozzárendelése - Körforgásos",
|
|
327
|
+
"loadBalanced": "Tagok hozzárendelése - Terheléselosztás"
|
|
328
|
+
},
|
|
329
|
+
"remove": {
|
|
330
|
+
"member": "Hozzárendelt tag eltávolítása"
|
|
331
|
+
},
|
|
332
|
+
"email": {
|
|
333
|
+
"allMembers": "Email minden tagnak",
|
|
334
|
+
"requester": "Email a kérelmezőnek",
|
|
335
|
+
"assignedMember": "Email a hozzárendelt tagnak",
|
|
336
|
+
"member": "Email a tagnak",
|
|
337
|
+
"selectMember": "Tag kiválasztása"
|
|
338
|
+
},
|
|
339
|
+
"tasksList": {
|
|
340
|
+
"add": "Feladatok lista hozzáadása",
|
|
341
|
+
"select": "Feladatok lista kiválasztása"
|
|
342
|
+
},
|
|
343
|
+
"emailTo": "Email a",
|
|
344
|
+
"slack": {
|
|
345
|
+
"messageTo": "Üzenet a Slackre",
|
|
346
|
+
"selectChannel": "Csatorna kiválasztása",
|
|
347
|
+
"refreshChannelList": "Slack csatornák listájának frissítése"
|
|
348
|
+
},
|
|
349
|
+
"shortcuts": {
|
|
350
|
+
"submit": "Meghatározás benyújtása",
|
|
351
|
+
"cancel": "Mégsem"
|
|
352
|
+
},
|
|
353
|
+
"helpTexts": {
|
|
354
|
+
"phoneNumber": "Példa: +918888888888"
|
|
355
|
+
},
|
|
356
|
+
"messages": {
|
|
357
|
+
"removeInvalidPhoneNumbers": "Kattintson ide az érvénytelen telefonszámok eltávolításához."
|
|
358
|
+
},
|
|
359
|
+
"description": {
|
|
360
|
+
"reorder": "Az automatizálási szabályokat felülről lefelé alkalmazzák."
|
|
361
|
+
},
|
|
362
|
+
"button": {
|
|
363
|
+
"clone": "Másolás",
|
|
364
|
+
"delete": "Törlés",
|
|
365
|
+
"edit": "Szerkesztés",
|
|
366
|
+
"addNew": "Új szabály hozzáadása"
|
|
367
|
+
},
|
|
368
|
+
"deleteAlert": {
|
|
369
|
+
"message": "Ön véglegesen törli az automatizálási szabályt <strong>{{name, anyCase}}</strong>. Ezt nem lehet visszavonni.",
|
|
370
|
+
"title": "Automatizálási szabály törlése?"
|
|
371
|
+
},
|
|
372
|
+
"noData": {
|
|
373
|
+
"title": "Nincsenek megjeleníthető automatizálási szabályok.",
|
|
374
|
+
"helpText": "Itt van, hogyan használhatja <a>az automatizálási szabályokat</a>."
|
|
375
|
+
},
|
|
376
|
+
"tooltips": {
|
|
377
|
+
"rule": {
|
|
378
|
+
"active": "Ez az automatizálási szabály jelenleg Aktív. Váltson Inaktívra.",
|
|
379
|
+
"inactive": "Ez az automatizálási szabály jelenleg Inaktív. Váltson Aktívra."
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"helpText": {
|
|
383
|
+
"description": "Az automatizálási szabályok funkció lehetővé teszi, hogy szabályokat hozzon létre, amelyek specifikus műveleteket automatizálnak, amikor bizonyos események történnek.",
|
|
384
|
+
"addDelay": "Adjon hozzá késleltetést, így a következő műveletek a megadott idő után hajtódnak végre."
|
|
385
|
+
},
|
|
386
|
+
"apiFields": {
|
|
387
|
+
"insertPlaceholder": "Helyezze be a helyettesítőt: {{label}}"
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
package/dist/.ready
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Built at 2026-03-31T07:03:00.905Z
|
|
@@ -3,14 +3,14 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
3
3
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
4
4
|
import { createElement, useState, useRef } from 'react';
|
|
5
5
|
import { Formik, Form } from 'formik';
|
|
6
|
-
import { findBy,
|
|
6
|
+
import { findBy, isPresent, toLabelAndValue } from '@bigbinary/neeto-cist';
|
|
7
7
|
import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
8
8
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
9
9
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
10
10
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
11
11
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
12
12
|
import Select from '@bigbinary/neetoui/formik/Select';
|
|
13
|
-
import { join, not,
|
|
13
|
+
import { join, not, omit, values } from 'ramda';
|
|
14
14
|
import { useTranslation } from 'react-i18next';
|
|
15
15
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
16
16
|
import { t } from 'i18next';
|
|
@@ -21,21 +21,13 @@ import Label from '@bigbinary/neetoui/Label';
|
|
|
21
21
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
22
22
|
|
|
23
23
|
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
24
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t),
|
|
24
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
25
25
|
var CANNED_RESPONSE_INPUT_ACTION_NAMES = ["assign_agent", "assign_group", "remove_tags", "add_tags", "change_priority", "change_status"];
|
|
26
26
|
var CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = ["add_note", "add_reply"];
|
|
27
27
|
var CANNED_RESPONSE_ACTION_LABELS = [].concat(CANNED_RESPONSE_INPUT_ACTION_NAMES, CANNED_RESPONSE_RICH_TEXT_ACTION_NAME).reduce(function (labelObject, actionName) {
|
|
28
28
|
return _objectSpread$2(_objectSpread$2({}, labelObject), {}, _defineProperty({}, actionName, "neetoRules.labels.".concat(actionName)));
|
|
29
29
|
}, {});
|
|
30
30
|
var ACTION_OPTIONS = {
|
|
31
|
-
addNote: "add_note",
|
|
32
|
-
addCommentOrReply: "add_reply",
|
|
33
|
-
addTags: "add_tags",
|
|
34
|
-
removeTags: "remove_tags",
|
|
35
|
-
changePriority: "change_priority",
|
|
36
|
-
changeStatus: "change_status",
|
|
37
|
-
assignAgent: "assign_agent",
|
|
38
|
-
assignGroup: "assign_group",
|
|
39
31
|
assignTicketFieldValue: "assign_field_value"
|
|
40
32
|
};
|
|
41
33
|
var ACTION_TYPES_MAP = {
|
|
@@ -82,7 +74,7 @@ var Action = function Action(_ref) {
|
|
|
82
74
|
};
|
|
83
75
|
|
|
84
76
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
85
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t),
|
|
77
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
86
78
|
var renderActionValue = function renderActionValue(_ref) {
|
|
87
79
|
var actionType = _ref.actionType,
|
|
88
80
|
displayValue = _ref.displayValue;
|
|
@@ -231,7 +223,7 @@ var buildActionOptions = function buildActionOptions(_ref7) {
|
|
|
231
223
|
};
|
|
232
224
|
|
|
233
225
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
234
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
226
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
235
227
|
var Body = function Body(_ref) {
|
|
236
228
|
var actionNameOptions = _ref.actionNameOptions,
|
|
237
229
|
cannedResponse = _ref.cannedResponse,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CannedResponsesPane.js","sources":["../app/javascript/src/components/CannedResponsesPane/constants.js","../app/javascript/src/components/CannedResponsesPane/Action.jsx","../app/javascript/src/components/CannedResponsesPane/utils.jsx","../app/javascript/src/components/CannedResponsesPane/Body.jsx","../app/javascript/src/components/CannedResponsesPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst CANNED_RESPONSE_INPUT_ACTION_NAMES = [\n \"assign_agent\",\n \"assign_group\",\n \"remove_tags\",\n \"add_tags\",\n \"change_priority\",\n \"change_status\",\n];\n\nexport const CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = [\"add_note\", \"add_reply\"];\n\nexport const CANNED_RESPONSE_ACTION_LABELS = [\n ...CANNED_RESPONSE_INPUT_ACTION_NAMES,\n ...CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n].reduce(\n (labelObject, actionName) => ({\n ...labelObject,\n [actionName]: `neetoRules.labels.${actionName}`,\n }),\n {}\n);\n\nexport const ACTION_OPTIONS = {\n addNote: \"add_note\",\n addCommentOrReply: \"add_reply\",\n addTags: \"add_tags\",\n removeTags: \"remove_tags\",\n changePriority: \"change_priority\",\n changeStatus: \"change_status\",\n assignAgent: \"assign_agent\",\n assignGroup: \"assign_group\",\n assignTicketFieldValue: \"assign_field_value\",\n};\n\nexport const ACTION_TYPES_MAP = {\n single_option: \"dropdown\",\n multi_option: \"multiSelect\",\n checkbox: \"dropdown\",\n integer: \"number\",\n};\n\nexport const DEFAULT_CHECKBOX_OPTIONS = [\n { label: t(\"neetoRules.labels.checked\"), value: true },\n { label: t(\"neetoRules.labels.unchecked\"), value: false },\n];\n","import { Editor } from \"neetoeditor\";\nimport { Input, Label } from \"neetoui\";\n\nconst Action = ({ id, label, setFieldValue, value, richText = false }) => {\n if (richText) {\n return (\n <div className=\"mb-4 space-y-2\" key={id}>\n <Label>{label}</Label>\n <Editor\n initialValue={value}\n onChange={newValue => setFieldValue(id, newValue)}\n />\n </div>\n );\n }\n\n return (\n <Input\n {...{ label }}\n disabled\n className=\"mb-4\"\n key={id}\n value={value.replace(/_/g, \" \")}\n />\n );\n};\n\nexport default Action;\n","import { t } from \"i18next\";\nimport { findBy } from \"neetocist\";\nimport { join } from \"ramda\";\n\nimport Action from \"./Action\";\nimport {\n ACTION_OPTIONS,\n ACTION_TYPES_MAP,\n CANNED_RESPONSE_ACTION_LABELS,\n CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n DEFAULT_CHECKBOX_OPTIONS,\n} from \"./constants\";\n\nconst renderActionValue = ({ actionType, displayValue }) => {\n if (actionType === \"multiSelect\") {\n return join(\", \", displayValue);\n }\n\n return displayValue;\n};\n\nconst renderDefaultAction = ({\n id,\n name,\n displayValue,\n setFieldValue,\n trixBody,\n}) => {\n const label = t(CANNED_RESPONSE_ACTION_LABELS[name]);\n\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {\n return (\n <Action {...{ id, label, setFieldValue }} richText value={trixBody} />\n );\n }\n\n return <Action {...{ id, label }} value={displayValue} />;\n};\n\nconst renderCustomAction = ({\n id,\n actionableId,\n displayValue,\n actionOptions,\n setFieldValue,\n}) => {\n const actionName = `ticket_field_${actionableId}`;\n const actionOption = findBy({ value: actionName }, actionOptions);\n const label = actionOption?.label;\n const actionType = actionOption?.type;\n const actionValue = renderActionValue({ actionType, displayValue });\n const isRichText = actionType === \"rich-text\";\n\n return (\n <Action\n {...{ id, label, setFieldValue }}\n richText={isRichText}\n value={actionValue}\n />\n );\n};\n\nconst getActionDropdown = ({ status, teams, members, tags }) => ({\n change_status: status || [],\n assign_group: teams || [],\n assign_agent: members || [],\n add_tags: tags || [],\n remove_tags: tags || [],\n});\n\nconst getActionType = kind => ACTION_TYPES_MAP[kind] || kind;\n\nconst getDropdownOptions = (kind, optionsAttribute) => {\n if ([\"single_option\", \"multi_option\"].includes(kind)) {\n return optionsAttribute.map(({ id, label }) => ({\n label,\n value: id,\n }));\n } else if (kind === \"checkbox\") {\n return [...DEFAULT_CHECKBOX_OPTIONS];\n }\n\n return [];\n};\n\nexport const renderAction = ({\n name,\n id,\n actionableId,\n displayValue,\n actionOptions = [],\n setFieldValue,\n trixBody = \"\",\n}) => {\n const isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;\n\n return isCustomAction\n ? renderCustomAction({\n id,\n actionableId,\n displayValue,\n actionOptions,\n setFieldValue,\n })\n : renderDefaultAction({ id, name, displayValue, setFieldValue, trixBody });\n};\n\nexport const buildActionOptions = ({\n dropdownOptions,\n actionNameOptions,\n variables,\n}) => {\n const actionDropdown = getActionDropdown(dropdownOptions);\n const options = actionNameOptions.map(option => {\n const dropdownOptions = actionDropdown[option.value];\n\n return dropdownOptions ? { ...option, dropdownOptions } : option;\n });\n\n const fields =\n (dropdownOptions.fields || []).filter(\n field => !field.kind.startsWith(\"system_\")\n ) || [];\n\n const fieldOptions = fields.map(\n ({ id, name, kind, data: attributeOptions }) => ({\n label: t(\"neetoRules.common.assign\", { what: name }),\n value: `ticket_field_${id}`,\n type: getActionType(kind),\n variables,\n defaultData: { actionable_id: id, actionable_type: \"Field\" },\n dropdownOptions: getDropdownOptions(kind, attributeOptions),\n })\n );\n\n return [...options, ...fieldOptions];\n};\n","import { Spinner } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { CANNED_RESPONSE_RICH_TEXT_ACTION_NAME } from \"./constants\";\nimport { buildActionOptions, renderAction } from \"./utils\";\n\nconst Body = ({\n actionNameOptions,\n cannedResponse,\n dropdownList,\n isLoading,\n setFieldValue,\n variables,\n}) => {\n const { t } = useTranslation();\n\n const actionOptions = buildActionOptions({\n dropdownOptions: dropdownList,\n actionNameOptions,\n variables,\n });\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const sortedActions = cannedResponse.actions.sort((a, b) => {\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(a.name)) {\n return 1;\n } else if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(b.name)) {\n return -1;\n }\n\n return 0;\n });\n\n return (\n <div className=\"overflow-y-auto\">\n {not(cannedResponse)\n ? t(\"neetoRules.common.preview\")\n : sortedActions?.map(action =>\n renderAction({ ...action, actionOptions, setFieldValue })\n )}\n </div>\n );\n};\nexport default Body;\n","import { useRef, useState } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { isPresent, toLabelAndValue } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { Pane, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Select } from \"neetoui/formik\";\nimport { omit, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"./Body\";\n\nconst CannedResponsesPane = ({\n actionNameOptions,\n areDropdownListsLoading,\n dropdownList,\n isCannedResponsePaneOpen,\n isLoadingPreview,\n macros,\n onApply,\n onCancel,\n previewCannedResponses,\n previewParams,\n variables = [],\n}) => {\n const [cannedResponse, setCannedResponse] = useState(null);\n\n const initialFocusRef = useRef();\n\n const { t } = useTranslation();\n\n const options = macros?.map(({ name, id }) => ({ label: name, value: id }));\n\n const handleSelect = async ({ value }) => {\n await previewCannedResponses(\n { id: value, payload: previewParams },\n { onSuccess: response => setCannedResponse(values(response || {})[0]) }\n );\n };\n\n const handleSubmit = values => {\n onApply({\n cannedResponse,\n setCannedResponse,\n onSettled: onCancel,\n updatedValues: omit([\"cannedResponse\"], values),\n });\n };\n\n const handleCancel = () => {\n onCancel();\n setCannedResponse(null);\n };\n\n return (\n <Pane\n {...{ initialFocusRef }}\n isOpen={isCannedResponsePaneOpen}\n onClose={handleCancel}\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoRules.cannedResponses.title\", PLURAL)}\n </Typography>\n </Pane.Header>\n <Formik\n initialValues={{ cannedResponse: toLabelAndValue(null) }}\n onSubmit={handleSubmit}\n >\n {({ setFieldValue, isSubmitting }) => (\n <Form>\n <Pane.Body>\n <div className=\"flex w-full grow flex-col space-y-4\">\n {areDropdownListsLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <div className=\"flex flex-col gap-y-4\">\n <Select\n {...{ options }}\n isSearchable\n label={t(\"neetoRules.labels.selectCannedResponse\")}\n name=\"cannedResponse\"\n ref={initialFocusRef}\n onChange={value => {\n setFieldValue(\"cannedResponse\", value);\n handleSelect(value);\n }}\n />\n {isPresent(cannedResponse) && (\n <div className=\"flex flex-col\">\n <Body\n {...{\n actionNameOptions,\n cannedResponse,\n dropdownList,\n setFieldValue,\n variables,\n }}\n isLoading={isLoadingPreview}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isSubmitting || isLoadingPreview}\n submitButtonProps={{ label: t(\"neetoRules.common.apply\") }}\n />\n </Pane.Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default CannedResponsesPane;\n"],"names":["CANNED_RESPONSE_INPUT_ACTION_NAMES","CANNED_RESPONSE_RICH_TEXT_ACTION_NAME","CANNED_RESPONSE_ACTION_LABELS","concat","reduce","labelObject","actionName","_objectSpread","_defineProperty","ACTION_OPTIONS","addNote","addCommentOrReply","addTags","removeTags","changePriority","changeStatus","assignAgent","assignGroup","assignTicketFieldValue","ACTION_TYPES_MAP","single_option","multi_option","checkbox","integer","DEFAULT_CHECKBOX_OPTIONS","label","t","value","Action","_ref","id","setFieldValue","_ref$richText","richText","_jsxs","className","children","_jsx","Label","Editor","initialValue","onChange","newValue","_createElement","Input","disabled","key","replace","renderActionValue","actionType","displayValue","join","renderDefaultAction","_ref2","name","trixBody","includes","renderCustomAction","_ref3","actionableId","actionOptions","actionOption","findBy","type","actionValue","isRichText","getActionDropdown","_ref4","status","teams","members","tags","change_status","assign_group","assign_agent","add_tags","remove_tags","getActionType","kind","getDropdownOptions","optionsAttribute","map","_ref5","_toConsumableArray","renderAction","_ref6","_ref6$actionOptions","_ref6$trixBody","isCustomAction","buildActionOptions","_ref7","dropdownOptions","actionNameOptions","variables","actionDropdown","options","option","fields","filter","field","startsWith","fieldOptions","_ref8","attributeOptions","data","what","defaultData","actionable_id","actionable_type","Body","cannedResponse","dropdownList","isLoading","_useTranslation","useTranslation","Spinner","sortedActions","actions","sort","a","b","not","action","CannedResponsesPane","areDropdownListsLoading","isCannedResponsePaneOpen","isLoadingPreview","macros","onApply","onCancel","previewCannedResponses","previewParams","_ref$variables","_useState","useState","_useState2","_slicedToArray","setCannedResponse","initialFocusRef","useRef","handleSelect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","payload","onSuccess","response","values","stop","_x","apply","arguments","handleSubmit","onSettled","updatedValues","omit","handleCancel","Pane","isOpen","onClose","Header","Typography","style","weight","PLURAL","Formik","initialValues","toLabelAndValue","onSubmit","isSubmitting","Form","Select","isSearchable","ref","isPresent","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CannedResponsesPane.js","sources":["../app/javascript/src/components/CannedResponsesPane/constants.js","../app/javascript/src/components/CannedResponsesPane/Action.jsx","../app/javascript/src/components/CannedResponsesPane/utils.jsx","../app/javascript/src/components/CannedResponsesPane/Body.jsx","../app/javascript/src/components/CannedResponsesPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst CANNED_RESPONSE_INPUT_ACTION_NAMES = [\n \"assign_agent\",\n \"assign_group\",\n \"remove_tags\",\n \"add_tags\",\n \"change_priority\",\n \"change_status\",\n];\n\nexport const CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = [\"add_note\", \"add_reply\"];\n\nexport const CANNED_RESPONSE_ACTION_LABELS = [\n ...CANNED_RESPONSE_INPUT_ACTION_NAMES,\n ...CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n].reduce(\n (labelObject, actionName) => ({\n ...labelObject,\n [actionName]: `neetoRules.labels.${actionName}`,\n }),\n {}\n);\n\nexport const ACTION_OPTIONS = {\n addNote: \"add_note\",\n addCommentOrReply: \"add_reply\",\n addTags: \"add_tags\",\n removeTags: \"remove_tags\",\n changePriority: \"change_priority\",\n changeStatus: \"change_status\",\n assignAgent: \"assign_agent\",\n assignGroup: \"assign_group\",\n assignTicketFieldValue: \"assign_field_value\",\n};\n\nexport const ACTION_TYPES_MAP = {\n single_option: \"dropdown\",\n multi_option: \"multiSelect\",\n checkbox: \"dropdown\",\n integer: \"number\",\n};\n\nexport const DEFAULT_CHECKBOX_OPTIONS = [\n { label: t(\"neetoRules.labels.checked\"), value: true },\n { label: t(\"neetoRules.labels.unchecked\"), value: false },\n];\n","import { Editor } from \"neetoeditor\";\nimport { Input, Label } from \"neetoui\";\n\nconst Action = ({ id, label, setFieldValue, value, richText = false }) => {\n if (richText) {\n return (\n <div className=\"mb-4 space-y-2\" key={id}>\n <Label>{label}</Label>\n <Editor\n initialValue={value}\n onChange={newValue => setFieldValue(id, newValue)}\n />\n </div>\n );\n }\n\n return (\n <Input\n {...{ label }}\n disabled\n className=\"mb-4\"\n key={id}\n value={value.replace(/_/g, \" \")}\n />\n );\n};\n\nexport default Action;\n","import { t } from \"i18next\";\nimport { findBy } from \"neetocist\";\nimport { join } from \"ramda\";\n\nimport Action from \"./Action\";\nimport {\n ACTION_OPTIONS,\n ACTION_TYPES_MAP,\n CANNED_RESPONSE_ACTION_LABELS,\n CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n DEFAULT_CHECKBOX_OPTIONS,\n} from \"./constants\";\n\nconst renderActionValue = ({ actionType, displayValue }) => {\n if (actionType === \"multiSelect\") {\n return join(\", \", displayValue);\n }\n\n return displayValue;\n};\n\nconst renderDefaultAction = ({\n id,\n name,\n displayValue,\n setFieldValue,\n trixBody,\n}) => {\n const label = t(CANNED_RESPONSE_ACTION_LABELS[name]);\n\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {\n return (\n <Action {...{ id, label, setFieldValue }} richText value={trixBody} />\n );\n }\n\n return <Action {...{ id, label }} value={displayValue} />;\n};\n\nconst renderCustomAction = ({\n id,\n actionableId,\n displayValue,\n actionOptions,\n setFieldValue,\n}) => {\n const actionName = `ticket_field_${actionableId}`;\n const actionOption = findBy({ value: actionName }, actionOptions);\n const label = actionOption?.label;\n const actionType = actionOption?.type;\n const actionValue = renderActionValue({ actionType, displayValue });\n const isRichText = actionType === \"rich-text\";\n\n return (\n <Action\n {...{ id, label, setFieldValue }}\n richText={isRichText}\n value={actionValue}\n />\n );\n};\n\nconst getActionDropdown = ({ status, teams, members, tags }) => ({\n change_status: status || [],\n assign_group: teams || [],\n assign_agent: members || [],\n add_tags: tags || [],\n remove_tags: tags || [],\n});\n\nconst getActionType = kind => ACTION_TYPES_MAP[kind] || kind;\n\nconst getDropdownOptions = (kind, optionsAttribute) => {\n if ([\"single_option\", \"multi_option\"].includes(kind)) {\n return optionsAttribute.map(({ id, label }) => ({\n label,\n value: id,\n }));\n } else if (kind === \"checkbox\") {\n return [...DEFAULT_CHECKBOX_OPTIONS];\n }\n\n return [];\n};\n\nexport const renderAction = ({\n name,\n id,\n actionableId,\n displayValue,\n actionOptions = [],\n setFieldValue,\n trixBody = \"\",\n}) => {\n const isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;\n\n return isCustomAction\n ? renderCustomAction({\n id,\n actionableId,\n displayValue,\n actionOptions,\n setFieldValue,\n })\n : renderDefaultAction({ id, name, displayValue, setFieldValue, trixBody });\n};\n\nexport const buildActionOptions = ({\n dropdownOptions,\n actionNameOptions,\n variables,\n}) => {\n const actionDropdown = getActionDropdown(dropdownOptions);\n const options = actionNameOptions.map(option => {\n const dropdownOptions = actionDropdown[option.value];\n\n return dropdownOptions ? { ...option, dropdownOptions } : option;\n });\n\n const fields =\n (dropdownOptions.fields || []).filter(\n field => !field.kind.startsWith(\"system_\")\n ) || [];\n\n const fieldOptions = fields.map(\n ({ id, name, kind, data: attributeOptions }) => ({\n label: t(\"neetoRules.common.assign\", { what: name }),\n value: `ticket_field_${id}`,\n type: getActionType(kind),\n variables,\n defaultData: { actionable_id: id, actionable_type: \"Field\" },\n dropdownOptions: getDropdownOptions(kind, attributeOptions),\n })\n );\n\n return [...options, ...fieldOptions];\n};\n","import { Spinner } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { CANNED_RESPONSE_RICH_TEXT_ACTION_NAME } from \"./constants\";\nimport { buildActionOptions, renderAction } from \"./utils\";\n\nconst Body = ({\n actionNameOptions,\n cannedResponse,\n dropdownList,\n isLoading,\n setFieldValue,\n variables,\n}) => {\n const { t } = useTranslation();\n\n const actionOptions = buildActionOptions({\n dropdownOptions: dropdownList,\n actionNameOptions,\n variables,\n });\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const sortedActions = cannedResponse.actions.sort((a, b) => {\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(a.name)) {\n return 1;\n } else if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(b.name)) {\n return -1;\n }\n\n return 0;\n });\n\n return (\n <div className=\"overflow-y-auto\">\n {not(cannedResponse)\n ? t(\"neetoRules.common.preview\")\n : sortedActions?.map(action =>\n renderAction({ ...action, actionOptions, setFieldValue })\n )}\n </div>\n );\n};\nexport default Body;\n","import { useRef, useState } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { isPresent, toLabelAndValue } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { Pane, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Select } from \"neetoui/formik\";\nimport { omit, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"./Body\";\n\nconst CannedResponsesPane = ({\n actionNameOptions,\n areDropdownListsLoading,\n dropdownList,\n isCannedResponsePaneOpen,\n isLoadingPreview,\n macros,\n onApply,\n onCancel,\n previewCannedResponses,\n previewParams,\n variables = [],\n}) => {\n const [cannedResponse, setCannedResponse] = useState(null);\n\n const initialFocusRef = useRef();\n\n const { t } = useTranslation();\n\n const options = macros?.map(({ name, id }) => ({ label: name, value: id }));\n\n const handleSelect = async ({ value }) => {\n await previewCannedResponses(\n { id: value, payload: previewParams },\n { onSuccess: response => setCannedResponse(values(response || {})[0]) }\n );\n };\n\n const handleSubmit = values => {\n onApply({\n cannedResponse,\n setCannedResponse,\n onSettled: onCancel,\n updatedValues: omit([\"cannedResponse\"], values),\n });\n };\n\n const handleCancel = () => {\n onCancel();\n setCannedResponse(null);\n };\n\n return (\n <Pane\n {...{ initialFocusRef }}\n isOpen={isCannedResponsePaneOpen}\n onClose={handleCancel}\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoRules.cannedResponses.title\", PLURAL)}\n </Typography>\n </Pane.Header>\n <Formik\n initialValues={{ cannedResponse: toLabelAndValue(null) }}\n onSubmit={handleSubmit}\n >\n {({ setFieldValue, isSubmitting }) => (\n <Form>\n <Pane.Body>\n <div className=\"flex w-full grow flex-col space-y-4\">\n {areDropdownListsLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <div className=\"flex flex-col gap-y-4\">\n <Select\n {...{ options }}\n isSearchable\n label={t(\"neetoRules.labels.selectCannedResponse\")}\n name=\"cannedResponse\"\n ref={initialFocusRef}\n onChange={value => {\n setFieldValue(\"cannedResponse\", value);\n handleSelect(value);\n }}\n />\n {isPresent(cannedResponse) && (\n <div className=\"flex flex-col\">\n <Body\n {...{\n actionNameOptions,\n cannedResponse,\n dropdownList,\n setFieldValue,\n variables,\n }}\n isLoading={isLoadingPreview}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isSubmitting || isLoadingPreview}\n submitButtonProps={{ label: t(\"neetoRules.common.apply\") }}\n />\n </Pane.Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default CannedResponsesPane;\n"],"names":["CANNED_RESPONSE_INPUT_ACTION_NAMES","CANNED_RESPONSE_RICH_TEXT_ACTION_NAME","CANNED_RESPONSE_ACTION_LABELS","concat","reduce","labelObject","actionName","_objectSpread","_defineProperty","ACTION_OPTIONS","addNote","assignTicketFieldValue","ACTION_TYPES_MAP","single_option","multi_option","checkbox","integer","DEFAULT_CHECKBOX_OPTIONS","label","t","value","Action","_ref","id","setFieldValue","_ref$richText","richText","_jsxs","className","children","_jsx","Label","Editor","initialValue","onChange","newValue","_createElement","Input","disabled","key","replace","renderActionValue","actionType","displayValue","join","renderDefaultAction","_ref2","name","trixBody","includes","renderCustomAction","_ref3","actionableId","actionOptions","actionOption","findBy","type","actionValue","isRichText","getActionDropdown","_ref4","status","teams","members","tags","change_status","assign_group","assign_agent","add_tags","remove_tags","getActionType","kind","getDropdownOptions","optionsAttribute","map","_ref5","_toConsumableArray","renderAction","_ref6","_ref6$actionOptions","_ref6$trixBody","isCustomAction","buildActionOptions","_ref7","dropdownOptions","actionNameOptions","variables","actionDropdown","options","option","fields","filter","field","startsWith","fieldOptions","_ref8","attributeOptions","data","what","defaultData","actionable_id","actionable_type","Body","cannedResponse","dropdownList","isLoading","_useTranslation","useTranslation","Spinner","sortedActions","actions","sort","a","b","not","action","CannedResponsesPane","areDropdownListsLoading","isCannedResponsePaneOpen","isLoadingPreview","macros","onApply","onCancel","previewCannedResponses","previewParams","_ref$variables","_useState","useState","_useState2","_slicedToArray","setCannedResponse","initialFocusRef","useRef","handleSelect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","payload","onSuccess","response","values","stop","_x","apply","arguments","handleSubmit","onSettled","updatedValues","omit","handleCancel","Pane","isOpen","onClose","Header","Typography","style","weight","PLURAL","Formik","initialValues","toLabelAndValue","onSubmit","isSubmitting","Form","Select","isSearchable","ref","isPresent","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|