filepond 5.0.0-beta.21 → 5.0.0-beta.23
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/cdn/assets/index.js +1 -1
- package/cdn/locales/ar-ar.js +1 -1
- package/cdn/locales/bn-bd.js +1 -1
- package/cdn/locales/cs-cz.js +1 -1
- package/cdn/locales/da-dk.js +1 -1
- package/cdn/locales/de-de.js +1 -1
- package/cdn/locales/el-gr.js +1 -1
- package/cdn/locales/en-gb.js +1 -1
- package/cdn/locales/es-es.js +1 -1
- package/cdn/locales/fi-fi.js +1 -1
- package/cdn/locales/fr-fr.js +1 -1
- package/cdn/locales/hi-in.js +1 -1
- package/cdn/locales/hu-hu.js +1 -1
- package/cdn/locales/index.js +1 -1
- package/cdn/locales/is-is.js +1 -1
- package/cdn/locales/it-it.js +1 -1
- package/cdn/locales/ja-jp.js +1 -1
- package/cdn/locales/ko-kr.js +1 -1
- package/cdn/locales/nb-no.js +1 -1
- package/cdn/locales/nl-nl.js +1 -1
- package/cdn/locales/pl-pl.js +1 -1
- package/cdn/locales/pt-pt.js +1 -1
- package/cdn/locales/sv-se.js +1 -1
- package/cdn/locales/tr-tr.js +1 -1
- package/cdn/locales/uk-ua.js +1 -1
- package/cdn/locales/vi-vn.js +1 -1
- package/cdn/locales/zh-cn.js +1 -1
- package/cdn/main.js +2 -2
- package/cdn/workers/httpRequest.js +1 -1
- package/cdn/workers/readFile.js +1 -1
- package/cdn/workers/transformImage.js +1 -1
- package/esm/assets/index.js +1 -1
- package/esm/common/console.js +1 -1
- package/esm/common/entry.js +1 -1
- package/esm/common/perceivedPerformanceProxy.js +1 -1
- package/esm/common/readEntriesFromDataTransfer.js +1 -1
- package/esm/common/ssr.js +1 -1
- package/esm/common/status.js +1 -1
- package/esm/core/entryTree.js +1 -1
- package/esm/core/extensionManager.js +29 -29
- package/esm/core/taskScheduler.js +106 -100
- package/esm/dev/index.js +1 -1
- package/esm/elements/FilePondDefault/index.css.js +1 -1
- package/esm/elements/FilePondDefault/index.js +1 -1
- package/esm/elements/FilePondDropArea/index.css.js +1 -1
- package/esm/elements/FilePondDropArea/index.js +1 -1
- package/esm/elements/FilePondDropArea/index.svelte.js +1 -1
- package/esm/elements/FilePondDropIndicator/index.css.js +1 -1
- package/esm/elements/FilePondDropIndicator/index.js +1 -1
- package/esm/elements/FilePondDropIndicator/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/Entry/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/Entry/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/Entry/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryActivityIndicator/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryActivityIndicator/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryActivityIndicator/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryList/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryList/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryList/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryListItem/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryListItem/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryListItem/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryListItemPlaceholder/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryStatus/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryStatus/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/EntryStatus/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaImage/components/BitmapRenderer.svelte.js +43 -43
- package/esm/elements/FilePondEntryList/components/MediaImage/components/BitmapRendererCache.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaImage/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaImage/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaImage/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaPane/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaPane/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaPane/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaTimeIndicator/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaTimeIndicator/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaTimeIndicator/index.svelte.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaVideo/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaVideo/index.js +1 -1
- package/esm/elements/FilePondEntryList/components/MediaVideo/index.svelte.js +54 -51
- package/esm/elements/FilePondEntryList/contexts/appContext.js +1 -1
- package/esm/elements/FilePondEntryList/contexts/dragContext.js +1 -1
- package/esm/elements/FilePondEntryList/contexts/dropContext.js +1 -1
- package/esm/elements/FilePondEntryList/contexts/entryContext.js +1 -1
- package/esm/elements/FilePondEntryList/contexts/springElementTreeContext.js +1 -1
- package/esm/elements/FilePondEntryList/index.css.js +1 -1
- package/esm/elements/FilePondEntryList/index.js +1 -1
- package/esm/elements/FilePondEntryList/index.svelte.js +1 -1
- package/esm/elements/FilePondInput/index.css.js +1 -1
- package/esm/elements/FilePondInput/index.js +60 -43
- package/esm/elements/FilePondSvelteComponent/index.svelte.js +1 -1
- package/esm/elements/attachments/dragarea.js +1 -1
- package/esm/elements/attachments/droparea.js +1 -1
- package/esm/elements/attachments/measurable.js +1 -1
- package/esm/elements/attachments/resizable.js +1 -1
- package/esm/elements/attachments/transitions.js +1 -1
- package/esm/elements/common/animationGuard.js +1 -1
- package/esm/elements/common/animationPreference.svelte.js +1 -1
- package/esm/elements/common/dragDrop.js +1 -1
- package/esm/elements/common/event.js +1 -1
- package/esm/elements/common/extendStyles.js +1 -1
- package/esm/elements/common/getClosestElement.js +1 -1
- package/esm/elements/common/html.js +1 -1
- package/esm/elements/common/nodeTree.js +1 -1
- package/esm/elements/common/store.svelte.js +1 -1
- package/esm/elements/common/string.js +1 -1
- package/esm/elements/common/transition.js +1 -1
- package/esm/elements/components/BooleanInput/index.css.js +1 -1
- package/esm/elements/components/BooleanInput/index.js +1 -1
- package/esm/elements/components/BooleanInput/index.svelte.js +1 -1
- package/esm/elements/components/Button/index.css.js +1 -1
- package/esm/elements/components/Button/index.js +1 -1
- package/esm/elements/components/Button/index.svelte.js +1 -1
- package/esm/elements/components/ElementPane/index.css.js +1 -1
- package/esm/elements/components/ElementPane/index.js +1 -1
- package/esm/elements/components/ElementPane/index.svelte.js +1 -1
- package/esm/elements/components/ElementSkeleton/index.css.js +1 -1
- package/esm/elements/components/ElementSkeleton/index.js +1 -1
- package/esm/elements/components/ElementSkeleton/index.svelte.js +1 -1
- package/esm/elements/components/FilenameInput/index.css.js +1 -1
- package/esm/elements/components/FilenameInput/index.js +1 -1
- package/esm/elements/components/FilenameInput/index.svelte.js +1 -1
- package/esm/elements/components/NodeList/index.svelte.js +1 -1
- package/esm/elements/components/ProgressIndicator/index.css.js +1 -1
- package/esm/elements/components/ProgressIndicator/index.js +1 -1
- package/esm/elements/components/ProgressIndicator/index.svelte.js +1 -1
- package/esm/elements/components/RangeInput/index.css.js +1 -1
- package/esm/elements/components/RangeInput/index.js +1 -1
- package/esm/elements/components/RangeInput/index.svelte.js +1 -1
- package/esm/elements/components/SpringElement/index.svelte.js +1 -1
- package/esm/elements/components/TextInput/index.css.js +1 -1
- package/esm/elements/components/TextInput/index.js +1 -1
- package/esm/elements/components/TextInput/index.svelte.js +1 -1
- package/esm/extensions/blob-loader.js +1 -1
- package/esm/extensions/canvas-loader.js +1 -1
- package/esm/extensions/chunked-upload-store.js +1 -1
- package/esm/extensions/clipboard-source.js +1 -1
- package/esm/extensions/common/createExtension.js +1 -1
- package/esm/extensions/common/createStoreExtension.js +39 -39
- package/esm/extensions/common/createTransformExtension.js +57 -56
- package/esm/extensions/common/createValidatorExtension.js +64 -82
- package/esm/extensions/console-view.js +1 -1
- package/esm/extensions/data-transfer-loader.js +1 -1
- package/esm/extensions/data-url-store.js +1 -1
- package/esm/extensions/drag-drop-source.js +1 -1
- package/esm/extensions/dropbox-source.js +1 -1
- package/esm/extensions/entry-list-view.js +1 -1
- package/esm/extensions/file-extension-validator.js +1 -1
- package/esm/extensions/file-input-source.js +1 -1
- package/esm/extensions/file-input-store.js +1 -1
- package/esm/extensions/file-mime-type-validator.js +1 -1
- package/esm/extensions/file-name-transform.js +1 -1
- package/esm/extensions/file-name-validator.js +1 -1
- package/esm/extensions/file-size-validator.js +1 -1
- package/esm/extensions/form-post-store.js +1 -1
- package/esm/extensions/image-bitmap-transform.js +32 -32
- package/esm/extensions/index.js +1 -1
- package/esm/extensions/list-count-validator.js +1 -1
- package/esm/extensions/list-size-validator.js +1 -1
- package/esm/extensions/media-resolution-validator.js +1 -1
- package/esm/extensions/object-url-store.js +1 -1
- package/esm/extensions/simulated-loader.js +1 -1
- package/esm/extensions/simulated-store.js +61 -38
- package/esm/extensions/text-input-store.js +1 -1
- package/esm/extensions/url-loader.js +1 -1
- package/esm/extensions/value-callback-store.js +13 -13
- package/esm/index.js +1 -1
- package/esm/locales/ar-ar.js +1 -1
- package/esm/locales/bn-bd.js +1 -1
- package/esm/locales/cs-cz.js +1 -1
- package/esm/locales/da-dk.js +1 -1
- package/esm/locales/de-de.js +1 -1
- package/esm/locales/el-gr.js +1 -1
- package/esm/locales/en-gb.js +1 -1
- package/esm/locales/es-es.js +1 -1
- package/esm/locales/fi-fi.js +1 -1
- package/esm/locales/fr-fr.js +1 -1
- package/esm/locales/hi-in.js +1 -1
- package/esm/locales/hu-hu.js +1 -1
- package/esm/locales/index.js +1 -1
- package/esm/locales/is-is.js +1 -1
- package/esm/locales/it-it.js +1 -1
- package/esm/locales/ja-jp.js +1 -1
- package/esm/locales/ko-kr.js +1 -1
- package/esm/locales/nb-no.js +1 -1
- package/esm/locales/nl-nl.js +1 -1
- package/esm/locales/pl-pl.js +1 -1
- package/esm/locales/pt-pt.js +1 -1
- package/esm/locales/sv-se.js +1 -1
- package/esm/locales/tr-tr.js +1 -1
- package/esm/locales/uk-ua.js +1 -1
- package/esm/locales/vi-vn.js +1 -1
- package/esm/locales/zh-cn.js +1 -1
- package/esm/templates/entry.js +1 -1
- package/esm/templates/helpers.js +1 -1
- package/esm/templates/index.js +1 -1
- package/esm/templates/media.js +111 -118
- package/esm/utils/array.js +1 -1
- package/esm/utils/bounds.js +1 -1
- package/esm/utils/cache.js +1 -1
- package/esm/utils/canvasToBlob.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debounce.js +1 -1
- package/esm/utils/dom.js +1 -1
- package/esm/utils/file.js +1 -1
- package/esm/utils/functionToBlob.js +1 -1
- package/esm/utils/keyboard.js +1 -1
- package/esm/utils/math.js +1 -1
- package/esm/utils/media.js +1 -1
- package/esm/utils/number.js +1 -1
- package/esm/utils/object.js +1 -1
- package/esm/utils/objectURL.js +1 -1
- package/esm/utils/placeholder.js +1 -1
- package/esm/utils/poly.js +1 -1
- package/esm/utils/pubsub.js +1 -1
- package/esm/utils/rect.js +1 -1
- package/esm/utils/size.js +13 -9
- package/esm/utils/sleep.js +1 -1
- package/esm/utils/string.js +1 -1
- package/esm/utils/support.js +1 -1
- package/esm/utils/test.js +1 -1
- package/esm/utils/thread.js +1 -1
- package/esm/utils/tree.js +1 -1
- package/esm/utils/url.js +1 -1
- package/esm/utils/vector.js +1 -1
- package/esm/utils/window.js +1 -1
- package/esm/utils/xhr.js +1 -1
- package/esm/workers/httpRequest.js +1 -1
- package/esm/workers/readFile.js +1 -1
- package/esm/workers/transformImage.js +1 -1
- package/package.json +2 -1
- package/types/core/taskScheduler.d.ts +3 -3
- package/types/elements/FilePondEntryList/index.d.ts +1 -1
- package/types/extensions/simulated-store.d.ts +6 -0
- package/types/templates/media.d.ts +6 -18
- package/types/utils/array.d.ts +1 -1
- package/types/utils/size.d.ts +2 -0
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* FilePond v5.0.0-beta.
|
|
2
|
+
* FilePond v5.0.0-beta.23
|
|
3
3
|
* Copyright (c) 2017-2026 Pqina B.V.
|
|
4
4
|
* Released under the MIT License
|
|
5
5
|
* https://filepond.com
|
|
6
6
|
*/
|
|
7
7
|
import { createExtensionManager as P } from "../../core/extensionManager.js";
|
|
8
8
|
import { createEntryTree as B } from "../../core/entryTree.js";
|
|
9
|
-
import { setBooleanAttribute as l, setStringAttribute as o, getAttribute as h, getFileSizeAttributeValue as p, createStyleSheet as
|
|
10
|
-
import { isFileEntry as
|
|
9
|
+
import { setBooleanAttribute as l, setStringAttribute as o, getAttribute as h, getFileSizeAttributeValue as p, createStyleSheet as T, h as f, setAttributes as D, getAttributeFromElements as E, addListener as M, dispatchCustomEvent as g } from "../../utils/dom.js";
|
|
10
|
+
import { isFileEntry as k, isNumber as w, isString as c, isFile as b, isObject as y, isDataTransfer as I, isDirectoryEntry as R, isBlobOrFile as _, isCanvas as q } from "../../utils/test.js";
|
|
11
11
|
import { stringReplaceVariables as u, statusToLabel as j, statusCodeToLocaleKey as U } from "../common/string.js";
|
|
12
12
|
import { toCamelCase as K } from "../../utils/string.js";
|
|
13
13
|
import { debounce as x } from "../../utils/debounce.js";
|
|
14
14
|
import { copyFilePropsToObject as V } from "../../utils/file.js";
|
|
15
|
-
import { Status as
|
|
16
|
-
import { HTMLElementSafe as
|
|
17
|
-
import { getFilenameFromURL as
|
|
15
|
+
import { Status as N } from "../../common/status.js";
|
|
16
|
+
import { HTMLElementSafe as $ } from "../../common/ssr.js";
|
|
17
|
+
import { getFilenameFromURL as G } from "../../utils/url.js";
|
|
18
18
|
import { arrayRemoveFalsy as S } from "../../utils/array.js";
|
|
19
|
-
import
|
|
20
|
-
function
|
|
19
|
+
import H from "./index.css.js";
|
|
20
|
+
function J(r) {
|
|
21
21
|
const { beforeInsertEntries: t } = r || {};
|
|
22
22
|
return B({
|
|
23
23
|
// allows limiting the total entries added
|
|
24
24
|
beforeInsertEntries: t,
|
|
25
25
|
// formats the entry so all entries in the dataset follow the same data structure
|
|
26
26
|
beforeOnboardEntry(e) {
|
|
27
|
-
return z(e) ?
|
|
27
|
+
return z(e) ? O(e) : !1;
|
|
28
28
|
},
|
|
29
29
|
// makes modifications to the props the entry is updated with
|
|
30
30
|
beforeUpdateEntryWithProps(e, i, s) {
|
|
31
|
-
if (
|
|
31
|
+
if (k(e) && s && V(i.file, i), i.extension) {
|
|
32
32
|
const d = Object.values(
|
|
33
33
|
i.extension
|
|
34
34
|
);
|
|
35
35
|
for (const { status: a } of d)
|
|
36
|
-
a && (a.values = a.values ?? null, a.progress =
|
|
36
|
+
a && (a.values = a.values ?? null, a.progress = w(a.progress) ? a.progress : null);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
});
|
|
@@ -50,12 +50,12 @@ const F = [
|
|
|
50
50
|
// if is required and value is missing
|
|
51
51
|
"valueMissing"
|
|
52
52
|
];
|
|
53
|
-
function
|
|
54
|
-
return c(r) ||
|
|
53
|
+
function W(r) {
|
|
54
|
+
return c(r) || _(r) || q(r) || I(r);
|
|
55
55
|
}
|
|
56
56
|
function z(r) {
|
|
57
|
-
if (c(r) ||
|
|
58
|
-
const t = c(r) ?
|
|
57
|
+
if (c(r) || k(r)) {
|
|
58
|
+
const t = c(r) ? G(r) ?? "" : r.name ?? (b(r?.src) ? r.src.name : "");
|
|
59
59
|
return ![
|
|
60
60
|
/\.git/,
|
|
61
61
|
/thumbs\.db/,
|
|
@@ -67,21 +67,24 @@ function z(r) {
|
|
|
67
67
|
}
|
|
68
68
|
return !0;
|
|
69
69
|
}
|
|
70
|
-
function
|
|
71
|
-
const t =
|
|
70
|
+
function O(r) {
|
|
71
|
+
const t = W(r) ? { src: r } : { ...r };
|
|
72
72
|
if (t.state = y(t.state) ? t.state : {}, t.extension = y(t.extension) ? t.extension : {}, t.origin = t.origin ?? "api", t.containerId = t.containerId ?? null, I(t.src))
|
|
73
73
|
return t;
|
|
74
74
|
if (t.path = t.path ?? t.src?.path ?? null, R(t)) {
|
|
75
75
|
const { entries: i } = t;
|
|
76
|
-
return t.entries = i.filter(z).map(
|
|
76
|
+
return t.entries = i.filter(z).map(O), t;
|
|
77
77
|
}
|
|
78
78
|
const e = t;
|
|
79
79
|
return e.file = e.file ?? void 0, b(e.src) && (e.file = e.src), b(e.file) && V(e.file, e), e;
|
|
80
80
|
}
|
|
81
|
-
function
|
|
82
|
-
return r.some((t) => Object.values(t.extension ?? {}).some(({ status: e }) => e ?
|
|
81
|
+
function X(r) {
|
|
82
|
+
return r.some((t) => Object.values(t.extension ?? {}).some(({ status: e }) => e ? w(e.progress) : !1));
|
|
83
|
+
}
|
|
84
|
+
function Q(r) {
|
|
85
|
+
return r.some((t) => Object.values(t.extension ?? {}).some(({ status: e }) => e ? e.type === "error" : !1));
|
|
83
86
|
}
|
|
84
|
-
function
|
|
87
|
+
function Y(r, t) {
|
|
85
88
|
const e = Array.isArray(t) ? t : [t], i = new FormData();
|
|
86
89
|
for (const s of e) {
|
|
87
90
|
if (b(s)) {
|
|
@@ -92,8 +95,8 @@ function Q(r, t) {
|
|
|
92
95
|
}
|
|
93
96
|
return i;
|
|
94
97
|
}
|
|
95
|
-
const
|
|
96
|
-
class
|
|
98
|
+
const Z = ["required", "name", "id"], v = ["disabled", "accept", "capture", "webkitdirectory"], A = ["disabled", "required", "webkitdirectory"];
|
|
99
|
+
class mt extends $ {
|
|
97
100
|
/** FilePond element shadowRoot */
|
|
98
101
|
#u;
|
|
99
102
|
/** Div element that wraps styleable children */
|
|
@@ -183,7 +186,7 @@ class dt extends G {
|
|
|
183
186
|
/** Syncs file-pond interaction attributes (attributes that impact file system file selection UX) to source input attributes */
|
|
184
187
|
#b(t, e) {
|
|
185
188
|
if (v.includes(t)) {
|
|
186
|
-
if (
|
|
189
|
+
if (A.includes(t)) {
|
|
187
190
|
l(this.#o, t, e === !0 || e === "");
|
|
188
191
|
return;
|
|
189
192
|
}
|
|
@@ -193,7 +196,7 @@ class dt extends G {
|
|
|
193
196
|
/** Looks up the extension(s) linked to this attribute and assigns the matched props */
|
|
194
197
|
#g(t, e) {
|
|
195
198
|
const i = K(t);
|
|
196
|
-
e =
|
|
199
|
+
e = A.includes(t) && e === "" ? !0 : e, this.#i.propagateExtensionProperty(i, e);
|
|
197
200
|
}
|
|
198
201
|
/** Disable the field and sets the disabled attribute */
|
|
199
202
|
set disabled(t) {
|
|
@@ -385,7 +388,7 @@ class dt extends G {
|
|
|
385
388
|
constructor(t) {
|
|
386
389
|
super();
|
|
387
390
|
const { styles: e = [] } = t || {};
|
|
388
|
-
this.#u = this.attachShadow({ mode: "open", delegatesFocus: !0 }), this.#u.adoptedStyleSheets = [
|
|
391
|
+
this.#u = this.attachShadow({ mode: "open", delegatesFocus: !0 }), this.#u.adoptedStyleSheets = [H, ...e].map(T), this.#n = f("div"), this.#n.tabIndex = -1, this.#u.append(this.#n), this.#a = f("slot"), this.#n.append(this.#a), this.#o = f("input", {
|
|
389
392
|
type: "file",
|
|
390
393
|
"aria-hidden": !0,
|
|
391
394
|
hidden: !0,
|
|
@@ -394,7 +397,7 @@ class dt extends G {
|
|
|
394
397
|
}), this.#n.prepend(this.#o), this.#s = f("button", {
|
|
395
398
|
type: "button",
|
|
396
399
|
part: "browse-button"
|
|
397
|
-
}), this.#n.prepend(this.#s), this.#r = this.attachInternals(), this.#t =
|
|
400
|
+
}), this.#n.prepend(this.#s), this.#r = this.attachInternals(), this.#t = J({
|
|
398
401
|
// handles one or multiple files state
|
|
399
402
|
beforeInsertEntries: (i, s) => this.maxFiles < 1 / 0 && s.length + i.length > this.maxFiles ? i.toSpliced(this.maxFiles - s.length) : i
|
|
400
403
|
}), this.#i = P(this.#t), this.#i.on("setExtensions", ({ extensionNames: i }) => {
|
|
@@ -432,7 +435,7 @@ class dt extends G {
|
|
|
432
435
|
};
|
|
433
436
|
if (this.#e) {
|
|
434
437
|
const i = t === 0 ? "ariaNoEntries" : t === 1 ? "ariaSingleEntry" : "ariaMultipleEntries";
|
|
435
|
-
|
|
438
|
+
D(this.#s, {
|
|
436
439
|
// aria label is always base browse button
|
|
437
440
|
"aria-label": u(this.#e.browse, e, this.#e),
|
|
438
441
|
// aria description is always base browse button
|
|
@@ -450,7 +453,7 @@ class dt extends G {
|
|
|
450
453
|
);
|
|
451
454
|
}
|
|
452
455
|
#y() {
|
|
453
|
-
const t = this.#a.assignedElements({ flatten: !0 }).filter((i) => i.matches('input[type="file"]')), e = [...
|
|
456
|
+
const t = this.#a.assignedElements({ flatten: !0 }).filter((i) => i.matches('input[type="file"]')), e = [...Z, ...v];
|
|
454
457
|
for (const i of e) {
|
|
455
458
|
const s = E(i, ...t, this);
|
|
456
459
|
s !== void 0 && (this[i] = s);
|
|
@@ -462,7 +465,7 @@ class dt extends G {
|
|
|
462
465
|
this.#y();
|
|
463
466
|
const t = (e) => {
|
|
464
467
|
this.#r.setFormValue(
|
|
465
|
-
e.length > 0 ?
|
|
468
|
+
e.length > 0 ? Y(this.name ?? "filepond", e) : null
|
|
466
469
|
), this.checkValidity(), g(this, "change");
|
|
467
470
|
};
|
|
468
471
|
this.#i.setExtensionProperties("FileInputSource", {
|
|
@@ -472,12 +475,12 @@ class dt extends G {
|
|
|
472
475
|
required: this.required,
|
|
473
476
|
onChange: t
|
|
474
477
|
}), this.#E(), this.#h.push(
|
|
475
|
-
|
|
478
|
+
M(this, "click", (e) => {
|
|
476
479
|
const i = e.composedPath()[0];
|
|
477
480
|
i !== this && i !== this.#s && !this.#s.contains(i) || (e.stopPropagation(), e.preventDefault(), this.browse());
|
|
478
481
|
}),
|
|
479
482
|
// fire update events
|
|
480
|
-
this.#t.on("
|
|
483
|
+
this.#t.on("updateEntries", () => {
|
|
481
484
|
g(this, "update");
|
|
482
485
|
})
|
|
483
486
|
), g(this, "connected");
|
|
@@ -520,11 +523,11 @@ class dt extends G {
|
|
|
520
523
|
#E() {
|
|
521
524
|
this.#h.push(
|
|
522
525
|
this.#t.on(
|
|
523
|
-
"
|
|
526
|
+
"updateEntries",
|
|
524
527
|
x(() => this.checkValidity())
|
|
525
528
|
),
|
|
526
529
|
this.#i.on(
|
|
527
|
-
"
|
|
530
|
+
"updateExtensionState",
|
|
528
531
|
x(() => this.checkValidity())
|
|
529
532
|
)
|
|
530
533
|
), this.checkValidity();
|
|
@@ -532,17 +535,31 @@ class dt extends G {
|
|
|
532
535
|
/** Validates the current state of the field */
|
|
533
536
|
checkValidity() {
|
|
534
537
|
const { validationInvalidBusy: t = "", validationInvalidState: e = "" } = this.#e || {};
|
|
535
|
-
if (
|
|
538
|
+
if (X(this.entries)) {
|
|
536
539
|
if (this.#r.validity.customError === !0)
|
|
537
540
|
return;
|
|
538
541
|
this.#d({ customError: !0 }, u(t));
|
|
539
542
|
return;
|
|
540
543
|
}
|
|
541
|
-
const i =
|
|
544
|
+
const i = {
|
|
545
|
+
// add generic item state, for when an extension doesn't set a generic state on the extension manager (this allows for more extension specific error messages like "not all items have been stored")
|
|
546
|
+
...Q(this.entries) ? {
|
|
547
|
+
FilePondItemValidator: {
|
|
548
|
+
status: {
|
|
549
|
+
type: "error",
|
|
550
|
+
code: "VALIDATION_INVALID_ENTRIES",
|
|
551
|
+
meta: null,
|
|
552
|
+
values: []
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
} : {},
|
|
556
|
+
// overwrite with specific extension states
|
|
557
|
+
...this.#i.getState()
|
|
558
|
+
}, s = {};
|
|
542
559
|
for (const { status: n } of Object.values(i)) {
|
|
543
|
-
if (!n || n.type !==
|
|
560
|
+
if (!n || n.type !== N.Error)
|
|
544
561
|
continue;
|
|
545
|
-
const { flag: m = "customError" } = n?.meta ?? {},
|
|
562
|
+
const { flag: m = "customError" } = n?.meta ?? {}, C = this.#e ? j(
|
|
546
563
|
{
|
|
547
564
|
...n,
|
|
548
565
|
values: {
|
|
@@ -554,17 +571,17 @@ class dt extends G {
|
|
|
554
571
|
},
|
|
555
572
|
this.#e
|
|
556
573
|
) : U(n.code);
|
|
557
|
-
s[m] =
|
|
574
|
+
s[m] = C ?? u(e);
|
|
558
575
|
}
|
|
559
576
|
if (Object.keys(s).length === 0)
|
|
560
577
|
return this.#d();
|
|
561
578
|
const a = S(F.map((n) => s[n])).at(
|
|
562
579
|
0
|
|
563
|
-
),
|
|
580
|
+
), L = F.reduce(
|
|
564
581
|
(n, m) => (n[m] = !!s[m], n),
|
|
565
582
|
{}
|
|
566
583
|
);
|
|
567
|
-
return this.#d(
|
|
584
|
+
return this.#d(L, a);
|
|
568
585
|
}
|
|
569
586
|
/** Sets the validity state on the element internals. Returns `true` if valid, `false` if invalid */
|
|
570
587
|
#d(t, e) {
|
|
@@ -603,6 +620,6 @@ class dt extends G {
|
|
|
603
620
|
//#endregion
|
|
604
621
|
}
|
|
605
622
|
export {
|
|
606
|
-
|
|
607
|
-
|
|
623
|
+
mt as FilePondInputElement,
|
|
624
|
+
J as createFilePondEntryTree
|
|
608
625
|
};
|