@acorex/modules 20.7.2 → 20.7.4

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 (96) hide show
  1. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-Cb0ugn9q.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-oEQ6l_A3.mjs} +21 -21
  2. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-Cb0ugn9q.mjs.map → acorex-modules-assessment-management-acorex-modules-assessment-management-oEQ6l_A3.mjs.map} +1 -1
  3. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-DsZSuqhi.mjs → acorex-modules-assessment-management-answers-viewer-widget-column.component-_Tmd76C6.mjs} +2 -2
  4. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-DsZSuqhi.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-column.component-_Tmd76C6.mjs.map} +1 -1
  5. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-CEQxo5aH.mjs → acorex-modules-assessment-management-answers-viewer-widget-edit.component-c0ryzonM.mjs} +2 -2
  6. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-CEQxo5aH.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-edit.component-c0ryzonM.mjs.map} +1 -1
  7. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-Dh4GAatw.mjs → acorex-modules-assessment-management-answers-viewer-widget-view.component-BOuzufN6.mjs} +2 -2
  8. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-Dh4GAatw.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-view.component-BOuzufN6.mjs.map} +1 -1
  9. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-oliZ_Wk_.mjs → acorex-modules-assessment-management-assessment-case.entity-yMC4T30A.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-oliZ_Wk_.mjs.map → acorex-modules-assessment-management-assessment-case.entity-yMC4T30A.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DD4GUa6H.mjs → acorex-modules-assessment-management-assessment-session.entity-boi7xntr.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DD4GUa6H.mjs.map → acorex-modules-assessment-management-assessment-session.entity-boi7xntr.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CMnXyhcS.mjs → acorex-modules-assessment-management-fill-assessment-session.command-CIywSVKe.mjs} +3 -3
  14. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CMnXyhcS.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-CIywSVKe.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Db9SiDFY.mjs → acorex-modules-assessment-management-preview-questionnaire.command-gQ-Gg2EI.mjs} +4 -4
  16. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Db9SiDFY.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-gQ-Gg2EI.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-6TlXMGHR.mjs → acorex-modules-assessment-management-question-bank-item.entity-BJi5O2hZ.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-6TlXMGHR.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-BJi5O2hZ.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-fekQ1wRZ.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-CQQNQQIY.mjs} +2 -2
  20. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-fekQ1wRZ.mjs.map → acorex-modules-assessment-management-questionnaire-builder-edit.component-CQQNQQIY.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-Bn0yoxWv.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-2CgpHl4g.mjs} +2 -2
  22. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-Bn0yoxWv.mjs.map → acorex-modules-assessment-management-questionnaire-builder-view.component-2CgpHl4g.mjs.map} +1 -1
  23. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-CfLJ27Ob.mjs → acorex-modules-assessment-management-questionnaire-builder.component-DAOND6qy.mjs} +3 -3
  24. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-CfLJ27Ob.mjs.map → acorex-modules-assessment-management-questionnaire-builder.component-DAOND6qy.mjs.map} +1 -1
  25. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BqxEvzqZ.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Bbj8DGdn.mjs} +2 -2
  26. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BqxEvzqZ.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Bbj8DGdn.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-BhYlcsrV.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-d8xlbs8Z.mjs} +2 -2
  28. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-BhYlcsrV.mjs.map → acorex-modules-assessment-management-questionnaire-viewer.service-d8xlbs8Z.mjs.map} +1 -1
  29. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CrnOr1-B.mjs → acorex-modules-assessment-management-questionnaire.entity-eQ29UST5.mjs} +2 -2
  30. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CrnOr1-B.mjs.map → acorex-modules-assessment-management-questionnaire.entity-eQ29UST5.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CZe4mSEi.mjs → acorex-modules-assessment-management-view-session-answers.command-Z-Nk-9SY.mjs} +3 -3
  32. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CZe4mSEi.mjs.map → acorex-modules-assessment-management-view-session-answers.command-Z-Nk-9SY.mjs.map} +1 -1
  33. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  34. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-HBjLE7aN.mjs → acorex-modules-auth-acorex-modules-auth-DbJdPw6r.mjs} +11 -11
  35. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-HBjLE7aN.mjs.map → acorex-modules-auth-acorex-modules-auth-DbJdPw6r.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-auth-app-chooser.component-4w3jVTCM.mjs → acorex-modules-auth-app-chooser.component-C3-Owzk3.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-auth-app-chooser.component-4w3jVTCM.mjs.map → acorex-modules-auth-app-chooser.component-C3-Owzk3.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-auth-login.module-C7zKK9Cq.mjs → acorex-modules-auth-login.module-DWVzAe71.mjs} +4 -4
  39. package/fesm2022/{acorex-modules-auth-login.module-C7zKK9Cq.mjs.map → acorex-modules-auth-login.module-DWVzAe71.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-auth-master.layout-C_F0t2Pw.mjs → acorex-modules-auth-master.layout-CRGoKIyG.mjs} +2 -2
  41. package/fesm2022/{acorex-modules-auth-master.layout-C_F0t2Pw.mjs.map → acorex-modules-auth-master.layout-CRGoKIyG.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-auth-oauth-callback.component-D65wq-WJ.mjs → acorex-modules-auth-oauth-callback.component-BbYMC-Ue.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-auth-oauth-callback.component-D65wq-WJ.mjs.map → acorex-modules-auth-oauth-callback.component-BbYMC-Ue.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-auth-password.component-CCC116bI.mjs → acorex-modules-auth-password.component-99M7R15t.mjs} +4 -4
  45. package/fesm2022/acorex-modules-auth-password.component-99M7R15t.mjs.map +1 -0
  46. package/fesm2022/{acorex-modules-auth-password.component-B1GLfSy9.mjs → acorex-modules-auth-password.component-C6mlKjXP.mjs} +3 -3
  47. package/fesm2022/acorex-modules-auth-password.component-C6mlKjXP.mjs.map +1 -0
  48. package/fesm2022/{acorex-modules-auth-routes-DmDkUeHY.mjs → acorex-modules-auth-routes-BOhInfU0.mjs} +2 -2
  49. package/fesm2022/{acorex-modules-auth-routes-DmDkUeHY.mjs.map → acorex-modules-auth-routes-BOhInfU0.mjs.map} +1 -1
  50. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DZKmZyWk.mjs → acorex-modules-auth-tenant-chooser.component-h5qiAik2.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DZKmZyWk.mjs.map → acorex-modules-auth-tenant-chooser.component-h5qiAik2.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-auth-two-factor-code.component-CSGhGYVU.mjs → acorex-modules-auth-two-factor-code.component-CrP_8k0o.mjs} +2 -2
  53. package/fesm2022/acorex-modules-auth-two-factor-code.component-CrP_8k0o.mjs.map +1 -0
  54. package/fesm2022/{acorex-modules-auth-two-factor.module-DsD1WH-_.mjs → acorex-modules-auth-two-factor.module-B52z5Pre.mjs} +3 -3
  55. package/fesm2022/{acorex-modules-auth-two-factor.module-DsD1WH-_.mjs.map → acorex-modules-auth-two-factor.module-B52z5Pre.mjs.map} +1 -1
  56. package/fesm2022/{acorex-modules-auth-user-sessions.component-DPR059of.mjs → acorex-modules-auth-user-sessions.component-5YAm7mZv.mjs} +2 -2
  57. package/fesm2022/{acorex-modules-auth-user-sessions.component-DPR059of.mjs.map → acorex-modules-auth-user-sessions.component-5YAm7mZv.mjs.map} +1 -1
  58. package/fesm2022/acorex-modules-auth.mjs +1 -1
  59. package/fesm2022/{acorex-modules-document-management-link-dialog.component-C6Q2thLJ.mjs → acorex-modules-document-management-link-dialog.component-Civ7UZb8.mjs} +2 -2
  60. package/fesm2022/acorex-modules-document-management-link-dialog.component-Civ7UZb8.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-document-management-share-dialog.component-CyqY25u5.mjs → acorex-modules-document-management-share-dialog.component-BwUZShJg.mjs} +2 -2
  62. package/fesm2022/acorex-modules-document-management-share-dialog.component-BwUZShJg.mjs.map +1 -0
  63. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DbOBvVj3.mjs → acorex-modules-document-management-share-email-dialog.component-BMiCmb1k.mjs} +2 -2
  64. package/fesm2022/acorex-modules-document-management-share-email-dialog.component-BMiCmb1k.mjs.map +1 -0
  65. package/fesm2022/acorex-modules-document-management.mjs +30 -38
  66. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  67. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-DqnjNpEx.mjs → acorex-modules-help-desk-acorex-modules-help-desk-CA1t2gEZ.mjs} +3 -3
  68. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-DqnjNpEx.mjs.map → acorex-modules-help-desk-acorex-modules-help-desk-CA1t2gEZ.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-7zCCgi2E.mjs → acorex-modules-help-desk-capture-screen.component-Bnrk1dPT.mjs} +2 -2
  70. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-7zCCgi2E.mjs.map → acorex-modules-help-desk-capture-screen.component-Bnrk1dPT.mjs.map} +1 -1
  71. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  72. package/fesm2022/{acorex-modules-meeting-management-meeting-publish-popup.component-Inwn6yaO.mjs → acorex-modules-meeting-management-meeting-publish-popup.component-B7NAg4MD.mjs} +2 -2
  73. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-B7NAg4MD.mjs.map +1 -0
  74. package/fesm2022/acorex-modules-meeting-management.mjs +1 -1
  75. package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BYFduyOb.mjs → acorex-modules-settings-management-acorex-modules-settings-management-BRVfUYiM.mjs} +5 -5
  76. package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BYFduyOb.mjs.map → acorex-modules-settings-management-acorex-modules-settings-management-BRVfUYiM.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-B1yQvXMb.mjs → acorex-modules-settings-management-permission-definition.provider-WSxrvAsV.mjs} +2 -2
  78. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-B1yQvXMb.mjs.map → acorex-modules-settings-management-permission-definition.provider-WSxrvAsV.mjs.map} +1 -1
  79. package/fesm2022/{acorex-modules-settings-management-setting-page.component-DE4fv4Y8.mjs → acorex-modules-settings-management-setting-page.component-MYnJYUxE.mjs} +2 -2
  80. package/fesm2022/{acorex-modules-settings-management-setting-page.component-DE4fv4Y8.mjs.map → acorex-modules-settings-management-setting-page.component-MYnJYUxE.mjs.map} +1 -1
  81. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CY6eBCDV.mjs → acorex-modules-settings-management-setting-view.component-Cq80snth.mjs} +3 -3
  82. package/fesm2022/acorex-modules-settings-management-setting-view.component-Cq80snth.mjs.map +1 -0
  83. package/fesm2022/acorex-modules-settings-management.mjs +1 -1
  84. package/fesm2022/{acorex-modules-task-management-task-board.page-BvDWiiTL.mjs → acorex-modules-task-management-task-board.page-CIlxqtgJ.mjs} +92 -30
  85. package/fesm2022/acorex-modules-task-management-task-board.page-CIlxqtgJ.mjs.map +1 -0
  86. package/fesm2022/acorex-modules-task-management.mjs +1 -1
  87. package/package.json +2 -2
  88. package/fesm2022/acorex-modules-auth-password.component-B1GLfSy9.mjs.map +0 -1
  89. package/fesm2022/acorex-modules-auth-password.component-CCC116bI.mjs.map +0 -1
  90. package/fesm2022/acorex-modules-auth-two-factor-code.component-CSGhGYVU.mjs.map +0 -1
  91. package/fesm2022/acorex-modules-document-management-link-dialog.component-C6Q2thLJ.mjs.map +0 -1
  92. package/fesm2022/acorex-modules-document-management-share-dialog.component-CyqY25u5.mjs.map +0 -1
  93. package/fesm2022/acorex-modules-document-management-share-email-dialog.component-DbOBvVj3.mjs.map +0 -1
  94. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-Inwn6yaO.mjs.map +0 -1
  95. package/fesm2022/acorex-modules-settings-management-setting-view.component-CY6eBCDV.mjs.map +0 -1
  96. package/fesm2022/acorex-modules-task-management-task-board.page-BvDWiiTL.mjs.map +0 -1
