Index: trip-planner-front/node_modules/.cache/babel-webpack/0ecccb2f228cc49af19dd8bb0faeae44.json
===================================================================
--- trip-planner-front/node_modules/.cache/babel-webpack/0ecccb2f228cc49af19dd8bb0faeae44.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/.cache/babel-webpack/0ecccb2f228cc49af19dd8bb0faeae44.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nfunction ProgressBar_div_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"div\", 4);\n  }\n\n  if (rf & 2) {\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵstyleProp(\"width\", ctx_r0.value + \"%\");\n  }\n}\n\nfunction ProgressBar_div_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 5);\n    i0.ɵɵtext(1);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r1 = i0.ɵɵnextContext();\n    i0.ɵɵstyleProp(\"display\", ctx_r1.value != null ? \"block\" : \"none\");\n    i0.ɵɵadvance(1);\n    i0.ɵɵtextInterpolate2(\"\", ctx_r1.value, \"\", ctx_r1.unit, \"\");\n  }\n}\n\nfunction ProgressBar_div_3_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 6);\n    i0.ɵɵelement(1, \"div\", 7);\n    i0.ɵɵelementEnd();\n  }\n}\n\nconst _c0 = function (a1, a2) {\n  return {\n    \"p-progressbar p-component\": true,\n    \"p-progressbar-determinate\": a1,\n    \"p-progressbar-indeterminate\": a2\n  };\n};\n\nclass ProgressBar {\n  constructor() {\n    this.showValue = true;\n    this.unit = '%';\n    this.mode = 'determinate';\n  }\n\n}\n\nProgressBar.ɵfac = function ProgressBar_Factory(t) {\n  return new (t || ProgressBar)();\n};\n\nProgressBar.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: ProgressBar,\n  selectors: [[\"p-progressBar\"]],\n  hostAttrs: [1, \"p-element\"],\n  inputs: {\n    value: \"value\",\n    showValue: \"showValue\",\n    style: \"style\",\n    styleClass: \"styleClass\",\n    unit: \"unit\",\n    mode: \"mode\"\n  },\n  decls: 4,\n  vars: 11,\n  consts: [[\"role\", \"progressbar\", \"aria-valuemin\", \"0\", \"aria-valuemax\", \"100\", 3, \"ngStyle\", \"ngClass\"], [\"class\", \"p-progressbar-value p-progressbar-value-animate\", \"style\", \"display:block\", 3, \"width\", 4, \"ngIf\"], [\"class\", \"p-progressbar-label\", 3, \"display\", 4, \"ngIf\"], [\"class\", \"p-progressbar-indeterminate-container\", 4, \"ngIf\"], [1, \"p-progressbar-value\", \"p-progressbar-value-animate\", 2, \"display\", \"block\"], [1, \"p-progressbar-label\"], [1, \"p-progressbar-indeterminate-container\"], [1, \"p-progressbar-value\", \"p-progressbar-value-animate\"]],\n  template: function ProgressBar_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵelementStart(0, \"div\", 0);\n      i0.ɵɵtemplate(1, ProgressBar_div_1_Template, 1, 2, \"div\", 1);\n      i0.ɵɵtemplate(2, ProgressBar_div_2_Template, 2, 4, \"div\", 2);\n      i0.ɵɵtemplate(3, ProgressBar_div_3_Template, 2, 0, \"div\", 3);\n      i0.ɵɵelementEnd();\n    }\n\n    if (rf & 2) {\n      i0.ɵɵclassMap(ctx.styleClass);\n      i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunction2(8, _c0, ctx.mode === \"determinate\", ctx.mode === \"indeterminate\"));\n      i0.ɵɵattribute(\"aria-valuenow\", ctx.value);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.mode === \"determinate\");\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.mode === \"determinate\" && ctx.showValue);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.mode === \"indeterminate\");\n    }\n  },\n  directives: [i1.NgStyle, i1.NgClass, i1.NgIf],\n  styles: [\".p-progressbar{position:relative;overflow:hidden}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none}.p-progressbar-determinate .p-progressbar-value-animate{transition:width 1s ease-in-out}.p-progressbar-determinate .p-progressbar-label{text-align:center;height:100%;width:100%;position:absolute;font-weight:bold}.p-progressbar-indeterminate .p-progressbar-value:before{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.p-progressbar-indeterminate .p-progressbar-value:after{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation-delay:1.15s}@keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}\\n\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBar, [{\n    type: Component,\n    args: [{\n      selector: 'p-progressBar',\n      template: `\n        <div [class]=\"styleClass\" [ngStyle]=\"style\" role=\"progressbar\" aria-valuemin=\"0\" [attr.aria-valuenow]=\"value\" aria-valuemax=\"100\"\n            [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': (mode === 'determinate'), 'p-progressbar-indeterminate': (mode === 'indeterminate')}\">\n            <div *ngIf=\"mode === 'determinate'\" class=\"p-progressbar-value p-progressbar-value-animate\" [style.width]=\"value + '%'\" style=\"display:block\"></div>\n            <div *ngIf=\"mode === 'determinate' && showValue\" class=\"p-progressbar-label\" [style.display]=\"value != null ? 'block' : 'none'\">{{value}}{{unit}}</div>\n            <div *ngIf=\"mode === 'indeterminate'\" class=\"p-progressbar-indeterminate-container\">\n                <div class=\"p-progressbar-value p-progressbar-value-animate\"></div>\n            </div>\n        </div>\n    `,\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      host: {\n        'class': 'p-element'\n      },\n      styles: [\".p-progressbar{position:relative;overflow:hidden}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none}.p-progressbar-determinate .p-progressbar-value-animate{transition:width 1s ease-in-out}.p-progressbar-determinate .p-progressbar-label{text-align:center;height:100%;width:100%;position:absolute;font-weight:bold}.p-progressbar-indeterminate .p-progressbar-value:before{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.p-progressbar-indeterminate .p-progressbar-value:after{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation-delay:1.15s}@keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}\\n\"]\n    }]\n  }], null, {\n    value: [{\n      type: Input\n    }],\n    showValue: [{\n      type: Input\n    }],\n    style: [{\n      type: Input\n    }],\n    styleClass: [{\n      type: Input\n    }],\n    unit: [{\n      type: Input\n    }],\n    mode: [{\n      type: Input\n    }]\n  });\n})();\n\nclass ProgressBarModule {}\n\nProgressBarModule.ɵfac = function ProgressBarModule_Factory(t) {\n  return new (t || ProgressBarModule)();\n};\n\nProgressBarModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: ProgressBarModule\n});\nProgressBarModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [[CommonModule]]\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBarModule, [{\n    type: NgModule,\n    args: [{\n      imports: [CommonModule],\n      exports: [ProgressBar],\n      declarations: [ProgressBar]\n    }]\n  }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { ProgressBar, ProgressBarModule };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-progressbar.mjs"],"names":["i0","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","NgModule","i1","CommonModule","ProgressBar","constructor","showValue","unit","mode","ɵfac","ɵcmp","NgStyle","NgClass","NgIf","type","args","selector","template","changeDetection","OnPush","encapsulation","None","host","styles","value","style","styleClass","ProgressBarModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"AAAA,OAAO,KAAKA,EAAZ,MAAoB,eAApB;AACA,SAASC,SAAT,EAAoBC,uBAApB,EAA6CC,iBAA7C,EAAgEC,KAAhE,EAAuEC,QAAvE,QAAuF,eAAvF;AACA,OAAO,KAAKC,EAAZ,MAAoB,iBAApB;AACA,SAASC,YAAT,QAA6B,iBAA7B;;;;AAS8FP,IAAAA,EAIlF,uB;;;;mBAJkFA,E;AAAAA,IAAAA,EAIU,yC;;;;;;AAJVA,IAAAA,EAKlF,4B;AALkFA,IAAAA,EAK8C,U;AAL9CA,IAAAA,EAK+D,e;;;;mBAL/DA,E;AAAAA,IAAAA,EAKL,gE;AALKA,IAAAA,EAK8C,a;AAL9CA,IAAAA,EAK8C,0D;;;;;;AAL9CA,IAAAA,EAMlF,4B;AANkFA,IAAAA,EAO9E,uB;AAP8EA,IAAAA,EAQlF,e;;;;;;;;;;;;AAfZ,MAAMQ,WAAN,CAAkB;AACdC,EAAAA,WAAW,GAAG;AACV,SAAKC,SAAL,GAAiB,IAAjB;AACA,SAAKC,IAAL,GAAY,GAAZ;AACA,SAAKC,IAAL,GAAY,aAAZ;AACH;;AALa;;AAOlBJ,WAAW,CAACK,IAAZ;AAAA,mBAAwGL,WAAxG;AAAA;;AACAA,WAAW,CAACM,IAAZ,kBAD8Fd,EAC9F;AAAA,QAA4FQ,WAA5F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAD8FR,MAAAA,EAEtF,4BADR;AAD8FA,MAAAA,EAIlF,0DAHZ;AAD8FA,MAAAA,EAKlF,0DAJZ;AAD8FA,MAAAA,EAMlF,0DALZ;AAD8FA,MAAAA,EAStF,eARR;AAAA;;AAAA;AAD8FA,MAAAA,EAEjF,2BADb;AAD8FA,MAAAA,EAE5D,6CAF4DA,EAE5D,mFADlC;AAD8FA,MAAAA,EAEL,wCADzF;AAD8FA,MAAAA,EAI5E,aAHlB;AAD8FA,MAAAA,EAI5E,+CAHlB;AAD8FA,MAAAA,EAK5E,aAJlB;AAD8FA,MAAAA,EAK5E,gEAJlB;AAD8FA,MAAAA,EAM5E,aALlB;AAD8FA,MAAAA,EAM5E,iDALlB;AAAA;AAAA;AAAA,eAS2qCM,EAAE,CAACS,OAT9qC,EAS6uCT,EAAE,CAACU,OAThvC,EASwzCV,EAAE,CAACW,IAT3zC;AAAA;AAAA;AAAA;AAAA;;AAUA;AAAA,qDAX8FjB,EAW9F,mBAA2FQ,WAA3F,EAAoH,CAAC;AACzGU,IAAAA,IAAI,EAAEjB,SADmG;AAEzGkB,IAAAA,IAAI,EAAE,CAAC;AAAEC,MAAAA,QAAQ,EAAE,eAAZ;AAA6BC,MAAAA,QAAQ,EAAG;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KATmB;AASZC,MAAAA,eAAe,EAAEpB,uBAAuB,CAACqB,MAT7B;AASqCC,MAAAA,aAAa,EAAErB,iBAAiB,CAACsB,IATtE;AAS4EC,MAAAA,IAAI,EAAE;AAC7E,iBAAS;AADoE,OATlF;AAWIC,MAAAA,MAAM,EAAE,CAAC,mnCAAD;AAXZ,KAAD;AAFmG,GAAD,CAApH,QAc4B;AAAEC,IAAAA,KAAK,EAAE,CAAC;AACtBV,MAAAA,IAAI,EAAEd;AADgB,KAAD,CAAT;AAEZM,IAAAA,SAAS,EAAE,CAAC;AACZQ,MAAAA,IAAI,EAAEd;AADM,KAAD,CAFC;AAIZyB,IAAAA,KAAK,EAAE,CAAC;AACRX,MAAAA,IAAI,EAAEd;AADE,KAAD,CAJK;AAMZ0B,IAAAA,UAAU,EAAE,CAAC;AACbZ,MAAAA,IAAI,EAAEd;AADO,KAAD,CANA;AAQZO,IAAAA,IAAI,EAAE,CAAC;AACPO,MAAAA,IAAI,EAAEd;AADC,KAAD,CARM;AAUZQ,IAAAA,IAAI,EAAE,CAAC;AACPM,MAAAA,IAAI,EAAEd;AADC,KAAD;AAVM,GAd5B;AAAA;;AA2BA,MAAM2B,iBAAN,CAAwB;;AAExBA,iBAAiB,CAAClB,IAAlB;AAAA,mBAA8GkB,iBAA9G;AAAA;;AACAA,iBAAiB,CAACC,IAAlB,kBAzC8FhC,EAyC9F;AAAA,QAA+G+B;AAA/G;AACAA,iBAAiB,CAACE,IAAlB,kBA1C8FjC,EA0C9F;AAAA,YAA4I,CAACO,YAAD,CAA5I;AAAA;;AACA;AAAA,qDA3C8FP,EA2C9F,mBAA2F+B,iBAA3F,EAA0H,CAAC;AAC/Gb,IAAAA,IAAI,EAAEb,QADyG;AAE/Gc,IAAAA,IAAI,EAAE,CAAC;AACCe,MAAAA,OAAO,EAAE,CAAC3B,YAAD,CADV;AAEC4B,MAAAA,OAAO,EAAE,CAAC3B,WAAD,CAFV;AAGC4B,MAAAA,YAAY,EAAE,CAAC5B,WAAD;AAHf,KAAD;AAFyG,GAAD,CAA1H;AAAA;AASA;AACA;AACA;;;AAEA,SAASA,WAAT,EAAsBuB,iBAAtB","sourcesContent":["import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass ProgressBar {\n    constructor() {\n        this.showValue = true;\n        this.unit = '%';\n        this.mode = 'determinate';\n    }\n}\nProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component });\nProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ProgressBar, selector: \"p-progressBar\", inputs: { value: \"value\", showValue: \"showValue\", style: \"style\", styleClass: \"styleClass\", unit: \"unit\", mode: \"mode\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n        <div [class]=\"styleClass\" [ngStyle]=\"style\" role=\"progressbar\" aria-valuemin=\"0\" [attr.aria-valuenow]=\"value\" aria-valuemax=\"100\"\n            [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': (mode === 'determinate'), 'p-progressbar-indeterminate': (mode === 'indeterminate')}\">\n            <div *ngIf=\"mode === 'determinate'\" class=\"p-progressbar-value p-progressbar-value-animate\" [style.width]=\"value + '%'\" style=\"display:block\"></div>\n            <div *ngIf=\"mode === 'determinate' && showValue\" class=\"p-progressbar-label\" [style.display]=\"value != null ? 'block' : 'none'\">{{value}}{{unit}}</div>\n            <div *ngIf=\"mode === 'indeterminate'\" class=\"p-progressbar-indeterminate-container\">\n                <div class=\"p-progressbar-value p-progressbar-value-animate\"></div>\n            </div>\n        </div>\n    `, isInline: true, styles: [\".p-progressbar{position:relative;overflow:hidden}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none}.p-progressbar-determinate .p-progressbar-value-animate{transition:width 1s ease-in-out}.p-progressbar-determinate .p-progressbar-label{text-align:center;height:100%;width:100%;position:absolute;font-weight:bold}.p-progressbar-indeterminate .p-progressbar-value:before{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.p-progressbar-indeterminate .p-progressbar-value:after{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation-delay:1.15s}@keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}\\n\"], directives: [{ type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ProgressBar, decorators: [{\n            type: Component,\n            args: [{ selector: 'p-progressBar', template: `\n        <div [class]=\"styleClass\" [ngStyle]=\"style\" role=\"progressbar\" aria-valuemin=\"0\" [attr.aria-valuenow]=\"value\" aria-valuemax=\"100\"\n            [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': (mode === 'determinate'), 'p-progressbar-indeterminate': (mode === 'indeterminate')}\">\n            <div *ngIf=\"mode === 'determinate'\" class=\"p-progressbar-value p-progressbar-value-animate\" [style.width]=\"value + '%'\" style=\"display:block\"></div>\n            <div *ngIf=\"mode === 'determinate' && showValue\" class=\"p-progressbar-label\" [style.display]=\"value != null ? 'block' : 'none'\">{{value}}{{unit}}</div>\n            <div *ngIf=\"mode === 'indeterminate'\" class=\"p-progressbar-indeterminate-container\">\n                <div class=\"p-progressbar-value p-progressbar-value-animate\"></div>\n            </div>\n        </div>\n    `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n                        'class': 'p-element'\n                    }, styles: [\".p-progressbar{position:relative;overflow:hidden}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none}.p-progressbar-determinate .p-progressbar-value-animate{transition:width 1s ease-in-out}.p-progressbar-determinate .p-progressbar-label{text-align:center;height:100%;width:100%;position:absolute;font-weight:bold}.p-progressbar-indeterminate .p-progressbar-value:before{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.p-progressbar-indeterminate .p-progressbar-value:after{content:\\\"\\\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation-delay:1.15s}@keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}\\n\"] }]\n        }], propDecorators: { value: [{\n                type: Input\n            }], showValue: [{\n                type: Input\n            }], style: [{\n                type: Input\n            }], styleClass: [{\n                type: Input\n            }], unit: [{\n                type: Input\n            }], mode: [{\n                type: Input\n            }] } });\nclass ProgressBarModule {\n}\nProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ProgressBarModule, declarations: [ProgressBar], imports: [CommonModule], exports: [ProgressBar] });\nProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ProgressBarModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ProgressBarModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule],\n                    exports: [ProgressBar],\n                    declarations: [ProgressBar]\n                }]\n        }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ProgressBar, ProgressBarModule };\n"]},"metadata":{},"sourceType":"module"}
Index: trip-planner-front/node_modules/.cache/babel-webpack/b54471a266e415077075d24aa9478cd0.json
===================================================================
--- trip-planner-front/node_modules/.cache/babel-webpack/b54471a266e415077075d24aa9478cd0.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/.cache/babel-webpack/b54471a266e415077075d24aa9478cd0.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@angular/router';\nimport { RouterModule } from '@angular/router';\nimport * as i3 from 'primeng/tooltip';\nimport { TooltipModule } from 'primeng/tooltip';\n\nfunction Steps_li_2_a_2_span_3_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"span\", 11);\n    i0.ɵɵtext(1);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const item_r1 = i0.ɵɵnextContext(2).$implicit;\n    i0.ɵɵadvance(1);\n    i0.ɵɵtextInterpolate(item_r1.label);\n  }\n}\n\nfunction Steps_li_2_a_2_ng_template_4_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"span\", 12);\n  }\n\n  if (rf & 2) {\n    const item_r1 = i0.ɵɵnextContext(2).$implicit;\n    i0.ɵɵproperty(\"innerHTML\", item_r1.label, i0.ɵɵsanitizeHtml);\n  }\n}\n\nconst _c0 = function () {\n  return {\n    exact: false\n  };\n};\n\nfunction Steps_li_2_a_2_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r14 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"a\", 7);\n    i0.ɵɵlistener(\"click\", function Steps_li_2_a_2_Template_a_click_0_listener($event) {\n      i0.ɵɵrestoreView(_r14);\n      const ctx_r13 = i0.ɵɵnextContext();\n      const item_r1 = ctx_r13.$implicit;\n      const i_r2 = ctx_r13.index;\n      const ctx_r12 = i0.ɵɵnextContext();\n      return ctx_r12.itemClick($event, item_r1, i_r2);\n    })(\"keydown.enter\", function Steps_li_2_a_2_Template_a_keydown_enter_0_listener($event) {\n      i0.ɵɵrestoreView(_r14);\n      const ctx_r16 = i0.ɵɵnextContext();\n      const item_r1 = ctx_r16.$implicit;\n      const i_r2 = ctx_r16.index;\n      const ctx_r15 = i0.ɵɵnextContext();\n      return ctx_r15.itemClick($event, item_r1, i_r2);\n    });\n    i0.ɵɵelementStart(1, \"span\", 8);\n    i0.ɵɵtext(2);\n    i0.ɵɵelementEnd();\n    i0.ɵɵtemplate(3, Steps_li_2_a_2_span_3_Template, 2, 1, \"span\", 9);\n    i0.ɵɵtemplate(4, Steps_li_2_a_2_ng_template_4_Template, 1, 1, \"ng-template\", null, 10, i0.ɵɵtemplateRefExtractor);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const _r8 = i0.ɵɵreference(5);\n\n    const ctx_r17 = i0.ɵɵnextContext();\n    const item_r1 = ctx_r17.$implicit;\n    const i_r2 = ctx_r17.index;\n    const ctx_r4 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"routerLink\", item_r1.routerLink)(\"queryParams\", item_r1.queryParams)(\"routerLinkActive\", \"p-menuitem-link-active\")(\"routerLinkActiveOptions\", item_r1.routerLinkActiveOptions || i0.ɵɵpureFunction0(16, _c0))(\"fragment\", item_r1.fragment)(\"queryParamsHandling\", item_r1.queryParamsHandling)(\"preserveFragment\", item_r1.preserveFragment)(\"skipLocationChange\", item_r1.skipLocationChange)(\"replaceUrl\", item_r1.replaceUrl)(\"state\", item_r1.state);\n    i0.ɵɵattribute(\"target\", item_r1.target)(\"id\", item_r1.id)(\"tabindex\", item_r1.disabled || ctx_r4.readonly ? null : item_r1.tabindex ? item_r1.tabindex : \"0\");\n    i0.ɵɵadvance(2);\n    i0.ɵɵtextInterpolate(i_r2 + 1);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", item_r1.escape !== false)(\"ngIfElse\", _r8);\n  }\n}\n\nfunction Steps_li_2_ng_template_3_span_3_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"span\", 11);\n    i0.ɵɵtext(1);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const item_r1 = i0.ɵɵnextContext(2).$implicit;\n    i0.ɵɵadvance(1);\n    i0.ɵɵtextInterpolate(item_r1.label);\n  }\n}\n\nfunction Steps_li_2_ng_template_3_ng_template_4_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"span\", 12);\n  }\n\n  if (rf & 2) {\n    const item_r1 = i0.ɵɵnextContext(2).$implicit;\n    i0.ɵɵproperty(\"innerHTML\", item_r1.label, i0.ɵɵsanitizeHtml);\n  }\n}\n\nfunction Steps_li_2_ng_template_3_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r25 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"a\", 13);\n    i0.ɵɵlistener(\"click\", function Steps_li_2_ng_template_3_Template_a_click_0_listener($event) {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r24 = i0.ɵɵnextContext();\n      const item_r1 = ctx_r24.$implicit;\n      const i_r2 = ctx_r24.index;\n      const ctx_r23 = i0.ɵɵnextContext();\n      return ctx_r23.itemClick($event, item_r1, i_r2);\n    })(\"keydown.enter\", function Steps_li_2_ng_template_3_Template_a_keydown_enter_0_listener($event) {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r27 = i0.ɵɵnextContext();\n      const item_r1 = ctx_r27.$implicit;\n      const i_r2 = ctx_r27.index;\n      const ctx_r26 = i0.ɵɵnextContext();\n      return ctx_r26.itemClick($event, item_r1, i_r2);\n    });\n    i0.ɵɵelementStart(1, \"span\", 8);\n    i0.ɵɵtext(2);\n    i0.ɵɵelementEnd();\n    i0.ɵɵtemplate(3, Steps_li_2_ng_template_3_span_3_Template, 2, 1, \"span\", 9);\n    i0.ɵɵtemplate(4, Steps_li_2_ng_template_3_ng_template_4_Template, 1, 1, \"ng-template\", null, 14, i0.ɵɵtemplateRefExtractor);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const _r19 = i0.ɵɵreference(5);\n\n    const ctx_r28 = i0.ɵɵnextContext();\n    const item_r1 = ctx_r28.$implicit;\n    const i_r2 = ctx_r28.index;\n    const ctx_r6 = i0.ɵɵnextContext();\n    i0.ɵɵattribute(\"href\", item_r1.url, i0.ɵɵsanitizeUrl)(\"target\", item_r1.target)(\"id\", item_r1.id)(\"tabindex\", item_r1.disabled || i_r2 !== ctx_r6.activeIndex && ctx_r6.readonly ? null : item_r1.tabindex ? item_r1.tabindex : \"0\");\n    i0.ɵɵadvance(2);\n    i0.ɵɵtextInterpolate(i_r2 + 1);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", item_r1.escape !== false)(\"ngIfElse\", _r19);\n  }\n}\n\nconst _c1 = function (a0, a1) {\n  return {\n    \"p-highlight p-steps-current\": a0,\n    \"p-disabled\": a1\n  };\n};\n\nfunction Steps_li_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"li\", 3, 4);\n    i0.ɵɵtemplate(2, Steps_li_2_a_2_Template, 6, 17, \"a\", 5);\n    i0.ɵɵtemplate(3, Steps_li_2_ng_template_3_Template, 6, 7, \"ng-template\", null, 6, i0.ɵɵtemplateRefExtractor);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const item_r1 = ctx.$implicit;\n    const i_r2 = ctx.index;\n\n    const _r5 = i0.ɵɵreference(4);\n\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵclassMap(item_r1.styleClass);\n    i0.ɵɵproperty(\"ngStyle\", item_r1.style)(\"tooltipOptions\", item_r1.tooltipOptions)(\"ngClass\", i0.ɵɵpureFunction2(9, _c1, ctx_r0.isActive(item_r1, i_r2), item_r1.disabled || ctx_r0.readonly && !ctx_r0.isActive(item_r1, i_r2)));\n    i0.ɵɵattribute(\"aria-selected\", i_r2 === ctx_r0.activeIndex)(\"aria-expanded\", i_r2 === ctx_r0.activeIndex);\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"ngIf\", ctx_r0.isClickableRouterLink(item_r1))(\"ngIfElse\", _r5);\n  }\n}\n\nconst _c2 = function (a1) {\n  return {\n    \"p-steps p-component\": true,\n    \"p-readonly\": a1\n  };\n};\n\nclass Steps {\n  constructor(router, route, cd) {\n    this.router = router;\n    this.route = route;\n    this.cd = cd;\n    this.activeIndex = 0;\n    this.readonly = true;\n    this.activeIndexChange = new EventEmitter();\n  }\n\n  ngOnInit() {\n    this.subscription = this.router.events.subscribe(() => this.cd.markForCheck());\n  }\n\n  itemClick(event, item, i) {\n    if (this.readonly || item.disabled) {\n      event.preventDefault();\n      return;\n    }\n\n    this.activeIndexChange.emit(i);\n\n    if (!item.url) {\n      event.preventDefault();\n    }\n\n    if (item.command) {\n      item.command({\n        originalEvent: event,\n        item: item,\n        index: i\n      });\n    }\n  }\n\n  isClickableRouterLink(item) {\n    return item.routerLink && !this.readonly && !item.disabled;\n  }\n\n  isActive(item, index) {\n    if (item.routerLink) return this.router.isActive(item.routerLink, false) || this.router.isActive(this.router.createUrlTree([item.routerLink], {\n      relativeTo: this.route\n    }).toString(), false);else return index === this.activeIndex;\n  }\n\n  ngOnDestroy() {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n}\n\nSteps.ɵfac = function Steps_Factory(t) {\n  return new (t || Steps)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nSteps.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: Steps,\n  selectors: [[\"p-steps\"]],\n  hostAttrs: [1, \"p-element\"],\n  inputs: {\n    activeIndex: \"activeIndex\",\n    model: \"model\",\n    readonly: \"readonly\",\n    style: \"style\",\n    styleClass: \"styleClass\"\n  },\n  outputs: {\n    activeIndexChange: \"activeIndexChange\"\n  },\n  decls: 3,\n  vars: 7,\n  consts: [[3, \"ngClass\", \"ngStyle\"], [\"role\", \"tablist\"], [\"class\", \"p-steps-item\", \"role\", \"tab\", \"pTooltip\", \"\", 3, \"ngStyle\", \"class\", \"tooltipOptions\", \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"tab\", \"pTooltip\", \"\", 1, \"p-steps-item\", 3, \"ngStyle\", \"tooltipOptions\", \"ngClass\"], [\"menuitem\", \"\"], [\"role\", \"presentation\", \"class\", \"p-menuitem-link\", 3, \"routerLink\", \"queryParams\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"fragment\", \"queryParamsHandling\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"state\", \"click\", \"keydown.enter\", 4, \"ngIf\", \"ngIfElse\"], [\"elseBlock\", \"\"], [\"role\", \"presentation\", 1, \"p-menuitem-link\", 3, \"routerLink\", \"queryParams\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"fragment\", \"queryParamsHandling\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"state\", \"click\", \"keydown.enter\"], [1, \"p-steps-number\"], [\"class\", \"p-steps-title\", 4, \"ngIf\", \"ngIfElse\"], [\"htmlLabel\", \"\"], [1, \"p-steps-title\"], [1, \"p-steps-title\", 3, \"innerHTML\"], [\"role\", \"presentation\", 1, \"p-menuitem-link\", 3, \"click\", \"keydown.enter\"], [\"htmlRouteLabel\", \"\"]],\n  template: function Steps_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵelementStart(0, \"div\", 0);\n      i0.ɵɵelementStart(1, \"ul\", 1);\n      i0.ɵɵtemplate(2, Steps_li_2_Template, 5, 12, \"li\", 2);\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n    }\n\n    if (rf & 2) {\n      i0.ɵɵclassMap(ctx.styleClass);\n      i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(5, _c2, ctx.readonly))(\"ngStyle\", ctx.style);\n      i0.ɵɵadvance(2);\n      i0.ɵɵproperty(\"ngForOf\", ctx.model);\n    }\n  },\n  directives: [i2.NgClass, i2.NgStyle, i2.NgForOf, i3.Tooltip, i2.NgIf, i1.RouterLinkWithHref, i1.RouterLinkActive],\n  styles: [\".p-steps{position:relative}.p-steps ul{padding:0;margin:0;list-style-type:none;display:flex}.p-steps-item{position:relative;display:flex;justify-content:center;flex:1 1 auto}.p-steps-item .p-menuitem-link{display:inline-flex;flex-direction:column;align-items:center;overflow:hidden;text-decoration:none}.p-steps.p-steps-readonly .p-steps-item{cursor:auto}.p-steps-item.p-steps-current .p-menuitem-link{cursor:default}.p-steps-title{white-space:nowrap}.p-steps-number{display:flex;align-items:center;justify-content:center}.p-steps-title{display:block}\\n\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Steps, [{\n    type: Component,\n    args: [{\n      selector: 'p-steps',\n      template: `\n        <div [ngClass]=\"{'p-steps p-component':true,'p-readonly':readonly}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <ul role=\"tablist\">\n                <li *ngFor=\"let item of model; let i = index\" class=\"p-steps-item\" #menuitem [ngStyle]=\"item.style\" [class]=\"item.styleClass\" role=\"tab\" [attr.aria-selected]=\"i === activeIndex\" [attr.aria-expanded]=\"i === activeIndex\" pTooltip [tooltipOptions]=\"item.tooltipOptions\"\n                    [ngClass]=\"{'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i))}\">\n                    <a *ngIf=\"isClickableRouterLink(item); else elseBlock\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" role=\"presentation\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\" class=\"p-menuitem-link\"\n                        (click)=\"itemClick($event, item, i)\" (keydown.enter)=\"itemClick($event, item, i)\" [attr.target]=\"item.target\" [attr.id]=\"item.id\" [attr.tabindex]=\"item.disabled || readonly ? null : (item.tabindex ? item.tabindex : '0')\"\n                        [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\">\n                        <span class=\"p-steps-number\">{{i + 1}}</span>\n                        <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n                        <ng-template #htmlLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n                    </a>\n                    <ng-template #elseBlock>\n                        <a [attr.href]=\"item.url\" class=\"p-menuitem-link\" role=\"presentation\" (click)=\"itemClick($event, item, i)\" (keydown.enter)=\"itemClick($event, item, i)\" [attr.target]=\"item.target\" [attr.id]=\"item.id\"\n                            [attr.tabindex]=\"item.disabled||(i !== activeIndex && readonly) ? null : (item.tabindex ? item.tabindex : '0')\">\n                            <span class=\"p-steps-number\">{{i + 1}}</span>\n                            <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n                            <ng-template #htmlRouteLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n                        </a>\n                    </ng-template>\n                </li>\n            </ul>\n        </div>\n    `,\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      host: {\n        'class': 'p-element'\n      },\n      styles: [\".p-steps{position:relative}.p-steps ul{padding:0;margin:0;list-style-type:none;display:flex}.p-steps-item{position:relative;display:flex;justify-content:center;flex:1 1 auto}.p-steps-item .p-menuitem-link{display:inline-flex;flex-direction:column;align-items:center;overflow:hidden;text-decoration:none}.p-steps.p-steps-readonly .p-steps-item{cursor:auto}.p-steps-item.p-steps-current .p-menuitem-link{cursor:default}.p-steps-title{white-space:nowrap}.p-steps-number{display:flex;align-items:center;justify-content:center}.p-steps-title{display:block}\\n\"]\n    }]\n  }], function () {\n    return [{\n      type: i1.Router\n    }, {\n      type: i1.ActivatedRoute\n    }, {\n      type: i0.ChangeDetectorRef\n    }];\n  }, {\n    activeIndex: [{\n      type: Input\n    }],\n    model: [{\n      type: Input\n    }],\n    readonly: [{\n      type: Input\n    }],\n    style: [{\n      type: Input\n    }],\n    styleClass: [{\n      type: Input\n    }],\n    activeIndexChange: [{\n      type: Output\n    }]\n  });\n})();\n\nclass StepsModule {}\n\nStepsModule.ɵfac = function StepsModule_Factory(t) {\n  return new (t || StepsModule)();\n};\n\nStepsModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: StepsModule\n});\nStepsModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [[CommonModule, RouterModule, TooltipModule], RouterModule, TooltipModule]\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StepsModule, [{\n    type: NgModule,\n    args: [{\n      imports: [CommonModule, RouterModule, TooltipModule],\n      exports: [Steps, RouterModule, TooltipModule],\n      declarations: [Steps]\n    }]\n  }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { Steps, StepsModule };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-steps.mjs"],"names":["i0","EventEmitter","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","NgModule","i2","CommonModule","i1","RouterModule","i3","TooltipModule","Steps","constructor","router","route","cd","activeIndex","readonly","activeIndexChange","ngOnInit","subscription","events","subscribe","markForCheck","itemClick","event","item","i","disabled","preventDefault","emit","url","command","originalEvent","index","isClickableRouterLink","routerLink","isActive","createUrlTree","relativeTo","toString","ngOnDestroy","unsubscribe","ɵfac","Router","ActivatedRoute","ChangeDetectorRef","ɵcmp","NgClass","NgStyle","NgForOf","Tooltip","NgIf","RouterLinkWithHref","RouterLinkActive","type","args","selector","template","changeDetection","OnPush","encapsulation","None","host","styles","model","style","styleClass","StepsModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@angular/router';\nimport { RouterModule } from '@angular/router';\nimport * as i3 from 'primeng/tooltip';\nimport { TooltipModule } from 'primeng/tooltip';\n\nclass Steps {\n    constructor(router, route, cd) {\n        this.router = router;\n        this.route = route;\n        this.cd = cd;\n        this.activeIndex = 0;\n        this.readonly = true;\n        this.activeIndexChange = new EventEmitter();\n    }\n    ngOnInit() {\n        this.subscription = this.router.events.subscribe(() => this.cd.markForCheck());\n    }\n    itemClick(event, item, i) {\n        if (this.readonly || item.disabled) {\n            event.preventDefault();\n            return;\n        }\n        this.activeIndexChange.emit(i);\n        if (!item.url) {\n            event.preventDefault();\n        }\n        if (item.command) {\n            item.command({\n                originalEvent: event,\n                item: item,\n                index: i\n            });\n        }\n    }\n    isClickableRouterLink(item) {\n        return item.routerLink && !this.readonly && !item.disabled;\n    }\n    isActive(item, index) {\n        if (item.routerLink)\n            return this.router.isActive(item.routerLink, false) || this.router.isActive(this.router.createUrlTree([item.routerLink], { relativeTo: this.route }).toString(), false);\n        else\n            return index === this.activeIndex;\n    }\n    ngOnDestroy() {\n        if (this.subscription) {\n            this.subscription.unsubscribe();\n        }\n    }\n}\nSteps.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: Steps, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nSteps.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: Steps, selector: \"p-steps\", inputs: { activeIndex: \"activeIndex\", model: \"model\", readonly: \"readonly\", style: \"style\", styleClass: \"styleClass\" }, outputs: { activeIndexChange: \"activeIndexChange\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n        <div [ngClass]=\"{'p-steps p-component':true,'p-readonly':readonly}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <ul role=\"tablist\">\n                <li *ngFor=\"let item of model; let i = index\" class=\"p-steps-item\" #menuitem [ngStyle]=\"item.style\" [class]=\"item.styleClass\" role=\"tab\" [attr.aria-selected]=\"i === activeIndex\" [attr.aria-expanded]=\"i === activeIndex\" pTooltip [tooltipOptions]=\"item.tooltipOptions\"\n                    [ngClass]=\"{'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i))}\">\n                    <a *ngIf=\"isClickableRouterLink(item); else elseBlock\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" role=\"presentation\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\" class=\"p-menuitem-link\"\n                        (click)=\"itemClick($event, item, i)\" (keydown.enter)=\"itemClick($event, item, i)\" [attr.target]=\"item.target\" [attr.id]=\"item.id\" [attr.tabindex]=\"item.disabled || readonly ? null : (item.tabindex ? item.tabindex : '0')\"\n                        [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\">\n                        <span class=\"p-steps-number\">{{i + 1}}</span>\n                        <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n                        <ng-template #htmlLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n                    </a>\n                    <ng-template #elseBlock>\n                        <a [attr.href]=\"item.url\" class=\"p-menuitem-link\" role=\"presentation\" (click)=\"itemClick($event, item, i)\" (keydown.enter)=\"itemClick($event, item, i)\" [attr.target]=\"item.target\" [attr.id]=\"item.id\"\n                            [attr.tabindex]=\"item.disabled||(i !== activeIndex && readonly) ? null : (item.tabindex ? item.tabindex : '0')\">\n                            <span class=\"p-steps-number\">{{i + 1}}</span>\n                            <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n                            <ng-template #htmlRouteLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n                        </a>\n                    </ng-template>\n                </li>\n            </ul>\n        </div>\n    `, isInline: true, styles: [\".p-steps{position:relative}.p-steps ul{padding:0;margin:0;list-style-type:none;display:flex}.p-steps-item{position:relative;display:flex;justify-content:center;flex:1 1 auto}.p-steps-item .p-menuitem-link{display:inline-flex;flex-direction:column;align-items:center;overflow:hidden;text-decoration:none}.p-steps.p-steps-readonly .p-steps-item{cursor:auto}.p-steps-item.p-steps-current .p-menuitem-link{cursor:default}.p-steps-title{white-space:nowrap}.p-steps-number{display:flex;align-items:center;justify-content:center}.p-steps-title{display:block}\\n\"], directives: [{ type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i3.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"appendTo\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i1.RouterLinkWithHref, selector: \"a[routerLink],area[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"state\", \"relativeTo\", \"routerLink\"] }, { type: i1.RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: Steps, decorators: [{\n            type: Component,\n            args: [{ selector: 'p-steps', template: `\n        <div [ngClass]=\"{'p-steps p-component':true,'p-readonly':readonly}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <ul role=\"tablist\">\n                <li *ngFor=\"let item of model; let i = index\" class=\"p-steps-item\" #menuitem [ngStyle]=\"item.style\" [class]=\"item.styleClass\" role=\"tab\" [attr.aria-selected]=\"i === activeIndex\" [attr.aria-expanded]=\"i === activeIndex\" pTooltip [tooltipOptions]=\"item.tooltipOptions\"\n                    [ngClass]=\"{'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i))}\">\n                    <a *ngIf=\"isClickableRouterLink(item); else elseBlock\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" role=\"presentation\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\" class=\"p-menuitem-link\"\n                        (click)=\"itemClick($event, item, i)\" (keydown.enter)=\"itemClick($event, item, i)\" [attr.target]=\"item.target\" [attr.id]=\"item.id\" [attr.tabindex]=\"item.disabled || readonly ? null : (item.tabindex ? item.tabindex : '0')\"\n                        [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\">\n                        <span class=\"p-steps-number\">{{i + 1}}</span>\n                        <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n                        <ng-template #htmlLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n                    </a>\n                    <ng-template #elseBlock>\n                        <a [attr.href]=\"item.url\" class=\"p-menuitem-link\" role=\"presentation\" (click)=\"itemClick($event, item, i)\" (keydown.enter)=\"itemClick($event, item, i)\" [attr.target]=\"item.target\" [attr.id]=\"item.id\"\n                            [attr.tabindex]=\"item.disabled||(i !== activeIndex && readonly) ? null : (item.tabindex ? item.tabindex : '0')\">\n                            <span class=\"p-steps-number\">{{i + 1}}</span>\n                            <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n                            <ng-template #htmlRouteLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n                        </a>\n                    </ng-template>\n                </li>\n            </ul>\n        </div>\n    `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n                        'class': 'p-element'\n                    }, styles: [\".p-steps{position:relative}.p-steps ul{padding:0;margin:0;list-style-type:none;display:flex}.p-steps-item{position:relative;display:flex;justify-content:center;flex:1 1 auto}.p-steps-item .p-menuitem-link{display:inline-flex;flex-direction:column;align-items:center;overflow:hidden;text-decoration:none}.p-steps.p-steps-readonly .p-steps-item{cursor:auto}.p-steps-item.p-steps-current .p-menuitem-link{cursor:default}.p-steps-title{white-space:nowrap}.p-steps-number{display:flex;align-items:center;justify-content:center}.p-steps-title{display:block}\\n\"] }]\n        }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { activeIndex: [{\n                type: Input\n            }], model: [{\n                type: Input\n            }], readonly: [{\n                type: Input\n            }], style: [{\n                type: Input\n            }], styleClass: [{\n                type: Input\n            }], activeIndexChange: [{\n                type: Output\n            }] } });\nclass StepsModule {\n}\nStepsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: StepsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nStepsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: StepsModule, declarations: [Steps], imports: [CommonModule, RouterModule, TooltipModule], exports: [Steps, RouterModule, TooltipModule] });\nStepsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: StepsModule, imports: [[CommonModule, RouterModule, TooltipModule], RouterModule, TooltipModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: StepsModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule, RouterModule, TooltipModule],\n                    exports: [Steps, RouterModule, TooltipModule],\n                    declarations: [Steps]\n                }]\n        }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Steps, StepsModule };\n"]},"metadata":{},"sourceType":"module"}
Index: trip-planner-front/node_modules/.cache/babel-webpack/b6ce82ba7fca045ec24b884a893d5858.json
===================================================================
--- trip-planner-front/node_modules/.cache/babel-webpack/b6ce82ba7fca045ec24b884a893d5858.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/.cache/babel-webpack/b6ce82ba7fca045ec24b884a893d5858.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';\nimport * as i7 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i4 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport * as i6 from 'primeng/messages';\nimport { MessagesModule } from 'primeng/messages';\nimport * as i5 from 'primeng/progressbar';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { DomHandler } from 'primeng/dom';\nimport * as i3 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i8 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i2 from '@angular/common/http';\nimport { HttpEventType } from '@angular/common/http';\nimport * as i1 from '@angular/platform-browser';\nconst _c0 = [\"advancedfileinput\"];\nconst _c1 = [\"basicfileinput\"];\nconst _c2 = [\"content\"];\n\nfunction FileUpload_div_0_p_button_8_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r11 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"p-button\", 17);\n    i0.ɵɵlistener(\"onClick\", function FileUpload_div_0_p_button_8_Template_p_button_onClick_0_listener() {\n      i0.ɵɵrestoreView(_r11);\n      const ctx_r10 = i0.ɵɵnextContext(2);\n      return ctx_r10.upload();\n    });\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r3 = i0.ɵɵnextContext(2);\n    i0.ɵɵproperty(\"label\", ctx_r3.uploadButtonLabel)(\"icon\", ctx_r3.uploadIcon)(\"disabled\", !ctx_r3.hasFiles() || ctx_r3.isFileLimitExceeded());\n  }\n}\n\nfunction FileUpload_div_0_p_button_9_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r13 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"p-button\", 17);\n    i0.ɵɵlistener(\"onClick\", function FileUpload_div_0_p_button_9_Template_p_button_onClick_0_listener() {\n      i0.ɵɵrestoreView(_r13);\n      const ctx_r12 = i0.ɵɵnextContext(2);\n      return ctx_r12.clear();\n    });\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r4 = i0.ɵɵnextContext(2);\n    i0.ɵɵproperty(\"label\", ctx_r4.cancelButtonLabel)(\"icon\", ctx_r4.cancelIcon)(\"disabled\", !ctx_r4.hasFiles() || ctx_r4.uploading);\n  }\n}\n\nfunction FileUpload_div_0_ng_container_10_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nfunction FileUpload_div_0_p_progressBar_13_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"p-progressBar\", 18);\n  }\n\n  if (rf & 2) {\n    const ctx_r7 = i0.ɵɵnextContext(2);\n    i0.ɵɵproperty(\"value\", ctx_r7.progress)(\"showValue\", false);\n  }\n}\n\nfunction FileUpload_div_0_div_15_div_1_div_1_img_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"img\", 26);\n  }\n\n  if (rf & 2) {\n    const file_r17 = i0.ɵɵnextContext().$implicit;\n    const ctx_r19 = i0.ɵɵnextContext(4);\n    i0.ɵɵproperty(\"src\", file_r17.objectURL, i0.ɵɵsanitizeUrl)(\"width\", ctx_r19.previewWidth);\n  }\n}\n\nfunction FileUpload_div_0_div_15_div_1_div_1_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r22 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"div\", 22);\n    i0.ɵɵelementStart(1, \"div\");\n    i0.ɵɵtemplate(2, FileUpload_div_0_div_15_div_1_div_1_img_2_Template, 1, 2, \"img\", 23);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementStart(3, \"div\", 24);\n    i0.ɵɵtext(4);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementStart(5, \"div\");\n    i0.ɵɵtext(6);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementStart(7, \"div\");\n    i0.ɵɵelementStart(8, \"button\", 25);\n    i0.ɵɵlistener(\"click\", function FileUpload_div_0_div_15_div_1_div_1_Template_button_click_8_listener($event) {\n      const restoredCtx = i0.ɵɵrestoreView(_r22);\n      const i_r18 = restoredCtx.index;\n      const ctx_r21 = i0.ɵɵnextContext(4);\n      return ctx_r21.remove($event, i_r18);\n    });\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const file_r17 = ctx.$implicit;\n    const ctx_r16 = i0.ɵɵnextContext(4);\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"ngIf\", ctx_r16.isImage(file_r17));\n    i0.ɵɵadvance(2);\n    i0.ɵɵtextInterpolate(file_r17.name);\n    i0.ɵɵadvance(2);\n    i0.ɵɵtextInterpolate(ctx_r16.formatSize(file_r17.size));\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"disabled\", ctx_r16.uploading);\n  }\n}\n\nfunction FileUpload_div_0_div_15_div_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\");\n    i0.ɵɵtemplate(1, FileUpload_div_0_div_15_div_1_div_1_Template, 9, 4, \"div\", 21);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r14 = i0.ɵɵnextContext(3);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngForOf\", ctx_r14.files);\n  }\n}\n\nfunction FileUpload_div_0_div_15_div_2_ng_template_1_Template(rf, ctx) {}\n\nfunction FileUpload_div_0_div_15_div_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\");\n    i0.ɵɵtemplate(1, FileUpload_div_0_div_15_div_2_ng_template_1_Template, 0, 0, \"ng-template\", 27);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r15 = i0.ɵɵnextContext(3);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngForOf\", ctx_r15.files)(\"ngForTemplate\", ctx_r15.fileTemplate);\n  }\n}\n\nfunction FileUpload_div_0_div_15_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 19);\n    i0.ɵɵtemplate(1, FileUpload_div_0_div_15_div_1_Template, 2, 1, \"div\", 20);\n    i0.ɵɵtemplate(2, FileUpload_div_0_div_15_div_2_Template, 2, 2, \"div\", 20);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r8 = i0.ɵɵnextContext(2);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", !ctx_r8.fileTemplate);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", ctx_r8.fileTemplate);\n  }\n}\n\nfunction FileUpload_div_0_ng_container_16_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nconst _c3 = function (a0, a1) {\n  return {\n    \"p-focus\": a0,\n    \"p-disabled\": a1\n  };\n};\n\nconst _c4 = function (a0) {\n  return {\n    $implicit: a0\n  };\n};\n\nfunction FileUpload_div_0_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r25 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"div\", 2);\n    i0.ɵɵelementStart(1, \"div\", 3);\n    i0.ɵɵelementStart(2, \"span\", 4);\n    i0.ɵɵlistener(\"focus\", function FileUpload_div_0_Template_span_focus_2_listener() {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r24 = i0.ɵɵnextContext();\n      return ctx_r24.onFocus();\n    })(\"blur\", function FileUpload_div_0_Template_span_blur_2_listener() {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r26 = i0.ɵɵnextContext();\n      return ctx_r26.onBlur();\n    })(\"click\", function FileUpload_div_0_Template_span_click_2_listener() {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r27 = i0.ɵɵnextContext();\n      return ctx_r27.choose();\n    })(\"keydown.enter\", function FileUpload_div_0_Template_span_keydown_enter_2_listener() {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r28 = i0.ɵɵnextContext();\n      return ctx_r28.choose();\n    });\n    i0.ɵɵelementStart(3, \"input\", 5, 6);\n    i0.ɵɵlistener(\"change\", function FileUpload_div_0_Template_input_change_3_listener($event) {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r29 = i0.ɵɵnextContext();\n      return ctx_r29.onFileSelect($event);\n    });\n    i0.ɵɵelementEnd();\n    i0.ɵɵelement(5, \"span\", 7);\n    i0.ɵɵelementStart(6, \"span\", 8);\n    i0.ɵɵtext(7);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementEnd();\n    i0.ɵɵtemplate(8, FileUpload_div_0_p_button_8_Template, 1, 3, \"p-button\", 9);\n    i0.ɵɵtemplate(9, FileUpload_div_0_p_button_9_Template, 1, 3, \"p-button\", 9);\n    i0.ɵɵtemplate(10, FileUpload_div_0_ng_container_10_Template, 1, 0, \"ng-container\", 10);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementStart(11, \"div\", 11, 12);\n    i0.ɵɵlistener(\"dragenter\", function FileUpload_div_0_Template_div_dragenter_11_listener($event) {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r30 = i0.ɵɵnextContext();\n      return ctx_r30.onDragEnter($event);\n    })(\"dragleave\", function FileUpload_div_0_Template_div_dragleave_11_listener($event) {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r31 = i0.ɵɵnextContext();\n      return ctx_r31.onDragLeave($event);\n    })(\"drop\", function FileUpload_div_0_Template_div_drop_11_listener($event) {\n      i0.ɵɵrestoreView(_r25);\n      const ctx_r32 = i0.ɵɵnextContext();\n      return ctx_r32.onDrop($event);\n    });\n    i0.ɵɵtemplate(13, FileUpload_div_0_p_progressBar_13_Template, 1, 2, \"p-progressBar\", 13);\n    i0.ɵɵelement(14, \"p-messages\", 14);\n    i0.ɵɵtemplate(15, FileUpload_div_0_div_15_Template, 3, 2, \"div\", 15);\n    i0.ɵɵtemplate(16, FileUpload_div_0_ng_container_16_Template, 1, 0, \"ng-container\", 16);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵclassMap(ctx_r0.styleClass);\n    i0.ɵɵproperty(\"ngClass\", \"p-fileupload p-fileupload-advanced p-component\")(\"ngStyle\", ctx_r0.style);\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(22, _c3, ctx_r0.focus, ctx_r0.disabled || ctx_r0.isChooseDisabled()));\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"multiple\", ctx_r0.multiple)(\"accept\", ctx_r0.accept)(\"disabled\", ctx_r0.disabled || ctx_r0.isChooseDisabled());\n    i0.ɵɵattribute(\"title\", \"\");\n    i0.ɵɵadvance(2);\n    i0.ɵɵclassMap(ctx_r0.chooseIcon);\n    i0.ɵɵproperty(\"ngClass\", \"p-button-icon p-button-icon-left\");\n    i0.ɵɵadvance(2);\n    i0.ɵɵtextInterpolate(ctx_r0.chooseButtonLabel);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", !ctx_r0.auto && ctx_r0.showUploadButton);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", !ctx_r0.auto && ctx_r0.showCancelButton);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.toolbarTemplate);\n    i0.ɵɵadvance(3);\n    i0.ɵɵproperty(\"ngIf\", ctx_r0.hasFiles());\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"value\", ctx_r0.msgs)(\"enableService\", false);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", ctx_r0.hasFiles());\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(25, _c4, ctx_r0.files));\n  }\n}\n\nfunction FileUpload_div_1_input_6_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r36 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"input\", 32, 33);\n    i0.ɵɵlistener(\"change\", function FileUpload_div_1_input_6_Template_input_change_0_listener($event) {\n      i0.ɵɵrestoreView(_r36);\n      const ctx_r35 = i0.ɵɵnextContext(2);\n      return ctx_r35.onFileSelect($event);\n    })(\"focus\", function FileUpload_div_1_input_6_Template_input_focus_0_listener() {\n      i0.ɵɵrestoreView(_r36);\n      const ctx_r37 = i0.ɵɵnextContext(2);\n      return ctx_r37.onFocus();\n    })(\"blur\", function FileUpload_div_1_input_6_Template_input_blur_0_listener() {\n      i0.ɵɵrestoreView(_r36);\n      const ctx_r38 = i0.ɵɵnextContext(2);\n      return ctx_r38.onBlur();\n    });\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r33 = i0.ɵɵnextContext(2);\n    i0.ɵɵproperty(\"accept\", ctx_r33.accept)(\"multiple\", ctx_r33.multiple)(\"disabled\", ctx_r33.disabled);\n  }\n}\n\nconst _c5 = function (a1, a2, a3, a4) {\n  return {\n    \"p-button p-component p-fileupload-choose\": true,\n    \"p-button-icon-only\": a1,\n    \"p-fileupload-choose-selected\": a2,\n    \"p-focus\": a3,\n    \"p-disabled\": a4\n  };\n};\n\nfunction FileUpload_div_1_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r40 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"div\", 28);\n    i0.ɵɵelement(1, \"p-messages\", 14);\n    i0.ɵɵelementStart(2, \"span\", 29);\n    i0.ɵɵlistener(\"mouseup\", function FileUpload_div_1_Template_span_mouseup_2_listener() {\n      i0.ɵɵrestoreView(_r40);\n      const ctx_r39 = i0.ɵɵnextContext();\n      return ctx_r39.onBasicUploaderClick();\n    })(\"keydown\", function FileUpload_div_1_Template_span_keydown_2_listener() {\n      i0.ɵɵrestoreView(_r40);\n      const ctx_r41 = i0.ɵɵnextContext();\n      return ctx_r41.onBasicUploaderClick();\n    });\n    i0.ɵɵelement(3, \"span\", 30);\n    i0.ɵɵelementStart(4, \"span\", 8);\n    i0.ɵɵtext(5);\n    i0.ɵɵelementEnd();\n    i0.ɵɵtemplate(6, FileUpload_div_1_input_6_Template, 2, 3, \"input\", 31);\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r1 = i0.ɵɵnextContext();\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"value\", ctx_r1.msgs)(\"enableService\", false);\n    i0.ɵɵadvance(1);\n    i0.ɵɵclassMap(ctx_r1.styleClass);\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction4(9, _c5, !ctx_r1.chooseLabel, ctx_r1.hasFiles(), ctx_r1.focus, ctx_r1.disabled))(\"ngStyle\", ctx_r1.style);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngClass\", ctx_r1.hasFiles() && !ctx_r1.auto ? ctx_r1.uploadIcon : ctx_r1.chooseIcon);\n    i0.ɵɵadvance(2);\n    i0.ɵɵtextInterpolate(ctx_r1.auto ? ctx_r1.chooseLabel : ctx_r1.hasFiles() ? ctx_r1.files[0].name : ctx_r1.chooseLabel);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngIf\", !ctx_r1.hasFiles());\n  }\n}\n\nclass FileUpload {\n  constructor(el, sanitizer, zone, http, cd, config) {\n    this.el = el;\n    this.sanitizer = sanitizer;\n    this.zone = zone;\n    this.http = http;\n    this.cd = cd;\n    this.config = config;\n    this.method = 'post';\n    this.invalidFileSizeMessageSummary = '{0}: Invalid file size, ';\n    this.invalidFileSizeMessageDetail = 'maximum upload size is {0}.';\n    this.invalidFileTypeMessageSummary = '{0}: Invalid file type, ';\n    this.invalidFileTypeMessageDetail = 'allowed file types: {0}.';\n    this.invalidFileLimitMessageDetail = 'limit is {0} at most.';\n    this.invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';\n    this.previewWidth = 50;\n    this.chooseIcon = 'pi pi-plus';\n    this.uploadIcon = 'pi pi-upload';\n    this.cancelIcon = 'pi pi-times';\n    this.showUploadButton = true;\n    this.showCancelButton = true;\n    this.mode = 'advanced';\n    this.onBeforeUpload = new EventEmitter();\n    this.onSend = new EventEmitter();\n    this.onUpload = new EventEmitter();\n    this.onError = new EventEmitter();\n    this.onClear = new EventEmitter();\n    this.onRemove = new EventEmitter();\n    this.onSelect = new EventEmitter();\n    this.onProgress = new EventEmitter();\n    this.uploadHandler = new EventEmitter();\n    this._files = [];\n    this.progress = 0;\n    this.uploadedFileCount = 0;\n  }\n\n  set files(files) {\n    this._files = [];\n\n    for (let i = 0; i < files.length; i++) {\n      let file = files[i];\n\n      if (this.validate(file)) {\n        if (this.isImage(file)) {\n          file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n        }\n\n        this._files.push(files[i]);\n      }\n    }\n  }\n\n  get files() {\n    return this._files;\n  }\n\n  ngAfterContentInit() {\n    this.templates.forEach(item => {\n      switch (item.getType()) {\n        case 'file':\n          this.fileTemplate = item.template;\n          break;\n\n        case 'content':\n          this.contentTemplate = item.template;\n          break;\n\n        case 'toolbar':\n          this.toolbarTemplate = item.template;\n          break;\n\n        default:\n          this.fileTemplate = item.template;\n          break;\n      }\n    });\n  }\n\n  ngOnInit() {\n    this.translationSubscription = this.config.translationObserver.subscribe(() => {\n      this.cd.markForCheck();\n    });\n  }\n\n  ngAfterViewInit() {\n    if (this.mode === 'advanced') {\n      this.zone.runOutsideAngular(() => {\n        if (this.content) this.content.nativeElement.addEventListener('dragover', this.onDragOver.bind(this));\n      });\n    }\n  }\n\n  choose() {\n    this.advancedFileInput.nativeElement.click();\n  }\n\n  onFileSelect(event) {\n    if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n      this.duplicateIEEvent = false;\n      return;\n    }\n\n    this.msgs = [];\n\n    if (!this.multiple) {\n      this.files = [];\n    }\n\n    let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n    for (let i = 0; i < files.length; i++) {\n      let file = files[i];\n\n      if (!this.isFileSelected(file)) {\n        if (this.validate(file)) {\n          if (this.isImage(file)) {\n            file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n          }\n\n          this.files.push(files[i]);\n        }\n      }\n    }\n\n    this.onSelect.emit({\n      originalEvent: event,\n      files: files,\n      currentFiles: this.files\n    });\n\n    if (this.fileLimit && this.mode == \"advanced\") {\n      this.checkFileLimit();\n    }\n\n    if (this.hasFiles() && this.auto && (!(this.mode === \"advanced\") || !this.isFileLimitExceeded())) {\n      this.upload();\n    }\n\n    if (event.type !== 'drop' && this.isIE11()) {\n      this.clearIEInput();\n    } else {\n      this.clearInputElement();\n    }\n  }\n\n  isFileSelected(file) {\n    for (let sFile of this.files) {\n      if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  isIE11() {\n    return !!window['MSInputMethodContext'] && !!document['documentMode'];\n  }\n\n  validate(file) {\n    if (this.accept && !this.isFileTypeValid(file)) {\n      this.msgs.push({\n        severity: 'error',\n        summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n        detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n      });\n      return false;\n    }\n\n    if (this.maxFileSize && file.size > this.maxFileSize) {\n      this.msgs.push({\n        severity: 'error',\n        summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n        detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n      });\n      return false;\n    }\n\n    return true;\n  }\n\n  isFileTypeValid(file) {\n    let acceptableTypes = this.accept.split(',').map(type => type.trim());\n\n    for (let type of acceptableTypes) {\n      let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n      if (acceptable) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  getTypeClass(fileType) {\n    return fileType.substring(0, fileType.indexOf('/'));\n  }\n\n  isWildcard(fileType) {\n    return fileType.indexOf('*') !== -1;\n  }\n\n  getFileExtension(file) {\n    return '.' + file.name.split('.').pop();\n  }\n\n  isImage(file) {\n    return /^image\\//.test(file.type);\n  }\n\n  onImageLoad(img) {\n    window.URL.revokeObjectURL(img.src);\n  }\n\n  upload() {\n    if (this.customUpload) {\n      if (this.fileLimit) {\n        this.uploadedFileCount += this.files.length;\n      }\n\n      this.uploadHandler.emit({\n        files: this.files\n      });\n      this.cd.markForCheck();\n    } else {\n      this.uploading = true;\n      this.msgs = [];\n      let formData = new FormData();\n      this.onBeforeUpload.emit({\n        'formData': formData\n      });\n\n      for (let i = 0; i < this.files.length; i++) {\n        formData.append(this.name, this.files[i], this.files[i].name);\n      }\n\n      this.http[this.method](this.url, formData, {\n        headers: this.headers,\n        reportProgress: true,\n        observe: 'events',\n        withCredentials: this.withCredentials\n      }).subscribe(event => {\n        switch (event.type) {\n          case HttpEventType.Sent:\n            this.onSend.emit({\n              originalEvent: event,\n              'formData': formData\n            });\n            break;\n\n          case HttpEventType.Response:\n            this.uploading = false;\n            this.progress = 0;\n\n            if (event['status'] >= 200 && event['status'] < 300) {\n              if (this.fileLimit) {\n                this.uploadedFileCount += this.files.length;\n              }\n\n              this.onUpload.emit({\n                originalEvent: event,\n                files: this.files\n              });\n            } else {\n              this.onError.emit({\n                files: this.files\n              });\n            }\n\n            this.clear();\n            break;\n\n          case HttpEventType.UploadProgress:\n            {\n              if (event['loaded']) {\n                this.progress = Math.round(event['loaded'] * 100 / event['total']);\n              }\n\n              this.onProgress.emit({\n                originalEvent: event,\n                progress: this.progress\n              });\n              break;\n            }\n        }\n\n        this.cd.markForCheck();\n      }, error => {\n        this.uploading = false;\n        this.onError.emit({\n          files: this.files,\n          error: error\n        });\n      });\n    }\n  }\n\n  clear() {\n    this.files = [];\n    this.onClear.emit();\n    this.clearInputElement();\n    this.cd.markForCheck();\n  }\n\n  remove(event, index) {\n    this.clearInputElement();\n    this.onRemove.emit({\n      originalEvent: event,\n      file: this.files[index]\n    });\n    this.files.splice(index, 1);\n  }\n\n  isFileLimitExceeded() {\n    if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focus) {\n      this.focus = false;\n    }\n\n    return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n  }\n\n  isChooseDisabled() {\n    return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n  }\n\n  checkFileLimit() {\n    if (this.isFileLimitExceeded()) {\n      this.msgs.push({\n        severity: 'error',\n        summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),\n        detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())\n      });\n    }\n  }\n\n  clearInputElement() {\n    if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n      this.advancedFileInput.nativeElement.value = '';\n    }\n\n    if (this.basicFileInput && this.basicFileInput.nativeElement) {\n      this.basicFileInput.nativeElement.value = '';\n    }\n  }\n\n  clearIEInput() {\n    if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n      this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n\n      this.advancedFileInput.nativeElement.value = '';\n    }\n  }\n\n  hasFiles() {\n    return this.files && this.files.length > 0;\n  }\n\n  onDragEnter(e) {\n    if (!this.disabled) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n  }\n\n  onDragOver(e) {\n    if (!this.disabled) {\n      DomHandler.addClass(this.content.nativeElement, 'p-fileupload-highlight');\n      this.dragHighlight = true;\n      e.stopPropagation();\n      e.preventDefault();\n    }\n  }\n\n  onDragLeave(event) {\n    if (!this.disabled) {\n      DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n    }\n  }\n\n  onDrop(event) {\n    if (!this.disabled) {\n      DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n      event.stopPropagation();\n      event.preventDefault();\n      let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n      let allowDrop = this.multiple || files && files.length === 1;\n\n      if (allowDrop) {\n        this.onFileSelect(event);\n      }\n    }\n  }\n\n  onFocus() {\n    this.focus = true;\n  }\n\n  onBlur() {\n    this.focus = false;\n  }\n\n  formatSize(bytes) {\n    if (bytes == 0) {\n      return '0 B';\n    }\n\n    let k = 1000,\n        dm = 3,\n        sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n        i = Math.floor(Math.log(bytes) / Math.log(k));\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n  }\n\n  onBasicUploaderClick() {\n    if (this.hasFiles()) this.upload();else this.basicFileInput.nativeElement.click();\n  }\n\n  getBlockableElement() {\n    return this.el.nativeElement.children[0];\n  }\n\n  get chooseButtonLabel() {\n    return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n  }\n\n  get uploadButtonLabel() {\n    return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n  }\n\n  get cancelButtonLabel() {\n    return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n  }\n\n  ngOnDestroy() {\n    if (this.content && this.content.nativeElement) {\n      this.content.nativeElement.removeEventListener('dragover', this.onDragOver);\n    }\n\n    if (this.translationSubscription) {\n      this.translationSubscription.unsubscribe();\n    }\n  }\n\n}\n\nFileUpload.ɵfac = function FileUpload_Factory(t) {\n  return new (t || FileUpload)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.PrimeNGConfig));\n};\n\nFileUpload.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: FileUpload,\n  selectors: [[\"p-fileUpload\"]],\n  contentQueries: function FileUpload_ContentQueries(rf, ctx, dirIndex) {\n    if (rf & 1) {\n      i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n    }\n\n    if (rf & 2) {\n      let _t;\n\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n    }\n  },\n  viewQuery: function FileUpload_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(_c0, 5);\n      i0.ɵɵviewQuery(_c1, 5);\n      i0.ɵɵviewQuery(_c2, 5);\n    }\n\n    if (rf & 2) {\n      let _t;\n\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.advancedFileInput = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.basicFileInput = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n    }\n  },\n  hostAttrs: [1, \"p-element\"],\n  inputs: {\n    name: \"name\",\n    url: \"url\",\n    method: \"method\",\n    multiple: \"multiple\",\n    accept: \"accept\",\n    disabled: \"disabled\",\n    auto: \"auto\",\n    withCredentials: \"withCredentials\",\n    maxFileSize: \"maxFileSize\",\n    invalidFileSizeMessageSummary: \"invalidFileSizeMessageSummary\",\n    invalidFileSizeMessageDetail: \"invalidFileSizeMessageDetail\",\n    invalidFileTypeMessageSummary: \"invalidFileTypeMessageSummary\",\n    invalidFileTypeMessageDetail: \"invalidFileTypeMessageDetail\",\n    invalidFileLimitMessageDetail: \"invalidFileLimitMessageDetail\",\n    invalidFileLimitMessageSummary: \"invalidFileLimitMessageSummary\",\n    style: \"style\",\n    styleClass: \"styleClass\",\n    previewWidth: \"previewWidth\",\n    chooseLabel: \"chooseLabel\",\n    uploadLabel: \"uploadLabel\",\n    cancelLabel: \"cancelLabel\",\n    chooseIcon: \"chooseIcon\",\n    uploadIcon: \"uploadIcon\",\n    cancelIcon: \"cancelIcon\",\n    showUploadButton: \"showUploadButton\",\n    showCancelButton: \"showCancelButton\",\n    mode: \"mode\",\n    headers: \"headers\",\n    customUpload: \"customUpload\",\n    fileLimit: \"fileLimit\",\n    files: \"files\"\n  },\n  outputs: {\n    onBeforeUpload: \"onBeforeUpload\",\n    onSend: \"onSend\",\n    onUpload: \"onUpload\",\n    onError: \"onError\",\n    onClear: \"onClear\",\n    onRemove: \"onRemove\",\n    onSelect: \"onSelect\",\n    onProgress: \"onProgress\",\n    uploadHandler: \"uploadHandler\"\n  },\n  decls: 2,\n  vars: 2,\n  consts: [[3, \"ngClass\", \"ngStyle\", \"class\", 4, \"ngIf\"], [\"class\", \"p-fileupload p-fileupload-basic p-component\", 4, \"ngIf\"], [3, \"ngClass\", \"ngStyle\"], [1, \"p-fileupload-buttonbar\"], [\"pRipple\", \"\", \"tabindex\", \"0\", 1, \"p-button\", \"p-component\", \"p-fileupload-choose\", 3, \"ngClass\", \"focus\", \"blur\", \"click\", \"keydown.enter\"], [\"type\", \"file\", 3, \"multiple\", \"accept\", \"disabled\", \"change\"], [\"advancedfileinput\", \"\"], [3, \"ngClass\"], [1, \"p-button-label\"], [\"type\", \"button\", 3, \"label\", \"icon\", \"disabled\", \"onClick\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [1, \"p-fileupload-content\", 3, \"dragenter\", \"dragleave\", \"drop\"], [\"content\", \"\"], [3, \"value\", \"showValue\", 4, \"ngIf\"], [3, \"value\", \"enableService\"], [\"class\", \"p-fileupload-files\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"type\", \"button\", 3, \"label\", \"icon\", \"disabled\", \"onClick\"], [3, \"value\", \"showValue\"], [1, \"p-fileupload-files\"], [4, \"ngIf\"], [\"class\", \"p-fileupload-row\", 4, \"ngFor\", \"ngForOf\"], [1, \"p-fileupload-row\"], [3, \"src\", \"width\", 4, \"ngIf\"], [1, \"p-fileupload-filename\"], [\"type\", \"button\", \"icon\", \"pi pi-times\", \"pButton\", \"\", 3, \"disabled\", \"click\"], [3, \"src\", \"width\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTemplate\"], [1, \"p-fileupload\", \"p-fileupload-basic\", \"p-component\"], [\"tabindex\", \"0\", \"pRipple\", \"\", 3, \"ngClass\", \"ngStyle\", \"mouseup\", \"keydown\"], [1, \"p-button-icon\", \"p-button-icon-left\", \"pi\", 3, \"ngClass\"], [\"type\", \"file\", 3, \"accept\", \"multiple\", \"disabled\", \"change\", \"focus\", \"blur\", 4, \"ngIf\"], [\"type\", \"file\", 3, \"accept\", \"multiple\", \"disabled\", \"change\", \"focus\", \"blur\"], [\"basicfileinput\", \"\"]],\n  template: function FileUpload_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵtemplate(0, FileUpload_div_0_Template, 17, 27, \"div\", 0);\n      i0.ɵɵtemplate(1, FileUpload_div_1_Template, 7, 14, \"div\", 1);\n    }\n\n    if (rf & 2) {\n      i0.ɵɵproperty(\"ngIf\", ctx.mode === \"advanced\");\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.mode === \"basic\");\n    }\n  },\n  directives: [i7.NgIf, i7.NgClass, i7.NgStyle, i8.Ripple, i7.NgTemplateOutlet, i6.Messages, i4.Button, i5.ProgressBar, i7.NgForOf, i4.ButtonDirective],\n  styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FileUpload, [{\n    type: Component,\n    args: [{\n      selector: 'p-fileUpload',\n      template: `\n        <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n            <div class=\"p-fileupload-buttonbar\">\n                <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n                    (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\">\n                    <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n                    <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n                    <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n                </span>\n\n                <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n                <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n                <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n            </div>\n            <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n                <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n                <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n                <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n                    <div *ngIf=\"!fileTemplate\">\n                        <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n                            <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n                            <div class=\"p-fileupload-filename\">{{file.name}}</div>\n                            <div>{{formatSize(file.size)}}</div>\n                            <div>\n                                <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n                            </div>\n                        </div>\n                    </div>\n                    <div *ngIf=\"fileTemplate\">\n                        <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n                    </div>\n                </div>\n                <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n            </div>\n        </div>\n        <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n            <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n            <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n                [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n                <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n                <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n                <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n                    (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n            </span>\n        </div>\n    `,\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      host: {\n        'class': 'p-element'\n      },\n      styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.DomSanitizer\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i2.HttpClient\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i3.PrimeNGConfig\n    }];\n  }, {\n    name: [{\n      type: Input\n    }],\n    url: [{\n      type: Input\n    }],\n    method: [{\n      type: Input\n    }],\n    multiple: [{\n      type: Input\n    }],\n    accept: [{\n      type: Input\n    }],\n    disabled: [{\n      type: Input\n    }],\n    auto: [{\n      type: Input\n    }],\n    withCredentials: [{\n      type: Input\n    }],\n    maxFileSize: [{\n      type: Input\n    }],\n    invalidFileSizeMessageSummary: [{\n      type: Input\n    }],\n    invalidFileSizeMessageDetail: [{\n      type: Input\n    }],\n    invalidFileTypeMessageSummary: [{\n      type: Input\n    }],\n    invalidFileTypeMessageDetail: [{\n      type: Input\n    }],\n    invalidFileLimitMessageDetail: [{\n      type: Input\n    }],\n    invalidFileLimitMessageSummary: [{\n      type: Input\n    }],\n    style: [{\n      type: Input\n    }],\n    styleClass: [{\n      type: Input\n    }],\n    previewWidth: [{\n      type: Input\n    }],\n    chooseLabel: [{\n      type: Input\n    }],\n    uploadLabel: [{\n      type: Input\n    }],\n    cancelLabel: [{\n      type: Input\n    }],\n    chooseIcon: [{\n      type: Input\n    }],\n    uploadIcon: [{\n      type: Input\n    }],\n    cancelIcon: [{\n      type: Input\n    }],\n    showUploadButton: [{\n      type: Input\n    }],\n    showCancelButton: [{\n      type: Input\n    }],\n    mode: [{\n      type: Input\n    }],\n    headers: [{\n      type: Input\n    }],\n    customUpload: [{\n      type: Input\n    }],\n    fileLimit: [{\n      type: Input\n    }],\n    onBeforeUpload: [{\n      type: Output\n    }],\n    onSend: [{\n      type: Output\n    }],\n    onUpload: [{\n      type: Output\n    }],\n    onError: [{\n      type: Output\n    }],\n    onClear: [{\n      type: Output\n    }],\n    onRemove: [{\n      type: Output\n    }],\n    onSelect: [{\n      type: Output\n    }],\n    onProgress: [{\n      type: Output\n    }],\n    uploadHandler: [{\n      type: Output\n    }],\n    templates: [{\n      type: ContentChildren,\n      args: [PrimeTemplate]\n    }],\n    advancedFileInput: [{\n      type: ViewChild,\n      args: ['advancedfileinput']\n    }],\n    basicFileInput: [{\n      type: ViewChild,\n      args: ['basicfileinput']\n    }],\n    content: [{\n      type: ViewChild,\n      args: ['content']\n    }],\n    files: [{\n      type: Input\n    }]\n  });\n})();\n\nclass FileUploadModule {}\n\nFileUploadModule.ɵfac = function FileUploadModule_Factory(t) {\n  return new (t || FileUploadModule)();\n};\n\nFileUploadModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: FileUploadModule\n});\nFileUploadModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [[CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule], SharedModule, ButtonModule, ProgressBarModule, MessagesModule]\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FileUploadModule, [{\n    type: NgModule,\n    args: [{\n      imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule],\n      exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],\n      declarations: [FileUpload]\n    }]\n  }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { FileUpload, FileUploadModule };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-fileupload.mjs"],"names":["i0","EventEmitter","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","ContentChildren","ViewChild","NgModule","i7","CommonModule","i4","ButtonModule","i6","MessagesModule","i5","ProgressBarModule","DomHandler","i3","TranslationKeys","PrimeTemplate","SharedModule","i8","RippleModule","i2","HttpEventType","i1","FileUpload","constructor","el","sanitizer","zone","http","cd","config","method","invalidFileSizeMessageSummary","invalidFileSizeMessageDetail","invalidFileTypeMessageSummary","invalidFileTypeMessageDetail","invalidFileLimitMessageDetail","invalidFileLimitMessageSummary","previewWidth","chooseIcon","uploadIcon","cancelIcon","showUploadButton","showCancelButton","mode","onBeforeUpload","onSend","onUpload","onError","onClear","onRemove","onSelect","onProgress","uploadHandler","_files","progress","uploadedFileCount","files","i","length","file","validate","isImage","objectURL","bypassSecurityTrustUrl","window","URL","createObjectURL","push","ngAfterContentInit","templates","forEach","item","getType","fileTemplate","template","contentTemplate","toolbarTemplate","ngOnInit","translationSubscription","translationObserver","subscribe","markForCheck","ngAfterViewInit","runOutsideAngular","content","nativeElement","addEventListener","onDragOver","bind","choose","advancedFileInput","click","onFileSelect","event","type","isIE11","duplicateIEEvent","msgs","multiple","dataTransfer","target","isFileSelected","emit","originalEvent","currentFiles","fileLimit","checkFileLimit","hasFiles","auto","isFileLimitExceeded","upload","clearIEInput","clearInputElement","sFile","name","size","document","accept","isFileTypeValid","severity","summary","replace","detail","maxFileSize","formatSize","acceptableTypes","split","map","trim","acceptable","isWildcard","getTypeClass","getFileExtension","toLowerCase","fileType","substring","indexOf","pop","test","onImageLoad","img","revokeObjectURL","src","customUpload","uploading","formData","FormData","append","url","headers","reportProgress","observe","withCredentials","Sent","Response","clear","UploadProgress","Math","round","error","remove","index","splice","focus","isChooseDisabled","toString","value","basicFileInput","onDragEnter","e","disabled","stopPropagation","preventDefault","addClass","dragHighlight","onDragLeave","removeClass","onDrop","allowDrop","onFocus","onBlur","bytes","k","dm","sizes","floor","log","parseFloat","pow","toFixed","onBasicUploaderClick","getBlockableElement","children","chooseButtonLabel","chooseLabel","getTranslation","CHOOSE","uploadButtonLabel","uploadLabel","UPLOAD","cancelButtonLabel","cancelLabel","CANCEL","ngOnDestroy","removeEventListener","unsubscribe","ɵfac","ElementRef","DomSanitizer","NgZone","HttpClient","ChangeDetectorRef","PrimeNGConfig","ɵcmp","NgIf","NgClass","NgStyle","Ripple","NgTemplateOutlet","Messages","Button","ProgressBar","NgForOf","ButtonDirective","args","selector","changeDetection","OnPush","encapsulation","None","host","styles","style","styleClass","FileUploadModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';\nimport * as i7 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i4 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport * as i6 from 'primeng/messages';\nimport { MessagesModule } from 'primeng/messages';\nimport * as i5 from 'primeng/progressbar';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { DomHandler } from 'primeng/dom';\nimport * as i3 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i8 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i2 from '@angular/common/http';\nimport { HttpEventType } from '@angular/common/http';\nimport * as i1 from '@angular/platform-browser';\n\nclass FileUpload {\n    constructor(el, sanitizer, zone, http, cd, config) {\n        this.el = el;\n        this.sanitizer = sanitizer;\n        this.zone = zone;\n        this.http = http;\n        this.cd = cd;\n        this.config = config;\n        this.method = 'post';\n        this.invalidFileSizeMessageSummary = '{0}: Invalid file size, ';\n        this.invalidFileSizeMessageDetail = 'maximum upload size is {0}.';\n        this.invalidFileTypeMessageSummary = '{0}: Invalid file type, ';\n        this.invalidFileTypeMessageDetail = 'allowed file types: {0}.';\n        this.invalidFileLimitMessageDetail = 'limit is {0} at most.';\n        this.invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';\n        this.previewWidth = 50;\n        this.chooseIcon = 'pi pi-plus';\n        this.uploadIcon = 'pi pi-upload';\n        this.cancelIcon = 'pi pi-times';\n        this.showUploadButton = true;\n        this.showCancelButton = true;\n        this.mode = 'advanced';\n        this.onBeforeUpload = new EventEmitter();\n        this.onSend = new EventEmitter();\n        this.onUpload = new EventEmitter();\n        this.onError = new EventEmitter();\n        this.onClear = new EventEmitter();\n        this.onRemove = new EventEmitter();\n        this.onSelect = new EventEmitter();\n        this.onProgress = new EventEmitter();\n        this.uploadHandler = new EventEmitter();\n        this._files = [];\n        this.progress = 0;\n        this.uploadedFileCount = 0;\n    }\n    set files(files) {\n        this._files = [];\n        for (let i = 0; i < files.length; i++) {\n            let file = files[i];\n            if (this.validate(file)) {\n                if (this.isImage(file)) {\n                    file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n                }\n                this._files.push(files[i]);\n            }\n        }\n    }\n    get files() {\n        return this._files;\n    }\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch (item.getType()) {\n                case 'file':\n                    this.fileTemplate = item.template;\n                    break;\n                case 'content':\n                    this.contentTemplate = item.template;\n                    break;\n                case 'toolbar':\n                    this.toolbarTemplate = item.template;\n                    break;\n                default:\n                    this.fileTemplate = item.template;\n                    break;\n            }\n        });\n    }\n    ngOnInit() {\n        this.translationSubscription = this.config.translationObserver.subscribe(() => {\n            this.cd.markForCheck();\n        });\n    }\n    ngAfterViewInit() {\n        if (this.mode === 'advanced') {\n            this.zone.runOutsideAngular(() => {\n                if (this.content)\n                    this.content.nativeElement.addEventListener('dragover', this.onDragOver.bind(this));\n            });\n        }\n    }\n    choose() {\n        this.advancedFileInput.nativeElement.click();\n    }\n    onFileSelect(event) {\n        if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n            this.duplicateIEEvent = false;\n            return;\n        }\n        this.msgs = [];\n        if (!this.multiple) {\n            this.files = [];\n        }\n        let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n        for (let i = 0; i < files.length; i++) {\n            let file = files[i];\n            if (!this.isFileSelected(file)) {\n                if (this.validate(file)) {\n                    if (this.isImage(file)) {\n                        file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n                    }\n                    this.files.push(files[i]);\n                }\n            }\n        }\n        this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });\n        if (this.fileLimit && this.mode == \"advanced\") {\n            this.checkFileLimit();\n        }\n        if (this.hasFiles() && this.auto && (!(this.mode === \"advanced\") || !this.isFileLimitExceeded())) {\n            this.upload();\n        }\n        if (event.type !== 'drop' && this.isIE11()) {\n            this.clearIEInput();\n        }\n        else {\n            this.clearInputElement();\n        }\n    }\n    isFileSelected(file) {\n        for (let sFile of this.files) {\n            if ((sFile.name + sFile.type + sFile.size) === (file.name + file.type + file.size)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    isIE11() {\n        return !!window['MSInputMethodContext'] && !!document['documentMode'];\n    }\n    validate(file) {\n        if (this.accept && !this.isFileTypeValid(file)) {\n            this.msgs.push({\n                severity: 'error',\n                summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n                detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n            });\n            return false;\n        }\n        if (this.maxFileSize && file.size > this.maxFileSize) {\n            this.msgs.push({\n                severity: 'error',\n                summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n                detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n            });\n            return false;\n        }\n        return true;\n    }\n    isFileTypeValid(file) {\n        let acceptableTypes = this.accept.split(',').map(type => type.trim());\n        for (let type of acceptableTypes) {\n            let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type)\n                : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n            if (acceptable) {\n                return true;\n            }\n        }\n        return false;\n    }\n    getTypeClass(fileType) {\n        return fileType.substring(0, fileType.indexOf('/'));\n    }\n    isWildcard(fileType) {\n        return fileType.indexOf('*') !== -1;\n    }\n    getFileExtension(file) {\n        return '.' + file.name.split('.').pop();\n    }\n    isImage(file) {\n        return /^image\\//.test(file.type);\n    }\n    onImageLoad(img) {\n        window.URL.revokeObjectURL(img.src);\n    }\n    upload() {\n        if (this.customUpload) {\n            if (this.fileLimit) {\n                this.uploadedFileCount += this.files.length;\n            }\n            this.uploadHandler.emit({\n                files: this.files\n            });\n            this.cd.markForCheck();\n        }\n        else {\n            this.uploading = true;\n            this.msgs = [];\n            let formData = new FormData();\n            this.onBeforeUpload.emit({\n                'formData': formData\n            });\n            for (let i = 0; i < this.files.length; i++) {\n                formData.append(this.name, this.files[i], this.files[i].name);\n            }\n            this.http[this.method](this.url, formData, {\n                headers: this.headers, reportProgress: true, observe: 'events', withCredentials: this.withCredentials\n            }).subscribe((event) => {\n                switch (event.type) {\n                    case HttpEventType.Sent:\n                        this.onSend.emit({\n                            originalEvent: event,\n                            'formData': formData\n                        });\n                        break;\n                    case HttpEventType.Response:\n                        this.uploading = false;\n                        this.progress = 0;\n                        if (event['status'] >= 200 && event['status'] < 300) {\n                            if (this.fileLimit) {\n                                this.uploadedFileCount += this.files.length;\n                            }\n                            this.onUpload.emit({ originalEvent: event, files: this.files });\n                        }\n                        else {\n                            this.onError.emit({ files: this.files });\n                        }\n                        this.clear();\n                        break;\n                    case HttpEventType.UploadProgress: {\n                        if (event['loaded']) {\n                            this.progress = Math.round((event['loaded'] * 100) / event['total']);\n                        }\n                        this.onProgress.emit({ originalEvent: event, progress: this.progress });\n                        break;\n                    }\n                }\n                this.cd.markForCheck();\n            }, error => {\n                this.uploading = false;\n                this.onError.emit({ files: this.files, error: error });\n            });\n        }\n    }\n    clear() {\n        this.files = [];\n        this.onClear.emit();\n        this.clearInputElement();\n        this.cd.markForCheck();\n    }\n    remove(event, index) {\n        this.clearInputElement();\n        this.onRemove.emit({ originalEvent: event, file: this.files[index] });\n        this.files.splice(index, 1);\n    }\n    isFileLimitExceeded() {\n        if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focus) {\n            this.focus = false;\n        }\n        return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n    }\n    isChooseDisabled() {\n        return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n    }\n    checkFileLimit() {\n        if (this.isFileLimitExceeded()) {\n            this.msgs.push({\n                severity: 'error',\n                summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),\n                detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())\n            });\n        }\n    }\n    clearInputElement() {\n        if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n            this.advancedFileInput.nativeElement.value = '';\n        }\n        if (this.basicFileInput && this.basicFileInput.nativeElement) {\n            this.basicFileInput.nativeElement.value = '';\n        }\n    }\n    clearIEInput() {\n        if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n            this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n            this.advancedFileInput.nativeElement.value = '';\n        }\n    }\n    hasFiles() {\n        return this.files && this.files.length > 0;\n    }\n    onDragEnter(e) {\n        if (!this.disabled) {\n            e.stopPropagation();\n            e.preventDefault();\n        }\n    }\n    onDragOver(e) {\n        if (!this.disabled) {\n            DomHandler.addClass(this.content.nativeElement, 'p-fileupload-highlight');\n            this.dragHighlight = true;\n            e.stopPropagation();\n            e.preventDefault();\n        }\n    }\n    onDragLeave(event) {\n        if (!this.disabled) {\n            DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n        }\n    }\n    onDrop(event) {\n        if (!this.disabled) {\n            DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n            event.stopPropagation();\n            event.preventDefault();\n            let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n            let allowDrop = this.multiple || (files && files.length === 1);\n            if (allowDrop) {\n                this.onFileSelect(event);\n            }\n        }\n    }\n    onFocus() {\n        this.focus = true;\n    }\n    onBlur() {\n        this.focus = false;\n    }\n    formatSize(bytes) {\n        if (bytes == 0) {\n            return '0 B';\n        }\n        let k = 1000, dm = 3, sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], i = Math.floor(Math.log(bytes) / Math.log(k));\n        return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n    }\n    onBasicUploaderClick() {\n        if (this.hasFiles())\n            this.upload();\n        else\n            this.basicFileInput.nativeElement.click();\n    }\n    getBlockableElement() {\n        return this.el.nativeElement.children[0];\n    }\n    get chooseButtonLabel() {\n        return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n    }\n    get uploadButtonLabel() {\n        return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n    }\n    get cancelButtonLabel() {\n        return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n    }\n    ngOnDestroy() {\n        if (this.content && this.content.nativeElement) {\n            this.content.nativeElement.removeEventListener('dragover', this.onDragOver);\n        }\n        if (this.translationSubscription) {\n            this.translationSubscription.unsubscribe();\n        }\n    }\n}\nFileUpload.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUpload, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: i0.NgZone }, { token: i2.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i3.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });\nFileUpload.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: FileUpload, selector: \"p-fileUpload\", inputs: { name: \"name\", url: \"url\", method: \"method\", multiple: \"multiple\", accept: \"accept\", disabled: \"disabled\", auto: \"auto\", withCredentials: \"withCredentials\", maxFileSize: \"maxFileSize\", invalidFileSizeMessageSummary: \"invalidFileSizeMessageSummary\", invalidFileSizeMessageDetail: \"invalidFileSizeMessageDetail\", invalidFileTypeMessageSummary: \"invalidFileTypeMessageSummary\", invalidFileTypeMessageDetail: \"invalidFileTypeMessageDetail\", invalidFileLimitMessageDetail: \"invalidFileLimitMessageDetail\", invalidFileLimitMessageSummary: \"invalidFileLimitMessageSummary\", style: \"style\", styleClass: \"styleClass\", previewWidth: \"previewWidth\", chooseLabel: \"chooseLabel\", uploadLabel: \"uploadLabel\", cancelLabel: \"cancelLabel\", chooseIcon: \"chooseIcon\", uploadIcon: \"uploadIcon\", cancelIcon: \"cancelIcon\", showUploadButton: \"showUploadButton\", showCancelButton: \"showCancelButton\", mode: \"mode\", headers: \"headers\", customUpload: \"customUpload\", fileLimit: \"fileLimit\", files: \"files\" }, outputs: { onBeforeUpload: \"onBeforeUpload\", onSend: \"onSend\", onUpload: \"onUpload\", onError: \"onError\", onClear: \"onClear\", onRemove: \"onRemove\", onSelect: \"onSelect\", onProgress: \"onProgress\", uploadHandler: \"uploadHandler\" }, host: { classAttribute: \"p-element\" }, queries: [{ propertyName: \"templates\", predicate: PrimeTemplate }], viewQueries: [{ propertyName: \"advancedFileInput\", first: true, predicate: [\"advancedfileinput\"], descendants: true }, { propertyName: \"basicFileInput\", first: true, predicate: [\"basicfileinput\"], descendants: true }, { propertyName: \"content\", first: true, predicate: [\"content\"], descendants: true }], ngImport: i0, template: `\n        <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n            <div class=\"p-fileupload-buttonbar\">\n                <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n                    (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\">\n                    <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n                    <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n                    <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n                </span>\n\n                <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n                <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n                <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n            </div>\n            <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n                <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n                <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n                <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n                    <div *ngIf=\"!fileTemplate\">\n                        <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n                            <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n                            <div class=\"p-fileupload-filename\">{{file.name}}</div>\n                            <div>{{formatSize(file.size)}}</div>\n                            <div>\n                                <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n                            </div>\n                        </div>\n                    </div>\n                    <div *ngIf=\"fileTemplate\">\n                        <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n                    </div>\n                </div>\n                <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n            </div>\n        </div>\n        <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n            <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n            <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n                [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n                <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n                <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n                <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n                    (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n            </span>\n        </div>\n    `, isInline: true, styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"], components: [{ type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"style\", \"styleClass\", \"badgeClass\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { type: i5.ProgressBar, selector: \"p-progressBar\", inputs: [\"value\", \"showValue\", \"style\", \"styleClass\", \"unit\", \"mode\"] }, { type: i6.Messages, selector: \"p-messages\", inputs: [\"value\", \"closable\", \"style\", \"styleClass\", \"enableService\", \"key\", \"escape\", \"severity\", \"showTransitionOptions\", \"hideTransitionOptions\"], outputs: [\"valueChange\"] }], directives: [{ type: i7.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i7.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i7.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i8.Ripple, selector: \"[pRipple]\" }, { type: i7.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i7.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"label\", \"icon\", \"loading\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUpload, decorators: [{\n            type: Component,\n            args: [{ selector: 'p-fileUpload', template: `\n        <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n            <div class=\"p-fileupload-buttonbar\">\n                <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n                    (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\">\n                    <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n                    <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n                    <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n                </span>\n\n                <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n                <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n                <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n            </div>\n            <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n                <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n                <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n                <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n                    <div *ngIf=\"!fileTemplate\">\n                        <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n                            <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n                            <div class=\"p-fileupload-filename\">{{file.name}}</div>\n                            <div>{{formatSize(file.size)}}</div>\n                            <div>\n                                <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n                            </div>\n                        </div>\n                    </div>\n                    <div *ngIf=\"fileTemplate\">\n                        <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n                    </div>\n                </div>\n                <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n            </div>\n        </div>\n        <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n            <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n            <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n                [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n                <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n                <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n                <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n                    (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n            </span>\n        </div>\n    `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n                        'class': 'p-element'\n                    }, styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"] }]\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: i0.NgZone }, { type: i2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i3.PrimeNGConfig }]; }, propDecorators: { name: [{\n                type: Input\n            }], url: [{\n                type: Input\n            }], method: [{\n                type: Input\n            }], multiple: [{\n                type: Input\n            }], accept: [{\n                type: Input\n            }], disabled: [{\n                type: Input\n            }], auto: [{\n                type: Input\n            }], withCredentials: [{\n                type: Input\n            }], maxFileSize: [{\n                type: Input\n            }], invalidFileSizeMessageSummary: [{\n                type: Input\n            }], invalidFileSizeMessageDetail: [{\n                type: Input\n            }], invalidFileTypeMessageSummary: [{\n                type: Input\n            }], invalidFileTypeMessageDetail: [{\n                type: Input\n            }], invalidFileLimitMessageDetail: [{\n                type: Input\n            }], invalidFileLimitMessageSummary: [{\n                type: Input\n            }], style: [{\n                type: Input\n            }], styleClass: [{\n                type: Input\n            }], previewWidth: [{\n                type: Input\n            }], chooseLabel: [{\n                type: Input\n            }], uploadLabel: [{\n                type: Input\n            }], cancelLabel: [{\n                type: Input\n            }], chooseIcon: [{\n                type: Input\n            }], uploadIcon: [{\n                type: Input\n            }], cancelIcon: [{\n                type: Input\n            }], showUploadButton: [{\n                type: Input\n            }], showCancelButton: [{\n                type: Input\n            }], mode: [{\n                type: Input\n            }], headers: [{\n                type: Input\n            }], customUpload: [{\n                type: Input\n            }], fileLimit: [{\n                type: Input\n            }], onBeforeUpload: [{\n                type: Output\n            }], onSend: [{\n                type: Output\n            }], onUpload: [{\n                type: Output\n            }], onError: [{\n                type: Output\n            }], onClear: [{\n                type: Output\n            }], onRemove: [{\n                type: Output\n            }], onSelect: [{\n                type: Output\n            }], onProgress: [{\n                type: Output\n            }], uploadHandler: [{\n                type: Output\n            }], templates: [{\n                type: ContentChildren,\n                args: [PrimeTemplate]\n            }], advancedFileInput: [{\n                type: ViewChild,\n                args: ['advancedfileinput']\n            }], basicFileInput: [{\n                type: ViewChild,\n                args: ['basicfileinput']\n            }], content: [{\n                type: ViewChild,\n                args: ['content']\n            }], files: [{\n                type: Input\n            }] } });\nclass FileUploadModule {\n}\nFileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, declarations: [FileUpload], imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule], exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule] });\nFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule], SharedModule, ButtonModule, ProgressBarModule, MessagesModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule],\n                    exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],\n                    declarations: [FileUpload]\n                }]\n        }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FileUpload, FileUploadModule };\n"]},"metadata":{},"sourceType":"module"}
Index: trip-planner-front/node_modules/.cache/babel-webpack/c128ddca1273b4e34df4d6337d62aeca.json
===================================================================
--- trip-planner-front/node_modules/.cache/babel-webpack/c128ddca1273b4e34df4d6337d62aeca.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/.cache/babel-webpack/c128ddca1273b4e34df4d6337d62aeca.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"ast":null,"code":"import { FormControl } from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../_services/location.service\";\nimport * as i2 from \"../_services/region.service\";\nimport * as i3 from \"@angular/router\";\n\nfunction ExploreComponent_mat_option_18_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r4 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"mat-option\", 14);\n    i0.ɵɵlistener(\"click\", function ExploreComponent_mat_option_18_Template_mat_option_click_0_listener() {\n      i0.ɵɵrestoreView(_r4);\n      const ctx_r3 = i0.ɵɵnextContext();\n      return ctx_r3.onPlaceSelected(ctx_r3.selectedPlace);\n    });\n    i0.ɵɵtext(1);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const option_r2 = ctx.$implicit;\n    i0.ɵɵproperty(\"value\", option_r2);\n    i0.ɵɵadvance(1);\n    i0.ɵɵtextInterpolate1(\" \", option_r2, \" \");\n  }\n}\n\nexport class ExploreComponent {\n  constructor(locationService, regionService, router) {\n    this.locationService = locationService;\n    this.regionService = regionService;\n    this.router = router;\n    this.loading = [false, false, false, false];\n    this.regions = [];\n    this.filteredOptions = new Observable();\n    this.myControl = new FormControl();\n    this.cityName = '';\n    this.selectedPlace = '';\n    this.thirdSubscription = new Subscription();\n    this.text = '';\n  }\n\n  ngOnInit() {\n    this.regionService.getAllCitiesAndRegions().subscribe(data => {\n      this.regions = data;\n    });\n    this.filteredOptions = this.myControl.valueChanges.pipe(startWith(''), map(value => typeof value === 'string' ? value : value.name), map(name => name ? this._filter(name) : this.regions.slice()));\n  }\n\n  displayFn(city) {\n    return city && city ? city : '';\n  }\n\n  _filter(name) {\n    const filterValue = name.toLowerCase();\n    return this.regions.filter(option => option.toLowerCase().includes(filterValue));\n  }\n\n  load(index) {\n    this.loading[index] = true;\n    setTimeout(() => this.loading[index] = false, 1000);\n    this.locationService.getAllLocationsSearch(this.selectedPlace).subscribe(data => {\n      this.router.navigate(['results'], {\n        queryParams: {\n          place: this.selectedPlace\n        }\n      });\n    });\n  }\n\n  onPlaceSelected(selectedPlace) {\n    console.log(this.selectedPlace); // get from view \n  }\n\n}\n\nExploreComponent.ɵfac = function ExploreComponent_Factory(t) {\n  return new (t || ExploreComponent)(i0.ɵɵdirectiveInject(i1.LocationService), i0.ɵɵdirectiveInject(i2.RegionService), i0.ɵɵdirectiveInject(i3.Router));\n};\n\nExploreComponent.ɵcmp = /*@__PURE__*/i0.ɵɵdefineComponent({\n  type: ExploreComponent,\n  selectors: [[\"app-explore\"]],\n  decls: 21,\n  vars: 8,\n  consts: [[\"href\", \"https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css\", \"rel\", \"stylesheet\", \"integrity\", \"sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x\", \"crossorigin\", \"anonymous\"], [\"lang\", \"en\"], [\"charset\", \"utf-8\"], [1, \"navbar\", \"navbar-expand-sm\"], [1, \"navbar-brand\"], [1, \"navbar-nav\", \"ml-auto\"], [1, \"nav-item\"], [1, \"example-form\"], [\"appearance\", \"fill\", 1, \"example-full-width\"], [\"type\", \"text\", \"matInput\", \"\", 3, \"formControl\", \"matAutocomplete\", \"ngModel\", \"ngModelChange\"], [3, \"displayWith\"], [\"auto\", \"matAutocomplete\"], [3, \"value\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"label\", \"Search\", \"icon\", \"pi pi-search\", \"id\", \"button\", 3, \"loading\", \"click\"], [3, \"value\", \"click\"]],\n  template: function ExploreComponent_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵelement(0, \"link\", 0);\n      i0.ɵɵelementStart(1, \"html\", 1);\n      i0.ɵɵelementStart(2, \"head\");\n      i0.ɵɵelement(3, \"meta\", 2);\n      i0.ɵɵelementStart(4, \"title\");\n      i0.ɵɵtext(5, \"Explore\");\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(6, \"body\");\n      i0.ɵɵelementStart(7, \"header\");\n      i0.ɵɵelementStart(8, \"nav\", 3);\n      i0.ɵɵelementStart(9, \"strong\", 4);\n      i0.ɵɵtext(10, \"Trivia Trip\");\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(11, \"ul\", 5);\n      i0.ɵɵelementStart(12, \"li\", 6);\n      i0.ɵɵelementStart(13, \"form\", 7);\n      i0.ɵɵelementStart(14, \"mat-form-field\", 8);\n      i0.ɵɵelementStart(15, \"input\", 9);\n      i0.ɵɵlistener(\"ngModelChange\", function ExploreComponent_Template_input_ngModelChange_15_listener($event) {\n        return ctx.selectedPlace = $event;\n      });\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(16, \"mat-autocomplete\", 10, 11);\n      i0.ɵɵtemplate(18, ExploreComponent_mat_option_18_Template, 2, 2, \"mat-option\", 12);\n      i0.ɵɵpipe(19, \"async\");\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(20, \"p-button\", 13);\n      i0.ɵɵlistener(\"click\", function ExploreComponent_Template_p_button_click_20_listener() {\n        return ctx.load(0);\n      });\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n    }\n\n    if (rf & 2) {\n      const _r0 = i0.ɵɵreference(17);\n\n      i0.ɵɵadvance(15);\n      i0.ɵɵproperty(\"formControl\", ctx.myControl)(\"matAutocomplete\", _r0)(\"ngModel\", ctx.selectedPlace);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"displayWith\", ctx.displayFn);\n      i0.ɵɵadvance(2);\n      i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(19, 6, ctx.filteredOptions));\n      i0.ɵɵadvance(2);\n      i0.ɵɵproperty(\"loading\", ctx.loading[0]);\n    }\n  },\n  styles: [\"#button[_ngcontent-%COMP%]{\\r\\n    margin-left: 20px;\\r\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4cGxvcmUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlCQUFpQjtBQUNyQiIsImZpbGUiOiJleHBsb3JlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjYnV0dG9ue1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbn0iXX0= */\"]\n});","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/src/app/explore/explore.component.ts"],"names":["FormControl","Observable","Subscription","map","startWith","i0","i1","i2","i3","ExploreComponent_mat_option_18_Template","rf","ctx","_r4","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","ExploreComponent_mat_option_18_Template_mat_option_click_0_listener","ɵɵrestoreView","ctx_r3","ɵɵnextContext","onPlaceSelected","selectedPlace","ɵɵtext","ɵɵelementEnd","option_r2","$implicit","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","ExploreComponent","constructor","locationService","regionService","router","loading","regions","filteredOptions","myControl","cityName","thirdSubscription","text","ngOnInit","getAllCitiesAndRegions","subscribe","data","valueChanges","pipe","value","name","_filter","slice","displayFn","city","filterValue","toLowerCase","filter","option","includes","load","index","setTimeout","getAllLocationsSearch","navigate","queryParams","place","console","log","ɵfac","ExploreComponent_Factory","t","ɵɵdirectiveInject","LocationService","RegionService","Router","ɵcmp","ɵɵdefineComponent","type","selectors","decls","vars","consts","template","ExploreComponent_Template","ɵɵelement","ExploreComponent_Template_input_ngModelChange_15_listener","$event","ɵɵtemplate","ɵɵpipe","ExploreComponent_Template_p_button_click_20_listener","_r0","ɵɵreference","ɵɵpipeBind1","styles"],"mappings":"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","sourcesContent":["import { FormControl } from '@angular/forms';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"../_services/location.service\";\r\nimport * as i2 from \"../_services/region.service\";\r\nimport * as i3 from \"@angular/router\";\r\nfunction ExploreComponent_mat_option_18_Template(rf, ctx) { if (rf & 1) {\r\n    const _r4 = i0.ɵɵgetCurrentView();\r\n    i0.ɵɵelementStart(0, \"mat-option\", 14);\r\n    i0.ɵɵlistener(\"click\", function ExploreComponent_mat_option_18_Template_mat_option_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.onPlaceSelected(ctx_r3.selectedPlace); });\r\n    i0.ɵɵtext(1);\r\n    i0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n    const option_r2 = ctx.$implicit;\r\n    i0.ɵɵproperty(\"value\", option_r2);\r\n    i0.ɵɵadvance(1);\r\n    i0.ɵɵtextInterpolate1(\" \", option_r2, \" \");\r\n} }\r\nexport class ExploreComponent {\r\n    constructor(locationService, regionService, router) {\r\n        this.locationService = locationService;\r\n        this.regionService = regionService;\r\n        this.router = router;\r\n        this.loading = [false, false, false, false];\r\n        this.regions = [];\r\n        this.filteredOptions = new Observable();\r\n        this.myControl = new FormControl();\r\n        this.cityName = '';\r\n        this.selectedPlace = '';\r\n        this.thirdSubscription = new Subscription;\r\n        this.text = '';\r\n    }\r\n    ngOnInit() {\r\n        this.regionService.getAllCitiesAndRegions().subscribe(data => {\r\n            this.regions = data;\r\n        });\r\n        this.filteredOptions = this.myControl.valueChanges.pipe(startWith(''), map(value => (typeof value === 'string' ? value : value.name)), map(name => (name ? this._filter(name) : this.regions.slice())));\r\n    }\r\n    displayFn(city) {\r\n        return city && city ? city : '';\r\n    }\r\n    _filter(name) {\r\n        const filterValue = name.toLowerCase();\r\n        return this.regions.filter(option => option.toLowerCase().includes(filterValue));\r\n    }\r\n    load(index) {\r\n        this.loading[index] = true;\r\n        setTimeout(() => this.loading[index] = false, 1000);\r\n        this.locationService.getAllLocationsSearch(this.selectedPlace).subscribe(data => {\r\n            this.router.navigate(['results'], { queryParams: { place: this.selectedPlace } });\r\n        });\r\n    }\r\n    onPlaceSelected(selectedPlace) {\r\n        console.log(this.selectedPlace); // get from view \r\n    }\r\n}\r\nExploreComponent.ɵfac = function ExploreComponent_Factory(t) { return new (t || ExploreComponent)(i0.ɵɵdirectiveInject(i1.LocationService), i0.ɵɵdirectiveInject(i2.RegionService), i0.ɵɵdirectiveInject(i3.Router)); };\r\nExploreComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExploreComponent, selectors: [[\"app-explore\"]], decls: 21, vars: 8, consts: [[\"href\", \"https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css\", \"rel\", \"stylesheet\", \"integrity\", \"sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x\", \"crossorigin\", \"anonymous\"], [\"lang\", \"en\"], [\"charset\", \"utf-8\"], [1, \"navbar\", \"navbar-expand-sm\"], [1, \"navbar-brand\"], [1, \"navbar-nav\", \"ml-auto\"], [1, \"nav-item\"], [1, \"example-form\"], [\"appearance\", \"fill\", 1, \"example-full-width\"], [\"type\", \"text\", \"matInput\", \"\", 3, \"formControl\", \"matAutocomplete\", \"ngModel\", \"ngModelChange\"], [3, \"displayWith\"], [\"auto\", \"matAutocomplete\"], [3, \"value\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"label\", \"Search\", \"icon\", \"pi pi-search\", \"id\", \"button\", 3, \"loading\", \"click\"], [3, \"value\", \"click\"]], template: function ExploreComponent_Template(rf, ctx) { if (rf & 1) {\r\n        i0.ɵɵelement(0, \"link\", 0);\r\n        i0.ɵɵelementStart(1, \"html\", 1);\r\n        i0.ɵɵelementStart(2, \"head\");\r\n        i0.ɵɵelement(3, \"meta\", 2);\r\n        i0.ɵɵelementStart(4, \"title\");\r\n        i0.ɵɵtext(5, \"Explore\");\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementStart(6, \"body\");\r\n        i0.ɵɵelementStart(7, \"header\");\r\n        i0.ɵɵelementStart(8, \"nav\", 3);\r\n        i0.ɵɵelementStart(9, \"strong\", 4);\r\n        i0.ɵɵtext(10, \"Trivia Trip\");\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementStart(11, \"ul\", 5);\r\n        i0.ɵɵelementStart(12, \"li\", 6);\r\n        i0.ɵɵelementStart(13, \"form\", 7);\r\n        i0.ɵɵelementStart(14, \"mat-form-field\", 8);\r\n        i0.ɵɵelementStart(15, \"input\", 9);\r\n        i0.ɵɵlistener(\"ngModelChange\", function ExploreComponent_Template_input_ngModelChange_15_listener($event) { return ctx.selectedPlace = $event; });\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementStart(16, \"mat-autocomplete\", 10, 11);\r\n        i0.ɵɵtemplate(18, ExploreComponent_mat_option_18_Template, 2, 2, \"mat-option\", 12);\r\n        i0.ɵɵpipe(19, \"async\");\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementStart(20, \"p-button\", 13);\r\n        i0.ɵɵlistener(\"click\", function ExploreComponent_Template_p_button_click_20_listener() { return ctx.load(0); });\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n        i0.ɵɵelementEnd();\r\n    } if (rf & 2) {\r\n        const _r0 = i0.ɵɵreference(17);\r\n        i0.ɵɵadvance(15);\r\n        i0.ɵɵproperty(\"formControl\", ctx.myControl)(\"matAutocomplete\", _r0)(\"ngModel\", ctx.selectedPlace);\r\n        i0.ɵɵadvance(1);\r\n        i0.ɵɵproperty(\"displayWith\", ctx.displayFn);\r\n        i0.ɵɵadvance(2);\r\n        i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(19, 6, ctx.filteredOptions));\r\n        i0.ɵɵadvance(2);\r\n        i0.ɵɵproperty(\"loading\", ctx.loading[0]);\r\n    } }, styles: [\"#button[_ngcontent-%COMP%]{\\r\\n    margin-left: 20px;\\r\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4cGxvcmUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlCQUFpQjtBQUNyQiIsImZpbGUiOiJleHBsb3JlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjYnV0dG9ue1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbn0iXX0= */\"] });\r\n"]},"metadata":{},"sourceType":"module"}
Index: trip-planner-front/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/stepper.js
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/stepper.js	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/stepper.js	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,732 @@
+import { FocusKeyManager } from '@angular/cdk/a11y';
+import { Directionality, BidiModule } from '@angular/cdk/bidi';
+import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
+import { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';
+import { DOCUMENT } from '@angular/common';
+import { Directive, ElementRef, TemplateRef, InjectionToken, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, forwardRef, Optional, ContentChild, ViewChild, Input, Output, QueryList, ChangeDetectorRef, ContentChildren, HostListener, NgModule } from '@angular/core';
+import { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
+import { Subject, of } from 'rxjs';
+import { startWith, takeUntil } from 'rxjs/operators';
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import * as ɵngcc0 from '@angular/core';
+import * as ɵngcc1 from '@angular/cdk/bidi';
+
+function CdkStep_ng_template_0_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵprojection(0);
+} }
+const _c0 = ["*"];
+class CdkStepHeader {
+    constructor(_elementRef) {
+        this._elementRef = _elementRef;
+    }
+    /** Focuses the step header. */
+    focus() {
+        this._elementRef.nativeElement.focus();
+    }
+}
+CdkStepHeader.ɵfac = function CdkStepHeader_Factory(t) { return new (t || CdkStepHeader)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };
+CdkStepHeader.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkStepHeader, selectors: [["", "cdkStepHeader", ""]], hostAttrs: ["role", "tab"] });
+CdkStepHeader.ctorParameters = () => [
+    { type: ElementRef }
+];
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStepHeader, [{
+        type: Directive,
+        args: [{
+                selector: '[cdkStepHeader]',
+                host: {
+                    'role': 'tab'
+                }
+            }]
+    }], function () { return [{ type: ɵngcc0.ElementRef }]; }, null); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+class CdkStepLabel {
+    constructor(/** @docs-private */ template) {
+        this.template = template;
+    }
+}
+CdkStepLabel.ɵfac = function CdkStepLabel_Factory(t) { return new (t || CdkStepLabel)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };
+CdkStepLabel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkStepLabel, selectors: [["", "cdkStepLabel", ""]] });
+CdkStepLabel.ctorParameters = () => [
+    { type: TemplateRef }
+];
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStepLabel, [{
+        type: Directive,
+        args: [{
+                selector: '[cdkStepLabel]'
+            }]
+    }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/** Used to generate unique ID for each stepper component. */
+let nextId = 0;
+/** Change event emitted on selection changes. */
+class StepperSelectionEvent {
+}
+/** Enum to represent the different states of the steps. */
+const STEP_STATE = {
+    NUMBER: 'number',
+    EDIT: 'edit',
+    DONE: 'done',
+    ERROR: 'error'
+};
+/** InjectionToken that can be used to specify the global stepper options. */
+const STEPPER_GLOBAL_OPTIONS = new InjectionToken('STEPPER_GLOBAL_OPTIONS');
+class CdkStep {
+    constructor(_stepper, stepperOptions) {
+        this._stepper = _stepper;
+        /** Whether user has attempted to move away from the step. */
+        this.interacted = false;
+        /** Emits when the user has attempted to move away from the step. */
+        this.interactedStream = new EventEmitter();
+        this._editable = true;
+        this._optional = false;
+        this._completedOverride = null;
+        this._customError = null;
+        this._stepperOptions = stepperOptions ? stepperOptions : {};
+        this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;
+    }
+    /** Whether the user can return to this step once it has been marked as completed. */
+    get editable() {
+        return this._editable;
+    }
+    set editable(value) {
+        this._editable = coerceBooleanProperty(value);
+    }
+    /** Whether the completion of step is optional. */
+    get optional() {
+        return this._optional;
+    }
+    set optional(value) {
+        this._optional = coerceBooleanProperty(value);
+    }
+    /** Whether step is marked as completed. */
+    get completed() {
+        return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;
+    }
+    set completed(value) {
+        this._completedOverride = coerceBooleanProperty(value);
+    }
+    _getDefaultCompleted() {
+        return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;
+    }
+    /** Whether step has an error. */
+    get hasError() {
+        return this._customError == null ? this._getDefaultError() : this._customError;
+    }
+    set hasError(value) {
+        this._customError = coerceBooleanProperty(value);
+    }
+    _getDefaultError() {
+        return this.stepControl && this.stepControl.invalid && this.interacted;
+    }
+    /** Selects this step component. */
+    select() {
+        this._stepper.selected = this;
+    }
+    /** Resets the step to its initial state. Note that this includes resetting form data. */
+    reset() {
+        this.interacted = false;
+        if (this._completedOverride != null) {
+            this._completedOverride = false;
+        }
+        if (this._customError != null) {
+            this._customError = false;
+        }
+        if (this.stepControl) {
+            this.stepControl.reset();
+        }
+    }
+    ngOnChanges() {
+        // Since basically all inputs of the MatStep get proxied through the view down to the
+        // underlying MatStepHeader, we have to make sure that change detection runs correctly.
+        this._stepper._stateChanged();
+    }
+    _markAsInteracted() {
+        if (!this.interacted) {
+            this.interacted = true;
+            this.interactedStream.emit(this);
+        }
+    }
+    /** Determines whether the error state can be shown. */
+    _showError() {
+        var _a;
+        // We want to show the error state either if the user opted into/out of it using the
+        // global options, or if they've explicitly set it through the `hasError` input.
+        return (_a = this._stepperOptions.showError) !== null && _a !== void 0 ? _a : this._customError != null;
+    }
+}
+CdkStep.ɵfac = function CdkStep_Factory(t) { return new (t || CdkStep)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => CdkStepper)), ɵngcc0.ɵɵdirectiveInject(STEPPER_GLOBAL_OPTIONS, 8)); };
+CdkStep.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CdkStep, selectors: [["cdk-step"]], contentQueries: function CdkStep_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
+        ɵngcc0.ɵɵcontentQuery(dirIndex, CdkStepLabel, 5);
+    } if (rf & 2) {
+        let _t;
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.stepLabel = _t.first);
+    } }, viewQuery: function CdkStep_Query(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵviewQuery(TemplateRef, 7);
+    } if (rf & 2) {
+        let _t;
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.content = _t.first);
+    } }, inputs: { editable: "editable", optional: "optional", completed: "completed", hasError: "hasError", stepControl: "stepControl", label: "label", errorMessage: "errorMessage", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], state: "state" }, outputs: { interactedStream: "interacted" }, exportAs: ["cdkStep"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function CdkStep_Template(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵprojectionDef();
+        ɵngcc0.ɵɵtemplate(0, CdkStep_ng_template_0_Template, 1, 0, "ng-template");
+    } }, encapsulation: 2, changeDetection: 0 });
+CdkStep.ctorParameters = () => [
+    { type: CdkStepper, decorators: [{ type: Inject, args: [forwardRef(() => CdkStepper),] }] },
+    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [STEPPER_GLOBAL_OPTIONS,] }] }
+];
+CdkStep.propDecorators = {
+    stepLabel: [{ type: ContentChild, args: [CdkStepLabel,] }],
+    content: [{ type: ViewChild, args: [TemplateRef, { static: true },] }],
+    stepControl: [{ type: Input }],
+    interactedStream: [{ type: Output, args: ['interacted',] }],
+    label: [{ type: Input }],
+    errorMessage: [{ type: Input }],
+    ariaLabel: [{ type: Input, args: ['aria-label',] }],
+    ariaLabelledby: [{ type: Input, args: ['aria-labelledby',] }],
+    state: [{ type: Input }],
+    editable: [{ type: Input }],
+    optional: [{ type: Input }],
+    completed: [{ type: Input }],
+    hasError: [{ type: Input }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStep, [{
+        type: Component,
+        args: [{
+                selector: 'cdk-step',
+                exportAs: 'cdkStep',
+                template: '<ng-template><ng-content></ng-content></ng-template>',
+                encapsulation: ViewEncapsulation.None,
+                changeDetection: ChangeDetectionStrategy.OnPush
+            }]
+    }], function () { return [{ type: CdkStepper, decorators: [{
+                type: Inject,
+                args: [forwardRef(() => CdkStepper)]
+            }] }, { type: undefined, decorators: [{
+                type: Optional
+            }, {
+                type: Inject,
+                args: [STEPPER_GLOBAL_OPTIONS]
+            }] }]; }, { interactedStream: [{
+            type: Output,
+            args: ['interacted']
+        }], editable: [{
+            type: Input
+        }], optional: [{
+            type: Input
+        }], completed: [{
+            type: Input
+        }], hasError: [{
+            type: Input
+        }], stepLabel: [{
+            type: ContentChild,
+            args: [CdkStepLabel]
+        }], content: [{
+            type: ViewChild,
+            args: [TemplateRef, { static: true }]
+        }], stepControl: [{
+            type: Input
+        }], label: [{
+            type: Input
+        }], errorMessage: [{
+            type: Input
+        }], ariaLabel: [{
+            type: Input,
+            args: ['aria-label']
+        }], ariaLabelledby: [{
+            type: Input,
+            args: ['aria-labelledby']
+        }], state: [{
+            type: Input
+        }] }); })();
+class CdkStepper {
+    constructor(_dir, _changeDetectorRef, _elementRef, 
+    /**
+     * @deprecated No longer in use, to be removed.
+     * @breaking-change 13.0.0
+     */
+    _document) {
+        this._dir = _dir;
+        this._changeDetectorRef = _changeDetectorRef;
+        this._elementRef = _elementRef;
+        /** Emits when the component is destroyed. */
+        this._destroyed = new Subject();
+        /** Steps that belong to the current stepper, excluding ones from nested steppers. */
+        this.steps = new QueryList();
+        /** List of step headers sorted based on their DOM order. */
+        this._sortedHeaders = new QueryList();
+        this._linear = false;
+        this._selectedIndex = 0;
+        /** Event emitted when the selected step has changed. */
+        this.selectionChange = new EventEmitter();
+        /**
+         * @deprecated To be turned into a private property. Use `orientation` instead.
+         * @breaking-change 13.0.0
+         */
+        this._orientation = 'horizontal';
+        this._groupId = nextId++;
+    }
+    /** Whether the validity of previous steps should be checked or not. */
+    get linear() {
+        return this._linear;
+    }
+    set linear(value) {
+        this._linear = coerceBooleanProperty(value);
+    }
+    /** The index of the selected step. */
+    get selectedIndex() {
+        return this._selectedIndex;
+    }
+    set selectedIndex(index) {
+        var _a;
+        const newIndex = coerceNumberProperty(index);
+        if (this.steps && this._steps) {
+            // Ensure that the index can't be out of bounds.
+            if (!this._isValidIndex(index) && (typeof ngDevMode === 'undefined' || ngDevMode)) {
+                throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');
+            }
+            (_a = this.selected) === null || _a === void 0 ? void 0 : _a._markAsInteracted();
+            if (this._selectedIndex !== newIndex && !this._anyControlsInvalidOrPending(newIndex) &&
+                (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {
+                this._updateSelectedItemIndex(index);
+            }
+        }
+        else {
+            this._selectedIndex = newIndex;
+        }
+    }
+    /** The step that is selected. */
+    get selected() {
+        return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined;
+    }
+    set selected(step) {
+        this.selectedIndex = (step && this.steps) ? this.steps.toArray().indexOf(step) : -1;
+    }
+    /** Orientation of the stepper. */
+    get orientation() { return this._orientation; }
+    set orientation(value) {
+        // This is a protected method so that `MatSteppter` can hook into it.
+        this._orientation = value;
+        if (this._keyManager) {
+            this._keyManager.withVerticalOrientation(value === 'vertical');
+        }
+    }
+    ngAfterContentInit() {
+        this._steps.changes
+            .pipe(startWith(this._steps), takeUntil(this._destroyed))
+            .subscribe((steps) => {
+            this.steps.reset(steps.filter(step => step._stepper === this));
+            this.steps.notifyOnChanges();
+        });
+    }
+    ngAfterViewInit() {
+        // If the step headers are defined outside of the `ngFor` that renders the steps, like in the
+        // Material stepper, they won't appear in the `QueryList` in the same order as they're
+        // rendered in the DOM which will lead to incorrect keyboard navigation. We need to sort
+        // them manually to ensure that they're correct. Alternatively, we can change the Material
+        // template to inline the headers in the `ngFor`, but that'll result in a lot of
+        // code duplciation. See #23539.
+        this._stepHeader.changes
+            .pipe(startWith(this._stepHeader), takeUntil(this._destroyed))
+            .subscribe((headers) => {
+            this._sortedHeaders.reset(headers.toArray().sort((a, b) => {
+                const documentPosition = a._elementRef.nativeElement.compareDocumentPosition(b._elementRef.nativeElement);
+                // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.
+                // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition
+                // tslint:disable-next-line:no-bitwise
+                return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
+            }));
+            this._sortedHeaders.notifyOnChanges();
+        });
+        // Note that while the step headers are content children by default, any components that
+        // extend this one might have them as view children. We initialize the keyboard handling in
+        // AfterViewInit so we're guaranteed for both view and content children to be defined.
+        this._keyManager = new FocusKeyManager(this._sortedHeaders)
+            .withWrap()
+            .withHomeAndEnd()
+            .withVerticalOrientation(this._orientation === 'vertical');
+        (this._dir ? this._dir.change : of())
+            .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))
+            .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));
+        this._keyManager.updateActiveItem(this._selectedIndex);
+        // No need to `takeUntil` here, because we're the ones destroying `steps`.
+        this.steps.changes.subscribe(() => {
+            if (!this.selected) {
+                this._selectedIndex = Math.max(this._selectedIndex - 1, 0);
+            }
+        });
+        // The logic which asserts that the selected index is within bounds doesn't run before the
+        // steps are initialized, because we don't how many steps there are yet so we may have an
+        // invalid index on init. If that's the case, auto-correct to the default so we don't throw.
+        if (!this._isValidIndex(this._selectedIndex)) {
+            this._selectedIndex = 0;
+        }
+    }
+    ngOnDestroy() {
+        this.steps.destroy();
+        this._sortedHeaders.destroy();
+        this._destroyed.next();
+        this._destroyed.complete();
+    }
+    /** Selects and focuses the next step in list. */
+    next() {
+        this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);
+    }
+    /** Selects and focuses the previous step in list. */
+    previous() {
+        this.selectedIndex = Math.max(this._selectedIndex - 1, 0);
+    }
+    /** Resets the stepper to its initial state. Note that this includes clearing form data. */
+    reset() {
+        this._updateSelectedItemIndex(0);
+        this.steps.forEach(step => step.reset());
+        this._stateChanged();
+    }
+    /** Returns a unique id for each step label element. */
+    _getStepLabelId(i) {
+        return `cdk-step-label-${this._groupId}-${i}`;
+    }
+    /** Returns unique id for each step content element. */
+    _getStepContentId(i) {
+        return `cdk-step-content-${this._groupId}-${i}`;
+    }
+    /** Marks the component to be change detected. */
+    _stateChanged() {
+        this._changeDetectorRef.markForCheck();
+    }
+    /** Returns position state of the step with the given index. */
+    _getAnimationDirection(index) {
+        const position = index - this._selectedIndex;
+        if (position < 0) {
+            return this._layoutDirection() === 'rtl' ? 'next' : 'previous';
+        }
+        else if (position > 0) {
+            return this._layoutDirection() === 'rtl' ? 'previous' : 'next';
+        }
+        return 'current';
+    }
+    /** Returns the type of icon to be displayed. */
+    _getIndicatorType(index, state = STEP_STATE.NUMBER) {
+        const step = this.steps.toArray()[index];
+        const isCurrentStep = this._isCurrentStep(index);
+        return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :
+            this._getGuidelineLogic(step, isCurrentStep, state);
+    }
+    _getDefaultIndicatorLogic(step, isCurrentStep) {
+        if (step._showError() && step.hasError && !isCurrentStep) {
+            return STEP_STATE.ERROR;
+        }
+        else if (!step.completed || isCurrentStep) {
+            return STEP_STATE.NUMBER;
+        }
+        else {
+            return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;
+        }
+    }
+    _getGuidelineLogic(step, isCurrentStep, state = STEP_STATE.NUMBER) {
+        if (step._showError() && step.hasError && !isCurrentStep) {
+            return STEP_STATE.ERROR;
+        }
+        else if (step.completed && !isCurrentStep) {
+            return STEP_STATE.DONE;
+        }
+        else if (step.completed && isCurrentStep) {
+            return state;
+        }
+        else if (step.editable && isCurrentStep) {
+            return STEP_STATE.EDIT;
+        }
+        else {
+            return state;
+        }
+    }
+    _isCurrentStep(index) {
+        return this._selectedIndex === index;
+    }
+    /** Returns the index of the currently-focused step header. */
+    _getFocusIndex() {
+        return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;
+    }
+    _updateSelectedItemIndex(newIndex) {
+        const stepsArray = this.steps.toArray();
+        this.selectionChange.emit({
+            selectedIndex: newIndex,
+            previouslySelectedIndex: this._selectedIndex,
+            selectedStep: stepsArray[newIndex],
+            previouslySelectedStep: stepsArray[this._selectedIndex],
+        });
+        // If focus is inside the stepper, move it to the next header, otherwise it may become
+        // lost when the active step content is hidden. We can't be more granular with the check
+        // (e.g. checking whether focus is inside the active step), because we don't have a
+        // reference to the elements that are rendering out the content.
+        this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :
+            this._keyManager.updateActiveItem(newIndex);
+        this._selectedIndex = newIndex;
+        this._stateChanged();
+    }
+    _onKeydown(event) {
+        const hasModifier = hasModifierKey(event);
+        const keyCode = event.keyCode;
+        const manager = this._keyManager;
+        if (manager.activeItemIndex != null && !hasModifier &&
+            (keyCode === SPACE || keyCode === ENTER)) {
+            this.selectedIndex = manager.activeItemIndex;
+            event.preventDefault();
+        }
+        else {
+            manager.onKeydown(event);
+        }
+    }
+    _anyControlsInvalidOrPending(index) {
+        if (this._linear && index >= 0) {
+            return this.steps.toArray().slice(0, index).some(step => {
+                const control = step.stepControl;
+                const isIncomplete = control ? (control.invalid || control.pending || !step.interacted) : !step.completed;
+                return isIncomplete && !step.optional && !step._completedOverride;
+            });
+        }
+        return false;
+    }
+    _layoutDirection() {
+        return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
+    }
+    /** Checks whether the stepper contains the focused element. */
+    _containsFocus() {
+        const stepperElement = this._elementRef.nativeElement;
+        const focusedElement = _getFocusedElementPierceShadowDom();
+        return stepperElement === focusedElement || stepperElement.contains(focusedElement);
+    }
+    /** Checks whether the passed-in index is a valid step index. */
+    _isValidIndex(index) {
+        return index > -1 && (!this.steps || index < this.steps.length);
+    }
+}
+CdkStepper.ɵfac = function CdkStepper_Factory(t) { return new (t || CdkStepper)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };
+CdkStepper.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkStepper, selectors: [["", "cdkStepper", ""]], contentQueries: function CdkStepper_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
+        ɵngcc0.ɵɵcontentQuery(dirIndex, CdkStep, 5);
+        ɵngcc0.ɵɵcontentQuery(dirIndex, CdkStepHeader, 5);
+    } if (rf & 2) {
+        let _t;
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._steps = _t);
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._stepHeader = _t);
+    } }, inputs: { linear: "linear", selectedIndex: "selectedIndex", selected: "selected", orientation: "orientation" }, outputs: { selectionChange: "selectionChange" }, exportAs: ["cdkStepper"] });
+CdkStepper.ctorParameters = () => [
+    { type: Directionality, decorators: [{ type: Optional }] },
+    { type: ChangeDetectorRef },
+    { type: ElementRef },
+    { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
+];
+CdkStepper.propDecorators = {
+    _steps: [{ type: ContentChildren, args: [CdkStep, { descendants: true },] }],
+    _stepHeader: [{ type: ContentChildren, args: [CdkStepHeader, { descendants: true },] }],
+    linear: [{ type: Input }],
+    selectedIndex: [{ type: Input }],
+    selected: [{ type: Input }],
+    selectionChange: [{ type: Output }],
+    orientation: [{ type: Input }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStepper, [{
+        type: Directive,
+        args: [{
+                selector: '[cdkStepper]',
+                exportAs: 'cdkStepper'
+            }]
+    }], function () { return [{ type: ɵngcc1.Directionality, decorators: [{
+                type: Optional
+            }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: undefined, decorators: [{
+                type: Inject,
+                args: [DOCUMENT]
+            }] }]; }, { selectionChange: [{
+            type: Output
+        }], linear: [{
+            type: Input
+        }], selectedIndex: [{
+            type: Input
+        }], selected: [{
+            type: Input
+        }], orientation: [{
+            type: Input
+        }], _steps: [{
+            type: ContentChildren,
+            args: [CdkStep, { descendants: true }]
+        }], _stepHeader: [{
+            type: ContentChildren,
+            args: [CdkStepHeader, { descendants: true }]
+        }] }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/** Button that moves to the next step in a stepper workflow. */
+class CdkStepperNext {
+    constructor(_stepper) {
+        this._stepper = _stepper;
+        /** Type of the next button. Defaults to "submit" if not specified. */
+        this.type = 'submit';
+    }
+    // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.
+    // In Ivy the `host` bindings will be merged when this class is extended, whereas in
+    // ViewEngine they're overwritten.
+    // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
+    // tslint:disable-next-line:no-host-decorator-in-concrete
+    _handleClick() {
+        this._stepper.next();
+    }
+}
+CdkStepperNext.ɵfac = function CdkStepperNext_Factory(t) { return new (t || CdkStepperNext)(ɵngcc0.ɵɵdirectiveInject(CdkStepper)); };
+CdkStepperNext.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkStepperNext, selectors: [["button", "cdkStepperNext", ""]], hostVars: 1, hostBindings: function CdkStepperNext_HostBindings(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵlistener("click", function CdkStepperNext_click_HostBindingHandler() { return ctx._handleClick(); });
+    } if (rf & 2) {
+        ɵngcc0.ɵɵhostProperty("type", ctx.type);
+    } }, inputs: { type: "type" } });
+CdkStepperNext.ctorParameters = () => [
+    { type: CdkStepper }
+];
+CdkStepperNext.propDecorators = {
+    type: [{ type: Input }],
+    _handleClick: [{ type: HostListener, args: ['click',] }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStepperNext, [{
+        type: Directive,
+        args: [{
+                selector: 'button[cdkStepperNext]',
+                host: {
+                    '[type]': 'type'
+                }
+            }]
+    }], function () { return [{ type: CdkStepper }]; }, { type: [{
+            type: Input
+        }], 
+    // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.
+    // In Ivy the `host` bindings will be merged when this class is extended, whereas in
+    // ViewEngine they're overwritten.
+    // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
+    // tslint:disable-next-line:no-host-decorator-in-concrete
+    _handleClick: [{
+            type: HostListener,
+            args: ['click']
+        }] }); })();
+/** Button that moves to the previous step in a stepper workflow. */
+class CdkStepperPrevious {
+    constructor(_stepper) {
+        this._stepper = _stepper;
+        /** Type of the previous button. Defaults to "button" if not specified. */
+        this.type = 'button';
+    }
+    // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.
+    // In Ivy the `host` bindings will be merged when this class is extended, whereas in
+    // ViewEngine they're overwritten.
+    // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
+    // tslint:disable-next-line:no-host-decorator-in-concrete
+    _handleClick() {
+        this._stepper.previous();
+    }
+}
+CdkStepperPrevious.ɵfac = function CdkStepperPrevious_Factory(t) { return new (t || CdkStepperPrevious)(ɵngcc0.ɵɵdirectiveInject(CdkStepper)); };
+CdkStepperPrevious.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkStepperPrevious, selectors: [["button", "cdkStepperPrevious", ""]], hostVars: 1, hostBindings: function CdkStepperPrevious_HostBindings(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵlistener("click", function CdkStepperPrevious_click_HostBindingHandler() { return ctx._handleClick(); });
+    } if (rf & 2) {
+        ɵngcc0.ɵɵhostProperty("type", ctx.type);
+    } }, inputs: { type: "type" } });
+CdkStepperPrevious.ctorParameters = () => [
+    { type: CdkStepper }
+];
+CdkStepperPrevious.propDecorators = {
+    type: [{ type: Input }],
+    _handleClick: [{ type: HostListener, args: ['click',] }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStepperPrevious, [{
+        type: Directive,
+        args: [{
+                selector: 'button[cdkStepperPrevious]',
+                host: {
+                    '[type]': 'type'
+                }
+            }]
+    }], function () { return [{ type: CdkStepper }]; }, { type: [{
+            type: Input
+        }], 
+    // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.
+    // In Ivy the `host` bindings will be merged when this class is extended, whereas in
+    // ViewEngine they're overwritten.
+    // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
+    // tslint:disable-next-line:no-host-decorator-in-concrete
+    _handleClick: [{
+            type: HostListener,
+            args: ['click']
+        }] }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+class CdkStepperModule {
+}
+CdkStepperModule.ɵfac = function CdkStepperModule_Factory(t) { return new (t || CdkStepperModule)(); };
+CdkStepperModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CdkStepperModule });
+CdkStepperModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[BidiModule]] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CdkStepperModule, [{
+        type: NgModule,
+        args: [{
+                imports: [BidiModule],
+                exports: [
+                    CdkStep,
+                    CdkStepper,
+                    CdkStepHeader,
+                    CdkStepLabel,
+                    CdkStepperNext,
+                    CdkStepperPrevious,
+                ],
+                declarations: [
+                    CdkStep,
+                    CdkStepper,
+                    CdkStepHeader,
+                    CdkStepLabel,
+                    CdkStepperNext,
+                    CdkStepperPrevious,
+                ]
+            }]
+    }], null, null); })();
+(function () { (typeof ngJitMode === "undefined" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CdkStepperModule, { declarations: function () { return [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]; }, imports: function () { return [BidiModule]; }, exports: function () { return [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]; } }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { CdkStep, CdkStepHeader, CdkStepLabel, CdkStepper, CdkStepperModule, CdkStepperNext, CdkStepperPrevious, STEPPER_GLOBAL_OPTIONS, STEP_STATE, StepperSelectionEvent };
+
+//# sourceMappingURL=stepper.js.map
Index: trip-planner-front/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/stepper.js.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/stepper.js.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/stepper.js.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper.js","sources":["../../../../../../src/cdk/stepper/step-header.ts","../../../../../../src/cdk/stepper/step-label.ts","../../../../../../src/cdk/stepper/stepper.ts","../../../../../../src/cdk/stepper/stepper-button.ts","../../../../../../src/cdk/stepper/stepper-module.ts","../../../../../../src/cdk/stepper/public-api.ts","../../../../../../src/cdk/stepper/index.ts"],"names":["observableOf"],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n  selector: '[cdkStepHeader]',\n  host: {\n    'role': 'tab',\n  },\n})\nexport class CdkStepHeader implements FocusableOption {\n  constructor(public _elementRef: ElementRef<HTMLElement>) {}\n\n  /** Focuses the step header. */\n  focus() {\n    this._elementRef.nativeElement.focus();\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n  constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  NumberInput\n} from '@angular/cdk/coercion';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  InjectionToken,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n  AfterContentInit,\n} from '@angular/core';\nimport {_getFocusedElementPierceShadowDom} from '@angular/cdk/platform';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {CdkStepHeader} from './step-header';\nimport {CdkStepLabel} from './step-label';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\n\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport type StepContentPositionState = 'previous'|'current'|'next';\n\n/** Possible orientation of a stepper. */\nexport type StepperOrientation = 'horizontal'|'vertical';\n\n/** Change event emitted on selection changes. */\nexport class StepperSelectionEvent {\n  /** Index of the step now selected. */\n  selectedIndex: number;\n\n  /** Index of the step previously selected. */\n  previouslySelectedIndex: number;\n\n  /** The step instance now selected. */\n  selectedStep: CdkStep;\n\n  /** The step instance previously selected. */\n  previouslySelectedStep: CdkStep;\n}\n\n/** The state of each step. */\nexport type StepState = 'number'|'edit'|'done'|'error'|string;\n\n/** Enum to represent the different states of the steps. */\nexport const STEP_STATE = {\n  NUMBER: 'number',\n  EDIT: 'edit',\n  DONE: 'done',\n  ERROR: 'error'\n};\n\n/** InjectionToken that can be used to specify the global stepper options. */\nexport const STEPPER_GLOBAL_OPTIONS = new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n  /**\n   * Whether the stepper should display an error state or not.\n   * Default behavior is assumed to be false.\n   */\n  showError?: boolean;\n\n  /**\n   * Whether the stepper should display the default indicator type\n   * or not.\n   * Default behavior is assumed to be true.\n   */\n  displayDefaultIndicatorType?: boolean;\n}\n\n@Component({\n  selector: 'cdk-step',\n  exportAs: 'cdkStep',\n  template: '<ng-template><ng-content></ng-content></ng-template>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n  private _stepperOptions: StepperOptions;\n  _displayDefaultIndicatorType: boolean;\n\n  /** Template for step label if it exists. */\n  @ContentChild(CdkStepLabel) stepLabel: CdkStepLabel;\n\n  /** Template for step content. */\n  @ViewChild(TemplateRef, {static: true}) content: TemplateRef<any>;\n\n  /** The top level abstract control of the step. */\n  @Input() stepControl: AbstractControlLike;\n\n  /** Whether user has attempted to move away from the step. */\n  interacted = false;\n\n  /** Emits when the user has attempted to move away from the step. */\n  @Output('interacted')\n  readonly interactedStream: EventEmitter<CdkStep> = new EventEmitter<CdkStep>();\n\n  /** Plain text label of the step. */\n  @Input() label: string;\n\n  /** Error message to display when there's an error. */\n  @Input() errorMessage: string;\n\n  /** Aria label for the tab. */\n  @Input('aria-label') ariaLabel: string;\n\n  /**\n   * Reference to the element that the tab is labelled by.\n   * Will be cleared if `aria-label` is set at the same time.\n   */\n  @Input('aria-labelledby') ariaLabelledby: string;\n\n  /** State of the step. */\n  @Input() state: StepState;\n\n  /** Whether the user can return to this step once it has been marked as completed. */\n  @Input()\n  get editable(): boolean {\n    return this._editable;\n  }\n  set editable(value: boolean) {\n    this._editable = coerceBooleanProperty(value);\n  }\n  private _editable = true;\n\n  /** Whether the completion of step is optional. */\n  @Input()\n  get optional(): boolean {\n    return this._optional;\n  }\n  set optional(value: boolean) {\n    this._optional = coerceBooleanProperty(value);\n  }\n  private _optional = false;\n\n  /** Whether step is marked as completed. */\n  @Input()\n  get completed(): boolean {\n    return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n  }\n  set completed(value: boolean) {\n    this._completedOverride = coerceBooleanProperty(value);\n  }\n  _completedOverride: boolean|null = null;\n\n  private _getDefaultCompleted() {\n    return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n  }\n\n  /** Whether step has an error. */\n  @Input()\n  get hasError(): boolean {\n    return this._customError == null ? this._getDefaultError() : this._customError;\n  }\n  set hasError(value: boolean) {\n    this._customError = coerceBooleanProperty(value);\n  }\n  private _customError: boolean|null = null;\n\n  private _getDefaultError() {\n    return this.stepControl && this.stepControl.invalid && this.interacted;\n  }\n\n  constructor(\n      @Inject(forwardRef(() => CdkStepper)) public _stepper: CdkStepper,\n      @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n    this._stepperOptions = stepperOptions ? stepperOptions : {};\n    this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n  }\n\n  /** Selects this step component. */\n  select(): void {\n    this._stepper.selected = this;\n  }\n\n  /** Resets the step to its initial state. Note that this includes resetting form data. */\n  reset(): void {\n    this.interacted = false;\n\n    if (this._completedOverride != null) {\n      this._completedOverride = false;\n    }\n\n    if (this._customError != null) {\n      this._customError = false;\n    }\n\n    if (this.stepControl) {\n      this.stepControl.reset();\n    }\n  }\n\n  ngOnChanges() {\n    // Since basically all inputs of the MatStep get proxied through the view down to the\n    // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n    this._stepper._stateChanged();\n  }\n\n  _markAsInteracted() {\n    if (!this.interacted) {\n      this.interacted = true;\n      this.interactedStream.emit(this);\n    }\n  }\n\n  /** Determines whether the error state can be shown. */\n  _showError(): boolean {\n    // We want to show the error state either if the user opted into/out of it using the\n    // global options, or if they've explicitly set it through the `hasError` input.\n    return this._stepperOptions.showError ?? this._customError != null;\n  }\n\n  static ngAcceptInputType_editable: BooleanInput;\n  static ngAcceptInputType_hasError: BooleanInput;\n  static ngAcceptInputType_optional: BooleanInput;\n  static ngAcceptInputType_completed: BooleanInput;\n}\n\n@Directive({\n  selector: '[cdkStepper]',\n  exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {\n  /** Emits when the component is destroyed. */\n  protected readonly _destroyed = new Subject<void>();\n\n  /** Used for managing keyboard focus. */\n  private _keyManager: FocusKeyManager<FocusableOption>;\n\n  /** Full list of steps inside the stepper, including inside nested steppers. */\n  @ContentChildren(CdkStep, {descendants: true}) _steps: QueryList<CdkStep>;\n\n  /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n  readonly steps: QueryList<CdkStep> = new QueryList<CdkStep>();\n\n  /** The list of step headers of the steps in the stepper. */\n  @ContentChildren(CdkStepHeader, {descendants: true}) _stepHeader: QueryList<CdkStepHeader>;\n\n  /** List of step headers sorted based on their DOM order. */\n  private _sortedHeaders = new QueryList<CdkStepHeader>();\n\n  /** Whether the validity of previous steps should be checked or not. */\n  @Input()\n  get linear(): boolean {\n    return this._linear;\n  }\n  set linear(value: boolean) {\n    this._linear = coerceBooleanProperty(value);\n  }\n  private _linear = false;\n\n  /** The index of the selected step. */\n  @Input()\n  get selectedIndex() {\n    return this._selectedIndex;\n  }\n  set selectedIndex(index: number) {\n    const newIndex = coerceNumberProperty(index);\n\n    if (this.steps && this._steps) {\n      // Ensure that the index can't be out of bounds.\n      if (!this._isValidIndex(index) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n      }\n\n      this.selected?._markAsInteracted();\n\n      if (this._selectedIndex !== newIndex && !this._anyControlsInvalidOrPending(newIndex) &&\n          (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n        this._updateSelectedItemIndex(index);\n      }\n    } else {\n      this._selectedIndex = newIndex;\n    }\n  }\n  private _selectedIndex = 0;\n\n  /** The step that is selected. */\n  @Input()\n  get selected(): CdkStep | undefined {\n    return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined;\n  }\n  set selected(step: CdkStep | undefined) {\n    this.selectedIndex = (step && this.steps) ? this.steps.toArray().indexOf(step) : -1;\n  }\n\n  /** Event emitted when the selected step has changed. */\n  @Output() readonly selectionChange = new EventEmitter<StepperSelectionEvent>();\n\n  /** Used to track unique ID for each stepper component. */\n  _groupId: number;\n\n  /** Orientation of the stepper. */\n  @Input()\n  get orientation(): StepperOrientation { return this._orientation; }\n  set orientation(value: StepperOrientation) {\n    // This is a protected method so that `MatSteppter` can hook into it.\n    this._orientation = value;\n\n    if (this._keyManager) {\n      this._keyManager.withVerticalOrientation(value === 'vertical');\n    }\n  }\n\n  /**\n   * @deprecated To be turned into a private property. Use `orientation` instead.\n   * @breaking-change 13.0.0\n   */\n  protected _orientation: StepperOrientation = 'horizontal';\n\n  constructor(\n      @Optional() private _dir: Directionality, private _changeDetectorRef: ChangeDetectorRef,\n      private _elementRef: ElementRef<HTMLElement>,\n      /**\n       * @deprecated No longer in use, to be removed.\n       * @breaking-change 13.0.0\n       */\n      @Inject(DOCUMENT) _document: any) {\n    this._groupId = nextId++;\n  }\n\n  ngAfterContentInit() {\n    this._steps.changes\n      .pipe(startWith(this._steps), takeUntil(this._destroyed))\n      .subscribe((steps: QueryList<CdkStep>) => {\n        this.steps.reset(steps.filter(step => step._stepper === this));\n        this.steps.notifyOnChanges();\n      });\n  }\n\n  ngAfterViewInit() {\n    // If the step headers are defined outside of the `ngFor` that renders the steps, like in the\n    // Material stepper, they won't appear in the `QueryList` in the same order as they're\n    // rendered in the DOM which will lead to incorrect keyboard navigation. We need to sort\n    // them manually to ensure that they're correct. Alternatively, we can change the Material\n    // template to inline the headers in the `ngFor`, but that'll result in a lot of\n    // code duplciation. See #23539.\n    this._stepHeader.changes\n      .pipe(startWith(this._stepHeader), takeUntil(this._destroyed))\n      .subscribe((headers: QueryList<CdkStepHeader>) => {\n        this._sortedHeaders.reset(headers.toArray().sort((a, b) => {\n          const documentPosition =\n            a._elementRef.nativeElement.compareDocumentPosition(b._elementRef.nativeElement);\n\n          // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n          // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n          // tslint:disable-next-line:no-bitwise\n          return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n        }));\n        this._sortedHeaders.notifyOnChanges();\n      });\n\n    // Note that while the step headers are content children by default, any components that\n    // extend this one might have them as view children. We initialize the keyboard handling in\n    // AfterViewInit so we're guaranteed for both view and content children to be defined.\n    this._keyManager = new FocusKeyManager<FocusableOption>(this._sortedHeaders)\n                           .withWrap()\n                           .withHomeAndEnd()\n                           .withVerticalOrientation(this._orientation === 'vertical');\n\n    (this._dir ? (this._dir.change as Observable<Direction>) : observableOf<Direction>())\n        .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n        .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n    this._keyManager.updateActiveItem(this._selectedIndex);\n\n    // No need to `takeUntil` here, because we're the ones destroying `steps`.\n    this.steps.changes.subscribe(() => {\n      if (!this.selected) {\n        this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n      }\n    });\n\n    // The logic which asserts that the selected index is within bounds doesn't run before the\n    // steps are initialized, because we don't how many steps there are yet so we may have an\n    // invalid index on init. If that's the case, auto-correct to the default so we don't throw.\n    if (!this._isValidIndex(this._selectedIndex)) {\n      this._selectedIndex = 0;\n    }\n  }\n\n  ngOnDestroy() {\n    this.steps.destroy();\n    this._sortedHeaders.destroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** Selects and focuses the next step in list. */\n  next(): void {\n    this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n  }\n\n  /** Selects and focuses the previous step in list. */\n  previous(): void {\n    this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n  }\n\n  /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n  reset(): void {\n    this._updateSelectedItemIndex(0);\n    this.steps.forEach(step => step.reset());\n    this._stateChanged();\n  }\n\n  /** Returns a unique id for each step label element. */\n  _getStepLabelId(i: number): string {\n    return `cdk-step-label-${this._groupId}-${i}`;\n  }\n\n  /** Returns unique id for each step content element. */\n  _getStepContentId(i: number): string {\n    return `cdk-step-content-${this._groupId}-${i}`;\n  }\n\n  /** Marks the component to be change detected. */\n  _stateChanged() {\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /** Returns position state of the step with the given index. */\n  _getAnimationDirection(index: number): StepContentPositionState {\n    const position = index - this._selectedIndex;\n    if (position < 0) {\n      return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n    } else if (position > 0) {\n      return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n    }\n    return 'current';\n  }\n\n  /** Returns the type of icon to be displayed. */\n  _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n    const step = this.steps.toArray()[index];\n    const isCurrentStep = this._isCurrentStep(index);\n\n    return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :\n                                               this._getGuidelineLogic(step, isCurrentStep, state);\n  }\n\n  private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n    if (step._showError() && step.hasError && !isCurrentStep) {\n      return STEP_STATE.ERROR;\n    } else if (!step.completed || isCurrentStep) {\n      return STEP_STATE.NUMBER;\n    } else {\n      return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n    }\n  }\n\n  private _getGuidelineLogic(\n      step: CdkStep, isCurrentStep: boolean, state: StepState = STEP_STATE.NUMBER): StepState {\n    if (step._showError() && step.hasError && !isCurrentStep) {\n      return STEP_STATE.ERROR;\n    } else if (step.completed && !isCurrentStep) {\n      return STEP_STATE.DONE;\n    } else if (step.completed && isCurrentStep) {\n      return state;\n    } else if (step.editable && isCurrentStep) {\n      return STEP_STATE.EDIT;\n    } else {\n      return state;\n    }\n  }\n\n  private _isCurrentStep(index: number) {\n    return this._selectedIndex === index;\n  }\n\n  /** Returns the index of the currently-focused step header. */\n  _getFocusIndex() {\n    return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n  }\n\n  private _updateSelectedItemIndex(newIndex: number): void {\n    const stepsArray = this.steps.toArray();\n    this.selectionChange.emit({\n      selectedIndex: newIndex,\n      previouslySelectedIndex: this._selectedIndex,\n      selectedStep: stepsArray[newIndex],\n      previouslySelectedStep: stepsArray[this._selectedIndex],\n    });\n\n    // If focus is inside the stepper, move it to the next header, otherwise it may become\n    // lost when the active step content is hidden. We can't be more granular with the check\n    // (e.g. checking whether focus is inside the active step), because we don't have a\n    // reference to the elements that are rendering out the content.\n    this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n                            this._keyManager.updateActiveItem(newIndex);\n\n    this._selectedIndex = newIndex;\n    this._stateChanged();\n  }\n\n  _onKeydown(event: KeyboardEvent) {\n    const hasModifier = hasModifierKey(event);\n    const keyCode = event.keyCode;\n    const manager = this._keyManager;\n\n    if (manager.activeItemIndex != null && !hasModifier &&\n        (keyCode === SPACE || keyCode === ENTER)) {\n      this.selectedIndex = manager.activeItemIndex;\n      event.preventDefault();\n    } else {\n      manager.onKeydown(event);\n    }\n  }\n\n  private _anyControlsInvalidOrPending(index: number): boolean {\n    if (this._linear && index >= 0) {\n      return this.steps.toArray().slice(0, index).some(step => {\n        const control = step.stepControl;\n        const isIncomplete =\n            control ? (control.invalid || control.pending || !step.interacted) : !step.completed;\n        return isIncomplete && !step.optional && !step._completedOverride;\n      });\n    }\n\n    return false;\n  }\n\n  private _layoutDirection(): Direction {\n    return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n  }\n\n  /** Checks whether the stepper contains the focused element. */\n  private _containsFocus(): boolean {\n    const stepperElement = this._elementRef.nativeElement;\n    const focusedElement = _getFocusedElementPierceShadowDom();\n    return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n  }\n\n  /** Checks whether the passed-in index is a valid step index. */\n  private _isValidIndex(index: number): boolean {\n    return index > -1 && (!this.steps || index < this.steps.length);\n  }\n\n  static ngAcceptInputType_editable: BooleanInput;\n  static ngAcceptInputType_optional: BooleanInput;\n  static ngAcceptInputType_completed: BooleanInput;\n  static ngAcceptInputType_hasError: BooleanInput;\n  static ngAcceptInputType_linear: BooleanInput;\n  static ngAcceptInputType_selectedIndex: NumberInput;\n}\n\n\n/**\n * Simplified representation of an \"AbstractControl\" from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface AbstractControlLike {\n  asyncValidator: ((control: any) => any) | null;\n  dirty: boolean;\n  disabled: boolean;\n  enabled: boolean;\n  errors: {[key: string]: any} | null;\n  invalid: boolean;\n  parent: any;\n  pending: boolean;\n  pristine: boolean;\n  root: AbstractControlLike;\n  status: string;\n  readonly statusChanges: Observable<any>;\n  touched: boolean;\n  untouched: boolean;\n  updateOn: any;\n  valid: boolean;\n  validator: ((control: any) => any) | null;\n  value: any;\n  readonly valueChanges: Observable<any>;\n  clearAsyncValidators(): void;\n  clearValidators(): void;\n  disable(opts?: any): void;\n  enable(opts?: any): void;\n  get(path: (string | number)[] | string): AbstractControlLike | null;\n  getError(errorCode: string, path?: (string | number)[] | string): any;\n  hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n  markAllAsTouched(): void;\n  markAsDirty(opts?: any): void;\n  markAsPending(opts?: any): void;\n  markAsPristine(opts?: any): void;\n  markAsTouched(opts?: any): void;\n  markAsUntouched(opts?: any): void;\n  patchValue(value: any, options?: Object): void;\n  reset(value?: any, options?: Object): void;\n  setAsyncValidators(newValidator: (control: any) => any |\n    ((control: any) => any)[] | null): void;\n  setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n  setParent(parent: any): void;\n  setValidators(newValidator: (control: any) => any |\n    ((control: any) => any)[] | null): void;\n  setValue(value: any, options?: Object): void;\n  updateValueAndValidity(opts?: any): void;\n  patchValue(value: any, options?: any): void;\n  reset(formState?: any, options?: any): void;\n  setValue(value: any, options?: any): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, HostListener, Input} from '@angular/core';\n\nimport {CdkStepper} from './stepper';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n  selector: 'button[cdkStepperNext]',\n  host: {\n    '[type]': 'type',\n  }\n})\nexport class CdkStepperNext {\n  /** Type of the next button. Defaults to \"submit\" if not specified. */\n  @Input() type: string = 'submit';\n\n  constructor(public _stepper: CdkStepper) {}\n\n  // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n  // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n  // ViewEngine they're overwritten.\n  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n  // tslint:disable-next-line:no-host-decorator-in-concrete\n  @HostListener('click')\n  _handleClick() {\n    this._stepper.next();\n  }\n}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n  selector: 'button[cdkStepperPrevious]',\n  host: {\n    '[type]': 'type',\n  }\n})\nexport class CdkStepperPrevious {\n  /** Type of the previous button. Defaults to \"button\" if not specified. */\n  @Input() type: string = 'button';\n\n  constructor(public _stepper: CdkStepper) {}\n\n  // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n  // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n  // ViewEngine they're overwritten.\n  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n  // tslint:disable-next-line:no-host-decorator-in-concrete\n  @HostListener('click')\n  _handleClick() {\n    this._stepper.previous();\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkStepper, CdkStep} from './stepper';\nimport {CdkStepLabel} from './step-label';\nimport {CdkStepperNext, CdkStepperPrevious} from './stepper-button';\nimport {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n  imports: [BidiModule],\n  exports: [\n    CdkStep,\n    CdkStepper,\n    CdkStepHeader,\n    CdkStepLabel,\n    CdkStepperNext,\n    CdkStepperPrevious,\n  ],\n  declarations: [\n    CdkStep,\n    CdkStepper,\n    CdkStepHeader,\n    CdkStepLabel,\n    CdkStepperNext,\n    CdkStepperPrevious,\n  ]\n})\nexport class CdkStepperModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './stepper';\nexport * from './step-label';\nexport * from './stepper-button';\nexport * from './stepper-module';\nexport * from './step-header';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"]}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -3,2 +3,4 @@
  */
 export * from './public-api';
+
+//# sourceMappingURL=index.d.ts.map
Index: trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public-api';
Index: trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/index.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"index.d.ts","sources":["index.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"]}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/package.json
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/package.json	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/package.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -2,8 +2,20 @@
   "name": "@angular/cdk/stepper",
   "main": "../bundles/cdk-stepper.umd.js",
