@kuadrant/kuadrant-backstage-plugin-frontend 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +21 -3
  2. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
  3. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +1 -7
  4. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
  5. package/dist/components/KuadrantIcon/KuadrantIcon.esm.js +22 -0
  6. package/dist/components/KuadrantIcon/KuadrantIcon.esm.js.map +1 -0
  7. package/dist/components/icons.esm.js +11 -0
  8. package/dist/components/icons.esm.js.map +1 -0
  9. package/dist/index.d.ts +8 -1
  10. package/dist/index.esm.js +2 -0
  11. package/dist/index.esm.js.map +1 -1
  12. package/dist-scalprum/internal.plugin-kuadrant.c4fb9c2347d3ad03a5d0.js +2 -0
  13. package/dist-scalprum/internal.plugin-kuadrant.c4fb9c2347d3ad03a5d0.js.map +1 -0
  14. package/dist-scalprum/plugin-manifest.json +3 -3
  15. package/dist-scalprum/static/{1037.58dd29ad.chunk.js → 1037.25758556.chunk.js} +1 -1
  16. package/dist-scalprum/static/{1037.58dd29ad.chunk.js.map → 1037.25758556.chunk.js.map} +1 -1
  17. package/dist-scalprum/static/{1584.ae3779f0.chunk.js → 1584.1e45e570.chunk.js} +2 -2
  18. package/dist-scalprum/static/{1584.ae3779f0.chunk.js.map → 1584.1e45e570.chunk.js.map} +1 -1
  19. package/dist-scalprum/static/1719.246c020d.chunk.js +2 -0
  20. package/dist-scalprum/static/1719.246c020d.chunk.js.map +1 -0
  21. package/dist-scalprum/static/{1881.8221c002.chunk.js → 1881.56cde36b.chunk.js} +1 -1
  22. package/dist-scalprum/static/{1881.8221c002.chunk.js.map → 1881.56cde36b.chunk.js.map} +1 -1
  23. package/dist-scalprum/static/286.ee43f560.chunk.js +2 -0
  24. package/dist-scalprum/static/286.ee43f560.chunk.js.map +1 -0
  25. package/dist-scalprum/static/2952.b54bd390.chunk.js +2 -0
  26. package/dist-scalprum/static/2952.b54bd390.chunk.js.map +1 -0
  27. package/dist-scalprum/static/2967.0c2ef90e.chunk.js +2 -0
  28. package/dist-scalprum/static/2967.0c2ef90e.chunk.js.map +1 -0
  29. package/dist-scalprum/static/3015.1fe097c2.chunk.js +3 -0
  30. package/dist-scalprum/static/3015.1fe097c2.chunk.js.LICENSE.txt +9 -0
  31. package/dist-scalprum/static/3015.1fe097c2.chunk.js.map +1 -0
  32. package/dist-scalprum/static/{3581.b5b97f08.chunk.js → 3581.ebe5968a.chunk.js} +1 -1
  33. package/dist-scalprum/static/{3581.b5b97f08.chunk.js.map → 3581.ebe5968a.chunk.js.map} +1 -1
  34. package/dist-scalprum/static/3657.882640ca.chunk.js +3 -0
  35. package/dist-scalprum/static/3657.882640ca.chunk.js.LICENSE.txt +8 -0
  36. package/dist-scalprum/static/3657.882640ca.chunk.js.map +1 -0
  37. package/dist-scalprum/static/{3897.ef4554b5.chunk.js → 3897.6e9c07c0.chunk.js} +1 -1
  38. package/dist-scalprum/static/{3897.ef4554b5.chunk.js.map → 3897.6e9c07c0.chunk.js.map} +1 -1
  39. package/dist-scalprum/static/{3947.ad129ba4.chunk.js → 3947.4f4aa8c2.chunk.js} +1 -1
  40. package/dist-scalprum/static/{3947.ad129ba4.chunk.js.map → 3947.4f4aa8c2.chunk.js.map} +1 -1
  41. package/dist-scalprum/static/{3976.e0873210.chunk.js → 3976.e8a8fda2.chunk.js} +2 -2
  42. package/dist-scalprum/static/{3976.e0873210.chunk.js.map → 3976.e8a8fda2.chunk.js.map} +1 -1
  43. package/dist-scalprum/static/{4083.488ff7a9.chunk.js → 4083.811c4e7a.chunk.js} +2 -2
  44. package/dist-scalprum/static/{4083.488ff7a9.chunk.js.map → 4083.811c4e7a.chunk.js.map} +1 -1
  45. package/dist-scalprum/static/4908.196a4425.chunk.js +2 -0
  46. package/dist-scalprum/static/{5453.3c20d0a6.chunk.js.map → 4908.196a4425.chunk.js.map} +1 -1
  47. package/dist-scalprum/static/{5010.6241b64f.chunk.js → 5010.4f67737b.chunk.js} +2 -2
  48. package/dist-scalprum/static/{5010.6241b64f.chunk.js.map → 5010.4f67737b.chunk.js.map} +1 -1
  49. package/dist-scalprum/static/{512.f1c51799.chunk.js → 512.d592d164.chunk.js} +1 -1
  50. package/dist-scalprum/static/{512.f1c51799.chunk.js.map → 512.d592d164.chunk.js.map} +1 -1
  51. package/dist-scalprum/static/{5289.2e686027.chunk.js → 5289.55069930.chunk.js} +2 -2
  52. package/dist-scalprum/static/{5289.2e686027.chunk.js.map → 5289.55069930.chunk.js.map} +1 -1
  53. package/dist-scalprum/static/5605.430f697e.chunk.js +2 -0
  54. package/dist-scalprum/static/5605.430f697e.chunk.js.map +1 -0
  55. package/dist-scalprum/static/5978.bf347a09.chunk.js +2 -0
  56. package/dist-scalprum/static/5978.bf347a09.chunk.js.map +1 -0
  57. package/dist-scalprum/static/6038.63d1f832.chunk.js +3 -0
  58. package/dist-scalprum/static/6038.63d1f832.chunk.js.LICENSE.txt +8 -0
  59. package/dist-scalprum/static/6038.63d1f832.chunk.js.map +1 -0
  60. package/dist-scalprum/static/{6272.b5645dc2.chunk.js → 6272.3ed14ea4.chunk.js} +1 -1
  61. package/dist-scalprum/static/{6272.b5645dc2.chunk.js.map → 6272.3ed14ea4.chunk.js.map} +1 -1
  62. package/dist-scalprum/static/635.f63679a5.chunk.js +3 -0
  63. package/dist-scalprum/static/635.f63679a5.chunk.js.map +1 -0
  64. package/dist-scalprum/static/6371.7b57ac27.chunk.js +3 -0
  65. package/dist-scalprum/static/6371.7b57ac27.chunk.js.LICENSE.txt +9 -0
  66. package/dist-scalprum/static/6371.7b57ac27.chunk.js.map +1 -0
  67. package/dist-scalprum/static/{6386.2d20c412.chunk.js → 6386.5922f271.chunk.js} +3 -3
  68. package/dist-scalprum/static/{6386.2d20c412.chunk.js.map → 6386.5922f271.chunk.js.map} +1 -1
  69. package/dist-scalprum/static/{6426.bf20c588.chunk.js → 6426.4c18bab5.chunk.js} +1 -1
  70. package/dist-scalprum/static/{6426.bf20c588.chunk.js.map → 6426.4c18bab5.chunk.js.map} +1 -1
  71. package/dist-scalprum/static/6777.a2b77ec5.chunk.js +2 -0
  72. package/dist-scalprum/static/6777.a2b77ec5.chunk.js.map +1 -0
  73. package/dist-scalprum/static/{6800.ddabed69.chunk.js → 6800.a45da2f4.chunk.js} +2 -2
  74. package/dist-scalprum/static/{6800.ddabed69.chunk.js.map → 6800.a45da2f4.chunk.js.map} +1 -1
  75. package/dist-scalprum/static/{6972.e47ec97e.chunk.js → 6972.f22b9446.chunk.js} +1 -1
  76. package/dist-scalprum/static/{6972.e47ec97e.chunk.js.map → 6972.f22b9446.chunk.js.map} +1 -1
  77. package/dist-scalprum/static/7005.8190ad95.chunk.js +2 -0
  78. package/dist-scalprum/static/7005.8190ad95.chunk.js.map +1 -0
  79. package/dist-scalprum/static/7164.5dc4bc72.chunk.js +2 -0
  80. package/dist-scalprum/static/7164.5dc4bc72.chunk.js.map +1 -0
  81. package/dist-scalprum/static/{7266.e760b8c3.chunk.js → 7266.3c4174cc.chunk.js} +1 -1
  82. package/dist-scalprum/static/{7266.e760b8c3.chunk.js.map → 7266.3c4174cc.chunk.js.map} +1 -1
  83. package/dist-scalprum/static/7270.d52407cd.chunk.js +2 -0
  84. package/dist-scalprum/static/7270.d52407cd.chunk.js.map +1 -0
  85. package/dist-scalprum/static/7717.6f5b9dd7.chunk.js +3 -0
  86. package/dist-scalprum/static/7717.6f5b9dd7.chunk.js.map +1 -0
  87. package/dist-scalprum/static/{7791.8f84478d.chunk.js → 7791.ad31cf6d.chunk.js} +2 -2
  88. package/dist-scalprum/static/{7791.8f84478d.chunk.js.map → 7791.ad31cf6d.chunk.js.map} +1 -1
  89. package/dist-scalprum/static/{8563.46f1a3e1.chunk.js → 8563.6501eafb.chunk.js} +2 -2
  90. package/dist-scalprum/static/{8563.46f1a3e1.chunk.js.map → 8563.6501eafb.chunk.js.map} +1 -1
  91. package/dist-scalprum/static/{9079.b6d5c19c.chunk.js → 9079.2ddaea57.chunk.js} +1 -1
  92. package/dist-scalprum/static/{9079.b6d5c19c.chunk.js.map → 9079.2ddaea57.chunk.js.map} +1 -1
  93. package/dist-scalprum/static/9239.1acfe112.chunk.js +2 -0
  94. package/dist-scalprum/static/9239.1acfe112.chunk.js.map +1 -0
  95. package/dist-scalprum/static/exposed-KuadrantIcon.08abbb96.chunk.js +3 -0
  96. package/dist-scalprum/static/exposed-KuadrantIcon.08abbb96.chunk.js.LICENSE.txt +9 -0
  97. package/dist-scalprum/static/exposed-KuadrantIcon.08abbb96.chunk.js.map +1 -0
  98. package/dist-scalprum/static/exposed-KuadrantPage.5ae00605.chunk.js +2 -0
  99. package/dist-scalprum/static/exposed-KuadrantPage.5ae00605.chunk.js.map +1 -0
  100. package/dist-scalprum/static/exposed-PluginRoot.949381c2.chunk.js +2 -0
  101. package/dist-scalprum/static/exposed-PluginRoot.949381c2.chunk.js.map +1 -0
  102. package/package.json +6 -3
  103. package/dist-scalprum/internal.plugin-kuadrant.b3d35dc8b21ce867aa09.js +0 -2
  104. package/dist-scalprum/internal.plugin-kuadrant.b3d35dc8b21ce867aa09.js.map +0 -1
  105. package/dist-scalprum/static/1319.ac195ac2.chunk.js +0 -2
  106. package/dist-scalprum/static/1319.ac195ac2.chunk.js.map +0 -1
  107. package/dist-scalprum/static/2967.7c6a34cd.chunk.js +0 -2
  108. package/dist-scalprum/static/2967.7c6a34cd.chunk.js.map +0 -1
  109. package/dist-scalprum/static/3118.daee3324.chunk.js +0 -3
  110. package/dist-scalprum/static/3118.daee3324.chunk.js.map +0 -1
  111. package/dist-scalprum/static/483.d55d6ab2.chunk.js +0 -2
  112. package/dist-scalprum/static/483.d55d6ab2.chunk.js.map +0 -1
  113. package/dist-scalprum/static/5203.3df62d7e.chunk.js +0 -2
  114. package/dist-scalprum/static/5203.3df62d7e.chunk.js.map +0 -1
  115. package/dist-scalprum/static/5453.3c20d0a6.chunk.js +0 -2
  116. package/dist-scalprum/static/6371.f183dddb.chunk.js +0 -3
  117. package/dist-scalprum/static/6371.f183dddb.chunk.js.map +0 -1
  118. package/dist-scalprum/static/7005.d548f8f1.chunk.js +0 -2
  119. package/dist-scalprum/static/7005.d548f8f1.chunk.js.map +0 -1
  120. package/dist-scalprum/static/7270.301a3c46.chunk.js +0 -2
  121. package/dist-scalprum/static/7270.301a3c46.chunk.js.map +0 -1
  122. package/dist-scalprum/static/9051.f095a8a1.chunk.js +0 -2
  123. package/dist-scalprum/static/9051.f095a8a1.chunk.js.map +0 -1
  124. package/dist-scalprum/static/9838.589f2156.chunk.js +0 -2
  125. package/dist-scalprum/static/9838.589f2156.chunk.js.map +0 -1
  126. package/dist-scalprum/static/exposed-PluginRoot.a8448fcc.chunk.js +0 -2
  127. package/dist-scalprum/static/exposed-PluginRoot.a8448fcc.chunk.js.map +0 -1
  128. /package/dist-scalprum/static/{1584.ae3779f0.chunk.js.LICENSE.txt → 1584.1e45e570.chunk.js.LICENSE.txt} +0 -0
  129. /package/dist-scalprum/static/{4083.488ff7a9.chunk.js.LICENSE.txt → 4083.811c4e7a.chunk.js.LICENSE.txt} +0 -0
  130. /package/dist-scalprum/static/{5010.6241b64f.chunk.js.LICENSE.txt → 5010.4f67737b.chunk.js.LICENSE.txt} +0 -0
  131. /package/dist-scalprum/static/{6371.f183dddb.chunk.js.LICENSE.txt → 635.f63679a5.chunk.js.LICENSE.txt} +0 -0
  132. /package/dist-scalprum/static/{6386.2d20c412.chunk.js.LICENSE.txt → 6386.5922f271.chunk.js.LICENSE.txt} +0 -0
  133. /package/dist-scalprum/static/{3118.daee3324.chunk.js.LICENSE.txt → 7717.6f5b9dd7.chunk.js.LICENSE.txt} +0 -0
  134. /package/dist-scalprum/static/{8563.46f1a3e1.chunk.js.LICENSE.txt → 8563.6501eafb.chunk.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"static/1037.58dd29ad.chunk.js","mappings":"k1EAIA,MAAMA,GAAwB,IAAAC,wBAAuB,qBAC/CC,EAAsB,KAC1B,MAAMC,GAAa,IAAAC,YAAWJ,GAC9B,QAAmB,IAAfG,EACF,MAAO,CACLE,SAAU,MACVC,YAAa,OAGjB,MAAMC,EAAWJ,EAAWK,UAAU,GACtC,QAAiB,IAAbD,EACF,MAAM,IAAIE,MAAM,mCAElB,OAAOF,GAEHG,EAAoBC,IACxB,MAAM,WAAEC,EAAU,SAAEC,GAAaF,EAE3BG,EAAgB,IADDZ,OAGhBU,GAECG,GAAyB,IAAAC,yBAAwB,CAAE,EAAGF,IAC5D,OAAuB,IAAAG,KAAIjB,EAAsBkB,SAAU,CAAEC,MAAOJ,EAAwBF,c,eCzB9F,MAAMO,GAAkB,IAAAC,cAAa,CACnCC,GAAI,mBCDAC,GAAe,IAAAC,4BACnB,2CACA,KAAM,CACJC,kCAA8B,EAC9BC,uCAAmC,EACnCC,wBAAwB,KAI5B,MAAMC,EACJ,WAAAC,CAAYC,EAAcC,EAAU,CAClC1B,SAAU,OACVC,YAAa,QAEb0B,KAAKF,aAAeA,EACpBE,KAAKD,QAAUA,EACVR,EAAaI,yBAChBM,iBACE,eACA,KACMV,EAAaE,+BACfO,KAAKF,aAAaI,aAAa,IAC1BX,EAAaE,gCACbF,EAAaG,oCAElBH,EAAaE,kCAA+B,EAC5CF,EAAaG,uCAAoC,IAGrD,CAAES,MAAM,EAAMC,SAAS,IAEzBb,EAAaI,wBAAyB,EAE1C,CACA,UAAAU,CAAWN,GACTC,KAAKD,QAAUA,CACjB,CACA,YAAAG,CAAaI,EAAQC,GAAS,MAC5BpB,EAAK,WACLP,GACE,CAAC,GACH,MAAMmB,EAAUC,KAAKD,QACrB,GAlCmC,iCAkC/BO,EAAJ,CAWA,GAAIf,EAAaE,6BAA8B,CAC7C,IACEO,KAAKF,aAAaI,aAAa,IAC1BX,EAAaE,gCACbF,EAAaG,mCAEpB,CAAE,MAAOc,GACPC,QAAQC,KAAK,2CAA4CF,EAC3D,CACAjB,EAAaE,kCAA+B,EAC5CF,EAAaG,uCAAoC,CACnD,CACA,GAAe,aAAXY,GAA8C,SAArBP,EAAQ1B,SAUrC,IACE2B,KAAKF,aAAaI,aAAa,CAC7BI,SACAC,UACApB,QACAP,aACAmB,WAEJ,CAAE,MAAOS,GACPC,QAAQC,KAAK,2CAA4CF,EAC3D,MAnBEjB,EAAaE,6BAA+B,CAC1Ca,SACAC,UACApB,QACAP,aACAmB,UAnBJ,MATMR,EAAaE,+BACfF,EAAaG,kCAAoC,CAC/CK,QAAS,IACJA,EACHzB,YAAa,QAuCvB,EClEF,SAASqC,IACP,MAAMC,GAAa,IAAAC,QAAO,MACpBd,EAAU7B,IACV4B,EAdR,WACE,IACE,OAAO,IAAAgB,QAAO1B,EAChB,CAAE,MAAO2B,GACP,GAAmB,wBAAfA,EAAMC,KACR,MAAO,CAAEd,aAAc,QAGzB,MAAMa,CACR,CACF,CAIuBE,GAOfC,GALuB,OAAvBN,EAAWO,UACbP,EAAWO,QAAU,IAAIvB,EAAQE,IAE5Bc,EAAWO,SAIpB,OADAD,EAAQb,WAAWN,GACZmB,CACT,CCjCA,MAAME,GAAgB,IAAA/B,cAAa,CAAEC,GAAI,kBCAnC+B,GAA4B,IAAAhC,cAAa,CAC7CC,GAAI,8BCDAgC,GAAc,IAAAjC,cAAa,CAC/BC,GAAI,eCDAiC,GAAe,IAAAlC,cAAa,CAChCC,GAAI,gBCDAkC,GAAwB,IAAAnC,cAAa,CACzCC,GAAI,0B,eCHN,SAASmC,IACP,MAAMC,EAAaC,GAAUC,OAAOC,OACjC1C,IAAU,CACT2C,OAAQ,gCACRxC,GAAIqC,EACJxC,UAEF,CACEG,GAAIqC,EACJG,OAAQ,8BACRC,OAAQ,CAAC,EACT,QAAAC,GACE,MAAO,IACFhC,KACH+B,OAAQ,IAAK/B,KAAK+B,OAAQC,UAAU,GAExC,EACA,QAAAC,GACE,MAAMD,EAAWE,QAAQlC,KAAK+B,OAAOC,UACrC,MAAO,uBAAuBL,cAAkBK,IAClD,IAGJ,MAAO,CACLG,KAAKxD,GACI+C,EAAU/C,EAAQW,IAG/B,CC5BA,SAAS8C,EAA6BC,EAAQC,EAAaC,GACzD,GAAsB,iBAAXF,IAAwBA,IAASG,OAAOC,UACjD,MAAM,IAAIhE,MAAM,GAAG6D,wCAErB,MAAMI,EAA4B,IAAIC,IAChCC,EAAaL,GAAgB,IAAII,IAAIJ,EAAaM,IAAKC,GAAQ,CAACA,EAAIxD,GAAIwD,KAC9E,IAAK,MAAMC,KAAUV,EAAQ,CAC3B,GAAIO,IACGA,EAAWI,OAAOD,EAAOzD,IAC5B,MAAM,IAAIb,MACR,mBAAmBsE,EAAOzD,qCAIhCoD,EAAUO,IAAIF,EAAOzD,GAAIyD,EAC3B,CACA,MAAMG,EAAgBN,GAAcO,MAAMC,KAAKR,EAAWP,UAAUgB,OAAQP,IAASA,EAAIf,OAAOC,UAChG,GAAIkB,GAAiBA,EAAcI,OAAS,EAC1C,MAAM,IAAI7E,MACR,6CAA6CyE,EAAcL,IAAKC,GAAQA,EAAIxD,IAAIiE,KAAK,UAGzF,MAAO,CACLC,IAAIV,GACKJ,EAAUc,IAAIV,EAAIxD,KAAKH,MAEhC,CAACqD,OAAOC,UAAS,IACRC,EAAUL,SAGvB,CCzBA,SAASoB,EAAYtE,GACnB,OAAOA,CACT,CACA,SAASuE,EAAWvE,GAClB,OAAOA,CACT,CACA,SAASwE,EAAsBC,EAAgBC,EAAQC,GACrD,IAAKF,IAAmBC,IAAWC,EACjC,OAAOD,EAET,MAAME,EAAY,CAAC,EACnB,IAAK,MAAM/C,KAAQ4C,EAAgB,CACjC,IAAKhC,OAAOoC,OAAOJ,EAAgB5C,GACjC,SAEF,MAAMiD,EAAgBL,EAAe5C,GAC/BkD,EAAeJ,EAAe9C,GACpC,GAAIiD,EAAclC,OAAOoC,UAAW,CAClC,MAAMC,EAAgBV,EAAWG,EAAO7C,IACxC,GAAIkD,EAAc,CAChB,MAAMG,EAAoBjC,EACxB8B,EACA,2BACAD,EAAcK,eAEhB,IAAKF,EACH,MAAM,IAAI3F,MACR,wCAAwCuC,mDAG5C+C,EAAU/C,GAAQY,OAAOC,OAAOwC,EAAmB,CACjDE,KAAMH,EAAcG,MAExB,CACF,KAAO,CACL,MAAMH,EAAgBX,EAAYI,EAAO7C,IACzC,IAAKmC,MAAMqB,QAAQN,GACjB,MAAM,IAAIzF,MACR,qCAAqCuC,uBAGzC,GAA4B,IAAxBkD,EAAaZ,OACfS,EAAU/C,GAAQ,OACb,CACL,MAAMyD,EAAiBP,EAAab,OAAQqB,GAAM,SAAUA,GAAGpB,OAC/D,GAAuB,IAAnBmB,EAAsB,CACxB,GAAIL,EAAcd,SAAWY,EAAaZ,OACxC,MAAM,IAAI7E,MACR,qCAAqCuC,mDAGzC+C,EAAU/C,GAAQkD,EAAarB,IAAI,CAAC8B,EAAMC,KACxC,MAAMP,EAAoBjC,EACxBuC,EACA,2BACAV,EAAcK,eAEhB,OAAO1C,OAAOC,OAAOwC,EAAmB,CACtCE,KAAMH,EAAcQ,GAAGL,QAG7B,KAAO,IAAIE,IAAmBP,EAAaZ,OAGzC,MAAM,IAAI7E,MACR,4BAA4BuC,uDAH9B+C,EAAU/C,GAAQkD,CAKpB,CACF,CACF,CACF,CACA,OAAOH,CACT,C,eC3DA,SAASc,EAAYC,GACnB,GAAmB,kBAAfA,EAAMC,KACR,OAAOF,EAAYC,EAAME,YAAY,GAAGC,OAAO,IAEjD,IAAIC,EAAUJ,EAAMI,QAOpB,MANgB,aAAZA,IACFA,EAAU,0BAERJ,EAAMK,KAAK7B,SACb4B,GAAW,QAAQJ,EAAMK,KAAK5B,KAAK,SAE9B2B,CACT,CC9BA,MAAME,EAQJ,aAAOC,CAAO1G,GACZ,OAAO,IAAIyG,EAAWzG,EAAQ2G,KAAM,IAAIC,IAAI5G,EAAQ6G,UACtD,CACA,GACA,GACA,WAAA3F,CAAYyF,EAAME,GAChBxF,MAAK,EAAQsF,EACbtF,MAAK,EAAYwF,CACnB,CAQAC,aAAU,EAQVC,eAAY,EAKZC,OAAUxG,GACDa,MAAK,EAAoBb,GAOlCyG,WAAczG,IACZ,IAAKa,MAAK,EAAoBb,GAC5B,MAAM,IAAI0G,UACR,kCAAkC7F,MAAK,gBAAoBA,MAAK,EAAkBb,OAGtF,IAAKa,MAAK,EAAU8F,IAAI3G,EAAM4G,SAAU,CACtC,MAAMP,EAAWrC,MAAMC,KAAKpD,MAAK,GAAW6C,IAAI7C,MAAK,GACjDwF,EAASlC,OAAS,IACpBkC,EAASA,EAASlC,OAAS,GAAK,MAAMkC,EAASA,EAASlC,OAAS,MAEnE,MAAM0C,EAAWR,EAASlC,OAAS,EAAIkC,EAASjC,KAAK,MAAQiC,EAASjC,KAAK,KAC3E,MAAM,IAAIsC,UACR,6CAA6C7F,MAAK,EAChDb,EAAM4G,sBACOC,IAEnB,CACA,OAAO7G,GAST,cAAA8G,CAAeF,EAASG,GACtB,OAAOtE,OAAOC,OAAOqE,EAAO,CAC1BpE,OAAQ9B,MAAK,KACV+F,GAAW,CAAEA,YAEpB,CACA,GAAoB5G,GAClB,OAAc,OAAVA,GAAmC,iBAAVA,GAGtBA,EAAM2C,SAAW9B,MAAK,CAC/B,CACA,GAAkBb,GAChB,MAAqB,iBAAVA,EACF,WAAWA,KAEN,OAAVA,EACK,SAGAgH,OADL,WAAYhH,EACAA,EAAM2C,OAER3C,EAChB,CACA,GAAqB4G,GACZA,EAAU,IAAIA,KAAa,YC/FtC,MAAMK,EAA4BhB,EAAWC,OAAO,CAClDC,KAAM,iCACNE,SAAU,CAAC,KAAM,QCGba,EAAkB7D,OAAO,UAC/B,SAAS8D,EAAgB3H,GACvB,MAAM4H,EAAoB5H,EAAQoD,QAAQyE,OACpCC,EAAeF,GHPvB,WACE,MAAMC,GGOHE,EHP0B,GGORC,OACjB/E,OAAOgF,YACLhF,OAAOiF,QAAQN,GAAmB1D,IAAI,EAAEiE,EAAGC,KAAO,CAACD,EAAGC,EAAEL,OAF5D,IAACA,EHNH,MAAO,CAELM,MAAQC,IACN,MAAMC,EAASV,EAAOW,UAAUF,GAChC,GAAIC,EAAOE,QACT,OAAOF,EAAOvC,KAEhB,MAAM,IAAIlG,MAAMyI,EAAOnG,MAAMkE,OAAOpC,IAAIgC,GAAatB,KAAK,QAG5DiD,QAAQ,QAAgBA,GAE5B,CGP4Ca,GAO1C,OAAOjB,EAA0BH,eAAe,KAAM,CACpDqB,OAAG,EACHC,KAAM5I,EAAQ4I,KACdvG,KAAMrC,EAAQqC,KACdwG,SAAU7I,EAAQ6I,SAClBC,SAAU9I,EAAQ8I,WAAY,EAC9B5D,OAAQlF,EAAQkF,QAAU,CAAC,EAC3Bd,OAAQpE,EAAQoE,OAChB0D,eACAiB,QAAS/I,EAAQ+I,QACjB,QAAAzF,GACE,MAAM0F,EAAQ,GAUd,OATIhJ,EAAQ4I,MACVI,EAAMC,KAAK,QAAQjJ,EAAQ4I,QAEzB5I,EAAQqC,MACV2G,EAAMC,KAAK,QAAQjJ,EAAQqC,QAE7B2G,EAAMC,KACJ,YAAY,CAACjJ,EAAQ6I,UAAUK,OAAOhF,IAAKiF,GAAM,GAAGA,EAAExI,MAAMwI,EAAEb,SAAS1D,KAAK,QAEvE,uBAAuBoE,EAAMpE,KAAK,OAC3C,EACA,QAAAwE,CAASC,GACP,IAAK7E,MAAMqB,QAAQ7F,EAAQoE,QACzB,MAAM,IAAItE,MACR,mGAGJ,GAAIuJ,EAAgBjF,SAAWiF,EAAgBN,QAC7C,MAAM,IAAIjJ,MACR,8DAGJ,GAAIuJ,EAAgBC,QAAUD,EAAgBN,QAC5C,MAAM,IAAIjJ,MACR,2DAGJ,OAAO6H,EAAgB,CACrBiB,KAAM5I,EAAQ4I,KACdvG,KAAMrC,EAAQqC,KACdwG,SAAUQ,EAAgBR,UAAY7I,EAAQ6I,SAC9CC,SAAUO,EAAgBP,UAAY9I,EAAQ8I,SAC9C5D,OAAQ,IAAKmE,EAAgBnE,UAAWlF,EAAQkF,QAChDd,OAAQiF,EAAgBjF,QAAUpE,EAAQoE,OAC1ChB,OAAQpD,EAAQoD,QAAUiG,EAAgBjG,OAAS,CACjDyE,OAAQ,IACH7H,EAAQoD,QAAQyE,UAChBwB,EAAgBjG,QAAQyE,cAE3B,EACJkB,QAAS,EAAGnD,OAAM2D,OAAMnG,SAAQ8B,aAC9B,IAAKmE,EAAgBN,QACnB,OAAO/I,EAAQ+I,QAAQ,CACrBnD,OACA2D,OACAnG,SACA8B,SACA,CAACwC,GAAkB2B,EAAgBC,SAGvC,MAAME,EAAeH,EAAgBN,QAClCU,GACQhG,EACLzD,EAAQ+I,QAAQ,CACdnD,OACA2D,OACAnG,OAAQqG,GAAcrG,QAAUA,EAChC8B,OAAQF,EACNhF,EAAQkF,OACRA,EACAuE,GAAcvE,QAEhB,CAACwC,GAAkB+B,GAAcH,SAEnC,6BACAtJ,EAAQoE,QAGZ,CACEwB,OACA2D,OACAnG,SACA8B,WAGJ,GAA4B,iBAAjBsE,IAA8BA,IAAe3F,OAAOC,UAC7D,MAAM,IAAIhE,MACR,iEAGJ,MAAM4J,EAAqC,IAAI1F,IAC/C,IAAK,MAAM2F,KAAQH,EACjBE,EAAmBpF,IAAIqF,EAAKhJ,GAAIgJ,GAElC,OAAOD,EAAmBhG,WAGhC,GAEJ,CCjHA,MAAMkG,EAAwBnD,EAAWC,OAAO,CAC9CC,KAAM,6BACNE,SAAU,CAAC,QAEb,SAASgD,EAA+BP,GACtC,OAAOM,EAAsBtC,eAAe,KAAM,CAAEqB,EAAG,KAAMW,UAC/D,CACA,SAASQ,EAAoBR,EAAQS,EAAcnB,GACjD,MAAMoB,EAAkBV,EAAOS,GAC/B,IACE,OAAOH,EAAsB3C,WAAW+C,GAAiBV,MAC3D,CAAE,MAAOzH,GACP,MAAM,IAAIqF,UACR,8CAA8C0B,iHAAoH/G,EAAE0E,UAExK,CACF,CACA,SAAS0D,EAAaX,EAAQY,EAAKH,EAAcnB,GAC/C,MAAMuB,EAAiBD,EAAIxC,GAC3B,GAAIqC,EAAc,CAChB,GAAII,EAAgB,CAClB,GAA8B,mBAAnBA,EACT,MAAM,IAAIjD,UACR,sDAAsD0B,yHAG1D,OAAOkB,EAAoBK,EAAgBJ,EAAcnB,EAC3D,CACA,GAAsB,mBAAXU,EACT,MAAM,IAAIpC,UACR,8CAA8C0B,qHAGlD,OAAOkB,EAAoBR,EAAQS,EAAcnB,EACnD,CAWA,MAAO,IAVwB,mBAAXU,EAAwBQ,EAC1CR,EACAO,EACAjB,GACEU,KACwC,mBAAnBa,EAAgCL,EACvDK,EACAN,EACAjB,GACEuB,EAKN,CACA,SAASC,EAAyBpK,GAChC,MAAM+J,EAAe/J,EAAQ+J,aAC7B,MAAO,CACLM,SAAUrK,EAAQqK,SAClBC,KAAKC,GACI5C,EAAgB,CACrBiB,KAAM5I,EAAQ4I,KACdvG,KAAMkI,EAAKlI,KACXwG,SAAU0B,EAAK1B,UAAY7I,EAAQ6I,SACnCC,SAAUyB,EAAKzB,UAAY9I,EAAQ8I,SACnC5D,OAAQlF,EAAQkF,OAChBd,OAAQpE,EAAQoE,OAChBhB,OAAQpD,EAAQoD,OAChB2F,QAAUmB,GAAQlK,EAAQ+I,QACxBkB,EAAaM,EAAKjB,OAAQY,EAAKH,EAAc/J,EAAQ4I,MACrDsB,KAINM,kBAAkBD,GACT5C,EAAgB,CACrBiB,KAAM5I,EAAQ4I,KACdvG,KAAMkI,EAAKlI,KACXwG,SAAU0B,EAAK1B,UAAY7I,EAAQ6I,SACnCC,SAAUyB,EAAKzB,UAAY9I,EAAQ8I,SACnC5D,OAAQ,IAAKqF,EAAKrF,UAAWlF,EAAQkF,QACrCd,OAAQmG,EAAKnG,QAAUpE,EAAQoE,OAC/BhB,OAAQpD,EAAQoD,QAAUmH,EAAKnH,OAAS,CACtCyE,OAAQ,IACH7H,EAAQoD,QAAQyE,UAChB0C,EAAKnH,QAAQyE,cAEhB,EACJkB,QAAUmB,IACR,MAAM,KAAEtE,EAAI,OAAExC,EAAM,OAAE8B,EAAM,KAAEqE,GAASW,EACvC,OAAOK,EAAKxB,QACV,CAAC0B,EAAahB,IACLhG,EACLzD,EAAQ+I,QACNkB,EAAaQ,EAAaP,EAAKH,EAAc/J,EAAQ4I,MACrD,CACEW,OACA3D,OACAxC,OAAQqG,GAAcrG,QAAUA,EAChC8B,OAAQF,EACNhF,EAAQkF,OACRA,EACAuE,GAAcvE,UAIpB,6BACAlF,EAAQoE,QAGZ,CACEmF,OACA3D,OACAxC,SACA8B,cAOd,CCnHA,MAAMwF,EAAiB5H,IAAyBU,KAAK,CACnD7C,GAAI,2BAEAgK,EAAmCP,EAAyB,CAChExB,KAAM,YACNC,SAAU,CAAC,CAAElI,GAAI,oBAAqB2H,MAAO,oBAC7ClE,OAAQ,CAACsG,GACTL,SAAU,CACRtB,QAAS2B,GAEXX,aAAeT,GAAWO,EAA+BP,GACzD,QAACP,CAAQO,SACDoB,EAAepB,EACvB,ICbI,EAAiBxG,IAAyBU,KAAK,CACnD7C,GAAI,qBAEAiK,EAAeR,EAAyB,CAC5CxB,KAAM,MACNC,SAAU,CAAElI,GAAI,OAAQ2H,MAAO,QAC/BlE,OAAQ,CAAC,GACTiG,SAAU,CACRtB,QAAS,GAEXgB,aAAeT,GAAWO,EAA+BP,GACzD,QAACP,CAAQO,SACD,EAAeA,EACvB,ICjBIuB,EAAoB,CACxBC,aAAchI,IAAyBU,KAAK,CAC1C7C,GAAI,sBAENoK,UAAWjI,IAAyBU,KAAK,CAAE7C,GAAI,sBAC/CqK,SAAUlI,IAAyBU,KAAK,CAAE7C,GAAI,sBCF1CsK,EAA0Bb,EAAyB,CACvDxB,KAAM,mBACNC,SAAU,CAAElI,GAAI,WAAY2H,MAAO,YACnClE,OAAQ,CAACyG,EAAkBC,cAC3B,QAAC/B,CAAQO,SACDuB,EAAkBC,aAAaxB,EAAO4B,QAC9C,ICLIC,EAAmBrI,IAAyBU,KAAK,CAAE7C,GAAI,qBACvDyK,EAA0BhB,EAAyB,CACvDxB,KAAM,mBACNC,SAAU,CAAElI,GAAI,WAAY2H,MAAO,YACnClE,OAAQ,CAAC+G,GACTd,SAAU,CACRgB,UAAWF,GAEb,QAACpC,CAAQO,SACD6B,EAAiB7B,EAAO+B,UAChC,ICVIC,EAAexI,IAAyBU,KAAK,CAAE7C,GAAI,eACnD4K,EAAsBnB,EAAyB,CACnDxB,KAAM,cACNC,SAAU,CAAElI,GAAI,gBAAiB2H,MAAO,SACxClE,OAAQ,CAACkH,GACTvC,QAAUO,GAAW,CACnBgC,EAAahC,EAAOkC,QAEtBnB,SAAU,CACRmB,MAAOF,KCTL,EAAmBxI,IAAyBU,KAAK,CACrD7C,GAAI,+BAEA8K,EAAsBrB,EAAyB,CACnDxB,KAAM,cACNC,SAAU,CAAElI,GAAI,UAAW2H,MAAO,WAClClE,OAAQ,CAAC,GACTiG,SAAU,CACRgB,UAAW,GAEb,QAACtC,CAAQO,SACD,EAAiBA,EAAO+B,UAChC,ICZIK,EAAgB5I,IAAyBU,KAAK,CAAE7C,GAAI,yBACpDgL,EAAmBvB,EAAyB,CAChDxB,KAAM,WACNC,SAAU,CAAElI,GAAI,UAAW2H,MAAO,SAClClE,OAAQ,CAACsH,GACTrB,SAAU,CACRuB,OAAQF,GAEV3C,QAAS,EACP8C,OACAb,WACAc,UACG1I,YAAa,CAChBsI,EAAc,CACZI,MAAO1I,EAAO0I,OAASA,EACvBD,OACAb,cAGJ5H,OAAQ,CACNyE,OAAQ,CACNiE,MAAQC,GAAMA,EAAEC,SAAS3I,eCzBzB4I,EAA8BxF,EAAWC,OAAO,CACpDG,SAAU,CAAC,MACXF,KAAM,qCCSFuF,EAAqB,KACzB,IACE,OAAO,IAAA/J,QAAOO,EAChB,CAAE,MAAOb,GACP,MACF,GAEF,SAASsK,EAAyBnM,GAChC,MAAMoM,EAAqBC,IAAsB,IAAA/L,KAAI,MAAO,CAAE,cAAeN,EAAQW,MAAO0L,IACtFlI,EAAM8H,EAA4B3E,eAAe,KAAM,CAC3D3G,GAAIX,EAAQW,GACZ2L,OAAQ,KACRC,eAAgB,KAChBjJ,SAAQ,IACC,4BAA4BtD,EAAQW,MAE7C6L,kBAAkB,IAAAC,MAAKC,UAEd,CAAEC,cADe3M,EAAQ4M,aAAcR,KAGhDS,eAAgB7M,EAAQ6M,iBAEpBC,EAAoBvF,IACxB,MAAMwF,EAAMb,IACZ,IAAKa,EAAK,CACR,MAAMC,EAAcf,EAA4BhF,WAAW9C,GACrD8I,EAAaD,EAAYR,iBACzBU,EAAaF,EAAYH,iBAAiBtF,IAAUA,EAC1D,OAAuB,IAAAjH,KAAI2M,EAAY,IAAKC,GAC9C,CACA,MAAMC,EAAYJ,EAAIK,aAAajJ,GACnC,OAAuB,IAAA7D,KAAI6M,EAAW,IAAK5F,KAG7C,OADAtE,OAAOC,OAAO4J,EAAkB,CAAE3I,QAC3B2I,CACT,CC7CA,MAAMO,EAAWlB,EAAyB,CACxCxL,GAAI,kBAEA2M,GAAoBnB,EAAyB,CACjDxL,GAAI,8BAEA4M,GAAepB,EAAyB,CAC5CxL,GAAI,qBACJiM,OAAQ,IAAOrF,IAA0B,IAAAjH,KAAI,MAAO,CAAE,cAAe,qBAAsBJ,SAAUqH,EAAMnF,MAAMmE,YCPnH,MAAMiH,WAAsB,EAAAL,UAC1B,+BAAOM,CAAyBrL,GAC9B,MAAO,CAAEA,QACX,CACAsL,MAAQ,CAAEtL,WAAO,GACjBuL,iBAAmB,KACjBtM,KAAKuM,SAAS,CAAExL,WAAO,KAEzB,MAAAyL,GACE,MAAM,MAAEzL,GAAUf,KAAKqM,OACjB,OAAEI,EAAM,SAAE5N,GAAamB,KAAKkG,MAClC,OAAInF,GACqB,IAAA9B,KACrBiN,GACA,CACEO,SACA1L,QACA2L,WAAY1M,KAAKsM,mBAIhBzN,CACT,GCxBF,IAAAW,4BACE,2CACA,KAAM,CACJC,kCAA8B,EAC9BC,uCAAmC,EACnCC,wBAAwB,KAG5B,MCPMgN,GAAc,mBACdC,IAAiB,IAAA3O,wBAAuB0O,IAC9C,SAASE,IAAgB,KACvBtI,EAAI,SACJ1F,IAEA,MAAMiO,GAAiB,IAAA9N,yBAAwB,CAAE,EAAG,CAAEuF,UACtD,OAAuB,IAAAtF,KAAI2N,GAAe1N,SAAU,CAAEC,MAAO2N,EAAgBjO,YAC/E,CACA,SAASkO,KACP,MAAMC,GAAmB,IAAAC,qBAAoBN,IAC7C,IAAKK,EACH,OAEF,MAAMjN,EAAUiN,EAAiBxO,UAAU,GAC3C,IAAKuB,EACH,MAAM,IAAItB,MAAM,mCAElB,OAAOsB,EAAQwE,IACjB,CCVA,MAAM2I,GAAgBhH,IACpB,MAAM,QAAEiH,EAAO,SAAEtO,GAAaqH,EACxBkH,GAAY,IAAAzM,gBAMlB,OALA,IAAA0M,WAAU,KACJF,GACFC,EAAUlN,aFPuB,+BEOsB,KAExD,CAACkN,EAAWD,KACQ,IAAAlO,KAAI,EAAAqO,SAAU,CAAEzO,cAEzC,SAAS0O,GAAkBrH,GACzB,MAAM,KAAE3B,EAAI,SAAE1F,GAAaqH,EACrBsH,EAAqBtL,QACzBqC,EAAKkJ,UAAUC,QAAQlE,EAAkBE,YAErC+C,EAASlI,EAAKoJ,KAAKlB,OACnB7N,EAAa,CACjBN,YAAaiG,EAAKoJ,KAAKrO,GACvBjB,SAAUkG,EAAKoJ,KAAKlB,QAAQnN,IAAM,OAEpC,OAAuB,IAAAL,KAAI4N,GAAiB,CAAEtI,OAAM1F,UAA0B,IAAAI,KAAI,EAAA2O,SAAU,CAAEC,UAA0B,IAAA5O,KAAI+M,EAAU,CAAC,GAAInN,UAA0B,IAAAI,KAAIkN,GAAe,CAAEM,SAAQ5N,UAA0B,IAAAI,KAAI,EAAAP,iBAAkB,CAAEE,aAAYC,UAA0B,IAAAI,KAAIiO,GAAc,CAAEC,QAASK,EAAoB3O,oBAC7U,CACA,IAAEiP,OAeCP,KAAsBA,GAAoB,CAAC,IARzBnC,KANnB,SAAgB2C,EAASxC,GACvB,MAAMyC,GAAqB,IAAA5C,MACzB,IAAMG,IAAS0C,KAAMpE,IAAY,CAAGyB,QAAS,IAAMzB,MAErD,OAAuB,IAAA5K,KAAI6O,GAAoB,CAAEvJ,KAAMwJ,EAASlP,UAA0B,IAAAI,KAAI+O,EAAoB,CAAC,IACrH,EAQAF,GAAmBI,cANnB,SAAuBH,EAASxC,GAC9B,MAAMyC,GAAqB,IAAA5C,MACzB,IAAMG,IAAS0C,KAAMnC,IAAc,CAAGR,QAASQ,MAEjD,OAAQ5F,IAA0B,IAAAjH,KAAI6O,GAAoB,CAAEvJ,KAAMwJ,EAASlP,UAA0B,IAAAI,KAAI+O,EAAoB,IAAK9H,KACpI,EC9BF,MAAMiI,GAAgBpF,EAAyB,CAC7CxB,KAAM,OACNC,SAAU,CAAElI,GAAI,aAAc2H,MAAO,UACrClE,OAAQ,CACNyG,EAAkBE,UAClBF,EAAkBC,aAClBD,EAAkBG,SAAS3H,YAE7BD,OAAQ,CACNyE,OAAQ,CACNrB,KAAOuF,GAAMA,EAAEC,SAAS3I,aAG5B,QAAC0F,CAAQO,GAAQ,OAAElG,EAAM,KAAEwC,UACnBiF,EAAkBE,UAAU3H,EAAOoD,MAAQ8C,EAAO9C,YAClDqE,EAAkBC,aACtB8D,GAAkBnC,KAAK7G,EAAM0D,EAAOsD,SAElCtD,EAAO0B,iBACHH,EAAkBG,SAAS1B,EAAO0B,UAE5C,IChCI,GAAmBlI,IAAyBU,KAAK,CAAE7C,GAAI,uBACvD8O,GAAkBrF,EAAyB,CAC/CxB,KAAM,uBACNC,SAAU,CAAElI,GAAI,WAAY2H,MAAO,UACnClE,OAAQ,CAAC,IACTiG,SAAU,CACRgB,UAAW,IAEb,QAACtC,CAAQO,SACD,GAAiBA,EAAO+B,UAChC,ICEI,GAAmBvI,IAAyBU,KAAK,CAAE7C,GAAI,gCACvD+O,GAAsBtF,EAAyB,CACnDxB,KAAM,eACNC,SAAU,CAAElI,GAAI,WAAY2H,MAAO,cACnClE,OAAQ,CAAC,IACTiG,SAAU,CACRgB,UAAW,IAEb,QAACtC,EAAQ,OACP6D,IACC,KAAEhH,IACH,MAAMyJ,GAAqB,IAAA5C,MACzB,IAAMG,IAAS0C,KAAMjE,IAAc,CAAGsB,QAAStB,YAE3C,GAAkB9D,IAA0B,IAAAjH,KAAIsO,GAAmB,CAAEhJ,OAAM1F,UAA0B,IAAAI,KAAI+O,EAAoB,IAAK9H,MAC1I,IC3BIoI,GAAe7M,IAAyBU,KAAK,CACjD7C,GAAI,qBAEAiP,GAAiBxF,EAAyB,CAC9CxB,KAAM,QACNC,SAAU,CAAElI,GAAI,oBAAqB2H,MAAO,UAC5ClE,OAAQ,CAACuL,IACTtF,SAAU,CACRwF,MAAOF,IAET5G,QAAS,EAAG8G,WAAY,CAACF,GAAaE,MCVlCC,GAAqBhN,IAAyBU,KAAK,CAAE7C,GAAI,iCACzDoP,GAAuB3F,EAAyB,CACpDxB,KAAM,cACNC,SAAU,CAAElI,GAAI,uBAAwB2H,MAAO,gBAC/ClE,OAAQ,CAAC0L,IACTzF,SAAU,CACR2F,YAAaF,IAEf/G,QAAS,EACPkH,cACI,CAACH,GAAmBG,MCVtB,GAAmBnN,IAAyBU,KAAK,CAAE7C,GAAI,4BACvDuP,GAA8B9F,EAAyB,CAC3DxB,KAAM,YACNC,SAAU,CAAElI,GAAI,+BAAgC2H,MAAO,cACvDlE,OAAQ,CAAC,IACTiG,SAAU,CACRgB,UAAW,IAEbtB,aAAaT,GACJO,EAA+BP,GAExCP,QAAUO,GAAW,CACnB,GAAiB,CACfnF,IAAKmF,EAAO+B,UAAUlH,IACtByI,OAAQtD,EAAOsD,YCpBfuD,GAAiB,mBACvB,SAASC,GAAuBC,EAAmBvQ,OACjD,MAAM,MAAEwQ,GAAU,IAAID,EAAiBF,IACvC,IAAKG,EACH,MAAO,YAET,MAAMC,EAAaD,EAAME,SAASL,IAAkBG,EAAMG,QAAQ,MAAQ,EAAI,EACxEC,EAAmBJ,EAAMG,QAAQ,KAAMH,EAAMG,QAAQ,KAAMF,GAAc,GAAK,EAC9EI,EAAiBL,EAAMG,QAAQ,KAAMC,GACrCE,EAAON,EAAMO,UAAUH,EAAkBC,GAAgBG,OAC/D,OAAKF,EAGDA,EAAKJ,SAAS,KACTI,EAAKC,UAAUD,EAAKH,QAAQ,KAAO,EAAGG,EAAKH,QAAQ,MAExDG,EAAKJ,SAAS,KACTI,EAAKC,UAAUD,EAAKH,QAAQ,KAAO,GAErCG,EARE,SASX,CClBA,SAASG,GAAmBd,GAC1B,MAAMe,EAAIf,EACV,GAAiB,wBAAbe,EAAE7N,OACJ,MAAM,IAAIrD,MAAM,+BAA+BkR,EAAE7N,WAEnD,OAAO6N,CACT,CACA,MAAMC,GACJ,WAAA/P,CAAYoI,EAAS,GAAI4H,EAAcC,GACrC9P,KAAKiI,OAASA,EACdjI,MAAK,EAAUiI,EACfjI,MAAK,EAAgB6P,EACrB7P,MAAK,EAAS8P,CAChB,CACAhO,OAAS,sBACTiE,QAAU,KACV,GACA,GACA,GACA,GACA,SAAAgK,GACE,OAAO/P,MAAK,CACd,CACA,SAAI8P,GACF,OAAO9P,MAAK,CACd,CACA,cAAAgQ,GACE,OAAIhQ,MAAK,EACAA,MAAK,EAEP,eAAeA,MAAK,IAC7B,CACA,KAAI,GACF,OAAOA,KAAK8B,OAAOmO,MAAM,GAC3B,CACA,KAAAC,CAAM5Q,GACJ,IAAKA,EACH,MAAM,IAAIb,MAAM,GAAGuB,MAAK,mCAE1B,GAAIA,MAAK,GAAOA,MAAK,IAAQV,EAC3B,MAAM,IAAIb,MACR,GAAGuB,MAAK,mCAAuCA,MAAK,WAAaV,MAGrEU,MAAK,EAAMV,CACb,CACA,QAAA2C,GACE,MAAO,GAAGjC,MAAK,KAASA,KAAKgQ,mBAC/B,EAEF,SAASG,GAAepO,GACtB,OAAO,IAAI6N,GACT7N,GAAQkG,OACR8G,KACAhN,GAAQqO,SAEZ,CCxDA,MAAMC,GAAgB,QACtB,MAAMC,GACJ,WAAAzQ,CAAYsF,EAAM8C,EAAQsI,GACxBvQ,KAAKmF,KAAOA,EACZnF,MAAK,EAAUiI,EACfjI,MAAK,EAAUuQ,CACjB,CACAzO,OAAS,yBACTiE,QAAU,KACV,GACA,GACA,SAAAgK,GACE,OAAO/P,MAAK,CACd,CACA,SAAAwQ,GACE,OAAOxQ,MAAK,CACd,CACA,cAAAgQ,GACE,MAAMO,EAASb,GAAmB1P,MAAK,GACvC,MAAO,MAAMA,KAAKmF,oBAAoBoL,EAAOP,kBAC/C,CACA,QAAA/N,GACE,MAAO,eAAejC,KAAKgQ,mBAC7B,EAEF,SAASS,GAAkB1O,GACzB,MAAM,KAAEoD,EAAI,OAAEoL,GAAWxO,EAEnB2O,EADiBhB,GAAmBa,GACNR,YAC9BY,EAAaxL,EAAKyL,MAAM,KAAKvN,OAAQ2H,GAAMA,EAAE6F,WAAW,MAAMhO,IAAKmI,GAAMA,EAAEwE,UAAU,IACrFvH,EAAS,IAAIyI,KAAiBC,GACpC,GAAID,EAAaI,KAAM9F,GAAM2F,EAAWxB,SAASnE,IAC/C,MAAM,IAAIvM,MACR,gEAGJ,IAAK0G,EAAK0L,WAAW,KACnB,MAAM,IAAIpS,MAAM,8CAA8C0G,MAEhE,GAAIA,EAAK4L,SAAS,KAChB,MAAM,IAAItS,MAAM,gDAAgD0G,MAElE,IAAK,MAAM6L,KAASL,EAClB,IAAKN,GAAcY,KAAKD,GACtB,MAAM,IAAIvS,MAAM,4CAA4CuS,MAQhE,OALoB,IAAIV,GACtBnL,EACA8C,EACAsI,EAGJ,CCpDA,MAAMW,WAA6BtB,GACjC,WAAA/P,CAAYoI,EAAS,GAAIkJ,EAAetB,GACtCuB,MAAMnJ,EAAQ4H,GACd7P,KAAKiI,OAASA,EACdjI,KAAKmR,cAAgBA,CACvB,CACArP,OAAS,8BACT,gBAAAuP,GACE,OAAOrR,KAAKmR,aACd,EAEF,SAASG,GAAuB3S,GAC9B,OAAO,IAAIuS,GACTvS,GAASsJ,OACTtJ,GAASwS,cACTpC,KAEJ,C,gBCVA,SAASwC,GAAY5H,GACnB,MAAM,SAAE6H,IAAa,KAAAC,eACfC,GAAqB,IAAA5Q,QAAOU,GAKlC,OAJkB,IAAAmQ,SAChB,IAAMD,EAAmBE,QAAQjI,EAAU,CAAEkI,WAAYL,IACzD,CAACE,EAAoB/H,EAAU6H,GAGnC,CChBA,SAASM,GAAkBC,GACzB,OAAO,KAAAC,YACT,C,oDCJA,SAASC,GAAqB3N,EAAevC,GAqB3C,MAAO,CACLD,OAAQ,4BACRwC,gBACAvC,OAAQ,CACNoC,UAAWjC,QAAQH,GAAQoC,WAC3BnC,SAAUE,QAAQH,GAAQC,WAE5BkQ,SAAUnQ,GAAQmQ,SAEtB,CC5BA,SAASC,GAA2BC,EAAYrS,GAC9C,MAAMsS,EAAqBjM,EAA0BR,WAAWwM,IAC1D,KACJpR,EAAI,KACJuG,EACA+K,UAAWC,EACXxK,SAAUyK,KACPC,GACDJ,EACEC,EAAYD,EAAmBC,WAAavS,GAASuS,UACrDI,EAAW1R,GAAQsR,EAAY,GAAGA,KAAatR,IAASsR,GAAatR,EAC3E,IAAK0R,EACH,MAAM,IAAIjU,MACR,uGAAuG8I,eAAkB+K,UAAkBtR,KAG/I,MAAM1B,EAAKiI,EAAO,GAAGA,KAAQmL,IAAaA,EAC1C,MAAO,IACFD,EACH3Q,OAAQ,uBACRiE,QAASsM,EAAmBtM,QAC5BzG,KACA2C,SAAQ,IACC,gBAAgB3C,KAG7B,CC1BA,MAAMqT,GAAuBvN,EAAWC,OAAO,CAC7CC,KAAM,4BACNE,SAAU,CAAC,QCCb,SAASoN,GAAqBjU,GAC5B,MAAMN,EAAWM,EAAQN,SACnBwU,EAAa,IAAI1P,MACjB2P,EAA2C,IAAInQ,IACrD,IAAK,MAAMoQ,KAAOpU,EAAQkU,YAAc,GAAI,CAC1C,MAAMG,EAAW5M,EAA0BR,WAAWmN,GAChDE,EAAMd,GAA2BY,EAAK,CAAET,UAAWjU,IACzDwU,EAAWjL,KAAKqL,GAChBH,EAAyB7P,IAAIgQ,EAAI3T,GAAI,IAChC0T,EACHV,UAAWjU,GAEf,CACA,GAAIwU,EAAWvP,SAAWwP,EAAyBI,KAAM,CACvD,MAAMC,EAAeN,EAAWhQ,IAAKrC,GAAMA,EAAElB,IACvC8T,EAAajQ,MAAMC,KACvB,IAAImC,IACF4N,EAAa9P,OAAO,CAAC/D,EAAI+T,IAAUF,EAAa/D,QAAQ9P,KAAQ+T,KAGpE,MAAM,IAAI5U,MACR,WAAWJ,qCAA4C+U,EAAW7P,KAChE,QAGN,CACA,OAAOoP,GAAqB1M,eAAe,KAAM,CAC/C3G,GAAIjB,EACJiV,OAAQ3U,EAAQ2U,QAAU,CAAC,EAC3BC,eAAgB5U,EAAQ4U,gBAAkB,CAAC,EAC3CC,aAAc7U,EAAQ6U,cAAgB,GACtCX,aACAY,YAAa9U,EAAQ+U,KAErB,UAAMA,GACJ,MAAM,IAAIjV,MACR,6CAA6CJ,yDAEjD,EACA,YAAAsV,CAAarU,GACX,MAAM2T,EAAMH,EAAyBtP,IAAIlE,GACzC,IAAK2T,EACH,MAAM,IAAIxU,MACR,4CAA4Ca,mBAAoBjB,MAGpE,OAAO4U,CACT,EACAhR,SAAQ,IACC,aAAa5D,KAEtB,aAAAuV,CAAcC,GACZ,MAAMC,EAAyB,IAAIvO,IACjCsO,EAAUhB,WAAWhQ,IAClBrC,GAAM2R,GAA2B3R,EAAG,CAAE8R,UAAWjU,IAAYiB,KAG5DyU,GAA2BpV,EAAQkU,YAAc,IAAIxP,OACxD7C,IAAOsT,EAAuBhO,IAC7BqM,GAA2B3R,EAAG,CAAE8R,UAAWjU,IAAYiB,KAG3D,OAAOsT,GAAqB,IACvBjU,EACHN,WACAwU,WAAY,IAAIkB,KAA4BF,EAAUhB,YACtDa,KAAM,IACD/U,EAAQ+U,QACRG,EAAUH,OAGnB,GAEJ,CC3EA,SAASM,GAAqBrV,GAC5B,MAAM,SAAEN,GAAaM,EACfkU,EAAa,IAAI1P,MACjB2P,EAA2C,IAAInQ,IACrD,IAAK,MAAMoQ,KAAOpU,EAAQkU,YAAc,GAAI,CAC1C,MAAMG,EAAW5M,EAA0BR,WAAWmN,GAChDE,EAAMd,GAA2BY,EAAK,CAAET,UAAWjU,IACzDwU,EAAWjL,KAAKqL,GAChBH,EAAyB7P,IAAIgQ,EAAI3T,GAAI,IAChC0T,EACHV,UAAWjU,GAEf,CACA,GAAIwU,EAAWvP,SAAWwP,EAAyBI,KAAM,CACvD,MAAMC,EAAeN,EAAWhQ,IAAKrC,GAAMA,EAAElB,IACvC8T,EAAajQ,MAAMC,KACvB,IAAImC,IACF4N,EAAa9P,OAAO,CAAC/D,EAAI+T,IAAUF,EAAa/D,QAAQ9P,KAAQ+T,KAGpE,MAAM,IAAI5U,MACR,WAAWJ,qCAA4C+U,EAAW7P,KAChE,QAGN,CACA,MAAO,CACLzB,OAAQ,4BACRiE,QAAS,KACT1H,WACAmV,aAAc7U,EAAQ6U,cAAgB,GACtCX,aACA5Q,SAAQ,IACC,mBAAmB5D,KAGhC,CCrCA,SAAS4V,GAA4BtV,GACnC,MAAMuV,EAAc,eAAenF,QACnC,MAAO,CACLjN,OAAQ,mCACRiE,QAAS,KACTmO,cACAjS,SAAQ,IACC,6BAA6BiS,KAEtC,YAAM3I,CAAO4I,GACX,MAAMC,QAAWzV,EAAQ4M,OAAO4I,GAC1BjN,EAAS,IAAI/D,MACnB,UAAW,MAAMmF,KAAQ8L,EACvB,GAAIC,GAAkB/L,GACpBpB,EAAOU,KAAKU,OACP,MAAI,YAAaA,GAGtB,MAAM,IAAI7J,MAAM,iBAAiB6J,MAFjCpB,EAAOU,KAAKU,EAAKgD,QAGnB,CAEF,OAAOpE,CACT,EAEJ,CACA,SAASmN,GAAkBC,GACzB,OAAY,OAARA,GAA+B,iBAARA,GAAoB,WAAYA,IACnC,8BAAfA,EAAIxS,QAAyD,8BAAfwS,EAAIxS,QAAyD,qCAAfwS,EAAIxS,OAG3G,C","sources":["webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/analytics/AnalyticsContext.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/AnalyticsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/analytics/Tracker.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/analytics/useAnalytics.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/AppTreeApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/SwappableComponentsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/IconsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/DialogApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/RouteResolutionApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtensionDataRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/createExtensionDataContainer.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/resolveInputOverrides.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/schema/createSchemaFromZod.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/opaque-internal/src/OpaqueType.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/InternalExtensionDefinition.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtension.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtensionBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/AnalyticsImplementationBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/ApiBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/coreExtensionData.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/AppRootElementBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/AppRootWrapperBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/IconBundleBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/NavContentBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/NavItemBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/createSwappableComponent.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/DefaultSwappableComponents.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/ErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/core-plugin-api/src/analytics/Tracker.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/AppNodeProvider.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/ExtensionBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/PageBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/RouterBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/SignInPageBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/ThemeBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/TranslationBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/SwappableComponentBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/describeParentCallSite.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/RouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/SubRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/ExternalRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/useRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/useRouteRefParams.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtensionInput.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/resolveExtensionDefinition.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/InternalFrontendPlugin.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createFrontendPlugin.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createFrontendModule.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createFrontendFeatureLoader.esm.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\nimport { useContext } from 'react';\n\nconst AnalyticsReactContext = createVersionedContext(\"analytics-context\");\nconst useAnalyticsContext = () => {\n const theContext = useContext(AnalyticsReactContext);\n if (theContext === void 0) {\n return {\n pluginId: \"app\",\n extensionId: \"app\"\n };\n }\n const theValue = theContext.atVersion(1);\n if (theValue === void 0) {\n throw new Error(\"No context found for version 1.\");\n }\n return theValue;\n};\nconst AnalyticsContext = (options) => {\n const { attributes, children } = options;\n const parentValues = useAnalyticsContext();\n const combinedValue = {\n ...parentValues,\n ...attributes\n };\n const versionedCombinedValue = createVersionedValueMap({ 1: combinedValue });\n return /* @__PURE__ */ jsx(AnalyticsReactContext.Provider, { value: versionedCombinedValue, children });\n};\n\nexport { AnalyticsContext, useAnalyticsContext };\n//# sourceMappingURL=AnalyticsContext.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst analyticsApiRef = createApiRef({\n id: \"core.analytics\"\n});\n\nexport { analyticsApiRef };\n//# sourceMappingURL=AnalyticsApi.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\nconst globalEvents = getOrCreateGlobalSingleton(\n \"core-plugin-api:analytics-tracker-events\",\n () => ({\n mostRecentGatheredNavigation: void 0,\n mostRecentRoutableExtensionRender: void 0,\n beforeUnloadRegistered: false\n })\n);\nconst routableExtensionRenderedEvent = \"_ROUTABLE-EXTENSION-RENDERED\";\nclass Tracker {\n constructor(analyticsApi, context = {\n pluginId: \"root\",\n extensionId: \"App\"\n }) {\n this.analyticsApi = analyticsApi;\n this.context = context;\n if (!globalEvents.beforeUnloadRegistered) {\n addEventListener(\n \"beforeunload\",\n () => {\n if (globalEvents.mostRecentGatheredNavigation) {\n this.analyticsApi.captureEvent({\n ...globalEvents.mostRecentGatheredNavigation,\n ...globalEvents.mostRecentRoutableExtensionRender\n });\n globalEvents.mostRecentGatheredNavigation = void 0;\n globalEvents.mostRecentRoutableExtensionRender = void 0;\n }\n },\n { once: true, passive: true }\n );\n globalEvents.beforeUnloadRegistered = true;\n }\n }\n setContext(context) {\n this.context = context;\n }\n captureEvent(action, subject, {\n value,\n attributes\n } = {}) {\n const context = this.context;\n if (action === routableExtensionRenderedEvent) {\n if (globalEvents.mostRecentGatheredNavigation) {\n globalEvents.mostRecentRoutableExtensionRender = {\n context: {\n ...context,\n extensionId: \"App\"\n }\n };\n }\n return;\n }\n if (globalEvents.mostRecentGatheredNavigation) {\n try {\n this.analyticsApi.captureEvent({\n ...globalEvents.mostRecentGatheredNavigation,\n ...globalEvents.mostRecentRoutableExtensionRender\n });\n } catch (e) {\n console.warn(\"Error during analytics event capture. %o\", e);\n }\n globalEvents.mostRecentGatheredNavigation = void 0;\n globalEvents.mostRecentRoutableExtensionRender = void 0;\n }\n if (action === \"navigate\" && context.pluginId === \"root\") {\n globalEvents.mostRecentGatheredNavigation = {\n action,\n subject,\n value,\n attributes,\n context\n };\n return;\n }\n try {\n this.analyticsApi.captureEvent({\n action,\n subject,\n value,\n attributes,\n context\n });\n } catch (e) {\n console.warn(\"Error during analytics event capture. %o\", e);\n }\n }\n}\n\nexport { Tracker, routableExtensionRenderedEvent };\n//# sourceMappingURL=Tracker.esm.js.map\n","import { useApi } from '@backstage/core-plugin-api';\nimport { useAnalyticsContext } from './AnalyticsContext.esm.js';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport { analyticsApiRef } from '../apis/definitions/AnalyticsApi.esm.js';\nimport { useRef } from 'react';\nimport { Tracker } from './Tracker.esm.js';\n\nfunction useAnalyticsApi() {\n try {\n return useApi(analyticsApiRef);\n } catch (error) {\n if (error.name === \"NotImplementedError\") {\n return { captureEvent: () => {\n } };\n }\n throw error;\n }\n}\nfunction useAnalytics() {\n const trackerRef = useRef(null);\n const context = useAnalyticsContext();\n const analyticsApi = useAnalyticsApi();\n function getTracker() {\n if (trackerRef.current === null) {\n trackerRef.current = new Tracker(analyticsApi);\n }\n return trackerRef.current;\n }\n const tracker = getTracker();\n tracker.setContext(context);\n return tracker;\n}\n\nexport { useAnalytics };\n//# sourceMappingURL=useAnalytics.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst appTreeApiRef = createApiRef({ id: \"core.app-tree\" });\n\nexport { appTreeApiRef };\n//# sourceMappingURL=AppTreeApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst swappableComponentsApiRef = createApiRef({\n id: \"core.swappable-components\"\n});\n\nexport { swappableComponentsApiRef };\n//# sourceMappingURL=SwappableComponentsApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst iconsApiRef = createApiRef({\n id: \"core.icons\"\n});\n\nexport { iconsApiRef };\n//# sourceMappingURL=IconsApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst dialogApiRef = createApiRef({\n id: \"core.dialog\"\n});\n\nexport { dialogApiRef };\n//# sourceMappingURL=DialogApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst routeResolutionApiRef = createApiRef({\n id: \"core.route-resolution\"\n});\n\nexport { routeResolutionApiRef };\n//# sourceMappingURL=RouteResolutionApi.esm.js.map\n","function createExtensionDataRef() {\n const createRef = (refId) => Object.assign(\n (value) => ({\n $$type: \"@backstage/ExtensionDataValue\",\n id: refId,\n value\n }),\n {\n id: refId,\n $$type: \"@backstage/ExtensionDataRef\",\n config: {},\n optional() {\n return {\n ...this,\n config: { ...this.config, optional: true }\n };\n },\n toString() {\n const optional = Boolean(this.config.optional);\n return `ExtensionDataRef{id=${refId},optional=${optional}}`;\n }\n }\n );\n return {\n with(options) {\n return createRef(options.id);\n }\n };\n}\n\nexport { createExtensionDataRef };\n//# sourceMappingURL=createExtensionDataRef.esm.js.map\n","function createExtensionDataContainer(values, contextName, declaredRefs) {\n if (typeof values !== \"object\" || !values?.[Symbol.iterator]) {\n throw new Error(`${contextName} did not provide an iterable object`);\n }\n const container = /* @__PURE__ */ new Map();\n const verifyRefs = declaredRefs && new Map(declaredRefs.map((ref) => [ref.id, ref]));\n for (const output of values) {\n if (verifyRefs) {\n if (!verifyRefs.delete(output.id)) {\n throw new Error(\n `extension data '${output.id}' was provided but not declared`\n );\n }\n }\n container.set(output.id, output);\n }\n const remainingRefs = verifyRefs && Array.from(verifyRefs.values()).filter((ref) => !ref.config.optional);\n if (remainingRefs && remainingRefs.length > 0) {\n throw new Error(\n `missing required extension data value(s) '${remainingRefs.map((ref) => ref.id).join(\", \")}'`\n );\n }\n return {\n get(ref) {\n return container.get(ref.id)?.value;\n },\n [Symbol.iterator]() {\n return container.values();\n }\n };\n}\n\nexport { createExtensionDataContainer };\n//# sourceMappingURL=createExtensionDataContainer.esm.js.map\n","import { createExtensionDataContainer } from '../frontend-internal/src/wiring/createExtensionDataContainer.esm.js';\nimport '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\nimport '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\n\nfunction expectArray(value) {\n return value;\n}\nfunction expectItem(value) {\n return value;\n}\nfunction resolveInputOverrides(declaredInputs, inputs, inputOverrides) {\n if (!declaredInputs || !inputs || !inputOverrides) {\n return inputs;\n }\n const newInputs = {};\n for (const name in declaredInputs) {\n if (!Object.hasOwn(declaredInputs, name)) {\n continue;\n }\n const declaredInput = declaredInputs[name];\n const providedData = inputOverrides[name];\n if (declaredInput.config.singleton) {\n const originalInput = expectItem(inputs[name]);\n if (providedData) {\n const providedContainer = createExtensionDataContainer(\n providedData,\n \"extension input override\",\n declaredInput.extensionData\n );\n if (!originalInput) {\n throw new Error(\n `attempted to override data of input '${name}' but it is not present in the original inputs`\n );\n }\n newInputs[name] = Object.assign(providedContainer, {\n node: originalInput.node\n });\n }\n } else {\n const originalInput = expectArray(inputs[name]);\n if (!Array.isArray(providedData)) {\n throw new Error(\n `override data provided for input '${name}' must be an array`\n );\n }\n if (providedData.length === 0) {\n newInputs[name] = [];\n } else {\n const withNodesCount = providedData.filter((d) => \"node\" in d).length;\n if (withNodesCount === 0) {\n if (originalInput.length !== providedData.length) {\n throw new Error(\n `override data provided for input '${name}' must match the length of the original inputs`\n );\n }\n newInputs[name] = providedData.map((data, i) => {\n const providedContainer = createExtensionDataContainer(\n data,\n \"extension input override\",\n declaredInput.extensionData\n );\n return Object.assign(providedContainer, {\n node: originalInput[i].node\n });\n });\n } else if (withNodesCount === providedData.length) {\n newInputs[name] = providedData;\n } else {\n throw new Error(\n `override data for input '${name}' may not mix forwarded inputs with data overrides`\n );\n }\n }\n }\n }\n return newInputs;\n}\n\nexport { resolveInputOverrides };\n//# sourceMappingURL=resolveInputOverrides.esm.js.map\n","import { z } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\n\nfunction createSchemaFromZod(schemaCreator) {\n const schema = schemaCreator(z);\n return {\n // TODO: Types allow z.array etc here but it will break stuff\n parse: (input) => {\n const result = schema.safeParse(input);\n if (result.success) {\n return result.data;\n }\n throw new Error(result.error.issues.map(formatIssue).join(\"; \"));\n },\n // TODO: Verify why we are not compatible with the latest zodToJsonSchema.\n schema: zodToJsonSchema(schema)\n };\n}\nfunction formatIssue(issue) {\n if (issue.code === \"invalid_union\") {\n return formatIssue(issue.unionErrors[0].issues[0]);\n }\n let message = issue.message;\n if (message === \"Required\") {\n message = `Missing required value`;\n }\n if (issue.path.length) {\n message += ` at '${issue.path.join(\".\")}'`;\n }\n return message;\n}\n\nexport { createSchemaFromZod };\n//# sourceMappingURL=createSchemaFromZod.esm.js.map\n","class OpaqueType {\n /**\n * Creates a new opaque type.\n *\n * @param options.type The type identifier of the opaque type\n * @param options.versions The available versions of the opaque type\n * @returns A new opaque type helper\n */\n static create(options) {\n return new OpaqueType(options.type, new Set(options.versions));\n }\n #type;\n #versions;\n constructor(type, versions) {\n this.#type = type;\n this.#versions = versions;\n }\n /**\n * The internal version of the opaque type, used like this: `typeof MyOpaqueType.TPublic`\n *\n * @remarks\n *\n * This property is only useful for type checking, its runtime value is `undefined`.\n */\n TPublic = void 0;\n /**\n * The internal version of the opaque type, used like this: `typeof MyOpaqueType.TInternal`\n *\n * @remarks\n *\n * This property is only useful for type checking, its runtime value is `undefined`.\n */\n TInternal = void 0;\n /**\n * @param value Input value expected to be an instance of this opaque type\n * @returns True if the value matches this opaque type\n */\n isType = (value) => {\n return this.#isThisInternalType(value);\n };\n /**\n * @param value Input value expected to be an instance of this opaque type\n * @throws If the value is not an instance of this opaque type or is of an unsupported version\n * @returns The internal version of the opaque type\n */\n toInternal = (value) => {\n if (!this.#isThisInternalType(value)) {\n throw new TypeError(\n `Invalid opaque type, expected '${this.#type}', but got '${this.#stringifyUnknown(value)}'`\n );\n }\n if (!this.#versions.has(value.version)) {\n const versions = Array.from(this.#versions).map(this.#stringifyVersion);\n if (versions.length > 1) {\n versions[versions.length - 1] = `or ${versions[versions.length - 1]}`;\n }\n const expected = versions.length > 2 ? versions.join(\", \") : versions.join(\" \");\n throw new TypeError(\n `Invalid opaque type instance, got version ${this.#stringifyVersion(\n value.version\n )}, expected ${expected}`\n );\n }\n return value;\n };\n /**\n * Creates an instance of the opaque type, returning the public type.\n *\n * @param version The version of the instance to create\n * @param value The remaining public and internal properties of the instance\n * @returns An instance of the opaque type\n */\n createInstance(version, props) {\n return Object.assign(props, {\n $$type: this.#type,\n ...version && { version }\n });\n }\n #isThisInternalType(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n return value.$$type === this.#type;\n }\n #stringifyUnknown(value) {\n if (typeof value !== \"object\") {\n return `<${typeof value}>`;\n }\n if (value === null) {\n return \"<null>\";\n }\n if (\"$$type\" in value) {\n return String(value.$$type);\n }\n return String(value);\n }\n #stringifyVersion = (version) => {\n return version ? `'${version}'` : \"undefined\";\n };\n}\n\nexport { OpaqueType };\n//# sourceMappingURL=OpaqueType.esm.js.map\n","import { OpaqueType } from '../../../opaque-internal/src/OpaqueType.esm.js';\n\nconst OpaqueExtensionDefinition = OpaqueType.create({\n type: \"@backstage/ExtensionDefinition\",\n versions: [\"v1\", \"v2\"]\n});\n\nexport { OpaqueExtensionDefinition };\n//# sourceMappingURL=InternalExtensionDefinition.esm.js.map\n","import { resolveInputOverrides } from './resolveInputOverrides.esm.js';\nimport { createSchemaFromZod } from '../schema/createSchemaFromZod.esm.js';\nimport { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\nimport { createExtensionDataContainer } from '../frontend-internal/src/wiring/createExtensionDataContainer.esm.js';\nimport '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\n\nconst ctxParamsSymbol = Symbol(\"params\");\nfunction createExtension(options) {\n const schemaDeclaration = options.config?.schema;\n const configSchema = schemaDeclaration && createSchemaFromZod(\n (innerZ) => innerZ.object(\n Object.fromEntries(\n Object.entries(schemaDeclaration).map(([k, v]) => [k, v(innerZ)])\n )\n )\n );\n return OpaqueExtensionDefinition.createInstance(\"v2\", {\n T: void 0,\n kind: options.kind,\n name: options.name,\n attachTo: options.attachTo,\n disabled: options.disabled ?? false,\n inputs: options.inputs ?? {},\n output: options.output,\n configSchema,\n factory: options.factory,\n toString() {\n const parts = [];\n if (options.kind) {\n parts.push(`kind=${options.kind}`);\n }\n if (options.name) {\n parts.push(`name=${options.name}`);\n }\n parts.push(\n `attachTo=${[options.attachTo].flat().map((a) => `${a.id}@${a.input}`).join(\"+\")}`\n );\n return `ExtensionDefinition{${parts.join(\",\")}}`;\n },\n override(overrideOptions) {\n if (!Array.isArray(options.output)) {\n throw new Error(\n \"Cannot override an extension that is not declared using the new format with outputs as an array\"\n );\n }\n if (overrideOptions.output && !overrideOptions.factory) {\n throw new Error(\n \"Refused to override output without also overriding factory\"\n );\n }\n if (overrideOptions.params && overrideOptions.factory) {\n throw new Error(\n \"Refused to override params and factory at the same time\"\n );\n }\n return createExtension({\n kind: options.kind,\n name: options.name,\n attachTo: overrideOptions.attachTo ?? options.attachTo,\n disabled: overrideOptions.disabled ?? options.disabled,\n inputs: { ...overrideOptions.inputs, ...options.inputs },\n output: overrideOptions.output ?? options.output,\n config: options.config || overrideOptions.config ? {\n schema: {\n ...options.config?.schema,\n ...overrideOptions.config?.schema\n }\n } : void 0,\n factory: ({ node, apis, config, inputs }) => {\n if (!overrideOptions.factory) {\n return options.factory({\n node,\n apis,\n config,\n inputs,\n [ctxParamsSymbol]: overrideOptions.params\n });\n }\n const parentResult = overrideOptions.factory(\n (innerContext) => {\n return createExtensionDataContainer(\n options.factory({\n node,\n apis,\n config: innerContext?.config ?? config,\n inputs: resolveInputOverrides(\n options.inputs,\n inputs,\n innerContext?.inputs\n ),\n [ctxParamsSymbol]: innerContext?.params\n }),\n \"original extension factory\",\n options.output\n );\n },\n {\n node,\n apis,\n config,\n inputs\n }\n );\n if (typeof parentResult !== \"object\" || !parentResult?.[Symbol.iterator]) {\n throw new Error(\n \"extension factory override did not provide an iterable object\"\n );\n }\n const deduplicatedResult = /* @__PURE__ */ new Map();\n for (const item of parentResult) {\n deduplicatedResult.set(item.id, item);\n }\n return deduplicatedResult.values();\n }\n });\n }\n });\n}\n\nexport { createExtension, ctxParamsSymbol };\n//# sourceMappingURL=createExtension.esm.js.map\n","import { createExtension, ctxParamsSymbol } from './createExtension.esm.js';\nimport { resolveInputOverrides } from './resolveInputOverrides.esm.js';\nimport { OpaqueType } from '../opaque-internal/src/OpaqueType.esm.js';\nimport { createExtensionDataContainer } from '../frontend-internal/src/wiring/createExtensionDataContainer.esm.js';\n\nconst OpaqueBlueprintParams = OpaqueType.create({\n type: \"@backstage/BlueprintParams\",\n versions: [\"v1\"]\n});\nfunction createExtensionBlueprintParams(params) {\n return OpaqueBlueprintParams.createInstance(\"v1\", { T: null, params });\n}\nfunction unwrapParamsFactory(params, defineParams, kind) {\n const paramDefinition = params(defineParams);\n try {\n return OpaqueBlueprintParams.toInternal(paramDefinition).params;\n } catch (e) {\n throw new TypeError(\n `Invalid invocation of blueprint with kind '${kind}', the parameter definition callback function did not return a valid parameter definition object; Caused by: ${e.message}`\n );\n }\n}\nfunction unwrapParams(params, ctx, defineParams, kind) {\n const overrideParams = ctx[ctxParamsSymbol];\n if (defineParams) {\n if (overrideParams) {\n if (typeof overrideParams !== \"function\") {\n throw new TypeError(\n `Invalid extension override of blueprint with kind '${kind}', the override params were passed as a plain object, but this blueprint requires them to be passed in callback form`\n );\n }\n return unwrapParamsFactory(overrideParams, defineParams, kind);\n }\n if (typeof params !== \"function\") {\n throw new TypeError(\n `Invalid invocation of blueprint with kind '${kind}', the parameters where passed as a plain object, but this blueprint requires them to be passed in callback form`\n );\n }\n return unwrapParamsFactory(params, defineParams, kind);\n }\n const base = typeof params === \"function\" ? unwrapParamsFactory(\n params,\n createExtensionBlueprintParams,\n kind\n ) : params;\n const overrides = typeof overrideParams === \"function\" ? unwrapParamsFactory(\n overrideParams,\n createExtensionBlueprintParams,\n kind\n ) : overrideParams;\n return {\n ...base,\n ...overrides\n };\n}\nfunction createExtensionBlueprint(options) {\n const defineParams = options.defineParams;\n return {\n dataRefs: options.dataRefs,\n make(args) {\n return createExtension({\n kind: options.kind,\n name: args.name,\n attachTo: args.attachTo ?? options.attachTo,\n disabled: args.disabled ?? options.disabled,\n inputs: options.inputs,\n output: options.output,\n config: options.config,\n factory: (ctx) => options.factory(\n unwrapParams(args.params, ctx, defineParams, options.kind),\n ctx\n )\n });\n },\n makeWithOverrides(args) {\n return createExtension({\n kind: options.kind,\n name: args.name,\n attachTo: args.attachTo ?? options.attachTo,\n disabled: args.disabled ?? options.disabled,\n inputs: { ...args.inputs, ...options.inputs },\n output: args.output ?? options.output,\n config: options.config || args.config ? {\n schema: {\n ...options.config?.schema,\n ...args.config?.schema\n }\n } : void 0,\n factory: (ctx) => {\n const { node, config, inputs, apis } = ctx;\n return args.factory(\n (innerParams, innerContext) => {\n return createExtensionDataContainer(\n options.factory(\n unwrapParams(innerParams, ctx, defineParams, options.kind),\n {\n apis,\n node,\n config: innerContext?.config ?? config,\n inputs: resolveInputOverrides(\n options.inputs,\n inputs,\n innerContext?.inputs\n )\n }\n ),\n \"original blueprint factory\",\n options.output\n );\n },\n {\n apis,\n node,\n config,\n inputs\n }\n );\n }\n });\n }\n };\n}\n\nexport { createExtensionBlueprint, createExtensionBlueprintParams };\n//# sourceMappingURL=createExtensionBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint, createExtensionBlueprintParams } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst factoryDataRef = createExtensionDataRef().with({\n id: \"core.analytics.factory\"\n});\nconst AnalyticsImplementationBlueprint = createExtensionBlueprint({\n kind: \"analytics\",\n attachTo: [{ id: \"api:app/analytics\", input: \"implementations\" }],\n output: [factoryDataRef],\n dataRefs: {\n factory: factoryDataRef\n },\n defineParams: (params) => createExtensionBlueprintParams(params),\n *factory(params) {\n yield factoryDataRef(params);\n }\n});\n\nexport { AnalyticsImplementationBlueprint };\n//# sourceMappingURL=AnalyticsImplementationBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint, createExtensionBlueprintParams } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst factoryDataRef = createExtensionDataRef().with({\n id: \"core.api.factory\"\n});\nconst ApiBlueprint = createExtensionBlueprint({\n kind: \"api\",\n attachTo: { id: \"root\", input: \"apis\" },\n output: [factoryDataRef],\n dataRefs: {\n factory: factoryDataRef\n },\n defineParams: (params) => createExtensionBlueprintParams(params),\n *factory(params) {\n yield factoryDataRef(params);\n }\n});\n\nexport { ApiBlueprint };\n//# sourceMappingURL=ApiBlueprint.esm.js.map\n","import { createExtensionDataRef } from './createExtensionDataRef.esm.js';\n\nconst coreExtensionData = {\n reactElement: createExtensionDataRef().with({\n id: \"core.reactElement\"\n }),\n routePath: createExtensionDataRef().with({ id: \"core.routing.path\" }),\n routeRef: createExtensionDataRef().with({ id: \"core.routing.ref\" })\n};\n\nexport { coreExtensionData };\n//# sourceMappingURL=coreExtensionData.esm.js.map\n","import { coreExtensionData } from '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst AppRootElementBlueprint = createExtensionBlueprint({\n kind: \"app-root-element\",\n attachTo: { id: \"app/root\", input: \"elements\" },\n output: [coreExtensionData.reactElement],\n *factory(params) {\n yield coreExtensionData.reactElement(params.element);\n }\n});\n\nexport { AppRootElementBlueprint };\n//# sourceMappingURL=AppRootElementBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"app.root.wrapper\" });\nconst AppRootWrapperBlueprint = createExtensionBlueprint({\n kind: \"app-root-wrapper\",\n attachTo: { id: \"app/root\", input: \"wrappers\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory(params) {\n yield componentDataRef(params.component);\n }\n});\n\nexport { AppRootWrapperBlueprint };\n//# sourceMappingURL=AppRootWrapperBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst iconsDataRef = createExtensionDataRef().with({ id: \"core.icons\" });\nconst IconBundleBlueprint = createExtensionBlueprint({\n kind: \"icon-bundle\",\n attachTo: { id: \"api:app/icons\", input: \"icons\" },\n output: [iconsDataRef],\n factory: (params) => [\n iconsDataRef(params.icons)\n ],\n dataRefs: {\n icons: iconsDataRef\n }\n});\n\nexport { IconBundleBlueprint };\n//# sourceMappingURL=IconBundleBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({\n id: \"core.nav-content.component\"\n});\nconst NavContentBlueprint = createExtensionBlueprint({\n kind: \"nav-content\",\n attachTo: { id: \"app/nav\", input: \"content\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory(params) {\n yield componentDataRef(params.component);\n }\n});\n\nexport { NavContentBlueprint };\n//# sourceMappingURL=NavContentBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst targetDataRef = createExtensionDataRef().with({ id: \"core.nav-item.target\" });\nconst NavItemBlueprint = createExtensionBlueprint({\n kind: \"nav-item\",\n attachTo: { id: \"app/nav\", input: \"items\" },\n output: [targetDataRef],\n dataRefs: {\n target: targetDataRef\n },\n factory: ({\n icon,\n routeRef,\n title\n }, { config }) => [\n targetDataRef({\n title: config.title ?? title,\n icon,\n routeRef\n })\n ],\n config: {\n schema: {\n title: (z) => z.string().optional()\n }\n }\n});\n\nexport { NavItemBlueprint };\n//# sourceMappingURL=NavItemBlueprint.esm.js.map\n","import { OpaqueType } from '../../../opaque-internal/src/OpaqueType.esm.js';\n\nconst OpaqueSwappableComponentRef = OpaqueType.create({\n versions: [\"v1\"],\n type: \"@backstage/SwappableComponentRef\"\n});\n\nexport { OpaqueSwappableComponentRef };\n//# sourceMappingURL=InternalSwappableComponentRef.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { swappableComponentsApiRef } from '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport { lazy } from 'react';\nimport { OpaqueSwappableComponentRef } from '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\nimport '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\n\nconst useComponentRefApi = () => {\n try {\n return useApi(swappableComponentsApiRef);\n } catch (e) {\n return void 0;\n }\n};\nfunction createSwappableComponent(options) {\n const FallbackComponent = (p) => /* @__PURE__ */ jsx(\"div\", { \"data-testid\": options.id, ...p });\n const ref = OpaqueSwappableComponentRef.createInstance(\"v1\", {\n id: options.id,\n TProps: null,\n TExternalProps: null,\n toString() {\n return `SwappableComponentRef{id=${options.id}}`;\n },\n defaultComponent: lazy(async () => {\n const Component = await options.loader?.() ?? FallbackComponent;\n return { default: Component };\n }),\n transformProps: options.transformProps\n });\n const ComponentRefImpl = (props) => {\n const api = useComponentRefApi();\n if (!api) {\n const internalRef = OpaqueSwappableComponentRef.toInternal(ref);\n const Component2 = internalRef.defaultComponent;\n const innerProps = internalRef.transformProps?.(props) ?? props;\n return /* @__PURE__ */ jsx(Component2, { ...innerProps });\n }\n const Component = api.getComponent(ref);\n return /* @__PURE__ */ jsx(Component, { ...props });\n };\n Object.assign(ComponentRefImpl, { ref });\n return ComponentRefImpl;\n}\n\nexport { createSwappableComponent };\n//# sourceMappingURL=createSwappableComponent.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { createSwappableComponent } from './createSwappableComponent.esm.js';\n\nconst Progress = createSwappableComponent({\n id: \"core-progress\"\n});\nconst NotFoundErrorPage = createSwappableComponent({\n id: \"core-not-found-error-page\"\n});\nconst ErrorDisplay = createSwappableComponent({\n id: \"core-error-display\",\n loader: () => (props) => /* @__PURE__ */ jsx(\"div\", { \"data-testid\": \"core-error-display\", children: props.error.message })\n});\n\nexport { ErrorDisplay, NotFoundErrorPage, Progress };\n//# sourceMappingURL=DefaultSwappableComponents.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { Component } from 'react';\nimport { ErrorDisplay } from './DefaultSwappableComponents.esm.js';\n\nclass ErrorBoundary extends Component {\n static getDerivedStateFromError(error) {\n return { error };\n }\n state = { error: void 0 };\n handleErrorReset = () => {\n this.setState({ error: void 0 });\n };\n render() {\n const { error } = this.state;\n const { plugin, children } = this.props;\n if (error) {\n return /* @__PURE__ */ jsx(\n ErrorDisplay,\n {\n plugin,\n error,\n resetError: this.handleErrorReset\n }\n );\n }\n return children;\n }\n}\n\nexport { ErrorBoundary };\n//# sourceMappingURL=ErrorBoundary.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\ngetOrCreateGlobalSingleton(\n \"core-plugin-api:analytics-tracker-events\",\n () => ({\n mostRecentGatheredNavigation: void 0,\n mostRecentRoutableExtensionRender: void 0,\n beforeUnloadRegistered: false\n })\n);\nconst routableExtensionRenderedEvent = \"_ROUTABLE-EXTENSION-RENDERED\";\n\nexport { routableExtensionRenderedEvent };\n//# sourceMappingURL=Tracker.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { createVersionedContext, createVersionedValueMap, useVersionedContext } from '@backstage/version-bridge';\n\nconst CONTEXT_KEY = \"app-node-context\";\nconst AppNodeContext = createVersionedContext(CONTEXT_KEY);\nfunction AppNodeProvider({\n node,\n children\n}) {\n const versionedValue = createVersionedValueMap({ 1: { node } });\n return /* @__PURE__ */ jsx(AppNodeContext.Provider, { value: versionedValue, children });\n}\nfunction useAppNode() {\n const versionedContext = useVersionedContext(CONTEXT_KEY);\n if (!versionedContext) {\n return void 0;\n }\n const context = versionedContext.atVersion(1);\n if (!context) {\n throw new Error(\"AppNodeContext v1 not available\");\n }\n return context.node;\n}\n\nexport { AppNodeProvider, useAppNode };\n//# sourceMappingURL=AppNodeProvider.esm.js.map\n","import { jsx, Fragment } from 'react/jsx-runtime';\nimport { lazy, Suspense, useEffect } from 'react';\nimport { AnalyticsContext, useAnalytics } from '@backstage/core-plugin-api';\nimport { ErrorBoundary } from './ErrorBoundary.esm.js';\nimport { routableExtensionRenderedEvent } from '../core-plugin-api/src/analytics/Tracker.esm.js';\nimport { coreExtensionData } from '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport '../wiring/createExtensionBlueprint.esm.js';\nimport { AppNodeProvider } from './AppNodeProvider.esm.js';\nimport { Progress } from './DefaultSwappableComponents.esm.js';\n\nconst RouteTracker = (props) => {\n const { enabled, children } = props;\n const analytics = useAnalytics();\n useEffect(() => {\n if (enabled) {\n analytics.captureEvent(routableExtensionRenderedEvent, \"\");\n }\n }, [analytics, enabled]);\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction ExtensionBoundary(props) {\n const { node, children } = props;\n const hasRoutePathOutput = Boolean(\n node.instance?.getData(coreExtensionData.routePath)\n );\n const plugin = node.spec.plugin;\n const attributes = {\n extensionId: node.spec.id,\n pluginId: node.spec.plugin?.id ?? \"app\"\n };\n return /* @__PURE__ */ jsx(AppNodeProvider, { node, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Progress, {}), children: /* @__PURE__ */ jsx(ErrorBoundary, { plugin, children: /* @__PURE__ */ jsx(AnalyticsContext, { attributes, children: /* @__PURE__ */ jsx(RouteTracker, { enabled: hasRoutePathOutput, children }) }) }) }) });\n}\n((ExtensionBoundary2) => {\n function lazy$1(appNode, loader) {\n const ExtensionComponent = lazy(\n () => loader().then((element) => ({ default: () => element }))\n );\n return /* @__PURE__ */ jsx(ExtensionBoundary2, { node: appNode, children: /* @__PURE__ */ jsx(ExtensionComponent, {}) });\n }\n ExtensionBoundary2.lazy = lazy$1;\n function lazyComponent(appNode, loader) {\n const ExtensionComponent = lazy(\n () => loader().then((Component) => ({ default: Component }))\n );\n return (props) => /* @__PURE__ */ jsx(ExtensionBoundary2, { node: appNode, children: /* @__PURE__ */ jsx(ExtensionComponent, { ...props }) });\n }\n ExtensionBoundary2.lazyComponent = lazyComponent;\n})(ExtensionBoundary || (ExtensionBoundary = {}));\n\nexport { ExtensionBoundary };\n//# sourceMappingURL=ExtensionBoundary.esm.js.map\n","import { coreExtensionData } from '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\nimport { ExtensionBoundary } from '../components/ExtensionBoundary.esm.js';\nimport 'react/jsx-runtime';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport '@backstage/core-plugin-api';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport 'react';\nimport '../components/AppNodeProvider.esm.js';\nimport '../components/DefaultSwappableComponents.esm.js';\n\nconst PageBlueprint = createExtensionBlueprint({\n kind: \"page\",\n attachTo: { id: \"app/routes\", input: \"routes\" },\n output: [\n coreExtensionData.routePath,\n coreExtensionData.reactElement,\n coreExtensionData.routeRef.optional()\n ],\n config: {\n schema: {\n path: (z) => z.string().optional()\n }\n },\n *factory(params, { config, node }) {\n yield coreExtensionData.routePath(config.path ?? params.path);\n yield coreExtensionData.reactElement(\n ExtensionBoundary.lazy(node, params.loader)\n );\n if (params.routeRef) {\n yield coreExtensionData.routeRef(params.routeRef);\n }\n }\n});\n\nexport { PageBlueprint };\n//# sourceMappingURL=PageBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"app.router.wrapper\" });\nconst RouterBlueprint = createExtensionBlueprint({\n kind: \"app-router-component\",\n attachTo: { id: \"app/root\", input: \"router\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory(params) {\n yield componentDataRef(params.component);\n }\n});\n\nexport { RouterBlueprint };\n//# sourceMappingURL=RouterBlueprint.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { lazy } from 'react';\nimport '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\nimport { ExtensionBoundary } from '../components/ExtensionBoundary.esm.js';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport '@backstage/core-plugin-api';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport '../components/AppNodeProvider.esm.js';\nimport '../components/DefaultSwappableComponents.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"core.sign-in-page.component\" });\nconst SignInPageBlueprint = createExtensionBlueprint({\n kind: \"sign-in-page\",\n attachTo: { id: \"app/root\", input: \"signInPage\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory({\n loader\n }, { node }) {\n const ExtensionComponent = lazy(\n () => loader().then((component) => ({ default: component }))\n );\n yield componentDataRef((props) => /* @__PURE__ */ jsx(ExtensionBoundary, { node, children: /* @__PURE__ */ jsx(ExtensionComponent, { ...props }) }));\n }\n});\n\nexport { SignInPageBlueprint };\n//# sourceMappingURL=SignInPageBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst themeDataRef = createExtensionDataRef().with({\n id: \"core.theme.theme\"\n});\nconst ThemeBlueprint = createExtensionBlueprint({\n kind: \"theme\",\n attachTo: { id: \"api:app/app-theme\", input: \"themes\" },\n output: [themeDataRef],\n dataRefs: {\n theme: themeDataRef\n },\n factory: ({ theme }) => [themeDataRef(theme)]\n});\n\nexport { ThemeBlueprint };\n//# sourceMappingURL=ThemeBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst translationDataRef = createExtensionDataRef().with({ id: \"core.translation.translation\" });\nconst TranslationBlueprint = createExtensionBlueprint({\n kind: \"translation\",\n attachTo: { id: \"api:app/translations\", input: \"translations\" },\n output: [translationDataRef],\n dataRefs: {\n translation: translationDataRef\n },\n factory: ({\n resource\n }) => [translationDataRef(resource)]\n});\n\nexport { TranslationBlueprint };\n//# sourceMappingURL=TranslationBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint, createExtensionBlueprintParams } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"core.swappableComponent\" });\nconst SwappableComponentBlueprint = createExtensionBlueprint({\n kind: \"component\",\n attachTo: { id: \"api:app/swappable-components\", input: \"components\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n defineParams(params) {\n return createExtensionBlueprintParams(params);\n },\n factory: (params) => [\n componentDataRef({\n ref: params.component.ref,\n loader: params.loader\n })\n ]\n});\n\nexport { SwappableComponentBlueprint, componentDataRef };\n//# sourceMappingURL=SwappableComponentBlueprint.esm.js.map\n","const MESSAGE_MARKER = \"eHgtF5hmbrXyiEvo\";\nfunction describeParentCallSite(ErrorConstructor = Error) {\n const { stack } = new ErrorConstructor(MESSAGE_MARKER);\n if (!stack) {\n return \"<unknown>\";\n }\n const startIndex = stack.includes(MESSAGE_MARKER) ? stack.indexOf(\"\\n\") + 1 : 0;\n const secondEntryStart = stack.indexOf(\"\\n\", stack.indexOf(\"\\n\", startIndex) + 1) + 1;\n const secondEntryEnd = stack.indexOf(\"\\n\", secondEntryStart);\n const line = stack.substring(secondEntryStart, secondEntryEnd).trim();\n if (!line) {\n return \"unknown\";\n }\n if (line.includes(\"(\")) {\n return line.substring(line.indexOf(\"(\") + 1, line.indexOf(\")\"));\n }\n if (line.includes(\"@\")) {\n return line.substring(line.indexOf(\"@\") + 1);\n }\n return line;\n}\n\nexport { describeParentCallSite };\n//# sourceMappingURL=describeParentCallSite.esm.js.map\n","import { describeParentCallSite } from './describeParentCallSite.esm.js';\n\nfunction toInternalRouteRef(resource) {\n const r = resource;\n if (r.$$type !== \"@backstage/RouteRef\") {\n throw new Error(`Invalid RouteRef, bad type '${r.$$type}'`);\n }\n return r;\n}\nclass RouteRefImpl {\n constructor(params = [], creationSite, alias) {\n this.params = params;\n this.#params = params;\n this.#creationSite = creationSite;\n this.#alias = alias;\n }\n $$type = \"@backstage/RouteRef\";\n version = \"v1\";\n #id;\n #params;\n #creationSite;\n #alias;\n getParams() {\n return this.#params;\n }\n get alias() {\n return this.#alias;\n }\n getDescription() {\n if (this.#id) {\n return this.#id;\n }\n return `created at '${this.#creationSite}'`;\n }\n get #name() {\n return this.$$type.slice(\"@backstage/\".length);\n }\n setId(id) {\n if (!id) {\n throw new Error(`${this.#name} id must be a non-empty string`);\n }\n if (this.#id && this.#id !== id) {\n throw new Error(\n `${this.#name} was referenced twice as both '${this.#id}' and '${id}'`\n );\n }\n this.#id = id;\n }\n toString() {\n return `${this.#name}{${this.getDescription()}}`;\n }\n}\nfunction createRouteRef(config) {\n return new RouteRefImpl(\n config?.params,\n describeParentCallSite(),\n config?.aliasFor\n );\n}\n\nexport { RouteRefImpl, createRouteRef, toInternalRouteRef };\n//# sourceMappingURL=RouteRef.esm.js.map\n","import { toInternalRouteRef } from './RouteRef.esm.js';\n\nconst PARAM_PATTERN = /^\\w+$/;\nclass SubRouteRefImpl {\n constructor(path, params, parent) {\n this.path = path;\n this.#params = params;\n this.#parent = parent;\n }\n $$type = \"@backstage/SubRouteRef\";\n version = \"v1\";\n #params;\n #parent;\n getParams() {\n return this.#params;\n }\n getParent() {\n return this.#parent;\n }\n getDescription() {\n const parent = toInternalRouteRef(this.#parent);\n return `at ${this.path} with parent ${parent.getDescription()}`;\n }\n toString() {\n return `SubRouteRef{${this.getDescription()}}`;\n }\n}\nfunction createSubRouteRef(config) {\n const { path, parent } = config;\n const internalParent = toInternalRouteRef(parent);\n const parentParams = internalParent.getParams();\n const pathParams = path.split(\"/\").filter((p) => p.startsWith(\":\")).map((p) => p.substring(1));\n const params = [...parentParams, ...pathParams];\n if (parentParams.some((p) => pathParams.includes(p))) {\n throw new Error(\n \"SubRouteRef may not have params that overlap with its parent\"\n );\n }\n if (!path.startsWith(\"/\")) {\n throw new Error(`SubRouteRef path must start with '/', got '${path}'`);\n }\n if (path.endsWith(\"/\")) {\n throw new Error(`SubRouteRef path must not end with '/', got '${path}'`);\n }\n for (const param of pathParams) {\n if (!PARAM_PATTERN.test(param)) {\n throw new Error(`SubRouteRef path has invalid param, got '${param}'`);\n }\n }\n const subRouteRef = new SubRouteRefImpl(\n path,\n params,\n parent\n );\n return subRouteRef;\n}\n\nexport { SubRouteRefImpl, createSubRouteRef };\n//# sourceMappingURL=SubRouteRef.esm.js.map\n","import { RouteRefImpl } from './RouteRef.esm.js';\nimport { describeParentCallSite } from './describeParentCallSite.esm.js';\n\nclass ExternalRouteRefImpl extends RouteRefImpl {\n constructor(params = [], defaultTarget, creationSite) {\n super(params, creationSite);\n this.params = params;\n this.defaultTarget = defaultTarget;\n }\n $$type = \"@backstage/ExternalRouteRef\";\n getDefaultTarget() {\n return this.defaultTarget;\n }\n}\nfunction createExternalRouteRef(options) {\n return new ExternalRouteRefImpl(\n options?.params,\n options?.defaultTarget,\n describeParentCallSite()\n );\n}\n\nexport { createExternalRouteRef };\n//# sourceMappingURL=ExternalRouteRef.esm.js.map\n","import { useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport { useApi } from '@backstage/core-plugin-api';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport { routeResolutionApiRef } from '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\n\nfunction useRouteRef(routeRef) {\n const { pathname } = useLocation();\n const routeResolutionApi = useApi(routeResolutionApiRef);\n const routeFunc = useMemo(\n () => routeResolutionApi.resolve(routeRef, { sourcePath: pathname }),\n [routeResolutionApi, routeRef, pathname]\n );\n return routeFunc;\n}\n\nexport { useRouteRef };\n//# sourceMappingURL=useRouteRef.esm.js.map\n","import { useParams } from 'react-router-dom';\n\nfunction useRouteRefParams(_routeRef) {\n return useParams();\n}\n\nexport { useRouteRefParams };\n//# sourceMappingURL=useRouteRefParams.esm.js.map\n","function createExtensionInput(extensionData, config) {\n if (process.env.NODE_ENV !== \"production\") {\n if (Array.isArray(extensionData)) {\n const seen = /* @__PURE__ */ new Set();\n const duplicates = [];\n for (const dataRef of extensionData) {\n if (seen.has(dataRef.id)) {\n duplicates.push(dataRef.id);\n } else {\n seen.add(dataRef.id);\n }\n }\n if (duplicates.length > 0) {\n throw new Error(\n `ExtensionInput may not have duplicate data refs: '${duplicates.join(\n \"', '\"\n )}'`\n );\n }\n }\n }\n return {\n $$type: \"@backstage/ExtensionInput\",\n extensionData,\n config: {\n singleton: Boolean(config?.singleton),\n optional: Boolean(config?.optional)\n },\n replaces: config?.replaces\n };\n}\n\nexport { createExtensionInput };\n//# sourceMappingURL=createExtensionInput.esm.js.map\n","import { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\n\nfunction resolveExtensionDefinition(definition, context) {\n const internalDefinition = OpaqueExtensionDefinition.toInternal(definition);\n const {\n name,\n kind,\n namespace: _skip1,\n override: _skip2,\n ...rest\n } = internalDefinition;\n const namespace = internalDefinition.namespace ?? context?.namespace;\n const namePart = name && namespace ? `${namespace}/${name}` : namespace || name;\n if (!namePart) {\n throw new Error(\n `Extension must declare an explicit namespace or name as it could not be resolved from context, kind=${kind} namespace=${namespace} name=${name}`\n );\n }\n const id = kind ? `${kind}:${namePart}` : namePart;\n return {\n ...rest,\n $$type: \"@backstage/Extension\",\n version: internalDefinition.version,\n id,\n toString() {\n return `Extension{id=${id}}`;\n }\n };\n}\n\nexport { resolveExtensionDefinition };\n//# sourceMappingURL=resolveExtensionDefinition.esm.js.map\n","import { OpaqueType } from '../../../opaque-internal/src/OpaqueType.esm.js';\n\nconst OpaqueFrontendPlugin = OpaqueType.create({\n type: \"@backstage/FrontendPlugin\",\n versions: [\"v1\"]\n});\n\nexport { OpaqueFrontendPlugin };\n//# sourceMappingURL=InternalFrontendPlugin.esm.js.map\n","import { resolveExtensionDefinition } from './resolveExtensionDefinition.esm.js';\nimport { OpaqueFrontendPlugin } from '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\nimport '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\n\nfunction createFrontendPlugin(options) {\n const pluginId = options.pluginId;\n const extensions = new Array();\n const extensionDefinitionsById = /* @__PURE__ */ new Map();\n for (const def of options.extensions ?? []) {\n const internal = OpaqueExtensionDefinition.toInternal(def);\n const ext = resolveExtensionDefinition(def, { namespace: pluginId });\n extensions.push(ext);\n extensionDefinitionsById.set(ext.id, {\n ...internal,\n namespace: pluginId\n });\n }\n if (extensions.length !== extensionDefinitionsById.size) {\n const extensionIds = extensions.map((e) => e.id);\n const duplicates = Array.from(\n new Set(\n extensionIds.filter((id, index) => extensionIds.indexOf(id) !== index)\n )\n );\n throw new Error(\n `Plugin '${pluginId}' provided duplicate extensions: ${duplicates.join(\n \", \"\n )}`\n );\n }\n return OpaqueFrontendPlugin.createInstance(\"v1\", {\n id: pluginId,\n routes: options.routes ?? {},\n externalRoutes: options.externalRoutes ?? {},\n featureFlags: options.featureFlags ?? [],\n extensions,\n infoOptions: options.info,\n // This method is overridden when the plugin instance is installed in an app\n async info() {\n throw new Error(\n `Attempted to load plugin info for plugin '${pluginId}', but the plugin instance is not installed in an app`\n );\n },\n getExtension(id) {\n const ext = extensionDefinitionsById.get(id);\n if (!ext) {\n throw new Error(\n `Attempted to get non-existent extension '${id}' from plugin '${pluginId}'`\n );\n }\n return ext;\n },\n toString() {\n return `Plugin{id=${pluginId}}`;\n },\n withOverrides(overrides) {\n const overriddenExtensionIds = new Set(\n overrides.extensions.map(\n (e) => resolveExtensionDefinition(e, { namespace: pluginId }).id\n )\n );\n const nonOverriddenExtensions = (options.extensions ?? []).filter(\n (e) => !overriddenExtensionIds.has(\n resolveExtensionDefinition(e, { namespace: pluginId }).id\n )\n );\n return createFrontendPlugin({\n ...options,\n pluginId,\n extensions: [...nonOverriddenExtensions, ...overrides.extensions],\n info: {\n ...options.info,\n ...overrides.info\n }\n });\n }\n });\n}\n\nexport { createFrontendPlugin };\n//# sourceMappingURL=createFrontendPlugin.esm.js.map\n","import { resolveExtensionDefinition } from './resolveExtensionDefinition.esm.js';\nimport { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\n\nfunction createFrontendModule(options) {\n const { pluginId } = options;\n const extensions = new Array();\n const extensionDefinitionsById = /* @__PURE__ */ new Map();\n for (const def of options.extensions ?? []) {\n const internal = OpaqueExtensionDefinition.toInternal(def);\n const ext = resolveExtensionDefinition(def, { namespace: pluginId });\n extensions.push(ext);\n extensionDefinitionsById.set(ext.id, {\n ...internal,\n namespace: pluginId\n });\n }\n if (extensions.length !== extensionDefinitionsById.size) {\n const extensionIds = extensions.map((e) => e.id);\n const duplicates = Array.from(\n new Set(\n extensionIds.filter((id, index) => extensionIds.indexOf(id) !== index)\n )\n );\n throw new Error(\n `Plugin '${pluginId}' provided duplicate extensions: ${duplicates.join(\n \", \"\n )}`\n );\n }\n return {\n $$type: \"@backstage/FrontendModule\",\n version: \"v1\",\n pluginId,\n featureFlags: options.featureFlags ?? [],\n extensions,\n toString() {\n return `Module{pluginId=${pluginId}}`;\n }\n };\n}\n\nexport { createFrontendModule };\n//# sourceMappingURL=createFrontendModule.esm.js.map\n","import { describeParentCallSite } from '../routing/describeParentCallSite.esm.js';\n\nfunction createFrontendFeatureLoader(options) {\n const description = `created at '${describeParentCallSite()}'`;\n return {\n $$type: \"@backstage/FrontendFeatureLoader\",\n version: \"v1\",\n description,\n toString() {\n return `FeatureLoader{description=${description}}`;\n },\n async loader(deps) {\n const it = await options.loader(deps);\n const result = new Array();\n for await (const item of it) {\n if (isFeatureOrLoader(item)) {\n result.push(item);\n } else if (\"default\" in item) {\n result.push(item.default);\n } else {\n throw new Error(`Invalid item \"${item}\"`);\n }\n }\n return result;\n }\n };\n}\nfunction isFeatureOrLoader(obj) {\n if (obj !== null && typeof obj === \"object\" && \"$$type\" in obj) {\n return obj.$$type === \"@backstage/FrontendPlugin\" || obj.$$type === \"@backstage/FrontendModule\" || obj.$$type === \"@backstage/FrontendFeatureLoader\";\n }\n return false;\n}\n\nexport { createFrontendFeatureLoader };\n//# sourceMappingURL=createFrontendFeatureLoader.esm.js.map\n"],"names":["AnalyticsReactContext","createVersionedContext","useAnalyticsContext","theContext","useContext","pluginId","extensionId","theValue","atVersion","Error","AnalyticsContext","options","attributes","children","combinedValue","versionedCombinedValue","createVersionedValueMap","jsx","Provider","value","analyticsApiRef","createApiRef","id","globalEvents","getOrCreateGlobalSingleton","mostRecentGatheredNavigation","mostRecentRoutableExtensionRender","beforeUnloadRegistered","Tracker","constructor","analyticsApi","context","this","addEventListener","captureEvent","once","passive","setContext","action","subject","e","console","warn","useAnalytics","trackerRef","useRef","useApi","error","name","useAnalyticsApi","tracker","current","appTreeApiRef","swappableComponentsApiRef","iconsApiRef","dialogApiRef","routeResolutionApiRef","createExtensionDataRef","createRef","refId","Object","assign","$$type","config","optional","toString","Boolean","with","createExtensionDataContainer","values","contextName","declaredRefs","Symbol","iterator","container","Map","verifyRefs","map","ref","output","delete","set","remainingRefs","Array","from","filter","length","join","get","expectArray","expectItem","resolveInputOverrides","declaredInputs","inputs","inputOverrides","newInputs","hasOwn","declaredInput","providedData","singleton","originalInput","providedContainer","extensionData","node","isArray","withNodesCount","d","data","i","formatIssue","issue","code","unionErrors","issues","message","path","OpaqueType","create","type","Set","versions","TPublic","TInternal","isType","toInternal","TypeError","has","version","expected","createInstance","props","String","OpaqueExtensionDefinition","ctxParamsSymbol","createExtension","schemaDeclaration","schema","configSchema","innerZ","object","fromEntries","entries","k","v","parse","input","result","safeParse","success","createSchemaFromZod","T","kind","attachTo","disabled","factory","parts","push","flat","a","override","overrideOptions","params","apis","parentResult","innerContext","deduplicatedResult","item","OpaqueBlueprintParams","createExtensionBlueprintParams","unwrapParamsFactory","defineParams","paramDefinition","unwrapParams","ctx","overrideParams","createExtensionBlueprint","dataRefs","make","args","makeWithOverrides","innerParams","factoryDataRef","AnalyticsImplementationBlueprint","ApiBlueprint","coreExtensionData","reactElement","routePath","routeRef","AppRootElementBlueprint","element","componentDataRef","AppRootWrapperBlueprint","component","iconsDataRef","IconBundleBlueprint","icons","NavContentBlueprint","targetDataRef","NavItemBlueprint","target","icon","title","z","string","OpaqueSwappableComponentRef","useComponentRefApi","createSwappableComponent","FallbackComponent","p","TProps","TExternalProps","defaultComponent","lazy","async","default","loader","transformProps","ComponentRefImpl","api","internalRef","Component2","innerProps","Component","getComponent","Progress","NotFoundErrorPage","ErrorDisplay","ErrorBoundary","getDerivedStateFromError","state","handleErrorReset","setState","render","plugin","resetError","CONTEXT_KEY","AppNodeContext","AppNodeProvider","versionedValue","useAppNode","versionedContext","useVersionedContext","RouteTracker","enabled","analytics","useEffect","Fragment","ExtensionBoundary","hasRoutePathOutput","instance","getData","spec","Suspense","fallback","ExtensionBoundary2","appNode","ExtensionComponent","then","lazyComponent","PageBlueprint","RouterBlueprint","SignInPageBlueprint","themeDataRef","ThemeBlueprint","theme","translationDataRef","TranslationBlueprint","translation","resource","SwappableComponentBlueprint","MESSAGE_MARKER","describeParentCallSite","ErrorConstructor","stack","startIndex","includes","indexOf","secondEntryStart","secondEntryEnd","line","substring","trim","toInternalRouteRef","r","RouteRefImpl","creationSite","alias","getParams","getDescription","slice","setId","createRouteRef","aliasFor","PARAM_PATTERN","SubRouteRefImpl","parent","getParent","createSubRouteRef","parentParams","pathParams","split","startsWith","some","endsWith","param","test","ExternalRouteRefImpl","defaultTarget","super","getDefaultTarget","createExternalRouteRef","useRouteRef","pathname","useLocation","routeResolutionApi","useMemo","resolve","sourcePath","useRouteRefParams","_routeRef","useParams","createExtensionInput","replaces","resolveExtensionDefinition","definition","internalDefinition","namespace","_skip1","_skip2","rest","namePart","OpaqueFrontendPlugin","createFrontendPlugin","extensions","extensionDefinitionsById","def","internal","ext","size","extensionIds","duplicates","index","routes","externalRoutes","featureFlags","infoOptions","info","getExtension","withOverrides","overrides","overriddenExtensionIds","nonOverriddenExtensions","createFrontendModule","createFrontendFeatureLoader","description","deps","it","isFeatureOrLoader","obj"],"sourceRoot":""}
