@acorex-platform/framework-client 0.0.38 → 0.0.48
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-platform-framework-client-auth.mjs +212 -44
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs → acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs} +31 -1
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-common.mjs +1172 -193
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +233 -132
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +295 -59
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs} +10 -6
- package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs +66 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs +195 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +4015 -1014
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +1179 -304
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs} +1701 -300
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +2 -2
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +47 -8
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +3854 -3292
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs +33319 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs} +8 -5
- package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs +45 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs +68 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs +88 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs +71 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs +81 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs} +41 -23
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs +71 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs +111 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs +77 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs} +21 -8
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs +124 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs +345 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -31985
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +2 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-runtime.mjs +2 -2
- package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs +122 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +424 -103
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs → acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs} +102 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +174 -22
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/package.json +2 -2
- package/realtime/README.md +1 -1
- package/types/acorex-platform-framework-client-auth.d.ts +18 -1
- package/types/acorex-platform-framework-client-common.d.ts +243 -9
- package/types/acorex-platform-framework-client-core.d.ts +152 -119
- package/types/acorex-platform-framework-client-layout-builder.d.ts +29 -0
- package/types/acorex-platform-framework-client-layout-components.d.ts +717 -147
- package/types/acorex-platform-framework-client-layout-designer.d.ts +192 -14
- package/types/acorex-platform-framework-client-layout-entity.d.ts +167 -92
- package/types/acorex-platform-framework-client-layout-views.d.ts +23 -1
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +148 -40
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +261 -119
- package/types/acorex-platform-framework-client-realtime.d.ts +16 -3
- package/types/acorex-platform-framework-client-themes-default.d.ts +62 -11
- package/types/acorex-platform-framework-client-themes-shared.d.ts +25 -2
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs +0 -77
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs +0 -122
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +0 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i2 from '@acorex/components/button';
|
|
2
2
|
import { AXButtonModule } from '@acorex/components/button';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i2$1 from '@acorex/components/code-editor';
|
|
4
4
|
import { AXCodeEditorModule } from '@acorex/components/code-editor';
|
|
5
|
-
import * as i2 from '@acorex/components/decorators';
|
|
5
|
+
import * as i2$2 from '@acorex/components/decorators';
|
|
6
6
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
7
7
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
8
8
|
import * as i3 from '@acorex/core/translation';
|
|
9
9
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
10
10
|
import { setupPopupFooterKeyboardShortcuts } from '@acorex-platform/framework-client/core';
|
|
11
|
-
import * as i1$
|
|
11
|
+
import * as i1$1 from '@angular/common';
|
|
12
12
|
import { CommonModule } from '@angular/common';
|
|
13
13
|
import * as i0 from '@angular/core';
|
|
14
14
|
import { input, linkedSignal, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
15
15
|
import * as i1 from '@angular/forms';
|
|
16
16
|
import { FormsModule } from '@angular/forms';
|
|
17
|
+
import { PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES } from './acorex-platform-framework-client-layout-components.mjs';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Popup for editing a binding/expression string (e.g. `{{ context.eval('x') }}`).
|
|
@@ -28,6 +29,7 @@ class AXPBindingExpressionEditorPopupComponent extends AXBasePageComponent {
|
|
|
28
29
|
...(ngDevMode ? [{ debugName: "initialValue" }] : /* istanbul ignore next */ []));
|
|
29
30
|
//#endregion
|
|
30
31
|
//#region ---- Properties ----
|
|
32
|
+
this.minRow = PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES;
|
|
31
33
|
this.currentValue = linkedSignal(() => (this.initialValue() ?? ''), /* @ts-ignore */
|
|
32
34
|
...(ngDevMode ? [{ debugName: "currentValue" }] : /* istanbul ignore next */ []));
|
|
33
35
|
setupPopupFooterKeyboardShortcuts(() => [
|
|
@@ -65,6 +67,7 @@ class AXPBindingExpressionEditorPopupComponent extends AXBasePageComponent {
|
|
|
65
67
|
(ngModelChange)="handleValueChange($event)"
|
|
66
68
|
language="javascript"
|
|
67
69
|
[lineNumbers]="true"
|
|
70
|
+
[minRow]="minRow"
|
|
68
71
|
class="w-full h-full min-h-96"
|
|
69
72
|
></ax-code-editor>
|
|
70
73
|
</div>
|
|
@@ -85,7 +88,7 @@ class AXPBindingExpressionEditorPopupComponent extends AXBasePageComponent {
|
|
|
85
88
|
></ax-button>
|
|
86
89
|
</ax-suffix>
|
|
87
90
|
</ax-footer>
|
|
88
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type:
|
|
91
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i2$1.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
89
92
|
}
|
|
90
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPBindingExpressionEditorPopupComponent, decorators: [{
|
|
91
94
|
type: Component,
|
|
@@ -99,6 +102,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
99
102
|
(ngModelChange)="handleValueChange($event)"
|
|
100
103
|
language="javascript"
|
|
101
104
|
[lineNumbers]="true"
|
|
105
|
+
[minRow]="minRow"
|
|
102
106
|
class="w-full h-full min-h-96"
|
|
103
107
|
></ax-code-editor>
|
|
104
108
|
</div>
|
|
@@ -133,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
133
137
|
}], ctorParameters: () => [], propDecorators: { initialValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialValue", required: true }] }] } });
|
|
134
138
|
|
|
135
139
|
export { AXPBindingExpressionEditorPopupComponent };
|
|
136
|
-
//# sourceMappingURL=acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-
|
|
140
|
+
//# sourceMappingURL=acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs","sources":["../../../../../libs/framework/client/layout/components/src/lib/property-viewer/binding-expression-editor-popup.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCodeEditorModule } from '@acorex/components/code-editor';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { setupPopupFooterKeyboardShortcuts } from '@acorex-platform/framework-client/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n linkedSignal,\n WritableSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES } from './property-viewer.types';\n\n/**\n * Popup for editing a binding/expression string (e.g. `{{ context.eval('x') }}`).\n * Mirrors the trigger expression editor UX: code editor with Save/Cancel.\n */\n@Component({\n selector: 'axp-binding-expression-editor-popup',\n template: `\n <div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"flex-1 p-4 overflow-hidden\" style=\"direction: ltr;\">\n <ax-code-editor\n [ngModel]=\"currentValue()\"\n (ngModelChange)=\"handleValueChange($event)\"\n language=\"javascript\"\n [lineNumbers]=\"true\"\n [minRow]=\"minRow\"\n class=\"w-full h-full min-h-96\"\n ></ax-code-editor>\n </div>\n </div>\n\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"solid\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCancelClick()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXCodeEditorModule,\n AXDecoratorModule,\n AXTranslationModule,\n ],\n})\nexport class AXPBindingExpressionEditorPopupComponent extends AXBasePageComponent {\n //#region ---- Inputs ----\n\n /** Use a distinct name to avoid popup 'data.value' overwriting the input signal. */\n initialValue = input.required<string | null>();\n\n //#endregion\n\n //#region ---- Properties ----\n\n protected readonly minRow = PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES;\n\n protected readonly currentValue: WritableSignal<string> = linkedSignal(\n () => (this.initialValue() ?? '') as string,\n );\n\n constructor() {\n super();\n setupPopupFooterKeyboardShortcuts(\n () => [\n {\n title: '@general:actions.cancel.title',\n command: 'cancel',\n handler: () => this.handleCancelClick(),\n },\n {\n title: '@general:actions.save.title',\n command: 'submit',\n handler: () => this.handleSaveClick(),\n },\n ],\n { id: 'binding-expression-editor-popup' },\n );\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleValueChange(newValue: string): void {\n this.currentValue.set(newValue);\n }\n\n protected handleCancelClick(): void {\n this.close();\n }\n\n protected handleSaveClick(): void {\n this.close({\n value: this.currentValue(),\n });\n }\n\n //#endregion\n}\n"],"names":["i3","i4","i5","i6"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as i2 from '@acorex/components/code-editor';
|
|
2
|
+
import { AXCodeEditorModule } from '@acorex/components/code-editor';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
+
import * as i1 from '@angular/forms';
|
|
6
|
+
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES } from './acorex-platform-framework-client-layout-components.mjs';
|
|
8
|
+
|
|
9
|
+
//#region ----- Imports -----
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region ----- Component -----
|
|
12
|
+
/**
|
|
13
|
+
* Inline binding-expression editor. Loaded on demand so the code-editor
|
|
14
|
+
* package stays off the dest first-load graph.
|
|
15
|
+
*/
|
|
16
|
+
class AXPPropertyViewerInlineCodeEditorComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
//#region ----- Inputs -----
|
|
19
|
+
this.value = input('', /* @ts-ignore */
|
|
20
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
21
|
+
this.onValueChange = input(() => undefined, /* @ts-ignore */
|
|
22
|
+
...(ngDevMode ? [{ debugName: "onValueChange" }] : /* istanbul ignore next */ []));
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region ----- Constants -----
|
|
25
|
+
this.minRow = PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES;
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPropertyViewerInlineCodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPPropertyViewerInlineCodeEditorComponent, isStandalone: true, selector: "axp-property-viewer-inline-code-editor", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, onValueChange: { classPropertyName: "onValueChange", publicName: "onValueChange", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
29
|
+
<div class="w-full overflow-hidden" style="direction: ltr">
|
|
30
|
+
<ax-code-editor
|
|
31
|
+
[ngModel]="value()"
|
|
32
|
+
(ngModelChange)="onValueChange()($event)"
|
|
33
|
+
language="javascript"
|
|
34
|
+
[lineNumbers]="true"
|
|
35
|
+
[minRow]="minRow"
|
|
36
|
+
class="w-full"
|
|
37
|
+
>
|
|
38
|
+
</ax-code-editor>
|
|
39
|
+
</div>
|
|
40
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i2.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPropertyViewerInlineCodeEditorComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: 'axp-property-viewer-inline-code-editor',
|
|
46
|
+
template: `
|
|
47
|
+
<div class="w-full overflow-hidden" style="direction: ltr">
|
|
48
|
+
<ax-code-editor
|
|
49
|
+
[ngModel]="value()"
|
|
50
|
+
(ngModelChange)="onValueChange()($event)"
|
|
51
|
+
language="javascript"
|
|
52
|
+
[lineNumbers]="true"
|
|
53
|
+
[minRow]="minRow"
|
|
54
|
+
class="w-full"
|
|
55
|
+
>
|
|
56
|
+
</ax-code-editor>
|
|
57
|
+
</div>
|
|
58
|
+
`,
|
|
59
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
60
|
+
encapsulation: ViewEncapsulation.None,
|
|
61
|
+
imports: [FormsModule, AXCodeEditorModule],
|
|
62
|
+
}]
|
|
63
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], onValueChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "onValueChange", required: false }] }] } });
|
|
64
|
+
|
|
65
|
+
export { AXPPropertyViewerInlineCodeEditorComponent };
|
|
66
|
+
//# sourceMappingURL=acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs","sources":["../../../../../libs/framework/client/layout/components/src/lib/property-viewer/property-viewer-inline-code-editor.component.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXCodeEditorModule } from '@acorex/components/code-editor';\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES } from './property-viewer.types';\n\n//#endregion\n\n//#region ----- Component -----\n\n/**\n * Inline binding-expression editor. Loaded on demand so the code-editor\n * package stays off the dest first-load graph.\n */\n@Component({\n selector: 'axp-property-viewer-inline-code-editor',\n template: `\n <div class=\"w-full overflow-hidden\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange()($event)\"\n language=\"javascript\"\n [lineNumbers]=\"true\"\n [minRow]=\"minRow\"\n class=\"w-full\"\n >\n </ax-code-editor>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXCodeEditorModule],\n})\nexport class AXPPropertyViewerInlineCodeEditorComponent {\n //#region ----- Inputs -----\n\n value = input<string>('');\n onValueChange = input<(next: string) => void>(() => undefined);\n\n //#endregion\n\n //#region ----- Constants -----\n\n protected readonly minRow = PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES;\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;AAAA;AAQA;AAEA;AAEA;;;AAGG;MAoBU,0CAA0C,CAAA;AAnBvD,IAAA,WAAA,GAAA;;QAsBE,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;AACzB,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAyB,MAAM,SAAS;0FAAC;;;QAM3C,IAAA,CAAA,MAAM,GAAG,2CAA2C;AAGxE,IAAA;8GAbY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjB3C;;;;;;;;;;;;GAYT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGS,WAAW,8VAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,eAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE9B,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAnBtD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC3C,iBAAA;;;"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { AXCommonModule } from '@acorex/cdk/common';
|
|
2
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
3
|
+
import * as i4 from '@acorex/components/loading';
|
|
4
|
+
import { AXLoadingModule } from '@acorex/components/loading';
|
|
5
|
+
import * as i1 from '@acorex/components/menu';
|
|
6
|
+
import { AXMenuModule } from '@acorex/components/menu';
|
|
7
|
+
import { AXSchedulerComponent } from '@acorex/components/scheduler';
|
|
8
|
+
import { AXFormatService } from '@acorex/core/format';
|
|
9
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
10
|
+
import * as i0 from '@angular/core';
|
|
11
|
+
import { input, inject, viewChild, signal, computed, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
12
|
+
import { AXPResourceAppointmentService } from './acorex-platform-framework-client-layout-components.mjs';
|
|
13
|
+
|
|
14
|
+
//#region ---- Imports ----
|
|
15
|
+
class AXPResourceAppointmentBoardComponent {
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region ---- Lifecycle ----
|
|
18
|
+
constructor() {
|
|
19
|
+
//#region ---- Inputs ----
|
|
20
|
+
/** Show resource headers in the timeline views. */
|
|
21
|
+
this.showResourceHeaders = input(true, /* @ts-ignore */
|
|
22
|
+
...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : /* istanbul ignore next */ []));
|
|
23
|
+
/** Show appointments that have no resourceId. */
|
|
24
|
+
this.showUnassignedAppointments = input(true, /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : /* istanbul ignore next */ []));
|
|
26
|
+
/** Optional provider name to filter the board (e.g. from route param). */
|
|
27
|
+
this.providerName = input(undefined, /* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [{ debugName: "providerName" }] : /* istanbul ignore next */ []));
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region ---- Services & Dependencies ----
|
|
31
|
+
this.resourceAppointmentService = inject(AXPResourceAppointmentService);
|
|
32
|
+
this.formatService = inject(AXFormatService);
|
|
33
|
+
this.translateService = inject(AXTranslationService);
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region ---- Component References ----
|
|
36
|
+
this.contextMenu = viewChild('contextMenu', /* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [{ debugName: "contextMenu" }] : /* istanbul ignore next */ []));
|
|
38
|
+
this.schedulerRef = viewChild('scheduler', /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "schedulerRef" }] : /* istanbul ignore next */ []));
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region ---- State ----
|
|
42
|
+
this.isReady = signal(false, /* @ts-ignore */
|
|
43
|
+
...(ngDevMode ? [{ debugName: "isReady" }] : /* istanbul ignore next */ []));
|
|
44
|
+
this.currentDate = signal(new Date(), /* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [{ debugName: "currentDate" }] : /* istanbul ignore next */ []));
|
|
46
|
+
this.currentView = signal('timeline-month', /* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [{ debugName: "currentView" }] : /* istanbul ignore next */ []));
|
|
48
|
+
this.currentAppointment = signal(null, /* @ts-ignore */
|
|
49
|
+
...(ngDevMode ? [{ debugName: "currentAppointment" }] : /* istanbul ignore next */ []));
|
|
50
|
+
/** Raw resources returned by providers. */
|
|
51
|
+
this.rawResources = signal([], /* @ts-ignore */
|
|
52
|
+
...(ngDevMode ? [{ debugName: "rawResources" }] : /* istanbul ignore next */ []));
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region ---- Computed Properties ----
|
|
55
|
+
/** Scheduler resources derived from provider data. */
|
|
56
|
+
this.schedulerResources = computed(() => this.rawResources().map((r) => ({
|
|
57
|
+
id: r.id,
|
|
58
|
+
title: r.title,
|
|
59
|
+
})), /* @ts-ignore */
|
|
60
|
+
...(ngDevMode ? [{ debugName: "schedulerResources" }] : /* istanbul ignore next */ []));
|
|
61
|
+
/** Flat list of scheduler appointments derived from provider data. */
|
|
62
|
+
this.schedulerAppointments = computed(() => this.rawResources().flatMap((resource) => resource.appointments.map((a) => ({
|
|
63
|
+
id: a.id,
|
|
64
|
+
title: a.title,
|
|
65
|
+
startDate: a.startDate,
|
|
66
|
+
endDate: a.endDate,
|
|
67
|
+
allDay: a.allDay,
|
|
68
|
+
description: a.description,
|
|
69
|
+
resourceId: a.resourceId ?? resource.id,
|
|
70
|
+
provider: a.provider,
|
|
71
|
+
}))), /* @ts-ignore */
|
|
72
|
+
...(ngDevMode ? [{ debugName: "schedulerAppointments" }] : /* istanbul ignore next */ []));
|
|
73
|
+
/** Formatted date range text for the toolbar. */
|
|
74
|
+
this.timeText = computed(() => {
|
|
75
|
+
const scheduler = this.schedulerRef();
|
|
76
|
+
return scheduler?.currentDateText() ?? this.formatCurrentDateRange();
|
|
77
|
+
}, /* @ts-ignore */
|
|
78
|
+
...(ngDevMode ? [{ debugName: "timeText" }] : /* istanbul ignore next */ []));
|
|
79
|
+
effect(() => {
|
|
80
|
+
this.providerName();
|
|
81
|
+
if (this.isReady()) {
|
|
82
|
+
this.loadData();
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async ngOnInit() {
|
|
87
|
+
await this.resolveProvidersAndReady();
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region ---- Provider Resolution ----
|
|
91
|
+
async resolveProvidersAndReady() {
|
|
92
|
+
await this.resourceAppointmentService.resolveProviders();
|
|
93
|
+
// this.resourceAppointmentService.refresh$.subscribe(() => this.loadData());
|
|
94
|
+
await this.loadData();
|
|
95
|
+
this.isReady.set(true);
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region ---- Data Loading ----
|
|
99
|
+
/** Fetches resource + appointment data from providers and updates signals. */
|
|
100
|
+
async loadData(range) {
|
|
101
|
+
const providerName = this.providerName();
|
|
102
|
+
const filter = {
|
|
103
|
+
...(range && { range: { from: range.from, end: range.end } }),
|
|
104
|
+
...(providerName && { providerNames: [providerName] }),
|
|
105
|
+
};
|
|
106
|
+
const resourceList = await this.resourceAppointmentService.getList(filter);
|
|
107
|
+
this.rawResources.set(resourceList);
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
//#region ---- Event Handlers ----
|
|
111
|
+
/** Re-load data when the scheduler view range changes and sync toolbar date. */
|
|
112
|
+
handleRangeChanged(range) {
|
|
113
|
+
//TODO FIX LATER
|
|
114
|
+
// this.currentDate.set(range.from);
|
|
115
|
+
// this.loadData(range);
|
|
116
|
+
}
|
|
117
|
+
/** Navigate to previous/next period based on current view. */
|
|
118
|
+
changeDate(forward) {
|
|
119
|
+
const date = new Date(this.currentDate().getTime());
|
|
120
|
+
const view = this.currentView();
|
|
121
|
+
switch (view) {
|
|
122
|
+
case 'timeline-day':
|
|
123
|
+
date.setDate(date.getDate() + (forward ? 1 : -1));
|
|
124
|
+
break;
|
|
125
|
+
case 'timeline-weekly':
|
|
126
|
+
date.setDate(date.getDate() + (forward ? 7 : -7));
|
|
127
|
+
break;
|
|
128
|
+
case 'timeline-month':
|
|
129
|
+
date.setMonth(date.getMonth() + (forward ? 1 : -1));
|
|
130
|
+
break;
|
|
131
|
+
default:
|
|
132
|
+
date.setDate(date.getDate() + (forward ? 1 : -1));
|
|
133
|
+
}
|
|
134
|
+
this.currentDate.set(date);
|
|
135
|
+
}
|
|
136
|
+
/** Fallback formatted date range when scheduler ref is not yet available. */
|
|
137
|
+
formatCurrentDateRange() {
|
|
138
|
+
const d = this.currentDate();
|
|
139
|
+
return d ? this.formatService.format(d, 'datetime', { format: 'long' }) : '';
|
|
140
|
+
}
|
|
141
|
+
handleAppointmentClick(event) {
|
|
142
|
+
const appointment = event.appointment;
|
|
143
|
+
if (!appointment)
|
|
144
|
+
return;
|
|
145
|
+
this.currentAppointment.set(appointment);
|
|
146
|
+
const { clientX: x, clientY: y, target } = event.nativeEvent;
|
|
147
|
+
this.contextMenu()?.showAt({ x, y }, target);
|
|
148
|
+
}
|
|
149
|
+
async handleContextMenuOpening(event) {
|
|
150
|
+
const appointment = this.currentAppointment();
|
|
151
|
+
if (!appointment)
|
|
152
|
+
return;
|
|
153
|
+
const providerName = appointment.provider;
|
|
154
|
+
if (!providerName)
|
|
155
|
+
return;
|
|
156
|
+
const item = {
|
|
157
|
+
id: appointment.id,
|
|
158
|
+
title: appointment.title ?? '',
|
|
159
|
+
startDate: appointment.startDate,
|
|
160
|
+
endDate: appointment.endDate,
|
|
161
|
+
resourceId: appointment.resourceId,
|
|
162
|
+
description: appointment.description,
|
|
163
|
+
allDay: appointment.allDay,
|
|
164
|
+
};
|
|
165
|
+
const actions = await this.resourceAppointmentService.getActions(item, providerName);
|
|
166
|
+
for (const actionItem of actions) {
|
|
167
|
+
const t = actionItem.title;
|
|
168
|
+
const text = typeof t === 'string'
|
|
169
|
+
? t.startsWith('@')
|
|
170
|
+
? await this.translateService.translateAsync(t)
|
|
171
|
+
: t
|
|
172
|
+
: this.translateService.resolve(t);
|
|
173
|
+
event.items.push({
|
|
174
|
+
text,
|
|
175
|
+
icon: actionItem.icon,
|
|
176
|
+
color: actionItem.color,
|
|
177
|
+
break: actionItem.break,
|
|
178
|
+
data: { command: actionItem.command },
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
handleContextMenuItemClick(event) {
|
|
183
|
+
const providerName = this.currentAppointment()?.provider ?? '';
|
|
184
|
+
this.resourceAppointmentService.executeCommand(event.item.data?.command, providerName);
|
|
185
|
+
}
|
|
186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPResourceAppointmentBoardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPResourceAppointmentBoardComponent, isStandalone: true, selector: "axp-resource-appointment-board", inputs: { showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, providerName: { classPropertyName: "providerName", publicName: "providerName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [AXPResourceAppointmentService], viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, isSignal: true }, { propertyName: "schedulerRef", first: true, predicate: ["scheduler"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axp-resource-appointment__container flex flex-col min-h-0 h-full\">\n @if (isReady()) {\n <!-- TODO: Add weekly view 'timeline-weekly' -->\n <ax-scheduler\n #scheduler\n [views]=\"['timeline-day', 'timeline-month']\"\n [dataSource]=\"schedulerAppointments()\"\n [resources]=\"schedulerResources()\"\n [startingDate]=\"currentDate()\"\n [selectedView]=\"currentView()\"\n [draggable]=\"false\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n class=\"axp-resource-appointment__scheduler bg-lightest dark:bg-darkest flex-1\"\n ></ax-scheduler>\n\n <ax-context-menu\n #contextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n ></ax-context-menu>\n } @else {\n <div class=\"axp-resource-appointment__loading flex items-center justify-center w-full h-full\">\n <ax-loading></ax-loading>\n </div>\n }\n</div>\n", styles: [":host{display:block;height:100%;width:100%}:host .axp-resource-appointment__scheduler{--ax-comp-scheduler-width: 100%;height:100%;width:100%;min-height:400px}:host .axp-resource-appointment__loading{min-height:300px}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXCommonModule }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i1.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "closeOnRouteChange", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXSchedulerComponent, selector: "ax-scheduler", inputs: ["calendar", "startingDate", "endDayHour", "startDayHour", "hasHeader", "readonly", "draggable", "hasActions", "dragStartDelay", "weekend", "allowFullScreen", "multiDayViewDaysCount", "showResourceHeaders", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "showUnassignedAppointments", "resources", "resourceTemplate", "firstDayOfWeek", "tooltipTemplate", "dataSource", "holidays", "views", "selectedView"], outputs: ["selectedViewChange", "onDataLoaded", "onRangeChanged", "onSlotClicked", "onSlotDblClicked", "onSlotRightClick", "onAppointmentDrop", "onActionClick", "onAppointmentClicked", "onAppointmentDblClicked", "onAppointmentRightClick"] }, { kind: "ngmodule", type: AXButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
188
|
+
}
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPResourceAppointmentBoardComponent, decorators: [{
|
|
190
|
+
type: Component,
|
|
191
|
+
args: [{ selector: 'axp-resource-appointment-board', imports: [AXCommonModule, AXMenuModule, AXLoadingModule, AXSchedulerComponent, AXButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [AXPResourceAppointmentService], template: "<div class=\"axp-resource-appointment__container flex flex-col min-h-0 h-full\">\n @if (isReady()) {\n <!-- TODO: Add weekly view 'timeline-weekly' -->\n <ax-scheduler\n #scheduler\n [views]=\"['timeline-day', 'timeline-month']\"\n [dataSource]=\"schedulerAppointments()\"\n [resources]=\"schedulerResources()\"\n [startingDate]=\"currentDate()\"\n [selectedView]=\"currentView()\"\n [draggable]=\"false\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n class=\"axp-resource-appointment__scheduler bg-lightest dark:bg-darkest flex-1\"\n ></ax-scheduler>\n\n <ax-context-menu\n #contextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n ></ax-context-menu>\n } @else {\n <div class=\"axp-resource-appointment__loading flex items-center justify-center w-full h-full\">\n <ax-loading></ax-loading>\n </div>\n }\n</div>\n", styles: [":host{display:block;height:100%;width:100%}:host .axp-resource-appointment__scheduler{--ax-comp-scheduler-width: 100%;height:100%;width:100%;min-height:400px}:host .axp-resource-appointment__loading{min-height:300px}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
192
|
+
}], ctorParameters: () => [], propDecorators: { showResourceHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResourceHeaders", required: false }] }], showUnassignedAppointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUnassignedAppointments", required: false }] }], providerName: [{ type: i0.Input, args: [{ isSignal: true, alias: "providerName", required: false }] }], contextMenu: [{ type: i0.ViewChild, args: ['contextMenu', { isSignal: true }] }], schedulerRef: [{ type: i0.ViewChild, args: ['scheduler', { isSignal: true }] }] } });
|
|
193
|
+
|
|
194
|
+
export { AXPResourceAppointmentBoardComponent };
|
|
195
|
+
//# sourceMappingURL=acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs","sources":["../../../../../libs/framework/client/layout/components/src/lib/resource-appointment/resource-appointment-board.component.ts","../../../../../libs/framework/client/layout/components/src/lib/resource-appointment/resource-appointment.component.html"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXCommonModule, AXStyleColorType } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuModule,\n} from '@acorex/components/menu';\nimport {\n AXSchedulerAppointment,\n AXSchedulerComponent,\n AXSchedulerDateRange,\n AXSchedulerResource,\n AXSchedulerView,\n} from '@acorex/components/scheduler';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n OnInit,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPResourceAppointmentService } from './resource-appointment.service';\nimport {\n AXPResourceAppointmentBoardFilter,\n AXPResourceAppointmentItem,\n AXPResourceAppointmentResource,\n} from './resource-appointment.types';\n\n//#endregion\n\n/** Scheduler appointment with optional provider tag for context menu routing. */\ntype AppointmentWithProvider = AXSchedulerAppointment & { provider?: string };\n\n@Component({\n selector: 'axp-resource-appointment-board',\n templateUrl: './resource-appointment.component.html',\n styleUrls: ['./resource-appointment.component.css'],\n imports: [AXCommonModule, AXMenuModule, AXLoadingModule, AXSchedulerComponent, AXButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [AXPResourceAppointmentService],\n})\nexport class AXPResourceAppointmentBoardComponent implements OnInit {\n //#region ---- Inputs ----\n\n /** Show resource headers in the timeline views. */\n showResourceHeaders = input<boolean>(true);\n\n /** Show appointments that have no resourceId. */\n showUnassignedAppointments = input<boolean>(true);\n\n /** Optional provider name to filter the board (e.g. from route param). */\n providerName = input<string | undefined>(undefined);\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private readonly resourceAppointmentService = inject(AXPResourceAppointmentService);\n private readonly formatService = inject(AXFormatService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Component References ----\n\n private readonly contextMenu = viewChild<AXContextMenuComponent>('contextMenu');\n protected readonly schedulerRef = viewChild<AXSchedulerComponent>('scheduler');\n\n //#endregion\n\n //#region ---- State ----\n\n protected readonly isReady = signal(false);\n protected readonly currentDate = signal<Date>(new Date());\n protected readonly currentView = signal<AXSchedulerView>('timeline-month');\n private readonly currentAppointment = signal<AppointmentWithProvider | null>(null);\n\n /** Raw resources returned by providers. */\n private readonly rawResources = signal<AXPResourceAppointmentResource[]>([]);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n /** Scheduler resources derived from provider data. */\n protected readonly schedulerResources = computed<AXSchedulerResource[]>(() =>\n this.rawResources().map((r) => ({\n id: r.id,\n title: r.title,\n })),\n );\n\n /** Flat list of scheduler appointments derived from provider data. */\n protected readonly schedulerAppointments = computed<AppointmentWithProvider[]>(() =>\n this.rawResources().flatMap((resource) =>\n resource.appointments.map((a: AXPResourceAppointmentItem & { provider?: string }) => ({\n id: a.id,\n title: a.title,\n startDate: a.startDate,\n endDate: a.endDate,\n allDay: a.allDay,\n description: a.description,\n resourceId: a.resourceId ?? resource.id,\n provider: a.provider,\n })),\n ),\n );\n\n /** Formatted date range text for the toolbar. */\n protected readonly timeText = computed(() => {\n const scheduler = this.schedulerRef();\n return scheduler?.currentDateText() ?? this.formatCurrentDateRange();\n });\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n effect(() => {\n this.providerName();\n if (this.isReady()) {\n this.loadData();\n }\n });\n }\n\n async ngOnInit(): Promise<void> {\n await this.resolveProvidersAndReady();\n }\n\n //#endregion\n\n //#region ---- Provider Resolution ----\n\n private async resolveProvidersAndReady(): Promise<void> {\n await this.resourceAppointmentService.resolveProviders();\n // this.resourceAppointmentService.refresh$.subscribe(() => this.loadData());\n\n await this.loadData();\n this.isReady.set(true);\n }\n\n //#endregion\n\n //#region ---- Data Loading ----\n\n /** Fetches resource + appointment data from providers and updates signals. */\n private async loadData(range?: AXSchedulerDateRange): Promise<void> {\n const providerName = this.providerName();\n const filter: AXPResourceAppointmentBoardFilter = {\n ...(range && { range: { from: range.from, end: range.end } }),\n ...(providerName && { providerNames: [providerName] }),\n };\n\n const resourceList = await this.resourceAppointmentService.getList(filter);\n this.rawResources.set(resourceList);\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n /** Re-load data when the scheduler view range changes and sync toolbar date. */\n protected handleRangeChanged(range: AXSchedulerDateRange): void {\n //TODO FIX LATER\n // this.currentDate.set(range.from);\n // this.loadData(range);\n }\n\n /** Navigate to previous/next period based on current view. */\n protected changeDate(forward: boolean): void {\n const date = new Date(this.currentDate().getTime());\n const view = this.currentView();\n\n switch (view) {\n case 'timeline-day':\n date.setDate(date.getDate() + (forward ? 1 : -1));\n break;\n case 'timeline-weekly':\n date.setDate(date.getDate() + (forward ? 7 : -7));\n break;\n case 'timeline-month':\n date.setMonth(date.getMonth() + (forward ? 1 : -1));\n break;\n default:\n date.setDate(date.getDate() + (forward ? 1 : -1));\n }\n\n this.currentDate.set(date);\n }\n\n /** Fallback formatted date range when scheduler ref is not yet available. */\n private formatCurrentDateRange(): string {\n const d = this.currentDate();\n return d ? this.formatService.format(d, 'datetime', { format: 'long' }) : '';\n }\n\n protected handleAppointmentClick(event: { appointment: AXSchedulerAppointment; nativeEvent: MouseEvent }): void {\n const appointment = event.appointment as AppointmentWithProvider;\n if (!appointment) return;\n\n this.currentAppointment.set(appointment);\n\n const { clientX: x, clientY: y, target } = event.nativeEvent;\n this.contextMenu()?.showAt({ x, y }, target as HTMLElement);\n }\n\n protected async handleContextMenuOpening(event: AXContextMenuOpeningEvent): Promise<void> {\n const appointment = this.currentAppointment();\n if (!appointment) return;\n\n const providerName = appointment.provider;\n if (!providerName) return;\n\n const item: AXPResourceAppointmentItem = {\n id: appointment.id,\n title: appointment.title ?? '',\n startDate: appointment.startDate,\n endDate: appointment.endDate,\n resourceId: appointment.resourceId,\n description: appointment.description,\n allDay: appointment.allDay,\n };\n const actions = await this.resourceAppointmentService.getActions(item, providerName);\n for (const actionItem of actions) {\n const t = actionItem.title;\n const text =\n typeof t === 'string'\n ? t.startsWith('@')\n ? await this.translateService.translateAsync(t)\n : t\n : this.translateService.resolve(t);\n event.items.push({\n text,\n icon: actionItem.icon,\n color: actionItem.color as AXStyleColorType,\n break: actionItem.break,\n data: { command: actionItem.command },\n });\n }\n }\n\n protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent): void {\n const providerName = this.currentAppointment()?.provider ?? '';\n this.resourceAppointmentService.executeCommand(event.item.data?.command, providerName);\n }\n\n //#endregion\n}\n","<div class=\"axp-resource-appointment__container flex flex-col min-h-0 h-full\">\n @if (isReady()) {\n <!-- TODO: Add weekly view 'timeline-weekly' -->\n <ax-scheduler\n #scheduler\n [views]=\"['timeline-day', 'timeline-month']\"\n [dataSource]=\"schedulerAppointments()\"\n [resources]=\"schedulerResources()\"\n [startingDate]=\"currentDate()\"\n [selectedView]=\"currentView()\"\n [draggable]=\"false\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n class=\"axp-resource-appointment__scheduler bg-lightest dark:bg-darkest flex-1\"\n ></ax-scheduler>\n\n <ax-context-menu\n #contextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n ></ax-context-menu>\n } @else {\n <div class=\"axp-resource-appointment__loading flex items-center justify-center w-full h-full\">\n <ax-loading></ax-loading>\n </div>\n }\n</div>\n"],"names":["i2"],"mappings":"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"}
|