@@ -34,7 +34,7 @@ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase }
34
34
  import * as i1$1 from '@angular/common';
35
35
  import { AsyncPipe, CommonModule } from '@angular/common';
36
36
  import * as i0 from '@angular/core';
37
- import { computed, inject, signal, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, input, output, viewChild, model, untracked } from '@angular/core';
37
+ import { computed, inject, signal, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, input, output, viewChild, untracked, afterNextRender, model, viewChildren } from '@angular/core';
38
38
  import * as i1$3 from '@angular/forms';
39
39
  import { FormsModule } from '@angular/forms';
40
40
  import { Router, ActivatedRoute, NavigationEnd, RouterModule } from '@angular/router';
@@ -522,7 +522,7 @@ class AXMTaskBoardFiltersComponent {
522
522
  this.context.set({});
523
523
  }
524
524
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMTaskBoardFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
525
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMTaskBoardFiltersComponent, isStandalone: true, selector: "axm-task-board-filters", inputs: { isQueryParam: { classPropertyName: "isQueryParam", publicName: "isQueryParam", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { applyClicked: "applyClicked" }, ngImport: i0, template: "<div class=\"ax-px-4 ax-py-3 ax-flex ax-flex-col ax-gap-2 ax-sm ax-w-[20rem]\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"handleContextChanged($event)\">\n <ax-form>\n <div class=\"ax-flex ax-flex-col ax-gap-4\">\n <!-- @if (taskTypeItems()) {\n <ax-form-field>\n <ax-label> </ax-label>\n <ax-selection-list\n [items]=\"taskTypeItems()!\"\n [ngModel]=\"selectedTaskTypeValues()!\"\n (onValueChanged)=\"handleTaskTypeSelectionChange.emit($event.value)\"\n direction=\"vertical\"\n [multiple]=\"multiple()\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n >\n <ng-template #itemTemplate let-item>\n <div class=\"ax-flex ax-items-center\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n <span [class]=\"item.icon ? 'ax-ml-2' : ''\">{{ item.text }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n <ax-select-box\n [dataSource]=\"taskTypeItems()!\"\n [ngModel]=\"selectedTaskTypeValues()!\"\n (onValueChanged)=\"handleTaskTypeSelectionChange.emit($event.value)\"\n [multiple]=\"multiple()\"\n valueField=\"id\"\n textField=\"text\"\n >\n </ax-select-box>\n </ax-form-field>\n <hr />\n } -->\n @for (node of nodes(); track $index) {\n <ax-form-field>\n @if (node.meta?.['title']) {\n <ax-label>\n {{ node.meta?.['title'] | translate: { scope: rootConfig.config.i18n } | async }}\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"node\" [mode]=\"'edit'\"></ng-container>\n </ax-form-field>\n }\n </div>\n <!-- <div class=\"ax-flex ax-gap-2 ax-mt-6 ax-mb-1\">\n <ax-button\n (onClick)=\"handleReset()\"\n class=\"ax-w-full\"\n [text]=\"'@general:actions.clear.title' | translate | async\"\n ></ax-button>\n <ax-button\n color=\"primary\"\n [type]=\"'submit'\"\n (onClick)=\"handleApply()\"\n class=\"ax-w-full\"\n [text]=\"'@general:actions.apply.title' | translate | async\"\n ></ax-button>\n </div> -->\n </ax-form>\n </axp-widgets-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "component", type: AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
525
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMTaskBoardFiltersComponent, isStandalone: true, selector: "axm-task-board-filters", inputs: { isQueryParam: { classPropertyName: "isQueryParam", publicName: "isQueryParam", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { applyClicked: "applyClicked" }, ngImport: i0, template: "<div class=\"ax-px-4 ax-py-3 ax-flex ax-flex-col ax-gap-2 ax-sm ax-w-[20rem]\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"handleContextChanged($event)\">\n <ax-form>\n <div class=\"ax-flex ax-flex-col ax-gap-4\">\n <!-- @if (taskTypeItems()) {\n <ax-form-field>\n <ax-label> </ax-label>\n <ax-selection-list\n [items]=\"taskTypeItems()!\"\n [ngModel]=\"selectedTaskTypeValues()!\"\n (onValueChanged)=\"handleTaskTypeSelectionChange.emit($event.value)\"\n direction=\"vertical\"\n [multiple]=\"multiple()\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n >\n <ng-template #itemTemplate let-item>\n <div class=\"ax-flex ax-items-center\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n <span [class]=\"item.icon ? 'ax-ml-2' : ''\">{{ item.text }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n <ax-select-box\n [dataSource]=\"taskTypeItems()!\"\n [ngModel]=\"selectedTaskTypeValues()!\"\n (onValueChanged)=\"handleTaskTypeSelectionChange.emit($event.value)\"\n [multiple]=\"multiple()\"\n valueField=\"id\"\n textField=\"text\"\n >\n </ax-select-box>\n </ax-form-field>\n <hr />\n } -->\n @for (node of nodes(); track $index) {\n <ax-form-field>\n @if (node.meta?.['title']) {\n <ax-label>\n {{ node.meta?.['title'] | translate: { scope: rootConfig.config.i18n } | async }}\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"node\" [mode]=\"'edit'\"></ng-container>\n </ax-form-field>\n }\n </div>\n <!-- <div class=\"ax-flex ax-gap-2 ax-mt-6 ax-mb-1\">\n <ax-button\n (onClick)=\"handleReset()\"\n class=\"ax-w-full\"\n [text]=\"'@general:actions.clear.title' | translate | async\"\n ></ax-button>\n <ax-button\n color=\"primary\"\n [type]=\"'submit'\"\n (onClick)=\"handleApply()\"\n class=\"ax-w-full\"\n [text]=\"'@general:actions.apply.title' | translate | async\"\n ></ax-button>\n </div> -->\n </ax-form>\n </axp-widgets-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "component", type: AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
526
526
  }
527
527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMTaskBoardFiltersComponent, decorators: [{
528
528
  type: Component,
@@ -895,6 +895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
895
895
  }], propDecorators: { schedulerComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXSchedulerComponent), { isSignal: true }] }], taskPopover: [{ type: i0.ViewChild, args: ['taskPopover', { isSignal: true }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], startingDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "startingDate", required: false }] }], selectedView: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedView", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], onTaskClick: [{ type: i0.Output, args: ["onTaskClick"] }], onTaskChanged: [{ type: i0.Output, args: ["onTaskChanged"] }], onMonthSlotDblClicked: [{ type: i0.Output, args: ["onMonthSlotDblClicked"] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }], component: [{ type: i0.Output, args: ["component"] }], onTaskRightClick: [{ type: i0.Output, args: ["onTaskRightClick"] }], onRangeChanged: [{ type: i0.Output, args: ["onRangeChanged"] }] } });
