@bit.rhplus/ui.grid-layout 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ColumnEditorModal.jsx +339 -0
- package/dist/ColumnEditorModal.d.ts +16 -0
- package/dist/ColumnEditorModal.js +166 -0
- package/dist/ColumnEditorModal.js.map +1 -0
- package/dist/gridLayout.d.ts +43 -0
- package/dist/gridLayout.js +104 -0
- package/dist/gridLayout.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1754923422987.js +7 -0
- package/dist/useGridLayout.d.ts +16 -0
- package/dist/useGridLayout.js +445 -0
- package/dist/useGridLayout.js.map +1 -0
- package/dist/useGridLayoutApi.d.ts +8 -0
- package/dist/useGridLayoutApi.js +231 -0
- package/dist/useGridLayoutApi.js.map +1 -0
- package/gridLayout.js +107 -0
- package/index.js +3 -0
- package/package.json +35 -0
- package/types/asset.d.ts +43 -0
- package/types/style.d.ts +42 -0
- package/useGridLayout.js +512 -0
- package/useGridLayoutApi.js +296 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* Hook pro komunikaci s Grid Layout API službou
|
|
4
|
+
* Poskytuje funkcionalitu pro načítání a ukládání personalizovaných nastavení gridů
|
|
5
|
+
*/
|
|
6
|
+
import { useCallback, useMemo } from 'react';
|
|
7
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
8
|
+
import { useApiQuery, useApiQuerySilence } from '@bit.rhplus/data';
|
|
9
|
+
import { userFieldsApi, getSingleGridApi, getUserGridsApi, saveGridLayoutApi } from './gridLayout';
|
|
10
|
+
import useData from '@bit.rhplus/data';
|
|
11
|
+
/**
|
|
12
|
+
* Hook pro práci s Grid Layout API
|
|
13
|
+
* @param {Object} config - Konfigurace gridu
|
|
14
|
+
* @param {string} config.userKey - Klíč uživatele
|
|
15
|
+
* @param {string} config.applicationName - Název aplikace
|
|
16
|
+
* @param {string} config.gridName - Název gridu
|
|
17
|
+
* @param {string} [config.filterName] - Název filtru (volitelné)
|
|
18
|
+
* @param {string} [config.accessToken] - Přístupový token
|
|
19
|
+
* @returns {Object} API methods pro grid layout
|
|
20
|
+
*/
|
|
21
|
+
export const useGridLayoutApi = ({ userKey, applicationName, gridName, filterName = null, accessToken = null }) => {
|
|
22
|
+
const { fetchDataUIAsync } = useData();
|
|
23
|
+
const queryClient = useQueryClient();
|
|
24
|
+
// Základní identifikace pro API volání
|
|
25
|
+
const baseParams = useMemo(() => ({
|
|
26
|
+
userKey,
|
|
27
|
+
applicationName,
|
|
28
|
+
gridName,
|
|
29
|
+
...(filterName && { filterName })
|
|
30
|
+
}), [userKey, applicationName, gridName, filterName]);
|
|
31
|
+
// Query key pro caching
|
|
32
|
+
const gridQueryKey = useMemo(() => `grid_layout_${userKey}_${applicationName}_${gridName}_${filterName || 'default'}`, [userKey, applicationName, gridName, filterName]);
|
|
33
|
+
/**
|
|
34
|
+
* Načte seznam polí pro konkrétní grid s personalizací uživatele
|
|
35
|
+
* @param {Array} fields - Definice polí gridu
|
|
36
|
+
* @param {Object} options - React Query options
|
|
37
|
+
*/
|
|
38
|
+
const useUserFields = (fields = [], options = {}) => {
|
|
39
|
+
const params = useMemo(() => ({
|
|
40
|
+
...baseParams,
|
|
41
|
+
fields
|
|
42
|
+
}), [baseParams, fields]);
|
|
43
|
+
return useApiQuery(`${gridQueryKey}_fields`, userFieldsApi, params, accessToken, null, options?.enabled ?? true, 5, // 5 minut stale time
|
|
44
|
+
options);
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Načte konkrétní jeden grid pro uživatele
|
|
48
|
+
* @param {Object} options - React Query options
|
|
49
|
+
*/
|
|
50
|
+
const useSingleGrid = (options = {}) => {
|
|
51
|
+
return useApiQuery(gridQueryKey, getSingleGridApi, baseParams, accessToken, null, true, 5 // 5 minut stale time
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Načte seznam všech gridů uživatele v aplikaci
|
|
56
|
+
* @param {Object} options - React Query options
|
|
57
|
+
*/
|
|
58
|
+
const useUserGrids = (options = {}) => {
|
|
59
|
+
const params = useMemo(() => ({
|
|
60
|
+
userKey,
|
|
61
|
+
applicationName
|
|
62
|
+
}), [userKey, applicationName]);
|
|
63
|
+
return useApiQuery(`user_grids_${userKey}_${applicationName}`, getUserGridsApi, params, accessToken, null, true, 10 // 10 minut stale time
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Uloží personalizované nastavení gridu pomocí SaveUserFields endpoint
|
|
68
|
+
* @param {Array} userFields - UserFieldModel array pro uložení
|
|
69
|
+
* @returns {Promise} Promise s výsledkem
|
|
70
|
+
*/
|
|
71
|
+
const saveGridLayout = useCallback(async (userFields) => {
|
|
72
|
+
try {
|
|
73
|
+
const params = {
|
|
74
|
+
...baseParams,
|
|
75
|
+
userFields // Nová struktura pro SaveUserFieldsCommand
|
|
76
|
+
};
|
|
77
|
+
const result = await fetchDataUIAsync(saveGridLayoutApi, params, accessToken);
|
|
78
|
+
if (result.success) {
|
|
79
|
+
// Invalidujeme cache pro načtení čerstvých dat z API - všechny queries související s tímto gridem
|
|
80
|
+
await queryClient.invalidateQueries({
|
|
81
|
+
predicate: (query) => {
|
|
82
|
+
// Invalidujeme všechny queries které začínají našim gridQueryKey
|
|
83
|
+
const queryKey = query.queryKey?.[0];
|
|
84
|
+
return queryKey && typeof queryKey === 'string' && queryKey.startsWith(gridQueryKey);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
console.log("✅ Grid layout uložen a cache invalidován pro pattern:", gridQueryKey);
|
|
88
|
+
return {
|
|
89
|
+
success: true,
|
|
90
|
+
data: result.data,
|
|
91
|
+
message: result.message
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
throw new Error(result.message || result.error?.message || 'Chyba při ukládání grid layoutu');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.error('Chyba při ukládání grid layout:', error);
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
}, [baseParams, fetchDataUIAsync, accessToken, queryClient, gridQueryKey]);
|
|
103
|
+
/**
|
|
104
|
+
* Transformuje AG-Grid column state na UserFieldModel format
|
|
105
|
+
* @param {Array} columnState - AG-Grid column state
|
|
106
|
+
* @param {Array} columnDefs - Původní column definitions
|
|
107
|
+
* @returns {Array} UserFieldModel array pro SaveUserFields API
|
|
108
|
+
*/
|
|
109
|
+
const transformColumnStateToFields = useCallback((columnState, columnDefs) => {
|
|
110
|
+
if (!columnState || !columnDefs)
|
|
111
|
+
return [];
|
|
112
|
+
if (!Array.isArray(columnDefs)) {
|
|
113
|
+
console.error('transformColumnStateToFields: columnDefs musí být array, získán:', typeof columnDefs);
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
return columnState.map((columnStateItem, index) => {
|
|
117
|
+
// Najdeme odpovídající column definition podle colId
|
|
118
|
+
const colDef = columnDefs.find(cd => cd.field === columnStateItem.colId) || {};
|
|
119
|
+
return {
|
|
120
|
+
// Mapování na UserFieldModel strukturu
|
|
121
|
+
Id: 0, // Nové pole má ID = 0, existující budou mít správné ID z API
|
|
122
|
+
UserKey: baseParams.userKey,
|
|
123
|
+
ApplicationName: baseParams.applicationName,
|
|
124
|
+
GridName: baseParams.gridName,
|
|
125
|
+
FilterName: baseParams.filterName || null,
|
|
126
|
+
FieldName: columnStateItem.colId,
|
|
127
|
+
HeaderName: colDef.headerName || columnStateItem.colId || `Column ${index + 1}`,
|
|
128
|
+
Order: index, // Pořadí podle pozice v column state
|
|
129
|
+
Show: columnStateItem.hide !== true,
|
|
130
|
+
Width: columnStateItem.width || colDef.width || null,
|
|
131
|
+
System: colDef.system || false // Systémové sloupce nejde skrývat/editovat
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
}, [baseParams]);
|
|
135
|
+
/**
|
|
136
|
+
* Transformuje UserFieldModel array na AG-Grid column state
|
|
137
|
+
* Používá columnDefs jako primární zdroj a userFields jen pro úpravy
|
|
138
|
+
* @param {Array} userFields - UserFieldModel array z API (pro úpravy)
|
|
139
|
+
* @param {Array} columnDefs - Původní column definitions (primární)
|
|
140
|
+
* @returns {Array} Column state pro AG-Grid
|
|
141
|
+
*/
|
|
142
|
+
const transformFieldsToColumnState = useCallback((userFields, columnDefs) => {
|
|
143
|
+
if (!columnDefs || !Array.isArray(columnDefs)) {
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
// Pokud nemáme userFields, vrátíme default column state z columnDefs
|
|
147
|
+
if (!userFields || !Array.isArray(userFields)) {
|
|
148
|
+
return columnDefs.map((colDef, index) => ({
|
|
149
|
+
colId: colDef.field,
|
|
150
|
+
width: colDef.width || 100,
|
|
151
|
+
hide: colDef.hide || false,
|
|
152
|
+
pinned: colDef.pinned || null,
|
|
153
|
+
sort: null,
|
|
154
|
+
sortIndex: null
|
|
155
|
+
}));
|
|
156
|
+
}
|
|
157
|
+
// Vytvoříme mapu userFields pro rychlé vyhledávání
|
|
158
|
+
const userFieldsMap = new Map();
|
|
159
|
+
userFields.forEach(userField => {
|
|
160
|
+
// API používá lowercase názvy (fieldName, order, show) místo uppercase (FieldName, Order, Show)
|
|
161
|
+
const fieldName = userField.fieldName || userField.FieldName;
|
|
162
|
+
userFieldsMap.set(fieldName, userField);
|
|
163
|
+
});
|
|
164
|
+
console.log("🔍 transformFieldsToColumnState debug:", {
|
|
165
|
+
userFields: userFields.map(uf => ({
|
|
166
|
+
fieldName: uf.fieldName || uf.FieldName,
|
|
167
|
+
order: uf.order ?? uf.Order,
|
|
168
|
+
show: uf.show ?? uf.Show,
|
|
169
|
+
width: uf.width ?? uf.Width
|
|
170
|
+
})),
|
|
171
|
+
columnDefs: columnDefs.map(cd => ({ field: cd.field, headerName: cd.headerName })),
|
|
172
|
+
userFieldsMapKeys: Array.from(userFieldsMap.keys())
|
|
173
|
+
});
|
|
174
|
+
// Vytvoříme column state POUZE pro sloupce, které mají záznam v userFields
|
|
175
|
+
const columnStateWithUserFields = columnDefs
|
|
176
|
+
.map((colDef, defaultIndex) => {
|
|
177
|
+
const userField = userFieldsMap.get(colDef.field);
|
|
178
|
+
// Pokud pro tento sloupec není userField, vracíme null (bude odfiltrován)
|
|
179
|
+
if (!userField) {
|
|
180
|
+
console.log(`🔍 No userField for ${colDef.field} - skipping`);
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
const result = {
|
|
184
|
+
colId: colDef.field,
|
|
185
|
+
// API používá lowercase názvy polí
|
|
186
|
+
width: userField.width ?? userField.Width ?? colDef.width ?? 100,
|
|
187
|
+
hide: !(userField.show ?? userField.Show ?? true),
|
|
188
|
+
pinned: colDef.pinned || null, // Pinning z columnDefs, userFields to zatím nepodporuje
|
|
189
|
+
sort: null, // Sorting není součástí layout managementu
|
|
190
|
+
sortIndex: null,
|
|
191
|
+
// Pořadí z userFields (lowercase/uppercase)
|
|
192
|
+
__order: userField.order ?? userField.Order ?? defaultIndex
|
|
193
|
+
};
|
|
194
|
+
console.log(`🔍 Column mapping for ${colDef.field}:`, {
|
|
195
|
+
colDefField: colDef.field,
|
|
196
|
+
foundUserField: true,
|
|
197
|
+
userFieldOrder: userField.order ?? userField.Order,
|
|
198
|
+
defaultIndex,
|
|
199
|
+
finalOrder: result.__order,
|
|
200
|
+
userFieldData: userField
|
|
201
|
+
});
|
|
202
|
+
return result;
|
|
203
|
+
})
|
|
204
|
+
.filter(Boolean); // Odfiltrujeme null hodnoty
|
|
205
|
+
// Seřadíme podle pořadí z userFields
|
|
206
|
+
const sortedColumnState = columnStateWithUserFields.sort((a, b) => (a.__order || 0) - (b.__order || 0));
|
|
207
|
+
console.log("🔍 Sorting result:", {
|
|
208
|
+
beforeSort: columnStateWithUserFields.map(c => ({ colId: c.colId, order: c.__order })),
|
|
209
|
+
afterSort: sortedColumnState.map(c => ({ colId: c.colId, order: c.__order }))
|
|
210
|
+
});
|
|
211
|
+
const finalResult = sortedColumnState.map(({ __order, ...columnState }) => columnState);
|
|
212
|
+
console.log("🔍 Final column state:", finalResult.map(c => c.colId));
|
|
213
|
+
return finalResult;
|
|
214
|
+
}, []);
|
|
215
|
+
return {
|
|
216
|
+
// Query hooks
|
|
217
|
+
useUserFields,
|
|
218
|
+
useSingleGrid,
|
|
219
|
+
useUserGrids,
|
|
220
|
+
// Mutation methods
|
|
221
|
+
saveGridLayout,
|
|
222
|
+
// Transform utilities
|
|
223
|
+
transformColumnStateToFields,
|
|
224
|
+
transformFieldsToColumnState,
|
|
225
|
+
// Config
|
|
226
|
+
gridQueryKey,
|
|
227
|
+
baseParams
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
export default useGridLayoutApi;
|
|
231
|
+
//# sourceMappingURL=useGridLayoutApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGridLayoutApi.js","sourceRoot":"","sources":["../useGridLayoutApi.js"],"names":[],"mappings":"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"}
|
package/gridLayout.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grid Layout API konfigurace pro komunikaci s Grid API službou
|
|
3
|
+
* Poskytuje centralizovanou správu personalizovaných nastavení gridů
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Načítá seznam polí pro konkrétní grid s personalizací uživatele
|
|
8
|
+
* POST /api/UserFields
|
|
9
|
+
*
|
|
10
|
+
* Request body: UserFieldsCommand
|
|
11
|
+
* {
|
|
12
|
+
* userKey: Guid,
|
|
13
|
+
* applicationName: string,
|
|
14
|
+
* gridName: string,
|
|
15
|
+
* filterName?: string
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* Response: UserFieldsResponse
|
|
19
|
+
* {
|
|
20
|
+
* success: boolean,
|
|
21
|
+
* data: UserFieldModel[]
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
export const userFieldsApi = {
|
|
25
|
+
url: '/grid_layout_api/Grid/UserFields',
|
|
26
|
+
methodType: "POST",
|
|
27
|
+
version: "1.0",
|
|
28
|
+
compression: true,
|
|
29
|
+
withCredentials: true
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Načítá konkrétní jeden grid pro uživatele
|
|
34
|
+
* POST /api/GetSingleGrid
|
|
35
|
+
*
|
|
36
|
+
* Request body: GetSingleGridCommand
|
|
37
|
+
* {
|
|
38
|
+
* userKey: Guid,
|
|
39
|
+
* applicationName: string,
|
|
40
|
+
* gridName: string,
|
|
41
|
+
* filterName?: string
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* Response: UserFieldsResponse
|
|
45
|
+
* {
|
|
46
|
+
* success: boolean,
|
|
47
|
+
* data: UserFieldModel[]
|
|
48
|
+
* }
|
|
49
|
+
*/
|
|
50
|
+
export const getSingleGridApi = {
|
|
51
|
+
url: '/grid_layout_api/Grid/GetSingleGrid',
|
|
52
|
+
methodType: "POST",
|
|
53
|
+
version: "1.0",
|
|
54
|
+
compression: true,
|
|
55
|
+
withCredentials: true
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Načítá seznam všech gridů uživatele v aplikaci
|
|
60
|
+
* POST /api/GetUserGrids
|
|
61
|
+
*
|
|
62
|
+
* Request body: GetUserGridsCommand
|
|
63
|
+
* {
|
|
64
|
+
* userKey: Guid,
|
|
65
|
+
* applicationName: string
|
|
66
|
+
* }
|
|
67
|
+
*
|
|
68
|
+
* Response: GetUserGridsResponse
|
|
69
|
+
* {
|
|
70
|
+
* success: boolean,
|
|
71
|
+
* data: UserGridSummary[]
|
|
72
|
+
* }
|
|
73
|
+
*/
|
|
74
|
+
export const getUserGridsApi = {
|
|
75
|
+
url: '/grid_layout_api/Grid/GetUserGrids',
|
|
76
|
+
methodType: "POST",
|
|
77
|
+
version: "1.0",
|
|
78
|
+
compression: true,
|
|
79
|
+
withCredentials: true
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Ukládá nebo aktualizuje personalizované nastavení gridu s merge logikou
|
|
84
|
+
* POST /api/SaveUserFields
|
|
85
|
+
*
|
|
86
|
+
* Request body: SaveUserFieldsCommand
|
|
87
|
+
* {
|
|
88
|
+
* userKey: Guid,
|
|
89
|
+
* applicationName: string,
|
|
90
|
+
* gridName: string,
|
|
91
|
+
* filterName?: string,
|
|
92
|
+
* userFields: UserFieldModel[]
|
|
93
|
+
* }
|
|
94
|
+
*
|
|
95
|
+
* Response: SaveUserFieldsResponse
|
|
96
|
+
* {
|
|
97
|
+
* success: boolean,
|
|
98
|
+
* message?: string
|
|
99
|
+
* }
|
|
100
|
+
*/
|
|
101
|
+
export const saveGridLayoutApi = {
|
|
102
|
+
url: '/grid_layout_api/Grid/SaveUserFields',
|
|
103
|
+
methodType: "POST",
|
|
104
|
+
version: "1.0",
|
|
105
|
+
compression: true,
|
|
106
|
+
withCredentials: true
|
|
107
|
+
};
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bit.rhplus/ui.grid-layout",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"componentId": {
|
|
6
|
+
"name": "ui/grid-layout",
|
|
7
|
+
"version": "0.0.1",
|
|
8
|
+
"scope": "remote-scope"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@ant-design/icons": "^5.4.0",
|
|
12
|
+
"@dnd-kit/core": "^6.3.1",
|
|
13
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
14
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
15
|
+
"antd": "^5.20.6",
|
|
16
|
+
"lodash": "^4.17.21",
|
|
17
|
+
"@tanstack/react-query": "^5.66.9",
|
|
18
|
+
"@bit.rhplus/draggable-modal": "0.0.10",
|
|
19
|
+
"@bit.rhplus/data": "0.0.35"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@teambit/react.react-env": "1.0.132"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"react": "^17.0.0 || ^18.0.0"
|
|
26
|
+
},
|
|
27
|
+
"license": "SEE LICENSE IN UNLICENSED",
|
|
28
|
+
"optionalDependencies": {},
|
|
29
|
+
"peerDependenciesMeta": {},
|
|
30
|
+
"private": false,
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"scope": "@bit.rhplus",
|
|
33
|
+
"registry": "https://registry.npmjs.org/"
|
|
34
|
+
}
|
|
35
|
+
}
|
package/types/asset.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
declare module '*.png' {
|
|
2
|
+
const value: any;
|
|
3
|
+
export = value;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.svg' {
|
|
6
|
+
import type { FunctionComponent, SVGProps } from 'react';
|
|
7
|
+
|
|
8
|
+
export const ReactComponent: FunctionComponent<
|
|
9
|
+
SVGProps<SVGSVGElement> & { title?: string }
|
|
10
|
+
>;
|
|
11
|
+
const src: string;
|
|
12
|
+
export default src;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// @TODO Gilad
|
|
16
|
+
declare module '*.jpg' {
|
|
17
|
+
const value: any;
|
|
18
|
+
export = value;
|
|
19
|
+
}
|
|
20
|
+
declare module '*.jpeg' {
|
|
21
|
+
const value: any;
|
|
22
|
+
export = value;
|
|
23
|
+
}
|
|
24
|
+
declare module '*.gif' {
|
|
25
|
+
const value: any;
|
|
26
|
+
export = value;
|
|
27
|
+
}
|
|
28
|
+
declare module '*.bmp' {
|
|
29
|
+
const value: any;
|
|
30
|
+
export = value;
|
|
31
|
+
}
|
|
32
|
+
declare module '*.otf' {
|
|
33
|
+
const value: any;
|
|
34
|
+
export = value;
|
|
35
|
+
}
|
|
36
|
+
declare module '*.woff' {
|
|
37
|
+
const value: any;
|
|
38
|
+
export = value;
|
|
39
|
+
}
|
|
40
|
+
declare module '*.woff2' {
|
|
41
|
+
const value: any;
|
|
42
|
+
export = value;
|
|
43
|
+
}
|
package/types/style.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
declare module '*.module.css' {
|
|
2
|
+
const classes: { readonly [key: string]: string };
|
|
3
|
+
export default classes;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.module.scss' {
|
|
6
|
+
const classes: { readonly [key: string]: string };
|
|
7
|
+
export default classes;
|
|
8
|
+
}
|
|
9
|
+
declare module '*.module.sass' {
|
|
10
|
+
const classes: { readonly [key: string]: string };
|
|
11
|
+
export default classes;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare module '*.module.less' {
|
|
15
|
+
const classes: { readonly [key: string]: string };
|
|
16
|
+
export default classes;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
declare module '*.less' {
|
|
20
|
+
const classes: { readonly [key: string]: string };
|
|
21
|
+
export default classes;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare module '*.css' {
|
|
25
|
+
const classes: { readonly [key: string]: string };
|
|
26
|
+
export default classes;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare module '*.sass' {
|
|
30
|
+
const classes: { readonly [key: string]: string };
|
|
31
|
+
export default classes;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare module '*.scss' {
|
|
35
|
+
const classes: { readonly [key: string]: string };
|
|
36
|
+
export default classes;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
declare module '*.mdx' {
|
|
40
|
+
const component: any;
|
|
41
|
+
export default component;
|
|
42
|
+
}
|