techsbcn-storybook 2.9.0 → 2.10.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/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 +69 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +68 -5
- 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
|
@@ -5,13 +5,13 @@ var material = require('@mui/material');
|
|
|
5
5
|
var iconsMaterial = require('@mui/icons-material');
|
|
6
6
|
var styles = require('@mui/material/styles');
|
|
7
7
|
var lodash = require('lodash');
|
|
8
|
+
var reactRouter = require('react-router');
|
|
8
9
|
var CloseIcon = require('@mui/icons-material/Close');
|
|
9
10
|
var notistack = require('notistack');
|
|
10
11
|
var dayjs = require('dayjs');
|
|
11
12
|
var localizedFormat = require('dayjs/plugin/localizedFormat');
|
|
12
13
|
var timezone = require('dayjs/plugin/timezone');
|
|
13
14
|
var utc = require('dayjs/plugin/utc');
|
|
14
|
-
var reactRouter = require('react-router');
|
|
15
15
|
var MenuIcon = require('@mui/icons-material/Menu');
|
|
16
16
|
var Select = require('react-select');
|
|
17
17
|
var reactSelectAsyncPaginate = require('react-select-async-paginate');
|
|
@@ -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
|
|
|
@@ -583,8 +585,7 @@ var TextFieldComponent = ({
|
|
|
583
585
|
}
|
|
584
586
|
));
|
|
585
587
|
};
|
|
586
|
-
|
|
587
|
-
// src/helpers/AuthHelper.tsx
|
|
588
|
+
var navigate = reactRouter.useNavigate();
|
|
588
589
|
var AUTH_COOKIE_NAME = "auth_token";
|
|
589
590
|
var NAME_IDENTIFIER_CLAIM = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier";
|
|
590
591
|
var ROLE_CLAIM = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role";
|
|
@@ -629,6 +630,10 @@ var clearSession = () => {
|
|
|
629
630
|
if (typeof document === "undefined") return;
|
|
630
631
|
document.cookie = `${AUTH_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; SameSite=Lax`;
|
|
631
632
|
};
|
|
633
|
+
var logout = (logoutRedirect) => {
|
|
634
|
+
clearSession();
|
|
635
|
+
navigate(logoutRedirect, { replace: true });
|
|
636
|
+
};
|
|
632
637
|
|
|
633
638
|
// src/helpers/CheckPermission.tsx
|
|
634
639
|
var checkPermission = (persmisionAvailable, userRoles) => {
|
|
@@ -690,6 +695,12 @@ var toBase64 = (file) => {
|
|
|
690
695
|
reader.onerror = (error) => reject(error);
|
|
691
696
|
});
|
|
692
697
|
};
|
|
698
|
+
var readFileAsBase64 = (file) => new Promise((resolve, reject) => {
|
|
699
|
+
const reader = new FileReader();
|
|
700
|
+
reader.onload = () => resolve(String(reader.result).split(",").pop() ?? "");
|
|
701
|
+
reader.onerror = () => reject(reader.error);
|
|
702
|
+
reader.readAsDataURL(file);
|
|
703
|
+
});
|
|
693
704
|
|
|
694
705
|
// src/interfaces/search/SearchFilters.tsx
|
|
695
706
|
var SearchBaseDefaults = {
|
|
@@ -2857,6 +2868,58 @@ var SnackbarComponent = ({
|
|
|
2857
2868
|
},
|
|
2858
2869
|
/* @__PURE__ */ React10__default.default.createElement(material.Alert, { severity, variant: "filled", onClose, action, sx: { width: "100%" } }, message)
|
|
2859
2870
|
);
|
|
2871
|
+
var FileUploadComponent = ({ labels, onUpload }) => {
|
|
2872
|
+
const [file, setFile] = React10.useState(null);
|
|
2873
|
+
const [note, setNote] = React10.useState("");
|
|
2874
|
+
const [loading, setLoading] = React10.useState(false);
|
|
2875
|
+
const save = async () => {
|
|
2876
|
+
if (!file) return;
|
|
2877
|
+
setLoading(true);
|
|
2878
|
+
try {
|
|
2879
|
+
const base64Content = await readFileAsBase64(file);
|
|
2880
|
+
if (!await onUpload({ file, base64Content, note: note.trim() || null })) return;
|
|
2881
|
+
addNotification({ message: labels.success, type: "success" });
|
|
2882
|
+
setFile(null);
|
|
2883
|
+
setNote("");
|
|
2884
|
+
} finally {
|
|
2885
|
+
setLoading(false);
|
|
2886
|
+
}
|
|
2887
|
+
};
|
|
2888
|
+
return /* @__PURE__ */ React10__default.default.createElement(material.Card, { variant: "outlined" }, /* @__PURE__ */ React10__default.default.createElement(material.CardContent, null, /* @__PURE__ */ React10__default.default.createElement(
|
|
2889
|
+
material.Box,
|
|
2890
|
+
{
|
|
2891
|
+
component: "label",
|
|
2892
|
+
onDragOver: (event) => event.preventDefault(),
|
|
2893
|
+
onDrop: (event) => {
|
|
2894
|
+
event.preventDefault();
|
|
2895
|
+
setFile(event.dataTransfer.files[0] ?? null);
|
|
2896
|
+
}
|
|
2897
|
+
},
|
|
2898
|
+
/* @__PURE__ */ React10__default.default.createElement(
|
|
2899
|
+
"input",
|
|
2900
|
+
{
|
|
2901
|
+
type: "file",
|
|
2902
|
+
hidden: true,
|
|
2903
|
+
onChange: (event) => {
|
|
2904
|
+
setFile(event.target.files?.[0] ?? null);
|
|
2905
|
+
event.target.value = "";
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
),
|
|
2909
|
+
/* @__PURE__ */ React10__default.default.createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faArrowUpFromBracket, size: "xl" }),
|
|
2910
|
+
/* @__PURE__ */ React10__default.default.createElement(material.Typography, null, file?.name ?? labels.dropzone)
|
|
2911
|
+
), /* @__PURE__ */ React10__default.default.createElement(material.Typography, { variant: "subtitle2", sx: { mt: 3, mb: 1 } }, labels.noteLabel), /* @__PURE__ */ React10__default.default.createElement(
|
|
2912
|
+
TextFieldComponent,
|
|
2913
|
+
{
|
|
2914
|
+
name: "note",
|
|
2915
|
+
placeholder: labels.notePlaceholder,
|
|
2916
|
+
value: note,
|
|
2917
|
+
onChange: (event) => setNote(event.target.value),
|
|
2918
|
+
multiline: true,
|
|
2919
|
+
rows: 3
|
|
2920
|
+
}
|
|
2921
|
+
), /* @__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 }))));
|
|
2922
|
+
};
|
|
2860
2923
|
|
|
2861
2924
|
exports.AppBreadcrumbs = AppBreadcrumbs;
|
|
2862
2925
|
exports.AppHeader = AppHeader;
|
|
@@ -2867,6 +2930,7 @@ exports.ChangePasswordForm = ChangePasswordForm;
|
|
|
2867
2930
|
exports.DatePickerComponent = DatePickerComponent;
|
|
2868
2931
|
exports.DetailPanelComponent = DetailPanelComponent;
|
|
2869
2932
|
exports.DrawerSidebar = DrawerSidebar;
|
|
2933
|
+
exports.FileUploadComponent = FileUploadComponent;
|
|
2870
2934
|
exports.GroupBy = GroupBy;
|
|
2871
2935
|
exports.LinearProgressComponent = LinearProgressComponent;
|
|
2872
2936
|
exports.LoginForm = LoginForm;
|
|
@@ -2899,6 +2963,8 @@ exports.getImageByBase64 = getImageByBase64;
|
|
|
2899
2963
|
exports.getImageByBlob = getImageByBlob;
|
|
2900
2964
|
exports.getJwtToken = getJwtToken;
|
|
2901
2965
|
exports.getSession = getSession;
|
|
2966
|
+
exports.logout = logout;
|
|
2967
|
+
exports.readFileAsBase64 = readFileAsBase64;
|
|
2902
2968
|
exports.redirectDownload = redirectDownload;
|
|
2903
2969
|
exports.removeNotification = removeNotification;
|
|
2904
2970
|
exports.saveSession = saveSession;
|