@oslokommune/punkt-elements 16.15.0 → 16.15.1

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/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
5
5
 
6
6
  ---
7
7
 
8
+ ## [16.15.1](https://github.com/oslokommune/punkt/compare/16.15.0...16.15.1) (2026-05-11)
9
+
10
+ ### ⚠ BREAKING CHANGES
11
+ Ingen
12
+
13
+ ### Features
14
+ Ingen
15
+
16
+ ### Bug Fixes
17
+ Ingen
18
+
19
+ ### Chores
20
+ Ingen
21
+
22
+ ---
23
+
24
+
8
25
  ## [16.15.0](https://github.com/oslokommune/punkt/compare/16.14.0...16.15.0) (2026-05-11)
9
26
 
10
27
  ### ⚠ BREAKING CHANGES
@@ -4,11 +4,12 @@ import "./alert-ePJuDtmm.js";
4
4
  import "./icon-Co72KtgF.js";
5
5
  import { t as s } from "./if-defined-Cjj8qN-Z.js";
6
6
  import { t as c } from "./converters-jauYkvNh.js";
7
+ import { n as l } from "./utils-BOOZ0ppt.js";
7
8
  import "./input-wrapper-DBpMVSxt.js";
8
9
  import "./modal-DyIC3uhs.js";
9
10
  import "./progressbar-uC-0W6o4.js";
10
11
  //#region ../../shared-types/fileupload.ts