896
896
 
897
897
  class AXMTaskBoardGridViewComponent {
898
+ #dataSourceChanged;
898
899
  constructor() {
899
900
  this.vm = inject(AXMTaskBoardViewModel);
900
901
  this.localeService = inject(AXLocaleService);
@@ -905,6 +906,7 @@ class AXMTaskBoardGridViewComponent {
905
906
  this.onActionClick = output();
906
907
  this.fetchedTasks = signal([], ...(ngDevMode ? [{ debugName: "fetchedTasks" }] : []));
907
908
  this.columns = signal([], ...(ngDevMode ? [{ debugName: "columns" }] : []));
909
+ this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: "grid" }] : []));
908
910
  this.tasksDataSource = computed(() => {
909
911
  const parentDataSource = this.dataSource();
910
912
  return new AXDataSource({
@@ -927,6 +929,8 @@ class AXMTaskBoardGridViewComponent {
927
929
  startDate: this.calendarService.format(task.startDate, 'DD/MM/YYYY HH:mm', {
928
930
  locale: this.localeService.activeProfile().calendar.system,
929
931
  }),
932
+ // Store the original task for row click handler
933
+ _originalTask: task,
930
934
  }));
931
935
  return { items: mappedItems, total: result.total };
932
936
  },
@@ -938,7 +942,23 @@ class AXMTaskBoardGridViewComponent {
938
942
  });
