techsbcn-storybook 2.9.0 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/fields/FileUploadComponent/FileUploadComponent.d.ts +17 -0
- package/dist/helpers/AuthHelper.d.ts +1 -0
- package/dist/helpers/FileDownloader.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +66 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface FileUploadData {
|
|
3
|
+
file: File;
|
|
4
|
+
base64Content: string;
|
|
5
|
+
note: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface FileUploadComponentProps {
|
|
8
|
+
labels: {
|
|
9
|
+
dropzone: string;
|
|
10
|
+
noteLabel: string;
|
|
11
|
+
notePlaceholder: string;
|
|
12
|
+
save: string;
|
|
13
|
+
success: string;
|
|
14
|
+
};
|
|
15
|
+
onUpload: (data: FileUploadData) => Promise<boolean>;
|
|
16
|
+
}
|
|
17
|
+
export declare const FileUploadComponent: React.FC<FileUploadComponentProps>;
|
|
@@ -6,3 +6,4 @@ export declare const getSession: () => Session | null;
|
|
|
6
6
|
export declare const getJwtToken: () => string | null;
|
|
7
7
|
export declare const saveSession: (jwt: string) => void;
|
|
8
8
|
export declare const clearSession: () => void;
|
|
9
|
+
export declare const logout: (logoutRedirect: string) => void;
|
|
@@ -3,3 +3,4 @@ export declare const redirectDownload: (url: any, fileName: string) => void;
|
|
|
3
3
|
export declare const getImageByBlob: (binaryString: any) => string;
|
|
4
4
|
export declare const getImageByBase64: (content: string) => string;
|
|
5
5
|
export declare const toBase64: (file: Blob) => Promise<string>;
|
|
6
|
+
export declare const readFileAsBase64: (file: File) => Promise<string>;
|
package/dist/index.d.ts
CHANGED
|
@@ -27,5 +27,6 @@ export * from './components/ui/Spinner/Spinner';
|
|
|
27
27
|
export * from './components/fields/DatePickerComponent/DatePickerComponent';
|
|
28
28
|
export * from './components/wrappers/CardComponent/CardComponent';
|
|
29
29
|
export * from './components/notifications/SnackbarComponent';
|
|
30
|
+
export * from './components/fields/FileUploadComponent/FileUploadComponent';
|
|
30
31
|
export * from './helpers/index';
|
|
31
32
|
export * from './interfaces/index';
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,8 @@ var yup = require('@hookform/resolvers/yup');
|
|
|
21
21
|
var lab = require('@mui/lab');
|
|
22
22
|
var xDatePickers = require('@mui/x-date-pickers');
|
|
23
23
|
var AdapterDayjs = require('@mui/x-date-pickers/AdapterDayjs');
|
|
24
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
|
25
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
24
26
|
|
|
25
27
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
26
28
|
|
|
@@ -629,6 +631,10 @@ var clearSession = () => {
|
|
|
629
631
|
if (typeof document === "undefined") return;
|
|
630
632
|
document.cookie = `${AUTH_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; SameSite=Lax`;
|
|
631
633
|
};
|
|
634
|
+
var logout = (logoutRedirect) => {
|
|
635
|
+
clearSession();
|
|
636
|
+
window.location.replace(logoutRedirect);
|
|
637
|
+
};
|
|
632
638
|
|
|
633
639
|
// src/helpers/CheckPermission.tsx
|
|
634
640
|
var checkPermission = (persmisionAvailable, userRoles) => {
|
|
@@ -690,6 +696,12 @@ var toBase64 = (file) => {
|
|
|
690
696
|
reader.onerror = (error) => reject(error);
|
|
691
697
|
});
|
|
692
698
|
};
|
|
699
|
+
var readFileAsBase64 = (file) => new Promise((resolve, reject) => {
|
|
700
|
+
const reader = new FileReader();
|
|
701
|
+
reader.onload = () => resolve(String(reader.result).split(",").pop() ?? "");
|
|
702
|
+
reader.onerror = () => reject(reader.error);
|
|
703
|
+
reader.readAsDataURL(file);
|
|
704
|
+
});
|
|
693
705
|
|
|
694
706
|
// src/interfaces/search/SearchFilters.tsx
|
|
695
707
|
var SearchBaseDefaults = {
|
|
@@ -2857,6 +2869,58 @@ var SnackbarComponent = ({
|
|
|
2857
2869
|
},
|
|
2858
2870
|
/* @__PURE__ */ React10__default.default.createElement(material.Alert, { severity, variant: "filled", onClose, action, sx: { width: "100%" } }, message)
|
|
2859
2871
|
);
|
|
2872
|
+
var FileUploadComponent = ({ labels, onUpload }) => {
|
|
2873
|
+
const [file, setFile] = React10.useState(null);
|
|
2874
|
+
const [note, setNote] = React10.useState("");
|
|
2875
|
+
const [loading, setLoading] = React10.useState(false);
|
|
2876
|
+
const save = async () => {
|
|
2877
|
+
if (!file) return;
|
|
2878
|
+
setLoading(true);
|
|
2879
|
+
try {
|
|
2880
|
+
const base64Content = await readFileAsBase64(file);
|
|
2881
|
+
if (!await onUpload({ file, base64Content, note: note.trim() || null })) return;
|
|
2882
|
+
addNotification({ message: labels.success, type: "success" });
|
|
2883
|
+
setFile(null);
|
|
2884
|
+
setNote("");
|
|
2885
|
+
} finally {
|
|
2886
|
+
setLoading(false);
|
|
2887
|
+
}
|
|
2888
|
+
};
|
|
2889
|
+
return /* @__PURE__ */ React10__default.default.createElement(material.Card, { variant: "outlined" }, /* @__PURE__ */ React10__default.default.createElement(material.CardContent, null, /* @__PURE__ */ React10__default.default.createElement(
|
|
2890
|
+
material.Box,
|
|
2891
|
+
{
|
|
2892
|
+
component: "label",
|
|
2893
|
+
onDragOver: (event) => event.preventDefault(),
|
|
2894
|
+
onDrop: (event) => {
|
|
2895
|
+
event.preventDefault();
|
|
2896
|
+
setFile(event.dataTransfer.files[0] ?? null);
|
|
2897
|
+
}
|
|
2898
|
+
},
|
|
2899
|
+
/* @__PURE__ */ React10__default.default.createElement(
|
|
2900
|
+
"input",
|
|
2901
|
+
{
|
|
2902
|
+
type: "file",
|
|
2903
|
+
hidden: true,
|
|
2904
|
+
onChange: (event) => {
|
|
2905
|
+
setFile(event.target.files?.[0] ?? null);
|
|
2906
|
+
event.target.value = "";
|
|
2907
|
+
}
|
|
2908
|
+
}
|
|
2909
|
+
),
|
|
2910
|
+
/* @__PURE__ */ React10__default.default.createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faArrowUpFromBracket, size: "xl" }),
|
|
2911
|
+
/* @__PURE__ */ React10__default.default.createElement(material.Typography, null, file?.name ?? labels.dropzone)
|
|
2912
|
+
), /* @__PURE__ */ React10__default.default.createElement(material.Typography, { variant: "subtitle2", sx: { mt: 3, mb: 1 } }, labels.noteLabel), /* @__PURE__ */ React10__default.default.createElement(
|
|
2913
|
+
TextFieldComponent,
|
|
2914
|
+
{
|
|
2915
|
+
name: "note",
|
|
2916
|
+
placeholder: labels.notePlaceholder,
|
|
2917
|
+
value: note,
|
|
2918
|
+
onChange: (event) => setNote(event.target.value),
|
|
2919
|
+
multiline: true,
|
|
2920
|
+
rows: 3
|
|
2921
|
+
}
|
|
2922
|
+
), /* @__PURE__ */ React10__default.default.createElement(material.Box, { sx: { display: "flex", justifyContent: "flex-end", mt: 1 } }, /* @__PURE__ */ React10__default.default.createElement(ButtonComponent, { label: labels.save, disabled: !file, loading, onClick: save }))));
|
|
2923
|
+
};
|
|
2860
2924
|
|
|
2861
2925
|
exports.AppBreadcrumbs = AppBreadcrumbs;
|
|
2862
2926
|
exports.AppHeader = AppHeader;
|
|
@@ -2867,6 +2931,7 @@ exports.ChangePasswordForm = ChangePasswordForm;
|
|
|
2867
2931
|
exports.DatePickerComponent = DatePickerComponent;
|
|
2868
2932
|
exports.DetailPanelComponent = DetailPanelComponent;
|
|
2869
2933
|
exports.DrawerSidebar = DrawerSidebar;
|
|
2934
|
+
exports.FileUploadComponent = FileUploadComponent;
|
|
2870
2935
|
exports.GroupBy = GroupBy;
|
|
2871
2936
|
exports.LinearProgressComponent = LinearProgressComponent;
|
|
2872
2937
|
exports.LoginForm = LoginForm;
|
|
@@ -2899,6 +2964,8 @@ exports.getImageByBase64 = getImageByBase64;
|
|
|
2899
2964
|
exports.getImageByBlob = getImageByBlob;
|
|
2900
2965
|
exports.getJwtToken = getJwtToken;
|
|
2901
2966
|
exports.getSession = getSession;
|
|
2967
|
+
exports.logout = logout;
|
|
2968
|
+
exports.readFileAsBase64 = readFileAsBase64;
|
|
2902
2969
|
exports.redirectDownload = redirectDownload;
|
|
2903
2970
|
exports.removeNotification = removeNotification;
|
|
2904
2971
|
exports.saveSession = saveSession;
|