@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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-oliZ_Wk_.mjs → acorex-modules-assessment-management-assessment-case.entity-yMC4T30A.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DD4GUa6H.mjs → acorex-modules-assessment-management-assessment-session.entity-boi7xntr.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DD4GUa6H.mjs.map → acorex-modules-assessment-management-assessment-session.entity-boi7xntr.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CMnXyhcS.mjs → acorex-modules-assessment-management-fill-assessment-session.command-CIywSVKe.mjs} +3 -3
- 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
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Db9SiDFY.mjs → acorex-modules-assessment-management-preview-questionnaire.command-gQ-Gg2EI.mjs} +4 -4
- 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
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-6TlXMGHR.mjs → acorex-modules-assessment-management-question-bank-item.entity-BJi5O2hZ.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-fekQ1wRZ.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-CQQNQQIY.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-Bn0yoxWv.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-2CgpHl4g.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-CfLJ27Ob.mjs → acorex-modules-assessment-management-questionnaire-builder.component-DAOND6qy.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-CfLJ27Ob.mjs.map → acorex-modules-assessment-management-questionnaire-builder.component-DAOND6qy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BqxEvzqZ.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Bbj8DGdn.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-BhYlcsrV.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-d8xlbs8Z.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-BhYlcsrV.mjs.map → acorex-modules-assessment-management-questionnaire-viewer.service-d8xlbs8Z.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CrnOr1-B.mjs → acorex-modules-assessment-management-questionnaire.entity-eQ29UST5.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CrnOr1-B.mjs.map → acorex-modules-assessment-management-questionnaire.entity-eQ29UST5.mjs.map} +1 -1
- 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
- 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
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-HBjLE7aN.mjs → acorex-modules-auth-acorex-modules-auth-DbJdPw6r.mjs} +11 -11
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-HBjLE7aN.mjs.map → acorex-modules-auth-acorex-modules-auth-DbJdPw6r.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-4w3jVTCM.mjs → acorex-modules-auth-app-chooser.component-C3-Owzk3.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-4w3jVTCM.mjs.map → acorex-modules-auth-app-chooser.component-C3-Owzk3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-C7zKK9Cq.mjs → acorex-modules-auth-login.module-DWVzAe71.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-C7zKK9Cq.mjs.map → acorex-modules-auth-login.module-DWVzAe71.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-C_F0t2Pw.mjs → acorex-modules-auth-master.layout-CRGoKIyG.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-C_F0t2Pw.mjs.map → acorex-modules-auth-master.layout-CRGoKIyG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-D65wq-WJ.mjs → acorex-modules-auth-oauth-callback.component-BbYMC-Ue.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-D65wq-WJ.mjs.map → acorex-modules-auth-oauth-callback.component-BbYMC-Ue.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-CCC116bI.mjs → acorex-modules-auth-password.component-99M7R15t.mjs} +4 -4
- package/fesm2022/acorex-modules-auth-password.component-99M7R15t.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-B1GLfSy9.mjs → acorex-modules-auth-password.component-C6mlKjXP.mjs} +3 -3
- package/fesm2022/acorex-modules-auth-password.component-C6mlKjXP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-DmDkUeHY.mjs → acorex-modules-auth-routes-BOhInfU0.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-DmDkUeHY.mjs.map → acorex-modules-auth-routes-BOhInfU0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DZKmZyWk.mjs → acorex-modules-auth-tenant-chooser.component-h5qiAik2.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DZKmZyWk.mjs.map → acorex-modules-auth-tenant-chooser.component-h5qiAik2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-CSGhGYVU.mjs → acorex-modules-auth-two-factor-code.component-CrP_8k0o.mjs} +2 -2
- package/fesm2022/acorex-modules-auth-two-factor-code.component-CrP_8k0o.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor.module-DsD1WH-_.mjs → acorex-modules-auth-two-factor.module-B52z5Pre.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-DsD1WH-_.mjs.map → acorex-modules-auth-two-factor.module-B52z5Pre.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-DPR059of.mjs → acorex-modules-auth-user-sessions.component-5YAm7mZv.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-DPR059of.mjs.map → acorex-modules-auth-user-sessions.component-5YAm7mZv.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-C6Q2thLJ.mjs → acorex-modules-document-management-link-dialog.component-Civ7UZb8.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-link-dialog.component-Civ7UZb8.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-CyqY25u5.mjs → acorex-modules-document-management-share-dialog.component-BwUZShJg.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-share-dialog.component-BwUZShJg.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DbOBvVj3.mjs → acorex-modules-document-management-share-email-dialog.component-BMiCmb1k.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-BMiCmb1k.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management.mjs +30 -38
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-DqnjNpEx.mjs → acorex-modules-help-desk-acorex-modules-help-desk-CA1t2gEZ.mjs} +3 -3
- 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
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-7zCCgi2E.mjs → acorex-modules-help-desk-capture-screen.component-Bnrk1dPT.mjs} +2 -2
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-7zCCgi2E.mjs.map → acorex-modules-help-desk-capture-screen.component-Bnrk1dPT.mjs.map} +1 -1
- package/fesm2022/acorex-modules-help-desk.mjs +1 -1
- package/fesm2022/{acorex-modules-meeting-management-meeting-publish-popup.component-Inwn6yaO.mjs → acorex-modules-meeting-management-meeting-publish-popup.component-B7NAg4MD.mjs} +2 -2
- package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-B7NAg4MD.mjs.map +1 -0
- package/fesm2022/acorex-modules-meeting-management.mjs +1 -1
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BYFduyOb.mjs → acorex-modules-settings-management-acorex-modules-settings-management-BRVfUYiM.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-B1yQvXMb.mjs → acorex-modules-settings-management-permission-definition.provider-WSxrvAsV.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-B1yQvXMb.mjs.map → acorex-modules-settings-management-permission-definition.provider-WSxrvAsV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-DE4fv4Y8.mjs → acorex-modules-settings-management-setting-page.component-MYnJYUxE.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-DE4fv4Y8.mjs.map → acorex-modules-settings-management-setting-page.component-MYnJYUxE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-CY6eBCDV.mjs → acorex-modules-settings-management-setting-view.component-Cq80snth.mjs} +3 -3
- package/fesm2022/acorex-modules-settings-management-setting-view.component-Cq80snth.mjs.map +1 -0
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-BvDWiiTL.mjs → acorex-modules-task-management-task-board.page-CIlxqtgJ.mjs} +92 -30
- package/fesm2022/acorex-modules-task-management-task-board.page-CIlxqtgJ.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/package.json +2 -2
- package/fesm2022/acorex-modules-auth-password.component-B1GLfSy9.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-CCC116bI.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-two-factor-code.component-CSGhGYVU.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-link-dialog.component-C6Q2thLJ.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-dialog.component-CyqY25u5.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-DbOBvVj3.mjs.map +0 -1
- package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-Inwn6yaO.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-view.component-CY6eBCDV.mjs.map +0 -1
- 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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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-
|
|
2299
|
+
//# sourceMappingURL=acorex-modules-task-management-task-board.page-CIlxqtgJ.mjs.map
|