939
943
  }, ...(ngDevMode ? [{ debugName: "tasksDataSource" }] : []));
940
944
  this.#dataSourceChanged = effect(() => {
941
- this.tasksDataSource().refresh();
945
+ // Track filter-related signals that affect the data source
946
+ // When these change, the parent's filter() computed signal changes,
947
+ // which means the data source function will return different results
948
+ this.vm.selectedTaskTypeNames();
949
+ this.vm.selectedAssigneeIds();
950
+ this.vm.selectedReporterIds();
951
+ this.vm.selectedPriorities();
952
+ this.vm.currentDate();
953
+ this.vm.daysCount();
954
+ this.vm.currentViewMode();
955
+ // Use untracked to refresh the grid without tracking it
956
+ untracked(() => {
957
+ // Schedule refresh in next tick to avoid issues during effect execution
958
+ setTimeout(() => {
959
+ this.grid()?.refresh();
960
+ }, 0);
961
+ });
942
962
  }, ...(ngDevMode ? [{ debugName: "#dataSourceChanged" }] : []));
943
963
  this.#providerChanged = effect(async () => {
944
964
  const taskType = this.vm.selectedTaskTypes()[0];
@@ -952,12 +972,22 @@ class AXMTaskBoardGridViewComponent {
952
972
  }
