@oslokommune/punkt-elements 16.15.0 → 16.16.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 +17 -0
- package/dist/{fileupload-Bnl303X0.js → fileupload-DbmqRkz3.js} +66 -65
- package/dist/{fileupload-BRqioKSY.cjs → fileupload-DjUAvBcP.cjs} +41 -41
- package/dist/pkt-fileupload.cjs +1 -1
- package/dist/pkt-fileupload.js +1 -1
- package/dist/pkt-index.cjs +1 -1
- package/dist/pkt-index.js +1 -1
- package/package.json +3 -3
- package/src/components/fileupload/fileupload-base.ts +3 -2
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
|
|
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
|
|
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
|
|
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
|
|
63
|
+
function p(e) {
|
|
63
64
|
return Array.isArray(e) ? e.map((e) => String(e).trim().toLowerCase()).filter(Boolean) : [];
|
|
64
65
|
}
|
|
65
|
-
function
|
|
66
|
+
function m(e) {
|
|
66
67
|
return e ? e.split(",").map((e) => e.trim().toLowerCase()).filter(Boolean) : [];
|
|
67
68
|
}
|
|
68
|
-
function
|
|
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
|
|
80
|
-
let n =
|
|
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) =>
|
|
84
|
+
return n.some((e) => h(e, r, i));
|
|
84
85
|
}
|
|
85
|
-
function
|
|
86
|
+
function _(e, t) {
|
|
86
87
|
let n = (e ?? "").trim();
|
|
87
88
|
if (n) return n;
|
|
88
|
-
let r =
|
|
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
|
|
92
|
+
function v(e) {
|
|
92
93
|
return e.includes("/") ? e : e.replace(/^\./, "").toUpperCase();
|
|
93
94
|
}
|
|
94
|
-
function
|
|
95
|
-
let n =
|
|
96
|
-
if (n.length > 0) return n.map(
|
|
97
|
-
let r =
|
|
98
|
-
return r.length > 0 ? r.map(
|
|
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
|
|
103
|
+
function b(e, t, n) {
|
|
103
104
|
return ((e ?? "").trim() || t).replace(/\{(\w+)\}/g, (e, t) => n[t] ?? `{${t}}`);
|
|
104
105
|
}
|
|
105
|
-
function
|
|
106
|
-
let n =
|
|
107
|
-
if (n.length > 0 && !
|
|
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
|
|
110
|
+
return b(t.formatErrorMessage, r, { formats: e });
|
|
110
111
|
}
|
|
111
|
-
let r =
|
|
112
|
+
let r = d(t.maxFileSize);
|
|
112
113
|
if (r !== void 0 && e.size > r) {
|
|
113
|
-
let e =
|
|
114
|
-
return
|
|
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
|
|
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
|
|
131
|
+
function C(e) {
|
|
131
132
|
return typeof e == "number" ? "in-progress" : e === "error" ? "error" : "idle";
|
|
132
133
|
}
|
|
133
|
-
function
|
|
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[
|
|
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
|
|
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
|
|
165
|
+
function E(e, t) {
|
|
165
166
|
if (e.key !== "Tab") return !1;
|
|
166
|
-
let n =
|
|
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
|
|
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
|
|
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 =
|
|
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-${
|
|
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:
|
|
288
|
+
fileId: l(),
|
|
288
289
|
file: e,
|
|
289
290
|
attributes: { targetFilename: e.name }
|
|
290
291
|
}));
|
|
291
|
-
this.setAddedAnnouncement(n.length === 1 ?
|
|
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
|
|
356
|
+
return S(e);
|
|
356
357
|
}
|
|
357
358
|
formatFileSize(e) {
|
|
358
|
-
return
|
|
359
|
+
return f(e);
|
|
359
360
|
}
|
|
360
361
|
getResolvedAcceptValue() {
|
|
361
|
-
return
|
|
362
|
+
return _(this.accept, this.allowedFormats);
|
|
362
363
|
}
|
|
363
364
|
getSupportedFormatsText() {
|
|
364
|
-
return
|
|
365
|
+
return y(this.allowedFormats, this.accept);
|
|
365
366
|
}
|
|
366
367
|
getSortedFilesAndTransfers() {
|
|
367
|
-
return
|
|
368
|
+
return w(this.getCurrentFiles(), this.transfers, this.uploadStrategy);
|
|
368
369
|
}
|
|
369
370
|
validateFile(e) {
|
|
370
|
-
let t =
|
|
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 ?
|
|
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 ? "" :
|
|
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 ? "" :
|
|
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 =
|
|
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
|
-
|
|
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:
|
|
1100
|
-
dragActive:
|
|
1101
|
-
openFileDialog:
|
|
1100
|
+
dragInactive: u.dropZoneDragMultipleThumbnail,
|
|
1101
|
+
dragActive: u.dropZoneDragActiveMultipleThumbnail,
|
|
1102
|
+
openFileDialog: u.dropZoneOpenFileDialogMultipleThumbnail
|
|
1102
1103
|
} : {
|
|
1103
|
-
dragInactive:
|
|
1104
|
-
dragActive:
|
|
1105
|
-
openFileDialog:
|
|
1104
|
+
dragInactive: u.dropZoneDragSingleThumbnail,
|
|
1105
|
+
dragActive: u.dropZoneDragActiveSingleThumbnail,
|
|
1106
|
+
openFileDialog: u.dropZoneOpenFileDialogSingleThumbnail
|
|
1106
1107
|
} : this.multiple ? {
|
|
1107
|
-
dragInactive:
|
|
1108
|
-
dragActive:
|
|
1109
|
-
openFileDialog:
|
|
1108
|
+
dragInactive: u.dropZoneDragMultiple,
|
|
1109
|
+
dragActive: u.dropZoneDragActiveMultiple,
|
|
1110
|
+
openFileDialog: u.dropZoneOpenFileDialogMultiple
|
|
1110
1111
|
} : {
|
|
1111
|
-
dragInactive:
|
|
1112
|
-
dragActive:
|
|
1113
|
-
openFileDialog:
|
|
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
|
-
${
|
|
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 =
|
|
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
|
|
1371
|
+
var te = $;
|
|
1371
1372
|
//#endregion
|
|
1372
|
-
export { $ as n,
|
|
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=>
|
|
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
|
-
/>`}}),
|
|
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=>
|
|
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(
|
|
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
|
-
${
|
|
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(
|
|
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(
|
|
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
|
-
/>`}}),
|
|
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>`},
|
|
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
|
-
${
|
|
107
|
+
${P(t,r)}${n?e.d`<span class="pkt-fileupload__queue-display__item__filesize"> (${n})</span>`:null}
|
|
108
108
|
</p>
|
|
109
|
-
`,
|
|
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
|
-
>`,
|
|
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
|
-
${
|
|
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
|
-
`:
|
|
139
|
-
`},
|
|
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
|
-
${
|
|
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
|
-
`},
|
|
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>`},
|
|
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>`}),
|
|
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>`},
|
|
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
|
-
${
|
|
186
|
-
`,
|
|
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
|
-
>${
|
|
215
|
+
>${P(u,s)}</span
|
|
216
216
|
>
|
|
217
217
|
</div>
|
|
218
|
-
`},
|
|
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
|
-
${
|
|
223
|
-
${y===`in-progress`?
|
|
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
|
-
`:
|
|
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
|
-
`},
|
|
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
|
-
${
|
|
242
|
-
${w===`in-progress`?
|
|
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
|
-
`:
|
|
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
|
-
`},
|
|
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(),
|
|
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
|
-
${
|
|
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,
|
|
337
|
+
${r.map(e=>this.renderQueueItem(e,i))}
|
|
338
338
|
</ul>`:null}
|
|
339
|
-
${this.renderPreviewModal(
|
|
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
|
|
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(
|
|
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}});
|
package/dist/pkt-fileupload.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./fileupload-
|
|
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;
|
package/dist/pkt-fileupload.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./fileupload-
|
|
1
|
+
import { n as e, t } from "./fileupload-DbmqRkz3.js";
|
|
2
2
|
export { e as PktFileUpload, t as default };
|
package/dist/pkt-index.cjs
CHANGED
|
@@ -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-
|
|
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-
|
|
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.
|
|
3
|
+
"version": "16.16.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",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@babel/plugin-transform-private-property-in-object": "^7.25.9",
|
|
42
42
|
"@babel/preset-env": "^7.28.3",
|
|
43
43
|
"@babel/preset-typescript": "^7.25.9",
|
|
44
|
-
"@oslokommune/punkt-assets": "^16.
|
|
44
|
+
"@oslokommune/punkt-assets": "^16.16.1",
|
|
45
45
|
"@testing-library/jest-dom": "^6.6.3",
|
|
46
46
|
"@typescript-eslint/eslint-plugin": "^8.46.0",
|
|
47
47
|
"@typescript-eslint/parser": "^8.46.0",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"url": "https://github.com/oslokommune/punkt/issues"
|
|
79
79
|
},
|
|
80
80
|
"license": "MIT",
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "c665e1af910b1b584d3a36fcc9eff7acfe0a93e1"
|
|
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-${
|
|
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:
|
|
279
|
+
fileId: uuidish(),
|
|
279
280
|
file,
|
|
280
281
|
attributes: {
|
|
281
282
|
targetFilename: file.name,
|