@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.
Files changed (111) hide show
  1. package/fesm2022/acorex-platform-framework-client-auth.mjs +212 -44
  2. package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs → acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs} +31 -1
  4. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-framework-client-common.mjs +1172 -193
  6. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-framework-client-core.mjs +233 -132
  8. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +295 -59
  10. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  11. 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
  12. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs +66 -0
  14. package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs +195 -0
  16. package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +4015 -1014
  18. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +1179 -304
  20. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
  21. 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
  22. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs.map +1 -0
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +2 -2
  30. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +47 -8
  31. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +3854 -3292
  33. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs +33319 -0
  35. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs.map +1 -0
  36. 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
  37. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs +45 -0
  39. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs +68 -0
  41. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs.map +1 -0
  42. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs +88 -0
  43. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs +71 -0
  45. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs +81 -0
  47. package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs.map +1 -0
  48. 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
  49. package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs.map +1 -0
  50. 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
  51. 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
  52. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs +71 -0
  53. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs +111 -0
  55. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs.map +1 -0
  56. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs +77 -0
  57. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs.map +1 -0
  58. 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
  59. 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
  60. 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
  61. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs.map +1 -0
  62. package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs +124 -0
  63. package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs.map +1 -0
  64. package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs +345 -0
  65. package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs.map +1 -0
  66. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -31985
  67. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
  68. package/fesm2022/acorex-platform-framework-client-realtime.mjs +2 -1
  69. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
  70. package/fesm2022/acorex-platform-framework-client-runtime.mjs +2 -2
  71. package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
  72. 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
  73. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs +122 -0
  75. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs.map +1 -0
  76. 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
  77. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs.map +1 -0
  78. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +424 -103
  79. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  80. package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs → acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs} +102 -1
  81. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs.map +1 -0
  82. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +174 -22
  83. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  84. package/package.json +2 -2
  85. package/realtime/README.md +1 -1
  86. package/types/acorex-platform-framework-client-auth.d.ts +18 -1
  87. package/types/acorex-platform-framework-client-common.d.ts +243 -9
  88. package/types/acorex-platform-framework-client-core.d.ts +152 -119
  89. package/types/acorex-platform-framework-client-layout-builder.d.ts +29 -0
  90. package/types/acorex-platform-framework-client-layout-components.d.ts +717 -147
  91. package/types/acorex-platform-framework-client-layout-designer.d.ts +192 -14
  92. package/types/acorex-platform-framework-client-layout-entity.d.ts +167 -92
  93. package/types/acorex-platform-framework-client-layout-views.d.ts +23 -1
  94. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +148 -40
  95. package/types/acorex-platform-framework-client-layout-widgets.d.ts +261 -119
  96. package/types/acorex-platform-framework-client-realtime.d.ts +16 -3
  97. package/types/acorex-platform-framework-client-themes-default.d.ts +62 -11
  98. package/types/acorex-platform-framework-client-themes-shared.d.ts +25 -2
  99. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs +0 -77
  102. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs +0 -122
  109. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +0 -1