953
973
  });
954
974
  }, ...(ngDevMode ? [{ debugName: "#providerChanged" }] : []));
975
+ // Ensure data source is refreshed after initial render
976
+ afterNextRender(() => {
977
+ untracked(() => {
978
+ this.grid()?.refresh();
979
+ });
980
+ });
955
981
  }
956
- #dataSourceChanged;
957
982
  #providerChanged;
958
983
  handleRowClick(event) {
959
984
  if (event.data) {
960
- this.onTaskClick.emit(event.data);
985
+ // Get the original task from the mapped item or find it by ID
986
+ const mappedItem = event.data;
987
+ const originalTask = mappedItem._originalTask || this.fetchedTasks().find((task) => task.id === mappedItem.id);
988
+ if (originalTask) {
989
+ this.onTaskClick.emit(originalTask);
990
+ }
961
991
  }
962
992
  }
963
993
  onActionClickHandler(e) {
@@ -967,12 +997,12 @@ class AXMTaskBoardGridViewComponent {
967
997
  this.onActionClick.emit({ nativeEvent: e.nativeEvent, task });
968
998
  }
969
999
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMTaskBoardGridViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
970
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMTaskBoardGridViewComponent, isStandalone: true, selector: "axm-task-board-grid-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskClick: "onTaskClick", onActionClick: "onActionClick" }, ngImport: i0, template: "<ax-data-table\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"tasksDataSource()\"\n (onRowClick)=\"handleRowClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"type\" caption=\"type\" [width]=\"'150px'\"></ax-text-column>\n\n @if (columns().length) {\n <ng-container>\n @for (column of columns(); track column) {\n <axp-widget-column-renderer\n [node]=\"column.widget\"\n [caption]=\"(column.title | translate | async)!\"\n ></axp-widget-column-renderer>\n }\n </ng-container>\n }\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n</ax-data-table>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "rowDetailsTemplate", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$2.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "component", type: i1$2.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1000
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMTaskBoardGridViewComponent, isStandalone: true, selector: "axm-task-board-grid-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskClick: "onTaskClick", onActionClick: "onActionClick" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n #grid\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"tasksDataSource()\"\n (onRowClick)=\"handleRowClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column [allowResizing]=\"true\" dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"type\" caption=\"type\" [width]=\"'150px'\"></ax-text-column>\n\n @if (columns().length) {\n <ng-container>\n @for (column of columns(); track column) {\n <axp-widget-column-renderer\n [node]=\"column.widget\"\n [caption]=\"(column.title | translate | async)!\"\n ></axp-widget-column-renderer>\n }\n </ng-container>\n }\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n</ax-data-table>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "rowDetailsTemplate", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$2.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "component", type: i1$2.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
971
1001
  }
