@mui/x-data-grid 9.2.0 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +314 -0
- package/components/GridRow.js +11 -3
- package/components/GridRow.mjs +11 -3
- package/components/GridScrollbarFillerCell.js +1 -1
- package/components/GridScrollbarFillerCell.mjs +1 -1
- package/components/cell/GridActionsCellItem.js +1 -1
- package/components/cell/GridActionsCellItem.mjs +1 -1
- package/components/cell/GridCell.js +1 -1
- package/components/cell/GridCell.mjs +1 -1
- package/components/cell/GridSkeletonCell.d.mts +2 -1
- package/components/cell/GridSkeletonCell.d.ts +2 -1
- package/components/cell/GridSkeletonCell.js +8 -3
- package/components/cell/GridSkeletonCell.mjs +8 -3
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/components/columnHeaders/GridBaseColumnHeaders.mjs +1 -1
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +2 -2
- package/components/columnHeaders/GridGenericColumnHeaderItem.mjs +2 -2
- package/components/containers/GridRoot.js +1 -1
- package/components/containers/GridRoot.mjs +1 -1
- package/components/virtualization/GridBottomContainer.js +1 -1
- package/components/virtualization/GridBottomContainer.mjs +1 -1
- package/components/virtualization/GridMainContainer.js +1 -1
- package/components/virtualization/GridMainContainer.mjs +1 -1
- package/components/virtualization/GridTopContainer.js +1 -1
- package/components/virtualization/GridTopContainer.mjs +1 -1
- package/components/virtualization/GridVirtualScroller.js +3 -11
- package/components/virtualization/GridVirtualScroller.mjs +3 -11
- package/components/virtualization/GridVirtualScrollerFiller.js +1 -1
- package/components/virtualization/GridVirtualScrollerFiller.mjs +1 -1
- package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.mts +17 -1
- package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +17 -1
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.mjs +2 -1
- package/hooks/core/useGridVirtualizer.d.mts +10 -10
- package/hooks/core/useGridVirtualizer.d.ts +10 -10
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.mjs +2 -2
- package/hooks/features/dataSource/models.d.mts +1 -1
- package/hooks/features/dataSource/models.d.ts +1 -1
- package/hooks/features/dataSource/useGridDataSourceBase.d.mts +2 -2
- package/hooks/features/dataSource/useGridDataSourceBase.d.ts +2 -2
- package/hooks/features/dataSource/useGridDataSourceBase.js +29 -17
- package/hooks/features/dataSource/useGridDataSourceBase.mjs +29 -17
- package/hooks/features/dataSource/utils.d.mts +1 -0
- package/hooks/features/dataSource/utils.d.ts +1 -0
- package/hooks/features/dataSource/utils.js +1 -0
- package/hooks/features/dataSource/utils.mjs +1 -0
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.mts +1 -1
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +1 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/locales/svSE.js +116 -129
- package/locales/svSE.mjs +116 -129
- package/models/gridDataSource.d.mts +6 -0
- package/models/gridDataSource.d.ts +6 -0
- package/models/gridRows.d.mts +0 -1
- package/models/gridRows.d.ts +0 -1
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["skipCache", "keepChildrenExpanded"];
|
|
5
|
+
const _excluded = ["skipCache", "keepChildrenExpanded", "showChildrenLoading"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import useLazyRef from '@mui/utils/useLazyRef';
|
|
8
8
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
@@ -57,22 +57,26 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
57
57
|
if (!getRows) {
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
|
-
if (parentId && parentId !== GRID_ROOT_GROUP_ID && props.signature !== 'DataGrid') {
|
|
61
|
-
options.fetchRowChildren?.([parentId]);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
options.clearDataSourceState?.();
|
|
65
60
|
const _ref = params || {},
|
|
66
61
|
{
|
|
67
62
|
skipCache,
|
|
68
|
-
keepChildrenExpanded
|
|
63
|
+
keepChildrenExpanded,
|
|
64
|
+
showChildrenLoading
|
|
69
65
|
} = _ref,
|
|
70
66
|
getRowsParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
71
67
|
const fetchParams = _extends({}, gridGetRowsParamsSelector(apiRef), apiRef.current.unstable_applyPipeProcessors('getRowsParams', {}), getRowsParams);
|
|
68
|
+
if (parentId && parentId !== GRID_ROOT_GROUP_ID && props.signature !== 'DataGrid') {
|
|
69
|
+
options.fetchRowChildren?.([parentId], [fetchParams], showChildrenLoading);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
options.clearDataSourceState?.();
|
|
72
73
|
const cacheKeys = cacheChunkManager.getCacheKeys(fetchParams);
|
|
73
74
|
const responses = cacheKeys.map(cacheKey => cache.get(cacheKey));
|
|
74
75
|
if (!skipCache && responses.every(response => response !== undefined)) {
|
|
75
|
-
|
|
76
|
+
// Bump the request id so any cache-miss request still in flight is treated as
|
|
77
|
+
// stale and won't override the cached data we're about to apply.
|
|
78
|
+
lastRequestId.current += 1;
|
|
79
|
+
apiRef.current.applyStrategyProcessor('dataSourceRootRowsUpdate', {
|
|
76
80
|
response: CacheChunkManager.mergeResponses(responses),
|
|
77
81
|
fetchParams,
|
|
78
82
|
options: {
|
|
@@ -80,6 +84,9 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
80
84
|
keepChildrenExpanded
|
|
81
85
|
}
|
|
82
86
|
});
|
|
87
|
+
if (standardRowsUpdateStrategyActive) {
|
|
88
|
+
apiRef.current.setLoading(false);
|
|
89
|
+
}
|
|
83
90
|
return;
|
|
84
91
|
}
|
|
85
92
|
|
|
@@ -94,7 +101,7 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
94
101
|
const cacheResponses = cacheChunkManager.splitResponse(fetchParams, getRowsResponse);
|
|
95
102
|
cacheResponses.forEach((response, key) => cache.set(key, response));
|
|
96
103
|
if (lastRequestId.current === requestId) {
|
|
97
|
-
apiRef.current.applyStrategyProcessor('
|
|
104
|
+
apiRef.current.applyStrategyProcessor('dataSourceRootRowsUpdate', {
|
|
98
105
|
response: getRowsResponse,
|
|
99
106
|
fetchParams,
|
|
100
107
|
options: {
|
|
@@ -105,7 +112,7 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
105
112
|
}
|
|
106
113
|
} catch (originalError) {
|
|
107
114
|
if (lastRequestId.current === requestId) {
|
|
108
|
-
apiRef.current.applyStrategyProcessor('
|
|
115
|
+
apiRef.current.applyStrategyProcessor('dataSourceRootRowsUpdate', {
|
|
109
116
|
error: originalError,
|
|
110
117
|
fetchParams,
|
|
111
118
|
options: {
|
|
@@ -152,9 +159,7 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
152
159
|
return acc;
|
|
153
160
|
}, []);
|
|
154
161
|
if (expandedGroupIds.length > 0) {
|
|
155
|
-
fetchRowChildrenOption(expandedGroupIds,
|
|
156
|
-
showChildrenLoading: false
|
|
157
|
-
});
|
|
162
|
+
fetchRowChildrenOption(expandedGroupIds, [], false);
|
|
158
163
|
}
|
|
159
164
|
};
|
|
160
165
|
const fetchParams = _extends({}, gridGetRowsParamsSelector(apiRef), apiRef.current.unstable_applyPipeProcessors('getRowsParams', {}));
|
|
@@ -172,7 +177,7 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
172
177
|
}
|
|
173
178
|
const cacheResponses = cacheChunkManager.splitResponse(fetchParams, response);
|
|
174
179
|
cacheResponses.forEach((cacheResponse, key) => cache.set(key, cacheResponse));
|
|
175
|
-
apiRef.current.applyStrategyProcessor('
|
|
180
|
+
apiRef.current.applyStrategyProcessor('dataSourceRootRowsUpdate', {
|
|
176
181
|
response,
|
|
177
182
|
fetchParams,
|
|
178
183
|
options: {}
|
|
@@ -253,10 +258,17 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
253
258
|
};
|
|
254
259
|
const debouncedFetchRows = React.useMemo(() => debounce(fetchRows, 0), [fetchRows]);
|
|
255
260
|
const handleFetchRowsOnParamsChange = React.useCallback(() => {
|
|
261
|
+
// Clear the rows first and immediately mark the grid as loading so the overlay
|
|
262
|
+
// selector never observes the intermediate `rows=[] && loading=false` state that
|
|
263
|
+
// would otherwise pick `noRowsOverlay`. Order matters: `setRows([])` rebuilds
|
|
264
|
+
// `state.rows` from `props.loading`, so the `setLoading(true)` call must come after
|
|
265
|
+
// it to survive the rebuild. This handler is only wired up when a standard strategy
|
|
266
|
+
// is active via the `runIf` guards on the returned `events` object.
|
|
256
267
|
apiRef.current.setRows([]);
|
|
268
|
+
apiRef.current.setLoading(true);
|
|
257
269
|
stopPolling();
|
|
258
270
|
debouncedFetchRows();
|
|
259
|
-
}, [stopPolling, debouncedFetchRows
|
|
271
|
+
}, [apiRef, stopPolling, debouncedFetchRows]);
|
|
260
272
|
const isFirstRender = React.useRef(true);
|
|
261
273
|
React.useEffect(() => {
|
|
262
274
|
if (isFirstRender.current) {
|
|
@@ -283,7 +295,7 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
283
295
|
React.useEffect(() => {
|
|
284
296
|
// Return early if the proper strategy isn't set yet
|
|
285
297
|
// Context: https://github.com/mui/mui-x/issues/19650
|
|
286
|
-
if (currentStrategy !== DataSourceRowsUpdateStrategy.Default && currentStrategy !== DataSourceRowsUpdateStrategy.LazyLoading && currentStrategy !== DataSourceRowsUpdateStrategy.GroupedData) {
|
|
298
|
+
if (currentStrategy !== DataSourceRowsUpdateStrategy.Default && currentStrategy !== DataSourceRowsUpdateStrategy.LazyLoading && currentStrategy !== DataSourceRowsUpdateStrategy.GroupedData && currentStrategy !== DataSourceRowsUpdateStrategy.LazyLoadedGroupedData) {
|
|
287
299
|
return undefined;
|
|
288
300
|
}
|
|
289
301
|
if (props.dataSource) {
|
|
@@ -304,7 +316,7 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
|
|
|
304
316
|
debouncedFetchRows,
|
|
305
317
|
strategyProcessor: {
|
|
306
318
|
strategyName: DataSourceRowsUpdateStrategy.Default,
|
|
307
|
-
group: '
|
|
319
|
+
group: 'dataSourceRootRowsUpdate',
|
|
308
320
|
processor: handleDataUpdate
|
|
309
321
|
},
|
|
310
322
|
setStrategyAvailability,
|
|
@@ -10,6 +10,7 @@ let DataSourceRowsUpdateStrategy = exports.DataSourceRowsUpdateStrategy = /*#__P
|
|
|
10
10
|
DataSourceRowsUpdateStrategy["Default"] = "set-flat-rows";
|
|
11
11
|
DataSourceRowsUpdateStrategy["LazyLoading"] = "replace-row-range";
|
|
12
12
|
DataSourceRowsUpdateStrategy["GroupedData"] = "set-grouped-rows";
|
|
13
|
+
DataSourceRowsUpdateStrategy["LazyLoadedGroupedData"] = "replace-grouped-row-range";
|
|
13
14
|
return DataSourceRowsUpdateStrategy;
|
|
14
15
|
}({});
|
|
15
16
|
/**
|
|
@@ -3,6 +3,7 @@ export let DataSourceRowsUpdateStrategy = /*#__PURE__*/function (DataSourceRowsU
|
|
|
3
3
|
DataSourceRowsUpdateStrategy["Default"] = "set-flat-rows";
|
|
4
4
|
DataSourceRowsUpdateStrategy["LazyLoading"] = "replace-row-range";
|
|
5
5
|
DataSourceRowsUpdateStrategy["GroupedData"] = "set-grouped-rows";
|
|
6
|
+
DataSourceRowsUpdateStrategy["LazyLoadedGroupedData"] = "replace-grouped-row-range";
|
|
6
7
|
return DataSourceRowsUpdateStrategy;
|
|
7
8
|
}({});
|
|
8
9
|
|
|
@@ -42,7 +42,7 @@ export declare const gridVirtualizationLayoutModeSelector: (args_0: import("reac
|
|
|
42
42
|
*/
|
|
43
43
|
export declare const gridRenderContextSelector: (args_0: import("react").RefObject<{
|
|
44
44
|
state: GridStateCommunity;
|
|
45
|
-
} | null>) => import("@mui/x-virtualizer
|
|
45
|
+
} | null>) => import("@mui/x-virtualizer").RenderContext;
|
|
46
46
|
/**
|
|
47
47
|
* Get the render context, with only columns filled in.
|
|
48
48
|
* This is cached, so it can be used to only re-render when the column interval changes.
|
|
@@ -42,7 +42,7 @@ export declare const gridVirtualizationLayoutModeSelector: (args_0: import("reac
|
|
|
42
42
|
*/
|
|
43
43
|
export declare const gridRenderContextSelector: (args_0: import("react").RefObject<{
|
|
44
44
|
state: GridStateCommunity;
|
|
45
|
-
} | null>) => import("@mui/x-virtualizer
|
|
45
|
+
} | null>) => import("@mui/x-virtualizer").RenderContext;
|
|
46
46
|
/**
|
|
47
47
|
* Get the render context, with only columns filled in.
|
|
48
48
|
* This is cached, so it can be used to only re-render when the column interval changes.
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/locales/svSE.js
CHANGED
|
@@ -11,8 +11,7 @@ const svSEGrid = {
|
|
|
11
11
|
noResultsOverlayLabel: 'Inga resultat funna.',
|
|
12
12
|
noColumnsOverlayLabel: 'Inga kolumner',
|
|
13
13
|
noColumnsOverlayManageColumns: 'Hantera kolumner',
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
emptyPivotOverlayLabel: 'Lägg till fält i rader, kolumner och värden för att skapa en pivottabell',
|
|
16
15
|
// Density selector toolbar button text
|
|
17
16
|
toolbarDensity: 'Densitet',
|
|
18
17
|
toolbarDensityLabel: 'Densitet',
|
|
@@ -42,21 +41,17 @@ const svSEGrid = {
|
|
|
42
41
|
toolbarExportPrint: 'Skriv ut',
|
|
43
42
|
toolbarExportExcel: 'Ladda ner som Excel',
|
|
44
43
|
// Toolbar pivot button
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
toolbarPivot: 'Pivot',
|
|
47
45
|
// Toolbar charts button
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
toolbarCharts: 'Diagram',
|
|
50
47
|
// Toolbar AI Assistant button
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
toolbarAssistant: 'AI assistent',
|
|
53
49
|
// Columns management text
|
|
54
50
|
columnsManagementSearchTitle: 'Sök',
|
|
55
51
|
columnsManagementNoColumns: 'Inga kolumner',
|
|
56
52
|
columnsManagementShowHideAllText: 'Visa/Dölj alla',
|
|
57
53
|
columnsManagementReset: 'Återställ',
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
columnsManagementDeleteIconLabel: 'Rensa',
|
|
60
55
|
// Filter panel text
|
|
61
56
|
filterPanelAddFilter: 'Lägg till filter',
|
|
62
57
|
filterPanelRemoveAll: 'Ta bort alla',
|
|
@@ -112,15 +107,14 @@ const svSEGrid = {
|
|
|
112
107
|
'headerFilterOperator>=': 'Större eller lika med',
|
|
113
108
|
'headerFilterOperator<': 'Mindre än',
|
|
114
109
|
'headerFilterOperator<=': 'Mindre eller lika med',
|
|
115
|
-
|
|
116
|
-
|
|
110
|
+
headerFilterClear: 'Rensa filter',
|
|
117
111
|
// Filter values text
|
|
118
112
|
filterValueAny: 'något',
|
|
119
113
|
filterValueTrue: 'sant',
|
|
120
114
|
filterValueFalse: 'falskt',
|
|
121
115
|
// Column menu text
|
|
122
116
|
columnMenuLabel: 'Meny',
|
|
123
|
-
|
|
117
|
+
columnMenuAriaLabel: columnName => `${columnName} kolumnmeny`,
|
|
124
118
|
columnMenuShowColumns: 'Visa kolumner',
|
|
125
119
|
columnMenuManageColumns: 'Hantera kolumner',
|
|
126
120
|
columnMenuFilter: 'Filtrera',
|
|
@@ -128,9 +122,8 @@ const svSEGrid = {
|
|
|
128
122
|
columnMenuUnsort: 'Ta bort sortering',
|
|
129
123
|
columnMenuSortAsc: 'Sortera stigande',
|
|
130
124
|
columnMenuSortDesc: 'Sortera fallande',
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
125
|
+
columnMenuManagePivot: 'Hantera pivot',
|
|
126
|
+
columnMenuManageCharts: 'Hantera diagram',
|
|
134
127
|
// Column header text
|
|
135
128
|
columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktiva filter` : `${count} aktivt filter`,
|
|
136
129
|
columnHeaderFiltersLabel: 'Visa filter',
|
|
@@ -173,19 +166,19 @@ const svSEGrid = {
|
|
|
173
166
|
collapseDetailPanel: 'Kollapsa',
|
|
174
167
|
// Pagination
|
|
175
168
|
paginationRowsPerPage: 'Rader per sida:',
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
169
|
+
paginationDisplayedRows: ({
|
|
170
|
+
from,
|
|
171
|
+
to,
|
|
172
|
+
count,
|
|
173
|
+
estimated
|
|
174
|
+
}) => {
|
|
175
|
+
const unknownRowCount = count == null || count === -1;
|
|
176
|
+
if (!estimated) {
|
|
177
|
+
return `${from}–${to} av ${!unknownRowCount ? count : `fler än ${to}`}`;
|
|
178
|
+
}
|
|
179
|
+
const estimatedLabel = estimated && estimated > to ? `ungefär ${estimated}` : `fler än ${to}`;
|
|
180
|
+
return `${from}–${to} av ${!unknownRowCount ? count : estimatedLabel}`;
|
|
181
|
+
},
|
|
189
182
|
paginationItemAriaLabel: type => {
|
|
190
183
|
if (type === 'first') {
|
|
191
184
|
return 'Gå till första sidan';
|
|
@@ -203,115 +196,109 @@ const svSEGrid = {
|
|
|
203
196
|
rowReorderingHeaderName: 'Ordna om rader',
|
|
204
197
|
// Aggregation
|
|
205
198
|
aggregationMenuItemHeader: 'Aggregering',
|
|
206
|
-
|
|
199
|
+
aggregationFunctionLabelNone: 'ingen',
|
|
207
200
|
aggregationFunctionLabelSum: 'summa',
|
|
208
201
|
aggregationFunctionLabelAvg: 'medel',
|
|
209
202
|
aggregationFunctionLabelMin: 'min',
|
|
210
203
|
aggregationFunctionLabelMax: 'max',
|
|
211
|
-
aggregationFunctionLabelSize: 'antal'
|
|
212
|
-
|
|
204
|
+
aggregationFunctionLabelSize: 'antal',
|
|
213
205
|
// Pivot panel
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
206
|
+
pivotToggleLabel: 'Pivot',
|
|
207
|
+
pivotRows: 'Rader',
|
|
208
|
+
pivotColumns: 'Kolumner',
|
|
209
|
+
pivotValues: 'Värden',
|
|
210
|
+
pivotCloseButton: 'Stäng pivotinställningar',
|
|
211
|
+
pivotSearchButton: 'Sökfält',
|
|
212
|
+
pivotSearchControlPlaceholder: 'Sökfält',
|
|
213
|
+
pivotSearchControlLabel: 'Sökfält',
|
|
214
|
+
pivotSearchControlClear: 'Rensa sökfält',
|
|
215
|
+
pivotNoFields: 'Inga fält',
|
|
216
|
+
pivotMenuMoveUp: 'Flytta upp',
|
|
217
|
+
pivotMenuMoveDown: 'Flytta ned',
|
|
218
|
+
pivotMenuMoveToTop: 'Flytta till toppen',
|
|
219
|
+
pivotMenuMoveToBottom: 'Flytta till botten',
|
|
220
|
+
pivotMenuRows: 'Rader',
|
|
221
|
+
pivotMenuColumns: 'Kolumner',
|
|
222
|
+
pivotMenuValues: 'Värden',
|
|
223
|
+
pivotMenuOptions: 'Fältalternativ',
|
|
224
|
+
pivotMenuAddToRows: 'Lägg till i rader',
|
|
225
|
+
pivotMenuAddToColumns: 'Lägg till i kolumner',
|
|
226
|
+
pivotMenuAddToValues: 'Lägg till i värden',
|
|
227
|
+
pivotMenuRemove: 'Ta bort',
|
|
228
|
+
pivotDragToRows: 'Dra hit för att skapa rader',
|
|
229
|
+
pivotDragToColumns: 'Dra hit för att skapa kolumner',
|
|
230
|
+
pivotDragToValues: 'Dra hit för att skapa värden',
|
|
231
|
+
pivotYearColumnHeaderName: '(År)',
|
|
232
|
+
pivotQuarterColumnHeaderName: '(Kvartal)',
|
|
242
233
|
// Charts configuration panel
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
234
|
+
chartsNoCharts: 'Det finns inga diagram tillgängliga',
|
|
235
|
+
chartsChartNotSelected: 'Välj en diagramtyp för att konfigurera alternativ',
|
|
236
|
+
chartsTabChart: 'Diagram',
|
|
237
|
+
chartsTabFields: 'Fält',
|
|
238
|
+
chartsTabCustomize: 'Anpassa',
|
|
239
|
+
chartsCloseButton: 'Stäng diagramkonfiguration',
|
|
240
|
+
chartsSyncButtonLabel: 'Synkronisera diagram',
|
|
241
|
+
chartsSearchPlaceholder: 'Sök fält',
|
|
242
|
+
chartsSearchLabel: 'Sök fält',
|
|
243
|
+
chartsSearchClear: 'Rensa sökning',
|
|
244
|
+
chartsNoFields: 'Inga fält',
|
|
245
|
+
chartsFieldBlocked: 'Det här fältet kan inte läggas till i någon sektion',
|
|
246
|
+
chartsCategories: 'Kategorier',
|
|
247
|
+
chartsSeries: 'Serie',
|
|
248
|
+
chartsMenuAddToDimensions: dimensionLabel => `Lägg till ${dimensionLabel}`,
|
|
249
|
+
chartsMenuAddToValues: valuesLabel => `Lägg till ${valuesLabel}`,
|
|
250
|
+
chartsMenuMoveUp: 'Flytta upp',
|
|
251
|
+
chartsMenuMoveDown: 'Flytta ned',
|
|
252
|
+
chartsMenuMoveToTop: 'Flytta till toppen',
|
|
253
|
+
chartsMenuMoveToBottom: 'Flytta till botten',
|
|
254
|
+
chartsMenuOptions: 'Fältalternativ',
|
|
255
|
+
chartsMenuRemove: 'Ta bort',
|
|
256
|
+
chartsDragToDimensions: dimensionLabel => `Dra hit för att använda kolumnen som ${dimensionLabel}`,
|
|
257
|
+
chartsDragToValues: valuesLabel => `Dra hit för att använda kolumnen som ${valuesLabel}`,
|
|
268
258
|
// AI Assistant panel
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
259
|
+
aiAssistantPanelTitle: 'AI assistent',
|
|
260
|
+
aiAssistantPanelClose: 'Stäng AI assistent',
|
|
261
|
+
aiAssistantPanelNewConversation: 'Ny konversation',
|
|
262
|
+
aiAssistantPanelConversationHistory: 'Konversationshistorik',
|
|
263
|
+
aiAssistantPanelEmptyConversation: 'Ingen prompthistorik',
|
|
264
|
+
aiAssistantSuggestions: 'Förslag',
|
|
276
265
|
// Prompt field
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
266
|
+
promptFieldLabel: 'Prompt',
|
|
267
|
+
promptFieldPlaceholder: 'Skriv en prompt…',
|
|
268
|
+
promptFieldPlaceholderWithRecording: 'Skriv eller spela in en prompt…',
|
|
269
|
+
promptFieldPlaceholderListening: 'Lyssnar efter prompt…',
|
|
270
|
+
promptFieldSpeechRecognitionNotSupported: 'Taligenkänning stöds inte av webbläsaren',
|
|
271
|
+
promptFieldSend: 'Skicka',
|
|
272
|
+
promptFieldRecord: 'Spela in',
|
|
273
|
+
promptFieldStopRecording: 'Stoppa inspelning',
|
|
286
274
|
// Prompt
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
275
|
+
promptRerun: 'Kör igen',
|
|
276
|
+
promptProcessing: 'Bearbetar…',
|
|
277
|
+
promptAppliedChanges: 'Tillämpade ändringar',
|
|
291
278
|
// Prompt changes
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
279
|
+
promptChangeGroupDescription: column => `Gruppera efter ${column}`,
|
|
280
|
+
promptChangeAggregationLabel: (column, aggregation) => `${column} (${aggregation})`,
|
|
281
|
+
promptChangeAggregationDescription: (column, aggregation) => `Aggregering ${column} (${aggregation})`,
|
|
282
|
+
promptChangeFilterLabel: (column, operator, value) => {
|
|
283
|
+
if (operator === 'is any of') {
|
|
284
|
+
return `${column} är någon av: ${value}`;
|
|
285
|
+
}
|
|
286
|
+
return `${column} ${operator} ${value}`;
|
|
287
|
+
},
|
|
288
|
+
promptChangeFilterDescription: (column, operator, value) => {
|
|
289
|
+
if (operator === 'is any of') {
|
|
290
|
+
return `Filtrera där ${column} är någon av: ${value}`;
|
|
291
|
+
}
|
|
292
|
+
return `Filtrera där ${column} ${operator} ${value}`;
|
|
293
|
+
},
|
|
294
|
+
promptChangeSortDescription: (column, direction) => `Sortera på ${column} (${direction})`,
|
|
295
|
+
promptChangePivotEnableLabel: 'Pivot',
|
|
296
|
+
promptChangePivotEnableDescription: 'Aktivera pivot',
|
|
297
|
+
promptChangePivotColumnsLabel: count => `Kolumner (${count})`,
|
|
298
|
+
promptChangePivotColumnsDescription: (column, direction) => `${column}${direction ? ` (${direction})` : ''}`,
|
|
299
|
+
promptChangePivotRowsLabel: count => `Rader (${count})`,
|
|
300
|
+
promptChangePivotValuesLabel: count => `Värden (${count})`,
|
|
301
|
+
promptChangePivotValuesDescription: (column, aggregation) => `${column} (${aggregation})`,
|
|
302
|
+
promptChangeChartsLabel: (dimensionsCount, valuesCount) => `Dimensioner (${dimensionsCount}), Värden (${valuesCount})`
|
|
316
303
|
};
|
|
317
304
|
const svSE = exports.svSE = (0, _getGridLocalization.getGridLocalization)(svSEGrid);
|