@@ -0,0 +1,111 @@
1
+ import { AXLabelComponent } from '@acorex/components/label';
2
+ import { AXSchedulerPickerService, AXSchedulerPickerComponent } from '@acorex/components/scheduler-picker';
3
+ import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
4
+ import * as i0 from '@angular/core';
5
+ import { inject, computed, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
6
+ import * as i1 from '@angular/forms';
7
+ import { FormsModule } from '@angular/forms';
8
+
9
+ //#region ---- Imports ----
10
+ //#endregion
11
+ //#region ---- Component ----
12
+ class AXPSchedulerPickerWidgetEditComponent extends AXPValueWidgetComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ //#region ---- Services & Dependencies ----
16
+ this.schedulerPickerService = inject(AXSchedulerPickerService);
17
+ //#endregion
18
+ //#region ---- Computed Properties ----
19
+ this.internalValue = computed(() => this.getValue() ?? {
20
+ mode: 'daily',
21
+ interval: 1,
22
+ startCondition: { type: 'now', startDate: new Date() },
23
+ recurrence: {}, // Daily doesn't require specific recurrence data
24
+ endCondition: { type: 'never' },
25
+ }, /* @ts-ignore */
26
+ ...(ngDevMode ? [{ debugName: "internalValue" }] : /* istanbul ignore next */ []));
27
+ this.settings = computed(() => this.options()['config'] ?? {
28
+ mode: 'daily',
29
+ showStartCondition: true,
30
+ showEndConditions: true,
31
+ showExclusions: false,
32
+ showInclusions: false,
33
+ options: { showInterval: true, showWeekdaysOnly: false },
34
+ }, /* @ts-ignore */
35
+ ...(ngDevMode ? [{ debugName: "settings" }] : /* istanbul ignore next */ []));
36
+ this.disabled = computed(() => this.options()['disabled'] ?? false, /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
38
+ this.summary = signal('', /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
40
+ //#endregion
41
+ //#region ---- Effects ----
42
+ this.#summaryEffect = effect(async () => {
43
+ const value = this.internalValue();
44
+ if (!value) {
45
+ this.summary.set('');
46
+ return;
47
+ }
48
+ try {
49
+ const data = await this.schedulerPickerService.toNaturalLanguage(value);
50
+ this.summary.set(data);
51
+ }
52
+ catch (error) {
53
+ this.summary.set('');
54
+ }
55
+ }, /* @ts-ignore */
56
+ ...(ngDevMode ? [{ debugName: "#summaryEffect" }] : /* istanbul ignore next */ []));
57
+ }
58
+ //#endregion
59
+ //#region ---- Effects ----
60
+ #summaryEffect;
61
+ //#endregion
62
+ //#region ---- Event Handlers ----
63
+ onValueChange(val) {
64
+ this.setValue(val);
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSchedulerPickerWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSchedulerPickerWidgetEditComponent, isStandalone: true, selector: "axp-scheduler-picker-widget-edit", host: { classAttribute: "block flex-1" }, usesInheritance: true, ngImport: i0, template: `
68
+ <div class="p-2 flex flex-col gap-2">
69
+ <ax-scheduler-picker
70
+ [config]="settings()"
71
+ [ngModel]="internalValue()"
72
+ [disabled]="disabled()"
73
+ (ngModelChange)="onValueChange($event)"
74
+ />
75
+ @if (summary()) {
76
+ <div class="mt-2">
77
+ <ax-label class="text-sm font-medium">Summary:</ax-label>
78
+ <ax-label class="text-sm text-muted">{{ summary() }}</ax-label>
79
+ </div>
80
+ }
81
+ </div>
82
+ `, isInline: true, dependencies: [{ kind: "component", type: AXSchedulerPickerComponent, selector: "ax-scheduler-picker", inputs: ["disabled", "readonly", "tabIndex", "value", "state", "name", "id", "config"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "summaryChange"] }, { 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: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSchedulerPickerWidgetEditComponent, decorators: [{
85
+ type: Component,
86
+ args: [{
87
+ selector: 'axp-scheduler-picker-widget-edit',
88
+ template: `
89
+ <div class="p-2 flex flex-col gap-2">
90
+ <ax-scheduler-picker
91
+ [config]="settings()"
92
+ [ngModel]="internalValue()"
93
+ [disabled]="disabled()"
94
+ (ngModelChange)="onValueChange($event)"
95
+ />
96
+ @if (summary()) {
97
+ <div class="mt-2">
98
+ <ax-label class="text-sm font-medium">Summary:</ax-label>
99
+ <ax-label class="text-sm text-muted">{{ summary() }}</ax-label>
100
+ </div>
101
+ }
102
+ </div>
103
+ `,
104
+ changeDetection: ChangeDetectionStrategy.OnPush,
105
+ imports: [AXSchedulerPickerComponent, FormsModule, AXLabelComponent],
106
+ host: { class: 'block flex-1' },
107
+ }]
108
+ }] });
109
+
110
+ export { AXPSchedulerPickerWidgetEditComponent };
111
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/advance/scheduler-picker/scheduler-picker-widget-edit.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXLabelComponent } from '@acorex/components/label';\nimport {\n AXSchedulerPickerComponent,\n AXSchedulerPickerService,\n AXSchedulerPickerSettings,\n AXSchedulerPickerValue,\n} from '@acorex/components/scheduler-picker';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axp-scheduler-picker-widget-edit',\n template: `\n <div class=\"p-2 flex flex-col gap-2\">\n <ax-scheduler-picker\n [config]=\"settings()\"\n [ngModel]=\"internalValue()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"onValueChange($event)\"\n />\n @if (summary()) {\n <div class=\"mt-2\">\n <ax-label class=\"text-sm font-medium\">Summary:</ax-label>\n <ax-label class=\"text-sm text-muted\">{{ summary() }}</ax-label>\n </div>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSchedulerPickerComponent, FormsModule, AXLabelComponent],\n host: { class: 'block flex-1' },\n})\nexport class AXPSchedulerPickerWidgetEditComponent extends AXPValueWidgetComponent<AXSchedulerPickerValue | null> {\n //#region ---- Services & Dependencies ----\n\n private readonly schedulerPickerService = inject(AXSchedulerPickerService);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected internalValue = computed<AXSchedulerPickerValue | null>(\n () =>\n this.getValue() ?? {\n mode: 'daily',\n interval: 1,\n startCondition: { type: 'now', startDate: new Date() },\n recurrence: {}, // Daily doesn't require specific recurrence data\n endCondition: { type: 'never' },\n },\n );\n\n protected settings = computed<AXSchedulerPickerSettings>(\n () =>\n this.options()['config'] ?? {\n mode: 'daily',\n showStartCondition: true,\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n options: { showInterval: true, showWeekdaysOnly: false },\n },\n );\n\n protected disabled = computed<boolean>(() => this.options()['disabled'] ?? false);\n\n protected summary = signal<string>('');\n\n //#endregion\n\n //#region ---- Effects ----\n\n #summaryEffect = effect(async () => {\n const value = this.internalValue();\n if (!value) {\n this.summary.set('');\n return;\n }\n try {\n const data = await this.schedulerPickerService.toNaturalLanguage(value);\n this.summary.set(data);\n } catch (error) {\n this.summary.set('');\n }\n });\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected onValueChange(val: AXSchedulerPickerValue | null): void {\n this.setValue(val);\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { AXLabelComponent } from '@acorex/components/label';
2
+ import { AXSchedulerPickerService } from '@acorex/components/scheduler-picker';
3
+ import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
4
+ import * as i0 from '@angular/core';
5
+ import { inject, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
6
+
7
+ //#region ---- Imports ----
8
+ //#endregion
9
+ //#region ---- Component ----
10
+ class AXPSchedulerPickerWidgetViewComponent extends AXPValueWidgetComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ //#region ---- Services & Dependencies ----
14
+ this.schedulerPickerService = inject(AXSchedulerPickerService);
15
+ //#endregion
16
+ //#region ---- Computed Properties ----
17
+ this.summary = signal('', /* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
19
+ this.#summaryEffect = effect(async () => {
20
+ const value = this.getValue();
21
+ if (typeof value === 'string') {
22
+ this.summary.set(value);
23
+ return;
24
+ }
25
+ if (this.isSchedulerValue(value)) {
26
+ try {
27
+ const text = await this.schedulerPickerService.toNaturalLanguage(value);
28
+ this.summary.set(text);
29
+ }
30
+ catch (err) {
31
+ console.error(err);
32
+ this.summary.set('');
33
+ }
34
+ return;
35
+ }
36
+ this.summary.set('');
37
+ }, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "#summaryEffect" }] : /* istanbul ignore next */ []));
39
+ }
40
+ //#endregion
41
+ //#region ---- Effects ----
42
+ isSchedulerValue(value) {
43
+ return !!value && typeof value === 'object' && 'mode' in value;
44
+ }
45
+ #summaryEffect;
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSchedulerPickerWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSchedulerPickerWidgetViewComponent, isStandalone: true, selector: "axp-scheduler-picker-widget-view", host: { classAttribute: "inline-block" }, usesInheritance: true, ngImport: i0, template: `
48
+ <div class="p-2">
49
+ @if (summary()) {
50
+ <ax-label class="text-sm">{{ summary() }}</ax-label>
51
+ } @else {
52
+ <ax-label class="text-sm text-muted">---</ax-label>
53
+ }
54
+ </div>
55
+ `, isInline: true, dependencies: [{ kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSchedulerPickerWidgetViewComponent, decorators: [{
58
+ type: Component,
59
+ args: [{
60
+ selector: 'axp-scheduler-picker-widget-view',
61
+ template: `
62
+ <div class="p-2">
63
+ @if (summary()) {
64
+ <ax-label class="text-sm">{{ summary() }}</ax-label>
65
+ } @else {
66
+ <ax-label class="text-sm text-muted">---</ax-label>
67
+ }
68
+ </div>
69
+ `,
70
+ imports: [AXLabelComponent],
71
+ changeDetection: ChangeDetectionStrategy.OnPush,
72
+ host: { class: 'inline-block' },
73
+ }]
74
+ }] });
75
+
76
+ export { AXPSchedulerPickerWidgetViewComponent };
77
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/advance/scheduler-picker/scheduler-picker-widget-view.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSchedulerPickerService, AXSchedulerPickerValue } from '@acorex/components/scheduler-picker';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal } from '@angular/core';\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axp-scheduler-picker-widget-view',\n template: `\n <div class=\"p-2\">\n @if (summary()) {\n <ax-label class=\"text-sm\">{{ summary() }}</ax-label>\n } @else {\n <ax-label class=\"text-sm text-muted\">---</ax-label>\n }\n </div>\n `,\n imports: [AXLabelComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'inline-block' },\n})\nexport class AXPSchedulerPickerWidgetViewComponent extends AXPValueWidgetComponent<\n AXSchedulerPickerValue | string | null\n> {\n //#region ---- Services & Dependencies ----\n\n private readonly schedulerPickerService = inject(AXSchedulerPickerService);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected summary = signal<string>('');\n\n //#endregion\n\n //#region ---- Effects ----\n\n private isSchedulerValue(value: unknown): value is AXSchedulerPickerValue {\n return !!value && typeof value === 'object' && 'mode' in value;\n }\n\n #summaryEffect = effect(async () => {\n const value = this.getValue();\n\n if (typeof value === 'string') {\n this.summary.set(value);\n return;\n }\n\n if (this.isSchedulerValue(value)) {\n try {\n const text = await this.schedulerPickerService.toNaturalLanguage(value);\n this.summary.set(text);\n } catch (err) {\n console.error(err);\n this.summary.set('');\n }\n return;\n }\n\n this.summary.set('');\n });\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;AAAA;AAOA;AAEA;AAiBM,MAAO,qCAAsC,SAAQ,uBAE1D,CAAA;AAjBD,IAAA,WAAA,GAAA;;;AAoBmB,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC;;;QAMhE,IAAA,CAAA,OAAO,GAAG,MAAM,CAAS,EAAE;oFAAC;AAUtC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,YAAW;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE7B,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBACvB;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAChC,gBAAA,IAAI;oBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACvE,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBACxB;gBAAE,OAAO,GAAG,EAAE;AACZ,oBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAClB,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB;gBACA;YACF;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,CAAC;2FAAC;AAGH,IAAA;;;AA3BS,IAAA,gBAAgB,CAAC,KAAc,EAAA;AACrC,QAAA,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK;IAChE;AAEA,IAAA,cAAc;8GArBH,qCAAqC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAbtC;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIf,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAfjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;AAChC,iBAAA;;;"}
@@ -9,7 +9,7 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
9
9
  import * as i3 from '@acorex/components/form';
