@fastnd/components 1.0.28 → 1.0.30

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 (68) hide show
  1. package/dist/components/FavoriteButton/FavoriteButton.d.ts +2 -1
  2. package/dist/components/index.d.ts +1 -3
  3. package/dist/components/ui/badge.d.ts +1 -1
  4. package/dist/components/ui/button.d.ts +1 -1
  5. package/dist/components/ui/data-table.d.ts +8 -0
  6. package/dist/components/ui/input-group.d.ts +1 -1
  7. package/dist/components/ui/item.d.ts +1 -1
  8. package/dist/components/ui/tabs.d.ts +1 -1
  9. package/dist/examples/data-explorer/CardCarouselPanel/CardCarouselPanel.tsx +197 -0
  10. package/dist/examples/data-explorer/CardView/CardView.tsx +168 -0
  11. package/dist/examples/data-explorer/ColumnConfigPopover/ColumnConfigPopover.tsx +157 -0
  12. package/dist/examples/data-explorer/DataExplorerEmpty/DataExplorerEmpty.tsx +56 -0
  13. package/dist/examples/data-explorer/DataExplorerPage/DataExplorerPage.tsx +101 -0
  14. package/dist/examples/data-explorer/DataExplorerPagination/DataExplorerPagination.tsx +129 -0
  15. package/dist/examples/data-explorer/DataExplorerToolbar/DataExplorerToolbar.tsx +143 -0
  16. package/dist/examples/data-explorer/DomainSwitcher/DomainSwitcher.tsx +36 -0
  17. package/dist/examples/data-explorer/ExpansionRows/ExpansionRows.tsx +180 -0
  18. package/dist/examples/data-explorer/FilterChip/FilterChip.tsx +85 -0
  19. package/dist/examples/data-explorer/FilterPopoverContent/FilterPopoverContent.tsx +73 -0
  20. package/dist/examples/data-explorer/ListView/ListView.tsx +305 -0
  21. package/dist/examples/data-explorer/MoreFiltersPopover/MoreFiltersPopover.tsx +113 -0
  22. package/dist/examples/data-explorer/TableView/TableView.tsx +193 -0
  23. package/dist/examples/data-explorer/cells/CellRenderer.tsx +147 -0
  24. package/dist/examples/data-explorer/cells/CurrencyCell.tsx +31 -0
  25. package/dist/examples/data-explorer/cells/DoubleTextCell.tsx +27 -0
  26. package/dist/examples/data-explorer/cells/ExpandButton.tsx +67 -0
  27. package/dist/examples/data-explorer/cells/InventoryBadgeCell.tsx +52 -0
  28. package/dist/examples/data-explorer/cells/LinkCell.tsx +42 -0
  29. package/dist/examples/data-explorer/cells/ScoreBar.tsx +50 -0
  30. package/dist/examples/data-explorer/cells/StatusBadgeCell.tsx +39 -0
  31. package/dist/examples/data-explorer/cells/TextCell.tsx +35 -0
  32. package/dist/examples/data-explorer/cells/index.ts +26 -0
  33. package/dist/examples/data-explorer/domains/applications.ts +225 -0
  34. package/dist/examples/data-explorer/domains/customers.ts +267 -0
  35. package/dist/examples/data-explorer/domains/index.ts +26 -0
  36. package/dist/examples/data-explorer/domains/products.ts +1116 -0
  37. package/dist/examples/data-explorer/domains/projects.ts +205 -0
  38. package/dist/examples/data-explorer/hooks/use-data-explorer-state.ts +371 -0
  39. package/dist/examples/data-explorer/index.ts +3 -0
  40. package/dist/examples/data-explorer/types.ts +239 -0
  41. package/dist/fastnd-components.js +16426 -17975
  42. package/package.json +1 -1
  43. package/dist/components/ColumnConfigPopover/ColumnConfigPopover.d.ts +0 -20
  44. package/dist/components/DoubleTextCell/DoubleTextCell.d.ts +0 -9
  45. package/dist/components/ProgressCircle/ProgressCircle.d.ts +0 -9
  46. package/dist/examples/data-visualization/DataGrid/DataGrid.tsx +0 -136
  47. package/dist/examples/data-visualization/DataGridCardView/DataGridCardView.tsx +0 -179
  48. package/dist/examples/data-visualization/DataGridListView/DataGridListView.tsx +0 -190
  49. package/dist/examples/data-visualization/DataGridPage/DataGridPage.tsx +0 -43
  50. package/dist/examples/data-visualization/DataGridPagination/DataGridPagination.tsx +0 -111
  51. package/dist/examples/data-visualization/DataGridTableView/DataGridTableView.tsx +0 -282
  52. package/dist/examples/data-visualization/DataGridToolbar/DataGridToolbar.tsx +0 -283
  53. package/dist/examples/data-visualization/DomainSwitcher/DomainSwitcher.tsx +0 -41
  54. package/dist/examples/data-visualization/ExpansionDrawer/ExpansionDrawer.tsx +0 -139
  55. package/dist/examples/data-visualization/MoreFiltersPopover/MoreFiltersPopover.tsx +0 -230
  56. package/dist/examples/data-visualization/ResultCount/ResultCount.tsx +0 -33
  57. package/dist/examples/data-visualization/cell-renderers.tsx +0 -119
  58. package/dist/examples/data-visualization/constants.ts +0 -1251
  59. package/dist/examples/data-visualization/hooks/use-data-grid-columns.ts +0 -65
  60. package/dist/examples/data-visualization/hooks/use-data-grid-expansion.ts +0 -40
  61. package/dist/examples/data-visualization/hooks/use-data-grid-favorites.ts +0 -41
  62. package/dist/examples/data-visualization/hooks/use-data-grid-filters.ts +0 -61
  63. package/dist/examples/data-visualization/hooks/use-data-grid-pagination.ts +0 -32
  64. package/dist/examples/data-visualization/hooks/use-data-grid-sort.ts +0 -32
  65. package/dist/examples/data-visualization/hooks/use-data-grid-state.ts +0 -133
  66. package/dist/examples/data-visualization/hooks/use-filtered-data.ts +0 -84
  67. package/dist/examples/data-visualization/index.ts +0 -10
  68. package/dist/examples/data-visualization/types.ts +0 -103