+  "fesm2015_ivy_ngcc": "../__ivy_ngcc__/fesm2015/stepper.js",
   "fesm2015": "../fesm2015/stepper.js",
   "esm2015": "../esm2015/stepper/index.js",
   "typings": "./index.d.ts",
+  "module_ivy_ngcc": "../__ivy_ngcc__/fesm2015/stepper.js",
   "module": "../fesm2015/stepper.js",
-  "es2015": "../fesm2015/stepper.js"
+  "es2015_ivy_ngcc": "../__ivy_ngcc__/fesm2015/stepper.js",
+  "es2015": "../fesm2015/stepper.js",
+  "__processed_by_ivy_ngcc__": {
+    "es2015": "12.2.13",
+    "fesm2015": "12.2.13",
+    "module": "12.2.13",
+    "typings": "12.2.13"
+  },
+  "scripts": {
+    "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by NGCC. This is not allowed.\\nPlease delete and rebuild the package, without compiling with NGCC, before attempting to publish.\\nNote that NGCC may have been run by importing this package into another project that is being built with Ivy enabled.\\n')\" && exit 1"
+  }
 }
Index: trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -8,4 +8,5 @@
 import { ElementRef } from '@angular/core';
 import { FocusableOption } from '@angular/cdk/a11y';
+import * as ɵngcc0 from '@angular/core';
 export declare class CdkStepHeader implements FocusableOption {
     _elementRef: ElementRef<HTMLElement>;
@@ -13,3 +14,7 @@
     /** Focuses the step header. */
     focus(): void;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStepHeader, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<CdkStepHeader, "[cdkStepHeader]", never, {}, {}, never>;
 }
