@masterteam/escalation 0.0.20 → 0.0.21

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.
@@ -13,7 +13,16 @@
13
13
  "group": "المجموعة",
14
14
  "role": "الدور",
15
15
  "selectGroup": "اختر المجموعة",
16
- "selectRole": "اختر الدور"
16
+ "selectRole": "اختر الدور",
17
+ "select": "اختر",
18
+ "sla": "SLA",
19
+ "enter-sla": "أدخل SLA",
20
+ "enter-role": "أدخل الدور",
21
+ "enter-target-value": "أدخل القيمة المستهدفة",
22
+ "basic-information": "المعلومات الأساسية",
23
+ "priority": "الأولوية",
24
+ "edit": "تعديل",
25
+ "delete": "حذف"
17
26
  }
18
27
  }
19
28
  }
@@ -13,7 +13,16 @@
13
13
  "group": "Group",
14
14
  "role": "Role",
15
15
  "selectGroup": "Select Group",
16
- "selectRole": "Select Role"
16
+ "selectRole": "Select Role",
17
+ "select": "Select",
18
+ "sla": "SLA",
19
+ "enter-sla": "Enter SLA",
20
+ "enter-role": "Enter Role",
21
+ "enter-target-value": "Enter target value",
22
+ "basic-information": "Basic Information",
23
+ "priority": "Priority",
24
+ "edit": "Edit",
25
+ "delete": "Delete"
17
26
  }
18
27
  }
19
28
  }
@@ -959,13 +959,13 @@ class EscalationBuilder {
959
959
  ],
960
960
  optionLabel: 'name',
961
961
  optionValue: 'value',
962
- placeholder: 'Enter Role',
962
+ placeholder: this.transloco.translate('escalation.builder.enter-role'),
963
963
  cssClass: 'flex items-center gap-6 text-sm text-slate-700',
964
964
  required: true,
965
965
  },