10
10
  import { AXFormModule } from '@acorex/components/form';
11
11
  import { AXBasePageComponent } from '@acorex/components/page';
12
- import * as i1$4 from '@acorex/core/translation';
12
+ import * as i3$1 from '@acorex/core/translation';
13
13
  import { AXTranslationModule } from '@acorex/core/translation';
14
14
  import * as i1$1 from '@acorex-platform/framework-client/layout/widget-core';
15
15
  import { AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';
@@ -184,7 +184,7 @@ class AXPTabularDataPopupComponent extends AXBasePageComponent {
184
184
  </ax-footer>
185
185
  </ax-form>
186
186
  </axp-widgets-container>
187
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.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: AXButtonModule }, { kind: "component", type: i1.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: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "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", "hasTitle", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "translate", "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: AXTranslationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
187
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.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: AXButtonModule }, { kind: "component", type: i1.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: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "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", "hasTitle", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "translate", "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: AXTranslationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
188
188
  }
189
189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTabularDataPopupComponent, decorators: [{
190
190
  type: Component,
@@ -272,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
272
272
  }], propDecorators: { grid: [{ type: i0.ViewChild, args: ['grid', { isSignal: true }] }] } });
273
273
 
274
274
  export { AXPTabularDataPopupComponent };
275
- //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs.map
275
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.ts"],"sourcesContent":["import {AXPDataGenerator} from '@acorex-platform/framework-client/core';\nimport {AXPContextChangeEvent} from '@acorex-platform/framework-shared/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\nimport { AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPTabularDataColumn } from './tabular-widget.types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form #form>\n <div class=\"p-4\">\n <ax-data-table\n #grid\n [paging]=\"false\"\n [allowReordering]=\"true\"\n (selectedRowsChange)=\"handleSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n class=\"h-96 overflow-auto\"\n >\n @for (column of columns; track $index) {\n <ax-text-column\n width=\"200px\"\n [caption]=\"column.title\"\n [dataField]=\"column.name\"\n [cellTemplate]=\"cell\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ng-template #cell let-item>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n path: item.rowIndex + '.' + column.name,\n type: column.type,\n options: column.options ?? {},\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ng-template>\n }\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems.length * 60 + 'px'\"\n [items]=\"getCommandRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n </ax-data-table>\n @if (!disabled) {\n <div class=\"flex justify-end py-4\">\n <ax-button\n [text]=\"(this.context ?? []).length ? 'Start Adding Items' : 'Add Your First Item'\"\n look=\"twotone\"\n [disabled]=\"disabled\"\n (onClick)=\"addRecord()\"\n class=\"col-start-10 col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"onCloseDiscard()\"></ax-button>\n <ax-button\n color=\"primary\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-form>\n </axp-widgets-container>\n `,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPWidgetCoreModule,\n AXDataTableModule,\n AXTranslationModule,\n AXFormModule,\n ],\n})\nexport class AXPTabularDataPopupComponent extends AXBasePageComponent {\n context: any;\n columns: AXPTabularDataColumn[];\n disabled: boolean = false;\n defaultRowCount: number = 0;\n contextDiscard: any;\n\n getCommandRowItems: AXRowCommandItem[] = [\n {\n name: 'delete',\n text: \"@general:actions.delete.title\",\n icon: 'fa-light fa-trash text-danger',\n //divided: boolean,\n //disabled: boolean,\n color: 'danger',\n },\n ];\n\n protected override ngOnInit(): void {\n this.columns = this.columns.filter((col) => col.name != null && col.name != '' && col.type != null);\n\n this.columns = this.columns.map((col) => {\n return {\n ...col,\n options: {\n ...(col.options ?? {}),\n validationRules: [\n {\n rule: 'required',\n },\n ],\n },\n };\n });\n this.contextDiscard = cloneDeep(this.context);\n if (this.context == null || this.context?.length == 0) {\n for (let i = 0; i < this.defaultRowCount; i++) {\n this.addRecord();\n }\n }\n }\n\n protected dataSource = new AXDataSource({\n load: async () => {\n this.context = (this.context ?? []).map((x: any) => {\n return {\n ...x,\n id: AXPDataGenerator.uuid(),\n options: {},\n };\n });\n const items = this.context;\n console.log(this.context);\n\n return {\n items: items ?? [],\n total: (items ?? []).length,\n };\n },\n pageSize: 1,\n key: 'gridItem',\n });\n\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n handleContextChange(e: AXPContextChangeEvent) {\n this.context = e.data;\n }\n\n onCloseDiscard() {\n this.close({\n context: this.contextDiscard,\n });\n }\n\n addRecord() {\n console.log(this.columns);\n\n const value = this.context ?? [];\n const newRecord = this.columns?.reduce((acc: { [key: string]: any }, column) => {\n acc[column.name] = ''; // or any default value\n return acc;\n }, {});\n console.log(value);\n this.context = [...value, newRecord];\n this.grid()?.refresh();\n }\n\n handleSelectionChange(e: any) {\n console.log(e);\n }\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n if (e.name == 'delete') {\n this.context = this.context.filter((item: any) => item.id !== e.data.id);\n this.grid()?.refresh();\n }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n console.log(formResult.rules);\n\n if (formResult.result) {\n this.close({\n context: this.context,\n });\n }\n }\n}\n"],"names":["i1","i2","i3","i4","i5","i6","i7"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.ts"],"sourcesContent":["import {AXPDataGenerator} from '@acorex-platform/framework-client/core';\nimport {AXPContextChangeEvent} from '@acorex-platform/framework-shared/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\nimport { AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPTabularDataColumn } from './tabular-widget.types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form #form>\n <div class=\"p-4\">\n <ax-data-table\n #grid\n [paging]=\"false\"\n [allowReordering]=\"true\"\n (selectedRowsChange)=\"handleSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n class=\"h-96 overflow-auto\"\n >\n @for (column of columns; track $index) {\n <ax-text-column\n width=\"200px\"\n [caption]=\"column.title\"\n [dataField]=\"column.name\"\n [cellTemplate]=\"cell\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ng-template #cell let-item>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n path: item.rowIndex + '.' + column.name,\n type: column.type,\n options: column.options ?? {},\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ng-template>\n }\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems.length * 60 + 'px'\"\n [items]=\"getCommandRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n </ax-data-table>\n @if (!disabled) {\n <div class=\"flex justify-end py-4\">\n <ax-button\n [text]=\"(this.context ?? []).length ? 'Start Adding Items' : 'Add Your First Item'\"\n look=\"twotone\"\n [disabled]=\"disabled\"\n (onClick)=\"addRecord()\"\n class=\"col-start-10 col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"onCloseDiscard()\"></ax-button>\n <ax-button\n color=\"primary\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-form>\n </axp-widgets-container>\n `,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPWidgetCoreModule,\n AXDataTableModule,\n AXTranslationModule,\n AXFormModule,\n ],\n})\nexport class AXPTabularDataPopupComponent extends AXBasePageComponent {\n context: any;\n columns: AXPTabularDataColumn[];\n disabled: boolean = false;\n defaultRowCount: number = 0;\n contextDiscard: any;\n\n getCommandRowItems: AXRowCommandItem[] = [\n {\n name: 'delete',\n text: \"@general:actions.delete.title\",\n icon: 'fa-light fa-trash text-danger',\n //divided: boolean,\n //disabled: boolean,\n color: 'danger',\n },\n ];\n\n protected override ngOnInit(): void {\n this.columns = this.columns.filter((col) => col.name != null && col.name != '' && col.type != null);\n\n this.columns = this.columns.map((col) => {\n return {\n ...col,\n options: {\n ...(col.options ?? {}),\n validationRules: [\n {\n rule: 'required',\n },\n ],\n },\n };\n });\n this.contextDiscard = cloneDeep(this.context);\n if (this.context == null || this.context?.length == 0) {\n for (let i = 0; i < this.defaultRowCount; i++) {\n this.addRecord();\n }\n }\n }\n\n protected dataSource = new AXDataSource({\n load: async () => {\n this.context = (this.context ?? []).map((x: any) => {\n return {\n ...x,\n id: AXPDataGenerator.uuid(),\n options: {},\n };\n });\n const items = this.context;\n console.log(this.context);\n\n return {\n items: items ?? [],\n total: (items ?? []).length,\n };\n },\n pageSize: 1,\n key: 'gridItem',\n });\n\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n handleContextChange(e: AXPContextChangeEvent) {\n this.context = e.data;\n }\n\n onCloseDiscard() {\n this.close({\n context: this.contextDiscard,\n });\n }\n\n addRecord() {\n console.log(this.columns);\n\n const value = this.context ?? [];\n const newRecord = this.columns?.reduce((acc: { [key: string]: any }, column) => {\n acc[column.name] = ''; // or any default value\n return acc;\n }, {});\n console.log(value);\n this.context = [...value, newRecord];\n this.grid()?.refresh();\n }\n\n handleSelectionChange(e: any) {\n console.log(e);\n }\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n if (e.name == 'delete') {\n this.context = this.context.filter((item: any) => item.id !== e.data.id);\n this.grid()?.refresh();\n }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n console.log(formResult.rules);\n\n if (formResult.result) {\n this.close({\n context: this.context,\n });\n }\n }\n}\n"],"names":["i1","i2","i3","i4","i5","i6","i7"],"mappings":"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"}
@@ -1,17 +1,28 @@
1
1
  import { AXSafePipe } from '@acorex/core/pipes';
2
- import * as i1 from '@acorex/core/translation';
2
+ import * as i3 from '@acorex/core/translation';
3
3
  import { AXTranslationModule } from '@acorex/core/translation';
4
4
  import { AXPLayoutBaseWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
5
5
  import { AsyncPipe } from '@angular/common';
6
6
  import * as i0 from '@angular/core';
7
7
  import { computed, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
8
+ import { t as textBlockStyleAttribute, a as textBlockContentClass } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs';
8
9
 
9
10
  class AXPTextBlockWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
10
11
  constructor() {
11
12
  super(...arguments);
12
13
  this.content = computed(() => this.options()['content'] ?? '', /* @ts-ignore */
13
14
  ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
14
- this.isRichText = computed(() => this.options()['format'] !== 'plain', /* @ts-ignore */
15
+ this.customStyle = computed(() => textBlockStyleAttribute(this.options()['style']), /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "customStyle" }] : /* istanbul ignore next */ []));
17
+ this.contentClass = computed(() => textBlockContentClass(this.customStyle()), /* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "contentClass" }] : /* istanbul ignore next */ []));
19
+ this.isRichText = computed(() => {
20
+ const format = this.options()['format'];
21
+ const id = typeof format === 'object' && format != null && 'id' in format
22
+ ? String(format.id)
23
+ : format;
24
+ return id !== 'plain';
25
+ }, /* @ts-ignore */
15
26
  ...(ngDevMode ? [{ debugName: "isRichText" }] : /* istanbul ignore next */ []));
16
27
  }
17
28
  get __class() {
@@ -24,15 +35,16 @@ class AXPTextBlockWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
24
35
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPTextBlockWidgetDesignerComponent, isStandalone: true, selector: "axp-text-block-widget-designer", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
25
36
  @if (isRichText()) {
26
37
  <div
27
- class="axp-text-block-widget__content text-base/6 text-on-surface [&_a]:text-primary [&_a]:underline [&_strong]:font-semibold [&_b]:font-semibold [&_p+p]:mt-3 [&_ul]:my-2 [&_ul]:list-disc [&_ul]:ps-5 [&_ol]:my-2 [&_ol]:list-decimal [&_ol]:ps-5"
38
+ [class]="contentClass()"
39
+ [attr.style]="customStyle()"
28
40
  [innerHTML]="content() | translate | async | safe: 'html'"
29
41
  ></div>
30
42
  } @else {
31
- <div class="axp-text-block-widget__content text-base/6 text-on-surface">
43
+ <div [class]="contentClass()" [attr.style]="customStyle()">
32
44
  {{ content() | translate | async }}
33
45
  </div>
34
46
  }
35
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
47
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
48
  }
37
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTextBlockWidgetDesignerComponent, decorators: [{
38
50
  type: Component,
@@ -41,11 +53,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
41
53
  template: `
42
54
  @if (isRichText()) {
43
55
  <div
44
- class="axp-text-block-widget__content text-base/6 text-on-surface [&_a]:text-primary [&_a]:underline [&_strong]:font-semibold [&_b]:font-semibold [&_p+p]:mt-3 [&_ul]:my-2 [&_ul]:list-disc [&_ul]:ps-5 [&_ol]:my-2 [&_ol]:list-decimal [&_ol]:ps-5"
56
+ [class]="contentClass()"
57
+ [attr.style]="customStyle()"
45
58
  [innerHTML]="content() | translate | async | safe: 'html'"
46
59
  ></div>
47
60
  } @else {
48
- <div class="axp-text-block-widget__content text-base/6 text-on-surface">
61
+ <div [class]="contentClass()" [attr.style]="customStyle()">
49
62
  {{ content() | translate | async }}
50
63
  </div>
51
64
  }
@@ -60,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
60
73
  }] } });
61
74
 
62
75
  export { AXPTextBlockWidgetDesignerComponent };
63
- //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map
76
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/text-block/text-block-widget-designer.component.ts"],"sourcesContent":["import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { textBlockContentClass, textBlockStyleAttribute } from './text-block-style';\n\n@Component({\n selector: 'axp-text-block-widget-designer',\n template: `\n @if (isRichText()) {\n <div\n [class]=\"contentClass()\"\n [attr.style]=\"customStyle()\"\n [innerHTML]=\"content() | translate | async | safe: 'html'\"\n ></div>\n } @else {\n <div [class]=\"contentClass()\" [attr.style]=\"customStyle()\">\n {{ content() | translate | async }}\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTranslationModule, AXSafePipe, AsyncPipe],\n})\nexport class AXPTextBlockWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {\n protected content = computed<string>(() => (this.options()['content'] as string) ?? '');\n protected customStyle = computed(() => textBlockStyleAttribute(this.options()['style']));\n protected contentClass = computed(() => textBlockContentClass(this.customStyle()));\n\n protected isRichText = computed(() => {\n const format = this.options()['format'];\n const id =\n typeof format === 'object' && format != null && 'id' in format\n ? String((format as { id: unknown }).id)\n : format;\n return id !== 'plain';\n });\n\n @HostBinding('class')\n private get __class(): Record<string, boolean> {\n return {\n block: true,\n 'axp-text-block-widget-view': true,\n };\n }\n}\n"],"names":["i1"],"mappings":";;;;;;;;;AA2BM,MAAO,mCAAoC,SAAQ,4BAA4B,CAAA;AAnBrF,IAAA,WAAA,GAAA;;AAoBY,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAS,MAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAY,IAAI,EAAE;oFAAC;AAC7E,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;wFAAC;AAC9E,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;yFAAC;AAExE,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;AACvC,YAAA,MAAM,EAAE,GACN,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI;AACtD,kBAAE,MAAM,CAAE,MAA0B,CAAC,EAAE;kBACrC,MAAM;YACZ,OAAO,EAAE,KAAK,OAAO;QACvB,CAAC;uFAAC;AASH,IAAA;AAPC,IAAA,IACY,OAAO,GAAA;QACjB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,4BAA4B,EAAE,IAAI;SACnC;IACH;8GApBW,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBpC;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGS,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,UAAU,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEzC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAnB/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,SAAS,CAAC;AACtD,iBAAA;;sBAeE,WAAW;uBAAC,OAAO;;;"}
@@ -0,0 +1,124 @@
1
+ import * as i1$1 from '@acorex/components/button';
2
+ import { AXButtonModule } from '@acorex/components/button';
3
+ import * as i1$2 from '@acorex/components/code-editor';
4
+ import { AXCodeEditorModule } from '@acorex/components/code-editor';
5
+ import * as i2 from '@acorex/components/decorators';
6
+ import { AXDecoratorModule } from '@acorex/components/decorators';
7
+ import { AXBasePageComponent } from '@acorex/components/page';
8
+ import * as i3 from '@acorex/core/translation';
9
+ import { AXTranslationModule } from '@acorex/core/translation';
10
+ import { setupPopupFooterKeyboardShortcuts } from '@acorex-platform/framework-client/core';
11
+ import * as i1$3 from '@angular/common';
12
+ import { CommonModule } from '@angular/common';
13
+ import * as i0 from '@angular/core';
14
+ import { input, linkedSignal, ChangeDetectionStrategy, Component } from '@angular/core';
15
+ import * as i1 from '@angular/forms';
16
+ import { FormsModule } from '@angular/forms';
17
+
18
+ class AXPTriggerExpressionEditorPopupComponent extends AXBasePageComponent {
19
+ constructor() {
20
+ super();
21
+ //#region ---- Inputs ----
22
+ this.value = input.required(/* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
24
+ //#endregion
25
+ //#region ---- Properties ----
26
+ this.currentValue = linkedSignal(() => this.value(), /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "currentValue" }] : /* istanbul ignore next */ []));
28
+ setupPopupFooterKeyboardShortcuts(() => [
29
+ {
30
+ title: '@general:actions.cancel.title',
31
+ command: 'cancel',
32
+ handler: () => this.handleCancelClick(),
33
+ },
34
+ {
35
+ title: '@general:actions.save.title',
36
+ command: 'submit',
37
+ handler: () => this.handleSaveClick(),
38
+ },
39
+ ], { id: 'trigger-expression-editor-popup' });
40
+ }
41
+ //#endregion
42
+ //#region ---- Event Handlers ----
43
+ handleValueChange(newValue) {
44
+ this.currentValue.set(newValue);
45
+ }
46
+ handleCancelClick() {
47
+ this.close();
48
+ }
49
+ handleSaveClick() {
50
+ this.close({
51
+ value: this.currentValue(),
52
+ });
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTriggerExpressionEditorPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPTriggerExpressionEditorPopupComponent, isStandalone: true, selector: "axp-trigger-expression-editor-popup", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
56
+ <div class="flex flex-col h-full overflow-hidden">
57
+ <div class="flex-1 p-4 overflow-hidden" style="direction: ltr;">
58
+ <ax-code-editor
59
+ [ngModel]="currentValue()"
60
+ (ngModelChange)="handleValueChange($event)"
61
+ language="javascript"
62
+ [lineNumbers]="true"
63
+ class="w-full h-full min-h-96"
64
+ ></ax-code-editor>
65
+ </div>
66
+ </div>
67
+
68
+ <ax-footer>
69
+ <ax-suffix>
70
+ <ax-button
71
+ look="solid"
72
+ [text]="'@general:actions.cancel.title' | translate | async"
73
+ (onClick)="handleCancelClick()"
74
+ ></ax-button>
75
+ <ax-button
76
+ look="solid"
77
+ color="primary"
78
+ [text]="'@general:actions.save.title' | translate | async"
79
+ (onClick)="handleSaveClick()"
80
+ ></ax-button>
81
+ </ax-suffix>
82
+ </ax-footer>
83
+ `, 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: i1$1.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: i1$2.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.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$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTriggerExpressionEditorPopupComponent, decorators: [{
86
+ type: Component,
87
+ args: [{
88
+ selector: 'axp-trigger-expression-editor-popup',
89
+ template: `
90
+ <div class="flex flex-col h-full overflow-hidden">
91
+ <div class="flex-1 p-4 overflow-hidden" style="direction: ltr;">
92
+ <ax-code-editor
93
+ [ngModel]="currentValue()"
94
+ (ngModelChange)="handleValueChange($event)"
95
+ language="javascript"
96
+ [lineNumbers]="true"
97
+ class="w-full h-full min-h-96"
98
+ ></ax-code-editor>
99
+ </div>
100
+ </div>
101
+
102
+ <ax-footer>
103
+ <ax-suffix>
104
+ <ax-button
105
+ look="solid"
106
+ [text]="'@general:actions.cancel.title' | translate | async"
107
+ (onClick)="handleCancelClick()"
108
+ ></ax-button>
109
+ <ax-button
110
+ look="solid"
111
+ color="primary"
112
+ [text]="'@general:actions.save.title' | translate | async"
113
+ (onClick)="handleSaveClick()"
114
+ ></ax-button>
115
+ </ax-suffix>
116
+ </ax-footer>
117
+ `,
118
+ changeDetection: ChangeDetectionStrategy.OnPush,
119
+ imports: [CommonModule, FormsModule, AXButtonModule, AXCodeEditorModule, AXDecoratorModule, AXTranslationModule],
120
+ }]
121
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
122
+
123
+ export { AXPTriggerExpressionEditorPopupComponent };
124
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/property-editors/triggers/trigger-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 { ChangeDetectionStrategy, Component, input, linkedSignal, WritableSignal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-trigger-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 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: [CommonModule, FormsModule, AXButtonModule, AXCodeEditorModule, AXDecoratorModule, AXTranslationModule],\n})\nexport class AXPTriggerExpressionEditorPopupComponent extends AXBasePageComponent {\n //#region ---- Inputs ----\n\n value = input.required<string | null>();\n\n //#endregion\n\n //#region ---- Properties ----\n\n protected readonly currentValue = linkedSignal(() => this.value());\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: 'trigger-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\n"],"names":["i3","i4","i5","i6"],"mappings":"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"}