+
+//# sourceMappingURL=step-header.d.ts.map
Index: trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ElementRef } from '@angular/core';
+import { FocusableOption } from '@angular/cdk/a11y';
+export declare class CdkStepHeader implements FocusableOption {
+    _elementRef: ElementRef<HTMLElement>;
+    constructor(_elementRef: ElementRef<HTMLElement>);
+    /** Focuses the step header. */
+    focus(): void;
+}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/step-header.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"step-header.d.ts","sources":["step-header.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nexport declare class CdkStepHeader implements FocusableOption {\n    _elementRef: ElementRef<HTMLElement>;\n    constructor(_elementRef: ElementRef<HTMLElement>);\n    /** Focuses the step header. */\n    focus(): void;\n}\n"]}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -7,6 +7,11 @@
  */
 import { TemplateRef } from '@angular/core';
+import * as ɵngcc0 from '@angular/core';
 export declare class CdkStepLabel {
     template: TemplateRef<any>;
     constructor(/** @docs-private */ template: TemplateRef<any>);
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStepLabel, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<CdkStepLabel, "[cdkStepLabel]", never, {}, {}, never>;
 }
+
+//# sourceMappingURL=step-label.d.ts.map
Index: trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,12 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { TemplateRef } from '@angular/core';
+export declare class CdkStepLabel {
+    template: TemplateRef<any>;
+    constructor(/** @docs-private */ template: TemplateRef<any>);
+}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/step-label.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"step-label.d.ts","sources":["step-label.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\nexport declare class CdkStepLabel {\n    template: TemplateRef<any>;\n    constructor(/** @docs-private */ template: TemplateRef<any>);\n}\n"]}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -8,4 +8,5 @@
 import { CdkStepper } from './stepper';
 /** Button that moves to the next step in a stepper workflow. */
