fuse-importer 0.0.8-testing → 0.1.1-testing

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.
Files changed (165) hide show
  1. package/lib/esm/Importer/ImporterWithContext.js +63 -0
  2. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +68 -0
  3. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +58 -0
  4. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.js +21 -0
  5. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +23 -0
  6. package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +61 -0
  7. package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +55 -0
  8. package/lib/esm/Importer/Matcher/common/icons/index.js +14 -0
  9. package/lib/esm/Importer/Matcher/common/index.js +39 -0
  10. package/lib/esm/Importer/Matcher/common/types.js +9 -0
  11. package/lib/esm/Importer/Matcher/index.js +22 -0
  12. package/lib/esm/Importer/PreviewFirstTime.js +81 -0
  13. package/lib/esm/Importer/PreviewModeBanner.js +19 -0
  14. package/lib/esm/Importer/Review/AppResponseModal.js +35 -0
  15. package/lib/esm/Importer/Review/ReviewContextProvider.js +318 -0
  16. package/lib/esm/Importer/Review/ReviewWithContext.js +33 -0
  17. package/lib/esm/Importer/Review/index.js +4 -0
  18. package/lib/esm/Importer/Stepper/ConfirmCloseModal.js +24 -0
  19. package/lib/esm/Importer/Stepper/Step.js +19 -0
  20. package/lib/esm/Importer/Stepper/StepIndex.js +27 -0
  21. package/lib/esm/Importer/Stepper/StepperSubmitModal.js +24 -0
  22. package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +31 -0
  23. package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +33 -0
  24. package/lib/esm/Importer/Stepper/common/icons.js +18 -0
  25. package/lib/esm/Importer/Stepper/index.js +118 -0
  26. package/lib/esm/Importer/TrialModeBanner.js +22 -0
  27. package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.js +11 -0
  28. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +123 -0
  29. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.js +11 -0
  30. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +44 -0
  31. package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.js +14 -0
  32. package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +45 -0
  33. package/lib/esm/Importer/Uploader/HeaderButtons.js +28 -0
  34. package/lib/esm/Importer/Uploader/HeadersPreview.js +44 -0
  35. package/lib/esm/Importer/Uploader/UploaderContextProvider.js +27 -0
  36. package/lib/esm/Importer/Uploader/index.js +13 -0
  37. package/lib/esm/Importer/common/AppLoading.js +24 -0
  38. package/lib/esm/Importer/common/Footer.js +17 -0
  39. package/lib/esm/Importer/common/FuseApi.js +48 -0
  40. package/lib/esm/Importer/common/GlobalStyle.js +7 -0
  41. package/lib/esm/Importer/common/ImporterFonts.js +5 -0
  42. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +56 -0
  43. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +176 -0
  44. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.js +45 -0
  45. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +14 -0
  46. package/lib/esm/Importer/common/Spreadsheet/common/index.js +63 -0
  47. package/lib/esm/Importer/common/Spreadsheet/common/types.js +5 -0
  48. package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +66 -0
  49. package/lib/esm/Importer/common/Spreadsheet/components/GlobalStyle.js +9 -0
  50. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +110 -0
  51. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +186 -0
  52. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +55 -0
  53. package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +19 -0
  54. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +43 -0
  55. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +74 -0
  56. package/lib/esm/Importer/common/Spreadsheet/components/fields/index.d.ts +2 -1
  57. package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +114 -0
  58. package/lib/esm/Importer/common/Spreadsheet/components/fields/utils.d.ts +11 -0
  59. package/lib/esm/Importer/common/Spreadsheet/components/fields/utils.js +29 -0
  60. package/lib/esm/Importer/common/Spreadsheet/components/inputs/Boolean.js +18 -0
  61. package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +14 -0
  62. package/lib/esm/Importer/common/Spreadsheet/components/inputs/EnumInput.js +30 -0
  63. package/lib/esm/Importer/common/Spreadsheet/components/inputs/FloatInput.js +16 -0
  64. package/lib/esm/Importer/common/Spreadsheet/components/inputs/IntegerInput.js +16 -0
  65. package/lib/esm/Importer/common/Spreadsheet/components/inputs/StringInput.js +14 -0
  66. package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.d.ts +1 -0
  67. package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +20 -0
  68. package/lib/esm/Importer/common/Spreadsheet/hooks.js +245 -0
  69. package/lib/esm/Importer/common/Spreadsheet/index.js +119 -0
  70. package/lib/esm/Importer/common/Spreadsheet/styles.js +16 -0
  71. package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +47 -0
  72. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +236 -0
  73. package/lib/esm/Importer/common/Spreadsheet/validation/index.js +202 -0
  74. package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +181 -0
  75. package/lib/esm/Importer/common/icons/index.js +18 -0
  76. package/lib/esm/Importer/common/index.js +13 -0
  77. package/lib/esm/Importer/common/theme.js +19 -0
  78. package/lib/esm/Importer/common/utils.js +100 -0
  79. package/lib/esm/Importer/contexts/ImporterContextProvider.js +247 -0
  80. package/lib/esm/Importer/data/index.js +172 -0
  81. package/lib/esm/Importer/index.js +28 -0
  82. package/lib/esm/api/index.js +93 -0
  83. package/lib/esm/api/responseHandlers.js +49 -0
  84. package/lib/esm/common/AppLoadingContextProvider/AppLoadingUI.js +26 -0
  85. package/lib/esm/common/AppLoadingContextProvider/index.js +25 -0
  86. package/lib/esm/common/ConfirmationModal.js +19 -0
  87. package/lib/esm/common/Modal.js +31 -0
  88. package/lib/esm/common/Spinner.js +41 -0
  89. package/lib/esm/common/Table/Pagination/icons.js +42 -0
  90. package/lib/esm/common/Table/Pagination/index.js +32 -0
  91. package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +50 -0
  92. package/lib/esm/common/Table/TableActions/ExportData.js +23 -0
  93. package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +47 -0
  94. package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.styles.js +24 -0
  95. package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +35 -0
  96. package/lib/esm/common/Table/TableActions/FilterByErrors/index.js +1 -0
  97. package/lib/esm/common/Table/TableActions/RowFilters.js +42 -0
  98. package/lib/esm/common/Table/TableActions/SearchRows.js +72 -0
  99. package/lib/esm/common/Table/TableActions/TableActions.js +35 -0
  100. package/lib/esm/common/Table/TableActions/TableActions.styles.js +18 -0
  101. package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +83 -0
  102. package/lib/esm/common/Table/TableActions/common.js +1 -0
  103. package/lib/esm/common/Table/TableActions/hooks.js +41 -0
  104. package/lib/esm/common/Table/TableActions/icons.js +17 -0
  105. package/lib/esm/common/Table/TableActions/index.js +1 -0
  106. package/lib/esm/common/Table/TableDataProvider.js +127 -0
  107. package/lib/esm/common/Table/TableView/TableHeaders.js +69 -0
  108. package/lib/esm/common/Table/TableView/TableRows/TableRow.js +57 -0
  109. package/lib/esm/common/Table/TableView/TableRows/index.js +48 -0
  110. package/lib/esm/common/Table/TableView/common/index.js +37 -0
  111. package/lib/esm/common/Table/TableView/index.js +132 -0
  112. package/lib/esm/common/Table/TableView/types.js +1 -0
  113. package/lib/esm/common/Table/icons.js +15 -0
  114. package/lib/esm/common/Table/index.js +140 -0
  115. package/lib/esm/common/Table/useReorderRows.js +83 -0
  116. package/lib/esm/common/Toast.js +69 -0
  117. package/lib/esm/common/TooltipProvider.js +57 -0
  118. package/lib/esm/common/buttons.js +97 -0
  119. package/lib/esm/common/columnsTransformations.js +94 -0
  120. package/lib/esm/common/columnsValidations.d.ts +1 -27
  121. package/lib/esm/common/columnsValidations.js +401 -0
  122. package/lib/esm/common/datePatterns.d.ts +26 -0
  123. package/lib/esm/common/datePatterns.js +327 -0
  124. package/lib/esm/common/icons/index.js +30 -0
  125. package/lib/esm/common/index.d.ts +1 -0
  126. package/lib/esm/common/index.js +46 -0
  127. package/lib/esm/common/inputs/Autocomplete.js +110 -0
  128. package/lib/esm/common/inputs/Checkbox.js +53 -0
  129. package/lib/esm/common/inputs/SelectMenu.js +74 -0
  130. package/lib/esm/common/inputs/TextInput.js +89 -0
  131. package/lib/esm/common/inputs/index.js +5 -0
  132. package/lib/esm/common/inputs/tooltip.js +38 -0
  133. package/lib/esm/common/logo.js +13 -0
  134. package/lib/esm/hooks/index.d.ts +1 -0
  135. package/lib/esm/hooks/index.js +16 -0
  136. package/lib/esm/index.js +218 -0
  137. package/lib/esm/locales/de.js +126 -0
  138. package/lib/esm/locales/en.js +126 -0
  139. package/lib/esm/locales/es.js +126 -0
  140. package/lib/esm/locales/fr.js +126 -0
  141. package/lib/esm/locales/index.js +4 -0
  142. package/lib/esm/styled/fontsURL.js +27 -0
  143. package/lib/esm/styled/index.js +3 -0
  144. package/lib/esm/styled/theme/animations.js +9 -0
  145. package/lib/esm/styled/theme/colorPalette.js +109 -0
  146. package/lib/esm/styled/theme/debugCss.js +16 -0
  147. package/lib/esm/styled/theme/dimensionsCss.js +20 -0
  148. package/lib/esm/styled/theme/fontCss.js +17 -0
  149. package/lib/esm/styled/theme/globalCss.js +26 -0
  150. package/lib/esm/styled/theme/index.js +33 -0
  151. package/lib/esm/styled/theme/layoutCss.js +26 -0
  152. package/lib/esm/styled/theme/mediaQueries.js +4 -0
  153. package/lib/esm/styled/theme/positionCss.js +27 -0
  154. package/lib/esm/styled/theme/textCss.js +18 -0
  155. package/lib/esm/styled/theme/textStyles.js +27 -0
  156. package/lib/esm/styled/themeType.js +6 -0
  157. package/lib/esm/styled/utils.js +17 -0
  158. package/lib/esm/types.d.ts +7 -6
  159. package/lib/esm/types.js +65 -0
  160. package/lib/esm/utils/hooks/useWindowSize.js +23 -0
  161. package/lib/esm/utils/hooks.js +1 -0
  162. package/lib/esm/utils/index.d.ts +1 -0
  163. package/lib/esm/utils/index.js +41 -0
  164. package/lib/main.js +6 -6
  165. package/package.json +1 -1
