@olenbetong/appframe-ds 1.2.0 → 1.3.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.
Files changed (177) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.json +7 -7
  3. package/scripts/copyAssets.mjs +27 -27
  4. package/src/AfLookup/Lookup.css +129 -129
  5. package/src/AfLookup/Lookup.tsx +184 -184
  6. package/src/AfLookup/LookupCombobox.css +78 -78
  7. package/src/AfLookup/LookupCombobox.tsx +237 -237
  8. package/src/AfLookup/LookupEdit.tsx +130 -130
  9. package/src/AfLookup/LookupGrid.tsx +124 -124
  10. package/src/AfLookup/index.ts +5 -5
  11. package/src/autocomplete/Autocomplete.css +256 -256
  12. package/src/autocomplete/Autocomplete.tsx +320 -320
  13. package/src/autocomplete/AutocompleteFrame.tsx +168 -168
  14. package/src/autocomplete/Combobox.tsx +286 -286
  15. package/src/autocomplete/index.ts +4 -4
  16. package/src/autocomplete/types.ts +204 -204
  17. package/src/autocomplete/utils.ts +183 -183
  18. package/src/binding/BoundNumericTextField.tsx +102 -102
  19. package/src/binding/BoundTextField.tsx +49 -49
  20. package/src/binding/CancelButton.tsx +30 -30
  21. package/src/binding/CancelIconButton.tsx +30 -30
  22. package/src/binding/DataEditToolbar.css +23 -0
  23. package/src/binding/DataEditToolbar.tsx +84 -92
  24. package/src/binding/DeleteButton.tsx +35 -35
  25. package/src/binding/DeleteIconButton.tsx +35 -35
  26. package/src/binding/RefreshButton.tsx +31 -31
  27. package/src/binding/RefreshIconButton.tsx +33 -33
  28. package/src/binding/RefreshRowIconButton.tsx +33 -33
  29. package/src/binding/SaveButton.tsx +37 -37
  30. package/src/binding/SaveIconButton.tsx +38 -38
  31. package/src/container/Container.tsx +49 -49
  32. package/src/container/index.ts +1 -1
  33. package/src/cutoff/CutOffPicker.css +12 -12
  34. package/src/cutoff/CutOffPicker.tsx +165 -165
  35. package/src/cutoff/context.tsx +194 -194
  36. package/src/cutoff/dsCutOffDates.ts +21 -21
  37. package/src/cutoff/index.ts +4 -4
  38. package/src/cutoff/utils.test.ts +59 -59
  39. package/src/cutoff/utils.ts +276 -276
  40. package/src/filter/ChipListInput.tsx +79 -79
  41. package/src/filter/FieldFilterPanel.css +150 -150
  42. package/src/filter/FieldFilterPanel.tsx +309 -309
  43. package/src/filter/FilterBuilder.css +152 -152
  44. package/src/filter/FilterBuilder.test.tsx +153 -153
  45. package/src/filter/FilterBuilder.tsx +435 -435
  46. package/src/filter/FilterEditor.css +231 -231
  47. package/src/filter/FilterEditor.test.tsx +259 -259
  48. package/src/filter/FilterEditor.tsx +75 -75
  49. package/src/filter/FilterGroupEditor.tsx +160 -160
  50. package/src/filter/FilterNameDialog.css +22 -22
  51. package/src/filter/FilterNameDialog.tsx +81 -81
  52. package/src/filter/FilterRow.tsx +117 -117
  53. package/src/filter/FilterShareDialog.css +28 -28
  54. package/src/filter/FilterShareDialog.tsx +201 -201
  55. package/src/filter/FilterStringField.tsx +78 -78
  56. package/src/filter/FilterValueEditor.tsx +220 -220
  57. package/src/filter/SavedFilterTree.css +107 -107
  58. package/src/filter/SavedFilterTree.test.tsx +94 -94
  59. package/src/filter/SavedFilterTree.tsx +218 -218
  60. package/src/filter/fieldFilter.test.ts +158 -158
  61. package/src/filter/fieldFilter.ts +139 -139
  62. package/src/filter/index.ts +27 -27
  63. package/src/filter/types.ts +38 -38
  64. package/src/filter/useDistinctValues.test.ts +102 -102
  65. package/src/filter/useDistinctValues.ts +230 -230
  66. package/src/global.d.ts +11 -11
  67. package/src/grid/AfGridColumnsPanel.tsx +118 -118
  68. package/src/grid/AfGridContext.tsx +51 -51
  69. package/src/grid/AfGridError.tsx +46 -46
  70. package/src/grid/AfHeaderFilterCell.tsx +147 -147
  71. package/src/grid/AfHeaderFilterPanel.tsx +111 -111
  72. package/src/grid/GridEditLookup.css +12 -12
  73. package/src/grid/GridEditLookup.tsx +121 -121
  74. package/src/grid/Toolbar.tsx +233 -233
  75. package/src/grid/editing.ts +100 -100
  76. package/src/grid/filter.ts +78 -78
  77. package/src/grid/formatters.ts +48 -48
  78. package/src/grid/index.css +245 -245
  79. package/src/grid/index.tsx +503 -489
  80. package/src/grid/license.ts +48 -48
  81. package/src/grid/localization.ts +369 -369
  82. package/src/grid/slots/index.tsx +307 -307
  83. package/src/grid/slots/slots.css +64 -64
  84. package/src/grid/theme.tsx +138 -138
  85. package/src/grid/useAfColumns.tsx +371 -371
  86. package/src/grid/useAfCurrentIndex.ts +63 -63
  87. package/src/grid/useAfData.ts +20 -20
  88. package/src/grid/useAfFilter.ts +160 -160
  89. package/src/grid/useAfFilterFields.ts +55 -55
  90. package/src/grid/useAfGridApi.ts +71 -71
  91. package/src/grid/useAfKeyBindings.ts +36 -36
  92. package/src/grid/useAfNewItemRow.ts +258 -258
  93. package/src/grid/useAfPagination.ts +53 -53
  94. package/src/grid/useAfPersistedState.ts +230 -230
  95. package/src/grid/useAfRowEditModel.ts +145 -145
  96. package/src/grid/useAfRowGrouping.ts +47 -47
  97. package/src/grid/useAfServerAggregation.test.ts +68 -0
  98. package/src/grid/useAfServerAggregation.ts +158 -145
  99. package/src/grid/useAfSortModel.ts +84 -84
  100. package/src/i18n.ts +13 -13
  101. package/src/index.ts +14 -14
  102. package/src/input/InputAdornments.css +84 -75
  103. package/src/input/InputAdornments.tsx +102 -102
  104. package/src/input/index.ts +1 -1
  105. package/src/layout/AppMenu.tsx +74 -74
  106. package/src/layout/AppMenuDrawer.css +70 -70
  107. package/src/layout/AppMenuDrawer.tsx +122 -122
  108. package/src/layout/ErrorBoundary.tsx +162 -162
  109. package/src/layout/PageContainer.css +21 -2
  110. package/src/layout/PageContainer.tsx +18 -2
  111. package/src/layout/ResponsiveDialog.css +86 -86
  112. package/src/layout/ResponsiveDialog.tsx +55 -55
  113. package/src/layout/index.tsx +69 -69
  114. package/src/link/Link.tsx +23 -23
  115. package/src/link/index.ts +1 -1
  116. package/src/mdi/Mdi.css +138 -138
  117. package/src/mdi/Mdi.test.tsx +91 -91
  118. package/src/mdi/Mdi.tsx +141 -141
  119. package/src/mdi/MdiConfirmCloseDialog.tsx +47 -47
  120. package/src/mdi/MdiContext.tsx +59 -59
  121. package/src/mdi/MdiDocumentContext.tsx +60 -60
  122. package/src/mdi/MdiPanel.tsx +61 -61
  123. package/src/mdi/MdiRestore.test.tsx +86 -86
  124. package/src/mdi/MdiTab.tsx +30 -30
  125. package/src/mdi/controller.test.ts +382 -382
  126. package/src/mdi/controller.ts +656 -656
  127. package/src/mdi/dockviewHost.ts +132 -132
  128. package/src/mdi/fakeHost.ts +200 -200
  129. package/src/mdi/host.ts +44 -44
  130. package/src/mdi/ids.test.ts +20 -20
  131. package/src/mdi/ids.ts +18 -18
  132. package/src/mdi/index.ts +31 -31
  133. package/src/mdi/layoutRestore.test.ts +156 -156
  134. package/src/mdi/layoutRestore.ts +311 -311
  135. package/src/mdi/layoutSpec.test.ts +143 -143
  136. package/src/mdi/layoutSpec.ts +214 -214
  137. package/src/mdi/layoutStore.test.ts +93 -93
  138. package/src/mdi/layoutStore.ts +99 -99
  139. package/src/mdi/memorySettingsStore.ts +21 -21
  140. package/src/mdi/registry.ts +34 -34
  141. package/src/mdi/testTypes.ts +37 -37
  142. package/src/mdi/theme.ts +22 -22
  143. package/src/mdi/types.ts +214 -214
  144. package/src/page/Page.css +53 -53
  145. package/src/page/PageBlock.css +64 -64
  146. package/src/page/PageBlock.tsx +92 -92
  147. package/src/page/PageHeader.css +88 -88
  148. package/src/page/PageHeader.tsx +115 -115
  149. package/src/page/PageTitle.css +5 -5
  150. package/src/page/PageTitle.tsx +21 -21
  151. package/src/page/index.ts +4 -4
  152. package/src/paper/Paper.tsx +52 -52
  153. package/src/progress/LinearProgress.css +93 -93
  154. package/src/progress/LinearProgress.tsx +104 -104
  155. package/src/progress/index.ts +1 -1
  156. package/src/report-downloader/ReportDownloader.css +67 -67
  157. package/src/report-downloader/components/StatusItem.tsx +87 -87
  158. package/src/report-downloader/components/StatusList.tsx +28 -28
  159. package/src/report-downloader/index.ts +41 -41
  160. package/src/report-downloader/status.tsx +92 -92
  161. package/src/sortable/DropIndicator.css +51 -51
  162. package/src/sortable/DropIndicator.tsx +27 -27
  163. package/src/sortable/SortableItemList.css +21 -21
  164. package/src/sortable/SortableItemList.tsx +264 -264
  165. package/src/sortable/index.ts +8 -8
  166. package/src/sortable/reorderSortOrder.ts +126 -126
  167. package/src/sortable/sortOrder.ts +101 -101
  168. package/src/sortable/types.ts +9 -9
  169. package/src/sortable/useSortableContainer.ts +53 -53
  170. package/src/sortable/useSortableItem.ts +95 -95
  171. package/src/sortable/useSortableList.ts +117 -117
  172. package/src/test/happy-dom-document-class.ts +24 -24
  173. package/src/test/setup.ts +12 -12
  174. package/src/theme/useDsColorScheme.ts +53 -53
  175. package/tsconfig.build.json +9 -9
  176. package/tsconfig.json +8 -8
  177. package/vitest.config.ts +10 -10