966
966
  {
967
967
  key: 'group',
968
- label: 'Select',
968
+ label: this.transloco.translate('escalation.builder.select'),
969
969
  placeholder: this.transloco.translate('escalation.builder.selectGroup'),
970
970
  cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',
971
971
  required: true,
@@ -977,8 +977,8 @@ class EscalationBuilder {
977
977
  },
978
978
  {
979
979
  key: 'role',
980
- label: 'Select',
981
- placeholder: 'Enter target value',
980
+ label: this.transloco.translate('escalation.builder.select'),
981
+ placeholder: this.transloco.translate('escalation.builder.enter-target-value'),
982
982
  cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',
983
983
  required: true,
984
984
  type: 'select',
@@ -999,8 +999,8 @@ class EscalationBuilder {
999
999
  fields: [
1000
1000
  {
1001
1001
  key: 'sla',
1002
- label: 'SLA',
1003
- placeholder: 'Enter SLA',
1002
+ label: this.transloco.translate('escalation.builder.sla'),
1003
+ placeholder: this.transloco.translate('escalation.builder.enter-sla'),
1004
1004
  cssClass: 'w-full',
1005
1005
  required: true,
1006
1006
  },
@@ -1026,7 +1026,7 @@ class EscalationBuilder {
1026
1026
  sections: [
1027
1027
  {
1028
1028
  key: 'basic',
1029
- label: 'Basic Information',
1029
+ label: this.transloco.translate('escalation.builder.basic-information'),
1030
1030
  type: 'none',
1031
1031
  cssClass: 'p-4',
1032
1032
  order: 1,
@@ -1034,7 +1034,7 @@ class EscalationBuilder {
1034
1034
  fields: [
1035
1035
  {
1036
1036
  key: 'priority',
1037
- label: 'Priority',
1037
+ label: this.transloco.translate('escalation.builder.priority'),
1038
1038
  },
1039
1039
  ],
1040
1040
  },
@@ -1065,7 +1065,7 @@ class EscalationBuilder {
1065
1065
  icon: 'general.edit-05',
1066
1066
  variant: 'outlined',
1067
1067
  size: 'small',
1068
- tooltip: 'Edit',
1068
+ tooltip: this.transloco.translate('escalation.builder.edit'),
1069
1069
  },
1070
1070
  {
1071
1071
  key: 'delete',
@@ -1073,7 +1073,7 @@ class EscalationBuilder {
1073
1073
  variant: 'outlined',
1074
1074
  size: 'small',
1075
1075
  severity: 'danger',
1076
- tooltip: 'Delete',
1076
+ tooltip: this.transloco.translate('escalation.builder.delete'),
1077
1077
  condition: (node) => !node.isInitial,
1078
1078
  },
1079
1079
  ], ...(ngDevMode ? [{ debugName: "nodeActions" }] : []));
@@ -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';\r\n\r\nexport class SetModuleInfo {\r\n static readonly type = '[Escalation] Set Module Info';\r\n\r\n constructor(\r\n public readonly moduleType: string,\r\n public readonly moduleId: string | number,\r\n public readonly parentModuleType?: string,\r\n public readonly parentModuleId?: string | number,\r\n public readonly parentPath?: string,\r\n ) {}\r\n}\r\nexport class GetEscalation {\r\n static readonly type = '[Escalation] Get Escalation';\r\n}\r\n\r\nexport class GetFormulaProperties {\r\n static readonly type = '[Escalation] Get Formula Properties';\r\n}\r\n\r\nexport class GetGroups {\r\n static readonly type = '[Escalation] Get Groups';\r\n}\r\n\r\nexport class GetRolesForModule {\r\n static readonly type = '[Escalation] Get Roles For Module';\r\n}\r\n\r\nexport class GetStep {\r\n static readonly type = '[Escalation] Get Step';\r\n\r\n constructor(public readonly stepId: string | number) {}\r\n}\r\n\r\nexport class ValidateFlow {\r\n static readonly type = '[Escalation] Validate Flow';\r\n}\r\n\r\nexport class CreateStep {\r\n static readonly type = '[Escalation] Create Step';\r\n\r\n constructor(public readonly payload: StepPayload) {}\r\n}\r\n\r\nexport class UpdateStep {\r\n static readonly type = '[Escalation] Update Step';\r\n\r\n constructor(\r\n public readonly stepId: string | number,\r\n public readonly payload: StepPayload,\r\n ) {}\r\n}\r\n\r\nexport class CreateConnection {\r\n static readonly type = '[Escalation] Create Connection';\r\n\r\n constructor(public readonly payload: ConnectionPayload) {}\r\n}\r\n\r\nexport class UpdateConnection {\r\n static readonly type = '[Escalation] Update Connection';\r\n\r\n constructor(\r\n public readonly connectionId: string | number,\r\n public readonly payload: ConnectionPayload,\r\n ) {}\r\n}\r\n\r\nexport class PublishEscalation {\r\n static readonly type = '[Escalation] Publish Escalation';\r\n\r\n constructor(public readonly isPublished: boolean) {}\r\n}\r\n\r\nexport class DeleteStep {\r\n static readonly type = '[Escalation] Delete Step';\r\n\r\n constructor(public readonly stepId: string | number) {}\r\n}\r\n\r\nexport class DeleteConnection {\r\n static readonly type = '[Escalation] Delete Connection';\r\n\r\n constructor(public readonly connectionId: string | number) {}\r\n}\r\n","import type { StateContext } from '@ngxs/store';\r\n\r\nexport interface LoadingStateShape<L extends string = string> {\r\n loadingActive: L[];\r\n errors: Partial<Record<L, string>>;\r\n}\r\n\r\ntype LoadingName<T extends LoadingStateShape<string>> =\r\n T['loadingActive'][number];\r\n\r\nexport function startLoading<T extends LoadingStateShape<string>>(\r\n ctx: StateContext<T>,\r\n loadingName: LoadingName<T>,\r\n): void {\r\n const { loadingActive, errors } = ctx.getState();\r\n\r\n if (!loadingActive.includes(loadingName)) {\r\n ctx.patchState({\r\n loadingActive: [...loadingActive, loadingName],\r\n } as Partial<T>);\r\n }\r\n\r\n if (errors && errors[loadingName]) {\r\n const { [loadingName]: _removed, ...rest } = errors;\r\n ctx.patchState({ errors: rest } as Partial<T>);\r\n }\r\n}\r\n\r\nexport function endLoading<T extends LoadingStateShape<string>>(\r\n ctx: StateContext<T>,\r\n loadingName: LoadingName<T>,\r\n): void {\r\n const { loadingActive } = ctx.getState();\r\n\r\n ctx.patchState({\r\n loadingActive: loadingActive.filter((name) => name !== loadingName),\r\n } as Partial<T>);\r\n}\r\n\r\nexport function setLoadingError<T extends LoadingStateShape<string>>(\r\n ctx: StateContext<T>,\r\n loadingName: LoadingName<T>,\r\n message: string,\r\n): void {\r\n const { errors } = ctx.getState();\r\n ctx.patchState({\r\n errors: { ...errors, [loadingName]: message },\r\n } as Partial<T>);\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, finalize, tap } from 'rxjs/operators';\r\n\r\nimport {\r\n endLoading,\r\n setLoadingError,\r\n startLoading,\r\n} from '../utils/state-helpers';\r\n\r\nimport type {\r\n ConnectionResponse,\r\n FormulaProperty,\r\n GroupDefinition,\r\n RoleGroupDefinition,\r\n PublishResponse,\r\n RoleDefinition,\r\n StepResponse,\r\n StepSchema,\r\n EscalationConnection,\r\n EscalationLoadingName,\r\n EscalationSchema,\r\n EscalationStateModel,\r\n EscalationStepSchema,\r\n} from './escalation.model';\r\nimport {\r\n CreateConnection,\r\n CreateStep,\r\n DeleteConnection,\r\n DeleteStep,\r\n GetFormulaProperties,\r\n GetGroups,\r\n GetRolesForModule,\r\n GetStep,\r\n GetEscalation,\r\n PublishEscalation,\r\n UpdateConnection,\r\n UpdateStep,\r\n ValidateFlow,\r\n SetModuleInfo,\r\n} from './escalation.actions';\r\nimport { Response } from './api.model';\r\n\r\nconst DEFAULT_STATE: EscalationStateModel = {\r\n moduleType: null,\r\n moduleId: null,\r\n escalation: null,\r\n formulaProperties: [],\r\n groups: [],\r\n roles: [],\r\n selectedStep: null,\r\n isFlowValid: null,\r\n loadingActive: [],\r\n errors: {},\r\n};\r\n\r\n@State<EscalationStateModel>({\r\n name: 'escalation',\r\n defaults: DEFAULT_STATE,\r\n})\r\n@Injectable()\r\nexport class EscalationState {\r\n private readonly http = inject(HttpClient);\r\n private readonly baseUrl = 'EscalationSchemas';\r\n private readonly groupsUrl = 'identity/Groups';\r\n private readonly rolesUrl = 'identity/roles/scopes';\r\n\r\n @Selector()\r\n static moduleId(state: EscalationStateModel): string | number | null {\r\n return state.moduleId;\r\n }\r\n\r\n @Selector()\r\n static moduleType(state: EscalationStateModel): string | null {\r\n return state.moduleType;\r\n }\r\n\r\n @Selector()\r\n static escalation(state: EscalationStateModel): EscalationSchema | null {\r\n return state.escalation;\r\n }\r\n\r\n @Selector()\r\n static formulaProperties(state: EscalationStateModel): FormulaProperty[] {\r\n return state.formulaProperties;\r\n }\r\n\r\n @Selector()\r\n static groups(state: EscalationStateModel): GroupDefinition[] {\r\n return state.groups;\r\n }\r\n\r\n @Selector()\r\n static roles(\r\n state: EscalationStateModel,\r\n ): Array<RoleDefinition | RoleGroupDefinition> {\r\n return state.roles;\r\n }\r\n\r\n @Selector()\r\n static selectedStep(state: EscalationStateModel): StepSchema | null {\r\n return state.selectedStep;\r\n }\r\n\r\n @Selector()\r\n static isFlowValid(state: EscalationStateModel): boolean | null {\r\n return state.isFlowValid;\r\n }\r\n\r\n @Selector()\r\n static stepsSchema(state: EscalationStateModel): EscalationStepSchema[] {\r\n return state.escalation?.stepsSchema ?? [];\r\n }\r\n\r\n @Selector()\r\n static connections(state: EscalationStateModel): EscalationConnection[] {\r\n return state.escalation?.connections ?? [];\r\n }\r\n\r\n @Selector()\r\n static isLoadingFactory(state: EscalationStateModel) {\r\n return (loadingName: EscalationLoadingName) =>\r\n state.loadingActive.includes(loadingName);\r\n }\r\n\r\n @Selector()\r\n static errorFactory(state: EscalationStateModel) {\r\n return (loadingName: EscalationLoadingName) =>\r\n state.errors?.[loadingName] ?? null;\r\n }\r\n\r\n @Action(SetModuleInfo)\r\n setModuleInfo(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: SetModuleInfo,\r\n ) {\r\n let parentPath = '';\r\n if (action.parentModuleType && action.parentModuleId) {\r\n parentPath = `/${action.parentModuleType}/${action.parentModuleId}`;\r\n } else if (action.parentPath) {\r\n parentPath = action.parentPath;\r\n }\r\n ctx.patchState({\r\n moduleType: action.moduleType,\r\n moduleId: action.moduleId,\r\n parentModuleType: action.parentModuleType ?? null,\r\n parentModuleId: action.parentModuleId ?? null,\r\n parentPath: parentPath ?? '',\r\n });\r\n }\r\n @Action(GetEscalation)\r\n getEscalation(\r\n ctx: StateContext<EscalationStateModel>,\r\n _action: GetEscalation,\r\n ) {\r\n startLoading(ctx, 'getEscalation');\r\n\r\n const state = ctx.getState();\r\n const { moduleId, parentPath, moduleType } = state;\r\n\r\n if (!moduleId) {\r\n const message = 'Module ID is not set';\r\n setLoadingError(ctx, 'getEscalation', message);\r\n endLoading(ctx, 'getEscalation');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .get<Response<EscalationSchema>>(\r\n `${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`,\r\n {\r\n params: { Mode: 'edit' },\r\n },\r\n )\r\n .pipe(\r\n tap((response) => {\r\n const escalation = response?.data ?? null;\r\n ctx.patchState({ escalation });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to load escalation';\r\n setLoadingError(ctx, 'getEscalation', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'getEscalation')),\r\n );\r\n }\r\n\r\n @Action(GetFormulaProperties)\r\n getFormulaProperties(\r\n ctx: StateContext<EscalationStateModel>,\r\n _action: GetFormulaProperties,\r\n ) {\r\n startLoading(ctx, 'getFormulaProperties');\r\n\r\n const state = ctx.getState();\r\n const moduleId = state.moduleId;\r\n\r\n if (!moduleId) {\r\n const message = 'Module ID is not set';\r\n setLoadingError(ctx, 'getFormulaProperties', message);\r\n endLoading(ctx, 'getFormulaProperties');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .get<\r\n Response<FormulaProperty[]>\r\n >(`${this.baseUrl}/processFormulaProperties/${moduleId}`)\r\n .pipe(\r\n tap((response) => {\r\n const formulaProperties = Array.isArray(response?.data)\r\n ? response.data\r\n : [];\r\n ctx.patchState({ formulaProperties });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to load formula properties';\r\n setLoadingError(ctx, 'getFormulaProperties', message);\r\n return of([]);\r\n }),\r\n finalize(() => endLoading(ctx, 'getFormulaProperties')),\r\n );\r\n }\r\n\r\n @Action(GetGroups)\r\n getGroups(ctx: StateContext<EscalationStateModel>, _action: GetGroups) {\r\n const state = ctx.getState();\r\n if (state.groups.length) {\r\n return of(state.groups);\r\n }\r\n\r\n startLoading(ctx, 'getGroups');\r\n\r\n return this.http.get<Response<GroupDefinition[]>>(this.groupsUrl).pipe(\r\n tap((response) => {\r\n const groups = Array.isArray(response?.data) ? response.data : [];\r\n ctx.patchState({ groups });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to load groups';\r\n setLoadingError(ctx, 'getGroups', message);\r\n return of([]);\r\n }),\r\n finalize(() => endLoading(ctx, 'getGroups')),\r\n );\r\n }\r\n\r\n @Action(GetRolesForModule)\r\n getRolesForModule(\r\n ctx: StateContext<EscalationStateModel>,\r\n _action: GetRolesForModule,\r\n ) {\r\n const state = ctx.getState();\r\n const { moduleType, moduleId, parentPath } = state;\r\n\r\n if (!moduleType || !moduleId) {\r\n const message = 'Module type and module ID must be set';\r\n setLoadingError(ctx, 'getRolesForModule', message);\r\n return of([]);\r\n }\r\n\r\n startLoading(ctx, 'getRolesForModule');\r\n\r\n return this.http\r\n .get<Response<unknown[]>>(\r\n `${parentPath ? this.rolesUrl.replace('/scopes', '') : this.rolesUrl}${parentPath}/${moduleType}/${moduleId}`,\r\n parentPath\r\n ? undefined\r\n : {\r\n params: { inherited: 'true' },\r\n },\r\n )\r\n .pipe(\r\n tap((response) => {\r\n const roles = normalizeEscalationRoles(response?.data);\r\n ctx.patchState({ roles });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to load roles';\r\n setLoadingError(ctx, 'getRolesForModule', message);\r\n return of([]);\r\n }),\r\n finalize(() => endLoading(ctx, 'getRolesForModule')),\r\n );\r\n }\r\n\r\n @Action(GetStep)\r\n getStep(ctx: StateContext<EscalationStateModel>, action: GetStep) {\r\n startLoading(ctx, 'getStep');\r\n\r\n return this.http\r\n .get<Response<StepSchema>>(`${this.baseUrl}/step/${action.stepId}`, {\r\n params: { Mode: 'edit' },\r\n })\r\n .pipe(\r\n tap((response) => {\r\n const selectedStep = response?.data ?? null;\r\n ctx.patchState({ selectedStep });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to load step';\r\n setLoadingError(ctx, 'getStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'getStep')),\r\n );\r\n }\r\n\r\n @Action(ValidateFlow)\r\n validateFlow(ctx: StateContext<EscalationStateModel>, _action: ValidateFlow) {\r\n startLoading(ctx, 'validateFlow');\r\n\r\n const state = ctx.getState();\r\n const { moduleId, parentPath, moduleType } = state;\r\n\r\n if (!moduleId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'validateFlow', message);\r\n endLoading(ctx, 'validateFlow');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .get<\r\n Response<boolean>\r\n >(`${this.baseUrl}/requestSchema${parentPath}/${moduleType}/${moduleId}/validity`)\r\n .pipe(\r\n tap((response) => {\r\n const isFlowValid = response?.data ?? null;\r\n ctx.patchState({ isFlowValid });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to validate flow';\r\n setLoadingError(ctx, 'validateFlow', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'validateFlow')),\r\n );\r\n }\r\n\r\n @Action(CreateStep)\r\n createStep(ctx: StateContext<EscalationStateModel>, action: CreateStep) {\r\n const state = ctx.getState();\r\n const escalationId = state.escalation?.id;\r\n\r\n if (!escalationId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'createStep', message);\r\n return of(null);\r\n }\r\n\r\n const tempId = -Date.now();\r\n const tempStep: any = {\r\n ...action.payload,\r\n id: tempId,\r\n loading: true,\r\n };\r\n\r\n if (state.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n stepsSchema: [...state.escalation.stepsSchema, tempStep],\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'createStep');\r\n\r\n return this.http\r\n .post<\r\n Response<StepResponse>\r\n >(`${this.baseUrl}/${escalationId}/steps`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const createdStep = response?.data;\r\n const currentState = ctx.getState();\r\n if (createdStep && currentState.escalation) {\r\n const updatedSteps = currentState.escalation.stepsSchema.map(\r\n (step) =>\r\n step.id === tempId ? { ...createdStep, loading: false } : step,\r\n );\r\n\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: updatedSteps,\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const filteredSteps = currentState.escalation.stepsSchema.filter(\r\n (step) => step.id !== tempId,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: filteredSteps,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to create step';\r\n setLoadingError(ctx, 'createStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'createStep')),\r\n );\r\n }\r\n\r\n @Action(UpdateStep)\r\n updateStep(ctx: StateContext<EscalationStateModel>, action: UpdateStep) {\r\n const state = ctx.getState();\r\n const moduleId = state.moduleId;\r\n\r\n if (!moduleId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'updateStep', message);\r\n return of(null);\r\n }\r\n\r\n if (state.escalation) {\r\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\r\n step.id === action.stepId ? { ...step, loading: true } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n stepsSchema: updatedSteps,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'updateStep');\r\n\r\n return this.http\r\n .put<\r\n Response<StepResponse>\r\n >(`${this.baseUrl}/steps/${action.stepId}`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const updatedStep = response?.data;\r\n const currentState = ctx.getState();\r\n if (updatedStep && currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: currentState.escalation.stepsSchema.map((step) =>\r\n step.id === updatedStep.id\r\n ? { ...updatedStep, loading: false }\r\n : step,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorSteps = currentState.escalation.stepsSchema.map(\r\n (step) =>\r\n step.id === action.stepId ? { ...step, loading: false } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: errorSteps,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to update step';\r\n setLoadingError(ctx, 'updateStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'updateStep')),\r\n );\r\n }\r\n\r\n @Action(CreateConnection)\r\n createConnection(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: CreateConnection,\r\n ) {\r\n const state = ctx.getState();\r\n const escalationId = state.escalation?.id;\r\n\r\n if (!escalationId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'createConnection', message);\r\n return of(null);\r\n }\r\n\r\n const tempId = -Date.now();\r\n const tempConnection: any = {\r\n ...action.payload,\r\n id: tempId,\r\n loading: true,\r\n source: action.payload.sourceStepId,\r\n target: action.payload.targetStepId,\r\n };\r\n\r\n if (state.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n connections: [...state.escalation.connections, tempConnection],\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'createConnection');\r\n\r\n return this.http\r\n .post<\r\n Response<ConnectionResponse>\r\n >(`${this.baseUrl}/${escalationId}/connections`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const createdConnection = response?.data;\r\n const currentState = ctx.getState();\r\n if (createdConnection && currentState.escalation) {\r\n const updatedConnections = currentState.escalation.connections.map(\r\n (conn) =>\r\n conn.id === tempId\r\n ? { ...createdConnection, loading: false }\r\n : conn,\r\n );\r\n\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: updatedConnections,\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const filteredConnections =\r\n currentState.escalation.connections.filter(\r\n (conn) => conn.id !== tempId,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: filteredConnections,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to create connection';\r\n setLoadingError(ctx, 'createConnection', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'createConnection')),\r\n );\r\n }\r\n\r\n @Action(UpdateConnection)\r\n updateConnection(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: UpdateConnection,\r\n ) {\r\n const state = ctx.getState();\r\n const moduleId = state.moduleId;\r\n\r\n if (!moduleId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'updateConnection', message);\r\n return of(null);\r\n }\r\n\r\n if (state.escalation) {\r\n const updatedConnections = state.escalation.connections.map((conn) =>\r\n conn.id === action.connectionId ? { ...conn, loading: true } : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n connections: updatedConnections,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'updateConnection');\r\n\r\n return this.http\r\n .put<\r\n Response<ConnectionResponse>\r\n >(`${this.baseUrl}/connections/${action.connectionId}`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const updatedConnection = response?.data;\r\n const currentState = ctx.getState();\r\n if (updatedConnection && currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: currentState.escalation.connections.map((conn) =>\r\n conn.id === updatedConnection.id\r\n ? { ...updatedConnection, loading: false }\r\n : conn,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorConnections = currentState.escalation.connections.map(\r\n (conn) =>\r\n conn.id === action.connectionId\r\n ? { ...conn, loading: false }\r\n : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: errorConnections,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to update connection';\r\n setLoadingError(ctx, 'updateConnection', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'updateConnection')),\r\n );\r\n }\r\n\r\n @Action(PublishEscalation)\r\n publishEscalation(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: PublishEscalation,\r\n ) {\r\n startLoading(ctx, 'publishEscalation');\r\n\r\n const state = ctx.getState();\r\n const escalationId = state.escalation?.id;\r\n\r\n if (!escalationId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'publishEscalation', message);\r\n endLoading(ctx, 'publishEscalation');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .put<\r\n Response<PublishResponse>\r\n >(`${this.baseUrl}/${escalationId}/publish`, { IsPublished: action.isPublished })\r\n .pipe(\r\n tap((response) => {\r\n const publishedData = response?.data;\r\n if (publishedData && state.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n isPublished: publishedData.isPublished,\r\n isValid: publishedData.isValid,\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to publish escalation';\r\n setLoadingError(ctx, 'publishEscalation', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'publishEscalation')),\r\n );\r\n }\r\n\r\n @Action(DeleteStep)\r\n deleteStep(ctx: StateContext<EscalationStateModel>, action: DeleteStep) {\r\n const state = ctx.getState();\r\n\r\n if (state.escalation) {\r\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\r\n step.id == action.stepId ? { ...step, loading: true } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n stepsSchema: updatedSteps,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'deleteStep');\r\n\r\n return this.http\r\n .delete<Response<boolean>>(`${this.baseUrl}/steps/${action.stepId}`)\r\n .pipe(\r\n tap(() => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: currentState.escalation.stepsSchema.filter(\r\n (step) => step.id != action.stepId,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorSteps = currentState.escalation.stepsSchema.map(\r\n (step) =>\r\n step.id == action.stepId ? { ...step, loading: false } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: errorSteps,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to delete step';\r\n setLoadingError(ctx, 'deleteStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'deleteStep')),\r\n );\r\n }\r\n\r\n @Action(DeleteConnection)\r\n deleteConnection(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: DeleteConnection,\r\n ) {\r\n const state = ctx.getState();\r\n\r\n if (state.escalation) {\r\n const updatedConnections = state.escalation.connections.map((conn) =>\r\n conn.id == action.connectionId ? { ...conn, loading: true } : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n connections: updatedConnections,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'deleteConnection');\r\n\r\n return this.http\r\n .delete<\r\n Response<boolean>\r\n >(`${this.baseUrl}/connections/${action.connectionId}`)\r\n .pipe(\r\n tap(() => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: currentState.escalation.connections.filter(\r\n (conn) => conn.id != action.connectionId,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorConnections = currentState.escalation.connections.map(\r\n (conn) =>\r\n conn.id == action.connectionId\r\n ? { ...conn, loading: false }\r\n : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: errorConnections,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to delete connection';\r\n setLoadingError(ctx, 'deleteConnection', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'deleteConnection')),\r\n );\r\n }\r\n}\r\n\r\nfunction normalizeEscalationRoles(\r\n data: unknown,\r\n): Array<RoleDefinition | RoleGroupDefinition> {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n\r\n if (data.some((item: any) => Array.isArray(item?.roles))) {\r\n return data\r\n .map((group: any) => ({\r\n label: resolveEscalationRoleGroupLabel(group),\r\n items: Array.isArray(group?.roles)\r\n ? group.roles.map(normalizeEscalationRole).filter(Boolean)\r\n : [],\r\n }))\r\n .filter((group) => group.items.length > 0);\r\n }\r\n\r\n return data.map(normalizeEscalationRole).filter(Boolean);\r\n}\r\n\r\nfunction normalizeEscalationRole(role: any): RoleDefinition {\r\n const value = role?.value ?? role?.id;\r\n return {\r\n ...role,\r\n id: role?.id ?? value,\r\n value,\r\n name: normalizeEscalationRoleName(role?.name),\r\n };\r\n}\r\n\r\nfunction normalizeEscalationRoleName(\r\n name: unknown,\r\n): string | Record<string, string> {\r\n if (name && typeof name === 'object') {\r\n return name as Record<string, string>;\r\n }\r\n\r\n const label = typeof name === 'string' ? name : '';\r\n return {\r\n display: label,\r\n en: label,\r\n ar: label,\r\n };\r\n}\r\n\r\nfunction resolveEscalationRoleGroupLabel(group: any): string {\r\n const level = group?.level;\r\n if (typeof level === 'string') {\r\n return level;\r\n }\r\n\r\n if (level?.display) {\r\n return level.display;\r\n }\r\n\r\n if (level?.en) {\r\n return level.en;\r\n }\r\n\r\n if (level?.ar) {\r\n return level.ar;\r\n }\r\n\r\n return group?.levelKey ?? group?.scopeType ?? 'Roles';\r\n}\r\n","import { Injectable, computed, inject } from '@angular/core';\r\nimport { select, Store } from '@ngxs/store';\r\nimport type { Observable } from 'rxjs';\r\n\r\nimport type {\r\n ConnectionPayload,\r\n FormulaProperty,\r\n GroupDefinition,\r\n RoleGroupDefinition,\r\n RoleDefinition,\r\n StepPayload,\r\n StepSchema,\r\n EscalationConnection,\r\n EscalationLoadingName,\r\n EscalationSchema,\r\n EscalationStepSchema,\r\n} from './escalation.model';\r\nimport {\r\n CreateConnection,\r\n CreateStep,\r\n DeleteConnection,\r\n DeleteStep,\r\n GetFormulaProperties,\r\n GetGroups,\r\n GetRolesForModule,\r\n GetStep,\r\n GetEscalation,\r\n PublishEscalation,\r\n UpdateConnection,\r\n UpdateStep,\r\n ValidateFlow,\r\n SetModuleInfo,\r\n} from './escalation.actions';\r\nimport { EscalationState } from './escalation.state';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EscalationFacade {\r\n private readonly store = inject(Store);\r\n\r\n readonly moduleType = select<string | null>(EscalationState.moduleType);\r\n readonly moduleId = select<string | number | null>(EscalationState.moduleId);\r\n readonly escalation = select<EscalationSchema | null>(\r\n EscalationState.escalation,\r\n );\r\n readonly formulaProperties = select<FormulaProperty[]>(\r\n EscalationState.formulaProperties,\r\n );\r\n readonly groups = select<GroupDefinition[]>(EscalationState.groups);\r\n readonly roles = select<Array<RoleDefinition | RoleGroupDefinition>>(\r\n EscalationState.roles,\r\n );\r\n readonly selectedStep = select<StepSchema | null>(\r\n EscalationState.selectedStep,\r\n );\r\n readonly isFlowValid = select<boolean | null>(EscalationState.isFlowValid);\r\n readonly steps = select<EscalationStepSchema[]>(EscalationState.stepsSchema);\r\n readonly connections = select<EscalationConnection[]>(\r\n EscalationState.connections,\r\n );\r\n\r\n isLoading(loadingName: EscalationLoadingName) {\r\n const loadingFactory = select<(name: EscalationLoadingName) => boolean>(\r\n EscalationState.isLoadingFactory,\r\n );\r\n return computed(() => loadingFactory()(loadingName));\r\n }\r\n\r\n error(loadingName: EscalationLoadingName) {\r\n const errorFactory = select<(name: EscalationLoadingName) => string | null>(\r\n EscalationState.errorFactory,\r\n );\r\n return computed(() => errorFactory()(loadingName));\r\n }\r\n\r\n setModuleInfo(\r\n moduleType: string,\r\n moduleId: string | number,\r\n parentModuleType?: string,\r\n parentModuleId?: string | number,\r\n parentPath?: string,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(\r\n new SetModuleInfo(\r\n moduleType,\r\n moduleId,\r\n parentModuleType,\r\n parentModuleId,\r\n parentPath,\r\n ),\r\n );\r\n }\r\n\r\n loadEscalation(): Observable<unknown> {\r\n return this.store.dispatch(new GetEscalation());\r\n }\r\n\r\n loadFormulaProperties(): Observable<unknown> {\r\n return this.store.dispatch(new GetFormulaProperties());\r\n }\r\n\r\n loadGroups(): Observable<unknown> {\r\n return this.store.dispatch(new GetGroups());\r\n }\r\n\r\n loadRolesForModule(): Observable<unknown> {\r\n return this.store.dispatch(new GetRolesForModule());\r\n }\r\n\r\n loadStep(stepId: string | number): Observable<unknown> {\r\n return this.store.dispatch(new GetStep(stepId));\r\n }\r\n\r\n validateFlow(): Observable<unknown> {\r\n return this.store.dispatch(new ValidateFlow());\r\n }\r\n\r\n createStep(payload: StepPayload): Observable<unknown> {\r\n return this.store.dispatch(new CreateStep(payload));\r\n }\r\n\r\n updateStep(\r\n stepId: string | number,\r\n payload: StepPayload,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new UpdateStep(stepId, payload));\r\n }\r\n\r\n createConnection(payload: ConnectionPayload): Observable<unknown> {\r\n return this.store.dispatch(new CreateConnection(payload));\r\n }\r\n\r\n updateConnection(\r\n connectionId: string | number,\r\n payload: ConnectionPayload,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new UpdateConnection(connectionId, payload));\r\n }\r\n\r\n publishEscalation(isPublished: boolean): Observable<unknown> {\r\n return this.store.dispatch(new PublishEscalation(isPublished));\r\n }\r\n\r\n deleteStep(stepId: string | number): Observable<unknown> {\r\n return this.store.dispatch(new DeleteStep(stepId));\r\n }\r\n\r\n deleteConnection(connectionId: string | number): Observable<unknown> {\r\n return this.store.dispatch(new DeleteConnection(connectionId));\r\n }\r\n}\r\n","// shared/models/api.model.ts\r\n\r\nexport interface Response<T> {\r\n endpoint: string;\r\n status: number;\r\n code: number;\r\n locale: string;\r\n message?: string | null;\r\n errors?: any | null;\r\n data: T;\r\n cacheSession?: string;\r\n}\r\n","import {\r\n Component,\r\n inject,\r\n linkedSignal,\r\n signal,\r\n computed,\r\n effect,\r\n} from '@angular/core';\r\nimport { DynamicFormConfig } from '@masterteam/components';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { ToggleField } from '@masterteam/components/toggle-field';\r\nimport {\r\n NodeActionEvent,\r\n SBAction,\r\n StructureBuilder,\r\n} from '@masterteam/structure-builder';\r\nimport { EscalationFacade } from '../../store/escalation';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { Skeleton } from 'primeng/skeleton';\r\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\r\nimport { ConfirmationService } from '@masterteam/components/confirmation';\r\nimport { EscalationStepSchema } from '../../store/escalation';\r\n\r\n@Component({\r\n selector: 'mt-escalation-builder',\r\n imports: [\r\n StructureBuilder,\r\n Card,\r\n Button,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n DynamicForm,\r\n Skeleton,\r\n ToggleField,\r\n TranslocoModule,\r\n ],\r\n templateUrl: './escalation-builder.html',\r\n styles: [],\r\n host: {},\r\n})\r\nexport class EscalationBuilder {\r\n private escalationFacade = inject(EscalationFacade);\r\n private transloco = inject(TranslocoService);\r\n groups = this.escalationFacade.groups;\r\n roles = this.escalationFacade.roles;\r\n hasGroupedRoles = computed(() =>\r\n this.roles().some((role: any) => Array.isArray(role?.items)),\r\n );\r\n escalation = this.escalationFacade.escalation;\r\n loading = this.escalationFacade.isLoading('getEscalation');\r\n loadingStep = this.escalationFacade.isLoading('getStep');\r\n private readonly confirmationService = inject(ConfirmationService);\r\n\r\n selectedStep = this.escalationFacade.selectedStep;\r\n connectionFormulaSchemaId = computed(() => this.escalation()?.id);\r\n\r\n nodeFields = signal<any>({\r\n name: 'name.display',\r\n });\r\n nodeFormControl = new FormControl();\r\n isPublished = signal<boolean>(false);\r\n\r\n private isEditingInitialNode = signal<boolean>(false);\r\n\r\n availableNodes = [\r\n {\r\n id: 'FormStep',\r\n label: this.transloco.translate('escalation.builder.newStep'),\r\n name: {\r\n en: 'New Step',\r\n ar: ' خطوة جديدة',\r\n },\r\n targetType: '1',\r\n icon: 'general.plus-circle',\r\n color: '#000000',\r\n },\r\n ];\r\n\r\n // Base form sections - defined once for reusability\r\n private readonly baseNameFields = {\r\n key: 'settings',\r\n type: 'none',\r\n bodyClass: 'space-y-2',\r\n fields: [\r\n {\r\n key: 'name.en',\r\n label: this.transloco.translate('escalation.builder.nameEnglish'),\r\n placeholder: this.transloco.translate(\r\n 'escalation.builder.enterNameEnglish',\r\n ),\r\n cssClass: 'w-full',\r\n required: true,\r\n },\r\n {\r\n key: 'name.ar',\r\n label: this.transloco.translate('escalation.builder.nameArabic'),\r\n placeholder: this.transloco.translate(\r\n 'escalation.builder.enterNameArabic',\r\n ),\r\n cssClass: 'w-full',\r\n required: true,\r\n },\r\n ],\r\n };\r\n\r\n // Approver section with dynamic options\r\n private readonly approverSection = computed(() => ({\r\n key: 'approver',\r\n type: 'header',\r\n label: this.transloco.translate('escalation.builder.approver'),\r\n headerClass:\r\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',\r\n bodyClass: 'rounded-b-xl border border-slate-200 p-4 space-y-3',\r\n cssClass: ' ',\r\n fields: [\r\n {\r\n key: 'targetType',\r\n type: 'radio-button',\r\n orientation: 'horizontal',\r\n defaultValue: '1',\r\n options: [\r\n {\r\n label: this.transloco.translate('escalation.builder.group'),\r\n value: '1',\r\n },\r\n {\r\n label: this.transloco.translate('escalation.builder.role'),\r\n value: '2',\r\n },\r\n ],\r\n optionLabel: 'name',\r\n optionValue: 'value',\r\n placeholder: 'Enter Role',\r\n cssClass: 'flex items-center gap-6 text-sm text-slate-700',\r\n required: true,\r\n },\r\n {\r\n key: 'group',\r\n label: 'Select',\r\n placeholder: this.transloco.translate('escalation.builder.selectGroup'),\r\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\r\n required: true,\r\n type: 'select',\r\n options: this.groups(),\r\n optionLabel: 'name.display',\r\n optionValue: 'id',\r\n relations: [{ key: 'targetType', value: '1', action: 'show' }],\r\n },\r\n {\r\n key: 'role',\r\n label: 'Select',\r\n placeholder: 'Enter target value',\r\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\r\n required: true,\r\n type: 'select',\r\n options: this.roles(),\r\n group: this.hasGroupedRoles(),\r\n optionGroupLabel: 'label',\r\n optionGroupChildren: 'items',\r\n optionLabel: 'name.display',\r\n optionValue: 'value',\r\n relations: [{ key: 'targetType', value: '2', action: 'show' }],\r\n },\r\n ],\r\n }));\r\n\r\n private readonly slaSection = {\r\n key: 'slaSection',\r\n type: 'none',\r\n bodyClass: 'space-y-1',\r\n fields: [\r\n {\r\n key: 'sla',\r\n label: 'SLA',\r\n placeholder: 'Enter SLA',\r\n cssClass: 'w-full',\r\n required: true,\r\n },\r\n ],\r\n } as const;\r\n\r\n // Dynamic form configuration using linkedSignal\r\n // Automatically rebuilds when isEditingInitialNode changes\r\n nodeForm = linkedSignal<DynamicFormConfig>(() => {\r\n const sections: any[] = [this.baseNameFields];\r\n\r\n // Conditionally include approver and SLA sections based on isEditingInitialNode\r\n // Initial nodes only show name fields\r\n if (!this.isEditingInitialNode()) {\r\n sections.push(this.approverSection());\r\n sections.push(this.slaSection);\r\n }\r\n\r\n return {\r\n sections,\r\n layout: {},\r\n };\r\n });\r\n\r\n // Sample connection form configuration\r\n connectionForm = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'basic',\r\n label: 'Basic Information',\r\n type: 'none',\r\n cssClass: 'p-4',\r\n order: 1,\r\n columns: 2,\r\n fields: [\r\n {\r\n key: 'priority',\r\n label: 'Priority',\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n connectionFormulaConfig = signal({\r\n isProcessBuilder: true,\r\n });\r\n\r\n // Nodes currently in the flow\r\n steps = computed(() => {\r\n return this.escalationFacade.steps().map((step) => ({\r\n ...step,\r\n color: '#000000',\r\n }));\r\n });\r\n\r\n // Connections between nodes\r\n connections = computed(() => {\r\n return this.escalationFacade.connections().map((connection) => ({\r\n ...connection,\r\n from: connection.source,\r\n to: connection.target,\r\n }));\r\n });\r\n\r\n // Node Actions\r\n nodeActions = signal([\r\n {\r\n key: 'edit',\r\n icon: 'general.edit-05',\r\n variant: 'outlined',\r\n size: 'small',\r\n tooltip: 'Edit',\r\n },\r\n {\r\n key: 'delete',\r\n icon: 'general.trash-01',\r\n variant: 'outlined',\r\n size: 'small',\r\n severity: 'danger',\r\n tooltip: 'Delete',\r\n condition: (node: EscalationStepSchema) => !node.isInitial,\r\n },\r\n ]);\r\n\r\n constructor() {\r\n effect(() => {\r\n const escalation = this.escalation();\r\n if (escalation && escalation.isPublished !== undefined) {\r\n this.isPublished.set(escalation.isPublished);\r\n }\r\n });\r\n\r\n // Effect to watch selectedStep and patch form when it changes\r\n effect(() => {\r\n const step = this.selectedStep();\r\n\r\n if (step) {\r\n // Patch form with complete step data\r\n this.nodeFormControl.patchValue({\r\n name: step.name,\r\n targetType: step.targetType || '1',\r\n group: step.targetType === '1' ? parseInt(step.targetValue!) : null,\r\n role: step.targetType === '2' ? step.targetValue : null,\r\n sla: step.sla,\r\n });\r\n\r\n console.log('Form patched with step data:', step);\r\n }\r\n });\r\n }\r\n\r\n onNodeActionsEvent(event: NodeActionEvent) {\r\n console.log('Node action event:', event);\r\n }\r\n\r\n onPublishToggle(isPublished: boolean): void {\r\n this.escalationFacade.publishEscalation(isPublished).subscribe({\r\n error: () => {\r\n this.isPublished.set(!isPublished);\r\n },\r\n });\r\n }\r\n\r\n clearForm(): void {\r\n // Reset isEditingInitialNode flag\r\n this.isEditingInitialNode.set(false);\r\n\r\n // Reset form to default values\r\n this.nodeFormControl.reset({\r\n name: { en: '', ar: '' },\r\n targetType: '1',\r\n group: null,\r\n role: null,\r\n sla: 0,\r\n });\r\n\r\n console.log('Form cleared for new step');\r\n }\r\n\r\n onStructureAction(event: SBAction) {\r\n console.log('Structure action received:', event);\r\n\r\n switch (event.action) {\r\n case 'createNode':\r\n if (event.data) {\r\n // Get form values\r\n const formValue = this.nodeFormControl.value;\r\n\r\n // Prepare step payload without properties\r\n const stepPayload = {\r\n name: formValue.name || { en: 'New Step', ar: 'خطوة جديدة' },\r\n targetType: formValue.targetType,\r\n targetValue:\r\n formValue.targetType === '1' ? formValue.group : formValue.role,\r\n sla: formValue.sla || 0,\r\n };\r\n\r\n // Create step via facade\r\n this.escalationFacade.createStep(stepPayload).subscribe({\r\n next: () => {\r\n console.log('Step created successfully:', stepPayload);\r\n },\r\n error: (error) => {\r\n console.error('Failed to create step:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'startUpdating':\r\n if (event.data) {\r\n this.clearForm();\r\n\r\n const stepId = event.data.id;\r\n\r\n // Set the flag based on whether node is initial\r\n // This will trigger nodeForm to rebuild automatically via linkedSignal\r\n this.isEditingInitialNode.set(!!event.data.isInitial);\r\n\r\n // Load step data\r\n this.escalationFacade.loadStep(stepId);\r\n }\r\n break;\r\n\r\n case 'startCreating':\r\n // Reset form for new step\r\n this.clearForm();\r\n break;\r\n\r\n case 'updateNode':\r\n if (event.data) {\r\n // Get form values\r\n const formValue = this.nodeFormControl.value;\r\n const stepId = event.data.id;\r\n\r\n // Prepare step payload\r\n const stepPayload = {\r\n name: formValue.name || event.data.name,\r\n targetType: formValue.targetType,\r\n targetValue:\r\n formValue.targetType === '1' ? formValue.group : formValue.role,\r\n sla: formValue.sla || event.data.sla,\r\n };\r\n\r\n // Update step via facade\r\n this.escalationFacade.updateStep(stepId, stepPayload).subscribe({\r\n next: () => {\r\n console.log('Step updated successfully:', stepPayload);\r\n },\r\n error: (error) => {\r\n console.error('Failed to update step:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'deleteNode':\r\n if (event.data) {\r\n const nodeIdToDelete = event.data.id;\r\n this.confirmationService.confirmDelete({\r\n type: 'dialog',\r\n\r\n accept: () => {\r\n this.escalationFacade.deleteStep(nodeIdToDelete).subscribe({\r\n next: () => {\r\n console.log('Node deleted:', nodeIdToDelete);\r\n },\r\n error: (error) => {\r\n console.error('Failed to delete node:', error);\r\n },\r\n });\r\n },\r\n reject: () => {},\r\n });\r\n }\r\n break;\r\n\r\n case 'createConnection':\r\n if (event.data) {\r\n // Create connection in store\r\n const connectionPayload = {\r\n sourceStepId: event.data.from,\r\n targetStepId: event.data.to,\r\n priority: event.data.priority ?? 1,\r\n formula: event.data.formula ?? null,\r\n };\r\n this.escalationFacade.createConnection(connectionPayload).subscribe({\r\n next: () => {\r\n console.log('Connection created:', event.data);\r\n },\r\n error: (error) => {\r\n console.error('Failed to create connection:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'updateConnection':\r\n if (event.data) {\r\n // Update connection in store\r\n const connectionId = event.data.id;\r\n const updatePayload = {\r\n sourceStepId: event.data.from,\r\n targetStepId: event.data.to,\r\n priority: event.data.priority ?? 1,\r\n formula: event.data.formula ?? null,\r\n };\r\n this.escalationFacade\r\n .updateConnection(connectionId, updatePayload)\r\n .subscribe({\r\n next: () => {\r\n console.log('Connection updated:', event.data);\r\n },\r\n error: (error) => {\r\n console.error('Failed to update connection:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'deleteConnection':\r\n if (event.data) {\r\n const connectionIdToDelete = event.data.id;\r\n // Delete connection from store\r\n this.escalationFacade\r\n .deleteConnection(connectionIdToDelete)\r\n .subscribe({\r\n next: () => {\r\n console.log('Connection deleted:', connectionIdToDelete);\r\n },\r\n error: (error) => {\r\n console.error('Failed to delete connection:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n default:\r\n console.warn('Unknown structure action:', event.action);\r\n }\r\n }\r\n}\r\n","<div class=\"h-full relative\" id=\"escalationCard\">\r\n @if (!loading()) {\r\n <mt-structure-builder\r\n class=\"flex-1\"\r\n [availableNodes]=\"availableNodes\"\r\n [connectionForm]=\"connectionForm()\"\r\n [connectionFormulaSchemaId]=\"connectionFormulaSchemaId()\"\r\n [connectionFormulaConfig]=\"connectionFormulaConfig()\"\r\n [nodeActions]=\"nodeActions()\"\r\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\r\n [nodes]=\"steps()\"\r\n [connections]=\"connections()\"\r\n (action)=\"onStructureAction($event)\"\r\n [addModalType]=\"'drawer'\"\r\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\r\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\r\n [addModalHeader]=\"'escalation.builder.addStep' | transloco\"\r\n [updateModalHeader]=\"'escalation.builder.editStep' | transloco\"\r\n [appendTo]=\"'page-content'\"\r\n [nodeFields]=\"nodeFields()\"\r\n >\r\n <div flowContent>\r\n <div class=\"absolute top-4 end-4 z-10\">\r\n <div class=\"flex flex-col gap-2 w-80\">\r\n <mt-card>\r\n <div class=\"flex items-center gap-10\">\r\n <div class=\"flex items-center gap-2\">\r\n <mt-button [severity]=\"'secondary'\" icon=\"dev.dataflow-01\" />\r\n <label>{{\r\n \"escalation.builder.enableEscalation\" | transloco\r\n }}</label>\r\n </div>\r\n <mt-toggle-field\r\n [ngModel]=\"isPublished()\"\r\n (ngModelChange)=\"onPublishToggle($event)\"\r\n ></mt-toggle-field>\r\n </div>\r\n </mt-card>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-template\r\n #nodeDialog\r\n let-close=\"close\"\r\n let-save=\"save\"\r\n let-node=\"node\"\r\n >\r\n <div class=\"p-4\">\r\n @if (loadingStep()) {\r\n <!-- Loading skeleton -->\r\n <div class=\"space-y-4\">\r\n <!-- Form fields skeleton -->\r\n <div class=\"space-y-4\">\r\n <div>\r\n <p-skeleton\r\n width=\"8rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"8rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"10rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"3rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"6rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"4rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <!-- Actual content - just the form, no tabs -->\r\n <mt-dynamic-form\r\n [formConfig]=\"nodeForm()\"\r\n [formControl]=\"nodeFormControl\"\r\n ></mt-dynamic-form>\r\n }\r\n </div>\r\n </ng-template>\r\n </mt-structure-builder>\r\n } @else {\r\n <p-skeleton width=\"100%\" height=\"50rem\" />\r\n }\r\n</div>\r\n","import { EscalationState } from './escalation/escalation.state';\r\n\r\nexport const ESCALATION_STATES = [EscalationState];\r\n\r\nexport * from './escalation';\r\n","// Re-export app state\r\nexport * from './app.state';\r\n\r\n// Re-export workflow state\r\nexport * from './escalation';\r\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';\r\n\r\nexport class SetModuleInfo {\r\n static readonly type = '[Escalation] Set Module Info';\r\n\r\n constructor(\r\n public readonly moduleType: string,\r\n public readonly moduleId: string | number,\r\n public readonly parentModuleType?: string,\r\n public readonly parentModuleId?: string | number,\r\n public readonly parentPath?: string,\r\n ) {}\r\n}\r\nexport class GetEscalation {\r\n static readonly type = '[Escalation] Get Escalation';\r\n}\r\n\r\nexport class GetFormulaProperties {\r\n static readonly type = '[Escalation] Get Formula Properties';\r\n}\r\n\r\nexport class GetGroups {\r\n static readonly type = '[Escalation] Get Groups';\r\n}\r\n\r\nexport class GetRolesForModule {\r\n static readonly type = '[Escalation] Get Roles For Module';\r\n}\r\n\r\nexport class GetStep {\r\n static readonly type = '[Escalation] Get Step';\r\n\r\n constructor(public readonly stepId: string | number) {}\r\n}\r\n\r\nexport class ValidateFlow {\r\n static readonly type = '[Escalation] Validate Flow';\r\n}\r\n\r\nexport class CreateStep {\r\n static readonly type = '[Escalation] Create Step';\r\n\r\n constructor(public readonly payload: StepPayload) {}\r\n}\r\n\r\nexport class UpdateStep {\r\n static readonly type = '[Escalation] Update Step';\r\n\r\n constructor(\r\n public readonly stepId: string | number,\r\n public readonly payload: StepPayload,\r\n ) {}\r\n}\r\n\r\nexport class CreateConnection {\r\n static readonly type = '[Escalation] Create Connection';\r\n\r\n constructor(public readonly payload: ConnectionPayload) {}\r\n}\r\n\r\nexport class UpdateConnection {\r\n static readonly type = '[Escalation] Update Connection';\r\n\r\n constructor(\r\n public readonly connectionId: string | number,\r\n public readonly payload: ConnectionPayload,\r\n ) {}\r\n}\r\n\r\nexport class PublishEscalation {\r\n static readonly type = '[Escalation] Publish Escalation';\r\n\r\n constructor(public readonly isPublished: boolean) {}\r\n}\r\n\r\nexport class DeleteStep {\r\n static readonly type = '[Escalation] Delete Step';\r\n\r\n constructor(public readonly stepId: string | number) {}\r\n}\r\n\r\nexport class DeleteConnection {\r\n static readonly type = '[Escalation] Delete Connection';\r\n\r\n constructor(public readonly connectionId: string | number) {}\r\n}\r\n","import type { StateContext } from '@ngxs/store';\r\n\r\nexport interface LoadingStateShape<L extends string = string> {\r\n loadingActive: L[];\r\n errors: Partial<Record<L, string>>;\r\n}\r\n\r\ntype LoadingName<T extends LoadingStateShape<string>> =\r\n T['loadingActive'][number];\r\n\r\nexport function startLoading<T extends LoadingStateShape<string>>(\r\n ctx: StateContext<T>,\r\n loadingName: LoadingName<T>,\r\n): void {\r\n const { loadingActive, errors } = ctx.getState();\r\n\r\n if (!loadingActive.includes(loadingName)) {\r\n ctx.patchState({\r\n loadingActive: [...loadingActive, loadingName],\r\n } as Partial<T>);\r\n }\r\n\r\n if (errors && errors[loadingName]) {\r\n const { [loadingName]: _removed, ...rest } = errors;\r\n ctx.patchState({ errors: rest } as Partial<T>);\r\n }\r\n}\r\n\r\nexport function endLoading<T extends LoadingStateShape<string>>(\r\n ctx: StateContext<T>,\r\n loadingName: LoadingName<T>,\r\n): void {\r\n const { loadingActive } = ctx.getState();\r\n\r\n ctx.patchState({\r\n loadingActive: loadingActive.filter((name) => name !== loadingName),\r\n } as Partial<T>);\r\n}\r\n\r\nexport function setLoadingError<T extends LoadingStateShape<string>>(\r\n ctx: StateContext<T>,\r\n loadingName: LoadingName<T>,\r\n message: string,\r\n): void {\r\n const { errors } = ctx.getState();\r\n ctx.patchState({\r\n errors: { ...errors, [loadingName]: message },\r\n } as Partial<T>);\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, finalize, tap } from 'rxjs/operators';\r\n\r\nimport {\r\n endLoading,\r\n setLoadingError,\r\n startLoading,\r\n} from '../utils/state-helpers';\r\n\r\nimport type {\r\n ConnectionResponse,\r\n FormulaProperty,\r\n GroupDefinition,\r\n RoleGroupDefinition,\r\n PublishResponse,\r\n RoleDefinition,\r\n StepResponse,\r\n StepSchema,\r\n EscalationConnection,\r\n EscalationLoadingName,\r\n EscalationSchema,\r\n EscalationStateModel,\r\n EscalationStepSchema,\r\n} from './escalation.model';\r\nimport {\r\n CreateConnection,\r\n CreateStep,\r\n DeleteConnection,\r\n DeleteStep,\r\n GetFormulaProperties,\r\n GetGroups,\r\n GetRolesForModule,\r\n GetStep,\r\n GetEscalation,\r\n PublishEscalation,\r\n UpdateConnection,\r\n UpdateStep,\r\n ValidateFlow,\r\n SetModuleInfo,\r\n} from './escalation.actions';\r\nimport { Response } from './api.model';\r\n\r\nconst DEFAULT_STATE: EscalationStateModel = {\r\n moduleType: null,\r\n moduleId: null,\r\n escalation: null,\r\n formulaProperties: [],\r\n groups: [],\r\n roles: [],\r\n selectedStep: null,\r\n isFlowValid: null,\r\n loadingActive: [],\r\n errors: {},\r\n};\r\n\r\n@State<EscalationStateModel>({\r\n name: 'escalation',\r\n defaults: DEFAULT_STATE,\r\n})\r\n@Injectable()\r\nexport class EscalationState {\r\n private readonly http = inject(HttpClient);\r\n private readonly baseUrl = 'EscalationSchemas';\r\n private readonly groupsUrl = 'identity/Groups';\r\n private readonly rolesUrl = 'identity/roles/scopes';\r\n\r\n @Selector()\r\n static moduleId(state: EscalationStateModel): string | number | null {\r\n return state.moduleId;\r\n }\r\n\r\n @Selector()\r\n static moduleType(state: EscalationStateModel): string | null {\r\n return state.moduleType;\r\n }\r\n\r\n @Selector()\r\n static escalation(state: EscalationStateModel): EscalationSchema | null {\r\n return state.escalation;\r\n }\r\n\r\n @Selector()\r\n static formulaProperties(state: EscalationStateModel): FormulaProperty[] {\r\n return state.formulaProperties;\r\n }\r\n\r\n @Selector()\r\n static groups(state: EscalationStateModel): GroupDefinition[] {\r\n return state.groups;\r\n }\r\n\r\n @Selector()\r\n static roles(\r\n state: EscalationStateModel,\r\n ): Array<RoleDefinition | RoleGroupDefinition> {\r\n return state.roles;\r\n }\r\n\r\n @Selector()\r\n static selectedStep(state: EscalationStateModel): StepSchema | null {\r\n return state.selectedStep;\r\n }\r\n\r\n @Selector()\r\n static isFlowValid(state: EscalationStateModel): boolean | null {\r\n return state.isFlowValid;\r\n }\r\n\r\n @Selector()\r\n static stepsSchema(state: EscalationStateModel): EscalationStepSchema[] {\r\n return state.escalation?.stepsSchema ?? [];\r\n }\r\n\r\n @Selector()\r\n static connections(state: EscalationStateModel): EscalationConnection[] {\r\n return state.escalation?.connections ?? [];\r\n }\r\n\r\n @Selector()\r\n static isLoadingFactory(state: EscalationStateModel) {\r\n return (loadingName: EscalationLoadingName) =>\r\n state.loadingActive.includes(loadingName);\r\n }\r\n\r\n @Selector()\r\n static errorFactory(state: EscalationStateModel) {\r\n return (loadingName: EscalationLoadingName) =>\r\n state.errors?.[loadingName] ?? null;\r\n }\r\n\r\n @Action(SetModuleInfo)\r\n setModuleInfo(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: SetModuleInfo,\r\n ) {\r\n let parentPath = '';\r\n if (action.parentModuleType && action.parentModuleId) {\r\n parentPath = `/${action.parentModuleType}/${action.parentModuleId}`;\r\n } else if (action.parentPath) {\r\n parentPath = action.parentPath;\r\n }\r\n ctx.patchState({\r\n moduleType: action.moduleType,\r\n moduleId: action.moduleId,\r\n parentModuleType: action.parentModuleType ?? null,\r\n parentModuleId: action.parentModuleId ?? null,\r\n parentPath: parentPath ?? '',\r\n });\r\n }\r\n @Action(GetEscalation)\r\n getEscalation(\r\n ctx: StateContext<EscalationStateModel>,\r\n _action: GetEscalation,\r\n ) {\r\n startLoading(ctx, 'getEscalation');\r\n\r\n const state = ctx.getState();\r\n const { moduleId, parentPath, moduleType } = state;\r\n\r\n if (!moduleId) {\r\n const message = 'Module ID is not set';\r\n setLoadingError(ctx, 'getEscalation', message);\r\n endLoading(ctx, 'getEscalation');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .get<Response<EscalationSchema>>(\r\n `${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`,\r\n {\r\n params: { Mode: 'edit' },\r\n },\r\n )\r\n .pipe(\r\n tap((response) => {\r\n const escalation = response?.data ?? null;\r\n ctx.patchState({ escalation });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to load escalation';\r\n setLoadingError(ctx, 'getEscalation', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'getEscalation')),\r\n );\r\n }\r\n\r\n @Action(GetFormulaProperties)\r\n getFormulaProperties(\r\n ctx: StateContext<EscalationStateModel>,\r\n _action: GetFormulaProperties,\r\n ) {\r\n startLoading(ctx, 'getFormulaProperties');\r\n\r\n const state = ctx.getState();\r\n const moduleId = state.moduleId;\r\n\r\n if (!moduleId) {\r\n const message = 'Module ID is not set';\r\n setLoadingError(ctx, 'getFormulaProperties', message);\r\n endLoading(ctx, 'getFormulaProperties');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .get<\r\n Response<FormulaProperty[]>\r\n >(`${this.baseUrl}/processFormulaProperties/${moduleId}`)\r\n .pipe(\r\n tap((response) => {\r\n const formulaProperties = Array.isArray(response?.data)\r\n ? response.data\r\n : [];\r\n ctx.patchState({ formulaProperties });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to load formula properties';\r\n setLoadingError(ctx, 'getFormulaProperties', message);\r\n return of([]);\r\n }),\r\n finalize(() => endLoading(ctx, 'getFormulaProperties')),\r\n );\r\n }\r\n\r\n @Action(GetGroups)\r\n getGroups(ctx: StateContext<EscalationStateModel>, _action: GetGroups) {\r\n const state = ctx.getState();\r\n if (state.groups.length) {\r\n return of(state.groups);\r\n }\r\n\r\n startLoading(ctx, 'getGroups');\r\n\r\n return this.http.get<Response<GroupDefinition[]>>(this.groupsUrl).pipe(\r\n tap((response) => {\r\n const groups = Array.isArray(response?.data) ? response.data : [];\r\n ctx.patchState({ groups });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to load groups';\r\n setLoadingError(ctx, 'getGroups', message);\r\n return of([]);\r\n }),\r\n finalize(() => endLoading(ctx, 'getGroups')),\r\n );\r\n }\r\n\r\n @Action(GetRolesForModule)\r\n getRolesForModule(\r\n ctx: StateContext<EscalationStateModel>,\r\n _action: GetRolesForModule,\r\n ) {\r\n const state = ctx.getState();\r\n const { moduleType, moduleId, parentPath } = state;\r\n\r\n if (!moduleType || !moduleId) {\r\n const message = 'Module type and module ID must be set';\r\n setLoadingError(ctx, 'getRolesForModule', message);\r\n return of([]);\r\n }\r\n\r\n startLoading(ctx, 'getRolesForModule');\r\n\r\n return this.http\r\n .get<Response<unknown[]>>(\r\n `${parentPath ? this.rolesUrl.replace('/scopes', '') : this.rolesUrl}${parentPath}/${moduleType}/${moduleId}`,\r\n parentPath\r\n ? undefined\r\n : {\r\n params: { inherited: 'true' },\r\n },\r\n )\r\n .pipe(\r\n tap((response) => {\r\n const roles = normalizeEscalationRoles(response?.data);\r\n ctx.patchState({ roles });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to load roles';\r\n setLoadingError(ctx, 'getRolesForModule', message);\r\n return of([]);\r\n }),\r\n finalize(() => endLoading(ctx, 'getRolesForModule')),\r\n );\r\n }\r\n\r\n @Action(GetStep)\r\n getStep(ctx: StateContext<EscalationStateModel>, action: GetStep) {\r\n startLoading(ctx, 'getStep');\r\n\r\n return this.http\r\n .get<Response<StepSchema>>(`${this.baseUrl}/step/${action.stepId}`, {\r\n params: { Mode: 'edit' },\r\n })\r\n .pipe(\r\n tap((response) => {\r\n const selectedStep = response?.data ?? null;\r\n ctx.patchState({ selectedStep });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to load step';\r\n setLoadingError(ctx, 'getStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'getStep')),\r\n );\r\n }\r\n\r\n @Action(ValidateFlow)\r\n validateFlow(ctx: StateContext<EscalationStateModel>, _action: ValidateFlow) {\r\n startLoading(ctx, 'validateFlow');\r\n\r\n const state = ctx.getState();\r\n const { moduleId, parentPath, moduleType } = state;\r\n\r\n if (!moduleId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'validateFlow', message);\r\n endLoading(ctx, 'validateFlow');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .get<\r\n Response<boolean>\r\n >(`${this.baseUrl}/requestSchema${parentPath}/${moduleType}/${moduleId}/validity`)\r\n .pipe(\r\n tap((response) => {\r\n const isFlowValid = response?.data ?? null;\r\n ctx.patchState({ isFlowValid });\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to validate flow';\r\n setLoadingError(ctx, 'validateFlow', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'validateFlow')),\r\n );\r\n }\r\n\r\n @Action(CreateStep)\r\n createStep(ctx: StateContext<EscalationStateModel>, action: CreateStep) {\r\n const state = ctx.getState();\r\n const escalationId = state.escalation?.id;\r\n\r\n if (!escalationId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'createStep', message);\r\n return of(null);\r\n }\r\n\r\n const tempId = -Date.now();\r\n const tempStep: any = {\r\n ...action.payload,\r\n id: tempId,\r\n loading: true,\r\n };\r\n\r\n if (state.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n stepsSchema: [...state.escalation.stepsSchema, tempStep],\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'createStep');\r\n\r\n return this.http\r\n .post<\r\n Response<StepResponse>\r\n >(`${this.baseUrl}/${escalationId}/steps`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const createdStep = response?.data;\r\n const currentState = ctx.getState();\r\n if (createdStep && currentState.escalation) {\r\n const updatedSteps = currentState.escalation.stepsSchema.map(\r\n (step) =>\r\n step.id === tempId ? { ...createdStep, loading: false } : step,\r\n );\r\n\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: updatedSteps,\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const filteredSteps = currentState.escalation.stepsSchema.filter(\r\n (step) => step.id !== tempId,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: filteredSteps,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to create step';\r\n setLoadingError(ctx, 'createStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'createStep')),\r\n );\r\n }\r\n\r\n @Action(UpdateStep)\r\n updateStep(ctx: StateContext<EscalationStateModel>, action: UpdateStep) {\r\n const state = ctx.getState();\r\n const moduleId = state.moduleId;\r\n\r\n if (!moduleId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'updateStep', message);\r\n return of(null);\r\n }\r\n\r\n if (state.escalation) {\r\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\r\n step.id === action.stepId ? { ...step, loading: true } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n stepsSchema: updatedSteps,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'updateStep');\r\n\r\n return this.http\r\n .put<\r\n Response<StepResponse>\r\n >(`${this.baseUrl}/steps/${action.stepId}`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const updatedStep = response?.data;\r\n const currentState = ctx.getState();\r\n if (updatedStep && currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: currentState.escalation.stepsSchema.map((step) =>\r\n step.id === updatedStep.id\r\n ? { ...updatedStep, loading: false }\r\n : step,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorSteps = currentState.escalation.stepsSchema.map(\r\n (step) =>\r\n step.id === action.stepId ? { ...step, loading: false } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: errorSteps,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to update step';\r\n setLoadingError(ctx, 'updateStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'updateStep')),\r\n );\r\n }\r\n\r\n @Action(CreateConnection)\r\n createConnection(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: CreateConnection,\r\n ) {\r\n const state = ctx.getState();\r\n const escalationId = state.escalation?.id;\r\n\r\n if (!escalationId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'createConnection', message);\r\n return of(null);\r\n }\r\n\r\n const tempId = -Date.now();\r\n const tempConnection: any = {\r\n ...action.payload,\r\n id: tempId,\r\n loading: true,\r\n source: action.payload.sourceStepId,\r\n target: action.payload.targetStepId,\r\n };\r\n\r\n if (state.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n connections: [...state.escalation.connections, tempConnection],\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'createConnection');\r\n\r\n return this.http\r\n .post<\r\n Response<ConnectionResponse>\r\n >(`${this.baseUrl}/${escalationId}/connections`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const createdConnection = response?.data;\r\n const currentState = ctx.getState();\r\n if (createdConnection && currentState.escalation) {\r\n const updatedConnections = currentState.escalation.connections.map(\r\n (conn) =>\r\n conn.id === tempId\r\n ? { ...createdConnection, loading: false }\r\n : conn,\r\n );\r\n\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: updatedConnections,\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const filteredConnections =\r\n currentState.escalation.connections.filter(\r\n (conn) => conn.id !== tempId,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: filteredConnections,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to create connection';\r\n setLoadingError(ctx, 'createConnection', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'createConnection')),\r\n );\r\n }\r\n\r\n @Action(UpdateConnection)\r\n updateConnection(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: UpdateConnection,\r\n ) {\r\n const state = ctx.getState();\r\n const moduleId = state.moduleId;\r\n\r\n if (!moduleId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'updateConnection', message);\r\n return of(null);\r\n }\r\n\r\n if (state.escalation) {\r\n const updatedConnections = state.escalation.connections.map((conn) =>\r\n conn.id === action.connectionId ? { ...conn, loading: true } : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n connections: updatedConnections,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'updateConnection');\r\n\r\n return this.http\r\n .put<\r\n Response<ConnectionResponse>\r\n >(`${this.baseUrl}/connections/${action.connectionId}`, action.payload)\r\n .pipe(\r\n tap((response) => {\r\n const updatedConnection = response?.data;\r\n const currentState = ctx.getState();\r\n if (updatedConnection && currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: currentState.escalation.connections.map((conn) =>\r\n conn.id === updatedConnection.id\r\n ? { ...updatedConnection, loading: false }\r\n : conn,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorConnections = currentState.escalation.connections.map(\r\n (conn) =>\r\n conn.id === action.connectionId\r\n ? { ...conn, loading: false }\r\n : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: errorConnections,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to update connection';\r\n setLoadingError(ctx, 'updateConnection', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'updateConnection')),\r\n );\r\n }\r\n\r\n @Action(PublishEscalation)\r\n publishEscalation(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: PublishEscalation,\r\n ) {\r\n startLoading(ctx, 'publishEscalation');\r\n\r\n const state = ctx.getState();\r\n const escalationId = state.escalation?.id;\r\n\r\n if (!escalationId) {\r\n const message = 'Escalation ID is not set';\r\n setLoadingError(ctx, 'publishEscalation', message);\r\n endLoading(ctx, 'publishEscalation');\r\n return of(null);\r\n }\r\n\r\n return this.http\r\n .put<\r\n Response<PublishResponse>\r\n >(`${this.baseUrl}/${escalationId}/publish`, { IsPublished: action.isPublished })\r\n .pipe(\r\n tap((response) => {\r\n const publishedData = response?.data;\r\n if (publishedData && state.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n isPublished: publishedData.isPublished,\r\n isValid: publishedData.isValid,\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to publish escalation';\r\n setLoadingError(ctx, 'publishEscalation', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'publishEscalation')),\r\n );\r\n }\r\n\r\n @Action(DeleteStep)\r\n deleteStep(ctx: StateContext<EscalationStateModel>, action: DeleteStep) {\r\n const state = ctx.getState();\r\n\r\n if (state.escalation) {\r\n const updatedSteps = state.escalation.stepsSchema.map((step) =>\r\n step.id == action.stepId ? { ...step, loading: true } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n stepsSchema: updatedSteps,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'deleteStep');\r\n\r\n return this.http\r\n .delete<Response<boolean>>(`${this.baseUrl}/steps/${action.stepId}`)\r\n .pipe(\r\n tap(() => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: currentState.escalation.stepsSchema.filter(\r\n (step) => step.id != action.stepId,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorSteps = currentState.escalation.stepsSchema.map(\r\n (step) =>\r\n step.id == action.stepId ? { ...step, loading: false } : step,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n stepsSchema: errorSteps,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ?? error?.message ?? 'Failed to delete step';\r\n setLoadingError(ctx, 'deleteStep', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'deleteStep')),\r\n );\r\n }\r\n\r\n @Action(DeleteConnection)\r\n deleteConnection(\r\n ctx: StateContext<EscalationStateModel>,\r\n action: DeleteConnection,\r\n ) {\r\n const state = ctx.getState();\r\n\r\n if (state.escalation) {\r\n const updatedConnections = state.escalation.connections.map((conn) =>\r\n conn.id == action.connectionId ? { ...conn, loading: true } : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...state.escalation,\r\n connections: updatedConnections,\r\n },\r\n });\r\n }\r\n\r\n startLoading(ctx, 'deleteConnection');\r\n\r\n return this.http\r\n .delete<\r\n Response<boolean>\r\n >(`${this.baseUrl}/connections/${action.connectionId}`)\r\n .pipe(\r\n tap(() => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: currentState.escalation.connections.filter(\r\n (conn) => conn.id != action.connectionId,\r\n ),\r\n },\r\n });\r\n }\r\n }),\r\n catchError((error) => {\r\n const currentState = ctx.getState();\r\n if (currentState.escalation) {\r\n const errorConnections = currentState.escalation.connections.map(\r\n (conn) =>\r\n conn.id == action.connectionId\r\n ? { ...conn, loading: false }\r\n : conn,\r\n );\r\n ctx.patchState({\r\n escalation: {\r\n ...currentState.escalation,\r\n connections: errorConnections,\r\n },\r\n });\r\n }\r\n\r\n const message =\r\n error?.error?.message ??\r\n error?.message ??\r\n 'Failed to delete connection';\r\n setLoadingError(ctx, 'deleteConnection', message);\r\n return of(null);\r\n }),\r\n finalize(() => endLoading(ctx, 'deleteConnection')),\r\n );\r\n }\r\n}\r\n\r\nfunction normalizeEscalationRoles(\r\n data: unknown,\r\n): Array<RoleDefinition | RoleGroupDefinition> {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n\r\n if (data.some((item: any) => Array.isArray(item?.roles))) {\r\n return data\r\n .map((group: any) => ({\r\n label: resolveEscalationRoleGroupLabel(group),\r\n items: Array.isArray(group?.roles)\r\n ? group.roles.map(normalizeEscalationRole).filter(Boolean)\r\n : [],\r\n }))\r\n .filter((group) => group.items.length > 0);\r\n }\r\n\r\n return data.map(normalizeEscalationRole).filter(Boolean);\r\n}\r\n\r\nfunction normalizeEscalationRole(role: any): RoleDefinition {\r\n const value = role?.value ?? role?.id;\r\n return {\r\n ...role,\r\n id: role?.id ?? value,\r\n value,\r\n name: normalizeEscalationRoleName(role?.name),\r\n };\r\n}\r\n\r\nfunction normalizeEscalationRoleName(\r\n name: unknown,\r\n): string | Record<string, string> {\r\n if (name && typeof name === 'object') {\r\n return name as Record<string, string>;\r\n }\r\n\r\n const label = typeof name === 'string' ? name : '';\r\n return {\r\n display: label,\r\n en: label,\r\n ar: label,\r\n };\r\n}\r\n\r\nfunction resolveEscalationRoleGroupLabel(group: any): string {\r\n const level = group?.level;\r\n if (typeof level === 'string') {\r\n return level;\r\n }\r\n\r\n if (level?.display) {\r\n return level.display;\r\n }\r\n\r\n if (level?.en) {\r\n return level.en;\r\n }\r\n\r\n if (level?.ar) {\r\n return level.ar;\r\n }\r\n\r\n return group?.levelKey ?? group?.scopeType ?? 'Roles';\r\n}\r\n","import { Injectable, computed, inject } from '@angular/core';\r\nimport { select, Store } from '@ngxs/store';\r\nimport type { Observable } from 'rxjs';\r\n\r\nimport type {\r\n ConnectionPayload,\r\n FormulaProperty,\r\n GroupDefinition,\r\n RoleGroupDefinition,\r\n RoleDefinition,\r\n StepPayload,\r\n StepSchema,\r\n EscalationConnection,\r\n EscalationLoadingName,\r\n EscalationSchema,\r\n EscalationStepSchema,\r\n} from './escalation.model';\r\nimport {\r\n CreateConnection,\r\n CreateStep,\r\n DeleteConnection,\r\n DeleteStep,\r\n GetFormulaProperties,\r\n GetGroups,\r\n GetRolesForModule,\r\n GetStep,\r\n GetEscalation,\r\n PublishEscalation,\r\n UpdateConnection,\r\n UpdateStep,\r\n ValidateFlow,\r\n SetModuleInfo,\r\n} from './escalation.actions';\r\nimport { EscalationState } from './escalation.state';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EscalationFacade {\r\n private readonly store = inject(Store);\r\n\r\n readonly moduleType = select<string | null>(EscalationState.moduleType);\r\n readonly moduleId = select<string | number | null>(EscalationState.moduleId);\r\n readonly escalation = select<EscalationSchema | null>(\r\n EscalationState.escalation,\r\n );\r\n readonly formulaProperties = select<FormulaProperty[]>(\r\n EscalationState.formulaProperties,\r\n );\r\n readonly groups = select<GroupDefinition[]>(EscalationState.groups);\r\n readonly roles = select<Array<RoleDefinition | RoleGroupDefinition>>(\r\n EscalationState.roles,\r\n );\r\n readonly selectedStep = select<StepSchema | null>(\r\n EscalationState.selectedStep,\r\n );\r\n readonly isFlowValid = select<boolean | null>(EscalationState.isFlowValid);\r\n readonly steps = select<EscalationStepSchema[]>(EscalationState.stepsSchema);\r\n readonly connections = select<EscalationConnection[]>(\r\n EscalationState.connections,\r\n );\r\n\r\n isLoading(loadingName: EscalationLoadingName) {\r\n const loadingFactory = select<(name: EscalationLoadingName) => boolean>(\r\n EscalationState.isLoadingFactory,\r\n );\r\n return computed(() => loadingFactory()(loadingName));\r\n }\r\n\r\n error(loadingName: EscalationLoadingName) {\r\n const errorFactory = select<(name: EscalationLoadingName) => string | null>(\r\n EscalationState.errorFactory,\r\n );\r\n return computed(() => errorFactory()(loadingName));\r\n }\r\n\r\n setModuleInfo(\r\n moduleType: string,\r\n moduleId: string | number,\r\n parentModuleType?: string,\r\n parentModuleId?: string | number,\r\n parentPath?: string,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(\r\n new SetModuleInfo(\r\n moduleType,\r\n moduleId,\r\n parentModuleType,\r\n parentModuleId,\r\n parentPath,\r\n ),\r\n );\r\n }\r\n\r\n loadEscalation(): Observable<unknown> {\r\n return this.store.dispatch(new GetEscalation());\r\n }\r\n\r\n loadFormulaProperties(): Observable<unknown> {\r\n return this.store.dispatch(new GetFormulaProperties());\r\n }\r\n\r\n loadGroups(): Observable<unknown> {\r\n return this.store.dispatch(new GetGroups());\r\n }\r\n\r\n loadRolesForModule(): Observable<unknown> {\r\n return this.store.dispatch(new GetRolesForModule());\r\n }\r\n\r\n loadStep(stepId: string | number): Observable<unknown> {\r\n return this.store.dispatch(new GetStep(stepId));\r\n }\r\n\r\n validateFlow(): Observable<unknown> {\r\n return this.store.dispatch(new ValidateFlow());\r\n }\r\n\r\n createStep(payload: StepPayload): Observable<unknown> {\r\n return this.store.dispatch(new CreateStep(payload));\r\n }\r\n\r\n updateStep(\r\n stepId: string | number,\r\n payload: StepPayload,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new UpdateStep(stepId, payload));\r\n }\r\n\r\n createConnection(payload: ConnectionPayload): Observable<unknown> {\r\n return this.store.dispatch(new CreateConnection(payload));\r\n }\r\n\r\n updateConnection(\r\n connectionId: string | number,\r\n payload: ConnectionPayload,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new UpdateConnection(connectionId, payload));\r\n }\r\n\r\n publishEscalation(isPublished: boolean): Observable<unknown> {\r\n return this.store.dispatch(new PublishEscalation(isPublished));\r\n }\r\n\r\n deleteStep(stepId: string | number): Observable<unknown> {\r\n return this.store.dispatch(new DeleteStep(stepId));\r\n }\r\n\r\n deleteConnection(connectionId: string | number): Observable<unknown> {\r\n return this.store.dispatch(new DeleteConnection(connectionId));\r\n }\r\n}\r\n","// shared/models/api.model.ts\r\n\r\nexport interface Response<T> {\r\n endpoint: string;\r\n status: number;\r\n code: number;\r\n locale: string;\r\n message?: string | null;\r\n errors?: any | null;\r\n data: T;\r\n cacheSession?: string;\r\n}\r\n","import {\r\n Component,\r\n inject,\r\n linkedSignal,\r\n signal,\r\n computed,\r\n effect,\r\n} from '@angular/core';\r\nimport { DynamicFormConfig } from '@masterteam/components';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { ToggleField } from '@masterteam/components/toggle-field';\r\nimport {\r\n NodeActionEvent,\r\n SBAction,\r\n StructureBuilder,\r\n} from '@masterteam/structure-builder';\r\nimport { EscalationFacade } from '../../store/escalation';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { Skeleton } from 'primeng/skeleton';\r\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\r\nimport { ConfirmationService } from '@masterteam/components/confirmation';\r\nimport { EscalationStepSchema } from '../../store/escalation';\r\n\r\n@Component({\r\n selector: 'mt-escalation-builder',\r\n imports: [\r\n StructureBuilder,\r\n Card,\r\n Button,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n DynamicForm,\r\n Skeleton,\r\n ToggleField,\r\n TranslocoModule,\r\n ],\r\n templateUrl: './escalation-builder.html',\r\n styles: [],\r\n host: {},\r\n})\r\nexport class EscalationBuilder {\r\n private escalationFacade = inject(EscalationFacade);\r\n private transloco = inject(TranslocoService);\r\n groups = this.escalationFacade.groups;\r\n roles = this.escalationFacade.roles;\r\n hasGroupedRoles = computed(() =>\r\n this.roles().some((role: any) => Array.isArray(role?.items)),\r\n );\r\n escalation = this.escalationFacade.escalation;\r\n loading = this.escalationFacade.isLoading('getEscalation');\r\n loadingStep = this.escalationFacade.isLoading('getStep');\r\n private readonly confirmationService = inject(ConfirmationService);\r\n\r\n selectedStep = this.escalationFacade.selectedStep;\r\n connectionFormulaSchemaId = computed(() => this.escalation()?.id);\r\n\r\n nodeFields = signal<any>({\r\n name: 'name.display',\r\n });\r\n nodeFormControl = new FormControl();\r\n isPublished = signal<boolean>(false);\r\n\r\n private isEditingInitialNode = signal<boolean>(false);\r\n\r\n availableNodes = [\r\n {\r\n id: 'FormStep',\r\n label: this.transloco.translate('escalation.builder.newStep'),\r\n name: {\r\n en: 'New Step',\r\n ar: ' خطوة جديدة',\r\n },\r\n targetType: '1',\r\n icon: 'general.plus-circle',\r\n color: '#000000',\r\n },\r\n ];\r\n\r\n // Base form sections - defined once for reusability\r\n private readonly baseNameFields = {\r\n key: 'settings',\r\n type: 'none',\r\n bodyClass: 'space-y-2',\r\n fields: [\r\n {\r\n key: 'name.en',\r\n label: this.transloco.translate('escalation.builder.nameEnglish'),\r\n placeholder: this.transloco.translate(\r\n 'escalation.builder.enterNameEnglish',\r\n ),\r\n cssClass: 'w-full',\r\n required: true,\r\n },\r\n {\r\n key: 'name.ar',\r\n label: this.transloco.translate('escalation.builder.nameArabic'),\r\n placeholder: this.transloco.translate(\r\n 'escalation.builder.enterNameArabic',\r\n ),\r\n cssClass: 'w-full',\r\n required: true,\r\n },\r\n ],\r\n };\r\n\r\n // Approver section with dynamic options\r\n private readonly approverSection = computed(() => ({\r\n key: 'approver',\r\n type: 'header',\r\n label: this.transloco.translate('escalation.builder.approver'),\r\n headerClass:\r\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',\r\n bodyClass: 'rounded-b-xl border border-slate-200 p-4 space-y-3',\r\n cssClass: ' ',\r\n fields: [\r\n {\r\n key: 'targetType',\r\n type: 'radio-button',\r\n orientation: 'horizontal',\r\n defaultValue: '1',\r\n options: [\r\n {\r\n label: this.transloco.translate('escalation.builder.group'),\r\n value: '1',\r\n },\r\n {\r\n label: this.transloco.translate('escalation.builder.role'),\r\n value: '2',\r\n },\r\n ],\r\n optionLabel: 'name',\r\n optionValue: 'value',\r\n placeholder: this.transloco.translate('escalation.builder.enter-role'),\r\n cssClass: 'flex items-center gap-6 text-sm text-slate-700',\r\n required: true,\r\n },\r\n {\r\n key: 'group',\r\n label: this.transloco.translate('escalation.builder.select'),\r\n placeholder: this.transloco.translate('escalation.builder.selectGroup'),\r\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\r\n required: true,\r\n type: 'select',\r\n options: this.groups(),\r\n optionLabel: 'name.display',\r\n optionValue: 'id',\r\n relations: [{ key: 'targetType', value: '1', action: 'show' }],\r\n },\r\n {\r\n key: 'role',\r\n label: this.transloco.translate('escalation.builder.select'),\r\n placeholder: this.transloco.translate(\r\n 'escalation.builder.enter-target-value',\r\n ),\r\n cssClass: 'mt-2 pt-3 border-t border-slate-200 w-full',\r\n required: true,\r\n type: 'select',\r\n options: this.roles(),\r\n group: this.hasGroupedRoles(),\r\n optionGroupLabel: 'label',\r\n optionGroupChildren: 'items',\r\n optionLabel: 'name.display',\r\n optionValue: 'value',\r\n relations: [{ key: 'targetType', value: '2', action: 'show' }],\r\n },\r\n ],\r\n }));\r\n\r\n private readonly slaSection = {\r\n key: 'slaSection',\r\n type: 'none',\r\n bodyClass: 'space-y-1',\r\n fields: [\r\n {\r\n key: 'sla',\r\n label: this.transloco.translate('escalation.builder.sla'),\r\n placeholder: this.transloco.translate('escalation.builder.enter-sla'),\r\n cssClass: 'w-full',\r\n required: true,\r\n },\r\n ],\r\n } as const;\r\n\r\n // Dynamic form configuration using linkedSignal\r\n // Automatically rebuilds when isEditingInitialNode changes\r\n nodeForm = linkedSignal<DynamicFormConfig>(() => {\r\n const sections: any[] = [this.baseNameFields];\r\n\r\n // Conditionally include approver and SLA sections based on isEditingInitialNode\r\n // Initial nodes only show name fields\r\n if (!this.isEditingInitialNode()) {\r\n sections.push(this.approverSection());\r\n sections.push(this.slaSection);\r\n }\r\n\r\n return {\r\n sections,\r\n layout: {},\r\n };\r\n });\r\n\r\n // Sample connection form configuration\r\n connectionForm = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'basic',\r\n label: this.transloco.translate('escalation.builder.basic-information'),\r\n type: 'none',\r\n cssClass: 'p-4',\r\n order: 1,\r\n columns: 2,\r\n fields: [\r\n {\r\n key: 'priority',\r\n label: this.transloco.translate('escalation.builder.priority'),\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n connectionFormulaConfig = signal({\r\n isProcessBuilder: true,\r\n });\r\n\r\n // Nodes currently in the flow\r\n steps = computed(() => {\r\n return this.escalationFacade.steps().map((step) => ({\r\n ...step,\r\n color: '#000000',\r\n }));\r\n });\r\n\r\n // Connections between nodes\r\n connections = computed(() => {\r\n return this.escalationFacade.connections().map((connection) => ({\r\n ...connection,\r\n from: connection.source,\r\n to: connection.target,\r\n }));\r\n });\r\n\r\n // Node Actions\r\n nodeActions = signal([\r\n {\r\n key: 'edit',\r\n icon: 'general.edit-05',\r\n variant: 'outlined',\r\n size: 'small',\r\n tooltip: this.transloco.translate('escalation.builder.edit'),\r\n },\r\n {\r\n key: 'delete',\r\n icon: 'general.trash-01',\r\n variant: 'outlined',\r\n size: 'small',\r\n severity: 'danger',\r\n tooltip: this.transloco.translate('escalation.builder.delete'),\r\n condition: (node: EscalationStepSchema) => !node.isInitial,\r\n },\r\n ]);\r\n\r\n constructor() {\r\n effect(() => {\r\n const escalation = this.escalation();\r\n if (escalation && escalation.isPublished !== undefined) {\r\n this.isPublished.set(escalation.isPublished);\r\n }\r\n });\r\n\r\n // Effect to watch selectedStep and patch form when it changes\r\n effect(() => {\r\n const step = this.selectedStep();\r\n\r\n if (step) {\r\n // Patch form with complete step data\r\n this.nodeFormControl.patchValue({\r\n name: step.name,\r\n targetType: step.targetType || '1',\r\n group: step.targetType === '1' ? parseInt(step.targetValue!) : null,\r\n role: step.targetType === '2' ? step.targetValue : null,\r\n sla: step.sla,\r\n });\r\n\r\n console.log('Form patched with step data:', step);\r\n }\r\n });\r\n }\r\n\r\n onNodeActionsEvent(event: NodeActionEvent) {\r\n console.log('Node action event:', event);\r\n }\r\n\r\n onPublishToggle(isPublished: boolean): void {\r\n this.escalationFacade.publishEscalation(isPublished).subscribe({\r\n error: () => {\r\n this.isPublished.set(!isPublished);\r\n },\r\n });\r\n }\r\n\r\n clearForm(): void {\r\n // Reset isEditingInitialNode flag\r\n this.isEditingInitialNode.set(false);\r\n\r\n // Reset form to default values\r\n this.nodeFormControl.reset({\r\n name: { en: '', ar: '' },\r\n targetType: '1',\r\n group: null,\r\n role: null,\r\n sla: 0,\r\n });\r\n\r\n console.log('Form cleared for new step');\r\n }\r\n\r\n onStructureAction(event: SBAction) {\r\n console.log('Structure action received:', event);\r\n\r\n switch (event.action) {\r\n case 'createNode':\r\n if (event.data) {\r\n // Get form values\r\n const formValue = this.nodeFormControl.value;\r\n\r\n // Prepare step payload without properties\r\n const stepPayload = {\r\n name: formValue.name || { en: 'New Step', ar: 'خطوة جديدة' },\r\n targetType: formValue.targetType,\r\n targetValue:\r\n formValue.targetType === '1' ? formValue.group : formValue.role,\r\n sla: formValue.sla || 0,\r\n };\r\n\r\n // Create step via facade\r\n this.escalationFacade.createStep(stepPayload).subscribe({\r\n next: () => {\r\n console.log('Step created successfully:', stepPayload);\r\n },\r\n error: (error) => {\r\n console.error('Failed to create step:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'startUpdating':\r\n if (event.data) {\r\n this.clearForm();\r\n\r\n const stepId = event.data.id;\r\n\r\n // Set the flag based on whether node is initial\r\n // This will trigger nodeForm to rebuild automatically via linkedSignal\r\n this.isEditingInitialNode.set(!!event.data.isInitial);\r\n\r\n // Load step data\r\n this.escalationFacade.loadStep(stepId);\r\n }\r\n break;\r\n\r\n case 'startCreating':\r\n // Reset form for new step\r\n this.clearForm();\r\n break;\r\n\r\n case 'updateNode':\r\n if (event.data) {\r\n // Get form values\r\n const formValue = this.nodeFormControl.value;\r\n const stepId = event.data.id;\r\n\r\n // Prepare step payload\r\n const stepPayload = {\r\n name: formValue.name || event.data.name,\r\n targetType: formValue.targetType,\r\n targetValue:\r\n formValue.targetType === '1' ? formValue.group : formValue.role,\r\n sla: formValue.sla || event.data.sla,\r\n };\r\n\r\n // Update step via facade\r\n this.escalationFacade.updateStep(stepId, stepPayload).subscribe({\r\n next: () => {\r\n console.log('Step updated successfully:', stepPayload);\r\n },\r\n error: (error) => {\r\n console.error('Failed to update step:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'deleteNode':\r\n if (event.data) {\r\n const nodeIdToDelete = event.data.id;\r\n this.confirmationService.confirmDelete({\r\n type: 'dialog',\r\n\r\n accept: () => {\r\n this.escalationFacade.deleteStep(nodeIdToDelete).subscribe({\r\n next: () => {\r\n console.log('Node deleted:', nodeIdToDelete);\r\n },\r\n error: (error) => {\r\n console.error('Failed to delete node:', error);\r\n },\r\n });\r\n },\r\n reject: () => {},\r\n });\r\n }\r\n break;\r\n\r\n case 'createConnection':\r\n if (event.data) {\r\n // Create connection in store\r\n const connectionPayload = {\r\n sourceStepId: event.data.from,\r\n targetStepId: event.data.to,\r\n priority: event.data.priority ?? 1,\r\n formula: event.data.formula ?? null,\r\n };\r\n this.escalationFacade.createConnection(connectionPayload).subscribe({\r\n next: () => {\r\n console.log('Connection created:', event.data);\r\n },\r\n error: (error) => {\r\n console.error('Failed to create connection:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'updateConnection':\r\n if (event.data) {\r\n // Update connection in store\r\n const connectionId = event.data.id;\r\n const updatePayload = {\r\n sourceStepId: event.data.from,\r\n targetStepId: event.data.to,\r\n priority: event.data.priority ?? 1,\r\n formula: event.data.formula ?? null,\r\n };\r\n this.escalationFacade\r\n .updateConnection(connectionId, updatePayload)\r\n .subscribe({\r\n next: () => {\r\n console.log('Connection updated:', event.data);\r\n },\r\n error: (error) => {\r\n console.error('Failed to update connection:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n case 'deleteConnection':\r\n if (event.data) {\r\n const connectionIdToDelete = event.data.id;\r\n // Delete connection from store\r\n this.escalationFacade\r\n .deleteConnection(connectionIdToDelete)\r\n .subscribe({\r\n next: () => {\r\n console.log('Connection deleted:', connectionIdToDelete);\r\n },\r\n error: (error) => {\r\n console.error('Failed to delete connection:', error);\r\n },\r\n });\r\n }\r\n break;\r\n\r\n default:\r\n console.warn('Unknown structure action:', event.action);\r\n }\r\n }\r\n}\r\n","<div class=\"h-full relative\" id=\"escalationCard\">\r\n @if (!loading()) {\r\n <mt-structure-builder\r\n class=\"flex-1\"\r\n [availableNodes]=\"availableNodes\"\r\n [connectionForm]=\"connectionForm()\"\r\n [connectionFormulaSchemaId]=\"connectionFormulaSchemaId()\"\r\n [connectionFormulaConfig]=\"connectionFormulaConfig()\"\r\n [nodeActions]=\"nodeActions()\"\r\n (nodeActionsEvent)=\"onNodeActionsEvent($event)\"\r\n [nodes]=\"steps()\"\r\n [connections]=\"connections()\"\r\n (action)=\"onStructureAction($event)\"\r\n [addModalType]=\"'drawer'\"\r\n [addModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\r\n [updateModalStyleClass]=\"'!w-[25rem] !absolute !shadow-none'\"\r\n [addModalHeader]=\"'escalation.builder.addStep' | transloco\"\r\n [updateModalHeader]=\"'escalation.builder.editStep' | transloco\"\r\n [appendTo]=\"'page-content'\"\r\n [nodeFields]=\"nodeFields()\"\r\n >\r\n <div flowContent>\r\n <div class=\"absolute top-4 end-4 z-10\">\r\n <div class=\"flex flex-col gap-2 w-80\">\r\n <mt-card>\r\n <div class=\"flex items-center gap-10\">\r\n <div class=\"flex items-center gap-2\">\r\n <mt-button [severity]=\"'secondary'\" icon=\"dev.dataflow-01\" />\r\n <label>{{\r\n \"escalation.builder.enableEscalation\" | transloco\r\n }}</label>\r\n </div>\r\n <mt-toggle-field\r\n [ngModel]=\"isPublished()\"\r\n (ngModelChange)=\"onPublishToggle($event)\"\r\n ></mt-toggle-field>\r\n </div>\r\n </mt-card>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-template\r\n #nodeDialog\r\n let-close=\"close\"\r\n let-save=\"save\"\r\n let-node=\"node\"\r\n >\r\n <div class=\"p-4\">\r\n @if (loadingStep()) {\r\n <!-- Loading skeleton -->\r\n <div class=\"space-y-4\">\r\n <!-- Form fields skeleton -->\r\n <div class=\"space-y-4\">\r\n <div>\r\n <p-skeleton\r\n width=\"8rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"8rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"10rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"3rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"6rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n <div>\r\n <p-skeleton\r\n width=\"4rem\"\r\n height=\"1rem\"\r\n styleClass=\"mb-2\"\r\n ></p-skeleton>\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"2.5rem\"\r\n borderRadius=\"0.5rem\"\r\n ></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <!-- Actual content - just the form, no tabs -->\r\n <mt-dynamic-form\r\n [formConfig]=\"nodeForm()\"\r\n [formControl]=\"nodeFormControl\"\r\n ></mt-dynamic-form>\r\n }\r\n </div>\r\n </ng-template>\r\n </mt-structure-builder>\r\n } @else {\r\n <p-skeleton width=\"100%\" height=\"50rem\" />\r\n }\r\n</div>\r\n","import { EscalationState } from './escalation/escalation.state';\r\n\r\nexport const ESCALATION_STATES = [EscalationState];\r\n\r\nexport * from './escalation';\r\n","// Re-export app state\r\nexport * from './app.state';\r\n\r\n// Re-export workflow state\r\nexport * from './escalation';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/escalation",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/escalation",
6
6
  "linkDirectory": true,
@@ -19,10 +19,10 @@
19
19
  "tailwindcss": "^4.1.17",
20
20
  "tailwindcss-primeui": "^0.6.1",
21
21
  "@ngxs/store": "^20.1.0",
22
- "@masterteam/icons": "^0.0.14",
23
- "@masterteam/components": "^0.0.116",
24
- "@masterteam/forms": "^0.0.56",
25
- "@masterteam/structure-builder": "^0.0.40"
22
+ "@masterteam/structure-builder": "^0.0.41",
23
+ "@masterteam/forms": "^0.0.59",
24
+ "@masterteam/components": "^0.0.124",
25
+ "@masterteam/icons": "^0.0.14"
26
26
  },
27
27
  "sideEffects": false,
28
28
  "exports": {