+import * as ɵngcc0 from '@angular/core';
 export declare class CdkStepperNext {
     _stepper: CdkStepper;
@@ -14,4 +15,6 @@
     constructor(_stepper: CdkStepper);
     _handleClick(): void;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStepperNext, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<CdkStepperNext, "button[cdkStepperNext]", never, { "type": "type"; }, {}, never>;
 }
 /** Button that moves to the previous step in a stepper workflow. */
@@ -22,3 +25,7 @@
     constructor(_stepper: CdkStepper);
     _handleClick(): void;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStepperPrevious, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<CdkStepperPrevious, "button[cdkStepperPrevious]", never, { "type": "type"; }, {}, never>;
 }
+
+//# sourceMappingURL=stepper-button.d.ts.map
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,24 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { CdkStepper } from './stepper';
+/** Button that moves to the next step in a stepper workflow. */
+export declare class CdkStepperNext {
+    _stepper: CdkStepper;
+    /** Type of the next button. Defaults to "submit" if not specified. */
+    type: string;
+    constructor(_stepper: CdkStepper);
+    _handleClick(): void;
+}
+/** Button that moves to the previous step in a stepper workflow. */
+export declare class CdkStepperPrevious {
+    _stepper: CdkStepper;
+    /** Type of the previous button. Defaults to "button" if not specified. */
+    type: string;
+    constructor(_stepper: CdkStepper);
+    _handleClick(): void;
+}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper-button.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper-button.d.ts","sources":["stepper-button.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkStepper } from './stepper';\n/** Button that moves to the next step in a stepper workflow. */\nexport declare class CdkStepperNext {\n    _stepper: CdkStepper;\n    /** Type of the next button. Defaults to \"submit\" if not specified. */\n    type: string;\n    constructor(_stepper: CdkStepper);\n    _handleClick(): void;\n}\n/** Button that moves to the previous step in a stepper workflow. */\nexport declare class CdkStepperPrevious {\n    _stepper: CdkStepper;\n    /** Type of the previous button. Defaults to \"button\" if not specified. */\n    type: string;\n    constructor(_stepper: CdkStepper);\n    _handleClick(): void;\n}\n"]}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -6,4 +6,15 @@
  * found in the LICENSE file at https://angular.io/license
  */