@@ -1,369 +1,369 @@
1
- import type { GridLocaleText } from "@mui/x-data-grid-premium";
2
- import { getLocalizedString, localize } from "../i18n.js";
3
-
4
- export type AfGridLocaleTextExt = GridLocaleText & {
5
- filterOperatorNotContains: string;
6
- filterOperatorNotEquals: string;
7
- filterOperatorLike: string;
8
- filterOperatorNotLike: string;
9
- filterOperatorIsNoneOf: string;
10
- headerFilterOperatorNotContains: string;
11
- headerFilterOperatorNotEquals: string;
12
- headerFilterOperatorLike: string;
13
- headerFilterOperatorNotLike: string;
14
- headerFilterOperatorIsNoneOf: string;
15
- };
16
-
17
- export const AF_GRID_LOCALE_TEXT: AfGridLocaleTextExt = {
18
- // Root
19
- noRowsLabel: getLocalizedString("No rows"),
20
- noResultsOverlayLabel: getLocalizedString("No results found."),
21
- noColumnsOverlayLabel: getLocalizedString("No columns"),
22
- noColumnsOverlayManageColumns: getLocalizedString("Manage columns"),
23
- emptyPivotOverlayLabel: getLocalizedString("Add fields to rows, columns, and values to create a pivot table"),
24
-
25
- // Density selector toolbar button text
26
- toolbarDensity: getLocalizedString("Density"),
27
- toolbarDensityLabel: getLocalizedString("Density"),
28
- toolbarDensityCompact: getLocalizedString("Compact"),
29
- toolbarDensityStandard: getLocalizedString("Standard"),
30
- toolbarDensityComfortable: getLocalizedString("Comfortable"),
31
-
32
- // Undo/redo toolbar button text
33
- toolbarUndo: getLocalizedString("Undo"),
34
- toolbarRedo: getLocalizedString("Redo"),
35
-
36
- // Columns selector toolbar button text
37
- toolbarColumns: getLocalizedString("Columns"),
38
- toolbarColumnsLabel: getLocalizedString("Select columns"),
39
-
40
- // Filters toolbar button text
41
- toolbarFilters: getLocalizedString("Filters"),
42
- toolbarFiltersLabel: getLocalizedString("Show filters"),
43
- toolbarFiltersTooltipHide: getLocalizedString("Hide filters"),
44
- toolbarFiltersTooltipShow: getLocalizedString("Show filters"),
45
- toolbarFiltersTooltipActive: (count) =>
46
- count !== 1
47
- ? getLocalizedString(`$count active filters`).replace("$count", String(count))
48
- : getLocalizedString(`$count active filter`).replace("$count", String(count)),
49
-
50
- // Quick filter toolbar field
51
- toolbarQuickFilterPlaceholder: getLocalizedString("Search…"),
52
- toolbarQuickFilterLabel: getLocalizedString("Search"),
53
- toolbarQuickFilterDeleteIconLabel: getLocalizedString("Clear"),
54
-
55
- // Export selector toolbar button text
56
- toolbarExport: getLocalizedString("Export"),
57
- toolbarExportLabel: getLocalizedString("Export"),
58
- toolbarExportCSV: getLocalizedString("Download as CSV"),
59
- toolbarExportPrint: getLocalizedString("Print"),
60
- toolbarExportExcel: getLocalizedString("Download as Excel"),
61
-
62
- // Toolbar pivot button
63
- toolbarPivot: getLocalizedString("Pivot"),
64
-
65
- // Toolbar charts button
66
- toolbarCharts: getLocalizedString("Charts"),
67
-
68
- // Toolbar AI Assistant button
69
- toolbarAssistant: getLocalizedString("AI Assistant"),
70
-
71
- // Columns management text
72
- columnsManagementSearchTitle: getLocalizedString("Search"),
73
- columnsManagementNoColumns: getLocalizedString("No columns"),
74
- columnsManagementShowHideAllText: getLocalizedString("Show/Hide All"),
75
- columnsManagementReset: getLocalizedString("Reset"),
76
- columnsManagementDeleteIconLabel: getLocalizedString("Clear"),
77
-
78
- // Filter panel text
79
- filterPanelAddFilter: getLocalizedString("Add filter"),
80
- filterPanelDeleteIconLabel: getLocalizedString("Delete"),
81
- filterPanelLogicOperator: getLocalizedString("Logic operator"),
82
- filterPanelOperator: getLocalizedString("Operator"),
83
- filterPanelOperatorAnd: getLocalizedString("And"),
84
- filterPanelOperatorOr: getLocalizedString("Or"),
85
- filterPanelColumns: getLocalizedString("Columns"),
86
- filterPanelInputLabel: getLocalizedString("Value"),
87
- filterPanelInputPlaceholder: getLocalizedString("Filter value"),
88
- filterPanelRemoveAll: getLocalizedString("Remove all"),
89
-
90
- // Filter operators text
91
- filterOperatorContains: getLocalizedString("contains"),
92
- filterOperatorDoesNotContain: getLocalizedString("does not contain"),
93
- filterOperatorEquals: getLocalizedString("equals"),
94
- filterOperatorDoesNotEqual: getLocalizedString("does not equal"),
95
- filterOperatorStartsWith: getLocalizedString("starts with"),
96
- filterOperatorEndsWith: getLocalizedString("ends with"),
97
- filterOperatorIs: getLocalizedString("is"),
98
- filterOperatorNot: getLocalizedString("is not"),
99
- filterOperatorAfter: getLocalizedString("is after"),
100
- filterOperatorOnOrAfter: getLocalizedString("is on or after"),
101
- filterOperatorBefore: getLocalizedString("is before"),
102
- filterOperatorOnOrBefore: getLocalizedString("is on or before"),
103
- filterOperatorIsEmpty: getLocalizedString("is empty"),
104
- filterOperatorIsNotEmpty: getLocalizedString("is not empty"),
105
- filterOperatorIsAnyOf: getLocalizedString("is any of"),
106
- "filterOperator=": "=",
107
- "filterOperator!=": "!=",
108
- "filterOperator>": ">",
109
- "filterOperator>=": ">=",
110
- "filterOperator<": "<",
111
- "filterOperator<=": "<=",
112
-
113
- // Header filter operators text
114
- headerFilterOperatorContains: getLocalizedString("Contains"),
115
- headerFilterOperatorDoesNotContain: getLocalizedString("Does not contain"),
116
- headerFilterOperatorEquals: getLocalizedString("Equals"),
117
- headerFilterOperatorDoesNotEqual: getLocalizedString("Does not equal"),
118
- headerFilterOperatorStartsWith: getLocalizedString("Starts with"),
119
- headerFilterOperatorEndsWith: getLocalizedString("Ends with"),
120
- headerFilterOperatorIs: getLocalizedString("Is"),
121
- headerFilterOperatorNot: getLocalizedString("Is not"),
122
- headerFilterOperatorAfter: getLocalizedString("Is after"),
123
- headerFilterOperatorOnOrAfter: getLocalizedString("Is on or after"),
124
- headerFilterOperatorBefore: getLocalizedString("Is before"),
125
- headerFilterOperatorOnOrBefore: getLocalizedString("Is on or before"),
126
- headerFilterOperatorIsEmpty: getLocalizedString("Is empty"),
127
- headerFilterOperatorIsNotEmpty: getLocalizedString("Is not empty"),
128
- headerFilterOperatorIsAnyOf: getLocalizedString("Is any of"),
129
- "headerFilterOperator=": getLocalizedString("Equals"),
130
- "headerFilterOperator!=": getLocalizedString("Not equals"),
131
- "headerFilterOperator>": getLocalizedString("greater than"),
132
- "headerFilterOperator>=": getLocalizedString("greater than or equal to"),
133
- "headerFilterOperator<": getLocalizedString("less than"),
134
- "headerFilterOperator<=": getLocalizedString("less than or equal to"),
135
- headerFilterClear: getLocalizedString("Clear filter"),
136
-
137
- // Filter values text
138
- filterValueAny: getLocalizedString("any"),
139
- filterValueTrue: getLocalizedString("true"),
140
- filterValueFalse: getLocalizedString("false"),
141
-
142
- // Column menu text
143
- columnMenuLabel: getLocalizedString("Menu"),
144
- columnMenuAriaLabel: (columnName: string) => localize`${columnName} column menu`,
145
- columnMenuShowColumns: getLocalizedString("Show columns"),
146
- columnMenuFilter: getLocalizedString("Filter"),
147
- columnMenuHideColumn: getLocalizedString("Hide"),
148
- columnMenuUnsort: getLocalizedString("Unsort"),
149
- columnMenuSortAsc: getLocalizedString("Sort by ASC"),
150
- columnMenuSortDesc: getLocalizedString("Sort by DESC"),
151
- columnMenuManageColumns: getLocalizedString("Manage columns"),
152
- columnMenuManagePivot: getLocalizedString("Manage pivot"),
153
- columnMenuManageCharts: getLocalizedString("Manage charts"),
154
-
155
- // Column header text
156
- columnHeaderFiltersTooltipActive: (count) =>
157
- count !== 1
158
- ? getLocalizedString(`$count active filters`).replace("$count", String(count))
159
- : getLocalizedString(`$count active filter`).replace("$count", String(count)),
160
- columnHeaderFiltersLabel: getLocalizedString("Show filters"),
161
- columnHeaderSortIconLabel: getLocalizedString("Sort"),
162
-
163
- // Rows selected footer text
164
- footerRowSelected: (count) =>
165
- count !== 1
166
- ? getLocalizedString(`$count rows selected`).replace("$count", count.toLocaleString())
167
- : getLocalizedString(`$count row selected`).replace("$count", count.toLocaleString()),
168
-
169
- // Total row amount footer text
170
- footerTotalRows: getLocalizedString("Total Rows:"),
171
-
172
- // Total visible row amount footer text
173
- footerTotalVisibleRows: (visibleCount, totalCount) =>
174
- getLocalizedString(`$count of $total`)
175
- .replace("$count", visibleCount.toLocaleString())
176
- .replace("$total", totalCount.toLocaleString()),
177
-
178
- // Checkbox selection text
179
- checkboxSelectionHeaderName: getLocalizedString("Checkbox selection"),
180
- checkboxSelectionSelectAllRows: getLocalizedString("Select all rows"),
181
- checkboxSelectionUnselectAllRows: getLocalizedString("Unselect all rows"),
182
- checkboxSelectionSelectRow: getLocalizedString("Select row"),
183
- checkboxSelectionUnselectRow: getLocalizedString("Unselect row"),
184
-
185
- // Boolean cell text
186
- booleanCellTrueLabel: getLocalizedString("yes"),
187
- booleanCellFalseLabel: getLocalizedString("no"),
188
-
189
- // Long text cell
190
- longTextCellExpandLabel: getLocalizedString("Expand"),
191
- longTextCellCollapseLabel: getLocalizedString("Collapse"),
192
-
193
- // Actions cell more text
194
- actionsCellMore: getLocalizedString("more"),
195
-
196
- // Column pinning text
197
- pinToLeft: getLocalizedString("Pin to left"),
198
- pinToRight: getLocalizedString("Pin to right"),
199
- unpin: getLocalizedString("Unpin"),
200
-
201
- // Tree Data
202
- treeDataGroupingHeaderName: getLocalizedString("Group"),
203
- treeDataExpand: getLocalizedString("see children"),
204
- treeDataCollapse: getLocalizedString("hide children"),
205
-
206
- // Grouping columns
207
- groupingColumnHeaderName: getLocalizedString("Group"),
208
- groupColumn: (name) => getLocalizedString("Group by $name").replace("$name", name),
209
- unGroupColumn: (name) => getLocalizedString("Stop grouping by $name").replace("$name", name),
210
-
211
- // Master/detail
212
- detailPanelToggle: getLocalizedString("Detail panel toggle"),
213
- expandDetailPanel: getLocalizedString("Expand"),
214
- collapseDetailPanel: getLocalizedString("Collapse"),
215
-
216
- // Pagination
217
- paginationRowsPerPage: getLocalizedString("Rows per page:"),
218
- paginationDisplayedRows: ({ from, to, count, estimated }) => {
219
- if (!estimated) {
220
- return localize`${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
221
- }
222
- const estimatedLabel = estimated && estimated > to ? localize`around ${estimated}` : `more than ${to}`;
223
- return localize`${from}–${to} of ${count !== -1 ? count : estimatedLabel}`;
224
- },
225
- paginationItemAriaLabel: (type) => {
226
- if (type === "first") {
227
- return getLocalizedString("Go to first page");
228
- }
229
- if (type === "last") {
230
- return getLocalizedString("Go to last page");
231
- }
232
- if (type === "next") {
233
- return getLocalizedString("Go to next page");
234
- }
235
- // if (type === 'previous') {
236
- return getLocalizedString("Go to previous page");
237
- },
238
-
239
- // Row reordering text
240
- rowReorderingHeaderName: getLocalizedString("Row reordering"),
241
-
242
- // Aggregation
243
- aggregationMenuItemHeader: getLocalizedString("Aggregation"),
244
- aggregationFunctionLabelNone: getLocalizedString("none"),
245
- aggregationFunctionLabelSum: getLocalizedString("sum"),
246
- aggregationFunctionLabelAvg: getLocalizedString("avg"),
247
- aggregationFunctionLabelMin: getLocalizedString("min"),
248
- aggregationFunctionLabelMax: getLocalizedString("max"),
249
- aggregationFunctionLabelSize: getLocalizedString("size"),
250
-
251
- // Pivot panel
252
- pivotToggleLabel: getLocalizedString("Pivot"),
253
- pivotRows: getLocalizedString("Rows"),
254
- pivotColumns: getLocalizedString("Columns"),
255
- pivotValues: getLocalizedString("Values"),
256
- pivotCloseButton: getLocalizedString("Close pivot settings"),
257
- pivotSearchButton: getLocalizedString("Search fields"),
258
- pivotSearchControlPlaceholder: getLocalizedString("Search fields"),
259
- pivotSearchControlLabel: getLocalizedString("Search fields"),
260
- pivotSearchControlClear: getLocalizedString("Clear search"),
261
- pivotNoFields: getLocalizedString("No fields"),
262
- pivotMenuMoveUp: getLocalizedString("Move up"),
263
- pivotMenuMoveDown: getLocalizedString("Move down"),
264
- pivotMenuMoveToTop: getLocalizedString("Move to top"),
265
- pivotMenuMoveToBottom: getLocalizedString("Move to bottom"),
266
- pivotMenuRows: getLocalizedString("Rows"),
267
- pivotMenuColumns: getLocalizedString("Columns"),
268
- pivotMenuValues: getLocalizedString("Values"),
269
- pivotMenuOptions: getLocalizedString("Field options"),
270
- pivotMenuAddToRows: getLocalizedString("Add to Rows"),
271
- pivotMenuAddToColumns: getLocalizedString("Add to Columns"),
272
- pivotMenuAddToValues: getLocalizedString("Add to Values"),
273
- pivotMenuRemove: getLocalizedString("Remove"),
274
- pivotDragToRows: getLocalizedString("Drag here to create rows"),
275
- pivotDragToColumns: getLocalizedString("Drag here to create columns"),
276
- pivotDragToValues: getLocalizedString("Drag here to create values"),
277
- pivotYearColumnHeaderName: getLocalizedString("(Year)"),
278
- pivotQuarterColumnHeaderName: getLocalizedString("(Quarter)"),
279
-
280
- // Charts configuration panel
281
- chartsNoCharts: getLocalizedString("There are no charts available"),
282
- chartsChartNotSelected: getLocalizedString("Select a chart type to configure its options"),
283
- chartsTabChart: getLocalizedString("Chart"),
284
- chartsTabFields: getLocalizedString("Fields"),
285
- chartsTabCustomize: getLocalizedString("Customize"),
286
- chartsCloseButton: getLocalizedString("Close charts configuration"),
287
- chartsSyncButtonLabel: getLocalizedString("Sync chart"),
288
- chartsSearchPlaceholder: getLocalizedString("Search fields"),
289
- chartsSearchLabel: getLocalizedString("Search fields"),
290
- chartsSearchClear: getLocalizedString("Clear search"),
291
- chartsNoFields: getLocalizedString("No fields"),
292
- chartsFieldBlocked: getLocalizedString("This field cannot be added to any section"),
293
- chartsCategories: getLocalizedString("Categories"),
294
- chartsSeries: getLocalizedString("Series"),
295
- chartsMenuAddToDimensions: (dimensionLabel: string) => localize`Add to ${dimensionLabel}`,
296
- chartsMenuAddToValues: (valuesLabel: string) => localize`Add to ${valuesLabel}`,
297
- chartsMenuMoveUp: getLocalizedString("Move up"),
298
- chartsMenuMoveDown: getLocalizedString("Move down"),
299
- chartsMenuMoveToTop: getLocalizedString("Move to top"),
300
- chartsMenuMoveToBottom: getLocalizedString("Move to bottom"),
301
- chartsMenuOptions: getLocalizedString("Field options"),
302
- chartsMenuRemove: getLocalizedString("Remove"),
303
- chartsDragToDimensions: (dimensionLabel: string) => localize`Drag here to use column as ${dimensionLabel}`,
304
- chartsDragToValues: (valuesLabel: string) => localize`Drag here to use column as ${valuesLabel}`,
305
-
306
- // AI Assistant panel
307
- aiAssistantPanelTitle: getLocalizedString("AI Assistant"),
308
- aiAssistantPanelClose: getLocalizedString("Close AI Assistant"),
309
- aiAssistantPanelNewConversation: getLocalizedString("New conversation"),
310
- aiAssistantPanelConversationHistory: getLocalizedString("Conversation history"),
311
- aiAssistantPanelEmptyConversation: getLocalizedString("No prompt history"),
312
- aiAssistantSuggestions: getLocalizedString("Suggestions"),
313
-
314
- // Prompt field
315
- promptFieldLabel: getLocalizedString("Prompt"),
316
- promptFieldPlaceholder: getLocalizedString("Type a prompt…"),
317
- promptFieldPlaceholderWithRecording: getLocalizedString("Type or record a prompt…"),
318
- promptFieldPlaceholderListening: getLocalizedString("Listening for prompt…"),
319
- promptFieldSpeechRecognitionNotSupported: getLocalizedString("Speech recognition is not supported in this browser"),
320
- promptFieldSend: getLocalizedString("Send"),
321
- promptFieldRecord: getLocalizedString("Record"),
322
- promptFieldStopRecording: getLocalizedString("Stop recording"),
323
-
324
- // Prompt
325
- promptRerun: getLocalizedString("Run again"),
326
- promptProcessing: getLocalizedString("Processing…"),
327
- promptAppliedChanges: getLocalizedString("Applied changes"),
328
-
329
- // Prompt changes
330
- promptChangeGroupDescription: (column: string) => localize`Group by ${column}`,
331
- promptChangeAggregationLabel: (column: string, aggregation: string) => localize`${column} (${aggregation})`,
332
- promptChangeAggregationDescription: (column: string, aggregation: string) =>
333
- localize`Aggregate ${column} (${aggregation})`,
334
- promptChangeFilterLabel: (column: string, operator: string, value: string) => {
335
- if (operator === "is any of") {
336
- return localize`${column} is any of: ${value}`;
337
- }
338
- return localize`${column} ${operator} ${value}`;
339
- },
340
- promptChangeFilterDescription: (column: string, operator: string, value: string) => {
341
- if (operator === "is any of") {
342
- return localize`Filter where ${column} is any of: ${value}`;
343
- }
344
- return localize`Filter where ${column} ${operator} ${value}`;
345
- },
346
- promptChangeSortDescription: (column: string, direction: string) => localize`Sort by ${column} (${direction})`,
347
- promptChangePivotEnableLabel: getLocalizedString("Pivot"),
348
- promptChangePivotEnableDescription: getLocalizedString("Enable pivot"),
349
- promptChangePivotColumnsLabel: (count: number) => localize`Columns (${count})`,
350
- promptChangePivotColumnsDescription: (column: string, direction: string) =>
351
- localize`${column}${direction ? ` (${direction})` : ""}`,
352
- promptChangePivotRowsLabel: (count: number) => localize`Rows (${count})`,
353
- promptChangePivotValuesLabel: (count: number) => localize`Values (${count})`,
354
- promptChangePivotValuesDescription: (column: string, aggregation: string) => localize`${column} (${aggregation})`,
355
- promptChangeChartsLabel: (dimensionsCount: number, valuesCount: number) =>
356
- localize`Dimensions (${dimensionsCount}), Values (${valuesCount})`,
357
-
358
- // Custom AF filters
359
- filterOperatorNotContains: getLocalizedString("not contains"),
360
- filterOperatorNotEquals: getLocalizedString("not equals"),
361
- filterOperatorLike: getLocalizedString("like"),
362
- filterOperatorNotLike: getLocalizedString("not like"),
363
- filterOperatorIsNoneOf: getLocalizedString("is none of"),
364
- headerFilterOperatorNotContains: getLocalizedString("Not contains??"),
365
- headerFilterOperatorNotEquals: getLocalizedString("Not equals"),
366
- headerFilterOperatorLike: getLocalizedString("Like"),
367
- headerFilterOperatorNotLike: getLocalizedString("Not like"),
368
- headerFilterOperatorIsNoneOf: getLocalizedString("Is none of"),
369
- };
1
+ import type { GridLocaleText } from "@mui/x-data-grid-premium";
2
+ import { getLocalizedString, localize } from "../i18n.js";
3
+
4
+ export type AfGridLocaleTextExt = GridLocaleText & {
5
+ filterOperatorNotContains: string;
6
+ filterOperatorNotEquals: string;
7
+ filterOperatorLike: string;
8
+ filterOperatorNotLike: string;
9
+ filterOperatorIsNoneOf: string;
10
+ headerFilterOperatorNotContains: string;
11
+ headerFilterOperatorNotEquals: string;
12
+ headerFilterOperatorLike: string;
13
+ headerFilterOperatorNotLike: string;
14
+ headerFilterOperatorIsNoneOf: string;
15
+ };
16
+
17
+ export const AF_GRID_LOCALE_TEXT: AfGridLocaleTextExt = {
18
+ // Root
19
+ noRowsLabel: getLocalizedString("No rows"),
20
+ noResultsOverlayLabel: getLocalizedString("No results found."),
21
+ noColumnsOverlayLabel: getLocalizedString("No columns"),
22
+ noColumnsOverlayManageColumns: getLocalizedString("Manage columns"),
23
+ emptyPivotOverlayLabel: getLocalizedString("Add fields to rows, columns, and values to create a pivot table"),
24
+
25
+ // Density selector toolbar button text
26
+ toolbarDensity: getLocalizedString("Density"),
27
+ toolbarDensityLabel: getLocalizedString("Density"),
28
+ toolbarDensityCompact: getLocalizedString("Compact"),
29
+ toolbarDensityStandard: getLocalizedString("Standard"),
30
+ toolbarDensityComfortable: getLocalizedString("Comfortable"),
31
+
32
+ // Undo/redo toolbar button text
33
+ toolbarUndo: getLocalizedString("Undo"),
34
+ toolbarRedo: getLocalizedString("Redo"),
35
+
36
+ // Columns selector toolbar button text
37
+ toolbarColumns: getLocalizedString("Columns"),
38
+ toolbarColumnsLabel: getLocalizedString("Select columns"),
39
+
40
+ // Filters toolbar button text
41
+ toolbarFilters: getLocalizedString("Filters"),
42
+ toolbarFiltersLabel: getLocalizedString("Show filters"),
43
+ toolbarFiltersTooltipHide: getLocalizedString("Hide filters"),
44
+ toolbarFiltersTooltipShow: getLocalizedString("Show filters"),
45
+ toolbarFiltersTooltipActive: (count) =>
46
+ count !== 1
47
+ ? getLocalizedString(`$count active filters`).replace("$count", String(count))
48
+ : getLocalizedString(`$count active filter`).replace("$count", String(count)),
49
+
50
+ // Quick filter toolbar field
51
+ toolbarQuickFilterPlaceholder: getLocalizedString("Search…"),
52
+ toolbarQuickFilterLabel: getLocalizedString("Search"),
53
+ toolbarQuickFilterDeleteIconLabel: getLocalizedString("Clear"),
54
+
55
+ // Export selector toolbar button text
56
+ toolbarExport: getLocalizedString("Export"),
57
+ toolbarExportLabel: getLocalizedString("Export"),
58
+ toolbarExportCSV: getLocalizedString("Download as CSV"),
59
+ toolbarExportPrint: getLocalizedString("Print"),
60
+ toolbarExportExcel: getLocalizedString("Download as Excel"),
61
+
62
+ // Toolbar pivot button
63
+ toolbarPivot: getLocalizedString("Pivot"),
64
+
65
+ // Toolbar charts button
66
+ toolbarCharts: getLocalizedString("Charts"),
67
+
68
+ // Toolbar AI Assistant button
69
+ toolbarAssistant: getLocalizedString("AI Assistant"),
70
+
71
+ // Columns management text
72
+ columnsManagementSearchTitle: getLocalizedString("Search"),
73
+ columnsManagementNoColumns: getLocalizedString("No columns"),
74
+ columnsManagementShowHideAllText: getLocalizedString("Show/Hide All"),
75
+ columnsManagementReset: getLocalizedString("Reset"),
76
+ columnsManagementDeleteIconLabel: getLocalizedString("Clear"),
77
+
78
+ // Filter panel text
79
+ filterPanelAddFilter: getLocalizedString("Add filter"),
80
+ filterPanelDeleteIconLabel: getLocalizedString("Delete"),
81
+ filterPanelLogicOperator: getLocalizedString("Logic operator"),
82
+ filterPanelOperator: getLocalizedString("Operator"),
83
+ filterPanelOperatorAnd: getLocalizedString("And"),
84
+ filterPanelOperatorOr: getLocalizedString("Or"),
85
+ filterPanelColumns: getLocalizedString("Columns"),
86
+ filterPanelInputLabel: getLocalizedString("Value"),
87
+ filterPanelInputPlaceholder: getLocalizedString("Filter value"),
88
+ filterPanelRemoveAll: getLocalizedString("Remove all"),
89
+
90
+ // Filter operators text
91
+ filterOperatorContains: getLocalizedString("contains"),
92
+ filterOperatorDoesNotContain: getLocalizedString("does not contain"),
93
+ filterOperatorEquals: getLocalizedString("equals"),
94
+ filterOperatorDoesNotEqual: getLocalizedString("does not equal"),
95
+ filterOperatorStartsWith: getLocalizedString("starts with"),
96
+ filterOperatorEndsWith: getLocalizedString("ends with"),
97
+ filterOperatorIs: getLocalizedString("is"),
98
+ filterOperatorNot: getLocalizedString("is not"),
99
+ filterOperatorAfter: getLocalizedString("is after"),
100
+ filterOperatorOnOrAfter: getLocalizedString("is on or after"),
101
+ filterOperatorBefore: getLocalizedString("is before"),
102
+ filterOperatorOnOrBefore: getLocalizedString("is on or before"),
103
+ filterOperatorIsEmpty: getLocalizedString("is empty"),
104
+ filterOperatorIsNotEmpty: getLocalizedString("is not empty"),
105
+ filterOperatorIsAnyOf: getLocalizedString("is any of"),
106
+ "filterOperator=": "=",
107
+ "filterOperator!=": "!=",
108
+ "filterOperator>": ">",
109
+ "filterOperator>=": ">=",
110
+ "filterOperator<": "<",
111
+ "filterOperator<=": "<=",
112
+
113
+ // Header filter operators text
114
+ headerFilterOperatorContains: getLocalizedString("Contains"),
115
+ headerFilterOperatorDoesNotContain: getLocalizedString("Does not contain"),
116
+ headerFilterOperatorEquals: getLocalizedString("Equals"),
117
+ headerFilterOperatorDoesNotEqual: getLocalizedString("Does not equal"),
118
+ headerFilterOperatorStartsWith: getLocalizedString("Starts with"),
119
+ headerFilterOperatorEndsWith: getLocalizedString("Ends with"),
120
+ headerFilterOperatorIs: getLocalizedString("Is"),
121
+ headerFilterOperatorNot: getLocalizedString("Is not"),
122
+ headerFilterOperatorAfter: getLocalizedString("Is after"),
123
+ headerFilterOperatorOnOrAfter: getLocalizedString("Is on or after"),
124
+ headerFilterOperatorBefore: getLocalizedString("Is before"),
125
+ headerFilterOperatorOnOrBefore: getLocalizedString("Is on or before"),
126
+ headerFilterOperatorIsEmpty: getLocalizedString("Is empty"),
127
+ headerFilterOperatorIsNotEmpty: getLocalizedString("Is not empty"),
128
+ headerFilterOperatorIsAnyOf: getLocalizedString("Is any of"),
129
+ "headerFilterOperator=": getLocalizedString("Equals"),
130
+ "headerFilterOperator!=": getLocalizedString("Not equals"),
131
+ "headerFilterOperator>": getLocalizedString("greater than"),
132
+ "headerFilterOperator>=": getLocalizedString("greater than or equal to"),
133
+ "headerFilterOperator<": getLocalizedString("less than"),
134
+ "headerFilterOperator<=": getLocalizedString("less than or equal to"),
135
+ headerFilterClear: getLocalizedString("Clear filter"),
136
+
137
+ // Filter values text
138
+ filterValueAny: getLocalizedString("any"),
139
+ filterValueTrue: getLocalizedString("true"),
140
+ filterValueFalse: getLocalizedString("false"),
141
+
142
+ // Column menu text
143
+ columnMenuLabel: getLocalizedString("Menu"),
144
+ columnMenuAriaLabel: (columnName: string) => localize`${columnName} column menu`,
145
+ columnMenuShowColumns: getLocalizedString("Show columns"),
146
+ columnMenuFilter: getLocalizedString("Filter"),
147
+ columnMenuHideColumn: getLocalizedString("Hide"),
148
+ columnMenuUnsort: getLocalizedString("Unsort"),
149
+ columnMenuSortAsc: getLocalizedString("Sort by ASC"),
150
+ columnMenuSortDesc: getLocalizedString("Sort by DESC"),
151
+ columnMenuManageColumns: getLocalizedString("Manage columns"),
152
+ columnMenuManagePivot: getLocalizedString("Manage pivot"),
153
+ columnMenuManageCharts: getLocalizedString("Manage charts"),
154
+
155
+ // Column header text
156
+ columnHeaderFiltersTooltipActive: (count) =>
157
+ count !== 1
158
+ ? getLocalizedString(`$count active filters`).replace("$count", String(count))
159
+ : getLocalizedString(`$count active filter`).replace("$count", String(count)),
160
+ columnHeaderFiltersLabel: getLocalizedString("Show filters"),
161
+ columnHeaderSortIconLabel: getLocalizedString("Sort"),
162
+
163
+ // Rows selected footer text
164
+ footerRowSelected: (count) =>
165
+ count !== 1
166
+ ? getLocalizedString(`$count rows selected`).replace("$count", count.toLocaleString())
167
+ : getLocalizedString(`$count row selected`).replace("$count", count.toLocaleString()),
168
+
169
+ // Total row amount footer text
170
+ footerTotalRows: getLocalizedString("Total Rows:"),
171
+
172
+ // Total visible row amount footer text
173
+ footerTotalVisibleRows: (visibleCount, totalCount) =>
174
+ getLocalizedString(`$count of $total`)
175
+ .replace("$count", visibleCount.toLocaleString())
176
+ .replace("$total", totalCount.toLocaleString()),
177
+
178
+ // Checkbox selection text
179
+ checkboxSelectionHeaderName: getLocalizedString("Checkbox selection"),
180
+ checkboxSelectionSelectAllRows: getLocalizedString("Select all rows"),
181
+ checkboxSelectionUnselectAllRows: getLocalizedString("Unselect all rows"),
182
+ checkboxSelectionSelectRow: getLocalizedString("Select row"),
183
+ checkboxSelectionUnselectRow: getLocalizedString("Unselect row"),
184
+
185
+ // Boolean cell text
186
+ booleanCellTrueLabel: getLocalizedString("yes"),
187
+ booleanCellFalseLabel: getLocalizedString("no"),
188
+
189
+ // Long text cell
190
+ longTextCellExpandLabel: getLocalizedString("Expand"),
191
+ longTextCellCollapseLabel: getLocalizedString("Collapse"),
192
+
193
+ // Actions cell more text
194
+ actionsCellMore: getLocalizedString("more"),
195
+
196
+ // Column pinning text
197
+ pinToLeft: getLocalizedString("Pin to left"),
198
+ pinToRight: getLocalizedString("Pin to right"),
199
+ unpin: getLocalizedString("Unpin"),
200
+
201
+ // Tree Data
202
+ treeDataGroupingHeaderName: getLocalizedString("Group"),
203
+ treeDataExpand: getLocalizedString("see children"),
204
+ treeDataCollapse: getLocalizedString("hide children"),
205
+
206
+ // Grouping columns
207
+ groupingColumnHeaderName: getLocalizedString("Group"),
208
+ groupColumn: (name) => getLocalizedString("Group by $name").replace("$name", name),
209
+ unGroupColumn: (name) => getLocalizedString("Stop grouping by $name").replace("$name", name),
210
+
211
+ // Master/detail
212
+ detailPanelToggle: getLocalizedString("Detail panel toggle"),
213
+ expandDetailPanel: getLocalizedString("Expand"),
214
+ collapseDetailPanel: getLocalizedString("Collapse"),
215
+
216
+ // Pagination
217
+ paginationRowsPerPage: getLocalizedString("Rows per page:"),
218
+ paginationDisplayedRows: ({ from, to, count, estimated }) => {
219
+ if (!estimated) {
220
+ return localize`${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
221
+ }
222
+ const estimatedLabel = estimated && estimated > to ? localize`around ${estimated}` : `more than ${to}`;
223
+ return localize`${from}–${to} of ${count !== -1 ? count : estimatedLabel}`;
224
+ },
225
+ paginationItemAriaLabel: (type) => {
226
+ if (type === "first") {
227
+ return getLocalizedString("Go to first page");
228
+ }
229
+ if (type === "last") {
230
+ return getLocalizedString("Go to last page");
231
+ }
232
+ if (type === "next") {
233
+ return getLocalizedString("Go to next page");
234
+ }
235
+ // if (type === 'previous') {
236
+ return getLocalizedString("Go to previous page");
237
+ },
238
+
239
+ // Row reordering text
240
+ rowReorderingHeaderName: getLocalizedString("Row reordering"),
241
+
242
+ // Aggregation
243
+ aggregationMenuItemHeader: getLocalizedString("Aggregation"),
244
+ aggregationFunctionLabelNone: getLocalizedString("none"),
245
+ aggregationFunctionLabelSum: getLocalizedString("sum"),
246
+ aggregationFunctionLabelAvg: getLocalizedString("avg"),
247
+ aggregationFunctionLabelMin: getLocalizedString("min"),
248
+ aggregationFunctionLabelMax: getLocalizedString("max"),
249
+ aggregationFunctionLabelSize: getLocalizedString("size"),
250
+
251
+ // Pivot panel
252
+ pivotToggleLabel: getLocalizedString("Pivot"),
253
+ pivotRows: getLocalizedString("Rows"),
254
+ pivotColumns: getLocalizedString("Columns"),
255
+ pivotValues: getLocalizedString("Values"),
256
+ pivotCloseButton: getLocalizedString("Close pivot settings"),
257
+ pivotSearchButton: getLocalizedString("Search fields"),
258
+ pivotSearchControlPlaceholder: getLocalizedString("Search fields"),
259
+ pivotSearchControlLabel: getLocalizedString("Search fields"),
260
+ pivotSearchControlClear: getLocalizedString("Clear search"),
261
+ pivotNoFields: getLocalizedString("No fields"),
262
+ pivotMenuMoveUp: getLocalizedString("Move up"),
263
+ pivotMenuMoveDown: getLocalizedString("Move down"),
264
+ pivotMenuMoveToTop: getLocalizedString("Move to top"),
265
+ pivotMenuMoveToBottom: getLocalizedString("Move to bottom"),
266
+ pivotMenuRows: getLocalizedString("Rows"),
267
+ pivotMenuColumns: getLocalizedString("Columns"),
268
+ pivotMenuValues: getLocalizedString("Values"),
269
+ pivotMenuOptions: getLocalizedString("Field options"),
270
+ pivotMenuAddToRows: getLocalizedString("Add to Rows"),
271
+ pivotMenuAddToColumns: getLocalizedString("Add to Columns"),
272
+ pivotMenuAddToValues: getLocalizedString("Add to Values"),
273
+ pivotMenuRemove: getLocalizedString("Remove"),
274
+ pivotDragToRows: getLocalizedString("Drag here to create rows"),
275
+ pivotDragToColumns: getLocalizedString("Drag here to create columns"),
276
+ pivotDragToValues: getLocalizedString("Drag here to create values"),
277
+ pivotYearColumnHeaderName: getLocalizedString("(Year)"),
278
+ pivotQuarterColumnHeaderName: getLocalizedString("(Quarter)"),
279
+
280
+ // Charts configuration panel
281
+ chartsNoCharts: getLocalizedString("There are no charts available"),
282
+ chartsChartNotSelected: getLocalizedString("Select a chart type to configure its options"),
283
+ chartsTabChart: getLocalizedString("Chart"),
284
+ chartsTabFields: getLocalizedString("Fields"),
285
+ chartsTabCustomize: getLocalizedString("Customize"),
286
+ chartsCloseButton: getLocalizedString("Close charts configuration"),
287
+ chartsSyncButtonLabel: getLocalizedString("Sync chart"),
288
+ chartsSearchPlaceholder: getLocalizedString("Search fields"),
289
+ chartsSearchLabel: getLocalizedString("Search fields"),
290
+ chartsSearchClear: getLocalizedString("Clear search"),
291
+ chartsNoFields: getLocalizedString("No fields"),
292
+ chartsFieldBlocked: getLocalizedString("This field cannot be added to any section"),
293
+ chartsCategories: getLocalizedString("Categories"),
294
+ chartsSeries: getLocalizedString("Series"),
295
+ chartsMenuAddToDimensions: (dimensionLabel: string) => localize`Add to ${dimensionLabel}`,
296
+ chartsMenuAddToValues: (valuesLabel: string) => localize`Add to ${valuesLabel}`,
297
+ chartsMenuMoveUp: getLocalizedString("Move up"),
298
+ chartsMenuMoveDown: getLocalizedString("Move down"),
299
+ chartsMenuMoveToTop: getLocalizedString("Move to top"),
300
+ chartsMenuMoveToBottom: getLocalizedString("Move to bottom"),
301
+ chartsMenuOptions: getLocalizedString("Field options"),
302
+ chartsMenuRemove: getLocalizedString("Remove"),
303
+ chartsDragToDimensions: (dimensionLabel: string) => localize`Drag here to use column as ${dimensionLabel}`,
304
+ chartsDragToValues: (valuesLabel: string) => localize`Drag here to use column as ${valuesLabel}`,
305
+
306
+ // AI Assistant panel
307
+ aiAssistantPanelTitle: getLocalizedString("AI Assistant"),
308
+ aiAssistantPanelClose: getLocalizedString("Close AI Assistant"),
309
+ aiAssistantPanelNewConversation: getLocalizedString("New conversation"),
310
+ aiAssistantPanelConversationHistory: getLocalizedString("Conversation history"),
311
+ aiAssistantPanelEmptyConversation: getLocalizedString("No prompt history"),
312
+ aiAssistantSuggestions: getLocalizedString("Suggestions"),
313
+
314
+ // Prompt field
315
+ promptFieldLabel: getLocalizedString("Prompt"),
316
+ promptFieldPlaceholder: getLocalizedString("Type a prompt…"),
317
+ promptFieldPlaceholderWithRecording: getLocalizedString("Type or record a prompt…"),
318
+ promptFieldPlaceholderListening: getLocalizedString("Listening for prompt…"),
319
+ promptFieldSpeechRecognitionNotSupported: getLocalizedString("Speech recognition is not supported in this browser"),
320
+ promptFieldSend: getLocalizedString("Send"),
321
+ promptFieldRecord: getLocalizedString("Record"),
322
+ promptFieldStopRecording: getLocalizedString("Stop recording"),
323
+
324
+ // Prompt
325
+ promptRerun: getLocalizedString("Run again"),
326
+ promptProcessing: getLocalizedString("Processing…"),
327
+ promptAppliedChanges: getLocalizedString("Applied changes"),
328
+
329
+ // Prompt changes
330
+ promptChangeGroupDescription: (column: string) => localize`Group by ${column}`,
331
+ promptChangeAggregationLabel: (column: string, aggregation: string) => localize`${column} (${aggregation})`,
332
+ promptChangeAggregationDescription: (column: string, aggregation: string) =>
333
+ localize`Aggregate ${column} (${aggregation})`,
334
+ promptChangeFilterLabel: (column: string, operator: string, value: string) => {
335
+ if (operator === "is any of") {
336
+ return localize`${column} is any of: ${value}`;
337
+ }
338
+ return localize`${column} ${operator} ${value}`;
339
+ },
340
+ promptChangeFilterDescription: (column: string, operator: string, value: string) => {
341
+ if (operator === "is any of") {
342
+ return localize`Filter where ${column} is any of: ${value}`;
343
+ }
344
+ return localize`Filter where ${column} ${operator} ${value}`;
345
+ },
346
+ promptChangeSortDescription: (column: string, direction: string) => localize`Sort by ${column} (${direction})`,
347
+ promptChangePivotEnableLabel: getLocalizedString("Pivot"),
348
+ promptChangePivotEnableDescription: getLocalizedString("Enable pivot"),
349
+ promptChangePivotColumnsLabel: (count: number) => localize`Columns (${count})`,
350
+ promptChangePivotColumnsDescription: (column: string, direction: string) =>
351
+ localize`${column}${direction ? ` (${direction})` : ""}`,
352
+ promptChangePivotRowsLabel: (count: number) => localize`Rows (${count})`,
353
+ promptChangePivotValuesLabel: (count: number) => localize`Values (${count})`,
354
+ promptChangePivotValuesDescription: (column: string, aggregation: string) => localize`${column} (${aggregation})`,
355
+ promptChangeChartsLabel: (dimensionsCount: number, valuesCount: number) =>
356
+ localize`Dimensions (${dimensionsCount}), Values (${valuesCount})`,
357
+
358
+ // Custom AF filters
359
+ filterOperatorNotContains: getLocalizedString("not contains"),
360
+ filterOperatorNotEquals: getLocalizedString("not equals"),
361
+ filterOperatorLike: getLocalizedString("like"),
362
+ filterOperatorNotLike: getLocalizedString("not like"),
363
+ filterOperatorIsNoneOf: getLocalizedString("is none of"),
364
+ headerFilterOperatorNotContains: getLocalizedString("Not contains??"),
365
+ headerFilterOperatorNotEquals: getLocalizedString("Not equals"),
366
+ headerFilterOperatorLike: getLocalizedString("Like"),
367
+ headerFilterOperatorNotLike: getLocalizedString("Not like"),
368
+ headerFilterOperatorIsNoneOf: getLocalizedString("Is none of"),
369
+ };