@movalib/movalib-commons 1.55.5 → 1.55.6
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/PV_README.md +1 -1
- package/dist/src/components/QrCodePLVContainer/PLVComponent.d.ts +3 -0
- package/dist/src/components/QrCodePLVContainer/PLVComponent.js +16 -2
- package/dist/src/components/QrCodePLVContainer/QrCodePLVContainer.js +73 -10
- package/dist/src/helpers/ApiHelper.d.ts +0 -1
- package/dist/src/helpers/ApiHelper.js +2 -3
- package/dist/src/utils/DialogPrint.js +2 -1
- package/package.json +4 -2
- package/public/pdf.worker.mjs +56401 -0
- package/src/components/QrCodePLVContainer/PLVComponent.tsx +35 -0
- package/src/components/QrCodePLVContainer/QrCodePLVContainer.tsx +66 -11
- package/src/helpers/ApiHelper.ts +4 -7
- package/src/utils/DialogPrint.tsx +2 -1
- package/movalib-movalib-commons-1.55.36.tgz +0 -0
- package/movalib-movalib-commons-1.55.37.tgz +0 -0
package/PV_README.md
CHANGED
|
@@ -13,4 +13,7 @@ type PLVComponentProps = {
|
|
|
13
13
|
export declare class PLVComponent extends React.Component<PLVComponentProps> {
|
|
14
14
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
}
|
|
16
|
+
export declare class PLVComponentV2 extends React.Component<PLVComponentProps> {
|
|
17
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
}
|
|
16
19
|
export {};
|
|
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
29
29
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.PLVComponent = exports.PrintSize = void 0;
|
|
32
|
+
exports.PLVComponentV2 = exports.PLVComponent = exports.PrintSize = void 0;
|
|
33
33
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
34
34
|
var material_1 = require("@mui/material");
|
|
35
35
|
var react_1 = __importDefault(require("react"));
|
|
@@ -138,8 +138,22 @@ var PLVComponent = /** @class */ (function (_super) {
|
|
|
138
138
|
return PLVComponent;
|
|
139
139
|
}(react_1.default.Component));
|
|
140
140
|
exports.PLVComponent = PLVComponent;
|
|
141
|
+
var PLVComponentV2 = /** @class */ (function (_super) {
|
|
142
|
+
__extends(PLVComponentV2, _super);
|
|
143
|
+
function PLVComponentV2() {
|
|
144
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
145
|
+
}
|
|
146
|
+
PLVComponentV2.prototype.render = function () {
|
|
147
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ className: 'printable-content', style: {
|
|
148
|
+
width: this.props.printSize === PrintSize.A4 ? '210mm' : this.props.printSize === PrintSize.A3 ? '297mm' : '0mm',
|
|
149
|
+
height: this.props.printSize === PrintSize.A4 ? '297mm' : this.props.printSize === PrintSize.A3 ? '420mm' : '0mm',
|
|
150
|
+
} }, { children: (0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ container: true }, { children: (0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)("img", { src: this.props.url, style: { display: 'block', width: '100%', height: '100%', objectFit: 'cover' } }) })) })) })));
|
|
151
|
+
};
|
|
152
|
+
return PLVComponentV2;
|
|
153
|
+
}(react_1.default.Component));
|
|
154
|
+
exports.PLVComponentV2 = PLVComponentV2;
|
|
141
155
|
// CSS pour cacher le contenu à l'écran mais le rendre imprimable
|
|
142
|
-
var css = "\n .highlight {\n background-color: #BCD46C; /* Couleur de surlignage */\n margin: 4px 4px; /* Espacement autour du texte surlign\u00E9 */\n padding-left : 8px;\n padding-right: 8px;\n font-weight: 500;\n color: white;\n }\n .not-highlight {\n margin: 4px 4px; /* Espacement autour du texte surlign\u00E9 */\n padding-left : 8px;\n padding-right: 8px;\n color: #BCD46C;\n }\n\n .printable-content {\n visibility: hidden;\n position: absolute;\n left: -10000px;\n top: -10000px;\n }\n @media print {\n .printable-content {\n visibility: visible;\n position: static;\n }\n }\n";
|
|
156
|
+
var css = "\nbody {\n margin: 0;\n }\n .highlight {\n background-color: #BCD46C; /* Couleur de surlignage */\n margin: 4px 4px; /* Espacement autour du texte surlign\u00E9 */\n padding-left : 8px;\n padding-right: 8px;\n font-weight: 500;\n color: white;\n }\n .not-highlight {\n margin: 4px 4px; /* Espacement autour du texte surlign\u00E9 */\n padding-left : 8px;\n padding-right: 8px;\n color: #BCD46C;\n }\n\n .printable-content {\n margin: 0;\n padding: 0;\n visibility: hidden;\n position: absolute;\n left: -10000px;\n top: -10000px;\n\n }\n @media print {\n body {\n margin: 0;\n }\n .printable-content {\n margin: 0;\n padding: 0;\n visibility: visible;\n position: static;\n }\n }\n";
|
|
143
157
|
var styleSheet = document.createElement('style');
|
|
144
158
|
styleSheet.innerText = css;
|
|
145
159
|
document.head.appendChild(styleSheet);
|
|
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
13
36
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
37
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
38
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -58,19 +81,25 @@ require("../../style/QRCode.css");
|
|
|
58
81
|
var html2canvas_1 = __importDefault(require("html2canvas"));
|
|
59
82
|
var qr_code_styling_1 = __importDefault(require("qr-code-styling"));
|
|
60
83
|
var react_1 = require("react");
|
|
84
|
+
var react_to_print_1 = require("react-to-print");
|
|
61
85
|
var DownloadedQRCode_1 = require("../../DownloadedQRCode");
|
|
62
86
|
var leaf_yellow_small_png_1 = __importDefault(require("../../assets/images/leaf_yellow_small.png"));
|
|
63
87
|
var Tools_1 = require("../../helpers/Tools");
|
|
64
88
|
var pdf_lib_1 = require("pdf-lib");
|
|
65
|
-
var
|
|
89
|
+
var PLVComponent_1 = require("./PLVComponent");
|
|
90
|
+
var pdfjsLib = __importStar(require("pdfjs-dist"));
|
|
91
|
+
pdfjsLib.GlobalWorkerOptions.workerSrc = '/pdf.worker.mjs';
|
|
66
92
|
var QrCodePLVContainer = function (_a) {
|
|
67
93
|
var data = _a.data;
|
|
68
94
|
var _b = (0, react_1.useState)(null), selectedChoice = _b[0], setSelectedChoice = _b[1];
|
|
95
|
+
var _c = (0, react_1.useState)(''), urlA4 = _c[0], setUrlA4 = _c[1];
|
|
96
|
+
var _d = (0, react_1.useState)(''), urlA3 = _d[0], setUrlA3 = _d[1];
|
|
69
97
|
var qrCodeRef = (0, react_1.useRef)(null);
|
|
70
98
|
var theme = (0, material_1.useTheme)();
|
|
99
|
+
var PLVrefA4 = (0, react_1.useRef)(null);
|
|
100
|
+
var PLVrefA3 = (0, react_1.useRef)(null);
|
|
71
101
|
//si sur l'impression des PLV en A4 ou A3 le Qrcode est flou,
|
|
72
102
|
//il faut modifier la width et height, imageSize du qrCodeOptions et mettre les mêmes valeurs que dans le optionQrcode de la fonction printPLV
|
|
73
|
-
//
|
|
74
103
|
var qrCodeOptions = (0, react_1.useMemo)(function () { return ({
|
|
75
104
|
width: 300,
|
|
76
105
|
height: 300,
|
|
@@ -110,9 +139,17 @@ var QrCodePLVContainer = function (_a) {
|
|
|
110
139
|
qrCode.append(qrCodeRef.current);
|
|
111
140
|
}
|
|
112
141
|
}, [qrCode]);
|
|
142
|
+
(0, react_1.useEffect)(function () {
|
|
143
|
+
var urlA4 = printPLV('A4').then(function (url) {
|
|
144
|
+
setUrlA4(url);
|
|
145
|
+
});
|
|
146
|
+
var urlA3 = printPLV('A3').then(function (url) {
|
|
147
|
+
setUrlA3(url);
|
|
148
|
+
});
|
|
149
|
+
}, [data]);
|
|
113
150
|
function printPLV(format) {
|
|
114
151
|
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
-
var pdfUrl, response, existingPdfBytes, pdfDoc, qrCodeBlob, qrImageBytes, qrImage, pages, firstPage, _a, width, height, optionQrcode, modifiedPdfBytes, blob, url;
|
|
152
|
+
var pdfUrl, response, existingPdfBytes, pdfDoc, qrCodeBlob, qrImageBytes, qrImage, pages, firstPage, _a, width, height, optionQrcode, modifiedPdfBytes, blob, url, loadingTask, pdf, page, canvas, context, viewport, renderContext, imageUrl;
|
|
116
153
|
return __generator(this, function (_b) {
|
|
117
154
|
switch (_b.label) {
|
|
118
155
|
case 0:
|
|
@@ -162,9 +199,27 @@ var QrCodePLVContainer = function (_a) {
|
|
|
162
199
|
modifiedPdfBytes = _b.sent();
|
|
163
200
|
blob = new Blob([modifiedPdfBytes], { type: 'application/pdf' });
|
|
164
201
|
url = URL.createObjectURL(blob);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
202
|
+
loadingTask = pdfjsLib.getDocument(url);
|
|
203
|
+
return [4 /*yield*/, loadingTask.promise];
|
|
204
|
+
case 8:
|
|
205
|
+
pdf = _b.sent();
|
|
206
|
+
return [4 /*yield*/, pdf.getPage(1)];
|
|
207
|
+
case 9:
|
|
208
|
+
page = _b.sent();
|
|
209
|
+
canvas = document.createElement('canvas');
|
|
210
|
+
context = canvas.getContext('2d');
|
|
211
|
+
viewport = page.getViewport({ scale: 1.5 });
|
|
212
|
+
canvas.width = viewport.width;
|
|
213
|
+
canvas.height = viewport.height;
|
|
214
|
+
renderContext = {
|
|
215
|
+
canvasContext: context,
|
|
216
|
+
viewport: viewport,
|
|
217
|
+
};
|
|
218
|
+
return [4 /*yield*/, page.render(renderContext).promise];
|
|
219
|
+
case 10:
|
|
220
|
+
_b.sent();
|
|
221
|
+
imageUrl = canvas.toDataURL('image/png');
|
|
222
|
+
return [2 /*return*/, imageUrl];
|
|
168
223
|
}
|
|
169
224
|
});
|
|
170
225
|
});
|
|
@@ -206,12 +261,20 @@ var QrCodePLVContainer = function (_a) {
|
|
|
206
261
|
var onChangeSelectedChoice = function (e) {
|
|
207
262
|
setSelectedChoice(e.target.value);
|
|
208
263
|
};
|
|
264
|
+
var printA3PLV = (0, react_to_print_1.useReactToPrint)({
|
|
265
|
+
content: function () { return PLVrefA3.current; },
|
|
266
|
+
documentTitle: 'Movalib_PLV_A3',
|
|
267
|
+
});
|
|
268
|
+
var printA4PLV = (0, react_to_print_1.useReactToPrint)({
|
|
269
|
+
content: function () { return PLVrefA4.current; },
|
|
270
|
+
documentTitle: 'Movalib_PLV_A4',
|
|
271
|
+
});
|
|
209
272
|
var onClickDownload = (0, react_1.useMemo)(function () {
|
|
210
273
|
switch (selectedChoice) {
|
|
211
274
|
case 'A3':
|
|
212
|
-
return
|
|
275
|
+
return printA3PLV;
|
|
213
276
|
case 'A4':
|
|
214
|
-
return
|
|
277
|
+
return printA4PLV;
|
|
215
278
|
case 'QR_Headless':
|
|
216
279
|
return downloadQRCodeHeadless;
|
|
217
280
|
case 'QR_Google':
|
|
@@ -219,8 +282,8 @@ var QrCodePLVContainer = function (_a) {
|
|
|
219
282
|
default:
|
|
220
283
|
return function () { };
|
|
221
284
|
}
|
|
222
|
-
}, [selectedChoice, downloadQRCodeHeadless, downloadQrCodeWithCTA]);
|
|
223
|
-
return ((0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '24px' }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Grid, __assign({ container: true, justifyContent: 'center', alignItems: 'center' }, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, xs: 7 }, { children: (0, jsx_runtime_1.jsxs)(material_1.FormControl, __assign({ fullWidth: true, size: 'small' }, { children: [(0, jsx_runtime_1.jsx)(material_1.InputLabel, __assign({ id: 'qrcode-plv-select' }, { children: "Choisissez votre support" })), (0, jsx_runtime_1.jsxs)(material_1.Select, __assign({ labelId: 'qrcode-plv-select', label: 'Choisissez votre support', id: 'qrcode-plv-select', onChange: onChangeSelectedChoice, value: selectedChoice }, { children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'A4' }, { children: "\uD83E\uDDFE\u00A0\u00A0PLV format A4" })), (0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'A3' }, { children: "\uD83E\uDDFE\u00A0\u00A0PLV format A3" })), (0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'QR_Google' }, { children: "QR Code format GoogleMyBusiness" })), (0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'QR_Headless' }, { children: "QR Code seul" }))] }))] })) })), (0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, xs: 4, marginLeft: 3 }, { children: (0, jsx_runtime_1.jsx)(material_1.Button, __assign({ startIcon: selectedChoice === 'A3' || selectedChoice === 'A4' ? (0, jsx_runtime_1.jsx)(icons_material_1.DocumentScanner, {}) : (0, jsx_runtime_1.jsx)(icons_material_1.QrCode2, {}), onClick: onClickDownload, variant: 'outlined', disabled: !selectedChoice, sx: { color: (0, material_1.darken)(theme.palette.primary.main, 0.2), borderRadius: '10rem' } }, { children: selectedChoice === 'A3' || selectedChoice === 'A4' ? 'Imprimer' : 'Télécharger' })) }))] })), (0, jsx_runtime_1.jsx)("div", __assign({ id: 'qr-code-container', style: Tools_1.flexCenter }, { children: (0, jsx_runtime_1.jsx)("div", { ref: qrCodeRef, style: {
|
|
285
|
+
}, [selectedChoice, downloadQRCodeHeadless, downloadQrCodeWithCTA, printA3PLV, printA4PLV]);
|
|
286
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '24px' }, { children: [urlA4 && (0, jsx_runtime_1.jsx)(PLVComponent_1.PLVComponentV2, { ref: PLVrefA4, url: urlA4, printSize: PLVComponent_1.PrintSize.A4 }), urlA3 && (0, jsx_runtime_1.jsx)(PLVComponent_1.PLVComponentV2, { ref: PLVrefA3, url: urlA3, printSize: PLVComponent_1.PrintSize.A3 }), (0, jsx_runtime_1.jsxs)(material_1.Grid, __assign({ container: true, justifyContent: 'center', alignItems: 'center' }, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, xs: 7 }, { children: (0, jsx_runtime_1.jsxs)(material_1.FormControl, __assign({ fullWidth: true, size: 'small' }, { children: [(0, jsx_runtime_1.jsx)(material_1.InputLabel, __assign({ id: 'qrcode-plv-select' }, { children: "Choisissez votre support" })), (0, jsx_runtime_1.jsxs)(material_1.Select, __assign({ labelId: 'qrcode-plv-select', label: 'Choisissez votre support', id: 'qrcode-plv-select', onChange: onChangeSelectedChoice, value: selectedChoice }, { children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'A4' }, { children: "\uD83E\uDDFE\u00A0\u00A0PLV format A4" })), (0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'A3' }, { children: "\uD83E\uDDFE\u00A0\u00A0PLV format A3" })), (0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'QR_Google' }, { children: "QR Code format GoogleMyBusiness" })), (0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: 'QR_Headless' }, { children: "QR Code seul" }))] }))] })) })), (0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, xs: 4, marginLeft: 3 }, { children: (0, jsx_runtime_1.jsx)(material_1.Button, __assign({ startIcon: selectedChoice === 'A3' || selectedChoice === 'A4' ? (0, jsx_runtime_1.jsx)(icons_material_1.DocumentScanner, {}) : (0, jsx_runtime_1.jsx)(icons_material_1.QrCode2, {}), onClick: onClickDownload, variant: 'outlined', disabled: !selectedChoice, sx: { color: (0, material_1.darken)(theme.palette.primary.main, 0.2), borderRadius: '10rem' } }, { children: selectedChoice === 'A3' || selectedChoice === 'A4' ? 'Imprimer' : 'Télécharger' })) }))] })), (0, jsx_runtime_1.jsx)("div", __assign({ id: 'qr-code-container', style: Tools_1.flexCenter }, { children: (0, jsx_runtime_1.jsx)("div", { ref: qrCodeRef, style: {
|
|
224
287
|
height: '300px',
|
|
225
288
|
width: '300px',
|
|
226
289
|
maxWidth: '300px !important',
|
|
@@ -12,14 +12,13 @@ function handleError(error) {
|
|
|
12
12
|
var msg = error.message.includes('fetch') ? "Connexion impossible" : error.message;
|
|
13
13
|
return {
|
|
14
14
|
success: false,
|
|
15
|
-
error: msg
|
|
15
|
+
error: msg
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
function handleResponse(response) {
|
|
19
19
|
var contentType = response.headers.get("content-type");
|
|
20
20
|
var isJson = contentType && contentType.includes("application/json");
|
|
21
21
|
var dataPromise = isJson ? response.json() : response.text();
|
|
22
|
-
var location = response.headers.get('Location');
|
|
23
22
|
return dataPromise.then(function (data) {
|
|
24
23
|
if (!response.ok) {
|
|
25
24
|
Logger_1.default.error(data);
|
|
@@ -40,7 +39,7 @@ function handleResponse(response) {
|
|
|
40
39
|
}
|
|
41
40
|
return { success: false, error: errorMsg };
|
|
42
41
|
}
|
|
43
|
-
return { success: true, data: data
|
|
42
|
+
return { success: true, data: data };
|
|
44
43
|
});
|
|
45
44
|
}
|
|
46
45
|
/**
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.openDialogPrint = void 0;
|
|
4
4
|
function openDialogPrint(url) {
|
|
5
|
+
// Créer un iframe pour charger le document Blob => url
|
|
5
6
|
var iframe = document.createElement('iframe');
|
|
6
7
|
iframe.style.position = 'absolute';
|
|
7
8
|
iframe.style.width = '0px';
|
|
@@ -13,7 +14,7 @@ function openDialogPrint(url) {
|
|
|
13
14
|
var _a;
|
|
14
15
|
(_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.print();
|
|
15
16
|
};
|
|
16
|
-
// Supprimer l'iframe une fois
|
|
17
|
+
// Supprimer l'iframe une fois lque la dialog est fermer
|
|
17
18
|
iframe.onclose = function () {
|
|
18
19
|
document.body.removeChild(iframe);
|
|
19
20
|
URL.revokeObjectURL(url);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@movalib/movalib-commons",
|
|
3
|
-
"version": "1.55.
|
|
3
|
+
"version": "1.55.6",
|
|
4
4
|
"description": "Bibliothèque d'objets communs à l'ensemble des projets React de Movalib",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@emotion/react": "^11.11.1",
|
|
20
20
|
"@emotion/styled": "^11.11.0",
|
|
21
|
-
"@mui/icons-material": "^5.11.
|
|
21
|
+
"@mui/icons-material": "^5.11.17",
|
|
22
22
|
"@mui/lab": "^5.0.0-alpha.134",
|
|
23
23
|
"@mui/material": "^5.13.5",
|
|
24
24
|
"@mui/x-date-pickers": "^6.9.1",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"html2canvas": "^1.4.1",
|
|
32
32
|
"js-cookie": "^3.0.5",
|
|
33
33
|
"pdf-lib": "^1.17.1",
|
|
34
|
+
"pdfjs-dist": "^4.6.82",
|
|
34
35
|
"qr-code-styling": "^1.4.4",
|
|
35
36
|
"react": "^18.2.0",
|
|
36
37
|
"react-dom": "^18.2.0",
|
|
@@ -47,6 +48,7 @@
|
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@types/js-cookie": "^3.0.4",
|
|
51
|
+
"@types/pdfjs-dist": "^2.10.377",
|
|
50
52
|
"@types/react-input-mask": "^3.0.5",
|
|
51
53
|
"html-webpack-plugin": "^5.5.3",
|
|
52
54
|
"ts-loader": "^9.4.4",
|