+import * as ɵngcc0 from '@angular/core';
+import * as ɵngcc1 from './stepper';
+import * as ɵngcc2 from './step-header';
+import * as ɵngcc3 from './step-label';
+import * as ɵngcc4 from './stepper-button';
+import * as ɵngcc5 from '@angular/cdk/bidi';
 export declare class CdkStepperModule {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStepperModule, never>;
+    static ɵmod: ɵngcc0.ɵɵNgModuleDeclaration<CdkStepperModule, [typeof ɵngcc1.CdkStep, typeof ɵngcc1.CdkStepper, typeof ɵngcc2.CdkStepHeader, typeof ɵngcc3.CdkStepLabel, typeof ɵngcc4.CdkStepperNext, typeof ɵngcc4.CdkStepperPrevious], [typeof ɵngcc5.BidiModule], [typeof ɵngcc1.CdkStep, typeof ɵngcc1.CdkStepper, typeof ɵngcc2.CdkStepHeader, typeof ɵngcc3.CdkStepLabel, typeof ɵngcc4.CdkStepperNext, typeof ɵngcc4.CdkStepperPrevious]>;
+    static ɵinj: ɵngcc0.ɵɵInjectorDeclaration<CdkStepperModule>;
 }
+
+//# sourceMappingURL=stepper-module.d.ts.map
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,9 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare class CdkStepperModule {
+}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper-module.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper-module.d.ts","sources":["stepper-module.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AACA;;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class CdkStepperModule {\n}\n"]}
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -16,4 +16,5 @@
  * the content into correct position upon step selection change.
  */
+import * as ɵngcc0 from '@angular/core';
 export declare type StepContentPositionState = 'previous' | 'current' | 'next';
 /** Possible orientation of a stepper. */
@@ -113,4 +114,6 @@
     static ngAcceptInputType_optional: BooleanInput;
     static ngAcceptInputType_completed: BooleanInput;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStep, [null, { optional: true; }]>;
