@acorex/modules 21.0.0-next.83 → 21.0.0-next.85

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.
@@ -1148,6 +1148,7 @@ class AXMTaskBoardGridViewComponent {
1148
1148
  this.calendarService = inject(AXCalendarService);
1149
1149
  this.taskBoardService = inject(AXPTaskBoardService);
1150
1150
  this.taskPopoverOverlay = inject(AXMTaskBoardTaskPopoverOverlayService);
1151
+ this.translationService = inject(AXTranslationService);
1151
1152
  this.destroyRef = inject(DestroyRef);
1152
1153
  this.dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
1153
1154
  this.refreshNonce = input(0, ...(ngDevMode ? [{ debugName: "refreshNonce" }] : /* istanbul ignore next */ []));
@@ -1165,6 +1166,7 @@ class AXMTaskBoardGridViewComponent {
1165
1166
  load: async (e) => {
1166
1167
  const result = await parentDataSource({ skip: e.skip, take: e.take });
1167
1168
  this.fetchedTasks.set(result.items);
1169
+ const unassignedLabel = await this.translationService.translateAsync('@task-management:task-board.filter.unassigned');
1168
1170
  const mappedItems = result.items.map((task) => ({
1169
1171
  id: task.id,
1170
1172
  data: task.data,
@@ -1173,7 +1175,7 @@ class AXMTaskBoardGridViewComponent {
1173
1175
  description: task.description,
1174
1176
  statusTitle: task.status.title,
1175
1177
  reporter: task.reporter.fullName ?? '-',
1176
- assignee: task.assignee?.fullName ?? 'unassigned',
1178
+ assignee: task.assignee?.fullName ?? unassignedLabel,
1177
1179
  type: this.taskBoardService.getProvider(task.provider)?.title,
1178
1180
  endDate: this.calendarService.format(task.endDate, 'DD/MM/YYYY HH:mm', {
1179
1181
  locale: this.localeService.activeProfile().calendar.system,
@@ -1581,6 +1583,7 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1581
1583
  this.calendarService = inject(AXCalendarService);
1582
1584
  this.taskBoardService = inject(AXPTaskBoardService);
1583
1585
  this.taskPopoverOverlay = inject(AXMTaskBoardTaskPopoverOverlayService);
1586
+ this.translationService = inject(AXTranslationService);
1584
1587
  this.destroyRef = inject(DestroyRef);
1585
1588
  this.provider = input(...(ngDevMode ? [undefined, { debugName: "provider" }] : /* istanbul ignore next */ []));
1586
1589
  this.dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
@@ -1686,6 +1689,7 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1686
1689
  createTaskDataSourceForGroup(tasks) {
1687
1690
  return new AXDataSource({
1688
1691
  load: async (e) => {
1692
+ const unassignedLabel = await this.translationService.translateAsync('@task-management:task-board.filter.unassigned');
1689
1693
  const items = tasks.map((task) => ({
1690
1694
  id: task.id,
1691
1695
  data: task.data,
@@ -1693,7 +1697,7 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1693
1697
  priority: task.priority,
1694
1698
  description: task.description,
1695
1699
  reporter: task.reporter.fullName ?? '-',
1696
- assignee: task.assignee?.fullName ?? 'unassigned',
1700
+ assignee: task.assignee?.fullName ?? unassignedLabel,
1697
1701
  endDate: this.calendarService.format(task.endDate, 'DD/MM/YYYY HH:mm', {
1698
1702
  locale: this.localeService.activeProfile().calendar.system,
1699
1703
  }),
@@ -1782,6 +1786,9 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
1782
1786
  initialValue: this.localeService.activeProfile(),
1783
1787
  });
1784
1788
  this.navigatorTimeTextVersion = 0;
1789
+ /** Translated priority/due-status options for filter dropdowns; rebuilt on locale change. */
1790
+ this.priorityOptions = signal([], ...(ngDevMode ? [{ debugName: "priorityOptions" }] : /* istanbul ignore next */ []));
1791
+ this.dueStatusOptions = signal([], ...(ngDevMode ? [{ debugName: "dueStatusOptions" }] : /* istanbul ignore next */ []));
1785
1792
  this.colorByItems = [
1786
1793
  { key: 'dueDate', titleKey: '@task-management:task-board.color-by.due-date' },
1787
1794
  { key: 'priority', titleKey: '@task-management:task-board.color-by.priority' },
@@ -1850,6 +1857,11 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
1850
1857
  this.localeService.activeProfile().localeInfo?.code;
1851
1858
  void this.loadSettingsPanelCopy();
1852
1859
  }, ...(ngDevMode ? [{ debugName: "settingsPanelI18nEffect" }] : /* istanbul ignore next */ []));
1860
+ /** Resolves localized priority/due-status filter option labels when the locale changes. */
1861
+ this.filterOptionsI18nEffect = effect(() => {
1862
+ this.localeService.activeProfile().localeInfo?.code;
1863
+ void this.loadFilterOptionLabels();
1864
+ }, ...(ngDevMode ? [{ debugName: "filterOptionsI18nEffect" }] : /* istanbul ignore next */ []));
1853
1865
  /** Resolves navigator date label asynchronously so month names react to locale/profile changes. */
1854
1866
  this.navigatorTimeTextEffect = effect(() => {
1855
1867
  this.profileChanged();
@@ -1961,7 +1973,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
1961
1973
  multiple: true,
1962
1974
  valueField: 'name',
1963
1975
  textField: 'title',
1964
- dataSource: AXMTaskBoardPage.PRIORITY_OPTIONS,
1976
+ dataSource: this.priorityOptions(),
1965
1977
  },
1966
1978
  },
1967
1979
  filterType: { advance: true, inline: false },
@@ -1977,7 +1989,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
1977
1989
  multiple: true,
1978
1990
  valueField: 'name',
1979
1991
  textField: 'title',
1980
- dataSource: AXMTaskBoardPage.DUE_STATUS_OPTIONS,
1992
+ dataSource: this.dueStatusOptions(),
1981
1993
  },
1982
1994
  },
1983
1995
  filterType: { advance: true, inline: false },
@@ -2251,21 +2263,21 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
2251
2263
  return mode === 'kanban' || mode === 'grid' || mode === 'status-grouped-grid';
2252
2264
  }, ...(ngDevMode ? [{ debugName: "isNonCalendarView" }] : /* istanbul ignore next */ []));
2253
2265
  }
2254
- static { this.PRIORITY_OPTIONS = [
2255
- { title: 'Urgent', name: 'urgent' },
2256
- { title: 'High', name: 'high' },
2257
- { title: 'Normal', name: 'normal' },
2258
- { title: 'Low', name: 'low' },
2259
- { title: 'No Priority', name: 'no_priority' },
2266
+ static { this.PRIORITY_OPTION_KEYS = [
2267
+ { titleKey: '@task-management:task-board.priority.urgent', name: 'urgent' },
2268
+ { titleKey: '@task-management:task-board.priority.high', name: 'high' },
2269
+ { titleKey: '@task-management:task-board.priority.normal', name: 'normal' },
2270
+ { titleKey: '@task-management:task-board.priority.low', name: 'low' },
2271
+ { titleKey: '@task-management:task-board.priority.no-priority', name: 'no_priority' },
2260
2272
  ]; }
2261
- static { this.DUE_STATUS_OPTIONS = [
2262
- { title: 'Completed', name: 'completed' },
2263
- { title: 'No due date', name: 'no-due-date' },
2264
- { title: 'Overdue', name: 'overdue' },
2265
- { title: 'Due today', name: 'due-today' },
2266
- { title: 'Due tomorrow', name: 'due-tomorrow' },
2267
- { title: 'Due this week', name: 'due-this-week' },
2268
- { title: 'Upcoming', name: 'upcoming' },
2273
+ static { this.DUE_STATUS_OPTION_KEYS = [
2274
+ { titleKey: '@task-management:task-board.due-status.completed', name: 'completed' },
2275
+ { titleKey: '@task-management:task-board.due-status.no-due-date', name: 'no-due-date' },
2276
+ { titleKey: '@task-management:task-board.due-status.overdue', name: 'overdue' },
2277
+ { titleKey: '@task-management:task-board.due-status.due-today', name: 'due-today' },
2278
+ { titleKey: '@task-management:task-board.due-status.due-tomorrow', name: 'due-tomorrow' },
2279
+ { titleKey: '@task-management:task-board.due-status.due-this-week', name: 'due-this-week' },
2280
+ { titleKey: '@task-management:task-board.due-status.upcoming', name: 'upcoming' },
2269
2281
  ]; }
2270
2282
  enrichTasks(tasks) {
2271
2283
  return enrichTaskBoardTasks(tasks, this.vm.effectiveColorBy(), this.dueStatusProviderService);
@@ -2559,7 +2571,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
2559
2571
  field: 'priority',
2560
2572
  operator: { type: 'equal' },
2561
2573
  value: priorities,
2562
- displayText: this.resolvePriorityDisplayText(priorities),
2574
+ displayText: await this.resolvePriorityDisplayText(priorities),
2563
2575
  });
2564
2576
  }
2565
2577
  if (dueStatusKeys.length > 0) {
@@ -2567,20 +2579,39 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
2567
2579
  field: 'dueStatus',
2568
2580
  operator: { type: 'equal' },
2569
2581
  value: dueStatusKeys,
2570
- displayText: this.resolveDueStatusDisplayText(dueStatusKeys),
2582
+ displayText: await this.resolveDueStatusDisplayText(dueStatusKeys),
2571
2583
  });
2572
2584
  }
2573
2585
  return filters;
2574
2586
  }
2575
- resolveDueStatusDisplayText(values) {
2576
- return values
2577
- .map((name) => AXMTaskBoardPage.DUE_STATUS_OPTIONS.find((option) => option.name === name)?.title ?? name)
2578
- .join(', ');
2587
+ async resolveDueStatusDisplayText(values) {
2588
+ const titles = await Promise.all(values.map((name) => {
2589
+ const titleKey = AXMTaskBoardPage.DUE_STATUS_OPTION_KEYS.find((option) => option.name === name)?.titleKey;
2590
+ return titleKey ? this.translationService.translateAsync(titleKey) : Promise.resolve(String(name));
2591
+ }));
2592
+ return titles.join(', ');
2579
2593
  }
2580
- resolvePriorityDisplayText(values) {
2581
- return values
2582
- .map((name) => AXMTaskBoardPage.PRIORITY_OPTIONS.find((option) => option.name === name)?.title ?? name)
2583
- .join(', ');
2594
+ async resolvePriorityDisplayText(values) {
2595
+ const titles = await Promise.all(values.map((name) => {
2596
+ const titleKey = AXMTaskBoardPage.PRIORITY_OPTION_KEYS.find((option) => option.name === name)?.titleKey;
2597
+ return titleKey ? this.translationService.translateAsync(titleKey) : Promise.resolve(String(name));
2598
+ }));
2599
+ return titles.join(', ');
2600
+ }
2601
+ /** Builds localized label arrays for the priority and due-status filter dropdowns. */
2602
+ async loadFilterOptionLabels() {
2603
+ const [priorities, dueStatuses] = await Promise.all([
2604
+ Promise.all(AXMTaskBoardPage.PRIORITY_OPTION_KEYS.map(async (option) => ({
2605
+ name: option.name,
2606
+ title: await this.translationService.translateAsync(option.titleKey),
2607
+ }))),
2608
+ Promise.all(AXMTaskBoardPage.DUE_STATUS_OPTION_KEYS.map(async (option) => ({
2609
+ name: option.name,
2610
+ title: await this.translationService.translateAsync(option.titleKey),
2611
+ }))),
2612
+ ]);
2613
+ this.priorityOptions.set(priorities);
2614
+ this.dueStatusOptions.set(dueStatuses);
2584
2615
  }
2585
2616
  async resolveSelectFilterDisplayText(dataSourceName, valueField, textField, values) {
2586
2617
  const ids = Array.isArray(values) ? values : values != null && values !== '' ? [values] : [];
@@ -3400,4 +3431,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
3400
3431
  }] } });
3401
3432
 
3402
3433
  export { AXMTaskBoardPage };
3403
- //# sourceMappingURL=acorex-modules-task-management-task-board.page-Dx6oov4j.mjs.map
3434
+ //# sourceMappingURL=acorex-modules-task-management-task-board.page-D8kQVaxY.mjs.map