1
+ {"version":3,"file":"static/1037.25758556.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/analytics/AnalyticsContext.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/AnalyticsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/analytics/Tracker.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/analytics/useAnalytics.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/AppTreeApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/SwappableComponentsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/IconsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/DialogApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/apis/definitions/RouteResolutionApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtensionDataRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/createExtensionDataContainer.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/resolveInputOverrides.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/schema/createSchemaFromZod.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/opaque-internal/src/OpaqueType.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/InternalExtensionDefinition.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtension.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtensionBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/AnalyticsImplementationBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/ApiBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/coreExtensionData.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/AppRootElementBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/AppRootWrapperBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/IconBundleBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/NavContentBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/NavItemBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/createSwappableComponent.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/DefaultSwappableComponents.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/ErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/core-plugin-api/src/analytics/Tracker.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/AppNodeProvider.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/components/ExtensionBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/PageBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/RouterBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/SignInPageBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/ThemeBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/TranslationBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/blueprints/SwappableComponentBlueprint.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/describeParentCallSite.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/RouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/SubRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/ExternalRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/useRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/routing/useRouteRefParams.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createExtensionInput.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/resolveExtensionDefinition.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/frontend-internal/src/wiring/InternalFrontendPlugin.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createFrontendPlugin.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createFrontendModule.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/frontend-plugin-api/dist/wiring/createFrontendFeatureLoader.esm.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\nimport { useContext } from 'react';\n\nconst AnalyticsReactContext = createVersionedContext(\"analytics-context\");\nconst useAnalyticsContext = () => {\n const theContext = useContext(AnalyticsReactContext);\n if (theContext === void 0) {\n return {\n pluginId: \"app\",\n extensionId: \"app\"\n };\n }\n const theValue = theContext.atVersion(1);\n if (theValue === void 0) {\n throw new Error(\"No context found for version 1.\");\n }\n return theValue;\n};\nconst AnalyticsContext = (options) => {\n const { attributes, children } = options;\n const parentValues = useAnalyticsContext();\n const combinedValue = {\n ...parentValues,\n ...attributes\n };\n const versionedCombinedValue = createVersionedValueMap({ 1: combinedValue });\n return /* @__PURE__ */ jsx(AnalyticsReactContext.Provider, { value: versionedCombinedValue, children });\n};\n\nexport { AnalyticsContext, useAnalyticsContext };\n//# sourceMappingURL=AnalyticsContext.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst analyticsApiRef = createApiRef({\n id: \"core.analytics\"\n});\n\nexport { analyticsApiRef };\n//# sourceMappingURL=AnalyticsApi.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\nconst globalEvents = getOrCreateGlobalSingleton(\n \"core-plugin-api:analytics-tracker-events\",\n () => ({\n mostRecentGatheredNavigation: void 0,\n mostRecentRoutableExtensionRender: void 0,\n beforeUnloadRegistered: false\n })\n);\nconst routableExtensionRenderedEvent = \"_ROUTABLE-EXTENSION-RENDERED\";\nclass Tracker {\n constructor(analyticsApi, context = {\n pluginId: \"root\",\n extensionId: \"App\"\n }) {\n this.analyticsApi = analyticsApi;\n this.context = context;\n if (!globalEvents.beforeUnloadRegistered) {\n addEventListener(\n \"beforeunload\",\n () => {\n if (globalEvents.mostRecentGatheredNavigation) {\n this.analyticsApi.captureEvent({\n ...globalEvents.mostRecentGatheredNavigation,\n ...globalEvents.mostRecentRoutableExtensionRender\n });\n globalEvents.mostRecentGatheredNavigation = void 0;\n globalEvents.mostRecentRoutableExtensionRender = void 0;\n }\n },\n { once: true, passive: true }\n );\n globalEvents.beforeUnloadRegistered = true;\n }\n }\n setContext(context) {\n this.context = context;\n }\n captureEvent(action, subject, {\n value,\n attributes\n } = {}) {\n const context = this.context;\n if (action === routableExtensionRenderedEvent) {\n if (globalEvents.mostRecentGatheredNavigation) {\n globalEvents.mostRecentRoutableExtensionRender = {\n context: {\n ...context,\n extensionId: \"App\"\n }\n };\n }\n return;\n }\n if (globalEvents.mostRecentGatheredNavigation) {\n try {\n this.analyticsApi.captureEvent({\n ...globalEvents.mostRecentGatheredNavigation,\n ...globalEvents.mostRecentRoutableExtensionRender\n });\n } catch (e) {\n console.warn(\"Error during analytics event capture. %o\", e);\n }\n globalEvents.mostRecentGatheredNavigation = void 0;\n globalEvents.mostRecentRoutableExtensionRender = void 0;\n }\n if (action === \"navigate\" && context.pluginId === \"root\") {\n globalEvents.mostRecentGatheredNavigation = {\n action,\n subject,\n value,\n attributes,\n context\n };\n return;\n }\n try {\n this.analyticsApi.captureEvent({\n action,\n subject,\n value,\n attributes,\n context\n });\n } catch (e) {\n console.warn(\"Error during analytics event capture. %o\", e);\n }\n }\n}\n\nexport { Tracker, routableExtensionRenderedEvent };\n//# sourceMappingURL=Tracker.esm.js.map\n","import { useApi } from '@backstage/core-plugin-api';\nimport { useAnalyticsContext } from './AnalyticsContext.esm.js';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport { analyticsApiRef } from '../apis/definitions/AnalyticsApi.esm.js';\nimport { useRef } from 'react';\nimport { Tracker } from './Tracker.esm.js';\n\nfunction useAnalyticsApi() {\n try {\n return useApi(analyticsApiRef);\n } catch (error) {\n if (error.name === \"NotImplementedError\") {\n return { captureEvent: () => {\n } };\n }\n throw error;\n }\n}\nfunction useAnalytics() {\n const trackerRef = useRef(null);\n const context = useAnalyticsContext();\n const analyticsApi = useAnalyticsApi();\n function getTracker() {\n if (trackerRef.current === null) {\n trackerRef.current = new Tracker(analyticsApi);\n }\n return trackerRef.current;\n }\n const tracker = getTracker();\n tracker.setContext(context);\n return tracker;\n}\n\nexport { useAnalytics };\n//# sourceMappingURL=useAnalytics.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst appTreeApiRef = createApiRef({ id: \"core.app-tree\" });\n\nexport { appTreeApiRef };\n//# sourceMappingURL=AppTreeApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst swappableComponentsApiRef = createApiRef({\n id: \"core.swappable-components\"\n});\n\nexport { swappableComponentsApiRef };\n//# sourceMappingURL=SwappableComponentsApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst iconsApiRef = createApiRef({\n id: \"core.icons\"\n});\n\nexport { iconsApiRef };\n//# sourceMappingURL=IconsApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst dialogApiRef = createApiRef({\n id: \"core.dialog\"\n});\n\nexport { dialogApiRef };\n//# sourceMappingURL=DialogApi.esm.js.map\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst routeResolutionApiRef = createApiRef({\n id: \"core.route-resolution\"\n});\n\nexport { routeResolutionApiRef };\n//# sourceMappingURL=RouteResolutionApi.esm.js.map\n","function createExtensionDataRef() {\n const createRef = (refId) => Object.assign(\n (value) => ({\n $$type: \"@backstage/ExtensionDataValue\",\n id: refId,\n value\n }),\n {\n id: refId,\n $$type: \"@backstage/ExtensionDataRef\",\n config: {},\n optional() {\n return {\n ...this,\n config: { ...this.config, optional: true }\n };\n },\n toString() {\n const optional = Boolean(this.config.optional);\n return `ExtensionDataRef{id=${refId},optional=${optional}}`;\n }\n }\n );\n return {\n with(options) {\n return createRef(options.id);\n }\n };\n}\n\nexport { createExtensionDataRef };\n//# sourceMappingURL=createExtensionDataRef.esm.js.map\n","function createExtensionDataContainer(values, contextName, declaredRefs) {\n if (typeof values !== \"object\" || !values?.[Symbol.iterator]) {\n throw new Error(`${contextName} did not provide an iterable object`);\n }\n const container = /* @__PURE__ */ new Map();\n const verifyRefs = declaredRefs && new Map(declaredRefs.map((ref) => [ref.id, ref]));\n for (const output of values) {\n if (verifyRefs) {\n if (!verifyRefs.delete(output.id)) {\n throw new Error(\n `extension data '${output.id}' was provided but not declared`\n );\n }\n }\n container.set(output.id, output);\n }\n const remainingRefs = verifyRefs && Array.from(verifyRefs.values()).filter((ref) => !ref.config.optional);\n if (remainingRefs && remainingRefs.length > 0) {\n throw new Error(\n `missing required extension data value(s) '${remainingRefs.map((ref) => ref.id).join(\", \")}'`\n );\n }\n return {\n get(ref) {\n return container.get(ref.id)?.value;\n },\n [Symbol.iterator]() {\n return container.values();\n }\n };\n}\n\nexport { createExtensionDataContainer };\n//# sourceMappingURL=createExtensionDataContainer.esm.js.map\n","import { createExtensionDataContainer } from '../frontend-internal/src/wiring/createExtensionDataContainer.esm.js';\nimport '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\nimport '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\n\nfunction expectArray(value) {\n return value;\n}\nfunction expectItem(value) {\n return value;\n}\nfunction resolveInputOverrides(declaredInputs, inputs, inputOverrides) {\n if (!declaredInputs || !inputs || !inputOverrides) {\n return inputs;\n }\n const newInputs = {};\n for (const name in declaredInputs) {\n if (!Object.hasOwn(declaredInputs, name)) {\n continue;\n }\n const declaredInput = declaredInputs[name];\n const providedData = inputOverrides[name];\n if (declaredInput.config.singleton) {\n const originalInput = expectItem(inputs[name]);\n if (providedData) {\n const providedContainer = createExtensionDataContainer(\n providedData,\n \"extension input override\",\n declaredInput.extensionData\n );\n if (!originalInput) {\n throw new Error(\n `attempted to override data of input '${name}' but it is not present in the original inputs`\n );\n }\n newInputs[name] = Object.assign(providedContainer, {\n node: originalInput.node\n });\n }\n } else {\n const originalInput = expectArray(inputs[name]);\n if (!Array.isArray(providedData)) {\n throw new Error(\n `override data provided for input '${name}' must be an array`\n );\n }\n if (providedData.length === 0) {\n newInputs[name] = [];\n } else {\n const withNodesCount = providedData.filter((d) => \"node\" in d).length;\n if (withNodesCount === 0) {\n if (originalInput.length !== providedData.length) {\n throw new Error(\n `override data provided for input '${name}' must match the length of the original inputs`\n );\n }\n newInputs[name] = providedData.map((data, i) => {\n const providedContainer = createExtensionDataContainer(\n data,\n \"extension input override\",\n declaredInput.extensionData\n );\n return Object.assign(providedContainer, {\n node: originalInput[i].node\n });\n });\n } else if (withNodesCount === providedData.length) {\n newInputs[name] = providedData;\n } else {\n throw new Error(\n `override data for input '${name}' may not mix forwarded inputs with data overrides`\n );\n }\n }\n }\n }\n return newInputs;\n}\n\nexport { resolveInputOverrides };\n//# sourceMappingURL=resolveInputOverrides.esm.js.map\n","import { z } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\n\nfunction createSchemaFromZod(schemaCreator) {\n const schema = schemaCreator(z);\n return {\n // TODO: Types allow z.array etc here but it will break stuff\n parse: (input) => {\n const result = schema.safeParse(input);\n if (result.success) {\n return result.data;\n }\n throw new Error(result.error.issues.map(formatIssue).join(\"; \"));\n },\n // TODO: Verify why we are not compatible with the latest zodToJsonSchema.\n schema: zodToJsonSchema(schema)\n };\n}\nfunction formatIssue(issue) {\n if (issue.code === \"invalid_union\") {\n return formatIssue(issue.unionErrors[0].issues[0]);\n }\n let message = issue.message;\n if (message === \"Required\") {\n message = `Missing required value`;\n }\n if (issue.path.length) {\n message += ` at '${issue.path.join(\".\")}'`;\n }\n return message;\n}\n\nexport { createSchemaFromZod };\n//# sourceMappingURL=createSchemaFromZod.esm.js.map\n","class OpaqueType {\n /**\n * Creates a new opaque type.\n *\n * @param options.type The type identifier of the opaque type\n * @param options.versions The available versions of the opaque type\n * @returns A new opaque type helper\n */\n static create(options) {\n return new OpaqueType(options.type, new Set(options.versions));\n }\n #type;\n #versions;\n constructor(type, versions) {\n this.#type = type;\n this.#versions = versions;\n }\n /**\n * The internal version of the opaque type, used like this: `typeof MyOpaqueType.TPublic`\n *\n * @remarks\n *\n * This property is only useful for type checking, its runtime value is `undefined`.\n */\n TPublic = void 0;\n /**\n * The internal version of the opaque type, used like this: `typeof MyOpaqueType.TInternal`\n *\n * @remarks\n *\n * This property is only useful for type checking, its runtime value is `undefined`.\n */\n TInternal = void 0;\n /**\n * @param value Input value expected to be an instance of this opaque type\n * @returns True if the value matches this opaque type\n */\n isType = (value) => {\n return this.#isThisInternalType(value);\n };\n /**\n * @param value Input value expected to be an instance of this opaque type\n * @throws If the value is not an instance of this opaque type or is of an unsupported version\n * @returns The internal version of the opaque type\n */\n toInternal = (value) => {\n if (!this.#isThisInternalType(value)) {\n throw new TypeError(\n `Invalid opaque type, expected '${this.#type}', but got '${this.#stringifyUnknown(value)}'`\n );\n }\n if (!this.#versions.has(value.version)) {\n const versions = Array.from(this.#versions).map(this.#stringifyVersion);\n if (versions.length > 1) {\n versions[versions.length - 1] = `or ${versions[versions.length - 1]}`;\n }\n const expected = versions.length > 2 ? versions.join(\", \") : versions.join(\" \");\n throw new TypeError(\n `Invalid opaque type instance, got version ${this.#stringifyVersion(\n value.version\n )}, expected ${expected}`\n );\n }\n return value;\n };\n /**\n * Creates an instance of the opaque type, returning the public type.\n *\n * @param version The version of the instance to create\n * @param value The remaining public and internal properties of the instance\n * @returns An instance of the opaque type\n */\n createInstance(version, props) {\n return Object.assign(props, {\n $$type: this.#type,\n ...version && { version }\n });\n }\n #isThisInternalType(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n return value.$$type === this.#type;\n }\n #stringifyUnknown(value) {\n if (typeof value !== \"object\") {\n return `<${typeof value}>`;\n }\n if (value === null) {\n return \"<null>\";\n }\n if (\"$$type\" in value) {\n return String(value.$$type);\n }\n return String(value);\n }\n #stringifyVersion = (version) => {\n return version ? `'${version}'` : \"undefined\";\n };\n}\n\nexport { OpaqueType };\n//# sourceMappingURL=OpaqueType.esm.js.map\n","import { OpaqueType } from '../../../opaque-internal/src/OpaqueType.esm.js';\n\nconst OpaqueExtensionDefinition = OpaqueType.create({\n type: \"@backstage/ExtensionDefinition\",\n versions: [\"v1\", \"v2\"]\n});\n\nexport { OpaqueExtensionDefinition };\n//# sourceMappingURL=InternalExtensionDefinition.esm.js.map\n","import { resolveInputOverrides } from './resolveInputOverrides.esm.js';\nimport { createSchemaFromZod } from '../schema/createSchemaFromZod.esm.js';\nimport { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\nimport { createExtensionDataContainer } from '../frontend-internal/src/wiring/createExtensionDataContainer.esm.js';\nimport '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\n\nconst ctxParamsSymbol = Symbol(\"params\");\nfunction createExtension(options) {\n const schemaDeclaration = options.config?.schema;\n const configSchema = schemaDeclaration && createSchemaFromZod(\n (innerZ) => innerZ.object(\n Object.fromEntries(\n Object.entries(schemaDeclaration).map(([k, v]) => [k, v(innerZ)])\n )\n )\n );\n return OpaqueExtensionDefinition.createInstance(\"v2\", {\n T: void 0,\n kind: options.kind,\n name: options.name,\n attachTo: options.attachTo,\n disabled: options.disabled ?? false,\n inputs: options.inputs ?? {},\n output: options.output,\n configSchema,\n factory: options.factory,\n toString() {\n const parts = [];\n if (options.kind) {\n parts.push(`kind=${options.kind}`);\n }\n if (options.name) {\n parts.push(`name=${options.name}`);\n }\n parts.push(\n `attachTo=${[options.attachTo].flat().map((a) => `${a.id}@${a.input}`).join(\"+\")}`\n );\n return `ExtensionDefinition{${parts.join(\",\")}}`;\n },\n override(overrideOptions) {\n if (!Array.isArray(options.output)) {\n throw new Error(\n \"Cannot override an extension that is not declared using the new format with outputs as an array\"\n );\n }\n if (overrideOptions.output && !overrideOptions.factory) {\n throw new Error(\n \"Refused to override output without also overriding factory\"\n );\n }\n if (overrideOptions.params && overrideOptions.factory) {\n throw new Error(\n \"Refused to override params and factory at the same time\"\n );\n }\n return createExtension({\n kind: options.kind,\n name: options.name,\n attachTo: overrideOptions.attachTo ?? options.attachTo,\n disabled: overrideOptions.disabled ?? options.disabled,\n inputs: { ...overrideOptions.inputs, ...options.inputs },\n output: overrideOptions.output ?? options.output,\n config: options.config || overrideOptions.config ? {\n schema: {\n ...options.config?.schema,\n ...overrideOptions.config?.schema\n }\n } : void 0,\n factory: ({ node, apis, config, inputs }) => {\n if (!overrideOptions.factory) {\n return options.factory({\n node,\n apis,\n config,\n inputs,\n [ctxParamsSymbol]: overrideOptions.params\n });\n }\n const parentResult = overrideOptions.factory(\n (innerContext) => {\n return createExtensionDataContainer(\n options.factory({\n node,\n apis,\n config: innerContext?.config ?? config,\n inputs: resolveInputOverrides(\n options.inputs,\n inputs,\n innerContext?.inputs\n ),\n [ctxParamsSymbol]: innerContext?.params\n }),\n \"original extension factory\",\n options.output\n );\n },\n {\n node,\n apis,\n config,\n inputs\n }\n );\n if (typeof parentResult !== \"object\" || !parentResult?.[Symbol.iterator]) {\n throw new Error(\n \"extension factory override did not provide an iterable object\"\n );\n }\n const deduplicatedResult = /* @__PURE__ */ new Map();\n for (const item of parentResult) {\n deduplicatedResult.set(item.id, item);\n }\n return deduplicatedResult.values();\n }\n });\n }\n });\n}\n\nexport { createExtension, ctxParamsSymbol };\n//# sourceMappingURL=createExtension.esm.js.map\n","import { createExtension, ctxParamsSymbol } from './createExtension.esm.js';\nimport { resolveInputOverrides } from './resolveInputOverrides.esm.js';\nimport { OpaqueType } from '../opaque-internal/src/OpaqueType.esm.js';\nimport { createExtensionDataContainer } from '../frontend-internal/src/wiring/createExtensionDataContainer.esm.js';\n\nconst OpaqueBlueprintParams = OpaqueType.create({\n type: \"@backstage/BlueprintParams\",\n versions: [\"v1\"]\n});\nfunction createExtensionBlueprintParams(params) {\n return OpaqueBlueprintParams.createInstance(\"v1\", { T: null, params });\n}\nfunction unwrapParamsFactory(params, defineParams, kind) {\n const paramDefinition = params(defineParams);\n try {\n return OpaqueBlueprintParams.toInternal(paramDefinition).params;\n } catch (e) {\n throw new TypeError(\n `Invalid invocation of blueprint with kind '${kind}', the parameter definition callback function did not return a valid parameter definition object; Caused by: ${e.message}`\n );\n }\n}\nfunction unwrapParams(params, ctx, defineParams, kind) {\n const overrideParams = ctx[ctxParamsSymbol];\n if (defineParams) {\n if (overrideParams) {\n if (typeof overrideParams !== \"function\") {\n throw new TypeError(\n `Invalid extension override of blueprint with kind '${kind}', the override params were passed as a plain object, but this blueprint requires them to be passed in callback form`\n );\n }\n return unwrapParamsFactory(overrideParams, defineParams, kind);\n }\n if (typeof params !== \"function\") {\n throw new TypeError(\n `Invalid invocation of blueprint with kind '${kind}', the parameters where passed as a plain object, but this blueprint requires them to be passed in callback form`\n );\n }\n return unwrapParamsFactory(params, defineParams, kind);\n }\n const base = typeof params === \"function\" ? unwrapParamsFactory(\n params,\n createExtensionBlueprintParams,\n kind\n ) : params;\n const overrides = typeof overrideParams === \"function\" ? unwrapParamsFactory(\n overrideParams,\n createExtensionBlueprintParams,\n kind\n ) : overrideParams;\n return {\n ...base,\n ...overrides\n };\n}\nfunction createExtensionBlueprint(options) {\n const defineParams = options.defineParams;\n return {\n dataRefs: options.dataRefs,\n make(args) {\n return createExtension({\n kind: options.kind,\n name: args.name,\n attachTo: args.attachTo ?? options.attachTo,\n disabled: args.disabled ?? options.disabled,\n inputs: options.inputs,\n output: options.output,\n config: options.config,\n factory: (ctx) => options.factory(\n unwrapParams(args.params, ctx, defineParams, options.kind),\n ctx\n )\n });\n },\n makeWithOverrides(args) {\n return createExtension({\n kind: options.kind,\n name: args.name,\n attachTo: args.attachTo ?? options.attachTo,\n disabled: args.disabled ?? options.disabled,\n inputs: { ...args.inputs, ...options.inputs },\n output: args.output ?? options.output,\n config: options.config || args.config ? {\n schema: {\n ...options.config?.schema,\n ...args.config?.schema\n }\n } : void 0,\n factory: (ctx) => {\n const { node, config, inputs, apis } = ctx;\n return args.factory(\n (innerParams, innerContext) => {\n return createExtensionDataContainer(\n options.factory(\n unwrapParams(innerParams, ctx, defineParams, options.kind),\n {\n apis,\n node,\n config: innerContext?.config ?? config,\n inputs: resolveInputOverrides(\n options.inputs,\n inputs,\n innerContext?.inputs\n )\n }\n ),\n \"original blueprint factory\",\n options.output\n );\n },\n {\n apis,\n node,\n config,\n inputs\n }\n );\n }\n });\n }\n };\n}\n\nexport { createExtensionBlueprint, createExtensionBlueprintParams };\n//# sourceMappingURL=createExtensionBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint, createExtensionBlueprintParams } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst factoryDataRef = createExtensionDataRef().with({\n id: \"core.analytics.factory\"\n});\nconst AnalyticsImplementationBlueprint = createExtensionBlueprint({\n kind: \"analytics\",\n attachTo: [{ id: \"api:app/analytics\", input: \"implementations\" }],\n output: [factoryDataRef],\n dataRefs: {\n factory: factoryDataRef\n },\n defineParams: (params) => createExtensionBlueprintParams(params),\n *factory(params) {\n yield factoryDataRef(params);\n }\n});\n\nexport { AnalyticsImplementationBlueprint };\n//# sourceMappingURL=AnalyticsImplementationBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint, createExtensionBlueprintParams } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst factoryDataRef = createExtensionDataRef().with({\n id: \"core.api.factory\"\n});\nconst ApiBlueprint = createExtensionBlueprint({\n kind: \"api\",\n attachTo: { id: \"root\", input: \"apis\" },\n output: [factoryDataRef],\n dataRefs: {\n factory: factoryDataRef\n },\n defineParams: (params) => createExtensionBlueprintParams(params),\n *factory(params) {\n yield factoryDataRef(params);\n }\n});\n\nexport { ApiBlueprint };\n//# sourceMappingURL=ApiBlueprint.esm.js.map\n","import { createExtensionDataRef } from './createExtensionDataRef.esm.js';\n\nconst coreExtensionData = {\n reactElement: createExtensionDataRef().with({\n id: \"core.reactElement\"\n }),\n routePath: createExtensionDataRef().with({ id: \"core.routing.path\" }),\n routeRef: createExtensionDataRef().with({ id: \"core.routing.ref\" })\n};\n\nexport { coreExtensionData };\n//# sourceMappingURL=coreExtensionData.esm.js.map\n","import { coreExtensionData } from '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst AppRootElementBlueprint = createExtensionBlueprint({\n kind: \"app-root-element\",\n attachTo: { id: \"app/root\", input: \"elements\" },\n output: [coreExtensionData.reactElement],\n *factory(params) {\n yield coreExtensionData.reactElement(params.element);\n }\n});\n\nexport { AppRootElementBlueprint };\n//# sourceMappingURL=AppRootElementBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"app.root.wrapper\" });\nconst AppRootWrapperBlueprint = createExtensionBlueprint({\n kind: \"app-root-wrapper\",\n attachTo: { id: \"app/root\", input: \"wrappers\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory(params) {\n yield componentDataRef(params.component);\n }\n});\n\nexport { AppRootWrapperBlueprint };\n//# sourceMappingURL=AppRootWrapperBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst iconsDataRef = createExtensionDataRef().with({ id: \"core.icons\" });\nconst IconBundleBlueprint = createExtensionBlueprint({\n kind: \"icon-bundle\",\n attachTo: { id: \"api:app/icons\", input: \"icons\" },\n output: [iconsDataRef],\n factory: (params) => [\n iconsDataRef(params.icons)\n ],\n dataRefs: {\n icons: iconsDataRef\n }\n});\n\nexport { IconBundleBlueprint };\n//# sourceMappingURL=IconBundleBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({\n id: \"core.nav-content.component\"\n});\nconst NavContentBlueprint = createExtensionBlueprint({\n kind: \"nav-content\",\n attachTo: { id: \"app/nav\", input: \"content\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory(params) {\n yield componentDataRef(params.component);\n }\n});\n\nexport { NavContentBlueprint };\n//# sourceMappingURL=NavContentBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst targetDataRef = createExtensionDataRef().with({ id: \"core.nav-item.target\" });\nconst NavItemBlueprint = createExtensionBlueprint({\n kind: \"nav-item\",\n attachTo: { id: \"app/nav\", input: \"items\" },\n output: [targetDataRef],\n dataRefs: {\n target: targetDataRef\n },\n factory: ({\n icon,\n routeRef,\n title\n }, { config }) => [\n targetDataRef({\n title: config.title ?? title,\n icon,\n routeRef\n })\n ],\n config: {\n schema: {\n title: (z) => z.string().optional()\n }\n }\n});\n\nexport { NavItemBlueprint };\n//# sourceMappingURL=NavItemBlueprint.esm.js.map\n","import { OpaqueType } from '../../../opaque-internal/src/OpaqueType.esm.js';\n\nconst OpaqueSwappableComponentRef = OpaqueType.create({\n versions: [\"v1\"],\n type: \"@backstage/SwappableComponentRef\"\n});\n\nexport { OpaqueSwappableComponentRef };\n//# sourceMappingURL=InternalSwappableComponentRef.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { swappableComponentsApiRef } from '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport { lazy } from 'react';\nimport { OpaqueSwappableComponentRef } from '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\nimport '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\n\nconst useComponentRefApi = () => {\n try {\n return useApi(swappableComponentsApiRef);\n } catch (e) {\n return void 0;\n }\n};\nfunction createSwappableComponent(options) {\n const FallbackComponent = (p) => /* @__PURE__ */ jsx(\"div\", { \"data-testid\": options.id, ...p });\n const ref = OpaqueSwappableComponentRef.createInstance(\"v1\", {\n id: options.id,\n TProps: null,\n TExternalProps: null,\n toString() {\n return `SwappableComponentRef{id=${options.id}}`;\n },\n defaultComponent: lazy(async () => {\n const Component = await options.loader?.() ?? FallbackComponent;\n return { default: Component };\n }),\n transformProps: options.transformProps\n });\n const ComponentRefImpl = (props) => {\n const api = useComponentRefApi();\n if (!api) {\n const internalRef = OpaqueSwappableComponentRef.toInternal(ref);\n const Component2 = internalRef.defaultComponent;\n const innerProps = internalRef.transformProps?.(props) ?? props;\n return /* @__PURE__ */ jsx(Component2, { ...innerProps });\n }\n const Component = api.getComponent(ref);\n return /* @__PURE__ */ jsx(Component, { ...props });\n };\n Object.assign(ComponentRefImpl, { ref });\n return ComponentRefImpl;\n}\n\nexport { createSwappableComponent };\n//# sourceMappingURL=createSwappableComponent.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { createSwappableComponent } from './createSwappableComponent.esm.js';\n\nconst Progress = createSwappableComponent({\n id: \"core-progress\"\n});\nconst NotFoundErrorPage = createSwappableComponent({\n id: \"core-not-found-error-page\"\n});\nconst ErrorDisplay = createSwappableComponent({\n id: \"core-error-display\",\n loader: () => (props) => /* @__PURE__ */ jsx(\"div\", { \"data-testid\": \"core-error-display\", children: props.error.message })\n});\n\nexport { ErrorDisplay, NotFoundErrorPage, Progress };\n//# sourceMappingURL=DefaultSwappableComponents.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { Component } from 'react';\nimport { ErrorDisplay } from './DefaultSwappableComponents.esm.js';\n\nclass ErrorBoundary extends Component {\n static getDerivedStateFromError(error) {\n return { error };\n }\n state = { error: void 0 };\n handleErrorReset = () => {\n this.setState({ error: void 0 });\n };\n render() {\n const { error } = this.state;\n const { plugin, children } = this.props;\n if (error) {\n return /* @__PURE__ */ jsx(\n ErrorDisplay,\n {\n plugin,\n error,\n resetError: this.handleErrorReset\n }\n );\n }\n return children;\n }\n}\n\nexport { ErrorBoundary };\n//# sourceMappingURL=ErrorBoundary.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\ngetOrCreateGlobalSingleton(\n \"core-plugin-api:analytics-tracker-events\",\n () => ({\n mostRecentGatheredNavigation: void 0,\n mostRecentRoutableExtensionRender: void 0,\n beforeUnloadRegistered: false\n })\n);\nconst routableExtensionRenderedEvent = \"_ROUTABLE-EXTENSION-RENDERED\";\n\nexport { routableExtensionRenderedEvent };\n//# sourceMappingURL=Tracker.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { createVersionedContext, createVersionedValueMap, useVersionedContext } from '@backstage/version-bridge';\n\nconst CONTEXT_KEY = \"app-node-context\";\nconst AppNodeContext = createVersionedContext(CONTEXT_KEY);\nfunction AppNodeProvider({\n node,\n children\n}) {\n const versionedValue = createVersionedValueMap({ 1: { node } });\n return /* @__PURE__ */ jsx(AppNodeContext.Provider, { value: versionedValue, children });\n}\nfunction useAppNode() {\n const versionedContext = useVersionedContext(CONTEXT_KEY);\n if (!versionedContext) {\n return void 0;\n }\n const context = versionedContext.atVersion(1);\n if (!context) {\n throw new Error(\"AppNodeContext v1 not available\");\n }\n return context.node;\n}\n\nexport { AppNodeProvider, useAppNode };\n//# sourceMappingURL=AppNodeProvider.esm.js.map\n","import { jsx, Fragment } from 'react/jsx-runtime';\nimport { lazy, Suspense, useEffect } from 'react';\nimport { AnalyticsContext, useAnalytics } from '@backstage/core-plugin-api';\nimport { ErrorBoundary } from './ErrorBoundary.esm.js';\nimport { routableExtensionRenderedEvent } from '../core-plugin-api/src/analytics/Tracker.esm.js';\nimport { coreExtensionData } from '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport '../wiring/createExtensionBlueprint.esm.js';\nimport { AppNodeProvider } from './AppNodeProvider.esm.js';\nimport { Progress } from './DefaultSwappableComponents.esm.js';\n\nconst RouteTracker = (props) => {\n const { enabled, children } = props;\n const analytics = useAnalytics();\n useEffect(() => {\n if (enabled) {\n analytics.captureEvent(routableExtensionRenderedEvent, \"\");\n }\n }, [analytics, enabled]);\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction ExtensionBoundary(props) {\n const { node, children } = props;\n const hasRoutePathOutput = Boolean(\n node.instance?.getData(coreExtensionData.routePath)\n );\n const plugin = node.spec.plugin;\n const attributes = {\n extensionId: node.spec.id,\n pluginId: node.spec.plugin?.id ?? \"app\"\n };\n return /* @__PURE__ */ jsx(AppNodeProvider, { node, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Progress, {}), children: /* @__PURE__ */ jsx(ErrorBoundary, { plugin, children: /* @__PURE__ */ jsx(AnalyticsContext, { attributes, children: /* @__PURE__ */ jsx(RouteTracker, { enabled: hasRoutePathOutput, children }) }) }) }) });\n}\n((ExtensionBoundary2) => {\n function lazy$1(appNode, loader) {\n const ExtensionComponent = lazy(\n () => loader().then((element) => ({ default: () => element }))\n );\n return /* @__PURE__ */ jsx(ExtensionBoundary2, { node: appNode, children: /* @__PURE__ */ jsx(ExtensionComponent, {}) });\n }\n ExtensionBoundary2.lazy = lazy$1;\n function lazyComponent(appNode, loader) {\n const ExtensionComponent = lazy(\n () => loader().then((Component) => ({ default: Component }))\n );\n return (props) => /* @__PURE__ */ jsx(ExtensionBoundary2, { node: appNode, children: /* @__PURE__ */ jsx(ExtensionComponent, { ...props }) });\n }\n ExtensionBoundary2.lazyComponent = lazyComponent;\n})(ExtensionBoundary || (ExtensionBoundary = {}));\n\nexport { ExtensionBoundary };\n//# sourceMappingURL=ExtensionBoundary.esm.js.map\n","import { coreExtensionData } from '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\nimport { ExtensionBoundary } from '../components/ExtensionBoundary.esm.js';\nimport 'react/jsx-runtime';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport '@backstage/core-plugin-api';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport 'react';\nimport '../components/AppNodeProvider.esm.js';\nimport '../components/DefaultSwappableComponents.esm.js';\n\nconst PageBlueprint = createExtensionBlueprint({\n kind: \"page\",\n attachTo: { id: \"app/routes\", input: \"routes\" },\n output: [\n coreExtensionData.routePath,\n coreExtensionData.reactElement,\n coreExtensionData.routeRef.optional()\n ],\n config: {\n schema: {\n path: (z) => z.string().optional()\n }\n },\n *factory(params, { config, node }) {\n yield coreExtensionData.routePath(config.path ?? params.path);\n yield coreExtensionData.reactElement(\n ExtensionBoundary.lazy(node, params.loader)\n );\n if (params.routeRef) {\n yield coreExtensionData.routeRef(params.routeRef);\n }\n }\n});\n\nexport { PageBlueprint };\n//# sourceMappingURL=PageBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"app.router.wrapper\" });\nconst RouterBlueprint = createExtensionBlueprint({\n kind: \"app-router-component\",\n attachTo: { id: \"app/root\", input: \"router\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory(params) {\n yield componentDataRef(params.component);\n }\n});\n\nexport { RouterBlueprint };\n//# sourceMappingURL=RouterBlueprint.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { lazy } from 'react';\nimport '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\nimport { ExtensionBoundary } from '../components/ExtensionBoundary.esm.js';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport '@backstage/core-plugin-api';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport '../components/AppNodeProvider.esm.js';\nimport '../components/DefaultSwappableComponents.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"core.sign-in-page.component\" });\nconst SignInPageBlueprint = createExtensionBlueprint({\n kind: \"sign-in-page\",\n attachTo: { id: \"app/root\", input: \"signInPage\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n *factory({\n loader\n }, { node }) {\n const ExtensionComponent = lazy(\n () => loader().then((component) => ({ default: component }))\n );\n yield componentDataRef((props) => /* @__PURE__ */ jsx(ExtensionBoundary, { node, children: /* @__PURE__ */ jsx(ExtensionComponent, { ...props }) }));\n }\n});\n\nexport { SignInPageBlueprint };\n//# sourceMappingURL=SignInPageBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst themeDataRef = createExtensionDataRef().with({\n id: \"core.theme.theme\"\n});\nconst ThemeBlueprint = createExtensionBlueprint({\n kind: \"theme\",\n attachTo: { id: \"api:app/app-theme\", input: \"themes\" },\n output: [themeDataRef],\n dataRefs: {\n theme: themeDataRef\n },\n factory: ({ theme }) => [themeDataRef(theme)]\n});\n\nexport { ThemeBlueprint };\n//# sourceMappingURL=ThemeBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst translationDataRef = createExtensionDataRef().with({ id: \"core.translation.translation\" });\nconst TranslationBlueprint = createExtensionBlueprint({\n kind: \"translation\",\n attachTo: { id: \"api:app/translations\", input: \"translations\" },\n output: [translationDataRef],\n dataRefs: {\n translation: translationDataRef\n },\n factory: ({\n resource\n }) => [translationDataRef(resource)]\n});\n\nexport { TranslationBlueprint };\n//# sourceMappingURL=TranslationBlueprint.esm.js.map\n","import '../wiring/coreExtensionData.esm.js';\nimport 'zod';\nimport 'zod-to-json-schema';\nimport { createExtensionDataRef } from '../wiring/createExtensionDataRef.esm.js';\nimport { createExtensionBlueprint, createExtensionBlueprintParams } from '../wiring/createExtensionBlueprint.esm.js';\n\nconst componentDataRef = createExtensionDataRef().with({ id: \"core.swappableComponent\" });\nconst SwappableComponentBlueprint = createExtensionBlueprint({\n kind: \"component\",\n attachTo: { id: \"api:app/swappable-components\", input: \"components\" },\n output: [componentDataRef],\n dataRefs: {\n component: componentDataRef\n },\n defineParams(params) {\n return createExtensionBlueprintParams(params);\n },\n factory: (params) => [\n componentDataRef({\n ref: params.component.ref,\n loader: params.loader\n })\n ]\n});\n\nexport { SwappableComponentBlueprint, componentDataRef };\n//# sourceMappingURL=SwappableComponentBlueprint.esm.js.map\n","const MESSAGE_MARKER = \"eHgtF5hmbrXyiEvo\";\nfunction describeParentCallSite(ErrorConstructor = Error) {\n const { stack } = new ErrorConstructor(MESSAGE_MARKER);\n if (!stack) {\n return \"<unknown>\";\n }\n const startIndex = stack.includes(MESSAGE_MARKER) ? stack.indexOf(\"\\n\") + 1 : 0;\n const secondEntryStart = stack.indexOf(\"\\n\", stack.indexOf(\"\\n\", startIndex) + 1) + 1;\n const secondEntryEnd = stack.indexOf(\"\\n\", secondEntryStart);\n const line = stack.substring(secondEntryStart, secondEntryEnd).trim();\n if (!line) {\n return \"unknown\";\n }\n if (line.includes(\"(\")) {\n return line.substring(line.indexOf(\"(\") + 1, line.indexOf(\")\"));\n }\n if (line.includes(\"@\")) {\n return line.substring(line.indexOf(\"@\") + 1);\n }\n return line;\n}\n\nexport { describeParentCallSite };\n//# sourceMappingURL=describeParentCallSite.esm.js.map\n","import { describeParentCallSite } from './describeParentCallSite.esm.js';\n\nfunction toInternalRouteRef(resource) {\n const r = resource;\n if (r.$$type !== \"@backstage/RouteRef\") {\n throw new Error(`Invalid RouteRef, bad type '${r.$$type}'`);\n }\n return r;\n}\nclass RouteRefImpl {\n constructor(params = [], creationSite, alias) {\n this.params = params;\n this.#params = params;\n this.#creationSite = creationSite;\n this.#alias = alias;\n }\n $$type = \"@backstage/RouteRef\";\n version = \"v1\";\n #id;\n #params;\n #creationSite;\n #alias;\n getParams() {\n return this.#params;\n }\n get alias() {\n return this.#alias;\n }\n getDescription() {\n if (this.#id) {\n return this.#id;\n }\n return `created at '${this.#creationSite}'`;\n }\n get #name() {\n return this.$$type.slice(\"@backstage/\".length);\n }\n setId(id) {\n if (!id) {\n throw new Error(`${this.#name} id must be a non-empty string`);\n }\n if (this.#id && this.#id !== id) {\n throw new Error(\n `${this.#name} was referenced twice as both '${this.#id}' and '${id}'`\n );\n }\n this.#id = id;\n }\n toString() {\n return `${this.#name}{${this.getDescription()}}`;\n }\n}\nfunction createRouteRef(config) {\n return new RouteRefImpl(\n config?.params,\n describeParentCallSite(),\n config?.aliasFor\n );\n}\n\nexport { RouteRefImpl, createRouteRef, toInternalRouteRef };\n//# sourceMappingURL=RouteRef.esm.js.map\n","import { toInternalRouteRef } from './RouteRef.esm.js';\n\nconst PARAM_PATTERN = /^\\w+$/;\nclass SubRouteRefImpl {\n constructor(path, params, parent) {\n this.path = path;\n this.#params = params;\n this.#parent = parent;\n }\n $$type = \"@backstage/SubRouteRef\";\n version = \"v1\";\n #params;\n #parent;\n getParams() {\n return this.#params;\n }\n getParent() {\n return this.#parent;\n }\n getDescription() {\n const parent = toInternalRouteRef(this.#parent);\n return `at ${this.path} with parent ${parent.getDescription()}`;\n }\n toString() {\n return `SubRouteRef{${this.getDescription()}}`;\n }\n}\nfunction createSubRouteRef(config) {\n const { path, parent } = config;\n const internalParent = toInternalRouteRef(parent);\n const parentParams = internalParent.getParams();\n const pathParams = path.split(\"/\").filter((p) => p.startsWith(\":\")).map((p) => p.substring(1));\n const params = [...parentParams, ...pathParams];\n if (parentParams.some((p) => pathParams.includes(p))) {\n throw new Error(\n \"SubRouteRef may not have params that overlap with its parent\"\n );\n }\n if (!path.startsWith(\"/\")) {\n throw new Error(`SubRouteRef path must start with '/', got '${path}'`);\n }\n if (path.endsWith(\"/\")) {\n throw new Error(`SubRouteRef path must not end with '/', got '${path}'`);\n }\n for (const param of pathParams) {\n if (!PARAM_PATTERN.test(param)) {\n throw new Error(`SubRouteRef path has invalid param, got '${param}'`);\n }\n }\n const subRouteRef = new SubRouteRefImpl(\n path,\n params,\n parent\n );\n return subRouteRef;\n}\n\nexport { SubRouteRefImpl, createSubRouteRef };\n//# sourceMappingURL=SubRouteRef.esm.js.map\n","import { RouteRefImpl } from './RouteRef.esm.js';\nimport { describeParentCallSite } from './describeParentCallSite.esm.js';\n\nclass ExternalRouteRefImpl extends RouteRefImpl {\n constructor(params = [], defaultTarget, creationSite) {\n super(params, creationSite);\n this.params = params;\n this.defaultTarget = defaultTarget;\n }\n $$type = \"@backstage/ExternalRouteRef\";\n getDefaultTarget() {\n return this.defaultTarget;\n }\n}\nfunction createExternalRouteRef(options) {\n return new ExternalRouteRefImpl(\n options?.params,\n options?.defaultTarget,\n describeParentCallSite()\n );\n}\n\nexport { createExternalRouteRef };\n//# sourceMappingURL=ExternalRouteRef.esm.js.map\n","import { useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport '../apis/definitions/AppTreeApi.esm.js';\nimport { useApi } from '@backstage/core-plugin-api';\nimport '../apis/definitions/SwappableComponentsApi.esm.js';\nimport '../apis/definitions/IconsApi.esm.js';\nimport '../apis/definitions/DialogApi.esm.js';\nimport { routeResolutionApiRef } from '../apis/definitions/RouteResolutionApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\n\nfunction useRouteRef(routeRef) {\n const { pathname } = useLocation();\n const routeResolutionApi = useApi(routeResolutionApiRef);\n const routeFunc = useMemo(\n () => routeResolutionApi.resolve(routeRef, { sourcePath: pathname }),\n [routeResolutionApi, routeRef, pathname]\n );\n return routeFunc;\n}\n\nexport { useRouteRef };\n//# sourceMappingURL=useRouteRef.esm.js.map\n","import { useParams } from 'react-router-dom';\n\nfunction useRouteRefParams(_routeRef) {\n return useParams();\n}\n\nexport { useRouteRefParams };\n//# sourceMappingURL=useRouteRefParams.esm.js.map\n","function createExtensionInput(extensionData, config) {\n if (process.env.NODE_ENV !== \"production\") {\n if (Array.isArray(extensionData)) {\n const seen = /* @__PURE__ */ new Set();\n const duplicates = [];\n for (const dataRef of extensionData) {\n if (seen.has(dataRef.id)) {\n duplicates.push(dataRef.id);\n } else {\n seen.add(dataRef.id);\n }\n }\n if (duplicates.length > 0) {\n throw new Error(\n `ExtensionInput may not have duplicate data refs: '${duplicates.join(\n \"', '\"\n )}'`\n );\n }\n }\n }\n return {\n $$type: \"@backstage/ExtensionInput\",\n extensionData,\n config: {\n singleton: Boolean(config?.singleton),\n optional: Boolean(config?.optional)\n },\n replaces: config?.replaces\n };\n}\n\nexport { createExtensionInput };\n//# sourceMappingURL=createExtensionInput.esm.js.map\n","import { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\n\nfunction resolveExtensionDefinition(definition, context) {\n const internalDefinition = OpaqueExtensionDefinition.toInternal(definition);\n const {\n name,\n kind,\n namespace: _skip1,\n override: _skip2,\n ...rest\n } = internalDefinition;\n const namespace = internalDefinition.namespace ?? context?.namespace;\n const namePart = name && namespace ? `${namespace}/${name}` : namespace || name;\n if (!namePart) {\n throw new Error(\n `Extension must declare an explicit namespace or name as it could not be resolved from context, kind=${kind} namespace=${namespace} name=${name}`\n );\n }\n const id = kind ? `${kind}:${namePart}` : namePart;\n return {\n ...rest,\n $$type: \"@backstage/Extension\",\n version: internalDefinition.version,\n id,\n toString() {\n return `Extension{id=${id}}`;\n }\n };\n}\n\nexport { resolveExtensionDefinition };\n//# sourceMappingURL=resolveExtensionDefinition.esm.js.map\n","import { OpaqueType } from '../../../opaque-internal/src/OpaqueType.esm.js';\n\nconst OpaqueFrontendPlugin = OpaqueType.create({\n type: \"@backstage/FrontendPlugin\",\n versions: [\"v1\"]\n});\n\nexport { OpaqueFrontendPlugin };\n//# sourceMappingURL=InternalFrontendPlugin.esm.js.map\n","import { resolveExtensionDefinition } from './resolveExtensionDefinition.esm.js';\nimport { OpaqueFrontendPlugin } from '../frontend-internal/src/wiring/InternalFrontendPlugin.esm.js';\nimport '../frontend-internal/src/wiring/InternalSwappableComponentRef.esm.js';\nimport { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\n\nfunction createFrontendPlugin(options) {\n const pluginId = options.pluginId;\n const extensions = new Array();\n const extensionDefinitionsById = /* @__PURE__ */ new Map();\n for (const def of options.extensions ?? []) {\n const internal = OpaqueExtensionDefinition.toInternal(def);\n const ext = resolveExtensionDefinition(def, { namespace: pluginId });\n extensions.push(ext);\n extensionDefinitionsById.set(ext.id, {\n ...internal,\n namespace: pluginId\n });\n }\n if (extensions.length !== extensionDefinitionsById.size) {\n const extensionIds = extensions.map((e) => e.id);\n const duplicates = Array.from(\n new Set(\n extensionIds.filter((id, index) => extensionIds.indexOf(id) !== index)\n )\n );\n throw new Error(\n `Plugin '${pluginId}' provided duplicate extensions: ${duplicates.join(\n \", \"\n )}`\n );\n }\n return OpaqueFrontendPlugin.createInstance(\"v1\", {\n id: pluginId,\n routes: options.routes ?? {},\n externalRoutes: options.externalRoutes ?? {},\n featureFlags: options.featureFlags ?? [],\n extensions,\n infoOptions: options.info,\n // This method is overridden when the plugin instance is installed in an app\n async info() {\n throw new Error(\n `Attempted to load plugin info for plugin '${pluginId}', but the plugin instance is not installed in an app`\n );\n },\n getExtension(id) {\n const ext = extensionDefinitionsById.get(id);\n if (!ext) {\n throw new Error(\n `Attempted to get non-existent extension '${id}' from plugin '${pluginId}'`\n );\n }\n return ext;\n },\n toString() {\n return `Plugin{id=${pluginId}}`;\n },\n withOverrides(overrides) {\n const overriddenExtensionIds = new Set(\n overrides.extensions.map(\n (e) => resolveExtensionDefinition(e, { namespace: pluginId }).id\n )\n );\n const nonOverriddenExtensions = (options.extensions ?? []).filter(\n (e) => !overriddenExtensionIds.has(\n resolveExtensionDefinition(e, { namespace: pluginId }).id\n )\n );\n return createFrontendPlugin({\n ...options,\n pluginId,\n extensions: [...nonOverriddenExtensions, ...overrides.extensions],\n info: {\n ...options.info,\n ...overrides.info\n }\n });\n }\n });\n}\n\nexport { createFrontendPlugin };\n//# sourceMappingURL=createFrontendPlugin.esm.js.map\n","import { resolveExtensionDefinition } from './resolveExtensionDefinition.esm.js';\nimport { OpaqueExtensionDefinition } from '../frontend-internal/src/wiring/InternalExtensionDefinition.esm.js';\n\nfunction createFrontendModule(options) {\n const { pluginId } = options;\n const extensions = new Array();\n const extensionDefinitionsById = /* @__PURE__ */ new Map();\n for (const def of options.extensions ?? []) {\n const internal = OpaqueExtensionDefinition.toInternal(def);\n const ext = resolveExtensionDefinition(def, { namespace: pluginId });\n extensions.push(ext);\n extensionDefinitionsById.set(ext.id, {\n ...internal,\n namespace: pluginId\n });\n }\n if (extensions.length !== extensionDefinitionsById.size) {\n const extensionIds = extensions.map((e) => e.id);\n const duplicates = Array.from(\n new Set(\n extensionIds.filter((id, index) => extensionIds.indexOf(id) !== index)\n )\n );\n throw new Error(\n `Plugin '${pluginId}' provided duplicate extensions: ${duplicates.join(\n \", \"\n )}`\n );\n }\n return {\n $$type: \"@backstage/FrontendModule\",\n version: \"v1\",\n pluginId,\n featureFlags: options.featureFlags ?? [],\n extensions,\n toString() {\n return `Module{pluginId=${pluginId}}`;\n }\n };\n}\n\nexport { createFrontendModule };\n//# sourceMappingURL=createFrontendModule.esm.js.map\n","import { describeParentCallSite } from '../routing/describeParentCallSite.esm.js';\n\nfunction createFrontendFeatureLoader(options) {\n const description = `created at '${describeParentCallSite()}'`;\n return {\n $$type: \"@backstage/FrontendFeatureLoader\",\n version: \"v1\",\n description,\n toString() {\n return `FeatureLoader{description=${description}}`;\n },\n async loader(deps) {\n const it = await options.loader(deps);\n const result = new Array();\n for await (const item of it) {\n if (isFeatureOrLoader(item)) {\n result.push(item);\n } else if (\"default\" in item) {\n result.push(item.default);\n } else {\n throw new Error(`Invalid item \"${item}\"`);\n }\n }\n return result;\n }\n };\n}\nfunction isFeatureOrLoader(obj) {\n if (obj !== null && typeof obj === \"object\" && \"$$type\" in obj) {\n return obj.$$type === \"@backstage/FrontendPlugin\" || obj.$$type === \"@backstage/FrontendModule\" || obj.$$type === \"@backstage/FrontendFeatureLoader\";\n }\n return false;\n}\n\nexport { createFrontendFeatureLoader };\n//# sourceMappingURL=createFrontendFeatureLoader.esm.js.map\n"],"names":["AnalyticsReactContext","createVersionedContext","useAnalyticsContext","theContext","useContext","pluginId","extensionId","theValue","atVersion","Error","AnalyticsContext","options","attributes","children","combinedValue","versionedCombinedValue","createVersionedValueMap","jsx","Provider","value","analyticsApiRef","createApiRef","id","globalEvents","getOrCreateGlobalSingleton","mostRecentGatheredNavigation","mostRecentRoutableExtensionRender","beforeUnloadRegistered","Tracker","constructor","analyticsApi","context","this","addEventListener","captureEvent","once","passive","setContext","action","subject","e","console","warn","useAnalytics","trackerRef","useRef","useApi","error","name","useAnalyticsApi","tracker","current","appTreeApiRef","swappableComponentsApiRef","iconsApiRef","dialogApiRef","routeResolutionApiRef","createExtensionDataRef","createRef","refId","Object","assign","$$type","config","optional","toString","Boolean","with","createExtensionDataContainer","values","contextName","declaredRefs","Symbol","iterator","container","Map","verifyRefs","map","ref","output","delete","set","remainingRefs","Array","from","filter","length","join","get","expectArray","expectItem","resolveInputOverrides","declaredInputs","inputs","inputOverrides","newInputs","hasOwn","declaredInput","providedData","singleton","originalInput","providedContainer","extensionData","node","isArray","withNodesCount","d","data","i","formatIssue","issue","code","unionErrors","issues","message","path","OpaqueType","create","type","Set","versions","TPublic","TInternal","isType","toInternal","TypeError","has","version","expected","createInstance","props","String","OpaqueExtensionDefinition","ctxParamsSymbol","createExtension","schemaDeclaration","schema","configSchema","innerZ","object","fromEntries","entries","k","v","parse","input","result","safeParse","success","createSchemaFromZod","T","kind","attachTo","disabled","factory","parts","push","flat","a","override","overrideOptions","params","apis","parentResult","innerContext","deduplicatedResult","item","OpaqueBlueprintParams","createExtensionBlueprintParams","unwrapParamsFactory","defineParams","paramDefinition","unwrapParams","ctx","overrideParams","createExtensionBlueprint","dataRefs","make","args","makeWithOverrides","innerParams","factoryDataRef","AnalyticsImplementationBlueprint","ApiBlueprint","coreExtensionData","reactElement","routePath","routeRef","AppRootElementBlueprint","element","componentDataRef","AppRootWrapperBlueprint","component","iconsDataRef","IconBundleBlueprint","icons","NavContentBlueprint","targetDataRef","NavItemBlueprint","target","icon","title","z","string","OpaqueSwappableComponentRef","useComponentRefApi","createSwappableComponent","FallbackComponent","p","TProps","TExternalProps","defaultComponent","lazy","async","default","loader","transformProps","ComponentRefImpl","api","internalRef","Component2","innerProps","Component","getComponent","Progress","NotFoundErrorPage","ErrorDisplay","ErrorBoundary","getDerivedStateFromError","state","handleErrorReset","setState","render","plugin","resetError","CONTEXT_KEY","AppNodeContext","AppNodeProvider","versionedValue","useAppNode","versionedContext","useVersionedContext","RouteTracker","enabled","analytics","useEffect","Fragment","ExtensionBoundary","hasRoutePathOutput","instance","getData","spec","Suspense","fallback","ExtensionBoundary2","appNode","ExtensionComponent","then","lazyComponent","PageBlueprint","RouterBlueprint","SignInPageBlueprint","themeDataRef","ThemeBlueprint","theme","translationDataRef","TranslationBlueprint","translation","resource","SwappableComponentBlueprint","MESSAGE_MARKER","describeParentCallSite","ErrorConstructor","stack","startIndex","includes","indexOf","secondEntryStart","secondEntryEnd","line","substring","trim","toInternalRouteRef","r","RouteRefImpl","creationSite","alias","getParams","getDescription","slice","setId","createRouteRef","aliasFor","PARAM_PATTERN","SubRouteRefImpl","parent","getParent","createSubRouteRef","parentParams","pathParams","split","startsWith","some","endsWith","param","test","ExternalRouteRefImpl","defaultTarget","super","getDefaultTarget","createExternalRouteRef","useRouteRef","pathname","useLocation","routeResolutionApi","useMemo","resolve","sourcePath","useRouteRefParams","_routeRef","useParams","createExtensionInput","replaces","resolveExtensionDefinition","definition","internalDefinition","namespace","_skip1","_skip2","rest","namePart","OpaqueFrontendPlugin","createFrontendPlugin","extensions","extensionDefinitionsById","def","internal","ext","size","extensionIds","duplicates","index","routes","externalRoutes","featureFlags","infoOptions","info","getExtension","withOverrides","overrides","overriddenExtensionIds","nonOverriddenExtensions","createFrontendModule","createFrontendFeatureLoader","description","deps","it","isFeatureOrLoader","obj"],"sourceRoot":""}