+    static ɵcmp: ɵngcc0.ɵɵComponentDeclaration<CdkStep, "cdk-step", ["cdkStep"], { "editable": "editable"; "optional": "optional"; "completed": "completed"; "hasError": "hasError"; "stepControl": "stepControl"; "label": "label"; "errorMessage": "errorMessage"; "ariaLabel": "aria-label"; "ariaLabelledby": "aria-labelledby"; "state": "state"; }, { "interactedStream": "interacted"; }, ["stepLabel"], ["*"]>;
 }
 export declare class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {
@@ -197,4 +200,6 @@
     static ngAcceptInputType_linear: BooleanInput;
     static ngAcceptInputType_selectedIndex: NumberInput;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<CdkStepper, [{ optional: true; }, null, null, null]>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<CdkStepper, "[cdkStepper]", ["cdkStepper"], { "linear": "linear"; "selectedIndex": "selectedIndex"; "selected": "selected"; "orientation": "orientation"; }, { "selectionChange": "selectionChange"; }, ["_steps", "_stepHeader"]>;
 }
 /**
@@ -253,2 +258,4 @@
 }
 export {};
+
+//# sourceMappingURL=stepper.d.ts.map
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,254 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Directionality } from '@angular/cdk/bidi';
+import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
+import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnChanges, OnDestroy, QueryList, TemplateRef, AfterContentInit } from '@angular/core';
+import { Observable, Subject } from 'rxjs';
+import { CdkStepHeader } from './step-header';
+import { CdkStepLabel } from './step-label';
+/**
+ * Position state of the content of each step in stepper that is used for transitioning
+ * the content into correct position upon step selection change.
+ */
+export declare type StepContentPositionState = 'previous' | 'current' | 'next';
+/** Possible orientation of a stepper. */
+export declare type StepperOrientation = 'horizontal' | 'vertical';
+/** Change event emitted on selection changes. */
+export declare class StepperSelectionEvent {
+    /** Index of the step now selected. */
+    selectedIndex: number;
+    /** Index of the step previously selected. */
+    previouslySelectedIndex: number;
+    /** The step instance now selected. */
+    selectedStep: CdkStep;
+    /** The step instance previously selected. */
+    previouslySelectedStep: CdkStep;
+}
+/** The state of each step. */
+export declare type StepState = 'number' | 'edit' | 'done' | 'error' | string;
+/** Enum to represent the different states of the steps. */
+export declare const STEP_STATE: {
+    NUMBER: string;
+    EDIT: string;
+    DONE: string;
+    ERROR: string;
+};
+/** InjectionToken that can be used to specify the global stepper options. */
+export declare const STEPPER_GLOBAL_OPTIONS: InjectionToken<StepperOptions>;
+/** Configurable options for stepper. */
+export interface StepperOptions {
+    /**
+     * Whether the stepper should display an error state or not.
+     * Default behavior is assumed to be false.
+     */
+    showError?: boolean;
+    /**
+     * Whether the stepper should display the default indicator type
+     * or not.
+     * Default behavior is assumed to be true.
+     */
+    displayDefaultIndicatorType?: boolean;
+}
+export declare class CdkStep implements OnChanges {
+    _stepper: CdkStepper;
+    private _stepperOptions;
+    _displayDefaultIndicatorType: boolean;
+    /** Template for step label if it exists. */
+    stepLabel: CdkStepLabel;
+    /** Template for step content. */
+    content: TemplateRef<any>;
+    /** The top level abstract control of the step. */
+    stepControl: AbstractControlLike;
+    /** Whether user has attempted to move away from the step. */
+    interacted: boolean;
+    /** Emits when the user has attempted to move away from the step. */
+    readonly interactedStream: EventEmitter<CdkStep>;
+    /** Plain text label of the step. */
+    label: string;
+    /** Error message to display when there's an error. */
+    errorMessage: string;
+    /** Aria label for the tab. */
+    ariaLabel: string;
+    /**
+     * Reference to the element that the tab is labelled by.
+     * Will be cleared if `aria-label` is set at the same time.
+     */
+    ariaLabelledby: string;
+    /** State of the step. */
+    state: StepState;
+    /** Whether the user can return to this step once it has been marked as completed. */
+    get editable(): boolean;
+    set editable(value: boolean);
+    private _editable;
+    /** Whether the completion of step is optional. */
+    get optional(): boolean;
+    set optional(value: boolean);
+    private _optional;
+    /** Whether step is marked as completed. */
+    get completed(): boolean;
+    set completed(value: boolean);
+    _completedOverride: boolean | null;
+    private _getDefaultCompleted;
+    /** Whether step has an error. */
+    get hasError(): boolean;
+    set hasError(value: boolean);
+    private _customError;
+    private _getDefaultError;
+    constructor(_stepper: CdkStepper, stepperOptions?: StepperOptions);
+    /** Selects this step component. */
+    select(): void;
+    /** Resets the step to its initial state. Note that this includes resetting form data. */
+    reset(): void;
+    ngOnChanges(): void;
+    _markAsInteracted(): void;
+    /** Determines whether the error state can be shown. */
+    _showError(): boolean;
+    static ngAcceptInputType_editable: BooleanInput;
+    static ngAcceptInputType_hasError: BooleanInput;
+    static ngAcceptInputType_optional: BooleanInput;
+    static ngAcceptInputType_completed: BooleanInput;
+}
+export declare class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {
+    private _dir;
+    private _changeDetectorRef;
+    private _elementRef;
+    /** Emits when the component is destroyed. */
+    protected readonly _destroyed: Subject<void>;
+    /** Used for managing keyboard focus. */
+    private _keyManager;
+    /** Full list of steps inside the stepper, including inside nested steppers. */
+    _steps: QueryList<CdkStep>;
+    /** Steps that belong to the current stepper, excluding ones from nested steppers. */
+    readonly steps: QueryList<CdkStep>;
+    /** The list of step headers of the steps in the stepper. */
+    _stepHeader: QueryList<CdkStepHeader>;
+    /** List of step headers sorted based on their DOM order. */
+    private _sortedHeaders;
+    /** Whether the validity of previous steps should be checked or not. */
+    get linear(): boolean;
+    set linear(value: boolean);
+    private _linear;
+    /** The index of the selected step. */
+    get selectedIndex(): number;
+    set selectedIndex(index: number);
+    private _selectedIndex;
+    /** The step that is selected. */
+    get selected(): CdkStep | undefined;
+    set selected(step: CdkStep | undefined);
+    /** Event emitted when the selected step has changed. */
+    readonly selectionChange: EventEmitter<StepperSelectionEvent>;
+    /** Used to track unique ID for each stepper component. */
+    _groupId: number;
+    /** Orientation of the stepper. */
+    get orientation(): StepperOrientation;
+    set orientation(value: StepperOrientation);
+    /**
+     * @deprecated To be turned into a private property. Use `orientation` instead.
+     * @breaking-change 13.0.0
+     */
+    protected _orientation: StepperOrientation;
+    constructor(_dir: Directionality, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, 
+    /**
+     * @deprecated No longer in use, to be removed.
+     * @breaking-change 13.0.0
+     */
+    _document: any);
+    ngAfterContentInit(): void;
+    ngAfterViewInit(): void;
+    ngOnDestroy(): void;
+    /** Selects and focuses the next step in list. */
+    next(): void;
+    /** Selects and focuses the previous step in list. */
+    previous(): void;
+    /** Resets the stepper to its initial state. Note that this includes clearing form data. */
+    reset(): void;
+    /** Returns a unique id for each step label element. */
+    _getStepLabelId(i: number): string;
+    /** Returns unique id for each step content element. */
+    _getStepContentId(i: number): string;
+    /** Marks the component to be change detected. */
+    _stateChanged(): void;
+    /** Returns position state of the step with the given index. */
+    _getAnimationDirection(index: number): StepContentPositionState;
+    /** Returns the type of icon to be displayed. */
+    _getIndicatorType(index: number, state?: StepState): StepState;
+    private _getDefaultIndicatorLogic;
+    private _getGuidelineLogic;
+    private _isCurrentStep;
+    /** Returns the index of the currently-focused step header. */
+    _getFocusIndex(): number | null;
+    private _updateSelectedItemIndex;
+    _onKeydown(event: KeyboardEvent): void;
+    private _anyControlsInvalidOrPending;
+    private _layoutDirection;
+    /** Checks whether the stepper contains the focused element. */
+    private _containsFocus;
+    /** Checks whether the passed-in index is a valid step index. */
+    private _isValidIndex;
+    static ngAcceptInputType_editable: BooleanInput;
+    static ngAcceptInputType_optional: BooleanInput;
+    static ngAcceptInputType_completed: BooleanInput;
+    static ngAcceptInputType_hasError: BooleanInput;
+    static ngAcceptInputType_linear: BooleanInput;
+    static ngAcceptInputType_selectedIndex: NumberInput;
+}
+/**
+ * Simplified representation of an "AbstractControl" from @angular/forms.
+ * Used to avoid having to bring in @angular/forms for a single optional interface.
+ * @docs-private
+ */
+interface AbstractControlLike {
+    asyncValidator: ((control: any) => any) | null;
+    dirty: boolean;
+    disabled: boolean;
+    enabled: boolean;
+    errors: {
+        [key: string]: any;
+    } | null;
+    invalid: boolean;
+    parent: any;
+    pending: boolean;
+    pristine: boolean;
+    root: AbstractControlLike;
+    status: string;
+    readonly statusChanges: Observable<any>;
+    touched: boolean;
+    untouched: boolean;
+    updateOn: any;
+    valid: boolean;
+    validator: ((control: any) => any) | null;
+    value: any;
+    readonly valueChanges: Observable<any>;
+    clearAsyncValidators(): void;
+    clearValidators(): void;
+    disable(opts?: any): void;
+    enable(opts?: any): void;
+    get(path: (string | number)[] | string): AbstractControlLike | null;
+    getError(errorCode: string, path?: (string | number)[] | string): any;
+    hasError(errorCode: string, path?: (string | number)[] | string): boolean;
+    markAllAsTouched(): void;
+    markAsDirty(opts?: any): void;
+    markAsPending(opts?: any): void;
+    markAsPristine(opts?: any): void;
+    markAsTouched(opts?: any): void;
+    markAsUntouched(opts?: any): void;
+    patchValue(value: any, options?: Object): void;
+    reset(value?: any, options?: Object): void;
+    setAsyncValidators(newValidator: (control: any) => any | ((control: any) => any)[] | null): void;
+    setErrors(errors: {
+        [key: string]: any;
+    } | null, opts?: any): void;
+    setParent(parent: any): void;
+    setValidators(newValidator: (control: any) => any | ((control: any) => any)[] | null): void;
+    setValue(value: any, options?: Object): void;
+    updateValueAndValidity(opts?: any): void;
+    patchValue(value: any, options?: any): void;
+    reset(formState?: any, options?: any): void;
+    setValue(value: any, options?: any): void;
+}
+export {};
Index: trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/cdk/stepper/stepper.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper.d.ts","sources":["stepper.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnChanges, OnDestroy, QueryList, TemplateRef, AfterContentInit } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CdkStepHeader } from './step-header';\nimport { CdkStepLabel } from './step-label';\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport declare type StepContentPositionState = 'previous' | 'current' | 'next';\n/** Possible orientation of a stepper. */\nexport declare type StepperOrientation = 'horizontal' | 'vertical';\n/** Change event emitted on selection changes. */\nexport declare class StepperSelectionEvent {\n    /** Index of the step now selected. */\n    selectedIndex: number;\n    /** Index of the step previously selected. */\n    previouslySelectedIndex: number;\n    /** The step instance now selected. */\n    selectedStep: CdkStep;\n    /** The step instance previously selected. */\n    previouslySelectedStep: CdkStep;\n}\n/** The state of each step. */\nexport declare type StepState = 'number' | 'edit' | 'done' | 'error' | string;\n/** Enum to represent the different states of the steps. */\nexport declare const STEP_STATE: {\n    NUMBER: string;\n    EDIT: string;\n    DONE: string;\n    ERROR: string;\n};\n/** InjectionToken that can be used to specify the global stepper options. */\nexport declare const STEPPER_GLOBAL_OPTIONS: InjectionToken<StepperOptions>;\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n    /**\n     * Whether the stepper should display an error state or not.\n     * Default behavior is assumed to be false.\n     */\n    showError?: boolean;\n    /**\n     * Whether the stepper should display the default indicator type\n     * or not.\n     * Default behavior is assumed to be true.\n     */\n    displayDefaultIndicatorType?: boolean;\n}\nexport declare class CdkStep implements OnChanges {\n    _stepper: CdkStepper;\n    private _stepperOptions;\n    _displayDefaultIndicatorType: boolean;\n    /** Template for step label if it exists. */\n    stepLabel: CdkStepLabel;\n    /** Template for step content. */\n    content: TemplateRef<any>;\n    /** The top level abstract control of the step. */\n    stepControl: AbstractControlLike;\n    /** Whether user has attempted to move away from the step. */\n    interacted: boolean;\n    /** Emits when the user has attempted to move away from the step. */\n    readonly interactedStream: EventEmitter<CdkStep>;\n    /** Plain text label of the step. */\n    label: string;\n    /** Error message to display when there's an error. */\n    errorMessage: string;\n    /** Aria label for the tab. */\n    ariaLabel: string;\n    /**\n     * Reference to the element that the tab is labelled by.\n     * Will be cleared if `aria-label` is set at the same time.\n     */\n    ariaLabelledby: string;\n    /** State of the step. */\n    state: StepState;\n    /** Whether the user can return to this step once it has been marked as completed. */\n    get editable(): boolean;\n    set editable(value: boolean);\n    private _editable;\n    /** Whether the completion of step is optional. */\n    get optional(): boolean;\n    set optional(value: boolean);\n    private _optional;\n    /** Whether step is marked as completed. */\n    get completed(): boolean;\n    set completed(value: boolean);\n    _completedOverride: boolean | null;\n    private _getDefaultCompleted;\n    /** Whether step has an error. */\n    get hasError(): boolean;\n    set hasError(value: boolean);\n    private _customError;\n    private _getDefaultError;\n    constructor(_stepper: CdkStepper, stepperOptions?: StepperOptions);\n    /** Selects this step component. */\n    select(): void;\n    /** Resets the step to its initial state. Note that this includes resetting form data. */\n    reset(): void;\n    ngOnChanges(): void;\n    _markAsInteracted(): void;\n    /** Determines whether the error state can be shown. */\n    _showError(): boolean;\n    static ngAcceptInputType_editable: BooleanInput;\n    static ngAcceptInputType_hasError: BooleanInput;\n    static ngAcceptInputType_optional: BooleanInput;\n    static ngAcceptInputType_completed: BooleanInput;\n}\nexport declare class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {\n    private _dir;\n    private _changeDetectorRef;\n    private _elementRef;\n    /** Emits when the component is destroyed. */\n    protected readonly _destroyed: Subject<void>;\n    /** Used for managing keyboard focus. */\n    private _keyManager;\n    /** Full list of steps inside the stepper, including inside nested steppers. */\n    _steps: QueryList<CdkStep>;\n    /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n    readonly steps: QueryList<CdkStep>;\n    /** The list of step headers of the steps in the stepper. */\n    _stepHeader: QueryList<CdkStepHeader>;\n    /** List of step headers sorted based on their DOM order. */\n    private _sortedHeaders;\n    /** Whether the validity of previous steps should be checked or not. */\n    get linear(): boolean;\n    set linear(value: boolean);\n    private _linear;\n    /** The index of the selected step. */\n    get selectedIndex(): number;\n    set selectedIndex(index: number);\n    private _selectedIndex;\n    /** The step that is selected. */\n    get selected(): CdkStep | undefined;\n    set selected(step: CdkStep | undefined);\n    /** Event emitted when the selected step has changed. */\n    readonly selectionChange: EventEmitter<StepperSelectionEvent>;\n    /** Used to track unique ID for each stepper component. */\n    _groupId: number;\n    /** Orientation of the stepper. */\n    get orientation(): StepperOrientation;\n    set orientation(value: StepperOrientation);\n    /**\n     * @deprecated To be turned into a private property. Use `orientation` instead.\n     * @breaking-change 13.0.0\n     */\n    protected _orientation: StepperOrientation;\n    constructor(_dir: Directionality, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, \n    /**\n     * @deprecated No longer in use, to be removed.\n     * @breaking-change 13.0.0\n     */\n    _document: any);\n    ngAfterContentInit(): void;\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /** Selects and focuses the next step in list. */\n    next(): void;\n    /** Selects and focuses the previous step in list. */\n    previous(): void;\n    /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n    reset(): void;\n    /** Returns a unique id for each step label element. */\n    _getStepLabelId(i: number): string;\n    /** Returns unique id for each step content element. */\n    _getStepContentId(i: number): string;\n    /** Marks the component to be change detected. */\n    _stateChanged(): void;\n    /** Returns position state of the step with the given index. */\n    _getAnimationDirection(index: number): StepContentPositionState;\n    /** Returns the type of icon to be displayed. */\n    _getIndicatorType(index: number, state?: StepState): StepState;\n    private _getDefaultIndicatorLogic;\n    private _getGuidelineLogic;\n    private _isCurrentStep;\n    /** Returns the index of the currently-focused step header. */\n    _getFocusIndex(): number | null;\n    private _updateSelectedItemIndex;\n    _onKeydown(event: KeyboardEvent): void;\n    private _anyControlsInvalidOrPending;\n    private _layoutDirection;\n    /** Checks whether the stepper contains the focused element. */\n    private _containsFocus;\n    /** Checks whether the passed-in index is a valid step index. */\n    private _isValidIndex;\n    static ngAcceptInputType_editable: BooleanInput;\n    static ngAcceptInputType_optional: BooleanInput;\n    static ngAcceptInputType_completed: BooleanInput;\n    static ngAcceptInputType_hasError: BooleanInput;\n    static ngAcceptInputType_linear: BooleanInput;\n    static ngAcceptInputType_selectedIndex: NumberInput;\n}\n/**\n * Simplified representation of an \"AbstractControl\" from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface AbstractControlLike {\n    asyncValidator: ((control: any) => any) | null;\n    dirty: boolean;\n    disabled: boolean;\n    enabled: boolean;\n    errors: {\n        [key: string]: any;\n    } | null;\n    invalid: boolean;\n    parent: any;\n    pending: boolean;\n    pristine: boolean;\n    root: AbstractControlLike;\n    status: string;\n    readonly statusChanges: Observable<any>;\n    touched: boolean;\n    untouched: boolean;\n    updateOn: any;\n    valid: boolean;\n    validator: ((control: any) => any) | null;\n    value: any;\n    readonly valueChanges: Observable<any>;\n    clearAsyncValidators(): void;\n    clearValidators(): void;\n    disable(opts?: any): void;\n    enable(opts?: any): void;\n    get(path: (string | number)[] | string): AbstractControlLike | null;\n    getError(errorCode: string, path?: (string | number)[] | string): any;\n    hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n    markAllAsTouched(): void;\n    markAsDirty(opts?: any): void;\n    markAsPending(opts?: any): void;\n    markAsPristine(opts?: any): void;\n    markAsTouched(opts?: any): void;\n    markAsUntouched(opts?: any): void;\n    patchValue(value: any, options?: Object): void;\n    reset(value?: any, options?: Object): void;\n    setAsyncValidators(newValidator: (control: any) => any | ((control: any) => any)[] | null): void;\n    setErrors(errors: {\n        [key: string]: any;\n    } | null, opts?: any): void;\n    setParent(parent: any): void;\n    setValidators(newValidator: (control: any) => any | ((control: any) => any)[] | null): void;\n    setValue(value: any, options?: Object): void;\n    updateValueAndValidity(opts?: any): void;\n    patchValue(value: any, options?: any): void;\n    reset(formState?: any, options?: any): void;\n    setValue(value: any, options?: any): void;\n}\nexport {};\n"]}
Index: trip-planner-front/node_modules/@angular/material/__ivy_ngcc__/fesm2015/stepper.js
===================================================================
--- trip-planner-front/node_modules/@angular/material/__ivy_ngcc__/fesm2015/stepper.js	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/__ivy_ngcc__/fesm2015/stepper.js	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,937 @@
+import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
+import { CdkStepLabel, CdkStepHeader, CdkStep, STEPPER_GLOBAL_OPTIONS, CdkStepper, CdkStepperNext, CdkStepperPrevious, CdkStepperModule } from '@angular/cdk/stepper';
+import { DOCUMENT, CommonModule } from '@angular/common';
+import * as i0 from '@angular/core';
+import { Directive, Injectable, Optional, SkipSelf, Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, TemplateRef, Inject, forwardRef, ViewContainerRef, ContentChild, QueryList, EventEmitter, ViewChildren, ContentChildren, Output, NgModule } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { mixinColor, ErrorStateMatcher, MatCommonModule, MatRippleModule } from '@angular/material/core';
+import { MatIconModule } from '@angular/material/icon';
+import { FocusMonitor } from '@angular/cdk/a11y';
+import { Subject, Subscription } from 'rxjs';
+import { Directionality } from '@angular/cdk/bidi';
+import { switchMap, map, startWith, takeUntil, distinctUntilChanged } from 'rxjs/operators';
+import { trigger, state, style, transition, animate } from '@angular/animations';
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import * as ɵngcc0 from '@angular/core';
+import * as ɵngcc1 from '@angular/cdk/a11y';
+import * as ɵngcc2 from '@angular/material/core';
+import * as ɵngcc3 from '@angular/common';
+import * as ɵngcc4 from '@angular/material/icon';
+import * as ɵngcc5 from '@angular/cdk/portal';
+import * as ɵngcc6 from '@angular/cdk/bidi';
+
+function MatStepHeader_ng_container_3_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementContainer(0, 8);
+} if (rf & 2) {
+    const ctx_r0 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵproperty("ngTemplateOutlet", ctx_r0.iconOverrides[ctx_r0.state])("ngTemplateOutletContext", ctx_r0._getIconContext());
+} }
+function MatStepHeader_ng_container_4_span_1_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "span");
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r6 = ɵngcc0.ɵɵnextContext(2);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r6._getDefaultTextForState(ctx_r6.state));
+} }
+function MatStepHeader_ng_container_4_span_2_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "span", 13);
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r7 = ɵngcc0.ɵɵnextContext(2);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r7._intl.completedLabel);
+} }
+function MatStepHeader_ng_container_4_span_3_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "span", 13);
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r8 = ɵngcc0.ɵɵnextContext(2);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r8._intl.editableLabel);
+} }
+function MatStepHeader_ng_container_4_mat_icon_4_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "mat-icon");
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r9 = ɵngcc0.ɵɵnextContext(2);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r9._getDefaultTextForState(ctx_r9.state));
+} }
+function MatStepHeader_ng_container_4_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementContainerStart(0, 9);
+    ɵngcc0.ɵɵtemplate(1, MatStepHeader_ng_container_4_span_1_Template, 2, 1, "span", 10);
+    ɵngcc0.ɵɵtemplate(2, MatStepHeader_ng_container_4_span_2_Template, 2, 1, "span", 11);
+    ɵngcc0.ɵɵtemplate(3, MatStepHeader_ng_container_4_span_3_Template, 2, 1, "span", 11);
+    ɵngcc0.ɵɵtemplate(4, MatStepHeader_ng_container_4_mat_icon_4_Template, 2, 1, "mat-icon", 12);
+    ɵngcc0.ɵɵelementContainerEnd();
+} if (rf & 2) {
+    const ctx_r1 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵproperty("ngSwitch", ctx_r1.state);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngSwitchCase", "number");
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngIf", ctx_r1.state === "done");
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngIf", ctx_r1.state === "edit");
+} }
+function MatStepHeader_div_6_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "div", 14);
+    ɵngcc0.ɵɵelementContainer(1, 15);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r2 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngTemplateOutlet", ctx_r2._templateLabel().template);
+} }
+function MatStepHeader_div_7_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "div", 14);
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r3 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r3.label);
+} }
+function MatStepHeader_div_8_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "div", 16);
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r4 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r4._intl.optionalLabel);
+} }
+function MatStepHeader_div_9_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementStart(0, "div", 17);
+    ɵngcc0.ɵɵtext(1);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const ctx_r5 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵtextInterpolate(ctx_r5.errorMessage);
+} }
+function MatStep_ng_template_0_ng_template_1_Template(rf, ctx) { }
+function MatStep_ng_template_0_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵprojection(0);
+    ɵngcc0.ɵɵtemplate(1, MatStep_ng_template_0_ng_template_1_Template, 0, 0, "ng-template", 0);
+} if (rf & 2) {
+    const ctx_r0 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("cdkPortalOutlet", ctx_r0._portal);
+} }
+const _c0 = ["*"];
+function MatStepper_ng_container_1_ng_container_2_div_2_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelement(0, "div", 9);
+} }
+const _c1 = function (a0, a1) { return { step: a0, i: a1 }; };
+function MatStepper_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementContainerStart(0);
+    ɵngcc0.ɵɵelementContainer(1, 7);
+    ɵngcc0.ɵɵtemplate(2, MatStepper_ng_container_1_ng_container_2_div_2_Template, 1, 0, "div", 8);
+    ɵngcc0.ɵɵelementContainerEnd();
+} if (rf & 2) {
+    const step_r6 = ctx.$implicit;
+    const i_r7 = ctx.index;
+    const isLast_r8 = ctx.last;
+    ɵngcc0.ɵɵnextContext(2);
+    const _r2 = ɵngcc0.ɵɵreference(4);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngTemplateOutlet", _r2)("ngTemplateOutletContext", ɵngcc0.ɵɵpureFunction2(3, _c1, step_r6, i_r7));
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngIf", !isLast_r8);
+} }
+function MatStepper_ng_container_1_div_4_Template(rf, ctx) { if (rf & 1) {
+    const _r13 = ɵngcc0.ɵɵgetCurrentView();
+    ɵngcc0.ɵɵelementStart(0, "div", 10);
+    ɵngcc0.ɵɵlistener("@horizontalStepTransition.done", function MatStepper_ng_container_1_div_4_Template_div_animation_horizontalStepTransition_done_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(2); return ctx_r12._animationDone.next($event); });
+    ɵngcc0.ɵɵelementContainer(1, 11);
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const step_r10 = ctx.$implicit;
+    const i_r11 = ctx.index;
+    const ctx_r5 = ɵngcc0.ɵɵnextContext(2);
+    ɵngcc0.ɵɵproperty("@horizontalStepTransition", ctx_r5._getAnimationDirection(i_r11))("id", ctx_r5._getStepContentId(i_r11));
+    ɵngcc0.ɵɵattribute("aria-labelledby", ctx_r5._getStepLabelId(i_r11))("aria-expanded", ctx_r5.selectedIndex === i_r11);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngTemplateOutlet", step_r10.content);
+} }
+function MatStepper_ng_container_1_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementContainerStart(0);
+    ɵngcc0.ɵɵelementStart(1, "div", 3);
+    ɵngcc0.ɵɵtemplate(2, MatStepper_ng_container_1_ng_container_2_Template, 3, 6, "ng-container", 4);
+    ɵngcc0.ɵɵelementEnd();
+    ɵngcc0.ɵɵelementStart(3, "div", 5);
+    ɵngcc0.ɵɵtemplate(4, MatStepper_ng_container_1_div_4_Template, 2, 5, "div", 6);
+    ɵngcc0.ɵɵelementEnd();
+    ɵngcc0.ɵɵelementContainerEnd();
+} if (rf & 2) {
+    const ctx_r0 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(2);
+    ɵngcc0.ɵɵproperty("ngForOf", ctx_r0.steps);
+    ɵngcc0.ɵɵadvance(2);
+    ɵngcc0.ɵɵproperty("ngForOf", ctx_r0.steps);
+} }
+function MatStepper_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {
+    const _r19 = ɵngcc0.ɵɵgetCurrentView();
+    ɵngcc0.ɵɵelementStart(0, "div", 13);
+    ɵngcc0.ɵɵelementContainer(1, 7);
+    ɵngcc0.ɵɵelementStart(2, "div", 14);
+    ɵngcc0.ɵɵelementStart(3, "div", 15);
+    ɵngcc0.ɵɵlistener("@verticalStepTransition.done", function MatStepper_ng_container_2_div_1_Template_div_animation_verticalStepTransition_done_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ctx_r18._animationDone.next($event); });
+    ɵngcc0.ɵɵelementStart(4, "div", 16);
+    ɵngcc0.ɵɵelementContainer(5, 11);
+    ɵngcc0.ɵɵelementEnd();
+    ɵngcc0.ɵɵelementEnd();
+    ɵngcc0.ɵɵelementEnd();
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const step_r15 = ctx.$implicit;
+    const i_r16 = ctx.index;
+    const isLast_r17 = ctx.last;
+    const ctx_r14 = ɵngcc0.ɵɵnextContext(2);
+    const _r2 = ɵngcc0.ɵɵreference(4);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngTemplateOutlet", _r2)("ngTemplateOutletContext", ɵngcc0.ɵɵpureFunction2(9, _c1, step_r15, i_r16));
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵclassProp("mat-stepper-vertical-line", !isLast_r17);
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("@verticalStepTransition", ctx_r14._getAnimationDirection(i_r16))("id", ctx_r14._getStepContentId(i_r16));
+    ɵngcc0.ɵɵattribute("aria-labelledby", ctx_r14._getStepLabelId(i_r16))("aria-expanded", ctx_r14.selectedIndex === i_r16);
+    ɵngcc0.ɵɵadvance(2);
+    ɵngcc0.ɵɵproperty("ngTemplateOutlet", step_r15.content);
+} }
+function MatStepper_ng_container_2_Template(rf, ctx) { if (rf & 1) {
+    ɵngcc0.ɵɵelementContainerStart(0);
+    ɵngcc0.ɵɵtemplate(1, MatStepper_ng_container_2_div_1_Template, 6, 12, "div", 12);
+    ɵngcc0.ɵɵelementContainerEnd();
+} if (rf & 2) {
+    const ctx_r1 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵadvance(1);
+    ɵngcc0.ɵɵproperty("ngForOf", ctx_r1.steps);
+} }
+function MatStepper_ng_template_3_Template(rf, ctx) { if (rf & 1) {
+    const _r23 = ɵngcc0.ɵɵgetCurrentView();
+    ɵngcc0.ɵɵelementStart(0, "mat-step-header", 17);
+    ɵngcc0.ɵɵlistener("click", function MatStepper_ng_template_3_Template_mat_step_header_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r23); const step_r20 = restoredCtx.step; return step_r20.select(); })("keydown", function MatStepper_ng_template_3_Template_mat_step_header_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r24 = ɵngcc0.ɵɵnextContext(); return ctx_r24._onKeydown($event); });
+    ɵngcc0.ɵɵelementEnd();
+} if (rf & 2) {
+    const step_r20 = ctx.step;
+    const i_r21 = ctx.i;
+    const ctx_r3 = ɵngcc0.ɵɵnextContext();
+    ɵngcc0.ɵɵclassProp("mat-horizontal-stepper-header", ctx_r3.orientation === "horizontal")("mat-vertical-stepper-header", ctx_r3.orientation === "vertical");
+    ɵngcc0.ɵɵproperty("tabIndex", ctx_r3._getFocusIndex() === i_r21 ? 0 : -1)("id", ctx_r3._getStepLabelId(i_r21))("index", i_r21)("state", ctx_r3._getIndicatorType(i_r21, step_r20.state))("label", step_r20.stepLabel || step_r20.label)("selected", ctx_r3.selectedIndex === i_r21)("active", ctx_r3._stepIsNavigable(i_r21, step_r20))("optional", step_r20.optional)("errorMessage", step_r20.errorMessage)("iconOverrides", ctx_r3._iconOverrides)("disableRipple", ctx_r3.disableRipple || !ctx_r3._stepIsNavigable(i_r21, step_r20))("color", step_r20.color || ctx_r3.color);
+    ɵngcc0.ɵɵattribute("aria-posinset", i_r21 + 1)("aria-setsize", ctx_r3.steps.length)("aria-controls", ctx_r3._getStepContentId(i_r21))("aria-selected", ctx_r3.selectedIndex == i_r21)("aria-label", step_r20.ariaLabel || null)("aria-labelledby", !step_r20.ariaLabel && step_r20.ariaLabelledby ? step_r20.ariaLabelledby : null)("aria-disabled", ctx_r3._stepIsNavigable(i_r21, step_r20) ? null : true);
+} }
+class MatStepLabel extends CdkStepLabel {
+}
+MatStepLabel.ɵfac = /*@__PURE__*/ function () { let ɵMatStepLabel_BaseFactory; return function MatStepLabel_Factory(t) { return (ɵMatStepLabel_BaseFactory || (ɵMatStepLabel_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatStepLabel)))(t || MatStepLabel); }; }();
+MatStepLabel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatStepLabel, selectors: [["", "matStepLabel", ""]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepLabel, [{
+        type: Directive,
+        args: [{
+                selector: '[matStepLabel]'
+            }]
+    }], null, null); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/** Stepper data that is required for internationalization. */
+class MatStepperIntl {
+    constructor() {
+        /**
+         * Stream that emits whenever the labels here are changed. Use this to notify
+         * components if the labels have changed after initialization.
+         */
+        this.changes = new Subject();
+        /** Label that is rendered below optional steps. */
+        this.optionalLabel = 'Optional';
+        /** Label that is used to indicate step as completed to screen readers. */
+        this.completedLabel = 'Completed';
+        /** Label that is used to indicate step as editable to screen readers. */
+        this.editableLabel = 'Editable';
+    }
+}
+MatStepperIntl.ɵfac = function MatStepperIntl_Factory(t) { return new (t || MatStepperIntl)(); };
+MatStepperIntl.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperIntl_Factory() { return new MatStepperIntl(); }, token: MatStepperIntl, providedIn: "root" });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepperIntl, [{
+        type: Injectable,
+        args: [{ providedIn: 'root' }]
+    }], function () { return []; }, null); })();
+/** @docs-private */
+function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl) {
+    return parentIntl || new MatStepperIntl();
+}
+/** @docs-private */
+const MAT_STEPPER_INTL_PROVIDER = {
+    provide: MatStepperIntl,
+    deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],
+    useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY
+};
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+// Boilerplate for applying mixins to MatStepHeader.
+/** @docs-private */
+const _MatStepHeaderBase = mixinColor(class MatStepHeaderBase extends CdkStepHeader {
+    constructor(elementRef) {
+        super(elementRef);
+    }
+}, 'primary');
+class MatStepHeader extends _MatStepHeaderBase {
+    constructor(_intl, _focusMonitor, _elementRef, changeDetectorRef) {
+        super(_elementRef);
+        this._intl = _intl;
+        this._focusMonitor = _focusMonitor;
+        this._intlSubscription = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());
+    }
+    ngAfterViewInit() {
+        this._focusMonitor.monitor(this._elementRef, true);
+    }
+    ngOnDestroy() {
+        this._intlSubscription.unsubscribe();
+        this._focusMonitor.stopMonitoring(this._elementRef);
+    }
+    /** Focuses the step header. */
+    focus(origin, options) {
+        if (origin) {
+            this._focusMonitor.focusVia(this._elementRef, origin, options);
+        }
+        else {
+            this._elementRef.nativeElement.focus(options);
+        }
+    }
+    /** Returns string label of given step if it is a text label. */
+    _stringLabel() {
+        return this.label instanceof MatStepLabel ? null : this.label;
+    }
+    /** Returns MatStepLabel if the label of given step is a template label. */
+    _templateLabel() {
+        return this.label instanceof MatStepLabel ? this.label : null;
+    }
+    /** Returns the host HTML element. */
+    _getHostElement() {
+        return this._elementRef.nativeElement;
+    }
+    /** Template context variables that are exposed to the `matStepperIcon` instances. */
+    _getIconContext() {
+        return {
+            index: this.index,
+            active: this.active,
+            optional: this.optional
+        };
+    }
+    _getDefaultTextForState(state) {
+        if (state == 'number') {
+            return `${this.index + 1}`;
+        }
+        if (state == 'edit') {
+            return 'create';
+        }
+        if (state == 'error') {
+            return 'warning';
+        }
+        return state;
+    }
+}
+MatStepHeader.ɵfac = function MatStepHeader_Factory(t) { return new (t || MatStepHeader)(ɵngcc0.ɵɵdirectiveInject(MatStepperIntl), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusMonitor), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };
+MatStepHeader.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatStepHeader, selectors: [["mat-step-header"]], hostAttrs: ["role", "tab", 1, "mat-step-header"], inputs: { color: "color", state: "state", label: "label", errorMessage: "errorMessage", iconOverrides: "iconOverrides", index: "index", selected: "selected", active: "active", optional: "optional", disableRipple: "disableRipple" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 10, vars: 19, consts: [["matRipple", "", 1, "mat-step-header-ripple", "mat-focus-indicator", 3, "matRippleTrigger", "matRippleDisabled"], [1, "mat-step-icon-content", 3, "ngSwitch"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngSwitchCase"], [3, "ngSwitch", 4, "ngSwitchDefault"], [1, "mat-step-label"], ["class", "mat-step-text-label", 4, "ngIf"], ["class", "mat-step-optional", 4, "ngIf"], ["class", "mat-step-sub-label-error", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "cdk-visually-hidden", 4, "ngIf"], [4, "ngSwitchDefault"], [1, "cdk-visually-hidden"], [1, "mat-step-text-label"], [3, "ngTemplateOutlet"], [1, "mat-step-optional"], [1, "mat-step-sub-label-error"]], template: function MatStepHeader_Template(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵelement(0, "div", 0);
+        ɵngcc0.ɵɵelementStart(1, "div");
+        ɵngcc0.ɵɵelementStart(2, "div", 1);
+        ɵngcc0.ɵɵtemplate(3, MatStepHeader_ng_container_3_Template, 1, 2, "ng-container", 2);
+        ɵngcc0.ɵɵtemplate(4, MatStepHeader_ng_container_4_Template, 5, 4, "ng-container", 3);
+        ɵngcc0.ɵɵelementEnd();
+        ɵngcc0.ɵɵelementEnd();
+        ɵngcc0.ɵɵelementStart(5, "div", 4);
+        ɵngcc0.ɵɵtemplate(6, MatStepHeader_div_6_Template, 2, 1, "div", 5);
+        ɵngcc0.ɵɵtemplate(7, MatStepHeader_div_7_Template, 2, 1, "div", 5);
+        ɵngcc0.ɵɵtemplate(8, MatStepHeader_div_8_Template, 2, 1, "div", 6);
+        ɵngcc0.ɵɵtemplate(9, MatStepHeader_div_9_Template, 2, 1, "div", 7);
+        ɵngcc0.ɵɵelementEnd();
+    } if (rf & 2) {
+        ɵngcc0.ɵɵproperty("matRippleTrigger", ctx._getHostElement())("matRippleDisabled", ctx.disableRipple);
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵclassMapInterpolate1("mat-step-icon-state-", ctx.state, " mat-step-icon");
+        ɵngcc0.ɵɵclassProp("mat-step-icon-selected", ctx.selected);
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngSwitch", !!(ctx.iconOverrides && ctx.iconOverrides[ctx.state]));
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngSwitchCase", true);
+        ɵngcc0.ɵɵadvance(2);
+        ɵngcc0.ɵɵclassProp("mat-step-label-active", ctx.active)("mat-step-label-selected", ctx.selected)("mat-step-label-error", ctx.state == "error");
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngIf", ctx._templateLabel());
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngIf", ctx._stringLabel());
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngIf", ctx.optional && ctx.state != "error");
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngIf", ctx.state == "error");
+    } }, directives: [ɵngcc2.MatRipple, ɵngcc3.NgSwitch, ɵngcc3.NgSwitchCase, ɵngcc3.NgSwitchDefault, ɵngcc3.NgIf, ɵngcc3.NgTemplateOutlet, ɵngcc4.MatIcon], styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:transparent}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header.cdk-keyboard-focused,.cdk-high-contrast-active .mat-step-header.cdk-program-focused{outline:solid 3px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-optional,.mat-step-sub-label-error{font-size:12px}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.mat-step-icon-content,.mat-step-icon .mat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"], encapsulation: 2, changeDetection: 0 });
+MatStepHeader.ctorParameters = () => [
+    { type: MatStepperIntl },
+    { type: FocusMonitor },
+    { type: ElementRef },
+    { type: ChangeDetectorRef }
+];
+MatStepHeader.propDecorators = {
+    state: [{ type: Input }],
+    label: [{ type: Input }],
+    errorMessage: [{ type: Input }],
+    iconOverrides: [{ type: Input }],
+    index: [{ type: Input }],
+    selected: [{ type: Input }],
+    active: [{ type: Input }],
+    optional: [{ type: Input }],
+    disableRipple: [{ type: Input }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepHeader, [{
+        type: Component,
+        args: [{
+                selector: 'mat-step-header',
+                template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n     [matRippleTrigger]=\"_getHostElement()\"\n     [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n  <div class=\"mat-step-icon-content\" [ngSwitch]=\"!!(iconOverrides && iconOverrides[state])\">\n    <ng-container\n      *ngSwitchCase=\"true\"\n      [ngTemplateOutlet]=\"iconOverrides[state]\"\n      [ngTemplateOutletContext]=\"_getIconContext()\"></ng-container>\n    <ng-container *ngSwitchDefault [ngSwitch]=\"state\">\n      <span *ngSwitchCase=\"'number'\">{{_getDefaultTextForState(state)}}</span>\n      <span class=\"cdk-visually-hidden\" *ngIf=\"state === 'done'\">{{_intl.completedLabel}}</span>\n      <span class=\"cdk-visually-hidden\" *ngIf=\"state === 'edit'\">{{_intl.editableLabel}}</span>\n      <mat-icon *ngSwitchDefault>{{_getDefaultTextForState(state)}}</mat-icon>\n    </ng-container>\n  </div>\n</div>\n<div class=\"mat-step-label\"\n     [class.mat-step-label-active]=\"active\"\n     [class.mat-step-label-selected]=\"selected\"\n     [class.mat-step-label-error]=\"state == 'error'\">\n  <!-- If there is a label template, use it. -->\n  <div class=\"mat-step-text-label\" *ngIf=\"_templateLabel()\">\n    <ng-container [ngTemplateOutlet]=\"_templateLabel()!.template\"></ng-container>\n  </div>\n  <!-- If there is no label template, fall back to the text label. -->\n  <div class=\"mat-step-text-label\" *ngIf=\"_stringLabel()\">{{label}}</div>\n\n  <div class=\"mat-step-optional\" *ngIf=\"optional && state != 'error'\">{{_intl.optionalLabel}}</div>\n  <div class=\"mat-step-sub-label-error\" *ngIf=\"state == 'error'\">{{errorMessage}}</div>\n</div>\n\n",
+                inputs: ['color'],
+                host: {
+                    'class': 'mat-step-header',
+                    'role': 'tab'
+                },
+                encapsulation: ViewEncapsulation.None,
+                changeDetection: ChangeDetectionStrategy.OnPush,
+                styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:transparent}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header.cdk-keyboard-focused,.cdk-high-contrast-active .mat-step-header.cdk-program-focused{outline:solid 3px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-optional,.mat-step-sub-label-error{font-size:12px}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.mat-step-icon-content,.mat-step-icon .mat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"]
+            }]
+    }], function () { return [{ type: MatStepperIntl }, { type: ɵngcc1.FocusMonitor }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { state: [{
+            type: Input
+        }], label: [{
+            type: Input
+        }], errorMessage: [{
+            type: Input
+        }], iconOverrides: [{
+            type: Input
+        }], index: [{
+            type: Input
+        }], selected: [{
+            type: Input
+        }], active: [{
+            type: Input
+        }], optional: [{
+            type: Input
+        }], disableRipple: [{
+            type: Input
+        }] }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * Animations used by the Material steppers.
+ * @docs-private
+ */
+const matStepperAnimations = {
+    /** Animation that transitions the step along the X axis in a horizontal stepper. */
+    horizontalStepTransition: trigger('horizontalStepTransition', [
+        state('previous', style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' })),
+        // Transition to `inherit`, rather than `visible`,
+        // because visibility on a child element the one from the parent,
+        // making this element focusable inside of a `hidden` element.
+        state('current', style({ transform: 'none', visibility: 'inherit' })),
+        state('next', style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' })),
+        transition('* => *', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))
+    ]),
+    /** Animation that transitions the step along the Y axis in a vertical stepper. */
+    verticalStepTransition: trigger('verticalStepTransition', [
+        state('previous', style({ height: '0px', visibility: 'hidden' })),
+        state('next', style({ height: '0px', visibility: 'hidden' })),
+        // Transition to `inherit`, rather than `visible`,
+        // because visibility on a child element the one from the parent,
+        // making this element focusable inside of a `hidden` element.
+        state('current', style({ height: '*', visibility: 'inherit' })),
+        transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))
+    ])
+};
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * Template to be used to override the icons inside the step header.
+ */
+class MatStepperIcon {
+    constructor(templateRef) {
+        this.templateRef = templateRef;
+    }
+}
+MatStepperIcon.ɵfac = function MatStepperIcon_Factory(t) { return new (t || MatStepperIcon)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };
+MatStepperIcon.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatStepperIcon, selectors: [["ng-template", "matStepperIcon", ""]], inputs: { name: ["matStepperIcon", "name"] } });
+MatStepperIcon.ctorParameters = () => [
+    { type: TemplateRef }
+];
+MatStepperIcon.propDecorators = {
+    name: [{ type: Input, args: ['matStepperIcon',] }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepperIcon, [{
+        type: Directive,
+        args: [{
+                selector: 'ng-template[matStepperIcon]'
+            }]
+    }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, { name: [{
+            type: Input,
+            args: ['matStepperIcon']
+        }] }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * Content for a `mat-step` that will be rendered lazily.
+ */
+class MatStepContent {
+    constructor(_template) {
+        this._template = _template;
+    }
+}
+MatStepContent.ɵfac = function MatStepContent_Factory(t) { return new (t || MatStepContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };
+MatStepContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatStepContent, selectors: [["ng-template", "matStepContent", ""]] });
+MatStepContent.ctorParameters = () => [
+    { type: TemplateRef }
+];
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepContent, [{
+        type: Directive,
+        args: [{
+                selector: 'ng-template[matStepContent]'
+            }]
+    }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+class MatStep extends CdkStep {
+    constructor(stepper, _errorStateMatcher, _viewContainerRef, stepperOptions) {
+        super(stepper, stepperOptions);
+        this._errorStateMatcher = _errorStateMatcher;
+        this._viewContainerRef = _viewContainerRef;
+        this._isSelected = Subscription.EMPTY;
+    }
+    ngAfterContentInit() {
+        this._isSelected = this._stepper.steps.changes.pipe(switchMap(() => {
+            return this._stepper.selectionChange.pipe(map(event => event.selectedStep === this), startWith(this._stepper.selected === this));
+        })).subscribe(isSelected => {
+            if (isSelected && this._lazyContent && !this._portal) {
+                this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);
+            }
+        });
+    }
+    ngOnDestroy() {
+        this._isSelected.unsubscribe();
+    }
+    /** Custom error state matcher that additionally checks for validity of interacted form. */
+    isErrorState(control, form) {
+        const originalErrorState = this._errorStateMatcher.isErrorState(control, form);
+        // Custom error state checks for the validity of form that is not submitted or touched
+        // since user can trigger a form change by calling for another step without directly
+        // interacting with the current form.
+        const customErrorState = !!(control && control.invalid && this.interacted);
+        return originalErrorState || customErrorState;
+    }
+}
+MatStep.ɵfac = function MatStep_Factory(t) { return new (t || MatStep)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => MatStepper)), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.ErrorStateMatcher, 4), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(STEPPER_GLOBAL_OPTIONS, 8)); };
+MatStep.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatStep, selectors: [["mat-step"]], contentQueries: function MatStep_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
+        ɵngcc0.ɵɵcontentQuery(dirIndex, MatStepLabel, 5);
+        ɵngcc0.ɵɵcontentQuery(dirIndex, MatStepContent, 5);
+    } if (rf & 2) {
+        let _t;
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.stepLabel = _t.first);
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._lazyContent = _t.first);
+    } }, inputs: { color: "color" }, exportAs: ["matStep"], features: [ɵngcc0.ɵɵProvidersFeature([
+            { provide: ErrorStateMatcher, useExisting: MatStep },
+            { provide: CdkStep, useExisting: MatStep },
+        ]), ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, consts: [[3, "cdkPortalOutlet"]], template: function MatStep_Template(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵprojectionDef();
+        ɵngcc0.ɵɵtemplate(0, MatStep_ng_template_0_Template, 2, 1, "ng-template");
+    } }, directives: [ɵngcc5.CdkPortalOutlet], encapsulation: 2, changeDetection: 0 });
+MatStep.ctorParameters = () => [
+    { type: MatStepper, decorators: [{ type: Inject, args: [forwardRef(() => MatStepper),] }] },
+    { type: ErrorStateMatcher, decorators: [{ type: SkipSelf }] },
+    { type: ViewContainerRef },
+    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [STEPPER_GLOBAL_OPTIONS,] }] }
+];
+MatStep.propDecorators = {
+    stepLabel: [{ type: ContentChild, args: [MatStepLabel,] }],
+    color: [{ type: Input }],
+    _lazyContent: [{ type: ContentChild, args: [MatStepContent, { static: false },] }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStep, [{
+        type: Component,
+        args: [{
+                selector: 'mat-step',
+                template: "<ng-template>\n  <ng-content></ng-content>\n  <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n",
+                providers: [
+                    { provide: ErrorStateMatcher, useExisting: MatStep },
+                    { provide: CdkStep, useExisting: MatStep },
+                ],
+                encapsulation: ViewEncapsulation.None,
+                exportAs: 'matStep',
+                changeDetection: ChangeDetectionStrategy.OnPush
+            }]
+    }], function () { return [{ type: MatStepper, decorators: [{
+                type: Inject,
+                args: [forwardRef(() => MatStepper)]
+            }] }, { type: ɵngcc2.ErrorStateMatcher, decorators: [{
+                type: SkipSelf
+            }] }, { type: ɵngcc0.ViewContainerRef }, { type: undefined, decorators: [{
+                type: Optional
+            }, {
+                type: Inject,
+                args: [STEPPER_GLOBAL_OPTIONS]
+            }] }]; }, { stepLabel: [{
+            type: ContentChild,
+            args: [MatStepLabel]
+        }], color: [{
+            type: Input
+        }], _lazyContent: [{
+            type: ContentChild,
+            args: [MatStepContent, { static: false }]
+        }] }); })();
+/**
+ * Proxies the public APIs from `MatStepper` to the deprecated `MatHorizontalStepper` and
+ * `MatVerticalStepper`.
+ * @deprecated Use `MatStepper` instead.
+ * @breaking-change 13.0.0
+ * @docs-private
+ */
+class _MatProxyStepperBase extends CdkStepper {
+}
+_MatProxyStepperBase.ɵfac = /*@__PURE__*/ function () { let ɵ_MatProxyStepperBase_BaseFactory; return function _MatProxyStepperBase_Factory(t) { return (ɵ_MatProxyStepperBase_BaseFactory || (ɵ_MatProxyStepperBase_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(_MatProxyStepperBase)))(t || _MatProxyStepperBase); }; }();
+_MatProxyStepperBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatProxyStepperBase, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatProxyStepperBase, [{
+        type: Directive
+    }], null, null); })();
+/**
+ * @deprecated Use `MatStepper` instead.
+ * @breaking-change 13.0.0
+ */
+class MatHorizontalStepper extends _MatProxyStepperBase {
+}
+MatHorizontalStepper.ɵfac = /*@__PURE__*/ function () { let ɵMatHorizontalStepper_BaseFactory; return function MatHorizontalStepper_Factory(t) { return (ɵMatHorizontalStepper_BaseFactory || (ɵMatHorizontalStepper_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatHorizontalStepper)))(t || MatHorizontalStepper); }; }();
+MatHorizontalStepper.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatHorizontalStepper, selectors: [["mat-horizontal-stepper"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatHorizontalStepper, [{
+        type: Directive,
+        args: [{ selector: 'mat-horizontal-stepper' }]
+    }], null, null); })();
+/**
+ * @deprecated Use `MatStepper` instead.
+ * @breaking-change 13.0.0
+ */
+class MatVerticalStepper extends _MatProxyStepperBase {
+}
+MatVerticalStepper.ɵfac = /*@__PURE__*/ function () { let ɵMatVerticalStepper_BaseFactory; return function MatVerticalStepper_Factory(t) { return (ɵMatVerticalStepper_BaseFactory || (ɵMatVerticalStepper_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatVerticalStepper)))(t || MatVerticalStepper); }; }();
+MatVerticalStepper.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatVerticalStepper, selectors: [["mat-vertical-stepper"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatVerticalStepper, [{
+        type: Directive,
+        args: [{ selector: 'mat-vertical-stepper' }]
+    }], null, null); })();
+class MatStepper extends CdkStepper {
+    constructor(dir, changeDetectorRef, elementRef, _document) {
+        super(dir, changeDetectorRef, elementRef, _document);
+        /** Steps that belong to the current stepper, excluding ones from nested steppers. */
+        this.steps = new QueryList();
+        /** Event emitted when the current step is done transitioning in. */
+        this.animationDone = new EventEmitter();
+        /**
+         * Whether the label should display in bottom or end position.
+         * Only applies in the `horizontal` orientation.
+         */
+        this.labelPosition = 'end';
+        /** Consumer-specified template-refs to be used to override the header icons. */
+        this._iconOverrides = {};
+        /** Stream of animation `done` events when the body expands/collapses. */
+        this._animationDone = new Subject();
+        const nodeName = elementRef.nativeElement.nodeName.toLowerCase();
+        this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';
+    }
+    ngAfterContentInit() {
+        super.ngAfterContentInit();
+        this._icons.forEach(({ name, templateRef }) => this._iconOverrides[name] = templateRef);
+        // Mark the component for change detection whenever the content children query changes
+        this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {
+            this._stateChanged();
+        });
+        this._animationDone.pipe(
+        // This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due
+        // to a bug in animations where the `.done` callback gets invoked twice on some browsers.
+        // See https://github.com/angular/angular/issues/24084
+        distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), takeUntil(this._destroyed)).subscribe(event => {
+            if (event.toState === 'current') {
+                this.animationDone.emit();
+            }
+        });
+    }
+    _stepIsNavigable(index, step) {
+        return step.completed || this.selectedIndex === index || !this.linear;
+    }
+}
+MatStepper.ɵfac = function MatStepper_Factory(t) { return new (t || MatStepper)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };
+MatStepper.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatStepper, selectors: [["mat-stepper"], ["mat-vertical-stepper"], ["mat-horizontal-stepper"], ["", "matStepper", ""]], contentQueries: function MatStepper_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
+        ɵngcc0.ɵɵcontentQuery(dirIndex, MatStep, 5);
+        ɵngcc0.ɵɵcontentQuery(dirIndex, MatStepperIcon, 5);
+    } if (rf & 2) {
+        let _t;
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._steps = _t);
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._icons = _t);
+    } }, viewQuery: function MatStepper_Query(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵviewQuery(MatStepHeader, 5);
+    } if (rf & 2) {
+        let _t;
+        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._stepHeader = _t);
+    } }, hostAttrs: ["role", "tablist"], hostVars: 9, hostBindings: function MatStepper_HostBindings(rf, ctx) { if (rf & 2) {
+        ɵngcc0.ɵɵattribute("aria-orientation", ctx.orientation);
+        ɵngcc0.ɵɵclassProp("mat-stepper-horizontal", ctx.orientation === "horizontal")("mat-stepper-vertical", ctx.orientation === "vertical")("mat-stepper-label-position-end", ctx.orientation === "horizontal" && ctx.labelPosition == "end")("mat-stepper-label-position-bottom", ctx.orientation === "horizontal" && ctx.labelPosition == "bottom");
+    } }, inputs: { selectedIndex: "selectedIndex", labelPosition: "labelPosition", disableRipple: "disableRipple", color: "color" }, outputs: { animationDone: "animationDone" }, exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"], features: [ɵngcc0.ɵɵProvidersFeature([
+            { provide: CdkStepper, useExisting: MatStepper },
+            { provide: MatHorizontalStepper, useExisting: MatStepper },
+            { provide: MatVerticalStepper, useExisting: MatStepper },
+        ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 5, vars: 3, consts: [[3, "ngSwitch"], [4, "ngSwitchCase"], ["stepTemplate", ""], [1, "mat-horizontal-stepper-header-container"], [4, "ngFor", "ngForOf"], [1, "mat-horizontal-content-container"], ["class", "mat-horizontal-stepper-content", "role", "tabpanel", 3, "id", 4, "ngFor", "ngForOf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "mat-stepper-horizontal-line", 4, "ngIf"], [1, "mat-stepper-horizontal-line"], ["role", "tabpanel", 1, "mat-horizontal-stepper-content", 3, "id"], [3, "ngTemplateOutlet"], ["class", "mat-step", 4, "ngFor", "ngForOf"], [1, "mat-step"], [1, "mat-vertical-content-container"], ["role", "tabpanel", 1, "mat-vertical-stepper-content", 3, "id"], [1, "mat-vertical-content"], [3, "tabIndex", "id", "index", "state", "label", "selected", "active", "optional", "errorMessage", "iconOverrides", "disableRipple", "color", "click", "keydown"]], template: function MatStepper_Template(rf, ctx) { if (rf & 1) {
+        ɵngcc0.ɵɵelementContainerStart(0, 0);
+        ɵngcc0.ɵɵtemplate(1, MatStepper_ng_container_1_Template, 5, 2, "ng-container", 1);
+        ɵngcc0.ɵɵtemplate(2, MatStepper_ng_container_2_Template, 2, 1, "ng-container", 1);
+        ɵngcc0.ɵɵelementContainerEnd();
+        ɵngcc0.ɵɵtemplate(3, MatStepper_ng_template_3_Template, 1, 23, "ng-template", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);
+    } if (rf & 2) {
+        ɵngcc0.ɵɵproperty("ngSwitch", ctx.orientation);
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngSwitchCase", "horizontal");
+        ɵngcc0.ɵɵadvance(1);
+        ɵngcc0.ɵɵproperty("ngSwitchCase", "vertical");
+    } }, directives: [ɵngcc3.NgSwitch, ɵngcc3.NgSwitchCase, ɵngcc3.NgForOf, ɵngcc3.NgTemplateOutlet, ɵngcc3.NgIf, MatStepHeader], styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content[aria-expanded=false]{height:0;overflow:hidden}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\n"], encapsulation: 2, data: { animation: [
+            matStepperAnimations.horizontalStepTransition,
+            matStepperAnimations.verticalStepTransition,
+        ] }, changeDetection: 0 });
+MatStepper.ctorParameters = () => [
+    { type: Directionality, decorators: [{ type: Optional }] },
+    { type: ChangeDetectorRef },
+    { type: ElementRef },
+    { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
+];
+MatStepper.propDecorators = {
+    _stepHeader: [{ type: ViewChildren, args: [MatStepHeader,] }],
+    _steps: [{ type: ContentChildren, args: [MatStep, { descendants: true },] }],
+    _icons: [{ type: ContentChildren, args: [MatStepperIcon, { descendants: true },] }],
+    animationDone: [{ type: Output }],
+    disableRipple: [{ type: Input }],
+    color: [{ type: Input }],
+    labelPosition: [{ type: Input }]
+};
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepper, [{
+        type: Component,
+        args: [{
+                selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',
+                exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',
+                template: "<ng-container [ngSwitch]=\"orientation\">\n  <!-- Horizontal stepper -->\n  <ng-container *ngSwitchCase=\"'horizontal'\">\n    <div class=\"mat-horizontal-stepper-header-container\">\n      <ng-container *ngFor=\"let step of steps; let i = index; let isLast = last\">\n        <ng-container\n          [ngTemplateOutlet]=\"stepTemplate\"\n          [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n        <div *ngIf=\"!isLast\" class=\"mat-stepper-horizontal-line\"></div>\n      </ng-container>\n    </div>\n\n    <div class=\"mat-horizontal-content-container\">\n      <div *ngFor=\"let step of steps; let i = index\"\n           class=\"mat-horizontal-stepper-content\" role=\"tabpanel\"\n           [@horizontalStepTransition]=\"_getAnimationDirection(i)\"\n           (@horizontalStepTransition.done)=\"_animationDone.next($event)\"\n           [id]=\"_getStepContentId(i)\"\n           [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n           [attr.aria-expanded]=\"selectedIndex === i\">\n        <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n      </div>\n    </div>\n  </ng-container>\n\n  <!-- Vertical stepper -->\n  <ng-container *ngSwitchCase=\"'vertical'\">\n    <div class=\"mat-step\" *ngFor=\"let step of steps; let i = index; let isLast = last\">\n      <ng-container\n        [ngTemplateOutlet]=\"stepTemplate\"\n        [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n      <div class=\"mat-vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n        <div class=\"mat-vertical-stepper-content\" role=\"tabpanel\"\n             [@verticalStepTransition]=\"_getAnimationDirection(i)\"\n             (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n             [id]=\"_getStepContentId(i)\"\n             [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n             [attr.aria-expanded]=\"selectedIndex === i\">\n          <div class=\"mat-vertical-content\">\n            <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n          </div>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n\n</ng-container>\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n  <mat-step-header\n    [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n    [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n    (click)=\"step.select()\"\n    (keydown)=\"_onKeydown($event)\"\n    [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n    [id]=\"_getStepLabelId(i)\"\n    [attr.aria-posinset]=\"i + 1\"\n    [attr.aria-setsize]=\"steps.length\"\n    [attr.aria-controls]=\"_getStepContentId(i)\"\n    [attr.aria-selected]=\"selectedIndex == i\"\n    [attr.aria-label]=\"step.ariaLabel || null\"\n    [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n    [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n    [index]=\"i\"\n    [state]=\"_getIndicatorType(i, step.state)\"\n    [label]=\"step.stepLabel || step.label\"\n    [selected]=\"selectedIndex === i\"\n    [active]=\"_stepIsNavigable(i, step)\"\n    [optional]=\"step.optional\"\n    [errorMessage]=\"step.errorMessage\"\n    [iconOverrides]=\"_iconOverrides\"\n    [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n    [color]=\"step.color || color\"></mat-step-header>\n</ng-template>\n",
+                inputs: ['selectedIndex'],
+                host: {
+                    '[class.mat-stepper-horizontal]': 'orientation === "horizontal"',
+                    '[class.mat-stepper-vertical]': 'orientation === "vertical"',
+                    '[class.mat-stepper-label-position-end]': 'orientation === "horizontal" && labelPosition == "end"',
+                    '[class.mat-stepper-label-position-bottom]': 'orientation === "horizontal" && labelPosition == "bottom"',
+                    '[attr.aria-orientation]': 'orientation',
+                    'role': 'tablist'
+                },
+                animations: [
+                    matStepperAnimations.horizontalStepTransition,
+                    matStepperAnimations.verticalStepTransition,
+                ],
+                providers: [
+                    { provide: CdkStepper, useExisting: MatStepper },
+                    { provide: MatHorizontalStepper, useExisting: MatStepper },
+                    { provide: MatVerticalStepper, useExisting: MatStepper },
+                ],
+                encapsulation: ViewEncapsulation.None,
+                changeDetection: ChangeDetectionStrategy.OnPush,
+                styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content[aria-expanded=false]{height:0;overflow:hidden}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\n"]
+            }]
+    }], function () { return [{ type: ɵngcc6.Directionality, decorators: [{
+                type: Optional
+            }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: undefined, decorators: [{
+                type: Inject,
+                args: [DOCUMENT]
+            }] }]; }, { animationDone: [{
+            type: Output
+        }], labelPosition: [{
+            type: Input
+        }], _stepHeader: [{
+            type: ViewChildren,
+            args: [MatStepHeader]
+        }], _steps: [{
+            type: ContentChildren,
+            args: [MatStep, { descendants: true }]
+        }], _icons: [{
+            type: ContentChildren,
+            args: [MatStepperIcon, { descendants: true }]
+        }], disableRipple: [{
+            type: Input
+        }], color: [{
+            type: Input
+        }] }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/** Button that moves to the next step in a stepper workflow. */
+class MatStepperNext extends CdkStepperNext {
+}
+MatStepperNext.ɵfac = /*@__PURE__*/ function () { let ɵMatStepperNext_BaseFactory; return function MatStepperNext_Factory(t) { return (ɵMatStepperNext_BaseFactory || (ɵMatStepperNext_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatStepperNext)))(t || MatStepperNext); }; }();
+MatStepperNext.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatStepperNext, selectors: [["button", "matStepperNext", ""]], hostAttrs: [1, "mat-stepper-next"], hostVars: 1, hostBindings: function MatStepperNext_HostBindings(rf, ctx) { if (rf & 2) {
+        ɵngcc0.ɵɵhostProperty("type", ctx.type);
+    } }, inputs: { type: "type" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepperNext, [{
+        type: Directive,
+        args: [{
+                selector: 'button[matStepperNext]',
+                host: {
+                    'class': 'mat-stepper-next',
+                    '[type]': 'type'
+                },
+                inputs: ['type']
+            }]
+    }], null, null); })();
+/** Button that moves to the previous step in a stepper workflow. */
+class MatStepperPrevious extends CdkStepperPrevious {
+}
+MatStepperPrevious.ɵfac = /*@__PURE__*/ function () { let ɵMatStepperPrevious_BaseFactory; return function MatStepperPrevious_Factory(t) { return (ɵMatStepperPrevious_BaseFactory || (ɵMatStepperPrevious_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatStepperPrevious)))(t || MatStepperPrevious); }; }();
+MatStepperPrevious.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatStepperPrevious, selectors: [["button", "matStepperPrevious", ""]], hostAttrs: [1, "mat-stepper-previous"], hostVars: 1, hostBindings: function MatStepperPrevious_HostBindings(rf, ctx) { if (rf & 2) {
+        ɵngcc0.ɵɵhostProperty("type", ctx.type);
+    } }, inputs: { type: "type" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepperPrevious, [{
+        type: Directive,
+        args: [{
+                selector: 'button[matStepperPrevious]',
+                host: {
+                    'class': 'mat-stepper-previous',
+                    '[type]': 'type'
+                },
+                inputs: ['type']
+            }]
+    }], null, null); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+class MatStepperModule {
+}
+MatStepperModule.ɵfac = function MatStepperModule_Factory(t) { return new (t || MatStepperModule)(); };
+MatStepperModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatStepperModule });
+MatStepperModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher], imports: [[
+            MatCommonModule,
+            CommonModule,
+            PortalModule,
+            MatButtonModule,
+            CdkStepperModule,
+            MatIconModule,
+            MatRippleModule,
+        ], MatCommonModule] });
+(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatStepperModule, [{
+        type: NgModule,
+        args: [{
+                imports: [
+                    MatCommonModule,
+                    CommonModule,
+                    PortalModule,
+                    MatButtonModule,
+                    CdkStepperModule,
+                    MatIconModule,
+                    MatRippleModule,
+                ],
+                exports: [
+                    MatCommonModule,
+                    MatStep,
+                    MatStepLabel,
+                    MatStepper,
+                    MatStepperNext,
+                    MatStepperPrevious,
+                    MatStepHeader,
+                    MatStepperIcon,
+                    MatStepContent,
+                ],
+                declarations: [
+                    MatHorizontalStepper,
+                    MatVerticalStepper,
+                    MatStep,
+                    MatStepLabel,
+                    MatStepper,
+                    MatStepperNext,
+                    MatStepperPrevious,
+                    MatStepHeader,
+                    MatStepperIcon,
+                    MatStepContent,
+                ],
+                providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher]
+            }]
+    }], null, null); })();
+(function () { (typeof ngJitMode === "undefined" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatStepperModule, { declarations: function () { return [MatHorizontalStepper, MatVerticalStepper, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent]; }, imports: function () { return [MatCommonModule,
+        CommonModule,
+        PortalModule,
+        MatButtonModule,
+        CdkStepperModule,
+        MatIconModule,
+        MatRippleModule]; }, exports: function () { return [MatCommonModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent]; } }); })();
+
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { MAT_STEPPER_INTL_PROVIDER, MAT_STEPPER_INTL_PROVIDER_FACTORY, MatHorizontalStepper, MatStep, MatStepContent, MatStepHeader, MatStepLabel, MatStepper, MatStepperIcon, MatStepperIntl, MatStepperModule, MatStepperNext, MatStepperPrevious, MatVerticalStepper, matStepperAnimations };
+
+//# sourceMappingURL=stepper.js.map
Index: trip-planner-front/node_modules/@angular/material/__ivy_ngcc__/fesm2015/stepper.js.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/__ivy_ngcc__/fesm2015/stepper.js.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/__ivy_ngcc__/fesm2015/stepper.js.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper.js","sources":["../../../../../../src/material/stepper/step-label.ts","../../../../../../src/material/stepper/stepper-intl.ts","../../../../../../src/material/stepper/step-header.ts","../../../../../../src/material/stepper/stepper-animations.ts","../../../../../../src/material/stepper/stepper-icon.ts","../../../../../../src/material/stepper/step-content.ts","../../../../../../src/material/stepper/stepper.ts","../../../../../../src/material/stepper/stepper-button.ts","../../../../../../src/material/stepper/stepper-module.ts","../../../../../../src/material/stepper/public-api.ts","../../../../../../src/material/stepper/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {CdkStepLabel} from '@angular/cdk/stepper';\n\n@Directive({\n  selector: '[matStepLabel]',\n})\nexport class MatStepLabel extends CdkStepLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Optional, SkipSelf} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n\n/** Stepper data that is required for internationalization. */\n@Injectable({providedIn: 'root'})\nexport class MatStepperIntl {\n  /**\n   * Stream that emits whenever the labels here are changed. Use this to notify\n   * components if the labels have changed after initialization.\n   */\n  readonly changes: Subject<void> = new Subject<void>();\n\n  /** Label that is rendered below optional steps. */\n  optionalLabel: string = 'Optional';\n\n  /** Label that is used to indicate step as completed to screen readers. */\n  completedLabel: string = 'Completed';\n\n  /** Label that is used to indicate step as editable to screen readers. */\n  editableLabel: string = 'Editable';\n}\n\n\n/** @docs-private */\nexport function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl: MatStepperIntl) {\n  return parentIntl || new MatStepperIntl();\n}\n\n/** @docs-private */\nexport const MAT_STEPPER_INTL_PROVIDER = {\n  provide: MatStepperIntl,\n  deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],\n  useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnDestroy,\n  ViewEncapsulation,\n  TemplateRef,\n  AfterViewInit,\n} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIntl} from './stepper-intl';\nimport {MatStepperIconContext} from './stepper-icon';\nimport {CdkStepHeader, StepState} from '@angular/cdk/stepper';\nimport {mixinColor, CanColor} from '@angular/material/core';\n\n\n// Boilerplate for applying mixins to MatStepHeader.\n/** @docs-private */\nconst _MatStepHeaderBase = mixinColor(class MatStepHeaderBase extends CdkStepHeader {\n  constructor(elementRef: ElementRef) {\n    super(elementRef);\n  }\n}, 'primary');\n\n@Component({\n  selector: 'mat-step-header',\n  templateUrl: 'step-header.html',\n  styleUrls: ['step-header.css'],\n  inputs: ['color'],\n  host: {\n    'class': 'mat-step-header',\n    'role': 'tab',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatStepHeader extends _MatStepHeaderBase implements AfterViewInit, OnDestroy,\n  CanColor {\n  private _intlSubscription: Subscription;\n\n  /** State of the given step. */\n  @Input() state: StepState;\n\n  /** Label of the given step. */\n  @Input() label: MatStepLabel | string;\n\n  /** Error message to display when there's an error. */\n  @Input() errorMessage: string;\n\n  /** Overrides for the header icons, passed in via the stepper. */\n  @Input() iconOverrides: {[key: string]: TemplateRef<MatStepperIconContext>};\n\n  /** Index of the given step. */\n  @Input() index: number;\n\n  /** Whether the given step is selected. */\n  @Input() selected: boolean;\n\n  /** Whether the given step label is active. */\n  @Input() active: boolean;\n\n  /** Whether the given step is optional. */\n  @Input() optional: boolean;\n\n  /** Whether the ripple should be disabled. */\n  @Input() disableRipple: boolean;\n\n  constructor(\n    public _intl: MatStepperIntl,\n    private _focusMonitor: FocusMonitor,\n    _elementRef: ElementRef<HTMLElement>,\n    changeDetectorRef: ChangeDetectorRef) {\n    super(_elementRef);\n    this._intlSubscription = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());\n  }\n\n  ngAfterViewInit() {\n    this._focusMonitor.monitor(this._elementRef, true);\n  }\n\n  ngOnDestroy() {\n    this._intlSubscription.unsubscribe();\n    this._focusMonitor.stopMonitoring(this._elementRef);\n  }\n\n  /** Focuses the step header. */\n  override focus(origin?: FocusOrigin, options?: FocusOptions) {\n    if (origin) {\n      this._focusMonitor.focusVia(this._elementRef, origin, options);\n    } else {\n      this._elementRef.nativeElement.focus(options);\n    }\n  }\n\n  /** Returns string label of given step if it is a text label. */\n  _stringLabel(): string | null {\n    return this.label instanceof MatStepLabel ? null : this.label;\n  }\n\n  /** Returns MatStepLabel if the label of given step is a template label. */\n  _templateLabel(): MatStepLabel | null {\n    return this.label instanceof MatStepLabel ? this.label : null;\n  }\n\n  /** Returns the host HTML element. */\n  _getHostElement() {\n    return this._elementRef.nativeElement;\n  }\n\n  /** Template context variables that are exposed to the `matStepperIcon` instances. */\n  _getIconContext(): MatStepperIconContext {\n    return {\n      index: this.index,\n      active: this.active,\n      optional: this.optional\n    };\n  }\n\n  _getDefaultTextForState(state: StepState): string {\n    if (state == 'number') {\n      return `${this.index + 1}`;\n    }\n    if (state == 'edit') {\n      return 'create';\n    }\n    if (state == 'error') {\n      return 'warning';\n    }\n    return state;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n  AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nexport const matStepperAnimations: {\n  readonly horizontalStepTransition: AnimationTriggerMetadata;\n  readonly verticalStepTransition: AnimationTriggerMetadata;\n} = {\n  /** Animation that transitions the step along the X axis in a horizontal stepper. */\n  horizontalStepTransition: trigger('horizontalStepTransition', [\n    state('previous', style({transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden'})),\n    // Transition to `inherit`, rather than `visible`,\n    // because visibility on a child element the one from the parent,\n    // making this element focusable inside of a `hidden` element.\n    state('current', style({transform: 'none', visibility: 'inherit'})),\n    state('next', style({transform: 'translate3d(100%, 0, 0)', visibility: 'hidden'})),\n    transition('* => *', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))\n  ]),\n\n  /** Animation that transitions the step along the Y axis in a vertical stepper. */\n  verticalStepTransition: trigger('verticalStepTransition', [\n    state('previous', style({height: '0px', visibility: 'hidden'})),\n    state('next', style({height: '0px', visibility: 'hidden'})),\n    // Transition to `inherit`, rather than `visible`,\n    // because visibility on a child element the one from the parent,\n    // making this element focusable inside of a `hidden` element.\n    state('current', style({height: '*', visibility: 'inherit'})),\n    transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))\n  ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input, TemplateRef} from '@angular/core';\nimport {StepState} from '@angular/cdk/stepper';\n\n/** Template context available to an attached `matStepperIcon`. */\nexport interface MatStepperIconContext {\n  /** Index of the step. */\n  index: number;\n  /** Whether the step is currently active. */\n  active: boolean;\n  /** Whether the step is optional. */\n  optional: boolean;\n}\n\n/**\n * Template to be used to override the icons inside the step header.\n */\n@Directive({\n  selector: 'ng-template[matStepperIcon]',\n})\nexport class MatStepperIcon {\n  /** Name of the icon to be overridden. */\n  @Input('matStepperIcon') name: StepState;\n\n  constructor(public templateRef: TemplateRef<MatStepperIconContext>) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n/**\n * Content for a `mat-step` that will be rendered lazily.\n */\n@Directive({\n  selector: 'ng-template[matStepContent]'\n})\nexport class MatStepContent {\n  constructor(public _template: TemplateRef<any>) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n  CdkStep,\n  CdkStepper,\n  StepContentPositionState,\n  STEPPER_GLOBAL_OPTIONS,\n  StepperOptions,\n} from '@angular/cdk/stepper';\nimport {AnimationEvent} from '@angular/animations';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  SkipSelf,\n  TemplateRef,\n  ViewChildren,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {FormControl, FormGroupDirective, NgForm} from '@angular/forms';\nimport {DOCUMENT} from '@angular/common';\nimport {ErrorStateMatcher, ThemePalette} from '@angular/material/core';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {Subject, Subscription} from 'rxjs';\nimport {takeUntil, distinctUntilChanged, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {matStepperAnimations} from './stepper-animations';\nimport {MatStepperIcon, MatStepperIconContext} from './stepper-icon';\nimport {MatStepContent} from './step-content';\n\n@Component({\n  selector: 'mat-step',\n  templateUrl: 'step.html',\n  providers: [\n    {provide: ErrorStateMatcher, useExisting: MatStep},\n    {provide: CdkStep, useExisting: MatStep},\n  ],\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'matStep',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n  private _isSelected = Subscription.EMPTY;\n\n  /** Content for step label given by `<ng-template matStepLabel>`. */\n  @ContentChild(MatStepLabel) override stepLabel: MatStepLabel;\n\n  /** Theme color for the particular step. */\n  @Input() color: ThemePalette;\n\n  /** Content that will be rendered lazily. */\n  @ContentChild(MatStepContent, {static: false}) _lazyContent: MatStepContent;\n\n  /** Currently-attached portal containing the lazy content. */\n  _portal: TemplatePortal;\n\n  constructor(@Inject(forwardRef(() => MatStepper)) stepper: MatStepper,\n              @SkipSelf() private _errorStateMatcher: ErrorStateMatcher,\n              private _viewContainerRef: ViewContainerRef,\n              @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n    super(stepper, stepperOptions);\n  }\n\n  ngAfterContentInit() {\n    this._isSelected = this._stepper.steps.changes.pipe(switchMap(() => {\n      return this._stepper.selectionChange.pipe(\n        map(event => event.selectedStep === this),\n        startWith(this._stepper.selected === this)\n      );\n    })).subscribe(isSelected => {\n      if (isSelected && this._lazyContent && !this._portal) {\n        this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef!);\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    this._isSelected.unsubscribe();\n  }\n\n  /** Custom error state matcher that additionally checks for validity of interacted form. */\n  isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n    const originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n\n    // Custom error state checks for the validity of form that is not submitted or touched\n    // since user can trigger a form change by calling for another step without directly\n    // interacting with the current form.\n    const customErrorState = !!(control && control.invalid && this.interacted);\n\n    return originalErrorState || customErrorState;\n  }\n}\n\n/**\n * Proxies the public APIs from `MatStepper` to the deprecated `MatHorizontalStepper` and\n * `MatVerticalStepper`.\n * @deprecated Use `MatStepper` instead.\n * @breaking-change 13.0.0\n * @docs-private\n */\n@Directive()\nabstract class _MatProxyStepperBase extends CdkStepper {\n  override readonly steps: QueryList<MatStep>;\n  readonly animationDone: EventEmitter<void>;\n  disableRipple: boolean;\n  color: ThemePalette;\n  labelPosition: 'bottom' | 'end';\n}\n\n/**\n * @deprecated Use `MatStepper` instead.\n * @breaking-change 13.0.0\n */\n@Directive({selector: 'mat-horizontal-stepper'})\nexport class MatHorizontalStepper extends _MatProxyStepperBase {}\n\n/**\n * @deprecated Use `MatStepper` instead.\n * @breaking-change 13.0.0\n */\n@Directive({selector: 'mat-vertical-stepper'})\nexport class MatVerticalStepper extends _MatProxyStepperBase {}\n\n\n@Component({\n  selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',\n  exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',\n  templateUrl: 'stepper.html',\n  styleUrls: ['stepper.css'],\n  inputs: ['selectedIndex'],\n  host: {\n    '[class.mat-stepper-horizontal]': 'orientation === \"horizontal\"',\n    '[class.mat-stepper-vertical]': 'orientation === \"vertical\"',\n    '[class.mat-stepper-label-position-end]':\n        'orientation === \"horizontal\" && labelPosition == \"end\"',\n    '[class.mat-stepper-label-position-bottom]':\n        'orientation === \"horizontal\" && labelPosition == \"bottom\"',\n    '[attr.aria-orientation]': 'orientation',\n    'role': 'tablist',\n  },\n  animations: [\n    matStepperAnimations.horizontalStepTransition,\n    matStepperAnimations.verticalStepTransition,\n  ],\n  providers: [\n    {provide: CdkStepper, useExisting: MatStepper},\n    {provide: MatHorizontalStepper, useExisting: MatStepper},\n    {provide: MatVerticalStepper, useExisting: MatStepper},\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatStepper extends CdkStepper implements AfterContentInit {\n  /** The list of step headers of the steps in the stepper. */\n  @ViewChildren(MatStepHeader) override _stepHeader: QueryList<MatStepHeader>;\n\n  /** Full list of steps inside the stepper, including inside nested steppers. */\n  @ContentChildren(MatStep, {descendants: true}) override _steps: QueryList<MatStep>;\n\n  /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n  override readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\n\n  /** Custom icon overrides passed in by the consumer. */\n  @ContentChildren(MatStepperIcon, {descendants: true}) _icons: QueryList<MatStepperIcon>;\n\n  /** Event emitted when the current step is done transitioning in. */\n  @Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n  /** Whether ripples should be disabled for the step headers. */\n  @Input() disableRipple: boolean;\n\n  /** Theme color for all of the steps in stepper. */\n  @Input() color: ThemePalette;\n\n  /**\n   * Whether the label should display in bottom or end position.\n   * Only applies in the `horizontal` orientation.\n   */\n  @Input()\n  labelPosition: 'bottom' | 'end' = 'end';\n\n  /** Consumer-specified template-refs to be used to override the header icons. */\n  _iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\n\n  /** Stream of animation `done` events when the body expands/collapses. */\n  readonly _animationDone = new Subject<AnimationEvent>();\n\n  constructor(\n    @Optional() dir: Directionality,\n    changeDetectorRef: ChangeDetectorRef,\n    elementRef: ElementRef<HTMLElement>,\n    @Inject(DOCUMENT) _document: any) {\n    super(dir, changeDetectorRef, elementRef, _document);\n    const nodeName = elementRef.nativeElement.nodeName.toLowerCase();\n    this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n    this._icons.forEach(({name, templateRef}) => this._iconOverrides[name] = templateRef);\n\n    // Mark the component for change detection whenever the content children query changes\n    this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n      this._stateChanged();\n    });\n\n    this._animationDone.pipe(\n      // This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due\n      // to a bug in animations where the `.done` callback gets invoked twice on some browsers.\n      // See https://github.com/angular/angular/issues/24084\n      distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n      takeUntil(this._destroyed)\n    ).subscribe(event => {\n      if ((event.toState as StepContentPositionState) === 'current') {\n        this.animationDone.emit();\n      }\n    });\n  }\n\n  _stepIsNavigable(index: number, step: MatStep): boolean {\n    return step.completed || this.selectedIndex === index || !this.linear;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CdkStepperNext, CdkStepperPrevious} from '@angular/cdk/stepper';\nimport {Directive} from '@angular/core';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n  selector: 'button[matStepperNext]',\n  host: {\n    'class': 'mat-stepper-next',\n    '[type]': 'type',\n  },\n  inputs: ['type']\n})\nexport class MatStepperNext extends CdkStepperNext {\n}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n  selector: 'button[matStepperPrevious]',\n  host: {\n    'class': 'mat-stepper-previous',\n    '[type]': 'type',\n  },\n  inputs: ['type']\n})\nexport class MatStepperPrevious extends CdkStepperPrevious {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {ErrorStateMatcher, MatCommonModule, MatRippleModule} from '@angular/material/core';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatHorizontalStepper, MatStep, MatStepper, MatVerticalStepper} from './stepper';\nimport {MatStepperNext, MatStepperPrevious} from './stepper-button';\nimport {MatStepperIcon} from './stepper-icon';\nimport {MAT_STEPPER_INTL_PROVIDER} from './stepper-intl';\nimport {MatStepContent} from './step-content';\n\n\n@NgModule({\n  imports: [\n    MatCommonModule,\n    CommonModule,\n    PortalModule,\n    MatButtonModule,\n    CdkStepperModule,\n    MatIconModule,\n    MatRippleModule,\n  ],\n  exports: [\n    MatCommonModule,\n    MatStep,\n    MatStepLabel,\n    MatStepper,\n    MatStepperNext,\n    MatStepperPrevious,\n    MatStepHeader,\n    MatStepperIcon,\n    MatStepContent,\n  ],\n  declarations: [\n    MatHorizontalStepper,\n    MatVerticalStepper,\n    MatStep,\n    MatStepLabel,\n    MatStepper,\n    MatStepperNext,\n    MatStepperPrevious,\n    MatStepHeader,\n    MatStepperIcon,\n    MatStepContent,\n  ],\n  providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher],\n})\nexport class MatStepperModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {StepperOrientation, StepState} from '@angular/cdk/stepper';\nexport * from './stepper-module';\nexport * from './step-label';\nexport * from './stepper';\nexport * from './stepper-button';\nexport * from './step-header';\nexport * from './stepper-intl';\nexport * from './stepper-animations';\nexport * from './stepper-icon';\nexport * from './step-content';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/index.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/index.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/index.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -3,2 +3,4 @@
  */
 export * from './public-api';
