@mushi-mushi/core 1.29.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +25 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +27 -1857
- package/dist/index.d.ts +27 -1857
- package/dist/index.js +25 -36
- package/dist/index.js.map +1 -1
- package/dist/reporter-channels.cjs +42 -0
- package/dist/reporter-channels.cjs.map +1 -0
- package/dist/reporter-channels.d.cts +1 -0
- package/dist/reporter-channels.d.ts +1 -0
- package/dist/reporter-channels.js +39 -0
- package/dist/reporter-channels.js.map +1 -0
- package/dist/reporter-ui.cjs +574 -0
- package/dist/reporter-ui.cjs.map +1 -0
- package/dist/reporter-ui.d.cts +189 -0
- package/dist/reporter-ui.d.ts +189 -0
- package/dist/reporter-ui.js +551 -0
- package/dist/reporter-ui.js.map +1 -0
- package/dist/types-0j5BJ3aC.d.cts +2100 -0
- package/dist/types-0j5BJ3aC.d.ts +2100 -0
- package/package.json +31 -1
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
// src/reporter-ui.ts
|
|
2
|
+
var REPORTER_CANONICAL_STATUSES = [
|
|
3
|
+
"new",
|
|
4
|
+
"pending",
|
|
5
|
+
"submitted",
|
|
6
|
+
"queued",
|
|
7
|
+
"classified",
|
|
8
|
+
"grouped",
|
|
9
|
+
"fixing",
|
|
10
|
+
"fixed",
|
|
11
|
+
"dismissed",
|
|
12
|
+
"triaged",
|
|
13
|
+
"in_progress",
|
|
14
|
+
"resolved",
|
|
15
|
+
"verified",
|
|
16
|
+
"reopened"
|
|
17
|
+
];
|
|
18
|
+
var REPORTER_LOCALES = ["en", "ja", "es", "th"];
|
|
19
|
+
var REPORTER_CATEGORIES = ["bug", "slow", "visual", "confusing", "idea"];
|
|
20
|
+
var REPORTER_CLOSED_REASONS = [
|
|
21
|
+
"duplicate",
|
|
22
|
+
"not_reproducible",
|
|
23
|
+
"wont_fix",
|
|
24
|
+
"working_as_intended",
|
|
25
|
+
"spam"
|
|
26
|
+
];
|
|
27
|
+
var BASE_STATE = {
|
|
28
|
+
new: "received",
|
|
29
|
+
pending: "received",
|
|
30
|
+
submitted: "received",
|
|
31
|
+
queued: "received",
|
|
32
|
+
classified: "reviewing",
|
|
33
|
+
triaged: "reviewing",
|
|
34
|
+
grouped: "reviewing",
|
|
35
|
+
reopened: "reviewing_again",
|
|
36
|
+
fixing: "fixing",
|
|
37
|
+
in_progress: "fixing",
|
|
38
|
+
verified: "verified",
|
|
39
|
+
fixed: "fixed_next",
|
|
40
|
+
resolved: "fixed",
|
|
41
|
+
dismissed: "closed"
|
|
42
|
+
};
|
|
43
|
+
var TONE = {
|
|
44
|
+
received: "neutral",
|
|
45
|
+
reviewing: "info",
|
|
46
|
+
reviewing_again: "info",
|
|
47
|
+
fixing: "progress",
|
|
48
|
+
verified: "success-muted",
|
|
49
|
+
fixed_next: "success",
|
|
50
|
+
fixed_version: "success",
|
|
51
|
+
fixed: "success",
|
|
52
|
+
closed: "muted",
|
|
53
|
+
waiting: "attention"
|
|
54
|
+
};
|
|
55
|
+
var REPORTER_TIMELINE_KINDS = [
|
|
56
|
+
"received",
|
|
57
|
+
"reviewing",
|
|
58
|
+
"duplicate_linked",
|
|
59
|
+
"info_requested",
|
|
60
|
+
"comment",
|
|
61
|
+
"reporter_comment",
|
|
62
|
+
"fix_started",
|
|
63
|
+
"fixed",
|
|
64
|
+
"released",
|
|
65
|
+
"verified",
|
|
66
|
+
"reopened",
|
|
67
|
+
"closed"
|
|
68
|
+
];
|
|
69
|
+
var EN = {
|
|
70
|
+
status: {
|
|
71
|
+
received: "Received",
|
|
72
|
+
reviewing: "Looking into it",
|
|
73
|
+
reviewing_again: "Looking into it again",
|
|
74
|
+
fixing: "Fix in progress",
|
|
75
|
+
verified: "Confirmed fixed",
|
|
76
|
+
fixed_next: "Fixed \u2014 coming in the next update",
|
|
77
|
+
fixed_version: "Fixed in v{version}",
|
|
78
|
+
fixed: "Fixed",
|
|
79
|
+
closed: "Closed",
|
|
80
|
+
waiting: "Waiting on you"
|
|
81
|
+
},
|
|
82
|
+
detail: {
|
|
83
|
+
received: "We got it.",
|
|
84
|
+
reviewing: "The developer has it on their list.",
|
|
85
|
+
reviewing_again: "Thanks \u2014 we reopened it.",
|
|
86
|
+
fixing: "A fix is being worked on.",
|
|
87
|
+
verified: "You confirmed the fix. Thank you!",
|
|
88
|
+
fixed_next: "It ships in the next release.",
|
|
89
|
+
fixed_version: "Update to v{version}. Does it work for you now?",
|
|
90
|
+
fixed: "Does it work for you now?",
|
|
91
|
+
closed: "Closed.",
|
|
92
|
+
waiting: "The developer asked a question \u2014 reply below."
|
|
93
|
+
},
|
|
94
|
+
idea: {
|
|
95
|
+
received: "Thanks for the idea",
|
|
96
|
+
reviewing: "Under consideration",
|
|
97
|
+
fixing: "Being built",
|
|
98
|
+
shipped: "Shipped",
|
|
99
|
+
shippedVersion: "Shipped in v{version}"
|
|
100
|
+
},
|
|
101
|
+
closedReason: {
|
|
102
|
+
duplicate: "Same as an earlier report \u2014 we'll update you there.",
|
|
103
|
+
not_reproducible: "We couldn't reproduce it. Reply if it happens again.",
|
|
104
|
+
wont_fix: "We decided not to change this.",
|
|
105
|
+
working_as_intended: "This is expected behaviour.",
|
|
106
|
+
none: "Closed."
|
|
107
|
+
},
|
|
108
|
+
others: {
|
|
109
|
+
few: "You and a few others reported this",
|
|
110
|
+
many: "Many people reported this"
|
|
111
|
+
},
|
|
112
|
+
timeline: {
|
|
113
|
+
received: "You reported this",
|
|
114
|
+
reviewing: "The developer is looking into it",
|
|
115
|
+
duplicate_linked: "Same as an existing report \u2014 we'll update you there",
|
|
116
|
+
info_requested: "The developer asked: {text}",
|
|
117
|
+
reporter_comment: "You",
|
|
118
|
+
fix_started: "A fix is in progress",
|
|
119
|
+
fixed: "Fixed \u2014 coming in the next update",
|
|
120
|
+
released: "Shipped in v{version} \u2014 update to get it",
|
|
121
|
+
verified: "You confirmed it's fixed",
|
|
122
|
+
reopened: "Reopened"
|
|
123
|
+
},
|
|
124
|
+
categories: {
|
|
125
|
+
bug: "Bug",
|
|
126
|
+
slow: "Slow",
|
|
127
|
+
visual: "Looks wrong",
|
|
128
|
+
confusing: "Confusing",
|
|
129
|
+
idea: "Idea"
|
|
130
|
+
},
|
|
131
|
+
ui: {
|
|
132
|
+
yes: "Yes",
|
|
133
|
+
notYet: "Not yet",
|
|
134
|
+
empty: "Nothing yet \u2014 your reports will show up here with updates.",
|
|
135
|
+
loadError: "Couldn't load updates",
|
|
136
|
+
retry: "Retry",
|
|
137
|
+
sending: "Sending\u2026",
|
|
138
|
+
sent: "Sent",
|
|
139
|
+
sendFailed: "Failed",
|
|
140
|
+
noReplies: "No developer replies yet.",
|
|
141
|
+
you: "You",
|
|
142
|
+
developer: "Developer",
|
|
143
|
+
addWords: "Add a few words",
|
|
144
|
+
developerReplied: "Developer replied: \u201C{text}\u201D",
|
|
145
|
+
updates: "{n} updates on your reports",
|
|
146
|
+
receipt: "Sent. We'll let you know here when there's news.",
|
|
147
|
+
trackIt: "Track it",
|
|
148
|
+
done: "Done",
|
|
149
|
+
emailOptIn: "Get updates by email",
|
|
150
|
+
emailPlaceholder: "you@example.com",
|
|
151
|
+
emailSubmit: "Email me updates",
|
|
152
|
+
emailCheckInbox: "Check your inbox and tap the link to confirm.",
|
|
153
|
+
emailInvalid: "That does not look like an email address.",
|
|
154
|
+
emailFailed: "Couldn't set up email updates. Try again later.",
|
|
155
|
+
toastReplied: "The developer replied to your report",
|
|
156
|
+
toastFixed: "Your bug is fixed",
|
|
157
|
+
view: "View"
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
var JA = {
|
|
161
|
+
status: {
|
|
162
|
+
received: "\u53D7\u3051\u4ED8\u3051\u307E\u3057\u305F",
|
|
163
|
+
reviewing: "\u78BA\u8A8D\u4E2D",
|
|
164
|
+
reviewing_again: "\u518D\u78BA\u8A8D\u4E2D",
|
|
165
|
+
fixing: "\u4FEE\u6B63\u4E2D",
|
|
166
|
+
verified: "\u4FEE\u6B63\u3092\u78BA\u8A8D\u6E08\u307F",
|
|
167
|
+
fixed_next: "\u4FEE\u6B63\u6E08\u307F \u2014 \u6B21\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3067\u53CD\u6620",
|
|
168
|
+
fixed_version: "v{version} \u3067\u4FEE\u6B63\u6E08\u307F",
|
|
169
|
+
fixed: "\u4FEE\u6B63\u6E08\u307F",
|
|
170
|
+
closed: "\u7D42\u4E86",
|
|
171
|
+
waiting: "\u3042\u306A\u305F\u306E\u8FD4\u4FE1\u5F85\u3061"
|
|
172
|
+
},
|
|
173
|
+
detail: {
|
|
174
|
+
received: "\u5831\u544A\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\u3002",
|
|
175
|
+
reviewing: "\u958B\u767A\u8005\u304C\u5BFE\u5FDC\u30EA\u30B9\u30C8\u306B\u5165\u308C\u307E\u3057\u305F\u3002",
|
|
176
|
+
reviewing_again: "\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002\u518D\u5EA6\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059\u3002",
|
|
177
|
+
fixing: "\u4FEE\u6B63\u306B\u53D6\u308A\u7D44\u3093\u3067\u3044\u307E\u3059\u3002",
|
|
178
|
+
verified: "\u4FEE\u6B63\u3092\u78BA\u8A8D\u3044\u305F\u3060\u304D\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\uFF01",
|
|
179
|
+
fixed_next: "\u6B21\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u53CD\u6620\u3055\u308C\u307E\u3059\u3002",
|
|
180
|
+
fixed_version: "v{version} \u306B\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u89E3\u6C7A\u3057\u307E\u3057\u305F\u304B\uFF1F",
|
|
181
|
+
fixed: "\u89E3\u6C7A\u3057\u307E\u3057\u305F\u304B\uFF1F",
|
|
182
|
+
closed: "\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002",
|
|
183
|
+
waiting: "\u958B\u767A\u8005\u304B\u3089\u8CEA\u554F\u304C\u3042\u308A\u307E\u3059\u3002\u4E0B\u304B\u3089\u8FD4\u4FE1\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
|
|
184
|
+
},
|
|
185
|
+
idea: {
|
|
186
|
+
received: "\u30A2\u30A4\u30C7\u30A2\u3092\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059",
|
|
187
|
+
reviewing: "\u691C\u8A0E\u4E2D",
|
|
188
|
+
fixing: "\u958B\u767A\u4E2D",
|
|
189
|
+
shipped: "\u30EA\u30EA\u30FC\u30B9\u6E08\u307F",
|
|
190
|
+
shippedVersion: "v{version} \u3067\u30EA\u30EA\u30FC\u30B9\u6E08\u307F"
|
|
191
|
+
},
|
|
192
|
+
closedReason: {
|
|
193
|
+
duplicate: "\u4EE5\u524D\u306E\u5831\u544A\u3068\u540C\u3058\u5185\u5BB9\u3067\u3059\u3002\u305D\u3061\u3089\u3067\u9032\u6357\u3092\u304A\u77E5\u3089\u305B\u3057\u307E\u3059\u3002",
|
|
194
|
+
not_reproducible: "\u518D\u73FE\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u518D\u767A\u3057\u305F\u3089\u8FD4\u4FE1\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
195
|
+
wont_fix: "\u3053\u306E\u70B9\u306F\u5909\u66F4\u3057\u306A\u3044\u3053\u3068\u306B\u3057\u307E\u3057\u305F\u3002",
|
|
196
|
+
working_as_intended: "\u3053\u308C\u306F\u60F3\u5B9A\u3069\u304A\u308A\u306E\u52D5\u4F5C\u3067\u3059\u3002",
|
|
197
|
+
none: "\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002"
|
|
198
|
+
},
|
|
199
|
+
others: {
|
|
200
|
+
few: "\u3042\u306A\u305F\u3092\u542B\u3081\u6570\u4EBA\u304C\u5831\u544A\u3057\u3066\u3044\u307E\u3059",
|
|
201
|
+
many: "\u591A\u304F\u306E\u4EBA\u304C\u5831\u544A\u3057\u3066\u3044\u307E\u3059"
|
|
202
|
+
},
|
|
203
|
+
timeline: {
|
|
204
|
+
received: "\u3042\u306A\u305F\u304C\u5831\u544A\u3057\u307E\u3057\u305F",
|
|
205
|
+
reviewing: "\u958B\u767A\u8005\u304C\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059",
|
|
206
|
+
duplicate_linked: "\u65E2\u5B58\u306E\u5831\u544A\u3068\u540C\u3058\u5185\u5BB9\u3067\u3059\u3002\u305D\u3061\u3089\u3067\u9032\u6357\u3092\u304A\u77E5\u3089\u305B\u3057\u307E\u3059",
|
|
207
|
+
info_requested: "\u958B\u767A\u8005\u304B\u3089\u306E\u8CEA\u554F: {text}",
|
|
208
|
+
reporter_comment: "\u3042\u306A\u305F",
|
|
209
|
+
fix_started: "\u4FEE\u6B63\u4E2D\u3067\u3059",
|
|
210
|
+
fixed: "\u4FEE\u6B63\u6E08\u307F \u2014 \u6B21\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3067\u53CD\u6620",
|
|
211
|
+
released: "v{version} \u3067\u30EA\u30EA\u30FC\u30B9 \u2014 \u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
212
|
+
verified: "\u4FEE\u6B63\u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F",
|
|
213
|
+
reopened: "\u518D\u30AA\u30FC\u30D7\u30F3\u3057\u307E\u3057\u305F"
|
|
214
|
+
},
|
|
215
|
+
categories: {
|
|
216
|
+
bug: "\u30D0\u30B0",
|
|
217
|
+
slow: "\u9045\u3044",
|
|
218
|
+
visual: "\u8868\u793A\u304C\u304A\u304B\u3057\u3044",
|
|
219
|
+
confusing: "\u308F\u304B\u308A\u306B\u304F\u3044",
|
|
220
|
+
idea: "\u30A2\u30A4\u30C7\u30A2"
|
|
221
|
+
},
|
|
222
|
+
ui: {
|
|
223
|
+
yes: "\u306F\u3044",
|
|
224
|
+
notYet: "\u307E\u3060",
|
|
225
|
+
empty: "\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002\u5831\u544A\u3059\u308B\u3068\u3053\u3053\u306B\u9032\u6357\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002",
|
|
226
|
+
loadError: "\u66F4\u65B0\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F",
|
|
227
|
+
retry: "\u518D\u8A66\u884C",
|
|
228
|
+
sending: "\u9001\u4FE1\u4E2D\u2026",
|
|
229
|
+
sent: "\u9001\u4FE1\u3057\u307E\u3057\u305F",
|
|
230
|
+
sendFailed: "\u9001\u4FE1\u5931\u6557",
|
|
231
|
+
noReplies: "\u958B\u767A\u8005\u304B\u3089\u306E\u8FD4\u4FE1\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
232
|
+
you: "\u3042\u306A\u305F",
|
|
233
|
+
developer: "\u958B\u767A\u8005",
|
|
234
|
+
addWords: "\u3082\u3046\u5C11\u3057\u8A73\u3057\u304F\u66F8\u3044\u3066\u304F\u3060\u3055\u3044",
|
|
235
|
+
developerReplied: "\u958B\u767A\u8005\u304B\u3089\u306E\u8FD4\u4FE1:\u300C{text}\u300D",
|
|
236
|
+
updates: "\u3042\u306A\u305F\u306E\u5831\u544A\u306B {n} \u4EF6\u306E\u66F4\u65B0\u304C\u3042\u308A\u307E\u3059",
|
|
237
|
+
receipt: "\u9001\u4FE1\u3057\u307E\u3057\u305F\u3002\u9032\u5C55\u304C\u3042\u308C\u3070\u3053\u3053\u3067\u304A\u77E5\u3089\u305B\u3057\u307E\u3059\u3002",
|
|
238
|
+
trackIt: "\u7D4C\u904E\u3092\u898B\u308B",
|
|
239
|
+
done: "\u9589\u3058\u308B",
|
|
240
|
+
emailOptIn: "\u30E1\u30FC\u30EB\u3067\u66F4\u65B0\u3092\u53D7\u3051\u53D6\u308B",
|
|
241
|
+
emailPlaceholder: "you@example.com",
|
|
242
|
+
emailSubmit: "\u30E1\u30FC\u30EB\u3067\u53D7\u3051\u53D6\u308B",
|
|
243
|
+
emailCheckInbox: "\u53D7\u4FE1\u30C8\u30EC\u30A4\u306E\u30E1\u30FC\u30EB\u306E\u30EA\u30F3\u30AF\u3092\u30BF\u30C3\u30D7\u3057\u3066\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
244
|
+
emailInvalid: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
245
|
+
emailFailed: "\u30E1\u30FC\u30EB\u901A\u77E5\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5F8C\u3067\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
|
|
246
|
+
toastReplied: "\u958B\u767A\u8005\u304C\u3042\u306A\u305F\u306E\u5831\u544A\u306B\u8FD4\u4FE1\u3057\u307E\u3057\u305F",
|
|
247
|
+
toastFixed: "\u3042\u306A\u305F\u304C\u5831\u544A\u3057\u305F\u4E0D\u5177\u5408\u304C\u4FEE\u6B63\u3055\u308C\u307E\u3057\u305F",
|
|
248
|
+
view: "\u898B\u308B"
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
var ES = {
|
|
252
|
+
status: {
|
|
253
|
+
received: "Recibido",
|
|
254
|
+
reviewing: "Lo estamos revisando",
|
|
255
|
+
reviewing_again: "Lo revisamos de nuevo",
|
|
256
|
+
fixing: "Correcci\xF3n en curso",
|
|
257
|
+
verified: "Correcci\xF3n confirmada",
|
|
258
|
+
fixed_next: "Corregido \u2014 llega en la pr\xF3xima actualizaci\xF3n",
|
|
259
|
+
fixed_version: "Corregido en v{version}",
|
|
260
|
+
fixed: "Corregido",
|
|
261
|
+
closed: "Cerrado",
|
|
262
|
+
waiting: "Esperando tu respuesta"
|
|
263
|
+
},
|
|
264
|
+
detail: {
|
|
265
|
+
received: "Lo recibimos.",
|
|
266
|
+
reviewing: "El desarrollador lo tiene en su lista.",
|
|
267
|
+
reviewing_again: "Gracias, lo reabrimos.",
|
|
268
|
+
fixing: "Se est\xE1 trabajando en una correcci\xF3n.",
|
|
269
|
+
verified: "Confirmaste la correcci\xF3n. \xA1Gracias!",
|
|
270
|
+
fixed_next: "Llega en la pr\xF3xima versi\xF3n.",
|
|
271
|
+
fixed_version: "Actualiza a v{version}. \xBFYa funciona?",
|
|
272
|
+
fixed: "\xBFYa funciona?",
|
|
273
|
+
closed: "Cerrado.",
|
|
274
|
+
waiting: "El desarrollador hizo una pregunta: responde abajo."
|
|
275
|
+
},
|
|
276
|
+
idea: {
|
|
277
|
+
received: "Gracias por la idea",
|
|
278
|
+
reviewing: "En consideraci\xF3n",
|
|
279
|
+
fixing: "En desarrollo",
|
|
280
|
+
shipped: "Publicado",
|
|
281
|
+
shippedVersion: "Publicado en v{version}"
|
|
282
|
+
},
|
|
283
|
+
closedReason: {
|
|
284
|
+
duplicate: "Es igual a un reporte anterior; te avisaremos all\xED.",
|
|
285
|
+
not_reproducible: "No pudimos reproducirlo. Responde si vuelve a pasar.",
|
|
286
|
+
wont_fix: "Decidimos no cambiar esto.",
|
|
287
|
+
working_as_intended: "Este es el comportamiento esperado.",
|
|
288
|
+
none: "Cerrado."
|
|
289
|
+
},
|
|
290
|
+
others: {
|
|
291
|
+
few: "T\xFA y algunas personas m\xE1s reportaron esto",
|
|
292
|
+
many: "Muchas personas reportaron esto"
|
|
293
|
+
},
|
|
294
|
+
timeline: {
|
|
295
|
+
received: "Reportaste esto",
|
|
296
|
+
reviewing: "El desarrollador lo est\xE1 revisando",
|
|
297
|
+
duplicate_linked: "Es igual a un reporte existente; te avisaremos all\xED",
|
|
298
|
+
info_requested: "El desarrollador pregunt\xF3: {text}",
|
|
299
|
+
reporter_comment: "T\xFA",
|
|
300
|
+
fix_started: "Hay una correcci\xF3n en curso",
|
|
301
|
+
fixed: "Corregido \u2014 llega en la pr\xF3xima actualizaci\xF3n",
|
|
302
|
+
released: "Publicado en v{version}: actualiza para tenerlo",
|
|
303
|
+
verified: "Confirmaste que est\xE1 corregido",
|
|
304
|
+
reopened: "Reabierto"
|
|
305
|
+
},
|
|
306
|
+
categories: {
|
|
307
|
+
bug: "Error",
|
|
308
|
+
slow: "Lento",
|
|
309
|
+
visual: "Se ve mal",
|
|
310
|
+
confusing: "Confuso",
|
|
311
|
+
idea: "Idea"
|
|
312
|
+
},
|
|
313
|
+
ui: {
|
|
314
|
+
yes: "S\xED",
|
|
315
|
+
notYet: "Todav\xEDa no",
|
|
316
|
+
empty: "Nada todav\xEDa: tus reportes aparecer\xE1n aqu\xED con novedades.",
|
|
317
|
+
loadError: "No se pudieron cargar las novedades",
|
|
318
|
+
retry: "Reintentar",
|
|
319
|
+
sending: "Enviando\u2026",
|
|
320
|
+
sent: "Enviado",
|
|
321
|
+
sendFailed: "Error al enviar",
|
|
322
|
+
noReplies: "El desarrollador a\xFAn no ha respondido.",
|
|
323
|
+
you: "T\xFA",
|
|
324
|
+
developer: "Desarrollador",
|
|
325
|
+
addWords: "Agrega algunas palabras",
|
|
326
|
+
developerReplied: "El desarrollador respondi\xF3: \u201C{text}\u201D",
|
|
327
|
+
updates: "{n} novedades en tus reportes",
|
|
328
|
+
receipt: "Enviado. Te avisaremos aqu\xED cuando haya novedades.",
|
|
329
|
+
trackIt: "Seguirlo",
|
|
330
|
+
done: "Listo",
|
|
331
|
+
emailOptIn: "Recibir novedades por correo",
|
|
332
|
+
emailPlaceholder: "tu@ejemplo.com",
|
|
333
|
+
emailSubmit: "Enviarme novedades",
|
|
334
|
+
emailCheckInbox: "Revisa tu correo y toca el enlace para confirmar.",
|
|
335
|
+
emailInvalid: "Eso no parece un correo electr\xF3nico.",
|
|
336
|
+
emailFailed: "No pudimos activar las novedades por correo. Int\xE9ntalo m\xE1s tarde.",
|
|
337
|
+
toastReplied: "El desarrollador respondi\xF3 a tu reporte",
|
|
338
|
+
toastFixed: "Tu error est\xE1 corregido",
|
|
339
|
+
view: "Ver"
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
var TH = {
|
|
343
|
+
status: {
|
|
344
|
+
received: "\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E41\u0E25\u0E49\u0E27",
|
|
345
|
+
reviewing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A",
|
|
346
|
+
reviewing_again: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",
|
|
347
|
+
fixing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E41\u0E01\u0E49\u0E44\u0E02",
|
|
348
|
+
verified: "\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E27\u0E48\u0E32\u0E41\u0E01\u0E49\u0E41\u0E25\u0E49\u0E27",
|
|
349
|
+
fixed_next: "\u0E41\u0E01\u0E49\u0E41\u0E25\u0E49\u0E27 \u2014 \u0E08\u0E30\u0E21\u0E32\u0E43\u0E19\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E16\u0E31\u0E14\u0E44\u0E1B",
|
|
350
|
+
fixed_version: "\u0E41\u0E01\u0E49\u0E41\u0E25\u0E49\u0E27\u0E43\u0E19 v{version}",
|
|
351
|
+
fixed: "\u0E41\u0E01\u0E49\u0E41\u0E25\u0E49\u0E27",
|
|
352
|
+
closed: "\u0E1B\u0E34\u0E14\u0E41\u0E25\u0E49\u0E27",
|
|
353
|
+
waiting: "\u0E23\u0E2D\u0E04\u0E33\u0E15\u0E2D\u0E1A\u0E08\u0E32\u0E01\u0E04\u0E38\u0E13"
|
|
354
|
+
},
|
|
355
|
+
detail: {
|
|
356
|
+
received: "\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E41\u0E25\u0E49\u0E27",
|
|
357
|
+
reviewing: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E43\u0E2A\u0E48\u0E44\u0E27\u0E49\u0E43\u0E19\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E41\u0E25\u0E49\u0E27",
|
|
358
|
+
reviewing_again: "\u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13 \u2014 \u0E40\u0E23\u0E32\u0E40\u0E1B\u0E34\u0E14\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E41\u0E25\u0E49\u0E27",
|
|
359
|
+
fixing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02",
|
|
360
|
+
verified: "\u0E04\u0E38\u0E13\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02\u0E41\u0E25\u0E49\u0E27 \u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13!",
|
|
361
|
+
fixed_next: "\u0E08\u0E30\u0E21\u0E32\u0E43\u0E19\u0E23\u0E38\u0E48\u0E19\u0E16\u0E31\u0E14\u0E44\u0E1B",
|
|
362
|
+
fixed_version: "\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E40\u0E1B\u0E47\u0E19 v{version} \u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E43\u0E0A\u0E49\u0E44\u0E14\u0E49\u0E2B\u0E23\u0E37\u0E2D\u0E22\u0E31\u0E07?",
|
|
363
|
+
fixed: "\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E43\u0E0A\u0E49\u0E44\u0E14\u0E49\u0E2B\u0E23\u0E37\u0E2D\u0E22\u0E31\u0E07?",
|
|
364
|
+
closed: "\u0E1B\u0E34\u0E14\u0E41\u0E25\u0E49\u0E27",
|
|
365
|
+
waiting: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E21\u0E35\u0E04\u0E33\u0E16\u0E32\u0E21 \u2014 \u0E15\u0E2D\u0E1A\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07"
|
|
366
|
+
},
|
|
367
|
+
idea: {
|
|
368
|
+
received: "\u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E44\u0E2D\u0E40\u0E14\u0E35\u0E22",
|
|
369
|
+
reviewing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E1E\u0E34\u0E08\u0E32\u0E23\u0E13\u0E32",
|
|
370
|
+
fixing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07",
|
|
371
|
+
shipped: "\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E41\u0E25\u0E49\u0E27",
|
|
372
|
+
shippedVersion: "\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E41\u0E25\u0E49\u0E27\u0E43\u0E19 v{version}"
|
|
373
|
+
},
|
|
374
|
+
closedReason: {
|
|
375
|
+
duplicate: "\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32 \u2014 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E41\u0E08\u0E49\u0E07\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E17\u0E35\u0E48\u0E19\u0E31\u0E48\u0E19",
|
|
376
|
+
not_reproducible: "\u0E40\u0E23\u0E32\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E01\u0E34\u0E14\u0E0B\u0E49\u0E33\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49 \u0E15\u0E2D\u0E1A\u0E01\u0E25\u0E31\u0E1A\u0E2B\u0E32\u0E01\u0E40\u0E01\u0E34\u0E14\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E35\u0E01",
|
|
377
|
+
wont_fix: "\u0E40\u0E23\u0E32\u0E15\u0E31\u0E14\u0E2A\u0E34\u0E19\u0E43\u0E08\u0E44\u0E21\u0E48\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E19\u0E35\u0E49",
|
|
378
|
+
working_as_intended: "\u0E19\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48\u0E15\u0E31\u0E49\u0E07\u0E43\u0E08\u0E44\u0E27\u0E49",
|
|
379
|
+
none: "\u0E1B\u0E34\u0E14\u0E41\u0E25\u0E49\u0E27"
|
|
380
|
+
},
|
|
381
|
+
others: {
|
|
382
|
+
few: "\u0E04\u0E38\u0E13\u0E41\u0E25\u0E30\u0E2D\u0E35\u0E01\u0E44\u0E21\u0E48\u0E01\u0E35\u0E48\u0E04\u0E19\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49",
|
|
383
|
+
many: "\u0E21\u0E35\u0E2B\u0E25\u0E32\u0E22\u0E04\u0E19\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49"
|
|
384
|
+
},
|
|
385
|
+
timeline: {
|
|
386
|
+
received: "\u0E04\u0E38\u0E13\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49",
|
|
387
|
+
reviewing: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E01\u0E33\u0E25\u0E31\u0E07\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A",
|
|
388
|
+
duplicate_linked: "\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48 \u2014 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E41\u0E08\u0E49\u0E07\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E17\u0E35\u0E48\u0E19\u0E31\u0E48\u0E19",
|
|
389
|
+
info_requested: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E16\u0E32\u0E21\u0E27\u0E48\u0E32: {text}",
|
|
390
|
+
reporter_comment: "\u0E04\u0E38\u0E13",
|
|
391
|
+
fix_started: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E41\u0E01\u0E49\u0E44\u0E02",
|
|
392
|
+
fixed: "\u0E41\u0E01\u0E49\u0E41\u0E25\u0E49\u0E27 \u2014 \u0E08\u0E30\u0E21\u0E32\u0E43\u0E19\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E16\u0E31\u0E14\u0E44\u0E1B",
|
|
393
|
+
released: "\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E43\u0E19 v{version} \u2014 \u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02",
|
|
394
|
+
verified: "\u0E04\u0E38\u0E13\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E27\u0E48\u0E32\u0E41\u0E01\u0E49\u0E41\u0E25\u0E49\u0E27",
|
|
395
|
+
reopened: "\u0E40\u0E1B\u0E34\u0E14\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07"
|
|
396
|
+
},
|
|
397
|
+
categories: {
|
|
398
|
+
bug: "\u0E1A\u0E31\u0E4A\u0E01",
|
|
399
|
+
slow: "\u0E0A\u0E49\u0E32",
|
|
400
|
+
visual: "\u0E41\u0E2A\u0E14\u0E07\u0E1C\u0E25\u0E1C\u0E34\u0E14",
|
|
401
|
+
confusing: "\u0E2A\u0E31\u0E1A\u0E2A\u0E19",
|
|
402
|
+
idea: "\u0E44\u0E2D\u0E40\u0E14\u0E35\u0E22"
|
|
403
|
+
},
|
|
404
|
+
ui: {
|
|
405
|
+
yes: "\u0E43\u0E0A\u0E48",
|
|
406
|
+
notYet: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48",
|
|
407
|
+
empty: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35 \u2014 \u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E08\u0E30\u0E41\u0E2A\u0E14\u0E07\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32",
|
|
408
|
+
loadError: "\u0E42\u0E2B\u0E25\u0E14\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49",
|
|
409
|
+
retry: "\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",
|
|
410
|
+
sending: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E2A\u0E48\u0E07\u2026",
|
|
411
|
+
sent: "\u0E2A\u0E48\u0E07\u0E41\u0E25\u0E49\u0E27",
|
|
412
|
+
sendFailed: "\u0E2A\u0E48\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08",
|
|
413
|
+
noReplies: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E33\u0E15\u0E2D\u0E1A\u0E08\u0E32\u0E01\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32",
|
|
414
|
+
you: "\u0E04\u0E38\u0E13",
|
|
415
|
+
developer: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32",
|
|
416
|
+
addWords: "\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E2D\u0E35\u0E01\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22",
|
|
417
|
+
developerReplied: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E15\u0E2D\u0E1A\u0E27\u0E48\u0E32: \u201C{text}\u201D",
|
|
418
|
+
updates: "\u0E21\u0E35\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32 {n} \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E43\u0E19\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
419
|
+
receipt: "\u0E2A\u0E48\u0E07\u0E41\u0E25\u0E49\u0E27 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E41\u0E08\u0E49\u0E07\u0E04\u0E38\u0E13\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E21\u0E35\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32",
|
|
420
|
+
trackIt: "\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21",
|
|
421
|
+
done: "\u0E40\u0E2A\u0E23\u0E47\u0E08",
|
|
422
|
+
emailOptIn: "\u0E23\u0E31\u0E1A\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E17\u0E32\u0E07\u0E2D\u0E35\u0E40\u0E21\u0E25",
|
|
423
|
+
emailPlaceholder: "you@example.com",
|
|
424
|
+
emailSubmit: "\u0E2A\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E17\u0E32\u0E07\u0E2D\u0E35\u0E40\u0E21\u0E25",
|
|
425
|
+
emailCheckInbox: "\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E08\u0E14\u0E2B\u0E21\u0E32\u0E22\u0E41\u0E25\u0E49\u0E27\u0E41\u0E15\u0E30\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19",
|
|
426
|
+
emailInvalid: "\u0E14\u0E39\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E08\u0E30\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07",
|
|
427
|
+
emailFailed: "\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E17\u0E32\u0E07\u0E2D\u0E35\u0E40\u0E21\u0E25\u0E44\u0E21\u0E48\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08 \u0E25\u0E2D\u0E07\u0E43\u0E2B\u0E21\u0E48\u0E20\u0E32\u0E22\u0E2B\u0E25\u0E31\u0E07",
|
|
428
|
+
toastReplied: "\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E15\u0E2D\u0E1A\u0E01\u0E25\u0E31\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E41\u0E25\u0E49\u0E27",
|
|
429
|
+
toastFixed: "\u0E1A\u0E31\u0E4A\u0E01\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02\u0E41\u0E25\u0E49\u0E27",
|
|
430
|
+
view: "\u0E14\u0E39"
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
var COPY = { en: EN, ja: JA, es: ES, th: TH };
|
|
434
|
+
function resolveReporterLocale(tag) {
|
|
435
|
+
const base = (tag ?? "").toLowerCase().split(/[-_]/)[0];
|
|
436
|
+
return REPORTER_LOCALES.includes(base) ? base : "en";
|
|
437
|
+
}
|
|
438
|
+
function reporterCopy(locale = "en") {
|
|
439
|
+
return COPY[resolveReporterLocale(locale)];
|
|
440
|
+
}
|
|
441
|
+
function fillReporterTemplate(template, params = {}) {
|
|
442
|
+
return template.replace(/\{(\w+)\}/g, (_, key) => {
|
|
443
|
+
const value = params[key];
|
|
444
|
+
return value === null || value === void 0 ? "" : String(value);
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
var OPEN_KEYS = /* @__PURE__ */ new Set([
|
|
448
|
+
"received",
|
|
449
|
+
"reviewing",
|
|
450
|
+
"reviewing_again",
|
|
451
|
+
"fixing"
|
|
452
|
+
]);
|
|
453
|
+
function isCanonical(status) {
|
|
454
|
+
return REPORTER_CANONICAL_STATUSES.includes(status);
|
|
455
|
+
}
|
|
456
|
+
function isReporterIdea(input) {
|
|
457
|
+
const cat = (input.user_category ?? "").trim().toLowerCase().replace(/[\s-]+/g, "_");
|
|
458
|
+
return cat === "feature" || cat === "feature_request" || cat === "idea";
|
|
459
|
+
}
|
|
460
|
+
function reporterStatus(input, locale = "en") {
|
|
461
|
+
const copy = reporterCopy(locale);
|
|
462
|
+
const status = (input.status ?? "").trim();
|
|
463
|
+
let key = isCanonical(status) ? BASE_STATE[status] : "received";
|
|
464
|
+
const version = input.fixed_in_version?.trim() || null;
|
|
465
|
+
if ((status === "fixed" || status === "resolved") && version) key = "fixed_version";
|
|
466
|
+
const awaiting = Boolean(input.awaiting_reporter) || Boolean(input.awaiting_reporter_at);
|
|
467
|
+
if (awaiting && OPEN_KEYS.has(key)) key = "waiting";
|
|
468
|
+
const idea = isReporterIdea(input);
|
|
469
|
+
let label = copy.status[key];
|
|
470
|
+
let detail = copy.detail[key];
|
|
471
|
+
if (idea) {
|
|
472
|
+
if (key === "received") label = copy.idea.received;
|
|
473
|
+
else if (key === "reviewing" || key === "reviewing_again") label = copy.idea.reviewing;
|
|
474
|
+
else if (key === "fixing") label = copy.idea.fixing;
|
|
475
|
+
else if (key === "fixed_version") label = copy.idea.shippedVersion;
|
|
476
|
+
else if (key === "fixed_next" || key === "fixed") label = copy.idea.shipped;
|
|
477
|
+
}
|
|
478
|
+
const reason = input.closed_reason ?? null;
|
|
479
|
+
if (key === "closed") {
|
|
480
|
+
detail = reason && reason !== "spam" && reason in copy.closedReason ? copy.closedReason[reason] : copy.closedReason.none;
|
|
481
|
+
}
|
|
482
|
+
const bucket = input.group_bucket ?? "none";
|
|
483
|
+
const othersNote = OPEN_KEYS.has(key) || key === "waiting" ? bucket === "few" ? copy.others.few : bucket === "many" ? copy.others.many : null : null;
|
|
484
|
+
return {
|
|
485
|
+
key,
|
|
486
|
+
label: fillReporterTemplate(label, { version }),
|
|
487
|
+
tone: TONE[key],
|
|
488
|
+
detail: fillReporterTemplate(detail, { version }),
|
|
489
|
+
canVerify: key === "fixed_next" || key === "fixed_version" || key === "fixed",
|
|
490
|
+
othersNote,
|
|
491
|
+
hidden: key === "closed" && reason === "spam"
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
function reporterTimelineText(kind, params = {}, locale = "en") {
|
|
495
|
+
const copy = reporterCopy(locale);
|
|
496
|
+
if (kind === "comment") return params.text ?? "";
|
|
497
|
+
if (kind === "closed") {
|
|
498
|
+
const reason = params.closed_reason ?? "";
|
|
499
|
+
return reason && reason !== "spam" && reason in copy.closedReason ? copy.closedReason[reason] : copy.closedReason.none;
|
|
500
|
+
}
|
|
501
|
+
if (kind === "reporter_comment") return params.text ?? copy.timeline.reporter_comment;
|
|
502
|
+
return fillReporterTemplate(copy.timeline[kind], { text: params.text, version: params.version });
|
|
503
|
+
}
|
|
504
|
+
function reporterCategoryLabel(category, locale = "en") {
|
|
505
|
+
return reporterCopy(locale).categories[category];
|
|
506
|
+
}
|
|
507
|
+
var REPORTER_MIN_DESCRIPTION = 8;
|
|
508
|
+
function reporterRequiredLength(min, hasAttachment) {
|
|
509
|
+
if (hasAttachment) return 0;
|
|
510
|
+
return typeof min === "number" && Number.isFinite(min) && min >= 0 ? Math.floor(min) : REPORTER_MIN_DESCRIPTION;
|
|
511
|
+
}
|
|
512
|
+
function reporterCanSend(text, hasAttachment, min) {
|
|
513
|
+
const trimmed = text.trim();
|
|
514
|
+
if (!trimmed && !hasAttachment) return false;
|
|
515
|
+
return trimmed.length >= reporterRequiredLength(min, hasAttachment);
|
|
516
|
+
}
|
|
517
|
+
function reporterChipToReport(chip) {
|
|
518
|
+
if (!chip) return { category: "other" };
|
|
519
|
+
if (chip === "idea") return { category: "other", userCategory: "feature" };
|
|
520
|
+
return { category: chip };
|
|
521
|
+
}
|
|
522
|
+
function isReporterConversation(entry) {
|
|
523
|
+
return entry.kind === "comment" || entry.kind === "reporter_comment" || entry.kind === "info_requested";
|
|
524
|
+
}
|
|
525
|
+
function reporterTimelineEntryText(entry, locale = "en") {
|
|
526
|
+
if (entry.custom || !REPORTER_TIMELINE_KINDS.includes(entry.kind)) return entry.text;
|
|
527
|
+
return reporterTimelineText(
|
|
528
|
+
entry.kind,
|
|
529
|
+
{ text: entry.body ?? null, version: entry.version ?? null, closed_reason: entry.closed_reason ?? null },
|
|
530
|
+
locale
|
|
531
|
+
);
|
|
532
|
+
}
|
|
533
|
+
var REPORTER_TOAST_INTERVAL_MS = 24 * 60 * 60 * 1e3;
|
|
534
|
+
function reporterShouldShowToast(input) {
|
|
535
|
+
if (!input.enabled || input.unreadTotal <= 0 || input.shownThisSession) return false;
|
|
536
|
+
return input.lastShownAt === null || input.now - input.lastShownAt >= REPORTER_TOAST_INTERVAL_MS;
|
|
537
|
+
}
|
|
538
|
+
function reporterToastMessage(updates, locale = "en") {
|
|
539
|
+
const ui = reporterCopy(locale).ui;
|
|
540
|
+
const kind = updates.unread_total === 1 ? updates.latest[0]?.kind : null;
|
|
541
|
+
if (kind === "comment" || kind === "info_requested") return ui.toastReplied;
|
|
542
|
+
if (kind === "fixed" || kind === "released") return ui.toastFixed;
|
|
543
|
+
return ui.updates.replace("{n}", String(updates.unread_total));
|
|
544
|
+
}
|
|
545
|
+
function isPlausibleReporterEmail(raw) {
|
|
546
|
+
return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(raw.trim());
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
export { REPORTER_CANONICAL_STATUSES, REPORTER_CATEGORIES, REPORTER_CLOSED_REASONS, REPORTER_LOCALES, REPORTER_MIN_DESCRIPTION, REPORTER_TIMELINE_KINDS, REPORTER_TOAST_INTERVAL_MS, fillReporterTemplate, isPlausibleReporterEmail, isReporterConversation, isReporterIdea, reporterCanSend, reporterCategoryLabel, reporterChipToReport, reporterCopy, reporterRequiredLength, reporterShouldShowToast, reporterStatus, reporterTimelineEntryText, reporterTimelineText, reporterToastMessage, resolveReporterLocale };
|
|
550
|
+
//# sourceMappingURL=reporter-ui.js.map
|
|
551
|
+
//# sourceMappingURL=reporter-ui.js.map
|