module-package-comp 1.5.0 → 2.3.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/component/ComponentDisplayer.js +1 -1
- package/dist/component/ComponentDisplayer.js.map +1 -1
- package/dist/component/PdfExportModal.d.ts +11 -0
- package/dist/component/PdfExportModal.js +292 -0
- package/dist/component/PdfExportModal.js.map +1 -0
- package/dist/component/RubricDisplayer.d.ts +13 -0
- package/dist/component/RubricDisplayer.js +151 -0
- package/dist/component/RubricDisplayer.js.map +1 -0
- package/dist/index.css +327 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/util/rubricDisplayer.d.ts +52 -0
- package/dist/util/rubricDisplayer.js +197 -0
- package/dist/util/rubricDisplayer.js.map +1 -0
- package/dist/util/type.d.ts +26 -8
- package/dist/util/type.js +7 -0
- package/dist/util/type.js.map +1 -1
- package/package.json +1 -1
|
@@ -163,7 +163,7 @@ export function ComponentDisplayer({ component, data, setData, onSubmit, disable
|
|
|
163
163
|
else {
|
|
164
164
|
setErrors(errs);
|
|
165
165
|
}
|
|
166
|
-
}, className: "min-w-72", children: [_jsx("h1", { className: "font-bold text-center text-blue-800 text-4xl mb-8", children: component.label }), _jsx("div", { className: "space-y-6", children: component.attributes.map((attr) => renderAttribute(attr)) }), errors.length !== 0 && (_jsx("div", { className: "my-6", children: _jsx(ShowErrors, { errors: errors }) })), onSubmit && (_jsx("div", { className: "flex justify-center my-8", children: _jsx(PrimaryBtn, { text: "
|
|
166
|
+
}, className: "min-w-72", children: [_jsx("h1", { className: "font-bold text-center text-blue-800 text-4xl mb-8", children: component.label }), _jsx("div", { className: "space-y-6", children: component.attributes.map((attr) => renderAttribute(attr)) }), errors.length !== 0 && (_jsx("div", { className: "my-6", children: _jsx(ShowErrors, { errors: errors }) })), onSubmit && (_jsx("div", { className: "flex justify-center my-8", children: _jsx(PrimaryBtn, { text: "Confirmer" }) }))] }));
|
|
167
167
|
}
|
|
168
168
|
// Update required field checker to support repeatable fields
|
|
169
169
|
function checkRequired(attributes, data, repeatableCounts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentDisplayer.js","sourceRoot":"","sources":["../../src/component/ComponentDisplayer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ComponentDisplayer.js","sourceRoot":"","sources":["../../src/component/ComponentDisplayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Component, RubricDataValues } from "../util/type";
|
|
2
|
+
type PdfExportModalProps = {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
components: Component[];
|
|
6
|
+
dataValues: RubricDataValues;
|
|
7
|
+
title?: string;
|
|
8
|
+
extra?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
export declare function PdfExportModal({ isOpen, onClose, components, dataValues, title, extra, }: PdfExportModalProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useMemo, useRef, useEffect } from "react";
|
|
3
|
+
export function PdfExportModal({ isOpen, onClose, components, dataValues, title, extra, }) {
|
|
4
|
+
// Track which attributes are selected for export
|
|
5
|
+
const [selectedAttributes, setSelectedAttributes] = useState(() => {
|
|
6
|
+
const initial = {};
|
|
7
|
+
components.forEach((comp) => {
|
|
8
|
+
const compData = dataValues[comp._id];
|
|
9
|
+
if (compData) {
|
|
10
|
+
initial[comp._id] = {};
|
|
11
|
+
Object.keys(compData).forEach((attrName) => {
|
|
12
|
+
initial[comp._id][attrName] = true;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return initial;
|
|
17
|
+
});
|
|
18
|
+
const printRef = useRef(null);
|
|
19
|
+
// Sync selectedAttributes when dataValues changes (add new attributes as selected)
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
setSelectedAttributes((prev) => {
|
|
22
|
+
const updated = Object.assign({}, prev);
|
|
23
|
+
components.forEach((comp) => {
|
|
24
|
+
const compData = dataValues[comp._id];
|
|
25
|
+
if (compData) {
|
|
26
|
+
if (!updated[comp._id]) {
|
|
27
|
+
updated[comp._id] = {};
|
|
28
|
+
}
|
|
29
|
+
Object.keys(compData).forEach((attrName) => {
|
|
30
|
+
// Only add if not already tracked (preserve user's selection)
|
|
31
|
+
if (updated[comp._id][attrName] === undefined) {
|
|
32
|
+
updated[comp._id][attrName] = true;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return updated;
|
|
38
|
+
});
|
|
39
|
+
}, [components, dataValues]);
|
|
40
|
+
// Get components that have data
|
|
41
|
+
const componentsWithData = useMemo(() => {
|
|
42
|
+
return components.filter((comp) => {
|
|
43
|
+
const data = dataValues[comp._id];
|
|
44
|
+
return data && Object.keys(data).length > 0;
|
|
45
|
+
});
|
|
46
|
+
}, [components, dataValues]);
|
|
47
|
+
// Toggle attribute selection
|
|
48
|
+
const toggleAttribute = (componentId, attributeName) => {
|
|
49
|
+
setSelectedAttributes((prev) => {
|
|
50
|
+
var _a;
|
|
51
|
+
return (Object.assign(Object.assign({}, prev), { [componentId]: Object.assign(Object.assign({}, prev[componentId]), { [attributeName]: !((_a = prev[componentId]) === null || _a === void 0 ? void 0 : _a[attributeName]) }) }));
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
// Toggle all attributes for a component
|
|
55
|
+
const toggleAllForComponent = (componentId, selected) => {
|
|
56
|
+
const compData = dataValues[componentId];
|
|
57
|
+
if (!compData)
|
|
58
|
+
return;
|
|
59
|
+
setSelectedAttributes((prev) => (Object.assign(Object.assign({}, prev), { [componentId]: Object.keys(compData).reduce((acc, attrName) => {
|
|
60
|
+
acc[attrName] = selected;
|
|
61
|
+
return acc;
|
|
62
|
+
}, {}) })));
|
|
63
|
+
};
|
|
64
|
+
// Get attribute label from component
|
|
65
|
+
const getAttributeLabel = (component, attrName) => {
|
|
66
|
+
const attr = component.attributes.find((a) => a.name === attrName);
|
|
67
|
+
return (attr === null || attr === void 0 ? void 0 : attr.label) || attrName;
|
|
68
|
+
};
|
|
69
|
+
// Format value for display
|
|
70
|
+
const formatValue = (value) => {
|
|
71
|
+
if (typeof value === "object") {
|
|
72
|
+
if (Array.isArray(value)) {
|
|
73
|
+
return value.join(", ");
|
|
74
|
+
}
|
|
75
|
+
return JSON.stringify(value, null, 2);
|
|
76
|
+
}
|
|
77
|
+
return String(value);
|
|
78
|
+
};
|
|
79
|
+
// Check if all attributes are selected for a component
|
|
80
|
+
const areAllSelected = (componentId) => {
|
|
81
|
+
const compData = dataValues[componentId];
|
|
82
|
+
if (!compData)
|
|
83
|
+
return false;
|
|
84
|
+
return Object.keys(compData).every((attrName) => { var _a; return (_a = selectedAttributes[componentId]) === null || _a === void 0 ? void 0 : _a[attrName]; });
|
|
85
|
+
};
|
|
86
|
+
// Generate PDF content and download
|
|
87
|
+
const handleDownload = () => {
|
|
88
|
+
const content = generatePdfContent();
|
|
89
|
+
const printWindow = window.open("", "_blank");
|
|
90
|
+
if (!printWindow) {
|
|
91
|
+
alert("Veuillez autoriser les popups pour télécharger le PDF");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
printWindow.document.write(`
|
|
95
|
+
<!DOCTYPE html>
|
|
96
|
+
<html>
|
|
97
|
+
<head>
|
|
98
|
+
<title>Sauvegarde</title>
|
|
99
|
+
<style>
|
|
100
|
+
* {
|
|
101
|
+
margin: 0;
|
|
102
|
+
padding: 0;
|
|
103
|
+
box-sizing: border-box;
|
|
104
|
+
}
|
|
105
|
+
body {
|
|
106
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
107
|
+
padding: 40px;
|
|
108
|
+
color: #333;
|
|
109
|
+
line-height: 1.6;
|
|
110
|
+
}
|
|
111
|
+
.header {
|
|
112
|
+
text-align: center;
|
|
113
|
+
margin-bottom: 30px;
|
|
114
|
+
padding-bottom: 20px;
|
|
115
|
+
border-bottom: 2px solid #2563eb;
|
|
116
|
+
}
|
|
117
|
+
.header h1 {
|
|
118
|
+
color: #1e40af;
|
|
119
|
+
font-size: 24px;
|
|
120
|
+
margin-bottom: 5px;
|
|
121
|
+
}
|
|
122
|
+
.header p {
|
|
123
|
+
color: #6b7280;
|
|
124
|
+
font-size: 12px;
|
|
125
|
+
}
|
|
126
|
+
.component {
|
|
127
|
+
margin-bottom: 30px;
|
|
128
|
+
page-break-inside: avoid;
|
|
129
|
+
}
|
|
130
|
+
.component-title {
|
|
131
|
+
background: #2563eb;
|
|
132
|
+
color: white;
|
|
133
|
+
padding: 10px 15px;
|
|
134
|
+
font-size: 16px;
|
|
135
|
+
font-weight: 600;
|
|
136
|
+
border-radius: 8px 8px 0 0;
|
|
137
|
+
}
|
|
138
|
+
.component-content {
|
|
139
|
+
border: 1px solid #e5e7eb;
|
|
140
|
+
border-top: none;
|
|
141
|
+
border-radius: 0 0 8px 8px;
|
|
142
|
+
padding: 15px;
|
|
143
|
+
}
|
|
144
|
+
.attribute {
|
|
145
|
+
display: flex;
|
|
146
|
+
padding: 10px 0;
|
|
147
|
+
border-bottom: 1px solid #f3f4f6;
|
|
148
|
+
}
|
|
149
|
+
.attribute:last-child {
|
|
150
|
+
border-bottom: none;
|
|
151
|
+
}
|
|
152
|
+
.attribute-name {
|
|
153
|
+
font-weight: 600;
|
|
154
|
+
color: #374151;
|
|
155
|
+
width: 200px;
|
|
156
|
+
flex-shrink: 0;
|
|
157
|
+
}
|
|
158
|
+
.attribute-value {
|
|
159
|
+
color: #4b5563;
|
|
160
|
+
flex: 1;
|
|
161
|
+
word-break: break-word;
|
|
162
|
+
}
|
|
163
|
+
.extra-info {
|
|
164
|
+
margin-bottom: 30px;
|
|
165
|
+
padding: 15px;
|
|
166
|
+
background: #f9fafb;
|
|
167
|
+
border-radius: 8px;
|
|
168
|
+
border: 1px solid #e5e7eb;
|
|
169
|
+
}
|
|
170
|
+
.extra-item {
|
|
171
|
+
display: inline-block;
|
|
172
|
+
margin-right: 20px;
|
|
173
|
+
margin-bottom: 5px;
|
|
174
|
+
}
|
|
175
|
+
.extra-label {
|
|
176
|
+
font-weight: 600;
|
|
177
|
+
color: #374151;
|
|
178
|
+
}
|
|
179
|
+
.extra-value {
|
|
180
|
+
color: #4b5563;
|
|
181
|
+
margin-left: 5px;
|
|
182
|
+
}
|
|
183
|
+
@media print {
|
|
184
|
+
body { padding: 20px; }
|
|
185
|
+
.component { page-break-inside: avoid; }
|
|
186
|
+
@page {
|
|
187
|
+
margin: 20mm;
|
|
188
|
+
margin-top: 10mm;
|
|
189
|
+
margin-bottom: 10mm;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/* Hide browser headers/footers */
|
|
193
|
+
@page {
|
|
194
|
+
size: auto;
|
|
195
|
+
margin: 10mm;
|
|
196
|
+
}
|
|
197
|
+
</style>
|
|
198
|
+
</head>
|
|
199
|
+
<body>
|
|
200
|
+
${content}
|
|
201
|
+
<script>
|
|
202
|
+
window.onload = function() {
|
|
203
|
+
window.print();
|
|
204
|
+
window.onafterprint = function() {
|
|
205
|
+
window.close();
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
</script>
|
|
209
|
+
</body>
|
|
210
|
+
</html>
|
|
211
|
+
`);
|
|
212
|
+
printWindow.document.close();
|
|
213
|
+
};
|
|
214
|
+
// Generate HTML content for PDF
|
|
215
|
+
const generatePdfContent = () => {
|
|
216
|
+
const date = new Date().toLocaleDateString("fr-FR", {
|
|
217
|
+
year: "numeric",
|
|
218
|
+
month: "long",
|
|
219
|
+
day: "numeric",
|
|
220
|
+
hour: "2-digit",
|
|
221
|
+
minute: "2-digit",
|
|
222
|
+
});
|
|
223
|
+
let html = `
|
|
224
|
+
<div class="header">
|
|
225
|
+
<h1>${title || "Export de Rubrique"}</h1>
|
|
226
|
+
<p>Généré le ${date}</p>
|
|
227
|
+
</div>
|
|
228
|
+
`;
|
|
229
|
+
// Add extra fields if provided
|
|
230
|
+
if (extra && Object.keys(extra).length > 0) {
|
|
231
|
+
html += `
|
|
232
|
+
<div class="extra-info">
|
|
233
|
+
`;
|
|
234
|
+
Object.entries(extra).forEach(([key, value]) => {
|
|
235
|
+
html += `
|
|
236
|
+
<div class="extra-item">
|
|
237
|
+
<span class="extra-label">${key} :</span>
|
|
238
|
+
<span class="extra-value">${String(value)}</span>
|
|
239
|
+
</div>
|
|
240
|
+
`;
|
|
241
|
+
});
|
|
242
|
+
html += `
|
|
243
|
+
</div>
|
|
244
|
+
`;
|
|
245
|
+
}
|
|
246
|
+
componentsWithData.forEach((component) => {
|
|
247
|
+
const compData = dataValues[component._id];
|
|
248
|
+
if (!compData)
|
|
249
|
+
return;
|
|
250
|
+
const selectedAttrs = Object.entries(compData).filter(([attrName]) => { var _a, _b; return (_b = (_a = selectedAttributes[component._id]) === null || _a === void 0 ? void 0 : _a[attrName]) !== null && _b !== void 0 ? _b : true; });
|
|
251
|
+
if (selectedAttrs.length === 0)
|
|
252
|
+
return;
|
|
253
|
+
html += `
|
|
254
|
+
<div class="component">
|
|
255
|
+
<div class="component-title">${component.label || component.name}</div>
|
|
256
|
+
<div class="component-content">
|
|
257
|
+
`;
|
|
258
|
+
selectedAttrs.forEach(([attrName, value]) => {
|
|
259
|
+
const label = getAttributeLabel(component, attrName);
|
|
260
|
+
const formattedValue = formatValue(value);
|
|
261
|
+
html += `
|
|
262
|
+
<div class="attribute">
|
|
263
|
+
<div class="attribute-name">${label}</div>
|
|
264
|
+
<div class="attribute-value">${formattedValue}</div>
|
|
265
|
+
</div>
|
|
266
|
+
`;
|
|
267
|
+
});
|
|
268
|
+
html += `
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
`;
|
|
272
|
+
});
|
|
273
|
+
return html;
|
|
274
|
+
};
|
|
275
|
+
if (!isOpen)
|
|
276
|
+
return null;
|
|
277
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0 bg-black/50", onClick: onClose }), _jsxs("div", { className: "relative bg-white rounded-xl shadow-2xl w-full max-w-3xl max-h-[90vh] flex flex-col mx-4", children: [_jsxs("div", { className: "flex items-center justify-between px-6 py-4 border-b border-gray-200", children: [_jsx("h2", { className: "text-xl font-semibold text-gray-800", children: "Exporter en PDF" }), _jsx("div", { className: "flex items-center gap-3", children: _jsx("button", { type: "button", onClick: onClose, className: "p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors", children: _jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }) })] }), _jsxs("div", { className: "flex-1 overflow-y-auto p-6", children: [_jsx("p", { className: "text-sm text-gray-600 mb-4", children: "S\u00E9lectionnez les attributs \u00E0 inclure dans le PDF :" }), componentsWithData.length === 0 ? (_jsx("div", { className: "text-center py-8 text-gray-500", children: "Aucune donn\u00E9e \u00E0 exporter" })) : (_jsx("div", { className: "space-y-6", ref: printRef, children: componentsWithData.map((component) => {
|
|
278
|
+
const compData = dataValues[component._id];
|
|
279
|
+
if (!compData)
|
|
280
|
+
return null;
|
|
281
|
+
const allSelected = areAllSelected(component._id);
|
|
282
|
+
return (_jsxs("div", { className: "border border-gray-200 rounded-lg overflow-hidden", children: [_jsxs("div", { className: "bg-gray-50 px-4 py-3 flex items-center justify-between border-b border-gray-200", children: [_jsx("h3", { className: "font-semibold text-gray-800", children: component.label || component.name }), _jsx("button", { type: "button", onClick: () => toggleAllForComponent(component._id, !allSelected), className: "text-sm text-blue-600 hover:text-blue-700 font-medium", children: allSelected
|
|
283
|
+
? "Tout désélectionner"
|
|
284
|
+
: "Tout sélectionner" })] }), _jsx("div", { className: "divide-y divide-gray-100", children: Object.entries(compData).map(([attrName, value]) => {
|
|
285
|
+
var _a, _b;
|
|
286
|
+
const isSelected = (_b = (_a = selectedAttributes[component._id]) === null || _a === void 0 ? void 0 : _a[attrName]) !== null && _b !== void 0 ? _b : true;
|
|
287
|
+
const label = getAttributeLabel(component, attrName);
|
|
288
|
+
return (_jsxs("label", { className: `flex items-start gap-3 px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors ${!isSelected ? "opacity-50" : ""}`, children: [_jsx("input", { type: "checkbox", checked: isSelected, onChange: () => toggleAttribute(component._id, attrName), className: "mt-1 w-4 h-4 text-blue-600 rounded border-gray-300 focus:ring-blue-500" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("div", { className: "font-medium text-gray-700", children: label }), _jsx("div", { className: "text-sm text-gray-500 truncate", children: formatValue(value) })] })] }, attrName));
|
|
289
|
+
}) })] }, component._id));
|
|
290
|
+
}) }))] }), _jsxs("div", { className: "px-6 py-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3", children: [_jsx("button", { type: "button", onClick: onClose, className: "px-4 py-2 text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors font-medium", children: "Annuler" }), _jsxs("button", { type: "button", onClick: handleDownload, className: "flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors font-medium", children: [_jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }) }), "T\u00E9l\u00E9charger le PDF"] })] })] })] }));
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=PdfExportModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfExportModal.js","sourceRoot":"","sources":["../../src/component/PdfExportModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component, Data, Permission, RubricDataValues } from "../util/type";
|
|
2
|
+
type RubricDisplayerProps = {
|
|
3
|
+
components: Component[];
|
|
4
|
+
datas?: (Data | null)[];
|
|
5
|
+
dataValues: RubricDataValues;
|
|
6
|
+
setDataValues: (values: RubricDataValues) => void;
|
|
7
|
+
onSubmit?: (modifiedValues: RubricDataValues) => void;
|
|
8
|
+
permission?: Permission | null;
|
|
9
|
+
pdfTitle?: string;
|
|
10
|
+
pdfExtra?: Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
export declare function RubricDisplayer({ components, datas, dataValues, setDataValues, onSubmit, permission, pdfTitle, pdfExtra, }: RubricDisplayerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useMemo, useEffect } from "react";
|
|
3
|
+
import { ComponentDisplayer } from "./ComponentDisplayer";
|
|
4
|
+
import { PdfExportModal } from "./PdfExportModal";
|
|
5
|
+
import { getComponentPermission, groupDataByComponentIndex, extractLatestDataValues, formatDate, } from "../util/rubricDisplayer";
|
|
6
|
+
export function RubricDisplayer({ components, datas = [], dataValues, setDataValues, onSubmit, permission = null, pdfTitle, pdfExtra, }) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const [selectedComponentIndex, setSelectedComponentIndex] = useState(0);
|
|
9
|
+
const [selectedHistoryIndex, setSelectedHistoryIndex] = useState({});
|
|
10
|
+
const [isInitialized, setIsInitialized] = useState(false);
|
|
11
|
+
const [isPdfModalOpen, setIsPdfModalOpen] = useState(false);
|
|
12
|
+
// Store the original values for diff comparison
|
|
13
|
+
const [originalValues, setOriginalValues] = useState({});
|
|
14
|
+
// Group existing data by component (using index-based mapping)
|
|
15
|
+
// Note: datas may contain null values - index position matters for component mapping
|
|
16
|
+
const componentDataMap = useMemo(() => groupDataByComponentIndex(components, datas), [components, datas]);
|
|
17
|
+
// Initialize dataValues from datas on first render (if datas exist and dataValues is empty)
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const hasValidData = datas.some((d) => d !== null);
|
|
20
|
+
if (!isInitialized && hasValidData && components.length > 0) {
|
|
21
|
+
const hasExistingData = Object.keys(dataValues).length > 0;
|
|
22
|
+
if (!hasExistingData) {
|
|
23
|
+
// Extract latest values from datas and initialize dataValues
|
|
24
|
+
const initialValues = extractLatestDataValues(components, datas);
|
|
25
|
+
if (Object.keys(initialValues).length > 0) {
|
|
26
|
+
setDataValues(initialValues);
|
|
27
|
+
// Store DEEP COPY of original values for later comparison
|
|
28
|
+
setOriginalValues(JSON.parse(JSON.stringify(initialValues)));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// If dataValues already has data, use DEEP COPY as original
|
|
33
|
+
setOriginalValues(JSON.parse(JSON.stringify(dataValues)));
|
|
34
|
+
}
|
|
35
|
+
setIsInitialized(true);
|
|
36
|
+
}
|
|
37
|
+
}, [datas, components, dataValues, setDataValues, isInitialized]);
|
|
38
|
+
// Get current component
|
|
39
|
+
const currentComponent = components[selectedComponentIndex];
|
|
40
|
+
if (!currentComponent)
|
|
41
|
+
return null;
|
|
42
|
+
const currentComponentId = currentComponent._id;
|
|
43
|
+
// Get permission for current component
|
|
44
|
+
const componentPermission = getComponentPermission(permission, currentComponent.name);
|
|
45
|
+
const isDisabled = componentPermission === "read";
|
|
46
|
+
// Get history for current component
|
|
47
|
+
const componentHistory = ((_a = componentDataMap.get(currentComponentId)) === null || _a === void 0 ? void 0 : _a.history) || [];
|
|
48
|
+
const currentHistoryIndex = (_b = selectedHistoryIndex[currentComponentId]) !== null && _b !== void 0 ? _b : 0;
|
|
49
|
+
// Get current data value from dataValues (which is now initialized from datas)
|
|
50
|
+
const getCurrentDataValue = () => {
|
|
51
|
+
// If user selected a historical entry, show that
|
|
52
|
+
if (currentHistoryIndex > 0 && componentHistory[currentHistoryIndex]) {
|
|
53
|
+
return componentHistory[currentHistoryIndex].value || {};
|
|
54
|
+
}
|
|
55
|
+
// Otherwise show the current dataValues (which contains the latest or user edits)
|
|
56
|
+
return dataValues[currentComponentId] || {};
|
|
57
|
+
};
|
|
58
|
+
// Handle data change for current component (using component ID)
|
|
59
|
+
const handleSetData = (newData) => {
|
|
60
|
+
setDataValues(Object.assign(Object.assign({}, dataValues), { [currentComponentId]: newData }));
|
|
61
|
+
};
|
|
62
|
+
// Handle history selection
|
|
63
|
+
const handleHistorySelect = (historyIndex) => {
|
|
64
|
+
setSelectedHistoryIndex((prev) => (Object.assign(Object.assign({}, prev), { [currentComponentId]: historyIndex })));
|
|
65
|
+
// Load the historical data into dataValues so user can edit from that point
|
|
66
|
+
if (componentHistory[historyIndex]) {
|
|
67
|
+
const historicalData = componentHistory[historyIndex].value || {};
|
|
68
|
+
handleSetData(historicalData);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
// Get only modified values for submit
|
|
72
|
+
const getModifiedValues = () => {
|
|
73
|
+
// Creation mode: no original data, return all current values
|
|
74
|
+
const hasValidData = datas.some((d) => d !== null);
|
|
75
|
+
if (!hasValidData) {
|
|
76
|
+
return dataValues;
|
|
77
|
+
}
|
|
78
|
+
// Modification mode: compare with original values
|
|
79
|
+
const modifiedValues = {};
|
|
80
|
+
for (const componentId of Object.keys(dataValues)) {
|
|
81
|
+
const currentData = dataValues[componentId];
|
|
82
|
+
const originalData = originalValues[componentId];
|
|
83
|
+
// If no original data exists, this is new data
|
|
84
|
+
if (!originalData) {
|
|
85
|
+
if (currentData && Object.keys(currentData).length > 0) {
|
|
86
|
+
modifiedValues[componentId] = currentData;
|
|
87
|
+
}
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Compare current with original using JSON stringify
|
|
91
|
+
if (JSON.stringify(currentData) !== JSON.stringify(originalData)) {
|
|
92
|
+
modifiedValues[componentId] = currentData;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return modifiedValues;
|
|
96
|
+
};
|
|
97
|
+
// Handle submit - only send modified values
|
|
98
|
+
const handleSubmit = () => {
|
|
99
|
+
if (onSubmit) {
|
|
100
|
+
const modifiedValues = getModifiedValues();
|
|
101
|
+
onSubmit(modifiedValues);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
return (_jsxs("div", { className: "w-full", children: [_jsx("div", { className: "flex justify-end mb-4", children: _jsxs("button", { type: "button", onClick: () => setIsPdfModalOpen(true), className: "flex items-center gap-2 px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors font-medium text-sm", children: [_jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }) }), "Exporter PDF"] }) }), _jsx("div", { className: "flex flex-wrap gap-2 mb-6 border-b border-gray-200 pb-4", children: components.map((component, index) => {
|
|
105
|
+
var _a;
|
|
106
|
+
const compPermission = getComponentPermission(permission, component.name);
|
|
107
|
+
const hasData = (((_a = componentDataMap.get(component._id)) === null || _a === void 0 ? void 0 : _a.history.length) || 0) > 0;
|
|
108
|
+
return (_jsxs("button", { type: "button", onClick: () => setSelectedComponentIndex(index), className: `
|
|
109
|
+
px-4 py-2 rounded-lg font-medium text-sm transition-all
|
|
110
|
+
flex items-center gap-2
|
|
111
|
+
${selectedComponentIndex === index
|
|
112
|
+
? "bg-blue-600 text-white shadow-md"
|
|
113
|
+
: "bg-gray-100 text-gray-700 hover:bg-gray-200"}
|
|
114
|
+
`, children: [_jsx("span", { children: component.label || component.name }), compPermission && (_jsx("span", { className: `
|
|
115
|
+
text-xs px-1.5 py-0.5 rounded
|
|
116
|
+
${compPermission === "write"
|
|
117
|
+
? "bg-green-100 text-green-700"
|
|
118
|
+
: "bg-yellow-100 text-yellow-700"}
|
|
119
|
+
${selectedComponentIndex === index ? "bg-opacity-30" : ""}
|
|
120
|
+
`, children: compPermission === "write" ? "✏️" : "📖" })), hasData && (_jsx("span", { className: `
|
|
121
|
+
w-2 h-2 rounded-full
|
|
122
|
+
${selectedComponentIndex === index ? "bg-white" : "bg-blue-500"}
|
|
123
|
+
` }))] }, component._id || index));
|
|
124
|
+
}) }), componentHistory.length > 1 && (_jsxs("div", { className: "mb-6", children: [_jsxs("div", { className: "text-sm font-medium text-gray-600 mb-2", children: ["Historique (", componentHistory.length, " entr\u00E9es)"] }), _jsx("div", { className: "flex flex-wrap gap-2", children: componentHistory.map((data, index) => (_jsxs("button", { type: "button", onClick: () => handleHistorySelect(index), className: `
|
|
125
|
+
relative px-3 py-2 rounded-lg text-sm transition-all
|
|
126
|
+
border-2
|
|
127
|
+
${currentHistoryIndex === index
|
|
128
|
+
? "border-blue-500 bg-blue-50 text-blue-700"
|
|
129
|
+
: "border-gray-200 bg-white text-gray-600 hover:border-gray-300"}
|
|
130
|
+
`, children: [_jsx("span", { className: `
|
|
131
|
+
absolute -top-2 -left-2 w-6 h-6 rounded-full
|
|
132
|
+
flex items-center justify-center text-xs font-bold
|
|
133
|
+
${currentHistoryIndex === index
|
|
134
|
+
? "bg-blue-500 text-white"
|
|
135
|
+
: "bg-gray-300 text-gray-700"}
|
|
136
|
+
`, children: componentHistory.length - index }), _jsxs("div", { className: "ml-2", children: [_jsx("div", { className: "font-medium", children: index === 0
|
|
137
|
+
? "Dernière version"
|
|
138
|
+
: `Version ${componentHistory.length - index}` }), _jsx("div", { className: "text-xs text-gray-500", children: formatDate(data.createdAt) })] })] }, data._id || index))) })] })), componentHistory.length === 1 && (_jsxs("div", { className: "mb-4 text-sm text-gray-500 flex items-center gap-2", children: [_jsx("span", { className: "w-2 h-2 bg-blue-500 rounded-full" }), "Derni\u00E8re mise \u00E0 jour : ", formatDate(componentHistory[0].createdAt)] })), componentPermission === "read" && (_jsx("div", { className: "mb-4 px-4 py-2 bg-yellow-50 border border-yellow-200 rounded-lg text-yellow-700 text-sm", children: "Ce composant est en lecture seule. Vous pouvez consulter les donn\u00E9es mais pas les modifier." })), _jsx("div", { className: "bg-white rounded-xl border border-gray-200 p-6", children: _jsx(ComponentDisplayer, { component: currentComponent, data: getCurrentDataValue(), setData: handleSetData, onSubmit: handleSubmit, disabled: isDisabled }) }), _jsx("div", { className: "mt-4 flex items-center justify-center gap-2", children: components.map((comp, index) => {
|
|
139
|
+
const compData = dataValues[comp._id];
|
|
140
|
+
const hasData = compData && Object.keys(compData).length > 0;
|
|
141
|
+
return (_jsx("button", { type: "button", onClick: () => setSelectedComponentIndex(index), className: `
|
|
142
|
+
w-3 h-3 rounded-full transition-all
|
|
143
|
+
${selectedComponentIndex === index
|
|
144
|
+
? "bg-blue-600 scale-125"
|
|
145
|
+
: hasData
|
|
146
|
+
? "bg-blue-300"
|
|
147
|
+
: "bg-gray-300"}
|
|
148
|
+
`, title: comp.label || comp.name }, comp._id));
|
|
149
|
+
}) }), _jsx(PdfExportModal, { isOpen: isPdfModalOpen, onClose: () => setIsPdfModalOpen(false), components: components, dataValues: dataValues, title: pdfTitle, extra: pdfExtra })] }));
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=RubricDisplayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RubricDisplayer.js","sourceRoot":"","sources":["../../src/component/RubricDisplayer.tsx"],"names":[],"mappings":"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"}
|