+
+//# sourceMappingURL=index.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/index.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/index.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/index.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public-api';
Index: trip-planner-front/node_modules/@angular/material/stepper/index.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/index.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/index.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"index.d.ts","sources":["index.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/package.json
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/package.json	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/package.json	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -2,8 +2,20 @@
   "name": "@angular/material/stepper",
   "main": "../bundles/material-stepper.umd.js",
+  "fesm2015_ivy_ngcc": "../__ivy_ngcc__/fesm2015/stepper.js",
   "fesm2015": "../fesm2015/stepper.js",
   "esm2015": "../esm2015/stepper/index.js",
   "typings": "./index.d.ts",
+  "module_ivy_ngcc": "../__ivy_ngcc__/fesm2015/stepper.js",
   "module": "../fesm2015/stepper.js",
-  "es2015": "../fesm2015/stepper.js"
+  "es2015_ivy_ngcc": "../__ivy_ngcc__/fesm2015/stepper.js",
+  "es2015": "../fesm2015/stepper.js",
+  "__processed_by_ivy_ngcc__": {
+    "es2015": "12.2.13",
+    "fesm2015": "12.2.13",
+    "module": "12.2.13",
+    "typings": "12.2.13"
+  },
+  "scripts": {
+    "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by NGCC. This is not allowed.\\nPlease delete and rebuild the package, without compiling with NGCC, before attempting to publish.\\nNote that NGCC may have been run by importing this package into another project that is being built with Ivy enabled.\\n')\" && exit 1"
+  }
 }
Index: trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -10,6 +10,11 @@
  * Content for a `mat-step` that will be rendered lazily.
  */
+import * as ɵngcc0 from '@angular/core';
 export declare class MatStepContent {
     _template: TemplateRef<any>;
     constructor(_template: TemplateRef<any>);
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepContent, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatStepContent, "ng-template[matStepContent]", never, {}, {}, never>;
 }
+
+//# sourceMappingURL=step-content.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { TemplateRef } from '@angular/core';
+/**
+ * Content for a `mat-step` that will be rendered lazily.
+ */
+export declare class MatStepContent {
+    _template: TemplateRef<any>;
+    constructor(_template: TemplateRef<any>);
+}
Index: trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-content.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"step-content.d.ts","sources":["step-content.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\n/**\n * Content for a `mat-step` that will be rendered lazily.\n */\nexport declare class MatStepContent {\n    _template: TemplateRef<any>;\n    constructor(_template: TemplateRef<any>);\n}\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -14,4 +14,5 @@
 import { CanColor } from '@angular/material/core';
 /** @docs-private */
+import * as ɵngcc0 from '@angular/core';
 declare const _MatStepHeaderBase: import("@angular/material/core/common-behaviors/constructor").Constructor<CanColor> & import("@angular/material/core/common-behaviors/constructor").AbstractConstructor<CanColor> & {
     new (elementRef: ElementRef): {
@@ -58,4 +59,8 @@
     _getIconContext(): MatStepperIconContext;
     _getDefaultTextForState(state: StepState): string;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepHeader, never>;
+    static ɵcmp: ɵngcc0.ɵɵComponentDeclaration<MatStepHeader, "mat-step-header", never, { "color": "color"; "state": "state"; "label": "label"; "errorMessage": "errorMessage"; "iconOverrides": "iconOverrides"; "index": "index"; "selected": "selected"; "active": "active"; "optional": "optional"; "disableRipple": "disableRipple"; }, {}, never, never>;
 }
 export {};
+
+//# sourceMappingURL=step-header.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,61 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
+import { ChangeDetectorRef, ElementRef, OnDestroy, TemplateRef, AfterViewInit } from '@angular/core';
+import { MatStepLabel } from './step-label';
+import { MatStepperIntl } from './stepper-intl';
+import { MatStepperIconContext } from './stepper-icon';
+import { StepState } from '@angular/cdk/stepper';
+import { CanColor } from '@angular/material/core';
+/** @docs-private */
+declare const _MatStepHeaderBase: import("@angular/material/core/common-behaviors/constructor").Constructor<CanColor> & import("@angular/material/core/common-behaviors/constructor").AbstractConstructor<CanColor> & {
+    new (elementRef: ElementRef): {
+        _elementRef: ElementRef<HTMLElement>;
+        focus(): void;
+    };
+};
+export declare class MatStepHeader extends _MatStepHeaderBase implements AfterViewInit, OnDestroy, CanColor {
+    _intl: MatStepperIntl;
+    private _focusMonitor;
+    private _intlSubscription;
+    /** State of the given step. */
+    state: StepState;
+    /** Label of the given step. */
+    label: MatStepLabel | string;
+    /** Error message to display when there's an error. */
+    errorMessage: string;
+    /** Overrides for the header icons, passed in via the stepper. */
+    iconOverrides: {
+        [key: string]: TemplateRef<MatStepperIconContext>;
+    };
+    /** Index of the given step. */
+    index: number;
+    /** Whether the given step is selected. */
+    selected: boolean;
+    /** Whether the given step label is active. */
+    active: boolean;
+    /** Whether the given step is optional. */
+    optional: boolean;
+    /** Whether the ripple should be disabled. */
+    disableRipple: boolean;
+    constructor(_intl: MatStepperIntl, _focusMonitor: FocusMonitor, _elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef);
+    ngAfterViewInit(): void;
+    ngOnDestroy(): void;
+    /** Focuses the step header. */
+    focus(origin?: FocusOrigin, options?: FocusOptions): void;
+    /** Returns string label of given step if it is a text label. */
+    _stringLabel(): string | null;
+    /** Returns MatStepLabel if the label of given step is a template label. */
+    _templateLabel(): MatStepLabel | null;
+    /** Returns the host HTML element. */
+    _getHostElement(): HTMLElement;
+    /** Template context variables that are exposed to the `matStepperIcon` instances. */
+    _getIconContext(): MatStepperIconContext;
+    _getDefaultTextForState(state: StepState): string;
+}
+export {};
Index: trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-header.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"step-header.d.ts","sources":["step-header.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { ChangeDetectorRef, ElementRef, OnDestroy, TemplateRef, AfterViewInit } from '@angular/core';\nimport { MatStepLabel } from './step-label';\nimport { MatStepperIntl } from './stepper-intl';\nimport { MatStepperIconContext } from './stepper-icon';\nimport { StepState } from '@angular/cdk/stepper';\nimport { CanColor } from '@angular/material/core';\n/** @docs-private */\ndeclare const _MatStepHeaderBase: import(\"@angular/material/core/common-behaviors/constructor\").Constructor<CanColor> & import(\"@angular/material/core/common-behaviors/constructor\").AbstractConstructor<CanColor> & {\n    new (elementRef: ElementRef): {\n        _elementRef: ElementRef<HTMLElement>;\n        focus(): void;\n    };\n};\nexport declare class MatStepHeader extends _MatStepHeaderBase implements AfterViewInit, OnDestroy, CanColor {\n    _intl: MatStepperIntl;\n    private _focusMonitor;\n    private _intlSubscription;\n    /** State of the given step. */\n    state: StepState;\n    /** Label of the given step. */\n    label: MatStepLabel | string;\n    /** Error message to display when there's an error. */\n    errorMessage: string;\n    /** Overrides for the header icons, passed in via the stepper. */\n    iconOverrides: {\n        [key: string]: TemplateRef<MatStepperIconContext>;\n    };\n    /** Index of the given step. */\n    index: number;\n    /** Whether the given step is selected. */\n    selected: boolean;\n    /** Whether the given step label is active. */\n    active: boolean;\n    /** Whether the given step is optional. */\n    optional: boolean;\n    /** Whether the ripple should be disabled. */\n    disableRipple: boolean;\n    constructor(_intl: MatStepperIntl, _focusMonitor: FocusMonitor, _elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef);\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /** Focuses the step header. */\n    focus(origin?: FocusOrigin, options?: FocusOptions): void;\n    /** Returns string label of given step if it is a text label. */\n    _stringLabel(): string | null;\n    /** Returns MatStepLabel if the label of given step is a template label. */\n    _templateLabel(): MatStepLabel | null;\n    /** Returns the host HTML element. */\n    _getHostElement(): HTMLElement;\n    /** Template context variables that are exposed to the `matStepperIcon` instances. */\n    _getIconContext(): MatStepperIconContext;\n    _getDefaultTextForState(state: StepState): string;\n}\nexport {};\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -7,4 +7,9 @@
  */
 import { CdkStepLabel } from '@angular/cdk/stepper';
+import * as ɵngcc0 from '@angular/core';
 export declare class MatStepLabel extends CdkStepLabel {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepLabel, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatStepLabel, "[matStepLabel]", never, {}, {}, never>;
 }
+
+//# sourceMappingURL=step-label.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,10 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { CdkStepLabel } from '@angular/cdk/stepper';
+export declare class MatStepLabel extends CdkStepLabel {
+}
Index: trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/step-label.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"step-label.d.ts","sources":["step-label.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkStepLabel } from '@angular/cdk/stepper';\nexport declare class MatStepLabel extends CdkStepLabel {\n}\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -8,7 +8,14 @@
 import { CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';
 /** Button that moves to the next step in a stepper workflow. */
+import * as ɵngcc0 from '@angular/core';
 export declare class MatStepperNext extends CdkStepperNext {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepperNext, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatStepperNext, "button[matStepperNext]", never, { "type": "type"; }, {}, never>;
 }
 /** Button that moves to the previous step in a stepper workflow. */
 export declare class MatStepperPrevious extends CdkStepperPrevious {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepperPrevious, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatStepperPrevious, "button[matStepperPrevious]", never, { "type": "type"; }, {}, never>;
 }
+
+//# sourceMappingURL=stepper-button.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,14 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';
+/** Button that moves to the next step in a stepper workflow. */
+export declare class MatStepperNext extends CdkStepperNext {
+}
+/** Button that moves to the previous step in a stepper workflow. */
+export declare class MatStepperPrevious extends CdkStepperPrevious {
+}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-button.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper-button.d.ts","sources":["stepper-button.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';\n/** Button that moves to the next step in a stepper workflow. */\nexport declare class MatStepperNext extends CdkStepperNext {\n}\n/** Button that moves to the previous step in a stepper workflow. */\nexport declare class MatStepperPrevious extends CdkStepperPrevious {\n}\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -9,4 +9,5 @@
 import { StepState } from '@angular/cdk/stepper';
 /** Template context available to an attached `matStepperIcon`. */
+import * as ɵngcc0 from '@angular/core';
 export interface MatStepperIconContext {
     /** Index of the step. */
@@ -25,3 +26,7 @@
     name: StepState;
     constructor(templateRef: TemplateRef<MatStepperIconContext>);
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepperIcon, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatStepperIcon, "ng-template[matStepperIcon]", never, { "name": "matStepperIcon"; }, {}, never>;
 }
+
+//# sourceMappingURL=stepper-icon.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,27 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { TemplateRef } from '@angular/core';
+import { StepState } from '@angular/cdk/stepper';
+/** Template context available to an attached `matStepperIcon`. */
+export interface MatStepperIconContext {
+    /** Index of the step. */
+    index: number;
+    /** Whether the step is currently active. */
+    active: boolean;
+    /** Whether the step is optional. */
+    optional: boolean;
+}
+/**
+ * Template to be used to override the icons inside the step header.
+ */
+export declare class MatStepperIcon {
+    templateRef: TemplateRef<MatStepperIconContext>;
+    /** Name of the icon to be overridden. */
+    name: StepState;
+    constructor(templateRef: TemplateRef<MatStepperIconContext>);
+}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-icon.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper-icon.d.ts","sources":["stepper-icon.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\nimport { StepState } from '@angular/cdk/stepper';\n/** Template context available to an attached `matStepperIcon`. */\nexport interface MatStepperIconContext {\n    /** Index of the step. */\n    index: number;\n    /** Whether the step is currently active. */\n    active: boolean;\n    /** Whether the step is optional. */\n    optional: boolean;\n}\n/**\n * Template to be used to override the icons inside the step header.\n */\nexport declare class MatStepperIcon {\n    templateRef: TemplateRef<MatStepperIconContext>;\n    /** Name of the icon to be overridden. */\n    name: StepState;\n    constructor(templateRef: TemplateRef<MatStepperIconContext>);\n}\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -9,4 +9,5 @@
 import { Subject } from 'rxjs';
 /** Stepper data that is required for internationalization. */
+import * as ɵngcc0 from '@angular/core';
 export declare class MatStepperIntl {
     /**
@@ -21,4 +22,5 @@
     /** Label that is used to indicate step as editable to screen readers. */
     editableLabel: string;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepperIntl, never>;
 }
 /** @docs-private */
@@ -30,2 +32,4 @@
     useFactory: typeof MAT_STEPPER_INTL_PROVIDER_FACTORY;
 };
+
+//# sourceMappingURL=stepper-intl.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,31 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Optional } from '@angular/core';
+import { Subject } from 'rxjs';
+/** Stepper data that is required for internationalization. */
+export declare class MatStepperIntl {
+    /**
+     * Stream that emits whenever the labels here are changed. Use this to notify
+     * components if the labels have changed after initialization.
+     */
+    readonly changes: Subject<void>;
+    /** Label that is rendered below optional steps. */
+    optionalLabel: string;
+    /** Label that is used to indicate step as completed to screen readers. */
+    completedLabel: string;
+    /** Label that is used to indicate step as editable to screen readers. */
+    editableLabel: string;
+}
+/** @docs-private */
+export declare function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl: MatStepperIntl): MatStepperIntl;
+/** @docs-private */
+export declare const MAT_STEPPER_INTL_PROVIDER: {
+    provide: typeof MatStepperIntl;
+    deps: Optional[][];
+    useFactory: typeof MAT_STEPPER_INTL_PROVIDER_FACTORY;
+};
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-intl.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper-intl.d.ts","sources":["stepper-intl.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\n/** Stepper data that is required for internationalization. */\nexport declare class MatStepperIntl {\n    /**\n     * Stream that emits whenever the labels here are changed. Use this to notify\n     * components if the labels have changed after initialization.\n     */\n    readonly changes: Subject<void>;\n    /** Label that is rendered below optional steps. */\n    optionalLabel: string;\n    /** Label that is used to indicate step as completed to screen readers. */\n    completedLabel: string;\n    /** Label that is used to indicate step as editable to screen readers. */\n    editableLabel: string;\n}\n/** @docs-private */\nexport declare function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl: MatStepperIntl): MatStepperIntl;\n/** @docs-private */\nexport declare const MAT_STEPPER_INTL_PROVIDER: {\n    provide: typeof MatStepperIntl;\n    deps: Optional[][];\n    useFactory: typeof MAT_STEPPER_INTL_PROVIDER_FACTORY;\n};\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -6,4 +6,22 @@
  * found in the LICENSE file at https://angular.io/license
  */
+import * as ɵngcc0 from '@angular/core';
+import * as ɵngcc1 from './stepper';
+import * as ɵngcc2 from './step-label';
+import * as ɵngcc3 from './stepper-button';
+import * as ɵngcc4 from './step-header';
+import * as ɵngcc5 from './stepper-icon';
+import * as ɵngcc6 from './step-content';
+import * as ɵngcc7 from '@angular/material/core';
+import * as ɵngcc8 from '@angular/common';
+import * as ɵngcc9 from '@angular/cdk/portal';
+import * as ɵngcc10 from '@angular/material/button';
+import * as ɵngcc11 from '@angular/cdk/stepper';
+import * as ɵngcc12 from '@angular/material/icon';
 export declare class MatStepperModule {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepperModule, never>;
+    static ɵmod: ɵngcc0.ɵɵNgModuleDeclaration<MatStepperModule, [typeof ɵngcc1.MatHorizontalStepper, typeof ɵngcc1.MatVerticalStepper, typeof ɵngcc1.MatStep, typeof ɵngcc2.MatStepLabel, typeof ɵngcc1.MatStepper, typeof ɵngcc3.MatStepperNext, typeof ɵngcc3.MatStepperPrevious, typeof ɵngcc4.MatStepHeader, typeof ɵngcc5.MatStepperIcon, typeof ɵngcc6.MatStepContent], [typeof ɵngcc7.MatCommonModule, typeof ɵngcc8.CommonModule, typeof ɵngcc9.PortalModule, typeof ɵngcc10.MatButtonModule, typeof ɵngcc11.CdkStepperModule, typeof ɵngcc12.MatIconModule, typeof ɵngcc7.MatRippleModule], [typeof ɵngcc7.MatCommonModule, typeof ɵngcc1.MatStep, typeof ɵngcc2.MatStepLabel, typeof ɵngcc1.MatStepper, typeof ɵngcc3.MatStepperNext, typeof ɵngcc3.MatStepperPrevious, typeof ɵngcc4.MatStepHeader, typeof ɵngcc5.MatStepperIcon, typeof ɵngcc6.MatStepContent]>;
+    static ɵinj: ɵngcc0.ɵɵInjectorDeclaration<MatStepperModule>;
 }
+
+//# sourceMappingURL=stepper-module.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,9 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare class MatStepperModule {
+}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper-module.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper-module.d.ts","sources":["stepper-module.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AACA;;;;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatStepperModule {\n}\n"]}
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -18,4 +18,5 @@
 import { MatStepperIcon, MatStepperIconContext } from './stepper-icon';
 import { MatStepContent } from './step-content';
+import * as ɵngcc0 from '@angular/core';
 export declare class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {
     private _errorStateMatcher;
@@ -35,4 +36,6 @@
     /** Custom error state matcher that additionally checks for validity of interacted form. */
     isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStep, [null, { skipSelf: true; }, null, { optional: true; }]>;
+    static ɵcmp: ɵngcc0.ɵɵComponentDeclaration<MatStep, "mat-step", ["matStep"], { "color": "color"; }, {}, ["stepLabel", "_lazyContent"], ["*"]>;
 }
 /**
@@ -55,4 +58,6 @@
  */
 export declare class MatHorizontalStepper extends _MatProxyStepperBase {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatHorizontalStepper, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatHorizontalStepper, "mat-horizontal-stepper", never, {}, {}, never>;
 }
 /**
@@ -61,4 +66,6 @@
  */
 export declare class MatVerticalStepper extends _MatProxyStepperBase {
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatVerticalStepper, never>;
+    static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<MatVerticalStepper, "mat-vertical-stepper", never, {}, {}, never>;
 }
 export declare class MatStepper extends CdkStepper implements AfterContentInit {
@@ -89,4 +96,8 @@
     ngAfterContentInit(): void;
     _stepIsNavigable(index: number, step: MatStep): boolean;
+    static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatStepper, [{ optional: true; }, null, null, null]>;
+    static ɵcmp: ɵngcc0.ɵɵComponentDeclaration<MatStepper, "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", ["matStepper", "matVerticalStepper", "matHorizontalStepper"], { "selectedIndex": "selectedIndex"; "labelPosition": "labelPosition"; "disableRipple": "disableRipple"; "color": "color"; }, { "animationDone": "animationDone"; }, ["_steps", "_icons"], never>;
 }
 export {};
+
+//# sourceMappingURL=stepper.d.ts.map
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts.__ivy_ngcc_bak	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,92 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Directionality } from '@angular/cdk/bidi';
+import { CdkStep, CdkStepper, StepperOptions } from '@angular/cdk/stepper';
+import { AnimationEvent } from '@angular/animations';
+import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList, TemplateRef, ViewContainerRef } from '@angular/core';
+import { FormControl, FormGroupDirective, NgForm } from '@angular/forms';
+import { ErrorStateMatcher, ThemePalette } from '@angular/material/core';
+import { TemplatePortal } from '@angular/cdk/portal';
+import { Subject } from 'rxjs';
+import { MatStepHeader } from './step-header';
+import { MatStepLabel } from './step-label';
+import { MatStepperIcon, MatStepperIconContext } from './stepper-icon';
+import { MatStepContent } from './step-content';
+export declare class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {
+    private _errorStateMatcher;
+    private _viewContainerRef;
+    private _isSelected;
+    /** Content for step label given by `<ng-template matStepLabel>`. */
+    stepLabel: MatStepLabel;
+    /** Theme color for the particular step. */
+    color: ThemePalette;
+    /** Content that will be rendered lazily. */
+    _lazyContent: MatStepContent;
+    /** Currently-attached portal containing the lazy content. */
+    _portal: TemplatePortal;
+    constructor(stepper: MatStepper, _errorStateMatcher: ErrorStateMatcher, _viewContainerRef: ViewContainerRef, stepperOptions?: StepperOptions);
+    ngAfterContentInit(): void;
+    ngOnDestroy(): void;
+    /** Custom error state matcher that additionally checks for validity of interacted form. */
+    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
+}
+/**
+ * Proxies the public APIs from `MatStepper` to the deprecated `MatHorizontalStepper` and
+ * `MatVerticalStepper`.
+ * @deprecated Use `MatStepper` instead.
+ * @breaking-change 13.0.0
+ * @docs-private
+ */
+declare abstract class _MatProxyStepperBase extends CdkStepper {
+    readonly steps: QueryList<MatStep>;
+    readonly animationDone: EventEmitter<void>;
+    disableRipple: boolean;
+    color: ThemePalette;
+    labelPosition: 'bottom' | 'end';
+}
+/**
+ * @deprecated Use `MatStepper` instead.
+ * @breaking-change 13.0.0
+ */
+export declare class MatHorizontalStepper extends _MatProxyStepperBase {
+}
+/**
+ * @deprecated Use `MatStepper` instead.
+ * @breaking-change 13.0.0
+ */
+export declare class MatVerticalStepper extends _MatProxyStepperBase {
+}
+export declare class MatStepper extends CdkStepper implements AfterContentInit {
+    /** The list of step headers of the steps in the stepper. */
+    _stepHeader: QueryList<MatStepHeader>;
+    /** Full list of steps inside the stepper, including inside nested steppers. */
+    _steps: QueryList<MatStep>;
+    /** Steps that belong to the current stepper, excluding ones from nested steppers. */
+    readonly steps: QueryList<MatStep>;
+    /** Custom icon overrides passed in by the consumer. */
+    _icons: QueryList<MatStepperIcon>;
+    /** Event emitted when the current step is done transitioning in. */
+    readonly animationDone: EventEmitter<void>;
+    /** Whether ripples should be disabled for the step headers. */
+    disableRipple: boolean;
+    /** Theme color for all of the steps in stepper. */
+    color: ThemePalette;
+    /**
+     * Whether the label should display in bottom or end position.
+     * Only applies in the `horizontal` orientation.
+     */
+    labelPosition: 'bottom' | 'end';
+    /** Consumer-specified template-refs to be used to override the header icons. */
+    _iconOverrides: Record<string, TemplateRef<MatStepperIconContext>>;
+    /** Stream of animation `done` events when the body expands/collapses. */
+    readonly _animationDone: Subject<AnimationEvent>;
+    constructor(dir: Directionality, changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, _document: any);
+    ngAfterContentInit(): void;
+    _stepIsNavigable(index: number, step: MatStep): boolean;
+}
+export {};
Index: trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/node_modules/@angular/material/stepper/stepper.d.ts.map	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stepper.d.ts","sources":["stepper.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CdkStep, CdkStepper, StepperOptions } from '@angular/cdk/stepper';\nimport { AnimationEvent } from '@angular/animations';\nimport { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher, ThemePalette } from '@angular/material/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { MatStepHeader } from './step-header';\nimport { MatStepLabel } from './step-label';\nimport { MatStepperIcon, MatStepperIconContext } from './stepper-icon';\nimport { MatStepContent } from './step-content';\nexport declare class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n    private _errorStateMatcher;\n    private _viewContainerRef;\n    private _isSelected;\n    /** Content for step label given by `<ng-template matStepLabel>`. */\n    stepLabel: MatStepLabel;\n    /** Theme color for the particular step. */\n    color: ThemePalette;\n    /** Content that will be rendered lazily. */\n    _lazyContent: MatStepContent;\n    /** Currently-attached portal containing the lazy content. */\n    _portal: TemplatePortal;\n    constructor(stepper: MatStepper, _errorStateMatcher: ErrorStateMatcher, _viewContainerRef: ViewContainerRef, stepperOptions?: StepperOptions);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Custom error state matcher that additionally checks for validity of interacted form. */\n    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n/**\n * Proxies the public APIs from `MatStepper` to the deprecated `MatHorizontalStepper` and\n * `MatVerticalStepper`.\n * @deprecated Use `MatStepper` instead.\n * @breaking-change 13.0.0\n * @docs-private\n */\ndeclare abstract class _MatProxyStepperBase extends CdkStepper {\n    readonly steps: QueryList<MatStep>;\n    readonly animationDone: EventEmitter<void>;\n    disableRipple: boolean;\n    color: ThemePalette;\n    labelPosition: 'bottom' | 'end';\n}\n/**\n * @deprecated Use `MatStepper` instead.\n * @breaking-change 13.0.0\n */\nexport declare class MatHorizontalStepper extends _MatProxyStepperBase {\n}\n/**\n * @deprecated Use `MatStepper` instead.\n * @breaking-change 13.0.0\n */\nexport declare class MatVerticalStepper extends _MatProxyStepperBase {\n}\nexport declare class MatStepper extends CdkStepper implements AfterContentInit {\n    /** The list of step headers of the steps in the stepper. */\n    _stepHeader: QueryList<MatStepHeader>;\n    /** Full list of steps inside the stepper, including inside nested steppers. */\n    _steps: QueryList<MatStep>;\n    /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n    readonly steps: QueryList<MatStep>;\n    /** Custom icon overrides passed in by the consumer. */\n    _icons: QueryList<MatStepperIcon>;\n    /** Event emitted when the current step is done transitioning in. */\n    readonly animationDone: EventEmitter<void>;\n    /** Whether ripples should be disabled for the step headers. */\n    disableRipple: boolean;\n    /** Theme color for all of the steps in stepper. */\n    color: ThemePalette;\n    /**\n     * Whether the label should display in bottom or end position.\n     * Only applies in the `horizontal` orientation.\n     */\n    labelPosition: 'bottom' | 'end';\n    /** Consumer-specified template-refs to be used to override the header icons. */\n    _iconOverrides: Record<string, TemplateRef<MatStepperIconContext>>;\n    /** Stream of animation `done` events when the body expands/collapses. */\n    readonly _animationDone: Subject<AnimationEvent>;\n    constructor(dir: Directionality, changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, _document: any);\n    ngAfterContentInit(): void;\n    _stepIsNavigable(index: number, step: MatStep): boolean;\n}\nexport {};\n"]}
Index: trip-planner-front/src/app/_models/dto/locationDto.ts
===================================================================
--- trip-planner-front/src/app/_models/dto/locationDto.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/src/app/_models/dto/locationDto.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,37 @@
+import { Byte } from "@angular/compiler/src/util";
+
+export class LocationDto {
+    name: string;
+
+    description: string;
+
+    address: string;
+
+    priority: string;
+
+    duration: number;
+
+    trivia: string;
+
+    photo: Byte[];
+
+    region: number;
+
+    city: number;
+
+    user: string;
+
+
+    constructor() {
+        this.name = '';
+        this.description = '';
+        this.address = '';
+        this.priority = '';
+        this.duration = 0;
+        this.trivia = '';
+        this.photo = [];
+        this.city = 0;
+        this.region = 0;
+        this.user = '';
+    }
+}
Index: trip-planner-front/src/app/_services/location.service.ts
===================================================================
--- trip-planner-front/src/app/_services/location.service.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/_services/location.service.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -1,5 +1,6 @@
-import { HttpClient } from "@angular/common/http";
+import { HttpClient, HttpHeaders } from "@angular/common/http";
 import { Injectable } from "@angular/core";
 import { Observable } from "rxjs";