@@ -0,0 +1,126 @@
1
+ /* eslint-disable import/no-anonymous-default-export */
2
+ export default {
3
+ preview: {
4
+ title: "You're about to preview your importer.",
5
+ description: "Download our example CSV to try out your importer. We have randomly generated it so you can see how Fuse transforms the data..",
6
+ download: "Download CSV",
7
+ note: {
8
+ title: "Note:",
9
+ description: "This screen will not exist once you install the importer on your website.",
10
+ },
11
+ },
12
+ upload: {
13
+ headers_preview: {
14
+ title: "Select a Header Row",
15
+ description: "File must contain column headers to proceed.",
16
+ cancel: "Re-upload file",
17
+ continue: "Continue",
18
+ },
19
+ error: {
20
+ title: "Something’s wrong",
21
+ },
22
+ header: {
23
+ title: "Make sure your document contains data similar to this:",
24
+ required_headers: "Required Headers",
25
+ optional_headers: "Optional Headers",
26
+ },
27
+ title: "Upload a File to Import your Data",
28
+ description: "\n Upload any .csv, .xls, .xlsx file with any set of\n columns as long as it has one record per row.\n ",
29
+ loading: {
30
+ title: "Uploading...",
31
+ },
32
+ dropzone: {
33
+ title: "Drag & drop your file here",
34
+ description: "or",
35
+ button: "Browse Files",
36
+ enter_data_manually: "Enter data manually",
37
+ },
38
+ },
39
+ match: {
40
+ title: "Match Your Columns with Ours",
41
+ description: "We were able to match {{numberOfMatchedHeaders}} of {{totalNumberOfHeaders}} columns correctly!",
42
+ enum_description: "\n Our system only accepts certain values for some columns. Below you can\n match the values from your spreadsheet to the values we accept.\n ",
43
+ columns: {
44
+ your_columns: "Your Columns",
45
+ our_columns: "Our Columns",
46
+ status: "Status",
47
+ placeholder: "Select an option...",
48
+ values_for_the_column: "Values for the {{column}} Column",
49
+ matched: "Matched",
50
+ unmatched: "Unmatched",
51
+ },
52
+ },
53
+ review: {
54
+ title: "Review & Submit",
55
+ manual_importer_title: "Enter Data & Submit",
56
+ export: "Export",
57
+ description: "Some cells in the document might have errors in format or missing information. Please review these to continue.",
58
+ table_actions: {
59
+ filters_by_rows: {
60
+ all_rows: "All Rows",
61
+ valid_rows: "Valid Rows",
62
+ invalid_rows: "Invalid Rows",
63
+ },
64
+ search_rows: {
65
+ tooltip: "Search something",
66
+ placeholder: "Search something...",
67
+ },
68
+ filter_by_errors: {
69
+ search_or_select: "Search or select",
70
+ filter_by_errors: "Filter by errors",
71
+ },
72
+ delete_rows: {
73
+ confirmation_modal: "Are you sure you want to delete {{length}} row",
74
+ modal_title: "Delete Selected Row",
75
+ yes_delete: "Yes, delete",
76
+ select_rows: "Select rows to delete",
77
+ delete_row: "Delete Row",
78
+ },
79
+ export_your_data: {
80
+ tooltip: "Export your data",
81
+ },
82
+ transformed_records: {
83
+ auto_corrections_done: "cells auto-corrected",
84
+ example: "Example",
85
+ auto_corrections_amount: "We have auto-corrected {{amount}} issues.",
86
+ },
87
+ },
88
+ },
89
+ general: {
90
+ autocomplete: {
91
+ placeholder: "Select an option...",
92
+ },
93
+ steps: {
94
+ upload: "Upload",
95
+ match: "Match",
96
+ review: "Review",
97
+ },
98
+ stepper: {
99
+ go_back: "Go back",
100
+ continue: "Continue",
101
+ submit: "Submit",
102
+ },
103
+ unmatched_headers_modal: {
104
+ title: "Unmatched Column Headers",
105
+ description_singular: "There is {{count}} unmatched column headers. You will have to fill these out manually if you proceed.",
106
+ description_plural: "There are {{count}} unmatched column headers. You will have to fill these out manually if you proceed.",
107
+ assign_headers: "Assign Headers",
108
+ skip: "Skip",
109
+ },
110
+ submit_modal: {
111
+ title: "Ready to submit?",
112
+ description: "We didn't find anything wrong with your file. You're good to go!",
113
+ submit: "Yes, submit",
114
+ cancel: "Go back",
115
+ },
116
+ confirm_close_modal: {
117
+ title: "Are you sure?",
118
+ description: "Closing the importer will lose any changes.",
119
+ close: "Close",
120
+ cancel: "Cancel",
121
+ },
122
+ preview_mode_banner: {
123
+ title: "You’re currently in Preview mode.",
124
+ },
125
+ },
126
+ };
@@ -0,0 +1,126 @@
1
+ /* eslint-disable import/no-anonymous-default-export */
2
+ export default {
3
+ preview: {
4
+ title: "Estás a punto de previsualizar tu importador.",
5
+ description: "Descarga nuestro ejemplo CSV para probar tu importador. Lo hemos generado aleatoriamente para que veas cómo Fuse transforma los datos.",
6
+ download: "Descargar CSV",
7
+ note: {
8
+ title: "Nota:",
9
+ description: "Esta pantalla no existirá una vez que instales el importador en tu sitio web.",
10
+ },
11
+ },
12
+ upload: {
13
+ headers_preview: {
14
+ title: "Seleccione una fila de encabezado",
15
+ description: "El archivo debe contener encabezados de columna para continuar.",
16
+ cancel: "No, vuelva a cargar el archivo",
17
+ continue: "Sí, continuar",
18
+ },
19
+ error: {
20
+ title: "Algo está mal",
21
+ },
22
+ header: {
23
+ title: "Asegúrate de que tu documento contenga datos similares a estos:",
24
+ required_headers: "Encabezados requeridos",
25
+ optional_headers: "Encabezados opcionales",
26
+ },
27
+ title: "Cargue un archivo para importar sus datos",
28
+ description: "\n Cargue cualquier archivo de hoja de c\u00E1lculo .csv, .xls, .xlsx con cualquier conjunto de\n columnas siempre y cuando tenga un registro por fila.\n ",
29
+ loading: {
30
+ title: "Cargando...",
31
+ },
32
+ dropzone: {
33
+ title: "Arrastra y suelta tu archivo aquí",
34
+ description: "o",
35
+ button: "Examinar archivos",
36
+ enter_data_manually: "Ingresar datos manualmente",
37
+ },
38
+ },
39
+ match: {
40
+ title: "Empareja tus columnas con las nuestras",
41
+ description: "¡Fue posible emparejar {{numberOfMatchedHeaders}} de {{totalNumberOfHeaders}} columnas correctamente!",
42
+ enum_description: "\n Nuestro sistema solo acepta ciertos valores para algunas columnas. A continuaci\u00F3n, puede\n emparejar los valores de su hoja de c\u00E1lculo con los valores que aceptamos.\n ",
43
+ columns: {
44
+ your_columns: "Tus columnas",
45
+ our_columns: "Nuestras columnas",
46
+ status: "Estado",
47
+ placeholder: "Seleccione una opción...",
48
+ values_for_the_column: "Valores para la columna {{column}}",
49
+ matched: "Emparejado",
50
+ unmatched: "No emparejado",
51
+ },
52
+ },
53
+ review: {
54
+ title: "Revisar y Enviar",
55
+ manual_importer_title: "Ingresar Datos y Enviar",
56
+ export: "Exportar",
57
+ description: "Algunas celdas en el documento pueden tener errores en el formato o información faltante. Por favor revise esto para continuar.",
58
+ table_actions: {
59
+ filters_by_rows: {
60
+ all_rows: "Todas las Filas",
61
+ valid_rows: "Filas Válidas",
62
+ invalid_rows: "Filas Inválidas",
63
+ },
64
+ search_rows: {
65
+ tooltip: "Buscar algo",
66
+ placeholder: "Buscar algo...",
67
+ },
68
+ filter_by_errors: {
69
+ search_or_select: "Buscar o seleccionar",
70
+ filter_by_errors: "Filtrar por errores",
71
+ },
72
+ delete_rows: {
73
+ confirmation_modal: "¿Seguro que quieres eliminar {{length}} fila",
74
+ modal_title: "Eliminar la fila seleccionada",
75
+ yes_delete: "Sí, eliminar",
76
+ select_rows: "Seleccione las filas a eliminar",
77
+ delete_row: "Eliminar fila",
78
+ },
79
+ export_your_data: {
80
+ tooltip: "Exporta tus datos",
81
+ },
82
+ transformed_records: {
83
+ auto_corrections_done: "celdas corregidas automáticamente",
84
+ example: "Ejemplo",
85
+ auto_corrections_amount: "Hemos corregido automáticamente {{amount}} problemas.",
86
+ },
87
+ },
88
+ },
89
+ general: {
90
+ autocomplete: {
91
+ placeholder: "Seleccione una opción...",
92
+ },
93
+ steps: {
94
+ upload: "Subir",
95
+ match: "Emparejar",
96
+ review: "Revisión",
97
+ },
98
+ stepper: {
99
+ go_back: "Volver",
100
+ continue: "Continuar",
101
+ submit: "Enviar",
102
+ },
103
+ unmatched_headers_modal: {
104
+ title: "Encabezados de columna no emparejados",
105
+ description_singular: "Hay {{count}} encabezados de columna no emparejados. Tendrás que completar estos manualmente si procedes.",
106
+ description_plural: "Hay {{count}} encabezados de columna no emparejados. Tendrás que completar estos manualmente si procedes.",
107
+ assign_headers: "Asignar encabezados",
108
+ skip: "Saltar",
109
+ },
110
+ submit_modal: {
111
+ title: "¿Listo para enviar?",
112
+ description: "No encontramos nada mal con tu archivo. ¡Estás listo para irte!",
113
+ submit: "Sí, enviar",
114
+ cancel: "Volver",
115
+ },
116
+ confirm_close_modal: {
117
+ title: "¿Estás seguro?",
118
+ description: "Cerrar el importador hará que se pierdan todos los cambios.",
119
+ close: "Cerrar",
120
+ cancel: "Cancelar",
121
+ },
122
+ preview_mode_banner: {
123
+ title: "Actualmente estás en modo de vista previa.",
124
+ },
125
+ },
126
+ };
@@ -0,0 +1,126 @@
1
+ /* eslint-disable import/no-anonymous-default-export */
2
+ export default {
3
+ preview: {
4
+ title: "Vous êtes sur le point de prévisualiser votre importateur.",
5
+ description: "Téléchargez notre exemple CSV pour essayer votre importateur. Nous l'avons généré aléatoirement afin que vous puissiez voir comment Fuse transforme les données..",
6
+ download: "Télécharger CSV",
7
+ note: {
8
+ title: "Remarque:",
9
+ description: "Cet écran n'existera plus une fois que vous aurez installé l'importateur sur votre site Web.",
10
+ },
11
+ },
12
+ upload: {
13
+ headers_preview: {
14
+ title: "Sélectionnez une ligne d'en-tête",
15
+ description: "Le fichier doit contenir des en-têtes de colonne pour continuer.",
16
+ cancel: "Non, re-télécharger le fichier",
17
+ continue: "Oui, continuer",
18
+ },
19
+ error: {
20
+ title: "Quelque chose ne va pas",
21
+ },
22
+ header: {
23
+ title: "Assurez-vous que votre document contient des données similaires à celles-ci:",
24
+ required_headers: "En-têtes requis",
25
+ optional_headers: "En-têtes facultatifs",
26
+ },
27
+ title: "Téléchargez un fichier pour importer vos données",
28
+ description: "\n T\u00E9l\u00E9chargez tout fichier de tableur .csv, .xls, .xlsx avec n'importe quel ensemble de\n colonnes tant qu'il a une seule ligne par ligne.\n ",
29
+ loading: {
30
+ title: "Téléchargement en cours...",
31
+ },
32
+ dropzone: {
33
+ title: "Glissez et déposez votre fichier ici",
34
+ description: "ou",
35
+ button: "Parcourir les fichiers",
36
+ enter_data_manually: "Entrer les données manuellement",
37
+ },
38
+ },
39
+ match: {
40
+ title: "Associez vos colonnes aux nôtres",
41
+ description: "Nous avons pu associer {{numberOfMatchedHeaders}} des {{totalNumberOfHeaders}} colonnes correctement!",
42
+ enum_description: "\n Notre syst\u00E8me n'accepte que certaines valeurs pour certaines colonnes. Ci-dessous, vous pouvez\n associez les valeurs de votre tableur aux valeurs que nous acceptons.\n ",
43
+ columns: {
44
+ your_columns: "Vos colonnes",
45
+ our_columns: "Nos colonnes",
46
+ status: "Statut",
47
+ placeholder: "Sélectionnez une option...",
48
+ values_for_the_column: "Valeurs pour la colonne {{column}}",
49
+ matched: "Assorti",
50
+ unmatched: "Non apparié",
51
+ },
52
+ },
53
+ review: {
54
+ title: "Revoir et Envoyer",
55
+ manual_importer_title: "Saisir Des Données et Envoyer",
56
+ export: "Exporter",
57
+ description: "Certaines cellules du document peuvent avoir des erreurs de format ou des informations manquantes. Veuillez les examiner pour continuer.",
58
+ table_actions: {
59
+ filters_by_rows: {
60
+ all_rows: "Toutes les lignes",
61
+ valid_rows: "Lignes valides",
62
+ invalid_rows: "Lignes invalides",
63
+ },
64
+ search_rows: {
65
+ tooltip: "Rechercher quelque chose",
66
+ placeholder: "Rechercher quelque chose...",
67
+ },
68
+ filter_by_errors: {
69
+ search_or_select: "Rechercher ou sélectionner",
70
+ filter_by_errors: "Filtrer par erreurs",
71
+ },
72
+ delete_rows: {
73
+ confirmation_modal: "Voulez-vous vraiment supprimer {{length}} ligne",
74
+ modal_title: "Supprimer la ligne sélectionnée",
75
+ yes_delete: "Oui, supprimer",
76
+ select_rows: "Sélectionnez les lignes à supprimer",
77
+ delete_row: "Supprimer la ligne",
78
+ },
79
+ export_your_data: {
80
+ tooltip: "Exporter vos données",
81
+ },
82
+ transformed_records: {
83
+ auto_corrections_done: "cellules corrigées automatiquement",
84
+ example: "Exemple",
85
+ auto_corrections_amount: "Nous avons corrigé automatiquement {{amount}} problèmes.",
86
+ },
87
+ },
88
+ },
89
+ general: {
90
+ autocomplete: {
91
+ placeholder: "Sélectionnez une option...",
92
+ },
93
+ steps: {
94
+ upload: "Télécharger",
95
+ match: "Correspondre",
96
+ review: "Revoir",
97
+ },
98
+ stepper: {
99
+ go_back: "Retour",
100
+ continue: "Continuer",
101
+ submit: "Soumettre",
102
+ },
103
+ unmatched_headers_modal: {
104
+ title: "En-têtes de colonne non appariés",
105
+ description_singular: "Il y a {{count}} en-têtes de colonne non appariés. Vous devrez remplir ces informations manuellement si vous continuez.",
106
+ description_plural: "Il y a {{count}} en-têtes de colonne non appariés. Vous devrez remplir ces informations manuellement si vous continuez.",
107
+ assign_headers: "Attribuer des en-têtes",
108
+ skip: "Sauter",
109
+ },
110
+ submit_modal: {
111
+ title: "Prêt à soumettre?",
112
+ description: "Nous n'avons rien trouvé de mal avec votre fichier. Vous êtes prêt à partir!",
113
+ submit: "Oui, soumettre",
114
+ cancel: "Retour",
115
+ },
116
+ confirm_close_modal: {
117
+ title: "Êtes-vous sûr?",
118
+ description: "Fermer l'importateur fera perdre toutes les modifications.",
119
+ close: "Fermer",
120
+ cancel: "Annuler",
121
+ },
122
+ preview_mode_banner: {
123
+ title: "Vous êtes actuellement en mode Aperçu.",
124
+ },
125
+ },
126
+ };
@@ -0,0 +1,4 @@
1
+ export { default as es } from "./es";
2
+ export { default as en } from "./en";
3
+ export { default as de } from "./de";
4
+ export { default as fr } from "./fr";
@@ -0,0 +1,27 @@
1
+ export var fontsURL = [
2
+ {
3
+ href: "https://fonts.googleapis.com",
4
+ rel: "preconnect",
5
+ },
6
+ {
7
+ href: "https://fonts.gstatic.com",
8
+ rel: "preconnect",
9
+ crossOrigin: "",
10
+ },
11
+ {
12
+ href: "https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600&display=swap",
13
+ rel: "stylesheet",
14
+ },
15
+ {
16
+ href: "https://fonts.googleapis.com/css?family=DM+Serif+Text:300,400,500,600&display=swap",
17
+ rel: "stylesheet",
18
+ },
19
+ {
20
+ href: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=DM+Serif+Display&family=DM+Serif+Text&display=swap",
21
+ rel: "stylesheet",
22
+ },
23
+ {
24
+ href: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=DM+Serif+Text&display=swap",
25
+ rel: "stylesheet",
26
+ },
27
+ ];
@@ -0,0 +1,3 @@
1
+ export * from "./utils";
2
+ export * from "./theme";
3
+ export * from "./themeType";
@@ -0,0 +1,9 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { css } from "../themeType";
6
+ export var animations = {
7
+ fadeIn: css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n opacity: 1;\n animation-name: fadeInOpacity;\n animation-iteration-count: 1;\n animation-timing-function: ease-in;\n animation-duration: 0.4s;\n "], ["\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n opacity: 1;\n animation-name: fadeInOpacity;\n animation-iteration-count: 1;\n animation-timing-function: ease-in;\n animation-duration: 0.4s;\n "]))),
8
+ };
9
+ var templateObject_1;
@@ -0,0 +1,109 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var gray = {
13
+ gray5: "#F9FAFB",
14
+ gray10: "#FCFCFD",
15
+ gray50: "#F8F8F9",
16
+ gray100: "#F0F0F1",
17
+ gray200: "#E4E4E5",
18
+ gray300: "#CAC4BF",
19
+ gray390: "#BFBFBF",
20
+ gray400: "#B1B1B2",
21
+ gray500: "#989898",
22
+ gray600: "#7F7F7F",
23
+ gray700: "#4D4D4D",
24
+ gray800: "#4C4C4C",
25
+ gray900: "#333333",
26
+ gray1000: "#1C1C1C",
27
+ };
28
+ var red = {
29
+ red50: "#E6DBDB",
30
+ red100: "#FCEDEA",
31
+ red200: "#F8DCD4",
32
+ red300: "#F2B9AA",
33
+ red400: "#EB967F",
34
+ red500: "#E57354",
35
+ error: "#CF4520",
36
+ red600: "#CF4520",
37
+ red700: "#A9381A",
38
+ red800: "#842C14",
39
+ red900: "#5E1F0F",
40
+ red1000: "#381309",
41
+ red2000: "#87464614",
42
+ };
43
+ var green = {
44
+ green50: "#EDFBEF",
45
+ green100: "#C3F2CC",
46
+ green200: "#9DEAAB",
47
+ green300: "#62DD79",
48
+ green400: "#2AC046",
49
+ green500: "#25AA3E",
50
+ green600: "#209135",
51
+ green700: "#1A782C",
52
+ green800: "#155F23",
53
+ green900: "#0F4519",
54
+ green1000: "#0A2C10",
55
+ };
56
+ var blue = {
57
+ blue50: "#CDFCEC",
58
+ blue100: "#CDFBFB",
59
+ blue400: "#71FCE4",
60
+ blue500: "#0EBEBE",
61
+ blue900: "#025B5B",
62
+ };
63
+ var pink = {
64
+ pink100: "#FED7DE",
65
+ pink300: "#FE889C",
66
+ pink500: "#FD395A",
67
+ pink700: "#CA2E48",
68
+ pink900: "#651724",
69
+ };
70
+ var orange = {
71
+ orange50: "#FAF8F6",
72
+ orange100: "#FDEAC7",
73
+ orange200: "#FBDCA0",
74
+ orange300: "#FACD78",
75
+ orange400: "#F8BE51",
76
+ orange500: "#FF9A34",
77
+ orange600: "#CD8808",
78
+ orange700: "#AA7106",
79
+ orange800: "#885A05",
80
+ orange900: "#654304",
81
+ orange1000: "#432D03",
82
+ orange1100: "#FEEBD9",
83
+ orange1200: "#78430D",
84
+ };
85
+ var white = {
86
+ white: "white",
87
+ white50: "#F3F2F1",
88
+ };
89
+ export var colorPalette = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, orange), green), gray), blue), red), white), pink), { red: "red", black: "black", gold: "#d0a617" });
90
+ export var colorLabels = {
91
+ backgroundInterface: colorPalette.orange50,
92
+ interactiveDisabled: "#FEB0BD",
93
+ error: colorPalette.red600,
94
+ warning01: colorPalette.orange500,
95
+ highlight01: colorPalette.blue500,
96
+ tableHeader: colorPalette.white50,
97
+ outlineInputs: colorPalette.gray300,
98
+ text: colorPalette.gray1000,
99
+ textPrim: colorPalette.black,
100
+ textSec: colorPalette.gray700,
101
+ textTert: colorPalette.gray700,
102
+ textLink: colorPalette.blue500,
103
+ placeholder: colorPalette.gray300,
104
+ disabled1: colorPalette.gray50,
105
+ disabled2: colorPalette.gray300,
106
+ disabled3: colorPalette.gray400,
107
+ background: colorPalette.gray10,
108
+ };
109
+ export var colors = __assign(__assign({}, colorPalette), colorLabels);
@@ -0,0 +1,16 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { css } from "../themeType";
6
+ export var debugCss = {
7
+ border: css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: solid 1px black;\n "], ["\n border: solid 1px black;\n "]))),
8
+ outline: css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n outline: solid 1px black;\n "], ["\n outline: solid 1px black;\n "]))),
9
+ borderwhite: css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border: solid 1px white;\n "], ["\n border: solid 1px white;\n "]))),
10
+ borderred: css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border: solid 1px red;\n "], ["\n border: solid 1px red;\n "]))),
11
+ bgred: css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background: red;\n "], ["\n background: red;\n "]))),
12
+ bgblue: css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background: blue;\n "], ["\n background: blue;\n "]))),
13
+ opacity5: css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n opacity: 0.5;\n "], ["\n opacity: 0.5;\n "]))),
14
+ divider: css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n height: 1px;\n background: ", ";\n "], ["\n height: 1px;\n background: ", ";\n "])), function (props) { return props.theme.colors.gray300; }),
15
+ };
16
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
@@ -0,0 +1,20 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { getCssValue } from ".";
6
+ import { css } from "../themeType";
7
+ export var dimensionsCss = {
8
+ w50: css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 50%;\n "], ["\n width: 50%;\n "]))),
9
+ w100: css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", ";\n "], ["\n ", ";\n "])), function (props) { return (props.w100 ? "width: 100%" : null); }),
10
+ h100: css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: 100%;\n "], ["\n height: 100%;\n "]))),
11
+ w: css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n /* width in px when w is type number */\n width: ", ";\n "], ["\n /* width in px when w is type number */\n width: ", ";\n "])), function (p) { return getCssValue(p.w); }),
12
+ h: css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n /* height in px when h is type number */\n height: ", ";\n "], ["\n /* height in px when h is type number */\n height: ", ";\n "])), function (p) { return getCssValue(p.h); }),
13
+ dim: css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n height: ", ";\n width: ", ";\n "], ["\n height: ", ";\n width: ", ";\n "])), function (p) { return getCssValue(p.dim); }, function (p) { return getCssValue(p.dim); }),
14
+ maxw: css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n /* maximum width in px */\n ", "\n "], ["\n /* maximum width in px */\n ", "\n "])), function (p) { return (p.maxw ? "max-width: ".concat(p.maxw, "px;") : null); }),
15
+ maxh: css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n /* maxinum height in px */\n max-height: ", "px;\n "], ["\n /* maxinum height in px */\n max-height: ", "px;\n "])), function (p) { return p.maxh; }),
16
+ minw: css(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n /* minimum width in px */\n ", "\n "], ["\n /* minimum width in px */\n ", "\n "])), function (p) { return (p.minw ? "min-width: ".concat(p.minw, "px;") : null); }),
17
+ minh: css(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n /* minimum height in px */\n min-height: ", "px;\n "], ["\n /* minimum height in px */\n min-height: ", "px;\n "])), function (p) { return p.minh; }),
18
+ br: css(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n /* border radius in px */\n border-radius: ", ";\n "], ["\n /* border radius in px */\n border-radius: ", ";\n "])), function (p) { return getCssValue(p.br); }),
19
+ };
20
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
@@ -0,0 +1,17 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { css } from "../themeType";
6
+ export var fontCss = {
7
+ semiBold: css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n font-weight: 500;\n "], ["\n font-weight: 500;\n "]))),
8
+ bold: css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n font-weight: 600;\n "], ["\n font-weight: 600;\n "]))),
9
+ extraBold: css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n font-weight: 700;\n "], ["\n font-weight: 700;\n "]))),
10
+ fontweight_800: css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n font-weight: 800;\n "], ["\n font-weight: 800;\n "]))),
11
+ italic: css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n font-style: italic;\n "], ["\n font-style: italic;\n "]))),
12
+ DM4: css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n font-family: DM Serif Text;\n font-weight: 400;\n "], ["\n font-family: DM Serif Text;\n font-weight: 400;\n "]))),
13
+ fs: css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n /* font size in px */\n font-size: ", "px;\n "], ["\n /* font size in px */\n font-size: ", "px;\n "])), function (props) { return props.fs; }),
14
+ lh: css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n /* line height in px */\n line-height: ", "px;\n "], ["\n /* line height in px */\n line-height: ", "px;\n "])), function (props) { return props.lh; }),
15
+ ls: css(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n /* letter spacing in px */\n letter-spacing: ", "px;\n "], ["\n /* letter spacing in px */\n letter-spacing: ", "px;\n "])), function (props) { return props.ls; }),
16
+ };
17
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
@@ -0,0 +1,26 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { css } from "../themeType";
6
+ import { colors } from "./colorPalette";
7
+ import { mediaQueries } from "./mediaQueries";
8
+ export var globalCss = {
9
+ clickable: css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n user-select: none;\n :hover {\n cursor: pointer;\n opacity: 0.8;\n }\n "], ["\n user-select: none;\n :hover {\n cursor: pointer;\n opacity: 0.8;\n }\n "]))),
10
+ disabledWhen: css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), function (p) {
11
+ return p.disabledWhen && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n pointer-events: none;\n "], ["\n pointer-events: none;\n "])));
12
+ }),
13
+ selectNone: css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n user-select: none;\n "], ["\n user-select: none;\n "]))),
14
+ yscroll: css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n overflow-y: scroll;\n "], ["\n overflow-y: scroll;\n "]))),
15
+ overflowHidden: css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n overflow: hidden;\n "], ["\n overflow: hidden;\n "]))),
16
+ rotate180: css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n transform: rotate(180deg);\n "], ["\n transform: rotate(180deg);\n "]))),
17
+ rotate180If: css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n transform: rotate(", ");\n "], ["\n transform: rotate(", ");\n "])), function (props) { return (props.rotate180If ? "180deg" : "0 deg"); }),
18
+ forMobile: css(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n @media all and ", " {\n display: none;\n }\n "], ["\n @media all and ", " {\n display: none;\n }\n "])), mediaQueries.desktop),
19
+ forDesktop: css(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n @media all and ", " {\n display: none;\n }\n "], ["\n @media all and ", " {\n display: none;\n }\n "])), mediaQueries.mobile),
20
+ mcontainer: css(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n @media all and ", " {\n padding-left: 6%;\n padding-right: 6%;\n }\n "], ["\n @media all and ", " {\n padding-left: 6%;\n padding-right: 6%;\n }\n "])), mediaQueries.mobile),
21
+ c: css(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n /* set color based on colors defined in theme */\n color: ", ";\n "], ["\n /* set color based on colors defined in theme */\n color: ", ";\n "])), function (props) { return props.c; }),
22
+ bg: css(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n /* set background color based on colors defined in theme */\n background-color: ", ";\n "], ["\n /* set background color based on colors defined in theme */\n background-color: ", ";\n "])), function (props) { return props.bg; }),
23
+ css: css(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n ", ";\n "], ["\n ", ";\n "])), function (p) { return p.css; }),
24
+ scrollbarDark: css(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n scrollbar-width: thin;\n scrollbar-color: ", ";\n /* width */\n ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n border-radius: 3px;\n background-color: ", ";\n }\n "], ["\n scrollbar-width: thin;\n scrollbar-color: ", ";\n /* width */\n ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n border-radius: 3px;\n background-color: ", ";\n }\n "])), colors.gray400, colors.gray400, colors.gray400),
25
+ };
26
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;