11
- var l = {
12
+ var u = {
12
13
  dropZoneDragMultiple: "Dra filer hit for å laste dem opp eller",
13
14
  dropZoneDragSingle: "Dra en fil hit for å laste den opp eller",
14
15
  dropZoneDragMultipleThumbnail: "Dra bilder hit for å laste dem opp eller",
@@ -35,7 +36,7 @@ var l = {
35
36
  };
36
37
  //#endregion
37
38
  //#region ../../shared-utils/fileupload/size.ts
38
- function u(e) {
39
+ function d(e) {
39
40
  if (e == null || e === "") return;
40
41
  if (typeof e == "number") return Number.isFinite(e) && e > 0 ? e : void 0;
41
42
  let t = String(e).trim(), n = Number(t);
@@ -54,18 +55,18 @@ function u(e) {
54
55
  default: return;
55
56
  }
56
57
  }
57
- function d(e) {
58
+ function f(e) {
58
59
  return e < 1024 ? `${Math.round(e)} B` : e < 1024 * 1024 ? `${Math.round(e / 1024)} KB` : e < 1024 * 1024 * 1024 ? `${Math.round(e / (1024 * 1024))} MB` : `${Math.round(e / (1024 * 1024 * 1024))} GB`;
59
60
  }
60
61
  //#endregion
61
62
  //#region ../../shared-utils/fileupload/formats.ts
62
- function f(e) {
63
+ function p(e) {
63
64
  return Array.isArray(e) ? e.map((e) => String(e).trim().toLowerCase()).filter(Boolean) : [];
64
65
  }
65
- function p(e) {
66
+ function m(e) {
66
67
  return e ? e.split(",").map((e) => e.trim().toLowerCase()).filter(Boolean) : [];
67
68
  }
68
- function m(e, t, n) {
69
+ function h(e, t, n) {
69
70
  let r = e.toLowerCase().replace(/^\./, "");
70
71
  if (r.includes("/")) {
71
72
  if (r.endsWith("/*")) {
@@ -76,42 +77,42 @@ function m(e, t, n) {
76
77
  }
77
78
  return t === r;
78
79
  }
79
- function h(e, t) {
80
- let n = f(t);
80
+ function g(e, t) {
81
+ let n = p(t);
81
82
  if (n.length === 0) return !0;
82
83
  let r = e.name.split(".").pop()?.toLowerCase() ?? "", i = e.type.toLowerCase();
83
- return n.some((e) => m(e, r, i));
84
+ return n.some((e) => h(e, r, i));
84
85
  }
85
- function g(e, t) {
86
+ function _(e, t) {
86
87
  let n = (e ?? "").trim();
87
88
  if (n) return n;
88
- let r = f(t);
89
+ let r = p(t);
89
90
  return r.length === 0 ? "" : r.map((e) => e.includes("/") || e.startsWith(".") ? e : `.${e}`).join(", ");
90
91
  }
91
- function _(e) {
92
+ function v(e) {
92
93
  return e.includes("/") ? e : e.replace(/^\./, "").toUpperCase();
93
94
  }
94
- function v(e, t) {
95
- let n = f(e);
96
- if (n.length > 0) return n.map(_).join(", ");
97
- let r = p(t);
98
- return r.length > 0 ? r.map(_).join(", ") : "";
95
+ function y(e, t) {
96
+ let n = p(e);
97
+ if (n.length > 0) return n.map(v).join(", ");
98
+ let r = m(t);
99
+ return r.length > 0 ? r.map(v).join(", ") : "";
99
100
  }
100
101
  //#endregion
101
102
  //#region ../../shared-utils/fileupload/validation.ts
102
- function y(e, t, n) {
103
+ function b(e, t, n) {
103
104
  return ((e ?? "").trim() || t).replace(/\{(\w+)\}/g, (e, t) => n[t] ?? `{${t}}`);
104
105
  }
105
- function b(e, t) {
106
- let n = f(t.allowedFormats);
107
- if (n.length > 0 && !h(e, n)) {
106
+ function x(e, t) {
107
+ let n = p(t.allowedFormats);
108
+ if (n.length > 0 && !g(e, n)) {
108
109
  let e = n.join(", "), r = `Ugyldig filtype. Tillatte formater: ${e}`;
109
- return y(t.formatErrorMessage, r, { formats: e });
110
+ return b(t.formatErrorMessage, r, { formats: e });
110
111
  }
111
- let r = u(t.maxFileSize);
112
+ let r = d(t.maxFileSize);
112
113
  if (r !== void 0 && e.size > r) {
113
- let e = d(r), n = `Filen er for stor. Maks størrelse er ${e}.`;
114
- return y(t.sizeErrorMessage, n, { maxSize: e });
114
+ let e = f(r), n = `Filen er for stor. Maks størrelse er ${e}.`;
115
+ return b(t.sizeErrorMessage, n, { maxSize: e });
115
116
  }
116
117
  if (t.onFileValidation) {
117
118
  let n = t.onFileValidation(e);
@@ -119,7 +120,7 @@ function b(e, t) {
119
120
  }
120
121
  return null;
121
122
  }
122
- function x(e) {
123
+ function S(e) {
123
124
  let t = e.file;
124
125
  if (t?.type?.startsWith("image/")) return !0;
125
126
  let n = e.attributes?.targetFilename || t?.name || "";
@@ -127,10 +128,10 @@ function x(e) {
127
128
  }
128
129
  //#endregion
129
130
  //#region ../../shared-utils/fileupload/transfers.ts
130
- function S(e) {
131
+ function C(e) {
131
132
  return typeof e == "number" ? "in-progress" : e === "error" ? "error" : "idle";
132
133
  }
133
- function C(e, t, n) {
134
+ function w(e, t, n) {
134
135
  let r = {
135
136
  "in-progress": 0,
136
137
  error: 1,
@@ -145,11 +146,11 @@ function C(e, t, n) {
145
146
  showProgress: r?.showProgress,
146
147
  lastProgress: r?.lastProgress
147
148
  };
148
- }).sort((e, t) => r[S(e.progress)] - r[S(t.progress)]);
149
+ }).sort((e, t) => r[C(e.progress)] - r[C(t.progress)]);
149
150
  }
150
151
  //#endregion
151
152
  //#region ../../shared-utils/fileupload/focus-trap.ts
152
- function w(e) {
153
+ function T(e) {
153
154
  if (!e) return [];
154
155
  let t = [
155
156
  "a[href]:not([tabindex=\"-1\"])",
@@ -161,16 +162,16 @@ function w(e) {
161
162
  ].join(", ");
162
163
  return Array.from(e.querySelectorAll(t)).filter((e) => !e.hasAttribute("inert"));
163
164
  }
164
- function T(e, t) {
165
+ function E(e, t) {
165
166
  if (e.key !== "Tab") return !1;
166
- let n = w(t);
167
+ let n = T(t);
167
168
  if (n.length === 0) return e.preventDefault(), !0;
168
169
  let r = n[0], i = n[n.length - 1], a = (t?.ownerDocument ?? document).activeElement, o = !!a && n.includes(a);
169
170
  return e.shiftKey ? !o || a === r ? (e.preventDefault(), i.focus(), !0) : !1 : !o || a === i ? (e.preventDefault(), r.focus(), !0) : !1;
170
171
  }
171
172
  //#endregion
172
173
  //#region ../../shared-utils/fileupload/truncate.ts
173
- function E(e, t) {
174
+ function D(e, t) {
174
175
  return !t || t <= 0 || e.length <= t + 3 ? null : {
175
176
  head: e.slice(0, e.length - t),
176
177
  tail: e.slice(-t)
@@ -178,7 +179,7 @@ function E(e, t) {
178
179
  }
179
180
  //#endregion
180
181
  //#region ../../shared-utils/fileupload/navigation.ts
181
- function D(e, t, n) {
182
+ function ee(e, t, n) {
182
183
  return n <= 0 ? 0 : t === "prev" ? e <= 0 ? n - 1 : e - 1 : e >= n - 1 ? 0 : e + 1;
183
184
  }
184
185
  //#endregion
@@ -203,14 +204,14 @@ function O(e, t) {
203
204
  }
204
205
  //#endregion
205
206
  //#region ../../shared-utils/fileupload/filename.ts
206
- function k(e, t = l.unknownFilename) {
207
+ function k(e, t = u.unknownFilename) {
207
208
  return e.attributes?.targetFilename || e.file?.name || t;
208
209
  }
209
210
  //#endregion
210
211
  //#region src/components/fileupload/fileupload-base.ts
211
212
  var A = class extends a {
212
213
  constructor(...e) {
213
- super(...e), this.id = `pkt-fileupload-${crypto.randomUUID()}`, this.name = "files", this.label = "", this.helptext = "", this.required = !1, this.multiple = !1, this.disabled = !1, this.fullwidth = !1, this.uploadStrategy = "form", this.itemRenderer = "filename", this.accept = "", this.allowedFormats = [], this.formatErrorMessage = "", this.sizeErrorMessage = "", this.transfers = [], this.addCommentsEnabled = !1, this.renameFilesEnabled = !1, this.extraOperations = [], this.enableImagePreview = !1, this.hasError = !1, this.errorMessage = "", this.optionalTag = !1, this.requiredTag = !1, this.truncateTail = 4, this.files = [], this.isDragActive = !1, this.validationErrorMessage = null, this.addedAnnouncement = "", this.thumbnailUrls = {}, this.hasInitializedValue = !1, this.hasWarnedInvalidValueCombo = !1, this.thumbnailFileById = /* @__PURE__ */ new Map(), this.connectedForm = null, this.addedAnnouncementTimer = null, this.requiredSelectionMessage = l.requiredMissing, this.onNativeFileChange = (e) => {
214
+ super(...e), this.id = `pkt-fileupload-${l()}`, this.name = "files", this.label = "", this.helptext = "", this.required = !1, this.multiple = !1, this.disabled = !1, this.fullwidth = !1, this.uploadStrategy = "form", this.itemRenderer = "filename", this.accept = "", this.allowedFormats = [], this.formatErrorMessage = "", this.sizeErrorMessage = "", this.transfers = [], this.addCommentsEnabled = !1, this.renameFilesEnabled = !1, this.extraOperations = [], this.enableImagePreview = !1, this.hasError = !1, this.errorMessage = "", this.optionalTag = !1, this.requiredTag = !1, this.truncateTail = 4, this.files = [], this.isDragActive = !1, this.validationErrorMessage = null, this.addedAnnouncement = "", this.thumbnailUrls = {}, this.hasInitializedValue = !1, this.hasWarnedInvalidValueCombo = !1, this.thumbnailFileById = /* @__PURE__ */ new Map(), this.connectedForm = null, this.addedAnnouncementTimer = null, this.requiredSelectionMessage = u.requiredMissing, this.onNativeFileChange = (e) => {
214
215
  let t = e.target;
215
216
  this.addFiles(t.files ? Array.from(t.files) : []), this.uploadStrategy === "custom" && (t.value = "");
216
217
  }, this.openFileDialog = (e) => {
@@ -284,11 +285,11 @@ var A = class extends a {
284
285
  }
285
286
  this.validationErrorMessage = null;
286
287
  let n = t.map((e) => ({
287
- fileId: crypto.randomUUID(),
288
+ fileId: l(),
288
289
  file: e,
289
290
  attributes: { targetFilename: e.name }
290
291
  }));
291
- this.setAddedAnnouncement(n.length === 1 ? l.srFileAdded(n[0].attributes.targetFilename) : l.srFilesAdded(n.length));
292
+ this.setAddedAnnouncement(n.length === 1 ? u.srFileAdded(n[0].attributes.targetFilename) : u.srFilesAdded(n.length));
292
293
  let r = this.getCurrentFiles(), i = this.multiple ? [...r, ...n] : [n[0]];
293
294
  this.commitFiles(i, "add", n.map((e) => e.fileId)), this.uploadStrategy === "custom" && n.forEach((e) => {
294
295
  this.dispatchEvent(new CustomEvent("file-upload-requested", {
@@ -352,22 +353,22 @@ var A = class extends a {
352
353
  return this.transfers.find((t) => t.fileId === e);
353
354
  }
354
355
  isImageFile(e) {
355
- return x(e);
356
+ return S(e);
356
357
  }
357
358
  formatFileSize(e) {
358
- return d(e);
359
+ return f(e);
359
360
  }
360
361
  getResolvedAcceptValue() {
361
- return g(this.accept, this.allowedFormats);
362
+ return _(this.accept, this.allowedFormats);
362
363
  }
363
364
  getSupportedFormatsText() {
364
- return v(this.allowedFormats, this.accept);
365
+ return y(this.allowedFormats, this.accept);
365
366
  }
366
367
  getSortedFilesAndTransfers() {
367
- return C(this.getCurrentFiles(), this.transfers, this.uploadStrategy);
368
+ return w(this.getCurrentFiles(), this.transfers, this.uploadStrategy);
368
369
  }
369
370
  validateFile(e) {
370
- let t = b(e, {
371
+ let t = x(e, {
371
372
  allowedFormats: this.allowedFormats,
372
373
  maxFileSize: this.maxFileSize,
373
374
  formatErrorMessage: this.formatErrorMessage,
@@ -384,7 +385,7 @@ var A = class extends a {
384
385
  composed: !0,
385
386
  cancelable: !0
386
387
  });
387
- return this.dispatchEvent(r), n.errorMessage ? n.errorMessage : r.defaultPrevented ? l.genericValidationRejection : null;
388
+ return this.dispatchEvent(r), n.errorMessage ? n.errorMessage : r.defaultPrevented ? u.genericValidationRejection : null;
388
389
  }
389
390
  syncThumbnailUrls(e) {
390
391
  if (!(typeof URL < "u" && typeof URL.createObjectURL == "function" && typeof URL.revokeObjectURL == "function")) {
@@ -419,11 +420,11 @@ var A = class extends a {
419
420
  getSrUploadedMessage() {
420
421
  if (this.addedAnnouncement) return this.addedAnnouncement;
421
422
  let { totalCount: e, uploadedCount: t } = O(this.getCurrentFiles(), this.transfers);
422
- return e === 0 || t === 0 ? "" : l.srFilesUploadedOfTotal(t, e, l.fileLabel(e));
423
+ return e === 0 || t === 0 ? "" : u.srFilesUploadedOfTotal(t, e, u.fileLabel(e));
423
424
  }
424
425
  getSrErrorsMessage() {
425
426
  let { totalCount: e, failedCount: t } = O(this.getCurrentFiles(), this.transfers);
426
- return e === 0 || t === 0 ? "" : l.srFilesFailedOfTotal(t, e, l.fileLabel(e));
427
+ return e === 0 || t === 0 ? "" : u.srFilesFailedOfTotal(t, e, u.fileLabel(e));
427
428
  }
428
429
  syncFormSubmitListener() {
429
430
  let e = this.closest("form");
@@ -640,7 +641,7 @@ var j = "comments", M = (e) => {
640
641
  />`;
641
642
  }
642
643
  }), R = (e, n) => {
643
- let r = E(e, n);
644
+ let r = D(e, n);
644
645
  return r ? t`<span
645
646
  class="pkt-fileupload__queue-display__item__title__head"
646
647
  data-pkt-truncate-part="first"
@@ -1056,7 +1057,7 @@ var j = "comments", M = (e) => {
1056
1057
  }, this.onPreviewKeyDown = (e, t) => {
1057
1058
  if (this.isPreviewModalOpen) {
1058
1059
  if (e.key === "Tab") {
1059
- T(e, e.currentTarget);
1060
+ E(e, e.currentTarget);
1060
1061
  return;
1061
1062
  }
1062
1063
  switch (e.key) {
@@ -1096,21 +1097,21 @@ var j = "comments", M = (e) => {
1096
1097
  }
1097
1098
  renderContent() {
1098
1099
  let e = this.getSortedFilesAndTransfers(), n = this.getPreviewableImages(e), r = this.getSupportedFormatsText(), i = [!this.label && this.helptext ? `${this.id}-helptext` : void 0, this.hasEffectiveError ? `${this.id}-error` : void 0].filter(Boolean).join(" ") || void 0, a = this.itemRenderer === "thumbnail" ? this.multiple ? {
1099
- dragInactive: l.dropZoneDragMultipleThumbnail,
1100
- dragActive: l.dropZoneDragActiveMultipleThumbnail,
1101
- openFileDialog: l.dropZoneOpenFileDialogMultipleThumbnail
1100
+ dragInactive: u.dropZoneDragMultipleThumbnail,
1101
+ dragActive: u.dropZoneDragActiveMultipleThumbnail,
1102
+ openFileDialog: u.dropZoneOpenFileDialogMultipleThumbnail
1102
1103
  } : {
1103
- dragInactive: l.dropZoneDragSingleThumbnail,
1104
- dragActive: l.dropZoneDragActiveSingleThumbnail,
1105
- openFileDialog: l.dropZoneOpenFileDialogSingleThumbnail
1104
+ dragInactive: u.dropZoneDragSingleThumbnail,
1105
+ dragActive: u.dropZoneDragActiveSingleThumbnail,
1106
+ openFileDialog: u.dropZoneOpenFileDialogSingleThumbnail
1106
1107
  } : this.multiple ? {
1107
- dragInactive: l.dropZoneDragMultiple,
1108
- dragActive: l.dropZoneDragActiveMultiple,
1109
- openFileDialog: l.dropZoneOpenFileDialogMultiple
1108
+ dragInactive: u.dropZoneDragMultiple,
1109
+ dragActive: u.dropZoneDragActiveMultiple,
1110
+ openFileDialog: u.dropZoneOpenFileDialogMultiple
1110
1111
  } : {
1111
- dragInactive: l.dropZoneDragSingle,
1112
- dragActive: l.dropZoneDragActiveSingle,
1113
- openFileDialog: l.dropZoneOpenFileDialogSingle
1112
+ dragInactive: u.dropZoneDragSingle,
1113
+ dragActive: u.dropZoneDragActiveSingle,
1114
+ openFileDialog: u.dropZoneOpenFileDialogSingle
1114
1115
  };
1115
1116
  return t`
1116
1117
  <div
@@ -1172,7 +1173,7 @@ var j = "comments", M = (e) => {
1172
1173
  </button>`}
1173
1174
  </p>
1174
1175
  ${r ? t`<p class="pkt-fileupload__drop-zone__placeholder__formats">
1175
- ${l.supportedFormatsPrefix} ${r}
1176
+ ${u.supportedFormatsPrefix} ${r}
1176
1177
  </p>` : null}
1177
1178
  </div>
1178
1179
  </div>
@@ -1270,7 +1271,7 @@ var j = "comments", M = (e) => {
1270
1271
  });
1271
1272
  }
1272
1273
  navigatePreview(e, t) {
1273
- t.length !== 0 && (this.previewCurrentIndex = D(this.previewCurrentIndex, e, t.length));
1274
+ t.length !== 0 && (this.previewCurrentIndex = ee(this.previewCurrentIndex, e, t.length));
1274
1275
  }
1275
1276
  renderPreviewModal(e) {
1276
1277
  if (!this.enableImagePreview || e.length === 0) return null;
@@ -1367,6 +1368,6 @@ var j = "comments", M = (e) => {
1367
1368
  r([n()], $.prototype, "activeOperationByFileId", void 0), r([n()], $.prototype, "isPreviewModalOpen", void 0), r([n()], $.prototype, "previewCurrentIndex", void 0), r([n()], $.prototype, "failedImageFileIds", void 0), $ = r([e("pkt-fileupload")], $);
1368
1369
  //#endregion
1369
1370
  //#region src/components/fileupload/index.ts
1370
- var ee = $;
1371
+ var te = $;
1371
1372
  //#endregion
1372
- export { $ as n, ee as t };
1373
+ export { $ as n, te as t };
@@ -1,4 +1,4 @@
1
- const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);require(`./alert-BEEnTiCb.cjs`),require(`./icon-Dr8sfT2X.cjs`);const n=require(`./if-defined-XKOD_t_V.cjs`),r=require(`./converters-Bffq_YDm.cjs`);require(`./input-wrapper-B_XFi211.cjs`),require(`./modal-B6591sWa.cjs`),require(`./progressbar-CrwpnIkv.cjs`);var i={dropZoneDragMultiple:`Dra filer hit for å laste dem opp eller`,dropZoneDragSingle:`Dra en fil hit for å laste den opp eller`,dropZoneDragMultipleThumbnail:`Dra bilder hit for å laste dem opp eller`,dropZoneDragSingleThumbnail:`Dra et bilde hit for å laste det opp eller`,dropZoneDragActiveMultiple:`Slipp filene her`,dropZoneDragActiveSingle:`Slipp filen her`,dropZoneDragActiveMultipleThumbnail:`Slipp bildene her`,dropZoneDragActiveSingleThumbnail:`Slipp bildet her`,dropZoneOpenFileDialogMultiple:`velg filer`,dropZoneOpenFileDialogSingle:`velg en fil`,dropZoneOpenFileDialogMultipleThumbnail:`velg fra kamerarull`,dropZoneOpenFileDialogSingleThumbnail:`velg fra kamerarull`,supportedFormatsPrefix:`Format:`,invalidFormatDefault:e=>`Ugyldig filtype. Tillatte formater: ${e}`,sizeTooLargeDefault:e=>`Filen er for stor. Maks størrelse er ${e}.`,requiredMissing:`Du må laste opp minst én fil.`,genericValidationRejection:`Filen ble avvist av validering.`,unknownFilename:`Ukjent fil`,fileLabel:e=>e===1?`fil`:`filer`,srFileAdded:e=>`Filen «${e}» er lagt til`,srFilesAdded:e=>`${e} filer er lagt til`,srFilesUploadedOfTotal:(e,t,n)=>`${e} av ${t} ${n} lastet opp`,srFilesFailedOfTotal:(e,t,n)=>`Feil ved opplasting: ${e} av ${t} ${n} feilet`};function a(e){if(e==null||e===``)return;if(typeof e==`number`)return Number.isFinite(e)&&e>0?e:void 0;let t=String(e).trim(),n=Number(t);if(!Number.isNaN(n)&&n>0)return n;let r=t.match(/^(\d+(?:\.\d+)?)\s*(B|KB|MB|GB)$/i);if(!r){console.warn(`PktFileUpload: Invalid maxFileSize format "${t}". Use format like "5MB", "500KB", "1GB", or bytes.`);return}let i=parseFloat(r[1]);switch(r[2].toUpperCase()){case`B`:return i;case`KB`:return i*1024;case`MB`:return i*1024*1024;case`GB`:return i*1024*1024*1024;default:return}}function o(e){return e<1024?`${Math.round(e)} B`:e<1024*1024?`${Math.round(e/1024)} KB`:e<1024*1024*1024?`${Math.round(e/(1024*1024))} MB`:`${Math.round(e/(1024*1024*1024))} GB`}function s(e){return Array.isArray(e)?e.map(e=>String(e).trim().toLowerCase()).filter(Boolean):[]}function c(e){return e?e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean):[]}function l(e,t,n){let r=e.toLowerCase().replace(/^\./,``);if(r.includes(`/`)){if(r.endsWith(`/*`)){let e=r.replace(`/*`,``);return n.startsWith(`${e}/`)}return n===r}return t===r}function u(e,t){let n=s(t);if(n.length===0)return!0;let r=e.name.split(`.`).pop()?.toLowerCase()??``,i=e.type.toLowerCase();return n.some(e=>l(e,r,i))}function d(e,t){let n=(e??``).trim();if(n)return n;let r=s(t);return r.length===0?``:r.map(e=>e.includes(`/`)||e.startsWith(`.`)?e:`.${e}`).join(`, `)}function f(e){return e.includes(`/`)?e:e.replace(/^\./,``).toUpperCase()}function p(e,t){let n=s(e);if(n.length>0)return n.map(f).join(`, `);let r=c(t);return r.length>0?r.map(f).join(`, `):``}function m(e,t,n){return((e??``).trim()||t).replace(/\{(\w+)\}/g,(e,t)=>n[t]??`{${t}}`)}function h(e,t){let n=s(t.allowedFormats);if(n.length>0&&!u(e,n)){let e=n.join(`, `),r=`Ugyldig filtype. Tillatte formater: ${e}`;return m(t.formatErrorMessage,r,{formats:e})}let r=a(t.maxFileSize);if(r!==void 0&&e.size>r){let e=o(r),n=`Filen er for stor. Maks størrelse er ${e}.`;return m(t.sizeErrorMessage,n,{maxSize:e})}if(t.onFileValidation){let n=t.onFileValidation(e);if(n)return n}return null}function g(e){let t=e.file;if(t?.type?.startsWith(`image/`))return!0;let n=e.attributes?.targetFilename||t?.name||``;return/\.(jpe?g|png|gif|webp|heic|heif|bmp|svg)$/i.test(n)}function _(e){return typeof e==`number`?`in-progress`:e===`error`?`error`:`idle`}function v(e,t,n){let r={"in-progress":0,error:1,idle:2};return e.map(e=>{let r=t?.find(t=>t.fileId===e.fileId);return{...e,progress:r?.progress??(n===`form`?`done`:`queued`),errorMessage:r?.errorMessage,showProgress:r?.showProgress,lastProgress:r?.lastProgress}}).sort((e,t)=>r[_(e.progress)]-r[_(t.progress)])}function y(e){if(!e)return[];let t=[`a[href]:not([tabindex="-1"])`,`button:not([disabled]):not([tabindex="-1"])`,`input:not([disabled]):not([type="hidden"]):not([tabindex="-1"])`,`select:not([disabled]):not([tabindex="-1"])`,`textarea:not([disabled]):not([tabindex="-1"])`,`[tabindex]:not([tabindex="-1"])`].join(`, `);return Array.from(e.querySelectorAll(t)).filter(e=>!e.hasAttribute(`inert`))}function b(e,t){if(e.key!==`Tab`)return!1;let n=y(t);if(n.length===0)return e.preventDefault(),!0;let r=n[0],i=n[n.length-1],a=(t?.ownerDocument??document).activeElement,o=!!a&&n.includes(a);return e.shiftKey?!o||a===r?(e.preventDefault(),i.focus(),!0):!1:!o||a===i?(e.preventDefault(),r.focus(),!0):!1}function x(e,t){return!t||t<=0||e.length<=t+3?null:{head:e.slice(0,e.length-t),tail:e.slice(-t)}}function S(e,t,n){return n<=0?0:t===`prev`?e<=0?n-1:e-1:e>=n-1?0:e+1}function C(e,t){let n=e.length;if(n===0||!t||t.length===0)return{totalCount:n,uploadedCount:0,failedCount:0};let r=0,i=0;for(let n of e){let e=t.find(e=>e.fileId===n.fileId);e?.progress===`done`?r++:e?.progress===`error`&&i++}return{totalCount:n,uploadedCount:r,failedCount:i}}function w(e,t=i.unknownFilename){return e.attributes?.targetFilename||e.file?.name||t}var T=class extends e.t{constructor(...e){super(...e),this.id=`pkt-fileupload-${crypto.randomUUID()}`,this.name=`files`,this.label=``,this.helptext=``,this.required=!1,this.multiple=!1,this.disabled=!1,this.fullwidth=!1,this.uploadStrategy=`form`,this.itemRenderer=`filename`,this.accept=``,this.allowedFormats=[],this.formatErrorMessage=``,this.sizeErrorMessage=``,this.transfers=[],this.addCommentsEnabled=!1,this.renameFilesEnabled=!1,this.extraOperations=[],this.enableImagePreview=!1,this.hasError=!1,this.errorMessage=``,this.optionalTag=!1,this.requiredTag=!1,this.truncateTail=4,this.files=[],this.isDragActive=!1,this.validationErrorMessage=null,this.addedAnnouncement=``,this.thumbnailUrls={},this.hasInitializedValue=!1,this.hasWarnedInvalidValueCombo=!1,this.thumbnailFileById=new Map,this.connectedForm=null,this.addedAnnouncementTimer=null,this.requiredSelectionMessage=i.requiredMissing,this.onNativeFileChange=e=>{let t=e.target;this.addFiles(t.files?Array.from(t.files):[]),this.uploadStrategy===`custom`&&(t.value=``)},this.openFileDialog=e=>{e.preventDefault(),e.stopPropagation(),!this.disabled&&this.querySelector(`#${this.id}-input`)?.click()},this.onDropZoneClick=e=>{this.disabled||e.target.closest(`.pkt-fileupload__drop-zone__placeholder__title__open-file-dialog`)||this.querySelector(`#${this.id}-input`)?.click()},this.onDragOver=e=>{e.preventDefault(),!this.disabled&&(this.isDragActive=!0)},this.onDragLeave=()=>{this.isDragActive=!1},this.onDrop=e=>{if(e.preventDefault(),this.isDragActive=!1,this.disabled)return;let t=e.dataTransfer?.files?Array.from(e.dataTransfer.files):[];this.addFiles(t)},this.onHostFormSubmit=e=>{!this.required||this.uploadStrategy!==`custom`||this.getCurrentFiles().length>0||(this.validationErrorMessage=this.requiredSelectionMessage,e.preventDefault())}}get isControlled(){return this.value!==void 0}get hasEffectiveError(){return!!this.validationErrorMessage||this.hasError||!!this.errorMessage.trim()}get effectiveErrorMessage(){return this.validationErrorMessage??this.errorMessage??``}get hasValidationError(){return!!this.validationErrorMessage}firstUpdated(e){super.firstUpdated?.(e),this.hasInitializedValue||=(this.files=this.value??this.defaultValue??[],this.syncThumbnailUrls(this.files),!0),this.value!==void 0&&this.defaultValue!==void 0&&this.warnInvalidValueCombo()}willUpdate(e){super.willUpdate(e),this.hasInitializedValue&&this.isControlled&&(e.has(`value`)||e.has(`itemRenderer`)||e.has(`enableImagePreview`))&&(this.files=this.value??[],this.syncThumbnailUrls(this.files))}updated(e){super.updated(e),(e.has(`uploadStrategy`)||e.has(`required`)||e.has(`value`))&&this.syncFormSubmitListener(),this.uploadStrategy===`form`&&(e.has(`value`)||e.has(`files`)||e.has(`uploadStrategy`))&&this.syncNativeInputFiles()}syncNativeInputFiles(){let e=this.querySelector(`#${this.id}-input`);if(!(!e||typeof DataTransfer>`u`))try{let t=new DataTransfer;for(let e of this.getCurrentFiles())e.file&&t.items.add(e.file);e.files=t.files}catch{}}warnInvalidValueCombo(){this.hasWarnedInvalidValueCombo||=(console.warn(`PktFileUpload: Både value og defaultValue er angitt. Komponenten kan være enten kontrollert eller ukontrollert, ikke begge. value vil bli prioritert.`),!0)}disconnectedCallback(){this.teardownFormSubmitListener(),this.addedAnnouncementTimer&&=(clearTimeout(this.addedAnnouncementTimer),null),super.disconnectedCallback(),this.revokeAllThumbnailUrls()}setAddedAnnouncement(e){this.addedAnnouncement=e,this.addedAnnouncementTimer&&clearTimeout(this.addedAnnouncementTimer),this.addedAnnouncementTimer=setTimeout(()=>{this.addedAnnouncement=``,this.addedAnnouncementTimer=null},1500)}connectedCallback(){super.connectedCallback(),this.syncFormSubmitListener()}addFiles(e){if(e.length===0)return;let t=this.multiple?e:[e[0]];for(let e of t){let t=this.validateFile(e);if(t){this.validationErrorMessage=t;return}}this.validationErrorMessage=null;let n=t.map(e=>({fileId:crypto.randomUUID(),file:e,attributes:{targetFilename:e.name}}));this.setAddedAnnouncement(n.length===1?i.srFileAdded(n[0].attributes.targetFilename):i.srFilesAdded(n.length));let r=this.getCurrentFiles(),a=this.multiple?[...r,...n]:[n[0]];this.commitFiles(a,`add`,n.map(e=>e.fileId)),this.uploadStrategy===`custom`&&n.forEach(e=>{this.dispatchEvent(new CustomEvent(`file-upload-requested`,{detail:{fileId:e.fileId,file:e.file,attributes:e.attributes},bubbles:!0,composed:!0}))})}getCurrentFiles(){return this.isControlled?this.value??[]:this.files}cancelTransfer(e){if(this.disabled)return;let t=this.getCurrentFiles().find(t=>t.fileId===e);t&&(this.removeFileItem(e),this.dispatchEvent(new CustomEvent(`transfer-cancelled`,{detail:{fileId:t.fileId,file:t.file,attributes:t.attributes},bubbles:!0,composed:!0})))}removeFileItem(e){if(this.disabled)return;let t=this.getCurrentFiles(),n=t.filter(t=>t.fileId!==e);n.length!==t.length&&this.commitFiles(n,`remove`,[e])}updateFileItem(e,t){let n=this.getCurrentFiles().map(n=>n.fileId===e?{...n,...t}:n);this.commitFiles(n,`update`,[e])}commitFiles(e,t,n){this.isControlled||(this.files=e,this.syncThumbnailUrls(e)),this.validationErrorMessage===this.requiredSelectionMessage&&e.length>0&&(this.validationErrorMessage=null),this.dispatchEvent(new CustomEvent(`files-changed`,{detail:{files:e,reason:t,changedFileIds:n},bubbles:!0,composed:!0}))}getThumbnailUrl(e){return this.thumbnailUrls[e.fileId]}getTransferProgress(e){let t=this.transfers.find(t=>t.fileId===e);return t?t.progress:this.uploadStrategy===`form`?`done`:`queued`}getTransferForFile(e){return this.transfers.find(t=>t.fileId===e)}isImageFile(e){return g(e)}formatFileSize(e){return o(e)}getResolvedAcceptValue(){return d(this.accept,this.allowedFormats)}getSupportedFormatsText(){return p(this.allowedFormats,this.accept)}getSortedFilesAndTransfers(){return v(this.getCurrentFiles(),this.transfers,this.uploadStrategy)}validateFile(e){let t=h(e,{allowedFormats:this.allowedFormats,maxFileSize:this.maxFileSize,formatErrorMessage:this.formatErrorMessage,sizeErrorMessage:this.sizeErrorMessage,onFileValidation:this.onFileValidation});if(t)return t;let n={file:e,errorMessage:null},r=new CustomEvent(`file-validate`,{detail:n,bubbles:!0,composed:!0,cancelable:!0});return this.dispatchEvent(r),n.errorMessage?n.errorMessage:r.defaultPrevented?i.genericValidationRejection:null}syncThumbnailUrls(e){if(!(typeof URL<`u`&&typeof URL.createObjectURL==`function`&&typeof URL.revokeObjectURL==`function`)){this.thumbnailUrls={},this.thumbnailFileById.clear();return}let t=new Set(e.map(e=>e.fileId)),n={};for(let[e,n]of Object.entries(this.thumbnailUrls))t.has(e)||(URL.revokeObjectURL(n),this.thumbnailFileById.delete(e));for(let t of e){let e=this.thumbnailUrls[t.fileId],r=this.thumbnailFileById.get(t.fileId);if(!t.file||!this.isImageFile(t)){e&&(URL.revokeObjectURL(e),this.thumbnailFileById.delete(t.fileId));continue}if(e&&r===t.file){n[t.fileId]=e;continue}e&&r!==t.file&&URL.revokeObjectURL(e);let i=URL.createObjectURL(t.file);this.thumbnailFileById.set(t.fileId,t.file),n[t.fileId]=i}this.thumbnailUrls=n}revokeAllThumbnailUrls(){if(typeof URL>`u`||typeof URL.revokeObjectURL!=`function`){this.thumbnailUrls={},this.thumbnailFileById.clear();return}Object.values(this.thumbnailUrls).forEach(e=>URL.revokeObjectURL(e)),this.thumbnailUrls={},this.thumbnailFileById.clear()}getSrUploadedMessage(){if(this.addedAnnouncement)return this.addedAnnouncement;let{totalCount:e,uploadedCount:t}=C(this.getCurrentFiles(),this.transfers);return e===0||t===0?``:i.srFilesUploadedOfTotal(t,e,i.fileLabel(e))}getSrErrorsMessage(){let{totalCount:e,failedCount:t}=C(this.getCurrentFiles(),this.transfers);return e===0||t===0?``:i.srFilesFailedOfTotal(t,e,i.fileLabel(e))}syncFormSubmitListener(){let e=this.closest(`form`);this.connectedForm!==e&&(this.teardownFormSubmitListener(),this.connectedForm=e,this.connectedForm&&this.connectedForm.addEventListener(`submit`,this.onHostFormSubmit))}teardownFormSubmitListener(){this.connectedForm&&=(this.connectedForm.removeEventListener(`submit`,this.onHostFormSubmit),null)}};e.r([e.s({type:String})],T.prototype,`id`,void 0),e.r([e.s({type:String})],T.prototype,`name`,void 0),e.r([e.s({type:String})],T.prototype,`label`,void 0),e.r([e.s({type:String})],T.prototype,`helptext`,void 0),e.r([e.s({type:Boolean,reflect:!0})],T.prototype,`required`,void 0),e.r([e.s({type:Boolean,reflect:!0})],T.prototype,`multiple`,void 0),e.r([e.s({type:Boolean,reflect:!0})],T.prototype,`disabled`,void 0),e.r([e.s({type:Boolean,reflect:!0,attribute:`fullwidth`})],T.prototype,`fullwidth`,void 0),e.r([e.s({type:String,reflect:!0,attribute:`upload-strategy`})],T.prototype,`uploadStrategy`,void 0),e.r([e.s({type:String,reflect:!0,attribute:`item-renderer`})],T.prototype,`itemRenderer`,void 0),e.r([e.s({type:String})],T.prototype,`accept`,void 0),e.r([e.s({converter:r.t.csvToArray,attribute:`allowed-formats`})],T.prototype,`allowedFormats`,void 0),e.r([e.s({type:String,attribute:`format-error-message`})],T.prototype,`formatErrorMessage`,void 0),e.r([e.s({attribute:`max-file-size`})],T.prototype,`maxFileSize`,void 0),e.r([e.s({type:String,attribute:`size-error-message`})],T.prototype,`sizeErrorMessage`,void 0),e.r([e.s({attribute:!1})],T.prototype,`onFileValidation`,void 0),e.r([e.s({attribute:!1})],T.prototype,`transfers`,void 0),e.r([e.s({type:Boolean,attribute:`add-comments-enabled`})],T.prototype,`addCommentsEnabled`,void 0),e.r([e.s({type:Boolean,attribute:`rename-files-enabled`})],T.prototype,`renameFilesEnabled`,void 0),e.r([e.s({attribute:!1})],T.prototype,`extraOperations`,void 0),e.r([e.s({type:Boolean,reflect:!0,attribute:`enable-image-preview`})],T.prototype,`enableImagePreview`,void 0),e.r([e.s({type:Boolean,attribute:`has-error`})],T.prototype,`hasError`,void 0),e.r([e.s({type:String,attribute:`error-message`})],T.prototype,`errorMessage`,void 0),e.r([e.s({type:Boolean,attribute:`optional-tag`})],T.prototype,`optionalTag`,void 0),e.r([e.s({type:Boolean,attribute:`required-tag`})],T.prototype,`requiredTag`,void 0),e.r([e.s({type:Number,attribute:`truncate-tail`})],T.prototype,`truncateTail`,void 0),e.r([e.s({attribute:!1})],T.prototype,`value`,void 0),e.r([e.s({attribute:!1})],T.prototype,`defaultValue`,void 0),e.r([e.o()],T.prototype,`files`,void 0),e.r([e.o()],T.prototype,`isDragActive`,void 0),e.r([e.o()],T.prototype,`validationErrorMessage`,void 0),e.r([e.o()],T.prototype,`addedAnnouncement`,void 0),e.r([e.o()],T.prototype,`thumbnailUrls`,void 0);var E=`comments`,D=e=>{let t=new Date(e);return Number.isNaN(t.getTime())?e:`${String(t.getDate()).padStart(2,`0`)}.${String(t.getMonth()+1).padStart(2,`0`)}.${t.getFullYear()} kl. ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`},O=(e,t,n)=>{e.key===`Enter`&&(e.preventDefault(),e.stopPropagation(),t()),e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n())},k=(e,t,n)=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n()),(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),e.stopPropagation(),t())},A=e=>({id:`remove`,title:`Slett`,ariaLabel:`Slett fil`,onClick:({file:t})=>e(t.fileId)}),j=()=>({id:`rename`,title:`Rediger`,ariaLabel:`Rediger filnavn`,renderInlineUI:t=>{let n=t.getAttribute(`targetFilename`)||t.file.attributes?.targetFilename||t.file.file?.name||``,r=`pkt-fileupload-rename-${t.file.fileId}`,i=()=>{let e=document.getElementById(r)?.value?.trim();e&&t.setAttribute(`targetFilename`,e),t.close()};return e.d`
1
+ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);require(`./alert-BEEnTiCb.cjs`),require(`./icon-Dr8sfT2X.cjs`);const n=require(`./if-defined-XKOD_t_V.cjs`),r=require(`./converters-Bffq_YDm.cjs`),i=require(`./utils-CM67Oudc.cjs`);require(`./input-wrapper-B_XFi211.cjs`),require(`./modal-B6591sWa.cjs`),require(`./progressbar-CrwpnIkv.cjs`);var a={dropZoneDragMultiple:`Dra filer hit for å laste dem opp eller`,dropZoneDragSingle:`Dra en fil hit for å laste den opp eller`,dropZoneDragMultipleThumbnail:`Dra bilder hit for å laste dem opp eller`,dropZoneDragSingleThumbnail:`Dra et bilde hit for å laste det opp eller`,dropZoneDragActiveMultiple:`Slipp filene her`,dropZoneDragActiveSingle:`Slipp filen her`,dropZoneDragActiveMultipleThumbnail:`Slipp bildene her`,dropZoneDragActiveSingleThumbnail:`Slipp bildet her`,dropZoneOpenFileDialogMultiple:`velg filer`,dropZoneOpenFileDialogSingle:`velg en fil`,dropZoneOpenFileDialogMultipleThumbnail:`velg fra kamerarull`,dropZoneOpenFileDialogSingleThumbnail:`velg fra kamerarull`,supportedFormatsPrefix:`Format:`,invalidFormatDefault:e=>`Ugyldig filtype. Tillatte formater: ${e}`,sizeTooLargeDefault:e=>`Filen er for stor. Maks størrelse er ${e}.`,requiredMissing:`Du må laste opp minst én fil.`,genericValidationRejection:`Filen ble avvist av validering.`,unknownFilename:`Ukjent fil`,fileLabel:e=>e===1?`fil`:`filer`,srFileAdded:e=>`Filen «${e}» er lagt til`,srFilesAdded:e=>`${e} filer er lagt til`,srFilesUploadedOfTotal:(e,t,n)=>`${e} av ${t} ${n} lastet opp`,srFilesFailedOfTotal:(e,t,n)=>`Feil ved opplasting: ${e} av ${t} ${n} feilet`};function o(e){if(e==null||e===``)return;if(typeof e==`number`)return Number.isFinite(e)&&e>0?e:void 0;let t=String(e).trim(),n=Number(t);if(!Number.isNaN(n)&&n>0)return n;let r=t.match(/^(\d+(?:\.\d+)?)\s*(B|KB|MB|GB)$/i);if(!r){console.warn(`PktFileUpload: Invalid maxFileSize format "${t}". Use format like "5MB", "500KB", "1GB", or bytes.`);return}let i=parseFloat(r[1]);switch(r[2].toUpperCase()){case`B`:return i;case`KB`:return i*1024;case`MB`:return i*1024*1024;case`GB`:return i*1024*1024*1024;default:return}}function s(e){return e<1024?`${Math.round(e)} B`:e<1024*1024?`${Math.round(e/1024)} KB`:e<1024*1024*1024?`${Math.round(e/(1024*1024))} MB`:`${Math.round(e/(1024*1024*1024))} GB`}function c(e){return Array.isArray(e)?e.map(e=>String(e).trim().toLowerCase()).filter(Boolean):[]}function l(e){return e?e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean):[]}function u(e,t,n){let r=e.toLowerCase().replace(/^\./,``);if(r.includes(`/`)){if(r.endsWith(`/*`)){let e=r.replace(`/*`,``);return n.startsWith(`${e}/`)}return n===r}return t===r}function d(e,t){let n=c(t);if(n.length===0)return!0;let r=e.name.split(`.`).pop()?.toLowerCase()??``,i=e.type.toLowerCase();return n.some(e=>u(e,r,i))}function f(e,t){let n=(e??``).trim();if(n)return n;let r=c(t);return r.length===0?``:r.map(e=>e.includes(`/`)||e.startsWith(`.`)?e:`.${e}`).join(`, `)}function p(e){return e.includes(`/`)?e:e.replace(/^\./,``).toUpperCase()}function m(e,t){let n=c(e);if(n.length>0)return n.map(p).join(`, `);let r=l(t);return r.length>0?r.map(p).join(`, `):``}function h(e,t,n){return((e??``).trim()||t).replace(/\{(\w+)\}/g,(e,t)=>n[t]??`{${t}}`)}function g(e,t){let n=c(t.allowedFormats);if(n.length>0&&!d(e,n)){let e=n.join(`, `),r=`Ugyldig filtype. Tillatte formater: ${e}`;return h(t.formatErrorMessage,r,{formats:e})}let r=o(t.maxFileSize);if(r!==void 0&&e.size>r){let e=s(r),n=`Filen er for stor. Maks størrelse er ${e}.`;return h(t.sizeErrorMessage,n,{maxSize:e})}if(t.onFileValidation){let n=t.onFileValidation(e);if(n)return n}return null}function _(e){let t=e.file;if(t?.type?.startsWith(`image/`))return!0;let n=e.attributes?.targetFilename||t?.name||``;return/\.(jpe?g|png|gif|webp|heic|heif|bmp|svg)$/i.test(n)}function v(e){return typeof e==`number`?`in-progress`:e===`error`?`error`:`idle`}function y(e,t,n){let r={"in-progress":0,error:1,idle:2};return e.map(e=>{let r=t?.find(t=>t.fileId===e.fileId);return{...e,progress:r?.progress??(n===`form`?`done`:`queued`),errorMessage:r?.errorMessage,showProgress:r?.showProgress,lastProgress:r?.lastProgress}}).sort((e,t)=>r[v(e.progress)]-r[v(t.progress)])}function b(e){if(!e)return[];let t=[`a[href]:not([tabindex="-1"])`,`button:not([disabled]):not([tabindex="-1"])`,`input:not([disabled]):not([type="hidden"]):not([tabindex="-1"])`,`select:not([disabled]):not([tabindex="-1"])`,`textarea:not([disabled]):not([tabindex="-1"])`,`[tabindex]:not([tabindex="-1"])`].join(`, `);return Array.from(e.querySelectorAll(t)).filter(e=>!e.hasAttribute(`inert`))}function x(e,t){if(e.key!==`Tab`)return!1;let n=b(t);if(n.length===0)return e.preventDefault(),!0;let r=n[0],i=n[n.length-1],a=(t?.ownerDocument??document).activeElement,o=!!a&&n.includes(a);return e.shiftKey?!o||a===r?(e.preventDefault(),i.focus(),!0):!1:!o||a===i?(e.preventDefault(),r.focus(),!0):!1}function S(e,t){return!t||t<=0||e.length<=t+3?null:{head:e.slice(0,e.length-t),tail:e.slice(-t)}}function C(e,t,n){return n<=0?0:t===`prev`?e<=0?n-1:e-1:e>=n-1?0:e+1}function w(e,t){let n=e.length;if(n===0||!t||t.length===0)return{totalCount:n,uploadedCount:0,failedCount:0};let r=0,i=0;for(let n of e){let e=t.find(e=>e.fileId===n.fileId);e?.progress===`done`?r++:e?.progress===`error`&&i++}return{totalCount:n,uploadedCount:r,failedCount:i}}function T(e,t=a.unknownFilename){return e.attributes?.targetFilename||e.file?.name||t}var E=class extends e.t{constructor(...e){super(...e),this.id=`pkt-fileupload-${i.n()}`,this.name=`files`,this.label=``,this.helptext=``,this.required=!1,this.multiple=!1,this.disabled=!1,this.fullwidth=!1,this.uploadStrategy=`form`,this.itemRenderer=`filename`,this.accept=``,this.allowedFormats=[],this.formatErrorMessage=``,this.sizeErrorMessage=``,this.transfers=[],this.addCommentsEnabled=!1,this.renameFilesEnabled=!1,this.extraOperations=[],this.enableImagePreview=!1,this.hasError=!1,this.errorMessage=``,this.optionalTag=!1,this.requiredTag=!1,this.truncateTail=4,this.files=[],this.isDragActive=!1,this.validationErrorMessage=null,this.addedAnnouncement=``,this.thumbnailUrls={},this.hasInitializedValue=!1,this.hasWarnedInvalidValueCombo=!1,this.thumbnailFileById=new Map,this.connectedForm=null,this.addedAnnouncementTimer=null,this.requiredSelectionMessage=a.requiredMissing,this.onNativeFileChange=e=>{let t=e.target;this.addFiles(t.files?Array.from(t.files):[]),this.uploadStrategy===`custom`&&(t.value=``)},this.openFileDialog=e=>{e.preventDefault(),e.stopPropagation(),!this.disabled&&this.querySelector(`#${this.id}-input`)?.click()},this.onDropZoneClick=e=>{this.disabled||e.target.closest(`.pkt-fileupload__drop-zone__placeholder__title__open-file-dialog`)||this.querySelector(`#${this.id}-input`)?.click()},this.onDragOver=e=>{e.preventDefault(),!this.disabled&&(this.isDragActive=!0)},this.onDragLeave=()=>{this.isDragActive=!1},this.onDrop=e=>{if(e.preventDefault(),this.isDragActive=!1,this.disabled)return;let t=e.dataTransfer?.files?Array.from(e.dataTransfer.files):[];this.addFiles(t)},this.onHostFormSubmit=e=>{!this.required||this.uploadStrategy!==`custom`||this.getCurrentFiles().length>0||(this.validationErrorMessage=this.requiredSelectionMessage,e.preventDefault())}}get isControlled(){return this.value!==void 0}get hasEffectiveError(){return!!this.validationErrorMessage||this.hasError||!!this.errorMessage.trim()}get effectiveErrorMessage(){return this.validationErrorMessage??this.errorMessage??``}get hasValidationError(){return!!this.validationErrorMessage}firstUpdated(e){super.firstUpdated?.(e),this.hasInitializedValue||=(this.files=this.value??this.defaultValue??[],this.syncThumbnailUrls(this.files),!0),this.value!==void 0&&this.defaultValue!==void 0&&this.warnInvalidValueCombo()}willUpdate(e){super.willUpdate(e),this.hasInitializedValue&&this.isControlled&&(e.has(`value`)||e.has(`itemRenderer`)||e.has(`enableImagePreview`))&&(this.files=this.value??[],this.syncThumbnailUrls(this.files))}updated(e){super.updated(e),(e.has(`uploadStrategy`)||e.has(`required`)||e.has(`value`))&&this.syncFormSubmitListener(),this.uploadStrategy===`form`&&(e.has(`value`)||e.has(`files`)||e.has(`uploadStrategy`))&&this.syncNativeInputFiles()}syncNativeInputFiles(){let e=this.querySelector(`#${this.id}-input`);if(!(!e||typeof DataTransfer>`u`))try{let t=new DataTransfer;for(let e of this.getCurrentFiles())e.file&&t.items.add(e.file);e.files=t.files}catch{}}warnInvalidValueCombo(){this.hasWarnedInvalidValueCombo||=(console.warn(`PktFileUpload: Både value og defaultValue er angitt. Komponenten kan være enten kontrollert eller ukontrollert, ikke begge. value vil bli prioritert.`),!0)}disconnectedCallback(){this.teardownFormSubmitListener(),this.addedAnnouncementTimer&&=(clearTimeout(this.addedAnnouncementTimer),null),super.disconnectedCallback(),this.revokeAllThumbnailUrls()}setAddedAnnouncement(e){this.addedAnnouncement=e,this.addedAnnouncementTimer&&clearTimeout(this.addedAnnouncementTimer),this.addedAnnouncementTimer=setTimeout(()=>{this.addedAnnouncement=``,this.addedAnnouncementTimer=null},1500)}connectedCallback(){super.connectedCallback(),this.syncFormSubmitListener()}addFiles(e){if(e.length===0)return;let t=this.multiple?e:[e[0]];for(let e of t){let t=this.validateFile(e);if(t){this.validationErrorMessage=t;return}}this.validationErrorMessage=null;let n=t.map(e=>({fileId:i.n(),file:e,attributes:{targetFilename:e.name}}));this.setAddedAnnouncement(n.length===1?a.srFileAdded(n[0].attributes.targetFilename):a.srFilesAdded(n.length));let r=this.getCurrentFiles(),o=this.multiple?[...r,...n]:[n[0]];this.commitFiles(o,`add`,n.map(e=>e.fileId)),this.uploadStrategy===`custom`&&n.forEach(e=>{this.dispatchEvent(new CustomEvent(`file-upload-requested`,{detail:{fileId:e.fileId,file:e.file,attributes:e.attributes},bubbles:!0,composed:!0}))})}getCurrentFiles(){return this.isControlled?this.value??[]:this.files}cancelTransfer(e){if(this.disabled)return;let t=this.getCurrentFiles().find(t=>t.fileId===e);t&&(this.removeFileItem(e),this.dispatchEvent(new CustomEvent(`transfer-cancelled`,{detail:{fileId:t.fileId,file:t.file,attributes:t.attributes},bubbles:!0,composed:!0})))}removeFileItem(e){if(this.disabled)return;let t=this.getCurrentFiles(),n=t.filter(t=>t.fileId!==e);n.length!==t.length&&this.commitFiles(n,`remove`,[e])}updateFileItem(e,t){let n=this.getCurrentFiles().map(n=>n.fileId===e?{...n,...t}:n);this.commitFiles(n,`update`,[e])}commitFiles(e,t,n){this.isControlled||(this.files=e,this.syncThumbnailUrls(e)),this.validationErrorMessage===this.requiredSelectionMessage&&e.length>0&&(this.validationErrorMessage=null),this.dispatchEvent(new CustomEvent(`files-changed`,{detail:{files:e,reason:t,changedFileIds:n},bubbles:!0,composed:!0}))}getThumbnailUrl(e){return this.thumbnailUrls[e.fileId]}getTransferProgress(e){let t=this.transfers.find(t=>t.fileId===e);return t?t.progress:this.uploadStrategy===`form`?`done`:`queued`}getTransferForFile(e){return this.transfers.find(t=>t.fileId===e)}isImageFile(e){return _(e)}formatFileSize(e){return s(e)}getResolvedAcceptValue(){return f(this.accept,this.allowedFormats)}getSupportedFormatsText(){return m(this.allowedFormats,this.accept)}getSortedFilesAndTransfers(){return y(this.getCurrentFiles(),this.transfers,this.uploadStrategy)}validateFile(e){let t=g(e,{allowedFormats:this.allowedFormats,maxFileSize:this.maxFileSize,formatErrorMessage:this.formatErrorMessage,sizeErrorMessage:this.sizeErrorMessage,onFileValidation:this.onFileValidation});if(t)return t;let n={file:e,errorMessage:null},r=new CustomEvent(`file-validate`,{detail:n,bubbles:!0,composed:!0,cancelable:!0});return this.dispatchEvent(r),n.errorMessage?n.errorMessage:r.defaultPrevented?a.genericValidationRejection:null}syncThumbnailUrls(e){if(!(typeof URL<`u`&&typeof URL.createObjectURL==`function`&&typeof URL.revokeObjectURL==`function`)){this.thumbnailUrls={},this.thumbnailFileById.clear();return}let t=new Set(e.map(e=>e.fileId)),n={};for(let[e,n]of Object.entries(this.thumbnailUrls))t.has(e)||(URL.revokeObjectURL(n),this.thumbnailFileById.delete(e));for(let t of e){let e=this.thumbnailUrls[t.fileId],r=this.thumbnailFileById.get(t.fileId);if(!t.file||!this.isImageFile(t)){e&&(URL.revokeObjectURL(e),this.thumbnailFileById.delete(t.fileId));continue}if(e&&r===t.file){n[t.fileId]=e;continue}e&&r!==t.file&&URL.revokeObjectURL(e);let i=URL.createObjectURL(t.file);this.thumbnailFileById.set(t.fileId,t.file),n[t.fileId]=i}this.thumbnailUrls=n}revokeAllThumbnailUrls(){if(typeof URL>`u`||typeof URL.revokeObjectURL!=`function`){this.thumbnailUrls={},this.thumbnailFileById.clear();return}Object.values(this.thumbnailUrls).forEach(e=>URL.revokeObjectURL(e)),this.thumbnailUrls={},this.thumbnailFileById.clear()}getSrUploadedMessage(){if(this.addedAnnouncement)return this.addedAnnouncement;let{totalCount:e,uploadedCount:t}=w(this.getCurrentFiles(),this.transfers);return e===0||t===0?``:a.srFilesUploadedOfTotal(t,e,a.fileLabel(e))}getSrErrorsMessage(){let{totalCount:e,failedCount:t}=w(this.getCurrentFiles(),this.transfers);return e===0||t===0?``:a.srFilesFailedOfTotal(t,e,a.fileLabel(e))}syncFormSubmitListener(){let e=this.closest(`form`);this.connectedForm!==e&&(this.teardownFormSubmitListener(),this.connectedForm=e,this.connectedForm&&this.connectedForm.addEventListener(`submit`,this.onHostFormSubmit))}teardownFormSubmitListener(){this.connectedForm&&=(this.connectedForm.removeEventListener(`submit`,this.onHostFormSubmit),null)}};e.r([e.s({type:String})],E.prototype,`id`,void 0),e.r([e.s({type:String})],E.prototype,`name`,void 0),e.r([e.s({type:String})],E.prototype,`label`,void 0),e.r([e.s({type:String})],E.prototype,`helptext`,void 0),e.r([e.s({type:Boolean,reflect:!0})],E.prototype,`required`,void 0),e.r([e.s({type:Boolean,reflect:!0})],E.prototype,`multiple`,void 0),e.r([e.s({type:Boolean,reflect:!0})],E.prototype,`disabled`,void 0),e.r([e.s({type:Boolean,reflect:!0,attribute:`fullwidth`})],E.prototype,`fullwidth`,void 0),e.r([e.s({type:String,reflect:!0,attribute:`upload-strategy`})],E.prototype,`uploadStrategy`,void 0),e.r([e.s({type:String,reflect:!0,attribute:`item-renderer`})],E.prototype,`itemRenderer`,void 0),e.r([e.s({type:String})],E.prototype,`accept`,void 0),e.r([e.s({converter:r.t.csvToArray,attribute:`allowed-formats`})],E.prototype,`allowedFormats`,void 0),e.r([e.s({type:String,attribute:`format-error-message`})],E.prototype,`formatErrorMessage`,void 0),e.r([e.s({attribute:`max-file-size`})],E.prototype,`maxFileSize`,void 0),e.r([e.s({type:String,attribute:`size-error-message`})],E.prototype,`sizeErrorMessage`,void 0),e.r([e.s({attribute:!1})],E.prototype,`onFileValidation`,void 0),e.r([e.s({attribute:!1})],E.prototype,`transfers`,void 0),e.r([e.s({type:Boolean,attribute:`add-comments-enabled`})],E.prototype,`addCommentsEnabled`,void 0),e.r([e.s({type:Boolean,attribute:`rename-files-enabled`})],E.prototype,`renameFilesEnabled`,void 0),e.r([e.s({attribute:!1})],E.prototype,`extraOperations`,void 0),e.r([e.s({type:Boolean,reflect:!0,attribute:`enable-image-preview`})],E.prototype,`enableImagePreview`,void 0),e.r([e.s({type:Boolean,attribute:`has-error`})],E.prototype,`hasError`,void 0),e.r([e.s({type:String,attribute:`error-message`})],E.prototype,`errorMessage`,void 0),e.r([e.s({type:Boolean,attribute:`optional-tag`})],E.prototype,`optionalTag`,void 0),e.r([e.s({type:Boolean,attribute:`required-tag`})],E.prototype,`requiredTag`,void 0),e.r([e.s({type:Number,attribute:`truncate-tail`})],E.prototype,`truncateTail`,void 0),e.r([e.s({attribute:!1})],E.prototype,`value`,void 0),e.r([e.s({attribute:!1})],E.prototype,`defaultValue`,void 0),e.r([e.o()],E.prototype,`files`,void 0),e.r([e.o()],E.prototype,`isDragActive`,void 0),e.r([e.o()],E.prototype,`validationErrorMessage`,void 0),e.r([e.o()],E.prototype,`addedAnnouncement`,void 0),e.r([e.o()],E.prototype,`thumbnailUrls`,void 0);var D=`comments`,O=e=>{let t=new Date(e);return Number.isNaN(t.getTime())?e:`${String(t.getDate()).padStart(2,`0`)}.${String(t.getMonth()+1).padStart(2,`0`)}.${t.getFullYear()} kl. ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`},k=(e,t,n)=>{e.key===`Enter`&&(e.preventDefault(),e.stopPropagation(),t()),e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n())},A=(e,t,n)=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n()),(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),e.stopPropagation(),t())},j=e=>({id:`remove`,title:`Slett`,ariaLabel:`Slett fil`,onClick:({file:t})=>e(t.fileId)}),M=()=>({id:`rename`,title:`Rediger`,ariaLabel:`Rediger filnavn`,renderInlineUI:t=>{let n=t.getAttribute(`targetFilename`)||t.file.attributes?.targetFilename||t.file.file?.name||``,r=`pkt-fileupload-rename-${t.file.fileId}`,i=()=>{let e=document.getElementById(r)?.value?.trim();e&&t.setAttribute(`targetFilename`,e),t.close()};return e.d`
2
2
  <label for=${r} class="pkt-sr-only">Endre filnavn</label>
3
3
  <input
4
4
  id=${r}
@@ -6,7 +6,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
6
6
  class="pkt-fileupload__queue-display__item__rename-input"
7
7
  ?disabled=${t.disabled}
8
8
  .value=${n}
9
- @keydown=${e=>O(e,i,t.close)}
9
+ @keydown=${e=>k(e,i,t.close)}
10
10
  />
11
11
  <button
12
12
  type="button"
@@ -28,7 +28,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
28
28
  type="hidden"
29
29
  name=${`${t.inputName}-targetFilename`}
30
30
  value=${n}
31
- />`}}),M=()=>({id:`comment`,title:e=>(e.attributes?.[E]??[]).length>0?``:`Legg til kommentar`,ariaLabel:`Legg til kommentar`,renderExtendedUI:t=>{let n=(t.getAttribute(E)??[])[0],r=`pkt-fileupload-comment-${t.file.fileId}`,i=()=>{let e=document.getElementById(r)?.value?.trim();e&&t.setAttribute(E,[{text:e,timestamp:new Date().toISOString()}]),t.close()};return e.d`
31
+ />`}}),N=()=>({id:`comment`,title:e=>(e.attributes?.[D]??[]).length>0?``:`Legg til kommentar`,ariaLabel:`Legg til kommentar`,renderExtendedUI:t=>{let n=(t.getAttribute(D)??[])[0],r=`pkt-fileupload-comment-${t.file.fileId}`,i=()=>{let e=document.getElementById(r)?.value?.trim();e&&t.setAttribute(D,[{text:e,timestamp:new Date().toISOString()}]),t.close()};return e.d`
32
32
  <label for=${r} class="pkt-fileupload__queue-display__item__comment-label">
33
33
  ${n?`Rediger kommentar`:`Legg til kommentar`}
34
34
  </label>
@@ -39,7 +39,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
39
39
  .value=${n?.text??``}
40
40
  rows="2"
41
41
  placeholder="Skriv inn kommentar"
42
- @keydown=${e=>k(e,i,t.close)}
42
+ @keydown=${e=>A(e,i,t.close)}
43
43
  ></textarea>
44
44
  <button
45
45
  type="button"
@@ -57,7 +57,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
57
57
  >
58
58
  Avbryt
59
59
  </button>
60
- `},renderContent:t=>{if(t.isActive)return null;let n=t.getAttribute(E)??[];if(n.length===0)return null;let r=n[0];return e.d`
60
+ `},renderContent:t=>{if(t.isActive)return null;let n=t.getAttribute(D)??[];if(n.length===0)return null;let r=n[0];return e.d`
61
61
  <div class="pkt-fileupload__queue-display__item__comments">
62
62
  <div class="pkt-fileupload__queue-display__item__comment">
63
63
  <div class="pkt-fileupload__queue-display__item__comment__content">
@@ -65,7 +65,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
65
65
  ${r.text}
66
66
  </span>
67
67
  <time class="pkt-fileupload__queue-display__item__comment__time">
68
- ${D(r.timestamp)}
68
+ ${O(r.timestamp)}
69
69
  </time>
70
70
  </div>
71
71
  <div class="pkt-fileupload__queue-display__item__comment__actions">
@@ -83,18 +83,18 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
83
83
  class="pkt-fileupload__queue-display__item__comment__action"
84
84
  aria-label="Slett kommentar"
85
85
  ?disabled=${t.disabled}
86
- @click=${()=>t.setAttribute(E,void 0)}
86
+ @click=${()=>t.setAttribute(D,void 0)}
87
87
  >
88
88
  <pkt-icon name="trash-can"></pkt-icon>
89
89
  </button>
90
90
  </div>
91
91
  </div>
92
92
  </div>
93
- `},renderHidden:t=>{let n=t.getAttribute(E);return e.d`<input
93
+ `},renderHidden:t=>{let n=t.getAttribute(D);return e.d`<input
94
94
  type="hidden"
95
95
  name=${`${t.inputName}-comments`}
96
96
  value=${n?JSON.stringify(n):``}
97
- />`}}),N=(t,n)=>{let r=x(t,n);return r?e.d`<span
97
+ />`}}),P=(t,n)=>{let r=S(t,n);return r?e.d`<span
98
98
  class="pkt-fileupload__queue-display__item__title__head"
99
99
  data-pkt-truncate-part="first"
100
100
  >${r.head}</span
@@ -102,19 +102,19 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
102
102
  class="pkt-fileupload__queue-display__item__title__tail"
103
103
  data-pkt-truncate-part="tail"
104
104
  >${r.tail}</span
105
- >`:e.d`<span data-pkt-truncate-part="first">${t}</span>`},P=(t,n,r)=>e.d`
105
+ >`:e.d`<span data-pkt-truncate-part="first">${t}</span>`},F=(t,n,r)=>e.d`
106
106
  <p class="pkt-fileupload__queue-display__item__title">
107
- ${N(t,r)}${n?e.d`<span class="pkt-fileupload__queue-display__item__filesize"> (${n})</span>`:null}
107
+ ${P(t,r)}${n?e.d`<span class="pkt-fileupload__queue-display__item__filesize"> (${n})</span>`:null}
108
108
  </p>
109
- `,F=e=>typeof e==`number`?`in-progress`:e===`error`?`error`:`idle`,I=t=>e.d`<span class="pkt-fileupload__queue-display__item__loading-text" aria-label="Laster opp fil"
109
+ `,I=e=>typeof e==`number`?`in-progress`:e===`error`?`error`:`idle`,L=t=>e.d`<span class="pkt-fileupload__queue-display__item__loading-text" aria-label="Laster opp fil"
110
110
  >${t??`Laster opp...`}</span
111
- >`,L=({operationId:e,file:t,inputName:n,disabled:r,isActive:i,onActivateOperation:a,onCloseOperation:o,getFileAttribute:s,setFileAttribute:c})=>({file:t,inputName:n,disabled:r,isActive:i,activate:()=>a(t.fileId,e),close:()=>o(t.fileId),getAttribute:e=>s(t.fileId,e),setAttribute:(e,n)=>c(t.fileId,e,n)}),R=({file:t,fileSize:n,disabled:r,transferProgress:i,transferShowProgress:a,loadingText:o,truncateTail:s,onCancel:c,iconName:l=`document-text`})=>{let u=w(t),d=a??i!==0;return e.d`
111
+ >`,R=({operationId:e,file:t,inputName:n,disabled:r,isActive:i,onActivateOperation:a,onCloseOperation:o,getFileAttribute:s,setFileAttribute:c})=>({file:t,inputName:n,disabled:r,isActive:i,activate:()=>a(t.fileId,e),close:()=>o(t.fileId),getAttribute:e=>s(t.fileId,e),setAttribute:(e,n)=>c(t.fileId,e,n)}),z=({file:t,fileSize:n,disabled:r,transferProgress:i,transferShowProgress:a,loadingText:o,truncateTail:s,onCancel:c,iconName:l=`document-text`})=>{let u=T(t),d=a??i!==0;return e.d`
112
112
  <pkt-icon
113
113
  name=${l}
114
114
  class="pkt-fileupload__queue-display__item__icon pkt-icon--medium"
115
115
  aria-hidden="true"
116
116
  ></pkt-icon>
117
- ${P(u,n,s)}
117
+ ${F(u,n,s)}
118
118
  <button
119
119
  type="button"
120
120
  class="pkt-fileupload__queue-display__item__cancel-button"
@@ -135,14 +135,14 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
135
135
  <span class="pkt-fileupload__queue-display__item__percentage" aria-hidden="true"
136
136
  >${Math.round(i*100)}%</span
137
137
  >
138
- `:I(o)}
139
- `},z=({file:t,fileSize:n,disabled:r,transferShowProgress:i,transferLastProgress:a,transferErrorMessage:o,truncateTail:s,onCancel:c})=>{let l=w(t),u=!!i,d=Math.round((a??1)*100);return e.d`
138
+ `:L(o)}
139
+ `},B=({file:t,fileSize:n,disabled:r,transferShowProgress:i,transferLastProgress:a,transferErrorMessage:o,truncateTail:s,onCancel:c})=>{let l=T(t),u=!!i,d=Math.round((a??1)*100);return e.d`
140
140
  <pkt-icon
141
141
  name="alert-error"
142
142
  class="pkt-fileupload__queue-display__item__icon pkt-icon--medium"
143
143
  aria-hidden="true"
144
144
  ></pkt-icon>
145
- ${P(l,n,s)}
145
+ ${F(l,n,s)}
146
146
  <button
147
147
  type="button"
148
148
  class="pkt-fileupload__queue-display__item__cancel-button"
@@ -164,7 +164,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
164
164
  ${o?e.d`<span class="pkt-fileupload__queue-display__item__error-message"
165
165
  >${o}</span
166
166
  >`:null}
167
- `},B=({file:t,disabled:r,inputName:i,operations:a,activeOperationId:o,onActivateOperation:s,onCloseOperation:c,getFileAttribute:l,setFileAttribute:u})=>{let d=a.find(e=>e.id===o);if(d?.renderInlineUI||d?.renderExtendedUI)return null;let f=a.map(a=>{let d=L({operationId:a.id,file:t,inputName:i,disabled:r,isActive:a.id===o,onActivateOperation:s,onCloseOperation:c,getFileAttribute:l,setFileAttribute:u}),f=typeof a.title==`function`?a.title(t):a.title;return f?e.d`<button
167
+ `},V=({file:t,disabled:r,inputName:i,operations:a,activeOperationId:o,onActivateOperation:s,onCloseOperation:c,getFileAttribute:l,setFileAttribute:u})=>{let d=a.find(e=>e.id===o);if(d?.renderInlineUI||d?.renderExtendedUI)return null;let f=a.map(a=>{let d=R({operationId:a.id,file:t,inputName:i,disabled:r,isActive:a.id===o,onActivateOperation:s,onCloseOperation:c,getFileAttribute:l,setFileAttribute:u}),f=typeof a.title==`function`?a.title(t):a.title;return f?e.d`<button
168
168
  type="button"
169
169
  class="pkt-fileupload__queue-display__item__operation"
170
170
  aria-label=${n.t(typeof a.ariaLabel==`function`?a.ariaLabel(t):a.ariaLabel)}
@@ -172,18 +172,18 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
172
172
  @click=${()=>{(a.renderInlineUI||a.renderExtendedUI)&&d.activate(),a.onClick?.(d)}}
173
173
  >
174
174
  ${f}
175
- </button>`:null}).filter(Boolean);return f.length===0?null:e.d`<div class="pkt-fileupload__queue-display__item__actions">${f}</div>`},V=({file:t,disabled:n,inputName:r,operations:i,activeOperationId:a,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l})=>i.map(i=>{if(!i.renderContent)return null;let u=L({operationId:i.id,file:t,inputName:r,disabled:n,isActive:i.id===a,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l}),d=i.renderContent(u);return d==null?null:e.d`<div class="pkt-fileupload__queue-display__item__operation-content">
175
+ </button>`:null}).filter(Boolean);return f.length===0?null:e.d`<div class="pkt-fileupload__queue-display__item__actions">${f}</div>`},H=({file:t,disabled:n,inputName:r,operations:i,activeOperationId:a,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l})=>i.map(i=>{if(!i.renderContent)return null;let u=R({operationId:i.id,file:t,inputName:r,disabled:n,isActive:i.id===a,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l}),d=i.renderContent(u);return d==null?null:e.d`<div class="pkt-fileupload__queue-display__item__operation-content">
176
176
  ${d}
177
- </div>`}),H=({file:t,disabled:n,inputName:r,operations:i,activeOperationId:a,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l})=>{if(!a)return null;let u=i.find(e=>e.id===a);if(!u?.renderExtendedUI)return null;let d=L({operationId:u.id,file:t,inputName:r,disabled:n,isActive:!0,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l});return e.d`<div class="pkt-fileupload__queue-display__item__expanded-operation-ui">
177
+ </div>`}),U=({file:t,disabled:n,inputName:r,operations:i,activeOperationId:a,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l})=>{if(!a)return null;let u=i.find(e=>e.id===a);if(!u?.renderExtendedUI)return null;let d=R({operationId:u.id,file:t,inputName:r,disabled:n,isActive:!0,onActivateOperation:o,onCloseOperation:s,getFileAttribute:c,setFileAttribute:l});return e.d`<div class="pkt-fileupload__queue-display__item__expanded-operation-ui">
178
178
  ${u.renderExtendedUI(d)}
179
- </div>`},U=({file:e,disabled:t,inputName:n,operations:r,activeOperationId:i,onActivateOperation:a,onCloseOperation:o,getFileAttribute:s,setFileAttribute:c})=>r.map(r=>{if(!r.renderHidden)return null;let l=L({operationId:r.id,file:e,inputName:n,disabled:t,isActive:r.id===i,onActivateOperation:a,onCloseOperation:o,getFileAttribute:s,setFileAttribute:c});return r.renderHidden(l)}),W=(t,n,r)=>e.d`
179
+ </div>`},W=({file:e,disabled:t,inputName:n,operations:r,activeOperationId:i,onActivateOperation:a,onCloseOperation:o,getFileAttribute:s,setFileAttribute:c})=>r.map(r=>{if(!r.renderHidden)return null;let l=R({operationId:r.id,file:e,inputName:n,disabled:t,isActive:r.id===i,onActivateOperation:a,onCloseOperation:o,getFileAttribute:s,setFileAttribute:c});return r.renderHidden(l)}),G=(t,n,r)=>e.d`
180
180
  <pkt-icon
181
181
  name="document-text"
182
182
  class="pkt-fileupload__queue-display__item__icon pkt-icon--medium"
183
183
  aria-hidden="true"
184
184
  ></pkt-icon>
185
- ${P(w(t),n,r)}
186
- `,G=({file:r,thumbnailUrl:i,previewEnabled:a,canOpenPreview:o,truncateTail:s,onOpenPreview:c,onThumbnailImageError:l})=>{let u=w(r),d=!!i,f=!!a&&!!o,p=f&&!!c;return e.d`
185
+ ${F(T(t),n,r)}
186
+ `,K=({file:r,thumbnailUrl:i,previewEnabled:a,canOpenPreview:o,truncateTail:s,onOpenPreview:c,onThumbnailImageError:l})=>{let u=T(r),d=!!i,f=!!a&&!!o,p=f&&!!c;return e.d`
187
187
  <div
188
188
  class=${t.t({"pkt-fileupload__queue-display__item__thumbnail":!0,"pkt-fileupload__queue-display__item__thumbnail--fallback":!d})}
189
189
  >
@@ -212,15 +212,15 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
212
212
  </span>
213
213
  </button>
214
214
  <span class="pkt-fileupload__queue-display__item__thumbnail__title"
215
- >${N(u,s)}</span
215
+ >${P(u,s)}</span
216
216
  >
217
217
  </div>
218
- `},K=({file:n,inputName:r,disabled:i,fileSize:a,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d,transferProgress:f,transferErrorMessage:p,transferShowProgress:m,transferLastProgress:h,loadingText:g,truncateTail:_,onCancel:v})=>{let y=F(f),b=o.find(e=>e.id===s),x=b?.renderInlineUI?b.renderInlineUI(L({operationId:b.id,file:n,inputName:r,disabled:i,isActive:!0,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d})):null;return e.d`
218
+ `},q=({file:n,inputName:r,disabled:i,fileSize:a,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d,transferProgress:f,transferErrorMessage:p,transferShowProgress:m,transferLastProgress:h,loadingText:g,truncateTail:_,onCancel:v})=>{let y=I(f),b=o.find(e=>e.id===s),x=b?.renderInlineUI?b.renderInlineUI(R({operationId:b.id,file:n,inputName:r,disabled:i,isActive:!0,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d})):null;return e.d`
219
219
  <li
220
220
  class=${t.t({"pkt-fileupload__queue-display__item":!0,"pkt-fileupload__queue-display__item--in-progress":y===`in-progress`,"pkt-fileupload__queue-display__item--error":y===`error`,[`pkt-fileupload__queue-display__item--${f}`]:typeof f==`string`})}
221
221
  >
222
- ${U({file:n,disabled:i,inputName:r,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d})}
223
- ${y===`in-progress`?R({file:n,fileSize:a,disabled:i,transferProgress:f,transferShowProgress:m,loadingText:g,truncateTail:_,onCancel:v}):y===`error`?z({file:n,fileSize:a,disabled:i,transferShowProgress:m,transferLastProgress:h,transferErrorMessage:p,truncateTail:_,onCancel:v}):x?e.d`
222
+ ${W({file:n,disabled:i,inputName:r,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d})}
223
+ ${y===`in-progress`?z({file:n,fileSize:a,disabled:i,transferProgress:f,transferShowProgress:m,loadingText:g,truncateTail:_,onCancel:v}):y===`error`?B({file:n,fileSize:a,disabled:i,transferShowProgress:m,transferLastProgress:h,transferErrorMessage:p,truncateTail:_,onCancel:v}):x?e.d`
224
224
  <pkt-icon
225
225
  name="document-text"
226
226
  class="pkt-fileupload__queue-display__item__icon pkt-icon--medium"
@@ -229,17 +229,17 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
229
229
  <div class="pkt-fileupload__queue-display__item__inline-ui">
230
230
  ${x}
231
231
  </div>
232
- `:W(n,a,_)}
233
- ${y===`idle`?B({file:n,disabled:i,inputName:r,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d}):null}
232
+ `:G(n,a,_)}
234
233
  ${y===`idle`?V({file:n,disabled:i,inputName:r,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d}):null}
235
234
  ${y===`idle`?H({file:n,disabled:i,inputName:r,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d}):null}
235
+ ${y===`idle`?U({file:n,disabled:i,inputName:r,operations:o,activeOperationId:s,onActivateOperation:c,onCloseOperation:l,getFileAttribute:u,setFileAttribute:d}):null}
236
236
  </li>
237
- `},q=({file:n,inputName:r,disabled:i,fileSize:a,thumbnailUrl:o,previewEnabled:s,canOpenPreview:c,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m,transferProgress:h,transferErrorMessage:g,transferShowProgress:_,transferLastProgress:v,loadingText:y,truncateTail:b,onCancel:x,onOpenPreview:S,onThumbnailImageError:C})=>{let w=F(h),T=l.find(e=>e.id===u),E=T?.renderInlineUI?T.renderInlineUI(L({operationId:T.id,file:n,inputName:r,disabled:i,isActive:!0,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m})):null;return e.d`
237
+ `},J=({file:n,inputName:r,disabled:i,fileSize:a,thumbnailUrl:o,previewEnabled:s,canOpenPreview:c,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m,transferProgress:h,transferErrorMessage:g,transferShowProgress:_,transferLastProgress:v,loadingText:y,truncateTail:b,onCancel:x,onOpenPreview:S,onThumbnailImageError:C})=>{let w=I(h),T=l.find(e=>e.id===u),E=T?.renderInlineUI?T.renderInlineUI(R({operationId:T.id,file:n,inputName:r,disabled:i,isActive:!0,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m})):null;return e.d`
238
238
  <li
239
239
  class=${t.t({"pkt-fileupload__queue-display__item":!0,"pkt-fileupload__queue-display__item--in-progress":w===`in-progress`,"pkt-fileupload__queue-display__item--error":w===`error`,[`pkt-fileupload__queue-display__item--${h}`]:typeof h==`string`})}
240
240
  >
241
- ${U({file:n,disabled:i,inputName:r,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m})}
242
- ${w===`in-progress`?R({file:n,fileSize:a,disabled:i,transferProgress:h,transferShowProgress:_,loadingText:y,truncateTail:b,onCancel:x,iconName:`picture`}):w===`error`?z({file:n,fileSize:a,disabled:i,transferShowProgress:_,transferLastProgress:v,transferErrorMessage:g,truncateTail:b,onCancel:x}):E?e.d`
241
+ ${W({file:n,disabled:i,inputName:r,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m})}
242
+ ${w===`in-progress`?z({file:n,fileSize:a,disabled:i,transferProgress:h,transferShowProgress:_,loadingText:y,truncateTail:b,onCancel:x,iconName:`picture`}):w===`error`?B({file:n,fileSize:a,disabled:i,transferShowProgress:_,transferLastProgress:v,transferErrorMessage:g,truncateTail:b,onCancel:x}):E?e.d`
243
243
  <pkt-icon
244
244
  name="picture"
245
245
  class="pkt-fileupload__queue-display__item__icon pkt-icon--medium"
@@ -248,12 +248,12 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
248
248
  <div class="pkt-fileupload__queue-display__item__inline-ui">
249
249
  ${E}
250
250
  </div>
251
- `:G({file:n,thumbnailUrl:o,previewEnabled:s,canOpenPreview:c,truncateTail:b,onOpenPreview:S,onThumbnailImageError:C})}
252
- ${w===`idle`?B({file:n,disabled:i,inputName:r,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m}):null}
251
+ `:K({file:n,thumbnailUrl:o,previewEnabled:s,canOpenPreview:c,truncateTail:b,onOpenPreview:S,onThumbnailImageError:C})}
253
252
  ${w===`idle`?V({file:n,disabled:i,inputName:r,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m}):null}
254
253
  ${w===`idle`?H({file:n,disabled:i,inputName:r,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m}):null}
254
+ ${w===`idle`?U({file:n,disabled:i,inputName:r,operations:l,activeOperationId:u,onActivateOperation:d,onCloseOperation:f,getFileAttribute:p,setFileAttribute:m}):null}
255
255
  </li>
256
- `},J=class extends T{constructor(...e){super(...e),this.activeOperationByFileId={},this.isPreviewModalOpen=!1,this.previewCurrentIndex=0,this.failedImageFileIds={},this.closePreview=()=>{this.isPreviewModalOpen=!1},this.onPreviewKeyDown=(e,t)=>{if(this.isPreviewModalOpen){if(e.key===`Tab`){b(e,e.currentTarget);return}switch(e.key){case`ArrowLeft`:e.preventDefault(),this.navigatePreview(`prev`,t);break;case`ArrowRight`:e.preventDefault(),this.navigatePreview(`next`,t);break;case`Escape`:e.preventDefault(),this.closePreview();break;default:break}}}}render(){let n=this.renderContent();return this.label?e.d`
256
+ `},Y=class extends E{constructor(...e){super(...e),this.activeOperationByFileId={},this.isPreviewModalOpen=!1,this.previewCurrentIndex=0,this.failedImageFileIds={},this.closePreview=()=>{this.isPreviewModalOpen=!1},this.onPreviewKeyDown=(e,t)=>{if(this.isPreviewModalOpen){if(e.key===`Tab`){x(e,e.currentTarget);return}switch(e.key){case`ArrowLeft`:e.preventDefault(),this.navigatePreview(`prev`,t);break;case`ArrowRight`:e.preventDefault(),this.navigatePreview(`next`,t);break;case`Escape`:e.preventDefault(),this.closePreview();break;default:break}}}}render(){let n=this.renderContent();return this.label?e.d`
257
257
  <pkt-input-wrapper
258
258
  .forId=${`${this.id}-input`}
259
259
  .label=${this.label}
@@ -266,7 +266,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
266
266
  >
267
267
  ${n}
268
268
  </pkt-input-wrapper>
269
- `:n}renderContent(){let r=this.getSortedFilesAndTransfers(),a=this.getPreviewableImages(r),o=this.getSupportedFormatsText(),s=[!this.label&&this.helptext?`${this.id}-helptext`:void 0,this.hasEffectiveError?`${this.id}-error`:void 0].filter(Boolean).join(` `)||void 0,c=this.itemRenderer===`thumbnail`?this.multiple?{dragInactive:i.dropZoneDragMultipleThumbnail,dragActive:i.dropZoneDragActiveMultipleThumbnail,openFileDialog:i.dropZoneOpenFileDialogMultipleThumbnail}:{dragInactive:i.dropZoneDragSingleThumbnail,dragActive:i.dropZoneDragActiveSingleThumbnail,openFileDialog:i.dropZoneOpenFileDialogSingleThumbnail}:this.multiple?{dragInactive:i.dropZoneDragMultiple,dragActive:i.dropZoneDragActiveMultiple,openFileDialog:i.dropZoneOpenFileDialogMultiple}:{dragInactive:i.dropZoneDragSingle,dragActive:i.dropZoneDragActiveSingle,openFileDialog:i.dropZoneOpenFileDialogSingle};return e.d`
269
+ `:n}renderContent(){let r=this.getSortedFilesAndTransfers(),i=this.getPreviewableImages(r),o=this.getSupportedFormatsText(),s=[!this.label&&this.helptext?`${this.id}-helptext`:void 0,this.hasEffectiveError?`${this.id}-error`:void 0].filter(Boolean).join(` `)||void 0,c=this.itemRenderer===`thumbnail`?this.multiple?{dragInactive:a.dropZoneDragMultipleThumbnail,dragActive:a.dropZoneDragActiveMultipleThumbnail,openFileDialog:a.dropZoneOpenFileDialogMultipleThumbnail}:{dragInactive:a.dropZoneDragSingleThumbnail,dragActive:a.dropZoneDragActiveSingleThumbnail,openFileDialog:a.dropZoneOpenFileDialogSingleThumbnail}:this.multiple?{dragInactive:a.dropZoneDragMultiple,dragActive:a.dropZoneDragActiveMultiple,openFileDialog:a.dropZoneOpenFileDialogMultiple}:{dragInactive:a.dropZoneDragSingle,dragActive:a.dropZoneDragActiveSingle,openFileDialog:a.dropZoneOpenFileDialogSingle};return e.d`
270
270
  <div
271
271
  class=${t.t({"pkt-fileupload":!0,"pkt-fileupload--full-width":this.fullwidth,"pkt-fileupload--error":this.hasEffectiveError,"pkt-fileupload--disabled":this.disabled})}
272
272
  aria-disabled=${String(this.disabled)}
@@ -317,7 +317,7 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
317
317
  </button>`}
318
318
  </p>
319
319
  ${o?e.d`<p class="pkt-fileupload__drop-zone__placeholder__formats">
320
- ${i.supportedFormatsPrefix} ${o}
320
+ ${a.supportedFormatsPrefix} ${o}
321
321
  </p>`:null}
322
322
  </div>
323
323
  </div>
@@ -334,11 +334,11 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
334
334
  </pkt-alert>
335
335
  `:null}
336
336
  ${r.length>0?e.d`<ul class="pkt-fileupload__queue-display">
337
- ${r.map(e=>this.renderQueueItem(e,a))}
337
+ ${r.map(e=>this.renderQueueItem(e,i))}
338
338
  </ul>`:null}
339
- ${this.renderPreviewModal(a)}
339
+ ${this.renderPreviewModal(i)}
340
340
  </div>
341
- `}renderQueueItem(e,t){let n=typeof e.file?.size==`number`?this.formatFileSize(e.file.size):``,r=this.getQueueItemOperations();if(this.itemRenderer===`thumbnail`){let i=this.canOpenPreview(e),a=this.failedImageFileIds[e.fileId]?.thumbnail?void 0:this.getThumbnailUrl(e);return q({file:e,inputName:this.name,disabled:this.disabled,fileSize:n,operations:r,activeOperationId:this.activeOperationByFileId[e.fileId],onActivateOperation:(e,t)=>this.activateOperation(e,t),onCloseOperation:e=>this.closeOperation(e),getFileAttribute:(e,t)=>this.getFileAttribute(e,t),setFileAttribute:(e,t,n)=>this.setFileAttribute(e,t,n),thumbnailUrl:a,previewEnabled:this.enableImagePreview,canOpenPreview:i,transferProgress:e.progress,transferErrorMessage:e.errorMessage,transferShowProgress:e.showProgress,transferLastProgress:e.lastProgress,loadingText:`Laster opp`,truncateTail:this.truncateTail,onCancel:e=>this.cancelTransfer(e),onOpenPreview:e=>this.openPreview(e,t),onThumbnailImageError:e=>this.markImageFailed(e,`thumbnail`)})}return K({file:e,inputName:this.name,disabled:this.disabled,fileSize:n,operations:r,activeOperationId:this.activeOperationByFileId[e.fileId],onActivateOperation:(e,t)=>this.activateOperation(e,t),onCloseOperation:e=>this.closeOperation(e),getFileAttribute:(e,t)=>this.getFileAttribute(e,t),setFileAttribute:(e,t,n)=>this.setFileAttribute(e,t,n),transferProgress:e.progress,transferErrorMessage:e.errorMessage,transferShowProgress:e.showProgress,transferLastProgress:e.lastProgress,loadingText:`Laster opp`,truncateTail:this.truncateTail,onCancel:e=>this.cancelTransfer(e)})}markImageFailed(e,t){this.failedImageFileIds={...this.failedImageFileIds,[e]:{...this.failedImageFileIds[e],[t]:!0}}}getPreviewableImages(e){return this.enableImagePreview?e.filter(e=>e.progress===`done`&&this.isImageFile(e)):[]}canOpenPreview(e){return this.enableImagePreview&&e.progress===`done`&&this.isImageFile(e)}openPreview(e,t){let n=t.findIndex(t=>t.fileId===e);n<0||(this.previewCurrentIndex=n,this.isPreviewModalOpen=!0,this.failedImageFileIds={...this.failedImageFileIds,[e]:{...this.failedImageFileIds[e],preview:!1}})}navigatePreview(e,t){t.length!==0&&(this.previewCurrentIndex=S(this.previewCurrentIndex,e,t.length))}renderPreviewModal(t){if(!this.enableImagePreview||t.length===0)return null;let n=t[this.previewCurrentIndex];if(!n)return null;let r=t.length>1,i=this.getThumbnailUrl(n),a=!!i&&!this.failedImageFileIds[n.fileId]?.preview,o=n.attributes?.targetFilename||n.file?.name||`Forhåndsvisning`;return e.d`
341
+ `}renderQueueItem(e,t){let n=typeof e.file?.size==`number`?this.formatFileSize(e.file.size):``,r=this.getQueueItemOperations();if(this.itemRenderer===`thumbnail`){let i=this.canOpenPreview(e),a=this.failedImageFileIds[e.fileId]?.thumbnail?void 0:this.getThumbnailUrl(e);return J({file:e,inputName:this.name,disabled:this.disabled,fileSize:n,operations:r,activeOperationId:this.activeOperationByFileId[e.fileId],onActivateOperation:(e,t)=>this.activateOperation(e,t),onCloseOperation:e=>this.closeOperation(e),getFileAttribute:(e,t)=>this.getFileAttribute(e,t),setFileAttribute:(e,t,n)=>this.setFileAttribute(e,t,n),thumbnailUrl:a,previewEnabled:this.enableImagePreview,canOpenPreview:i,transferProgress:e.progress,transferErrorMessage:e.errorMessage,transferShowProgress:e.showProgress,transferLastProgress:e.lastProgress,loadingText:`Laster opp`,truncateTail:this.truncateTail,onCancel:e=>this.cancelTransfer(e),onOpenPreview:e=>this.openPreview(e,t),onThumbnailImageError:e=>this.markImageFailed(e,`thumbnail`)})}return q({file:e,inputName:this.name,disabled:this.disabled,fileSize:n,operations:r,activeOperationId:this.activeOperationByFileId[e.fileId],onActivateOperation:(e,t)=>this.activateOperation(e,t),onCloseOperation:e=>this.closeOperation(e),getFileAttribute:(e,t)=>this.getFileAttribute(e,t),setFileAttribute:(e,t,n)=>this.setFileAttribute(e,t,n),transferProgress:e.progress,transferErrorMessage:e.errorMessage,transferShowProgress:e.showProgress,transferLastProgress:e.lastProgress,loadingText:`Laster opp`,truncateTail:this.truncateTail,onCancel:e=>this.cancelTransfer(e)})}markImageFailed(e,t){this.failedImageFileIds={...this.failedImageFileIds,[e]:{...this.failedImageFileIds[e],[t]:!0}}}getPreviewableImages(e){return this.enableImagePreview?e.filter(e=>e.progress===`done`&&this.isImageFile(e)):[]}canOpenPreview(e){return this.enableImagePreview&&e.progress===`done`&&this.isImageFile(e)}openPreview(e,t){let n=t.findIndex(t=>t.fileId===e);n<0||(this.previewCurrentIndex=n,this.isPreviewModalOpen=!0,this.failedImageFileIds={...this.failedImageFileIds,[e]:{...this.failedImageFileIds[e],preview:!1}})}navigatePreview(e,t){t.length!==0&&(this.previewCurrentIndex=C(this.previewCurrentIndex,e,t.length))}renderPreviewModal(t){if(!this.enableImagePreview||t.length===0)return null;let n=t[this.previewCurrentIndex];if(!n)return null;let r=t.length>1,i=this.getThumbnailUrl(n),a=!!i&&!this.failedImageFileIds[n.fileId]?.preview,o=n.attributes?.targetFilename||n.file?.name||`Forhåndsvisning`;return e.d`
342
342
  <pkt-modal
343
343
  .open=${this.isPreviewModalOpen}
344
344
  .headingText=${o}
@@ -393,4 +393,4 @@ const e=require(`./element-DjtxO-1r.cjs`),t=require(`./class-map-CJ-msbHs.cjs`);
393
393
  </button>`:null}
394
394
  </div>
395
395
  </pkt-modal>
396
- `}getQueueItemOperations(){let e=[];return this.renameFilesEnabled&&this.itemRenderer!==`thumbnail`&&e.push(j()),this.addCommentsEnabled&&this.itemRenderer!==`thumbnail`&&e.push(M()),e.push(...this.extraOperations),e.push(A(e=>this.removeFileItem(e))),e}activateOperation(e,t){this.activeOperationByFileId={...this.activeOperationByFileId,[e]:t}}closeOperation(e){this.activeOperationByFileId={...this.activeOperationByFileId,[e]:void 0}}getFileAttribute(e,t){let n=this.getCurrentFiles().find(t=>t.fileId===e);if(n)return n.attributes?.[t]??void 0}setFileAttribute(e,t,n){let r=this.getCurrentFiles().find(t=>t.fileId===e);if(!r)return;let i={...r.attributes,[t]:n};n===void 0&&delete i[t],this.updateFileItem(e,{attributes:i})}};e.r([e.o()],J.prototype,`activeOperationByFileId`,void 0),e.r([e.o()],J.prototype,`isPreviewModalOpen`,void 0),e.r([e.o()],J.prototype,`previewCurrentIndex`,void 0),e.r([e.o()],J.prototype,`failedImageFileIds`,void 0),J=e.r([e.c(`pkt-fileupload`)],J);var Y=J;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Y}});
396
+ `}getQueueItemOperations(){let e=[];return this.renameFilesEnabled&&this.itemRenderer!==`thumbnail`&&e.push(M()),this.addCommentsEnabled&&this.itemRenderer!==`thumbnail`&&e.push(N()),e.push(...this.extraOperations),e.push(j(e=>this.removeFileItem(e))),e}activateOperation(e,t){this.activeOperationByFileId={...this.activeOperationByFileId,[e]:t}}closeOperation(e){this.activeOperationByFileId={...this.activeOperationByFileId,[e]:void 0}}getFileAttribute(e,t){let n=this.getCurrentFiles().find(t=>t.fileId===e);if(n)return n.attributes?.[t]??void 0}setFileAttribute(e,t,n){let r=this.getCurrentFiles().find(t=>t.fileId===e);if(!r)return;let i={...r.attributes,[t]:n};n===void 0&&delete i[t],this.updateFileItem(e,{attributes:i})}};e.r([e.o()],Y.prototype,`activeOperationByFileId`,void 0),e.r([e.o()],Y.prototype,`isPreviewModalOpen`,void 0),e.r([e.o()],Y.prototype,`previewCurrentIndex`,void 0),e.r([e.o()],Y.prototype,`failedImageFileIds`,void 0),Y=e.r([e.c(`pkt-fileupload`)],Y);var X=Y;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return X}});
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./fileupload-BRqioKSY.cjs`);Object.defineProperty(exports,`PktFileUpload`,{enumerable:!0,get:function(){return e.n}}),exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./fileupload-DjUAvBcP.cjs`);Object.defineProperty(exports,`PktFileUpload`,{enumerable:!0,get:function(){return e.n}}),exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./fileupload-Bnl303X0.js";
1
+ import { n as e, t } from "./fileupload-DbmqRkz3.js";
2
2
  export { e as PktFileUpload, t as default };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./alert-BEEnTiCb.cjs`),t=require(`./icon-Dr8sfT2X.cjs`),n=require(`./button-D-TOBaJB.cjs`),r=require(`./accordion-BB1JrONI.cjs`),i=require(`./backlink-Ba03LlbB.cjs`),a=require(`./breadcrumbs-CD1zib3s.cjs`),o=require(`./calendar-DkjXla0I.cjs`),s=require(`./card-C3POnP3O.cjs`),c=require(`./tag-DWtajZk6.cjs`),l=require(`./heading-DRJTS27k.cjs`),u=require(`./combobox-C4Q6kQEs.cjs`),d=require(`./header-Dps8o-ZY.cjs`),f=require(`./datepicker-DYd3JCs_.cjs`),p=require(`./fileupload-BRqioKSY.cjs`),m=require(`./helptext-DQgStO4D.cjs`),h=require(`./input-wrapper-B_XFi211.cjs`),g=require(`./consent-zh2npq2K.cjs`),_=require(`./checkbox-nTbihMxW.cjs`),v=require(`./modal-B6591sWa.cjs`),y=require(`./progressbar-CrwpnIkv.cjs`),b=require(`./link-B8zYc5WK.cjs`),x=require(`./textinput-B0VWmVIF.cjs`),S=require(`./linkcard-C4x-NJMi.cjs`),C=require(`./loader-CGQXAuyM.cjs`),w=require(`./messagebox-Ccu29rDv.cjs`),T=require(`./radiobutton-DvXr7tDk.cjs`),E=require(`./tabs-RnDtIFv3.cjs`),D=require(`./textarea-CjqprL6Y.cjs`),O=require(`./select-B75wzvyz.cjs`),k=require(`./timepicker-Cv9juQeB.cjs`);exports.PktAccordion=r.r,exports.PktAccordionItem=r.n,exports.PktAlert=e.n,exports.PktBackLink=i.n,exports.PktBreadcrumbs=a.t,exports.PktButton=n.n,exports.PktCalendar=o.n,exports.PktCard=s.n,exports.PktCheckbox=_.n,exports.PktCombobox=u.n,exports.PktConsent=g.n,exports.PktDateTags=f.a,exports.PktDatepicker=f.t,Object.defineProperty(exports,`PktFileUpload`,{enumerable:!0,get:function(){return p.n}}),exports.PktHeader=d.t,exports.PktHeaderService=d.n,exports.PktHeaderUserMenu=d.r,exports.PktHeading=l.n,exports.PktHelptext=m.n,exports.PktIcon=t.n,exports.PktInputWrapper=h.n,exports.PktLink=b.n,exports.PktLinkCard=S.n,exports.PktLoader=C.n,exports.PktMessagebox=w.n,exports.PktModal=v.n,exports.PktProgressbar=y.n,exports.PktRadioButton=T.n,exports.PktRadiobutton=T.n,exports.PktSelect=O.n,exports.PktTabItem=E.n,exports.PktTabs=E.r,exports.PktTag=c.n,exports.PktTextarea=D.n,exports.PktTextinput=x.n,exports.PktTimepicker=k.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./alert-BEEnTiCb.cjs`),t=require(`./icon-Dr8sfT2X.cjs`),n=require(`./button-D-TOBaJB.cjs`),r=require(`./accordion-BB1JrONI.cjs`),i=require(`./backlink-Ba03LlbB.cjs`),a=require(`./breadcrumbs-CD1zib3s.cjs`),o=require(`./calendar-DkjXla0I.cjs`),s=require(`./card-C3POnP3O.cjs`),c=require(`./tag-DWtajZk6.cjs`),l=require(`./heading-DRJTS27k.cjs`),u=require(`./combobox-C4Q6kQEs.cjs`),d=require(`./header-Dps8o-ZY.cjs`),f=require(`./datepicker-DYd3JCs_.cjs`),p=require(`./fileupload-DjUAvBcP.cjs`),m=require(`./helptext-DQgStO4D.cjs`),h=require(`./input-wrapper-B_XFi211.cjs`),g=require(`./consent-zh2npq2K.cjs`),_=require(`./checkbox-nTbihMxW.cjs`),v=require(`./modal-B6591sWa.cjs`),y=require(`./progressbar-CrwpnIkv.cjs`),b=require(`./link-B8zYc5WK.cjs`),x=require(`./textinput-B0VWmVIF.cjs`),S=require(`./linkcard-C4x-NJMi.cjs`),C=require(`./loader-CGQXAuyM.cjs`),w=require(`./messagebox-Ccu29rDv.cjs`),T=require(`./radiobutton-DvXr7tDk.cjs`),E=require(`./tabs-RnDtIFv3.cjs`),D=require(`./textarea-CjqprL6Y.cjs`),O=require(`./select-B75wzvyz.cjs`),k=require(`./timepicker-Cv9juQeB.cjs`);exports.PktAccordion=r.r,exports.PktAccordionItem=r.n,exports.PktAlert=e.n,exports.PktBackLink=i.n,exports.PktBreadcrumbs=a.t,exports.PktButton=n.n,exports.PktCalendar=o.n,exports.PktCard=s.n,exports.PktCheckbox=_.n,exports.PktCombobox=u.n,exports.PktConsent=g.n,exports.PktDateTags=f.a,exports.PktDatepicker=f.t,Object.defineProperty(exports,`PktFileUpload`,{enumerable:!0,get:function(){return p.n}}),exports.PktHeader=d.t,exports.PktHeaderService=d.n,exports.PktHeaderUserMenu=d.r,exports.PktHeading=l.n,exports.PktHelptext=m.n,exports.PktIcon=t.n,exports.PktInputWrapper=h.n,exports.PktLink=b.n,exports.PktLinkCard=S.n,exports.PktLoader=C.n,exports.PktMessagebox=w.n,exports.PktModal=v.n,exports.PktProgressbar=y.n,exports.PktRadioButton=T.n,exports.PktRadiobutton=T.n,exports.PktSelect=O.n,exports.PktTabItem=E.n,exports.PktTabs=E.r,exports.PktTag=c.n,exports.PktTextarea=D.n,exports.PktTextinput=x.n,exports.PktTimepicker=k.t;
package/dist/pkt-index.js CHANGED
@@ -11,7 +11,7 @@ import { n as u } from "./heading-BxvE80bb.js";
11
11
  import { n as d } from "./combobox-CL9BLuxt.js";
12
12
  import { n as f, r as p, t as m } from "./header-T5O6sfCN.js";
13
13
  import { a as h, t as g } from "./datepicker-BUK1Qanw.js";
14
- import { n as _ } from "./fileupload-Bnl303X0.js";
14
+ import { n as _ } from "./fileupload-DbmqRkz3.js";
15
15
  import { n as v } from "./helptext-C5rG4VkA.js";
16
16
  import { n as y } from "./input-wrapper-DBpMVSxt.js";
17
17
  import { n as b } from "./consent-f_IGyHss.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-elements",
3
- "version": "16.15.0",
3
+ "version": "16.15.1",
4
4
  "description": "Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo",
5
5
  "homepage": "https://punkt.oslo.kommune.no",
6
6
  "author": "Team Designsystem, Oslo Origo",
@@ -78,5 +78,5 @@
78
78
  "url": "https://github.com/oslokommune/punkt/issues"
79
79
  },
80
80
  "license": "MIT",
81
- "gitHead": "5147b31531bab9ff64963a1f091a717bb93d35cf"
81
+ "gitHead": "6cc24a37a17370c3a20c0406c6742bd1b6273054"
82
82
  }
@@ -27,13 +27,14 @@ import type {
27
27
  TTransferProgress,
28
28
  TUploadStrategy,
29
29
  } from './fileupload-types'
30
+ import { uuidish } from 'shared-utils/utils'
30
31
 
31
32
  export abstract class PktFileUploadBase
32
33
  extends PktElement<IPktFileUpload>
33
34
  implements IPktFileUpload
34
35
  {
35
36
  /** Unique id used for internal input + wrapper wiring. Defaults to a per-instance uuid. */
36
- @property({ type: String }) id: string = `pkt-fileupload-${crypto.randomUUID()}`
37
+ @property({ type: String }) id: string = `pkt-fileupload-${uuidish()}`
37
38
  /** Field name used by native input (`form`) or hidden fileId inputs (`custom`). */
38
39
  @property({ type: String }) name: string = 'files'
39
40
  /** Optional label shown by `pkt-input-wrapper`. */
@@ -275,7 +276,7 @@ export abstract class PktFileUploadBase
275
276
 
276
277
  this.validationErrorMessage = null
277
278
  const newItems: FileItem[] = normalizedFiles.map((file) => ({
278
- fileId: crypto.randomUUID(),
279
+ fileId: uuidish(),
279
280
  file,
280
281
  attributes: {
281
282
  targetFilename: file.name,