+import { LocationDto } from "../_models/dto/locationDto";
 import { PlannerLocationDto } from "../_models/dto/plannerLocationDto";
 import { Location } from "../_models/location";
@@ -9,4 +10,11 @@
 })
 export class LocationService{
+
+    httpHeaders: HttpHeaders = new HttpHeaders({
+        'Authorization': '' + sessionStorage.getItem("token"),
+        'Accept': 'application/json',
+        'Content-Type': 'application/json'
+    });
+
     constructor(private httpClient : HttpClient){}
 
@@ -65,3 +73,8 @@
         return this.httpClient.get<Location[]>(url + "?place=" + place);
     }
+
+    save(locationDto : LocationDto) : Observable<Location>{
+        let url = "http://localhost:8080/api/add";
+        return this.httpClient.post<Location>(url, locationDto, {headers: this.httpHeaders});
+    }
 }
Index: trip-planner-front/src/app/app-routing.module.ts
===================================================================
--- trip-planner-front/src/app/app-routing.module.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/app-routing.module.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -5,4 +5,5 @@
 import { HomepageComponent } from './homepage/homepage.component';
 import { LoginComponent } from './homepage/login/login.component';
+import { AddLocationComponent } from './location/add-location/add-location.component';
 import { LocationDetailsComponent } from './location/location-details/location-details.component';
 import { LocationComponent } from './location/location.component';
@@ -10,4 +11,5 @@
 import { EditPlannerComponent } from './planner/edit-planner/edit-planner.component';
 import { PlannerComponent } from './planner/planner.component';
+
 
 const routes: Routes = [
@@ -20,5 +22,6 @@
   {path: 'location', component: LocationDetailsComponent},
   {path: 'explore', component: ExploreComponent},
-  {path: 'results', component: ExploreResultComponent}
+  {path: 'results', component: ExploreResultComponent},
+  {path: 'add-location', component: AddLocationComponent}
 ];
 
Index: trip-planner-front/src/app/app.module.ts
===================================================================
--- trip-planner-front/src/app/app.module.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/app.module.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -52,5 +52,8 @@
 import { ExploreResultComponent } from './explore/explore-result/explore-result.component';
 import {RatingModule} from 'primeng/rating';
-import { CustomValidators } from './providers/CustomValidators';
+import { AddLocationComponent } from './location/add-location/add-location.component';
+import {StepsModule} from 'primeng/steps';
+import {MatStepperModule} from '@angular/material/stepper';
+import {FileUploadModule} from 'primeng/fileupload';
 
 @NgModule({
@@ -68,6 +71,7 @@
     LoginComponent,
     ExploreComponent,
-    ExploreResultComponent
-  ],
+    ExploreResultComponent,
+    AddLocationComponent
+    ],
   imports: [
     BrowserModule,
@@ -110,6 +114,9 @@
     CardModule,
     AutoCompleteModule,
-    RatingModule
-  ],
+    RatingModule,
+    StepsModule,
+    MatStepperModule,
+    FileUploadModule
+    ],
 
 
Index: trip-planner-front/src/app/explore/explore-result/explore-result.component.html
===================================================================
--- trip-planner-front/src/app/explore/explore-result/explore-result.component.html	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/explore/explore-result/explore-result.component.html	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -15,5 +15,5 @@
 
   <main role="main">
-    <h1 style="color: #F77D62; display: inline; ">Explore </h1>
+    <h1 style="color: #F77D62; display: inline;">Explore</h1>
     <h1 style=" display: inline;">{{place}}</h1>
     <div class="lightbox" *ngFor="let l of allLocation">
@@ -25,4 +25,7 @@
       </div>
     </div>
+
+
+    
     <div class="container">
       <li *ngFor="let location of allLocation">
Index: trip-planner-front/src/app/explore/explore-result/explore-result.component.ts
===================================================================
--- trip-planner-front/src/app/explore/explore-result/explore-result.component.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/explore/explore-result/explore-result.component.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -17,4 +17,18 @@
   }
 
+  responsiveOptions:any[] = [
+    {
+        breakpoint: '1024px',
+        numVisible: 5
+    },
+    {
+        breakpoint: '768px',
+        numVisible: 3
+    },
+    {
+        breakpoint: '560px',
+        numVisible: 1
+    }
+];
   ngOnInit(): void {
     this.route.queryParams
@@ -25,6 +39,6 @@
 
       this.locationService.getAllLocationsSearch(this.place).subscribe(
-        data => {
-          this.allLocation = data;
+        res => {
+          this.allLocation = res;
         }
     )
Index: trip-planner-front/src/app/location/add-location/add-location.component.css
===================================================================
--- trip-planner-front/src/app/location/add-location/add-location.component.css	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/src/app/location/add-location/add-location.component.css	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,23 @@
+.example-form {
+    min-width: 150px;
+    max-width: 380px;
+    width: 100%;
+  }
+  
+  .example-full-width {
+    width: 100%;
+  }
+  
+  mat-icon {
+    height: 20px;
+    width: 20px;
+    font-size: 20px;
+    margin-right: 5px;
+  }
+  button{
+    float: right;
+  }
+  
+  .yellow{
+    background-color:yellow;
+  }
Index: trip-planner-front/src/app/location/add-location/add-location.component.html
===================================================================
--- trip-planner-front/src/app/location/add-location/add-location.component.html	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/src/app/location/add-location/add-location.component.html	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,110 @@
+<mat-stepper linear #stepper>
+    <mat-step [stepControl]="firstFormGroup" [editable]="isEditable" [completed]="isCompleted">
+        <form [formGroup]="firstFormGroup">
+            <ng-template matStepLabel>Location properties</ng-template>
+            <mat-form-field appearance="fill">
+                <mat-label>Name</mat-label>
+                <input matInput [(ngModel)]="name" formControlName="name" required>
+            </mat-form-field>
+<label></label>
+            <mat-form-field appearance="fill">
+                <mat-label>Description</mat-label>
+                <input matInput [(ngModel)]="desc" formControlName="desc" required>
+            </mat-form-field>
+<label></label>
+            <mat-form-field appearance="fill">
+                <mat-label>Address</mat-label>
+                <input matInput [(ngModel)]="address" formControlName="address" required>
+            </mat-form-field>
+
+            <mat-form-field appearance="fill">
+                <mat-label>Duration</mat-label>
+                <input matInput [(ngModel)]="duration" type="number" formControlName="duration" required>
+            </mat-form-field>
+
+            <mat-form-field appearance="fill">
+                <mat-label>Trivia</mat-label>
+                <input matInput [(ngModel)]="trivia" formControlName="trivia" required>
+            </mat-form-field>
+
+            <mat-form-field appearance="fill">
+              <mat-label>Priority</mat-label>
+              <mat-select [(ngModel)]="priority" name="priority" [ngModelOptions]="{standalone: true}" >
+                <mat-option *ngFor="let priority of priorities" [value]="priority.value">
+                  {{priority.viewValue}}
+                </mat-option>
+              </mat-select>
+            </mat-form-field>
+            
+            <label>
+                <h5>Please select a city</h5>
+            </label>
+            <mat-form-field appearance="fill" class="example-full-width">
+                <mat-label>Please select a city</mat-label>
+                <mat-select [(ngModel)]="cityId" placeholder="Select city" name="city" [ngModelOptions]="{standalone: true}">
+                    <mat-option [value]="city.id" *ngFor="let city of cities"> {{city.name}}</mat-option>
+                </mat-select>
+            </mat-form-field>
+            
+            <label>
+                <h5>Please select a region</h5>
+              </label>
+              <mat-form-field appearance="fill" class="example-full-width">
+                <mat-label>Please select a region</mat-label>
+                <mat-select [(ngModel)]="regionId" placeholder="Select region" name="region" [ngModelOptions]="{standalone: true}">
+                  <mat-option [value]="region.id" *ngFor="let region of regions" [value]="region.id"> {{region.name}}
+                  </mat-option>
+                </mat-select>
+              </mat-form-field>
+
+              <p-fileUpload #fubauto mode="basic" name="demo[]" url=""  chooseLabel="Image"></p-fileUpload>
+
+            <div>
+                <button mat-button matStepperNext (click)="submitLocation()">Next</button>
+            </div>
+        </form>
+    </mat-step>
+    <mat-step [stepControl]="secondFormGroup" [editable]="isEditable" [completed]="isCompletedSecond">
+        <form [formGroup]="secondFormGroup">
+            <ng-template matStepLabel>Add companion for the location</ng-template>
+            <mat-form-field appearance="fill">
+                <mat-label>Companion</mat-label>
+                <mat-select [formControl]="companionForm" multiple>
+                  <mat-select-trigger>
+                    {{companionForm.value ? companionForm.value[0] : ''}}
+                    <span *ngIf="companionForm.value?.length > 1" class="example-additional-selection">
+                      (+{{companionForm.value.length - 1}} {{companionForm.value?.length === 2 ? 'other' : 'others'}})
+                    </span>
+                  </mat-select-trigger>
+                  <mat-option *ngFor="let companion of companions" [value]="companion">{{companion.type}}</mat-option>
+                </mat-select>
+              </mat-form-field>
+            <div>
+                <button mat-button matStepperNext (click)="onClickSecondForm()">Next</button>
+            </div>
+        </form>
+    </mat-step>
+
+    <mat-step [stepControl]="thirdFormGroup" [editable]="isEditable">
+        <form [formGroup]="thirdFormGroup">
+            <ng-template matStepLabel>Add categories for the location</ng-template>
+            <mat-chip-list selectable multiple>
+                <mat-chip #c="matChip" selected *ngFor="let category of categories" (click)="toggleSelection(c, category)"
+                  [ngClass]="{'yellow' : toggle}" name="chips">
+                  <mat-icon *ngIf="!c.selected">check</mat-icon>
+                  {{category.name}}
+                </mat-chip>
+              </mat-chip-list>
+            <div>
+                <button mat-button matStepperNext>Next</button>
+            </div>
+        </form>
+    </mat-step>
+    <mat-step>
+        <ng-template matStepLabel>Done</ng-template>
+        <p>You are now done.</p>
+        <div>
+            <button mat-button (click)="stepper.reset()">Reset</button>
+        </div>
+    </mat-step>
+</mat-stepper>
Index: trip-planner-front/src/app/location/add-location/add-location.component.ts
===================================================================
--- trip-planner-front/src/app/location/add-location/add-location.component.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner-front/src/app/location/add-location/add-location.component.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,148 @@
+import { Component, OnInit } from '@angular/core';
+import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
+import { MatChip } from '@angular/material/chips';
+import { Category } from 'src/app/_models/category';
+import { City } from 'src/app/_models/city';
+import { Companion } from 'src/app/_models/companion';
+import { LocationDto } from 'src/app/_models/dto/locationDto';
+import { Region } from 'src/app/_models/region';
+import { CategoryService } from 'src/app/_services/cateogry.service';
+import { CityService } from 'src/app/_services/city.service';
+import { CompanionService } from 'src/app/_services/companion.service';
+import { LocationService } from 'src/app/_services/location.service';
+import { RegionService } from 'src/app/_services/region.service';
+
+@Component({
+  selector: 'app-add-location',
+  templateUrl: './add-location.component.html',
+  styleUrls: ['./add-location.component.css']
+})
+export class AddLocationComponent implements OnInit {
+    firstFormGroup: FormGroup;
+    secondFormGroup: FormGroup;
+    thirdFormGroup : FormGroup;
+    isEditable = false;
+    categories : Category[] = [];
+    companions : Companion[] = [];
+    cities : City[] = [];
+    cityId : number = 0;
+    regionId : number = 0;
+    regions : Region[] = [];
+    priority: string = '';
+    name: string = '';
+    desc: string = '';
+    address: string = '';
+    duration: number = 0;
+    trivia: string = '';
+    isCompleted = false;
+    locationDto : LocationDto = new LocationDto();
+    companionForm = new FormControl();
+    chipsSeletion: number[] = [];
+    toggle = true;
+    isCompletedSecond = false;
+  
+    priorities: any[] = [
+      {value: 'high', viewValue: 'High'},
+      {value: 'medium', viewValue: 'Medium'},
+      {value: 'low', viewValue: 'Low'},
+    ];
+  
+    constructor(private fb: FormBuilder, private categoryService : CategoryService, 
+      private companionService : CompanionService, private cityService : CityService, private regionService : RegionService,
+      private locationService : LocationService) {
+        this.firstFormGroup = fb.group({
+            title: fb.control('initial value', Validators.required)
+          });
+          this.secondFormGroup = fb.group({
+            title: fb.control('initial value', Validators.required)
+          });
+          this.thirdFormGroup = fb.group({
+            title: fb.control('initial value', Validators.required)
+
+          })
+    }
+  
+    ngOnInit() {
+      this.firstFormGroup = this.fb.group({
+        name: ['', Validators.required],
+        desc: ['', Validators.required],
+        address: ['', Validators.required],
+        priority: ['', Validators.required],
+        trivia: ['', Validators.required],
+        duration: ['', Validators.required],
+      });
+
+      this.secondFormGroup = this.fb.group({
+        secondCtrl: ['', Validators.required],
+      });
+
+      this.categoryService.getAllCategories().subscribe(
+        data => {
+          this.categories = data;
+        }
+      );
+  
+      this.companionService.getAllCompanions().subscribe(
+        data => {
+          this.companions = data;
+        }
+      );
+
+      
+      this.cityService.getAllCities().subscribe(
+        data => {
+          this.cities = data;
+        }
+      );
+
+      this.regionService.getAllRegions().subscribe(
+        data => {
+          this.regions = data;
+        }
+      );
+    }
+
+    submitLocation(){
+      this.locationDto.name = this.name;
+      this.locationDto.description = this.desc;
+      this.locationDto.address = this.address;
+      this.locationDto.duration = this.duration;
+      this.locationDto.trivia = this.trivia;
+      this.locationDto.priority = this.priority;
+      this.locationDto.city = this.cityId;
+      this.locationDto.region = this.regionId;
+      if(this.name !== null && this.desc !== null && this.address !== null
+        && this.trivia != null  && this.priority !== null && this.cityId !== 0 && this.regionId !== 0){
+          this.isCompleted = true;
+        
+          this.locationService.save(this.locationDto).subscribe(
+            data => {
+              console.log(data);
+            }
+          );  
+         
+      }   
+    }
+
+    toggleSelection(chip: MatChip, category: Category) {
+      chip.toggleSelected();
+  
+      if (this.chipsSeletion.length > 0) {
+        if (this.chipsSeletion.indexOf(category.id) <= -1) {
+          this.chipsSeletion.push(category.id);
+        } else {
+          const index = this.chipsSeletion.indexOf(category.id);
+          this.chipsSeletion.splice(index, 1);
+        }
+      } else {
+        this.chipsSeletion.push(category.id);
+      }
+      console.log(this.chipsSeletion);
+    }
+    onClickSecondForm(){
+      if(this.companionForm.value.length >= 1){
+        this.isCompletedSecond = true;
+      }
+      console.log(this.companionForm.value.length)
+    }
+}
Index: trip-planner-front/src/app/location/location-details/location-details.component.ts
===================================================================
--- trip-planner-front/src/app/location/location-details/location-details.component.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/location/location-details/location-details.component.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -1,4 +1,4 @@
 import { Component, OnInit } from '@angular/core';
-import { ActivatedRoute, Router } from '@angular/router';
+import { ActivatedRoute } from '@angular/router';
 import { Images } from 'src/app/_models/images';
 import { Location } from 'src/app/_models/location';
@@ -17,5 +17,5 @@
   images: Images[];
 
-  constructor(private route: ActivatedRoute, private router: Router, private locationService: LocationService,
+  constructor(private route: ActivatedRoute, private locationService: LocationService,
     private imagesService: ImagesService) {
     this.locationId = 1;
Index: trip-planner-front/src/app/locations-form/locations-form.component.html
===================================================================
--- trip-planner-front/src/app/locations-form/locations-form.component.html	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/locations-form/locations-form.component.html	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -35,5 +35,5 @@
       <mat-label>Please select a region</mat-label>
       <mat-select [(ngModel)]="regionId" placeholder="Select region" name="region">
-        <mat-option [value]="region.id" *ngFor="let region of regions" [value]="region.id"> {{region.name}}
+        <mat-option [value]="region.id" *ngFor="let region of regions"> {{region.name}}
         </mat-option>
       </mat-select>
Index: trip-planner-front/src/app/planner/planner.component.html
===================================================================
--- trip-planner-front/src/app/planner/planner.component.html	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/planner/planner.component.html	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -13,4 +13,5 @@
 </nav>
 
+<button pButton pRipple type="button" label="Add location" class="p-button-help " (click)="onClickAddLocation()"></button>
 
 <br>
Index: trip-planner-front/src/app/planner/planner.component.ts
===================================================================
--- trip-planner-front/src/app/planner/planner.component.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/src/app/planner/planner.component.ts	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -99,3 +99,7 @@
     window.location.reload();
   }
+
+  onClickAddLocation(){
+    this.router.navigate(['add-location']);
+  }
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/Location.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/Location.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/Location.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -14,5 +14,4 @@
 @Entity
 @Table(name = "locations")
-@NoArgsConstructor
 @AllArgsConstructor
 @Getter
@@ -65,4 +64,8 @@
     private List<Planner> plannerList;
 
+    @ManyToOne
+    @JsonBackReference
+    @JoinColumn(name = "id_user")
+    private User user;
 
     @ManyToMany
@@ -74,9 +77,22 @@
     private List<Category> categoryList;
 
-
     @OneToMany(mappedBy = "location", cascade = CascadeType.REMOVE, orphanRemoval = true)
     @JsonManagedReference
     private List<Images> imagesList;
 
+    public Location(String name, String description, String address, String priority, int duration, String trivia, byte[] photo, Region region, City city, User user) {
+        this.name = name;
+        this.description = description;
+        this.address = address;
+        this.priority = priority;
+        this.duration = duration;
+        this.trivia = trivia;
+        this.photo = photo;
+        this.region = region;
+        this.city = city;
+        this.user = user;
+    }
 
+    public Location() {
+    }
 }
Index: ip-planner/src/main/java/finki/diplomska/tripplanner/models/Period.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/Period.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ 	(revision )
@@ -1,8 +1,0 @@
-package finki.diplomska.tripplanner.models;
-
-import javax.persistence.Embeddable;
-
-@Embeddable
-public class Period {
-    private String period;
-}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/User.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/User.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/User.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -2,4 +2,5 @@
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -44,4 +45,8 @@
     @JsonIgnore
     private List<Planner> planners = new ArrayList<>();
+
+    @OneToMany(cascade = CascadeType.REFRESH, mappedBy = "user", orphanRemoval = true)
+    @JsonIgnore
+    private List<Location> locationList = new ArrayList<>();;
 
     public User() {
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/dto/LocationDto.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/dto/LocationDto.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/dto/LocationDto.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,53 @@
+package finki.diplomska.tripplanner.models.dto;
+
+import finki.diplomska.tripplanner.models.*;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LocationDto {
+
+    private String name;
+
+    private String description;
+
+    private String address;
+
+    private String priority;
+
+    private int duration;
+
+    private String trivia;
+
+    private byte[] photo;
+
+    private Long region;
+
+    private Long city;
+
+    private String user;
+
+    private List<Long> companions;
+
+    private List<Long> categories;
+
+
+    public LocationDto(String name, String description, String address, String priority, int duration, String trivia, byte[] photo, Long region, Long city, String user ) {
+        this.name = name;
+        this.description = description;
+        this.address = address;
+        this.priority = priority;
+        this.duration = duration;
+        this.trivia = trivia;
+        this.photo = photo;
+        this.region = region;
+        this.city = city;
+        this.user = user;
+        this.companions = companions;
+        this.categories = categories;
+    }
+
+    public LocationDto() {
+    }
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CityNotFoundException.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CityNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CityNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,10 @@
+package finki.diplomska.tripplanner.models.exceptions;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class CityNotFoundException extends RuntimeException{
+    public CityNotFoundException(Long id) {super(String.format("City with id %d is not found", id));}
+
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CompanionNotFoundException.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CompanionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CompanionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,10 @@
+package finki.diplomska.tripplanner.models.exceptions;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class CompanionNotFoundException extends RuntimeException{
+    public CompanionNotFoundException(Long id) {super(String.format("Companion with id %d is not found", id));}
+
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/RegionNotFoundException.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/RegionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/RegionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,9 @@
+package finki.diplomska.tripplanner.models.exceptions;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class RegionNotFoundException extends RuntimeException{
+    public RegionNotFoundException(Long id){super(String.format("Region with id %d is not found", id));}
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/security/SecurityConfig.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/security/SecurityConfig.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/security/SecurityConfig.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -81,4 +81,9 @@
                 .antMatchers("/api/all").permitAll()
                 .antMatchers("/api/places").permitAll()
+                .antMatchers("/create/planner").permitAll()
+                .antMatchers("/create/planner/{id}").permitAll()
+                .antMatchers("/create/locations").permitAll()
+                .antMatchers("/create/trip/locations").permitAll()
+                .antMatchers("/create").permitAll()
                 .anyRequest().authenticated();
         http.addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -4,4 +4,5 @@
 import finki.diplomska.tripplanner.models.Location;
 import finki.diplomska.tripplanner.models.Planner;
+import finki.diplomska.tripplanner.models.dto.LocationDto;
 import finki.diplomska.tripplanner.models.dto.PlannerLocationDto;
 import org.springframework.data.repository.query.Param;
@@ -26,3 +27,4 @@
     List<Long> getAllLocationIdsForPlanner(Long plannerId);
     List<Location> getAllLocations(String place);
+    Optional<Location> save (LocationDto locationDto, String username);
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -1,10 +1,12 @@
 package finki.diplomska.tripplanner.service.impl;
 
-import finki.diplomska.tripplanner.models.Location;
-import finki.diplomska.tripplanner.models.Planner;
+import finki.diplomska.tripplanner.models.*;
+import finki.diplomska.tripplanner.models.dto.LocationDto;
 import finki.diplomska.tripplanner.models.dto.PlannerLocationDto;
+import finki.diplomska.tripplanner.models.exceptions.CityNotFoundException;
+import finki.diplomska.tripplanner.models.exceptions.CompanionNotFoundException;
 import finki.diplomska.tripplanner.models.exceptions.LocationNotFoundException;
-import finki.diplomska.tripplanner.repository.jpa.JpaLocationRepository;
-import finki.diplomska.tripplanner.repository.jpa.JpaPlannerRepository;
+import finki.diplomska.tripplanner.models.exceptions.RegionNotFoundException;
+import finki.diplomska.tripplanner.repository.jpa.*;
 import finki.diplomska.tripplanner.service.LocationService;
 import org.springframework.stereotype.Service;
@@ -19,8 +21,18 @@
     private final JpaLocationRepository locationRepository;
     private final JpaPlannerRepository plannerRepository;
-
-    public LocationServiceImpl(JpaLocationRepository locationRepository, JpaPlannerRepository plannerRepository) {
+    private final JpaRegionRepository regionRepository;
+    private final JpaCityRepository cityRepository;
+    private final JpaUserRepository userRepository;
+    private final JpaCategoryRepository categoryRepository;
+    private final JpaCompanionRepository companionRepository;
+
+    public LocationServiceImpl(JpaLocationRepository locationRepository, JpaPlannerRepository plannerRepository, JpaRegionRepository regionRepository, JpaCityRepository cityRepository, JpaUserRepository userRepository, JpaCategoryRepository categoryRepository, JpaCompanionRepository companionRepository) {
         this.locationRepository = locationRepository;
         this.plannerRepository = plannerRepository;
+        this.regionRepository = regionRepository;
+        this.cityRepository = cityRepository;
+        this.userRepository = userRepository;
+        this.categoryRepository = categoryRepository;
+        this.companionRepository = companionRepository;
     }
 
@@ -151,5 +163,4 @@
             }
         }
-
         return newList;
     }
@@ -189,4 +200,20 @@
     }
 
+    @Override
+    public Optional<Location> save(LocationDto locationDto, String username) {
+        City city = new City();
+        Region region = this.regionRepository.findById(locationDto.getRegion())
+                .orElseThrow(() -> new RegionNotFoundException(locationDto.getRegion()));
+        if(locationDto.getCity() != null){
+             city = this.cityRepository.findById(locationDto.getCity())
+                    .orElseThrow(() -> new CityNotFoundException(locationDto.getCity()));
+        }else{
+            city = null;
+        }
+        User user = this.userRepository.findByUsername(username);
+        locationDto.setUser(user.getUsername());
+        return Optional.of(this.locationRepository.save(new Location(locationDto.getName(), locationDto.getDescription(), locationDto.getAddress(), locationDto.getPriority(),
+                locationDto.getDuration(), locationDto.getTrivia(), locationDto.getPhoto(), region, city, user)));
+    }
 
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/LocationRestController.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/LocationRestController.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/LocationRestController.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -2,8 +2,11 @@
 
 import finki.diplomska.tripplanner.models.Location;
+import finki.diplomska.tripplanner.models.User;
+import finki.diplomska.tripplanner.models.dto.LocationDto;
 import finki.diplomska.tripplanner.models.dto.PlannerLocationDto;
 import finki.diplomska.tripplanner.service.LocationService;
 import finki.diplomska.tripplanner.service.PlannerService;
 import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.Authentication;
 import org.springframework.web.bind.annotation.*;
 
@@ -82,3 +85,10 @@
     }
 
+    @PostMapping("/add")
+    public ResponseEntity<Location> save(@RequestBody LocationDto locationDto, Authentication authentication) {
+        User user = (User) authentication.getPrincipal();
+        return this.locationService.save(locationDto, user.getUsername())
+                .map(location -> ResponseEntity.ok().body(location))
+                .orElseGet(() -> ResponseEntity.badRequest().build());
+    }
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/PlannerRestController.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/PlannerRestController.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/PlannerRestController.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -69,5 +69,4 @@
     @ResponseStatus(HttpStatus.CREATED)
     public ResponseEntity<?> newPlanner(@Valid @RequestBody PlannerDto plannerDto, Authentication authentication)  {
-
         User user = (User) authentication.getPrincipal();
         return this.plannerService.newPlanner(plannerDto, user.getUsername())
Index: trip-planner/src/test/api.http
===================================================================
--- trip-planner/src/test/api.http	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/test/api.http	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -117,2 +117,6 @@
 GET http://localhost:8080/api/places
 Content-Type: application/json
+
+###
+POST http://localhost:8080/api/add
+Content-Type: application/json
