kelt-ui-kit-react 2.1.7 → 2.1.9
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/badge/Badge.d.ts +2 -1
- package/dist/damier/damierCell/damierCell.interface.d.ts +3 -0
- package/dist/damier/damierEditor/DamierEditor.d.ts +33 -0
- package/dist/damier/damierEditor/damierEditorCell/DamierEditorCell.d.ts +16 -0
- package/dist/damier/damierEditor/damierEditorToolbar/DamierEditorToolbar.d.ts +10 -0
- package/dist/damier/damierEditor/damierEditorTree/DamierEditorTree.d.ts +13 -0
- package/dist/damier/damierEditor/damierEditorTree/damierEditorTreeNode/DamierEditorTreeNode.d.ts +11 -0
- package/dist/damier/damierEditor/damierEditorTree/damierTreeNode.interface.d.ts +5 -0
- package/dist/damier/damierEditor/maybePromise.interface.d.ts +1 -0
- package/dist/damier/damierPage/damierPage.interface.d.ts +8 -0
- package/dist/damier/utils/buildDamierTree.d.ts +3 -0
- package/dist/damier/utils/createDefaultDamierPage.d.ts +2 -0
- package/dist/damier/utils/damierDefaultSize.d.ts +1 -0
- package/dist/damier/utils/findDamierTreePath.d.ts +2 -0
- package/dist/damier/utils/getFirstFreePosition.d.ts +2 -0
- package/dist/damier/utils/moveDamierCell.d.ts +2 -0
- package/dist/form/form.interface.d.ts +2 -0
- package/dist/form/getFieldError.d.ts +2 -0
- package/dist/index.js +889 -858
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/badge/Badge.tsx +3 -0
- package/src/badge/Badge.view.tsx +1 -0
- package/src/damier/Damier.tsx +1 -1
- package/src/damier/Damier.view.tsx +46 -0
- package/src/damier/damierCell/DamierCell.tsx +1 -1
- package/src/damier/damierCell/damierCell.interface.tsx +3 -0
- package/src/damier/damierEditor/DamierEditor.tsx +346 -0
- package/src/damier/damierEditor/damierEditor.css +255 -0
- package/src/damier/damierEditor/damierEditorCell/DamierEditorCell.tsx +91 -0
- package/src/damier/damierEditor/damierEditorToolbar/DamierEditorToolbar.tsx +71 -0
- package/src/damier/damierEditor/damierEditorTree/DamierEditorTree.tsx +134 -0
- package/src/damier/damierEditor/damierEditorTree/damierEditorTreeNode/DamierEditorTreeNode.tsx +78 -0
- package/src/damier/damierEditor/damierEditorTree/damierTreeNode.interface.ts +6 -0
- package/src/damier/damierEditor/maybePromise.interface.ts +1 -0
- package/src/damier/damierPage/damierPage.interface.tsx +9 -0
- package/src/damier/utils/buildDamierTree.ts +31 -0
- package/src/damier/utils/createDefaultDamierPage.ts +10 -0
- package/src/damier/utils/damierDefaultSize.ts +1 -0
- package/src/damier/utils/findDamierTreePath.ts +14 -0
- package/src/damier/utils/getFirstFreePosition.ts +12 -0
- package/src/damier/utils/moveDamierCell.ts +13 -0
- package/src/dataTable/DataTable.tsx +2 -2
- package/src/docs/catalog.ts +1 -1
- package/src/form/Form.tsx +68 -8
- package/src/form/form.css +9 -0
- package/src/form/form.interface.tsx +2 -0
- package/src/form/getFieldError.ts +14 -0
- package/src/select/select.css +11 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DamierTreeNodeInterface } from "../damierEditor/damierEditorTree/damierTreeNode.interface";
|
|
2
|
+
|
|
3
|
+
// Ids des pages ancêtres (incluse) menant à `pageId`, vide si absente de l'arbre
|
|
4
|
+
export const findDamierTreePath = (
|
|
5
|
+
nodes: DamierTreeNodeInterface[],
|
|
6
|
+
pageId: number,
|
|
7
|
+
): number[] => {
|
|
8
|
+
for (const node of nodes) {
|
|
9
|
+
if (node.page.id === pageId) return [node.page.id];
|
|
10
|
+
const path = findDamierTreePath(node.children, pageId);
|
|
11
|
+
if (path.length) return [node.page.id, ...path];
|
|
12
|
+
}
|
|
13
|
+
return [];
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DamierPageInterface } from "../damierPage/damierPage.interface";
|
|
2
|
+
|
|
3
|
+
// Première position libre (base 1) de la page, undefined si la page est pleine
|
|
4
|
+
export const getFirstFreePosition = (
|
|
5
|
+
page: DamierPageInterface,
|
|
6
|
+
): number | undefined => {
|
|
7
|
+
const taken = new Set(page.cells.map((cell) => cell.position));
|
|
8
|
+
for (let position = 1; position <= page.cols * page.rows; position++) {
|
|
9
|
+
if (!taken.has(position)) return position;
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DamierCellInterface } from "../damierCell/damierCell.interface";
|
|
2
|
+
|
|
3
|
+
// Déplace la case de `from` vers `to` ; si `to` est occupée, les deux cases sont échangées.
|
|
4
|
+
export const moveDamierCell = (
|
|
5
|
+
cells: DamierCellInterface[],
|
|
6
|
+
from: number,
|
|
7
|
+
to: number,
|
|
8
|
+
): DamierCellInterface[] =>
|
|
9
|
+
cells.map((cell) => {
|
|
10
|
+
if (cell.position === from) return { ...cell, position: to };
|
|
11
|
+
if (cell.position === to) return { ...cell, position: from };
|
|
12
|
+
return cell;
|
|
13
|
+
});
|
|
@@ -521,9 +521,9 @@ export function DataTable<T>(props: DataTableProps<T>) {
|
|
|
521
521
|
{name && <h2 className="mb-2">{name}</h2>}
|
|
522
522
|
{element}
|
|
523
523
|
<DataTableFilters currentFilters={tableState.filters} setCurrentFilters={tableState.setFilters} />
|
|
524
|
-
{showMobileCardView && columns.some((column) => column.filterable
|
|
524
|
+
{showMobileCardView && columns.some((column) => column.filterable) && (
|
|
525
525
|
<div className="data-table-mobile-controls">
|
|
526
|
-
{columns.filter((column) => column.filterable
|
|
526
|
+
{columns.filter((column) => column.filterable).map((column, idx) => (
|
|
527
527
|
<div key={column.id}>
|
|
528
528
|
<table><thead><tr><DataTableColumn column={column} idx={idx}
|
|
529
529
|
isFilterVisible={tableState.visibleFilters.has(column.name ?? column.id)}
|
package/src/docs/catalog.ts
CHANGED
|
@@ -23,7 +23,7 @@ export const catalog: Record<string, { category: Category; description: string;
|
|
|
23
23
|
"/expands": { category: "Affichage", icon: "arrows-expand", description: "Deplier des sections et organiser des contenus denses." },
|
|
24
24
|
"/grid": { category: "Affichage", icon: "grid-3x3", description: "Construire une mise en page avec des colonnes responsives." },
|
|
25
25
|
"/card": { category: "Affichage", icon: "card-heading", description: "Regrouper contenu, informations et actions dans une carte." },
|
|
26
|
-
"/damier": { category: "Affichage", icon: "grid", description: "Presenter des elements dans une grille de cellules." },
|
|
26
|
+
"/damier": { category: "Affichage", icon: "grid", description: "Presenter des elements dans une grille de cellules, et l'editer (pages, cases, glisser-deposer)." },
|
|
27
27
|
"/carousel": { category: "Affichage", icon: "images", description: "Parcourir une collection de contenus." },
|
|
28
28
|
"/badge": { category: "Affichage", icon: "patch-check", description: "Mettre en valeur un statut ou une information courte." },
|
|
29
29
|
"/data-table": { category: "Affichage", icon: "table", description: "Afficher des donnees, selections, colonnes et actions." },
|
package/src/form/Form.tsx
CHANGED
|
@@ -23,6 +23,7 @@ import { Row } from "../grid/row/Row";
|
|
|
23
23
|
import { GridBreakpoints, GridResponsive } from "../grid/grid.interface";
|
|
24
24
|
import { TypeInputEnum } from "./form.enum";
|
|
25
25
|
import { AddressSearch } from "../addressSearch/AddressSearch";
|
|
26
|
+
import { getFieldError } from "./getFieldError";
|
|
26
27
|
|
|
27
28
|
const euroFormatter = new Intl.NumberFormat("fr-FR", {
|
|
28
29
|
style: "currency",
|
|
@@ -107,8 +108,34 @@ export const DynamicForm = forwardRef(
|
|
|
107
108
|
return initialValues;
|
|
108
109
|
});
|
|
109
110
|
|
|
111
|
+
const [errors, setErrors] = useState<Record<string, string | undefined>>(
|
|
112
|
+
{}
|
|
113
|
+
);
|
|
114
|
+
|
|
110
115
|
const inputRefs = useRef<{ [key: string]: HTMLInputElement | null }>({});
|
|
111
116
|
|
|
117
|
+
/** Revalide le champ pendant la saisie uniquement s'il est déjà en erreur */
|
|
118
|
+
const revalidateField = useCallback(
|
|
119
|
+
(field: FormInterface, value: unknown) => {
|
|
120
|
+
setErrors((prevErrors) =>
|
|
121
|
+
prevErrors[field.name]
|
|
122
|
+
? { ...prevErrors, [field.name]: getFieldError(field, value) }
|
|
123
|
+
: prevErrors
|
|
124
|
+
);
|
|
125
|
+
},
|
|
126
|
+
[]
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
const validateField = useCallback(
|
|
130
|
+
(field: FormInterface, value: unknown) => {
|
|
131
|
+
setErrors((prevErrors) => ({
|
|
132
|
+
...prevErrors,
|
|
133
|
+
[field.name]: getFieldError(field, value),
|
|
134
|
+
}));
|
|
135
|
+
},
|
|
136
|
+
[]
|
|
137
|
+
);
|
|
138
|
+
|
|
112
139
|
/** Gestion des <input> */
|
|
113
140
|
const handleChangeInput = useCallback(
|
|
114
141
|
(
|
|
@@ -116,11 +143,15 @@ export const DynamicForm = forwardRef(
|
|
|
116
143
|
forminterface: FormInterface
|
|
117
144
|
) => {
|
|
118
145
|
const { name, type, checked, value } = event.target;
|
|
119
|
-
const newValue =
|
|
146
|
+
const newValue =
|
|
147
|
+
type === "checkbox"
|
|
148
|
+
? checked
|
|
149
|
+
: (forminterface.formatOnChange?.(value) ?? value);
|
|
120
150
|
|
|
121
151
|
if (forminterface.onChange) {
|
|
122
152
|
forminterface.onChange(newValue, name);
|
|
123
153
|
}
|
|
154
|
+
revalidateField(forminterface, newValue);
|
|
124
155
|
|
|
125
156
|
setValues((prevValues) => {
|
|
126
157
|
const updatedValues = { ...prevValues, [name]: newValue };
|
|
@@ -130,13 +161,14 @@ export const DynamicForm = forwardRef(
|
|
|
130
161
|
return updatedValues;
|
|
131
162
|
});
|
|
132
163
|
},
|
|
133
|
-
[onChange]
|
|
164
|
+
[onChange, revalidateField]
|
|
134
165
|
);
|
|
135
166
|
const handleChangeTextArea = useCallback(
|
|
136
167
|
(name: string, value: string, forminterface: FormInterface) => {
|
|
137
168
|
if (forminterface.onChange) {
|
|
138
169
|
forminterface.onChange(value, name);
|
|
139
170
|
}
|
|
171
|
+
revalidateField(forminterface, value);
|
|
140
172
|
|
|
141
173
|
setValues((prevValues) => {
|
|
142
174
|
const updatedValues = { ...prevValues, [name]: value };
|
|
@@ -146,7 +178,7 @@ export const DynamicForm = forwardRef(
|
|
|
146
178
|
return updatedValues;
|
|
147
179
|
});
|
|
148
180
|
},
|
|
149
|
-
[onChange]
|
|
181
|
+
[onChange, revalidateField]
|
|
150
182
|
);
|
|
151
183
|
/** Gestion des <select> */
|
|
152
184
|
const handleChangeSelect = useCallback(
|
|
@@ -171,14 +203,31 @@ export const DynamicForm = forwardRef(
|
|
|
171
203
|
const handleSubmit = useCallback(
|
|
172
204
|
(e: React.FormEvent<HTMLFormElement>) => {
|
|
173
205
|
e.preventDefault();
|
|
206
|
+
const submitErrors = formFields.reduce<
|
|
207
|
+
Record<string, string | undefined>
|
|
208
|
+
>((fieldErrors, field) => {
|
|
209
|
+
fieldErrors[field.name] = getFieldError(field, values[field.name]);
|
|
210
|
+
return fieldErrors;
|
|
211
|
+
}, {});
|
|
212
|
+
setErrors(submitErrors);
|
|
213
|
+
if (Object.values(submitErrors).some(Boolean)) {
|
|
214
|
+
const firstErrorField = formFields.find(
|
|
215
|
+
(field) => submitErrors[field.name]
|
|
216
|
+
);
|
|
217
|
+
if (firstErrorField) {
|
|
218
|
+
inputRefs.current[firstErrorField.name]?.focus();
|
|
219
|
+
}
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
174
222
|
if (onSubmit) {
|
|
175
223
|
onSubmit(values);
|
|
176
224
|
}
|
|
177
225
|
},
|
|
178
|
-
[onSubmit, values]
|
|
226
|
+
[onSubmit, values, formFields]
|
|
179
227
|
);
|
|
180
228
|
|
|
181
229
|
const resetForm = () => {
|
|
230
|
+
setErrors({});
|
|
182
231
|
setValues(() => {
|
|
183
232
|
const resetValues: FormValuesInterface<T> =
|
|
184
233
|
{} as FormValuesInterface<T>;
|
|
@@ -320,7 +369,8 @@ export const DynamicForm = forwardRef(
|
|
|
320
369
|
>
|
|
321
370
|
<div
|
|
322
371
|
className={`d-flex flex-column ${v.className ?? ""
|
|
323
|
-
} form-group form-group-${v.type}
|
|
372
|
+
} form-group form-group-${v.type} ${errors[v.name] ? "form-group--error" : ""
|
|
373
|
+
}`}
|
|
324
374
|
>
|
|
325
375
|
{v.label && <label>{v.label}</label>}
|
|
326
376
|
{v.icon && <Icon classIcon={v.icon} />}
|
|
@@ -351,12 +401,16 @@ export const DynamicForm = forwardRef(
|
|
|
351
401
|
required={required}
|
|
352
402
|
allowManualEntry
|
|
353
403
|
manualEntryLabel={v.addressSearch?.manualEntryLabel}
|
|
354
|
-
onChange={(value) =>
|
|
355
|
-
|
|
356
|
-
|
|
404
|
+
onChange={(value) => {
|
|
405
|
+
revalidateField(v, value);
|
|
406
|
+
updateValues({ [v.name]: value } as FormValuesInterface<T>);
|
|
407
|
+
}}
|
|
357
408
|
onSelect={(address) => {
|
|
358
409
|
const mappedValues =
|
|
359
410
|
v.addressSearch?.mapAddress?.(address) ?? {};
|
|
411
|
+
if (v.name in mappedValues) {
|
|
412
|
+
revalidateField(v, mappedValues[v.name]);
|
|
413
|
+
}
|
|
360
414
|
updateValues(mappedValues as FormValuesInterface<T>);
|
|
361
415
|
v.addressSearch?.onSelect?.(address);
|
|
362
416
|
}}
|
|
@@ -431,9 +485,15 @@ export const DynamicForm = forwardRef(
|
|
|
431
485
|
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
|
|
432
486
|
handleChangeInput(e, v)
|
|
433
487
|
}
|
|
488
|
+
onBlur={(e: React.FocusEvent<HTMLInputElement>) =>
|
|
489
|
+
validateField(v, e.target.value)
|
|
490
|
+
}
|
|
434
491
|
onInvalid={v.onInvalid ? v.onInvalid : undefined}
|
|
435
492
|
/>
|
|
436
493
|
)}
|
|
494
|
+
{mode !== "read" && errors[v.name] && (
|
|
495
|
+
<small className="form-error">{errors[v.name]}</small>
|
|
496
|
+
)}
|
|
437
497
|
</div>
|
|
438
498
|
</FormFieldContainer>
|
|
439
499
|
);
|
package/src/form/form.css
CHANGED
|
@@ -60,6 +60,15 @@ form {
|
|
|
60
60
|
padding-bottom: 0.15rem;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
.form-group--error input {
|
|
64
|
+
border-color: var(--danger-color);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.form-error {
|
|
68
|
+
color: var(--danger-color);
|
|
69
|
+
font-size: 0.8rem;
|
|
70
|
+
}
|
|
71
|
+
|
|
63
72
|
.form-group-checkbox {
|
|
64
73
|
display: flex;
|
|
65
74
|
flex-direction: row;
|
|
@@ -60,6 +60,8 @@ export interface FormInterface {
|
|
|
60
60
|
value: string | number | boolean | Date | string[]
|
|
61
61
|
) => React.ReactNode;
|
|
62
62
|
autoComplete?: string;
|
|
63
|
+
/** Transforme la valeur saisie avant de la stocker (ex : formatage d'un téléphone) */
|
|
64
|
+
formatOnChange?: (value: string) => string;
|
|
63
65
|
step?: string;
|
|
64
66
|
onChange?: (
|
|
65
67
|
value: string | number | boolean | Date | string[],
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FormInterface } from "./form.interface";
|
|
2
|
+
|
|
3
|
+
// Retourne le message d'erreur du champ si sa valeur ne respecte pas sa condition (un champ vide est ignoré, c'est le rôle de required)
|
|
4
|
+
export const getFieldError = (
|
|
5
|
+
field: FormInterface,
|
|
6
|
+
value: unknown,
|
|
7
|
+
): string | undefined => {
|
|
8
|
+
if (!field.condition || typeof value !== "string" || value.trim() === "") {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return new RegExp(field.condition.regex).test(value.trim())
|
|
12
|
+
? undefined
|
|
13
|
+
: field.condition.errorMessage;
|
|
14
|
+
};
|
package/src/select/select.css
CHANGED
|
@@ -129,8 +129,18 @@
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
/* Overlay "bare" : la recherche porte son propre fond et fait l'en-tête de la liste */
|
|
132
133
|
.select-overlay-search {
|
|
133
|
-
padding
|
|
134
|
+
padding: 0.5rem;
|
|
135
|
+
background-color: #fff;
|
|
136
|
+
border: 1px solid #b2a1a1;
|
|
137
|
+
border-bottom: none;
|
|
138
|
+
border-radius: 0.25rem 0.25rem 0 0;
|
|
139
|
+
|
|
140
|
+
& + .select-overlay-options {
|
|
141
|
+
border-top-left-radius: 0;
|
|
142
|
+
border-top-right-radius: 0;
|
|
143
|
+
}
|
|
134
144
|
|
|
135
145
|
input {
|
|
136
146
|
width: 100%;
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/App.menu.tsx","./src/App.routes.tsx","./src/App.tsx","./src/index.ts","./src/main.tsx","./src/_core/hooks/HistoryProvider.tsx","./src/_core/hooks/ImageChecker.tsx","./src/_core/hooks/imageExist.tsx","./src/_core/hooks/isEAN13.tsx","./src/_core/hooks/objectToQueryParams.tsx","./src/_core/hooks/useCurrency.tsx","./src/_core/hooks/useDateutils.ts","./src/_core/hooks/useIsMobile.ts","./src/_core/hooks/useToken.tsx","./src/_core/hooks/useValidate.tsx","./src/_core/hooks/widgetSupport.tsx","./src/_core/type/generiqueType.tsx","./src/action/Action.view.tsx","./src/action/ButtonAction.tsx","./src/addressSearch/AddressSearch.tsx","./src/addressSearch/AddressSearch.view.tsx","./src/badge/Badge.tsx","./src/badge/Badge.view.tsx","./src/button/Button.tsx","./src/button/Button.view.tsx","./src/button/button.interface.tsx","./src/button/buttonActions/ButtonActions.tsx","./src/button/buttonFile/ButtonFile.tsx","./src/button/buttonFile/ButtonFile.view.tsx","./src/button/buttonFilters/ButtonFilters.tsx","./src/button/buttonImport/ButtonImport.tsx","./src/button/buttonImport/ButtonImport.view.tsx","./src/card/Card.tsx","./src/card/Card.view.tsx","./src/card/card.interface.tsx","./src/card/cardAction.interface.tsx","./src/card/cardAction/CardAction.tsx","./src/card/hook/useCardInteractions.tsx","./src/carousel/Carousel.tsx","./src/carousel/Carousel.view.tsx","./src/damier/Damier.tsx","./src/damier/Damier.view.tsx","./src/damier/damierCell/DamierCell.tsx","./src/damier/damierCell/damierCell.interface.tsx","./src/dataTable/DataTable.tsx","./src/dataTable/DataTable.view.tsx","./src/dataTable/dataTable.interface.ts","./src/dataTable/dataTable.utils.ts","./src/dataTable/useDataTableState.tsx","./src/dataTable/dataTableActions/DataTableAction.tsx","./src/dataTable/dataTableActions/DataTableActionMenu.tsx","./src/dataTable/dataTableColumn/DataTableColumn.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/DataTableColumnFilter.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDate/DataTableColumnFilterDate.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDateRange/dataTableColumnFilterDateRange.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterEnum/DataTableColumnFilterEnum.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterString/DataTableColumnFilterString.tsx","./src/dataTable/dataTableColumn/dataTableColumnSort/DataTableColumnSort.tsx","./src/dataTable/dataTableFilters/DataTableFilters.tsx","./src/dataTable/dataTableLoading/DataTableLoading.tsx","./src/dataTable/dataTableRow/DataTableRow.tsx","./src/datePicker/DatePicker.tsx","./src/datePicker/DatePicker.view.tsx","./src/docs/ComponentDocs.tsx","./src/docs/catalog.ts","./src/docs/documentation.types.ts","./src/docs/virtual.d.ts","./src/expands/Expands.tsx","./src/expands/Expands.view.tsx","./src/expands/expand/expand.interface.tsx","./src/expands/expand/expand.tsx","./src/filAriane/FilAriane.tsx","./src/filAriane/FilAriane.view.tsx","./src/filAriane/filAriane.interface.tsx","./src/form/Form.tsx","./src/form/Form.view.tsx","./src/form/form.enum.ts","./src/form/form.interface.tsx","./src/form/input/Input.tsx","./src/form/inputNumber/InputNumber.tsx","./src/form/inputNumber/InputNumber.view.tsx","./src/form/inputPrice/InputPrice.tsx","./src/form/inputPrice/InputPrice.view.tsx","./src/form/textArea/TextArea.tsx","./src/form/textArea/TextArea.view.tsx","./src/geocoding/CityGeocodingService.ts","./src/geocoding/GeocodingService.ts","./src/geocoding/geocoding.interface.ts","./src/grid/Grid.tsx","./src/grid/Grid.view.tsx","./src/grid/grid.interface.tsx","./src/grid/col/Col.tsx","./src/grid/col/colStyled/ColStyled.tsx","./src/grid/container/Container.tsx","./src/grid/row/Row.tsx","./src/header/Header.tsx","./src/header/Header.view.tsx","./src/header/header.interface.tsx","./src/home/Home.tsx","./src/icon/Icon.tsx","./src/icon/Icons.view.tsx","./src/icon/icon.interface.tsx","./src/icon/iconSize.enum.ts","./src/loader/Loader.tsx","./src/loader/Loader.view.tsx","./src/menus/Menus.tsx","./src/menus/Menus.view.tsx","./src/menus/menu/Menu.tsx","./src/menus/menu/menu.interface.tsx","./src/message/Message.tsx","./src/message/Message.view.tsx","./src/modal/Modal.tsx","./src/modal/Modal.view.tsx","./src/notFound/NotFound.tsx","./src/overlayPanel/OverlayPanel.tsx","./src/overlayPanel/OverlayPanel.view.tsx","./src/overlayPanel/overlay.context.tsx","./src/overlayPanel/overlayPanelStyled/OverlayPanelStyled.tsx","./src/pdfViewer/PdfViewer.tsx","./src/pdfViewer/PdfViewer.view.tsx","./src/quantity/Quantity.tsx","./src/quantity/Quantity.view.tsx","./src/search/Search.tsx","./src/search/Search.view.tsx","./src/select/Select.tsx","./src/select/Select.view.tsx","./src/select/selectOption.interface.ts","./src/sidebar/Sidebar.tsx","./src/sidebar/Sidebar.view.tsx","./src/sidebarData/SidebarData.tsx","./src/sidebarData/SidebarData.view.tsx","./src/tabs/Tabs.tsx","./src/tabs/Tabs.view.tsx","./src/toaster/Toaster.tsx","./src/toaster/Toaster.view.tsx","./src/toaster/store/useToasterStore.tsx"],"version":"5.9.3"}
|
|
1
|
+
{"root":["./src/App.menu.tsx","./src/App.routes.tsx","./src/App.tsx","./src/index.ts","./src/main.tsx","./src/_core/hooks/HistoryProvider.tsx","./src/_core/hooks/ImageChecker.tsx","./src/_core/hooks/imageExist.tsx","./src/_core/hooks/isEAN13.tsx","./src/_core/hooks/objectToQueryParams.tsx","./src/_core/hooks/useCurrency.tsx","./src/_core/hooks/useDateutils.ts","./src/_core/hooks/useIsMobile.ts","./src/_core/hooks/useToken.tsx","./src/_core/hooks/useValidate.tsx","./src/_core/hooks/widgetSupport.tsx","./src/_core/type/generiqueType.tsx","./src/action/Action.view.tsx","./src/action/ButtonAction.tsx","./src/addressSearch/AddressSearch.tsx","./src/addressSearch/AddressSearch.view.tsx","./src/badge/Badge.tsx","./src/badge/Badge.view.tsx","./src/button/Button.tsx","./src/button/Button.view.tsx","./src/button/button.interface.tsx","./src/button/buttonActions/ButtonActions.tsx","./src/button/buttonFile/ButtonFile.tsx","./src/button/buttonFile/ButtonFile.view.tsx","./src/button/buttonFilters/ButtonFilters.tsx","./src/button/buttonImport/ButtonImport.tsx","./src/button/buttonImport/ButtonImport.view.tsx","./src/card/Card.tsx","./src/card/Card.view.tsx","./src/card/card.interface.tsx","./src/card/cardAction.interface.tsx","./src/card/cardAction/CardAction.tsx","./src/card/hook/useCardInteractions.tsx","./src/carousel/Carousel.tsx","./src/carousel/Carousel.view.tsx","./src/damier/Damier.tsx","./src/damier/Damier.view.tsx","./src/damier/damierCell/DamierCell.tsx","./src/damier/damierCell/damierCell.interface.tsx","./src/damier/damierEditor/DamierEditor.tsx","./src/damier/damierEditor/maybePromise.interface.ts","./src/damier/damierEditor/damierEditorCell/DamierEditorCell.tsx","./src/damier/damierEditor/damierEditorToolbar/DamierEditorToolbar.tsx","./src/damier/damierEditor/damierEditorTree/DamierEditorTree.tsx","./src/damier/damierEditor/damierEditorTree/damierTreeNode.interface.ts","./src/damier/damierEditor/damierEditorTree/damierEditorTreeNode/DamierEditorTreeNode.tsx","./src/damier/damierPage/damierPage.interface.tsx","./src/damier/utils/buildDamierTree.ts","./src/damier/utils/createDefaultDamierPage.ts","./src/damier/utils/damierDefaultSize.ts","./src/damier/utils/findDamierTreePath.ts","./src/damier/utils/getFirstFreePosition.ts","./src/damier/utils/moveDamierCell.ts","./src/dataTable/DataTable.tsx","./src/dataTable/DataTable.view.tsx","./src/dataTable/dataTable.interface.ts","./src/dataTable/dataTable.utils.ts","./src/dataTable/useDataTableState.tsx","./src/dataTable/dataTableActions/DataTableAction.tsx","./src/dataTable/dataTableActions/DataTableActionMenu.tsx","./src/dataTable/dataTableColumn/DataTableColumn.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/DataTableColumnFilter.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDate/DataTableColumnFilterDate.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDateRange/dataTableColumnFilterDateRange.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterEnum/DataTableColumnFilterEnum.tsx","./src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterString/DataTableColumnFilterString.tsx","./src/dataTable/dataTableColumn/dataTableColumnSort/DataTableColumnSort.tsx","./src/dataTable/dataTableFilters/DataTableFilters.tsx","./src/dataTable/dataTableLoading/DataTableLoading.tsx","./src/dataTable/dataTableRow/DataTableRow.tsx","./src/datePicker/DatePicker.tsx","./src/datePicker/DatePicker.view.tsx","./src/docs/ComponentDocs.tsx","./src/docs/catalog.ts","./src/docs/documentation.types.ts","./src/docs/virtual.d.ts","./src/expands/Expands.tsx","./src/expands/Expands.view.tsx","./src/expands/expand/expand.interface.tsx","./src/expands/expand/expand.tsx","./src/filAriane/FilAriane.tsx","./src/filAriane/FilAriane.view.tsx","./src/filAriane/filAriane.interface.tsx","./src/form/Form.tsx","./src/form/Form.view.tsx","./src/form/form.enum.ts","./src/form/form.interface.tsx","./src/form/getFieldError.ts","./src/form/input/Input.tsx","./src/form/inputNumber/InputNumber.tsx","./src/form/inputNumber/InputNumber.view.tsx","./src/form/inputPrice/InputPrice.tsx","./src/form/inputPrice/InputPrice.view.tsx","./src/form/textArea/TextArea.tsx","./src/form/textArea/TextArea.view.tsx","./src/geocoding/CityGeocodingService.ts","./src/geocoding/GeocodingService.ts","./src/geocoding/geocoding.interface.ts","./src/grid/Grid.tsx","./src/grid/Grid.view.tsx","./src/grid/grid.interface.tsx","./src/grid/col/Col.tsx","./src/grid/col/colStyled/ColStyled.tsx","./src/grid/container/Container.tsx","./src/grid/row/Row.tsx","./src/header/Header.tsx","./src/header/Header.view.tsx","./src/header/header.interface.tsx","./src/home/Home.tsx","./src/icon/Icon.tsx","./src/icon/Icons.view.tsx","./src/icon/icon.interface.tsx","./src/icon/iconSize.enum.ts","./src/loader/Loader.tsx","./src/loader/Loader.view.tsx","./src/menus/Menus.tsx","./src/menus/Menus.view.tsx","./src/menus/menu/Menu.tsx","./src/menus/menu/menu.interface.tsx","./src/message/Message.tsx","./src/message/Message.view.tsx","./src/modal/Modal.tsx","./src/modal/Modal.view.tsx","./src/notFound/NotFound.tsx","./src/overlayPanel/OverlayPanel.tsx","./src/overlayPanel/OverlayPanel.view.tsx","./src/overlayPanel/overlay.context.tsx","./src/overlayPanel/overlayPanelStyled/OverlayPanelStyled.tsx","./src/pdfViewer/PdfViewer.tsx","./src/pdfViewer/PdfViewer.view.tsx","./src/quantity/Quantity.tsx","./src/quantity/Quantity.view.tsx","./src/search/Search.tsx","./src/search/Search.view.tsx","./src/select/Select.tsx","./src/select/Select.view.tsx","./src/select/selectOption.interface.ts","./src/sidebar/Sidebar.tsx","./src/sidebar/Sidebar.view.tsx","./src/sidebarData/SidebarData.tsx","./src/sidebarData/SidebarData.view.tsx","./src/tabs/Tabs.tsx","./src/tabs/Tabs.view.tsx","./src/toaster/Toaster.tsx","./src/toaster/Toaster.view.tsx","./src/toaster/store/useToasterStore.tsx"],"version":"5.9.3"}
|