972
1002
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMTaskBoardGridViewComponent, decorators: [{
973
1003
  type: Component,
974
- args: [{ selector: 'axm-task-board-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule, AXTranslatorPipe, AsyncPipe, AXPWidgetCoreModule], template: "<ax-data-table\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"tasksDataSource()\"\n (onRowClick)=\"handleRowClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"type\" caption=\"type\" [width]=\"'150px'\"></ax-text-column>\n\n @if (columns().length) {\n <ng-container>\n @for (column of columns(); track column) {\n <axp-widget-column-renderer\n [node]=\"column.widget\"\n [caption]=\"(column.title | translate | async)!\"\n ></axp-widget-column-renderer>\n }\n </ng-container>\n }\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n</ax-data-table>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
975
- }], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], onTaskClick: [{ type: i0.Output, args: ["onTaskClick"] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }] } });
1004
+ args: [{ selector: 'axm-task-board-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule, AXTranslatorPipe, AsyncPipe, AXPWidgetCoreModule], template: "<ax-data-table\n #grid\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"tasksDataSource()\"\n (onRowClick)=\"handleRowClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column [allowResizing]=\"true\" dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"type\" caption=\"type\" [width]=\"'150px'\"></ax-text-column>\n\n @if (columns().length) {\n <ng-container>\n @for (column of columns(); track column) {\n <axp-widget-column-renderer\n [node]=\"column.widget\"\n [caption]=\"(column.title | translate | async)!\"\n ></axp-widget-column-renderer>\n }\n </ng-container>\n }\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n</ax-data-table>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
1005
+ }], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], onTaskClick: [{ type: i0.Output, args: ["onTaskClick"] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }], grid: [{ type: i0.ViewChild, args: ['grid', { isSignal: true }] }] } });
976
1006
 