@@ -0,0 +1,225 @@
1
+ import type { Application, ColumnsConfig, DomainConfig, DomainLayout } from '../types'
2
+
3
+ export const APPLICATION_COLUMNS: ColumnsConfig<Application> = {
4
+ favorite: {
5
+ label: 'Favorit',
6
+ type: 'favorite',
7
+ sortable: false,
8
+ filterable: false,
9
+ visible: true,
10
+ },
11
+ name: {
12
+ label: 'Applikation',
13
+ type: 'double-text',
14
+ sortable: true,
15
+ filterable: false,
16
+ visible: true,
17
+ secondary: 'description',
18
+ searchable: true,
19
+ },
20
+ url: {
21
+ label: 'Referenz',
22
+ type: 'link',
23
+ sortable: false,
24
+ filterable: false,
25
+ visible: true,
26
+ hideMobile: true,
27
+ },
28
+ trends: {
29
+ label: 'Trend',
30
+ type: 'text',
31
+ sortable: true,
32
+ filterable: true,
33
+ primaryFilter: true,
34
+ visible: true,
35
+ hideTablet: true,
36
+ searchable: true,
37
+ },
38
+ product_families: {
39
+ label: 'Produktfamilien',
40
+ type: 'expand',
41
+ sortable: false,
42
+ filterable: false,
43
+ visible: true,
44
+ hideMobile: true,
45
+ expandLabel: 'Produktfamilien',
46
+ expandColumns: [
47
+ { key: 'family_name', label: 'Produktfamilie', bold: true, mapTo: 'name' },
48
+ { key: 'category', label: 'Kategorie', mapTo: 'trends' },
49
+ { key: 'typical_products', label: 'Typische Produkte', mapTo: 'url' },
50
+ ],
51
+ expandTitleFn: (row: Application) => `Typische Produktfamilien für ${row.name}`,
52
+ },
53
+ }
54
+
55
+ export const APPLICATION_LAYOUT: DomainLayout = {
56
+ list: {
57
+ titleField: 'name',
58
+ metaFields: ['trends'],
59
+ badgeFields: [],
60
+ valueField: null,
61
+ expandField: 'product_families',
62
+ },
63
+ card: {
64
+ titleField: 'name',
65
+ subtitleField: 'description',
66
+ badgeFields: [],
67
+ rows: [
68
+ { label: 'Trend', field: 'trends' },
69
+ { label: 'Referenz', field: 'url' },
70
+ ],
71
+ footerField: 'trends',
72
+ expandField: 'product_families',
73
+ },
74
+ }
75
+
76
+ export const MOCK_APPLICATIONS: Application[] = [
77
+ {
78
+ id: 'a1',
79
+ name: 'ADAS Kameramodul',
80
+ description: 'Kamerabasiertes Fahrerassistenzsystem für Level 2/3 Autonomie',
81
+ url: 'https://www.continentalautomotive.com/adas',
82
+ trends: 'Autonomous Driving',
83
+ favorite: true,
84
+ product_families: [
85
+ { family_name: 'ARM Cortex-M4 Mikrocontroller', category: 'Mikrocontroller', typical_products: 'STM32F4, STM32F7, XMC4000' },
86
+ { family_name: 'DC-DC Abwärtswandler', category: 'Spannungsregler', typical_products: 'TPS543x, LM2596, MP2315' },
87
+ { family_name: 'Hochauflösende ADCs', category: 'Datenerfassung', typical_products: 'AD7124, ADS1256, MCP3912' },
88
+ ],
89
+ },
90
+ {
91
+ id: 'a2',
92
+ name: 'EV Battery Management System für Hochvolttraktionsbatterien',
93
+ description: 'Funktionssicheres Batteriemanagement für Hochvolt-Elektrofahrzeuge (BEV/PHEV) nach ISO 26262',
94
+ url: 'https://www.webasto.com/ev-solutions',
95
+ trends: 'Electromobility',
96
+ favorite: true,
97
+ product_families: [
98
+ { family_name: 'Li-Ion Ladecontroller', category: 'Power Management', typical_products: 'BQ2589x, MP2639A, ISL9238' },
99
+ { family_name: 'Quad-Kanal PMICs', category: 'Power Management', typical_products: 'ADP5054, TPS65263, MAX77714' },
100
+ { family_name: 'N-Channel Power MOSFETs', category: 'Transistoren', typical_products: 'IRF540N, STP36NF06L, FDP8N60NZ' },
101
+ ],
102
+ },
103
+ {
104
+ id: 'a3',
105
+ name: 'Smart Meter Gateway',
106
+ description: 'Kommunikations-Gateway für intelligente Energiezähler nach BSI TR-03109 (MUC)',
107
+ url: 'https://www.landisgyr.com/smart-grid',
108
+ trends: 'Smart Grid',
109
+ favorite: false,
110
+ product_families: [
111
+ { family_name: '8-Bit AVR Mikrocontroller', category: 'Mikrocontroller', typical_products: 'ATMEGA328P, ATTINY88, ATMEGA2560' },
112
+ { family_name: 'Single-Wire CAN Transceiver', category: 'Interface', typical_products: 'NCV7356, TJA1021T' },
113
+ ],
114
+ },
115
+ {
116
+ id: 'a4',
117
+ name: 'Industrie-PLC Compact',
118
+ description: 'Kompakte speicherprogrammierbare Steuerung für Maschinen und Anlagen',
119
+ url: 'https://www.siemens.com/plc',
120
+ trends: 'Industry 4.0',
121
+ favorite: false,
122
+ product_families: [
123
+ { family_name: 'ARM Cortex-M4 Industrial MCUs', category: 'Mikrocontroller', typical_products: 'XMC4800, XMC4700, STM32H743' },
124
+ { family_name: 'ARM Cortex-M4 Allzweck-MCUs', category: 'Mikrocontroller', typical_products: 'STM32F407, STM32F405, GD32F407' },
125
+ { family_name: 'Schmitt-Trigger Logik-ICs', category: 'Logik-ICs', typical_products: 'SN74LVC1G14, SN74AHC1G14' },
126
+ ],
127
+ },
128
+ {
129
+ id: 'a5',
130
+ name: 'Wearable Vitalsensor Kontinuierliche Patientenüberwachung',
131
+ description: 'Tragbarer Biosensor für ambulante und stationäre kontinuierliche Patientenüberwachung',
132
+ url: 'https://www.draeger.com/digital-health',
133
+ trends: 'Digital Health',
134
+ favorite: false,
135
+ product_families: [
136
+ { family_name: '24-Bit Sigma-Delta ADCs', category: 'Datenerfassung', typical_products: 'AD7124, ADS1256, MCP3912' },
137
+ { family_name: 'Rail-to-Rail Operationsverstärker', category: 'Verstärker', typical_products: 'OPA2340, MCP6002, LMV358' },
138
+ ],
139
+ },
140
+ {
141
+ id: 'a6',
142
+ name: 'Wallbox AC/DC',
143
+ description: 'Bidirektionale Ladestation für Elektrofahrzeuge mit Vehicle-to-Grid (V2G) Unterstützung',
144
+ url: 'https://www.webasto.com/wallbox',
145
+ trends: 'Electromobility',
146
+ favorite: false,
147
+ product_families: [
148
+ { family_name: 'N-Channel Power MOSFETs', category: 'Transistoren', typical_products: 'IRF540N, STP36NF06L' },
149
+ { family_name: 'Li-Ion Ladecontroller', category: 'Power Management', typical_products: 'BQ2589x, MP2639A' },
150
+ { family_name: 'DC-DC Abwärtswandler', category: 'Spannungsregler', typical_products: 'TPS543x, LM2596, LM2676' },
151
+ ],
152
+ },
153
+ {
154
+ id: 'a7',
155
+ name: 'CAN-FD Sternkoppler Automotive',
156
+ description: 'Aktiver CAN-FD Sternkoppler für Fahrzeugbusnetzwerke nach ISO 11898-1',
157
+ url: 'https://www.nxp.com/can',
158
+ trends: 'Autonomous Driving',
159
+ favorite: false,
160
+ product_families: [
161
+ { family_name: 'Single-Wire CAN Transceiver', category: 'Interface', typical_products: 'NCV7356, TJA1021T, TJA1043' },
162
+ { family_name: 'Schmitt-Trigger Logik-ICs', category: 'Logik-ICs', typical_products: 'SN74LVC1G14, SN74AHC1G14' },
163
+ ],
164
+ },
165
+ {
166
+ id: 'a8',
167
+ name: 'Precision Agriculture Node',
168
+ description: 'IoT-Feldknoten für Bodenfeuchte-, GPS- und Wetterdatenerfassung mit LoRaWAN',
169
+ url: 'https://www.claas.com/precision-farming',
170
+ trends: 'Smart Agriculture',
171
+ favorite: false,
172
+ product_families: [
173
+ { family_name: '8-Bit AVR Mikrocontroller', category: 'Mikrocontroller', typical_products: 'ATMEGA328P, ATTINY88' },
174
+ { family_name: '24-Bit Sigma-Delta ADCs', category: 'Datenerfassung', typical_products: 'AD7124, ADS1256' },
175
+ { family_name: 'Schmitt-Trigger Logik-ICs', category: 'Logik-ICs', typical_products: 'SN74LVC1G14' },
176
+ ],
177
+ },
178
+ {
179
+ id: 'a9',
180
+ name: 'Roboter-Motorcontroller Mehrachsig',
181
+ description: 'Mehrachsiger Servo- und Schrittmotorregler für kollaborative Industrieroboter (ISO 10218)',
182
+ url: 'https://www.kuka.com/cobots',
183
+ trends: 'Industry 4.0',
184
+ favorite: true,
185
+ product_families: [
186
+ { family_name: 'ARM Cortex-M4 Industrial MCUs mit EtherCAT', category: 'Mikrocontroller', typical_products: 'XMC4800, XMC4700' },
187
+ { family_name: 'N-Channel Power MOSFETs', category: 'Transistoren', typical_products: 'IRF540N, STP36NF06L, FDP8N60NZ' },
188
+ ],
189
+ },
190
+ {
191
+ id: 'a10',
192
+ name: 'RS232-Legacy-Bridge',
193
+ description: 'Protokollbrücke von RS-232 auf moderne Feldbusse (Modbus RTU/TCP) für Retrofit-Projekte',
194
+ url: 'https://www.siemens.com/legacy-automation',
195
+ trends: 'Industry 4.0',
196
+ favorite: false,
197
+ product_families: [
198
+ { family_name: 'RS-232 Transceiver', category: 'Interface', typical_products: 'MAX232, SP3232, ST232' },
199
+ ],
200
+ },
201
+ {
202
+ id: 'a11',
203
+ name: 'Hochvolt-Batteriemanagement ASIL-D Traktionsbatterie',
204
+ description: 'Funktionssicheres BMS nach ISO 26262 ASIL-D für Hochvolt-Traktionsbatterien in BEV und FCEV-Plattformen',
205
+ url: 'https://www.zf.com/hv-bms',
206
+ trends: 'Electromobility/Safety',
207
+ favorite: false,
208
+ product_families: [
209
+ { family_name: 'Li-Ion Ladecontroller', category: 'Power Management', typical_products: 'BQ2589x, MP2639A, ISL9238' },
210
+ { family_name: 'Quad-Kanal PMICs', category: 'Power Management', typical_products: 'ADP5054, TPS65263' },
211
+ { family_name: 'N-Channel Power MOSFETs', category: 'Transistoren', typical_products: 'IRF540N, STP36NF06L' },
212
+ { family_name: 'ARM Cortex-M4 Allzweck-MCUs', category: 'Mikrocontroller', typical_products: 'STM32F407, GD32F407' },
213
+ { family_name: 'ARM Cortex-M4 Industrial MCUs mit EtherCAT', category: 'Mikrocontroller', typical_products: 'XMC4800, XMC4700, STM32H743' },
214
+ ],
215
+ },
216
+ ]
217
+
218
+ export const APPLICATIONS_CONFIG: DomainConfig<Application> = {
219
+ key: 'applications',
220
+ label: 'Applikationen',
221
+ resultLabel: 'Applikationen',
222
+ columns: APPLICATION_COLUMNS,
223
+ layout: APPLICATION_LAYOUT,
224
+ data: MOCK_APPLICATIONS,
225
+ }
@@ -0,0 +1,267 @@
1
+ import type { ColumnsConfig, Customer, DomainConfig, DomainLayout } from '../types'
2
+
3
+ export const CUSTOMER_COLUMNS: ColumnsConfig<Customer> = {
4
+ favorite: {
5
+ label: 'Favorit',
6
+ type: 'favorite',
7
+ sortable: false,
8
+ filterable: false,
9
+ visible: true,
10
+ },
11
+ name: {
12
+ label: 'Kunde',
13
+ type: 'double-text',
14
+ sortable: true,
15
+ filterable: false,
16
+ visible: true,
17
+ secondary: 'main_customer',
18
+ searchable: true,
19
+ },
20
+ category: {
21
+ label: 'Kategorie',
22
+ type: 'text',
23
+ sortable: true,
24
+ filterable: true,
25
+ primaryFilter: true,
26
+ visible: true,
27
+ searchable: true,
28
+ },
29
+ region: {
30
+ label: 'Region',
31
+ type: 'text',
32
+ sortable: true,
33
+ filterable: true,
34
+ primaryFilter: true,
35
+ visible: true,
36
+ hideTablet: true,
37
+ },
38
+ country_code: {
39
+ label: 'Land',
40
+ type: 'text',
41
+ sortable: true,
42
+ filterable: true,
43
+ primaryFilter: false,
44
+ visible: true,
45
+ hideMobile: true,
46
+ },
47
+ city: {
48
+ label: 'Stadt',
49
+ type: 'text',
50
+ sortable: true,
51
+ filterable: false,
52
+ visible: true,
53
+ hideMobile: true,
54
+ searchable: true,
55
+ },
56
+ url: {
57
+ label: 'Website',
58
+ type: 'link',
59
+ sortable: false,
60
+ filterable: false,
61
+ visible: true,
62
+ hideMobile: true,
63
+ },
64
+ active_projects: {
65
+ label: 'Projekte',
66
+ type: 'expand',
67
+ sortable: false,
68
+ filterable: false,
69
+ visible: true,
70
+ hideMobile: true,
71
+ expandLabel: 'Projekte',
72
+ expandColumns: [
73
+ { key: 'project_name', label: 'Projekt', bold: true, mapTo: 'name' },
74
+ { key: 'status', label: 'Status', muted: true, mapTo: 'category' },
75
+ { key: 'volume', label: 'Volumen', mapTo: 'city' },
76
+ { key: 'expected_closing', label: 'Closing', mapTo: 'region' },
77
+ ],
78
+ expandTitleFn: (row: Customer) => `Aktive Projekte von ${row.name}`,
79
+ },
80
+ }
81
+
82
+ export const CUSTOMER_LAYOUT: DomainLayout = {
83
+ list: {
84
+ titleField: 'name',
85
+ metaFields: ['main_customer', 'category', 'city'],
86
+ badgeFields: [],
87
+ valueField: null,
88
+ expandField: 'active_projects',
89
+ },
90
+ card: {
91
+ titleField: 'name',
92
+ subtitleField: 'main_customer',
93
+ badgeFields: [],
94
+ rows: [
95
+ { label: 'Kategorie', field: 'category' },
96
+ { label: 'Region', field: 'region' },
97
+ { label: 'Stadt', field: 'city' },
98
+ ],
99
+ footerField: 'url',
100
+ expandField: 'active_projects',
101
+ },
102
+ }
103
+
104
+ export const MOCK_CUSTOMERS: Customer[] = [
105
+ {
106
+ id: 'c1',
107
+ name: 'Continental AG',
108
+ main_customer: 'Continental Gruppe',
109
+ category: 'Automotive',
110
+ region: 'EMEA',
111
+ country_code: 'DE',
112
+ city: 'Hannover',
113
+ url: 'continental.com',
114
+ favorite: true,
115
+ active_projects: [
116
+ { project_name: 'ADAS Kameramodul Gen3', status: 'Open', volume: '250k Stk./Jahr', expected_closing: '2025-09-30' },
117
+ { project_name: 'Radar-Frontend 77GHz', status: 'Negotiation', volume: '320k Stk./Jahr', expected_closing: '2025-10-15' },
118
+ ],
119
+ },
120
+ {
121
+ id: 'c2',
122
+ name: 'Webasto SE',
123
+ main_customer: 'Webasto Gruppe',
124
+ category: 'Automotive',
125
+ region: 'EMEA',
126
+ country_code: 'DE',
127
+ city: 'Stockdorf',
128
+ url: 'webasto.com',
129
+ favorite: false,
130
+ active_projects: [
131
+ { project_name: 'EV Ladesteuerung 22kW', status: 'Won', volume: '80k Stk./Jahr', expected_closing: '2025-03-15' },
132
+ { project_name: 'Wallbox Premium 11kW', status: 'Qualified', volume: '45k Stk./Jahr', expected_closing: '2025-08-30' },
133
+ ],
134
+ },
135
+ {
136
+ id: 'c3',
137
+ name: 'Siemens AG',
138
+ main_customer: 'Siemens Konzern',
139
+ category: 'Industrial',
140
+ region: 'EMEA',
141
+ country_code: 'DE',
142
+ city: 'München',
143
+ url: 'siemens.com',
144
+ favorite: true,
145
+ active_projects: [
146
+ { project_name: 'Industrie-Gateway IoT Protokollkonverter', status: 'Negotiation', volume: '15k Stk./Jahr', expected_closing: '2025-12-01' },
147
+ ],
148
+ },
149
+ {
150
+ id: 'c4',
151
+ name: 'Dräger Medical Devices & Safety AG',
152
+ main_customer: 'Drägerwerk AG & Co. KGaA',
153
+ category: 'Medical',
154
+ region: 'EMEA',
155
+ country_code: 'DE',
156
+ city: 'Lübeck',
157
+ url: 'draeger.com',
158
+ favorite: false,
159
+ active_projects: [
160
+ { project_name: 'Patientenmonitor V5', status: 'Qualified', volume: '5k Stk./Jahr', expected_closing: '2026-02-28' },
161
+ ],
162
+ },
163
+ {
164
+ id: 'c5',
165
+ name: 'Landis+Gyr AG',
166
+ main_customer: 'Landis+Gyr Group',
167
+ category: 'Energy',
168
+ region: 'EMEA',
169
+ country_code: 'CH',
170
+ city: 'Zug',
171
+ url: 'landisgyr.com',
172
+ favorite: false,
173
+ active_projects: [
174
+ { project_name: 'Smart Meter Modul', status: 'Open', volume: '500k Stk./Jahr', expected_closing: '2025-11-15' },
175
+ ],
176
+ },
177
+ {
178
+ id: 'c6',
179
+ name: 'KUKA AG',
180
+ main_customer: 'KUKA Gruppe',
181
+ category: 'Industrial',
182
+ region: 'EMEA',
183
+ country_code: 'DE',
184
+ city: 'Augsburg',
185
+ url: 'kuka.com',
186
+ favorite: false,
187
+ active_projects: [
188
+ { project_name: 'Robotersteuerung R200', status: 'Won', volume: '12k Stk./Jahr', expected_closing: '2025-01-20' },
189
+ ],
190
+ },
191
+ {
192
+ id: 'c7',
193
+ name: 'ZF Friedrichshafen AG',
194
+ main_customer: 'ZF Group',
195
+ category: 'Automotive',
196
+ region: 'EMEA',
197
+ country_code: 'DE',
198
+ city: 'Friedrichshafen',
199
+ url: 'zf.com',
200
+ favorite: false,
201
+ active_projects: [
202
+ { project_name: 'BMS 48V Mild-Hybrid Batteriesystem für Nutzfahrzeuge', status: 'Lost', volume: '180k Stk./Jahr', expected_closing: '2025-06-30' },
203
+ ],
204
+ },
205
+ {
206
+ id: 'c8',
207
+ name: 'CLAAS KGaA mbH',
208
+ main_customer: 'CLAAS Gruppe',
209
+ category: 'Agriculture',
210
+ region: 'EMEA',
211
+ country_code: 'DE',
212
+ city: 'Harsewinkel',
213
+ url: 'claas.com',
214
+ favorite: false,
215
+ active_projects: [
216
+ { project_name: 'Sensorknoten Agrar', status: 'Open', volume: '8k Stk./Jahr', expected_closing: '2026-03-31' },
217
+ ],
218
+ },
219
+ {
220
+ id: 'c9',
221
+ name: 'Robert Bosch Sensortec GmbH',
222
+ main_customer: 'Robert Bosch GmbH',
223
+ category: 'Automotive',
224
+ region: 'EMEA',
225
+ country_code: 'DE',
226
+ city: 'Reutlingen',
227
+ url: 'bosch-sensortec.com',
228
+ favorite: true,
229
+ active_projects: [],
230
+ },
231
+ {
232
+ id: 'c10',
233
+ name: 'Schneider Electric Industries SAS',
234
+ main_customer: 'Schneider Electric SE',
235
+ category: 'Energy',
236
+ region: 'EMEA',
237
+ country_code: 'FR',
238
+ city: 'Rueil-Malmaison',
239
+ url: 'se.com',
240
+ favorite: false,
241
+ active_projects: [],
242
+ },
243
+ {
244
+ id: 'c11',
245
+ name: 'BMW Group',
246
+ main_customer: 'Automotive OEM',
247
+ category: 'Automotive',
248
+ region: 'EMEA/APAC/NAFTA',
249
+ country_code: 'DE',
250
+ city: 'München',
251
+ url: 'bmwgroup.com',
252
+ favorite: false,
253
+ active_projects: [
254
+ { project_name: 'Autonomes Fahrzeug-Plattform Generation 4', status: 'Negotiation', volume: '1,75M Stk./Jahr', expected_closing: '2027-06-30' },
255
+ { project_name: 'ADAS Kameramodul Gen3', status: 'Open', volume: '250k Stk./Jahr', expected_closing: '2025-09-30' },
256
+ ],
257
+ },
258
+ ]
259
+
260
+ export const CUSTOMERS_CONFIG: DomainConfig<Customer> = {
261
+ key: 'customers',
262
+ label: 'Kunden',
263
+ resultLabel: 'Kunden',
264
+ columns: CUSTOMER_COLUMNS,
265
+ layout: CUSTOMER_LAYOUT,
266
+ data: MOCK_CUSTOMERS,
267
+ }
@@ -0,0 +1,26 @@
1
+ import type { DomainConfig, DomainKey } from '../types'
2
+ import { PRODUCTS_CONFIG } from './products'
3
+ import { PROJECTS_CONFIG } from './projects'
4
+ import { CUSTOMERS_CONFIG } from './customers'
5
+ import { APPLICATIONS_CONFIG } from './applications'
6
+
7
+ export { PRODUCTS_CONFIG } from './products'
8
+ export { PROJECTS_CONFIG } from './projects'
9
+ export { CUSTOMERS_CONFIG } from './customers'
10
+ export { APPLICATIONS_CONFIG } from './applications'
11
+
12
+ export const DOMAIN_KEYS: DomainKey[] = ['products', 'projects', 'customers', 'applications']
13
+
14
+ export const DOMAIN_LABELS: Record<DomainKey, string> = {
15
+ products: 'Produkte',
16
+ projects: 'Projekte',
17
+ customers: 'Kunden',
18
+ applications: 'Applikationen',
19
+ }
20
+
21
+ export const DATA_SOURCES: Record<DomainKey, DomainConfig> = {
22
+ products: PRODUCTS_CONFIG as DomainConfig,
23
+ projects: PROJECTS_CONFIG as DomainConfig,
24
+ customers: CUSTOMERS_CONFIG as DomainConfig,
25
+ applications: APPLICATIONS_CONFIG as DomainConfig,
26
+ }