{"version":3,"file":"chunk-m8vgj2kc.js","sources":["packages/vanilla/lib/shared/routing/src/route-data.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\n/**\n * @whatItDoes Provides common interface to get route data\n *\n * @howToUse\n *\n * ```\n * this.routeDataService.get('param');\n * ```\n *\n * @description\n *\n * This service provides a way to access route data from Angular components.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class RouteDataService {\n constructor(private router: Router) {}\n\n getInitData() {\n return this.getData('initData');\n }\n\n get(param: string) {\n return this.getData(param);\n }\n\n private getData(param: string) {\n let node = this.router.routerState.snapshot.root;\n\n while (node != null) {\n if (node.data[param]) {\n return node.data[param];\n } else {\n node = node.children[0]!;\n }\n }\n\n return null;\n }\n}\n"],"names":["RouteDataService","constructor","router","getInitData","getData","get","param","node","routerState","snapshot","root","data","children","ɵɵinject","Router","i","factory","ɵfac","providedIn","_RouteDataService"],"mappings":"uFAqBA,IAAaA,GAAgB,IAAA,CAAvB,IAAOA,CAAAA,CAAP,MAAOA,CAAgB,CACzBC,WAAoBC,CAAAA,CAAAA,CAAc,CAAd,IAAAA,CAAAA,MAAAA,CAAAA,EAAiB,CAErCC,WAAAA,EAAW,CACP,OAAO,IAAA,CAAKC,OAAQ,CAAA,UAAU,CAClC,CAEAC,GAAAA,CAAIC,EAAa,CACb,OAAO,KAAKF,OAAQE,CAAAA,CAAK,CAC7B,CAEQF,QAAQE,CAAa,CAAA,CACzB,IAAIC,CAAO,CAAA,IAAA,CAAKL,OAAOM,WAAYC,CAAAA,QAAAA,CAASC,IAE5C,CAAA,KAAOH,GAAQ,IAAM,EAAA,CACjB,GAAIA,CAAKI,CAAAA,IAAAA,CAAKL,CAAK,CACf,CAAA,OAAOC,CAAKI,CAAAA,IAAAA,CAAKL,CAAK,CAEtBC,CAAAA,CAAAA,CAAOA,EAAKK,QAAS,CAAA,CAAC,EAE9B,CAEA,OAAO,IACX,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EAvBSZ,GAAgBa,EAAAC,CAAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAC,CAAA,CAAA,CAAA,KAAA,CAAhBf,EAAgBgB,OAAhBhB,CAAAA,CAAAA,CAAgBiB,SAAAC,CAAAA,UAAAA,CAFb,MAAM,CAAA,CAAA,CAEhB,IAAOlB,CAAPmB,CAAAA,CAAAA,CAAAA,OAAOnB,CAAgB,CAAA"}