{"version":3,"sources":["src/app/shared/components/input-dialog/input-dialog.component.ts","src/app/shared/components/input-dialog/input-dialog.component.html"],"sourcesContent":["import { Component, ViewChild, Input, Output, EventEmitter, QueryList, ContentChildren, ElementRef, Injectable, inject } from '@angular/core'\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'\nimport { Subject } from 'rxjs'\n\nexport interface StepState {\n step: number\n state: any\n}\n\n\n\n@Injectable()\nexport class ButtonService {\n\n // Observable string sources\n private buttonSourceSource = new Subject()\n\n // Observable string streams\n buttonSource$ = this.buttonSourceSource.asObservable()\n buttonHTML(html: string) {\n this.buttonSourceSource.next(html)\n }\n}\n\n@Component({\n selector: 'input-dialog-step',\n template: '',\n standalone: true\n})\n\n\nexport class InputDialogStepComponent {\n element = inject(ElementRef)\n private buttonService = inject(ButtonService)\n\n @Input('button') set setButtonText(buttonHTML : string) {\n this.buttonHTML = buttonHTML\n this.buttonService.buttonHTML(buttonHTML)\n }\n @Input('checkValidity') checkValidity : () => boolean = () => true\n\n buttonHTML = ''\n}\n\n\n@Component({\n selector: 'app-input-dialog',\n templateUrl: './input-dialog.component.html',\n styleUrls: ['./input-dialog.component.scss'],\n providers: [ButtonService],\n standalone: true\n})\n\nexport class InputDialogComponent {\n private buttonService = inject(ButtonService)\n private modalService = inject(NgbModal)\n\n @Input('title') title : string = ''\n @Input('button') buttonHTML : string = ''\n @Output() stepChanged = new EventEmitter()\n @Output() cancelled = new EventEmitter()\n @ViewChild('inputModal') inputModal: any\n @ContentChildren(InputDialogStepComponent) steps!: QueryList\n\n stepsArray: InputDialogStepComponent[] = []\n currentStep: number = 0\n displayFooter: boolean = true\n state: any = null\n public activeModal: NgbActiveModal | undefined\n\n constructor() {\n const buttonService = this.buttonService;\n\n buttonService.buttonSource$.subscribe( buttonHTML => {\n this.buttonHTML = buttonHTML\n this.displayFooter = this.buttonHTML !== ''\n })\n }\n\n setupCurrentStep() {\n this.stepsArray[this.currentStep].element.nativeElement.classList.remove('d-none')\n this.buttonHTML = this.stepsArray[this.currentStep].buttonHTML ?? ''\n this.displayFooter = this.buttonHTML !== ''\n }\n\n showModal(state: any = null) {\n this.state = state\n this.currentStep = 0\n // tslint:disable-next-line\n this.activeModal = this.modalService.open(this.inputModal, {\n size: 'xl',\n backdrop : 'static',\n keyboard : false\n })\n this.steps.forEach( (step) => step.element.nativeElement.classList.add('d-none'))\n this.stepsArray = this.steps.toArray()\n this.setupCurrentStep()\n }\n\n advanceToNextStep() {\n if (this.stepsArray[this.currentStep]?.checkValidity()) {\n this.stepsArray[this.currentStep].element.nativeElement.classList.add('d-none')\n this.currentStep ++\n this.stepChanged.emit({\n step: this.currentStep + 1,\n state: this.state\n })\n if (this.currentStep === this.stepsArray.length) {\n this.activeModal!.close()\n } else {\n this.setupCurrentStep()\n }\n }\n }\n\n actionCancelled() {\n this.cancelled.emit()\n this.activeModal!.close()\n }\n}","\n
\n

{{title}}

\n \n
\n
\n \n
\n @if (displayFooter) {\n
\n \n \n
\n }\n
"],"names":["ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","actionCancelled","ɵɵtext","ɵɵelementEnd","advanceToNextStep","ɵɵadvance","ɵɵproperty","buttonHTML","ɵɵsanitizeHtml","_r1","ɵɵprojection","ɵɵtemplate","InputDialogComponent_ng_template_0_Conditional_6_Template","ɵɵtextInterpolate","title","ɵɵconditional","displayFooter","ButtonService","buttonSourceSource","Subject","buttonSource$","asObservable","html","next","factory","ɵfac","InputDialogStepComponent","element","inject","ElementRef","buttonService","setButtonText","checkValidity","selectors","inputs","ngContentSelectors","_c0","decls","vars","template","rf","ctx","InputDialogComponent","modalService","NgbModal","stepChanged","EventEmitter","cancelled","inputModal","steps","stepsArray","currentStep","state","activeModal","constructor","subscribe","setupCurrentStep","nativeElement","classList","remove","showModal","open","size","backdrop","keyboard","forEach","step","add","toArray","emit","length","close","contentQueries","dirIndex","consts","InputDialogComponent_ng_template_0_Template","ɵɵtemplateRefExtractor"],"mappings":";;uWCUIA,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,SAAA,CAAA,EAC0BC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,gBAAA,CAAiB,CAAA,CAAA,EAAEC,EAAA,EAAA,QAAA,EAAMC,EAAA,EAClFT,EAAA,EAAA,SAAA,CAAA,EAA8EC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAM,kBAAA,CAAmB,CAAA,CAAA,EAAED,EAAA,EAAS,qBAAhEE,EAAA,CAAA,EAAAC,EAAA,YAAAR,EAAAS,WAAAC,CAAA,qCAXzDd,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,KAAA,CAAA,EACEQ,EAAA,CAAA,EAASC,EAAA,EACjCT,EAAA,EAAA,SAAA,CAAA,EAA2DC,EAAA,QAAA,UAAA,CAAAC,EAAAa,CAAA,EAAA,IAAAX,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAAG,gBAAA,CAAiB,CAAA,CAAA,EACrFE,EAAA,EAAS,EAEbT,EAAA,EAAA,MAAA,CAAA,EACIgB,EAAA,CAAA,EACJP,EAAA,EACAQ,EAAA,EAAAC,EAAA,EAAA,EAAA,MAAA,CAAA,oBAP4BP,EAAA,CAAA,EAAAQ,EAAAf,EAAAgB,KAAA,EAO5BT,EAAA,CAAA,EAAAU,EAAAjB,EAAAkB,cAAA,EAAA,EAAA,GDGJ,IAAaC,GAAa,IAAA,CAApB,MAAOA,CAAa,CAGhBC,mBAAqB,IAAIC,EAGjCC,cAAgB,KAAKF,mBAAmBG,aAAY,EACpDd,WAAWe,EAAY,CACrB,KAAKJ,mBAAmBK,KAAKD,CAAI,CACnC,4CATWL,EAAa,6BAAbA,EAAaO,QAAbP,EAAaQ,SAAA,CAAA,SAAbR,CAAa,GAAA,EAmBbS,GAAwB,IAAA,CAA/B,MAAOA,CAAwB,CACnCC,QAAUC,EAAOC,CAAU,EACnBC,cAAgBF,EAAOX,CAAa,EAE5C,IAAqBc,cAAcxB,EAAmB,CACpD,KAAKA,WAAaA,EAClB,KAAKuB,cAAcvB,WAAWA,CAAU,CAC1C,CACwByB,cAAgCA,IAAM,GAE9DzB,WAAa,8CAVFmB,EAAwB,2BAAxBA,EAAwBO,UAAA,CAAA,CAAA,mBAAA,CAAA,EAAAC,OAAA,CAAAH,cAAA,CAAA,EAAA,SAAA,eAAA,EAAAC,cAAA,eAAA,EAAAG,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,QALtB9B,EAAA,CAAA,6BAKFgB,CAAwB,GAAA,EAsBxBgB,GAAoB,IAAA,CAA3B,MAAOA,CAAoB,CACvBZ,cAAgBF,EAAOX,CAAa,EACpC0B,aAAef,EAAOgB,CAAQ,EAEtB9B,MAAiB,GAChBP,WAAuB,GAC9BsC,YAAc,IAAIC,EAClBC,UAAY,IAAID,EACDE,WACkBC,MAE3CC,WAAyC,CAAA,EACzCC,YAAsB,EACtBnC,cAAyB,GACzBoC,MAAa,KACNC,YAEPC,aAAA,CACwB,KAAKxB,cAEbV,cAAcmC,UAAWhD,GAAa,CAClD,KAAKA,WAAaA,EAClB,KAAKS,cAAgB,KAAKT,aAAe,EAC3C,CAAC,CACH,CAEAiD,kBAAgB,CACd,KAAKN,WAAW,KAAKC,WAAW,EAAExB,QAAQ8B,cAAcC,UAAUC,OAAO,QAAQ,EACjF,KAAKpD,WAAa,KAAK2C,WAAW,KAAKC,WAAW,EAAE5C,YAAc,GAClE,KAAKS,cAAgB,KAAKT,aAAe,EAC3C,CAEAqD,UAAUR,EAAa,KAAI,CACzB,KAAKA,MAAQA,EACb,KAAKD,YAAc,EAEnB,KAAKE,YAAc,KAAKV,aAAakB,KAAK,KAAKb,WAAY,CACzDc,KAAM,KACNC,SAAW,SACXC,SAAW,GACZ,EACD,KAAKf,MAAMgB,QAAUC,GAASA,EAAKvC,QAAQ8B,cAAcC,UAAUS,IAAI,QAAQ,CAAC,EAChF,KAAKjB,WAAa,KAAKD,MAAMmB,QAAO,EACpC,KAAKZ,iBAAgB,CACvB,CAEApD,mBAAiB,CACX,KAAK8C,WAAW,KAAKC,WAAW,GAAGnB,cAAa,IAClD,KAAKkB,WAAW,KAAKC,WAAW,EAAExB,QAAQ8B,cAAcC,UAAUS,IAAI,QAAQ,EAC9E,KAAKhB,cACL,KAAKN,YAAYwB,KAAK,CACpBH,KAAM,KAAKf,YAAc,EACzBC,MAAO,KAAKA,MACb,EACG,KAAKD,cAAgB,KAAKD,WAAWoB,OACvC,KAAKjB,YAAakB,MAAK,EAEvB,KAAKf,iBAAgB,EAG3B,CAEAvD,iBAAe,CACb,KAAK8C,UAAUsB,KAAI,EACnB,KAAKhB,YAAakB,MAAK,CACzB,4CAjEW7B,EAAoB,2BAApBA,EAAoBT,UAAA,CAAA,CAAA,kBAAA,CAAA,EAAAuC,eAAA,SAAAhC,EAAAC,EAAAgC,EAAA,IAAAjC,EAAA,OASdd,EAAwB,CAAA,4PAb5B,CAACT,CAAa,CAAC,CAAA,EAAAkB,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,EAAAoC,OAAA,CAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,OAAA,SAAA,aAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,qBAAA,EAAA,QAAA,WAAA,CAAA,EAAAnC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,QCjD9B7B,EAAA,EAAAgE,EAAA,EAAA,EAAA,cAAA,KAAA,EAAAC,CAAA,6BDqDalC,CAAoB,GAAA","debug_id":"6acd9e80-0fb3-5038-bb61-b16527f2012b"}