@innspel/react-native 0.7.1 → 0.9.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 +19 -4
- package/dist/index.cjs +850 -499
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +46 -50
- package/dist/index.d.ts +46 -50
- package/dist/index.js +702 -351
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
package/dist/index.js
CHANGED
|
@@ -232,11 +232,104 @@ var light = {
|
|
|
232
232
|
screenPadding: 24,
|
|
233
233
|
hairline: 1
|
|
234
234
|
};
|
|
235
|
+
var submissionStatus = {
|
|
236
|
+
ny: {
|
|
237
|
+
statusType: "reviewing",
|
|
238
|
+
ikon: "ellipse-outline",
|
|
239
|
+
etikett: { feil: "Mottatt", onske: "Mottatt" },
|
|
240
|
+
lofte: { feil: "Vi har f\xE5tt den. Du h\xF8rer fra oss.", onske: "Vi har f\xE5tt den. Du h\xF8rer fra oss." },
|
|
241
|
+
fg: "textSecondary",
|
|
242
|
+
bg: "neutralBg",
|
|
243
|
+
variant: "outline"
|
|
244
|
+
},
|
|
245
|
+
vurderes: {
|
|
246
|
+
statusType: "reviewing",
|
|
247
|
+
ikon: "hourglass-outline",
|
|
248
|
+
etikett: { feil: "Vurderes", onske: "Vurderes" },
|
|
249
|
+
lofte: { feil: "Svar innen {frist} \u2014 ogs\xE5 hvis det er nei.", onske: "Svar innen {frist} \u2014 ogs\xE5 hvis det er nei." },
|
|
250
|
+
fg: "info",
|
|
251
|
+
bg: "infoBg",
|
|
252
|
+
variant: "outline"
|
|
253
|
+
},
|
|
254
|
+
planlagt: {
|
|
255
|
+
statusType: "active",
|
|
256
|
+
ikon: "calendar-outline",
|
|
257
|
+
etikett: { feil: "Planlagt", onske: "Planlagt" },
|
|
258
|
+
lofte: { feil: "Du f\xE5r beskjed n\xE5r den er rettet.", onske: "Du f\xE5r beskjed n\xE5r det er levert." },
|
|
259
|
+
fg: "brand",
|
|
260
|
+
bg: "brandBg",
|
|
261
|
+
variant: "outline"
|
|
262
|
+
},
|
|
263
|
+
bygges: {
|
|
264
|
+
statusType: "active",
|
|
265
|
+
ikon: "construct-outline",
|
|
266
|
+
etikett: { feil: "Retter n\xE5", onske: "Bygger" },
|
|
267
|
+
lofte: { feil: "Du f\xE5r beskjed n\xE5r den er rettet.", onske: "Du f\xE5r beskjed n\xE5r det er levert." },
|
|
268
|
+
fg: "brand",
|
|
269
|
+
bg: "brandBg",
|
|
270
|
+
variant: "filled"
|
|
271
|
+
},
|
|
272
|
+
kjent_feil: {
|
|
273
|
+
statusType: "active",
|
|
274
|
+
ikon: "warning-outline",
|
|
275
|
+
etikett: { feil: "Kjent feil", onske: "Kjent feil" },
|
|
276
|
+
lofte: { feil: "Kjent feil. Du f\xE5r beskjed n\xE5r den er rettet.", onske: "Kjent feil. Du f\xE5r beskjed n\xE5r den er rettet." },
|
|
277
|
+
fg: "warning",
|
|
278
|
+
bg: "warningBg",
|
|
279
|
+
variant: "outline"
|
|
280
|
+
},
|
|
281
|
+
levert: {
|
|
282
|
+
statusType: "complete",
|
|
283
|
+
ikon: "checkmark-circle-outline",
|
|
284
|
+
etikett: { feil: "Rettet", onske: "Levert" },
|
|
285
|
+
lofte: { feil: "Ferdig. Ser du feilen igjen, send et nytt innspill.", onske: "Ferdig. Takk for \xF8nsket." },
|
|
286
|
+
fg: "success",
|
|
287
|
+
bg: "successBg",
|
|
288
|
+
variant: "outline"
|
|
289
|
+
},
|
|
290
|
+
avvist: {
|
|
291
|
+
statusType: "closed",
|
|
292
|
+
ikon: "close-circle-outline",
|
|
293
|
+
etikett: { feil: "Avvist", onske: "Avvist" },
|
|
294
|
+
lofte: { feil: "Vi har svart p\xE5 denne.", onske: "Vi har svart p\xE5 denne." },
|
|
295
|
+
fg: "danger",
|
|
296
|
+
bg: "dangerBg",
|
|
297
|
+
variant: "outline"
|
|
298
|
+
},
|
|
299
|
+
duplikat: {
|
|
300
|
+
statusType: "closed",
|
|
301
|
+
ikon: "git-merge-outline",
|
|
302
|
+
etikett: { feil: "Sl\xE5tt sammen", onske: "Sl\xE5tt sammen" },
|
|
303
|
+
lofte: { feil: "Sl\xE5tt sammen med et innspill som ligner.", onske: "Sl\xE5tt sammen med et innspill som ligner." },
|
|
304
|
+
fg: "neutral",
|
|
305
|
+
bg: "neutralBg",
|
|
306
|
+
variant: "outline"
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
var knownIssueStatus = {
|
|
310
|
+
aktiv: {
|
|
311
|
+
ikon: "warning-outline",
|
|
312
|
+
etikett: "Aktiv",
|
|
313
|
+
fg: "warning",
|
|
314
|
+
bg: "warningBg",
|
|
315
|
+
variant: "outline"
|
|
316
|
+
},
|
|
317
|
+
fikset: {
|
|
318
|
+
ikon: "checkmark-circle-outline",
|
|
319
|
+
etikett: "Rettet",
|
|
320
|
+
fg: "success",
|
|
321
|
+
bg: "successBg",
|
|
322
|
+
variant: "dashed"
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
var lofteUtenFrist = "Du f\xE5r svar \u2014 ogs\xE5 hvis det er nei.";
|
|
235
326
|
var screenRules = {
|
|
236
327
|
brushFill: "#E5007D",
|
|
237
328
|
autoMaskFill: "#101114",
|
|
238
329
|
autoMaskStroke: "#E5007D",
|
|
330
|
+
autoMaskText: "#FFFFFF",
|
|
239
331
|
previewBackdrop: "#000000",
|
|
332
|
+
qrBackdrop: "#FFFFFF",
|
|
240
333
|
brushWidth: 28,
|
|
241
334
|
textBlurRadius: 24
|
|
242
335
|
};
|
|
@@ -263,9 +356,160 @@ import {
|
|
|
263
356
|
InnspelQueueFullError
|
|
264
357
|
} from "@innspel/core";
|
|
265
358
|
import { useCallback as useCallback2, useContext as useContext3, useEffect, useRef as useRef2, useState as useState3 } from "react";
|
|
266
|
-
import { KeyboardAvoidingView, Modal, Pressable as Pressable5,
|
|
359
|
+
import { KeyboardAvoidingView, Modal, Pressable as Pressable5, View as View8 } from "react-native";
|
|
267
360
|
import { initialWindowMetrics, SafeAreaInsetsContext } from "react-native-safe-area-context";
|
|
268
361
|
|
|
362
|
+
// src/Ikon.tsx
|
|
363
|
+
import "react";
|
|
364
|
+
import { SvgXml } from "react-native-svg";
|
|
365
|
+
|
|
366
|
+
// ../../node_modules/ionicons/dist/svg/arrow-back-outline.svg
|
|
367
|
+
var arrow_back_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M244 400 100 256l144-144M120 256h292" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48px"/></svg>';
|
|
368
|
+
|
|
369
|
+
// ../../node_modules/ionicons/dist/svg/brush-outline.svg
|
|
370
|
+
var brush_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M452.37 59.63a40.49 40.49 0 0 0-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 0 0 0-57.26M138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.88 36.57-36 36.57C64.56 449.74 92.82 464 120 464c39.78 0 72-32.73 72-73.14 0-30.36-24.12-54.86-54-54.86" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
371
|
+
|
|
372
|
+
// ../../node_modules/ionicons/dist/svg/bug-outline.svg
|
|
373
|
+
var bug_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M370 378c28.89 23.52 46 46.07 46 86M142 378c-28.89 23.52-46 46.06-46 86M384 208c28.89-23.52 32-56.07 32-96M128 206c-28.89-23.52-32-54.06-32-94M464 288.13h-80M128 288.13H48M256 192v256" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M256 448c-70.4 0-128-57.6-128-128v-96.07c0-65.07 57.6-96 128-96h0c70.4 0 128 25.6 128 96V320c0 70.4-57.6 128-128 128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M179.43 143.52a49.1 49.1 0 0 1-3.43-15.73A80 80 0 0 1 255.79 48h.42A80 80 0 0 1 336 127.79a41.9 41.9 0 0 1-3.12 14.3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
374
|
+
|
|
375
|
+
// ../../node_modules/ionicons/dist/svg/bulb-outline.svg
|
|
376
|
+
var bulb_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M304 384v-24c0-29 31.54-56.43 52-76 28.84-27.57 44-64.61 44-108 0-80-63.73-144-144-144a143.6 143.6 0 0 0-144 144c0 41.84 15.81 81.39 44 108 20.35 19.21 52 46.7 52 76v24M224 480h64M208 432h96M256 384V256" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M294 240s-21.51 16-38 16-38-16-38-16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
377
|
+
|
|
378
|
+
// ../../node_modules/ionicons/dist/svg/calendar-outline.svg
|
|
379
|
+
var calendar_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><rect width="416" height="384" x="48" y="80" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" rx="48"/><circle cx="296" cy="232" r="24"/><circle cx="376" cy="232" r="24"/><circle cx="296" cy="312" r="24"/><circle cx="376" cy="312" r="24"/><circle cx="136" cy="312" r="24"/><circle cx="216" cy="312" r="24"/><circle cx="136" cy="392" r="24"/><circle cx="216" cy="392" r="24"/><circle cx="296" cy="392" r="24"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M128 48v32M384 48v32"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M464 160H48"/></svg>';
|
|
380
|
+
|
|
381
|
+
// ../../node_modules/ionicons/dist/svg/camera-outline.svg
|
|
382
|
+
var camera_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="m350.54 148.68-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h352a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><circle cx="256" cy="272" r="80" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32px"/><path d="M124 158v-22h-24v22" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
383
|
+
|
|
384
|
+
// ../../node_modules/ionicons/dist/svg/checkmark-circle-outline.svg
|
|
385
|
+
var checkmark_circle_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192Z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32px"/><path d="M352 176 217.6 336 160 272" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
386
|
+
|
|
387
|
+
// ../../node_modules/ionicons/dist/svg/chevron-down-outline.svg
|
|
388
|
+
var chevron_down_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="m112 184 144 144 144-144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48px"/></svg>';
|
|
389
|
+
|
|
390
|
+
// ../../node_modules/ionicons/dist/svg/chevron-up-outline.svg
|
|
391
|
+
var chevron_up_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="m112 328 144-144 144 144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48px"/></svg>';
|
|
392
|
+
|
|
393
|
+
// ../../node_modules/ionicons/dist/svg/close-circle-outline.svg
|
|
394
|
+
var close_circle_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192Z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32px"/><path d="M320 320 192 192M192 320l128-128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
395
|
+
|
|
396
|
+
// ../../node_modules/ionicons/dist/svg/close-outline.svg
|
|
397
|
+
var close_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M368 368 144 144M368 144 144 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
398
|
+
|
|
399
|
+
// ../../node_modules/ionicons/dist/svg/cloud-offline-outline.svg
|
|
400
|
+
var cloud_offline_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M93.72 183.25C49.49 198.05 16 233.1 16 288c0 66 54 112 120 112h184.37M467.82 377.74C485.24 363.3 496 341.61 496 312c0-59.82-53-85.76-96-88-8.89-89.54-71-144-144-144-26.16 0-48.79 6.93-67.6 18.14" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M448 448 64 64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32px"/></svg>';
|
|
401
|
+
|
|
402
|
+
// ../../node_modules/ionicons/dist/svg/construct-outline.svg
|
|
403
|
+
var construct_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M436.67 184.11a27.17 27.17 0 0 1-38.3 0l-22.48-22.49a27.15 27.15 0 0 1 0-38.29l50.89-50.89a.85.85 0 0 0-.26-1.38C393.68 57 351.09 64.15 324.05 91c-25.88 25.69-27.35 64.27-17.87 98a27 27 0 0 1-7.67 27.14l-173 160.76a40.76 40.76 0 1 0 57.57 57.54l162.15-173.3a27 27 0 0 1 26.77-7.7c33.46 8.94 71.49 7.26 97.07-17.94 27.49-27.08 33.42-74.94 20.1-102.33a.85.85 0 0 0-1.36-.22Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32px"/><path d="M224 284c-17.48-17-25.49-24.91-31-30.29a18.24 18.24 0 0 1-3.33-21.35 20.8 20.8 0 0 1 3.5-4.62l15.68-15.29a18.7 18.7 0 0 1 5.63-3.87 18.11 18.11 0 0 1 20 3.62c5.45 5.29 15.43 15 33.41 32.52M317.07 291.3c40.95 38.1 90.62 83.27 110 99.41a13.46 13.46 0 0 1 .94 19.92L394.63 444a14 14 0 0 1-20.29-.76c-16.53-19.18-61.09-67.11-99.27-107" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="m17.34 193.5 29.41-28.74a4.7 4.7 0 0 1 3.41-1.35 4.85 4.85 0 0 1 3.41 1.35h0a9.86 9.86 0 0 0 8.19 2.77c3.83-.42 7.92-1.6 10.57-4.12 6-5.8-.94-17.23 4.34-24.54a207 207 0 0 1 19.78-22.6c6-5.88 29.84-28.32 69.9-44.45A107.3 107.3 0 0 1 206.67 64c22.59 0 40 10 46.26 15.67a89.5 89.5 0 0 1 10.28 11.64 79 79 0 0 0-9.21-2.77 68.8 68.8 0 0 0-20-1.26c-13.33 1.09-29.41 7.26-38 14-13.9 11-19.87 25.72-20.81 44.71-.68 14.12 2.72 22.1 36.1 55.49a6.6 6.6 0 0 1-.34 9.16l-18.22 18a6.88 6.88 0 0 1-9.54.09c-21.94-21.94-36.65-33.09-45-38.16s-15.07-6.5-18.3-6.85a30.85 30.85 0 0 0-18.27 3.87 11.4 11.4 0 0 0-2.64 2 14.14 14.14 0 0 0 .42 20.08l1.71 1.6a4.63 4.63 0 0 1 0 6.64L71.73 246.6a4.7 4.7 0 0 1-3.41 1.4 4.86 4.86 0 0 1-3.41-1.35l-47.57-46.43a4.88 4.88 0 0 1 0-6.72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
404
|
+
|
|
405
|
+
// ../../node_modules/ionicons/dist/svg/contrast-outline.svg
|
|
406
|
+
var contrast_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><circle cx="256" cy="256" r="208" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32px"/><path d="M256 464c-114.88 0-208-93.12-208-208S141.12 48 256 48Z"/></svg>';
|
|
407
|
+
|
|
408
|
+
// ../../node_modules/ionicons/dist/svg/ellipse-outline.svg
|
|
409
|
+
var ellipse_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><circle cx="256" cy="256" r="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
410
|
+
|
|
411
|
+
// ../../node_modules/ionicons/dist/svg/exit-outline.svg
|
|
412
|
+
var exit_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M320 176v-40a40 40 0 0 0-40-40H88a40 40 0 0 0-40 40v240a40 40 0 0 0 40 40h192a40 40 0 0 0 40-40v-40M384 176l80 80-80 80M191 256h273" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
413
|
+
|
|
414
|
+
// ../../node_modules/ionicons/dist/svg/flask-outline.svg
|
|
415
|
+
var flask_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M176 48h160M118 304h276M208 48v93.48a64.1 64.1 0 0 1-9.88 34.18L73.21 373.49C48.4 412.78 76.63 464 123.08 464h265.84c46.45 0 74.68-51.22 49.87-90.51L313.87 175.66a64.1 64.1 0 0 1-9.87-34.18V48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32px"/></svg>';
|
|
416
|
+
|
|
417
|
+
// ../../node_modules/ionicons/dist/svg/grid-outline.svg
|
|
418
|
+
var grid_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><rect width="176" height="176" x="48" y="48" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><rect width="176" height="176" x="288" y="48" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><rect width="176" height="176" x="48" y="288" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><rect width="176" height="176" x="288" y="288" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
419
|
+
|
|
420
|
+
// ../../node_modules/ionicons/dist/svg/hourglass-outline.svg
|
|
421
|
+
var hourglass_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M145.61 464h220.78c19.8 0 35.55-16.29 33.42-35.06C386.06 308 304 310 304 256s83.11-51 95.8-172.94c2-18.78-13.61-35.06-33.41-35.06H145.61c-19.8 0-35.37 16.28-33.41 35.06C124.89 205 208 201 208 256s-82.06 52-95.8 172.94c-2.14 18.77 13.61 35.06 33.41 35.06" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.23 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13"/></svg>';
|
|
422
|
+
|
|
423
|
+
// ../../node_modules/ionicons/dist/svg/image-outline.svg
|
|
424
|
+
var image_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><rect width="416" height="352" x="48" y="80" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32px"/><circle cx="336" cy="176" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32px"/><path d="m304 335.79-90.66-90.49a32 32 0 0 0-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0 1 43.11-2L464 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
425
|
+
|
|
426
|
+
// ../../node_modules/ionicons/dist/svg/images-outline.svg
|
|
427
|
+
var images_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M432 112V96a48.14 48.14 0 0 0-48-48H64a48.14 48.14 0 0 0-48 48v256a48.14 48.14 0 0 0 48 48h16" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32px"/><rect width="400" height="336" x="96" y="128" rx="45.99" ry="45.99" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32px"/><ellipse cx="372.92" cy="219.64" rx="30.77" ry="30.55" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32px"/><path d="M342.15 372.17 255 285.78a30.93 30.93 0 0 0-42.18-1.21L96 387.64M265.23 464l118.59-117.73a31 31 0 0 1 41.46-1.87L496 402.91" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
428
|
+
|
|
429
|
+
// ../../node_modules/ionicons/dist/svg/list-outline.svg
|
|
430
|
+
var list_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M160 144h288M160 256h288M160 368h288" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><circle cx="80" cy="144" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><circle cx="80" cy="256" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><circle cx="80" cy="368" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
431
|
+
|
|
432
|
+
// ../../node_modules/ionicons/dist/svg/lock-closed-outline.svg
|
|
433
|
+
var lock_closed_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M336 208v-95a80 80 0 0 0-160 0v95" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><rect width="320" height="272" x="96" y="208" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
434
|
+
|
|
435
|
+
// ../../node_modules/ionicons/dist/svg/git-merge-outline.svg
|
|
436
|
+
var git_merge_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><circle cx="129" cy="96" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><circle cx="129" cy="416" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M129 144v224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><circle cx="385" cy="288" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M129 144c0 96 112 144 208 144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
437
|
+
|
|
438
|
+
// ../../node_modules/ionicons/dist/svg/open-outline.svg
|
|
439
|
+
var open_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M384 224v184a40 40 0 0 1-40 40H104a40 40 0 0 1-40-40V168a40 40 0 0 1 40-40h167.48M336 64h112v112M224 288 440 72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
440
|
+
|
|
441
|
+
// ../../node_modules/ionicons/dist/svg/scan-outline.svg
|
|
442
|
+
var scan_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M336 448h56a56 56 0 0 0 56-56v-56M448 176v-56a56 56 0 0 0-56-56h-56M176 448h-56a56 56 0 0 1-56-56v-56M64 176v-56a56 56 0 0 1 56-56h56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
443
|
+
|
|
444
|
+
// ../../node_modules/ionicons/dist/svg/swap-vertical-outline.svg
|
|
445
|
+
var swap_vertical_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M464 208 352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
446
|
+
|
|
447
|
+
// ../../node_modules/ionicons/dist/svg/trash-outline.svg
|
|
448
|
+
var trash_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="m112 112 20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="M80 112h352" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32px"/><path d="M192 112V72h0a23.93 23.93 0 0 1 24-24h80a23.93 23.93 0 0 1 24 24h0v40M256 176v224M184 176l8 224M328 176l-8 224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
449
|
+
|
|
450
|
+
// ../../node_modules/ionicons/dist/svg/warning-outline.svg
|
|
451
|
+
var warning_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M85.57 446.25h340.86a32 32 0 0 0 28.17-47.17L284.18 82.58c-12.09-22.44-44.27-22.44-56.36 0L57.4 399.08a32 32 0 0 0 28.17 47.17" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path d="m250.26 195.39 5.74 122 5.73-121.95a5.74 5.74 0 0 0-5.79-6h0a5.74 5.74 0 0 0-5.68 5.95" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/><path fill="currentColor" d="M256 397.25a20 20 0 1 1 20-20 20 20 0 0 1-20 20"/></svg>';
|
|
452
|
+
|
|
453
|
+
// src/Ikon.tsx
|
|
454
|
+
import { jsx } from "react/jsx-runtime";
|
|
455
|
+
var utenTittel = (svg) => svg.replace(/<title>[\s\S]*?<\/title>/g, "");
|
|
456
|
+
var IKONER = Object.fromEntries(
|
|
457
|
+
Object.entries({
|
|
458
|
+
"arrow-back-outline": arrow_back_outline_default,
|
|
459
|
+
"brush-outline": brush_outline_default,
|
|
460
|
+
"bug-outline": bug_outline_default,
|
|
461
|
+
"bulb-outline": bulb_outline_default,
|
|
462
|
+
"calendar-outline": calendar_outline_default,
|
|
463
|
+
"camera-outline": camera_outline_default,
|
|
464
|
+
"checkmark-circle-outline": checkmark_circle_outline_default,
|
|
465
|
+
"chevron-down-outline": chevron_down_outline_default,
|
|
466
|
+
"chevron-up-outline": chevron_up_outline_default,
|
|
467
|
+
"close-circle-outline": close_circle_outline_default,
|
|
468
|
+
"close-outline": close_outline_default,
|
|
469
|
+
"cloud-offline-outline": cloud_offline_outline_default,
|
|
470
|
+
"construct-outline": construct_outline_default,
|
|
471
|
+
"contrast-outline": contrast_outline_default,
|
|
472
|
+
"ellipse-outline": ellipse_outline_default,
|
|
473
|
+
"exit-outline": exit_outline_default,
|
|
474
|
+
"flask-outline": flask_outline_default,
|
|
475
|
+
"git-merge-outline": git_merge_outline_default,
|
|
476
|
+
"grid-outline": grid_outline_default,
|
|
477
|
+
"hourglass-outline": hourglass_outline_default,
|
|
478
|
+
"image-outline": image_outline_default,
|
|
479
|
+
"images-outline": images_outline_default,
|
|
480
|
+
"list-outline": list_outline_default,
|
|
481
|
+
"lock-closed-outline": lock_closed_outline_default,
|
|
482
|
+
"open-outline": open_outline_default,
|
|
483
|
+
"scan-outline": scan_outline_default,
|
|
484
|
+
"swap-vertical-outline": swap_vertical_outline_default,
|
|
485
|
+
"trash-outline": trash_outline_default,
|
|
486
|
+
"warning-outline": warning_outline_default
|
|
487
|
+
}).map(([navn, svg]) => [navn, utenTittel(svg)])
|
|
488
|
+
);
|
|
489
|
+
var IKONNAVN = Object.keys(IKONER);
|
|
490
|
+
function Ikon({
|
|
491
|
+
navn,
|
|
492
|
+
storrelse: storrelse2 = "inline",
|
|
493
|
+
farge
|
|
494
|
+
}) {
|
|
495
|
+
const tema = useTema();
|
|
496
|
+
const svg = IKONER[navn];
|
|
497
|
+
if (!svg) throw new Error(`[innspel] Ikonet \xAB${navn}\xBB er ikke tatt med i Ikon.tsx.`);
|
|
498
|
+
const maal = storrelse2 === "minste" ? tema.icon.minste : storrelse2 === "stor" ? 2 * tema.icon.inline : tema.icon.inline;
|
|
499
|
+
return /* @__PURE__ */ jsx(
|
|
500
|
+
SvgXml,
|
|
501
|
+
{
|
|
502
|
+
testID: `ikon-${navn}`,
|
|
503
|
+
xml: svg,
|
|
504
|
+
width: maal,
|
|
505
|
+
height: maal,
|
|
506
|
+
color: farge ?? tema.color.textPrimary,
|
|
507
|
+
accessibilityElementsHidden: true,
|
|
508
|
+
importantForAccessibility: "no"
|
|
509
|
+
}
|
|
510
|
+
);
|
|
511
|
+
}
|
|
512
|
+
|
|
269
513
|
// src/widget/Felt.tsx
|
|
270
514
|
import { useMemo, useState } from "react";
|
|
271
515
|
import { Pressable as Pressable2, ScrollView, Text as Text2, TextInput, View as View2 } from "react-native";
|
|
@@ -273,7 +517,7 @@ import { Pressable as Pressable2, ScrollView, Text as Text2, TextInput, View as
|
|
|
273
517
|
// src/widget/primitiver.tsx
|
|
274
518
|
import "react";
|
|
275
519
|
import { Pressable, Text, View } from "react-native";
|
|
276
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
520
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
277
521
|
function Btn({
|
|
278
522
|
label,
|
|
279
523
|
onPress,
|
|
@@ -283,7 +527,8 @@ function Btn({
|
|
|
283
527
|
disabled,
|
|
284
528
|
accessibilityLabel,
|
|
285
529
|
grow,
|
|
286
|
-
testID
|
|
530
|
+
testID,
|
|
531
|
+
busy
|
|
287
532
|
}) {
|
|
288
533
|
const tema = useTema();
|
|
289
534
|
const c = tema.color;
|
|
@@ -297,7 +542,7 @@ function Btn({
|
|
|
297
542
|
testID,
|
|
298
543
|
accessibilityRole: "button",
|
|
299
544
|
accessibilityLabel: accessibilityLabel ?? (hint ? `${label}. ${hint}` : label),
|
|
300
|
-
accessibilityState: { disabled: !!disabled },
|
|
545
|
+
accessibilityState: { disabled: !!disabled, busy: !!busy },
|
|
301
546
|
disabled,
|
|
302
547
|
onPress,
|
|
303
548
|
style: {
|
|
@@ -314,8 +559,8 @@ function Btn({
|
|
|
314
559
|
opacity: disabled ? 0.6 : 1
|
|
315
560
|
},
|
|
316
561
|
children: [
|
|
317
|
-
ikon ? /* @__PURE__ */
|
|
318
|
-
/* @__PURE__ */
|
|
562
|
+
ikon ? /* @__PURE__ */ jsx2(Ikon, { navn: ikon, farge: disabled ? c.textDisabled : tekstfarge }) : null,
|
|
563
|
+
/* @__PURE__ */ jsx2(
|
|
319
564
|
Text,
|
|
320
565
|
{
|
|
321
566
|
style: {
|
|
@@ -329,13 +574,13 @@ function Btn({
|
|
|
329
574
|
]
|
|
330
575
|
}
|
|
331
576
|
),
|
|
332
|
-
hint ? /* @__PURE__ */
|
|
577
|
+
hint ? /* @__PURE__ */ jsx2(Hint, { children: hint }) : null
|
|
333
578
|
] });
|
|
334
579
|
}
|
|
335
580
|
function H({ children, sub }) {
|
|
336
581
|
const tema = useTema();
|
|
337
582
|
return /* @__PURE__ */ jsxs(View, { style: { gap: tema.space.xs }, children: [
|
|
338
|
-
/* @__PURE__ */
|
|
583
|
+
/* @__PURE__ */ jsx2(
|
|
339
584
|
Text,
|
|
340
585
|
{
|
|
341
586
|
accessibilityRole: "header",
|
|
@@ -348,7 +593,7 @@ function H({ children, sub }) {
|
|
|
348
593
|
children
|
|
349
594
|
}
|
|
350
595
|
),
|
|
351
|
-
sub ? /* @__PURE__ */
|
|
596
|
+
sub ? /* @__PURE__ */ jsx2(
|
|
352
597
|
Text,
|
|
353
598
|
{
|
|
354
599
|
style: {
|
|
@@ -363,7 +608,7 @@ function H({ children, sub }) {
|
|
|
363
608
|
}
|
|
364
609
|
function Hint({ children }) {
|
|
365
610
|
const tema = useTema();
|
|
366
|
-
return /* @__PURE__ */
|
|
611
|
+
return /* @__PURE__ */ jsx2(
|
|
367
612
|
Text,
|
|
368
613
|
{
|
|
369
614
|
style: {
|
|
@@ -381,7 +626,7 @@ function Card({
|
|
|
381
626
|
style
|
|
382
627
|
}) {
|
|
383
628
|
const tema = useTema();
|
|
384
|
-
return /* @__PURE__ */
|
|
629
|
+
return /* @__PURE__ */ jsx2(
|
|
385
630
|
View,
|
|
386
631
|
{
|
|
387
632
|
style: [
|
|
@@ -400,12 +645,9 @@ function Card({
|
|
|
400
645
|
}
|
|
401
646
|
);
|
|
402
647
|
}
|
|
403
|
-
function StatusPill({
|
|
404
|
-
ikon,
|
|
405
|
-
etikett,
|
|
406
|
-
farge
|
|
407
|
-
}) {
|
|
648
|
+
function StatusPill({ ikon, etikett, fg, bg }) {
|
|
408
649
|
const tema = useTema();
|
|
650
|
+
const farge = (navn, reserve) => tema.color[navn] ?? reserve;
|
|
409
651
|
return /* @__PURE__ */ jsxs(
|
|
410
652
|
View,
|
|
411
653
|
{
|
|
@@ -417,11 +659,11 @@ function StatusPill({
|
|
|
417
659
|
paddingHorizontal: tema.space.sm,
|
|
418
660
|
paddingVertical: tema.space.xs,
|
|
419
661
|
borderRadius: tema.radius.pill,
|
|
420
|
-
backgroundColor: tema.color
|
|
662
|
+
backgroundColor: farge(bg, tema.color.neutralBg)
|
|
421
663
|
},
|
|
422
664
|
children: [
|
|
423
|
-
/* @__PURE__ */
|
|
424
|
-
/* @__PURE__ */
|
|
665
|
+
/* @__PURE__ */ jsx2(Ikon, { navn: ikon, storrelse: "minste", farge: farge(fg, tema.color.textSecondary) }),
|
|
666
|
+
/* @__PURE__ */ jsx2(Text, { style: { color: farge(fg, tema.color.textSecondary), fontSize: tema.font.small, fontWeight: tema.weight.medium }, children: etikett })
|
|
425
667
|
]
|
|
426
668
|
}
|
|
427
669
|
);
|
|
@@ -430,12 +672,14 @@ function Banner({
|
|
|
430
672
|
ikon,
|
|
431
673
|
tone,
|
|
432
674
|
children,
|
|
433
|
-
live
|
|
675
|
+
live,
|
|
676
|
+
testID
|
|
434
677
|
}) {
|
|
435
678
|
const tema = useTema();
|
|
436
679
|
return /* @__PURE__ */ jsxs(
|
|
437
680
|
View,
|
|
438
681
|
{
|
|
682
|
+
testID,
|
|
439
683
|
style: {
|
|
440
684
|
flexDirection: "row",
|
|
441
685
|
gap: tema.space.sm,
|
|
@@ -444,8 +688,8 @@ function Banner({
|
|
|
444
688
|
padding: tema.space.md
|
|
445
689
|
},
|
|
446
690
|
children: [
|
|
447
|
-
/* @__PURE__ */
|
|
448
|
-
/* @__PURE__ */
|
|
691
|
+
/* @__PURE__ */ jsx2(Ikon, { navn: ikon, farge: tema.color[tone] }),
|
|
692
|
+
/* @__PURE__ */ jsx2(
|
|
449
693
|
Text,
|
|
450
694
|
{
|
|
451
695
|
accessibilityRole: "alert",
|
|
@@ -465,17 +709,21 @@ function Banner({
|
|
|
465
709
|
}
|
|
466
710
|
|
|
467
711
|
// src/widget/tekster.ts
|
|
712
|
+
function saksnr(id) {
|
|
713
|
+
const i = id.indexOf("_");
|
|
714
|
+
return i >= 0 ? id.slice(i + 1) : id;
|
|
715
|
+
}
|
|
716
|
+
var stor = (s) => s ? s.charAt(0).toUpperCase() + s.slice(1) : s;
|
|
468
717
|
var tekst = {
|
|
469
718
|
// 2b — første valg
|
|
470
719
|
valgTittel: "Hva gjelder det?",
|
|
471
|
-
valgUnder: "Ett valg. Vi sp\xF8r aldri om kategori eller alvorlighet.",
|
|
472
720
|
sporFeil: "Noe virker ikke",
|
|
473
|
-
sporFeilUnder: "
|
|
721
|
+
sporFeilUnder: "Noe er galt eller virker rart",
|
|
474
722
|
sporOnske: "Jeg \xF8nsker meg noe",
|
|
475
|
-
sporOnskeUnder: "
|
|
723
|
+
sporOnskeUnder: "Noe du savner eller vil ha annerledes",
|
|
476
724
|
// 2c — kjente feil (DD-29, DD-30)
|
|
477
725
|
kjenteFeilTittelFeil: "Er det dette du ser?",
|
|
478
|
-
kjenteFeilUnderFeil: "
|
|
726
|
+
kjenteFeilUnderFeil: "Kjenner du igjen en av disse?",
|
|
479
727
|
kjenteFeilTittelOnske: "Har noen \xF8nsket dette?",
|
|
480
728
|
kjenteFeilUnderOnske: "Ett trykk legger deg til p\xE5 \xF8nsket \u2014 ingen ny sak.",
|
|
481
729
|
svarJa: "Ja, jeg ogs\xE5",
|
|
@@ -497,7 +745,7 @@ var tekst = {
|
|
|
497
745
|
placeholderFeil: "Hva skjedde? Hva forventet du?",
|
|
498
746
|
placeholderOnske: "Hva \xF8nsker du deg?",
|
|
499
747
|
send: "Send",
|
|
500
|
-
|
|
748
|
+
sender: "Sender \u2026",
|
|
501
749
|
/** DD-44: minimum tegn er det ENESTE kravet. */
|
|
502
750
|
forKort: (min) => `Minst ${min} tegn. Ingenting annet er obligatorisk.`,
|
|
503
751
|
tellerFull: " \u2014 kort og konkret holder",
|
|
@@ -521,14 +769,15 @@ var tekst = {
|
|
|
521
769
|
tegnOver: "Tegn over",
|
|
522
770
|
maskerAllTekst: "Masker all tekst",
|
|
523
771
|
maskertAvAppen: "Maskert av appen",
|
|
524
|
-
maskertAvAppenHint: "
|
|
525
|
-
dittStrok: "
|
|
772
|
+
maskertAvAppenHint: "Dette feltet er alltid dekket og kan ikke avdekkes.",
|
|
773
|
+
dittStrok: "Trykk p\xE5 et dekket felt for \xE5 angre.",
|
|
774
|
+
angreSiste: "Angre siste",
|
|
775
|
+
angreSisteA11y: "Angre det siste feltet du dekket",
|
|
526
776
|
allTekstHint: "Hele bildet er gjort uskarpt s\xE5 tekst ikke kan leses. Layouten er synlig.",
|
|
527
777
|
fjernBildet: "Fjern bildet",
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
fjernSkjermbilde: "Fjern skjermbildet",
|
|
778
|
+
leggVed: "Legg ved",
|
|
779
|
+
bildeLagtVed: "Bilde lagt ved",
|
|
780
|
+
fjernSkjermbilde: "Fjern bildet",
|
|
532
781
|
sendHintMedBilde: "Teksten sendes f\xF8rst; bildet lastes opp for seg.",
|
|
533
782
|
skjermbildeFeilet: "kunne ikke ta skjermbilde. Du kan sende uten.",
|
|
534
783
|
skjermbildeA11y: (auto, egne, uskarpt) => `Forh\xE5ndsvisning av skjermbildet. ${auto ? `${auto} felt maskert av appen og kan ikke avmaskeres. ` : ""}${egne ? `${egne} felt maskert av deg. ` : ""}${uskarpt ? "All tekst er gjort uskarp. " : ""}Trykk for \xE5 maskere et felt, dra for \xE5 tegne over.`,
|
|
@@ -547,34 +796,40 @@ var tekst = {
|
|
|
547
796
|
kvitteringSendt: "Sendt",
|
|
548
797
|
kvitteringRegistrert: "Registrert",
|
|
549
798
|
kvitteringFeil: "Du f\xE5r beskjed n\xE5r den er rettet, eller hvis vi trenger mer.",
|
|
550
|
-
kvitteringOnske: "Vurderes innen 90 dager. Du f\xE5r et personlig svar \u2014 ogs\xE5 hvis det er nei.",
|
|
551
799
|
kvitteringJaOgsa: "Du f\xE5r beskjed n\xE5r den er rettet.",
|
|
552
|
-
saksnummer: (nr) => `
|
|
800
|
+
saksnummer: (nr) => `Sak ${saksnr(nr)}`,
|
|
553
801
|
tilbakeTilAppen: "Tilbake til appen",
|
|
554
802
|
/** DD-42: saken er sendt, bildet kom ikke med — aldri en blokkert innsending. */
|
|
555
803
|
kvitteringVedleggFeilet: "Sendt \u2014 skjermbildet kunne ikke legges ved",
|
|
556
804
|
tekstenErLagret: "Teksten din er lagret.",
|
|
557
805
|
vedleggFeiletBanner: "Bildet ble ikke lastet opp. Saken er sendt uten det \u2014 vil du, kan du sende et nytt innspill med bilde.",
|
|
558
|
-
saksnummerUtenVedlegg: (nr) => `
|
|
806
|
+
saksnummerUtenVedlegg: (nr) => `Sak ${saksnr(nr)} \xB7 uten vedlegg`,
|
|
559
807
|
// 2i — tilstander
|
|
560
|
-
|
|
808
|
+
koKvitteringTittel: "Lagret \u2014 sendes n\xE5r du er p\xE5 nett",
|
|
561
809
|
offlineBanner: "Ingen nett. Lagres og sendes automatisk \u2014 du ser det under \xABMine innspill\xBB til det er sendt.",
|
|
562
|
-
offlineLagre: "Lagre \u2014 sendes
|
|
810
|
+
offlineLagre: "Lagre \u2014 sendes n\xE5r du er p\xE5 nett",
|
|
563
811
|
/** DD-41: et skjermbilde køes aldri. */
|
|
564
812
|
offlineUtenBilde: "Skjermbilde kan ikke legges ved uten nett. Teksten sendes; bildet ble ikke lagret.",
|
|
565
813
|
sendefeilBanner: (arsak) => `Kunne ikke sende: ${arsak} Teksten din er beholdt.`,
|
|
566
814
|
provIgjen: "Pr\xF8v igjen",
|
|
567
815
|
// 2j — mine innspill
|
|
568
816
|
mineTittel: "Mine innspill",
|
|
569
|
-
|
|
817
|
+
/** Knappen på første steg med innspill fra før (DD-62): tallet er det som gjør den til en inngang. */
|
|
818
|
+
mineMedAntall: (n) => `Mine innspill \xB7 ${n}`,
|
|
819
|
+
mineEtikett: (n) => `Mine innspill, ${n} innspill`,
|
|
820
|
+
mineUnder: "Status og hva du kan vente deg.",
|
|
570
821
|
mineTom: "Du har ikke sendt noe enn\xE5.",
|
|
571
822
|
mineIkkeSendt: "Ikke sendt enn\xE5",
|
|
572
|
-
mineSak: (nr) => `Sak ${nr}`,
|
|
823
|
+
mineSak: (nr) => `Sak ${saksnr(nr)}`,
|
|
824
|
+
/** «Feil · sak 2041» — sporet først, aldri rå id og aldri kontraktens type (DD-50). */
|
|
825
|
+
sakHode: (spor, nr) => `${stor(spor)} \xB7 sak ${saksnr(nr)}`,
|
|
573
826
|
// Leietakeren fjernet vedlegget. Bare AT — aldri hvorfor, av hvem eller når.
|
|
574
827
|
bildeFjernet: "Bildet er fjernet.",
|
|
575
828
|
svarFra: (leietaker) => `Svar fra ${leietaker}`,
|
|
576
829
|
svarFraGenerisk: "Svar",
|
|
577
830
|
sendNytt: "Send nytt innspill",
|
|
831
|
+
/** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
|
|
832
|
+
sendForste: "Send innspill",
|
|
578
833
|
// 3a — invitasjonsbanneret (DD-12)
|
|
579
834
|
invitasjonRegion: "Invitasjon til betaprogram",
|
|
580
835
|
invitasjonHva: (navn) => `Vil du teste \xAB${navn}\xBB?`,
|
|
@@ -602,7 +857,7 @@ var tekst = {
|
|
|
602
857
|
akseptFeil: (arsak) => `Kunne ikke bli med: ${arsak}`,
|
|
603
858
|
// 3c (M3.1-delen) — deltakelsen og «Gå ut» (DD-36)
|
|
604
859
|
deltakelseRegion: "Ditt betaprogram",
|
|
605
|
-
deltakelsePeriode: (periode2, brukt, maks) => `${periode2} \xB7 ${
|
|
860
|
+
deltakelsePeriode: (periode2, brukt, maks) => `${periode2} \xB7 Vi tar kontakt maks ${maks} ganger \u2014 ${brukt} brukt`,
|
|
606
861
|
deltakelseOppgaverKommer: "Oppgavene kan gj\xF8res n\xE5r det passer deg.",
|
|
607
862
|
gaaUt: "G\xE5 ut av programmet",
|
|
608
863
|
gaaUtTittel: "G\xE5 ut av programmet?",
|
|
@@ -614,11 +869,11 @@ var tekst = {
|
|
|
614
869
|
oppgaveIkkeBegynt: "Ikke begynt",
|
|
615
870
|
oppgaveGjort: "Gjort",
|
|
616
871
|
oppgaveGjortLabel: (tittel) => `Gjort: ${tittel}`,
|
|
617
|
-
oppgaveGjortMed: (utfall) => `
|
|
872
|
+
oppgaveGjortMed: (utfall) => `Pr\xF8vd \xB7 ${utfall}`,
|
|
618
873
|
hvordanGikkDet: "Hvordan gikk det?",
|
|
619
874
|
utfallFungerte: "Fungerte",
|
|
620
|
-
utfallDelvis: "
|
|
621
|
-
utfallIkke: "
|
|
875
|
+
utfallDelvis: "Fungerte delvis",
|
|
876
|
+
utfallIkke: "Fungerte ikke",
|
|
622
877
|
setningLabel: "Vil du si \xE9n setning om det? (valgfritt)",
|
|
623
878
|
setningPlaceholder: "Kopien kom, men rullesjefen manglet p\xE5 torsdag.",
|
|
624
879
|
lagre: "Lagre",
|
|
@@ -638,24 +893,16 @@ var tekst = {
|
|
|
638
893
|
// Felles
|
|
639
894
|
tilbake: "Tilbake",
|
|
640
895
|
lukk: "Lukk",
|
|
641
|
-
venterPaaNett: "Venter p\xE5 nett \u2014 sendes automatisk"
|
|
896
|
+
venterPaaNett: "Venter p\xE5 nett \u2014 sendes automatisk",
|
|
897
|
+
feil: "feil",
|
|
898
|
+
onske: "\xF8nske"
|
|
642
899
|
};
|
|
643
900
|
var lofte = {
|
|
644
|
-
venterNett: "Sendes automatisk n\xE5r du er p\xE5 nett \u2014 kvitteringen kommer da."
|
|
645
|
-
vurderes: (frist) => `Svar innen ${frist} \u2014 ogs\xE5 hvis det er nei.`,
|
|
646
|
-
vurderesUtenFrist: "Du f\xE5r svar \u2014 ogs\xE5 hvis det er nei.",
|
|
647
|
-
bygges: "Du f\xE5r beskjed n\xE5r den er rettet.",
|
|
648
|
-
planlagt: "Du f\xE5r beskjed n\xE5r den er rettet.",
|
|
649
|
-
rettet: "Ferdig. Ser du feilen igjen, send et nytt innspill.",
|
|
650
|
-
levert: "Ferdig. Takk for \xF8nsket.",
|
|
651
|
-
ny: "Vi har f\xE5tt den. Du h\xF8rer fra oss.",
|
|
652
|
-
kjentFeil: "Kjent feil. Du f\xE5r beskjed n\xE5r den er rettet.",
|
|
653
|
-
duplikat: "Sl\xE5tt sammen med et innspill som ligner.",
|
|
654
|
-
avvist: "Vi har svart p\xE5 denne."
|
|
901
|
+
venterNett: "Sendes automatisk n\xE5r du er p\xE5 nett \u2014 kvitteringen kommer da."
|
|
655
902
|
};
|
|
656
903
|
|
|
657
904
|
// src/widget/Felt.tsx
|
|
658
|
-
import { jsx as
|
|
905
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
659
906
|
function Felt({
|
|
660
907
|
spor,
|
|
661
908
|
verdi,
|
|
@@ -670,6 +917,8 @@ function Felt({
|
|
|
670
917
|
funn,
|
|
671
918
|
onSend,
|
|
672
919
|
sender,
|
|
920
|
+
harFeil,
|
|
921
|
+
offline,
|
|
673
922
|
onSkjermbilde,
|
|
674
923
|
onVelgBilde,
|
|
675
924
|
bildeNotat,
|
|
@@ -722,8 +971,8 @@ function Felt({
|
|
|
722
971
|
paddingRight: tema.space.xs
|
|
723
972
|
},
|
|
724
973
|
children: [
|
|
725
|
-
/* @__PURE__ */
|
|
726
|
-
/* @__PURE__ */
|
|
974
|
+
/* @__PURE__ */ jsx3(Text2, { style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.small }, children: tekst.lenketTil(lenketTil.title) }),
|
|
975
|
+
/* @__PURE__ */ jsx3(
|
|
727
976
|
Pressable2,
|
|
728
977
|
{
|
|
729
978
|
testID: "fjern-lenke",
|
|
@@ -731,7 +980,7 @@ function Felt({
|
|
|
731
980
|
accessibilityLabel: tekst.fjernLenke,
|
|
732
981
|
onPress: onFjernLenke,
|
|
733
982
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
734
|
-
children: /* @__PURE__ */
|
|
983
|
+
children: /* @__PURE__ */ jsx3(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
735
984
|
}
|
|
736
985
|
)
|
|
737
986
|
]
|
|
@@ -747,7 +996,7 @@ function Felt({
|
|
|
747
996
|
padding: tema.space.md
|
|
748
997
|
},
|
|
749
998
|
children: [
|
|
750
|
-
/* @__PURE__ */
|
|
999
|
+
/* @__PURE__ */ jsx3(
|
|
751
1000
|
Text2,
|
|
752
1001
|
{
|
|
753
1002
|
accessibilityRole: "alert",
|
|
@@ -762,7 +1011,7 @@ function Felt({
|
|
|
762
1011
|
}
|
|
763
1012
|
),
|
|
764
1013
|
/* @__PURE__ */ jsxs2(View2, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
765
|
-
/* @__PURE__ */
|
|
1014
|
+
/* @__PURE__ */ jsx3(
|
|
766
1015
|
Btn,
|
|
767
1016
|
{
|
|
768
1017
|
grow: true,
|
|
@@ -772,7 +1021,7 @@ function Felt({
|
|
|
772
1021
|
onPress: () => onEndre(verdi.slice(0, uavklart.start) + verdi.slice(uavklart.end))
|
|
773
1022
|
}
|
|
774
1023
|
),
|
|
775
|
-
/* @__PURE__ */
|
|
1024
|
+
/* @__PURE__ */ jsx3(
|
|
776
1025
|
Btn,
|
|
777
1026
|
{
|
|
778
1027
|
grow: true,
|
|
@@ -783,12 +1032,12 @@ function Felt({
|
|
|
783
1032
|
}
|
|
784
1033
|
)
|
|
785
1034
|
] }),
|
|
786
|
-
/* @__PURE__ */
|
|
1035
|
+
/* @__PURE__ */ jsx3(Hint, { children: tekst.monsterForklaring })
|
|
787
1036
|
]
|
|
788
1037
|
}
|
|
789
1038
|
) : null,
|
|
790
|
-
/* @__PURE__ */
|
|
791
|
-
/* @__PURE__ */
|
|
1039
|
+
/* @__PURE__ */ jsx3(H, { children: spor === "onske" ? tekst.feltLabelOnske : tekst.feltLabelFeil }),
|
|
1040
|
+
/* @__PURE__ */ jsx3(
|
|
792
1041
|
TextInput,
|
|
793
1042
|
{
|
|
794
1043
|
testID: "innspill-tekst",
|
|
@@ -848,9 +1097,9 @@ function Felt({
|
|
|
848
1097
|
paddingRight: tema.space.xs
|
|
849
1098
|
},
|
|
850
1099
|
children: [
|
|
851
|
-
/* @__PURE__ */
|
|
852
|
-
/* @__PURE__ */
|
|
853
|
-
/* @__PURE__ */
|
|
1100
|
+
/* @__PURE__ */ jsx3(Ikon, { navn: "image-outline", storrelse: "minste", farge: tema.color.textPrimary }),
|
|
1101
|
+
/* @__PURE__ */ jsx3(Text2, { style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.small }, children: tekst.bildeLagtVed }),
|
|
1102
|
+
/* @__PURE__ */ jsx3(
|
|
854
1103
|
Pressable2,
|
|
855
1104
|
{
|
|
856
1105
|
testID: "fjern-vedlegg",
|
|
@@ -858,38 +1107,38 @@ function Felt({
|
|
|
858
1107
|
accessibilityLabel: tekst.fjernSkjermbilde,
|
|
859
1108
|
onPress: onFjernVedlegg,
|
|
860
1109
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
861
|
-
children: /* @__PURE__ */
|
|
1110
|
+
children: /* @__PURE__ */ jsx3(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
862
1111
|
}
|
|
863
1112
|
)
|
|
864
1113
|
]
|
|
865
1114
|
}
|
|
866
1115
|
) : onSkjermbilde || onVelgBilde ? /* @__PURE__ */ jsxs2(View2, { style: { gap: tema.space.sm }, children: [
|
|
867
|
-
onSkjermbilde ? /* @__PURE__ */
|
|
1116
|
+
onSkjermbilde ? /* @__PURE__ */ jsx3(
|
|
868
1117
|
Btn,
|
|
869
1118
|
{
|
|
870
1119
|
variant: "secondary",
|
|
871
1120
|
testID: "legg-ved-skjermbilde",
|
|
872
|
-
ikon: "
|
|
1121
|
+
ikon: "camera-outline",
|
|
873
1122
|
label: tekst.leggVedSkjermbilde,
|
|
874
1123
|
hint: tekst.leggVedHint,
|
|
875
1124
|
onPress: onSkjermbilde
|
|
876
1125
|
}
|
|
877
1126
|
) : null,
|
|
878
|
-
onVelgBilde ? /* @__PURE__ */
|
|
1127
|
+
onVelgBilde ? /* @__PURE__ */ jsx3(
|
|
879
1128
|
Btn,
|
|
880
1129
|
{
|
|
881
1130
|
variant: "secondary",
|
|
882
1131
|
testID: "velg-bilde",
|
|
883
|
-
ikon: "
|
|
1132
|
+
ikon: "images-outline",
|
|
884
1133
|
label: tekst.velgBilde,
|
|
885
1134
|
hint: tekst.velgBildeHint,
|
|
886
1135
|
onPress: onVelgBilde
|
|
887
1136
|
}
|
|
888
1137
|
) : null,
|
|
889
|
-
bildeNotat ? /* @__PURE__ */
|
|
1138
|
+
bildeNotat ? /* @__PURE__ */ jsx3(View2, { testID: "bilde-notat", children: /* @__PURE__ */ jsx3(Hint, { children: bildeNotat }) }) : null
|
|
890
1139
|
] }) : null,
|
|
891
1140
|
/* @__PURE__ */ jsxs2(View2, { style: { borderTopWidth: tema.hairline, borderTopColor: tema.color.border, paddingTop: tema.space.sm }, children: [
|
|
892
|
-
/* @__PURE__ */
|
|
1141
|
+
/* @__PURE__ */ jsx3(
|
|
893
1142
|
Pressable2,
|
|
894
1143
|
{
|
|
895
1144
|
testID: "kontekst-bryter",
|
|
@@ -898,11 +1147,19 @@ function Felt({
|
|
|
898
1147
|
accessibilityLabel: `${tekst.kontekstLinje}${apen ? "" : tekst.kontekstVis}`,
|
|
899
1148
|
onPress: () => setApen((a) => !a),
|
|
900
1149
|
style: { minHeight: tema.touch, justifyContent: "center" },
|
|
901
|
-
children: /* @__PURE__ */ jsxs2(
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
1150
|
+
children: /* @__PURE__ */ jsxs2(View2, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1151
|
+
/* @__PURE__ */ jsx3(
|
|
1152
|
+
Ikon,
|
|
1153
|
+
{
|
|
1154
|
+
navn: apen ? "chevron-up-outline" : "chevron-down-outline",
|
|
1155
|
+
storrelse: "minste",
|
|
1156
|
+
farge: tema.color.textSecondary
|
|
1157
|
+
}
|
|
1158
|
+
),
|
|
1159
|
+
/* @__PURE__ */ jsxs2(Text2, { style: { flex: 1, color: tema.color.textSecondary, fontSize: tema.font.small }, children: [
|
|
1160
|
+
tekst.kontekstLinje,
|
|
1161
|
+
apen ? "" : tekst.kontekstVis
|
|
1162
|
+
] })
|
|
906
1163
|
] })
|
|
907
1164
|
}
|
|
908
1165
|
),
|
|
@@ -919,9 +1176,9 @@ function Felt({
|
|
|
919
1176
|
borderBottomColor: tema.color.border
|
|
920
1177
|
},
|
|
921
1178
|
children: [
|
|
922
|
-
/* @__PURE__ */
|
|
923
|
-
/* @__PURE__ */
|
|
924
|
-
/* @__PURE__ */
|
|
1179
|
+
/* @__PURE__ */ jsx3(Text2, { style: { color: tema.color.textMuted, fontSize: tema.font.small, minWidth: tema.touch * 2 }, children: l.etikett }),
|
|
1180
|
+
/* @__PURE__ */ jsx3(Text2, { style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.small }, children: l.verdi }),
|
|
1181
|
+
/* @__PURE__ */ jsx3(
|
|
925
1182
|
Pressable2,
|
|
926
1183
|
{
|
|
927
1184
|
testID: `fjern-${l.felt}`,
|
|
@@ -929,9 +1186,9 @@ function Felt({
|
|
|
929
1186
|
accessibilityLabel: `${tekst.kontekstFjern} ${l.etikett.toLowerCase()} fra innsendingen`,
|
|
930
1187
|
onPress: () => onFjernKontekst(l.felt),
|
|
931
1188
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
932
|
-
children: /* @__PURE__ */ jsxs2(
|
|
933
|
-
"
|
|
934
|
-
tekst.kontekstFjern
|
|
1189
|
+
children: /* @__PURE__ */ jsxs2(View2, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1190
|
+
/* @__PURE__ */ jsx3(Ikon, { navn: "close-outline", storrelse: "minste", farge: tema.color.textSecondary }),
|
|
1191
|
+
/* @__PURE__ */ jsx3(Text2, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.kontekstFjern })
|
|
935
1192
|
] })
|
|
936
1193
|
}
|
|
937
1194
|
)
|
|
@@ -939,18 +1196,19 @@ function Felt({
|
|
|
939
1196
|
},
|
|
940
1197
|
l.felt
|
|
941
1198
|
)),
|
|
942
|
-
/* @__PURE__ */
|
|
1199
|
+
/* @__PURE__ */ jsx3(View2, { style: { paddingTop: tema.space.sm }, children: /* @__PURE__ */ jsx3(Hint, { children: tekst.kontekstAldri }) })
|
|
943
1200
|
] }) : null
|
|
944
1201
|
] })
|
|
945
1202
|
]
|
|
946
1203
|
}
|
|
947
1204
|
),
|
|
948
|
-
/* @__PURE__ */
|
|
1205
|
+
/* @__PURE__ */ jsx3(View2, { testID: "skjema-fot", style: { flexGrow: 1, flexShrink: 0, justifyContent: "flex-end" }, children: /* @__PURE__ */ jsx3(
|
|
949
1206
|
Btn,
|
|
950
1207
|
{
|
|
951
1208
|
testID: "send",
|
|
952
|
-
label:
|
|
1209
|
+
label: sender ? tekst.sender : harFeil ? tekst.provIgjen : offline ? tekst.offlineLagre : tekst.send,
|
|
953
1210
|
disabled: forKort || sender,
|
|
1211
|
+
busy: sender,
|
|
954
1212
|
hint: forKort ? tekst.forKort(minTextLength) : harVedlegg ? tekst.sendHintMedBilde : void 0,
|
|
955
1213
|
onPress: onSend
|
|
956
1214
|
}
|
|
@@ -961,7 +1219,7 @@ function Felt({
|
|
|
961
1219
|
// src/widget/Valg.tsx
|
|
962
1220
|
import "react";
|
|
963
1221
|
import { Pressable as Pressable3, Text as Text3, View as View3 } from "react-native";
|
|
964
|
-
import { jsx as
|
|
1222
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
965
1223
|
function Valg({ onVelg }) {
|
|
966
1224
|
const tema = useTema();
|
|
967
1225
|
const flate = (spor, ikon, label, under) => /* @__PURE__ */ jsxs3(
|
|
@@ -984,8 +1242,8 @@ function Valg({ onVelg }) {
|
|
|
984
1242
|
padding: tema.space.md
|
|
985
1243
|
},
|
|
986
1244
|
children: [
|
|
987
|
-
/* @__PURE__ */
|
|
988
|
-
/* @__PURE__ */
|
|
1245
|
+
/* @__PURE__ */ jsx4(Ikon, { navn: ikon, storrelse: "stor", farge: tema.color.textPrimary }),
|
|
1246
|
+
/* @__PURE__ */ jsx4(
|
|
989
1247
|
Text3,
|
|
990
1248
|
{
|
|
991
1249
|
style: {
|
|
@@ -997,15 +1255,15 @@ function Valg({ onVelg }) {
|
|
|
997
1255
|
children: label
|
|
998
1256
|
}
|
|
999
1257
|
),
|
|
1000
|
-
/* @__PURE__ */
|
|
1258
|
+
/* @__PURE__ */ jsx4(Text3, { style: { color: tema.color.textMuted, fontSize: tema.font.small, textAlign: "center" }, children: under })
|
|
1001
1259
|
]
|
|
1002
1260
|
}
|
|
1003
1261
|
);
|
|
1004
1262
|
return /* @__PURE__ */ jsxs3(View3, { style: { flex: 1, gap: tema.space.lg }, children: [
|
|
1005
|
-
/* @__PURE__ */
|
|
1006
|
-
/* @__PURE__ */
|
|
1007
|
-
flate("feil", "
|
|
1008
|
-
flate("onske", "
|
|
1263
|
+
/* @__PURE__ */ jsx4(H, { children: tekst.valgTittel }),
|
|
1264
|
+
/* @__PURE__ */ jsx4(View3, { style: { flex: 1, justifyContent: "flex-end" }, children: /* @__PURE__ */ jsxs3(View3, { style: { flexDirection: "row", gap: tema.space.md }, children: [
|
|
1265
|
+
flate("feil", "bug-outline", tekst.sporFeil, tekst.sporFeilUnder),
|
|
1266
|
+
flate("onske", "bulb-outline", tekst.sporOnske, tekst.sporOnskeUnder)
|
|
1009
1267
|
] }) })
|
|
1010
1268
|
] });
|
|
1011
1269
|
}
|
|
@@ -1013,11 +1271,13 @@ function Valg({ onVelg }) {
|
|
|
1013
1271
|
// src/widget/KjenteFeil.tsx
|
|
1014
1272
|
import "react";
|
|
1015
1273
|
import { ActivityIndicator, ScrollView as ScrollView2, Text as Text4, View as View4 } from "react-native";
|
|
1016
|
-
import { jsx as
|
|
1274
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1275
|
+
var MAKS_KORT = 3;
|
|
1017
1276
|
function KjenteFeil({
|
|
1018
1277
|
kort,
|
|
1019
1278
|
spor,
|
|
1020
1279
|
laster,
|
|
1280
|
+
sender,
|
|
1021
1281
|
onJaOgsa,
|
|
1022
1282
|
onLigner,
|
|
1023
1283
|
onNei
|
|
@@ -1025,24 +1285,25 @@ function KjenteFeil({
|
|
|
1025
1285
|
const tema = useTema();
|
|
1026
1286
|
if (laster) {
|
|
1027
1287
|
return /* @__PURE__ */ jsxs4(View4, { style: { flex: 1, gap: tema.space.md }, children: [
|
|
1028
|
-
/* @__PURE__ */
|
|
1029
|
-
/* @__PURE__ */
|
|
1288
|
+
/* @__PURE__ */ jsx5(H, { sub: spor === "onske" ? tekst.kjenteFeilUnderOnske : tekst.kjenteFeilUnderFeil, children: spor === "onske" ? tekst.kjenteFeilTittelOnske : tekst.kjenteFeilTittelFeil }),
|
|
1289
|
+
/* @__PURE__ */ jsx5(ActivityIndicator, { accessibilityLabel: "Sjekker kjente feil", color: tema.color.textSecondary })
|
|
1030
1290
|
] });
|
|
1031
1291
|
}
|
|
1032
1292
|
return /* @__PURE__ */ jsxs4(View4, { testID: "kjente-feil", style: { flexGrow: 1, flexShrink: 1, gap: tema.space.md }, children: [
|
|
1033
|
-
/* @__PURE__ */
|
|
1034
|
-
/* @__PURE__ */
|
|
1293
|
+
/* @__PURE__ */ jsx5(H, { sub: spor === "onske" ? tekst.kjenteFeilUnderOnske : tekst.kjenteFeilUnderFeil, children: spor === "onske" ? tekst.kjenteFeilTittelOnske : tekst.kjenteFeilTittelFeil }),
|
|
1294
|
+
/* @__PURE__ */ jsx5(
|
|
1035
1295
|
ScrollView2,
|
|
1036
1296
|
{
|
|
1037
1297
|
testID: "kjente-feil-liste",
|
|
1038
1298
|
style: { flexGrow: 0, flexShrink: 1 },
|
|
1039
1299
|
contentContainerStyle: { gap: tema.space.md },
|
|
1040
1300
|
keyboardShouldPersistTaps: "handled",
|
|
1041
|
-
children: kort.map((k) => {
|
|
1301
|
+
children: kort.slice(0, MAKS_KORT).map((k) => {
|
|
1302
|
+
const o = knownIssueStatus[k.status] ?? knownIssueStatus.aktiv;
|
|
1042
1303
|
const versjon = k.fixedIn ? k.status === "fikset" ? tekst.rettetI(k.fixedIn) : tekst.rettesI(k.fixedIn) : void 0;
|
|
1043
|
-
const kontekst = versjon ? `${k.title}. ${versjon}` : k.title
|
|
1304
|
+
const kontekst = versjon ? `${k.title}. ${o.etikett}. ${versjon}` : `${k.title}. ${o.etikett}`;
|
|
1044
1305
|
return /* @__PURE__ */ jsxs4(Card, { children: [
|
|
1045
|
-
/* @__PURE__ */
|
|
1306
|
+
/* @__PURE__ */ jsx5(
|
|
1046
1307
|
Text4,
|
|
1047
1308
|
{
|
|
1048
1309
|
style: {
|
|
@@ -1069,26 +1330,24 @@ function KjenteFeil({
|
|
|
1069
1330
|
]
|
|
1070
1331
|
}
|
|
1071
1332
|
) : null,
|
|
1072
|
-
|
|
1073
|
-
StatusPill,
|
|
1074
|
-
{
|
|
1075
|
-
|
|
1076
|
-
etikett: versjon,
|
|
1077
|
-
farge: k.status === "fikset" ? "success" : "info"
|
|
1078
|
-
}
|
|
1079
|
-
) : null,
|
|
1333
|
+
/* @__PURE__ */ jsxs4(View4, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.sm, flexWrap: "wrap" }, children: [
|
|
1334
|
+
/* @__PURE__ */ jsx5(StatusPill, { ikon: o.ikon, etikett: o.etikett, fg: o.fg, bg: o.bg }),
|
|
1335
|
+
versjon ? /* @__PURE__ */ jsx5(Text4, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: versjon }) : null
|
|
1336
|
+
] }),
|
|
1080
1337
|
/* @__PURE__ */ jsxs4(View4, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
1081
|
-
/* @__PURE__ */
|
|
1338
|
+
/* @__PURE__ */ jsx5(
|
|
1082
1339
|
Btn,
|
|
1083
1340
|
{
|
|
1084
1341
|
grow: true,
|
|
1085
1342
|
testID: `ja-ogsa-${k.id}`,
|
|
1086
1343
|
label: tekst.svarJa,
|
|
1087
1344
|
accessibilityLabel: `${tekst.svarJa}. ${kontekst}`,
|
|
1345
|
+
disabled: sender,
|
|
1346
|
+
busy: sender,
|
|
1088
1347
|
onPress: () => onJaOgsa(k)
|
|
1089
1348
|
}
|
|
1090
1349
|
),
|
|
1091
|
-
/* @__PURE__ */
|
|
1350
|
+
/* @__PURE__ */ jsx5(
|
|
1092
1351
|
Btn,
|
|
1093
1352
|
{
|
|
1094
1353
|
grow: true,
|
|
@@ -1096,6 +1355,7 @@ function KjenteFeil({
|
|
|
1096
1355
|
testID: `ligner-${k.id}`,
|
|
1097
1356
|
label: tekst.svarLigner,
|
|
1098
1357
|
accessibilityLabel: `${tekst.svarLigner}. ${kontekst}`,
|
|
1358
|
+
disabled: sender,
|
|
1099
1359
|
onPress: () => onLigner(k)
|
|
1100
1360
|
}
|
|
1101
1361
|
)
|
|
@@ -1104,46 +1364,79 @@ function KjenteFeil({
|
|
|
1104
1364
|
})
|
|
1105
1365
|
}
|
|
1106
1366
|
),
|
|
1107
|
-
/* @__PURE__ */
|
|
1367
|
+
/* @__PURE__ */ jsx5(View4, { testID: "kjente-feil-fot", style: { flexShrink: 0 }, children: /* @__PURE__ */ jsx5(Btn, { variant: "secondary", testID: "nei-noe-annet", label: tekst.svarNei, disabled: sender, onPress: onNei }) })
|
|
1108
1368
|
] });
|
|
1109
1369
|
}
|
|
1110
1370
|
|
|
1111
1371
|
// src/widget/Kvittering.tsx
|
|
1112
1372
|
import "react";
|
|
1113
1373
|
import { Text as Text5, View as View5 } from "react-native";
|
|
1114
|
-
|
|
1374
|
+
|
|
1375
|
+
// src/widget/status.ts
|
|
1376
|
+
function formaterFrist(iso) {
|
|
1377
|
+
const d = new Date(iso);
|
|
1378
|
+
if (Number.isNaN(d.getTime())) return iso;
|
|
1379
|
+
return new Intl.DateTimeFormat("nb-NO", { day: "numeric", month: "long" }).format(d);
|
|
1380
|
+
}
|
|
1381
|
+
function statusVisning(status, type, deadlineAt) {
|
|
1382
|
+
const o = submissionStatus[status];
|
|
1383
|
+
const spor = type === "onske" ? "onske" : "feil";
|
|
1384
|
+
return {
|
|
1385
|
+
ikon: o.ikon,
|
|
1386
|
+
etikett: o.etikett[spor],
|
|
1387
|
+
fg: o.fg,
|
|
1388
|
+
bg: o.bg,
|
|
1389
|
+
lofte: settInnFrist(o.lofte[spor], deadlineAt)
|
|
1390
|
+
};
|
|
1391
|
+
}
|
|
1392
|
+
function settInnFrist(mal, deadlineAt) {
|
|
1393
|
+
if (!mal.includes("{frist}")) return mal;
|
|
1394
|
+
return deadlineAt ? mal.replace("{frist}", formaterFrist(deadlineAt)) : lofteUtenFrist;
|
|
1395
|
+
}
|
|
1396
|
+
var venterVisning = {
|
|
1397
|
+
ikon: "cloud-offline-outline",
|
|
1398
|
+
etikett: "Venter p\xE5 nett",
|
|
1399
|
+
fg: "textSecondary",
|
|
1400
|
+
bg: "neutralBg",
|
|
1401
|
+
lofte: lofte.venterNett
|
|
1402
|
+
};
|
|
1403
|
+
|
|
1404
|
+
// src/widget/Kvittering.tsx
|
|
1405
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1115
1406
|
function Kvittering({
|
|
1116
1407
|
art,
|
|
1117
1408
|
saksnummer,
|
|
1118
1409
|
vedlegg,
|
|
1410
|
+
frist,
|
|
1119
1411
|
onLukk
|
|
1120
1412
|
}) {
|
|
1121
1413
|
const tema = useTema();
|
|
1122
1414
|
const innhold = {
|
|
1123
1415
|
feil: { h: tekst.kvitteringSendt, p: tekst.kvitteringFeil },
|
|
1124
|
-
|
|
1416
|
+
// Løftet er NØYAKTIG det «Mine innspill» og panelet viser for «Vurderes»:
|
|
1417
|
+
// det leses fra temaet, så kvitteringen og statusen ikke kan si to ting.
|
|
1418
|
+
onske: { h: tekst.kvitteringSendt, p: statusVisning("vurderes", "onske", frist).lofte },
|
|
1125
1419
|
jaOgsa: { h: tekst.kvitteringRegistrert, p: tekst.kvitteringJaOgsa },
|
|
1126
1420
|
// Køet offline: kvitteringen kan IKKE love svar på noe som ikke er sendt
|
|
1127
1421
|
// (DD-41 presiserer DD-07). Den lover bare at det sendes.
|
|
1128
|
-
k\u00F8: { h: tekst.
|
|
1422
|
+
k\u00F8: { h: tekst.koKvitteringTittel, p: tekst.offlineBanner }
|
|
1129
1423
|
}[art];
|
|
1130
1424
|
const overskrift = vedlegg === "feilet" ? tekst.kvitteringVedleggFeilet : innhold.h;
|
|
1131
1425
|
const brodtekst = vedlegg === "feilet" ? `${tekst.tekstenErLagret} ${innhold.p}` : innhold.p;
|
|
1132
1426
|
return /* @__PURE__ */ jsxs5(View5, { style: { flex: 1, justifyContent: "center", gap: tema.space.lg }, children: [
|
|
1133
1427
|
/* @__PURE__ */ jsxs5(View5, { style: { alignItems: "center", gap: tema.space.md }, children: [
|
|
1134
|
-
/* @__PURE__ */
|
|
1135
|
-
|
|
1428
|
+
/* @__PURE__ */ jsx6(
|
|
1429
|
+
Ikon,
|
|
1136
1430
|
{
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
children: art === "k\xF8" ? "\u21C5" : "\u2713"
|
|
1431
|
+
navn: art === "k\xF8" ? "swap-vertical-outline" : "checkmark-circle-outline",
|
|
1432
|
+
storrelse: "stor",
|
|
1433
|
+
farge: art === "k\xF8" ? tema.color.neutral : tema.color.success
|
|
1141
1434
|
}
|
|
1142
1435
|
),
|
|
1143
|
-
/* @__PURE__ */
|
|
1144
|
-
vedlegg === "feilet" ? /* @__PURE__ */
|
|
1145
|
-
vedlegg === "forkastet" ? /* @__PURE__ */
|
|
1146
|
-
/* @__PURE__ */
|
|
1436
|
+
/* @__PURE__ */ jsx6(H, { children: overskrift }),
|
|
1437
|
+
vedlegg === "feilet" ? /* @__PURE__ */ jsx6(Banner, { ikon: "warning-outline", tone: "warning", children: tekst.vedleggFeiletBanner }) : null,
|
|
1438
|
+
vedlegg === "forkastet" ? /* @__PURE__ */ jsx6(Banner, { ikon: "image-outline", tone: "info", children: tekst.offlineUtenBilde }) : null,
|
|
1439
|
+
/* @__PURE__ */ jsx6(
|
|
1147
1440
|
Text5,
|
|
1148
1441
|
{
|
|
1149
1442
|
testID: "kvittering-tekst",
|
|
@@ -1158,72 +1451,16 @@ function Kvittering({
|
|
|
1158
1451
|
children: brodtekst
|
|
1159
1452
|
}
|
|
1160
1453
|
),
|
|
1161
|
-
saksnummer ? /* @__PURE__ */
|
|
1454
|
+
saksnummer ? /* @__PURE__ */ jsx6(Hint, { children: vedlegg === "feilet" ? tekst.saksnummerUtenVedlegg(saksnummer) : tekst.saksnummer(saksnummer) }) : null
|
|
1162
1455
|
] }),
|
|
1163
|
-
/* @__PURE__ */
|
|
1456
|
+
/* @__PURE__ */ jsx6(Btn, { testID: "tilbake-til-appen", label: tekst.tilbakeTilAppen, onPress: onLukk })
|
|
1164
1457
|
] });
|
|
1165
1458
|
}
|
|
1166
1459
|
|
|
1167
1460
|
// src/widget/MineInnspill.tsx
|
|
1168
1461
|
import "react";
|
|
1169
1462
|
import { ActivityIndicator as ActivityIndicator2, ScrollView as ScrollView3, Text as Text6, View as View6 } from "react-native";
|
|
1170
|
-
|
|
1171
|
-
// src/widget/status.ts
|
|
1172
|
-
var IKON = {
|
|
1173
|
-
ny: "\u23F1",
|
|
1174
|
-
vurderes: "\u23F1",
|
|
1175
|
-
planlagt: "\u{1F4C5}",
|
|
1176
|
-
bygges: "\u{1F527}",
|
|
1177
|
-
levert: "\u2713",
|
|
1178
|
-
kjent_feil: "\u{1F441}",
|
|
1179
|
-
duplikat: "\u2715",
|
|
1180
|
-
avvist: "\u2715",
|
|
1181
|
-
venterNett: "\u23F3"
|
|
1182
|
-
};
|
|
1183
|
-
function formaterFrist(iso) {
|
|
1184
|
-
const d = new Date(iso);
|
|
1185
|
-
if (Number.isNaN(d.getTime())) return iso;
|
|
1186
|
-
return new Intl.DateTimeFormat("nb-NO", { day: "numeric", month: "long" }).format(d);
|
|
1187
|
-
}
|
|
1188
|
-
function statusVisning(status, type, deadlineAt) {
|
|
1189
|
-
switch (status) {
|
|
1190
|
-
case "ny":
|
|
1191
|
-
return { ikon: IKON.ny, etikett: "Mottatt", farge: "neutral", lofte: lofte.ny };
|
|
1192
|
-
case "vurderes":
|
|
1193
|
-
return {
|
|
1194
|
-
ikon: IKON.vurderes,
|
|
1195
|
-
etikett: "Vurderes",
|
|
1196
|
-
farge: "warning",
|
|
1197
|
-
lofte: deadlineAt ? lofte.vurderes(formaterFrist(deadlineAt)) : lofte.vurderesUtenFrist
|
|
1198
|
-
};
|
|
1199
|
-
case "planlagt":
|
|
1200
|
-
return { ikon: IKON.planlagt, etikett: "Planlagt", farge: "success", lofte: lofte.planlagt };
|
|
1201
|
-
case "bygges":
|
|
1202
|
-
return { ikon: IKON.bygges, etikett: "Retter n\xE5", farge: "info", lofte: lofte.bygges };
|
|
1203
|
-
case "levert":
|
|
1204
|
-
return type === "onske" ? { ikon: IKON.levert, etikett: "Levert", farge: "success", lofte: lofte.levert } : { ikon: IKON.levert, etikett: "Rettet", farge: "success", lofte: lofte.rettet };
|
|
1205
|
-
case "kjent_feil":
|
|
1206
|
-
return {
|
|
1207
|
-
ikon: IKON.kjent_feil,
|
|
1208
|
-
etikett: "Kjent, ikke planlagt",
|
|
1209
|
-
farge: "neutral",
|
|
1210
|
-
lofte: lofte.kjentFeil
|
|
1211
|
-
};
|
|
1212
|
-
case "duplikat":
|
|
1213
|
-
return { ikon: IKON.duplikat, etikett: "Sl\xE5tt sammen", farge: "neutral", lofte: lofte.duplikat };
|
|
1214
|
-
case "avvist":
|
|
1215
|
-
return { ikon: IKON.avvist, etikett: "Avvist", farge: "danger", lofte: lofte.avvist };
|
|
1216
|
-
}
|
|
1217
|
-
}
|
|
1218
|
-
var venterVisning = {
|
|
1219
|
-
ikon: IKON.venterNett,
|
|
1220
|
-
etikett: "Venter p\xE5 nett",
|
|
1221
|
-
farge: "neutral",
|
|
1222
|
-
lofte: lofte.venterNett
|
|
1223
|
-
};
|
|
1224
|
-
|
|
1225
|
-
// src/widget/MineInnspill.tsx
|
|
1226
|
-
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1463
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1227
1464
|
function MineInnspill({
|
|
1228
1465
|
rader,
|
|
1229
1466
|
laster,
|
|
@@ -1232,20 +1469,15 @@ function MineInnspill({
|
|
|
1232
1469
|
}) {
|
|
1233
1470
|
const tema = useTema();
|
|
1234
1471
|
return /* @__PURE__ */ jsxs6(View6, { style: { flex: 1, gap: tema.space.md }, children: [
|
|
1235
|
-
/* @__PURE__ */
|
|
1236
|
-
laster ? /* @__PURE__ */
|
|
1472
|
+
/* @__PURE__ */ jsx7(H, { sub: tekst.mineUnder, children: tekst.mineTittel }),
|
|
1473
|
+
laster ? /* @__PURE__ */ jsx7(ActivityIndicator2, { accessibilityLabel: "Henter innspillene dine", color: tema.color.textSecondary }) : rader.length === 0 ? /* @__PURE__ */ jsx7(Hint, { children: tekst.mineTom }) : /* @__PURE__ */ jsx7(ScrollView3, { style: { flex: 1 }, contentContainerStyle: { gap: tema.space.sm }, children: rader.map((rad) => {
|
|
1237
1474
|
const venter = rad.pending === true;
|
|
1238
1475
|
const v = venter ? venterVisning : statusVisning(rad.status, rad.type, rad.deadlineAt);
|
|
1239
1476
|
const nokkel = venter ? rad.clientRef : rad.id;
|
|
1240
1477
|
const svar = venter ? void 0 : rad.reply;
|
|
1241
1478
|
return /* @__PURE__ */ jsxs6(Card, { dashed: venter, children: [
|
|
1242
|
-
/* @__PURE__ */
|
|
1243
|
-
|
|
1244
|
-
" \xB7",
|
|
1245
|
-
" ",
|
|
1246
|
-
rad.type === "onske" ? "\xF8nske" : "feil"
|
|
1247
|
-
] }),
|
|
1248
|
-
/* @__PURE__ */ jsx6(
|
|
1479
|
+
/* @__PURE__ */ jsx7(Hint, { children: venter ? `${tekst.mineIkkeSendt} \xB7 ${rad.type === "onske" ? tekst.onske : tekst.feil}` : tekst.sakHode(rad.type === "onske" ? tekst.onske : tekst.feil, rad.id) }),
|
|
1480
|
+
/* @__PURE__ */ jsx7(
|
|
1249
1481
|
Text6,
|
|
1250
1482
|
{
|
|
1251
1483
|
style: {
|
|
@@ -1257,12 +1489,12 @@ function MineInnspill({
|
|
|
1257
1489
|
}
|
|
1258
1490
|
),
|
|
1259
1491
|
/* @__PURE__ */ jsxs6(View6, { style: { gap: tema.space.xs }, children: [
|
|
1260
|
-
/* @__PURE__ */
|
|
1261
|
-
/* @__PURE__ */
|
|
1492
|
+
/* @__PURE__ */ jsx7(StatusPill, { ikon: v.ikon, etikett: v.etikett, fg: v.fg, bg: v.bg }),
|
|
1493
|
+
/* @__PURE__ */ jsx7(Hint, { children: v.lofte })
|
|
1262
1494
|
] }),
|
|
1263
1495
|
!venter && rad.attachmentRemoved ? /* @__PURE__ */ jsxs6(View6, { testID: `bilde-fjernet-${rad.id}`, style: { flexDirection: "row", gap: tema.space.xs, alignItems: "center" }, children: [
|
|
1264
|
-
/* @__PURE__ */
|
|
1265
|
-
/* @__PURE__ */
|
|
1496
|
+
/* @__PURE__ */ jsx7(Ikon, { navn: "trash-outline", storrelse: "minste", farge: tema.color.textMuted }),
|
|
1497
|
+
/* @__PURE__ */ jsx7(Hint, { children: tekst.bildeFjernet })
|
|
1266
1498
|
] }) : null,
|
|
1267
1499
|
svar ? /* @__PURE__ */ jsxs6(
|
|
1268
1500
|
View6,
|
|
@@ -1274,8 +1506,8 @@ function MineInnspill({
|
|
|
1274
1506
|
gap: tema.space.xs
|
|
1275
1507
|
},
|
|
1276
1508
|
children: [
|
|
1277
|
-
/* @__PURE__ */
|
|
1278
|
-
/* @__PURE__ */
|
|
1509
|
+
/* @__PURE__ */ jsx7(Text6, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tenantName ? tekst.svarFra(tenantName) : tekst.svarFraGenerisk }),
|
|
1510
|
+
/* @__PURE__ */ jsx7(
|
|
1279
1511
|
Text6,
|
|
1280
1512
|
{
|
|
1281
1513
|
style: {
|
|
@@ -1291,7 +1523,7 @@ function MineInnspill({
|
|
|
1291
1523
|
) : null
|
|
1292
1524
|
] }, nokkel);
|
|
1293
1525
|
}) }),
|
|
1294
|
-
/* @__PURE__ */
|
|
1526
|
+
/* @__PURE__ */ jsx7(Btn, { testID: "send-nytt", label: rader.length === 0 ? tekst.sendForste : tekst.sendNytt, onPress: onNytt })
|
|
1295
1527
|
] });
|
|
1296
1528
|
}
|
|
1297
1529
|
|
|
@@ -1299,7 +1531,7 @@ function MineInnspill({
|
|
|
1299
1531
|
import { skaler, strokTilRekter, treffer, trykkTilRekt } from "@innspel/core";
|
|
1300
1532
|
import { useCallback, useMemo as useMemo2, useRef, useState as useState2 } from "react";
|
|
1301
1533
|
import { Image as Image2, Pressable as Pressable4, StyleSheet, Text as Text7, View as View7 } from "react-native";
|
|
1302
|
-
import { jsx as
|
|
1534
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1303
1535
|
function Skjermbilde({
|
|
1304
1536
|
bilde,
|
|
1305
1537
|
automaskerRot,
|
|
@@ -1381,8 +1613,8 @@ function Skjermbilde({
|
|
|
1381
1613
|
backgroundColor: valgt ? tema.color.surfaceRaised : "transparent"
|
|
1382
1614
|
},
|
|
1383
1615
|
children: [
|
|
1384
|
-
/* @__PURE__ */
|
|
1385
|
-
/* @__PURE__ */
|
|
1616
|
+
/* @__PURE__ */ jsx8(Ikon, { navn: ikon, farge: tema.color.textPrimary }),
|
|
1617
|
+
/* @__PURE__ */ jsx8(
|
|
1386
1618
|
Text7,
|
|
1387
1619
|
{
|
|
1388
1620
|
style: {
|
|
@@ -1400,14 +1632,14 @@ function Skjermbilde({
|
|
|
1400
1632
|
};
|
|
1401
1633
|
const a11y = tekst.skjermbildeA11y(automasker.length, egne.length, allTekst);
|
|
1402
1634
|
return /* @__PURE__ */ jsxs7(View7, { testID: "skjermbilde-steg", style: { flexGrow: 1, flexShrink: 1, gap: tema.space.md }, children: [
|
|
1403
|
-
/* @__PURE__ */
|
|
1404
|
-
notat ? /* @__PURE__ */
|
|
1635
|
+
/* @__PURE__ */ jsx8(H, { sub: kilde === "galleri" ? tekst.skjermbildeUnderGalleri : tekst.skjermbildeUnder, children: tekst.skjermbildeTittel }),
|
|
1636
|
+
notat ? /* @__PURE__ */ jsx8(View7, { testID: "bilde-notat", children: /* @__PURE__ */ jsx8(Hint, { children: notat }) }) : null,
|
|
1405
1637
|
/* @__PURE__ */ jsxs7(View7, { accessibilityRole: "toolbar", accessibilityLabel: tekst.maskering, style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
1406
|
-
knapp("felt", "
|
|
1407
|
-
knapp("pensel", "
|
|
1408
|
-
knapp("allTekst", "
|
|
1638
|
+
knapp("felt", "scan-outline", tekst.maskerFelt),
|
|
1639
|
+
knapp("pensel", "brush-outline", tekst.tegnOver),
|
|
1640
|
+
knapp("allTekst", "grid-outline", tekst.maskerAllTekst)
|
|
1409
1641
|
] }),
|
|
1410
|
-
/* @__PURE__ */
|
|
1642
|
+
/* @__PURE__ */ jsx8(
|
|
1411
1643
|
View7,
|
|
1412
1644
|
{
|
|
1413
1645
|
testID: "skjermbilde-ramme",
|
|
@@ -1421,7 +1653,7 @@ function Skjermbilde({
|
|
|
1421
1653
|
borderRadius: tema.radius.md,
|
|
1422
1654
|
overflow: "hidden"
|
|
1423
1655
|
},
|
|
1424
|
-
children: /* @__PURE__ */
|
|
1656
|
+
children: /* @__PURE__ */ jsx8(View7, { testID: "skjermbilde-flate", pointerEvents: "box-none", style: [StyleSheet.absoluteFill, { alignItems: "center", justifyContent: "center" }], children: visning ? /* @__PURE__ */ jsxs7(
|
|
1425
1657
|
View7,
|
|
1426
1658
|
{
|
|
1427
1659
|
ref: previewRef,
|
|
@@ -1437,7 +1669,7 @@ function Skjermbilde({
|
|
|
1437
1669
|
onResponderTerminate: onRelease,
|
|
1438
1670
|
style: { width: visning.width, height: visning.height, backgroundColor: screenRules.previewBackdrop },
|
|
1439
1671
|
children: [
|
|
1440
|
-
/* @__PURE__ */
|
|
1672
|
+
/* @__PURE__ */ jsx8(
|
|
1441
1673
|
Image2,
|
|
1442
1674
|
{
|
|
1443
1675
|
testID: "skjermbilde-bilde",
|
|
@@ -1447,7 +1679,7 @@ function Skjermbilde({
|
|
|
1447
1679
|
accessibilityIgnoresInvertColors: true
|
|
1448
1680
|
}
|
|
1449
1681
|
),
|
|
1450
|
-
automasker.map((r, i) => /* @__PURE__ */
|
|
1682
|
+
automasker.map((r, i) => /* @__PURE__ */ jsx8(
|
|
1451
1683
|
View7,
|
|
1452
1684
|
{
|
|
1453
1685
|
testID: `automask-${i}`,
|
|
@@ -1464,14 +1696,20 @@ function Skjermbilde({
|
|
|
1464
1696
|
alignItems: "center",
|
|
1465
1697
|
justifyContent: "center"
|
|
1466
1698
|
},
|
|
1467
|
-
children: !komponerer ?
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1699
|
+
children: !komponerer ? (
|
|
1700
|
+
// Etiketten står PÅ den maskerte flaten og måles mot NETTOPP den
|
|
1701
|
+
// (skjermKontrastpar i theme.ts). textSecondary var 2,2:1 (C11a).
|
|
1702
|
+
// Ikonet arver samme farge: det er unntaket i «Styling» — maskeringen
|
|
1703
|
+
// tegnes i faste signalfarger, ikke i palettens.
|
|
1704
|
+
/* @__PURE__ */ jsxs7(View7, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1705
|
+
/* @__PURE__ */ jsx8(Ikon, { navn: "lock-closed-outline", storrelse: "minste", farge: screenRules.autoMaskText }),
|
|
1706
|
+
/* @__PURE__ */ jsx8(Text7, { style: { color: screenRules.autoMaskText, fontSize: tema.font.small }, numberOfLines: 1, children: tekst.maskertAvAppen })
|
|
1707
|
+
] })
|
|
1708
|
+
) : null
|
|
1471
1709
|
},
|
|
1472
1710
|
`auto-${i}`
|
|
1473
1711
|
)),
|
|
1474
|
-
egne.map((r, i) => /* @__PURE__ */
|
|
1712
|
+
egne.map((r, i) => /* @__PURE__ */ jsx8(
|
|
1475
1713
|
View7,
|
|
1476
1714
|
{
|
|
1477
1715
|
testID: `maske-${i}`,
|
|
@@ -1485,21 +1723,42 @@ function Skjermbilde({
|
|
|
1485
1723
|
) : null })
|
|
1486
1724
|
}
|
|
1487
1725
|
),
|
|
1488
|
-
automasker.length ? /* @__PURE__ */ jsxs7(
|
|
1489
|
-
|
|
1490
|
-
tekst.maskertAvAppenHint
|
|
1726
|
+
automasker.length ? /* @__PURE__ */ jsxs7(View7, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1727
|
+
/* @__PURE__ */ jsx8(Ikon, { navn: "lock-closed-outline", storrelse: "minste", farge: tema.color.textMuted }),
|
|
1728
|
+
/* @__PURE__ */ jsx8(Hint, { children: tekst.maskertAvAppenHint })
|
|
1491
1729
|
] }) : null,
|
|
1492
|
-
egne.length ? /* @__PURE__ */
|
|
1493
|
-
allTekst ? /* @__PURE__ */
|
|
1730
|
+
egne.length ? /* @__PURE__ */ jsx8(Hint, { children: tekst.dittStrok }) : null,
|
|
1731
|
+
allTekst ? /* @__PURE__ */ jsx8(Hint, { children: tekst.allTekstHint }) : null,
|
|
1494
1732
|
/* @__PURE__ */ jsxs7(View7, { testID: "skjermbilde-fot", style: { flexShrink: 0, gap: tema.space.sm }, children: [
|
|
1495
|
-
/* @__PURE__ */
|
|
1496
|
-
|
|
1733
|
+
/* @__PURE__ */ jsx8(
|
|
1734
|
+
Btn,
|
|
1735
|
+
{
|
|
1736
|
+
variant: "secondary",
|
|
1737
|
+
testID: "angre-siste",
|
|
1738
|
+
label: tekst.angreSiste,
|
|
1739
|
+
accessibilityLabel: tekst.angreSisteA11y,
|
|
1740
|
+
disabled: komponerer || egne.length === 0,
|
|
1741
|
+
onPress: () => setEgne((x) => x.slice(0, -1))
|
|
1742
|
+
}
|
|
1743
|
+
),
|
|
1744
|
+
/* @__PURE__ */ jsx8(
|
|
1745
|
+
Btn,
|
|
1746
|
+
{
|
|
1747
|
+
variant: "danger",
|
|
1748
|
+
testID: "fjern-bildet",
|
|
1749
|
+
ikon: "trash-outline",
|
|
1750
|
+
label: tekst.fjernBildet,
|
|
1751
|
+
onPress: onFjern,
|
|
1752
|
+
disabled: komponerer
|
|
1753
|
+
}
|
|
1754
|
+
),
|
|
1755
|
+
/* @__PURE__ */ jsx8(Btn, { testID: "legg-ved", label: tekst.leggVed, onPress: onLeggVed, disabled: komponerer || !visning })
|
|
1497
1756
|
] })
|
|
1498
1757
|
] });
|
|
1499
1758
|
}
|
|
1500
1759
|
|
|
1501
1760
|
// src/widget/Widget.tsx
|
|
1502
|
-
import { Fragment, jsx as
|
|
1761
|
+
import { Fragment, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1503
1762
|
var FANGST = { format: "jpg", quality: 0.85 };
|
|
1504
1763
|
function Widget({
|
|
1505
1764
|
client,
|
|
@@ -1522,6 +1781,7 @@ function Widget({
|
|
|
1522
1781
|
const [funn, setFunn] = useState3([]);
|
|
1523
1782
|
const [fjernede, setFjernede] = useState3([]);
|
|
1524
1783
|
const [sender, setSender] = useState3(false);
|
|
1784
|
+
const online = useNettstatus(client);
|
|
1525
1785
|
const [feil, setFeil] = useState3();
|
|
1526
1786
|
const [kvittering, setKvittering] = useState3();
|
|
1527
1787
|
const [mine, setMine] = useState3([]);
|
|
@@ -1561,7 +1821,11 @@ function Widget({
|
|
|
1561
1821
|
client.track({ name: "widget_opened" });
|
|
1562
1822
|
void client.queue.flush().catch(() => void 0);
|
|
1563
1823
|
void client.loadSettings().then((s) => setInnstillinger({ ...s })).catch(() => void 0);
|
|
1564
|
-
if (
|
|
1824
|
+
if (!client.isAnonymous) {
|
|
1825
|
+
void client.subjects.submissions().then(setMine).catch(() => void 0);
|
|
1826
|
+
}
|
|
1827
|
+
if (apneOpsjoner?.view === "mine" && !client.isAnonymous) void visMine();
|
|
1828
|
+
else if (apneOpsjoner?.track) velgSpor(apneOpsjoner.track);
|
|
1565
1829
|
}, [synlig]);
|
|
1566
1830
|
const hentKort = useCallback2(async () => {
|
|
1567
1831
|
setLasterKort(true);
|
|
@@ -1657,12 +1921,21 @@ function Widget({
|
|
|
1657
1921
|
setVedlegg(void 0);
|
|
1658
1922
|
setSteg("felt");
|
|
1659
1923
|
}, []);
|
|
1660
|
-
const
|
|
1661
|
-
|
|
1924
|
+
const gaaTilbake = useCallback2(() => {
|
|
1925
|
+
setFeil(void 0);
|
|
1926
|
+
if (steg === "skjermbilde") {
|
|
1927
|
+
setBilde(void 0);
|
|
1928
|
+
setAutomasker([]);
|
|
1929
|
+
setSteg("felt");
|
|
1930
|
+
return;
|
|
1931
|
+
}
|
|
1932
|
+
if (steg === "felt" && spor === "feil" && kort.length > 0) {
|
|
1662
1933
|
setSteg("kjenteFeil");
|
|
1663
|
-
await hentKort();
|
|
1664
1934
|
return;
|
|
1665
1935
|
}
|
|
1936
|
+
setSteg("valg");
|
|
1937
|
+
}, [steg, spor, kort.length]);
|
|
1938
|
+
const send = useCallback2(async () => {
|
|
1666
1939
|
setSender(true);
|
|
1667
1940
|
setFeil(void 0);
|
|
1668
1941
|
try {
|
|
@@ -1679,6 +1952,8 @@ function Widget({
|
|
|
1679
1952
|
setKvittering({
|
|
1680
1953
|
art: spor,
|
|
1681
1954
|
nr: res.submission.id,
|
|
1955
|
+
// Tidsløftet i kvitteringen er DATOEN fra svaret, aldri «innen 90 dager» (DD-07, DD-28).
|
|
1956
|
+
...res.submission.deadlineAt ? { frist: res.submission.deadlineAt } : {},
|
|
1682
1957
|
...res.attachment?.status === "failed" ? { vedlegg: "feilet" } : {}
|
|
1683
1958
|
});
|
|
1684
1959
|
}
|
|
@@ -1690,7 +1965,7 @@ function Widget({
|
|
|
1690
1965
|
} finally {
|
|
1691
1966
|
setSender(false);
|
|
1692
1967
|
}
|
|
1693
|
-
}, [client, spor,
|
|
1968
|
+
}, [client, spor, verdi, vedlegg, lenketTil, fjernede]);
|
|
1694
1969
|
const jaOgsa = useCallback2(
|
|
1695
1970
|
async (k) => {
|
|
1696
1971
|
setSender(true);
|
|
@@ -1717,7 +1992,7 @@ function Widget({
|
|
|
1717
1992
|
setLasterMine(false);
|
|
1718
1993
|
}
|
|
1719
1994
|
}, [client]);
|
|
1720
|
-
return /* @__PURE__ */
|
|
1995
|
+
return /* @__PURE__ */ jsx9(
|
|
1721
1996
|
Modal,
|
|
1722
1997
|
{
|
|
1723
1998
|
visible: synlig,
|
|
@@ -1725,7 +2000,7 @@ function Widget({
|
|
|
1725
2000
|
animationType: "slide",
|
|
1726
2001
|
onRequestClose: lukk,
|
|
1727
2002
|
accessibilityViewIsModal: true,
|
|
1728
|
-
children: /* @__PURE__ */
|
|
2003
|
+
children: /* @__PURE__ */ jsx9(
|
|
1729
2004
|
KeyboardAvoidingView,
|
|
1730
2005
|
{
|
|
1731
2006
|
behavior: "padding",
|
|
@@ -1754,8 +2029,8 @@ function Widget({
|
|
|
1754
2029
|
},
|
|
1755
2030
|
children: [
|
|
1756
2031
|
/* @__PURE__ */ jsxs8(View8, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
1757
|
-
steg
|
|
1758
|
-
/* @__PURE__ */
|
|
2032
|
+
steg !== "valg" && steg !== "kvittering" ? /* @__PURE__ */ jsx9(Btn, { variant: "ghost", testID: "tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: gaaTilbake }) : /* @__PURE__ */ jsx9(View8, {}),
|
|
2033
|
+
/* @__PURE__ */ jsx9(
|
|
1759
2034
|
Pressable5,
|
|
1760
2035
|
{
|
|
1761
2036
|
testID: "lukk",
|
|
@@ -1763,30 +2038,42 @@ function Widget({
|
|
|
1763
2038
|
accessibilityLabel: tekst.lukk,
|
|
1764
2039
|
onPress: lukk,
|
|
1765
2040
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
1766
|
-
children: /* @__PURE__ */
|
|
2041
|
+
children: /* @__PURE__ */ jsx9(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
1767
2042
|
}
|
|
1768
2043
|
)
|
|
1769
2044
|
] }),
|
|
1770
|
-
feil ? /* @__PURE__ */
|
|
2045
|
+
feil ? /* @__PURE__ */ jsx9(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.sendefeilBanner(feil) }) : null,
|
|
2046
|
+
!online && steg !== "kvittering" && steg !== "mine" ? /* @__PURE__ */ jsx9(Banner, { ikon: "cloud-offline-outline", tone: "info", testID: "offline-banner", children: tekst.offlineBanner }) : null,
|
|
1771
2047
|
steg === "valg" ? /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
1772
|
-
/* @__PURE__ */
|
|
1773
|
-
/* @__PURE__ */
|
|
2048
|
+
/* @__PURE__ */ jsx9(Valg, { onVelg: velgSpor }),
|
|
2049
|
+
!client.isAnonymous ? /* @__PURE__ */ jsx9(
|
|
2050
|
+
Btn,
|
|
2051
|
+
{
|
|
2052
|
+
variant: mine.length > 0 ? "secondary" : "ghost",
|
|
2053
|
+
testID: "mine-innspill",
|
|
2054
|
+
ikon: "list-outline",
|
|
2055
|
+
label: mine.length > 0 ? tekst.mineMedAntall(mine.length) : tekst.mineTittel,
|
|
2056
|
+
accessibilityLabel: mine.length > 0 ? tekst.mineEtikett(mine.length) : tekst.mineTittel,
|
|
2057
|
+
onPress: visMine
|
|
2058
|
+
}
|
|
2059
|
+
) : null
|
|
1774
2060
|
] }) : null,
|
|
1775
|
-
steg === "kjenteFeil" ? /* @__PURE__ */
|
|
2061
|
+
steg === "kjenteFeil" ? /* @__PURE__ */ jsx9(
|
|
1776
2062
|
KjenteFeil,
|
|
1777
2063
|
{
|
|
1778
2064
|
kort,
|
|
1779
2065
|
spor,
|
|
1780
2066
|
laster: lasterKort,
|
|
2067
|
+
sender,
|
|
1781
2068
|
onJaOgsa: jaOgsa,
|
|
1782
2069
|
onLigner: (k) => {
|
|
1783
2070
|
setLenketTil(k);
|
|
1784
2071
|
setSteg("felt");
|
|
1785
2072
|
},
|
|
1786
|
-
onNei: () =>
|
|
2073
|
+
onNei: () => setSteg("felt")
|
|
1787
2074
|
}
|
|
1788
2075
|
) : null,
|
|
1789
|
-
steg === "felt" ? /* @__PURE__ */
|
|
2076
|
+
steg === "felt" ? /* @__PURE__ */ jsx9(
|
|
1790
2077
|
Felt,
|
|
1791
2078
|
{
|
|
1792
2079
|
spor,
|
|
@@ -1801,6 +2088,8 @@ function Widget({
|
|
|
1801
2088
|
funn,
|
|
1802
2089
|
onSend: send,
|
|
1803
2090
|
sender,
|
|
2091
|
+
harFeil: feil !== void 0,
|
|
2092
|
+
offline: !online,
|
|
1804
2093
|
...fangstMulig ? { onSkjermbilde: taSkjermbilde } : {},
|
|
1805
2094
|
...galleriMulig ? { onVelgBilde: velgBilde } : {},
|
|
1806
2095
|
...bildeNotat ? { bildeNotat } : {},
|
|
@@ -1808,7 +2097,7 @@ function Widget({
|
|
|
1808
2097
|
onFjernVedlegg: fjernBilde
|
|
1809
2098
|
}
|
|
1810
2099
|
) : null,
|
|
1811
|
-
steg === "skjermbilde" && bilde ? /* @__PURE__ */
|
|
2100
|
+
steg === "skjermbilde" && bilde ? /* @__PURE__ */ jsx9(
|
|
1812
2101
|
Skjermbilde,
|
|
1813
2102
|
{
|
|
1814
2103
|
bilde,
|
|
@@ -1822,16 +2111,17 @@ function Widget({
|
|
|
1822
2111
|
onLeggVed: leggVedBilde
|
|
1823
2112
|
}
|
|
1824
2113
|
) : null,
|
|
1825
|
-
steg === "kvittering" && kvittering ? /* @__PURE__ */
|
|
2114
|
+
steg === "kvittering" && kvittering ? /* @__PURE__ */ jsx9(
|
|
1826
2115
|
Kvittering,
|
|
1827
2116
|
{
|
|
1828
2117
|
art: kvittering.art,
|
|
1829
2118
|
...kvittering.nr ? { saksnummer: kvittering.nr } : {},
|
|
1830
2119
|
...kvittering.vedlegg ? { vedlegg: kvittering.vedlegg } : {},
|
|
2120
|
+
...kvittering.frist ? { frist: kvittering.frist } : {},
|
|
1831
2121
|
onLukk: lukk
|
|
1832
2122
|
}
|
|
1833
2123
|
) : null,
|
|
1834
|
-
steg === "mine" ? /* @__PURE__ */
|
|
2124
|
+
steg === "mine" ? /* @__PURE__ */ jsx9(
|
|
1835
2125
|
MineInnspill,
|
|
1836
2126
|
{
|
|
1837
2127
|
rader: mine,
|
|
@@ -1848,6 +2138,16 @@ function Widget({
|
|
|
1848
2138
|
}
|
|
1849
2139
|
);
|
|
1850
2140
|
}
|
|
2141
|
+
function useNettstatus(client) {
|
|
2142
|
+
const c = client.connectivity;
|
|
2143
|
+
const [online, setOnline] = useState3(() => c?.isOnline() ?? true);
|
|
2144
|
+
useEffect(() => {
|
|
2145
|
+
if (!c) return void 0;
|
|
2146
|
+
setOnline(c.isOnline());
|
|
2147
|
+
return c.subscribe?.((v) => setOnline(v));
|
|
2148
|
+
}, [c]);
|
|
2149
|
+
return online;
|
|
2150
|
+
}
|
|
1851
2151
|
function fjernetKontekst(client, fjernede) {
|
|
1852
2152
|
const ut = {};
|
|
1853
2153
|
for (const k of Object.keys(client.context)) {
|
|
@@ -1857,7 +2157,7 @@ function fjernetKontekst(client, fjernede) {
|
|
|
1857
2157
|
}
|
|
1858
2158
|
|
|
1859
2159
|
// src/InnspelProvider.tsx
|
|
1860
|
-
import { jsx as
|
|
2160
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1861
2161
|
var Kontekst = createContext3(null);
|
|
1862
2162
|
function InnspelProvider({
|
|
1863
2163
|
client,
|
|
@@ -1891,9 +2191,9 @@ function InnspelProvider({
|
|
|
1891
2191
|
() => ({ adapter: screenshot ?? null, rootRef, privat }),
|
|
1892
2192
|
[screenshot, privat]
|
|
1893
2193
|
);
|
|
1894
|
-
return /* @__PURE__ */
|
|
1895
|
-
/* @__PURE__ */
|
|
1896
|
-
/* @__PURE__ */
|
|
2194
|
+
return /* @__PURE__ */ jsx10(Kontekst.Provider, { value: verdi, children: /* @__PURE__ */ jsx10(SkjermbildeContext.Provider, { value: skjermbilde, children: /* @__PURE__ */ jsxs9(TemaProvider, { value: tema, children: [
|
|
2195
|
+
/* @__PURE__ */ jsx10(View9, { ref: rootRef, collapsable: false, style: { flex: 1 }, testID: "innspel-rot", children }),
|
|
2196
|
+
/* @__PURE__ */ jsx10(
|
|
1897
2197
|
Widget,
|
|
1898
2198
|
{
|
|
1899
2199
|
client,
|
|
@@ -1919,7 +2219,7 @@ function useInnspel() {
|
|
|
1919
2219
|
// src/InnspelPrivate.tsx
|
|
1920
2220
|
import { useEffect as useEffect2, useRef as useRef4 } from "react";
|
|
1921
2221
|
import { View as View10 } from "react-native";
|
|
1922
|
-
import { jsx as
|
|
2222
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1923
2223
|
function InnspelPrivate({ children, style }) {
|
|
1924
2224
|
const ref = useRef4(null);
|
|
1925
2225
|
const kontekst = useSkjermbilde();
|
|
@@ -1928,7 +2228,7 @@ function InnspelPrivate({ children, style }) {
|
|
|
1928
2228
|
if (!registrer) return;
|
|
1929
2229
|
return registrer(ref);
|
|
1930
2230
|
}, [registrer]);
|
|
1931
|
-
return /* @__PURE__ */
|
|
2231
|
+
return /* @__PURE__ */ jsx11(View10, { ref, collapsable: false, style, testID: "innspel-privat", children });
|
|
1932
2232
|
}
|
|
1933
2233
|
|
|
1934
2234
|
// src/program/InnspelProgram.tsx
|
|
@@ -1936,11 +2236,11 @@ import {
|
|
|
1936
2236
|
InnspelApiError as InnspelApiError2
|
|
1937
2237
|
} from "@innspel/core";
|
|
1938
2238
|
import { useCallback as useCallback4, useEffect as useEffect3, useState as useState6 } from "react";
|
|
1939
|
-
import { Modal as Modal4, Pressable as Pressable8, Text as
|
|
2239
|
+
import { Modal as Modal4, Pressable as Pressable8, Text as Text12, View as View15 } from "react-native";
|
|
1940
2240
|
|
|
1941
2241
|
// src/program/Aksept.tsx
|
|
1942
2242
|
import "react";
|
|
1943
|
-
import { Linking, Modal as Modal2, Pressable as Pressable6, ScrollView as ScrollView4, Text as
|
|
2243
|
+
import { Linking, Modal as Modal2, Pressable as Pressable6, ScrollView as ScrollView4, Text as Text8, View as View11 } from "react-native";
|
|
1944
2244
|
|
|
1945
2245
|
// src/program/periode.ts
|
|
1946
2246
|
var MANEDER = [
|
|
@@ -1970,7 +2270,7 @@ function minutterPerOppgave(tasks) {
|
|
|
1970
2270
|
}
|
|
1971
2271
|
|
|
1972
2272
|
// src/program/Aksept.tsx
|
|
1973
|
-
import { jsx as
|
|
2273
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1974
2274
|
function Aksept({
|
|
1975
2275
|
program,
|
|
1976
2276
|
harToken,
|
|
@@ -1986,7 +2286,7 @@ function Aksept({
|
|
|
1986
2286
|
periode(program.opensAt, program.closesAt),
|
|
1987
2287
|
program.maxContacts
|
|
1988
2288
|
);
|
|
1989
|
-
return /* @__PURE__ */
|
|
2289
|
+
return /* @__PURE__ */ jsx12(Modal2, { visible: true, transparent: true, animationType: "slide", onRequestClose: onLukk, accessibilityViewIsModal: true, children: /* @__PURE__ */ jsx12(View11, { style: { flex: 1, backgroundColor: tema.color.scrim, justifyContent: "flex-end" }, children: /* @__PURE__ */ jsxs10(
|
|
1990
2290
|
View11,
|
|
1991
2291
|
{
|
|
1992
2292
|
testID: "program-aksept",
|
|
@@ -2002,14 +2302,14 @@ function Aksept({
|
|
|
2002
2302
|
},
|
|
2003
2303
|
children: [
|
|
2004
2304
|
/* @__PURE__ */ jsxs10(View11, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
2005
|
-
/* @__PURE__ */
|
|
2006
|
-
/* @__PURE__ */
|
|
2305
|
+
/* @__PURE__ */ jsx12(Btn, { variant: "ghost", testID: "aksept-tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: onLukk }),
|
|
2306
|
+
/* @__PURE__ */ jsx12(View11, {})
|
|
2007
2307
|
] }),
|
|
2008
|
-
feil ? /* @__PURE__ */
|
|
2308
|
+
feil ? /* @__PURE__ */ jsx12(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.akseptFeil(feil) }) : null,
|
|
2009
2309
|
/* @__PURE__ */ jsxs10(ScrollView4, { contentContainerStyle: { gap: tema.space.md }, children: [
|
|
2010
|
-
/* @__PURE__ */
|
|
2011
|
-
/* @__PURE__ */
|
|
2012
|
-
|
|
2310
|
+
/* @__PURE__ */ jsx12(H, { sub: tekst.akseptHva, children: program.name }),
|
|
2311
|
+
/* @__PURE__ */ jsx12(
|
|
2312
|
+
Text8,
|
|
2013
2313
|
{
|
|
2014
2314
|
accessibilityRole: "text",
|
|
2015
2315
|
style: {
|
|
@@ -2021,11 +2321,11 @@ function Aksept({
|
|
|
2021
2321
|
children: tall
|
|
2022
2322
|
}
|
|
2023
2323
|
),
|
|
2024
|
-
/* @__PURE__ */
|
|
2324
|
+
/* @__PURE__ */ jsx12(Text8, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: program.hypothesis }),
|
|
2025
2325
|
/* @__PURE__ */ jsxs10(Card, { children: [
|
|
2026
|
-
/* @__PURE__ */
|
|
2326
|
+
/* @__PURE__ */ jsx12(H, { children: tekst.akseptOppgaver }),
|
|
2027
2327
|
program.tasks.map((o) => /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2028
|
-
/* @__PURE__ */
|
|
2328
|
+
/* @__PURE__ */ jsx12(Text8, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: o.title }),
|
|
2029
2329
|
/* @__PURE__ */ jsxs10(Hint, { children: [
|
|
2030
2330
|
tekst.akseptOppgaveTid(o.estimatedMinutes),
|
|
2031
2331
|
o.screenHint ? ` \xB7 ${o.screenHint}` : ""
|
|
@@ -2033,30 +2333,34 @@ function Aksept({
|
|
|
2033
2333
|
] }, o.id))
|
|
2034
2334
|
] }),
|
|
2035
2335
|
program.knownIssues.length > 0 ? /* @__PURE__ */ jsxs10(Card, { children: [
|
|
2036
|
-
/* @__PURE__ */
|
|
2037
|
-
program.knownIssues.map((k) =>
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2336
|
+
/* @__PURE__ */ jsx12(H, { sub: tekst.akseptKjenteFeilUnder, children: tekst.akseptKjenteFeil(program.knownIssues.length) }),
|
|
2337
|
+
program.knownIssues.map((k) => {
|
|
2338
|
+
const o = knownIssueStatus[k.status] ?? knownIssueStatus.aktiv;
|
|
2339
|
+
return /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2340
|
+
/* @__PURE__ */ jsx12(Text8, { style: { color: tema.color.textPrimary, fontSize: tema.font.small, lineHeight: tema.lineHeight.small }, children: k.title }),
|
|
2341
|
+
k.workaround ? /* @__PURE__ */ jsxs10(Text8, { style: { color: tema.color.textSecondary, fontSize: tema.font.small, lineHeight: tema.lineHeight.small }, children: [
|
|
2342
|
+
tekst.omvei,
|
|
2343
|
+
" ",
|
|
2344
|
+
k.workaround
|
|
2345
|
+
] }) : null,
|
|
2346
|
+
k.fixedIn ? /* @__PURE__ */ jsx12(
|
|
2347
|
+
StatusPill,
|
|
2348
|
+
{
|
|
2349
|
+
ikon: o.ikon,
|
|
2350
|
+
etikett: k.status === "fikset" ? tekst.rettetI(k.fixedIn) : tekst.rettesI(k.fixedIn),
|
|
2351
|
+
fg: o.fg,
|
|
2352
|
+
bg: o.bg
|
|
2353
|
+
}
|
|
2354
|
+
) : null
|
|
2355
|
+
] }, k.id);
|
|
2356
|
+
})
|
|
2053
2357
|
] }) : null,
|
|
2054
2358
|
/* @__PURE__ */ jsxs10(Card, { children: [
|
|
2055
|
-
/* @__PURE__ */
|
|
2056
|
-
/* @__PURE__ */
|
|
2359
|
+
/* @__PURE__ */ jsx12(H, { sub: tekst.akseptInnsamlingTekst, children: tekst.akseptInnsamling }),
|
|
2360
|
+
/* @__PURE__ */ jsx12(Hint, { children: tekst.kontekstAldri })
|
|
2057
2361
|
] }),
|
|
2058
2362
|
program.termsUrl && !program.commitmentFree ? /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2059
|
-
/* @__PURE__ */
|
|
2363
|
+
/* @__PURE__ */ jsx12(
|
|
2060
2364
|
Pressable6,
|
|
2061
2365
|
{
|
|
2062
2366
|
testID: "vilkar-lenke",
|
|
@@ -2064,20 +2368,32 @@ function Aksept({
|
|
|
2064
2368
|
accessibilityLabel: tekst.akseptVilkar,
|
|
2065
2369
|
onPress: () => void Linking.openURL(String(program.termsUrl)),
|
|
2066
2370
|
style: { minHeight: tema.touch, justifyContent: "center" },
|
|
2067
|
-
children: /* @__PURE__ */ jsxs10(
|
|
2068
|
-
|
|
2069
|
-
|
|
2371
|
+
children: /* @__PURE__ */ jsxs10(View11, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
2372
|
+
/* @__PURE__ */ jsx12(Ikon, { navn: "open-outline", farge: tema.color.textPrimary }),
|
|
2373
|
+
/* @__PURE__ */ jsx12(
|
|
2374
|
+
Text8,
|
|
2375
|
+
{
|
|
2376
|
+
style: { color: tema.color.textPrimary, fontSize: tema.font.body, textDecorationLine: "underline" },
|
|
2377
|
+
children: tekst.akseptVilkar
|
|
2378
|
+
}
|
|
2379
|
+
)
|
|
2070
2380
|
] })
|
|
2071
2381
|
}
|
|
2072
2382
|
),
|
|
2073
|
-
/* @__PURE__ */
|
|
2074
|
-
] }) : /* @__PURE__ */
|
|
2075
|
-
/* @__PURE__ */ jsxs10(
|
|
2076
|
-
|
|
2077
|
-
|
|
2383
|
+
/* @__PURE__ */ jsx12(Hint, { children: tekst.akseptVilkarHint })
|
|
2384
|
+
] }) : /* @__PURE__ */ jsx12(Hint, { children: tekst.akseptIngenVilkar }),
|
|
2385
|
+
/* @__PURE__ */ jsxs10(View11, { style: { flexDirection: "row", alignItems: "flex-start", gap: tema.space.sm }, children: [
|
|
2386
|
+
/* @__PURE__ */ jsx12(Ikon, { navn: "exit-outline", farge: tema.color.textPrimary }),
|
|
2387
|
+
/* @__PURE__ */ jsx12(
|
|
2388
|
+
Text8,
|
|
2389
|
+
{
|
|
2390
|
+
style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body },
|
|
2391
|
+
children: tekst.akseptUtgang
|
|
2392
|
+
}
|
|
2393
|
+
)
|
|
2078
2394
|
] })
|
|
2079
2395
|
] }),
|
|
2080
|
-
/* @__PURE__ */
|
|
2396
|
+
/* @__PURE__ */ jsx12(
|
|
2081
2397
|
Btn,
|
|
2082
2398
|
{
|
|
2083
2399
|
testID: "bli-med",
|
|
@@ -2094,12 +2410,12 @@ function Aksept({
|
|
|
2094
2410
|
|
|
2095
2411
|
// src/program/HvordanGikkDet.tsx
|
|
2096
2412
|
import { useState as useState5 } from "react";
|
|
2097
|
-
import { Modal as Modal3, Pressable as Pressable7, Text as
|
|
2098
|
-
import { jsx as
|
|
2413
|
+
import { Modal as Modal3, Pressable as Pressable7, Text as Text9, TextInput as TextInput2, View as View12 } from "react-native";
|
|
2414
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2099
2415
|
var UTFALL = [
|
|
2100
|
-
{ verdi: "fungerte", ikon: "
|
|
2101
|
-
{ verdi: "delvis", ikon: "
|
|
2102
|
-
{ verdi: "ikke", ikon: "
|
|
2416
|
+
{ verdi: "fungerte", ikon: "checkmark-circle-outline", etikett: tekst.utfallFungerte },
|
|
2417
|
+
{ verdi: "delvis", ikon: "contrast-outline", etikett: tekst.utfallDelvis },
|
|
2418
|
+
{ verdi: "ikke", ikon: "close-circle-outline", etikett: tekst.utfallIkke }
|
|
2103
2419
|
];
|
|
2104
2420
|
var SETNING_MAKS = 140;
|
|
2105
2421
|
function utfallEtikett(verdi) {
|
|
@@ -2115,7 +2431,7 @@ function HvordanGikkDet({
|
|
|
2115
2431
|
const tema = useTema();
|
|
2116
2432
|
const [valgt, setValgt] = useState5();
|
|
2117
2433
|
const [setning, setSetning] = useState5("");
|
|
2118
|
-
return /* @__PURE__ */
|
|
2434
|
+
return /* @__PURE__ */ jsx13(Modal3, { visible: true, transparent: true, animationType: "fade", onRequestClose: onLukk, accessibilityViewIsModal: true, children: /* @__PURE__ */ jsx13(View12, { style: { flex: 1, backgroundColor: tema.color.scrim, justifyContent: "flex-end", padding: tema.space.md }, children: /* @__PURE__ */ jsxs11(
|
|
2119
2435
|
View12,
|
|
2120
2436
|
{
|
|
2121
2437
|
testID: "hvordan-gikk-det",
|
|
@@ -2129,10 +2445,10 @@ function HvordanGikkDet({
|
|
|
2129
2445
|
gap: tema.space.md
|
|
2130
2446
|
},
|
|
2131
2447
|
children: [
|
|
2132
|
-
/* @__PURE__ */
|
|
2133
|
-
/* @__PURE__ */
|
|
2134
|
-
/* @__PURE__ */
|
|
2135
|
-
/* @__PURE__ */
|
|
2448
|
+
/* @__PURE__ */ jsx13(Btn, { variant: "ghost", testID: "hvordan-tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: onLukk }),
|
|
2449
|
+
/* @__PURE__ */ jsx13(Hint, { children: under }),
|
|
2450
|
+
/* @__PURE__ */ jsx13(H, { children: tekst.hvordanGikkDet }),
|
|
2451
|
+
/* @__PURE__ */ jsx13(View12, { testID: "utfall-gruppe", accessibilityRole: "radiogroup", accessibilityLabel: tekst.hvordanGikkDet, style: { flexDirection: "row", gap: tema.space.sm }, children: UTFALL.map((u) => {
|
|
2136
2452
|
const aktiv = valgt === u.verdi;
|
|
2137
2453
|
return /* @__PURE__ */ jsxs11(
|
|
2138
2454
|
Pressable7,
|
|
@@ -2155,16 +2471,16 @@ function HvordanGikkDet({
|
|
|
2155
2471
|
backgroundColor: aktiv ? tema.color.brandBg : tema.color.surfaceRaised
|
|
2156
2472
|
},
|
|
2157
2473
|
children: [
|
|
2158
|
-
/* @__PURE__ */
|
|
2159
|
-
/* @__PURE__ */
|
|
2474
|
+
/* @__PURE__ */ jsx13(Ikon, { navn: u.ikon, farge: tema.color.textPrimary }),
|
|
2475
|
+
/* @__PURE__ */ jsx13(Text9, { style: { color: tema.color.textPrimary, fontSize: tema.font.small, fontWeight: aktiv ? tema.weight.semibold : tema.weight.regular }, children: u.etikett })
|
|
2160
2476
|
]
|
|
2161
2477
|
},
|
|
2162
2478
|
u.verdi
|
|
2163
2479
|
);
|
|
2164
2480
|
}) }),
|
|
2165
2481
|
/* @__PURE__ */ jsxs11(View12, { style: { gap: tema.space.xs }, children: [
|
|
2166
|
-
/* @__PURE__ */
|
|
2167
|
-
/* @__PURE__ */
|
|
2482
|
+
/* @__PURE__ */ jsx13(Text9, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.setningLabel }),
|
|
2483
|
+
/* @__PURE__ */ jsx13(
|
|
2168
2484
|
TextInput2,
|
|
2169
2485
|
{
|
|
2170
2486
|
testID: "hvordan-setning",
|
|
@@ -2191,8 +2507,8 @@ function HvordanGikkDet({
|
|
|
2191
2507
|
}
|
|
2192
2508
|
)
|
|
2193
2509
|
] }),
|
|
2194
|
-
feil ? /* @__PURE__ */
|
|
2195
|
-
/* @__PURE__ */
|
|
2510
|
+
feil ? /* @__PURE__ */ jsx13(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.svarFeil(feil) }) : null,
|
|
2511
|
+
/* @__PURE__ */ jsx13(
|
|
2196
2512
|
Btn,
|
|
2197
2513
|
{
|
|
2198
2514
|
testID: "hvordan-lagre",
|
|
@@ -2213,8 +2529,8 @@ function HvordanGikkDet({
|
|
|
2213
2529
|
|
|
2214
2530
|
// src/program/Oppfolging.tsx
|
|
2215
2531
|
import "react";
|
|
2216
|
-
import { Text as
|
|
2217
|
-
import { Fragment as Fragment2, jsx as
|
|
2532
|
+
import { Text as Text10, View as View13 } from "react-native";
|
|
2533
|
+
import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2218
2534
|
function tarSvar(kind) {
|
|
2219
2535
|
return kind === "hvordan_gikk_det" || kind === "sjekkpunkt";
|
|
2220
2536
|
}
|
|
@@ -2229,7 +2545,7 @@ function Oppfolging({
|
|
|
2229
2545
|
}) {
|
|
2230
2546
|
const tema = useTema();
|
|
2231
2547
|
const art = tarSvar(oppfolging.kind) ? "spoersmaal" : oppfolging.kind === "tilbud_om_utgang" ? "utgang" : "paaminnelse";
|
|
2232
|
-
const ikon = art === "spoersmaal" ? "
|
|
2548
|
+
const ikon = art === "spoersmaal" ? "flask-outline" : art === "utgang" ? "exit-outline" : "calendar-outline";
|
|
2233
2549
|
const hint = art === "spoersmaal" ? tekst.oppfolgingKontakt(kontaktNr, maksKontakter) : art === "utgang" ? tekst.oppfolgingUtgangHint(kontaktNr, maksKontakter) : tekst.oppfolgingPaaminnelseHint(kontaktNr, maksKontakter);
|
|
2234
2550
|
return /* @__PURE__ */ jsxs12(
|
|
2235
2551
|
View13,
|
|
@@ -2246,18 +2562,28 @@ function Oppfolging({
|
|
|
2246
2562
|
},
|
|
2247
2563
|
children: [
|
|
2248
2564
|
/* @__PURE__ */ jsxs12(View13, { style: { flexDirection: "row", gap: tema.space.sm, alignItems: "flex-start" }, children: [
|
|
2249
|
-
/* @__PURE__ */
|
|
2565
|
+
/* @__PURE__ */ jsx14(Ikon, { navn: ikon, farge: tema.color.textPrimary }),
|
|
2250
2566
|
/* @__PURE__ */ jsxs12(View13, { style: { flex: 1, gap: tema.space.xs }, children: [
|
|
2251
|
-
/* @__PURE__ */
|
|
2252
|
-
/* @__PURE__ */
|
|
2567
|
+
/* @__PURE__ */ jsx14(Text10, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: oppfolging.question }),
|
|
2568
|
+
/* @__PURE__ */ jsx14(Hint, { children: hint })
|
|
2253
2569
|
] })
|
|
2254
2570
|
] }),
|
|
2255
|
-
/* @__PURE__ */
|
|
2256
|
-
/* @__PURE__ */
|
|
2257
|
-
/* @__PURE__ */
|
|
2571
|
+
/* @__PURE__ */ jsx14(View13, { style: { flexDirection: "row", gap: tema.space.sm }, children: art === "utgang" ? /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
2572
|
+
/* @__PURE__ */ jsx14(Btn, { grow: true, variant: "secondary", testID: `bli-vaerende-${oppfolging.id}`, label: tekst.bliVaerende, onPress: onSenere }),
|
|
2573
|
+
/* @__PURE__ */ jsx14(
|
|
2574
|
+
Btn,
|
|
2575
|
+
{
|
|
2576
|
+
grow: true,
|
|
2577
|
+
variant: "danger",
|
|
2578
|
+
testID: `gaa-ut-${oppfolging.id}`,
|
|
2579
|
+
ikon: "exit-outline",
|
|
2580
|
+
label: tekst.gaaUtBekreft,
|
|
2581
|
+
onPress: onGaaUt
|
|
2582
|
+
}
|
|
2583
|
+
)
|
|
2258
2584
|
] }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
2259
|
-
/* @__PURE__ */
|
|
2260
|
-
art === "spoersmaal" ? /* @__PURE__ */
|
|
2585
|
+
/* @__PURE__ */ jsx14(Btn, { grow: true, variant: "secondary", testID: `senere-${oppfolging.id}`, label: tekst.senere, onPress: onSenere }),
|
|
2586
|
+
art === "spoersmaal" ? /* @__PURE__ */ jsx14(Btn, { grow: true, testID: `svar-naa-${oppfolging.id}`, label: tekst.svarNaa, onPress: onSvar }) : /* @__PURE__ */ jsx14(Btn, { grow: true, testID: `aapne-oppgavene-${oppfolging.id}`, label: tekst.aapneOppgavene, onPress: onAapneOppgavene })
|
|
2261
2587
|
] }) })
|
|
2262
2588
|
]
|
|
2263
2589
|
}
|
|
@@ -2266,8 +2592,8 @@ function Oppfolging({
|
|
|
2266
2592
|
|
|
2267
2593
|
// src/program/Oppgaver.tsx
|
|
2268
2594
|
import "react";
|
|
2269
|
-
import { Text as
|
|
2270
|
-
import { jsx as
|
|
2595
|
+
import { Text as Text11, View as View14 } from "react-native";
|
|
2596
|
+
import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2271
2597
|
function Oppgaver({
|
|
2272
2598
|
tasks,
|
|
2273
2599
|
completions,
|
|
@@ -2275,7 +2601,7 @@ function Oppgaver({
|
|
|
2275
2601
|
}) {
|
|
2276
2602
|
const tema = useTema();
|
|
2277
2603
|
const ferdig = new Map(completions.map((c) => [c.taskId, c]));
|
|
2278
|
-
return /* @__PURE__ */
|
|
2604
|
+
return /* @__PURE__ */ jsx15(View14, { testID: "oppgaver", accessibilityLabel: tekst.oppgaverTittel, style: { gap: tema.space.sm }, children: [...tasks].sort((a, b) => a.order - b.order).map((o) => {
|
|
2279
2605
|
const c = ferdig.get(o.id);
|
|
2280
2606
|
return /* @__PURE__ */ jsxs13(
|
|
2281
2607
|
View14,
|
|
@@ -2291,13 +2617,27 @@ function Oppgaver({
|
|
|
2291
2617
|
},
|
|
2292
2618
|
children: [
|
|
2293
2619
|
/* @__PURE__ */ jsxs13(View14, { style: { flex: 1, gap: tema.space.xs }, children: [
|
|
2294
|
-
/* @__PURE__ */
|
|
2620
|
+
/* @__PURE__ */ jsx15(Text11, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: o.title }),
|
|
2295
2621
|
/* @__PURE__ */ jsxs13(Hint, { children: [
|
|
2296
2622
|
c ? tekst.oppgaveGjortMed(utfallEtikett(c.outcome)) : `${tekst.oppgaveIkkeBegynt} \xB7 ${tekst.akseptOppgaveTid(o.estimatedMinutes)}`,
|
|
2297
2623
|
c?.text ? ` \xB7 \xAB${c.text}\xBB` : ""
|
|
2298
2624
|
] })
|
|
2299
2625
|
] }),
|
|
2300
|
-
c ?
|
|
2626
|
+
c ? (
|
|
2627
|
+
// Merket er den eneste flaten der ikonet står alene, så etiketten
|
|
2628
|
+
// ligger på containeren: skjermleseren hører utfallet, ikke «hake».
|
|
2629
|
+
/* @__PURE__ */ jsx15(View14, { accessibilityLabel: tekst.oppgaveGjortMed(utfallEtikett(c.outcome)), accessible: true, children: /* @__PURE__ */ jsx15(Ikon, { navn: "checkmark-circle-outline", farge: tema.color.success }) })
|
|
2630
|
+
) : /* @__PURE__ */ jsx15(
|
|
2631
|
+
Btn,
|
|
2632
|
+
{
|
|
2633
|
+
variant: "secondary",
|
|
2634
|
+
testID: `gjort-${o.id}`,
|
|
2635
|
+
ikon: "checkmark-circle-outline",
|
|
2636
|
+
label: tekst.oppgaveGjort,
|
|
2637
|
+
accessibilityLabel: tekst.oppgaveGjortLabel(o.title),
|
|
2638
|
+
onPress: () => onGjort(o)
|
|
2639
|
+
}
|
|
2640
|
+
)
|
|
2301
2641
|
]
|
|
2302
2642
|
},
|
|
2303
2643
|
o.id
|
|
@@ -2306,7 +2646,7 @@ function Oppgaver({
|
|
|
2306
2646
|
}
|
|
2307
2647
|
|
|
2308
2648
|
// src/program/InnspelProgram.tsx
|
|
2309
|
-
import { Fragment as Fragment3, jsx as
|
|
2649
|
+
import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2310
2650
|
function InnspelProgram({
|
|
2311
2651
|
invitationToken,
|
|
2312
2652
|
onEndring,
|
|
@@ -2397,7 +2737,7 @@ function InnspelProgram({
|
|
|
2397
2737
|
const kort = (mine?.pendingFollowUps ?? []).filter((f) => f.programId === program.id && !lagtBort.has(f.id)).sort((a, b) => a.emittedAt.localeCompare(b.emittedAt));
|
|
2398
2738
|
const forsteKontaktNr = Math.max(1, deltakelse.contactsSent - kort.length + 1);
|
|
2399
2739
|
return /* @__PURE__ */ jsxs14(View15, { testID: "program-deltakelse", accessibilityLabel: tekst.deltakelseRegion, style: { gap: tema.space.sm }, children: [
|
|
2400
|
-
kort.map((f, i) => /* @__PURE__ */
|
|
2740
|
+
kort.map((f, i) => /* @__PURE__ */ jsx16(
|
|
2401
2741
|
Oppfolging,
|
|
2402
2742
|
{
|
|
2403
2743
|
oppfolging: f,
|
|
@@ -2414,8 +2754,8 @@ function InnspelProgram({
|
|
|
2414
2754
|
f.id
|
|
2415
2755
|
)),
|
|
2416
2756
|
/* @__PURE__ */ jsxs14(Card, { children: [
|
|
2417
|
-
/* @__PURE__ */
|
|
2418
|
-
/* @__PURE__ */
|
|
2757
|
+
/* @__PURE__ */ jsx16(H, { sub: tekst.deltakelsePeriode(periode(program.opensAt, program.closesAt), deltakelse.contactsSent, program.maxContacts), children: program.name }),
|
|
2758
|
+
/* @__PURE__ */ jsx16(
|
|
2419
2759
|
Oppgaver,
|
|
2420
2760
|
{
|
|
2421
2761
|
tasks: program.tasks,
|
|
@@ -2427,13 +2767,13 @@ function InnspelProgram({
|
|
|
2427
2767
|
}
|
|
2428
2768
|
),
|
|
2429
2769
|
meldFeilFor && onMeldFeil ? /* @__PURE__ */ jsxs14(View15, { style: { gap: tema.space.xs }, children: [
|
|
2430
|
-
/* @__PURE__ */
|
|
2431
|
-
/* @__PURE__ */
|
|
2770
|
+
/* @__PURE__ */ jsx16(Hint, { children: tekst.meldFeilHint }),
|
|
2771
|
+
/* @__PURE__ */ jsx16(
|
|
2432
2772
|
Btn,
|
|
2433
2773
|
{
|
|
2434
2774
|
variant: "secondary",
|
|
2435
2775
|
testID: "meld-feil",
|
|
2436
|
-
ikon: "
|
|
2776
|
+
ikon: "bug-outline",
|
|
2437
2777
|
label: tekst.meldFeil,
|
|
2438
2778
|
onPress: () => {
|
|
2439
2779
|
const task = meldFeilFor;
|
|
@@ -2443,9 +2783,9 @@ function InnspelProgram({
|
|
|
2443
2783
|
}
|
|
2444
2784
|
)
|
|
2445
2785
|
] }) : null,
|
|
2446
|
-
/* @__PURE__ */
|
|
2786
|
+
/* @__PURE__ */ jsx16(Btn, { variant: "ghost", testID: "gaa-ut", ikon: "exit-outline", label: tekst.gaaUt, onPress: () => setViserGaaUt(true) })
|
|
2447
2787
|
] }),
|
|
2448
|
-
dialog ? /* @__PURE__ */
|
|
2788
|
+
dialog ? /* @__PURE__ */ jsx16(
|
|
2449
2789
|
HvordanGikkDet,
|
|
2450
2790
|
{
|
|
2451
2791
|
under: dialog.type === "oppgave" ? dialog.task.title : dialog.oppfolging.question,
|
|
@@ -2455,7 +2795,7 @@ function InnspelProgram({
|
|
|
2455
2795
|
onLukk: () => setDialog(void 0)
|
|
2456
2796
|
}
|
|
2457
2797
|
) : null,
|
|
2458
|
-
viserGaaUt ? /* @__PURE__ */
|
|
2798
|
+
viserGaaUt ? /* @__PURE__ */ jsx16(Modal4, { visible: true, transparent: true, animationType: "fade", onRequestClose: () => setViserGaaUt(false), accessibilityViewIsModal: true, children: /* @__PURE__ */ jsx16(View15, { style: { flex: 1, backgroundColor: tema.color.scrim, justifyContent: "flex-end", padding: tema.space.md }, children: /* @__PURE__ */ jsxs14(
|
|
2459
2799
|
View15,
|
|
2460
2800
|
{
|
|
2461
2801
|
testID: "gaa-ut-dialog",
|
|
@@ -2469,11 +2809,22 @@ function InnspelProgram({
|
|
|
2469
2809
|
gap: tema.space.md
|
|
2470
2810
|
},
|
|
2471
2811
|
children: [
|
|
2472
|
-
/* @__PURE__ */
|
|
2473
|
-
/* @__PURE__ */
|
|
2812
|
+
/* @__PURE__ */ jsx16(H, { children: tekst.gaaUtTittel }),
|
|
2813
|
+
/* @__PURE__ */ jsx16(Text12, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: tekst.gaaUtTekst(program.name) }),
|
|
2474
2814
|
/* @__PURE__ */ jsxs14(View15, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
2475
|
-
/* @__PURE__ */
|
|
2476
|
-
/* @__PURE__ */
|
|
2815
|
+
/* @__PURE__ */ jsx16(Btn, { grow: true, variant: "secondary", testID: "bli-vaerende", label: tekst.bliVaerende, onPress: () => setViserGaaUt(false) }),
|
|
2816
|
+
/* @__PURE__ */ jsx16(
|
|
2817
|
+
Btn,
|
|
2818
|
+
{
|
|
2819
|
+
grow: true,
|
|
2820
|
+
variant: "danger",
|
|
2821
|
+
testID: "bekreft-gaa-ut",
|
|
2822
|
+
ikon: "exit-outline",
|
|
2823
|
+
label: tekst.gaaUtBekreft,
|
|
2824
|
+
disabled: sender,
|
|
2825
|
+
onPress: () => void gaaUt()
|
|
2826
|
+
}
|
|
2827
|
+
)
|
|
2477
2828
|
] })
|
|
2478
2829
|
]
|
|
2479
2830
|
}
|
|
@@ -2497,12 +2848,12 @@ function InnspelProgram({
|
|
|
2497
2848
|
},
|
|
2498
2849
|
children: [
|
|
2499
2850
|
/* @__PURE__ */ jsxs14(View15, { style: { flexDirection: "row", gap: tema.space.sm, alignItems: "flex-start" }, children: [
|
|
2500
|
-
/* @__PURE__ */
|
|
2851
|
+
/* @__PURE__ */ jsx16(Ikon, { navn: "flask-outline", farge: tema.color.textPrimary }),
|
|
2501
2852
|
/* @__PURE__ */ jsxs14(View15, { style: { flex: 1, gap: tema.space.xs }, children: [
|
|
2502
|
-
/* @__PURE__ */
|
|
2503
|
-
/* @__PURE__ */
|
|
2853
|
+
/* @__PURE__ */ jsx16(Text12, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: tekst.invitasjonHva(program.name) }),
|
|
2854
|
+
/* @__PURE__ */ jsx16(Hint, { children: tekst.invitasjonKontakter(program.maxContacts) })
|
|
2504
2855
|
] }),
|
|
2505
|
-
/* @__PURE__ */
|
|
2856
|
+
/* @__PURE__ */ jsx16(
|
|
2506
2857
|
Pressable8,
|
|
2507
2858
|
{
|
|
2508
2859
|
testID: "avvis-invitasjon",
|
|
@@ -2510,16 +2861,16 @@ function InnspelProgram({
|
|
|
2510
2861
|
accessibilityLabel: tekst.avvisInvitasjon,
|
|
2511
2862
|
onPress: () => setAvvist(true),
|
|
2512
2863
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
2513
|
-
children: /* @__PURE__ */
|
|
2864
|
+
children: /* @__PURE__ */ jsx16(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
2514
2865
|
}
|
|
2515
2866
|
)
|
|
2516
2867
|
] }),
|
|
2517
|
-
feil && !viserAksept ? /* @__PURE__ */
|
|
2518
|
-
/* @__PURE__ */
|
|
2868
|
+
feil && !viserAksept ? /* @__PURE__ */ jsx16(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.akseptFeil(feil) }) : null,
|
|
2869
|
+
/* @__PURE__ */ jsx16(Btn, { variant: "secondary", testID: "les-mer", label: tekst.lesMer, onPress: () => setViserAksept(true) })
|
|
2519
2870
|
]
|
|
2520
2871
|
}
|
|
2521
2872
|
),
|
|
2522
|
-
viserAksept ? /* @__PURE__ */
|
|
2873
|
+
viserAksept ? /* @__PURE__ */ jsx16(
|
|
2523
2874
|
Aksept,
|
|
2524
2875
|
{
|
|
2525
2876
|
program,
|