@availity/mui-file-selector 1.6.6 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +84 -1
- package/dist/index.d.mts +81 -1
- package/dist/index.d.ts +81 -1
- package/dist/index.js +1671 -126
- package/dist/index.mjs +1691 -129
- package/package.json +6 -7
- package/src/index.ts +3 -0
- package/src/lib/Dropzone.tsx +4 -4
- package/src/lib/Dropzone2.test.tsx +28 -0
- package/src/lib/Dropzone2.tsx +244 -0
- package/src/lib/FileList2.test.tsx +73 -0
- package/src/lib/FileList2.tsx +118 -0
- package/src/lib/FileSelector.tsx +1 -1
- package/src/lib/FileSelector2.stories.tsx +253 -0
- package/src/lib/FileSelector2.test.tsx +23 -0
- package/src/lib/FileSelector2.tsx +209 -0
- package/src/lib/util.test.ts +16 -0
- package/src/lib/util.ts +15 -4
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
5
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
7
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
9
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
10
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
11
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -17,6 +21,12 @@ var __spreadValues = (a, b) => {
|
|
|
17
21
|
return a;
|
|
18
22
|
};
|
|
19
23
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
25
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
26
|
+
}) : x)(function(x) {
|
|
27
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
28
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
29
|
+
});
|
|
20
30
|
var __objRest = (source, exclude) => {
|
|
21
31
|
var target = {};
|
|
22
32
|
for (var prop in source)
|
|
@@ -29,6 +39,25 @@ var __objRest = (source, exclude) => {
|
|
|
29
39
|
}
|
|
30
40
|
return target;
|
|
31
41
|
};
|
|
42
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
43
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
44
|
+
};
|
|
45
|
+
var __copyProps = (to, from, except, desc) => {
|
|
46
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
47
|
+
for (let key of __getOwnPropNames(from))
|
|
48
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
49
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
50
|
+
}
|
|
51
|
+
return to;
|
|
52
|
+
};
|
|
53
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
54
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
55
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
56
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
57
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
58
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
59
|
+
mod
|
|
60
|
+
));
|
|
32
61
|
var __async = (__this, __arguments, generator) => {
|
|
33
62
|
return new Promise((resolve, reject) => {
|
|
34
63
|
var fulfilled = (value) => {
|
|
@@ -50,6 +79,135 @@ var __async = (__this, __arguments, generator) => {
|
|
|
50
79
|
});
|
|
51
80
|
};
|
|
52
81
|
|
|
82
|
+
// ../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js
|
|
83
|
+
var require_use_sync_external_store_shim_production = __commonJS({
|
|
84
|
+
"../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js"(exports) {
|
|
85
|
+
"use strict";
|
|
86
|
+
var React6 = __require("react");
|
|
87
|
+
function is(x, y) {
|
|
88
|
+
return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
|
|
89
|
+
}
|
|
90
|
+
var objectIs = "function" === typeof Object.is ? Object.is : is;
|
|
91
|
+
var useState7 = React6.useState;
|
|
92
|
+
var useEffect4 = React6.useEffect;
|
|
93
|
+
var useLayoutEffect = React6.useLayoutEffect;
|
|
94
|
+
var useDebugValue = React6.useDebugValue;
|
|
95
|
+
function useSyncExternalStore$2(subscribe, getSnapshot) {
|
|
96
|
+
var value = getSnapshot(), _useState = useState7({ inst: { value, getSnapshot } }), inst = _useState[0].inst, forceUpdate = _useState[1];
|
|
97
|
+
useLayoutEffect(
|
|
98
|
+
function() {
|
|
99
|
+
inst.value = value;
|
|
100
|
+
inst.getSnapshot = getSnapshot;
|
|
101
|
+
checkIfSnapshotChanged(inst) && forceUpdate({ inst });
|
|
102
|
+
},
|
|
103
|
+
[subscribe, value, getSnapshot]
|
|
104
|
+
);
|
|
105
|
+
useEffect4(
|
|
106
|
+
function() {
|
|
107
|
+
checkIfSnapshotChanged(inst) && forceUpdate({ inst });
|
|
108
|
+
return subscribe(function() {
|
|
109
|
+
checkIfSnapshotChanged(inst) && forceUpdate({ inst });
|
|
110
|
+
});
|
|
111
|
+
},
|
|
112
|
+
[subscribe]
|
|
113
|
+
);
|
|
114
|
+
useDebugValue(value);
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
function checkIfSnapshotChanged(inst) {
|
|
118
|
+
var latestGetSnapshot = inst.getSnapshot;
|
|
119
|
+
inst = inst.value;
|
|
120
|
+
try {
|
|
121
|
+
var nextValue = latestGetSnapshot();
|
|
122
|
+
return !objectIs(inst, nextValue);
|
|
123
|
+
} catch (error) {
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function useSyncExternalStore$12(subscribe, getSnapshot) {
|
|
128
|
+
return getSnapshot();
|
|
129
|
+
}
|
|
130
|
+
var shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$12 : useSyncExternalStore$2;
|
|
131
|
+
exports.useSyncExternalStore = void 0 !== React6.useSyncExternalStore ? React6.useSyncExternalStore : shim;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// ../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
|
|
136
|
+
var require_use_sync_external_store_shim_development = __commonJS({
|
|
137
|
+
"../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports) {
|
|
138
|
+
"use strict";
|
|
139
|
+
"production" !== process.env.NODE_ENV && function() {
|
|
140
|
+
function is(x, y) {
|
|
141
|
+
return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
|
|
142
|
+
}
|
|
143
|
+
function useSyncExternalStore$2(subscribe, getSnapshot) {
|
|
144
|
+
didWarnOld18Alpha || void 0 === React6.startTransition || (didWarnOld18Alpha = true, console.error(
|
|
145
|
+
"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
|
|
146
|
+
));
|
|
147
|
+
var value = getSnapshot();
|
|
148
|
+
if (!didWarnUncachedGetSnapshot) {
|
|
149
|
+
var cachedValue = getSnapshot();
|
|
150
|
+
objectIs(value, cachedValue) || (console.error(
|
|
151
|
+
"The result of getSnapshot should be cached to avoid an infinite loop"
|
|
152
|
+
), didWarnUncachedGetSnapshot = true);
|
|
153
|
+
}
|
|
154
|
+
cachedValue = useState7({
|
|
155
|
+
inst: { value, getSnapshot }
|
|
156
|
+
});
|
|
157
|
+
var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
|
|
158
|
+
useLayoutEffect(
|
|
159
|
+
function() {
|
|
160
|
+
inst.value = value;
|
|
161
|
+
inst.getSnapshot = getSnapshot;
|
|
162
|
+
checkIfSnapshotChanged(inst) && forceUpdate({ inst });
|
|
163
|
+
},
|
|
164
|
+
[subscribe, value, getSnapshot]
|
|
165
|
+
);
|
|
166
|
+
useEffect4(
|
|
167
|
+
function() {
|
|
168
|
+
checkIfSnapshotChanged(inst) && forceUpdate({ inst });
|
|
169
|
+
return subscribe(function() {
|
|
170
|
+
checkIfSnapshotChanged(inst) && forceUpdate({ inst });
|
|
171
|
+
});
|
|
172
|
+
},
|
|
173
|
+
[subscribe]
|
|
174
|
+
);
|
|
175
|
+
useDebugValue(value);
|
|
176
|
+
return value;
|
|
177
|
+
}
|
|
178
|
+
function checkIfSnapshotChanged(inst) {
|
|
179
|
+
var latestGetSnapshot = inst.getSnapshot;
|
|
180
|
+
inst = inst.value;
|
|
181
|
+
try {
|
|
182
|
+
var nextValue = latestGetSnapshot();
|
|
183
|
+
return !objectIs(inst, nextValue);
|
|
184
|
+
} catch (error) {
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function useSyncExternalStore$12(subscribe, getSnapshot) {
|
|
189
|
+
return getSnapshot();
|
|
190
|
+
}
|
|
191
|
+
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
|
|
192
|
+
var React6 = __require("react"), objectIs = "function" === typeof Object.is ? Object.is : is, useState7 = React6.useState, useEffect4 = React6.useEffect, useLayoutEffect = React6.useLayoutEffect, useDebugValue = React6.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$12 : useSyncExternalStore$2;
|
|
193
|
+
exports.useSyncExternalStore = void 0 !== React6.useSyncExternalStore ? React6.useSyncExternalStore : shim;
|
|
194
|
+
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
|
|
195
|
+
}();
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
// ../../node_modules/use-sync-external-store/shim/index.js
|
|
200
|
+
var require_shim = __commonJS({
|
|
201
|
+
"../../node_modules/use-sync-external-store/shim/index.js"(exports, module) {
|
|
202
|
+
"use strict";
|
|
203
|
+
if (process.env.NODE_ENV === "production") {
|
|
204
|
+
module.exports = require_use_sync_external_store_shim_production();
|
|
205
|
+
} else {
|
|
206
|
+
module.exports = require_use_sync_external_store_shim_development();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
|
|
53
211
|
// src/lib/Dropzone.tsx
|
|
54
212
|
import { useCallback } from "react";
|
|
55
213
|
import { styled } from "@mui/material/styles";
|
|
@@ -297,9 +455,15 @@ var Dropzone = ({
|
|
|
297
455
|
);
|
|
298
456
|
};
|
|
299
457
|
|
|
300
|
-
// src/lib/
|
|
301
|
-
import {
|
|
302
|
-
import {
|
|
458
|
+
// src/lib/Dropzone2.tsx
|
|
459
|
+
import { useCallback as useCallback2 } from "react";
|
|
460
|
+
import { useDropzone as useDropzone2 } from "react-dropzone";
|
|
461
|
+
import { useFormContext as useFormContext2 } from "react-hook-form";
|
|
462
|
+
import { Divider as Divider2 } from "@availity/mui-divider";
|
|
463
|
+
import { CloudUploadIcon as CloudUploadIcon2, PlusIcon as PlusIcon2 } from "@availity/mui-icon";
|
|
464
|
+
import { Box as Box2, Stack as Stack2 } from "@availity/mui-layout";
|
|
465
|
+
import { Typography as Typography2 } from "@availity/mui-typography";
|
|
466
|
+
import Upload from "@availity/upload-core";
|
|
303
467
|
|
|
304
468
|
// src/lib/util.ts
|
|
305
469
|
import {
|
|
@@ -343,15 +507,196 @@ var FILE_EXT_ICONS = {
|
|
|
343
507
|
pdf: FilePdfIcon
|
|
344
508
|
};
|
|
345
509
|
var isValidKey = (key) => key ? key in FILE_EXT_ICONS : false;
|
|
346
|
-
var
|
|
510
|
+
var getFileExtension = (fileName) => {
|
|
347
511
|
var _a;
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
512
|
+
return ((_a = fileName.split(".").pop()) == null ? void 0 : _a.toLowerCase()) || "";
|
|
513
|
+
};
|
|
514
|
+
var getFileExtIcon = (fileName) => {
|
|
515
|
+
const ext = getFileExtension(fileName);
|
|
516
|
+
return isValidKey(ext) ? FILE_EXT_ICONS[ext] : FileIcon;
|
|
517
|
+
};
|
|
518
|
+
var dedupeErrors = (errors) => {
|
|
519
|
+
const dedupedErrors = errors.reduce((acc, error) => {
|
|
520
|
+
if (!acc.find((err) => err.code === error.code)) {
|
|
521
|
+
acc.push(error);
|
|
522
|
+
}
|
|
523
|
+
return acc;
|
|
524
|
+
}, []);
|
|
525
|
+
return dedupedErrors;
|
|
351
526
|
};
|
|
352
527
|
|
|
353
|
-
// src/lib/
|
|
528
|
+
// src/lib/Dropzone2.tsx
|
|
354
529
|
import { Fragment as Fragment3, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
530
|
+
var counter2 = createCounter();
|
|
531
|
+
function startUpload(file, options) {
|
|
532
|
+
return __async(this, null, function* () {
|
|
533
|
+
const _a = options, { onSuccess, onError, onProgress, onChunkComplete } = _a, uploadOptions = __objRest(_a, ["onSuccess", "onError", "onProgress", "onChunkComplete"]);
|
|
534
|
+
const upload = new Upload(file, uploadOptions);
|
|
535
|
+
yield upload.generateId();
|
|
536
|
+
if (onSuccess) upload.onSuccess.push(onSuccess);
|
|
537
|
+
if (onError) upload.onError.push(onError);
|
|
538
|
+
if (onProgress) upload.onProgress.push(onProgress);
|
|
539
|
+
if (onChunkComplete) upload.onChunkComplete.push(onChunkComplete);
|
|
540
|
+
upload.start();
|
|
541
|
+
return upload;
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
var Dropzone2 = ({
|
|
545
|
+
allowedFileTypes = [],
|
|
546
|
+
disabled,
|
|
547
|
+
enableDropArea = true,
|
|
548
|
+
maxFiles,
|
|
549
|
+
maxSize,
|
|
550
|
+
multiple,
|
|
551
|
+
name,
|
|
552
|
+
onChange,
|
|
553
|
+
onClick,
|
|
554
|
+
onDrop,
|
|
555
|
+
setFileRejections,
|
|
556
|
+
setTotalSize,
|
|
557
|
+
uploadOptions,
|
|
558
|
+
validator
|
|
559
|
+
}) => {
|
|
560
|
+
const { getValues, setValue, watch } = useFormContext2();
|
|
561
|
+
const accept = allowedFileTypes.join(",");
|
|
562
|
+
const handleValidation = useCallback2(
|
|
563
|
+
(file) => {
|
|
564
|
+
var _a2;
|
|
565
|
+
const previous = (_a2 = watch(name)) != null ? _a2 : [];
|
|
566
|
+
const errors = [];
|
|
567
|
+
const isDuplicate = previous.some((prev) => prev.file.name === file.name);
|
|
568
|
+
if (isDuplicate) {
|
|
569
|
+
errors.push({
|
|
570
|
+
code: "duplicate-name",
|
|
571
|
+
message: "A file with this name already exists"
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
const hasMaxFiles = maxFiles && previous.length >= maxFiles;
|
|
575
|
+
if (hasMaxFiles) {
|
|
576
|
+
errors.push({
|
|
577
|
+
code: "too-many-files",
|
|
578
|
+
message: `Too many files. You may only upload ${maxFiles} file(s).`
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
if (validator) {
|
|
582
|
+
const validatorErrors = validator(file);
|
|
583
|
+
if (validatorErrors) {
|
|
584
|
+
if (Array.isArray(validatorErrors)) {
|
|
585
|
+
errors.push(...validatorErrors);
|
|
586
|
+
} else {
|
|
587
|
+
errors.push(validatorErrors);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
return errors.length > 0 ? dedupeErrors(errors) : null;
|
|
592
|
+
},
|
|
593
|
+
[maxFiles, validator]
|
|
594
|
+
);
|
|
595
|
+
const handleOnDrop = useCallback2(
|
|
596
|
+
(acceptedFiles, fileRejections, event) => __async(void 0, null, function* () {
|
|
597
|
+
var _a2;
|
|
598
|
+
let newSize = 0;
|
|
599
|
+
for (const file of acceptedFiles) {
|
|
600
|
+
newSize += file.size;
|
|
601
|
+
}
|
|
602
|
+
setTotalSize((prev) => prev + newSize);
|
|
603
|
+
const previous = (_a2 = watch(name)) != null ? _a2 : [];
|
|
604
|
+
const uploads = acceptedFiles.map((file) => startUpload(file, uploadOptions));
|
|
605
|
+
setValue(name, previous.concat(yield Promise.all(uploads)));
|
|
606
|
+
if (fileRejections.length > 0) {
|
|
607
|
+
const TOO_MANY_FILES_CODE = "too-many-files";
|
|
608
|
+
let hasTooManyFiles = false;
|
|
609
|
+
fileRejections = fileRejections.reduce(
|
|
610
|
+
(acc, rejection) => {
|
|
611
|
+
const isTooManyFiles = rejection.errors.some((error) => error.code === TOO_MANY_FILES_CODE);
|
|
612
|
+
if (isTooManyFiles) {
|
|
613
|
+
if (!hasTooManyFiles) {
|
|
614
|
+
hasTooManyFiles = true;
|
|
615
|
+
acc.push(__spreadProps(__spreadValues({}, rejection), {
|
|
616
|
+
id: counter2.increment()
|
|
617
|
+
}));
|
|
618
|
+
}
|
|
619
|
+
} else {
|
|
620
|
+
acc.push(__spreadProps(__spreadValues({}, rejection), {
|
|
621
|
+
id: counter2.increment()
|
|
622
|
+
}));
|
|
623
|
+
}
|
|
624
|
+
return acc;
|
|
625
|
+
},
|
|
626
|
+
[]
|
|
627
|
+
);
|
|
628
|
+
}
|
|
629
|
+
if (setFileRejections) setFileRejections(fileRejections);
|
|
630
|
+
if (onDrop) onDrop(acceptedFiles, fileRejections, event);
|
|
631
|
+
}),
|
|
632
|
+
[setFileRejections]
|
|
633
|
+
);
|
|
634
|
+
const { getRootProps, getInputProps } = useDropzone2({
|
|
635
|
+
onDrop: handleOnDrop,
|
|
636
|
+
maxSize,
|
|
637
|
+
maxFiles,
|
|
638
|
+
disabled,
|
|
639
|
+
multiple,
|
|
640
|
+
accept,
|
|
641
|
+
validator: handleValidation
|
|
642
|
+
});
|
|
643
|
+
const inputProps = getInputProps({
|
|
644
|
+
multiple,
|
|
645
|
+
accept,
|
|
646
|
+
onChange
|
|
647
|
+
});
|
|
648
|
+
const _a = getRootProps(), { role, tabIndex } = _a, rootProps = __objRest(_a, ["role", "tabIndex"]);
|
|
649
|
+
const handleOnChange = (event) => {
|
|
650
|
+
if (inputProps.onChange) {
|
|
651
|
+
inputProps.onChange(event);
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
const handleOnClick = (event) => {
|
|
655
|
+
if (!enableDropArea && rootProps.onClick) rootProps.onClick(event);
|
|
656
|
+
if (onClick) onClick;
|
|
657
|
+
};
|
|
658
|
+
const getFieldValue = () => {
|
|
659
|
+
const field = getValues();
|
|
660
|
+
return field[name] || [];
|
|
661
|
+
};
|
|
662
|
+
const hasFiles = getFieldValue().length > 0;
|
|
663
|
+
return enableDropArea ? /* @__PURE__ */ jsx3(DropzoneContainer, __spreadProps(__spreadValues({ sx: outerBoxStyles }, rootProps), { children: /* @__PURE__ */ jsx3(Box2, { sx: innerBoxStyles, children: /* @__PURE__ */ jsx3(Stack2, { spacing: 2, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs3(Fragment3, { children: [
|
|
664
|
+
/* @__PURE__ */ jsx3(CloudUploadIcon2, { fontSize: "xlarge", color: "secondary" }),
|
|
665
|
+
/* @__PURE__ */ jsx3(Typography2, { variant: "subtitle2", fontWeight: "700", children: "Drag and Drop Files Here" }),
|
|
666
|
+
/* @__PURE__ */ jsx3(Divider2, { flexItem: true, children: /* @__PURE__ */ jsx3(Typography2, { variant: "subtitle2", children: "OR" }) }),
|
|
667
|
+
/* @__PURE__ */ jsx3(
|
|
668
|
+
FilePickerBtn,
|
|
669
|
+
{
|
|
670
|
+
name,
|
|
671
|
+
color: "primary",
|
|
672
|
+
disabled,
|
|
673
|
+
maxSize,
|
|
674
|
+
onClick,
|
|
675
|
+
inputProps,
|
|
676
|
+
onChange: handleOnChange,
|
|
677
|
+
children: "Browse Files"
|
|
678
|
+
}
|
|
679
|
+
)
|
|
680
|
+
] }) }) }) })) : /* @__PURE__ */ jsx3(
|
|
681
|
+
FilePickerBtn,
|
|
682
|
+
{
|
|
683
|
+
name,
|
|
684
|
+
color: "tertiary",
|
|
685
|
+
disabled,
|
|
686
|
+
maxSize,
|
|
687
|
+
onClick: handleOnClick,
|
|
688
|
+
inputProps,
|
|
689
|
+
onChange: handleOnChange,
|
|
690
|
+
startIcon: /* @__PURE__ */ jsx3(PlusIcon2, {}),
|
|
691
|
+
children: hasFiles ? "Add More Files" : "Add File(s)"
|
|
692
|
+
}
|
|
693
|
+
);
|
|
694
|
+
};
|
|
695
|
+
|
|
696
|
+
// src/lib/ErrorAlert.tsx
|
|
697
|
+
import { Alert, AlertTitle } from "@availity/mui-alert";
|
|
698
|
+
import { List, ListItem } from "@availity/mui-list";
|
|
699
|
+
import { Fragment as Fragment4, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
355
700
|
var codes = {
|
|
356
701
|
"file-too-large": "File exceeds maximum size",
|
|
357
702
|
"file-invalid-type": "File has an invalid type",
|
|
@@ -368,14 +713,14 @@ var formatFileTooLarge = (message) => {
|
|
|
368
713
|
};
|
|
369
714
|
var ErrorAlert = ({ errors, fileName, id, onClose }) => {
|
|
370
715
|
if (errors.length === 0) return null;
|
|
371
|
-
return /* @__PURE__ */
|
|
372
|
-
/* @__PURE__ */
|
|
716
|
+
return /* @__PURE__ */ jsx4(Alert, { severity: "error", onClose, children: errors.length > 1 ? /* @__PURE__ */ jsxs4(Fragment4, { children: [
|
|
717
|
+
/* @__PURE__ */ jsxs4(AlertTitle, { children: [
|
|
373
718
|
"There were ",
|
|
374
719
|
errors.length,
|
|
375
720
|
" error(s) found when uploading ",
|
|
376
721
|
fileName
|
|
377
722
|
] }),
|
|
378
|
-
/* @__PURE__ */
|
|
723
|
+
/* @__PURE__ */ jsx4(
|
|
379
724
|
List,
|
|
380
725
|
{
|
|
381
726
|
sx: {
|
|
@@ -387,14 +732,14 @@ var ErrorAlert = ({ errors, fileName, id, onClose }) => {
|
|
|
387
732
|
}
|
|
388
733
|
},
|
|
389
734
|
disablePadding: true,
|
|
390
|
-
children: /* @__PURE__ */
|
|
735
|
+
children: /* @__PURE__ */ jsx4(Fragment4, { children: errors.map((error) => {
|
|
391
736
|
const message = error.code === "file-too-large" ? formatFileTooLarge(error.message) : error.message;
|
|
392
|
-
return /* @__PURE__ */
|
|
737
|
+
return /* @__PURE__ */ jsx4(ListItem, { disableGutters: true, disablePadding: true, divider: false, children: message }, `${id}-${error.code}`);
|
|
393
738
|
}) })
|
|
394
739
|
}
|
|
395
740
|
)
|
|
396
|
-
] }) : /* @__PURE__ */
|
|
397
|
-
/* @__PURE__ */
|
|
741
|
+
] }) : /* @__PURE__ */ jsxs4(Fragment4, { children: [
|
|
742
|
+
/* @__PURE__ */ jsxs4(AlertTitle, { children: [
|
|
398
743
|
codes[errors[0].code] || "Error",
|
|
399
744
|
": ",
|
|
400
745
|
fileName
|
|
@@ -408,7 +753,7 @@ import { List as List2, ListItem as ListItem2, ListItemText as ListItemText2, Li
|
|
|
408
753
|
import { IconButton as IconButton3 } from "@availity/mui-button";
|
|
409
754
|
import { DeleteIcon } from "@availity/mui-icon";
|
|
410
755
|
import { Grid as Grid2 } from "@availity/mui-layout";
|
|
411
|
-
import { Divider as
|
|
756
|
+
import { Divider as Divider3 } from "@availity/mui-divider";
|
|
412
757
|
|
|
413
758
|
// src/lib/UploadProgressBar.tsx
|
|
414
759
|
import { useState as useState2 } from "react";
|
|
@@ -419,8 +764,8 @@ import MuiDialog from "@mui/material/Dialog";
|
|
|
419
764
|
import { styled as styled2 } from "@mui/material/styles";
|
|
420
765
|
import { IconButton } from "@availity/mui-button";
|
|
421
766
|
import { CloseIcon } from "@availity/mui-icon";
|
|
422
|
-
import { jsx as
|
|
423
|
-
var CloseButton = (args) => /* @__PURE__ */
|
|
767
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
768
|
+
var CloseButton = (args) => /* @__PURE__ */ jsx5(IconButton, __spreadProps(__spreadValues({ title: "Close Dialog", color: "secondary" }, args), { children: /* @__PURE__ */ jsx5(CloseIcon, { fontSize: "xsmall" }) }));
|
|
424
769
|
var CloseButtonSlot = styled2(CloseButton, {
|
|
425
770
|
name: "MuiDialog",
|
|
426
771
|
slot: "AvCloseButton",
|
|
@@ -435,37 +780,37 @@ var CloseButtonSlot = styled2(CloseButton, {
|
|
|
435
780
|
});
|
|
436
781
|
var Dialog = (_a) => {
|
|
437
782
|
var _b = _a, { children, closeButton = true, onClose } = _b, rest = __objRest(_b, ["children", "closeButton", "onClose"]);
|
|
438
|
-
return /* @__PURE__ */
|
|
439
|
-
closeButton ? /* @__PURE__ */
|
|
783
|
+
return /* @__PURE__ */ jsxs5(MuiDialog, __spreadProps(__spreadValues({ onClose }, rest), { children: [
|
|
784
|
+
closeButton ? /* @__PURE__ */ jsx5(CloseButtonSlot, { onClick: onClose }) : null,
|
|
440
785
|
children
|
|
441
786
|
] }));
|
|
442
787
|
};
|
|
443
788
|
|
|
444
789
|
// ../dialog/src/lib/DialogActions.tsx
|
|
445
790
|
import MuiDialogActions from "@mui/material/DialogActions";
|
|
446
|
-
import { jsx as
|
|
791
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
447
792
|
var DialogActions = (_a) => {
|
|
448
793
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
449
|
-
return /* @__PURE__ */
|
|
794
|
+
return /* @__PURE__ */ jsx6(MuiDialogActions, __spreadProps(__spreadValues({}, rest), { children }));
|
|
450
795
|
};
|
|
451
796
|
|
|
452
797
|
// ../dialog/src/lib/DialogContent.tsx
|
|
453
798
|
import MuiDialogContent from "@mui/material/DialogContent";
|
|
454
|
-
import { jsx as
|
|
799
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
455
800
|
var DialogContent = (_a) => {
|
|
456
801
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
457
|
-
return /* @__PURE__ */
|
|
802
|
+
return /* @__PURE__ */ jsx7(MuiDialogContent, __spreadProps(__spreadValues({}, rest), { children }));
|
|
458
803
|
};
|
|
459
804
|
|
|
460
805
|
// ../dialog/src/lib/DialogContentText.tsx
|
|
461
806
|
import MuiDialogContentText from "@mui/material/DialogContentText";
|
|
462
|
-
import { jsx as
|
|
807
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
463
808
|
|
|
464
809
|
// ../dialog/src/lib/DialogTitle.tsx
|
|
465
810
|
import MuiDialogTitle from "@mui/material/DialogTitle";
|
|
466
811
|
import { AlertIcons } from "@availity/mui-alert";
|
|
467
812
|
import { styled as styled3 } from "@mui/material/styles";
|
|
468
|
-
import { jsx as
|
|
813
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
469
814
|
var AlertIcon = styled3("div", {
|
|
470
815
|
name: "MuiDialogTitle",
|
|
471
816
|
slot: "AvIcon",
|
|
@@ -478,8 +823,8 @@ var AlertIcon = styled3("div", {
|
|
|
478
823
|
});
|
|
479
824
|
var DialogTitle = (_a) => {
|
|
480
825
|
var _b = _a, { children, component = "h2", icon, variant = "h5" } = _b, rest = __objRest(_b, ["children", "component", "icon", "variant"]);
|
|
481
|
-
return /* @__PURE__ */
|
|
482
|
-
icon ? /* @__PURE__ */
|
|
826
|
+
return /* @__PURE__ */ jsxs6(MuiDialogTitle, __spreadProps(__spreadValues({ component, variant }, rest), { children: [
|
|
827
|
+
icon ? /* @__PURE__ */ jsx9(AlertIcon, { children: AlertIcons[icon] }) : null,
|
|
483
828
|
children
|
|
484
829
|
] }));
|
|
485
830
|
};
|
|
@@ -487,7 +832,7 @@ var DialogTitle = (_a) => {
|
|
|
487
832
|
// src/lib/UploadProgressBar.tsx
|
|
488
833
|
import { InputAdornment } from "@availity/mui-form-utils";
|
|
489
834
|
import { EyeIcon, EyeSlashIcon, WarningTriangleIcon } from "@availity/mui-icon";
|
|
490
|
-
import { Box as
|
|
835
|
+
import { Box as Box3 } from "@availity/mui-layout";
|
|
491
836
|
import { ListItemText } from "@availity/mui-list";
|
|
492
837
|
import { LinearProgress } from "@availity/mui-progress";
|
|
493
838
|
|
|
@@ -502,8 +847,8 @@ import {
|
|
|
502
847
|
SelectPropOverrides
|
|
503
848
|
} from "@availity/mui-form-utils";
|
|
504
849
|
import { Grid } from "@availity/mui-layout";
|
|
505
|
-
import { Typography as
|
|
506
|
-
import { Fragment as
|
|
850
|
+
import { Typography as Typography3 } from "@availity/mui-typography";
|
|
851
|
+
import { Fragment as Fragment5, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
507
852
|
var TextFieldFormHelperText = (_a) => {
|
|
508
853
|
var _b = _a, {
|
|
509
854
|
charCount,
|
|
@@ -517,16 +862,16 @@ var TextFieldFormHelperText = (_a) => {
|
|
|
517
862
|
"showCharacterCount"
|
|
518
863
|
]);
|
|
519
864
|
if (showCharacterCount) {
|
|
520
|
-
return /* @__PURE__ */
|
|
521
|
-
/* @__PURE__ */
|
|
522
|
-
/* @__PURE__ */
|
|
523
|
-
/* @__PURE__ */
|
|
865
|
+
return /* @__PURE__ */ jsxs7(Grid, { container: true, justifyContent: "space-between", flexWrap: "nowrap", children: [
|
|
866
|
+
/* @__PURE__ */ jsx10(FormHelperText, __spreadProps(__spreadValues({}, FormHelperTextProps2), { sx: { marginRight: "12px" }, children: helperText })),
|
|
867
|
+
/* @__PURE__ */ jsxs7(Typography3, { variant: "caption", marginTop: "4px", lineHeight: "1.25rem", children: [
|
|
868
|
+
/* @__PURE__ */ jsx10(Typography3, { component: "span", variant: "inherit", color: charCount > maxLength ? "error" : "textPrimary", children: charCount || 0 }),
|
|
524
869
|
"/",
|
|
525
870
|
maxLength
|
|
526
871
|
] })
|
|
527
872
|
] });
|
|
528
873
|
}
|
|
529
|
-
return /* @__PURE__ */
|
|
874
|
+
return /* @__PURE__ */ jsx10(FormHelperText, __spreadProps(__spreadValues({}, FormHelperTextProps2), { children: helperText }));
|
|
530
875
|
};
|
|
531
876
|
var TextField = forwardRef((props, ref) => {
|
|
532
877
|
var _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
@@ -558,14 +903,14 @@ var TextField = forwardRef((props, ref) => {
|
|
|
558
903
|
const maxLength = (inputProps == null ? void 0 : inputProps.maxLength) || ((_c = (_b = rest.slotProps) == null ? void 0 : _b.htmlInput) == null ? void 0 : _c.maxLength);
|
|
559
904
|
const allReadOnly = (InputProps2 == null ? void 0 : InputProps2.readOnly) || (inputProps == null ? void 0 : inputProps.readOnly) || ((_e = (_d = rest.slotProps) == null ? void 0 : _d.htmlInput) == null ? void 0 : _e.readOnly) || ((_g = (_f = rest.slotProps) == null ? void 0 : _f.input) == null ? void 0 : _g.readOnly);
|
|
560
905
|
const resolvedProps = (props2) => !props2 || Object.keys(props2).length === 0 ? void 0 : props2;
|
|
561
|
-
return /* @__PURE__ */
|
|
906
|
+
return /* @__PURE__ */ jsx10(
|
|
562
907
|
MuiTextField,
|
|
563
908
|
__spreadProps(__spreadValues({}, rest), {
|
|
564
909
|
onChange: (event) => {
|
|
565
910
|
setCharCount(event.target.value.length);
|
|
566
911
|
if (rest.onChange) rest.onChange(event);
|
|
567
912
|
},
|
|
568
|
-
helperText: helperText || /* @__PURE__ */
|
|
913
|
+
helperText: helperText || /* @__PURE__ */ jsx10(Fragment5, {}),
|
|
569
914
|
slots: { formHelperText: TextFieldFormHelperText },
|
|
570
915
|
slotProps: {
|
|
571
916
|
input: resolvedProps(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, InputProps2), InputPropOverrides), (_h = rest.slotProps) == null ? void 0 : _h.input), {
|
|
@@ -598,7 +943,7 @@ var TextField = forwardRef((props, ref) => {
|
|
|
598
943
|
});
|
|
599
944
|
|
|
600
945
|
// src/lib/UploadProgressBar.tsx
|
|
601
|
-
import { jsx as
|
|
946
|
+
import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
602
947
|
var ERROR_MAPPINGS = [
|
|
603
948
|
{
|
|
604
949
|
pattern: /but has an extension for/i,
|
|
@@ -647,24 +992,24 @@ var UploadProgressBar = ({ upload, onProgress, onError, onSuccess }) => {
|
|
|
647
992
|
upload.onProgress.push(handleOnProgress);
|
|
648
993
|
upload.onSuccess.push(handleOnSuccess);
|
|
649
994
|
upload.onError.push(handleOnError);
|
|
650
|
-
return errorMessage ? /* @__PURE__ */
|
|
651
|
-
/* @__PURE__ */
|
|
995
|
+
return errorMessage ? /* @__PURE__ */ jsxs8(Box3, { sx: { display: "flex", flexWrap: "wrap", columnGap: "4px" }, children: [
|
|
996
|
+
/* @__PURE__ */ jsxs8(
|
|
652
997
|
ListItemText,
|
|
653
998
|
{
|
|
654
999
|
slotProps: { primary: { color: "text.error", variant: "body2", component: "div" } },
|
|
655
1000
|
sx: { wordWrap: "break-word" },
|
|
656
1001
|
children: [
|
|
657
|
-
/* @__PURE__ */
|
|
1002
|
+
/* @__PURE__ */ jsx11(WarningTriangleIcon, { sx: { verticalAlign: "middle", mt: "-2px" } }),
|
|
658
1003
|
" ",
|
|
659
1004
|
errorMessage
|
|
660
1005
|
]
|
|
661
1006
|
}
|
|
662
1007
|
),
|
|
663
|
-
upload.status === "encrypted" && /* @__PURE__ */
|
|
664
|
-
/* @__PURE__ */
|
|
665
|
-
/* @__PURE__ */
|
|
666
|
-
/* @__PURE__ */
|
|
667
|
-
/* @__PURE__ */
|
|
1008
|
+
upload.status === "encrypted" && /* @__PURE__ */ jsxs8("div", { className: "pwRequired", children: [
|
|
1009
|
+
/* @__PURE__ */ jsx11(Button2, { color: "secondary", size: "small", onClick: toggleModal, children: "Enter Password" }),
|
|
1010
|
+
/* @__PURE__ */ jsx11(Dialog, { open: modalOpen, onClose: toggleModal, children: /* @__PURE__ */ jsxs8("form", { onSubmit: verifyPassword, children: [
|
|
1011
|
+
/* @__PURE__ */ jsx11(DialogTitle, { children: "Enter Password" }),
|
|
1012
|
+
/* @__PURE__ */ jsx11(DialogContent, { children: /* @__PURE__ */ jsx11(
|
|
668
1013
|
TextField,
|
|
669
1014
|
{
|
|
670
1015
|
type: showPassword ? "text" : "password",
|
|
@@ -673,70 +1018,1014 @@ var UploadProgressBar = ({ upload, onProgress, onError, onSuccess }) => {
|
|
|
673
1018
|
onChange: handlePasswordChange,
|
|
674
1019
|
autoFocus: true,
|
|
675
1020
|
InputProps: {
|
|
676
|
-
endAdornment: /* @__PURE__ */
|
|
1021
|
+
endAdornment: /* @__PURE__ */ jsx11(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx11(
|
|
677
1022
|
IconButton2,
|
|
678
1023
|
{
|
|
679
1024
|
title: "password visibility",
|
|
680
1025
|
onClick: () => setShowPassword((prev) => !prev),
|
|
681
1026
|
edge: "end",
|
|
682
|
-
children: showPassword ? /* @__PURE__ */
|
|
1027
|
+
children: showPassword ? /* @__PURE__ */ jsx11(EyeIcon, { fontSize: "small" }) : /* @__PURE__ */ jsx11(EyeSlashIcon, { fontSize: "small" })
|
|
683
1028
|
}
|
|
684
1029
|
) })
|
|
685
1030
|
}
|
|
686
1031
|
}
|
|
687
1032
|
) }),
|
|
688
|
-
/* @__PURE__ */
|
|
1033
|
+
/* @__PURE__ */ jsx11(DialogActions, { children: /* @__PURE__ */ jsx11(Button2, { color: "primary", type: "submit", children: "Ok" }) })
|
|
689
1034
|
] }) })
|
|
690
1035
|
] })
|
|
691
|
-
] }) : /* @__PURE__ */
|
|
1036
|
+
] }) : /* @__PURE__ */ jsx11(LinearProgress, { value: statePercentage, "aria-label": `${upload.file.name}-progress` });
|
|
692
1037
|
};
|
|
693
1038
|
|
|
694
|
-
//
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
1039
|
+
// ../../node_modules/@tanstack/query-core/build/lib/subscribable.mjs
|
|
1040
|
+
var Subscribable = class {
|
|
1041
|
+
constructor() {
|
|
1042
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
1043
|
+
this.subscribe = this.subscribe.bind(this);
|
|
1044
|
+
}
|
|
1045
|
+
subscribe(listener) {
|
|
1046
|
+
const identity = {
|
|
1047
|
+
listener
|
|
1048
|
+
};
|
|
1049
|
+
this.listeners.add(identity);
|
|
1050
|
+
this.onSubscribe();
|
|
1051
|
+
return () => {
|
|
1052
|
+
this.listeners.delete(identity);
|
|
1053
|
+
this.onUnsubscribe();
|
|
1054
|
+
};
|
|
1055
|
+
}
|
|
1056
|
+
hasListeners() {
|
|
1057
|
+
return this.listeners.size > 0;
|
|
1058
|
+
}
|
|
1059
|
+
onSubscribe() {
|
|
1060
|
+
}
|
|
1061
|
+
onUnsubscribe() {
|
|
1062
|
+
}
|
|
1063
|
+
};
|
|
1064
|
+
|
|
1065
|
+
// ../../node_modules/@tanstack/query-core/build/lib/utils.mjs
|
|
1066
|
+
var isServer = typeof window === "undefined" || "Deno" in window;
|
|
1067
|
+
function noop() {
|
|
1068
|
+
return void 0;
|
|
1069
|
+
}
|
|
1070
|
+
function isValidTimeout(value) {
|
|
1071
|
+
return typeof value === "number" && value >= 0 && value !== Infinity;
|
|
1072
|
+
}
|
|
1073
|
+
function timeUntilStale(updatedAt, staleTime) {
|
|
1074
|
+
return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);
|
|
1075
|
+
}
|
|
1076
|
+
function parseQueryArgs(arg1, arg2, arg3) {
|
|
1077
|
+
if (!isQueryKey(arg1)) {
|
|
1078
|
+
return arg1;
|
|
1079
|
+
}
|
|
1080
|
+
if (typeof arg2 === "function") {
|
|
1081
|
+
return __spreadProps(__spreadValues({}, arg3), {
|
|
1082
|
+
queryKey: arg1,
|
|
1083
|
+
queryFn: arg2
|
|
1084
|
+
});
|
|
1085
|
+
}
|
|
1086
|
+
return __spreadProps(__spreadValues({}, arg2), {
|
|
1087
|
+
queryKey: arg1
|
|
708
1088
|
});
|
|
709
1089
|
}
|
|
710
|
-
function
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
1090
|
+
function replaceEqualDeep(a, b) {
|
|
1091
|
+
if (a === b) {
|
|
1092
|
+
return a;
|
|
1093
|
+
}
|
|
1094
|
+
const array = isPlainArray(a) && isPlainArray(b);
|
|
1095
|
+
if (array || isPlainObject(a) && isPlainObject(b)) {
|
|
1096
|
+
const aSize = array ? a.length : Object.keys(a).length;
|
|
1097
|
+
const bItems = array ? b : Object.keys(b);
|
|
1098
|
+
const bSize = bItems.length;
|
|
1099
|
+
const copy = array ? [] : {};
|
|
1100
|
+
let equalItems = 0;
|
|
1101
|
+
for (let i = 0; i < bSize; i++) {
|
|
1102
|
+
const key = array ? i : bItems[i];
|
|
1103
|
+
copy[key] = replaceEqualDeep(a[key], b[key]);
|
|
1104
|
+
if (copy[key] === a[key]) {
|
|
1105
|
+
equalItems++;
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
return aSize === bSize && equalItems === aSize ? a : copy;
|
|
1109
|
+
}
|
|
1110
|
+
return b;
|
|
719
1111
|
}
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
|
|
1112
|
+
function shallowEqualObjects(a, b) {
|
|
1113
|
+
if (a && !b || b && !a) {
|
|
1114
|
+
return false;
|
|
1115
|
+
}
|
|
1116
|
+
for (const key in a) {
|
|
1117
|
+
if (a[key] !== b[key]) {
|
|
1118
|
+
return false;
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
return true;
|
|
1122
|
+
}
|
|
1123
|
+
function isPlainArray(value) {
|
|
1124
|
+
return Array.isArray(value) && value.length === Object.keys(value).length;
|
|
1125
|
+
}
|
|
1126
|
+
function isPlainObject(o) {
|
|
1127
|
+
if (!hasObjectPrototype(o)) {
|
|
1128
|
+
return false;
|
|
1129
|
+
}
|
|
1130
|
+
const ctor = o.constructor;
|
|
1131
|
+
if (typeof ctor === "undefined") {
|
|
1132
|
+
return true;
|
|
1133
|
+
}
|
|
1134
|
+
const prot = ctor.prototype;
|
|
1135
|
+
if (!hasObjectPrototype(prot)) {
|
|
1136
|
+
return false;
|
|
1137
|
+
}
|
|
1138
|
+
if (!prot.hasOwnProperty("isPrototypeOf")) {
|
|
1139
|
+
return false;
|
|
1140
|
+
}
|
|
1141
|
+
return true;
|
|
1142
|
+
}
|
|
1143
|
+
function hasObjectPrototype(o) {
|
|
1144
|
+
return Object.prototype.toString.call(o) === "[object Object]";
|
|
1145
|
+
}
|
|
1146
|
+
function isQueryKey(value) {
|
|
1147
|
+
return Array.isArray(value);
|
|
1148
|
+
}
|
|
1149
|
+
function sleep(timeout) {
|
|
1150
|
+
return new Promise((resolve) => {
|
|
1151
|
+
setTimeout(resolve, timeout);
|
|
1152
|
+
});
|
|
1153
|
+
}
|
|
1154
|
+
function scheduleMicrotask(callback) {
|
|
1155
|
+
sleep(0).then(callback);
|
|
1156
|
+
}
|
|
1157
|
+
function replaceData(prevData, data, options) {
|
|
1158
|
+
if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {
|
|
1159
|
+
return prevData;
|
|
1160
|
+
} else if (typeof options.structuralSharing === "function") {
|
|
1161
|
+
return options.structuralSharing(prevData, data);
|
|
1162
|
+
} else if (options.structuralSharing !== false) {
|
|
1163
|
+
return replaceEqualDeep(prevData, data);
|
|
1164
|
+
}
|
|
1165
|
+
return data;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
// ../../node_modules/@tanstack/query-core/build/lib/focusManager.mjs
|
|
1169
|
+
var FocusManager = class extends Subscribable {
|
|
1170
|
+
constructor() {
|
|
1171
|
+
super();
|
|
1172
|
+
this.setup = (onFocus) => {
|
|
1173
|
+
if (!isServer && window.addEventListener) {
|
|
1174
|
+
const listener = () => onFocus();
|
|
1175
|
+
window.addEventListener("visibilitychange", listener, false);
|
|
1176
|
+
window.addEventListener("focus", listener, false);
|
|
1177
|
+
return () => {
|
|
1178
|
+
window.removeEventListener("visibilitychange", listener);
|
|
1179
|
+
window.removeEventListener("focus", listener);
|
|
1180
|
+
};
|
|
1181
|
+
}
|
|
1182
|
+
return;
|
|
1183
|
+
};
|
|
1184
|
+
}
|
|
1185
|
+
onSubscribe() {
|
|
1186
|
+
if (!this.cleanup) {
|
|
1187
|
+
this.setEventListener(this.setup);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
onUnsubscribe() {
|
|
1191
|
+
if (!this.hasListeners()) {
|
|
1192
|
+
var _this$cleanup;
|
|
1193
|
+
(_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);
|
|
1194
|
+
this.cleanup = void 0;
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
setEventListener(setup) {
|
|
1198
|
+
var _this$cleanup2;
|
|
1199
|
+
this.setup = setup;
|
|
1200
|
+
(_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);
|
|
1201
|
+
this.cleanup = setup((focused) => {
|
|
1202
|
+
if (typeof focused === "boolean") {
|
|
1203
|
+
this.setFocused(focused);
|
|
1204
|
+
} else {
|
|
1205
|
+
this.onFocus();
|
|
1206
|
+
}
|
|
1207
|
+
});
|
|
1208
|
+
}
|
|
1209
|
+
setFocused(focused) {
|
|
1210
|
+
const changed = this.focused !== focused;
|
|
1211
|
+
if (changed) {
|
|
1212
|
+
this.focused = focused;
|
|
1213
|
+
this.onFocus();
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
onFocus() {
|
|
1217
|
+
this.listeners.forEach(({
|
|
1218
|
+
listener
|
|
1219
|
+
}) => {
|
|
1220
|
+
listener();
|
|
1221
|
+
});
|
|
1222
|
+
}
|
|
1223
|
+
isFocused() {
|
|
1224
|
+
if (typeof this.focused === "boolean") {
|
|
1225
|
+
return this.focused;
|
|
1226
|
+
}
|
|
1227
|
+
if (typeof document === "undefined") {
|
|
1228
|
+
return true;
|
|
1229
|
+
}
|
|
1230
|
+
return [void 0, "visible", "prerender"].includes(document.visibilityState);
|
|
1231
|
+
}
|
|
1232
|
+
};
|
|
1233
|
+
var focusManager = new FocusManager();
|
|
1234
|
+
|
|
1235
|
+
// ../../node_modules/@tanstack/query-core/build/lib/onlineManager.mjs
|
|
1236
|
+
var onlineEvents = ["online", "offline"];
|
|
1237
|
+
var OnlineManager = class extends Subscribable {
|
|
1238
|
+
constructor() {
|
|
1239
|
+
super();
|
|
1240
|
+
this.setup = (onOnline) => {
|
|
1241
|
+
if (!isServer && window.addEventListener) {
|
|
1242
|
+
const listener = () => onOnline();
|
|
1243
|
+
onlineEvents.forEach((event) => {
|
|
1244
|
+
window.addEventListener(event, listener, false);
|
|
1245
|
+
});
|
|
1246
|
+
return () => {
|
|
1247
|
+
onlineEvents.forEach((event) => {
|
|
1248
|
+
window.removeEventListener(event, listener);
|
|
1249
|
+
});
|
|
1250
|
+
};
|
|
1251
|
+
}
|
|
1252
|
+
return;
|
|
1253
|
+
};
|
|
1254
|
+
}
|
|
1255
|
+
onSubscribe() {
|
|
1256
|
+
if (!this.cleanup) {
|
|
1257
|
+
this.setEventListener(this.setup);
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
onUnsubscribe() {
|
|
1261
|
+
if (!this.hasListeners()) {
|
|
1262
|
+
var _this$cleanup;
|
|
1263
|
+
(_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);
|
|
1264
|
+
this.cleanup = void 0;
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
setEventListener(setup) {
|
|
1268
|
+
var _this$cleanup2;
|
|
1269
|
+
this.setup = setup;
|
|
1270
|
+
(_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);
|
|
1271
|
+
this.cleanup = setup((online) => {
|
|
1272
|
+
if (typeof online === "boolean") {
|
|
1273
|
+
this.setOnline(online);
|
|
1274
|
+
} else {
|
|
1275
|
+
this.onOnline();
|
|
1276
|
+
}
|
|
1277
|
+
});
|
|
1278
|
+
}
|
|
1279
|
+
setOnline(online) {
|
|
1280
|
+
const changed = this.online !== online;
|
|
1281
|
+
if (changed) {
|
|
1282
|
+
this.online = online;
|
|
1283
|
+
this.onOnline();
|
|
1284
|
+
}
|
|
1285
|
+
}
|
|
1286
|
+
onOnline() {
|
|
1287
|
+
this.listeners.forEach(({
|
|
1288
|
+
listener
|
|
1289
|
+
}) => {
|
|
1290
|
+
listener();
|
|
1291
|
+
});
|
|
1292
|
+
}
|
|
1293
|
+
isOnline() {
|
|
1294
|
+
if (typeof this.online === "boolean") {
|
|
1295
|
+
return this.online;
|
|
1296
|
+
}
|
|
1297
|
+
if (typeof navigator === "undefined" || typeof navigator.onLine === "undefined") {
|
|
1298
|
+
return true;
|
|
1299
|
+
}
|
|
1300
|
+
return navigator.onLine;
|
|
1301
|
+
}
|
|
1302
|
+
};
|
|
1303
|
+
var onlineManager = new OnlineManager();
|
|
1304
|
+
|
|
1305
|
+
// ../../node_modules/@tanstack/query-core/build/lib/retryer.mjs
|
|
1306
|
+
function canFetch(networkMode) {
|
|
1307
|
+
return (networkMode != null ? networkMode : "online") === "online" ? onlineManager.isOnline() : true;
|
|
1308
|
+
}
|
|
1309
|
+
var CancelledError = class {
|
|
1310
|
+
constructor(options) {
|
|
1311
|
+
this.revert = options == null ? void 0 : options.revert;
|
|
1312
|
+
this.silent = options == null ? void 0 : options.silent;
|
|
1313
|
+
}
|
|
1314
|
+
};
|
|
1315
|
+
function isCancelledError(value) {
|
|
1316
|
+
return value instanceof CancelledError;
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
// ../../node_modules/@tanstack/query-core/build/lib/notifyManager.mjs
|
|
1320
|
+
function createNotifyManager() {
|
|
1321
|
+
let queue = [];
|
|
1322
|
+
let transactions = 0;
|
|
1323
|
+
let notifyFn = (callback) => {
|
|
1324
|
+
callback();
|
|
1325
|
+
};
|
|
1326
|
+
let batchNotifyFn = (callback) => {
|
|
1327
|
+
callback();
|
|
1328
|
+
};
|
|
1329
|
+
const batch = (callback) => {
|
|
1330
|
+
let result;
|
|
1331
|
+
transactions++;
|
|
1332
|
+
try {
|
|
1333
|
+
result = callback();
|
|
1334
|
+
} finally {
|
|
1335
|
+
transactions--;
|
|
1336
|
+
if (!transactions) {
|
|
1337
|
+
flush();
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
return result;
|
|
1341
|
+
};
|
|
1342
|
+
const schedule = (callback) => {
|
|
1343
|
+
if (transactions) {
|
|
1344
|
+
queue.push(callback);
|
|
1345
|
+
} else {
|
|
1346
|
+
scheduleMicrotask(() => {
|
|
1347
|
+
notifyFn(callback);
|
|
1348
|
+
});
|
|
1349
|
+
}
|
|
1350
|
+
};
|
|
1351
|
+
const batchCalls = (callback) => {
|
|
1352
|
+
return (...args) => {
|
|
1353
|
+
schedule(() => {
|
|
1354
|
+
callback(...args);
|
|
1355
|
+
});
|
|
1356
|
+
};
|
|
1357
|
+
};
|
|
1358
|
+
const flush = () => {
|
|
1359
|
+
const originalQueue = queue;
|
|
1360
|
+
queue = [];
|
|
1361
|
+
if (originalQueue.length) {
|
|
1362
|
+
scheduleMicrotask(() => {
|
|
1363
|
+
batchNotifyFn(() => {
|
|
1364
|
+
originalQueue.forEach((callback) => {
|
|
1365
|
+
notifyFn(callback);
|
|
1366
|
+
});
|
|
1367
|
+
});
|
|
1368
|
+
});
|
|
1369
|
+
}
|
|
1370
|
+
};
|
|
1371
|
+
const setNotifyFunction = (fn) => {
|
|
1372
|
+
notifyFn = fn;
|
|
1373
|
+
};
|
|
1374
|
+
const setBatchNotifyFunction = (fn) => {
|
|
1375
|
+
batchNotifyFn = fn;
|
|
1376
|
+
};
|
|
1377
|
+
return {
|
|
1378
|
+
batch,
|
|
1379
|
+
batchCalls,
|
|
1380
|
+
schedule,
|
|
1381
|
+
setNotifyFunction,
|
|
1382
|
+
setBatchNotifyFunction
|
|
1383
|
+
};
|
|
1384
|
+
}
|
|
1385
|
+
var notifyManager = createNotifyManager();
|
|
1386
|
+
|
|
1387
|
+
// ../../node_modules/@tanstack/query-core/build/lib/queryObserver.mjs
|
|
1388
|
+
var QueryObserver = class extends Subscribable {
|
|
1389
|
+
constructor(client, options) {
|
|
1390
|
+
super();
|
|
1391
|
+
this.client = client;
|
|
1392
|
+
this.options = options;
|
|
1393
|
+
this.trackedProps = /* @__PURE__ */ new Set();
|
|
1394
|
+
this.selectError = null;
|
|
1395
|
+
this.bindMethods();
|
|
1396
|
+
this.setOptions(options);
|
|
1397
|
+
}
|
|
1398
|
+
bindMethods() {
|
|
1399
|
+
this.remove = this.remove.bind(this);
|
|
1400
|
+
this.refetch = this.refetch.bind(this);
|
|
1401
|
+
}
|
|
1402
|
+
onSubscribe() {
|
|
1403
|
+
if (this.listeners.size === 1) {
|
|
1404
|
+
this.currentQuery.addObserver(this);
|
|
1405
|
+
if (shouldFetchOnMount(this.currentQuery, this.options)) {
|
|
1406
|
+
this.executeFetch();
|
|
1407
|
+
}
|
|
1408
|
+
this.updateTimers();
|
|
1409
|
+
}
|
|
1410
|
+
}
|
|
1411
|
+
onUnsubscribe() {
|
|
1412
|
+
if (!this.hasListeners()) {
|
|
1413
|
+
this.destroy();
|
|
1414
|
+
}
|
|
1415
|
+
}
|
|
1416
|
+
shouldFetchOnReconnect() {
|
|
1417
|
+
return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);
|
|
1418
|
+
}
|
|
1419
|
+
shouldFetchOnWindowFocus() {
|
|
1420
|
+
return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);
|
|
1421
|
+
}
|
|
1422
|
+
destroy() {
|
|
1423
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
1424
|
+
this.clearStaleTimeout();
|
|
1425
|
+
this.clearRefetchInterval();
|
|
1426
|
+
this.currentQuery.removeObserver(this);
|
|
1427
|
+
}
|
|
1428
|
+
setOptions(options, notifyOptions) {
|
|
1429
|
+
const prevOptions = this.options;
|
|
1430
|
+
const prevQuery = this.currentQuery;
|
|
1431
|
+
this.options = this.client.defaultQueryOptions(options);
|
|
1432
|
+
if (process.env.NODE_ENV !== "production" && typeof (options == null ? void 0 : options.isDataEqual) !== "undefined") {
|
|
1433
|
+
this.client.getLogger().error("The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option");
|
|
1434
|
+
}
|
|
1435
|
+
if (!shallowEqualObjects(prevOptions, this.options)) {
|
|
1436
|
+
this.client.getQueryCache().notify({
|
|
1437
|
+
type: "observerOptionsUpdated",
|
|
1438
|
+
query: this.currentQuery,
|
|
1439
|
+
observer: this
|
|
1440
|
+
});
|
|
1441
|
+
}
|
|
1442
|
+
if (typeof this.options.enabled !== "undefined" && typeof this.options.enabled !== "boolean") {
|
|
1443
|
+
throw new Error("Expected enabled to be a boolean");
|
|
1444
|
+
}
|
|
1445
|
+
if (!this.options.queryKey) {
|
|
1446
|
+
this.options.queryKey = prevOptions.queryKey;
|
|
1447
|
+
}
|
|
1448
|
+
this.updateQuery();
|
|
1449
|
+
const mounted = this.hasListeners();
|
|
1450
|
+
if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {
|
|
1451
|
+
this.executeFetch();
|
|
1452
|
+
}
|
|
1453
|
+
this.updateResult(notifyOptions);
|
|
1454
|
+
if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {
|
|
1455
|
+
this.updateStaleTimeout();
|
|
1456
|
+
}
|
|
1457
|
+
const nextRefetchInterval = this.computeRefetchInterval();
|
|
1458
|
+
if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {
|
|
1459
|
+
this.updateRefetchInterval(nextRefetchInterval);
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
getOptimisticResult(options) {
|
|
1463
|
+
const query = this.client.getQueryCache().build(this.client, options);
|
|
1464
|
+
const result = this.createResult(query, options);
|
|
1465
|
+
if (shouldAssignObserverCurrentProperties(this, result, options)) {
|
|
1466
|
+
this.currentResult = result;
|
|
1467
|
+
this.currentResultOptions = this.options;
|
|
1468
|
+
this.currentResultState = this.currentQuery.state;
|
|
1469
|
+
}
|
|
1470
|
+
return result;
|
|
1471
|
+
}
|
|
1472
|
+
getCurrentResult() {
|
|
1473
|
+
return this.currentResult;
|
|
1474
|
+
}
|
|
1475
|
+
trackResult(result) {
|
|
1476
|
+
const trackedResult = {};
|
|
1477
|
+
Object.keys(result).forEach((key) => {
|
|
1478
|
+
Object.defineProperty(trackedResult, key, {
|
|
1479
|
+
configurable: false,
|
|
1480
|
+
enumerable: true,
|
|
1481
|
+
get: () => {
|
|
1482
|
+
this.trackedProps.add(key);
|
|
1483
|
+
return result[key];
|
|
1484
|
+
}
|
|
1485
|
+
});
|
|
1486
|
+
});
|
|
1487
|
+
return trackedResult;
|
|
1488
|
+
}
|
|
1489
|
+
getCurrentQuery() {
|
|
1490
|
+
return this.currentQuery;
|
|
1491
|
+
}
|
|
1492
|
+
remove() {
|
|
1493
|
+
this.client.getQueryCache().remove(this.currentQuery);
|
|
1494
|
+
}
|
|
1495
|
+
refetch(_a = {}) {
|
|
1496
|
+
var _b = _a, {
|
|
1497
|
+
refetchPage
|
|
1498
|
+
} = _b, options = __objRest(_b, [
|
|
1499
|
+
"refetchPage"
|
|
1500
|
+
]);
|
|
1501
|
+
return this.fetch(__spreadProps(__spreadValues({}, options), {
|
|
1502
|
+
meta: {
|
|
1503
|
+
refetchPage
|
|
1504
|
+
}
|
|
1505
|
+
}));
|
|
1506
|
+
}
|
|
1507
|
+
fetchOptimistic(options) {
|
|
1508
|
+
const defaultedOptions = this.client.defaultQueryOptions(options);
|
|
1509
|
+
const query = this.client.getQueryCache().build(this.client, defaultedOptions);
|
|
1510
|
+
query.isFetchingOptimistic = true;
|
|
1511
|
+
return query.fetch().then(() => this.createResult(query, defaultedOptions));
|
|
1512
|
+
}
|
|
1513
|
+
fetch(fetchOptions) {
|
|
1514
|
+
var _fetchOptions$cancelR;
|
|
1515
|
+
return this.executeFetch(__spreadProps(__spreadValues({}, fetchOptions), {
|
|
1516
|
+
cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true
|
|
1517
|
+
})).then(() => {
|
|
1518
|
+
this.updateResult();
|
|
1519
|
+
return this.currentResult;
|
|
1520
|
+
});
|
|
1521
|
+
}
|
|
1522
|
+
executeFetch(fetchOptions) {
|
|
1523
|
+
this.updateQuery();
|
|
1524
|
+
let promise = this.currentQuery.fetch(this.options, fetchOptions);
|
|
1525
|
+
if (!(fetchOptions != null && fetchOptions.throwOnError)) {
|
|
1526
|
+
promise = promise.catch(noop);
|
|
1527
|
+
}
|
|
1528
|
+
return promise;
|
|
1529
|
+
}
|
|
1530
|
+
updateStaleTimeout() {
|
|
1531
|
+
this.clearStaleTimeout();
|
|
1532
|
+
if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {
|
|
1533
|
+
return;
|
|
1534
|
+
}
|
|
1535
|
+
const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime);
|
|
1536
|
+
const timeout = time + 1;
|
|
1537
|
+
this.staleTimeoutId = setTimeout(() => {
|
|
1538
|
+
if (!this.currentResult.isStale) {
|
|
1539
|
+
this.updateResult();
|
|
1540
|
+
}
|
|
1541
|
+
}, timeout);
|
|
1542
|
+
}
|
|
1543
|
+
computeRefetchInterval() {
|
|
1544
|
+
var _this$options$refetch;
|
|
1545
|
+
return typeof this.options.refetchInterval === "function" ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;
|
|
1546
|
+
}
|
|
1547
|
+
updateRefetchInterval(nextInterval) {
|
|
1548
|
+
this.clearRefetchInterval();
|
|
1549
|
+
this.currentRefetchInterval = nextInterval;
|
|
1550
|
+
if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {
|
|
1551
|
+
return;
|
|
1552
|
+
}
|
|
1553
|
+
this.refetchIntervalId = setInterval(() => {
|
|
1554
|
+
if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {
|
|
1555
|
+
this.executeFetch();
|
|
1556
|
+
}
|
|
1557
|
+
}, this.currentRefetchInterval);
|
|
1558
|
+
}
|
|
1559
|
+
updateTimers() {
|
|
1560
|
+
this.updateStaleTimeout();
|
|
1561
|
+
this.updateRefetchInterval(this.computeRefetchInterval());
|
|
1562
|
+
}
|
|
1563
|
+
clearStaleTimeout() {
|
|
1564
|
+
if (this.staleTimeoutId) {
|
|
1565
|
+
clearTimeout(this.staleTimeoutId);
|
|
1566
|
+
this.staleTimeoutId = void 0;
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
clearRefetchInterval() {
|
|
1570
|
+
if (this.refetchIntervalId) {
|
|
1571
|
+
clearInterval(this.refetchIntervalId);
|
|
1572
|
+
this.refetchIntervalId = void 0;
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
createResult(query, options) {
|
|
1576
|
+
const prevQuery = this.currentQuery;
|
|
1577
|
+
const prevOptions = this.options;
|
|
1578
|
+
const prevResult = this.currentResult;
|
|
1579
|
+
const prevResultState = this.currentResultState;
|
|
1580
|
+
const prevResultOptions = this.currentResultOptions;
|
|
1581
|
+
const queryChange = query !== prevQuery;
|
|
1582
|
+
const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;
|
|
1583
|
+
const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;
|
|
1584
|
+
const {
|
|
1585
|
+
state
|
|
1586
|
+
} = query;
|
|
1587
|
+
let {
|
|
1588
|
+
dataUpdatedAt,
|
|
1589
|
+
error,
|
|
1590
|
+
errorUpdatedAt,
|
|
1591
|
+
fetchStatus,
|
|
1592
|
+
status
|
|
1593
|
+
} = state;
|
|
1594
|
+
let isPreviousData = false;
|
|
1595
|
+
let isPlaceholderData = false;
|
|
1596
|
+
let data;
|
|
1597
|
+
if (options._optimisticResults) {
|
|
1598
|
+
const mounted = this.hasListeners();
|
|
1599
|
+
const fetchOnMount = !mounted && shouldFetchOnMount(query, options);
|
|
1600
|
+
const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);
|
|
1601
|
+
if (fetchOnMount || fetchOptionally) {
|
|
1602
|
+
fetchStatus = canFetch(query.options.networkMode) ? "fetching" : "paused";
|
|
1603
|
+
if (!dataUpdatedAt) {
|
|
1604
|
+
status = "loading";
|
|
1605
|
+
}
|
|
1606
|
+
}
|
|
1607
|
+
if (options._optimisticResults === "isRestoring") {
|
|
1608
|
+
fetchStatus = "idle";
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== "error") {
|
|
1612
|
+
data = prevQueryResult.data;
|
|
1613
|
+
dataUpdatedAt = prevQueryResult.dataUpdatedAt;
|
|
1614
|
+
status = prevQueryResult.status;
|
|
1615
|
+
isPreviousData = true;
|
|
1616
|
+
} else if (options.select && typeof state.data !== "undefined") {
|
|
1617
|
+
if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {
|
|
1618
|
+
data = this.selectResult;
|
|
1619
|
+
} else {
|
|
1620
|
+
try {
|
|
1621
|
+
this.selectFn = options.select;
|
|
1622
|
+
data = options.select(state.data);
|
|
1623
|
+
data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);
|
|
1624
|
+
this.selectResult = data;
|
|
1625
|
+
this.selectError = null;
|
|
1626
|
+
} catch (selectError) {
|
|
1627
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1628
|
+
this.client.getLogger().error(selectError);
|
|
1629
|
+
}
|
|
1630
|
+
this.selectError = selectError;
|
|
1631
|
+
}
|
|
1632
|
+
}
|
|
1633
|
+
} else {
|
|
1634
|
+
data = state.data;
|
|
1635
|
+
}
|
|
1636
|
+
if (typeof options.placeholderData !== "undefined" && typeof data === "undefined" && status === "loading") {
|
|
1637
|
+
let placeholderData;
|
|
1638
|
+
if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {
|
|
1639
|
+
placeholderData = prevResult.data;
|
|
1640
|
+
} else {
|
|
1641
|
+
placeholderData = typeof options.placeholderData === "function" ? options.placeholderData() : options.placeholderData;
|
|
1642
|
+
if (options.select && typeof placeholderData !== "undefined") {
|
|
1643
|
+
try {
|
|
1644
|
+
placeholderData = options.select(placeholderData);
|
|
1645
|
+
this.selectError = null;
|
|
1646
|
+
} catch (selectError) {
|
|
1647
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1648
|
+
this.client.getLogger().error(selectError);
|
|
1649
|
+
}
|
|
1650
|
+
this.selectError = selectError;
|
|
1651
|
+
}
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
if (typeof placeholderData !== "undefined") {
|
|
1655
|
+
status = "success";
|
|
1656
|
+
data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);
|
|
1657
|
+
isPlaceholderData = true;
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
if (this.selectError) {
|
|
1661
|
+
error = this.selectError;
|
|
1662
|
+
data = this.selectResult;
|
|
1663
|
+
errorUpdatedAt = Date.now();
|
|
1664
|
+
status = "error";
|
|
1665
|
+
}
|
|
1666
|
+
const isFetching = fetchStatus === "fetching";
|
|
1667
|
+
const isLoading = status === "loading";
|
|
1668
|
+
const isError2 = status === "error";
|
|
1669
|
+
const result = {
|
|
1670
|
+
status,
|
|
1671
|
+
fetchStatus,
|
|
1672
|
+
isLoading,
|
|
1673
|
+
isSuccess: status === "success",
|
|
1674
|
+
isError: isError2,
|
|
1675
|
+
isInitialLoading: isLoading && isFetching,
|
|
1676
|
+
data,
|
|
1677
|
+
dataUpdatedAt,
|
|
1678
|
+
error,
|
|
1679
|
+
errorUpdatedAt,
|
|
1680
|
+
failureCount: state.fetchFailureCount,
|
|
1681
|
+
failureReason: state.fetchFailureReason,
|
|
1682
|
+
errorUpdateCount: state.errorUpdateCount,
|
|
1683
|
+
isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,
|
|
1684
|
+
isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,
|
|
1685
|
+
isFetching,
|
|
1686
|
+
isRefetching: isFetching && !isLoading,
|
|
1687
|
+
isLoadingError: isError2 && state.dataUpdatedAt === 0,
|
|
1688
|
+
isPaused: fetchStatus === "paused",
|
|
1689
|
+
isPlaceholderData,
|
|
1690
|
+
isPreviousData,
|
|
1691
|
+
isRefetchError: isError2 && state.dataUpdatedAt !== 0,
|
|
1692
|
+
isStale: isStale(query, options),
|
|
1693
|
+
refetch: this.refetch,
|
|
1694
|
+
remove: this.remove
|
|
1695
|
+
};
|
|
1696
|
+
return result;
|
|
1697
|
+
}
|
|
1698
|
+
updateResult(notifyOptions) {
|
|
1699
|
+
const prevResult = this.currentResult;
|
|
1700
|
+
const nextResult = this.createResult(this.currentQuery, this.options);
|
|
1701
|
+
this.currentResultState = this.currentQuery.state;
|
|
1702
|
+
this.currentResultOptions = this.options;
|
|
1703
|
+
if (shallowEqualObjects(nextResult, prevResult)) {
|
|
1704
|
+
return;
|
|
1705
|
+
}
|
|
1706
|
+
this.currentResult = nextResult;
|
|
1707
|
+
const defaultNotifyOptions = {
|
|
1708
|
+
cache: true
|
|
1709
|
+
};
|
|
1710
|
+
const shouldNotifyListeners = () => {
|
|
1711
|
+
if (!prevResult) {
|
|
1712
|
+
return true;
|
|
1713
|
+
}
|
|
1714
|
+
const {
|
|
1715
|
+
notifyOnChangeProps
|
|
1716
|
+
} = this.options;
|
|
1717
|
+
const notifyOnChangePropsValue = typeof notifyOnChangeProps === "function" ? notifyOnChangeProps() : notifyOnChangeProps;
|
|
1718
|
+
if (notifyOnChangePropsValue === "all" || !notifyOnChangePropsValue && !this.trackedProps.size) {
|
|
1719
|
+
return true;
|
|
1720
|
+
}
|
|
1721
|
+
const includedProps = new Set(notifyOnChangePropsValue != null ? notifyOnChangePropsValue : this.trackedProps);
|
|
1722
|
+
if (this.options.useErrorBoundary) {
|
|
1723
|
+
includedProps.add("error");
|
|
1724
|
+
}
|
|
1725
|
+
return Object.keys(this.currentResult).some((key) => {
|
|
1726
|
+
const typedKey = key;
|
|
1727
|
+
const changed = this.currentResult[typedKey] !== prevResult[typedKey];
|
|
1728
|
+
return changed && includedProps.has(typedKey);
|
|
1729
|
+
});
|
|
1730
|
+
};
|
|
1731
|
+
if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {
|
|
1732
|
+
defaultNotifyOptions.listeners = true;
|
|
1733
|
+
}
|
|
1734
|
+
this.notify(__spreadValues(__spreadValues({}, defaultNotifyOptions), notifyOptions));
|
|
1735
|
+
}
|
|
1736
|
+
updateQuery() {
|
|
1737
|
+
const query = this.client.getQueryCache().build(this.client, this.options);
|
|
1738
|
+
if (query === this.currentQuery) {
|
|
1739
|
+
return;
|
|
1740
|
+
}
|
|
1741
|
+
const prevQuery = this.currentQuery;
|
|
1742
|
+
this.currentQuery = query;
|
|
1743
|
+
this.currentQueryInitialState = query.state;
|
|
1744
|
+
this.previousQueryResult = this.currentResult;
|
|
1745
|
+
if (this.hasListeners()) {
|
|
1746
|
+
prevQuery == null ? void 0 : prevQuery.removeObserver(this);
|
|
1747
|
+
query.addObserver(this);
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
onQueryUpdate(action) {
|
|
1751
|
+
const notifyOptions = {};
|
|
1752
|
+
if (action.type === "success") {
|
|
1753
|
+
notifyOptions.onSuccess = !action.manual;
|
|
1754
|
+
} else if (action.type === "error" && !isCancelledError(action.error)) {
|
|
1755
|
+
notifyOptions.onError = true;
|
|
1756
|
+
}
|
|
1757
|
+
this.updateResult(notifyOptions);
|
|
1758
|
+
if (this.hasListeners()) {
|
|
1759
|
+
this.updateTimers();
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1762
|
+
notify(notifyOptions) {
|
|
1763
|
+
notifyManager.batch(() => {
|
|
1764
|
+
if (notifyOptions.onSuccess) {
|
|
1765
|
+
var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;
|
|
1766
|
+
(_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);
|
|
1767
|
+
(_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);
|
|
1768
|
+
} else if (notifyOptions.onError) {
|
|
1769
|
+
var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;
|
|
1770
|
+
(_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);
|
|
1771
|
+
(_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, void 0, this.currentResult.error);
|
|
1772
|
+
}
|
|
1773
|
+
if (notifyOptions.listeners) {
|
|
1774
|
+
this.listeners.forEach(({
|
|
1775
|
+
listener
|
|
1776
|
+
}) => {
|
|
1777
|
+
listener(this.currentResult);
|
|
1778
|
+
});
|
|
1779
|
+
}
|
|
1780
|
+
if (notifyOptions.cache) {
|
|
1781
|
+
this.client.getQueryCache().notify({
|
|
1782
|
+
query: this.currentQuery,
|
|
1783
|
+
type: "observerResultsUpdated"
|
|
1784
|
+
});
|
|
1785
|
+
}
|
|
1786
|
+
});
|
|
1787
|
+
}
|
|
1788
|
+
};
|
|
1789
|
+
function shouldLoadOnMount(query, options) {
|
|
1790
|
+
return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === "error" && options.retryOnMount === false);
|
|
1791
|
+
}
|
|
1792
|
+
function shouldFetchOnMount(query, options) {
|
|
1793
|
+
return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);
|
|
1794
|
+
}
|
|
1795
|
+
function shouldFetchOn(query, options, field) {
|
|
1796
|
+
if (options.enabled !== false) {
|
|
1797
|
+
const value = typeof field === "function" ? field(query) : field;
|
|
1798
|
+
return value === "always" || value !== false && isStale(query, options);
|
|
1799
|
+
}
|
|
1800
|
+
return false;
|
|
1801
|
+
}
|
|
1802
|
+
function shouldFetchOptionally(query, prevQuery, options, prevOptions) {
|
|
1803
|
+
return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== "error") && isStale(query, options);
|
|
1804
|
+
}
|
|
1805
|
+
function isStale(query, options) {
|
|
1806
|
+
return query.isStaleByTime(options.staleTime);
|
|
1807
|
+
}
|
|
1808
|
+
function shouldAssignObserverCurrentProperties(observer, optimisticResult, options) {
|
|
1809
|
+
if (options.keepPreviousData) {
|
|
1810
|
+
return false;
|
|
1811
|
+
}
|
|
1812
|
+
if (options.placeholderData !== void 0) {
|
|
1813
|
+
return optimisticResult.isPlaceholderData;
|
|
1814
|
+
}
|
|
1815
|
+
if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {
|
|
1816
|
+
return true;
|
|
1817
|
+
}
|
|
1818
|
+
return false;
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
// ../../node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs
|
|
1822
|
+
var import_shim = __toESM(require_shim(), 1);
|
|
1823
|
+
var useSyncExternalStore = import_shim.useSyncExternalStore;
|
|
1824
|
+
|
|
1825
|
+
// ../../node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs
|
|
1826
|
+
import * as React from "react";
|
|
1827
|
+
var defaultContext = /* @__PURE__ */ React.createContext(void 0);
|
|
1828
|
+
var QueryClientSharingContext = /* @__PURE__ */ React.createContext(false);
|
|
1829
|
+
function getQueryClientContext(context, contextSharing) {
|
|
1830
|
+
if (context) {
|
|
1831
|
+
return context;
|
|
1832
|
+
}
|
|
1833
|
+
if (contextSharing && typeof window !== "undefined") {
|
|
1834
|
+
if (!window.ReactQueryClientContext) {
|
|
1835
|
+
window.ReactQueryClientContext = defaultContext;
|
|
1836
|
+
}
|
|
1837
|
+
return window.ReactQueryClientContext;
|
|
1838
|
+
}
|
|
1839
|
+
return defaultContext;
|
|
1840
|
+
}
|
|
1841
|
+
var useQueryClient = ({
|
|
1842
|
+
context
|
|
1843
|
+
} = {}) => {
|
|
1844
|
+
const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));
|
|
1845
|
+
if (!queryClient) {
|
|
1846
|
+
throw new Error("No QueryClient set, use QueryClientProvider to set one");
|
|
1847
|
+
}
|
|
1848
|
+
return queryClient;
|
|
1849
|
+
};
|
|
1850
|
+
|
|
1851
|
+
// ../../node_modules/@tanstack/react-query/build/lib/isRestoring.mjs
|
|
1852
|
+
import * as React2 from "react";
|
|
1853
|
+
var IsRestoringContext = /* @__PURE__ */ React2.createContext(false);
|
|
1854
|
+
var useIsRestoring = () => React2.useContext(IsRestoringContext);
|
|
1855
|
+
var IsRestoringProvider = IsRestoringContext.Provider;
|
|
1856
|
+
|
|
1857
|
+
// ../../node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs
|
|
1858
|
+
import * as React3 from "react";
|
|
1859
|
+
function createValue() {
|
|
1860
|
+
let isReset = false;
|
|
1861
|
+
return {
|
|
1862
|
+
clearReset: () => {
|
|
1863
|
+
isReset = false;
|
|
1864
|
+
},
|
|
1865
|
+
reset: () => {
|
|
1866
|
+
isReset = true;
|
|
1867
|
+
},
|
|
1868
|
+
isReset: () => {
|
|
1869
|
+
return isReset;
|
|
1870
|
+
}
|
|
1871
|
+
};
|
|
1872
|
+
}
|
|
1873
|
+
var QueryErrorResetBoundaryContext = /* @__PURE__ */ React3.createContext(createValue());
|
|
1874
|
+
var useQueryErrorResetBoundary = () => React3.useContext(QueryErrorResetBoundaryContext);
|
|
1875
|
+
|
|
1876
|
+
// ../../node_modules/@tanstack/react-query/build/lib/errorBoundaryUtils.mjs
|
|
1877
|
+
import * as React4 from "react";
|
|
1878
|
+
|
|
1879
|
+
// ../../node_modules/@tanstack/react-query/build/lib/utils.mjs
|
|
1880
|
+
function shouldThrowError(_useErrorBoundary, params) {
|
|
1881
|
+
if (typeof _useErrorBoundary === "function") {
|
|
1882
|
+
return _useErrorBoundary(...params);
|
|
1883
|
+
}
|
|
1884
|
+
return !!_useErrorBoundary;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
// ../../node_modules/@tanstack/react-query/build/lib/errorBoundaryUtils.mjs
|
|
1888
|
+
var ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {
|
|
1889
|
+
if (options.suspense || options.useErrorBoundary) {
|
|
1890
|
+
if (!errorResetBoundary.isReset()) {
|
|
1891
|
+
options.retryOnMount = false;
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1894
|
+
};
|
|
1895
|
+
var useClearResetErrorBoundary = (errorResetBoundary) => {
|
|
1896
|
+
React4.useEffect(() => {
|
|
1897
|
+
errorResetBoundary.clearReset();
|
|
1898
|
+
}, [errorResetBoundary]);
|
|
1899
|
+
};
|
|
1900
|
+
var getHasError = ({
|
|
1901
|
+
result,
|
|
1902
|
+
errorResetBoundary,
|
|
1903
|
+
useErrorBoundary,
|
|
1904
|
+
query
|
|
1905
|
+
}) => {
|
|
1906
|
+
return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(useErrorBoundary, [result.error, query]);
|
|
1907
|
+
};
|
|
1908
|
+
|
|
1909
|
+
// ../../node_modules/@tanstack/react-query/build/lib/suspense.mjs
|
|
1910
|
+
var ensureStaleTime = (defaultedOptions) => {
|
|
1911
|
+
if (defaultedOptions.suspense) {
|
|
1912
|
+
if (typeof defaultedOptions.staleTime !== "number") {
|
|
1913
|
+
defaultedOptions.staleTime = 1e3;
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
};
|
|
1917
|
+
var willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;
|
|
1918
|
+
var shouldSuspend = (defaultedOptions, result, isRestoring) => (defaultedOptions == null ? void 0 : defaultedOptions.suspense) && willFetch(result, isRestoring);
|
|
1919
|
+
var fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).then(({
|
|
1920
|
+
data
|
|
1921
|
+
}) => {
|
|
1922
|
+
defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);
|
|
1923
|
+
defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);
|
|
1924
|
+
}).catch((error) => {
|
|
1925
|
+
errorResetBoundary.clearReset();
|
|
1926
|
+
defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);
|
|
1927
|
+
defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(void 0, error);
|
|
1928
|
+
});
|
|
1929
|
+
|
|
1930
|
+
// ../../node_modules/@tanstack/react-query/build/lib/useBaseQuery.mjs
|
|
1931
|
+
import * as React5 from "react";
|
|
1932
|
+
function useBaseQuery(options, Observer) {
|
|
1933
|
+
const queryClient = useQueryClient({
|
|
1934
|
+
context: options.context
|
|
1935
|
+
});
|
|
1936
|
+
const isRestoring = useIsRestoring();
|
|
1937
|
+
const errorResetBoundary = useQueryErrorResetBoundary();
|
|
1938
|
+
const defaultedOptions = queryClient.defaultQueryOptions(options);
|
|
1939
|
+
defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
|
|
1940
|
+
if (defaultedOptions.onError) {
|
|
1941
|
+
defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);
|
|
1942
|
+
}
|
|
1943
|
+
if (defaultedOptions.onSuccess) {
|
|
1944
|
+
defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);
|
|
1945
|
+
}
|
|
1946
|
+
if (defaultedOptions.onSettled) {
|
|
1947
|
+
defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);
|
|
1948
|
+
}
|
|
1949
|
+
ensureStaleTime(defaultedOptions);
|
|
1950
|
+
ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);
|
|
1951
|
+
useClearResetErrorBoundary(errorResetBoundary);
|
|
1952
|
+
const [observer] = React5.useState(() => new Observer(queryClient, defaultedOptions));
|
|
1953
|
+
const result = observer.getOptimisticResult(defaultedOptions);
|
|
1954
|
+
useSyncExternalStore(React5.useCallback((onStoreChange) => {
|
|
1955
|
+
const unsubscribe = isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange));
|
|
1956
|
+
observer.updateResult();
|
|
1957
|
+
return unsubscribe;
|
|
1958
|
+
}, [observer, isRestoring]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
|
|
1959
|
+
React5.useEffect(() => {
|
|
1960
|
+
observer.setOptions(defaultedOptions, {
|
|
1961
|
+
listeners: false
|
|
1962
|
+
});
|
|
1963
|
+
}, [defaultedOptions, observer]);
|
|
1964
|
+
if (shouldSuspend(defaultedOptions, result, isRestoring)) {
|
|
1965
|
+
throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);
|
|
1966
|
+
}
|
|
1967
|
+
if (getHasError({
|
|
1968
|
+
result,
|
|
1969
|
+
errorResetBoundary,
|
|
1970
|
+
useErrorBoundary: defaultedOptions.useErrorBoundary,
|
|
1971
|
+
query: observer.getCurrentQuery()
|
|
1972
|
+
})) {
|
|
1973
|
+
throw result.error;
|
|
1974
|
+
}
|
|
1975
|
+
return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;
|
|
1976
|
+
}
|
|
1977
|
+
|
|
1978
|
+
// ../../node_modules/@tanstack/react-query/build/lib/useQuery.mjs
|
|
1979
|
+
function useQuery(arg1, arg2, arg3) {
|
|
1980
|
+
const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
|
|
1981
|
+
return useBaseQuery(parsedOptions, QueryObserver);
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
// src/lib/useUploadCore.tsx
|
|
1985
|
+
import Upload2 from "@availity/upload-core";
|
|
1986
|
+
function startUpload2(file, options) {
|
|
1987
|
+
return __async(this, null, function* () {
|
|
1988
|
+
const _a = options, { onSuccess, onError, onProgress, onChunkComplete } = _a, uploadOptions = __objRest(_a, ["onSuccess", "onError", "onProgress", "onChunkComplete"]);
|
|
1989
|
+
const upload = new Upload2(file, uploadOptions);
|
|
1990
|
+
yield upload.generateId();
|
|
1991
|
+
if (onSuccess) upload.onSuccess.push(onSuccess);
|
|
1992
|
+
if (onError) upload.onError.push(onError);
|
|
1993
|
+
if (onProgress) upload.onProgress.push(onProgress);
|
|
1994
|
+
if (onChunkComplete) upload.onChunkComplete.push(onChunkComplete);
|
|
1995
|
+
upload.start();
|
|
1996
|
+
return upload;
|
|
1997
|
+
});
|
|
1998
|
+
}
|
|
1999
|
+
function useUploadCore(file, options, queryOptions) {
|
|
2000
|
+
const isQueryEnabled = !!file;
|
|
2001
|
+
return useQuery(__spreadValues({
|
|
2002
|
+
queryKey: ["upload", file.name, options],
|
|
2003
|
+
queryFn: () => startUpload2(file, options),
|
|
2004
|
+
enabled: isQueryEnabled,
|
|
2005
|
+
retry: false,
|
|
2006
|
+
refetchOnWindowFocus: false
|
|
2007
|
+
}, queryOptions));
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
// src/lib/FileList.tsx
|
|
2011
|
+
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2012
|
+
var FileRow = ({
|
|
2013
|
+
file,
|
|
2014
|
+
options,
|
|
2015
|
+
onRemoveFile,
|
|
2016
|
+
queryOptions,
|
|
2017
|
+
customFileRow: CustomRow,
|
|
2018
|
+
disableRemove = false
|
|
2019
|
+
}) => {
|
|
2020
|
+
const Icon = getFileExtIcon(file.name);
|
|
2021
|
+
const { data: upload } = useUploadCore(file, options, queryOptions);
|
|
733
2022
|
if (!upload) return null;
|
|
734
|
-
if (CustomRow) return /* @__PURE__ */
|
|
735
|
-
return /* @__PURE__ */
|
|
2023
|
+
if (CustomRow) return /* @__PURE__ */ jsx12(CustomRow, { upload, options, onRemoveFile });
|
|
2024
|
+
return /* @__PURE__ */ jsxs9(
|
|
736
2025
|
ListItem2,
|
|
737
2026
|
{
|
|
738
2027
|
disableGutters: true,
|
|
739
|
-
secondaryAction: !disableRemove && /* @__PURE__ */
|
|
2028
|
+
secondaryAction: !disableRemove && /* @__PURE__ */ jsx12(
|
|
740
2029
|
IconButton3,
|
|
741
2030
|
{
|
|
742
2031
|
title: "remove file",
|
|
@@ -744,17 +2033,17 @@ var FileRow = ({
|
|
|
744
2033
|
onClick: () => {
|
|
745
2034
|
onRemoveFile(upload.id, upload);
|
|
746
2035
|
},
|
|
747
|
-
children: /* @__PURE__ */
|
|
2036
|
+
children: /* @__PURE__ */ jsx12(DeleteIcon, {})
|
|
748
2037
|
}
|
|
749
2038
|
),
|
|
750
2039
|
children: [
|
|
751
|
-
/* @__PURE__ */
|
|
752
|
-
/* @__PURE__ */
|
|
753
|
-
/* @__PURE__ */
|
|
754
|
-
/* @__PURE__ */
|
|
755
|
-
/* @__PURE__ */
|
|
2040
|
+
/* @__PURE__ */ jsxs9(Grid2, { container: true, spacing: 2, alignItems: "center", justifyContent: "space-between", width: "100%", flexWrap: "wrap", children: [
|
|
2041
|
+
/* @__PURE__ */ jsx12(Grid2, { size: { xs: "auto" }, children: /* @__PURE__ */ jsx12(ListItemIcon, { sx: { minWidth: "1.5rem" }, children: /* @__PURE__ */ jsx12(Icon, {}) }) }),
|
|
2042
|
+
/* @__PURE__ */ jsx12(Grid2, { size: { xs: 4 }, sx: { minWidth: "8rem" }, children: /* @__PURE__ */ jsx12(ListItemText2, { sx: { wordBreak: "break-all" }, children: upload.trimFileName(upload.file.name) }) }),
|
|
2043
|
+
/* @__PURE__ */ jsx12(Grid2, { size: { xs: 2 }, sx: { minWidth: "3rem" }, children: /* @__PURE__ */ jsx12(ListItemText2, { sx: { textAlign: "end" }, children: formatBytes(upload.file.size) }) }),
|
|
2044
|
+
/* @__PURE__ */ jsx12(Grid2, { size: { xs: "grow" }, sx: { minWidth: "6rem" }, children: /* @__PURE__ */ jsx12(UploadProgressBar, { upload }) })
|
|
756
2045
|
] }),
|
|
757
|
-
/* @__PURE__ */
|
|
2046
|
+
/* @__PURE__ */ jsx12(Divider3, {})
|
|
758
2047
|
]
|
|
759
2048
|
}
|
|
760
2049
|
);
|
|
@@ -768,8 +2057,8 @@ var FileList = ({
|
|
|
768
2057
|
disableRemove
|
|
769
2058
|
}) => {
|
|
770
2059
|
if (files.length === 0) return null;
|
|
771
|
-
return /* @__PURE__ */
|
|
772
|
-
return /* @__PURE__ */
|
|
2060
|
+
return /* @__PURE__ */ jsx12(List2, { children: files.map((file) => {
|
|
2061
|
+
return /* @__PURE__ */ jsx12(
|
|
773
2062
|
FileRow,
|
|
774
2063
|
{
|
|
775
2064
|
file,
|
|
@@ -784,17 +2073,83 @@ var FileList = ({
|
|
|
784
2073
|
}) });
|
|
785
2074
|
};
|
|
786
2075
|
|
|
787
|
-
// src/lib/
|
|
788
|
-
import {
|
|
789
|
-
import {
|
|
790
|
-
import {
|
|
2076
|
+
// src/lib/FileList2.tsx
|
|
2077
|
+
import { List as List3, ListItem as ListItem3, ListItemText as ListItemText3, ListItemIcon as ListItemIcon2 } from "@availity/mui-list";
|
|
2078
|
+
import { IconButton as IconButton4 } from "@availity/mui-button";
|
|
2079
|
+
import { DeleteIcon as DeleteIcon2 } from "@availity/mui-icon";
|
|
791
2080
|
import { Grid as Grid3 } from "@availity/mui-layout";
|
|
792
|
-
import {
|
|
2081
|
+
import { Divider as Divider4 } from "@availity/mui-divider";
|
|
2082
|
+
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2083
|
+
var FileRow2 = ({
|
|
2084
|
+
upload,
|
|
2085
|
+
options,
|
|
2086
|
+
onRemoveFile,
|
|
2087
|
+
customFileRow: CustomRow,
|
|
2088
|
+
disableRemove = false
|
|
2089
|
+
}) => {
|
|
2090
|
+
const Icon = getFileExtIcon(upload.file.name);
|
|
2091
|
+
if (!upload) return null;
|
|
2092
|
+
if (CustomRow) return /* @__PURE__ */ jsx13(CustomRow, { upload, options, onRemoveFile });
|
|
2093
|
+
return /* @__PURE__ */ jsxs10(
|
|
2094
|
+
ListItem3,
|
|
2095
|
+
{
|
|
2096
|
+
disableGutters: true,
|
|
2097
|
+
secondaryAction: !disableRemove && /* @__PURE__ */ jsx13(
|
|
2098
|
+
IconButton4,
|
|
2099
|
+
{
|
|
2100
|
+
title: "remove file",
|
|
2101
|
+
edge: "end",
|
|
2102
|
+
onClick: () => {
|
|
2103
|
+
onRemoveFile(upload.id, upload);
|
|
2104
|
+
},
|
|
2105
|
+
children: /* @__PURE__ */ jsx13(DeleteIcon2, {})
|
|
2106
|
+
}
|
|
2107
|
+
),
|
|
2108
|
+
children: [
|
|
2109
|
+
/* @__PURE__ */ jsxs10(Grid3, { container: true, spacing: 2, alignItems: "center", justifyContent: "space-between", width: "100%", flexWrap: "wrap", children: [
|
|
2110
|
+
/* @__PURE__ */ jsx13(Grid3, { size: { xs: "auto" }, children: /* @__PURE__ */ jsx13(ListItemIcon2, { sx: { minWidth: "1.5rem" }, children: /* @__PURE__ */ jsx13(Icon, {}) }) }),
|
|
2111
|
+
/* @__PURE__ */ jsx13(Grid3, { size: { xs: 4 }, sx: { minWidth: "8rem" }, children: /* @__PURE__ */ jsx13(ListItemText3, { sx: { wordBreak: "break-all" }, children: upload.trimFileName(upload.file.name) }) }),
|
|
2112
|
+
/* @__PURE__ */ jsx13(Grid3, { size: { xs: 2 }, sx: { minWidth: "3rem" }, children: /* @__PURE__ */ jsx13(ListItemText3, { sx: { textAlign: "end" }, children: formatBytes(upload.file.size) }) }),
|
|
2113
|
+
/* @__PURE__ */ jsx13(Grid3, { size: { xs: "grow" }, sx: { minWidth: "6rem" }, children: /* @__PURE__ */ jsx13(UploadProgressBar, { upload }) })
|
|
2114
|
+
] }),
|
|
2115
|
+
/* @__PURE__ */ jsx13(Divider4, {})
|
|
2116
|
+
]
|
|
2117
|
+
}
|
|
2118
|
+
);
|
|
2119
|
+
};
|
|
2120
|
+
var FileList2 = ({
|
|
2121
|
+
uploads,
|
|
2122
|
+
options,
|
|
2123
|
+
onRemoveFile,
|
|
2124
|
+
customFileRow,
|
|
2125
|
+
disableRemove
|
|
2126
|
+
}) => {
|
|
2127
|
+
if (uploads.length === 0) return null;
|
|
2128
|
+
return /* @__PURE__ */ jsx13(List3, { children: uploads.map((upload) => {
|
|
2129
|
+
return /* @__PURE__ */ jsx13(
|
|
2130
|
+
FileRow2,
|
|
2131
|
+
{
|
|
2132
|
+
upload,
|
|
2133
|
+
options,
|
|
2134
|
+
onRemoveFile,
|
|
2135
|
+
customFileRow,
|
|
2136
|
+
disableRemove
|
|
2137
|
+
},
|
|
2138
|
+
upload.id
|
|
2139
|
+
);
|
|
2140
|
+
}) });
|
|
2141
|
+
};
|
|
2142
|
+
|
|
2143
|
+
// src/lib/FileSelector.tsx
|
|
2144
|
+
import { useState as useState5 } from "react";
|
|
2145
|
+
import { useFormContext as useFormContext3 } from "react-hook-form";
|
|
2146
|
+
import { Grid as Grid4 } from "@availity/mui-layout";
|
|
2147
|
+
import { Typography as Typography6 } from "@availity/mui-typography";
|
|
793
2148
|
import { Alert as Alert2, AlertTitle as AlertTitle2 } from "@availity/mui-alert";
|
|
794
2149
|
|
|
795
2150
|
// src/lib/FileTypesMessage.tsx
|
|
796
|
-
import { Typography as
|
|
797
|
-
import { jsxs as
|
|
2151
|
+
import { Typography as Typography4 } from "@availity/mui-typography";
|
|
2152
|
+
import { jsxs as jsxs11 } from "react/jsx-runtime";
|
|
798
2153
|
var FileTypesMessage = ({
|
|
799
2154
|
allowedFileTypes = [],
|
|
800
2155
|
customSizeMessage,
|
|
@@ -804,17 +2159,17 @@ var FileTypesMessage = ({
|
|
|
804
2159
|
}) => {
|
|
805
2160
|
const fileSizeMsg = customSizeMessage || (typeof maxFileSize === "number" ? `Maximum file size is ${formatBytes(maxFileSize)}. ` : null);
|
|
806
2161
|
const fileTypesMsg = customTypesMessage || (allowedFileTypes.length > 0 ? `Supported file types include: ${allowedFileTypes.join(", ")}` : "All file types allowed.");
|
|
807
|
-
return /* @__PURE__ */
|
|
2162
|
+
return /* @__PURE__ */ jsxs11(Typography4, { variant, children: [
|
|
808
2163
|
fileSizeMsg,
|
|
809
2164
|
fileTypesMsg
|
|
810
2165
|
] });
|
|
811
2166
|
};
|
|
812
2167
|
|
|
813
2168
|
// src/lib/HeaderMessage.tsx
|
|
814
|
-
import { Typography as
|
|
815
|
-
import { jsxs as
|
|
2169
|
+
import { Typography as Typography5 } from "@availity/mui-typography";
|
|
2170
|
+
import { jsxs as jsxs12 } from "react/jsx-runtime";
|
|
816
2171
|
var HeaderMessage = ({ maxFiles, maxSize }) => {
|
|
817
|
-
return /* @__PURE__ */
|
|
2172
|
+
return /* @__PURE__ */ jsxs12(Typography5, { variant: "h6", children: [
|
|
818
2173
|
"Attach up to ",
|
|
819
2174
|
maxFiles,
|
|
820
2175
|
" file(s), with a maximum individual size of ",
|
|
@@ -823,7 +2178,7 @@ var HeaderMessage = ({ maxFiles, maxSize }) => {
|
|
|
823
2178
|
};
|
|
824
2179
|
|
|
825
2180
|
// src/lib/FileSelector.tsx
|
|
826
|
-
import { Fragment as
|
|
2181
|
+
import { Fragment as Fragment6, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
827
2182
|
var CLOUD_URL = "/cloud/web/appl/vault/upload/v1/resumable";
|
|
828
2183
|
var FileSelector = ({
|
|
829
2184
|
name,
|
|
@@ -852,10 +2207,10 @@ var FileSelector = ({
|
|
|
852
2207
|
validator,
|
|
853
2208
|
disableRemove
|
|
854
2209
|
}) => {
|
|
855
|
-
const [totalSize, setTotalSize] =
|
|
856
|
-
const [fileRejections, setFileRejections] =
|
|
2210
|
+
const [totalSize, setTotalSize] = useState5(0);
|
|
2211
|
+
const [fileRejections, setFileRejections] = useState5([]);
|
|
857
2212
|
const client = useQueryClient();
|
|
858
|
-
const formMethods =
|
|
2213
|
+
const formMethods = useFormContext3();
|
|
859
2214
|
const options = __spreadProps(__spreadValues({}, uploadOptions), {
|
|
860
2215
|
bucketId,
|
|
861
2216
|
customerId,
|
|
@@ -894,10 +2249,10 @@ var FileSelector = ({
|
|
|
894
2249
|
const otherRejections = fileRejections.filter(
|
|
895
2250
|
(rejection) => !rejection.errors.some((error) => error.code === TOO_MANY_FILES_CODE)
|
|
896
2251
|
);
|
|
897
|
-
return /* @__PURE__ */
|
|
898
|
-
enableDropArea ? /* @__PURE__ */
|
|
899
|
-
label ? /* @__PURE__ */
|
|
900
|
-
/* @__PURE__ */
|
|
2252
|
+
return /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
2253
|
+
enableDropArea ? /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
2254
|
+
label ? /* @__PURE__ */ jsx14(Typography6, { marginBottom: "4px", children: label }) : null,
|
|
2255
|
+
/* @__PURE__ */ jsx14(
|
|
901
2256
|
Dropzone,
|
|
902
2257
|
{
|
|
903
2258
|
name,
|
|
@@ -914,7 +2269,7 @@ var FileSelector = ({
|
|
|
914
2269
|
validator
|
|
915
2270
|
}
|
|
916
2271
|
),
|
|
917
|
-
/* @__PURE__ */
|
|
2272
|
+
/* @__PURE__ */ jsx14(
|
|
918
2273
|
FileTypesMessage,
|
|
919
2274
|
{
|
|
920
2275
|
allowedFileTypes,
|
|
@@ -925,10 +2280,10 @@ var FileSelector = ({
|
|
|
925
2280
|
}
|
|
926
2281
|
),
|
|
927
2282
|
children
|
|
928
|
-
] }) : /* @__PURE__ */
|
|
929
|
-
/* @__PURE__ */
|
|
930
|
-
/* @__PURE__ */
|
|
931
|
-
/* @__PURE__ */
|
|
2283
|
+
] }) : /* @__PURE__ */ jsxs13(Grid4, { container: true, rowSpacing: 3, flexDirection: "column", children: [
|
|
2284
|
+
/* @__PURE__ */ jsxs13(Grid4, { children: [
|
|
2285
|
+
/* @__PURE__ */ jsx14(HeaderMessage, { maxFiles, maxSize }),
|
|
2286
|
+
/* @__PURE__ */ jsx14(
|
|
932
2287
|
FileTypesMessage,
|
|
933
2288
|
{
|
|
934
2289
|
allowedFileTypes,
|
|
@@ -938,8 +2293,8 @@ var FileSelector = ({
|
|
|
938
2293
|
}
|
|
939
2294
|
)
|
|
940
2295
|
] }),
|
|
941
|
-
children ? /* @__PURE__ */
|
|
942
|
-
/* @__PURE__ */
|
|
2296
|
+
children ? /* @__PURE__ */ jsx14(Grid4, { children }) : null,
|
|
2297
|
+
/* @__PURE__ */ jsx14(Grid4, { children: /* @__PURE__ */ jsx14(
|
|
943
2298
|
Dropzone,
|
|
944
2299
|
{
|
|
945
2300
|
name,
|
|
@@ -957,20 +2312,20 @@ var FileSelector = ({
|
|
|
957
2312
|
}
|
|
958
2313
|
) })
|
|
959
2314
|
] }),
|
|
960
|
-
tooManyFilesRejections.length > 0 && /* @__PURE__ */
|
|
2315
|
+
tooManyFilesRejections.length > 0 && /* @__PURE__ */ jsxs13(
|
|
961
2316
|
Alert2,
|
|
962
2317
|
{
|
|
963
2318
|
severity: "error",
|
|
964
2319
|
onClose: () => tooManyFilesRejections.forEach((rejection) => handleRemoveRejection(rejection.id)),
|
|
965
2320
|
children: [
|
|
966
|
-
/* @__PURE__ */
|
|
2321
|
+
/* @__PURE__ */ jsx14(AlertTitle2, { children: "Items not allowed." }),
|
|
967
2322
|
"Too many files are selected for upload, maximum ",
|
|
968
2323
|
maxFiles,
|
|
969
2324
|
" allowed."
|
|
970
2325
|
]
|
|
971
2326
|
}
|
|
972
2327
|
),
|
|
973
|
-
otherRejections.length > 0 && otherRejections.map((rejection) => /* @__PURE__ */
|
|
2328
|
+
otherRejections.length > 0 && otherRejections.map((rejection) => /* @__PURE__ */ jsx14(
|
|
974
2329
|
ErrorAlert,
|
|
975
2330
|
{
|
|
976
2331
|
errors: rejection.errors,
|
|
@@ -980,7 +2335,7 @@ var FileSelector = ({
|
|
|
980
2335
|
},
|
|
981
2336
|
rejection.id
|
|
982
2337
|
)),
|
|
983
|
-
/* @__PURE__ */
|
|
2338
|
+
/* @__PURE__ */ jsx14(
|
|
984
2339
|
FileList,
|
|
985
2340
|
{
|
|
986
2341
|
files: files || [],
|
|
@@ -993,16 +2348,223 @@ var FileSelector = ({
|
|
|
993
2348
|
)
|
|
994
2349
|
] });
|
|
995
2350
|
};
|
|
2351
|
+
|
|
2352
|
+
// src/lib/FileSelector2.tsx
|
|
2353
|
+
import { useState as useState6 } from "react";
|
|
2354
|
+
import { useFormContext as useFormContext4 } from "react-hook-form";
|
|
2355
|
+
import { Grid as Grid5 } from "@availity/mui-layout";
|
|
2356
|
+
import { Typography as Typography7 } from "@availity/mui-typography";
|
|
2357
|
+
import { Alert as Alert3, AlertTitle as AlertTitle3 } from "@availity/mui-alert";
|
|
2358
|
+
import { Fragment as Fragment7, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2359
|
+
var FileSelector2 = ({
|
|
2360
|
+
name,
|
|
2361
|
+
allowedFileNameCharacters,
|
|
2362
|
+
allowedFileTypes = [],
|
|
2363
|
+
bucketId,
|
|
2364
|
+
clientId,
|
|
2365
|
+
children,
|
|
2366
|
+
customSizeMessage,
|
|
2367
|
+
customTypesMessage,
|
|
2368
|
+
customerId,
|
|
2369
|
+
customFileRow,
|
|
2370
|
+
disabled = false,
|
|
2371
|
+
enableDropArea = true,
|
|
2372
|
+
endpoint,
|
|
2373
|
+
isCloud,
|
|
2374
|
+
label = "Upload file",
|
|
2375
|
+
maxFiles,
|
|
2376
|
+
maxSize,
|
|
2377
|
+
multiple = true,
|
|
2378
|
+
onChange,
|
|
2379
|
+
onDrop,
|
|
2380
|
+
onUploadRemove,
|
|
2381
|
+
uploadOptions,
|
|
2382
|
+
validator,
|
|
2383
|
+
disableRemove
|
|
2384
|
+
}) => {
|
|
2385
|
+
const [totalSize, setTotalSize] = useState6(0);
|
|
2386
|
+
const [fileRejections, setFileRejections] = useState6([]);
|
|
2387
|
+
const formMethods = useFormContext4();
|
|
2388
|
+
const options = __spreadProps(__spreadValues({}, uploadOptions), {
|
|
2389
|
+
bucketId,
|
|
2390
|
+
customerId,
|
|
2391
|
+
clientId,
|
|
2392
|
+
fileTypes: allowedFileTypes,
|
|
2393
|
+
maxSize,
|
|
2394
|
+
allowedFileNameCharacters
|
|
2395
|
+
});
|
|
2396
|
+
if (endpoint) options.endpoint = endpoint;
|
|
2397
|
+
if (isCloud) options.endpoint = CLOUD_URL;
|
|
2398
|
+
const handleOnRemoveFile = (uploadId, upload) => {
|
|
2399
|
+
const prevFiles = formMethods.getValues(name);
|
|
2400
|
+
const newFiles = prevFiles.filter((prev) => prev.file.name !== upload.file.name);
|
|
2401
|
+
if (newFiles.length !== prevFiles.length) {
|
|
2402
|
+
const removedFile = prevFiles.find((prev) => prev.file.name === upload.file.name);
|
|
2403
|
+
try {
|
|
2404
|
+
upload.abort();
|
|
2405
|
+
} catch (e) {
|
|
2406
|
+
console.error("Encountered an issue stopping the file upload");
|
|
2407
|
+
}
|
|
2408
|
+
formMethods.setValue(name, newFiles);
|
|
2409
|
+
if (removedFile == null ? void 0 : removedFile.file.size) setTotalSize(totalSize - removedFile.file.size);
|
|
2410
|
+
if (onUploadRemove) onUploadRemove(newFiles, uploadId);
|
|
2411
|
+
}
|
|
2412
|
+
};
|
|
2413
|
+
const uploads = formMethods.watch(name) || [];
|
|
2414
|
+
const handleRemoveRejection = (id) => {
|
|
2415
|
+
const rejections = fileRejections.filter((value) => value.id !== id);
|
|
2416
|
+
setFileRejections(rejections);
|
|
2417
|
+
};
|
|
2418
|
+
const TOO_MANY_FILES_CODE = "too-many-files";
|
|
2419
|
+
const tooManyFilesRejections = fileRejections.filter(
|
|
2420
|
+
(rejection) => rejection.errors.some((error) => error.code === TOO_MANY_FILES_CODE)
|
|
2421
|
+
);
|
|
2422
|
+
const otherRejections = fileRejections.filter(
|
|
2423
|
+
(rejection) => !rejection.errors.some((error) => error.code === TOO_MANY_FILES_CODE)
|
|
2424
|
+
);
|
|
2425
|
+
return /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
2426
|
+
enableDropArea ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
2427
|
+
label ? /* @__PURE__ */ jsx15(Typography7, { marginBottom: "4px", children: label }) : null,
|
|
2428
|
+
/* @__PURE__ */ jsx15(
|
|
2429
|
+
Dropzone2,
|
|
2430
|
+
{
|
|
2431
|
+
name,
|
|
2432
|
+
allowedFileTypes,
|
|
2433
|
+
disabled,
|
|
2434
|
+
enableDropArea,
|
|
2435
|
+
maxFiles,
|
|
2436
|
+
maxSize,
|
|
2437
|
+
multiple,
|
|
2438
|
+
onChange,
|
|
2439
|
+
onDrop,
|
|
2440
|
+
setFileRejections,
|
|
2441
|
+
setTotalSize,
|
|
2442
|
+
uploadOptions: options,
|
|
2443
|
+
validator
|
|
2444
|
+
}
|
|
2445
|
+
),
|
|
2446
|
+
/* @__PURE__ */ jsx15(
|
|
2447
|
+
FileTypesMessage,
|
|
2448
|
+
{
|
|
2449
|
+
allowedFileTypes,
|
|
2450
|
+
maxFileSize: maxSize,
|
|
2451
|
+
customSizeMessage,
|
|
2452
|
+
customTypesMessage,
|
|
2453
|
+
variant: "caption"
|
|
2454
|
+
}
|
|
2455
|
+
),
|
|
2456
|
+
children
|
|
2457
|
+
] }) : /* @__PURE__ */ jsxs14(Grid5, { container: true, rowSpacing: 3, flexDirection: "column", children: [
|
|
2458
|
+
/* @__PURE__ */ jsxs14(Grid5, { children: [
|
|
2459
|
+
/* @__PURE__ */ jsx15(HeaderMessage, { maxFiles, maxSize }),
|
|
2460
|
+
/* @__PURE__ */ jsx15(
|
|
2461
|
+
FileTypesMessage,
|
|
2462
|
+
{
|
|
2463
|
+
allowedFileTypes,
|
|
2464
|
+
customSizeMessage,
|
|
2465
|
+
customTypesMessage,
|
|
2466
|
+
variant: "body2"
|
|
2467
|
+
}
|
|
2468
|
+
)
|
|
2469
|
+
] }),
|
|
2470
|
+
children ? /* @__PURE__ */ jsx15(Grid5, { children }) : null,
|
|
2471
|
+
/* @__PURE__ */ jsx15(Grid5, { children: /* @__PURE__ */ jsx15(
|
|
2472
|
+
Dropzone2,
|
|
2473
|
+
{
|
|
2474
|
+
name,
|
|
2475
|
+
allowedFileTypes,
|
|
2476
|
+
disabled,
|
|
2477
|
+
enableDropArea,
|
|
2478
|
+
maxFiles,
|
|
2479
|
+
maxSize,
|
|
2480
|
+
multiple,
|
|
2481
|
+
onChange,
|
|
2482
|
+
onDrop,
|
|
2483
|
+
setFileRejections,
|
|
2484
|
+
setTotalSize,
|
|
2485
|
+
uploadOptions: options,
|
|
2486
|
+
validator
|
|
2487
|
+
}
|
|
2488
|
+
) })
|
|
2489
|
+
] }),
|
|
2490
|
+
tooManyFilesRejections.length > 0 && /* @__PURE__ */ jsxs14(
|
|
2491
|
+
Alert3,
|
|
2492
|
+
{
|
|
2493
|
+
severity: "error",
|
|
2494
|
+
onClose: () => tooManyFilesRejections.forEach((rejection) => handleRemoveRejection(rejection.id)),
|
|
2495
|
+
children: [
|
|
2496
|
+
/* @__PURE__ */ jsx15(AlertTitle3, { children: "Items not allowed." }),
|
|
2497
|
+
"Too many files are selected for upload, maximum ",
|
|
2498
|
+
maxFiles,
|
|
2499
|
+
" allowed."
|
|
2500
|
+
]
|
|
2501
|
+
}
|
|
2502
|
+
),
|
|
2503
|
+
otherRejections.length > 0 && otherRejections.map((rejection) => /* @__PURE__ */ jsx15(
|
|
2504
|
+
ErrorAlert,
|
|
2505
|
+
{
|
|
2506
|
+
errors: rejection.errors,
|
|
2507
|
+
fileName: rejection.file.name,
|
|
2508
|
+
id: rejection.id,
|
|
2509
|
+
onClose: () => handleRemoveRejection(rejection.id)
|
|
2510
|
+
},
|
|
2511
|
+
rejection.id
|
|
2512
|
+
)),
|
|
2513
|
+
/* @__PURE__ */ jsx15(
|
|
2514
|
+
FileList2,
|
|
2515
|
+
{
|
|
2516
|
+
uploads: uploads || [],
|
|
2517
|
+
options,
|
|
2518
|
+
onRemoveFile: handleOnRemoveFile,
|
|
2519
|
+
customFileRow,
|
|
2520
|
+
disableRemove
|
|
2521
|
+
}
|
|
2522
|
+
)
|
|
2523
|
+
] });
|
|
2524
|
+
};
|
|
996
2525
|
export {
|
|
2526
|
+
CLOUD_URL,
|
|
997
2527
|
Dropzone,
|
|
2528
|
+
Dropzone2,
|
|
2529
|
+
DropzoneContainer,
|
|
998
2530
|
ErrorAlert,
|
|
999
2531
|
FileList,
|
|
2532
|
+
FileList2,
|
|
1000
2533
|
FilePickerBtn,
|
|
1001
2534
|
FileRow,
|
|
2535
|
+
FileRow2,
|
|
1002
2536
|
FileSelector,
|
|
2537
|
+
FileSelector2,
|
|
1003
2538
|
FileTypesMessage,
|
|
1004
2539
|
HeaderMessage,
|
|
1005
2540
|
UploadProgressBar,
|
|
2541
|
+
createCounter,
|
|
1006
2542
|
formatFileTooLarge,
|
|
2543
|
+
innerBoxStyles,
|
|
2544
|
+
outerBoxStyles,
|
|
1007
2545
|
useUploadCore
|
|
1008
2546
|
};
|
|
2547
|
+
/*! Bundled license information:
|
|
2548
|
+
|
|
2549
|
+
use-sync-external-store/cjs/use-sync-external-store-shim.production.js:
|
|
2550
|
+
(**
|
|
2551
|
+
* @license React
|
|
2552
|
+
* use-sync-external-store-shim.production.js
|
|
2553
|
+
*
|
|
2554
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2555
|
+
*
|
|
2556
|
+
* This source code is licensed under the MIT license found in the
|
|
2557
|
+
* LICENSE file in the root directory of this source tree.
|
|
2558
|
+
*)
|
|
2559
|
+
|
|
2560
|
+
use-sync-external-store/cjs/use-sync-external-store-shim.development.js:
|
|
2561
|
+
(**
|
|
2562
|
+
* @license React
|
|
2563
|
+
* use-sync-external-store-shim.development.js
|
|
2564
|
+
*
|
|
2565
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2566
|
+
*
|
|
2567
|
+
* This source code is licensed under the MIT license found in the
|
|
2568
|
+
* LICENSE file in the root directory of this source tree.
|
|
2569
|
+
*)
|
|
2570
|
+
*/
|