module-package-comp 1.5.0 → 2.3.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.
@@ -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: "Submit" }) }))] }));
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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"}