@olenbetong/appframe-ds 1.3.6 → 1.3.8

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 (179) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +6 -6
  3. package/scripts/copyAssets.mjs +27 -27
  4. package/src/AfLookup/Lookup.css +130 -129
  5. package/src/AfLookup/Lookup.tsx +186 -186
  6. package/src/AfLookup/LookupCombobox.css +72 -78
  7. package/src/AfLookup/LookupCombobox.tsx +237 -237
  8. package/src/AfLookup/LookupEdit.tsx +130 -130
  9. package/src/AfLookup/LookupGrid.css +7 -12
  10. package/src/AfLookup/LookupGrid.tsx +124 -124
  11. package/src/AfLookup/index.ts +5 -5
  12. package/src/autocomplete/Autocomplete.css +256 -256
  13. package/src/autocomplete/Autocomplete.tsx +320 -320
  14. package/src/autocomplete/AutocompleteFrame.tsx +168 -168
  15. package/src/autocomplete/Combobox.tsx +286 -286
  16. package/src/autocomplete/index.ts +4 -4
  17. package/src/autocomplete/types.ts +204 -204
  18. package/src/autocomplete/utils.ts +183 -183
  19. package/src/binding/BoundNumericTextField.tsx +102 -102
  20. package/src/binding/BoundTextField.tsx +49 -49
  21. package/src/binding/CancelButton.tsx +30 -30
  22. package/src/binding/CancelIconButton.tsx +30 -30
  23. package/src/binding/DataEditToolbar.css +23 -23
  24. package/src/binding/DataEditToolbar.tsx +84 -84
  25. package/src/binding/DeleteButton.tsx +35 -35
  26. package/src/binding/DeleteIconButton.tsx +35 -35
  27. package/src/binding/RefreshButton.tsx +31 -31
  28. package/src/binding/RefreshIconButton.tsx +33 -33
  29. package/src/binding/RefreshRowIconButton.tsx +33 -33
  30. package/src/binding/SaveButton.tsx +37 -37
  31. package/src/binding/SaveIconButton.tsx +38 -38
  32. package/src/container/Container.tsx +50 -49
  33. package/src/container/index.ts +1 -1
  34. package/src/cutoff/CutOffPicker.css +12 -12
  35. package/src/cutoff/CutOffPicker.tsx +165 -165
  36. package/src/cutoff/context.tsx +194 -194
  37. package/src/cutoff/dsCutOffDates.ts +21 -21
  38. package/src/cutoff/index.ts +4 -4
  39. package/src/cutoff/utils.test.ts +59 -59
  40. package/src/cutoff/utils.ts +276 -276
  41. package/src/filter/ChipListInput.tsx +79 -79
  42. package/src/filter/FieldFilterPanel.css +150 -150
  43. package/src/filter/FieldFilterPanel.tsx +309 -309
  44. package/src/filter/FilterBuilder.css +152 -152
  45. package/src/filter/FilterBuilder.test.tsx +153 -153
  46. package/src/filter/FilterBuilder.tsx +435 -435
  47. package/src/filter/FilterEditor.css +231 -231
  48. package/src/filter/FilterEditor.test.tsx +285 -285
  49. package/src/filter/FilterEditor.tsx +75 -75
  50. package/src/filter/FilterGroupEditor.tsx +160 -160
  51. package/src/filter/FilterNameDialog.css +22 -22
  52. package/src/filter/FilterNameDialog.tsx +81 -81
  53. package/src/filter/FilterRow.tsx +117 -117
  54. package/src/filter/FilterShareDialog.css +28 -28
  55. package/src/filter/FilterShareDialog.tsx +201 -201
  56. package/src/filter/FilterStringField.tsx +78 -78
  57. package/src/filter/FilterValueEditor.tsx +239 -239
  58. package/src/filter/SavedFilterTree.css +107 -107
  59. package/src/filter/SavedFilterTree.test.tsx +94 -94
  60. package/src/filter/SavedFilterTree.tsx +218 -218
  61. package/src/filter/fieldFilter.test.ts +158 -158
  62. package/src/filter/fieldFilter.ts +139 -139
  63. package/src/filter/index.ts +27 -27
  64. package/src/filter/types.ts +38 -38
  65. package/src/filter/useDistinctValues.test.ts +102 -102
  66. package/src/filter/useDistinctValues.ts +230 -230
  67. package/src/global.d.ts +11 -11
  68. package/src/grid/AfGridColumnsPanel.tsx +118 -118
  69. package/src/grid/AfGridContext.tsx +51 -51
  70. package/src/grid/AfGridError.tsx +46 -46
  71. package/src/grid/AfHeaderFilterCell.tsx +147 -147
  72. package/src/grid/AfHeaderFilterPanel.tsx +111 -111
  73. package/src/grid/GridEditLookup.css +12 -12
  74. package/src/grid/GridEditLookup.tsx +121 -121
  75. package/src/grid/Toolbar.tsx +233 -233
  76. package/src/grid/editing.ts +100 -100
  77. package/src/grid/filter.ts +78 -78
  78. package/src/grid/formatters.ts +48 -48
  79. package/src/grid/index.css +245 -245
  80. package/src/grid/index.tsx +503 -503
  81. package/src/grid/license.ts +48 -48
  82. package/src/grid/localization.ts +369 -369
  83. package/src/grid/slots/index.tsx +334 -334
  84. package/src/grid/slots/slots.css +64 -64
  85. package/src/grid/slots/slots.test.tsx +39 -39
  86. package/src/grid/theme.tsx +138 -138
  87. package/src/grid/useAfColumns.tsx +371 -371
  88. package/src/grid/useAfCurrentIndex.ts +63 -63
  89. package/src/grid/useAfData.ts +20 -20
  90. package/src/grid/useAfFilter.ts +160 -160
  91. package/src/grid/useAfFilterFields.ts +55 -55
  92. package/src/grid/useAfGridApi.ts +71 -71
  93. package/src/grid/useAfKeyBindings.ts +36 -36
  94. package/src/grid/useAfNewItemRow.ts +258 -258
  95. package/src/grid/useAfPagination.ts +53 -53
  96. package/src/grid/useAfPersistedState.ts +230 -230
  97. package/src/grid/useAfRowEditModel.ts +145 -145
  98. package/src/grid/useAfRowGrouping.ts +47 -47
  99. package/src/grid/useAfServerAggregation.test.ts +68 -68
  100. package/src/grid/useAfServerAggregation.ts +158 -158
  101. package/src/grid/useAfSortModel.ts +84 -84
  102. package/src/i18n.ts +13 -13
  103. package/src/index.ts +14 -14
  104. package/src/input/InputAdornments.css +84 -84
  105. package/src/input/InputAdornments.tsx +102 -102
  106. package/src/input/index.ts +1 -1
  107. package/src/layout/AppMenu.tsx +74 -74
  108. package/src/layout/AppMenuDrawer.css +70 -70
  109. package/src/layout/AppMenuDrawer.tsx +122 -122
  110. package/src/layout/ErrorBoundary.tsx +162 -162
  111. package/src/layout/PageContainer.css +48 -48
  112. package/src/layout/PageContainer.tsx +41 -41
  113. package/src/layout/ResponsiveDialog.css +86 -86
  114. package/src/layout/ResponsiveDialog.tsx +55 -55
  115. package/src/layout/index.tsx +69 -69
  116. package/src/link/Link.tsx +23 -23
  117. package/src/link/index.ts +1 -1
  118. package/src/mdi/Mdi.css +138 -138
  119. package/src/mdi/Mdi.test.tsx +91 -91
  120. package/src/mdi/Mdi.tsx +141 -141
  121. package/src/mdi/MdiConfirmCloseDialog.tsx +47 -47
  122. package/src/mdi/MdiContext.tsx +59 -59
  123. package/src/mdi/MdiDocumentContext.tsx +60 -60
  124. package/src/mdi/MdiPanel.tsx +61 -61
  125. package/src/mdi/MdiRestore.test.tsx +86 -86
  126. package/src/mdi/MdiTab.tsx +30 -30
  127. package/src/mdi/controller.test.ts +382 -382
  128. package/src/mdi/controller.ts +656 -656
  129. package/src/mdi/dockviewHost.ts +132 -132
  130. package/src/mdi/fakeHost.ts +200 -200
  131. package/src/mdi/host.ts +44 -44
  132. package/src/mdi/ids.test.ts +20 -20
  133. package/src/mdi/ids.ts +18 -18
  134. package/src/mdi/index.ts +31 -31
  135. package/src/mdi/layoutRestore.test.ts +156 -156
  136. package/src/mdi/layoutRestore.ts +311 -311
  137. package/src/mdi/layoutSpec.test.ts +143 -143
  138. package/src/mdi/layoutSpec.ts +214 -214
  139. package/src/mdi/layoutStore.test.ts +93 -93
  140. package/src/mdi/layoutStore.ts +99 -99
  141. package/src/mdi/memorySettingsStore.ts +21 -21
  142. package/src/mdi/registry.ts +34 -34
  143. package/src/mdi/testTypes.ts +37 -37
  144. package/src/mdi/theme.ts +22 -22
  145. package/src/mdi/types.ts +214 -214
  146. package/src/page/Page.css +53 -53
  147. package/src/page/PageBlock.css +64 -64
  148. package/src/page/PageBlock.tsx +93 -92
  149. package/src/page/PageHeader.css +88 -88
  150. package/src/page/PageHeader.tsx +115 -115
  151. package/src/page/PageTitle.css +5 -5
  152. package/src/page/PageTitle.tsx +21 -21
  153. package/src/page/index.ts +4 -4
  154. package/src/paper/Paper.tsx +52 -52
  155. package/src/progress/LinearProgress.css +93 -93
  156. package/src/progress/LinearProgress.tsx +104 -104
  157. package/src/progress/index.ts +1 -1
  158. package/src/report-downloader/ReportDownloader.css +67 -67
  159. package/src/report-downloader/components/StatusItem.tsx +87 -87
  160. package/src/report-downloader/components/StatusList.tsx +28 -28
  161. package/src/report-downloader/index.ts +41 -41
  162. package/src/report-downloader/status.tsx +92 -92
  163. package/src/sortable/DropIndicator.css +51 -51
  164. package/src/sortable/DropIndicator.tsx +27 -27
  165. package/src/sortable/SortableItemList.css +21 -21
  166. package/src/sortable/SortableItemList.tsx +264 -264
  167. package/src/sortable/index.ts +8 -8
  168. package/src/sortable/reorderSortOrder.ts +126 -126
  169. package/src/sortable/sortOrder.ts +101 -101
  170. package/src/sortable/types.ts +9 -9
  171. package/src/sortable/useSortableContainer.ts +53 -53
  172. package/src/sortable/useSortableItem.ts +95 -95
  173. package/src/sortable/useSortableList.ts +117 -117
  174. package/src/test/happy-dom-document-class.ts +24 -24
  175. package/src/test/setup.ts +12 -12
  176. package/src/theme/useDsColorScheme.ts +53 -53
  177. package/tsconfig.build.json +9 -9
  178. package/tsconfig.json +8 -8
  179. 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
+ };