{"version":3,"sources":["src/app/store/onboarding/onboarding.actions.ts","src/app/store/onboarding/types.ts","src/app/store/onboarding/onboarding.state.ts","src/app/store/onboarding/onboarding.state.module.ts"],"sourcesContent":["import { OnboardingContext, OnboardingStepKey } from './types';\n\nexport class ToggleSelectedUsecaseAction {\n static readonly type = '[Onboarding] Toggle Selected Usecase';\n constructor(public usecase: OnboardingStepKey) { }\n}\n\nexport class AddSelectedUsecaseAction {\n static readonly type = '[Onboarding] Add Selected Usecase';\n constructor(public usecase: OnboardingStepKey) { }\n}\n\nexport class RemoveSelectedUsecaseAction {\n static readonly type = '[Onboarding] Remove Selected Usecase';\n constructor(public usecase: OnboardingStepKey) { }\n}\n\nexport class NextStepAction {\n static readonly type = '[Onboarding] Next Step';\n}\n\n\nexport class PreviousStepAction {\n static readonly type = '[Onboarding] Previous Step';\n}\n\nexport class CompleteStepAction {\n static readonly type = '[Onboarding] Complete Step';\n constructor(public stepKey: OnboardingStepKey) { }\n}\n\nexport class SkipStepAction {\n static readonly type = '[Onboarding] Skip Step';\n constructor(public stepKey: OnboardingStepKey) { }\n}\n\nexport class SkipOnboardingAction {\n static readonly type = '[Onboarding] Skip Onboarding';\n}\n\nexport class SetOnboardingContextAction {\n static readonly type = '[Onboarding] Set Context'\n constructor(public contextKey: keyof OnboardingContext, public value: OnboardingContext[keyof OnboardingContext]) { }\n}\n\nexport class ResetOnboardingAction {\n static readonly type = '[Onboarding] Reset Onboarding'\n}\n","export enum OnboardingStepKey {\n USERINFO = 'userinfo',\n USECASES = 'usecases',\n INCIDENT_MANAGEMENT = 'incident-management',\n TASK_MANAGEMENT = 'task-management',\n EXTERNAL_COMMUNICATION = 'external-communication',\n PREVIEW_STATUSPAGE = 'preview-statuspage',\n INTERNAL_COMMUNICATION = 'internal-communication',\n MONITORING = 'service-monitoring',\n ALERTING = 'alerting',\n NOTIFICATIONS = 'notifications',\n COMPLETED = 'completed',\n}\n\nexport interface OnboardingStep {\n enabled: boolean;\n // Tracks whether a step fullfils are requirements to be completed.\n // (e.g. if the user has selected at least one usecase)\n completable?: boolean;\n skippedAt?: Date;\n completedAt?: Date;\n}\n\nexport interface OnboardingUsecase {\n key: OnboardingStepKey;\n title: string;\n description: string;\n icon: string;\n iconBgColorClass: string;\n iconColorClass: string;\n notDeselectable?: boolean;\n}\n\nexport interface OnboardingContext {\n teamId?: number;\n serviceId?: number;\n serviceName?: string;\n statuspageUrl?: string;\n}\n","import { Injectable } from '@angular/core';\nimport {\n Action,\n createSelector,\n NgxsOnInit,\n Selector,\n State,\n StateContext,\n} from '@ngxs/store';\nimport {\n AddSelectedUsecaseAction,\n CompleteStepAction,\n NextStepAction,\n RemoveSelectedUsecaseAction,\n ResetOnboardingAction,\n SetOnboardingContextAction,\n SkipOnboardingAction,\n SkipStepAction,\n ToggleSelectedUsecaseAction,\n} from './onboarding.actions';\nimport {\n OnboardingContext,\n OnboardingStep,\n OnboardingStepKey,\n OnboardingUsecase,\n} from './types';\n\nexport interface OnboardingStateModel {\n selectedUsecases: string[];\n steps: Record, OnboardingStep>;\n currentStepKey: OnboardingStepKey;\n availableUsecases: OnboardingUsecase[];\n context: OnboardingContext;\n}\n\nconst defaults: OnboardingStateModel = {\n selectedUsecases: [OnboardingStepKey.INCIDENT_MANAGEMENT],\n currentStepKey: OnboardingStepKey.USECASES,\n context: {},\n steps: {\n [OnboardingStepKey.USECASES]: {\n enabled: true,\n },\n [OnboardingStepKey.INCIDENT_MANAGEMENT]: {\n enabled: true,\n },\n [OnboardingStepKey.MONITORING]: {\n enabled: false,\n },\n [OnboardingStepKey.EXTERNAL_COMMUNICATION]: {\n enabled: false,\n },\n [OnboardingStepKey.PREVIEW_STATUSPAGE]: {\n enabled: false,\n },\n [OnboardingStepKey.TASK_MANAGEMENT]: {\n enabled: false,\n },\n [OnboardingStepKey.INTERNAL_COMMUNICATION]: {\n enabled: false,\n },\n [OnboardingStepKey.ALERTING]: {\n enabled: false,\n },\n [OnboardingStepKey.USERINFO]: {\n enabled: false,\n },\n [OnboardingStepKey.NOTIFICATIONS]: {\n enabled: true,\n },\n [OnboardingStepKey.COMPLETED]: {\n enabled: true,\n },\n },\n availableUsecases: [\n {\n key: OnboardingStepKey.INCIDENT_MANAGEMENT,\n title: 'Incident Management',\n description: 'Streamline incident response and resolution workflows',\n icon: 'pi-bolt',\n iconBgColorClass: 'bg-red-500/20',\n iconColorClass: 'text-red-400',\n notDeselectable: true,\n },\n {\n key: OnboardingStepKey.TASK_MANAGEMENT,\n title: 'Task Management',\n description: 'Assign roles and track incident tasks efficiently',\n icon: 'pi-check-square',\n iconBgColorClass: 'bg-amber-500/20',\n iconColorClass: 'text-amber-400',\n },\n {\n key: OnboardingStepKey.EXTERNAL_COMMUNICATION,\n title: 'External Communication',\n description:\n 'Keep your users informed with automated status pages and updates',\n icon: 'pi-megaphone',\n iconBgColorClass: 'bg-blue-500/20',\n iconColorClass: 'text-blue-400',\n },\n {\n key: OnboardingStepKey.INTERNAL_COMMUNICATION,\n title: 'Internal Communication',\n description:\n 'Coordinate responses and keep teams aligned during incidents',\n icon: 'pi-send',\n iconBgColorClass: 'bg-purple-500/20',\n iconColorClass: 'text-purple-400',\n },\n {\n key: OnboardingStepKey.MONITORING,\n title: 'Service Monitoring',\n description: 'Proactively detect and prevent service disruptions',\n icon: 'pi-wave-pulse',\n iconBgColorClass: 'bg-green-500/20',\n iconColorClass: 'text-green-400',\n },\n {\n key: OnboardingStepKey.ALERTING,\n title: 'Alert Integration',\n description:\n 'Connect external alert sources like Alertmanager for seamless incident creation',\n icon: 'pi-bell',\n iconBgColorClass: 'bg-orange-500/20',\n iconColorClass: 'text-orange-400',\n },\n ],\n};\n\n@State({\n name: 'onboarding',\n defaults,\n})\n@Injectable()\nexport class OnboardingState implements NgxsOnInit {\n ngxsOnInit(ctx: StateContext) {\n const state = ctx.getState();\n if (!state || Object.keys(state).length === 0) {\n ctx.dispatch(new ResetOnboardingAction());\n }\n }\n\n @Selector()\n static context(state: OnboardingStateModel) {\n return state.context;\n }\n\n @Selector()\n static selectedUsecases(state: OnboardingStateModel) {\n return state.selectedUsecases;\n }\n\n @Selector()\n static currentStep(state: OnboardingStateModel) {\n return [state.currentStepKey, state.steps[state.currentStepKey]];\n }\n\n @Selector()\n static availableUsecases(state: OnboardingStateModel) {\n return state.availableUsecases;\n }\n\n static isCompleted(stepId: OnboardingStepKey) {\n return createSelector([this], (state: OnboardingStateModel) => {\n return state.steps[stepId].completedAt !== undefined;\n });\n }\n\n @Selector()\n static progress(state: OnboardingStateModel) {\n const totalSteps =\n Object.values(state.steps).filter(s => s.enabled).length - 1;\n const completedSteps = Object.values(state.steps).filter(\n s =>\n s.enabled && (s.completedAt !== undefined || s.skippedAt !== undefined)\n ).length;\n\n return (completedSteps / totalSteps) * 100;\n }\n\n @Selector()\n static canSkip() {\n return true;\n }\n\n @Action(ResetOnboardingAction)\n resetOnboarding(ctx: StateContext) {\n ctx.setState(defaults);\n }\n\n @Action(SkipOnboardingAction)\n skipOnboarding(ctx: StateContext) {\n // patch all enabled steps with skippedAt\n const state = ctx.getState();\n const steps = Object.keys(state.steps).reduce(\n (acc, key) => {\n const step = state.steps[key as OnboardingStepKey];\n if (\n step.enabled &&\n !step.completedAt &&\n !step.skippedAt &&\n key !== OnboardingStepKey.COMPLETED\n ) {\n acc[key as OnboardingStepKey] = {\n ...step,\n skippedAt: new Date(),\n };\n }\n return acc;\n },\n {} as Record\n );\n\n ctx.patchState({\n steps: {\n ...state.steps,\n ...steps,\n },\n currentStepKey: OnboardingStepKey.COMPLETED,\n });\n }\n\n @Action(CompleteStepAction)\n completeStep(\n ctx: StateContext,\n { stepKey }: CompleteStepAction\n ) {\n const state = ctx.getState();\n ctx.patchState({\n steps: {\n ...state.steps,\n [stepKey]: {\n ...state.steps[stepKey],\n completedAt: new Date(),\n },\n },\n });\n\n return ctx.dispatch(new NextStepAction());\n }\n\n @Action(SkipStepAction)\n skipStep(\n ctx: StateContext,\n { stepKey }: SkipStepAction\n ) {\n const state = ctx.getState();\n ctx.patchState({\n steps: {\n ...state.steps,\n [stepKey]: {\n ...state.steps[stepKey],\n skippedAt: new Date(),\n },\n },\n });\n\n return ctx.dispatch(new NextStepAction());\n }\n\n @Action(ToggleSelectedUsecaseAction)\n toggleUsecase(\n ctx: StateContext,\n { usecase }: ToggleSelectedUsecaseAction\n ) {\n const state = ctx.getState();\n if (state.selectedUsecases.includes(usecase)) {\n this.unselectUsecase(ctx, { usecase });\n } else {\n this.selectUsecase(ctx, { usecase });\n }\n }\n\n @Action(AddSelectedUsecaseAction)\n selectUsecase(\n { getState, patchState }: StateContext,\n { usecase }: AddSelectedUsecaseAction\n ) {\n const state = getState();\n if (!state.selectedUsecases.includes(usecase)) {\n patchState({\n selectedUsecases: [...state.selectedUsecases, usecase],\n });\n }\n\n // Add the step for the selected usecase if it doesn't exist yet\n if (usecase === OnboardingStepKey.EXTERNAL_COMMUNICATION) {\n patchState({\n steps: {\n ...state.steps,\n [OnboardingStepKey.PREVIEW_STATUSPAGE]: {\n enabled: true,\n },\n [OnboardingStepKey.EXTERNAL_COMMUNICATION]: {\n enabled: true,\n },\n },\n });\n } else {\n patchState({\n steps: {\n ...state.steps,\n [usecase]: {\n enabled: true,\n },\n },\n });\n }\n }\n\n @Action(RemoveSelectedUsecaseAction)\n unselectUsecase(\n { getState, patchState }: StateContext,\n { usecase }: RemoveSelectedUsecaseAction\n ) {\n const state = getState();\n patchState({\n selectedUsecases: state.selectedUsecases.filter(u => u !== usecase),\n });\n\n if (usecase === OnboardingStepKey.EXTERNAL_COMMUNICATION) {\n patchState({\n steps: {\n ...state.steps,\n [OnboardingStepKey.PREVIEW_STATUSPAGE]: {\n enabled: false,\n },\n [OnboardingStepKey.EXTERNAL_COMMUNICATION]: {\n enabled: false,\n },\n },\n });\n } else {\n patchState({\n steps: {\n ...state.steps,\n [usecase]: {\n enabled: false,\n },\n },\n });\n }\n }\n\n @Action(NextStepAction)\n nextStep({ getState, patchState }: StateContext) {\n const state = getState();\n\n const stepKeys = Object.keys(state.steps) as OnboardingStepKey[];\n const currentIndex = stepKeys.indexOf(state.currentStepKey);\n\n for (let i = currentIndex + 1; i < stepKeys.length; i++) {\n const nextStepKey = stepKeys[i];\n if (state.steps[nextStepKey].enabled) {\n patchState({\n currentStepKey: nextStepKey,\n });\n break;\n }\n }\n }\n\n @Action(SetOnboardingContextAction)\n setOnboardingContext(\n ctx: StateContext,\n { contextKey, value }: SetOnboardingContextAction\n ) {\n ctx.patchState({\n context: {\n ...ctx.getState().context,\n [contextKey]: value,\n },\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { OnboardingState } from './onboarding.state';\n\n@NgModule({\n declarations: [],\n imports: [NgxsModule.forFeature([OnboardingState])],\n bootstrap: [],\n exports: [],\n})\nexport class OnboardingStateModule { }\n"],"names":["ToggleSelectedUsecaseAction","type","constructor","usecase","AddSelectedUsecaseAction","RemoveSelectedUsecaseAction","NextStepAction","CompleteStepAction","type","constructor","stepKey","SkipStepAction","SkipOnboardingAction","SetOnboardingContextAction","contextKey","value","ResetOnboardingAction","OnboardingStepKey","defaults","selectedUsecases","OnboardingStepKey","INCIDENT_MANAGEMENT","currentStepKey","USECASES","context","steps","enabled","MONITORING","EXTERNAL_COMMUNICATION","PREVIEW_STATUSPAGE","TASK_MANAGEMENT","INTERNAL_COMMUNICATION","ALERTING","USERINFO","NOTIFICATIONS","COMPLETED","availableUsecases","key","title","description","icon","iconBgColorClass","iconColorClass","notDeselectable","OnboardingState","ngxsOnInit","ctx","state","getState","Object","keys","length","dispatch","ResetOnboardingAction","currentStep","isCompleted","stepId","createSelector","completedAt","undefined","progress","totalSteps","values","filter","s","skippedAt","canSkip","resetOnboarding","setState","skipOnboarding","reduce","acc","step","__spreadProps","__spreadValues","Date","patchState","completeStep","stepKey","NextStepAction","skipStep","toggleUsecase","usecase","includes","unselectUsecase","selectUsecase","u","nextStep","stepKeys","currentIndex","indexOf","i","nextStepKey","setOnboardingContext","contextKey","value","factory","ɵfac","__decorate","Action","SkipOnboardingAction","CompleteStepAction","SkipStepAction","ToggleSelectedUsecaseAction","AddSelectedUsecaseAction","RemoveSelectedUsecaseAction","SetOnboardingContextAction","Selector","State","name","OnboardingStateModule","NgxsModule","forFeature","OnboardingState"],"mappings":"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","debug_id":"c3563466-13c2-5c9e-bdd9-14d7d0e1ec7f"}