977
1007
  class AXMTaskBoardKanbanViewComponent {
978
1008
  constructor() {
@@ -1061,21 +1091,7 @@ class AXMTaskBoardKanbanViewComponent {
1061
1091
  }
1062
1092
  // Register the async operation using event.wait()
1063
1093
  // The kanban component will await this promise before proceeding
1064
- // Check if wait method exists (it should after kanban package is rebuilt)
1065
- const eventWithWait = event;
1066
- if (typeof eventWithWait.wait === 'function') {
1067
- eventWithWait.wait(this.executeDropAction(event, task, provider));
1068
- }
1069
- else {
1070
- // Fallback: This should not happen if kanban package is rebuilt
1071
- console.error('[KanbanDrop] event.wait() not available! Kanban package needs to be rebuilt.');
1072
- console.error('[KanbanDrop] Falling back to synchronous execution (may cause issues)');
1073
- // Execute synchronously - this won't wait for async operations!
1074
- this.executeDropAction(event, task, provider).catch((error) => {
1075
- console.error('[KanbanDrop] Error in fallback execution:', error);
1076
- event.canceled = true;
1077
- });
1078
- }
1094
+ event.wait(this.executeDropAction(event, task, provider));
1079
1095
  }
1080
1096
  /**
1081
1097
  * Executes the action for a drop operation.
@@ -1461,6 +1477,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1461
1477
  }], propDecorators: { kanbanComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXKanbanComponent), { isSignal: true }] }], taskPopover: [{ type: i0.ViewChild, args: ['taskPopover', { isSignal: true }] }], tasks: [{ type: i0.Input, args: [{ isSignal: true, alias: "tasks", required: true }] }, { type: i0.Output, args: ["tasksChange"] }], onTaskClick: [{ type: i0.Output, args: ["onTaskClick"] }], onTaskChanged: [{ type: i0.Output, args: ["onTaskChanged"] }], component: [{ type: i0.Output, args: ["component"] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }] } });
1462
1478
 
1463
1479
  class AXMTaskBoardStatusGroupedGridViewComponent {
1480
+ #dataChanged;
1481
+ #providerChanged;
1482
+ #gridsChanged;
1464
1483
  constructor() {
1465
1484
  this.vm = inject(AXMTaskBoardViewModel);
1466
1485
  this.localeService = inject(AXLocaleService);
@@ -1472,7 +1491,18 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1472
1491
  this.allFetchedTasks = signal([], ...(ngDevMode ? [{ debugName: "allFetchedTasks" }] : []));
1473
1492
  this.columns = signal([], ...(ngDevMode ? [{ debugName: "columns" }] : []));
1474
1493
  this.statuses = signal([], ...(ngDevMode ? [{ debugName: "statuses" }] : []));
1494
+ this.grids = viewChildren('grid', ...(ngDevMode ? [{ debugName: "grids" }] : []));
1475
1495
  this.#dataChanged = effect(async () => {
1496
+ // Track filter-related signals that affect the data source
1497
+ // When these change, the parent's filter() computed signal changes,
1498
+ // which means the data source function will return different results
1499
+ this.vm.selectedTaskTypeNames();
1500
+ this.vm.selectedAssigneeIds();
1501
+ this.vm.selectedReporterIds();
1502
+ this.vm.selectedPriorities();
1503
+ this.vm.currentDate();
1504
+ this.vm.daysCount();
1505
+ this.vm.currentViewMode();
1476
1506
  const parentDataSource = this.dataSource();
1477
1507
  const allStatuses = this.statuses();
1478
1508
  if (!parentDataSource || allStatuses.length === 0) {
@@ -1492,11 +1522,17 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1492
1522
  });
1493
1523
  this.groupedTasks.set(statusGroups);
1494
1524
  untracked(() => {
1525
+ // Use afterRender to ensure data tables are rendered before refreshing
1495
1526
  setTimeout(() => {
1527
+ // Refresh data sources
1496
1528
  this.groupedTasks()?.forEach((group) => {
1497
1529
  group.tasks.refresh();
1498
1530
  });
1499
- });
1531
+ // Refresh data table components
1532
+ this.grids().forEach((grid) => {
1533
+ grid.refresh();
1534
+ });
1535
+ }, 0);
1500
1536
  });
1501
1537
  }, ...(ngDevMode ? [{ debugName: "#dataChanged" }] : []));
1502
1538
  this.#providerChanged = effect(async () => {
@@ -1512,9 +1548,35 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1512
1548
  }
1513
1549
  });
1514
1550
  }, ...(ngDevMode ? [{ debugName: "#providerChanged" }] : []));
1551
+ this.#gridsChanged = effect(() => {
1552
+ // Track when groupedTasks changes to refresh grids
1553
+ const groups = this.groupedTasks();
1554
+ untracked(() => {
1555
+ // Wait for grids to be rendered
1556
+ setTimeout(() => {
1557
+ this.grids().forEach((grid) => {
1558
+ grid.refresh();
1559
+ });
1560
+ }, 100);
1561
+ });
1562
+ }, ...(ngDevMode ? [{ debugName: "#gridsChanged" }] : []));
1563
+ // Ensure data sources are refreshed after initial render
1564
+ afterNextRender(() => {
1565
+ untracked(() => {
1566
+ // Use a longer timeout to ensure data tables are fully rendered
1567
+ setTimeout(() => {
1568
+ // Refresh data sources
1569
+ this.groupedTasks()?.forEach((group) => {
1570
+ group.tasks.refresh();
1571
+ });
1572
+ // Refresh data table components
1573
+ this.grids().forEach((grid) => {
1574
+ grid.refresh();
1575
+ });
1576
+ }, 200);
1577
+ });
1578
+ });
1515
1579
  }
1516
- #dataChanged;
1517
- #providerChanged;
1518
1580
  createTaskDataSourceForGroup(tasks) {
1519
1581
  return new AXDataSource({
1520
1582
  load: async (e) => {
@@ -1552,12 +1614,12 @@ class AXMTaskBoardStatusGroupedGridViewComponent {
1552
1614
  this.onActionClick.emit({ nativeEvent: e.nativeEvent, task });
1553
1615
  }
1554
1616
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMTaskBoardStatusGroupedGridViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1555
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMTaskBoardStatusGroupedGridViewComponent, isStandalone: true, selector: "axm-task-board-status-grouped-grid-view", inputs: { provider: { classPropertyName: "provider", publicName: "provider", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onActionClick: "onActionClick" }, ngImport: i0, template: "@for (group of groupedTasks(); track group) {\n <h1 class=\"ax-text-xl ax-font-bold\">{{ group.statusInfo.title }}</h1>\n <ax-data-table\n class=\"ax-h-[300px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n\n @for (column of columns(); track column) {\n <axp-widget-column-renderer\n [node]=\"column.widget\"\n [caption]=\"(column.title | translate | async)!\"\n ></axp-widget-column-renderer>\n }\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n </ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "rowDetailsTemplate", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$2.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "component", type: i1$2.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1617
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMTaskBoardStatusGroupedGridViewComponent, isStandalone: true, selector: "axm-task-board-status-grouped-grid-view", inputs: { provider: { classPropertyName: "provider", publicName: "provider", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onActionClick: "onActionClick" }, viewQueries: [{ propertyName: "grids", predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (group of groupedTasks(); track group) {\n <h1 class=\"ax-text-xl ax-font-bold\">{{ group.statusInfo.title }}</h1>\n <ax-data-table\n #grid\n class=\"ax-h-[300px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n\n \n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n </ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "rowDetailsTemplate", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$2.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "component", type: i1$2.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1556
1618
  }
1557
1619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMTaskBoardStatusGroupedGridViewComponent, decorators: [{
1558
1620
  type: Component,
1559
- args: [{ selector: 'axm-task-board-status-grouped-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule, AXTranslatorPipe, AsyncPipe, AXPWidgetCoreModule], template: "@for (group of groupedTasks(); track group) {\n <h1 class=\"ax-text-xl ax-font-bold\">{{ group.statusInfo.title }}</h1>\n <ax-data-table\n class=\"ax-h-[300px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n\n @for (column of columns(); track column) {\n <axp-widget-column-renderer\n [node]=\"column.widget\"\n [caption]=\"(column.title | translate | async)!\"\n ></axp-widget-column-renderer>\n }\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n </ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
1560
- }], propDecorators: { provider: [{ type: i0.Input, args: [{ isSignal: true, alias: "provider", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }] } });
1621
+ args: [{ selector: 'axm-task-board-status-grouped-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule, AXPWidgetCoreModule], template: "@for (group of groupedTasks(); track group) {\n <h1 class=\"ax-text-xl ax-font-bold\">{{ group.statusInfo.title }}</h1>\n <ax-data-table\n #grid\n class=\"ax-h-[300px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'500px'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"reporter\" caption=\"Reporter\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"assignee\" caption=\"Assignee\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n\n \n\n <ax-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n (onItemClick)=\"onActionClickHandler($event)\"\n [items]=\"[{ name: 'view', text: 'View', icon: 'ax-icon ax-icon-more-horizontal' }]\"\n ></ax-command-column>\n </ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
1622
+ }], ctorParameters: () => [], propDecorators: { provider: [{ type: i0.Input, args: [{ isSignal: true, alias: "provider", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }], grids: [{ type: i0.ViewChildren, args: ['grid', { isSignal: true }] }] } });
1561
1623
 
1562
1624
  class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
1563
1625
  constructor() {
@@ -2234,4 +2296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2234
2296
  }], propDecorators: { popover: [{ type: i0.ViewChild, args: ['popover', { isSignal: true }] }], calendar: [{ type: i0.ViewChild, args: ['calendar', { isSignal: true }] }], sidebarCalendar: [{ type: i0.ViewChild, args: ['sidebarCalendar', { isSignal: true }] }], dayCellTemplateRef: [{ type: i0.ViewChild, args: ['dayCellTemplate', { isSignal: true }] }], contextMenu: [{ type: i0.ViewChild, args: ['rootContextMenu', { isSignal: true }] }] } });
2235
2297
 
2236
2298
  export { AXMTaskBoardPage };
2237
- //# sourceMappingURL=acorex-modules-task-management-task-board.page-BvDWiiTL.mjs.map
2299
+ //# sourceMappingURL=acorex-modules-task-management-task-board.page-CIlxqtgJ.mjs.map