iobroker.time-tracker 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +386 -0
  3. package/admin/i18n/de.json +34 -0
  4. package/admin/i18n/en.json +1 -0
  5. package/admin/i18n/es.json +34 -0
  6. package/admin/i18n/fr.json +34 -0
  7. package/admin/i18n/it.json +34 -0
  8. package/admin/i18n/nl.json +34 -0
  9. package/admin/i18n/pl.json +34 -0
  10. package/admin/i18n/pt.json +34 -0
  11. package/admin/i18n/ru.json +34 -0
  12. package/admin/i18n/uk.json +34 -0
  13. package/admin/i18n/zh-cn.json +34 -0
  14. package/admin/jsonConfig.json +266 -0
  15. package/admin/time-tracker.png +0 -0
  16. package/build/lib/adapter/automation.js +100 -0
  17. package/build/lib/adapter/automation.js.map +7 -0
  18. package/build/lib/adapter/commands.js +160 -0
  19. package/build/lib/adapter/commands.js.map +7 -0
  20. package/build/lib/adapter/messages.js +207 -0
  21. package/build/lib/adapter/messages.js.map +7 -0
  22. package/build/lib/adapter/presence.js +129 -0
  23. package/build/lib/adapter/presence.js.map +7 -0
  24. package/build/lib/adapter/states.js +330 -0
  25. package/build/lib/adapter/states.js.map +7 -0
  26. package/build/lib/adapter/triggers.js +92 -0
  27. package/build/lib/adapter/triggers.js.map +7 -0
  28. package/build/lib/db/database.js +96 -0
  29. package/build/lib/db/database.js.map +7 -0
  30. package/build/lib/db/migrations.js +603 -0
  31. package/build/lib/db/migrations.js.map +7 -0
  32. package/build/lib/db/repositories/absences.js +432 -0
  33. package/build/lib/db/repositories/absences.js.map +7 -0
  34. package/build/lib/db/repositories/audit.js +90 -0
  35. package/build/lib/db/repositories/audit.js.map +7 -0
  36. package/build/lib/db/repositories/automations.js +326 -0
  37. package/build/lib/db/repositories/automations.js.map +7 -0
  38. package/build/lib/db/repositories/entries.js +335 -0
  39. package/build/lib/db/repositories/entries.js.map +7 -0
  40. package/build/lib/db/repositories/holidays.js +156 -0
  41. package/build/lib/db/repositories/holidays.js.map +7 -0
  42. package/build/lib/db/repositories/payouts.js +221 -0
  43. package/build/lib/db/repositories/payouts.js.map +7 -0
  44. package/build/lib/db/repositories/rfid.js +264 -0
  45. package/build/lib/db/repositories/rfid.js.map +7 -0
  46. package/build/lib/db/repositories/rules.js +356 -0
  47. package/build/lib/db/repositories/rules.js.map +7 -0
  48. package/build/lib/db/repositories/settings.js +91 -0
  49. package/build/lib/db/repositories/settings.js.map +7 -0
  50. package/build/lib/db/repositories/terminals.js +243 -0
  51. package/build/lib/db/repositories/terminals.js.map +7 -0
  52. package/build/lib/db/repositories/triggers.js +240 -0
  53. package/build/lib/db/repositories/triggers.js.map +7 -0
  54. package/build/lib/db/repositories/users.js +491 -0
  55. package/build/lib/db/repositories/users.js.map +7 -0
  56. package/build/lib/db/seed.js +180 -0
  57. package/build/lib/db/seed.js.map +7 -0
  58. package/build/lib/domain/avatar.js +63 -0
  59. package/build/lib/domain/avatar.js.map +7 -0
  60. package/build/lib/domain/breaks.js +70 -0
  61. package/build/lib/domain/breaks.js.map +7 -0
  62. package/build/lib/domain/calculation.js +150 -0
  63. package/build/lib/domain/calculation.js.map +7 -0
  64. package/build/lib/domain/holidays.js +113 -0
  65. package/build/lib/domain/holidays.js.map +7 -0
  66. package/build/lib/domain/punch.js +99 -0
  67. package/build/lib/domain/punch.js.map +7 -0
  68. package/build/lib/domain/target.js +89 -0
  69. package/build/lib/domain/target.js.map +7 -0
  70. package/build/lib/errors.js +56 -0
  71. package/build/lib/errors.js.map +7 -0
  72. package/build/lib/reports/labels.js +358 -0
  73. package/build/lib/reports/labels.js.map +7 -0
  74. package/build/lib/reports/pdf.js +308 -0
  75. package/build/lib/reports/pdf.js.map +7 -0
  76. package/build/lib/reports/types.js +32 -0
  77. package/build/lib/reports/types.js.map +7 -0
  78. package/build/lib/reports/xls.js +211 -0
  79. package/build/lib/reports/xls.js.map +7 -0
  80. package/build/lib/services/aggregation.js +495 -0
  81. package/build/lib/services/aggregation.js.map +7 -0
  82. package/build/lib/services/auth.js +381 -0
  83. package/build/lib/services/auth.js.map +7 -0
  84. package/build/lib/services/backup.js +372 -0
  85. package/build/lib/services/backup.js.map +7 -0
  86. package/build/lib/services/closing.js +106 -0
  87. package/build/lib/services/closing.js.map +7 -0
  88. package/build/lib/services/sessionSecret.js +100 -0
  89. package/build/lib/services/sessionSecret.js.map +7 -0
  90. package/build/lib/services/sync.js +278 -0
  91. package/build/lib/services/sync.js.map +7 -0
  92. package/build/lib/util/time.js +125 -0
  93. package/build/lib/util/time.js.map +7 -0
  94. package/build/lib/web/api.js +2589 -0
  95. package/build/lib/web/api.js.map +7 -0
  96. package/build/lib/web/cookies.js +80 -0
  97. package/build/lib/web/cookies.js.map +7 -0
  98. package/build/lib/web/events.js +50 -0
  99. package/build/lib/web/events.js.map +7 -0
  100. package/build/lib/web/pin-guard.js +86 -0
  101. package/build/lib/web/pin-guard.js.map +7 -0
  102. package/build/lib/web/problem.js +129 -0
  103. package/build/lib/web/problem.js.map +7 -0
  104. package/build/lib/web/rate-limit.js +65 -0
  105. package/build/lib/web/rate-limit.js.map +7 -0
  106. package/build/lib/web/router.js +274 -0
  107. package/build/lib/web/router.js.map +7 -0
  108. package/build/lib/web/server.js +189 -0
  109. package/build/lib/web/server.js.map +7 -0
  110. package/build/lib/web/static.js +151 -0
  111. package/build/lib/web/static.js.map +7 -0
  112. package/build/lib/web/stream.js +135 -0
  113. package/build/lib/web/stream.js.map +7 -0
  114. package/build/main.js +986 -0
  115. package/build/main.js.map +7 -0
  116. package/io-package.json +221 -0
  117. package/package.json +131 -0
  118. package/src-pwa/src/i18n/de.json +359 -0
  119. package/src-pwa/src/i18n/en.json +359 -0
  120. package/src-pwa/src/i18n/es.json +359 -0
  121. package/src-pwa/src/i18n/fr.json +359 -0
  122. package/src-pwa/src/i18n/index.ts +96 -0
  123. package/src-pwa/src/i18n/it.json +359 -0
  124. package/src-pwa/src/i18n/nl.json +359 -0
  125. package/src-pwa/src/i18n/pl.json +359 -0
  126. package/src-pwa/src/i18n/pt.json +359 -0
  127. package/src-pwa/src/i18n/ru.json +359 -0
  128. package/src-pwa/src/i18n/uk.json +359 -0
  129. package/src-pwa/src/i18n/zh-cn.json +359 -0
  130. package/www/assets/index-QI3wrEvW.js +119 -0
  131. package/www/assets/index-QI3wrEvW.js.map +1 -0
  132. package/www/assets/workbox-window.prod.es5-Bd17z0YL.js +3 -0
  133. package/www/assets/workbox-window.prod.es5-Bd17z0YL.js.map +1 -0
  134. package/www/favicon.svg +16 -0
  135. package/www/icon-192.png +0 -0
  136. package/www/icon-512.png +0 -0
  137. package/www/index.html +38 -0
  138. package/www/manifest.webmanifest +1 -0
  139. package/www/person.png +0 -0
  140. package/www/sw.js +3 -0
  141. package/www/sw.js.map +1 -0
  142. package/www/workbox-9c191d2f.js +3 -0
  143. package/www/workbox-9c191d2f.js.map +1 -0
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var labels_exports = {};
20
+ __export(labels_exports, {
21
+ REPORT_LABELS: () => REPORT_LABELS,
22
+ reportLabels: () => reportLabels
23
+ });
24
+ module.exports = __toCommonJS(labels_exports);
25
+ const EN = {
26
+ title: "Work time statement",
27
+ employee: "Employee",
28
+ period: "Period",
29
+ created: "Created",
30
+ date: "Date",
31
+ timeIn: "In",
32
+ timeOut: "Out",
33
+ worked: "Worked",
34
+ breaks: "Break",
35
+ paidBreaks: "of which paid",
36
+ target: "Target",
37
+ balance: "Balance",
38
+ absence: "Absence",
39
+ note: "Note",
40
+ openEntry: "open",
41
+ holiday: "holiday",
42
+ total: "Total",
43
+ days: "Days",
44
+ absences: "Absences",
45
+ from: "From",
46
+ to: "To",
47
+ portion: "Portion",
48
+ fullDay: "whole day",
49
+ halfDay: "half day",
50
+ signatureEmployee: "Signature employee",
51
+ signatureManager: "Signature manager"
52
+ };
53
+ const FR = {
54
+ title: "Relev\xE9 des heures",
55
+ employee: "Collaborateur",
56
+ period: "P\xE9riode",
57
+ created: "Cr\xE9\xE9 le",
58
+ date: "Date",
59
+ timeIn: "D\xE9but",
60
+ timeOut: "Fin",
61
+ worked: "Travaill\xE9",
62
+ breaks: "Pause",
63
+ paidBreaks: "dont pay\xE9",
64
+ target: "Objectif",
65
+ balance: "Solde",
66
+ absence: "Absence",
67
+ note: "Remarque",
68
+ openEntry: "ouvert",
69
+ holiday: "jour f\xE9ri\xE9",
70
+ total: "Total",
71
+ days: "Jours",
72
+ absences: "Absences",
73
+ from: "Du",
74
+ to: "Au",
75
+ portion: "Part",
76
+ fullDay: "journ\xE9e enti\xE8re",
77
+ halfDay: "demi-journ\xE9e",
78
+ signatureEmployee: "Signature du collaborateur",
79
+ signatureManager: "Signature du responsable"
80
+ };
81
+ const IT = {
82
+ title: "Estratto ore",
83
+ employee: "Collaboratore",
84
+ period: "Periodo",
85
+ created: "Creato",
86
+ date: "Data",
87
+ timeIn: "Inizio",
88
+ timeOut: "Fine",
89
+ worked: "Lavorato",
90
+ breaks: "Pausa",
91
+ paidBreaks: "di cui pagato",
92
+ target: "Obiettivo",
93
+ balance: "Saldo",
94
+ absence: "Assenza",
95
+ note: "Nota",
96
+ openEntry: "aperto",
97
+ holiday: "giorno festivo",
98
+ total: "Totale",
99
+ days: "Giorni",
100
+ absences: "Assenze",
101
+ from: "Dal",
102
+ to: "Al",
103
+ portion: "Quota",
104
+ fullDay: "giornata intera",
105
+ halfDay: "mezza giornata",
106
+ signatureEmployee: "Firma collaboratore",
107
+ signatureManager: "Firma responsabile"
108
+ };
109
+ const ES = {
110
+ title: "Registro de horas",
111
+ employee: "Empleado",
112
+ period: "Per\xEDodo",
113
+ created: "Creado",
114
+ date: "Fecha",
115
+ timeIn: "Entrada",
116
+ timeOut: "Salida",
117
+ worked: "Trabajado",
118
+ breaks: "Pausa",
119
+ paidBreaks: "de los cuales pagado",
120
+ target: "Objetivo",
121
+ balance: "Saldo",
122
+ absence: "Ausencia",
123
+ note: "Nota",
124
+ openEntry: "abierto",
125
+ holiday: "festivo",
126
+ total: "Total",
127
+ days: "D\xEDas",
128
+ absences: "Ausencias",
129
+ from: "Desde",
130
+ to: "Hasta",
131
+ portion: "Parte",
132
+ fullDay: "d\xEDa completo",
133
+ halfDay: "medio d\xEDa",
134
+ signatureEmployee: "Firma del empleado",
135
+ signatureManager: "Firma del responsable"
136
+ };
137
+ const PT = {
138
+ title: "Extrato de horas",
139
+ employee: "Colaborador",
140
+ period: "Per\xEDodo",
141
+ created: "Criado",
142
+ date: "Data",
143
+ timeIn: "Entrada",
144
+ timeOut: "Sa\xEDda",
145
+ worked: "Trabalhado",
146
+ breaks: "Pausa",
147
+ paidBreaks: "dos quais pago",
148
+ target: "Meta",
149
+ balance: "Saldo",
150
+ absence: "Aus\xEAncia",
151
+ note: "Nota",
152
+ openEntry: "aberto",
153
+ holiday: "feriado",
154
+ total: "Total",
155
+ days: "Dias",
156
+ absences: "Aus\xEAncias",
157
+ from: "De",
158
+ to: "At\xE9",
159
+ portion: "Parte",
160
+ fullDay: "dia inteiro",
161
+ halfDay: "meio dia",
162
+ signatureEmployee: "Assinatura do colaborador",
163
+ signatureManager: "Assinatura do respons\xE1vel"
164
+ };
165
+ const DE = {
166
+ title: "Stundennachweis",
167
+ employee: "Mitarbeiter",
168
+ period: "Zeitraum",
169
+ created: "Erstellt",
170
+ date: "Datum",
171
+ timeIn: "Von",
172
+ timeOut: "Bis",
173
+ worked: "Arbeitszeit",
174
+ breaks: "Pause",
175
+ paidBreaks: "davon bezahlt",
176
+ target: "Soll",
177
+ balance: "Saldo",
178
+ absence: "Abwesenheit",
179
+ note: "Hinweis",
180
+ openEntry: "offen",
181
+ holiday: "Feiertag",
182
+ total: "Summe",
183
+ days: "Tage",
184
+ absences: "Abwesenheiten",
185
+ from: "Von",
186
+ to: "Bis",
187
+ portion: "Anteil",
188
+ fullDay: "ganzer Tag",
189
+ halfDay: "halber Tag",
190
+ signatureEmployee: "Unterschrift Mitarbeiter",
191
+ signatureManager: "Unterschrift Vorgesetzter"
192
+ };
193
+ const NL = {
194
+ title: "Urenoverzicht",
195
+ employee: "Medewerker",
196
+ period: "Periode",
197
+ created: "Aangemaakt",
198
+ date: "Datum",
199
+ timeIn: "Van",
200
+ timeOut: "Tot",
201
+ worked: "Gewerkt",
202
+ breaks: "Pauze",
203
+ paidBreaks: "waarvan betaald",
204
+ target: "Doel",
205
+ balance: "Saldo",
206
+ absence: "Afwezigheid",
207
+ note: "Opmerking",
208
+ openEntry: "open",
209
+ holiday: "feestdag",
210
+ total: "Totaal",
211
+ days: "Dagen",
212
+ absences: "Afwezigheden",
213
+ from: "Van",
214
+ to: "Tot",
215
+ portion: "Deel",
216
+ fullDay: "hele dag",
217
+ halfDay: "halve dag",
218
+ signatureEmployee: "Handtekening medewerker",
219
+ signatureManager: "Handtekening leidinggevende"
220
+ };
221
+ const PL = {
222
+ title: "Ewidencja czasu pracy",
223
+ employee: "Pracownik",
224
+ period: "Okres",
225
+ created: "Utworzono",
226
+ date: "Data",
227
+ timeIn: "Od",
228
+ timeOut: "Do",
229
+ worked: "Przepracowano",
230
+ breaks: "Przerwa",
231
+ paidBreaks: "w tym p\u0142atne",
232
+ target: "Norma",
233
+ balance: "Saldo",
234
+ absence: "Nieobecno\u015B\u0107",
235
+ note: "Uwaga",
236
+ openEntry: "otwarte",
237
+ holiday: "\u015Bwi\u0119to",
238
+ total: "Razem",
239
+ days: "Dni",
240
+ absences: "Nieobecno\u015Bci",
241
+ from: "Od",
242
+ to: "Do",
243
+ portion: "Cz\u0119\u015B\u0107",
244
+ fullDay: "ca\u0142y dzie\u0144",
245
+ halfDay: "p\xF3\u0142 dnia",
246
+ signatureEmployee: "Podpis pracownika",
247
+ signatureManager: "Podpis prze\u0142o\u017Conego"
248
+ };
249
+ const RU = {
250
+ title: "\u0422\u0430\u0431\u0435\u043B\u044C \u0443\u0447\u0451\u0442\u0430 \u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438",
251
+ employee: "\u0421\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A",
252
+ period: "\u041F\u0435\u0440\u0438\u043E\u0434",
253
+ created: "\u0421\u043E\u0437\u0434\u0430\u043D\u043E",
254
+ date: "\u0414\u0430\u0442\u0430",
255
+ timeIn: "\u041D\u0430\u0447\u0430\u043B\u043E",
256
+ timeOut: "\u041E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435",
257
+ worked: "\u041E\u0442\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043E",
258
+ breaks: "\u041F\u0435\u0440\u0435\u0440\u044B\u0432",
259
+ paidBreaks: "\u0438\u0437 \u043D\u0438\u0445 \u043E\u043F\u043B\u0430\u0447\u0435\u043D\u043E",
260
+ target: "\u041D\u043E\u0440\u043C\u0430",
261
+ balance: "\u0421\u0430\u043B\u044C\u0434\u043E",
262
+ absence: "\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435",
263
+ note: "\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435",
264
+ openEntry: "\u043E\u0442\u043A\u0440\u044B\u0442\u043E",
265
+ holiday: "\u043F\u0440\u0430\u0437\u0434\u043D\u0438\u043A",
266
+ total: "\u0418\u0442\u043E\u0433\u043E",
267
+ days: "\u0414\u043D\u0438",
268
+ absences: "\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044F",
269
+ from: "\u0421",
270
+ to: "\u041F\u043E",
271
+ portion: "\u0414\u043E\u043B\u044F",
272
+ fullDay: "\u043F\u043E\u043B\u043D\u044B\u0439 \u0434\u0435\u043D\u044C",
273
+ halfDay: "\u043F\u043E\u043B\u0434\u043D\u044F",
274
+ signatureEmployee: "\u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0441\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\u0430",
275
+ signatureManager: "\u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F"
276
+ };
277
+ const UK = {
278
+ title: "\u0422\u0430\u0431\u0435\u043B\u044C \u043E\u0431\u043B\u0456\u043A\u0443 \u0440\u043E\u0431\u043E\u0447\u043E\u0433\u043E \u0447\u0430\u0441\u0443",
279
+ employee: "\u0421\u043F\u0456\u0432\u0440\u043E\u0431\u0456\u0442\u043D\u0438\u043A",
280
+ period: "\u041F\u0435\u0440\u0456\u043E\u0434",
281
+ created: "\u0421\u0442\u0432\u043E\u0440\u0435\u043D\u043E",
282
+ date: "\u0414\u0430\u0442\u0430",
283
+ timeIn: "\u041F\u043E\u0447\u0430\u0442\u043E\u043A",
284
+ timeOut: "\u0417\u0430\u043A\u0456\u043D\u0447\u0435\u043D\u043D\u044F",
285
+ worked: "\u0412\u0456\u0434\u043F\u0440\u0430\u0446\u044C\u043E\u0432\u0430\u043D\u043E",
286
+ breaks: "\u041F\u0435\u0440\u0435\u0440\u0432\u0430",
287
+ paidBreaks: "\u0437 \u043D\u0438\u0445 \u043E\u043F\u043B\u0430\u0447\u0435\u043D\u043E",
288
+ target: "\u041D\u043E\u0440\u043C\u0430",
289
+ balance: "\u0421\u0430\u043B\u044C\u0434\u043E",
290
+ absence: "\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u0456\u0441\u0442\u044C",
291
+ note: "\u041F\u0440\u0438\u043C\u0456\u0442\u043A\u0430",
292
+ openEntry: "\u0432\u0456\u0434\u043A\u0440\u0438\u0442\u043E",
293
+ holiday: "\u0441\u0432\u044F\u0442\u043E",
294
+ total: "\u0420\u0430\u0437\u043E\u043C",
295
+ days: "\u0414\u043D\u0456",
296
+ absences: "\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u043E\u0441\u0442\u0456",
297
+ from: "\u0417",
298
+ to: "\u041F\u043E",
299
+ portion: "\u0427\u0430\u0441\u0442\u043A\u0430",
300
+ fullDay: "\u043F\u043E\u0432\u043D\u0438\u0439 \u0434\u0435\u043D\u044C",
301
+ halfDay: "\u043F\u0456\u0432\u0434\u043D\u044F",
302
+ signatureEmployee: "\u041F\u0456\u0434\u043F\u0438\u0441 \u0441\u043F\u0456\u0432\u0440\u043E\u0431\u0456\u0442\u043D\u0438\u043A\u0430",
303
+ signatureManager: "\u041F\u0456\u0434\u043F\u0438\u0441 \u043A\u0435\u0440\u0456\u0432\u043D\u0438\u043A\u0430"
304
+ };
305
+ const ZH_CN = {
306
+ title: "\u5DE5\u65F6\u8BB0\u5F55\u8868",
307
+ employee: "\u5458\u5DE5",
308
+ period: "\u671F\u95F4",
309
+ created: "\u521B\u5EFA\u65F6\u95F4",
310
+ date: "\u65E5\u671F",
311
+ timeIn: "\u4E0A\u73ED",
312
+ timeOut: "\u4E0B\u73ED",
313
+ worked: "\u5DE5\u4F5C\u65F6\u95F4",
314
+ breaks: "\u4F11\u606F",
315
+ paidBreaks: "\u5176\u4E2D\u5E26\u85AA",
316
+ target: "\u5E94\u51FA\u52E4",
317
+ balance: "\u5DEE\u989D",
318
+ absence: "\u7F3A\u52E4",
319
+ note: "\u5907\u6CE8",
320
+ openEntry: "\u672A\u7ED3\u675F",
321
+ holiday: "\u8282\u5047\u65E5",
322
+ total: "\u5408\u8BA1",
323
+ days: "\u5929\u6570",
324
+ absences: "\u7F3A\u52E4\u8BB0\u5F55",
325
+ from: "\u4ECE",
326
+ to: "\u5230",
327
+ portion: "\u6BD4\u4F8B",
328
+ fullDay: "\u5168\u5929",
329
+ halfDay: "\u534A\u5929",
330
+ signatureEmployee: "\u5458\u5DE5\u7B7E\u540D",
331
+ signatureManager: "\u4E3B\u7BA1\u7B7E\u540D"
332
+ };
333
+ const REPORT_LABELS = {
334
+ en: EN,
335
+ de: DE,
336
+ ru: RU,
337
+ pt: PT,
338
+ nl: NL,
339
+ fr: FR,
340
+ it: IT,
341
+ es: ES,
342
+ pl: PL,
343
+ uk: UK,
344
+ "zh-cn": ZH_CN
345
+ };
346
+ function reportLabels(locale) {
347
+ var _a;
348
+ const normalized = (locale != null ? locale : "").trim().toLowerCase().replace(/_/g, "-");
349
+ const language = normalized.startsWith("zh") ? "zh-cn" : normalized.split("-")[0];
350
+ const labels = (_a = REPORT_LABELS[language]) != null ? _a : EN;
351
+ return { labels, language: REPORT_LABELS[language] ? language : "en" };
352
+ }
353
+ // Annotate the CommonJS export names for ESM import in node:
354
+ 0 && (module.exports = {
355
+ REPORT_LABELS,
356
+ reportLabels
357
+ });
358
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/reports/labels.ts"],
4
+ "sourcesContent": ["/**\n * Labels of the downloadable reports.\n *\n * The reports are generated in the language of the employee (`users.locale`, falling back to the instance\n * language), because a work time statement is a document for that person, not for the administrator who\n * clicked the export. The set is deliberately small and stable: a report has a fixed layout, so new texts\n * have to be added here (and in every language) instead of being composed at runtime.\n */\n\n/** Labels of a monthly report. */\nexport interface ReportLabels {\n\t/** Title of the document */\n\ttitle: string;\n\t/** \"Employee\" */\n\temployee: string;\n\t/** \"Period\" */\n\tperiod: string;\n\t/** \"Created\" */\n\tcreated: string;\n\t/** Column \"Date\" */\n\tdate: string;\n\t/** Column \"In\" */\n\ttimeIn: string;\n\t/** Column \"Out\" */\n\ttimeOut: string;\n\t/** Column \"Worked\" */\n\tworked: string;\n\t/** Column \"Break\" */\n\tbreaks: string;\n\t/** Minutes of the break that are paid */\n\tpaidBreaks: string;\n\t/** Column \"Target\" */\n\ttarget: string;\n\t/** Column \"Balance\" */\n\tbalance: string;\n\t/** Column \"Absence\" */\n\tabsence: string;\n\t/** Column \"Note\" */\n\tnote: string;\n\t/** Marked when the last punch has no counterpart */\n\topenEntry: string;\n\t/** Marked when the day is a public holiday */\n\tholiday: string;\n\t/** Totals row */\n\ttotal: string;\n\t/** Number of counted days */\n\tdays: string;\n\t/** Section heading of the absences */\n\tabsences: string;\n\t/** Column \"From\" */\n\tfrom: string;\n\t/** Column \"To\" */\n\tto: string;\n\t/** Column \"Portion\" */\n\tportion: string;\n\t/** Portion value for a whole day */\n\tfullDay: string;\n\t/** Portion value for a half day */\n\thalfDay: string;\n\t/** Signature line of the employee */\n\tsignatureEmployee: string;\n\t/** Signature line of the manager */\n\tsignatureManager: string;\n}\n\n/** All labels in English. */\nconst EN: ReportLabels = {\n\ttitle: \"Work time statement\",\n\temployee: \"Employee\",\n\tperiod: \"Period\",\n\tcreated: \"Created\",\n\tdate: \"Date\",\n\ttimeIn: \"In\",\n\ttimeOut: \"Out\",\n\tworked: \"Worked\",\n\tbreaks: \"Break\",\n\tpaidBreaks: \"of which paid\",\n\ttarget: \"Target\",\n\tbalance: \"Balance\",\n\tabsence: \"Absence\",\n\tnote: \"Note\",\n\topenEntry: \"open\",\n\tholiday: \"holiday\",\n\ttotal: \"Total\",\n\tdays: \"Days\",\n\tabsences: \"Absences\",\n\tfrom: \"From\",\n\tto: \"To\",\n\tportion: \"Portion\",\n\tfullDay: \"whole day\",\n\thalfDay: \"half day\",\n\tsignatureEmployee: \"Signature employee\",\n\tsignatureManager: \"Signature manager\",\n};\n\n/** All labels in French. */\nconst FR: ReportLabels = {\n\ttitle: \"Relev\u00E9 des heures\",\n\temployee: \"Collaborateur\",\n\tperiod: \"P\u00E9riode\",\n\tcreated: \"Cr\u00E9\u00E9 le\",\n\tdate: \"Date\",\n\ttimeIn: \"D\u00E9but\",\n\ttimeOut: \"Fin\",\n\tworked: \"Travaill\u00E9\",\n\tbreaks: \"Pause\",\n\tpaidBreaks: \"dont pay\u00E9\",\n\ttarget: \"Objectif\",\n\tbalance: \"Solde\",\n\tabsence: \"Absence\",\n\tnote: \"Remarque\",\n\topenEntry: \"ouvert\",\n\tholiday: \"jour f\u00E9ri\u00E9\",\n\ttotal: \"Total\",\n\tdays: \"Jours\",\n\tabsences: \"Absences\",\n\tfrom: \"Du\",\n\tto: \"Au\",\n\tportion: \"Part\",\n\tfullDay: \"journ\u00E9e enti\u00E8re\",\n\thalfDay: \"demi-journ\u00E9e\",\n\tsignatureEmployee: \"Signature du collaborateur\",\n\tsignatureManager: \"Signature du responsable\",\n};\n\n/** All labels in Italian. */\nconst IT: ReportLabels = {\n\ttitle: \"Estratto ore\",\n\temployee: \"Collaboratore\",\n\tperiod: \"Periodo\",\n\tcreated: \"Creato\",\n\tdate: \"Data\",\n\ttimeIn: \"Inizio\",\n\ttimeOut: \"Fine\",\n\tworked: \"Lavorato\",\n\tbreaks: \"Pausa\",\n\tpaidBreaks: \"di cui pagato\",\n\ttarget: \"Obiettivo\",\n\tbalance: \"Saldo\",\n\tabsence: \"Assenza\",\n\tnote: \"Nota\",\n\topenEntry: \"aperto\",\n\tholiday: \"giorno festivo\",\n\ttotal: \"Totale\",\n\tdays: \"Giorni\",\n\tabsences: \"Assenze\",\n\tfrom: \"Dal\",\n\tto: \"Al\",\n\tportion: \"Quota\",\n\tfullDay: \"giornata intera\",\n\thalfDay: \"mezza giornata\",\n\tsignatureEmployee: \"Firma collaboratore\",\n\tsignatureManager: \"Firma responsabile\",\n};\n\n/** All labels in Spanish. */\nconst ES: ReportLabels = {\n\ttitle: \"Registro de horas\",\n\temployee: \"Empleado\",\n\tperiod: \"Per\u00EDodo\",\n\tcreated: \"Creado\",\n\tdate: \"Fecha\",\n\ttimeIn: \"Entrada\",\n\ttimeOut: \"Salida\",\n\tworked: \"Trabajado\",\n\tbreaks: \"Pausa\",\n\tpaidBreaks: \"de los cuales pagado\",\n\ttarget: \"Objetivo\",\n\tbalance: \"Saldo\",\n\tabsence: \"Ausencia\",\n\tnote: \"Nota\",\n\topenEntry: \"abierto\",\n\tholiday: \"festivo\",\n\ttotal: \"Total\",\n\tdays: \"D\u00EDas\",\n\tabsences: \"Ausencias\",\n\tfrom: \"Desde\",\n\tto: \"Hasta\",\n\tportion: \"Parte\",\n\tfullDay: \"d\u00EDa completo\",\n\thalfDay: \"medio d\u00EDa\",\n\tsignatureEmployee: \"Firma del empleado\",\n\tsignatureManager: \"Firma del responsable\",\n};\n\n/** All labels in Portuguese. */\nconst PT: ReportLabels = {\n\ttitle: \"Extrato de horas\",\n\temployee: \"Colaborador\",\n\tperiod: \"Per\u00EDodo\",\n\tcreated: \"Criado\",\n\tdate: \"Data\",\n\ttimeIn: \"Entrada\",\n\ttimeOut: \"Sa\u00EDda\",\n\tworked: \"Trabalhado\",\n\tbreaks: \"Pausa\",\n\tpaidBreaks: \"dos quais pago\",\n\ttarget: \"Meta\",\n\tbalance: \"Saldo\",\n\tabsence: \"Aus\u00EAncia\",\n\tnote: \"Nota\",\n\topenEntry: \"aberto\",\n\tholiday: \"feriado\",\n\ttotal: \"Total\",\n\tdays: \"Dias\",\n\tabsences: \"Aus\u00EAncias\",\n\tfrom: \"De\",\n\tto: \"At\u00E9\",\n\tportion: \"Parte\",\n\tfullDay: \"dia inteiro\",\n\thalfDay: \"meio dia\",\n\tsignatureEmployee: \"Assinatura do colaborador\",\n\tsignatureManager: \"Assinatura do respons\u00E1vel\",\n};\n\n/** All labels in German. */\nconst DE: ReportLabels = {\n\ttitle: \"Stundennachweis\",\n\temployee: \"Mitarbeiter\",\n\tperiod: \"Zeitraum\",\n\tcreated: \"Erstellt\",\n\tdate: \"Datum\",\n\ttimeIn: \"Von\",\n\ttimeOut: \"Bis\",\n\tworked: \"Arbeitszeit\",\n\tbreaks: \"Pause\",\n\tpaidBreaks: \"davon bezahlt\",\n\ttarget: \"Soll\",\n\tbalance: \"Saldo\",\n\tabsence: \"Abwesenheit\",\n\tnote: \"Hinweis\",\n\topenEntry: \"offen\",\n\tholiday: \"Feiertag\",\n\ttotal: \"Summe\",\n\tdays: \"Tage\",\n\tabsences: \"Abwesenheiten\",\n\tfrom: \"Von\",\n\tto: \"Bis\",\n\tportion: \"Anteil\",\n\tfullDay: \"ganzer Tag\",\n\thalfDay: \"halber Tag\",\n\tsignatureEmployee: \"Unterschrift Mitarbeiter\",\n\tsignatureManager: \"Unterschrift Vorgesetzter\",\n};\n\n/** All labels in Dutch. */\nconst NL: ReportLabels = {\n\ttitle: \"Urenoverzicht\",\n\temployee: \"Medewerker\",\n\tperiod: \"Periode\",\n\tcreated: \"Aangemaakt\",\n\tdate: \"Datum\",\n\ttimeIn: \"Van\",\n\ttimeOut: \"Tot\",\n\tworked: \"Gewerkt\",\n\tbreaks: \"Pauze\",\n\tpaidBreaks: \"waarvan betaald\",\n\ttarget: \"Doel\",\n\tbalance: \"Saldo\",\n\tabsence: \"Afwezigheid\",\n\tnote: \"Opmerking\",\n\topenEntry: \"open\",\n\tholiday: \"feestdag\",\n\ttotal: \"Totaal\",\n\tdays: \"Dagen\",\n\tabsences: \"Afwezigheden\",\n\tfrom: \"Van\",\n\tto: \"Tot\",\n\tportion: \"Deel\",\n\tfullDay: \"hele dag\",\n\thalfDay: \"halve dag\",\n\tsignatureEmployee: \"Handtekening medewerker\",\n\tsignatureManager: \"Handtekening leidinggevende\",\n};\n\n/** All labels in Polish. */\nconst PL: ReportLabels = {\n\ttitle: \"Ewidencja czasu pracy\",\n\temployee: \"Pracownik\",\n\tperiod: \"Okres\",\n\tcreated: \"Utworzono\",\n\tdate: \"Data\",\n\ttimeIn: \"Od\",\n\ttimeOut: \"Do\",\n\tworked: \"Przepracowano\",\n\tbreaks: \"Przerwa\",\n\tpaidBreaks: \"w tym p\u0142atne\",\n\ttarget: \"Norma\",\n\tbalance: \"Saldo\",\n\tabsence: \"Nieobecno\u015B\u0107\",\n\tnote: \"Uwaga\",\n\topenEntry: \"otwarte\",\n\tholiday: \"\u015Bwi\u0119to\",\n\ttotal: \"Razem\",\n\tdays: \"Dni\",\n\tabsences: \"Nieobecno\u015Bci\",\n\tfrom: \"Od\",\n\tto: \"Do\",\n\tportion: \"Cz\u0119\u015B\u0107\",\n\tfullDay: \"ca\u0142y dzie\u0144\",\n\thalfDay: \"p\u00F3\u0142 dnia\",\n\tsignatureEmployee: \"Podpis pracownika\",\n\tsignatureManager: \"Podpis prze\u0142o\u017Conego\",\n};\n\n/** All labels in Russian. */\nconst RU: ReportLabels = {\n\ttitle: \"\u0422\u0430\u0431\u0435\u043B\u044C \u0443\u0447\u0451\u0442\u0430 \u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438\",\n\temployee: \"\u0421\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\",\n\tperiod: \"\u041F\u0435\u0440\u0438\u043E\u0434\",\n\tcreated: \"\u0421\u043E\u0437\u0434\u0430\u043D\u043E\",\n\tdate: \"\u0414\u0430\u0442\u0430\",\n\ttimeIn: \"\u041D\u0430\u0447\u0430\u043B\u043E\",\n\ttimeOut: \"\u041E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435\",\n\tworked: \"\u041E\u0442\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043E\",\n\tbreaks: \"\u041F\u0435\u0440\u0435\u0440\u044B\u0432\",\n\tpaidBreaks: \"\u0438\u0437 \u043D\u0438\u0445 \u043E\u043F\u043B\u0430\u0447\u0435\u043D\u043E\",\n\ttarget: \"\u041D\u043E\u0440\u043C\u0430\",\n\tbalance: \"\u0421\u0430\u043B\u044C\u0434\u043E\",\n\tabsence: \"\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\",\n\tnote: \"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\",\n\topenEntry: \"\u043E\u0442\u043A\u0440\u044B\u0442\u043E\",\n\tholiday: \"\u043F\u0440\u0430\u0437\u0434\u043D\u0438\u043A\",\n\ttotal: \"\u0418\u0442\u043E\u0433\u043E\",\n\tdays: \"\u0414\u043D\u0438\",\n\tabsences: \"\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044F\",\n\tfrom: \"\u0421\",\n\tto: \"\u041F\u043E\",\n\tportion: \"\u0414\u043E\u043B\u044F\",\n\tfullDay: \"\u043F\u043E\u043B\u043D\u044B\u0439 \u0434\u0435\u043D\u044C\",\n\thalfDay: \"\u043F\u043E\u043B\u0434\u043D\u044F\",\n\tsignatureEmployee: \"\u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0441\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\u0430\",\n\tsignatureManager: \"\u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\",\n};\n\n/** All labels in Ukrainian. */\nconst UK: ReportLabels = {\n\ttitle: \"\u0422\u0430\u0431\u0435\u043B\u044C \u043E\u0431\u043B\u0456\u043A\u0443 \u0440\u043E\u0431\u043E\u0447\u043E\u0433\u043E \u0447\u0430\u0441\u0443\",\n\temployee: \"\u0421\u043F\u0456\u0432\u0440\u043E\u0431\u0456\u0442\u043D\u0438\u043A\",\n\tperiod: \"\u041F\u0435\u0440\u0456\u043E\u0434\",\n\tcreated: \"\u0421\u0442\u0432\u043E\u0440\u0435\u043D\u043E\",\n\tdate: \"\u0414\u0430\u0442\u0430\",\n\ttimeIn: \"\u041F\u043E\u0447\u0430\u0442\u043E\u043A\",\n\ttimeOut: \"\u0417\u0430\u043A\u0456\u043D\u0447\u0435\u043D\u043D\u044F\",\n\tworked: \"\u0412\u0456\u0434\u043F\u0440\u0430\u0446\u044C\u043E\u0432\u0430\u043D\u043E\",\n\tbreaks: \"\u041F\u0435\u0440\u0435\u0440\u0432\u0430\",\n\tpaidBreaks: \"\u0437 \u043D\u0438\u0445 \u043E\u043F\u043B\u0430\u0447\u0435\u043D\u043E\",\n\ttarget: \"\u041D\u043E\u0440\u043C\u0430\",\n\tbalance: \"\u0421\u0430\u043B\u044C\u0434\u043E\",\n\tabsence: \"\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u0456\u0441\u0442\u044C\",\n\tnote: \"\u041F\u0440\u0438\u043C\u0456\u0442\u043A\u0430\",\n\topenEntry: \"\u0432\u0456\u0434\u043A\u0440\u0438\u0442\u043E\",\n\tholiday: \"\u0441\u0432\u044F\u0442\u043E\",\n\ttotal: \"\u0420\u0430\u0437\u043E\u043C\",\n\tdays: \"\u0414\u043D\u0456\",\n\tabsences: \"\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u043E\u0441\u0442\u0456\",\n\tfrom: \"\u0417\",\n\tto: \"\u041F\u043E\",\n\tportion: \"\u0427\u0430\u0441\u0442\u043A\u0430\",\n\tfullDay: \"\u043F\u043E\u0432\u043D\u0438\u0439 \u0434\u0435\u043D\u044C\",\n\thalfDay: \"\u043F\u0456\u0432\u0434\u043D\u044F\",\n\tsignatureEmployee: \"\u041F\u0456\u0434\u043F\u0438\u0441 \u0441\u043F\u0456\u0432\u0440\u043E\u0431\u0456\u0442\u043D\u0438\u043A\u0430\",\n\tsignatureManager: \"\u041F\u0456\u0434\u043F\u0438\u0441 \u043A\u0435\u0440\u0456\u0432\u043D\u0438\u043A\u0430\",\n};\n\n/** All labels in Chinese (simplified). */\nconst ZH_CN: ReportLabels = {\n\ttitle: \"\u5DE5\u65F6\u8BB0\u5F55\u8868\",\n\temployee: \"\u5458\u5DE5\",\n\tperiod: \"\u671F\u95F4\",\n\tcreated: \"\u521B\u5EFA\u65F6\u95F4\",\n\tdate: \"\u65E5\u671F\",\n\ttimeIn: \"\u4E0A\u73ED\",\n\ttimeOut: \"\u4E0B\u73ED\",\n\tworked: \"\u5DE5\u4F5C\u65F6\u95F4\",\n\tbreaks: \"\u4F11\u606F\",\n\tpaidBreaks: \"\u5176\u4E2D\u5E26\u85AA\",\n\ttarget: \"\u5E94\u51FA\u52E4\",\n\tbalance: \"\u5DEE\u989D\",\n\tabsence: \"\u7F3A\u52E4\",\n\tnote: \"\u5907\u6CE8\",\n\topenEntry: \"\u672A\u7ED3\u675F\",\n\tholiday: \"\u8282\u5047\u65E5\",\n\ttotal: \"\u5408\u8BA1\",\n\tdays: \"\u5929\u6570\",\n\tabsences: \"\u7F3A\u52E4\u8BB0\u5F55\",\n\tfrom: \"\u4ECE\",\n\tto: \"\u5230\",\n\tportion: \"\u6BD4\u4F8B\",\n\tfullDay: \"\u5168\u5929\",\n\thalfDay: \"\u534A\u5929\",\n\tsignatureEmployee: \"\u5458\u5DE5\u7B7E\u540D\",\n\tsignatureManager: \"\u4E3B\u7BA1\u7B7E\u540D\",\n};\n\n/** All labels by language key (ioBroker language set). */\nexport const REPORT_LABELS: Record<string, ReportLabels> = {\n\ten: EN,\n\tde: DE,\n\tru: RU,\n\tpt: PT,\n\tnl: NL,\n\tfr: FR,\n\tit: IT,\n\tes: ES,\n\tpl: PL,\n\tuk: UK,\n\t\"zh-cn\": ZH_CN,\n};\n\n/**\n * Picks the labels of a locale.\n *\n * The locale of a user is a full tag (`de-CH`, `pt-BR`), so the language part is used; an unknown language\n * falls back to English. Reports must never fail because of a missing translation.\n *\n * @param locale - locale of the employee, e.g. `de-CH`\n * @returns labels and the language key they came from\n */\nexport function reportLabels(locale: string): { labels: ReportLabels; language: string } {\n\tconst normalized = (locale ?? \"\").trim().toLowerCase().replace(/_/g, \"-\");\n\t// Chinese is the only language with a region in the ioBroker set\n\tconst language = normalized.startsWith(\"zh\") ? \"zh-cn\" : normalized.split(\"-\")[0];\n\tconst labels = REPORT_LABELS[language] ?? EN;\n\treturn { labels, language: REPORT_LABELS[language] ? language : \"en\" };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }