@masterteam/escalation 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ {
2
+ "escalation": {
3
+ "builder": {
4
+ "addStep": "إضافة خطوة",
5
+ "editStep": "تعديل الخطوة",
6
+ "newStep": "خطوة جديدة",
7
+ "nameEnglish": "الاسم (بالإنجليزية)",
8
+ "enterNameEnglish": "أدخل الاسم بالإنجليزية",
9
+ "nameArabic": "الاسم (بالعربية)",
10
+ "enterNameArabic": "أدخل الاسم بالعربية",
11
+ "approver": "المعتمد",
12
+ "group": "المجموعة",
13
+ "role": "الدور",
14
+ "selectGroup": "اختر المجموعة",
15
+ "selectRole": "اختر الدور"
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "escalation": {
3
+ "builder": {
4
+ "addStep": "Add Step",
5
+ "editStep": "Edit Step",
6
+ "newStep": "New Step",
7
+ "nameEnglish": "Name (English)",
8
+ "enterNameEnglish": "Enter name in English",
9
+ "nameArabic": "Name (Arabic)",
10
+ "enterNameArabic": "Enter name in Arabic",
11
+ "approver": "Approver",
12
+ "group": "Group",
13
+ "role": "Role",
14
+ "selectGroup": "Select Group",
15
+ "selectRole": "Select Role"
16
+ }
17
+ }
18
+ }
@@ -10,6 +10,8 @@ import * as i1 from '@angular/forms';
10
10
  import { FormControl, ReactiveFormsModule } from '@angular/forms';
11
11
  import { DynamicForm } from '@masterteam/forms/dynamic-form';
12
12
  import { Skeleton } from 'primeng/skeleton';
13
+ import * as i2 from '@jsverse/transloco';
14
+ import { TranslocoService, TranslocoModule } from '@jsverse/transloco';
13
15
  import { ConfirmationService } from '@masterteam/components/confirmation';
14
16
 
15
17
  class SetModuleInfo {
@@ -824,6 +826,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
824
826
 
825
827
  class EscalationBuilder {
826
828
  escalationFacade = inject(EscalationFacade);
829
+ transloco = inject(TranslocoService);
827
830
  groups = this.escalationFacade.groups;
828
831
  roles = this.escalationFacade.roles;
829
832
  escalation = this.escalationFacade.escalation;
@@ -839,7 +842,7 @@ class EscalationBuilder {
839
842
  availableNodes = [
840
843
  {
841
844
  id: 'FormStep',
842
- label: 'New Step',
845
+ label: this.transloco.translate('escalation.builder.newStep'),
843
846
  name: {
844
847
  en: 'New Step',
845
848
  ar: ' خطوة جديدة',
@@ -857,15 +860,15 @@ class EscalationBuilder {
857
860
  fields: [
858
861
  {
859
862
  key: 'name.en',
860
- label: 'Name (English)',
861
- placeholder: 'Enter name in English',
863
+ label: this.transloco.translate('escalation.builder.nameEnglish'),
864
+ placeholder: this.transloco.translate('escalation.builder.enterNameEnglish'),
862
865
  cssClass: 'w-full',
863
866
  required: true,
864
867
  },
865
868
  {
866
869
  key: 'name.ar',
867
- label: 'Name (Arabic)',
868
- placeholder: 'Enter name in Arabic',
870
+ label: this.transloco.translate('escalation.builder.nameArabic'),
871
+ placeholder: this.transloco.translate('escalation.builder.enterNameArabic'),
869
872
  cssClass: 'w-full',
870
873
  required: true,
871
874
  },
@@ -875,7 +878,7 @@ class EscalationBuilder {
875
878
  approverSection = computed(() => ({
876
879
  key: 'settings',
877
880
  type: 'header',
878
- label: 'Approver',
881
+ label: this.transloco.translate('escalation.builder.approver'),
879
882
  headerClass: 'rounded-t-xl bg-slate-50 px-4 py-3 text-sm font-semibold text-slate-900 border border-slate-200 border-b-0',
880
883
  bodyClass: 'rounded-b-xl border border-slate-200 p-4 space-y-3',
881
884
  cssClass: ' ',
@@ -886,8 +889,14 @@ class EscalationBuilder {
886
889
  orientation: 'horizontal',
887
890
  defaultValue: '1',
888
891
  options: [
889
- { label: 'Group', value: '1' },
890
- { label: 'Role', value: '2' },
892
+ {
893
+ label: this.transloco.translate('escalation.builder.group'),
894
+ value: '1',
895
+ },
896
+ {
897
+ label: this.transloco.translate('escalation.builder.role'),
898
+ value: '2',
899
+ },
891
900
  ],
892
901
  optionLabel: 'title',
893
902
  optionValue: 'value',
@@ -898,7 +907,7 @@ class EscalationBuilder {
898
907
  {
899
908
  key: 'group',
900
909
  label: 'Select',
901
- placeholder: 'Select group',
910
+ placeholder: this.transloco.translate('escalation.builder.selectGroup'),
902
911
  cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',
903
912
  required: true,
904
913
  type: 'select',
@@ -1178,11 +1187,18 @@ class EscalationBuilder {
1178
1187
  }
1179
1188
  }
1180
1189
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: EscalationBuilder, deps: [], target: i0.ɵɵFactoryTarget.Component });
1181
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: EscalationBuilder, isStandalone: true, selector: "mt-escalation-builder", ngImport: i0, template: "<mt-card class=\"h-[calc(100vh---spacing(26))] relative\" id=\"escalationCard\">\n @if (!loading()) {\n <mt-structure-builder\n class=\"flex-1\"\n [availableNodes]=\"availableNodes\"\n [connectionForm]=\"connectionForm()\"\n [nodeActions]=\"nodeActions()\"\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\n [nodes]=\"steps()\"\n [connections]=\"connections()\"\n (action)=\"onStructureAction($event)\"\n [addModalType]=\"'drawer'\"\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [addModalHeader]=\"'Add Step'\"\n [updateModalHeader]=\"'Edit Step'\"\n [appendTo]=\"'escalationCard'\"\n [nodeFields]=\"nodeFields()\"\n >\n <ng-template\n #nodeDialog\n let-close=\"close\"\n let-save=\"save\"\n let-node=\"node\"\n >\n <div class=\"p-4\">\n @if (loadingStep()) {\n <!-- Loading skeleton -->\n <div class=\"space-y-4\">\n <!-- Form fields skeleton -->\n <div class=\"space-y-4\">\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"10rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"3rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"6rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"4rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n </div>\n </div>\n } @else {\n <!-- Actual content - just the form, no tabs -->\n <mt-dynamic-form\n [formConfig]=\"nodeForm()\"\n [formControl]=\"nodeFormControl\"\n ></mt-dynamic-form>\n }\n </div>\n </ng-template>\n </mt-structure-builder>\n }\n</mt-card>\n", dependencies: [{ kind: "component", type: StructureBuilder, selector: "mt-structure-builder", inputs: ["availableNodes", "nodeForm", "connectionForm", "nodeActions", "nodeFields", "isAutoLayout", "addModalType", "updateModalType", "addModalStyleClass", "updateModalStyleClass", "addModalHeader", "updateModalHeader", "appendTo", "nodes", "connections"], outputs: ["nodeActionsEvent", "action", "nodesChange", "connectionsChange"] }, { kind: "component", type: Card, selector: "mt-card", inputs: ["class", "title", "paddingless"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "component", type: Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }] });
1190
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: EscalationBuilder, isStandalone: true, selector: "mt-escalation-builder", ngImport: i0, template: "<mt-card class=\"h-[calc(100vh---spacing(26))] relative\" id=\"escalationCard\">\n @if (!loading()) {\n <mt-structure-builder\n class=\"flex-1\"\n [availableNodes]=\"availableNodes\"\n [connectionForm]=\"connectionForm()\"\n [nodeActions]=\"nodeActions()\"\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\n [nodes]=\"steps()\"\n [connections]=\"connections()\"\n (action)=\"onStructureAction($event)\"\n [addModalType]=\"'drawer'\"\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [addModalHeader]=\"'escalation.builder.addStep' | transloco\"\n [updateModalHeader]=\"'escalation.builder.editStep' | transloco\"\n [appendTo]=\"'escalationCard'\"\n [nodeFields]=\"nodeFields()\"\n >\n <ng-template\n #nodeDialog\n let-close=\"close\"\n let-save=\"save\"\n let-node=\"node\"\n >\n <div class=\"p-4\">\n @if (loadingStep()) {\n <!-- Loading skeleton -->\n <div class=\"space-y-4\">\n <!-- Form fields skeleton -->\n <div class=\"space-y-4\">\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"10rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"3rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"6rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"4rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n </div>\n </div>\n } @else {\n <!-- Actual content - just the form, no tabs -->\n <mt-dynamic-form\n [formConfig]=\"nodeForm()\"\n [formControl]=\"nodeFormControl\"\n ></mt-dynamic-form>\n }\n </div>\n </ng-template>\n </mt-structure-builder>\n }\n</mt-card>\n", dependencies: [{ kind: "component", type: StructureBuilder, selector: "mt-structure-builder", inputs: ["availableNodes", "nodeForm", "connectionForm", "nodeActions", "nodeFields", "isAutoLayout", "addModalType", "updateModalType", "addModalStyleClass", "updateModalStyleClass", "addModalHeader", "updateModalHeader", "appendTo", "nodes", "connections"], outputs: ["nodeActionsEvent", "action", "nodesChange", "connectionsChange"] }, { kind: "component", type: Card, selector: "mt-card", inputs: ["class", "title", "paddingless"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "component", type: Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i2.TranslocoPipe, name: "transloco" }] });
1182
1191
  }
1183
1192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: EscalationBuilder, decorators: [{
1184
1193
  type: Component,
1185
- args: [{ selector: 'mt-escalation-builder', imports: [StructureBuilder, Card, ReactiveFormsModule, DynamicForm, Skeleton], host: {}, template: "<mt-card class=\"h-[calc(100vh---spacing(26))] relative\" id=\"escalationCard\">\n @if (!loading()) {\n <mt-structure-builder\n class=\"flex-1\"\n [availableNodes]=\"availableNodes\"\n [connectionForm]=\"connectionForm()\"\n [nodeActions]=\"nodeActions()\"\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\n [nodes]=\"steps()\"\n [connections]=\"connections()\"\n (action)=\"onStructureAction($event)\"\n [addModalType]=\"'drawer'\"\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [addModalHeader]=\"'Add Step'\"\n [updateModalHeader]=\"'Edit Step'\"\n [appendTo]=\"'escalationCard'\"\n [nodeFields]=\"nodeFields()\"\n >\n <ng-template\n #nodeDialog\n let-close=\"close\"\n let-save=\"save\"\n let-node=\"node\"\n >\n <div class=\"p-4\">\n @if (loadingStep()) {\n <!-- Loading skeleton -->\n <div class=\"space-y-4\">\n <!-- Form fields skeleton -->\n <div class=\"space-y-4\">\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"10rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"3rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"6rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"4rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n </div>\n </div>\n } @else {\n <!-- Actual content - just the form, no tabs -->\n <mt-dynamic-form\n [formConfig]=\"nodeForm()\"\n [formControl]=\"nodeFormControl\"\n ></mt-dynamic-form>\n }\n </div>\n </ng-template>\n </mt-structure-builder>\n }\n</mt-card>\n" }]
1194
+ args: [{ selector: 'mt-escalation-builder', imports: [
1195
+ StructureBuilder,
1196
+ Card,
1197
+ ReactiveFormsModule,
1198
+ DynamicForm,
1199
+ Skeleton,
1200
+ TranslocoModule,
1201
+ ], host: {}, template: "<mt-card class=\"h-[calc(100vh---spacing(26))] relative\" id=\"escalationCard\">\n @if (!loading()) {\n <mt-structure-builder\n class=\"flex-1\"\n [availableNodes]=\"availableNodes\"\n [connectionForm]=\"connectionForm()\"\n [nodeActions]=\"nodeActions()\"\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\n [nodes]=\"steps()\"\n [connections]=\"connections()\"\n (action)=\"onStructureAction($event)\"\n [addModalType]=\"'drawer'\"\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [addModalHeader]=\"'escalation.builder.addStep' | transloco\"\n [updateModalHeader]=\"'escalation.builder.editStep' | transloco\"\n [appendTo]=\"'escalationCard'\"\n [nodeFields]=\"nodeFields()\"\n >\n <ng-template\n #nodeDialog\n let-close=\"close\"\n let-save=\"save\"\n let-node=\"node\"\n >\n <div class=\"p-4\">\n @if (loadingStep()) {\n <!-- Loading skeleton -->\n <div class=\"space-y-4\">\n <!-- Form fields skeleton -->\n <div class=\"space-y-4\">\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"10rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"3rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"6rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"4rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n </div>\n </div>\n } @else {\n <!-- Actual content - just the form, no tabs -->\n <mt-dynamic-form\n [formConfig]=\"nodeForm()\"\n [formControl]=\"nodeFormControl\"\n ></mt-dynamic-form>\n }\n </div>\n </ng-template>\n </mt-structure-builder>\n }\n</mt-card>\n" }]
1186
1202
  }], ctorParameters: () => [] });
1187
1203
 
1188
1204
  const ESCALATION_STATES = [EscalationState];
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-escalation.mjs","sources":["../../../../packages/masterteam/escalation/src/store/escalation/escalation.actions.ts","../../../../packages/masterteam/escalation/src/store/utils/state-helpers.ts","../../../../packages/masterteam/escalation/src/store/escalation/escalation.state.ts","../../../../packages/masterteam/escalation/src/store/escalation/escalation.facade.ts","../../../../packages/masterteam/escalation/src/store/escalation/api.model.ts","../../../../packages/masterteam/escalation/src/lib/escalation-builder/escalation-builder.ts","../../../../packages/masterteam/escalation/src/lib/escalation-builder/escalation-builder.html","../../../../packages/masterteam/escalation/src/store/app.state.ts","../../../../packages/masterteam/escalation/src/store/index.ts","../../../../packages/masterteam/escalation/src/masterteam-escalation.ts"],"sourcesContent":["import type { ConnectionPayload, StepPayload } from './escalation.model';\n\nexport class SetModuleInfo {\n static readonly type = '[Escalation] Set Module Info';\n\n constructor(\n public readonly moduleType: string,\n public readonly moduleId: string | number,\n public readonly parentModuleType?: string,\n public readonly parentModuleId?: string | number,\n public readonly parentPath?: string,\n ) {}\n}\nexport class GetEscalation {\n static readonly type = '[Escalation] Get Escalation';\n}\n\nexport class GetFormulaProperties {\n static readonly type = '[Escalation] Get Formula Properties';\n}\n\nexport class GetGroups {\n static readonly type = '[Escalation] Get Groups';\n}\n\nexport class GetRolesForModule {\n static readonly type = '[Escalation] Get Roles For Module';\n}\n\nexport class GetStep {\n static readonly type = '[Escalation] Get Step';\n\n constructor(public readonly stepId: string | number) {}\n}\n\nexport class ValidateFlow {\n static readonly type = '[Escalation] Validate Flow';\n}\n\nexport class CreateStep {\n static readonly type = '[Escalation] Create Step';\n\n constructor(public readonly payload: StepPayload) {}\n}\n\nexport class UpdateStep {\n static readonly type = '[Escalation] Update Step';\n\n constructor(\n public readonly stepId: string | number,\n public readonly payload: StepPayload,\n ) {}\n}\n\nexport class CreateConnection {\n static readonly type = '[Escalation] Create Connection';\n\n constructor(public readonly payload: ConnectionPayload) {}\n}\n\nexport class UpdateConnection {\n static readonly type = '[Escalation] Update Connection';\n\n constructor(\n public readonly connectionId: string | number,\n public readonly payload: ConnectionPayload,\n ) {}\n}\n\nexport class PublishEscalation {\n static readonly type = '[Escalation] Publish Escalation';\n\n constructor(public readonly isPublished: boolean) {}\n}\n\nexport class DeleteStep {\n static readonly type = '[Escalation] Delete Step';\n\n constructor(public readonly stepId: string | number) {}\n}\n\nexport class DeleteConnection {\n static readonly type = '[Escalation] Delete Connection';\n\n constructor(public readonly connectionId: string | number) {}\n}\n","import type { StateContext } from '@ngxs/store';\n\nexport interface LoadingStateShape<L extends string = string> {\n loadingActive: L[];\n errors: Partial<Record<L, string>>;\n}\n\ntype LoadingName<T extends LoadingStateShape<string>> =\n T['loadingActive'][number];\n\nexport function startLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive, errors } = ctx.getState();\n\n if (!loadingActive.includes(loadingName)) {\n ctx.patchState({\n loadingActive: [...loadingActive, loadingName],\n } as Partial<T>);\n }\n\n if (errors && errors[loadingName]) {\n const { [loadingName]: _removed, ...rest } = errors;\n ctx.patchState({ errors: rest } as Partial<T>);\n }\n}\n\nexport function endLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive } = ctx.getState();\n\n ctx.patchState({\n loadingActive: loadingActive.filter((name) => name !== loadingName),\n } as Partial<T>);\n}\n\nexport function setLoadingError<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n message: string,\n): void {\n const { errors } = ctx.getState();\n ctx.patchState({\n errors: { ...errors, [loadingName]: message },\n } as Partial<T>);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { catchError, finalize, tap } from 'rxjs/operators';\n\nimport {\n endLoading,\n setLoadingError,\n startLoading,\n} from '../utils/state-helpers';\n\nimport type {\n ConnectionResponse,\n FormulaProperty,\n GroupDefinition,\n PublishResponse,\n RoleDefinition,\n StepResponse,\n StepSchema,\n EscalationConnection,\n EscalationLoadingName,\n EscalationSchema,\n EscalationStateModel,\n EscalationStepSchema,\n} from './escalation.model';\nimport {\n CreateConnection,\n CreateStep,\n DeleteConnection,\n DeleteStep,\n GetFormulaProperties,\n GetGroups,\n GetRolesForModule,\n GetStep,\n GetEscalation,\n PublishEscalation,\n UpdateConnection,\n UpdateStep,\n ValidateFlow,\n SetModuleInfo,\n} from './escalation.actions';\nimport { Response } from './api.model';\n\nconst DEFAULT_STATE: EscalationStateModel = {\n moduleType: null,\n moduleId: null,\n escalation: null,\n formulaProperties: [],\n groups: [],\n roles: [],\n selectedStep: null,\n isFlowValid: null,\n loadingActive: [],\n errors: {},\n};\n\n@State<EscalationStateModel>({\n name: 'escalation',\n defaults: DEFAULT_STATE,\n})\n@Injectable()\nexport class EscalationState {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = 'EscalationSchemas';\n private readonly groupsUrl = 'identity/Groups';\n private readonly rolesUrl = 'identity/roles/scopes';\n\n @Selector()\n static moduleId(state: EscalationStateModel): string | number | null {\n return state.moduleId;\n }\n\n @Selector()\n static moduleType(state: EscalationStateModel): string | null {\n return state.moduleType;\n }\n\n @Selector()\n static escalation(state: EscalationStateModel): EscalationSchema | null {\n return state.escalation;\n }\n\n @Selector()\n static formulaProperties(state: EscalationStateModel): FormulaProperty[] {\n return state.formulaProperties;\n }\n\n @Selector()\n static groups(state: EscalationStateModel): GroupDefinition[] {\n return state.groups;\n }\n\n @Selector()\n static roles(state: EscalationStateModel): RoleDefinition[] {\n return state.roles;\n }\n\n @Selector()\n static selectedStep(state: EscalationStateModel): StepSchema | null {\n return state.selectedStep;\n }\n\n @Selector()\n static isFlowValid(state: EscalationStateModel): boolean | null {\n return state.isFlowValid;\n }\n\n @Selector()\n static stepsSchema(state: EscalationStateModel): EscalationStepSchema[] {\n return state.escalation?.stepsSchema ?? [];\n }\n\n @Selector()\n static connections(state: EscalationStateModel): EscalationConnection[] {\n return state.escalation?.connections ?? [];\n }\n\n @Selector()\n static isLoadingFactory(state: EscalationStateModel) {\n return (loadingName: EscalationLoadingName) =>\n state.loadingActive.includes(loadingName);\n }\n\n @Selector()\n static errorFactory(state: EscalationStateModel) {\n return (loadingName: EscalationLoadingName) =>\n state.errors?.[loadingName] ?? null;\n }\n\n @Action(SetModuleInfo)\n setModuleInfo(\n ctx: StateContext<EscalationStateModel>,\n action: SetModuleInfo,\n ) {\n let parentPath = '';\n if (action.parentModuleType && action.parentModuleId) {\n parentPath = `/${action.parentModuleType}/${action.parentModuleId}`;\n } else if (action.parentPath) {\n parentPath = action.parentPath;\n }\n ctx.patchState({\n moduleType: action.moduleType,\n moduleId: action.moduleId,\n parentModuleType: action.parentModuleType ?? null,\n parentModuleId: action.parentModuleId ?? null,\n parentPath: parentPath ?? '',\n });\n }\n @Action(GetEscalation)\n getEscalation(\n ctx: StateContext<EscalationStateModel>,\n _action: GetEscalation,\n ) {\n startLoading(ctx, 'getEscalation');\n\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Module ID is not set';\n setLoadingError(ctx, 'getEscalation', message);\n endLoading(ctx, 'getEscalation');\n return of(null);\n }\n\n return this.http\n .get<Response<EscalationSchema>>(\n `${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`,\n {\n params: { Mode: 'edit' },\n },\n )\n .pipe(\n tap((response) => {\n const escalation = response?.data ?? null;\n ctx.patchState({ escalation });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load escalation';\n setLoadingError(ctx, 'getEscalation', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getEscalation')),\n );\n }\n\n @Action(GetFormulaProperties)\n getFormulaProperties(\n ctx: StateContext<EscalationStateModel>,\n _action: GetFormulaProperties,\n ) {\n startLoading(ctx, 'getFormulaProperties');\n\n const state = ctx.getState();\n const moduleId = state.moduleId;\n\n if (!moduleId) {\n const message = 'Module ID is not set';\n setLoadingError(ctx, 'getFormulaProperties', message);\n endLoading(ctx, 'getFormulaProperties');\n return of(null);\n }\n\n return this.http\n .get<\n Response<FormulaProperty[]>\n >(`${this.baseUrl}/processFormulaProperties/${moduleId}`)\n .pipe(\n tap((response) => {\n const formulaProperties = Array.isArray(response?.data)\n ? response.data\n : [];\n ctx.patchState({ formulaProperties });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load formula properties';\n setLoadingError(ctx, 'getFormulaProperties', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getFormulaProperties')),\n );\n }\n\n @Action(GetGroups)\n getGroups(ctx: StateContext<EscalationStateModel>, _action: GetGroups) {\n const state = ctx.getState();\n if (state.groups.length) {\n return of(state.groups);\n }\n\n startLoading(ctx, 'getGroups');\n\n return this.http.get<Response<GroupDefinition[]>>(this.groupsUrl).pipe(\n tap((response) => {\n const groups = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ groups });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load groups';\n setLoadingError(ctx, 'getGroups', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getGroups')),\n );\n }\n\n @Action(GetRolesForModule)\n getRolesForModule(\n ctx: StateContext<EscalationStateModel>,\n _action: GetRolesForModule,\n ) {\n const state = ctx.getState();\n const { moduleType, moduleId } = state;\n\n if (!moduleType || !moduleId) {\n const message = 'Module type and module ID must be set';\n setLoadingError(ctx, 'getRolesForModule', message);\n return of([]);\n }\n\n startLoading(ctx, 'getRolesForModule');\n\n return this.http\n .get<Response<RoleDefinition[]>>(\n `${this.rolesUrl}/${moduleType}/${moduleId}`,\n {\n params: { inherited: 'true' },\n },\n )\n .pipe(\n tap((response) => {\n const roles = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ roles });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load roles';\n setLoadingError(ctx, 'getRolesForModule', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getRolesForModule')),\n );\n }\n\n @Action(GetStep)\n getStep(ctx: StateContext<EscalationStateModel>, action: GetStep) {\n startLoading(ctx, 'getStep');\n\n return this.http\n .get<Response<StepSchema>>(`${this.baseUrl}/step/${action.stepId}`, {\n params: { Mode: 'edit' },\n })\n .pipe(\n tap((response) => {\n const selectedStep = response?.data ?? null;\n ctx.patchState({ selectedStep });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load step';\n setLoadingError(ctx, 'getStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getStep')),\n );\n }\n\n @Action(ValidateFlow)\n validateFlow(ctx: StateContext<EscalationStateModel>, _action: ValidateFlow) {\n startLoading(ctx, 'validateFlow');\n\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'validateFlow', message);\n endLoading(ctx, 'validateFlow');\n return of(null);\n }\n\n return this.http\n .get<\n Response<boolean>\n >(`${this.baseUrl}/requestSchema${parentPath}/${moduleType}/${moduleId}/validity`)\n .pipe(\n tap((response) => {\n const isFlowValid = response?.data ?? null;\n ctx.patchState({ isFlowValid });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to validate flow';\n setLoadingError(ctx, 'validateFlow', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'validateFlow')),\n );\n }\n\n @Action(CreateStep)\n createStep(ctx: StateContext<EscalationStateModel>, action: CreateStep) {\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'createStep', message);\n return of(null);\n }\n\n const tempId = -Date.now();\n const tempStep: any = {\n ...action.payload,\n id: tempId,\n loading: true,\n };\n\n if (state.escalation) {\n ctx.patchState({\n escalation: {\n ...state.escalation,\n stepsSchema: [...state.escalation.stepsSchema, tempStep],\n },\n });\n }\n\n startLoading(ctx, 'createStep');\n\n return this.http\n .post<\n Response<StepResponse>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/steps`, action.payload)\n .pipe(\n tap((response) => {\n const createdStep = response?.data;\n const currentState = ctx.getState();\n if (createdStep && currentState.escalation) {\n const updatedSteps = currentState.escalation.stepsSchema.map(\n (step) =>\n step.id === tempId ? { ...createdStep, loading: false } : step,\n );\n\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: updatedSteps,\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const filteredSteps = currentState.escalation.stepsSchema.filter(\n (step) => step.id !== tempId,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: filteredSteps,\n },\n });\n }\n\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to create step';\n setLoadingError(ctx, 'createStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'createStep')),\n );\n }\n\n @Action(UpdateStep)\n updateStep(ctx: StateContext<EscalationStateModel>, action: UpdateStep) {\n const state = ctx.getState();\n const moduleId = state.moduleId;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'updateStep', message);\n return of(null);\n }\n\n if (state.escalation) {\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\n step.id === action.stepId ? { ...step, loading: true } : step,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n stepsSchema: updatedSteps,\n },\n });\n }\n\n startLoading(ctx, 'updateStep');\n\n return this.http\n .put<\n Response<StepResponse>\n >(`${this.baseUrl}/steps/${action.stepId}`, action.payload)\n .pipe(\n tap((response) => {\n const updatedStep = response?.data;\n const currentState = ctx.getState();\n if (updatedStep && currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: currentState.escalation.stepsSchema.map((step) =>\n step.id === updatedStep.id\n ? { ...updatedStep, loading: false }\n : step,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorSteps = currentState.escalation.stepsSchema.map(\n (step) =>\n step.id === action.stepId ? { ...step, loading: false } : step,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: errorSteps,\n },\n });\n }\n\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to update step';\n setLoadingError(ctx, 'updateStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'updateStep')),\n );\n }\n\n @Action(CreateConnection)\n createConnection(\n ctx: StateContext<EscalationStateModel>,\n action: CreateConnection,\n ) {\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'createConnection', message);\n return of(null);\n }\n\n const tempId = -Date.now();\n const tempConnection: any = {\n ...action.payload,\n id: tempId,\n loading: true,\n source: action.payload.sourceStepId,\n target: action.payload.targetStepId,\n };\n\n if (state.escalation) {\n ctx.patchState({\n escalation: {\n ...state.escalation,\n connections: [...state.escalation.connections, tempConnection],\n },\n });\n }\n\n startLoading(ctx, 'createConnection');\n\n return this.http\n .post<\n Response<ConnectionResponse>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/connections`, action.payload)\n .pipe(\n tap((response) => {\n const createdConnection = response?.data;\n const currentState = ctx.getState();\n if (createdConnection && currentState.escalation) {\n const updatedConnections = currentState.escalation.connections.map(\n (conn) =>\n conn.id === tempId\n ? { ...createdConnection, loading: false }\n : conn,\n );\n\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: updatedConnections,\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const filteredConnections =\n currentState.escalation.connections.filter(\n (conn) => conn.id !== tempId,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: filteredConnections,\n },\n });\n }\n\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to create connection';\n setLoadingError(ctx, 'createConnection', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'createConnection')),\n );\n }\n\n @Action(UpdateConnection)\n updateConnection(\n ctx: StateContext<EscalationStateModel>,\n action: UpdateConnection,\n ) {\n const state = ctx.getState();\n const moduleId = state.moduleId;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'updateConnection', message);\n return of(null);\n }\n\n if (state.escalation) {\n const updatedConnections = state.escalation.connections.map((conn) =>\n conn.id === action.connectionId ? { ...conn, loading: true } : conn,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n connections: updatedConnections,\n },\n });\n }\n\n startLoading(ctx, 'updateConnection');\n\n return this.http\n .put<\n Response<ConnectionResponse>\n >(`${this.baseUrl}/connections/${action.connectionId}`, action.payload)\n .pipe(\n tap((response) => {\n const updatedConnection = response?.data;\n const currentState = ctx.getState();\n if (updatedConnection && currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: currentState.escalation.connections.map((conn) =>\n conn.id === updatedConnection.id\n ? { ...updatedConnection, loading: false }\n : conn,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorConnections = currentState.escalation.connections.map(\n (conn) =>\n conn.id === action.connectionId\n ? { ...conn, loading: false }\n : conn,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: errorConnections,\n },\n });\n }\n\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to update connection';\n setLoadingError(ctx, 'updateConnection', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'updateConnection')),\n );\n }\n\n @Action(PublishEscalation)\n publishEscalation(\n ctx: StateContext<EscalationStateModel>,\n action: PublishEscalation,\n ) {\n startLoading(ctx, 'publishEscalation');\n\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'publishEscalation', message);\n endLoading(ctx, 'publishEscalation');\n return of(null);\n }\n\n return this.http\n .put<\n Response<PublishResponse>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/publish`, { IsPublished: action.isPublished })\n .pipe(\n tap((response) => {\n const publishedData = response?.data;\n if (publishedData && state.escalation) {\n ctx.patchState({\n escalation: {\n ...state.escalation,\n isPublished: publishedData.isPublished,\n isValid: publishedData.isValid,\n },\n });\n }\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to publish escalation';\n setLoadingError(ctx, 'publishEscalation', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'publishEscalation')),\n );\n }\n\n @Action(DeleteStep)\n deleteStep(ctx: StateContext<EscalationStateModel>, action: DeleteStep) {\n const state = ctx.getState();\n\n if (state.escalation) {\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\n step.id == action.stepId ? { ...step, loading: true } : step,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n stepsSchema: updatedSteps,\n },\n });\n }\n\n startLoading(ctx, 'deleteStep');\n\n return this.http\n .delete<Response<boolean>>(`${this.baseUrl}/steps/${action.stepId}`)\n .pipe(\n tap(() => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: currentState.escalation.stepsSchema.filter(\n (step) => step.id != action.stepId,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorSteps = currentState.escalation.stepsSchema.map(\n (step) =>\n step.id == action.stepId ? { ...step, loading: false } : step,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: errorSteps,\n },\n });\n }\n\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to delete step';\n setLoadingError(ctx, 'deleteStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'deleteStep')),\n );\n }\n\n @Action(DeleteConnection)\n deleteConnection(\n ctx: StateContext<EscalationStateModel>,\n action: DeleteConnection,\n ) {\n const state = ctx.getState();\n\n if (state.escalation) {\n const updatedConnections = state.escalation.connections.map((conn) =>\n conn.id == action.connectionId ? { ...conn, loading: true } : conn,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n connections: updatedConnections,\n },\n });\n }\n\n startLoading(ctx, 'deleteConnection');\n\n return this.http\n .delete<\n Response<boolean>\n >(`${this.baseUrl}/connections/${action.connectionId}`)\n .pipe(\n tap(() => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: currentState.escalation.connections.filter(\n (conn) => conn.id != action.connectionId,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorConnections = currentState.escalation.connections.map(\n (conn) =>\n conn.id == action.connectionId\n ? { ...conn, loading: false }\n : conn,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: errorConnections,\n },\n });\n }\n\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to delete connection';\n setLoadingError(ctx, 'deleteConnection', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'deleteConnection')),\n );\n }\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { select, Store } from '@ngxs/store';\nimport type { Observable } from 'rxjs';\n\nimport type {\n ConnectionPayload,\n FormulaProperty,\n GroupDefinition,\n RoleDefinition,\n StepPayload,\n StepSchema,\n EscalationConnection,\n EscalationLoadingName,\n EscalationSchema,\n EscalationStepSchema,\n} from './escalation.model';\nimport {\n CreateConnection,\n CreateStep,\n DeleteConnection,\n DeleteStep,\n GetFormulaProperties,\n GetGroups,\n GetRolesForModule,\n GetStep,\n GetEscalation,\n PublishEscalation,\n UpdateConnection,\n UpdateStep,\n ValidateFlow,\n SetModuleInfo,\n} from './escalation.actions';\nimport { EscalationState } from './escalation.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EscalationFacade {\n private readonly store = inject(Store);\n\n readonly moduleType = select<string | null>(EscalationState.moduleType);\n readonly moduleId = select<string | number | null>(EscalationState.moduleId);\n readonly escalation = select<EscalationSchema | null>(\n EscalationState.escalation,\n );\n readonly formulaProperties = select<FormulaProperty[]>(\n EscalationState.formulaProperties,\n );\n readonly groups = select<GroupDefinition[]>(EscalationState.groups);\n readonly roles = select<RoleDefinition[]>(EscalationState.roles);\n readonly selectedStep = select<StepSchema | null>(\n EscalationState.selectedStep,\n );\n readonly isFlowValid = select<boolean | null>(EscalationState.isFlowValid);\n readonly steps = select<EscalationStepSchema[]>(EscalationState.stepsSchema);\n readonly connections = select<EscalationConnection[]>(\n EscalationState.connections,\n );\n\n isLoading(loadingName: EscalationLoadingName) {\n const loadingFactory = select<(name: EscalationLoadingName) => boolean>(\n EscalationState.isLoadingFactory,\n );\n return computed(() => loadingFactory()(loadingName));\n }\n\n error(loadingName: EscalationLoadingName) {\n const errorFactory = select<(name: EscalationLoadingName) => string | null>(\n EscalationState.errorFactory,\n );\n return computed(() => errorFactory()(loadingName));\n }\n\n setModuleInfo(\n moduleType: string,\n moduleId: string | number,\n parentModuleType?: string,\n parentModuleId?: string | number,\n parentPath?: string,\n ): Observable<unknown> {\n return this.store.dispatch(\n new SetModuleInfo(\n moduleType,\n moduleId,\n parentModuleType,\n parentModuleId,\n parentPath,\n ),\n );\n }\n\n loadEscalation(): Observable<unknown> {\n return this.store.dispatch(new GetEscalation());\n }\n\n loadFormulaProperties(): Observable<unknown> {\n return this.store.dispatch(new GetFormulaProperties());\n }\n\n loadGroups(): Observable<unknown> {\n return this.store.dispatch(new GetGroups());\n }\n\n loadRolesForModule(): Observable<unknown> {\n return this.store.dispatch(new GetRolesForModule());\n }\n\n loadStep(stepId: string | number): Observable<unknown> {\n return this.store.dispatch(new GetStep(stepId));\n }\n\n validateFlow(): Observable<unknown> {\n return this.store.dispatch(new ValidateFlow());\n }\n\n createStep(payload: StepPayload): Observable<unknown> {\n return this.store.dispatch(new CreateStep(payload));\n }\n\n updateStep(\n stepId: string | number,\n payload: StepPayload,\n ): Observable<unknown> {\n return this.store.dispatch(new UpdateStep(stepId, payload));\n }\n\n createConnection(payload: ConnectionPayload): Observable<unknown> {\n return this.store.dispatch(new CreateConnection(payload));\n }\n\n updateConnection(\n connectionId: string | number,\n payload: ConnectionPayload,\n ): Observable<unknown> {\n return this.store.dispatch(new UpdateConnection(connectionId, payload));\n }\n\n publishEscalation(isPublished: boolean): Observable<unknown> {\n return this.store.dispatch(new PublishEscalation(isPublished));\n }\n\n deleteStep(stepId: string | number): Observable<unknown> {\n return this.store.dispatch(new DeleteStep(stepId));\n }\n\n deleteConnection(connectionId: string | number): Observable<unknown> {\n return this.store.dispatch(new DeleteConnection(connectionId));\n }\n}\n","// shared/models/api.model.ts\n\nexport interface Response<T> {\n endpoint: string;\n status: number;\n code: number;\n locale: string;\n message?: string | null;\n errors?: any | null;\n data: T;\n cacheSession?: string;\n}\n","import {\n Component,\n inject,\n linkedSignal,\n signal,\n computed,\n effect,\n} from '@angular/core';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport { Card } from '@masterteam/components/card';\nimport {\n NodeActionEvent,\n SBAction,\n StructureBuilder,\n} from '@masterteam/structure-builder';\nimport { EscalationFacade } from '../../store/escalation';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { Skeleton } from 'primeng/skeleton';\nimport { ConfirmationService } from '@masterteam/components/confirmation';\n\n@Component({\n selector: 'mt-escalation-builder',\n imports: [StructureBuilder, Card, ReactiveFormsModule, DynamicForm, Skeleton],\n templateUrl: './escalation-builder.html',\n styles: [],\n host: {},\n})\nexport class EscalationBuilder {\n private escalationFacade = inject(EscalationFacade);\n groups = this.escalationFacade.groups;\n roles = this.escalationFacade.roles;\n escalation = this.escalationFacade.escalation;\n loading = this.escalationFacade.isLoading('getEscalation');\n loadingStep = this.escalationFacade.isLoading('getStep');\n private readonly confirmationService = inject(ConfirmationService);\n\n selectedStep = this.escalationFacade.selectedStep;\n\n nodeFields = signal<any>({\n name: 'name',\n });\n nodeFormControl = new FormControl();\n\n private isEditingInitialNode = signal<boolean>(false);\n\n availableNodes = [\n {\n id: 'FormStep',\n label: 'New Step',\n name: {\n en: 'New Step',\n ar: ' خطوة جديدة',\n },\n targetType: '1',\n icon: 'general.plus-circle',\n color: '#000000',\n },\n ];\n\n // Base form sections - defined once for reusability\n private readonly baseNameFields = {\n key: 'settings',\n type: 'none',\n bodyClass: 'space-y-2',\n fields: [\n {\n key: 'name.en',\n label: 'Name (English)',\n placeholder: 'Enter name in English',\n cssClass: 'w-full',\n required: true,\n },\n {\n key: 'name.ar',\n label: 'Name (Arabic)',\n placeholder: 'Enter name in Arabic',\n cssClass: 'w-full',\n required: true,\n },\n ],\n };\n\n // Approver section with dynamic options\n private readonly approverSection = computed(() => ({\n key: 'settings',\n type: 'header',\n label: 'Approver',\n headerClass:\n 'rounded-t-xl bg-slate-50 px-4 py-3 text-sm font-semibold text-slate-900 border border-slate-200 border-b-0',\n bodyClass: 'rounded-b-xl border border-slate-200 p-4 space-y-3',\n cssClass: ' ',\n fields: [\n {\n key: 'targetType',\n type: 'radio-button',\n orientation: 'horizontal',\n defaultValue: '1',\n options: [\n { label: 'Group', value: '1' },\n { label: 'Role', value: '2' },\n ],\n optionLabel: 'title',\n optionValue: 'value',\n placeholder: 'Enter Role',\n cssClass: 'flex items-center gap-6 text-sm text-slate-700',\n required: true,\n },\n {\n key: 'group',\n label: 'Select',\n placeholder: 'Select group',\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\n required: true,\n type: 'select',\n options: this.groups(),\n optionLabel: 'title',\n optionValue: 'id',\n relations: [{ key: 'targetType', value: '1', action: 'show' }],\n },\n {\n key: 'role',\n label: 'Select',\n placeholder: 'Enter target value',\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\n required: true,\n type: 'select',\n options: this.roles(),\n optionLabel: 'title',\n optionValue: 'id',\n relations: [{ key: 'targetType', value: '2', action: 'show' }],\n },\n ],\n }));\n\n private readonly slaSection = {\n key: 'slaSection',\n type: 'none',\n bodyClass: 'space-y-1',\n fields: [\n {\n key: 'sla',\n label: 'SLA',\n placeholder: 'Enter SLA',\n cssClass: 'w-full',\n required: true,\n },\n ],\n } as const;\n\n // Dynamic form configuration using linkedSignal\n // Automatically rebuilds when isEditingInitialNode changes\n nodeForm = linkedSignal<DynamicFormConfig>(() => {\n const sections: any[] = [this.baseNameFields];\n\n // Conditionally include approver and SLA sections based on isEditingInitialNode\n // Initial nodes only show name fields\n if (!this.isEditingInitialNode()) {\n sections.push(this.approverSection());\n sections.push(this.slaSection);\n }\n\n return {\n sections,\n layout: {},\n };\n });\n\n // Sample connection form configuration\n connectionForm = signal<DynamicFormConfig>({\n sections: [\n {\n key: 'basic',\n label: 'Basic Information',\n type: 'none',\n cssClass: 'p-4',\n order: 1,\n fields: [\n {\n key: 'priority',\n label: 'Priority',\n },\n ],\n },\n ],\n });\n\n // Nodes currently in the flow\n steps = computed(() => {\n return this.escalationFacade.steps().map((step) => ({\n ...step,\n color: '#000000',\n }));\n });\n\n // Connections between nodes\n connections = computed(() => {\n return this.escalationFacade.connections().map((connection) => ({\n ...connection,\n from: connection.source,\n to: connection.target,\n }));\n });\n\n // Node Actions\n nodeActions = signal([\n {\n key: 'edit',\n icon: 'general.edit-05',\n variant: 'outlined',\n size: 'small',\n tooltip: 'Edit',\n },\n {\n key: 'delete',\n icon: 'general.trash-01',\n variant: 'outlined',\n size: 'small',\n severity: 'danger',\n tooltip: 'Delete',\n },\n ]);\n\n constructor() {\n // Effect to watch selectedStep and patch form when it changes\n effect(() => {\n const step = this.selectedStep();\n\n if (step) {\n // Patch form with complete step data\n this.nodeFormControl.patchValue({\n name: step.name,\n targetType: step.targetType || '1',\n group: step.targetType === '1' ? parseInt(step.targetValue!) : null,\n role: step.targetType === '2' ? step.targetValue : null,\n sla: step.sla,\n });\n\n console.log('Form patched with step data:', step);\n }\n });\n }\n\n onNodeActionsEvent(event: NodeActionEvent) {\n console.log('Node action event:', event);\n }\n\n clearForm(): void {\n // Reset isEditingInitialNode flag\n this.isEditingInitialNode.set(false);\n\n // Reset form to default values\n this.nodeFormControl.reset({\n name: { en: '', ar: '' },\n targetType: '1',\n group: null,\n role: null,\n sla: 0,\n });\n\n console.log('Form cleared for new step');\n }\n\n onStructureAction(event: SBAction) {\n console.log('Structure action received:', event);\n\n switch (event.action) {\n case 'createNode':\n if (event.data) {\n // Get form values\n const formValue = this.nodeFormControl.value;\n\n // Prepare step payload without properties\n const stepPayload = {\n name: formValue.name || { en: 'New Step', ar: 'خطوة جديدة' },\n targetType: formValue.targetType,\n targetValue:\n formValue.targetType === '1' ? formValue.group : formValue.role,\n sla: formValue.sla || 0,\n };\n\n // Create step via facade\n this.escalationFacade.createStep(stepPayload).subscribe({\n next: () => {\n console.log('Step created successfully:', stepPayload);\n },\n error: (error) => {\n console.error('Failed to create step:', error);\n },\n });\n }\n break;\n\n case 'startUpdating':\n if (event.data) {\n this.clearForm();\n\n const stepId = event.data.id;\n\n // Set the flag based on whether node is initial\n // This will trigger nodeForm to rebuild automatically via linkedSignal\n this.isEditingInitialNode.set(!!event.data.isInitial);\n\n // Load step data\n this.escalationFacade.loadStep(stepId);\n }\n break;\n\n case 'startCreating':\n // Reset form for new step\n this.clearForm();\n break;\n\n case 'updateNode':\n if (event.data) {\n // Get form values\n const formValue = this.nodeFormControl.value;\n const stepId = event.data.id;\n\n // Prepare step payload\n const stepPayload = {\n name: formValue.name || event.data.name,\n targetType: formValue.targetType,\n targetValue:\n formValue.targetType === '1' ? formValue.group : formValue.role,\n sla: formValue.sla || event.data.sla,\n };\n\n // Update step via facade\n this.escalationFacade.updateStep(stepId, stepPayload).subscribe({\n next: () => {\n console.log('Step updated successfully:', stepPayload);\n },\n error: (error) => {\n console.error('Failed to update step:', error);\n },\n });\n }\n break;\n\n case 'deleteNode':\n if (event.data) {\n const nodeIdToDelete = event.data.id;\n this.confirmationService.confirmDelete({\n type: 'dialog',\n\n accept: () => {\n this.escalationFacade.deleteStep(nodeIdToDelete).subscribe({\n next: () => {\n console.log('Node deleted:', nodeIdToDelete);\n },\n error: (error) => {\n console.error('Failed to delete node:', error);\n },\n });\n },\n reject: () => {},\n });\n }\n break;\n\n case 'createConnection':\n if (event.data) {\n // Create connection in store\n const connectionPayload = {\n sourceStepId: event.data.from,\n targetStepId: event.data.to,\n priority: event.data.priority ?? 1,\n formula: event.data.formula ?? [],\n };\n this.escalationFacade.createConnection(connectionPayload).subscribe({\n next: () => {\n console.log('Connection created:', event.data);\n },\n error: (error) => {\n console.error('Failed to create connection:', error);\n },\n });\n }\n break;\n\n case 'updateConnection':\n if (event.data) {\n // Update connection in store\n const connectionId = event.data.id;\n const updatePayload = {\n sourceStepId: event.data.from,\n targetStepId: event.data.to,\n priority: event.data.priority ?? 1,\n formula: event.data.formula ?? [],\n };\n this.escalationFacade\n .updateConnection(connectionId, updatePayload)\n .subscribe({\n next: () => {\n console.log('Connection updated:', event.data);\n },\n error: (error) => {\n console.error('Failed to update connection:', error);\n },\n });\n }\n break;\n\n case 'deleteConnection':\n if (event.data) {\n const connectionIdToDelete = event.data.id;\n // Delete connection from store\n this.escalationFacade\n .deleteConnection(connectionIdToDelete)\n .subscribe({\n next: () => {\n console.log('Connection deleted:', connectionIdToDelete);\n },\n error: (error) => {\n console.error('Failed to delete connection:', error);\n },\n });\n }\n break;\n\n default:\n console.warn('Unknown structure action:', event.action);\n }\n }\n}\n","<mt-card class=\"h-[calc(100vh---spacing(26))] relative\" id=\"escalationCard\">\n @if (!loading()) {\n <mt-structure-builder\n class=\"flex-1\"\n [availableNodes]=\"availableNodes\"\n [connectionForm]=\"connectionForm()\"\n [nodeActions]=\"nodeActions()\"\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\n [nodes]=\"steps()\"\n [connections]=\"connections()\"\n (action)=\"onStructureAction($event)\"\n [addModalType]=\"'drawer'\"\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [addModalHeader]=\"'Add Step'\"\n [updateModalHeader]=\"'Edit Step'\"\n [appendTo]=\"'escalationCard'\"\n [nodeFields]=\"nodeFields()\"\n >\n <ng-template\n #nodeDialog\n let-close=\"close\"\n let-save=\"save\"\n let-node=\"node\"\n >\n <div class=\"p-4\">\n @if (loadingStep()) {\n <!-- Loading skeleton -->\n <div class=\"space-y-4\">\n <!-- Form fields skeleton -->\n <div class=\"space-y-4\">\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"10rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"3rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"6rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"4rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n </div>\n </div>\n } @else {\n <!-- Actual content - just the form, no tabs -->\n <mt-dynamic-form\n [formConfig]=\"nodeForm()\"\n [formControl]=\"nodeFormControl\"\n ></mt-dynamic-form>\n }\n </div>\n </ng-template>\n </mt-structure-builder>\n }\n</mt-card>\n","import { EscalationState } from './escalation/escalation.state';\n\nexport const ESCALATION_STATES = [EscalationState];\n\nexport * from './escalation';\n","// Re-export app state\nexport * from './app.state';\n\n// Re-export workflow state\nexport * from './escalation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"masterteam-escalation.mjs","sources":["../../../../packages/masterteam/escalation/src/store/escalation/escalation.actions.ts","../../../../packages/masterteam/escalation/src/store/utils/state-helpers.ts","../../../../packages/masterteam/escalation/src/store/escalation/escalation.state.ts","../../../../packages/masterteam/escalation/src/store/escalation/escalation.facade.ts","../../../../packages/masterteam/escalation/src/store/escalation/api.model.ts","../../../../packages/masterteam/escalation/src/lib/escalation-builder/escalation-builder.ts","../../../../packages/masterteam/escalation/src/lib/escalation-builder/escalation-builder.html","../../../../packages/masterteam/escalation/src/store/app.state.ts","../../../../packages/masterteam/escalation/src/store/index.ts","../../../../packages/masterteam/escalation/src/masterteam-escalation.ts"],"sourcesContent":["import type { ConnectionPayload, StepPayload } from './escalation.model';\n\nexport class SetModuleInfo {\n static readonly type = '[Escalation] Set Module Info';\n\n constructor(\n public readonly moduleType: string,\n public readonly moduleId: string | number,\n public readonly parentModuleType?: string,\n public readonly parentModuleId?: string | number,\n public readonly parentPath?: string,\n ) {}\n}\nexport class GetEscalation {\n static readonly type = '[Escalation] Get Escalation';\n}\n\nexport class GetFormulaProperties {\n static readonly type = '[Escalation] Get Formula Properties';\n}\n\nexport class GetGroups {\n static readonly type = '[Escalation] Get Groups';\n}\n\nexport class GetRolesForModule {\n static readonly type = '[Escalation] Get Roles For Module';\n}\n\nexport class GetStep {\n static readonly type = '[Escalation] Get Step';\n\n constructor(public readonly stepId: string | number) {}\n}\n\nexport class ValidateFlow {\n static readonly type = '[Escalation] Validate Flow';\n}\n\nexport class CreateStep {\n static readonly type = '[Escalation] Create Step';\n\n constructor(public readonly payload: StepPayload) {}\n}\n\nexport class UpdateStep {\n static readonly type = '[Escalation] Update Step';\n\n constructor(\n public readonly stepId: string | number,\n public readonly payload: StepPayload,\n ) {}\n}\n\nexport class CreateConnection {\n static readonly type = '[Escalation] Create Connection';\n\n constructor(public readonly payload: ConnectionPayload) {}\n}\n\nexport class UpdateConnection {\n static readonly type = '[Escalation] Update Connection';\n\n constructor(\n public readonly connectionId: string | number,\n public readonly payload: ConnectionPayload,\n ) {}\n}\n\nexport class PublishEscalation {\n static readonly type = '[Escalation] Publish Escalation';\n\n constructor(public readonly isPublished: boolean) {}\n}\n\nexport class DeleteStep {\n static readonly type = '[Escalation] Delete Step';\n\n constructor(public readonly stepId: string | number) {}\n}\n\nexport class DeleteConnection {\n static readonly type = '[Escalation] Delete Connection';\n\n constructor(public readonly connectionId: string | number) {}\n}\n","import type { StateContext } from '@ngxs/store';\n\nexport interface LoadingStateShape<L extends string = string> {\n loadingActive: L[];\n errors: Partial<Record<L, string>>;\n}\n\ntype LoadingName<T extends LoadingStateShape<string>> =\n T['loadingActive'][number];\n\nexport function startLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive, errors } = ctx.getState();\n\n if (!loadingActive.includes(loadingName)) {\n ctx.patchState({\n loadingActive: [...loadingActive, loadingName],\n } as Partial<T>);\n }\n\n if (errors && errors[loadingName]) {\n const { [loadingName]: _removed, ...rest } = errors;\n ctx.patchState({ errors: rest } as Partial<T>);\n }\n}\n\nexport function endLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive } = ctx.getState();\n\n ctx.patchState({\n loadingActive: loadingActive.filter((name) => name !== loadingName),\n } as Partial<T>);\n}\n\nexport function setLoadingError<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n message: string,\n): void {\n const { errors } = ctx.getState();\n ctx.patchState({\n errors: { ...errors, [loadingName]: message },\n } as Partial<T>);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { catchError, finalize, tap } from 'rxjs/operators';\n\nimport {\n endLoading,\n setLoadingError,\n startLoading,\n} from '../utils/state-helpers';\n\nimport type {\n ConnectionResponse,\n FormulaProperty,\n GroupDefinition,\n PublishResponse,\n RoleDefinition,\n StepResponse,\n StepSchema,\n EscalationConnection,\n EscalationLoadingName,\n EscalationSchema,\n EscalationStateModel,\n EscalationStepSchema,\n} from './escalation.model';\nimport {\n CreateConnection,\n CreateStep,\n DeleteConnection,\n DeleteStep,\n GetFormulaProperties,\n GetGroups,\n GetRolesForModule,\n GetStep,\n GetEscalation,\n PublishEscalation,\n UpdateConnection,\n UpdateStep,\n ValidateFlow,\n SetModuleInfo,\n} from './escalation.actions';\nimport { Response } from './api.model';\n\nconst DEFAULT_STATE: EscalationStateModel = {\n moduleType: null,\n moduleId: null,\n escalation: null,\n formulaProperties: [],\n groups: [],\n roles: [],\n selectedStep: null,\n isFlowValid: null,\n loadingActive: [],\n errors: {},\n};\n\n@State<EscalationStateModel>({\n name: 'escalation',\n defaults: DEFAULT_STATE,\n})\n@Injectable()\nexport class EscalationState {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = 'EscalationSchemas';\n private readonly groupsUrl = 'identity/Groups';\n private readonly rolesUrl = 'identity/roles/scopes';\n\n @Selector()\n static moduleId(state: EscalationStateModel): string | number | null {\n return state.moduleId;\n }\n\n @Selector()\n static moduleType(state: EscalationStateModel): string | null {\n return state.moduleType;\n }\n\n @Selector()\n static escalation(state: EscalationStateModel): EscalationSchema | null {\n return state.escalation;\n }\n\n @Selector()\n static formulaProperties(state: EscalationStateModel): FormulaProperty[] {\n return state.formulaProperties;\n }\n\n @Selector()\n static groups(state: EscalationStateModel): GroupDefinition[] {\n return state.groups;\n }\n\n @Selector()\n static roles(state: EscalationStateModel): RoleDefinition[] {\n return state.roles;\n }\n\n @Selector()\n static selectedStep(state: EscalationStateModel): StepSchema | null {\n return state.selectedStep;\n }\n\n @Selector()\n static isFlowValid(state: EscalationStateModel): boolean | null {\n return state.isFlowValid;\n }\n\n @Selector()\n static stepsSchema(state: EscalationStateModel): EscalationStepSchema[] {\n return state.escalation?.stepsSchema ?? [];\n }\n\n @Selector()\n static connections(state: EscalationStateModel): EscalationConnection[] {\n return state.escalation?.connections ?? [];\n }\n\n @Selector()\n static isLoadingFactory(state: EscalationStateModel) {\n return (loadingName: EscalationLoadingName) =>\n state.loadingActive.includes(loadingName);\n }\n\n @Selector()\n static errorFactory(state: EscalationStateModel) {\n return (loadingName: EscalationLoadingName) =>\n state.errors?.[loadingName] ?? null;\n }\n\n @Action(SetModuleInfo)\n setModuleInfo(\n ctx: StateContext<EscalationStateModel>,\n action: SetModuleInfo,\n ) {\n let parentPath = '';\n if (action.parentModuleType && action.parentModuleId) {\n parentPath = `/${action.parentModuleType}/${action.parentModuleId}`;\n } else if (action.parentPath) {\n parentPath = action.parentPath;\n }\n ctx.patchState({\n moduleType: action.moduleType,\n moduleId: action.moduleId,\n parentModuleType: action.parentModuleType ?? null,\n parentModuleId: action.parentModuleId ?? null,\n parentPath: parentPath ?? '',\n });\n }\n @Action(GetEscalation)\n getEscalation(\n ctx: StateContext<EscalationStateModel>,\n _action: GetEscalation,\n ) {\n startLoading(ctx, 'getEscalation');\n\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Module ID is not set';\n setLoadingError(ctx, 'getEscalation', message);\n endLoading(ctx, 'getEscalation');\n return of(null);\n }\n\n return this.http\n .get<Response<EscalationSchema>>(\n `${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`,\n {\n params: { Mode: 'edit' },\n },\n )\n .pipe(\n tap((response) => {\n const escalation = response?.data ?? null;\n ctx.patchState({ escalation });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load escalation';\n setLoadingError(ctx, 'getEscalation', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getEscalation')),\n );\n }\n\n @Action(GetFormulaProperties)\n getFormulaProperties(\n ctx: StateContext<EscalationStateModel>,\n _action: GetFormulaProperties,\n ) {\n startLoading(ctx, 'getFormulaProperties');\n\n const state = ctx.getState();\n const moduleId = state.moduleId;\n\n if (!moduleId) {\n const message = 'Module ID is not set';\n setLoadingError(ctx, 'getFormulaProperties', message);\n endLoading(ctx, 'getFormulaProperties');\n return of(null);\n }\n\n return this.http\n .get<\n Response<FormulaProperty[]>\n >(`${this.baseUrl}/processFormulaProperties/${moduleId}`)\n .pipe(\n tap((response) => {\n const formulaProperties = Array.isArray(response?.data)\n ? response.data\n : [];\n ctx.patchState({ formulaProperties });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load formula properties';\n setLoadingError(ctx, 'getFormulaProperties', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getFormulaProperties')),\n );\n }\n\n @Action(GetGroups)\n getGroups(ctx: StateContext<EscalationStateModel>, _action: GetGroups) {\n const state = ctx.getState();\n if (state.groups.length) {\n return of(state.groups);\n }\n\n startLoading(ctx, 'getGroups');\n\n return this.http.get<Response<GroupDefinition[]>>(this.groupsUrl).pipe(\n tap((response) => {\n const groups = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ groups });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load groups';\n setLoadingError(ctx, 'getGroups', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getGroups')),\n );\n }\n\n @Action(GetRolesForModule)\n getRolesForModule(\n ctx: StateContext<EscalationStateModel>,\n _action: GetRolesForModule,\n ) {\n const state = ctx.getState();\n const { moduleType, moduleId } = state;\n\n if (!moduleType || !moduleId) {\n const message = 'Module type and module ID must be set';\n setLoadingError(ctx, 'getRolesForModule', message);\n return of([]);\n }\n\n startLoading(ctx, 'getRolesForModule');\n\n return this.http\n .get<Response<RoleDefinition[]>>(\n `${this.rolesUrl}/${moduleType}/${moduleId}`,\n {\n params: { inherited: 'true' },\n },\n )\n .pipe(\n tap((response) => {\n const roles = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ roles });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load roles';\n setLoadingError(ctx, 'getRolesForModule', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getRolesForModule')),\n );\n }\n\n @Action(GetStep)\n getStep(ctx: StateContext<EscalationStateModel>, action: GetStep) {\n startLoading(ctx, 'getStep');\n\n return this.http\n .get<Response<StepSchema>>(`${this.baseUrl}/step/${action.stepId}`, {\n params: { Mode: 'edit' },\n })\n .pipe(\n tap((response) => {\n const selectedStep = response?.data ?? null;\n ctx.patchState({ selectedStep });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load step';\n setLoadingError(ctx, 'getStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getStep')),\n );\n }\n\n @Action(ValidateFlow)\n validateFlow(ctx: StateContext<EscalationStateModel>, _action: ValidateFlow) {\n startLoading(ctx, 'validateFlow');\n\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'validateFlow', message);\n endLoading(ctx, 'validateFlow');\n return of(null);\n }\n\n return this.http\n .get<\n Response<boolean>\n >(`${this.baseUrl}/requestSchema${parentPath}/${moduleType}/${moduleId}/validity`)\n .pipe(\n tap((response) => {\n const isFlowValid = response?.data ?? null;\n ctx.patchState({ isFlowValid });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to validate flow';\n setLoadingError(ctx, 'validateFlow', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'validateFlow')),\n );\n }\n\n @Action(CreateStep)\n createStep(ctx: StateContext<EscalationStateModel>, action: CreateStep) {\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'createStep', message);\n return of(null);\n }\n\n const tempId = -Date.now();\n const tempStep: any = {\n ...action.payload,\n id: tempId,\n loading: true,\n };\n\n if (state.escalation) {\n ctx.patchState({\n escalation: {\n ...state.escalation,\n stepsSchema: [...state.escalation.stepsSchema, tempStep],\n },\n });\n }\n\n startLoading(ctx, 'createStep');\n\n return this.http\n .post<\n Response<StepResponse>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/steps`, action.payload)\n .pipe(\n tap((response) => {\n const createdStep = response?.data;\n const currentState = ctx.getState();\n if (createdStep && currentState.escalation) {\n const updatedSteps = currentState.escalation.stepsSchema.map(\n (step) =>\n step.id === tempId ? { ...createdStep, loading: false } : step,\n );\n\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: updatedSteps,\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const filteredSteps = currentState.escalation.stepsSchema.filter(\n (step) => step.id !== tempId,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: filteredSteps,\n },\n });\n }\n\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to create step';\n setLoadingError(ctx, 'createStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'createStep')),\n );\n }\n\n @Action(UpdateStep)\n updateStep(ctx: StateContext<EscalationStateModel>, action: UpdateStep) {\n const state = ctx.getState();\n const moduleId = state.moduleId;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'updateStep', message);\n return of(null);\n }\n\n if (state.escalation) {\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\n step.id === action.stepId ? { ...step, loading: true } : step,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n stepsSchema: updatedSteps,\n },\n });\n }\n\n startLoading(ctx, 'updateStep');\n\n return this.http\n .put<\n Response<StepResponse>\n >(`${this.baseUrl}/steps/${action.stepId}`, action.payload)\n .pipe(\n tap((response) => {\n const updatedStep = response?.data;\n const currentState = ctx.getState();\n if (updatedStep && currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: currentState.escalation.stepsSchema.map((step) =>\n step.id === updatedStep.id\n ? { ...updatedStep, loading: false }\n : step,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorSteps = currentState.escalation.stepsSchema.map(\n (step) =>\n step.id === action.stepId ? { ...step, loading: false } : step,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: errorSteps,\n },\n });\n }\n\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to update step';\n setLoadingError(ctx, 'updateStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'updateStep')),\n );\n }\n\n @Action(CreateConnection)\n createConnection(\n ctx: StateContext<EscalationStateModel>,\n action: CreateConnection,\n ) {\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'createConnection', message);\n return of(null);\n }\n\n const tempId = -Date.now();\n const tempConnection: any = {\n ...action.payload,\n id: tempId,\n loading: true,\n source: action.payload.sourceStepId,\n target: action.payload.targetStepId,\n };\n\n if (state.escalation) {\n ctx.patchState({\n escalation: {\n ...state.escalation,\n connections: [...state.escalation.connections, tempConnection],\n },\n });\n }\n\n startLoading(ctx, 'createConnection');\n\n return this.http\n .post<\n Response<ConnectionResponse>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/connections`, action.payload)\n .pipe(\n tap((response) => {\n const createdConnection = response?.data;\n const currentState = ctx.getState();\n if (createdConnection && currentState.escalation) {\n const updatedConnections = currentState.escalation.connections.map(\n (conn) =>\n conn.id === tempId\n ? { ...createdConnection, loading: false }\n : conn,\n );\n\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: updatedConnections,\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const filteredConnections =\n currentState.escalation.connections.filter(\n (conn) => conn.id !== tempId,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: filteredConnections,\n },\n });\n }\n\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to create connection';\n setLoadingError(ctx, 'createConnection', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'createConnection')),\n );\n }\n\n @Action(UpdateConnection)\n updateConnection(\n ctx: StateContext<EscalationStateModel>,\n action: UpdateConnection,\n ) {\n const state = ctx.getState();\n const moduleId = state.moduleId;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'updateConnection', message);\n return of(null);\n }\n\n if (state.escalation) {\n const updatedConnections = state.escalation.connections.map((conn) =>\n conn.id === action.connectionId ? { ...conn, loading: true } : conn,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n connections: updatedConnections,\n },\n });\n }\n\n startLoading(ctx, 'updateConnection');\n\n return this.http\n .put<\n Response<ConnectionResponse>\n >(`${this.baseUrl}/connections/${action.connectionId}`, action.payload)\n .pipe(\n tap((response) => {\n const updatedConnection = response?.data;\n const currentState = ctx.getState();\n if (updatedConnection && currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: currentState.escalation.connections.map((conn) =>\n conn.id === updatedConnection.id\n ? { ...updatedConnection, loading: false }\n : conn,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorConnections = currentState.escalation.connections.map(\n (conn) =>\n conn.id === action.connectionId\n ? { ...conn, loading: false }\n : conn,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: errorConnections,\n },\n });\n }\n\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to update connection';\n setLoadingError(ctx, 'updateConnection', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'updateConnection')),\n );\n }\n\n @Action(PublishEscalation)\n publishEscalation(\n ctx: StateContext<EscalationStateModel>,\n action: PublishEscalation,\n ) {\n startLoading(ctx, 'publishEscalation');\n\n const state = ctx.getState();\n const { moduleId, parentPath, moduleType } = state;\n\n if (!moduleId) {\n const message = 'Escalation ID is not set';\n setLoadingError(ctx, 'publishEscalation', message);\n endLoading(ctx, 'publishEscalation');\n return of(null);\n }\n\n return this.http\n .put<\n Response<PublishResponse>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/publish`, { IsPublished: action.isPublished })\n .pipe(\n tap((response) => {\n const publishedData = response?.data;\n if (publishedData && state.escalation) {\n ctx.patchState({\n escalation: {\n ...state.escalation,\n isPublished: publishedData.isPublished,\n isValid: publishedData.isValid,\n },\n });\n }\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to publish escalation';\n setLoadingError(ctx, 'publishEscalation', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'publishEscalation')),\n );\n }\n\n @Action(DeleteStep)\n deleteStep(ctx: StateContext<EscalationStateModel>, action: DeleteStep) {\n const state = ctx.getState();\n\n if (state.escalation) {\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\n step.id == action.stepId ? { ...step, loading: true } : step,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n stepsSchema: updatedSteps,\n },\n });\n }\n\n startLoading(ctx, 'deleteStep');\n\n return this.http\n .delete<Response<boolean>>(`${this.baseUrl}/steps/${action.stepId}`)\n .pipe(\n tap(() => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: currentState.escalation.stepsSchema.filter(\n (step) => step.id != action.stepId,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorSteps = currentState.escalation.stepsSchema.map(\n (step) =>\n step.id == action.stepId ? { ...step, loading: false } : step,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n stepsSchema: errorSteps,\n },\n });\n }\n\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to delete step';\n setLoadingError(ctx, 'deleteStep', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'deleteStep')),\n );\n }\n\n @Action(DeleteConnection)\n deleteConnection(\n ctx: StateContext<EscalationStateModel>,\n action: DeleteConnection,\n ) {\n const state = ctx.getState();\n\n if (state.escalation) {\n const updatedConnections = state.escalation.connections.map((conn) =>\n conn.id == action.connectionId ? { ...conn, loading: true } : conn,\n );\n ctx.patchState({\n escalation: {\n ...state.escalation,\n connections: updatedConnections,\n },\n });\n }\n\n startLoading(ctx, 'deleteConnection');\n\n return this.http\n .delete<\n Response<boolean>\n >(`${this.baseUrl}/connections/${action.connectionId}`)\n .pipe(\n tap(() => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: currentState.escalation.connections.filter(\n (conn) => conn.id != action.connectionId,\n ),\n },\n });\n }\n }),\n catchError((error) => {\n const currentState = ctx.getState();\n if (currentState.escalation) {\n const errorConnections = currentState.escalation.connections.map(\n (conn) =>\n conn.id == action.connectionId\n ? { ...conn, loading: false }\n : conn,\n );\n ctx.patchState({\n escalation: {\n ...currentState.escalation,\n connections: errorConnections,\n },\n });\n }\n\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to delete connection';\n setLoadingError(ctx, 'deleteConnection', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'deleteConnection')),\n );\n }\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { select, Store } from '@ngxs/store';\nimport type { Observable } from 'rxjs';\n\nimport type {\n ConnectionPayload,\n FormulaProperty,\n GroupDefinition,\n RoleDefinition,\n StepPayload,\n StepSchema,\n EscalationConnection,\n EscalationLoadingName,\n EscalationSchema,\n EscalationStepSchema,\n} from './escalation.model';\nimport {\n CreateConnection,\n CreateStep,\n DeleteConnection,\n DeleteStep,\n GetFormulaProperties,\n GetGroups,\n GetRolesForModule,\n GetStep,\n GetEscalation,\n PublishEscalation,\n UpdateConnection,\n UpdateStep,\n ValidateFlow,\n SetModuleInfo,\n} from './escalation.actions';\nimport { EscalationState } from './escalation.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EscalationFacade {\n private readonly store = inject(Store);\n\n readonly moduleType = select<string | null>(EscalationState.moduleType);\n readonly moduleId = select<string | number | null>(EscalationState.moduleId);\n readonly escalation = select<EscalationSchema | null>(\n EscalationState.escalation,\n );\n readonly formulaProperties = select<FormulaProperty[]>(\n EscalationState.formulaProperties,\n );\n readonly groups = select<GroupDefinition[]>(EscalationState.groups);\n readonly roles = select<RoleDefinition[]>(EscalationState.roles);\n readonly selectedStep = select<StepSchema | null>(\n EscalationState.selectedStep,\n );\n readonly isFlowValid = select<boolean | null>(EscalationState.isFlowValid);\n readonly steps = select<EscalationStepSchema[]>(EscalationState.stepsSchema);\n readonly connections = select<EscalationConnection[]>(\n EscalationState.connections,\n );\n\n isLoading(loadingName: EscalationLoadingName) {\n const loadingFactory = select<(name: EscalationLoadingName) => boolean>(\n EscalationState.isLoadingFactory,\n );\n return computed(() => loadingFactory()(loadingName));\n }\n\n error(loadingName: EscalationLoadingName) {\n const errorFactory = select<(name: EscalationLoadingName) => string | null>(\n EscalationState.errorFactory,\n );\n return computed(() => errorFactory()(loadingName));\n }\n\n setModuleInfo(\n moduleType: string,\n moduleId: string | number,\n parentModuleType?: string,\n parentModuleId?: string | number,\n parentPath?: string,\n ): Observable<unknown> {\n return this.store.dispatch(\n new SetModuleInfo(\n moduleType,\n moduleId,\n parentModuleType,\n parentModuleId,\n parentPath,\n ),\n );\n }\n\n loadEscalation(): Observable<unknown> {\n return this.store.dispatch(new GetEscalation());\n }\n\n loadFormulaProperties(): Observable<unknown> {\n return this.store.dispatch(new GetFormulaProperties());\n }\n\n loadGroups(): Observable<unknown> {\n return this.store.dispatch(new GetGroups());\n }\n\n loadRolesForModule(): Observable<unknown> {\n return this.store.dispatch(new GetRolesForModule());\n }\n\n loadStep(stepId: string | number): Observable<unknown> {\n return this.store.dispatch(new GetStep(stepId));\n }\n\n validateFlow(): Observable<unknown> {\n return this.store.dispatch(new ValidateFlow());\n }\n\n createStep(payload: StepPayload): Observable<unknown> {\n return this.store.dispatch(new CreateStep(payload));\n }\n\n updateStep(\n stepId: string | number,\n payload: StepPayload,\n ): Observable<unknown> {\n return this.store.dispatch(new UpdateStep(stepId, payload));\n }\n\n createConnection(payload: ConnectionPayload): Observable<unknown> {\n return this.store.dispatch(new CreateConnection(payload));\n }\n\n updateConnection(\n connectionId: string | number,\n payload: ConnectionPayload,\n ): Observable<unknown> {\n return this.store.dispatch(new UpdateConnection(connectionId, payload));\n }\n\n publishEscalation(isPublished: boolean): Observable<unknown> {\n return this.store.dispatch(new PublishEscalation(isPublished));\n }\n\n deleteStep(stepId: string | number): Observable<unknown> {\n return this.store.dispatch(new DeleteStep(stepId));\n }\n\n deleteConnection(connectionId: string | number): Observable<unknown> {\n return this.store.dispatch(new DeleteConnection(connectionId));\n }\n}\n","// shared/models/api.model.ts\n\nexport interface Response<T> {\n endpoint: string;\n status: number;\n code: number;\n locale: string;\n message?: string | null;\n errors?: any | null;\n data: T;\n cacheSession?: string;\n}\n","import {\n Component,\n inject,\n linkedSignal,\n signal,\n computed,\n effect,\n} from '@angular/core';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport { Card } from '@masterteam/components/card';\nimport {\n NodeActionEvent,\n SBAction,\n StructureBuilder,\n} from '@masterteam/structure-builder';\nimport { EscalationFacade } from '../../store/escalation';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { Skeleton } from 'primeng/skeleton';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { ConfirmationService } from '@masterteam/components/confirmation';\n\n@Component({\n selector: 'mt-escalation-builder',\n imports: [\n StructureBuilder,\n Card,\n ReactiveFormsModule,\n DynamicForm,\n Skeleton,\n TranslocoModule,\n ],\n templateUrl: './escalation-builder.html',\n styles: [],\n host: {},\n})\nexport class EscalationBuilder {\n private escalationFacade = inject(EscalationFacade);\n private transloco = inject(TranslocoService);\n groups = this.escalationFacade.groups;\n roles = this.escalationFacade.roles;\n escalation = this.escalationFacade.escalation;\n loading = this.escalationFacade.isLoading('getEscalation');\n loadingStep = this.escalationFacade.isLoading('getStep');\n private readonly confirmationService = inject(ConfirmationService);\n\n selectedStep = this.escalationFacade.selectedStep;\n\n nodeFields = signal<any>({\n name: 'name',\n });\n nodeFormControl = new FormControl();\n\n private isEditingInitialNode = signal<boolean>(false);\n\n availableNodes = [\n {\n id: 'FormStep',\n label: this.transloco.translate('escalation.builder.newStep'),\n name: {\n en: 'New Step',\n ar: ' خطوة جديدة',\n },\n targetType: '1',\n icon: 'general.plus-circle',\n color: '#000000',\n },\n ];\n\n // Base form sections - defined once for reusability\n private readonly baseNameFields = {\n key: 'settings',\n type: 'none',\n bodyClass: 'space-y-2',\n fields: [\n {\n key: 'name.en',\n label: this.transloco.translate('escalation.builder.nameEnglish'),\n placeholder: this.transloco.translate(\n 'escalation.builder.enterNameEnglish',\n ),\n cssClass: 'w-full',\n required: true,\n },\n {\n key: 'name.ar',\n label: this.transloco.translate('escalation.builder.nameArabic'),\n placeholder: this.transloco.translate(\n 'escalation.builder.enterNameArabic',\n ),\n cssClass: 'w-full',\n required: true,\n },\n ],\n };\n\n // Approver section with dynamic options\n private readonly approverSection = computed(() => ({\n key: 'settings',\n type: 'header',\n label: this.transloco.translate('escalation.builder.approver'),\n headerClass:\n 'rounded-t-xl bg-slate-50 px-4 py-3 text-sm font-semibold text-slate-900 border border-slate-200 border-b-0',\n bodyClass: 'rounded-b-xl border border-slate-200 p-4 space-y-3',\n cssClass: ' ',\n fields: [\n {\n key: 'targetType',\n type: 'radio-button',\n orientation: 'horizontal',\n defaultValue: '1',\n options: [\n {\n label: this.transloco.translate('escalation.builder.group'),\n value: '1',\n },\n {\n label: this.transloco.translate('escalation.builder.role'),\n value: '2',\n },\n ],\n optionLabel: 'title',\n optionValue: 'value',\n placeholder: 'Enter Role',\n cssClass: 'flex items-center gap-6 text-sm text-slate-700',\n required: true,\n },\n {\n key: 'group',\n label: 'Select',\n placeholder: this.transloco.translate('escalation.builder.selectGroup'),\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\n required: true,\n type: 'select',\n options: this.groups(),\n optionLabel: 'title',\n optionValue: 'id',\n relations: [{ key: 'targetType', value: '1', action: 'show' }],\n },\n {\n key: 'role',\n label: 'Select',\n placeholder: 'Enter target value',\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\n required: true,\n type: 'select',\n options: this.roles(),\n optionLabel: 'title',\n optionValue: 'id',\n relations: [{ key: 'targetType', value: '2', action: 'show' }],\n },\n ],\n }));\n\n private readonly slaSection = {\n key: 'slaSection',\n type: 'none',\n bodyClass: 'space-y-1',\n fields: [\n {\n key: 'sla',\n label: 'SLA',\n placeholder: 'Enter SLA',\n cssClass: 'w-full',\n required: true,\n },\n ],\n } as const;\n\n // Dynamic form configuration using linkedSignal\n // Automatically rebuilds when isEditingInitialNode changes\n nodeForm = linkedSignal<DynamicFormConfig>(() => {\n const sections: any[] = [this.baseNameFields];\n\n // Conditionally include approver and SLA sections based on isEditingInitialNode\n // Initial nodes only show name fields\n if (!this.isEditingInitialNode()) {\n sections.push(this.approverSection());\n sections.push(this.slaSection);\n }\n\n return {\n sections,\n layout: {},\n };\n });\n\n // Sample connection form configuration\n connectionForm = signal<DynamicFormConfig>({\n sections: [\n {\n key: 'basic',\n label: 'Basic Information',\n type: 'none',\n cssClass: 'p-4',\n order: 1,\n fields: [\n {\n key: 'priority',\n label: 'Priority',\n },\n ],\n },\n ],\n });\n\n // Nodes currently in the flow\n steps = computed(() => {\n return this.escalationFacade.steps().map((step) => ({\n ...step,\n color: '#000000',\n }));\n });\n\n // Connections between nodes\n connections = computed(() => {\n return this.escalationFacade.connections().map((connection) => ({\n ...connection,\n from: connection.source,\n to: connection.target,\n }));\n });\n\n // Node Actions\n nodeActions = signal([\n {\n key: 'edit',\n icon: 'general.edit-05',\n variant: 'outlined',\n size: 'small',\n tooltip: 'Edit',\n },\n {\n key: 'delete',\n icon: 'general.trash-01',\n variant: 'outlined',\n size: 'small',\n severity: 'danger',\n tooltip: 'Delete',\n },\n ]);\n\n constructor() {\n // Effect to watch selectedStep and patch form when it changes\n effect(() => {\n const step = this.selectedStep();\n\n if (step) {\n // Patch form with complete step data\n this.nodeFormControl.patchValue({\n name: step.name,\n targetType: step.targetType || '1',\n group: step.targetType === '1' ? parseInt(step.targetValue!) : null,\n role: step.targetType === '2' ? step.targetValue : null,\n sla: step.sla,\n });\n\n console.log('Form patched with step data:', step);\n }\n });\n }\n\n onNodeActionsEvent(event: NodeActionEvent) {\n console.log('Node action event:', event);\n }\n\n clearForm(): void {\n // Reset isEditingInitialNode flag\n this.isEditingInitialNode.set(false);\n\n // Reset form to default values\n this.nodeFormControl.reset({\n name: { en: '', ar: '' },\n targetType: '1',\n group: null,\n role: null,\n sla: 0,\n });\n\n console.log('Form cleared for new step');\n }\n\n onStructureAction(event: SBAction) {\n console.log('Structure action received:', event);\n\n switch (event.action) {\n case 'createNode':\n if (event.data) {\n // Get form values\n const formValue = this.nodeFormControl.value;\n\n // Prepare step payload without properties\n const stepPayload = {\n name: formValue.name || { en: 'New Step', ar: 'خطوة جديدة' },\n targetType: formValue.targetType,\n targetValue:\n formValue.targetType === '1' ? formValue.group : formValue.role,\n sla: formValue.sla || 0,\n };\n\n // Create step via facade\n this.escalationFacade.createStep(stepPayload).subscribe({\n next: () => {\n console.log('Step created successfully:', stepPayload);\n },\n error: (error) => {\n console.error('Failed to create step:', error);\n },\n });\n }\n break;\n\n case 'startUpdating':\n if (event.data) {\n this.clearForm();\n\n const stepId = event.data.id;\n\n // Set the flag based on whether node is initial\n // This will trigger nodeForm to rebuild automatically via linkedSignal\n this.isEditingInitialNode.set(!!event.data.isInitial);\n\n // Load step data\n this.escalationFacade.loadStep(stepId);\n }\n break;\n\n case 'startCreating':\n // Reset form for new step\n this.clearForm();\n break;\n\n case 'updateNode':\n if (event.data) {\n // Get form values\n const formValue = this.nodeFormControl.value;\n const stepId = event.data.id;\n\n // Prepare step payload\n const stepPayload = {\n name: formValue.name || event.data.name,\n targetType: formValue.targetType,\n targetValue:\n formValue.targetType === '1' ? formValue.group : formValue.role,\n sla: formValue.sla || event.data.sla,\n };\n\n // Update step via facade\n this.escalationFacade.updateStep(stepId, stepPayload).subscribe({\n next: () => {\n console.log('Step updated successfully:', stepPayload);\n },\n error: (error) => {\n console.error('Failed to update step:', error);\n },\n });\n }\n break;\n\n case 'deleteNode':\n if (event.data) {\n const nodeIdToDelete = event.data.id;\n this.confirmationService.confirmDelete({\n type: 'dialog',\n\n accept: () => {\n this.escalationFacade.deleteStep(nodeIdToDelete).subscribe({\n next: () => {\n console.log('Node deleted:', nodeIdToDelete);\n },\n error: (error) => {\n console.error('Failed to delete node:', error);\n },\n });\n },\n reject: () => {},\n });\n }\n break;\n\n case 'createConnection':\n if (event.data) {\n // Create connection in store\n const connectionPayload = {\n sourceStepId: event.data.from,\n targetStepId: event.data.to,\n priority: event.data.priority ?? 1,\n formula: event.data.formula ?? [],\n };\n this.escalationFacade.createConnection(connectionPayload).subscribe({\n next: () => {\n console.log('Connection created:', event.data);\n },\n error: (error) => {\n console.error('Failed to create connection:', error);\n },\n });\n }\n break;\n\n case 'updateConnection':\n if (event.data) {\n // Update connection in store\n const connectionId = event.data.id;\n const updatePayload = {\n sourceStepId: event.data.from,\n targetStepId: event.data.to,\n priority: event.data.priority ?? 1,\n formula: event.data.formula ?? [],\n };\n this.escalationFacade\n .updateConnection(connectionId, updatePayload)\n .subscribe({\n next: () => {\n console.log('Connection updated:', event.data);\n },\n error: (error) => {\n console.error('Failed to update connection:', error);\n },\n });\n }\n break;\n\n case 'deleteConnection':\n if (event.data) {\n const connectionIdToDelete = event.data.id;\n // Delete connection from store\n this.escalationFacade\n .deleteConnection(connectionIdToDelete)\n .subscribe({\n next: () => {\n console.log('Connection deleted:', connectionIdToDelete);\n },\n error: (error) => {\n console.error('Failed to delete connection:', error);\n },\n });\n }\n break;\n\n default:\n console.warn('Unknown structure action:', event.action);\n }\n }\n}\n","<mt-card class=\"h-[calc(100vh---spacing(26))] relative\" id=\"escalationCard\">\n @if (!loading()) {\n <mt-structure-builder\n class=\"flex-1\"\n [availableNodes]=\"availableNodes\"\n [connectionForm]=\"connectionForm()\"\n [nodeActions]=\"nodeActions()\"\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\n [nodes]=\"steps()\"\n [connections]=\"connections()\"\n (action)=\"onStructureAction($event)\"\n [addModalType]=\"'drawer'\"\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\n [addModalHeader]=\"'escalation.builder.addStep' | transloco\"\n [updateModalHeader]=\"'escalation.builder.editStep' | transloco\"\n [appendTo]=\"'escalationCard'\"\n [nodeFields]=\"nodeFields()\"\n >\n <ng-template\n #nodeDialog\n let-close=\"close\"\n let-save=\"save\"\n let-node=\"node\"\n >\n <div class=\"p-4\">\n @if (loadingStep()) {\n <!-- Loading skeleton -->\n <div class=\"space-y-4\">\n <!-- Form fields skeleton -->\n <div class=\"space-y-4\">\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"8rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"10rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"3rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"6rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n <div>\n <p-skeleton\n width=\"4rem\"\n height=\"1rem\"\n styleClass=\"mb-2\"\n ></p-skeleton>\n <p-skeleton\n width=\"100%\"\n height=\"2.5rem\"\n borderRadius=\"0.5rem\"\n ></p-skeleton>\n </div>\n </div>\n </div>\n } @else {\n <!-- Actual content - just the form, no tabs -->\n <mt-dynamic-form\n [formConfig]=\"nodeForm()\"\n [formControl]=\"nodeFormControl\"\n ></mt-dynamic-form>\n }\n </div>\n </ng-template>\n </mt-structure-builder>\n }\n</mt-card>\n","import { EscalationState } from './escalation/escalation.state';\n\nexport const ESCALATION_STATES = [EscalationState];\n\nexport * from './escalation';\n","// Re-export app state\nexport * from './app.state';\n\n// Re-export workflow state\nexport * from './escalation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -9,6 +9,7 @@ import { StateContext } from '@ngxs/store';
9
9
 
10
10
  declare class EscalationBuilder {
11
11
  private escalationFacade;
12
+ private transloco;
12
13
  groups: _angular_core.Signal<_masterteam_escalation.GroupDefinition[]>;
13
14
  roles: _angular_core.Signal<_masterteam_escalation.RoleDefinition[]>;
14
15
  escalation: _angular_core.Signal<_masterteam_escalation.EscalationSchema | null>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/escalation",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "publishConfig": {
5
5
  "directory": ".",
6
6
  "linkDirectory": false,