@innspel/react-native 0.7.0 → 0.8.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 +840 -503
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -50
- package/dist/index.d.ts +43 -50
- package/dist/index.js +695 -358
- 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,37 @@ 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
|
-
mineUnder: "Status og hva du kan vente deg
|
|
817
|
+
mineUnder: "Status og hva du kan vente deg.",
|
|
570
818
|
mineTom: "Du har ikke sendt noe enn\xE5.",
|
|
571
819
|
mineIkkeSendt: "Ikke sendt enn\xE5",
|
|
572
|
-
mineSak: (nr) => `Sak ${nr}`,
|
|
820
|
+
mineSak: (nr) => `Sak ${saksnr(nr)}`,
|
|
821
|
+
/** «Feil · sak 2041» — sporet først, aldri rå id og aldri kontraktens type (DD-50). */
|
|
822
|
+
sakHode: (spor, nr) => `${stor(spor)} \xB7 sak ${saksnr(nr)}`,
|
|
573
823
|
// Leietakeren fjernet vedlegget. Bare AT — aldri hvorfor, av hvem eller når.
|
|
574
824
|
bildeFjernet: "Bildet er fjernet.",
|
|
575
825
|
svarFra: (leietaker) => `Svar fra ${leietaker}`,
|
|
576
826
|
svarFraGenerisk: "Svar",
|
|
577
827
|
sendNytt: "Send nytt innspill",
|
|
828
|
+
/** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
|
|
829
|
+
sendForste: "Send innspill",
|
|
578
830
|
// 3a — invitasjonsbanneret (DD-12)
|
|
579
831
|
invitasjonRegion: "Invitasjon til betaprogram",
|
|
580
832
|
invitasjonHva: (navn) => `Vil du teste \xAB${navn}\xBB?`,
|
|
@@ -602,7 +854,7 @@ var tekst = {
|
|
|
602
854
|
akseptFeil: (arsak) => `Kunne ikke bli med: ${arsak}`,
|
|
603
855
|
// 3c (M3.1-delen) — deltakelsen og «Gå ut» (DD-36)
|
|
604
856
|
deltakelseRegion: "Ditt betaprogram",
|
|
605
|
-
deltakelsePeriode: (periode2, brukt, maks) => `${periode2} \xB7 ${
|
|
857
|
+
deltakelsePeriode: (periode2, brukt, maks) => `${periode2} \xB7 Vi tar kontakt maks ${maks} ganger \u2014 ${brukt} brukt`,
|
|
606
858
|
deltakelseOppgaverKommer: "Oppgavene kan gj\xF8res n\xE5r det passer deg.",
|
|
607
859
|
gaaUt: "G\xE5 ut av programmet",
|
|
608
860
|
gaaUtTittel: "G\xE5 ut av programmet?",
|
|
@@ -614,11 +866,11 @@ var tekst = {
|
|
|
614
866
|
oppgaveIkkeBegynt: "Ikke begynt",
|
|
615
867
|
oppgaveGjort: "Gjort",
|
|
616
868
|
oppgaveGjortLabel: (tittel) => `Gjort: ${tittel}`,
|
|
617
|
-
oppgaveGjortMed: (utfall) => `
|
|
869
|
+
oppgaveGjortMed: (utfall) => `Pr\xF8vd \xB7 ${utfall}`,
|
|
618
870
|
hvordanGikkDet: "Hvordan gikk det?",
|
|
619
871
|
utfallFungerte: "Fungerte",
|
|
620
|
-
utfallDelvis: "
|
|
621
|
-
utfallIkke: "
|
|
872
|
+
utfallDelvis: "Fungerte delvis",
|
|
873
|
+
utfallIkke: "Fungerte ikke",
|
|
622
874
|
setningLabel: "Vil du si \xE9n setning om det? (valgfritt)",
|
|
623
875
|
setningPlaceholder: "Kopien kom, men rullesjefen manglet p\xE5 torsdag.",
|
|
624
876
|
lagre: "Lagre",
|
|
@@ -638,24 +890,16 @@ var tekst = {
|
|
|
638
890
|
// Felles
|
|
639
891
|
tilbake: "Tilbake",
|
|
640
892
|
lukk: "Lukk",
|
|
641
|
-
venterPaaNett: "Venter p\xE5 nett \u2014 sendes automatisk"
|
|
893
|
+
venterPaaNett: "Venter p\xE5 nett \u2014 sendes automatisk",
|
|
894
|
+
feil: "feil",
|
|
895
|
+
onske: "\xF8nske"
|
|
642
896
|
};
|
|
643
897
|
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."
|
|
898
|
+
venterNett: "Sendes automatisk n\xE5r du er p\xE5 nett \u2014 kvitteringen kommer da."
|
|
655
899
|
};
|
|
656
900
|
|
|
657
901
|
// src/widget/Felt.tsx
|
|
658
|
-
import { jsx as
|
|
902
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
659
903
|
function Felt({
|
|
660
904
|
spor,
|
|
661
905
|
verdi,
|
|
@@ -670,6 +914,8 @@ function Felt({
|
|
|
670
914
|
funn,
|
|
671
915
|
onSend,
|
|
672
916
|
sender,
|
|
917
|
+
harFeil,
|
|
918
|
+
offline,
|
|
673
919
|
onSkjermbilde,
|
|
674
920
|
onVelgBilde,
|
|
675
921
|
bildeNotat,
|
|
@@ -722,8 +968,8 @@ function Felt({
|
|
|
722
968
|
paddingRight: tema.space.xs
|
|
723
969
|
},
|
|
724
970
|
children: [
|
|
725
|
-
/* @__PURE__ */
|
|
726
|
-
/* @__PURE__ */
|
|
971
|
+
/* @__PURE__ */ jsx3(Text2, { style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.small }, children: tekst.lenketTil(lenketTil.title) }),
|
|
972
|
+
/* @__PURE__ */ jsx3(
|
|
727
973
|
Pressable2,
|
|
728
974
|
{
|
|
729
975
|
testID: "fjern-lenke",
|
|
@@ -731,7 +977,7 @@ function Felt({
|
|
|
731
977
|
accessibilityLabel: tekst.fjernLenke,
|
|
732
978
|
onPress: onFjernLenke,
|
|
733
979
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
734
|
-
children: /* @__PURE__ */
|
|
980
|
+
children: /* @__PURE__ */ jsx3(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
735
981
|
}
|
|
736
982
|
)
|
|
737
983
|
]
|
|
@@ -747,7 +993,7 @@ function Felt({
|
|
|
747
993
|
padding: tema.space.md
|
|
748
994
|
},
|
|
749
995
|
children: [
|
|
750
|
-
/* @__PURE__ */
|
|
996
|
+
/* @__PURE__ */ jsx3(
|
|
751
997
|
Text2,
|
|
752
998
|
{
|
|
753
999
|
accessibilityRole: "alert",
|
|
@@ -762,7 +1008,7 @@ function Felt({
|
|
|
762
1008
|
}
|
|
763
1009
|
),
|
|
764
1010
|
/* @__PURE__ */ jsxs2(View2, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
765
|
-
/* @__PURE__ */
|
|
1011
|
+
/* @__PURE__ */ jsx3(
|
|
766
1012
|
Btn,
|
|
767
1013
|
{
|
|
768
1014
|
grow: true,
|
|
@@ -772,7 +1018,7 @@ function Felt({
|
|
|
772
1018
|
onPress: () => onEndre(verdi.slice(0, uavklart.start) + verdi.slice(uavklart.end))
|
|
773
1019
|
}
|
|
774
1020
|
),
|
|
775
|
-
/* @__PURE__ */
|
|
1021
|
+
/* @__PURE__ */ jsx3(
|
|
776
1022
|
Btn,
|
|
777
1023
|
{
|
|
778
1024
|
grow: true,
|
|
@@ -783,12 +1029,12 @@ function Felt({
|
|
|
783
1029
|
}
|
|
784
1030
|
)
|
|
785
1031
|
] }),
|
|
786
|
-
/* @__PURE__ */
|
|
1032
|
+
/* @__PURE__ */ jsx3(Hint, { children: tekst.monsterForklaring })
|
|
787
1033
|
]
|
|
788
1034
|
}
|
|
789
1035
|
) : null,
|
|
790
|
-
/* @__PURE__ */
|
|
791
|
-
/* @__PURE__ */
|
|
1036
|
+
/* @__PURE__ */ jsx3(H, { children: spor === "onske" ? tekst.feltLabelOnske : tekst.feltLabelFeil }),
|
|
1037
|
+
/* @__PURE__ */ jsx3(
|
|
792
1038
|
TextInput,
|
|
793
1039
|
{
|
|
794
1040
|
testID: "innspill-tekst",
|
|
@@ -848,9 +1094,9 @@ function Felt({
|
|
|
848
1094
|
paddingRight: tema.space.xs
|
|
849
1095
|
},
|
|
850
1096
|
children: [
|
|
851
|
-
/* @__PURE__ */
|
|
852
|
-
/* @__PURE__ */
|
|
853
|
-
/* @__PURE__ */
|
|
1097
|
+
/* @__PURE__ */ jsx3(Ikon, { navn: "image-outline", storrelse: "minste", farge: tema.color.textPrimary }),
|
|
1098
|
+
/* @__PURE__ */ jsx3(Text2, { style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.small }, children: tekst.bildeLagtVed }),
|
|
1099
|
+
/* @__PURE__ */ jsx3(
|
|
854
1100
|
Pressable2,
|
|
855
1101
|
{
|
|
856
1102
|
testID: "fjern-vedlegg",
|
|
@@ -858,38 +1104,38 @@ function Felt({
|
|
|
858
1104
|
accessibilityLabel: tekst.fjernSkjermbilde,
|
|
859
1105
|
onPress: onFjernVedlegg,
|
|
860
1106
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
861
|
-
children: /* @__PURE__ */
|
|
1107
|
+
children: /* @__PURE__ */ jsx3(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
862
1108
|
}
|
|
863
1109
|
)
|
|
864
1110
|
]
|
|
865
1111
|
}
|
|
866
1112
|
) : onSkjermbilde || onVelgBilde ? /* @__PURE__ */ jsxs2(View2, { style: { gap: tema.space.sm }, children: [
|
|
867
|
-
onSkjermbilde ? /* @__PURE__ */
|
|
1113
|
+
onSkjermbilde ? /* @__PURE__ */ jsx3(
|
|
868
1114
|
Btn,
|
|
869
1115
|
{
|
|
870
1116
|
variant: "secondary",
|
|
871
1117
|
testID: "legg-ved-skjermbilde",
|
|
872
|
-
ikon: "
|
|
1118
|
+
ikon: "camera-outline",
|
|
873
1119
|
label: tekst.leggVedSkjermbilde,
|
|
874
1120
|
hint: tekst.leggVedHint,
|
|
875
1121
|
onPress: onSkjermbilde
|
|
876
1122
|
}
|
|
877
1123
|
) : null,
|
|
878
|
-
onVelgBilde ? /* @__PURE__ */
|
|
1124
|
+
onVelgBilde ? /* @__PURE__ */ jsx3(
|
|
879
1125
|
Btn,
|
|
880
1126
|
{
|
|
881
1127
|
variant: "secondary",
|
|
882
1128
|
testID: "velg-bilde",
|
|
883
|
-
ikon: "
|
|
1129
|
+
ikon: "images-outline",
|
|
884
1130
|
label: tekst.velgBilde,
|
|
885
1131
|
hint: tekst.velgBildeHint,
|
|
886
1132
|
onPress: onVelgBilde
|
|
887
1133
|
}
|
|
888
1134
|
) : null,
|
|
889
|
-
bildeNotat ? /* @__PURE__ */
|
|
1135
|
+
bildeNotat ? /* @__PURE__ */ jsx3(View2, { testID: "bilde-notat", children: /* @__PURE__ */ jsx3(Hint, { children: bildeNotat }) }) : null
|
|
890
1136
|
] }) : null,
|
|
891
1137
|
/* @__PURE__ */ jsxs2(View2, { style: { borderTopWidth: tema.hairline, borderTopColor: tema.color.border, paddingTop: tema.space.sm }, children: [
|
|
892
|
-
/* @__PURE__ */
|
|
1138
|
+
/* @__PURE__ */ jsx3(
|
|
893
1139
|
Pressable2,
|
|
894
1140
|
{
|
|
895
1141
|
testID: "kontekst-bryter",
|
|
@@ -898,11 +1144,19 @@ function Felt({
|
|
|
898
1144
|
accessibilityLabel: `${tekst.kontekstLinje}${apen ? "" : tekst.kontekstVis}`,
|
|
899
1145
|
onPress: () => setApen((a) => !a),
|
|
900
1146
|
style: { minHeight: tema.touch, justifyContent: "center" },
|
|
901
|
-
children: /* @__PURE__ */ jsxs2(
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
1147
|
+
children: /* @__PURE__ */ jsxs2(View2, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1148
|
+
/* @__PURE__ */ jsx3(
|
|
1149
|
+
Ikon,
|
|
1150
|
+
{
|
|
1151
|
+
navn: apen ? "chevron-up-outline" : "chevron-down-outline",
|
|
1152
|
+
storrelse: "minste",
|
|
1153
|
+
farge: tema.color.textSecondary
|
|
1154
|
+
}
|
|
1155
|
+
),
|
|
1156
|
+
/* @__PURE__ */ jsxs2(Text2, { style: { flex: 1, color: tema.color.textSecondary, fontSize: tema.font.small }, children: [
|
|
1157
|
+
tekst.kontekstLinje,
|
|
1158
|
+
apen ? "" : tekst.kontekstVis
|
|
1159
|
+
] })
|
|
906
1160
|
] })
|
|
907
1161
|
}
|
|
908
1162
|
),
|
|
@@ -919,9 +1173,9 @@ function Felt({
|
|
|
919
1173
|
borderBottomColor: tema.color.border
|
|
920
1174
|
},
|
|
921
1175
|
children: [
|
|
922
|
-
/* @__PURE__ */
|
|
923
|
-
/* @__PURE__ */
|
|
924
|
-
/* @__PURE__ */
|
|
1176
|
+
/* @__PURE__ */ jsx3(Text2, { style: { color: tema.color.textMuted, fontSize: tema.font.small, minWidth: tema.touch * 2 }, children: l.etikett }),
|
|
1177
|
+
/* @__PURE__ */ jsx3(Text2, { style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.small }, children: l.verdi }),
|
|
1178
|
+
/* @__PURE__ */ jsx3(
|
|
925
1179
|
Pressable2,
|
|
926
1180
|
{
|
|
927
1181
|
testID: `fjern-${l.felt}`,
|
|
@@ -929,9 +1183,9 @@ function Felt({
|
|
|
929
1183
|
accessibilityLabel: `${tekst.kontekstFjern} ${l.etikett.toLowerCase()} fra innsendingen`,
|
|
930
1184
|
onPress: () => onFjernKontekst(l.felt),
|
|
931
1185
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
932
|
-
children: /* @__PURE__ */ jsxs2(
|
|
933
|
-
"
|
|
934
|
-
tekst.kontekstFjern
|
|
1186
|
+
children: /* @__PURE__ */ jsxs2(View2, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1187
|
+
/* @__PURE__ */ jsx3(Ikon, { navn: "close-outline", storrelse: "minste", farge: tema.color.textSecondary }),
|
|
1188
|
+
/* @__PURE__ */ jsx3(Text2, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.kontekstFjern })
|
|
935
1189
|
] })
|
|
936
1190
|
}
|
|
937
1191
|
)
|
|
@@ -939,18 +1193,19 @@ function Felt({
|
|
|
939
1193
|
},
|
|
940
1194
|
l.felt
|
|
941
1195
|
)),
|
|
942
|
-
/* @__PURE__ */
|
|
1196
|
+
/* @__PURE__ */ jsx3(View2, { style: { paddingTop: tema.space.sm }, children: /* @__PURE__ */ jsx3(Hint, { children: tekst.kontekstAldri }) })
|
|
943
1197
|
] }) : null
|
|
944
1198
|
] })
|
|
945
1199
|
]
|
|
946
1200
|
}
|
|
947
1201
|
),
|
|
948
|
-
/* @__PURE__ */
|
|
1202
|
+
/* @__PURE__ */ jsx3(View2, { testID: "skjema-fot", style: { flexGrow: 1, flexShrink: 0, justifyContent: "flex-end" }, children: /* @__PURE__ */ jsx3(
|
|
949
1203
|
Btn,
|
|
950
1204
|
{
|
|
951
1205
|
testID: "send",
|
|
952
|
-
label:
|
|
1206
|
+
label: sender ? tekst.sender : harFeil ? tekst.provIgjen : offline ? tekst.offlineLagre : tekst.send,
|
|
953
1207
|
disabled: forKort || sender,
|
|
1208
|
+
busy: sender,
|
|
954
1209
|
hint: forKort ? tekst.forKort(minTextLength) : harVedlegg ? tekst.sendHintMedBilde : void 0,
|
|
955
1210
|
onPress: onSend
|
|
956
1211
|
}
|
|
@@ -961,7 +1216,7 @@ function Felt({
|
|
|
961
1216
|
// src/widget/Valg.tsx
|
|
962
1217
|
import "react";
|
|
963
1218
|
import { Pressable as Pressable3, Text as Text3, View as View3 } from "react-native";
|
|
964
|
-
import { jsx as
|
|
1219
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
965
1220
|
function Valg({ onVelg }) {
|
|
966
1221
|
const tema = useTema();
|
|
967
1222
|
const flate = (spor, ikon, label, under) => /* @__PURE__ */ jsxs3(
|
|
@@ -984,8 +1239,8 @@ function Valg({ onVelg }) {
|
|
|
984
1239
|
padding: tema.space.md
|
|
985
1240
|
},
|
|
986
1241
|
children: [
|
|
987
|
-
/* @__PURE__ */
|
|
988
|
-
/* @__PURE__ */
|
|
1242
|
+
/* @__PURE__ */ jsx4(Ikon, { navn: ikon, storrelse: "stor", farge: tema.color.textPrimary }),
|
|
1243
|
+
/* @__PURE__ */ jsx4(
|
|
989
1244
|
Text3,
|
|
990
1245
|
{
|
|
991
1246
|
style: {
|
|
@@ -997,15 +1252,15 @@ function Valg({ onVelg }) {
|
|
|
997
1252
|
children: label
|
|
998
1253
|
}
|
|
999
1254
|
),
|
|
1000
|
-
/* @__PURE__ */
|
|
1255
|
+
/* @__PURE__ */ jsx4(Text3, { style: { color: tema.color.textMuted, fontSize: tema.font.small, textAlign: "center" }, children: under })
|
|
1001
1256
|
]
|
|
1002
1257
|
}
|
|
1003
1258
|
);
|
|
1004
1259
|
return /* @__PURE__ */ jsxs3(View3, { style: { flex: 1, gap: tema.space.lg }, children: [
|
|
1005
|
-
/* @__PURE__ */
|
|
1006
|
-
/* @__PURE__ */
|
|
1007
|
-
flate("feil", "
|
|
1008
|
-
flate("onske", "
|
|
1260
|
+
/* @__PURE__ */ jsx4(H, { children: tekst.valgTittel }),
|
|
1261
|
+
/* @__PURE__ */ jsx4(View3, { style: { flex: 1, justifyContent: "flex-end" }, children: /* @__PURE__ */ jsxs3(View3, { style: { flexDirection: "row", gap: tema.space.md }, children: [
|
|
1262
|
+
flate("feil", "bug-outline", tekst.sporFeil, tekst.sporFeilUnder),
|
|
1263
|
+
flate("onske", "bulb-outline", tekst.sporOnske, tekst.sporOnskeUnder)
|
|
1009
1264
|
] }) })
|
|
1010
1265
|
] });
|
|
1011
1266
|
}
|
|
@@ -1013,11 +1268,13 @@ function Valg({ onVelg }) {
|
|
|
1013
1268
|
// src/widget/KjenteFeil.tsx
|
|
1014
1269
|
import "react";
|
|
1015
1270
|
import { ActivityIndicator, ScrollView as ScrollView2, Text as Text4, View as View4 } from "react-native";
|
|
1016
|
-
import { jsx as
|
|
1271
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1272
|
+
var MAKS_KORT = 3;
|
|
1017
1273
|
function KjenteFeil({
|
|
1018
1274
|
kort,
|
|
1019
1275
|
spor,
|
|
1020
1276
|
laster,
|
|
1277
|
+
sender,
|
|
1021
1278
|
onJaOgsa,
|
|
1022
1279
|
onLigner,
|
|
1023
1280
|
onNei
|
|
@@ -1025,24 +1282,25 @@ function KjenteFeil({
|
|
|
1025
1282
|
const tema = useTema();
|
|
1026
1283
|
if (laster) {
|
|
1027
1284
|
return /* @__PURE__ */ jsxs4(View4, { style: { flex: 1, gap: tema.space.md }, children: [
|
|
1028
|
-
/* @__PURE__ */
|
|
1029
|
-
/* @__PURE__ */
|
|
1285
|
+
/* @__PURE__ */ jsx5(H, { sub: spor === "onske" ? tekst.kjenteFeilUnderOnske : tekst.kjenteFeilUnderFeil, children: spor === "onske" ? tekst.kjenteFeilTittelOnske : tekst.kjenteFeilTittelFeil }),
|
|
1286
|
+
/* @__PURE__ */ jsx5(ActivityIndicator, { accessibilityLabel: "Sjekker kjente feil", color: tema.color.textSecondary })
|
|
1030
1287
|
] });
|
|
1031
1288
|
}
|
|
1032
1289
|
return /* @__PURE__ */ jsxs4(View4, { testID: "kjente-feil", style: { flexGrow: 1, flexShrink: 1, gap: tema.space.md }, children: [
|
|
1033
|
-
/* @__PURE__ */
|
|
1034
|
-
/* @__PURE__ */
|
|
1290
|
+
/* @__PURE__ */ jsx5(H, { sub: spor === "onske" ? tekst.kjenteFeilUnderOnske : tekst.kjenteFeilUnderFeil, children: spor === "onske" ? tekst.kjenteFeilTittelOnske : tekst.kjenteFeilTittelFeil }),
|
|
1291
|
+
/* @__PURE__ */ jsx5(
|
|
1035
1292
|
ScrollView2,
|
|
1036
1293
|
{
|
|
1037
1294
|
testID: "kjente-feil-liste",
|
|
1038
1295
|
style: { flexGrow: 0, flexShrink: 1 },
|
|
1039
1296
|
contentContainerStyle: { gap: tema.space.md },
|
|
1040
1297
|
keyboardShouldPersistTaps: "handled",
|
|
1041
|
-
children: kort.map((k) => {
|
|
1298
|
+
children: kort.slice(0, MAKS_KORT).map((k) => {
|
|
1299
|
+
const o = knownIssueStatus[k.status] ?? knownIssueStatus.aktiv;
|
|
1042
1300
|
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
|
|
1301
|
+
const kontekst = versjon ? `${k.title}. ${o.etikett}. ${versjon}` : `${k.title}. ${o.etikett}`;
|
|
1044
1302
|
return /* @__PURE__ */ jsxs4(Card, { children: [
|
|
1045
|
-
/* @__PURE__ */
|
|
1303
|
+
/* @__PURE__ */ jsx5(
|
|
1046
1304
|
Text4,
|
|
1047
1305
|
{
|
|
1048
1306
|
style: {
|
|
@@ -1069,26 +1327,24 @@ function KjenteFeil({
|
|
|
1069
1327
|
]
|
|
1070
1328
|
}
|
|
1071
1329
|
) : null,
|
|
1072
|
-
|
|
1073
|
-
StatusPill,
|
|
1074
|
-
{
|
|
1075
|
-
|
|
1076
|
-
etikett: versjon,
|
|
1077
|
-
farge: k.status === "fikset" ? "success" : "info"
|
|
1078
|
-
}
|
|
1079
|
-
) : null,
|
|
1330
|
+
/* @__PURE__ */ jsxs4(View4, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.sm, flexWrap: "wrap" }, children: [
|
|
1331
|
+
/* @__PURE__ */ jsx5(StatusPill, { ikon: o.ikon, etikett: o.etikett, fg: o.fg, bg: o.bg }),
|
|
1332
|
+
versjon ? /* @__PURE__ */ jsx5(Text4, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: versjon }) : null
|
|
1333
|
+
] }),
|
|
1080
1334
|
/* @__PURE__ */ jsxs4(View4, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
1081
|
-
/* @__PURE__ */
|
|
1335
|
+
/* @__PURE__ */ jsx5(
|
|
1082
1336
|
Btn,
|
|
1083
1337
|
{
|
|
1084
1338
|
grow: true,
|
|
1085
1339
|
testID: `ja-ogsa-${k.id}`,
|
|
1086
1340
|
label: tekst.svarJa,
|
|
1087
1341
|
accessibilityLabel: `${tekst.svarJa}. ${kontekst}`,
|
|
1342
|
+
disabled: sender,
|
|
1343
|
+
busy: sender,
|
|
1088
1344
|
onPress: () => onJaOgsa(k)
|
|
1089
1345
|
}
|
|
1090
1346
|
),
|
|
1091
|
-
/* @__PURE__ */
|
|
1347
|
+
/* @__PURE__ */ jsx5(
|
|
1092
1348
|
Btn,
|
|
1093
1349
|
{
|
|
1094
1350
|
grow: true,
|
|
@@ -1096,6 +1352,7 @@ function KjenteFeil({
|
|
|
1096
1352
|
testID: `ligner-${k.id}`,
|
|
1097
1353
|
label: tekst.svarLigner,
|
|
1098
1354
|
accessibilityLabel: `${tekst.svarLigner}. ${kontekst}`,
|
|
1355
|
+
disabled: sender,
|
|
1099
1356
|
onPress: () => onLigner(k)
|
|
1100
1357
|
}
|
|
1101
1358
|
)
|
|
@@ -1104,46 +1361,79 @@ function KjenteFeil({
|
|
|
1104
1361
|
})
|
|
1105
1362
|
}
|
|
1106
1363
|
),
|
|
1107
|
-
/* @__PURE__ */
|
|
1364
|
+
/* @__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
1365
|
] });
|
|
1109
1366
|
}
|
|
1110
1367
|
|
|
1111
1368
|
// src/widget/Kvittering.tsx
|
|
1112
1369
|
import "react";
|
|
1113
1370
|
import { Text as Text5, View as View5 } from "react-native";
|
|
1114
|
-
|
|
1371
|
+
|
|
1372
|
+
// src/widget/status.ts
|
|
1373
|
+
function formaterFrist(iso) {
|
|
1374
|
+
const d = new Date(iso);
|
|
1375
|
+
if (Number.isNaN(d.getTime())) return iso;
|
|
1376
|
+
return new Intl.DateTimeFormat("nb-NO", { day: "numeric", month: "long" }).format(d);
|
|
1377
|
+
}
|
|
1378
|
+
function statusVisning(status, type, deadlineAt) {
|
|
1379
|
+
const o = submissionStatus[status];
|
|
1380
|
+
const spor = type === "onske" ? "onske" : "feil";
|
|
1381
|
+
return {
|
|
1382
|
+
ikon: o.ikon,
|
|
1383
|
+
etikett: o.etikett[spor],
|
|
1384
|
+
fg: o.fg,
|
|
1385
|
+
bg: o.bg,
|
|
1386
|
+
lofte: settInnFrist(o.lofte[spor], deadlineAt)
|
|
1387
|
+
};
|
|
1388
|
+
}
|
|
1389
|
+
function settInnFrist(mal, deadlineAt) {
|
|
1390
|
+
if (!mal.includes("{frist}")) return mal;
|
|
1391
|
+
return deadlineAt ? mal.replace("{frist}", formaterFrist(deadlineAt)) : lofteUtenFrist;
|
|
1392
|
+
}
|
|
1393
|
+
var venterVisning = {
|
|
1394
|
+
ikon: "cloud-offline-outline",
|
|
1395
|
+
etikett: "Venter p\xE5 nett",
|
|
1396
|
+
fg: "textSecondary",
|
|
1397
|
+
bg: "neutralBg",
|
|
1398
|
+
lofte: lofte.venterNett
|
|
1399
|
+
};
|
|
1400
|
+
|
|
1401
|
+
// src/widget/Kvittering.tsx
|
|
1402
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1115
1403
|
function Kvittering({
|
|
1116
1404
|
art,
|
|
1117
1405
|
saksnummer,
|
|
1118
1406
|
vedlegg,
|
|
1407
|
+
frist,
|
|
1119
1408
|
onLukk
|
|
1120
1409
|
}) {
|
|
1121
1410
|
const tema = useTema();
|
|
1122
1411
|
const innhold = {
|
|
1123
1412
|
feil: { h: tekst.kvitteringSendt, p: tekst.kvitteringFeil },
|
|
1124
|
-
|
|
1413
|
+
// Løftet er NØYAKTIG det «Mine innspill» og panelet viser for «Vurderes»:
|
|
1414
|
+
// det leses fra temaet, så kvitteringen og statusen ikke kan si to ting.
|
|
1415
|
+
onske: { h: tekst.kvitteringSendt, p: statusVisning("vurderes", "onske", frist).lofte },
|
|
1125
1416
|
jaOgsa: { h: tekst.kvitteringRegistrert, p: tekst.kvitteringJaOgsa },
|
|
1126
1417
|
// Køet offline: kvitteringen kan IKKE love svar på noe som ikke er sendt
|
|
1127
1418
|
// (DD-41 presiserer DD-07). Den lover bare at det sendes.
|
|
1128
|
-
k\u00F8: { h: tekst.
|
|
1419
|
+
k\u00F8: { h: tekst.koKvitteringTittel, p: tekst.offlineBanner }
|
|
1129
1420
|
}[art];
|
|
1130
1421
|
const overskrift = vedlegg === "feilet" ? tekst.kvitteringVedleggFeilet : innhold.h;
|
|
1131
1422
|
const brodtekst = vedlegg === "feilet" ? `${tekst.tekstenErLagret} ${innhold.p}` : innhold.p;
|
|
1132
1423
|
return /* @__PURE__ */ jsxs5(View5, { style: { flex: 1, justifyContent: "center", gap: tema.space.lg }, children: [
|
|
1133
1424
|
/* @__PURE__ */ jsxs5(View5, { style: { alignItems: "center", gap: tema.space.md }, children: [
|
|
1134
|
-
/* @__PURE__ */
|
|
1135
|
-
|
|
1425
|
+
/* @__PURE__ */ jsx6(
|
|
1426
|
+
Ikon,
|
|
1136
1427
|
{
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
children: art === "k\xF8" ? "\u21C5" : "\u2713"
|
|
1428
|
+
navn: art === "k\xF8" ? "swap-vertical-outline" : "checkmark-circle-outline",
|
|
1429
|
+
storrelse: "stor",
|
|
1430
|
+
farge: art === "k\xF8" ? tema.color.neutral : tema.color.success
|
|
1141
1431
|
}
|
|
1142
1432
|
),
|
|
1143
|
-
/* @__PURE__ */
|
|
1144
|
-
vedlegg === "feilet" ? /* @__PURE__ */
|
|
1145
|
-
vedlegg === "forkastet" ? /* @__PURE__ */
|
|
1146
|
-
/* @__PURE__ */
|
|
1433
|
+
/* @__PURE__ */ jsx6(H, { children: overskrift }),
|
|
1434
|
+
vedlegg === "feilet" ? /* @__PURE__ */ jsx6(Banner, { ikon: "warning-outline", tone: "warning", children: tekst.vedleggFeiletBanner }) : null,
|
|
1435
|
+
vedlegg === "forkastet" ? /* @__PURE__ */ jsx6(Banner, { ikon: "image-outline", tone: "info", children: tekst.offlineUtenBilde }) : null,
|
|
1436
|
+
/* @__PURE__ */ jsx6(
|
|
1147
1437
|
Text5,
|
|
1148
1438
|
{
|
|
1149
1439
|
testID: "kvittering-tekst",
|
|
@@ -1158,72 +1448,16 @@ function Kvittering({
|
|
|
1158
1448
|
children: brodtekst
|
|
1159
1449
|
}
|
|
1160
1450
|
),
|
|
1161
|
-
saksnummer ? /* @__PURE__ */
|
|
1451
|
+
saksnummer ? /* @__PURE__ */ jsx6(Hint, { children: vedlegg === "feilet" ? tekst.saksnummerUtenVedlegg(saksnummer) : tekst.saksnummer(saksnummer) }) : null
|
|
1162
1452
|
] }),
|
|
1163
|
-
/* @__PURE__ */
|
|
1453
|
+
/* @__PURE__ */ jsx6(Btn, { testID: "tilbake-til-appen", label: tekst.tilbakeTilAppen, onPress: onLukk })
|
|
1164
1454
|
] });
|
|
1165
1455
|
}
|
|
1166
1456
|
|
|
1167
1457
|
// src/widget/MineInnspill.tsx
|
|
1168
1458
|
import "react";
|
|
1169
1459
|
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";
|
|
1460
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1227
1461
|
function MineInnspill({
|
|
1228
1462
|
rader,
|
|
1229
1463
|
laster,
|
|
@@ -1232,20 +1466,15 @@ function MineInnspill({
|
|
|
1232
1466
|
}) {
|
|
1233
1467
|
const tema = useTema();
|
|
1234
1468
|
return /* @__PURE__ */ jsxs6(View6, { style: { flex: 1, gap: tema.space.md }, children: [
|
|
1235
|
-
/* @__PURE__ */
|
|
1236
|
-
laster ? /* @__PURE__ */
|
|
1469
|
+
/* @__PURE__ */ jsx7(H, { sub: tekst.mineUnder, children: tekst.mineTittel }),
|
|
1470
|
+
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
1471
|
const venter = rad.pending === true;
|
|
1238
1472
|
const v = venter ? venterVisning : statusVisning(rad.status, rad.type, rad.deadlineAt);
|
|
1239
1473
|
const nokkel = venter ? rad.clientRef : rad.id;
|
|
1240
1474
|
const svar = venter ? void 0 : rad.reply;
|
|
1241
1475
|
return /* @__PURE__ */ jsxs6(Card, { dashed: venter, children: [
|
|
1242
|
-
/* @__PURE__ */
|
|
1243
|
-
|
|
1244
|
-
" \xB7",
|
|
1245
|
-
" ",
|
|
1246
|
-
rad.type === "onske" ? "\xF8nske" : "feil"
|
|
1247
|
-
] }),
|
|
1248
|
-
/* @__PURE__ */ jsx6(
|
|
1476
|
+
/* @__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) }),
|
|
1477
|
+
/* @__PURE__ */ jsx7(
|
|
1249
1478
|
Text6,
|
|
1250
1479
|
{
|
|
1251
1480
|
style: {
|
|
@@ -1257,12 +1486,12 @@ function MineInnspill({
|
|
|
1257
1486
|
}
|
|
1258
1487
|
),
|
|
1259
1488
|
/* @__PURE__ */ jsxs6(View6, { style: { gap: tema.space.xs }, children: [
|
|
1260
|
-
/* @__PURE__ */
|
|
1261
|
-
/* @__PURE__ */
|
|
1489
|
+
/* @__PURE__ */ jsx7(StatusPill, { ikon: v.ikon, etikett: v.etikett, fg: v.fg, bg: v.bg }),
|
|
1490
|
+
/* @__PURE__ */ jsx7(Hint, { children: v.lofte })
|
|
1262
1491
|
] }),
|
|
1263
1492
|
!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__ */
|
|
1493
|
+
/* @__PURE__ */ jsx7(Ikon, { navn: "trash-outline", storrelse: "minste", farge: tema.color.textMuted }),
|
|
1494
|
+
/* @__PURE__ */ jsx7(Hint, { children: tekst.bildeFjernet })
|
|
1266
1495
|
] }) : null,
|
|
1267
1496
|
svar ? /* @__PURE__ */ jsxs6(
|
|
1268
1497
|
View6,
|
|
@@ -1274,8 +1503,8 @@ function MineInnspill({
|
|
|
1274
1503
|
gap: tema.space.xs
|
|
1275
1504
|
},
|
|
1276
1505
|
children: [
|
|
1277
|
-
/* @__PURE__ */
|
|
1278
|
-
/* @__PURE__ */
|
|
1506
|
+
/* @__PURE__ */ jsx7(Text6, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tenantName ? tekst.svarFra(tenantName) : tekst.svarFraGenerisk }),
|
|
1507
|
+
/* @__PURE__ */ jsx7(
|
|
1279
1508
|
Text6,
|
|
1280
1509
|
{
|
|
1281
1510
|
style: {
|
|
@@ -1291,15 +1520,15 @@ function MineInnspill({
|
|
|
1291
1520
|
) : null
|
|
1292
1521
|
] }, nokkel);
|
|
1293
1522
|
}) }),
|
|
1294
|
-
/* @__PURE__ */
|
|
1523
|
+
/* @__PURE__ */ jsx7(Btn, { testID: "send-nytt", label: rader.length === 0 ? tekst.sendForste : tekst.sendNytt, onPress: onNytt })
|
|
1295
1524
|
] });
|
|
1296
1525
|
}
|
|
1297
1526
|
|
|
1298
1527
|
// src/widget/Skjermbilde.tsx
|
|
1299
1528
|
import { skaler, strokTilRekter, treffer, trykkTilRekt } from "@innspel/core";
|
|
1300
1529
|
import { useCallback, useMemo as useMemo2, useRef, useState as useState2 } from "react";
|
|
1301
|
-
import { Image as Image2, Pressable as Pressable4, Text as Text7, View as View7 } from "react-native";
|
|
1302
|
-
import { jsx as
|
|
1530
|
+
import { Image as Image2, Pressable as Pressable4, StyleSheet, Text as Text7, View as View7 } from "react-native";
|
|
1531
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1303
1532
|
function Skjermbilde({
|
|
1304
1533
|
bilde,
|
|
1305
1534
|
automaskerRot,
|
|
@@ -1381,8 +1610,8 @@ function Skjermbilde({
|
|
|
1381
1610
|
backgroundColor: valgt ? tema.color.surfaceRaised : "transparent"
|
|
1382
1611
|
},
|
|
1383
1612
|
children: [
|
|
1384
|
-
/* @__PURE__ */
|
|
1385
|
-
/* @__PURE__ */
|
|
1613
|
+
/* @__PURE__ */ jsx8(Ikon, { navn: ikon, farge: tema.color.textPrimary }),
|
|
1614
|
+
/* @__PURE__ */ jsx8(
|
|
1386
1615
|
Text7,
|
|
1387
1616
|
{
|
|
1388
1617
|
style: {
|
|
@@ -1399,29 +1628,29 @@ function Skjermbilde({
|
|
|
1399
1628
|
);
|
|
1400
1629
|
};
|
|
1401
1630
|
const a11y = tekst.skjermbildeA11y(automasker.length, egne.length, allTekst);
|
|
1402
|
-
return /* @__PURE__ */ jsxs7(View7, { style: {
|
|
1403
|
-
/* @__PURE__ */
|
|
1404
|
-
notat ? /* @__PURE__ */
|
|
1631
|
+
return /* @__PURE__ */ jsxs7(View7, { testID: "skjermbilde-steg", style: { flexGrow: 1, flexShrink: 1, gap: tema.space.md }, children: [
|
|
1632
|
+
/* @__PURE__ */ jsx8(H, { sub: kilde === "galleri" ? tekst.skjermbildeUnderGalleri : tekst.skjermbildeUnder, children: tekst.skjermbildeTittel }),
|
|
1633
|
+
notat ? /* @__PURE__ */ jsx8(View7, { testID: "bilde-notat", children: /* @__PURE__ */ jsx8(Hint, { children: notat }) }) : null,
|
|
1405
1634
|
/* @__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", "
|
|
1635
|
+
knapp("felt", "scan-outline", tekst.maskerFelt),
|
|
1636
|
+
knapp("pensel", "brush-outline", tekst.tegnOver),
|
|
1637
|
+
knapp("allTekst", "grid-outline", tekst.maskerAllTekst)
|
|
1409
1638
|
] }),
|
|
1410
|
-
/* @__PURE__ */
|
|
1639
|
+
/* @__PURE__ */ jsx8(
|
|
1411
1640
|
View7,
|
|
1412
1641
|
{
|
|
1413
1642
|
testID: "skjermbilde-ramme",
|
|
1414
1643
|
onLayout,
|
|
1415
1644
|
style: {
|
|
1416
|
-
|
|
1645
|
+
flexGrow: 1,
|
|
1646
|
+
flexShrink: 1,
|
|
1647
|
+
flexBasis: 0,
|
|
1417
1648
|
minHeight: tema.touch * 5,
|
|
1418
|
-
alignItems: "center",
|
|
1419
|
-
justifyContent: "center",
|
|
1420
1649
|
backgroundColor: screenRules.previewBackdrop,
|
|
1421
1650
|
borderRadius: tema.radius.md,
|
|
1422
1651
|
overflow: "hidden"
|
|
1423
1652
|
},
|
|
1424
|
-
children: visning ? /* @__PURE__ */ jsxs7(
|
|
1653
|
+
children: /* @__PURE__ */ jsx8(View7, { testID: "skjermbilde-flate", pointerEvents: "box-none", style: [StyleSheet.absoluteFill, { alignItems: "center", justifyContent: "center" }], children: visning ? /* @__PURE__ */ jsxs7(
|
|
1425
1654
|
View7,
|
|
1426
1655
|
{
|
|
1427
1656
|
ref: previewRef,
|
|
@@ -1437,7 +1666,7 @@ function Skjermbilde({
|
|
|
1437
1666
|
onResponderTerminate: onRelease,
|
|
1438
1667
|
style: { width: visning.width, height: visning.height, backgroundColor: screenRules.previewBackdrop },
|
|
1439
1668
|
children: [
|
|
1440
|
-
/* @__PURE__ */
|
|
1669
|
+
/* @__PURE__ */ jsx8(
|
|
1441
1670
|
Image2,
|
|
1442
1671
|
{
|
|
1443
1672
|
testID: "skjermbilde-bilde",
|
|
@@ -1447,7 +1676,7 @@ function Skjermbilde({
|
|
|
1447
1676
|
accessibilityIgnoresInvertColors: true
|
|
1448
1677
|
}
|
|
1449
1678
|
),
|
|
1450
|
-
automasker.map((r, i) => /* @__PURE__ */
|
|
1679
|
+
automasker.map((r, i) => /* @__PURE__ */ jsx8(
|
|
1451
1680
|
View7,
|
|
1452
1681
|
{
|
|
1453
1682
|
testID: `automask-${i}`,
|
|
@@ -1464,14 +1693,20 @@ function Skjermbilde({
|
|
|
1464
1693
|
alignItems: "center",
|
|
1465
1694
|
justifyContent: "center"
|
|
1466
1695
|
},
|
|
1467
|
-
children: !komponerer ?
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1696
|
+
children: !komponerer ? (
|
|
1697
|
+
// Etiketten står PÅ den maskerte flaten og måles mot NETTOPP den
|
|
1698
|
+
// (skjermKontrastpar i theme.ts). textSecondary var 2,2:1 (C11a).
|
|
1699
|
+
// Ikonet arver samme farge: det er unntaket i «Styling» — maskeringen
|
|
1700
|
+
// tegnes i faste signalfarger, ikke i palettens.
|
|
1701
|
+
/* @__PURE__ */ jsxs7(View7, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1702
|
+
/* @__PURE__ */ jsx8(Ikon, { navn: "lock-closed-outline", storrelse: "minste", farge: screenRules.autoMaskText }),
|
|
1703
|
+
/* @__PURE__ */ jsx8(Text7, { style: { color: screenRules.autoMaskText, fontSize: tema.font.small }, numberOfLines: 1, children: tekst.maskertAvAppen })
|
|
1704
|
+
] })
|
|
1705
|
+
) : null
|
|
1471
1706
|
},
|
|
1472
1707
|
`auto-${i}`
|
|
1473
1708
|
)),
|
|
1474
|
-
egne.map((r, i) => /* @__PURE__ */
|
|
1709
|
+
egne.map((r, i) => /* @__PURE__ */ jsx8(
|
|
1475
1710
|
View7,
|
|
1476
1711
|
{
|
|
1477
1712
|
testID: `maske-${i}`,
|
|
@@ -1482,24 +1717,45 @@ function Skjermbilde({
|
|
|
1482
1717
|
))
|
|
1483
1718
|
]
|
|
1484
1719
|
}
|
|
1485
|
-
) : null
|
|
1720
|
+
) : null })
|
|
1486
1721
|
}
|
|
1487
1722
|
),
|
|
1488
|
-
automasker.length ? /* @__PURE__ */ jsxs7(
|
|
1489
|
-
|
|
1490
|
-
tekst.maskertAvAppenHint
|
|
1723
|
+
automasker.length ? /* @__PURE__ */ jsxs7(View7, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1724
|
+
/* @__PURE__ */ jsx8(Ikon, { navn: "lock-closed-outline", storrelse: "minste", farge: tema.color.textMuted }),
|
|
1725
|
+
/* @__PURE__ */ jsx8(Hint, { children: tekst.maskertAvAppenHint })
|
|
1491
1726
|
] }) : null,
|
|
1492
|
-
egne.length ? /* @__PURE__ */
|
|
1493
|
-
allTekst ? /* @__PURE__ */
|
|
1494
|
-
/* @__PURE__ */ jsxs7(View7, { style: { gap: tema.space.sm }, children: [
|
|
1495
|
-
/* @__PURE__ */
|
|
1496
|
-
|
|
1727
|
+
egne.length ? /* @__PURE__ */ jsx8(Hint, { children: tekst.dittStrok }) : null,
|
|
1728
|
+
allTekst ? /* @__PURE__ */ jsx8(Hint, { children: tekst.allTekstHint }) : null,
|
|
1729
|
+
/* @__PURE__ */ jsxs7(View7, { testID: "skjermbilde-fot", style: { flexShrink: 0, gap: tema.space.sm }, children: [
|
|
1730
|
+
/* @__PURE__ */ jsx8(
|
|
1731
|
+
Btn,
|
|
1732
|
+
{
|
|
1733
|
+
variant: "secondary",
|
|
1734
|
+
testID: "angre-siste",
|
|
1735
|
+
label: tekst.angreSiste,
|
|
1736
|
+
accessibilityLabel: tekst.angreSisteA11y,
|
|
1737
|
+
disabled: komponerer || egne.length === 0,
|
|
1738
|
+
onPress: () => setEgne((x) => x.slice(0, -1))
|
|
1739
|
+
}
|
|
1740
|
+
),
|
|
1741
|
+
/* @__PURE__ */ jsx8(
|
|
1742
|
+
Btn,
|
|
1743
|
+
{
|
|
1744
|
+
variant: "danger",
|
|
1745
|
+
testID: "fjern-bildet",
|
|
1746
|
+
ikon: "trash-outline",
|
|
1747
|
+
label: tekst.fjernBildet,
|
|
1748
|
+
onPress: onFjern,
|
|
1749
|
+
disabled: komponerer
|
|
1750
|
+
}
|
|
1751
|
+
),
|
|
1752
|
+
/* @__PURE__ */ jsx8(Btn, { testID: "legg-ved", label: tekst.leggVed, onPress: onLeggVed, disabled: komponerer || !visning })
|
|
1497
1753
|
] })
|
|
1498
1754
|
] });
|
|
1499
1755
|
}
|
|
1500
1756
|
|
|
1501
1757
|
// src/widget/Widget.tsx
|
|
1502
|
-
import { Fragment, jsx as
|
|
1758
|
+
import { Fragment, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1503
1759
|
var FANGST = { format: "jpg", quality: 0.85 };
|
|
1504
1760
|
function Widget({
|
|
1505
1761
|
client,
|
|
@@ -1522,6 +1778,7 @@ function Widget({
|
|
|
1522
1778
|
const [funn, setFunn] = useState3([]);
|
|
1523
1779
|
const [fjernede, setFjernede] = useState3([]);
|
|
1524
1780
|
const [sender, setSender] = useState3(false);
|
|
1781
|
+
const online = useNettstatus(client);
|
|
1525
1782
|
const [feil, setFeil] = useState3();
|
|
1526
1783
|
const [kvittering, setKvittering] = useState3();
|
|
1527
1784
|
const [mine, setMine] = useState3([]);
|
|
@@ -1657,12 +1914,21 @@ function Widget({
|
|
|
1657
1914
|
setVedlegg(void 0);
|
|
1658
1915
|
setSteg("felt");
|
|
1659
1916
|
}, []);
|
|
1660
|
-
const
|
|
1661
|
-
|
|
1917
|
+
const gaaTilbake = useCallback2(() => {
|
|
1918
|
+
setFeil(void 0);
|
|
1919
|
+
if (steg === "skjermbilde") {
|
|
1920
|
+
setBilde(void 0);
|
|
1921
|
+
setAutomasker([]);
|
|
1922
|
+
setSteg("felt");
|
|
1923
|
+
return;
|
|
1924
|
+
}
|
|
1925
|
+
if (steg === "felt" && spor === "feil" && kort.length > 0) {
|
|
1662
1926
|
setSteg("kjenteFeil");
|
|
1663
|
-
await hentKort();
|
|
1664
1927
|
return;
|
|
1665
1928
|
}
|
|
1929
|
+
setSteg("valg");
|
|
1930
|
+
}, [steg, spor, kort.length]);
|
|
1931
|
+
const send = useCallback2(async () => {
|
|
1666
1932
|
setSender(true);
|
|
1667
1933
|
setFeil(void 0);
|
|
1668
1934
|
try {
|
|
@@ -1679,6 +1945,8 @@ function Widget({
|
|
|
1679
1945
|
setKvittering({
|
|
1680
1946
|
art: spor,
|
|
1681
1947
|
nr: res.submission.id,
|
|
1948
|
+
// Tidsløftet i kvitteringen er DATOEN fra svaret, aldri «innen 90 dager» (DD-07, DD-28).
|
|
1949
|
+
...res.submission.deadlineAt ? { frist: res.submission.deadlineAt } : {},
|
|
1682
1950
|
...res.attachment?.status === "failed" ? { vedlegg: "feilet" } : {}
|
|
1683
1951
|
});
|
|
1684
1952
|
}
|
|
@@ -1690,7 +1958,7 @@ function Widget({
|
|
|
1690
1958
|
} finally {
|
|
1691
1959
|
setSender(false);
|
|
1692
1960
|
}
|
|
1693
|
-
}, [client, spor,
|
|
1961
|
+
}, [client, spor, verdi, vedlegg, lenketTil, fjernede]);
|
|
1694
1962
|
const jaOgsa = useCallback2(
|
|
1695
1963
|
async (k) => {
|
|
1696
1964
|
setSender(true);
|
|
@@ -1717,7 +1985,7 @@ function Widget({
|
|
|
1717
1985
|
setLasterMine(false);
|
|
1718
1986
|
}
|
|
1719
1987
|
}, [client]);
|
|
1720
|
-
return /* @__PURE__ */
|
|
1988
|
+
return /* @__PURE__ */ jsx9(
|
|
1721
1989
|
Modal,
|
|
1722
1990
|
{
|
|
1723
1991
|
visible: synlig,
|
|
@@ -1725,7 +1993,7 @@ function Widget({
|
|
|
1725
1993
|
animationType: "slide",
|
|
1726
1994
|
onRequestClose: lukk,
|
|
1727
1995
|
accessibilityViewIsModal: true,
|
|
1728
|
-
children: /* @__PURE__ */
|
|
1996
|
+
children: /* @__PURE__ */ jsx9(
|
|
1729
1997
|
KeyboardAvoidingView,
|
|
1730
1998
|
{
|
|
1731
1999
|
behavior: "padding",
|
|
@@ -1747,12 +2015,15 @@ function Widget({
|
|
|
1747
2015
|
paddingRight: tema.screenPadding + insets.right,
|
|
1748
2016
|
gap: tema.space.md,
|
|
1749
2017
|
maxHeight: "92%",
|
|
1750
|
-
minHeight: "60%"
|
|
2018
|
+
minHeight: "60%",
|
|
2019
|
+
// Bildesteget får fast høyde: forhåndsvisningen tilpasses plassen som er igjen, og
|
|
2020
|
+
// uten en kjent høyde har den ingen øvre grense (se Skjermbilde.tsx).
|
|
2021
|
+
...steg === "skjermbilde" ? { height: "92%" } : {}
|
|
1751
2022
|
},
|
|
1752
2023
|
children: [
|
|
1753
2024
|
/* @__PURE__ */ jsxs8(View8, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
1754
|
-
steg
|
|
1755
|
-
/* @__PURE__ */
|
|
2025
|
+
steg !== "valg" && steg !== "kvittering" ? /* @__PURE__ */ jsx9(Btn, { variant: "ghost", testID: "tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: gaaTilbake }) : /* @__PURE__ */ jsx9(View8, {}),
|
|
2026
|
+
/* @__PURE__ */ jsx9(
|
|
1756
2027
|
Pressable5,
|
|
1757
2028
|
{
|
|
1758
2029
|
testID: "lukk",
|
|
@@ -1760,30 +2031,32 @@ function Widget({
|
|
|
1760
2031
|
accessibilityLabel: tekst.lukk,
|
|
1761
2032
|
onPress: lukk,
|
|
1762
2033
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
1763
|
-
children: /* @__PURE__ */
|
|
2034
|
+
children: /* @__PURE__ */ jsx9(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
1764
2035
|
}
|
|
1765
2036
|
)
|
|
1766
2037
|
] }),
|
|
1767
|
-
feil ? /* @__PURE__ */
|
|
2038
|
+
feil ? /* @__PURE__ */ jsx9(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.sendefeilBanner(feil) }) : null,
|
|
2039
|
+
!online && steg !== "kvittering" && steg !== "mine" ? /* @__PURE__ */ jsx9(Banner, { ikon: "cloud-offline-outline", tone: "info", testID: "offline-banner", children: tekst.offlineBanner }) : null,
|
|
1768
2040
|
steg === "valg" ? /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
1769
|
-
/* @__PURE__ */
|
|
1770
|
-
/* @__PURE__ */
|
|
2041
|
+
/* @__PURE__ */ jsx9(Valg, { onVelg: velgSpor }),
|
|
2042
|
+
/* @__PURE__ */ jsx9(Btn, { variant: "ghost", testID: "mine-innspill", ikon: "list-outline", label: tekst.mineTittel, onPress: visMine })
|
|
1771
2043
|
] }) : null,
|
|
1772
|
-
steg === "kjenteFeil" ? /* @__PURE__ */
|
|
2044
|
+
steg === "kjenteFeil" ? /* @__PURE__ */ jsx9(
|
|
1773
2045
|
KjenteFeil,
|
|
1774
2046
|
{
|
|
1775
2047
|
kort,
|
|
1776
2048
|
spor,
|
|
1777
2049
|
laster: lasterKort,
|
|
2050
|
+
sender,
|
|
1778
2051
|
onJaOgsa: jaOgsa,
|
|
1779
2052
|
onLigner: (k) => {
|
|
1780
2053
|
setLenketTil(k);
|
|
1781
2054
|
setSteg("felt");
|
|
1782
2055
|
},
|
|
1783
|
-
onNei: () =>
|
|
2056
|
+
onNei: () => setSteg("felt")
|
|
1784
2057
|
}
|
|
1785
2058
|
) : null,
|
|
1786
|
-
steg === "felt" ? /* @__PURE__ */
|
|
2059
|
+
steg === "felt" ? /* @__PURE__ */ jsx9(
|
|
1787
2060
|
Felt,
|
|
1788
2061
|
{
|
|
1789
2062
|
spor,
|
|
@@ -1798,6 +2071,8 @@ function Widget({
|
|
|
1798
2071
|
funn,
|
|
1799
2072
|
onSend: send,
|
|
1800
2073
|
sender,
|
|
2074
|
+
harFeil: feil !== void 0,
|
|
2075
|
+
offline: !online,
|
|
1801
2076
|
...fangstMulig ? { onSkjermbilde: taSkjermbilde } : {},
|
|
1802
2077
|
...galleriMulig ? { onVelgBilde: velgBilde } : {},
|
|
1803
2078
|
...bildeNotat ? { bildeNotat } : {},
|
|
@@ -1805,7 +2080,7 @@ function Widget({
|
|
|
1805
2080
|
onFjernVedlegg: fjernBilde
|
|
1806
2081
|
}
|
|
1807
2082
|
) : null,
|
|
1808
|
-
steg === "skjermbilde" && bilde ? /* @__PURE__ */
|
|
2083
|
+
steg === "skjermbilde" && bilde ? /* @__PURE__ */ jsx9(
|
|
1809
2084
|
Skjermbilde,
|
|
1810
2085
|
{
|
|
1811
2086
|
bilde,
|
|
@@ -1819,16 +2094,17 @@ function Widget({
|
|
|
1819
2094
|
onLeggVed: leggVedBilde
|
|
1820
2095
|
}
|
|
1821
2096
|
) : null,
|
|
1822
|
-
steg === "kvittering" && kvittering ? /* @__PURE__ */
|
|
2097
|
+
steg === "kvittering" && kvittering ? /* @__PURE__ */ jsx9(
|
|
1823
2098
|
Kvittering,
|
|
1824
2099
|
{
|
|
1825
2100
|
art: kvittering.art,
|
|
1826
2101
|
...kvittering.nr ? { saksnummer: kvittering.nr } : {},
|
|
1827
2102
|
...kvittering.vedlegg ? { vedlegg: kvittering.vedlegg } : {},
|
|
2103
|
+
...kvittering.frist ? { frist: kvittering.frist } : {},
|
|
1828
2104
|
onLukk: lukk
|
|
1829
2105
|
}
|
|
1830
2106
|
) : null,
|
|
1831
|
-
steg === "mine" ? /* @__PURE__ */
|
|
2107
|
+
steg === "mine" ? /* @__PURE__ */ jsx9(
|
|
1832
2108
|
MineInnspill,
|
|
1833
2109
|
{
|
|
1834
2110
|
rader: mine,
|
|
@@ -1845,6 +2121,16 @@ function Widget({
|
|
|
1845
2121
|
}
|
|
1846
2122
|
);
|
|
1847
2123
|
}
|
|
2124
|
+
function useNettstatus(client) {
|
|
2125
|
+
const c = client.connectivity;
|
|
2126
|
+
const [online, setOnline] = useState3(() => c?.isOnline() ?? true);
|
|
2127
|
+
useEffect(() => {
|
|
2128
|
+
if (!c) return void 0;
|
|
2129
|
+
setOnline(c.isOnline());
|
|
2130
|
+
return c.subscribe?.((v) => setOnline(v));
|
|
2131
|
+
}, [c]);
|
|
2132
|
+
return online;
|
|
2133
|
+
}
|
|
1848
2134
|
function fjernetKontekst(client, fjernede) {
|
|
1849
2135
|
const ut = {};
|
|
1850
2136
|
for (const k of Object.keys(client.context)) {
|
|
@@ -1854,7 +2140,7 @@ function fjernetKontekst(client, fjernede) {
|
|
|
1854
2140
|
}
|
|
1855
2141
|
|
|
1856
2142
|
// src/InnspelProvider.tsx
|
|
1857
|
-
import { jsx as
|
|
2143
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1858
2144
|
var Kontekst = createContext3(null);
|
|
1859
2145
|
function InnspelProvider({
|
|
1860
2146
|
client,
|
|
@@ -1888,9 +2174,9 @@ function InnspelProvider({
|
|
|
1888
2174
|
() => ({ adapter: screenshot ?? null, rootRef, privat }),
|
|
1889
2175
|
[screenshot, privat]
|
|
1890
2176
|
);
|
|
1891
|
-
return /* @__PURE__ */
|
|
1892
|
-
/* @__PURE__ */
|
|
1893
|
-
/* @__PURE__ */
|
|
2177
|
+
return /* @__PURE__ */ jsx10(Kontekst.Provider, { value: verdi, children: /* @__PURE__ */ jsx10(SkjermbildeContext.Provider, { value: skjermbilde, children: /* @__PURE__ */ jsxs9(TemaProvider, { value: tema, children: [
|
|
2178
|
+
/* @__PURE__ */ jsx10(View9, { ref: rootRef, collapsable: false, style: { flex: 1 }, testID: "innspel-rot", children }),
|
|
2179
|
+
/* @__PURE__ */ jsx10(
|
|
1894
2180
|
Widget,
|
|
1895
2181
|
{
|
|
1896
2182
|
client,
|
|
@@ -1916,7 +2202,7 @@ function useInnspel() {
|
|
|
1916
2202
|
// src/InnspelPrivate.tsx
|
|
1917
2203
|
import { useEffect as useEffect2, useRef as useRef4 } from "react";
|
|
1918
2204
|
import { View as View10 } from "react-native";
|
|
1919
|
-
import { jsx as
|
|
2205
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1920
2206
|
function InnspelPrivate({ children, style }) {
|
|
1921
2207
|
const ref = useRef4(null);
|
|
1922
2208
|
const kontekst = useSkjermbilde();
|
|
@@ -1925,7 +2211,7 @@ function InnspelPrivate({ children, style }) {
|
|
|
1925
2211
|
if (!registrer) return;
|
|
1926
2212
|
return registrer(ref);
|
|
1927
2213
|
}, [registrer]);
|
|
1928
|
-
return /* @__PURE__ */
|
|
2214
|
+
return /* @__PURE__ */ jsx11(View10, { ref, collapsable: false, style, testID: "innspel-privat", children });
|
|
1929
2215
|
}
|
|
1930
2216
|
|
|
1931
2217
|
// src/program/InnspelProgram.tsx
|
|
@@ -1933,11 +2219,11 @@ import {
|
|
|
1933
2219
|
InnspelApiError as InnspelApiError2
|
|
1934
2220
|
} from "@innspel/core";
|
|
1935
2221
|
import { useCallback as useCallback4, useEffect as useEffect3, useState as useState6 } from "react";
|
|
1936
|
-
import { Modal as Modal4, Pressable as Pressable8, Text as
|
|
2222
|
+
import { Modal as Modal4, Pressable as Pressable8, Text as Text12, View as View15 } from "react-native";
|
|
1937
2223
|
|
|
1938
2224
|
// src/program/Aksept.tsx
|
|
1939
2225
|
import "react";
|
|
1940
|
-
import { Linking, Modal as Modal2, Pressable as Pressable6, ScrollView as ScrollView4, Text as
|
|
2226
|
+
import { Linking, Modal as Modal2, Pressable as Pressable6, ScrollView as ScrollView4, Text as Text8, View as View11 } from "react-native";
|
|
1941
2227
|
|
|
1942
2228
|
// src/program/periode.ts
|
|
1943
2229
|
var MANEDER = [
|
|
@@ -1967,7 +2253,7 @@ function minutterPerOppgave(tasks) {
|
|
|
1967
2253
|
}
|
|
1968
2254
|
|
|
1969
2255
|
// src/program/Aksept.tsx
|
|
1970
|
-
import { jsx as
|
|
2256
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1971
2257
|
function Aksept({
|
|
1972
2258
|
program,
|
|
1973
2259
|
harToken,
|
|
@@ -1983,7 +2269,7 @@ function Aksept({
|
|
|
1983
2269
|
periode(program.opensAt, program.closesAt),
|
|
1984
2270
|
program.maxContacts
|
|
1985
2271
|
);
|
|
1986
|
-
return /* @__PURE__ */
|
|
2272
|
+
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(
|
|
1987
2273
|
View11,
|
|
1988
2274
|
{
|
|
1989
2275
|
testID: "program-aksept",
|
|
@@ -1999,14 +2285,14 @@ function Aksept({
|
|
|
1999
2285
|
},
|
|
2000
2286
|
children: [
|
|
2001
2287
|
/* @__PURE__ */ jsxs10(View11, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
2002
|
-
/* @__PURE__ */
|
|
2003
|
-
/* @__PURE__ */
|
|
2288
|
+
/* @__PURE__ */ jsx12(Btn, { variant: "ghost", testID: "aksept-tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: onLukk }),
|
|
2289
|
+
/* @__PURE__ */ jsx12(View11, {})
|
|
2004
2290
|
] }),
|
|
2005
|
-
feil ? /* @__PURE__ */
|
|
2291
|
+
feil ? /* @__PURE__ */ jsx12(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.akseptFeil(feil) }) : null,
|
|
2006
2292
|
/* @__PURE__ */ jsxs10(ScrollView4, { contentContainerStyle: { gap: tema.space.md }, children: [
|
|
2007
|
-
/* @__PURE__ */
|
|
2008
|
-
/* @__PURE__ */
|
|
2009
|
-
|
|
2293
|
+
/* @__PURE__ */ jsx12(H, { sub: tekst.akseptHva, children: program.name }),
|
|
2294
|
+
/* @__PURE__ */ jsx12(
|
|
2295
|
+
Text8,
|
|
2010
2296
|
{
|
|
2011
2297
|
accessibilityRole: "text",
|
|
2012
2298
|
style: {
|
|
@@ -2018,11 +2304,11 @@ function Aksept({
|
|
|
2018
2304
|
children: tall
|
|
2019
2305
|
}
|
|
2020
2306
|
),
|
|
2021
|
-
/* @__PURE__ */
|
|
2307
|
+
/* @__PURE__ */ jsx12(Text8, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: program.hypothesis }),
|
|
2022
2308
|
/* @__PURE__ */ jsxs10(Card, { children: [
|
|
2023
|
-
/* @__PURE__ */
|
|
2309
|
+
/* @__PURE__ */ jsx12(H, { children: tekst.akseptOppgaver }),
|
|
2024
2310
|
program.tasks.map((o) => /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2025
|
-
/* @__PURE__ */
|
|
2311
|
+
/* @__PURE__ */ jsx12(Text8, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: o.title }),
|
|
2026
2312
|
/* @__PURE__ */ jsxs10(Hint, { children: [
|
|
2027
2313
|
tekst.akseptOppgaveTid(o.estimatedMinutes),
|
|
2028
2314
|
o.screenHint ? ` \xB7 ${o.screenHint}` : ""
|
|
@@ -2030,30 +2316,34 @@ function Aksept({
|
|
|
2030
2316
|
] }, o.id))
|
|
2031
2317
|
] }),
|
|
2032
2318
|
program.knownIssues.length > 0 ? /* @__PURE__ */ jsxs10(Card, { children: [
|
|
2033
|
-
/* @__PURE__ */
|
|
2034
|
-
program.knownIssues.map((k) =>
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2319
|
+
/* @__PURE__ */ jsx12(H, { sub: tekst.akseptKjenteFeilUnder, children: tekst.akseptKjenteFeil(program.knownIssues.length) }),
|
|
2320
|
+
program.knownIssues.map((k) => {
|
|
2321
|
+
const o = knownIssueStatus[k.status] ?? knownIssueStatus.aktiv;
|
|
2322
|
+
return /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2323
|
+
/* @__PURE__ */ jsx12(Text8, { style: { color: tema.color.textPrimary, fontSize: tema.font.small, lineHeight: tema.lineHeight.small }, children: k.title }),
|
|
2324
|
+
k.workaround ? /* @__PURE__ */ jsxs10(Text8, { style: { color: tema.color.textSecondary, fontSize: tema.font.small, lineHeight: tema.lineHeight.small }, children: [
|
|
2325
|
+
tekst.omvei,
|
|
2326
|
+
" ",
|
|
2327
|
+
k.workaround
|
|
2328
|
+
] }) : null,
|
|
2329
|
+
k.fixedIn ? /* @__PURE__ */ jsx12(
|
|
2330
|
+
StatusPill,
|
|
2331
|
+
{
|
|
2332
|
+
ikon: o.ikon,
|
|
2333
|
+
etikett: k.status === "fikset" ? tekst.rettetI(k.fixedIn) : tekst.rettesI(k.fixedIn),
|
|
2334
|
+
fg: o.fg,
|
|
2335
|
+
bg: o.bg
|
|
2336
|
+
}
|
|
2337
|
+
) : null
|
|
2338
|
+
] }, k.id);
|
|
2339
|
+
})
|
|
2050
2340
|
] }) : null,
|
|
2051
2341
|
/* @__PURE__ */ jsxs10(Card, { children: [
|
|
2052
|
-
/* @__PURE__ */
|
|
2053
|
-
/* @__PURE__ */
|
|
2342
|
+
/* @__PURE__ */ jsx12(H, { sub: tekst.akseptInnsamlingTekst, children: tekst.akseptInnsamling }),
|
|
2343
|
+
/* @__PURE__ */ jsx12(Hint, { children: tekst.kontekstAldri })
|
|
2054
2344
|
] }),
|
|
2055
2345
|
program.termsUrl && !program.commitmentFree ? /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2056
|
-
/* @__PURE__ */
|
|
2346
|
+
/* @__PURE__ */ jsx12(
|
|
2057
2347
|
Pressable6,
|
|
2058
2348
|
{
|
|
2059
2349
|
testID: "vilkar-lenke",
|
|
@@ -2061,20 +2351,32 @@ function Aksept({
|
|
|
2061
2351
|
accessibilityLabel: tekst.akseptVilkar,
|
|
2062
2352
|
onPress: () => void Linking.openURL(String(program.termsUrl)),
|
|
2063
2353
|
style: { minHeight: tema.touch, justifyContent: "center" },
|
|
2064
|
-
children: /* @__PURE__ */ jsxs10(
|
|
2065
|
-
|
|
2066
|
-
|
|
2354
|
+
children: /* @__PURE__ */ jsxs10(View11, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
2355
|
+
/* @__PURE__ */ jsx12(Ikon, { navn: "open-outline", farge: tema.color.textPrimary }),
|
|
2356
|
+
/* @__PURE__ */ jsx12(
|
|
2357
|
+
Text8,
|
|
2358
|
+
{
|
|
2359
|
+
style: { color: tema.color.textPrimary, fontSize: tema.font.body, textDecorationLine: "underline" },
|
|
2360
|
+
children: tekst.akseptVilkar
|
|
2361
|
+
}
|
|
2362
|
+
)
|
|
2067
2363
|
] })
|
|
2068
2364
|
}
|
|
2069
2365
|
),
|
|
2070
|
-
/* @__PURE__ */
|
|
2071
|
-
] }) : /* @__PURE__ */
|
|
2072
|
-
/* @__PURE__ */ jsxs10(
|
|
2073
|
-
|
|
2074
|
-
|
|
2366
|
+
/* @__PURE__ */ jsx12(Hint, { children: tekst.akseptVilkarHint })
|
|
2367
|
+
] }) : /* @__PURE__ */ jsx12(Hint, { children: tekst.akseptIngenVilkar }),
|
|
2368
|
+
/* @__PURE__ */ jsxs10(View11, { style: { flexDirection: "row", alignItems: "flex-start", gap: tema.space.sm }, children: [
|
|
2369
|
+
/* @__PURE__ */ jsx12(Ikon, { navn: "exit-outline", farge: tema.color.textPrimary }),
|
|
2370
|
+
/* @__PURE__ */ jsx12(
|
|
2371
|
+
Text8,
|
|
2372
|
+
{
|
|
2373
|
+
style: { flex: 1, color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body },
|
|
2374
|
+
children: tekst.akseptUtgang
|
|
2375
|
+
}
|
|
2376
|
+
)
|
|
2075
2377
|
] })
|
|
2076
2378
|
] }),
|
|
2077
|
-
/* @__PURE__ */
|
|
2379
|
+
/* @__PURE__ */ jsx12(
|
|
2078
2380
|
Btn,
|
|
2079
2381
|
{
|
|
2080
2382
|
testID: "bli-med",
|
|
@@ -2091,12 +2393,12 @@ function Aksept({
|
|
|
2091
2393
|
|
|
2092
2394
|
// src/program/HvordanGikkDet.tsx
|
|
2093
2395
|
import { useState as useState5 } from "react";
|
|
2094
|
-
import { Modal as Modal3, Pressable as Pressable7, Text as
|
|
2095
|
-
import { jsx as
|
|
2396
|
+
import { Modal as Modal3, Pressable as Pressable7, Text as Text9, TextInput as TextInput2, View as View12 } from "react-native";
|
|
2397
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2096
2398
|
var UTFALL = [
|
|
2097
|
-
{ verdi: "fungerte", ikon: "
|
|
2098
|
-
{ verdi: "delvis", ikon: "
|
|
2099
|
-
{ verdi: "ikke", ikon: "
|
|
2399
|
+
{ verdi: "fungerte", ikon: "checkmark-circle-outline", etikett: tekst.utfallFungerte },
|
|
2400
|
+
{ verdi: "delvis", ikon: "contrast-outline", etikett: tekst.utfallDelvis },
|
|
2401
|
+
{ verdi: "ikke", ikon: "close-circle-outline", etikett: tekst.utfallIkke }
|
|
2100
2402
|
];
|
|
2101
2403
|
var SETNING_MAKS = 140;
|
|
2102
2404
|
function utfallEtikett(verdi) {
|
|
@@ -2112,7 +2414,7 @@ function HvordanGikkDet({
|
|
|
2112
2414
|
const tema = useTema();
|
|
2113
2415
|
const [valgt, setValgt] = useState5();
|
|
2114
2416
|
const [setning, setSetning] = useState5("");
|
|
2115
|
-
return /* @__PURE__ */
|
|
2417
|
+
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(
|
|
2116
2418
|
View12,
|
|
2117
2419
|
{
|
|
2118
2420
|
testID: "hvordan-gikk-det",
|
|
@@ -2126,10 +2428,10 @@ function HvordanGikkDet({
|
|
|
2126
2428
|
gap: tema.space.md
|
|
2127
2429
|
},
|
|
2128
2430
|
children: [
|
|
2129
|
-
/* @__PURE__ */
|
|
2130
|
-
/* @__PURE__ */
|
|
2131
|
-
/* @__PURE__ */
|
|
2132
|
-
/* @__PURE__ */
|
|
2431
|
+
/* @__PURE__ */ jsx13(Btn, { variant: "ghost", testID: "hvordan-tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: onLukk }),
|
|
2432
|
+
/* @__PURE__ */ jsx13(Hint, { children: under }),
|
|
2433
|
+
/* @__PURE__ */ jsx13(H, { children: tekst.hvordanGikkDet }),
|
|
2434
|
+
/* @__PURE__ */ jsx13(View12, { testID: "utfall-gruppe", accessibilityRole: "radiogroup", accessibilityLabel: tekst.hvordanGikkDet, style: { flexDirection: "row", gap: tema.space.sm }, children: UTFALL.map((u) => {
|
|
2133
2435
|
const aktiv = valgt === u.verdi;
|
|
2134
2436
|
return /* @__PURE__ */ jsxs11(
|
|
2135
2437
|
Pressable7,
|
|
@@ -2152,16 +2454,16 @@ function HvordanGikkDet({
|
|
|
2152
2454
|
backgroundColor: aktiv ? tema.color.brandBg : tema.color.surfaceRaised
|
|
2153
2455
|
},
|
|
2154
2456
|
children: [
|
|
2155
|
-
/* @__PURE__ */
|
|
2156
|
-
/* @__PURE__ */
|
|
2457
|
+
/* @__PURE__ */ jsx13(Ikon, { navn: u.ikon, farge: tema.color.textPrimary }),
|
|
2458
|
+
/* @__PURE__ */ jsx13(Text9, { style: { color: tema.color.textPrimary, fontSize: tema.font.small, fontWeight: aktiv ? tema.weight.semibold : tema.weight.regular }, children: u.etikett })
|
|
2157
2459
|
]
|
|
2158
2460
|
},
|
|
2159
2461
|
u.verdi
|
|
2160
2462
|
);
|
|
2161
2463
|
}) }),
|
|
2162
2464
|
/* @__PURE__ */ jsxs11(View12, { style: { gap: tema.space.xs }, children: [
|
|
2163
|
-
/* @__PURE__ */
|
|
2164
|
-
/* @__PURE__ */
|
|
2465
|
+
/* @__PURE__ */ jsx13(Text9, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.setningLabel }),
|
|
2466
|
+
/* @__PURE__ */ jsx13(
|
|
2165
2467
|
TextInput2,
|
|
2166
2468
|
{
|
|
2167
2469
|
testID: "hvordan-setning",
|
|
@@ -2188,8 +2490,8 @@ function HvordanGikkDet({
|
|
|
2188
2490
|
}
|
|
2189
2491
|
)
|
|
2190
2492
|
] }),
|
|
2191
|
-
feil ? /* @__PURE__ */
|
|
2192
|
-
/* @__PURE__ */
|
|
2493
|
+
feil ? /* @__PURE__ */ jsx13(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.svarFeil(feil) }) : null,
|
|
2494
|
+
/* @__PURE__ */ jsx13(
|
|
2193
2495
|
Btn,
|
|
2194
2496
|
{
|
|
2195
2497
|
testID: "hvordan-lagre",
|
|
@@ -2210,8 +2512,8 @@ function HvordanGikkDet({
|
|
|
2210
2512
|
|
|
2211
2513
|
// src/program/Oppfolging.tsx
|
|
2212
2514
|
import "react";
|
|
2213
|
-
import { Text as
|
|
2214
|
-
import { Fragment as Fragment2, jsx as
|
|
2515
|
+
import { Text as Text10, View as View13 } from "react-native";
|
|
2516
|
+
import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2215
2517
|
function tarSvar(kind) {
|
|
2216
2518
|
return kind === "hvordan_gikk_det" || kind === "sjekkpunkt";
|
|
2217
2519
|
}
|
|
@@ -2226,7 +2528,7 @@ function Oppfolging({
|
|
|
2226
2528
|
}) {
|
|
2227
2529
|
const tema = useTema();
|
|
2228
2530
|
const art = tarSvar(oppfolging.kind) ? "spoersmaal" : oppfolging.kind === "tilbud_om_utgang" ? "utgang" : "paaminnelse";
|
|
2229
|
-
const ikon = art === "spoersmaal" ? "
|
|
2531
|
+
const ikon = art === "spoersmaal" ? "flask-outline" : art === "utgang" ? "exit-outline" : "calendar-outline";
|
|
2230
2532
|
const hint = art === "spoersmaal" ? tekst.oppfolgingKontakt(kontaktNr, maksKontakter) : art === "utgang" ? tekst.oppfolgingUtgangHint(kontaktNr, maksKontakter) : tekst.oppfolgingPaaminnelseHint(kontaktNr, maksKontakter);
|
|
2231
2533
|
return /* @__PURE__ */ jsxs12(
|
|
2232
2534
|
View13,
|
|
@@ -2243,18 +2545,28 @@ function Oppfolging({
|
|
|
2243
2545
|
},
|
|
2244
2546
|
children: [
|
|
2245
2547
|
/* @__PURE__ */ jsxs12(View13, { style: { flexDirection: "row", gap: tema.space.sm, alignItems: "flex-start" }, children: [
|
|
2246
|
-
/* @__PURE__ */
|
|
2548
|
+
/* @__PURE__ */ jsx14(Ikon, { navn: ikon, farge: tema.color.textPrimary }),
|
|
2247
2549
|
/* @__PURE__ */ jsxs12(View13, { style: { flex: 1, gap: tema.space.xs }, children: [
|
|
2248
|
-
/* @__PURE__ */
|
|
2249
|
-
/* @__PURE__ */
|
|
2550
|
+
/* @__PURE__ */ jsx14(Text10, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: oppfolging.question }),
|
|
2551
|
+
/* @__PURE__ */ jsx14(Hint, { children: hint })
|
|
2250
2552
|
] })
|
|
2251
2553
|
] }),
|
|
2252
|
-
/* @__PURE__ */
|
|
2253
|
-
/* @__PURE__ */
|
|
2254
|
-
/* @__PURE__ */
|
|
2554
|
+
/* @__PURE__ */ jsx14(View13, { style: { flexDirection: "row", gap: tema.space.sm }, children: art === "utgang" ? /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
2555
|
+
/* @__PURE__ */ jsx14(Btn, { grow: true, variant: "secondary", testID: `bli-vaerende-${oppfolging.id}`, label: tekst.bliVaerende, onPress: onSenere }),
|
|
2556
|
+
/* @__PURE__ */ jsx14(
|
|
2557
|
+
Btn,
|
|
2558
|
+
{
|
|
2559
|
+
grow: true,
|
|
2560
|
+
variant: "danger",
|
|
2561
|
+
testID: `gaa-ut-${oppfolging.id}`,
|
|
2562
|
+
ikon: "exit-outline",
|
|
2563
|
+
label: tekst.gaaUtBekreft,
|
|
2564
|
+
onPress: onGaaUt
|
|
2565
|
+
}
|
|
2566
|
+
)
|
|
2255
2567
|
] }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
2256
|
-
/* @__PURE__ */
|
|
2257
|
-
art === "spoersmaal" ? /* @__PURE__ */
|
|
2568
|
+
/* @__PURE__ */ jsx14(Btn, { grow: true, variant: "secondary", testID: `senere-${oppfolging.id}`, label: tekst.senere, onPress: onSenere }),
|
|
2569
|
+
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 })
|
|
2258
2570
|
] }) })
|
|
2259
2571
|
]
|
|
2260
2572
|
}
|
|
@@ -2263,8 +2575,8 @@ function Oppfolging({
|
|
|
2263
2575
|
|
|
2264
2576
|
// src/program/Oppgaver.tsx
|
|
2265
2577
|
import "react";
|
|
2266
|
-
import { Text as
|
|
2267
|
-
import { jsx as
|
|
2578
|
+
import { Text as Text11, View as View14 } from "react-native";
|
|
2579
|
+
import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2268
2580
|
function Oppgaver({
|
|
2269
2581
|
tasks,
|
|
2270
2582
|
completions,
|
|
@@ -2272,7 +2584,7 @@ function Oppgaver({
|
|
|
2272
2584
|
}) {
|
|
2273
2585
|
const tema = useTema();
|
|
2274
2586
|
const ferdig = new Map(completions.map((c) => [c.taskId, c]));
|
|
2275
|
-
return /* @__PURE__ */
|
|
2587
|
+
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) => {
|
|
2276
2588
|
const c = ferdig.get(o.id);
|
|
2277
2589
|
return /* @__PURE__ */ jsxs13(
|
|
2278
2590
|
View14,
|
|
@@ -2288,13 +2600,27 @@ function Oppgaver({
|
|
|
2288
2600
|
},
|
|
2289
2601
|
children: [
|
|
2290
2602
|
/* @__PURE__ */ jsxs13(View14, { style: { flex: 1, gap: tema.space.xs }, children: [
|
|
2291
|
-
/* @__PURE__ */
|
|
2603
|
+
/* @__PURE__ */ jsx15(Text11, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: o.title }),
|
|
2292
2604
|
/* @__PURE__ */ jsxs13(Hint, { children: [
|
|
2293
2605
|
c ? tekst.oppgaveGjortMed(utfallEtikett(c.outcome)) : `${tekst.oppgaveIkkeBegynt} \xB7 ${tekst.akseptOppgaveTid(o.estimatedMinutes)}`,
|
|
2294
2606
|
c?.text ? ` \xB7 \xAB${c.text}\xBB` : ""
|
|
2295
2607
|
] })
|
|
2296
2608
|
] }),
|
|
2297
|
-
c ?
|
|
2609
|
+
c ? (
|
|
2610
|
+
// Merket er den eneste flaten der ikonet står alene, så etiketten
|
|
2611
|
+
// ligger på containeren: skjermleseren hører utfallet, ikke «hake».
|
|
2612
|
+
/* @__PURE__ */ jsx15(View14, { accessibilityLabel: tekst.oppgaveGjortMed(utfallEtikett(c.outcome)), accessible: true, children: /* @__PURE__ */ jsx15(Ikon, { navn: "checkmark-circle-outline", farge: tema.color.success }) })
|
|
2613
|
+
) : /* @__PURE__ */ jsx15(
|
|
2614
|
+
Btn,
|
|
2615
|
+
{
|
|
2616
|
+
variant: "secondary",
|
|
2617
|
+
testID: `gjort-${o.id}`,
|
|
2618
|
+
ikon: "checkmark-circle-outline",
|
|
2619
|
+
label: tekst.oppgaveGjort,
|
|
2620
|
+
accessibilityLabel: tekst.oppgaveGjortLabel(o.title),
|
|
2621
|
+
onPress: () => onGjort(o)
|
|
2622
|
+
}
|
|
2623
|
+
)
|
|
2298
2624
|
]
|
|
2299
2625
|
},
|
|
2300
2626
|
o.id
|
|
@@ -2303,7 +2629,7 @@ function Oppgaver({
|
|
|
2303
2629
|
}
|
|
2304
2630
|
|
|
2305
2631
|
// src/program/InnspelProgram.tsx
|
|
2306
|
-
import { Fragment as Fragment3, jsx as
|
|
2632
|
+
import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2307
2633
|
function InnspelProgram({
|
|
2308
2634
|
invitationToken,
|
|
2309
2635
|
onEndring,
|
|
@@ -2394,7 +2720,7 @@ function InnspelProgram({
|
|
|
2394
2720
|
const kort = (mine?.pendingFollowUps ?? []).filter((f) => f.programId === program.id && !lagtBort.has(f.id)).sort((a, b) => a.emittedAt.localeCompare(b.emittedAt));
|
|
2395
2721
|
const forsteKontaktNr = Math.max(1, deltakelse.contactsSent - kort.length + 1);
|
|
2396
2722
|
return /* @__PURE__ */ jsxs14(View15, { testID: "program-deltakelse", accessibilityLabel: tekst.deltakelseRegion, style: { gap: tema.space.sm }, children: [
|
|
2397
|
-
kort.map((f, i) => /* @__PURE__ */
|
|
2723
|
+
kort.map((f, i) => /* @__PURE__ */ jsx16(
|
|
2398
2724
|
Oppfolging,
|
|
2399
2725
|
{
|
|
2400
2726
|
oppfolging: f,
|
|
@@ -2411,8 +2737,8 @@ function InnspelProgram({
|
|
|
2411
2737
|
f.id
|
|
2412
2738
|
)),
|
|
2413
2739
|
/* @__PURE__ */ jsxs14(Card, { children: [
|
|
2414
|
-
/* @__PURE__ */
|
|
2415
|
-
/* @__PURE__ */
|
|
2740
|
+
/* @__PURE__ */ jsx16(H, { sub: tekst.deltakelsePeriode(periode(program.opensAt, program.closesAt), deltakelse.contactsSent, program.maxContacts), children: program.name }),
|
|
2741
|
+
/* @__PURE__ */ jsx16(
|
|
2416
2742
|
Oppgaver,
|
|
2417
2743
|
{
|
|
2418
2744
|
tasks: program.tasks,
|
|
@@ -2424,13 +2750,13 @@ function InnspelProgram({
|
|
|
2424
2750
|
}
|
|
2425
2751
|
),
|
|
2426
2752
|
meldFeilFor && onMeldFeil ? /* @__PURE__ */ jsxs14(View15, { style: { gap: tema.space.xs }, children: [
|
|
2427
|
-
/* @__PURE__ */
|
|
2428
|
-
/* @__PURE__ */
|
|
2753
|
+
/* @__PURE__ */ jsx16(Hint, { children: tekst.meldFeilHint }),
|
|
2754
|
+
/* @__PURE__ */ jsx16(
|
|
2429
2755
|
Btn,
|
|
2430
2756
|
{
|
|
2431
2757
|
variant: "secondary",
|
|
2432
2758
|
testID: "meld-feil",
|
|
2433
|
-
ikon: "
|
|
2759
|
+
ikon: "bug-outline",
|
|
2434
2760
|
label: tekst.meldFeil,
|
|
2435
2761
|
onPress: () => {
|
|
2436
2762
|
const task = meldFeilFor;
|
|
@@ -2440,9 +2766,9 @@ function InnspelProgram({
|
|
|
2440
2766
|
}
|
|
2441
2767
|
)
|
|
2442
2768
|
] }) : null,
|
|
2443
|
-
/* @__PURE__ */
|
|
2769
|
+
/* @__PURE__ */ jsx16(Btn, { variant: "ghost", testID: "gaa-ut", ikon: "exit-outline", label: tekst.gaaUt, onPress: () => setViserGaaUt(true) })
|
|
2444
2770
|
] }),
|
|
2445
|
-
dialog ? /* @__PURE__ */
|
|
2771
|
+
dialog ? /* @__PURE__ */ jsx16(
|
|
2446
2772
|
HvordanGikkDet,
|
|
2447
2773
|
{
|
|
2448
2774
|
under: dialog.type === "oppgave" ? dialog.task.title : dialog.oppfolging.question,
|
|
@@ -2452,7 +2778,7 @@ function InnspelProgram({
|
|
|
2452
2778
|
onLukk: () => setDialog(void 0)
|
|
2453
2779
|
}
|
|
2454
2780
|
) : null,
|
|
2455
|
-
viserGaaUt ? /* @__PURE__ */
|
|
2781
|
+
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(
|
|
2456
2782
|
View15,
|
|
2457
2783
|
{
|
|
2458
2784
|
testID: "gaa-ut-dialog",
|
|
@@ -2466,11 +2792,22 @@ function InnspelProgram({
|
|
|
2466
2792
|
gap: tema.space.md
|
|
2467
2793
|
},
|
|
2468
2794
|
children: [
|
|
2469
|
-
/* @__PURE__ */
|
|
2470
|
-
/* @__PURE__ */
|
|
2795
|
+
/* @__PURE__ */ jsx16(H, { children: tekst.gaaUtTittel }),
|
|
2796
|
+
/* @__PURE__ */ jsx16(Text12, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: tekst.gaaUtTekst(program.name) }),
|
|
2471
2797
|
/* @__PURE__ */ jsxs14(View15, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
2472
|
-
/* @__PURE__ */
|
|
2473
|
-
/* @__PURE__ */
|
|
2798
|
+
/* @__PURE__ */ jsx16(Btn, { grow: true, variant: "secondary", testID: "bli-vaerende", label: tekst.bliVaerende, onPress: () => setViserGaaUt(false) }),
|
|
2799
|
+
/* @__PURE__ */ jsx16(
|
|
2800
|
+
Btn,
|
|
2801
|
+
{
|
|
2802
|
+
grow: true,
|
|
2803
|
+
variant: "danger",
|
|
2804
|
+
testID: "bekreft-gaa-ut",
|
|
2805
|
+
ikon: "exit-outline",
|
|
2806
|
+
label: tekst.gaaUtBekreft,
|
|
2807
|
+
disabled: sender,
|
|
2808
|
+
onPress: () => void gaaUt()
|
|
2809
|
+
}
|
|
2810
|
+
)
|
|
2474
2811
|
] })
|
|
2475
2812
|
]
|
|
2476
2813
|
}
|
|
@@ -2494,12 +2831,12 @@ function InnspelProgram({
|
|
|
2494
2831
|
},
|
|
2495
2832
|
children: [
|
|
2496
2833
|
/* @__PURE__ */ jsxs14(View15, { style: { flexDirection: "row", gap: tema.space.sm, alignItems: "flex-start" }, children: [
|
|
2497
|
-
/* @__PURE__ */
|
|
2834
|
+
/* @__PURE__ */ jsx16(Ikon, { navn: "flask-outline", farge: tema.color.textPrimary }),
|
|
2498
2835
|
/* @__PURE__ */ jsxs14(View15, { style: { flex: 1, gap: tema.space.xs }, children: [
|
|
2499
|
-
/* @__PURE__ */
|
|
2500
|
-
/* @__PURE__ */
|
|
2836
|
+
/* @__PURE__ */ jsx16(Text12, { style: { color: tema.color.textPrimary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: tekst.invitasjonHva(program.name) }),
|
|
2837
|
+
/* @__PURE__ */ jsx16(Hint, { children: tekst.invitasjonKontakter(program.maxContacts) })
|
|
2501
2838
|
] }),
|
|
2502
|
-
/* @__PURE__ */
|
|
2839
|
+
/* @__PURE__ */ jsx16(
|
|
2503
2840
|
Pressable8,
|
|
2504
2841
|
{
|
|
2505
2842
|
testID: "avvis-invitasjon",
|
|
@@ -2507,16 +2844,16 @@ function InnspelProgram({
|
|
|
2507
2844
|
accessibilityLabel: tekst.avvisInvitasjon,
|
|
2508
2845
|
onPress: () => setAvvist(true),
|
|
2509
2846
|
style: { minWidth: tema.touch, minHeight: tema.touch, alignItems: "center", justifyContent: "center" },
|
|
2510
|
-
children: /* @__PURE__ */
|
|
2847
|
+
children: /* @__PURE__ */ jsx16(Ikon, { navn: "close-outline", farge: tema.color.textSecondary })
|
|
2511
2848
|
}
|
|
2512
2849
|
)
|
|
2513
2850
|
] }),
|
|
2514
|
-
feil && !viserAksept ? /* @__PURE__ */
|
|
2515
|
-
/* @__PURE__ */
|
|
2851
|
+
feil && !viserAksept ? /* @__PURE__ */ jsx16(Banner, { live: true, ikon: "warning-outline", tone: "danger", children: tekst.akseptFeil(feil) }) : null,
|
|
2852
|
+
/* @__PURE__ */ jsx16(Btn, { variant: "secondary", testID: "les-mer", label: tekst.lesMer, onPress: () => setViserAksept(true) })
|
|
2516
2853
|
]
|
|
2517
2854
|
}
|
|
2518
2855
|
),
|
|
2519
|
-
viserAksept ? /* @__PURE__ */
|
|
2856
|
+
viserAksept ? /* @__PURE__ */ jsx16(
|
|
2520
2857
|
Aksept,
|
|
2521
2858
|
{
|
|
2522
2859
|
program,
|