@kuadrant/kuadrant-backstage-plugin-frontend 0.0.2-dev-1cc1a15 → 0.0.2-dev-7d09bfa

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 (195) hide show
  1. package/dist/components/ApiAccessCard/ApiAccessCard.esm.js +229 -11
  2. package/dist/components/ApiAccessCard/ApiAccessCard.esm.js.map +1 -1
  3. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +15 -151
  4. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
  5. package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js +10 -15
  6. package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js.map +1 -1
  7. package/dist/components/ApiProductDetails/ApiProductDetails.esm.js +6 -1
  8. package/dist/components/ApiProductDetails/ApiProductDetails.esm.js.map +1 -1
  9. package/dist/components/ApiProductInfoCard/ApiProductInfoCard.esm.js +15 -2
  10. package/dist/components/ApiProductInfoCard/ApiProductInfoCard.esm.js.map +1 -1
  11. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +2 -4
  12. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
  13. package/dist/components/OidcProviderCard/OidcProviderCard.esm.js +23 -0
  14. package/dist/components/OidcProviderCard/OidcProviderCard.esm.js.map +1 -0
  15. package/dist/components/RequestAccessDialog/RequestAccessDialog.esm.js +167 -0
  16. package/dist/components/RequestAccessDialog/RequestAccessDialog.esm.js.map +1 -0
  17. package/dist/index.d.ts +1 -2
  18. package/dist/index.esm.js +1 -1
  19. package/dist/plugin.esm.js +1 -9
  20. package/dist/plugin.esm.js.map +1 -1
  21. package/dist/utils/validation.esm.js.map +1 -1
  22. package/dist-scalprum/configSchema.json +27 -1
  23. package/dist-scalprum/internal.plugin-kuadrant.5d9e1e73c7f21bbed39a.js +2 -0
  24. package/dist-scalprum/internal.plugin-kuadrant.5d9e1e73c7f21bbed39a.js.map +1 -0
  25. package/dist-scalprum/plugin-manifest.json +2 -2
  26. package/dist-scalprum/static/1994.19e6a1c5.chunk.js +3 -0
  27. package/dist-scalprum/static/1994.19e6a1c5.chunk.js.map +1 -0
  28. package/dist-scalprum/static/{2628.6619bf8b.chunk.js → 2628.0605e07f.chunk.js} +3 -3
  29. package/dist-scalprum/static/2628.0605e07f.chunk.js.map +1 -0
  30. package/dist-scalprum/static/2752.df63f31c.chunk.js +2 -0
  31. package/dist-scalprum/static/2752.df63f31c.chunk.js.map +1 -0
  32. package/dist-scalprum/static/2822.27a4ac5b.chunk.js +2 -0
  33. package/dist-scalprum/static/2822.27a4ac5b.chunk.js.map +1 -0
  34. package/dist-scalprum/static/2967.8d9c1b1f.chunk.js +2 -0
  35. package/dist-scalprum/static/2967.8d9c1b1f.chunk.js.map +1 -0
  36. package/dist-scalprum/static/{3097.4bd6b35f.chunk.js → 3097.582b68d3.chunk.js} +2 -2
  37. package/dist-scalprum/static/{3097.4bd6b35f.chunk.js.map → 3097.582b68d3.chunk.js.map} +1 -1
  38. package/dist-scalprum/static/327.cd6b3fee.chunk.js +2 -0
  39. package/dist-scalprum/static/327.cd6b3fee.chunk.js.map +1 -0
  40. package/dist-scalprum/static/3459.a7c29521.chunk.js +2 -0
  41. package/dist-scalprum/static/3459.a7c29521.chunk.js.map +1 -0
  42. package/dist-scalprum/static/3584.c820a5c7.chunk.js +2 -0
  43. package/dist-scalprum/static/3584.c820a5c7.chunk.js.map +1 -0
  44. package/dist-scalprum/static/3587.490690d6.chunk.js +2 -0
  45. package/dist-scalprum/static/3587.490690d6.chunk.js.map +1 -0
  46. package/dist-scalprum/static/{3647.b96f9b3e.chunk.js → 3647.67079e5f.chunk.js} +2 -2
  47. package/dist-scalprum/static/{3647.b96f9b3e.chunk.js.map → 3647.67079e5f.chunk.js.map} +1 -1
  48. package/dist-scalprum/static/3650.4f0dc550.chunk.js +2 -0
  49. package/dist-scalprum/static/3650.4f0dc550.chunk.js.map +1 -0
  50. package/dist-scalprum/static/3947.7458971d.chunk.js +2 -0
  51. package/dist-scalprum/static/3947.7458971d.chunk.js.map +1 -0
  52. package/dist-scalprum/static/3984.7bc07774.chunk.js +2 -0
  53. package/dist-scalprum/static/3984.7bc07774.chunk.js.map +1 -0
  54. package/dist-scalprum/static/4302.9a59485e.chunk.js +2 -0
  55. package/dist-scalprum/static/4302.9a59485e.chunk.js.map +1 -0
  56. package/dist-scalprum/static/441.f708f1e0.chunk.js +2 -0
  57. package/dist-scalprum/static/441.f708f1e0.chunk.js.map +1 -0
  58. package/dist-scalprum/static/4611.0d064cdf.chunk.js +2 -0
  59. package/dist-scalprum/static/4611.0d064cdf.chunk.js.map +1 -0
  60. package/dist-scalprum/static/4651.c85cecc4.chunk.js +2 -0
  61. package/dist-scalprum/static/4651.c85cecc4.chunk.js.map +1 -0
  62. package/dist-scalprum/static/{4682.6959fcd1.chunk.js → 4682.3c7098a8.chunk.js} +2 -2
  63. package/dist-scalprum/static/{4682.6959fcd1.chunk.js.map → 4682.3c7098a8.chunk.js.map} +1 -1
  64. package/dist-scalprum/static/501.87de76da.chunk.js +3 -0
  65. package/dist-scalprum/static/501.87de76da.chunk.js.LICENSE.txt +21 -0
  66. package/dist-scalprum/static/501.87de76da.chunk.js.map +1 -0
  67. package/dist-scalprum/static/{5010.a4aa0f8e.chunk.js → 5010.2228c754.chunk.js} +3 -3
  68. package/dist-scalprum/static/{5010.a4aa0f8e.chunk.js.map → 5010.2228c754.chunk.js.map} +1 -1
  69. package/dist-scalprum/static/5203.43732b3f.chunk.js +2 -0
  70. package/dist-scalprum/static/5203.43732b3f.chunk.js.map +1 -0
  71. package/dist-scalprum/static/5235.2a59dc45.chunk.js +2 -0
  72. package/dist-scalprum/static/5235.2a59dc45.chunk.js.map +1 -0
  73. package/dist-scalprum/static/5453.b3ee2392.chunk.js +2 -0
  74. package/dist-scalprum/static/5453.b3ee2392.chunk.js.map +1 -0
  75. package/dist-scalprum/static/{7556.aa8a002f.chunk.js → 5568.5dbce633.chunk.js} +3 -3
  76. package/dist-scalprum/static/{3466.43dfe991.chunk.js.LICENSE.txt → 5568.5dbce633.chunk.js.LICENSE.txt} +9 -0
  77. package/dist-scalprum/static/5568.5dbce633.chunk.js.map +1 -0
  78. package/dist-scalprum/static/6272.ef31cb1c.chunk.js +2 -0
  79. package/dist-scalprum/static/6272.ef31cb1c.chunk.js.map +1 -0
  80. package/dist-scalprum/static/6371.c4899d73.chunk.js +3 -0
  81. package/dist-scalprum/static/6371.c4899d73.chunk.js.map +1 -0
  82. package/dist-scalprum/static/6386.6386.ce38cef3.css +5 -0
  83. package/dist-scalprum/static/6386.6386.ce38cef3.css.map +1 -0
  84. package/dist-scalprum/static/6386.903891f3.chunk.js +3 -0
  85. package/dist-scalprum/static/6386.903891f3.chunk.js.LICENSE.txt +26 -0
  86. package/dist-scalprum/static/6386.903891f3.chunk.js.map +1 -0
  87. package/dist-scalprum/static/65.0e01be7c.chunk.js +2 -0
  88. package/dist-scalprum/static/65.0e01be7c.chunk.js.map +1 -0
  89. package/dist-scalprum/static/6753.76832e72.chunk.js +2 -0
  90. package/dist-scalprum/static/6753.76832e72.chunk.js.map +1 -0
  91. package/dist-scalprum/static/{8563.7e068fb0.chunk.js → 6763.d6cd937f.chunk.js} +3 -3
  92. package/dist-scalprum/static/6763.d6cd937f.chunk.js.map +1 -0
  93. package/dist-scalprum/static/{6800.736d5da3.chunk.js → 6800.8ec3a2eb.chunk.js} +2 -2
  94. package/dist-scalprum/static/6800.8ec3a2eb.chunk.js.map +1 -0
  95. package/dist-scalprum/static/{6840.4728fab9.chunk.js → 6840.6cc88a16.chunk.js} +2 -2
  96. package/dist-scalprum/static/6840.6cc88a16.chunk.js.map +1 -0
  97. package/dist-scalprum/static/7076.8745d395.chunk.js +2 -0
  98. package/dist-scalprum/static/7076.8745d395.chunk.js.map +1 -0
  99. package/dist-scalprum/static/7367.62c9669e.chunk.js +3 -0
  100. package/dist-scalprum/static/7367.62c9669e.chunk.js.LICENSE.txt +21 -0
  101. package/dist-scalprum/static/7367.62c9669e.chunk.js.map +1 -0
  102. package/dist-scalprum/static/7791.55db7365.chunk.js +2 -0
  103. package/dist-scalprum/static/7791.55db7365.chunk.js.map +1 -0
  104. package/dist-scalprum/static/8172.e89bbae7.chunk.js +2 -0
  105. package/dist-scalprum/static/8172.e89bbae7.chunk.js.map +1 -0
  106. package/dist-scalprum/static/8627.111cbac9.chunk.js +2 -0
  107. package/dist-scalprum/static/8627.111cbac9.chunk.js.map +1 -0
  108. package/dist-scalprum/static/8799.4ea4639c.chunk.js +2 -0
  109. package/dist-scalprum/static/8799.4ea4639c.chunk.js.map +1 -0
  110. package/dist-scalprum/static/9510.e4112e19.chunk.js +3 -0
  111. package/dist-scalprum/static/{2946.167c50c2.chunk.js.LICENSE.txt → 9510.e4112e19.chunk.js.LICENSE.txt} +0 -10
  112. package/dist-scalprum/static/9510.e4112e19.chunk.js.map +1 -0
  113. package/dist-scalprum/static/9644.7d342123.chunk.js +2 -0
  114. package/dist-scalprum/static/9644.7d342123.chunk.js.map +1 -0
  115. package/dist-scalprum/static/993.c164940e.chunk.js +2 -0
  116. package/dist-scalprum/static/993.c164940e.chunk.js.map +1 -0
  117. package/dist-scalprum/static/exposed-PluginRoot.5b6638e2.chunk.js +2 -0
  118. package/dist-scalprum/static/exposed-PluginRoot.5b6638e2.chunk.js.map +1 -0
  119. package/package.json +3 -1
  120. package/dist/components/PlanPolicyDetailPage/PlanPolicyDetailPage.esm.js +0 -89
  121. package/dist/components/PlanPolicyDetailPage/PlanPolicyDetailPage.esm.js.map +0 -1
  122. package/dist/components/PlanPolicyDetailPage/index.esm.js +0 -2
  123. package/dist/components/PlanPolicyDetailPage/index.esm.js.map +0 -1
  124. package/dist-scalprum/internal.plugin-kuadrant.58a9d553e354df0eed24.js +0 -2
  125. package/dist-scalprum/internal.plugin-kuadrant.58a9d553e354df0eed24.js.map +0 -1
  126. package/dist-scalprum/static/1085.536aa0fa.chunk.js +0 -3
  127. package/dist-scalprum/static/1085.536aa0fa.chunk.js.map +0 -1
  128. package/dist-scalprum/static/1613.71f0fccd.chunk.js +0 -3
  129. package/dist-scalprum/static/1613.71f0fccd.chunk.js.LICENSE.txt +0 -10
  130. package/dist-scalprum/static/1613.71f0fccd.chunk.js.map +0 -1
  131. package/dist-scalprum/static/1836.b74b4c40.chunk.js +0 -3
  132. package/dist-scalprum/static/1836.b74b4c40.chunk.js.LICENSE.txt +0 -10
  133. package/dist-scalprum/static/1836.b74b4c40.chunk.js.map +0 -1
  134. package/dist-scalprum/static/2198.5905970e.chunk.js +0 -2
  135. package/dist-scalprum/static/2198.5905970e.chunk.js.map +0 -1
  136. package/dist-scalprum/static/2628.6619bf8b.chunk.js.map +0 -1
  137. package/dist-scalprum/static/2759.fceb317f.chunk.js +0 -2
  138. package/dist-scalprum/static/2759.fceb317f.chunk.js.map +0 -1
  139. package/dist-scalprum/static/2928.4303c12e.chunk.js +0 -3
  140. package/dist-scalprum/static/2928.4303c12e.chunk.js.map +0 -1
  141. package/dist-scalprum/static/2946.167c50c2.chunk.js +0 -3
  142. package/dist-scalprum/static/2946.167c50c2.chunk.js.map +0 -1
  143. package/dist-scalprum/static/2967.ac3a4bee.chunk.js +0 -2
  144. package/dist-scalprum/static/2967.ac3a4bee.chunk.js.map +0 -1
  145. package/dist-scalprum/static/2987.1da15560.chunk.js +0 -2
  146. package/dist-scalprum/static/2987.1da15560.chunk.js.map +0 -1
  147. package/dist-scalprum/static/3459.5c90b5a3.chunk.js +0 -2
  148. package/dist-scalprum/static/3459.5c90b5a3.chunk.js.map +0 -1
  149. package/dist-scalprum/static/3466.43dfe991.chunk.js +0 -3
  150. package/dist-scalprum/static/3466.43dfe991.chunk.js.map +0 -1
  151. package/dist-scalprum/static/3503.66b6e510.chunk.js +0 -2
  152. package/dist-scalprum/static/3503.66b6e510.chunk.js.map +0 -1
  153. package/dist-scalprum/static/3650.515c743a.chunk.js +0 -2
  154. package/dist-scalprum/static/3650.515c743a.chunk.js.map +0 -1
  155. package/dist-scalprum/static/3657.59d45756.chunk.js +0 -3
  156. package/dist-scalprum/static/3657.59d45756.chunk.js.LICENSE.txt +0 -10
  157. package/dist-scalprum/static/3657.59d45756.chunk.js.map +0 -1
  158. package/dist-scalprum/static/428.0a290bc6.chunk.js +0 -2
  159. package/dist-scalprum/static/428.0a290bc6.chunk.js.map +0 -1
  160. package/dist-scalprum/static/441.9f02e61b.chunk.js +0 -2
  161. package/dist-scalprum/static/441.9f02e61b.chunk.js.map +0 -1
  162. package/dist-scalprum/static/5453.280127dd.chunk.js +0 -2
  163. package/dist-scalprum/static/5453.280127dd.chunk.js.map +0 -1
  164. package/dist-scalprum/static/5603.05d9ca7f.chunk.js +0 -2
  165. package/dist-scalprum/static/5603.05d9ca7f.chunk.js.map +0 -1
  166. package/dist-scalprum/static/6272.b5ee5195.chunk.js +0 -3
  167. package/dist-scalprum/static/6272.b5ee5195.chunk.js.LICENSE.txt +0 -9
  168. package/dist-scalprum/static/6272.b5ee5195.chunk.js.map +0 -1
  169. package/dist-scalprum/static/6371.c83dc422.chunk.js +0 -2
  170. package/dist-scalprum/static/6371.c83dc422.chunk.js.map +0 -1
  171. package/dist-scalprum/static/6422.97baf774.chunk.js +0 -2
  172. package/dist-scalprum/static/6422.97baf774.chunk.js.map +0 -1
  173. package/dist-scalprum/static/6800.736d5da3.chunk.js.map +0 -1
  174. package/dist-scalprum/static/6840.4728fab9.chunk.js.map +0 -1
  175. package/dist-scalprum/static/7556.aa8a002f.chunk.js.LICENSE.txt +0 -8
  176. package/dist-scalprum/static/7556.aa8a002f.chunk.js.map +0 -1
  177. package/dist-scalprum/static/7601.4df83556.chunk.js +0 -3
  178. package/dist-scalprum/static/7601.4df83556.chunk.js.LICENSE.txt +0 -9
  179. package/dist-scalprum/static/7601.4df83556.chunk.js.map +0 -1
  180. package/dist-scalprum/static/7791.39417f8c.chunk.js +0 -2
  181. package/dist-scalprum/static/7791.39417f8c.chunk.js.map +0 -1
  182. package/dist-scalprum/static/7984.c8511b89.chunk.js +0 -2
  183. package/dist-scalprum/static/7984.c8511b89.chunk.js.map +0 -1
  184. package/dist-scalprum/static/8365.d3360f18.chunk.js +0 -2
  185. package/dist-scalprum/static/8365.d3360f18.chunk.js.map +0 -1
  186. package/dist-scalprum/static/8563.7e068fb0.chunk.js.map +0 -1
  187. package/dist-scalprum/static/8799.7c749838.chunk.js +0 -2
  188. package/dist-scalprum/static/8799.7c749838.chunk.js.map +0 -1
  189. package/dist-scalprum/static/exposed-PluginRoot.a5792fb2.chunk.js +0 -2
  190. package/dist-scalprum/static/exposed-PluginRoot.a5792fb2.chunk.js.map +0 -1
  191. /package/dist-scalprum/static/{2928.4303c12e.chunk.js.LICENSE.txt → 1994.19e6a1c5.chunk.js.LICENSE.txt} +0 -0
  192. /package/dist-scalprum/static/{2628.6619bf8b.chunk.js.LICENSE.txt → 2628.0605e07f.chunk.js.LICENSE.txt} +0 -0
  193. /package/dist-scalprum/static/{5010.a4aa0f8e.chunk.js.LICENSE.txt → 5010.2228c754.chunk.js.LICENSE.txt} +0 -0
  194. /package/dist-scalprum/static/{1085.536aa0fa.chunk.js.LICENSE.txt → 6371.c4899d73.chunk.js.LICENSE.txt} +0 -0
  195. /package/dist-scalprum/static/{8563.7e068fb0.chunk.js.LICENSE.txt → 6763.d6cd937f.chunk.js.LICENSE.txt} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[2967],{32269:(e,a,t)=>{var n=t(4293),r=t(78920);a.A=void 0;var i=r(t(95478)),s=(0,n(t(74044)).default)(i.createElement("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"Visibility");a.A=s},35015:(e,a,t)=>{t.d(a,{A:()=>s});var n=t(95478),r=t(85608),i=t(71581);function s(e,a){void 0===a&&(a=[]);var t=function(e,a,t){void 0===a&&(a=[]),void 0===t&&(t={loading:!1});var s=(0,n.useRef)(0),l=(0,i.A)(),o=(0,n.useState)(t),c=o[0],d=o[1],h=(0,n.useCallback)(function(){for(var a=[],t=0;t<arguments.length;t++)a[t]=arguments[t];var n=++s.current;return c.loading||d(function(e){return(0,r.__assign)((0,r.__assign)({},e),{loading:!0})}),e.apply(void 0,a).then(function(e){return l()&&n===s.current&&d({value:e,loading:!1}),e},function(e){return l()&&n===s.current&&d({error:e,loading:!1}),e})},a);return[c,h]}(e,a,{loading:!0}),s=t[0],l=t[1];return(0,n.useEffect)(function(){l()},[l]),s}},46299:(e,a,t)=>{t.d(a,{S:()=>n});const n=e=>{const a={border:"none"};switch(e){case"Approved":return{...a,backgroundColor:"#4caf50",color:"#fff"};case"Rejected":return{...a,backgroundColor:"#f44336",color:"#fff"};default:return{...a,backgroundColor:"#ff9800",color:"#fff"}}}},52235:(e,a,t)=>{var n=t(4293),r=t(78920);a.A=void 0;var i=r(t(95478)),s=(0,n(t(74044)).default)(i.createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward");a.A=s},55735:(e,a,t)=>{var n=t(4293),r=t(78920);a.A=void 0;var i=r(t(95478)),s=(0,n(t(74044)).default)(i.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}),"ArrowBack");a.A=s},58837:(e,a,t)=>{t.d(a,{A:()=>s});var n=t(89575),r=t(11942),i=t(37247);const s=function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,r.makeStyles)(e,(0,n.A)({defaultTheme:i.A},a))}},61524:(e,a,t)=>{var n=t(4293),r=t(78920);a.A=void 0;var i=r(t(95478)),s=(0,n(t(74044)).default)(i.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");a.A=s},72967:(e,a,t)=>{t.r(a),t.d(a,{ApiKeyDetailPage:()=>M});var n=t(31085),r=t(95478),i=t(42469),s=t(22097),l=t(35015),o=t(86687),c=t(42367),d=t(289),h=t(15831),p=t(37725),u=t(46681),m=t(94641),x=t(96040),A=t(58837),v=t(10394),y=t(71677),f=t(29365),j=t(64947),g=t(72501),b=t(42899),k=t(67720),C=t(31653),w=t(38605),P=t(76891),S=t(61477),N=t(46805),I=t(93453),B=t(32269),z=t(61524),R=t(99594),T=t(77225),$=t(55735),L=t(39330),_=t(85121),E=t(46299);const D=(0,A.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5)},value:{marginBottom:e.spacing(2)},codeBlock:{backgroundColor:e.palette.background.default,padding:e.spacing(2),borderRadius:e.shape.borderRadius,fontFamily:"monospace",fontSize:"0.875rem",overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-all"},apiKeyContainer:{display:"flex",alignItems:"center",gap:e.spacing(1),padding:e.spacing(1.5),backgroundColor:e.palette.background.default,borderRadius:e.shape.borderRadius,fontFamily:"monospace"},tabPanel:{marginTop:e.spacing(2)}})),K=({code:e,onCopy:a})=>{const t=D();return(0,n.jsxs)(v.A,{position:"relative",children:[(0,n.jsx)(v.A,{className:t.codeBlock,children:e}),(0,n.jsx)(y.Ay,{title:"Copy code",children:(0,n.jsx)(f.A,{size:"small",style:{position:"absolute",top:8,right:8},onClick:a,children:(0,n.jsx)(R.A,{fontSize:"small"})})})]})},M=()=>{var e,a,t,A,M,W,H,q,F,V;const U=D(),{namespace:O,name:G}=(0,i.useParams)(),Y=(0,s.useApi)(s.configApiRef),J=(0,s.useApi)(s.fetchApiRef),Q=(0,s.useApi)(s.alertApiRef),X=Y.getString("backend.baseUrl"),[Z,ee]=(0,r.useState)(0),[ae,te]=(0,r.useState)(!1),[ne,re]=(0,r.useState)(null),[ie,se]=(0,r.useState)(!1),[le,oe]=(0,r.useState)(!1),[ce,de]=(0,r.useState)(!1),{value:he,loading:pe,error:ue}=(0,l.A)(async()=>{var e;const[a,t]=await Promise.all([J.fetch(`${X}/api/kuadrant/apikeys/${O}/${G}`),J.fetch(`${X}/api/kuadrant/apiproducts`)]);if(!a.ok)throw new Error("Failed to fetch API key");const n=await a.json();let r;return!1===(null===(e=n.status)||void 0===e?void 0:e.canReadSecret)&&oe(!0),t.ok&&(r=((await t.json()).items||[]).find(e=>{var a;return e.metadata.name===(null===(a=n.spec.apiProductRef)||void 0===a?void 0:a.name)&&e.metadata.namespace===n.metadata.namespace})),{apiKey:n,apiProduct:r}},[O,G,X,J]),me=null==he?void 0:he.apiKey,xe=null==he?void 0:he.apiProduct,Ae=async e=>{await navigator.clipboard.writeText(e),Q.post({message:"Copied to clipboard",severity:"success",display:"transient"})};if(pe)return(0,n.jsx)(o.k,{});if(ue||!me)return(0,n.jsx)(c._,{error:ue||new Error("API key not found")});const ve=(null===(e=me.status)||void 0===e?void 0:e.phase)||"Pending",ye="Approved"===ve?"Active":ve,fe=(null===(a=me.status)||void 0===a?void 0:a.apiHostname)||"api.example.com",je=ne||"<your-api-key>",ge=[{label:"cURL",code:`curl -H "Authorization: Bearer ${je}" \\\n https://${fe}/`},{label:"Node.js",code:`const response = await fetch('https://${fe}/', {\n headers: {\n 'Authorization': 'Bearer ${je}'\n }\n});\nconst data = await response.json();`},{label:"Python",code:`import requests\n\nresponse = requests.get(\n 'https://${fe}/',\n headers={'Authorization': 'Bearer ${je}'}\n)\ndata = response.json()`},{label:"Go",code:`package main\n\nimport (\n "net/http"\n)\n\nfunc main() {\n client := &http.Client{}\n req, _ := http.NewRequest("GET", "https://${fe}/", nil)\n req.Header.Set("Authorization", "Bearer ${je}")\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n}`}];return(0,n.jsxs)(d.Y,{themeId:"tool",children:[(0,n.jsx)(h.Y,{title:me.metadata.name,subtitle:`API Key for ${(null===(t=me.spec.apiProductRef)||void 0===t?void 0:t.name)||"unknown"}`,children:(0,n.jsx)(p.N_,{to:"/kuadrant/api-keys",children:(0,n.jsx)(j.A,{startIcon:(0,n.jsx)($.A,{}),children:"Back to API Keys"})})}),(0,n.jsxs)(u.U,{children:[(0,n.jsx)(v.A,{mb:2,children:(0,n.jsxs)(m.B,{"aria-label":"breadcrumb",children:[(0,n.jsx)(p.N_,{to:"/kuadrant/api-keys",children:"API keys"}),(0,n.jsx)(g.A,{children:me.metadata.name})]})}),(0,n.jsxs)(v.A,{mb:3,display:"flex",style:{gap:8},children:[(0,n.jsx)(p.N_,{to:`/catalog/default/api/${null===(A=me.spec.apiProductRef)||void 0===A?void 0:A.name}`,children:(0,n.jsx)(j.A,{variant:"outlined",startIcon:(0,n.jsx)(L.A,{}),"data-testid":"view-api-button",children:"View API"})}),(null==xe||null===(M=xe.spec)||void 0===M?void 0:M.contact)&&(xe.spec.contact.email||xe.spec.contact.url||xe.spec.contact.slack)&&(0,n.jsx)(j.A,{variant:"outlined",startIcon:(0,n.jsx)(_.A,{}),href:xe.spec.contact.email?`mailto:${xe.spec.contact.email}`:xe.spec.contact.slack?xe.spec.contact.slack:xe.spec.contact.url||"#",target:"_blank",rel:"noopener noreferrer",children:"Contact Owner"})]}),(0,n.jsxs)(b.A,{container:!0,spacing:3,children:[(0,n.jsx)(b.A,{item:!0,xs:12,md:6,children:(0,n.jsx)(x.n,{title:"API Key Details",children:(0,n.jsxs)(v.A,{children:[(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Status"}),(0,n.jsx)(v.A,{className:U.value,children:(0,n.jsx)(k.A,{label:ye,size:"small",style:(0,E.S)(ve),"data-testid":"api-key-status-chip"})}),(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"API Product"}),(0,n.jsx)(g.A,{variant:"body1",className:U.value,children:(0,n.jsx)(p.N_,{to:`/catalog/default/api/${null===(W=me.spec.apiProductRef)||void 0===W?void 0:W.name}/api-keys`,children:(null===(H=me.spec.apiProductRef)||void 0===H?void 0:H.name)||"unknown"})}),(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Tier"}),(0,n.jsx)(v.A,{className:U.value,children:(0,n.jsx)(k.A,{label:me.spec.planTier,size:"small",variant:"outlined"})}),(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Requester"}),(0,n.jsx)(g.A,{variant:"body1",className:U.value,children:null===(q=me.spec.requestedBy)||void 0===q?void 0:q.userId}),(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Requested"}),(0,n.jsx)(g.A,{variant:"body1",className:U.value,children:me.metadata.creationTimestamp?new Date(me.metadata.creationTimestamp).toLocaleDateString():"-"}),(null===(F=me.status)||void 0===F?void 0:F.reviewedBy)&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Reviewed By"}),(0,n.jsxs)(g.A,{variant:"body1",className:U.value,children:[me.status.reviewedBy.replace(/^user:default\//,""),me.status.reviewedAt&&(0,n.jsxs)(g.A,{variant:"caption",color:"textSecondary",children:[" ","on"," ",new Date(me.status.reviewedAt).toLocaleDateString()]})]})]})]})})}),(0,n.jsxs)(b.A,{item:!0,xs:12,md:6,children:[(0,n.jsx)(x.n,{title:"Use Case",children:(0,n.jsx)(g.A,{variant:"body1",children:me.spec.useCase||"No use case provided"})}),"Approved"===ve&&(0,n.jsx)(v.A,{mt:2,children:(0,n.jsx)(x.n,{title:"API Key",children:le&&!ne?(0,n.jsx)(y.Ay,{title:"This API key has already been viewed and cannot be retrieved again",children:(0,n.jsxs)(v.A,{display:"flex",alignItems:"center",children:[(0,n.jsx)(g.A,{variant:"body2",color:"textSecondary",children:"Already viewed - cannot be retrieved again"}),(0,n.jsx)(z.A,{fontSize:"small",color:"disabled",style:{marginLeft:8}})]})}):(0,n.jsxs)(v.A,{className:U.apiKeyContainer,children:[(0,n.jsx)(g.A,{variant:"body2",style:{fontFamily:"monospace",flex:1},children:ie?"Loading...":ae&&ne?ne:"•".repeat(32)}),ae&&ne&&(0,n.jsx)(y.Ay,{title:"Copy to clipboard",children:(0,n.jsx)(f.A,{size:"small",onClick:()=>Ae(ne),children:(0,n.jsx)(R.A,{fontSize:"small"})})}),(0,n.jsx)(y.Ay,{title:ae?"Hide API key":"Reveal API key (one-time only)",children:(0,n.jsx)("span",{children:(0,n.jsx)(f.A,{size:"small",onClick:()=>{ae?(te(!1),re(null)):le||de(!0)},disabled:ie||le&&!ne,children:ae?(0,n.jsx)(z.A,{fontSize:"small"}):(0,n.jsx)(B.A,{fontSize:"small"})})})})]})})})]}),"Approved"===ve&&(0,n.jsx)(b.A,{item:!0,xs:12,children:(0,n.jsx)(x.n,{title:"Code Examples",children:(0,n.jsxs)(v.A,{children:[(0,n.jsx)(C.A,{value:Z,onChange:(e,a)=>ee(a),indicatorColor:"primary",textColor:"primary",children:ge.map(e=>(0,n.jsx)(w.A,{label:e.label},e.label))}),(0,n.jsx)(v.A,{className:U.tabPanel,children:(0,n.jsx)(K,{code:ge[Z].code,onCopy:()=>Ae(ge[Z].code)})})]})})}),(null===(V=me.status)||void 0===V?void 0:V.limits)&&(0,n.jsx)(b.A,{item:!0,xs:12,children:(0,n.jsx)(x.n,{title:"Rate Limits",children:(0,n.jsxs)(b.A,{container:!0,spacing:2,children:[me.status.limits.daily&&(0,n.jsxs)(b.A,{item:!0,children:[(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Daily"}),(0,n.jsx)(g.A,{variant:"h6",children:me.status.limits.daily.toLocaleString()})]}),me.status.limits.weekly&&(0,n.jsxs)(b.A,{item:!0,children:[(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Weekly"}),(0,n.jsx)(g.A,{variant:"h6",children:me.status.limits.weekly.toLocaleString()})]}),me.status.limits.monthly&&(0,n.jsxs)(b.A,{item:!0,children:[(0,n.jsx)(g.A,{variant:"caption",className:U.label,children:"Monthly"}),(0,n.jsx)(g.A,{variant:"h6",children:me.status.limits.monthly.toLocaleString()})]})]})})})]})]}),(0,n.jsxs)(P.A,{open:ce,onClose:()=>de(!1),maxWidth:"sm",children:[(0,n.jsx)(S.A,{children:(0,n.jsxs)(v.A,{display:"flex",alignItems:"center",children:[(0,n.jsx)(T.A,{color:"primary",style:{marginRight:8}}),"View API Key"]})}),(0,n.jsxs)(N.A,{children:[(0,n.jsxs)(g.A,{variant:"body1",paragraph:!0,children:["This API key can only be viewed ",(0,n.jsx)("strong",{children:"once"}),". After you reveal it, you will not be able to retrieve it again."]}),(0,n.jsx)(g.A,{variant:"body2",color:"textSecondary",children:"Make sure to copy and store it securely before closing this view."})]}),(0,n.jsxs)(I.A,{children:[(0,n.jsx)(j.A,{onClick:()=>de(!1),children:"Cancel"}),(0,n.jsx)(j.A,{variant:"contained",color:"primary",onClick:()=>{de(!1),(async()=>{se(!0);try{const e=await J.fetch(`${X}/api/kuadrant/apikeys/${O}/${G}/secret`);if(e.ok){const a=await e.json();re(a.apiKey),oe(!0),te(!0)}else 403===e.status&&(oe(!0),Q.post({message:"This API key has already been viewed and cannot be retrieved again.",severity:"warning",display:"transient"}))}catch(e){console.error("Failed to fetch API key:",e),Q.post({message:"Failed to fetch API key",severity:"error",display:"transient"})}finally{se(!1)}})()},children:"Reveal API Key"})]})]})]})}},77225:(e,a,t)=>{var n=t(4293),r=t(78920);a.A=void 0;var i=r(t(95478)),s=(0,n(t(74044)).default)(i.createElement("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");a.A=s},85121:(e,a,t)=>{var n=t(4293),r=t(78920);a.A=void 0;var i=r(t(95478)),s=(0,n(t(74044)).default)(i.createElement("path",{d:"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"}),"Email");a.A=s},96040:(e,a,t)=>{t.d(a,{n:()=>B});var n=t(31085),r=t(40703),i=t(59469),s=t(48653),l=t(45685),o=t(37197),c=t(37976),d=t(53373),h=t.n(d),p=t(10394),u=t(72501),m=t(52235),x=t(37725);const A=(0,c.makeStyles)(e=>({root:{maxWidth:"fit-content",padding:e.spacing(2,2,2,2.5)},boxTitle:{margin:0,color:e.palette.textSubtle},arrow:{color:e.palette.textSubtle}}),{name:"BackstageBottomLink"});function v(e){const{link:a,title:t,onClick:r}=e,i=A();return(0,n.jsxs)(p.A,{children:[(0,n.jsx)(o.A,{}),(0,n.jsx)(x.N_,{to:a,onClick:r,underline:"none",children:(0,n.jsxs)(p.A,{display:"flex",alignItems:"center",className:i.root,children:[(0,n.jsx)(p.A,{className:i.boxTitle,fontWeight:"fontWeightBold",m:1,children:(0,n.jsx)(u.A,{children:(0,n.jsx)("strong",{children:t})})}),(0,n.jsx)(m.A,{className:i.arrow})]})})]})}var y=t(95478),f=t(64947);const j=(0,y.forwardRef)((e,a)=>(0,n.jsx)(x.N_,{ref:a,...e,color:"initial"})),g=(0,y.forwardRef)((e,a)=>(0,n.jsx)(f.A,{ref:a,component:j,...e}));var b=t(34169),k=t(16098),C=t(67550);const w=e=>{const{slackChannel:a}=e,{t}=(0,C.i)(k.O);return a?"string"==typeof a?(0,n.jsx)(u.A,{children:t("errorBoundary.title",{slackChannel:a})}):a.href?(0,n.jsx)(g,{to:a.href,variant:"contained",children:a.name}):(0,n.jsx)(u.A,{children:t("errorBoundary.title",{slackChannel:a.name})}):null},P=class extends y.Component{constructor(e){super(e),this.state={error:void 0,errorInfo:void 0}}componentDidCatch(e,a){console.error(`ErrorBoundary, error: ${e}`,{error:e,errorInfo:a}),this.setState({error:e,errorInfo:a})}render(){const{slackChannel:e,children:a}=this.props,{error:t}=this.state;return t?(0,n.jsx)(b.b,{title:"Something Went Wrong",error:t,children:(0,n.jsx)(w,{slackChannel:e})}):a}},S=(0,c.makeStyles)(e=>({noPadding:{padding:0,"&:last-child":{paddingBottom:0}},contentAlignBottom:{display:"flex",alignItems:"self-end"},header:{padding:e.spacing(2,2,2,2.5)},headerTitle:{fontWeight:e.typography.fontWeightBold},headerSubheader:{paddingTop:e.spacing(1)},headerAvatar:{},headerAction:{},headerContent:{},subheader:{display:"flex"}}),{name:"BackstageInfoCard"}),N=(0,c.withStyles)(e=>({root:{display:"inline-block",padding:e.spacing(8,8,0,0),float:"right"}}),{name:"BackstageInfoCardCardActionsTopRight"})(i.A),I={card:{flex:{display:"flex",flexDirection:"column"},fullHeight:{display:"flex",flexDirection:"column",height:"100%"},gridItem:{display:"flex",flexDirection:"column",height:"calc(100% - 10px)",marginBottom:"10px",breakInside:"avoid-page","@media print":{height:"auto"}}},cardContent:{fullHeight:{flex:1},gridItem:{flex:1}}};function B(e){const{title:a,subheader:t,divider:c=!0,deepLink:d,slackChannel:p,errorBoundaryProps:u,variant:m,alignContent:x="normal",children:A,headerStyle:y,headerProps:f,icon:j,action:g,actionsClassName:b,actions:k,cardClassName:C,actionsTopRight:w,className:B,noPadding:z,titleTypographyProps:R,subheaderTypographyProps:T}=e,$=S();let L={},_={};m&&m.split(/[\s]+/g).forEach(e=>{L={...L,...I.card[e]},_={..._,...I.cardContent[e]}});const E=u||(p?{slackChannel:p}:{});return(0,n.jsx)(r.A,{style:L,className:B,children:(0,n.jsxs)(P,{...E,children:[a&&(0,n.jsx)(l.A,{classes:{root:h()($.header),title:$.headerTitle,subheader:$.headerSubheader,avatar:$.headerAvatar,action:$.headerAction,content:$.headerContent},title:a,subheader:t||j?(0,n.jsxs)("div",{"data-testid":"info-card-subheader",children:[t&&(0,n.jsx)("div",{className:$.subheader,children:t}),j]}):null,action:g,style:{...y},titleTypographyProps:R,subheaderTypographyProps:T,...f}),w&&(0,n.jsx)(N,{children:w}),c&&(0,n.jsx)(o.A,{}),(0,n.jsx)(s.A,{className:h()(C,{[$.noPadding]:z,[$.contentAlignBottom]:"bottom"===x}),style:_,children:A}),k&&(0,n.jsx)(i.A,{className:b,children:k}),d&&(0,n.jsx)(v,{...d})]})})}}}]);
2
- //# sourceMappingURL=2967.ac3a4bee.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/2967.ac3a4bee.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Visibility.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsync.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsyncFn.js","webpack://internal.plugin-kuadrant/./src/utils/styles.ts","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ArrowForward.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ArrowBack.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/styles/makeStyles.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/VisibilityOff.js","webpack://internal.plugin-kuadrant/./src/components/ApiKeyDetailPage/ApiKeyDetailPage.tsx","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Warning.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Email.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/BottomLink/BottomLink.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/LinkButton/LinkButton.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/ErrorBoundary/ErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/InfoCard/InfoCard.esm.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { CSSProperties } from \"react\";\n\n/**\n * Returns inline styles for API key status chips.\n * Uses inline styles to ensure proper specificity with Material-UI Chip.\n */\nexport const getStatusChipStyle = (phase: string): CSSProperties => {\n const base = { border: \"none\" };\n switch (phase) {\n case \"Approved\":\n return { ...base, backgroundColor: \"#4caf50\", color: \"#fff\" };\n case \"Rejected\":\n return { ...base, backgroundColor: \"#f44336\", color: \"#fff\" };\n default:\n return { ...base, backgroundColor: \"#ff9800\", color: \"#fff\" };\n }\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n}), 'ArrowBack');\n\nexports.default = _default;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { makeStyles as makeStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return makeStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default makeStyles;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","import React, { useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport {\n useApi,\n configApiRef,\n fetchApiRef,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { useAsync } from \"react-use\";\nimport {\n Header,\n Page,\n Content,\n Progress,\n ResponseErrorPanel,\n InfoCard,\n Link,\n Breadcrumbs,\n} from \"@backstage/core-components\";\nimport {\n Box,\n Grid,\n Typography,\n Chip,\n IconButton,\n Tooltip,\n Tabs,\n Tab,\n Button,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n makeStyles,\n} from \"@material-ui/core\";\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport OpenInNewIcon from \"@material-ui/icons/OpenInNew\";\nimport EmailIcon from \"@material-ui/icons/Email\";\nimport { APIKey, APIProduct } from \"../../types/api-management\";\nimport { getStatusChipStyle } from \"../../utils/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n },\n value: {\n marginBottom: theme.spacing(2),\n },\n codeBlock: {\n backgroundColor: theme.palette.background.default,\n padding: theme.spacing(2),\n borderRadius: theme.shape.borderRadius,\n fontFamily: \"monospace\",\n fontSize: \"0.875rem\",\n overflow: \"auto\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-all\",\n },\n apiKeyContainer: {\n display: \"flex\",\n alignItems: \"center\",\n gap: theme.spacing(1),\n padding: theme.spacing(1.5),\n backgroundColor: theme.palette.background.default,\n borderRadius: theme.shape.borderRadius,\n fontFamily: \"monospace\",\n },\n tabPanel: {\n marginTop: theme.spacing(2),\n },\n}));\n\nconst CodeExample = ({\n code,\n onCopy,\n}: {\n code: string;\n onCopy: () => void;\n}) => {\n const classes = useStyles();\n\n return (\n <Box position=\"relative\">\n <Box className={classes.codeBlock}>{code}</Box>\n <Tooltip title=\"Copy code\">\n <IconButton\n size=\"small\"\n style={{ position: \"absolute\", top: 8, right: 8 }}\n onClick={onCopy}\n >\n <FileCopyIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n\nexport const ApiKeyDetailPage = () => {\n const classes = useStyles();\n const { namespace, name } = useParams<{ namespace: string; name: string }>();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString(\"backend.baseUrl\");\n\n const [selectedTab, setSelectedTab] = useState(0);\n const [showApiKey, setShowApiKey] = useState(false);\n const [apiKeyValue, setApiKeyValue] = useState<string | null>(null);\n const [apiKeyLoading, setApiKeyLoading] = useState(false);\n const [alreadyRead, setAlreadyRead] = useState(false);\n const [showWarning, setShowWarning] = useState(false);\n\n const {\n value: data,\n loading,\n error,\n } = useAsync(async () => {\n const [apiKeyResponse, productsResponse] = await Promise.all([\n fetchApi.fetch(`${backendUrl}/api/kuadrant/apikeys/${namespace}/${name}`),\n fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts`),\n ]);\n\n if (!apiKeyResponse.ok) {\n throw new Error(\"Failed to fetch API key\");\n }\n const apiKeyData = await apiKeyResponse.json();\n\n // check if key has already been read\n if (apiKeyData.status?.canReadSecret === false) {\n setAlreadyRead(true);\n }\n\n // find matching api product to get contact info\n let apiProduct: APIProduct | undefined;\n if (productsResponse.ok) {\n const productsData = await productsResponse.json();\n apiProduct = (productsData.items || []).find(\n (p: APIProduct) =>\n p.metadata.name === apiKeyData.spec.apiProductRef?.name &&\n p.metadata.namespace === apiKeyData.metadata.namespace,\n );\n }\n\n return { apiKey: apiKeyData as APIKey, apiProduct };\n }, [namespace, name, backendUrl, fetchApi]);\n\n const apiKey = data?.apiKey;\n const apiProduct = data?.apiProduct;\n\n const fetchApiKeySecret = async () => {\n setApiKeyLoading(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apikeys/${namespace}/${name}/secret`,\n );\n if (response.ok) {\n const data = await response.json();\n setApiKeyValue(data.apiKey);\n setAlreadyRead(true);\n setShowApiKey(true);\n } else if (response.status === 403) {\n setAlreadyRead(true);\n alertApi.post({\n message:\n \"This API key has already been viewed and cannot be retrieved again.\",\n severity: \"warning\",\n display: \"transient\",\n });\n }\n } catch (err) {\n console.error(\"Failed to fetch API key:\", err);\n alertApi.post({\n message: \"Failed to fetch API key\",\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setApiKeyLoading(false);\n }\n };\n\n const handleRevealClick = () => {\n if (showApiKey) {\n setShowApiKey(false);\n setApiKeyValue(null);\n } else if (!alreadyRead) {\n setShowWarning(true);\n }\n };\n\n const handleConfirmReveal = () => {\n setShowWarning(false);\n fetchApiKeySecret();\n };\n\n const handleCopy = async (text: string) => {\n await navigator.clipboard.writeText(text);\n alertApi.post({\n message: \"Copied to clipboard\",\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n if (loading) {\n return <Progress />;\n }\n\n if (error || !apiKey) {\n return (\n <ResponseErrorPanel error={error || new Error(\"API key not found\")} />\n );\n }\n\n const phase = apiKey.status?.phase || \"Pending\";\n const statusLabel = phase === \"Approved\" ? \"Active\" : phase;\n const hostname = apiKey.status?.apiHostname || \"api.example.com\";\n const displayApiKey = apiKeyValue || \"<your-api-key>\";\n\n // code examples\n const curlExample = `curl -H \"Authorization: Bearer ${displayApiKey}\" \\\\\n https://${hostname}/`;\n\n const nodeExample = `const response = await fetch('https://${hostname}/', {\n headers: {\n 'Authorization': 'Bearer ${displayApiKey}'\n }\n});\nconst data = await response.json();`;\n\n const pythonExample = `import requests\n\nresponse = requests.get(\n 'https://${hostname}/',\n headers={'Authorization': 'Bearer ${displayApiKey}'}\n)\ndata = response.json()`;\n\n const goExample = `package main\n\nimport (\n \"net/http\"\n)\n\nfunc main() {\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", \"https://${hostname}/\", nil)\n req.Header.Set(\"Authorization\", \"Bearer ${displayApiKey}\")\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n}`;\n\n const codeExamples = [\n { label: \"cURL\", code: curlExample },\n { label: \"Node.js\", code: nodeExample },\n { label: \"Python\", code: pythonExample },\n { label: \"Go\", code: goExample },\n ];\n\n return (\n <Page themeId=\"tool\">\n <Header\n title={apiKey.metadata.name}\n subtitle={`API Key for ${apiKey.spec.apiProductRef?.name || \"unknown\"}`}\n >\n <Link to=\"/kuadrant/api-keys\">\n <Button startIcon={<ArrowBackIcon />}>Back to API Keys</Button>\n </Link>\n </Header>\n <Content>\n <Box mb={2}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"/kuadrant/api-keys\">API keys</Link>\n <Typography>{apiKey.metadata.name}</Typography>\n </Breadcrumbs>\n </Box>\n\n <Box mb={3} display=\"flex\" style={{ gap: 8 }}>\n <Link to={`/catalog/default/api/${apiKey.spec.apiProductRef?.name}`}>\n <Button\n variant=\"outlined\"\n startIcon={<OpenInNewIcon />}\n data-testid=\"view-api-button\"\n >\n View API\n </Button>\n </Link>\n {apiProduct?.spec?.contact &&\n (apiProduct.spec.contact.email ||\n apiProduct.spec.contact.url ||\n apiProduct.spec.contact.slack) && (\n <Button\n variant=\"outlined\"\n startIcon={<EmailIcon />}\n href={\n apiProduct.spec.contact.email\n ? `mailto:${apiProduct.spec.contact.email}`\n : apiProduct.spec.contact.slack\n ? apiProduct.spec.contact.slack\n : apiProduct.spec.contact.url || \"#\"\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Contact Owner\n </Button>\n )}\n </Box>\n\n <Grid container spacing={3}>\n <Grid item xs={12} md={6}>\n <InfoCard title=\"API Key Details\">\n <Box>\n <Typography variant=\"caption\" className={classes.label}>\n Status\n </Typography>\n <Box className={classes.value}>\n <Chip\n label={statusLabel}\n size=\"small\"\n style={getStatusChipStyle(phase)}\n data-testid=\"api-key-status-chip\"\n />\n </Box>\n\n <Typography variant=\"caption\" className={classes.label}>\n API Product\n </Typography>\n <Typography variant=\"body1\" className={classes.value}>\n <Link\n to={`/catalog/default/api/${apiKey.spec.apiProductRef?.name}/api-keys`}\n >\n {apiKey.spec.apiProductRef?.name || \"unknown\"}\n </Link>\n </Typography>\n\n <Typography variant=\"caption\" className={classes.label}>\n Tier\n </Typography>\n <Box className={classes.value}>\n <Chip\n label={apiKey.spec.planTier}\n size=\"small\"\n variant=\"outlined\"\n />\n </Box>\n\n <Typography variant=\"caption\" className={classes.label}>\n Requester\n </Typography>\n <Typography variant=\"body1\" className={classes.value}>\n {apiKey.spec.requestedBy?.userId}\n </Typography>\n\n <Typography variant=\"caption\" className={classes.label}>\n Requested\n </Typography>\n <Typography variant=\"body1\" className={classes.value}>\n {apiKey.metadata.creationTimestamp\n ? new Date(\n apiKey.metadata.creationTimestamp,\n ).toLocaleDateString()\n : \"-\"}\n </Typography>\n\n {apiKey.status?.reviewedBy && (\n <>\n <Typography variant=\"caption\" className={classes.label}>\n Reviewed By\n </Typography>\n <Typography variant=\"body1\" className={classes.value}>\n {apiKey.status.reviewedBy.replace(/^user:default\\//, \"\")}\n {apiKey.status.reviewedAt && (\n <Typography variant=\"caption\" color=\"textSecondary\">\n {\" \"}\n on{\" \"}\n {new Date(\n apiKey.status.reviewedAt,\n ).toLocaleDateString()}\n </Typography>\n )}\n </Typography>\n </>\n )}\n </Box>\n </InfoCard>\n </Grid>\n\n <Grid item xs={12} md={6}>\n <InfoCard title=\"Use Case\">\n <Typography variant=\"body1\">\n {apiKey.spec.useCase || \"No use case provided\"}\n </Typography>\n </InfoCard>\n\n {phase === \"Approved\" && (\n <Box mt={2}>\n <InfoCard title=\"API Key\">\n {alreadyRead && !apiKeyValue ? (\n <Tooltip title=\"This API key has already been viewed and cannot be retrieved again\">\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant=\"body2\" color=\"textSecondary\">\n Already viewed - cannot be retrieved again\n </Typography>\n <VisibilityOffIcon\n fontSize=\"small\"\n color=\"disabled\"\n style={{ marginLeft: 8 }}\n />\n </Box>\n </Tooltip>\n ) : (\n <Box className={classes.apiKeyContainer}>\n <Typography\n variant=\"body2\"\n style={{ fontFamily: \"monospace\", flex: 1 }}\n >\n {apiKeyLoading\n ? \"Loading...\"\n : showApiKey && apiKeyValue\n ? apiKeyValue\n : \"•\".repeat(32)}\n </Typography>\n {showApiKey && apiKeyValue && (\n <Tooltip title=\"Copy to clipboard\">\n <IconButton\n size=\"small\"\n onClick={() => handleCopy(apiKeyValue)}\n >\n <FileCopyIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip\n title={\n showApiKey\n ? \"Hide API key\"\n : \"Reveal API key (one-time only)\"\n }\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleRevealClick}\n disabled={\n apiKeyLoading || (alreadyRead && !apiKeyValue)\n }\n >\n {showApiKey ? (\n <VisibilityOffIcon fontSize=\"small\" />\n ) : (\n <VisibilityIcon fontSize=\"small\" />\n )}\n </IconButton>\n </span>\n </Tooltip>\n </Box>\n )}\n </InfoCard>\n </Box>\n )}\n </Grid>\n\n {phase === \"Approved\" && (\n <Grid item xs={12}>\n <InfoCard title=\"Code Examples\">\n <Box>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n {codeExamples.map((ex) => (\n <Tab key={ex.label} label={ex.label} />\n ))}\n </Tabs>\n <Box className={classes.tabPanel}>\n <CodeExample\n code={codeExamples[selectedTab].code}\n onCopy={() => handleCopy(codeExamples[selectedTab].code)}\n />\n </Box>\n </Box>\n </InfoCard>\n </Grid>\n )}\n\n {apiKey.status?.limits && (\n <Grid item xs={12}>\n <InfoCard title=\"Rate Limits\">\n <Grid container spacing={2}>\n {apiKey.status.limits.daily && (\n <Grid item>\n <Typography variant=\"caption\" className={classes.label}>\n Daily\n </Typography>\n <Typography variant=\"h6\">\n {apiKey.status.limits.daily.toLocaleString()}\n </Typography>\n </Grid>\n )}\n {apiKey.status.limits.weekly && (\n <Grid item>\n <Typography variant=\"caption\" className={classes.label}>\n Weekly\n </Typography>\n <Typography variant=\"h6\">\n {apiKey.status.limits.weekly.toLocaleString()}\n </Typography>\n </Grid>\n )}\n {apiKey.status.limits.monthly && (\n <Grid item>\n <Typography variant=\"caption\" className={classes.label}>\n Monthly\n </Typography>\n <Typography variant=\"h6\">\n {apiKey.status.limits.monthly.toLocaleString()}\n </Typography>\n </Grid>\n )}\n </Grid>\n </InfoCard>\n </Grid>\n )}\n </Grid>\n </Content>\n\n <Dialog\n open={showWarning}\n onClose={() => setShowWarning(false)}\n maxWidth=\"sm\"\n >\n <DialogTitle>\n <Box display=\"flex\" alignItems=\"center\">\n <WarningIcon color=\"primary\" style={{ marginRight: 8 }} />\n View API Key\n </Box>\n </DialogTitle>\n <DialogContent>\n <Typography variant=\"body1\" paragraph>\n This API key can only be viewed <strong>once</strong>. After you\n reveal it, you will not be able to retrieve it again.\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Make sure to copy and store it securely before closing this view.\n </Typography>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setShowWarning(false)}>Cancel</Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleConfirmReveal}\n >\n Reveal API Key\n </Button>\n </DialogActions>\n </Dialog>\n </Page>\n );\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"\n}), 'Email');\n\nexports.default = _default;","import { jsxs, jsx } from 'react/jsx-runtime';\nimport Box from '@material-ui/core/Box';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ArrowIcon from '@material-ui/icons/ArrowForward';\nimport { Link } from '../../components/Link/Link.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n maxWidth: \"fit-content\",\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n boxTitle: {\n margin: 0,\n color: theme.palette.textSubtle\n },\n arrow: {\n color: theme.palette.textSubtle\n }\n }),\n { name: \"BackstageBottomLink\" }\n);\nfunction BottomLink(props) {\n const { link, title, onClick } = props;\n const classes = useStyles();\n return /* @__PURE__ */ jsxs(Box, { children: [\n /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(Link, { to: link, onClick, underline: \"none\", children: /* @__PURE__ */ jsxs(Box, { display: \"flex\", alignItems: \"center\", className: classes.root, children: [\n /* @__PURE__ */ jsx(Box, { className: classes.boxTitle, fontWeight: \"fontWeightBold\", m: 1, children: /* @__PURE__ */ jsx(Typography, { children: /* @__PURE__ */ jsx(\"strong\", { children: title }) }) }),\n /* @__PURE__ */ jsx(ArrowIcon, { className: classes.arrow })\n ] }) })\n ] });\n}\n\nexport { BottomLink };\n//# sourceMappingURL=BottomLink.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Button$1 from '@material-ui/core/Button';\nimport { forwardRef } from 'react';\nimport { Link } from '../Link/Link.esm.js';\n\nconst LinkWrapper = forwardRef((props, ref) => /* @__PURE__ */ jsx(Link, { ref, ...props, color: \"initial\" }));\nconst LinkButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(Button$1, { ref, component: LinkWrapper, ...props }));\nconst Button = LinkButton;\n\nexport { Button, LinkButton };\n//# sourceMappingURL=LinkButton.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Typography from '@material-ui/core/Typography';\nimport { Component } from 'react';\nimport { LinkButton } from '../../components/LinkButton/LinkButton.esm.js';\nimport { ErrorPanel } from '../../components/ErrorPanel/ErrorPanel.esm.js';\nimport { coreComponentsTranslationRef } from '../../translation.esm.js';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst SlackLink = (props) => {\n const { slackChannel } = props;\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n if (!slackChannel) {\n return null;\n } else if (typeof slackChannel === \"string\") {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", { slackChannel }) });\n } else if (!slackChannel.href) {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", {\n slackChannel: slackChannel.name\n }) });\n }\n return /* @__PURE__ */ jsx(LinkButton, { to: slackChannel.href, variant: \"contained\", children: slackChannel.name });\n};\nconst ErrorBoundary = class ErrorBoundary2 extends Component {\n constructor(props) {\n super(props);\n this.state = {\n error: void 0,\n errorInfo: void 0\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(`ErrorBoundary, error: ${error}`, { error, errorInfo });\n this.setState({ error, errorInfo });\n }\n render() {\n const { slackChannel, children } = this.props;\n const { error } = this.state;\n if (!error) {\n return children;\n }\n return /* @__PURE__ */ jsx(ErrorPanel, { title: \"Something Went Wrong\", error, children: /* @__PURE__ */ jsx(SlackLink, { slackChannel }) });\n }\n};\n\nexport { ErrorBoundary };\n//# sourceMappingURL=ErrorBoundary.esm.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { BottomLink } from '../BottomLink/BottomLink.esm.js';\nimport { ErrorBoundary } from '../ErrorBoundary/ErrorBoundary.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n noPadding: {\n padding: 0,\n \"&:last-child\": {\n paddingBottom: 0\n }\n },\n contentAlignBottom: {\n display: \"flex\",\n alignItems: \"self-end\"\n },\n header: {\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n headerTitle: {\n fontWeight: theme.typography.fontWeightBold\n },\n headerSubheader: {\n paddingTop: theme.spacing(1)\n },\n headerAvatar: {},\n headerAction: {},\n headerContent: {},\n subheader: {\n display: \"flex\"\n }\n }),\n { name: \"BackstageInfoCard\" }\n);\nconst CardActionsTopRight = withStyles(\n (theme) => ({\n root: {\n display: \"inline-block\",\n padding: theme.spacing(8, 8, 0, 0),\n float: \"right\"\n }\n }),\n { name: \"BackstageInfoCardCardActionsTopRight\" }\n)(CardActions);\nconst VARIANT_STYLES = {\n card: {\n flex: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n fullHeight: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\"\n },\n gridItem: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100% - 10px)\",\n // for pages without content header\n marginBottom: \"10px\",\n breakInside: \"avoid-page\",\n \"@media print\": {\n height: \"auto\"\n }\n }\n },\n cardContent: {\n fullHeight: {\n flex: 1\n },\n gridItem: {\n flex: 1\n }\n }\n};\nfunction InfoCard(props) {\n const {\n title,\n subheader,\n divider = true,\n deepLink,\n slackChannel,\n errorBoundaryProps,\n variant,\n alignContent = \"normal\",\n children,\n headerStyle,\n headerProps,\n icon,\n action,\n actionsClassName,\n actions,\n cardClassName,\n actionsTopRight,\n className,\n noPadding,\n titleTypographyProps,\n subheaderTypographyProps\n } = props;\n const classes = useStyles();\n let calculatedStyle = {};\n let calculatedCardStyle = {};\n if (variant) {\n const variants = variant.split(/[\\s]+/g);\n variants.forEach((name) => {\n calculatedStyle = {\n ...calculatedStyle,\n ...VARIANT_STYLES.card[name]\n };\n calculatedCardStyle = {\n ...calculatedCardStyle,\n ...VARIANT_STYLES.cardContent[name]\n };\n });\n }\n const cardSubTitle = () => {\n if (!subheader && !icon) {\n return null;\n }\n return /* @__PURE__ */ jsxs(\"div\", { \"data-testid\": \"info-card-subheader\", children: [\n subheader && /* @__PURE__ */ jsx(\"div\", { className: classes.subheader, children: subheader }),\n icon\n ] });\n };\n const errProps = errorBoundaryProps || (slackChannel ? { slackChannel } : {});\n return /* @__PURE__ */ jsx(Card, { style: calculatedStyle, className, children: /* @__PURE__ */ jsxs(ErrorBoundary, { ...errProps, children: [\n title && /* @__PURE__ */ jsx(\n CardHeader,\n {\n classes: {\n root: classNames(classes.header),\n title: classes.headerTitle,\n subheader: classes.headerSubheader,\n avatar: classes.headerAvatar,\n action: classes.headerAction,\n content: classes.headerContent\n },\n title,\n subheader: cardSubTitle(),\n action,\n style: { ...headerStyle },\n titleTypographyProps,\n subheaderTypographyProps,\n ...headerProps\n }\n ),\n actionsTopRight && /* @__PURE__ */ jsx(CardActionsTopRight, { children: actionsTopRight }),\n divider && /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(\n CardContent,\n {\n className: classNames(cardClassName, {\n [classes.noPadding]: noPadding,\n [classes.contentAlignBottom]: alignContent === \"bottom\"\n }),\n style: calculatedCardStyle,\n children\n }\n ),\n actions && /* @__PURE__ */ jsx(CardActions, { className: actionsClassName, children: actions }),\n deepLink && /* @__PURE__ */ jsx(BottomLink, { ...deepLink })\n ] }) });\n}\n\nexport { InfoCard };\n//# sourceMappingURL=InfoCard.esm.js.map\n"],"names":["_interopRequireDefault","_interopRequireWildcard","exports","React","_default","default","createElement","d","useAsync","fn","deps","_a","initialState","loading","lastCallId","useRef","isMounted","useMountedState","useState","state","set","callback","useCallback","args","_i","arguments","length","callId","current","prevState","__assign","apply","then","value","error","useAsyncFn","useEffect","getStatusChipStyle","phase","base","border","backgroundColor","color","stylesOrCreator","options","undefined","makeStyles","defaultTheme","useStyles","theme","label","fontWeight","palette","text","secondary","marginBottom","spacing","codeBlock","background","padding","borderRadius","shape","fontFamily","fontSize","overflow","whiteSpace","wordBreak","apiKeyContainer","display","alignItems","gap","tabPanel","marginTop","CodeExample","code","onCopy","classes","Box","position","className","Tooltip","title","IconButton","size","style","top","right","onClick","FileCopyIcon","ApiKeyDetailPage","apiKey","apiProduct","namespace","name","useParams","config","useApi","configApiRef","fetchApi","fetchApiRef","alertApi","alertApiRef","backendUrl","getString","selectedTab","setSelectedTab","showApiKey","setShowApiKey","apiKeyValue","setApiKeyValue","apiKeyLoading","setApiKeyLoading","alreadyRead","setAlreadyRead","showWarning","setShowWarning","data","async","apiKeyData","apiKeyResponse","productsResponse","Promise","all","fetch","ok","Error","json","status","canReadSecret","items","find","p","metadata","spec","apiProductRef","handleCopy","navigator","clipboard","writeText","post","message","severity","Progress","ResponseErrorPanel","statusLabel","hostname","apiHostname","displayApiKey","codeExamples","Page","themeId","Header","subtitle","Link","to","Button","startIcon","ArrowBackIcon","Content","mb","Breadcrumbs","aria-label","Typography","variant","OpenInNewIcon","data-testid","contact","email","url","slack","EmailIcon","href","target","rel","Grid","container","item","xs","md","InfoCard","Chip","planTier","requestedBy","userId","creationTimestamp","Date","toLocaleDateString","reviewedBy","replace","reviewedAt","useCase","mt","VisibilityOffIcon","marginLeft","flex","repeat","span","disabled","VisibilityIcon","Tabs","onChange","_","newValue","indicatorColor","textColor","map","ex","Tab","limits","daily","toLocaleString","weekly","monthly","Dialog","open","onClose","maxWidth","DialogTitle","WarningIcon","marginRight","DialogContent","paragraph","strong","DialogActions","response","err","console","fetchApiKeySecret","root","boxTitle","margin","textSubtle","arrow","BottomLink","props","link","jsxs","children","jsx","Divider","underline","m","A","LinkWrapper","forwardRef","ref","LinkButton","component","SlackLink","slackChannel","t","ErrorBoundary","Component","constructor","super","this","errorInfo","componentDidCatch","setState","render","noPadding","paddingBottom","contentAlignBottom","header","headerTitle","typography","fontWeightBold","headerSubheader","paddingTop","headerAvatar","headerAction","headerContent","subheader","CardActionsTopRight","withStyles","float","CardActions","VARIANT_STYLES","card","flexDirection","fullHeight","height","gridItem","breakInside","cardContent","divider","deepLink","errorBoundaryProps","alignContent","headerStyle","headerProps","icon","action","actionsClassName","actions","cardClassName","actionsTopRight","titleTypographyProps","subheaderTypographyProps","calculatedStyle","calculatedCardStyle","split","forEach","errProps","Card","CardHeader","avatar","content","CardContent"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[2987],{18171:(e,t,n)=>{n.d(t,{A:()=>m});var o=n(89575),r=n(90689),i=n(39850),a=n(95478),l=n(79392),s=n(43457),c=n(54917),d=n(41188),p=n(19878),u={entering:{opacity:1},entered:{opacity:1}},f={enter:s.p0.enteringScreen,exit:s.p0.leavingScreen};const m=a.forwardRef(function(e,t){var n=e.children,s=e.disableStrictModeCompat,m=void 0!==s&&s,v=e.in,h=e.onEnter,b=e.onEntered,g=e.onEntering,A=e.onExit,x=e.onExited,y=e.onExiting,E=e.style,w=e.TransitionComponent,C=void 0===w?l.Ay:w,k=e.timeout,S=void 0===k?f:k,W=(0,i.A)(e,["children","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","TransitionComponent","timeout"]),B=(0,c.A)(),N=B.unstable_strictMode&&!m,T=a.useRef(null),M=(0,p.A)(n.ref,t),R=(0,p.A)(N?T:void 0,M),D=function(e){return function(t,n){if(e){var o=N?[T.current,t]:[t,n],i=(0,r.A)(o,2),a=i[0],l=i[1];void 0===l?e(a):e(a,l)}}},F=D(g),L=D(function(e,t){(0,d.q)(e);var n=(0,d.c)({style:E,timeout:S},{mode:"enter"});e.style.webkitTransition=B.transitions.create("opacity",n),e.style.transition=B.transitions.create("opacity",n),h&&h(e,t)}),P=D(b),z=D(y),I=D(function(e){var t=(0,d.c)({style:E,timeout:S},{mode:"exit"});e.style.webkitTransition=B.transitions.create("opacity",t),e.style.transition=B.transitions.create("opacity",t),A&&A(e)}),H=D(x);return a.createElement(C,(0,o.A)({appear:!0,in:v,nodeRef:N?T:void 0,onEnter:L,onEntered:P,onEntering:F,onExit:I,onExited:H,onExiting:z,timeout:S},W),function(e,t){return a.cloneElement(n,(0,o.A)({style:(0,o.A)({opacity:0,visibility:"exited"!==e||v?void 0:"hidden"},u[e],E,n.props.style),ref:R},t))})})},31653:(e,t,n)=>{n.d(t,{A:()=>C});var o,r=n(89575),i=n(39850),a=n(24586),l=n(95478),s=(n(26948),n(36274)),c=n(2589),d=n(82431);function p(){if(o)return o;var e=document.createElement("div"),t=document.createElement("div");return t.style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),o="reverse",e.scrollLeft>0?o="default":(e.scrollLeft=1,0===e.scrollLeft&&(o="negative")),document.body.removeChild(e),o}function u(e,t){var n=e.scrollLeft;if("rtl"!==t)return n;switch(p()){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n;default:return n}}function f(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}var m={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function v(e){var t=e.onChange,n=(0,i.A)(e,["onChange"]),o=l.useRef(),a=l.useRef(null),s=function(){o.current=a.current.offsetHeight-a.current.clientHeight};return l.useEffect(function(){var e=(0,c.A)(function(){var e=o.current;s(),e!==o.current&&t(o.current)});return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}},[t]),l.useEffect(function(){s(),t(o.current)},[t]),l.createElement("div",(0,r.A)({style:m,ref:a},n))}var h=n(7031),b=n(11192),g=l.forwardRef(function(e,t){var n=e.classes,o=e.className,a=e.color,c=e.orientation,d=(0,i.A)(e,["classes","className","color","orientation"]);return l.createElement("span",(0,r.A)({className:(0,s.A)(n.root,n["color".concat((0,b.A)(a))],o,"vertical"===c&&n.vertical),ref:t},d))});const A=(0,h.A)(function(e){return{root:{position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create()},colorPrimary:{backgroundColor:e.palette.primary.main},colorSecondary:{backgroundColor:e.palette.secondary.main},vertical:{height:"100%",width:2,right:0}}},{name:"PrivateTabIndicator"})(g);var x=n(41433),y=n(70020),E=n(54917),w=l.forwardRef(function(e,t){var n=e["aria-label"],o=e["aria-labelledby"],m=e.action,h=e.centered,b=void 0!==h&&h,g=e.children,w=e.classes,C=e.className,k=e.component,S=void 0===k?"div":k,W=e.indicatorColor,B=void 0===W?"secondary":W,N=e.onChange,T=e.orientation,M=void 0===T?"horizontal":T,R=e.ScrollButtonComponent,D=void 0===R?x.A:R,F=e.scrollButtons,L=void 0===F?"auto":F,P=e.selectionFollowsFocus,z=e.TabIndicatorProps,I=void 0===z?{}:z,H=e.TabScrollButtonProps,$=e.textColor,K=void 0===$?"inherit":$,j=e.value,X=e.variant,_=void 0===X?"standard":X,q=(0,i.A)(e,["aria-label","aria-labelledby","action","centered","children","classes","className","component","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant"]),Y=(0,E.A)(),V="scrollable"===_,O="rtl"===Y.direction,U="vertical"===M,G=U?"scrollTop":"scrollLeft",J=U?"top":"left",Q=U?"bottom":"right",Z=U?"clientHeight":"clientWidth",ee=U?"height":"width",te=l.useState(!1),ne=te[0],oe=te[1],re=l.useState({}),ie=re[0],ae=re[1],le=l.useState({start:!1,end:!1}),se=le[0],ce=le[1],de=l.useState({overflow:"hidden",marginBottom:null}),pe=de[0],ue=de[1],fe=new Map,me=l.useRef(null),ve=l.useRef(null),he=function(){var e,t,n=me.current;if(n){var o=n.getBoundingClientRect();e={clientWidth:n.clientWidth,scrollLeft:n.scrollLeft,scrollTop:n.scrollTop,scrollLeftNormalized:u(n,Y.direction),scrollWidth:n.scrollWidth,top:o.top,bottom:o.bottom,left:o.left,right:o.right}}if(n&&!1!==j){var r=ve.current.children;if(r.length>0){var i=r[fe.get(j)];t=i?i.getBoundingClientRect():null}}return{tabsMeta:e,tabMeta:t}},be=(0,y.A)(function(){var e,t=he(),n=t.tabsMeta,o=t.tabMeta,r=0;if(o&&n)if(U)r=o.top-n.top+n.scrollTop;else{var i=O?n.scrollLeftNormalized+n.clientWidth-n.scrollWidth:n.scrollLeft;r=o.left-n.left+i}var l=(e={},(0,a.A)(e,J,r),(0,a.A)(e,ee,o?o[ee]:0),e);if(isNaN(ie[J])||isNaN(ie[ee]))ae(l);else{var s=Math.abs(ie[J]-l[J]),c=Math.abs(ie[ee]-l[ee]);(s>=1||c>=1)&&ae(l)}}),ge=function(e){!function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},i=o.ease,a=void 0===i?f:i,l=o.duration,s=void 0===l?300:l,c=null,d=t[e],p=!1;d===n?r(new Error("Element already at target position")):requestAnimationFrame(function o(i){if(p)r(new Error("Animation cancelled"));else{null===c&&(c=i);var l=Math.min(1,(i-c)/s);t[e]=a(l)*(n-d)+d,l>=1?requestAnimationFrame(function(){r(null)}):requestAnimationFrame(o)}})}(G,me.current,e)},Ae=function(e){var t=me.current[G];U?t+=e:(t+=e*(O?-1:1),t*=O&&"reverse"===p()?-1:1),ge(t)},xe=function(){Ae(-me.current[Z])},ye=function(){Ae(me.current[Z])},Ee=l.useCallback(function(e){ue({overflow:null,marginBottom:-e})},[]),we=(0,y.A)(function(){var e=he(),t=e.tabsMeta,n=e.tabMeta;if(n&&t)if(n[J]<t[J]){var o=t[G]+(n[J]-t[J]);ge(o)}else if(n[Q]>t[Q]){var r=t[G]+(n[Q]-t[Q]);ge(r)}}),Ce=(0,y.A)(function(){if(V&&"off"!==L){var e,t,n=me.current,o=n.scrollTop,r=n.scrollHeight,i=n.clientHeight,a=n.scrollWidth,l=n.clientWidth;if(U)e=o>1,t=o<r-i-1;else{var s=u(me.current,Y.direction);e=O?s<a-l-1:s>1,t=O?s>1:s<a-l-1}e===se.start&&t===se.end||ce({start:e,end:t})}});l.useEffect(function(){var e=(0,c.A)(function(){be(),Ce()}),t=(0,d.A)(me.current);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}},[be,Ce]);var ke=l.useCallback((0,c.A)(function(){Ce()}));l.useEffect(function(){return function(){ke.clear()}},[ke]),l.useEffect(function(){oe(!0)},[]),l.useEffect(function(){be(),Ce()}),l.useEffect(function(){we()},[we,ie]),l.useImperativeHandle(m,function(){return{updateIndicator:be,updateScrollButtons:Ce}},[be,Ce]);var Se=l.createElement(A,(0,r.A)({className:w.indicator,orientation:M,color:B},I,{style:(0,r.A)({},ie,I.style)})),We=0,Be=l.Children.map(g,function(e){if(!l.isValidElement(e))return null;var t=void 0===e.props.value?We:e.props.value;fe.set(t,We);var n=t===j;return We+=1,l.cloneElement(e,{fullWidth:"fullWidth"===_,indicator:n&&!ne&&Se,selected:n,selectionFollowsFocus:P,onChange:N,textColor:K,value:t})}),Ne=function(){var e={};e.scrollbarSizeListener=V?l.createElement(v,{className:w.scrollable,onChange:Ee}):null;var t=se.start||se.end,n=V&&("auto"===L&&t||"desktop"===L||"on"===L);return e.scrollButtonStart=n?l.createElement(D,(0,r.A)({orientation:M,direction:O?"right":"left",onClick:xe,disabled:!se.start,className:(0,s.A)(w.scrollButtons,"on"!==L&&w.scrollButtonsDesktop)},H)):null,e.scrollButtonEnd=n?l.createElement(D,(0,r.A)({orientation:M,direction:O?"left":"right",onClick:ye,disabled:!se.end,className:(0,s.A)(w.scrollButtons,"on"!==L&&w.scrollButtonsDesktop)},H)):null,e}();return l.createElement(S,(0,r.A)({className:(0,s.A)(w.root,C,U&&w.vertical),ref:t},q),Ne.scrollButtonStart,Ne.scrollbarSizeListener,l.createElement("div",{className:(0,s.A)(w.scroller,V?w.scrollable:w.fixed),style:pe,ref:me,onScroll:ke},l.createElement("div",{"aria-label":n,"aria-labelledby":o,className:(0,s.A)(w.flexContainer,U&&w.flexContainerVertical,b&&!V&&w.centered),onKeyDown:function(e){var t=e.target;if("tab"===t.getAttribute("role")){var n=null,o="vertical"!==M?"ArrowLeft":"ArrowUp",r="vertical"!==M?"ArrowRight":"ArrowDown";switch("vertical"!==M&&"rtl"===Y.direction&&(o="ArrowRight",r="ArrowLeft"),e.key){case o:n=t.previousElementSibling||ve.current.lastChild;break;case r:n=t.nextElementSibling||ve.current.firstChild;break;case"Home":n=ve.current.firstChild;break;case"End":n=ve.current.lastChild}null!==n&&(n.focus(),e.preventDefault())}},ref:ve,role:"tablist"},Be),ne&&Se),Ne.scrollButtonEnd)});const C=(0,h.A)(function(e){return{root:{overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},vertical:{flexDirection:"column"},flexContainer:{display:"flex"},flexContainerVertical:{flexDirection:"column"},centered:{justifyContent:"center"},scroller:{position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},fixed:{overflowX:"hidden",width:"100%"},scrollable:{overflowX:"scroll",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},scrollButtons:{},scrollButtonsDesktop:(0,a.A)({},e.breakpoints.down("xs"),{display:"none"}),indicator:{}}},{name:"MuiTabs"})(w)},38605:(e,t,n)=>{n.d(t,{A:()=>u});var o=n(39850),r=n(24586),i=n(89575),a=n(95478),l=n(36274),s=n(7031),c=n(97740),d=n(11192),p=a.forwardRef(function(e,t){var n=e.classes,r=e.className,s=e.disabled,p=void 0!==s&&s,u=e.disableFocusRipple,f=void 0!==u&&u,m=e.fullWidth,v=e.icon,h=e.indicator,b=e.label,g=e.onChange,A=e.onClick,x=e.onFocus,y=e.selected,E=e.selectionFollowsFocus,w=e.textColor,C=void 0===w?"inherit":w,k=e.value,S=e.wrapped,W=void 0!==S&&S,B=(0,o.A)(e,["classes","className","disabled","disableFocusRipple","fullWidth","icon","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"]);return a.createElement(c.A,(0,i.A)({focusRipple:!f,className:(0,l.A)(n.root,n["textColor".concat((0,d.A)(C))],r,p&&n.disabled,y&&n.selected,b&&v&&n.labelIcon,m&&n.fullWidth,W&&n.wrapped),ref:t,role:"tab","aria-selected":y,disabled:p,onClick:function(e){g&&g(e,k),A&&A(e)},onFocus:function(e){E&&!y&&g&&g(e,k),x&&x(e)},tabIndex:y?0:-1},B),a.createElement("span",{className:n.wrapper},v,b),h)});const u=(0,s.A)(function(e){var t;return{root:(0,i.A)({},e.typography.button,(t={maxWidth:264,minWidth:72,position:"relative",boxSizing:"border-box",minHeight:48,flexShrink:0,padding:"6px 12px"},(0,r.A)(t,e.breakpoints.up("sm"),{padding:"6px 24px"}),(0,r.A)(t,"overflow","hidden"),(0,r.A)(t,"whiteSpace","normal"),(0,r.A)(t,"textAlign","center"),(0,r.A)(t,e.breakpoints.up("sm"),{minWidth:160}),t)),labelIcon:{minHeight:72,paddingTop:9,"& $wrapper > *:first-child":{marginBottom:6}},textColorInherit:{color:"inherit",opacity:.7,"&$selected":{opacity:1},"&$disabled":{opacity:.5}},textColorPrimary:{color:e.palette.text.secondary,"&$selected":{color:e.palette.primary.main},"&$disabled":{color:e.palette.text.disabled}},textColorSecondary:{color:e.palette.text.secondary,"&$selected":{color:e.palette.secondary.main},"&$disabled":{color:e.palette.text.disabled}},selected:{},disabled:{},fullWidth:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},wrapped:{fontSize:e.typography.pxToRem(12),lineHeight:1.5},wrapper:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"100%",flexDirection:"column"}}},{name:"MuiTab"})(p)},41433:(e,t,n)=>{n.d(t,{A:()=>m});var o=n(89575),r=n(39850),i=n(95478),a=n(36274),l=n(49839),s=n(50222),c=n(7031),d=n(97740),p=i.createElement(l.A,{fontSize:"small"}),u=i.createElement(s.A,{fontSize:"small"}),f=i.forwardRef(function(e,t){var n=e.classes,l=e.className,s=e.direction,c=e.orientation,f=e.disabled,m=(0,r.A)(e,["classes","className","direction","orientation","disabled"]);return i.createElement(d.A,(0,o.A)({component:"div",className:(0,a.A)(n.root,l,f&&n.disabled,"vertical"===c&&n.vertical),ref:t,role:null,tabIndex:null},m),"left"===s?p:u)});const m=(0,c.A)({root:{width:40,flexShrink:0,opacity:.8,"&$disabled":{opacity:0}},vertical:{width:"100%",height:40,"& svg":{transform:"rotate(90deg)"}},disabled:{}},{name:"MuiTabScrollButton"})(f)},46805:(e,t,n)=>{n.d(t,{A:()=>c});var o=n(89575),r=n(39850),i=n(95478),a=n(36274),l=n(7031),s=i.forwardRef(function(e,t){var n=e.classes,l=e.className,s=e.dividers,c=void 0!==s&&s,d=(0,r.A)(e,["classes","className","dividers"]);return i.createElement("div",(0,o.A)({className:(0,a.A)(n.root,l,c&&n.dividers),ref:t},d))});const c=(0,l.A)(function(e){return{root:{flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"8px 24px","&:first-child":{paddingTop:20}},dividers:{padding:"16px 24px",borderTop:"1px solid ".concat(e.palette.divider),borderBottom:"1px solid ".concat(e.palette.divider)}}},{name:"MuiDialogContent"})(s)},49839:(e,t,n)=>{n.d(t,{A:()=>r});var o=n(95478);const r=(0,n(38483).A)(o.createElement("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft")},50222:(e,t,n)=>{n.d(t,{A:()=>r});var o=n(95478);const r=(0,n(38483).A)(o.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight")},61477:(e,t,n)=>{n.d(t,{A:()=>d});var o=n(89575),r=n(39850),i=n(95478),a=n(36274),l=n(7031),s=n(72501),c=i.forwardRef(function(e,t){var n=e.children,l=e.classes,c=e.className,d=e.disableTypography,p=void 0!==d&&d,u=(0,r.A)(e,["children","classes","className","disableTypography"]);return i.createElement("div",(0,o.A)({className:(0,a.A)(l.root,c),ref:t},u),p?n:i.createElement(s.A,{component:"h2",variant:"h6"},n))});const d=(0,l.A)({root:{margin:0,padding:"16px 24px",flex:"0 0 auto"}},{name:"MuiDialogTitle"})(c)},64163:(e,t,n)=>{n.d(t,{A:()=>d});var o=n(89575),r=n(39850),i=n(95478),a=n(36274),l=n(7031),s=n(18171),c=i.forwardRef(function(e,t){var n=e.children,l=e.classes,c=e.className,d=e.invisible,p=void 0!==d&&d,u=e.open,f=e.transitionDuration,m=e.TransitionComponent,v=void 0===m?s.A:m,h=(0,r.A)(e,["children","classes","className","invisible","open","transitionDuration","TransitionComponent"]);return i.createElement(v,(0,o.A)({in:u,timeout:f},h),i.createElement("div",{className:(0,a.A)(l.root,c,p&&l.invisible),"aria-hidden":!0,ref:t},n))});const d=(0,l.A)({root:{zIndex:-1,position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},invisible:{backgroundColor:"transparent"}},{name:"MuiBackdrop"})(c)},76891:(e,t,n)=>{n.d(t,{A:()=>b});var o=n(89575),r=n(39850),i=n(24586),a=n(95478),l=n(36274),s=n(7031),c=n(11192),d=n(4313),p=n(64163),u=n(18171),f=n(43457),m=n(4321),v={enter:f.p0.enteringScreen,exit:f.p0.leavingScreen},h=a.forwardRef(function(e,t){var n=e.BackdropProps,i=e.children,s=e.classes,f=e.className,h=e.disableBackdropClick,b=void 0!==h&&h,g=e.disableEscapeKeyDown,A=void 0!==g&&g,x=e.fullScreen,y=void 0!==x&&x,E=e.fullWidth,w=void 0!==E&&E,C=e.maxWidth,k=void 0===C?"sm":C,S=e.onBackdropClick,W=e.onClose,B=e.onEnter,N=e.onEntered,T=e.onEntering,M=e.onEscapeKeyDown,R=e.onExit,D=e.onExited,F=e.onExiting,L=e.open,P=e.PaperComponent,z=void 0===P?m.A:P,I=e.PaperProps,H=void 0===I?{}:I,$=e.scroll,K=void 0===$?"paper":$,j=e.TransitionComponent,X=void 0===j?u.A:j,_=e.transitionDuration,q=void 0===_?v:_,Y=e.TransitionProps,V=e["aria-describedby"],O=e["aria-labelledby"],U=(0,r.A)(e,["BackdropProps","children","classes","className","disableBackdropClick","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClose","onEnter","onEntered","onEntering","onEscapeKeyDown","onExit","onExited","onExiting","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps","aria-describedby","aria-labelledby"]),G=a.useRef();return a.createElement(d.A,(0,o.A)({className:(0,l.A)(s.root,f),BackdropComponent:p.A,BackdropProps:(0,o.A)({transitionDuration:q},n),closeAfterTransition:!0},b?{disableBackdropClick:b}:{},{disableEscapeKeyDown:A,onEscapeKeyDown:M,onClose:W,open:L,ref:t},U),a.createElement(X,(0,o.A)({appear:!0,in:L,timeout:q,onEnter:B,onEntering:T,onEntered:N,onExit:R,onExiting:F,onExited:D,role:"none presentation"},Y),a.createElement("div",{className:(0,l.A)(s.container,s["scroll".concat((0,c.A)(K))]),onMouseUp:function(e){e.target===e.currentTarget&&e.target===G.current&&(G.current=null,S&&S(e),!b&&W&&W(e,"backdropClick"))},onMouseDown:function(e){G.current=e.target}},a.createElement(z,(0,o.A)({elevation:24,role:"dialog","aria-describedby":V,"aria-labelledby":O},H,{className:(0,l.A)(s.paper,s["paperScroll".concat((0,c.A)(K))],s["paperWidth".concat((0,c.A)(String(k)))],H.className,y&&s.paperFullScreen,w&&s.paperFullWidth)}),i))))});const b=(0,s.A)(function(e){return{root:{"@media print":{position:"absolute !important"}},scrollPaper:{display:"flex",justifyContent:"center",alignItems:"center"},scrollBody:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&:after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}},container:{height:"100%","@media print":{height:"auto"},outline:0},paper:{margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},paperScrollPaper:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},paperScrollBody:{display:"inline-block",verticalAlign:"middle",textAlign:"left"},paperWidthFalse:{maxWidth:"calc(100% - 64px)"},paperWidthXs:{maxWidth:Math.max(e.breakpoints.values.xs,444),"&$paperScrollBody":(0,i.A)({},e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64),{maxWidth:"calc(100% - 64px)"})},paperWidthSm:{maxWidth:e.breakpoints.values.sm,"&$paperScrollBody":(0,i.A)({},e.breakpoints.down(e.breakpoints.values.sm+64),{maxWidth:"calc(100% - 64px)"})},paperWidthMd:{maxWidth:e.breakpoints.values.md,"&$paperScrollBody":(0,i.A)({},e.breakpoints.down(e.breakpoints.values.md+64),{maxWidth:"calc(100% - 64px)"})},paperWidthLg:{maxWidth:e.breakpoints.values.lg,"&$paperScrollBody":(0,i.A)({},e.breakpoints.down(e.breakpoints.values.lg+64),{maxWidth:"calc(100% - 64px)"})},paperWidthXl:{maxWidth:e.breakpoints.values.xl,"&$paperScrollBody":(0,i.A)({},e.breakpoints.down(e.breakpoints.values.xl+64),{maxWidth:"calc(100% - 64px)"})},paperFullWidth:{width:"calc(100% - 64px)"},paperFullScreen:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,"&$paperScrollBody":{margin:0,maxWidth:"100%"}}}},{name:"MuiDialog"})(h)},93453:(e,t,n)=>{n.d(t,{A:()=>c});var o=n(89575),r=n(39850),i=n(95478),a=n(36274),l=n(7031),s=i.forwardRef(function(e,t){var n=e.disableSpacing,l=void 0!==n&&n,s=e.classes,c=e.className,d=(0,r.A)(e,["disableSpacing","classes","className"]);return i.createElement("div",(0,o.A)({className:(0,a.A)(s.root,c,!l&&s.spacing),ref:t},d))});const c=(0,l.A)({root:{display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},spacing:{"& > :not(:first-child)":{marginLeft:8}}},{name:"MuiDialogActions"})(s)}}]);
2
- //# sourceMappingURL=2987.1da15560.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/2987.1da15560.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Fade/Fade.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/utils/scrollLeft.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/internal/animate.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Tabs/TabIndicator.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Tabs/Tabs.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Tab/Tab.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/DialogContent/DialogContent.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/Dialog/Dialog.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/core/esm/DialogActions/DialogActions.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { duration } from '../styles/transitions';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nvar styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\nvar defaultTimeout = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * The Fade transition is used by the [Modal](/components/modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"TransitionComponent\", \"timeout\"]);\n\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n timeout: timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Fade.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Fade;","// Source from https://github.com/alitaheri/normalize-scroll-left\nvar cachedType;\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default | 0 | 100 | 100\n * negative (spec*) | -100 | 0 | 0\n * reverse | 100 | 0 | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE 11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\n\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n\n var dummy = document.createElement('div');\n var container = document.createElement('div');\n container.style.width = '10px';\n container.style.height = '1px';\n dummy.appendChild(container);\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n document.body.appendChild(dummy);\n cachedType = 'reverse';\n\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n\n document.body.removeChild(dummy);\n return cachedType;\n} // Based on https://stackoverflow.com/a/24394376\n\nexport function getNormalizedScrollLeft(element, direction) {\n var scrollLeft = element.scrollLeft; // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior\n\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n\n var type = detectScrollType();\n\n switch (type) {\n case 'negative':\n return element.scrollWidth - element.clientWidth + scrollLeft;\n\n case 'reverse':\n return element.scrollWidth - element.clientWidth - scrollLeft;\n\n default:\n return scrollLeft;\n }\n}","function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nexport default function animate(property, element, to) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var cb = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {};\n var _options$ease = options.ease,\n ease = _options$ease === void 0 ? easeInOutSin : _options$ease,\n _options$duration = options.duration,\n duration = _options$duration === void 0 ? 300 : _options$duration;\n var start = null;\n var from = element[property];\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n var step = function step(timestamp) {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n\n if (start === null) {\n start = timestamp;\n }\n\n var time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n\n if (time >= 1) {\n requestAnimationFrame(function () {\n cb(null);\n });\n return;\n }\n\n requestAnimationFrame(step);\n };\n\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n\n requestAnimationFrame(step);\n return cancel;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from '../utils/debounce';\nvar styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\n\nexport default function ScrollbarSize(props) {\n var onChange = props.onChange,\n other = _objectWithoutProperties(props, [\"onChange\"]);\n\n var scrollbarHeight = React.useRef();\n var nodeRef = React.useRef(null);\n\n var setMeasurements = function setMeasurements() {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n\n React.useEffect(function () {\n var handleResize = debounce(function () {\n var prevHeight = scrollbarHeight.current;\n setMeasurements();\n\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(function () {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: styles,\n ref: nodeRef\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n root: {\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create()\n },\n colorPrimary: {\n backgroundColor: theme.palette.primary.main\n },\n colorSecondary: {\n backgroundColor: theme.palette.secondary.main\n },\n vertical: {\n height: '100%',\n width: 2,\n right: 0\n }\n };\n};\n/**\n * @ignore - internal component.\n */\n\nvar TabIndicator = /*#__PURE__*/React.forwardRef(function TabIndicator(props, ref) {\n var classes = props.classes,\n className = props.className,\n color = props.color,\n orientation = props.orientation,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"orientation\"]);\n\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, classes[\"color\".concat(capitalize(color))], className, orientation === 'vertical' && classes.vertical),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabIndicator.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n * The color of the tab indicator.\n */\n color: PropTypes.oneOf(['primary', 'secondary']).isRequired,\n\n /**\n * The tabs orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired\n} : void 0;\nexport default withStyles(styles, {\n name: 'PrivateTabIndicator'\n})(TabIndicator);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport debounce from '../utils/debounce';\nimport ownerWindow from '../utils/ownerWindow';\nimport { getNormalizedScrollLeft, detectScrollType } from '../utils/scrollLeft';\nimport animate from '../internal/animate';\nimport ScrollbarSize from './ScrollbarSize';\nimport withStyles from '../styles/withStyles';\nimport TabIndicator from './TabIndicator';\nimport TabScrollButton from '../TabScrollButton';\nimport useEventCallback from '../utils/useEventCallback';\nimport useTheme from '../styles/useTheme';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n minHeight: 48,\n WebkitOverflowScrolling: 'touch',\n // Add iOS momentum scrolling.\n display: 'flex'\n },\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {\n flexDirection: 'column'\n },\n\n /* Styles applied to the flex container element. */\n flexContainer: {\n display: 'flex'\n },\n\n /* Styles applied to the flex container element if `orientation=\"vertical\"`. */\n flexContainerVertical: {\n flexDirection: 'column'\n },\n\n /* Styles applied to the flex container element if `centered={true}` & `!variant=\"scrollable\"`. */\n centered: {\n justifyContent: 'center'\n },\n\n /* Styles applied to the tablist element. */\n scroller: {\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap'\n },\n\n /* Styles applied to the tablist element if `!variant=\"scrollable\"`\b\b\b. */\n fixed: {\n overflowX: 'hidden',\n width: '100%'\n },\n\n /* Styles applied to the tablist element if `variant=\"scrollable\"`. */\n scrollable: {\n overflowX: 'scroll',\n // Hide dimensionless scrollbar on MacOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n\n }\n },\n\n /* Styles applied to the `ScrollButtonComponent` component. */\n scrollButtons: {},\n\n /* Styles applied to the `ScrollButtonComponent` component if `scrollButtons=\"auto\"` or scrollButtons=\"desktop\"`. */\n scrollButtonsDesktop: _defineProperty({}, theme.breakpoints.down('xs'), {\n display: 'none'\n }),\n\n /* Styles applied to the `TabIndicator` component. */\n indicator: {}\n };\n};\nvar Tabs = /*#__PURE__*/React.forwardRef(function Tabs(props, ref) {\n var ariaLabel = props['aria-label'],\n ariaLabelledBy = props['aria-labelledby'],\n action = props.action,\n _props$centered = props.centered,\n centered = _props$centered === void 0 ? false : _props$centered,\n childrenProp = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$indicatorColor = props.indicatorColor,\n indicatorColor = _props$indicatorColor === void 0 ? 'secondary' : _props$indicatorColor,\n onChange = props.onChange,\n _props$orientation = props.orientation,\n orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n _props$ScrollButtonCo = props.ScrollButtonComponent,\n ScrollButtonComponent = _props$ScrollButtonCo === void 0 ? TabScrollButton : _props$ScrollButtonCo,\n _props$scrollButtons = props.scrollButtons,\n scrollButtons = _props$scrollButtons === void 0 ? 'auto' : _props$scrollButtons,\n selectionFollowsFocus = props.selectionFollowsFocus,\n _props$TabIndicatorPr = props.TabIndicatorProps,\n TabIndicatorProps = _props$TabIndicatorPr === void 0 ? {} : _props$TabIndicatorPr,\n TabScrollButtonProps = props.TabScrollButtonProps,\n _props$textColor = props.textColor,\n textColor = _props$textColor === void 0 ? 'inherit' : _props$textColor,\n value = props.value,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"aria-label\", \"aria-labelledby\", \"action\", \"centered\", \"children\", \"classes\", \"className\", \"component\", \"indicatorColor\", \"onChange\", \"orientation\", \"ScrollButtonComponent\", \"scrollButtons\", \"selectionFollowsFocus\", \"TabIndicatorProps\", \"TabScrollButtonProps\", \"textColor\", \"value\", \"variant\"]);\n\n var theme = useTheme();\n var scrollable = variant === 'scrollable';\n var isRtl = theme.direction === 'rtl';\n var vertical = orientation === 'vertical';\n var scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n var start = vertical ? 'top' : 'left';\n var end = vertical ? 'bottom' : 'right';\n var clientSize = vertical ? 'clientHeight' : 'clientWidth';\n var size = vertical ? 'height' : 'width';\n\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('Material-UI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n\n var _React$useState = React.useState(false),\n mounted = _React$useState[0],\n setMounted = _React$useState[1];\n\n var _React$useState2 = React.useState({}),\n indicatorStyle = _React$useState2[0],\n setIndicatorStyle = _React$useState2[1];\n\n var _React$useState3 = React.useState({\n start: false,\n end: false\n }),\n displayScroll = _React$useState3[0],\n setDisplayScroll = _React$useState3[1];\n\n var _React$useState4 = React.useState({\n overflow: 'hidden',\n marginBottom: null\n }),\n scrollerStyle = _React$useState4[0],\n setScrollerStyle = _React$useState4[1];\n\n var valueToIndex = new Map();\n var tabsRef = React.useRef(null);\n var tabListRef = React.useRef(null);\n\n var getTabsMeta = function getTabsMeta() {\n var tabsNode = tabsRef.current;\n var tabsMeta;\n\n if (tabsNode) {\n var rect = tabsNode.getBoundingClientRect(); // create a new object with ClientRect class props + scrollLeft\n\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(tabsNode, theme.direction),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n\n var tabMeta;\n\n if (tabsNode && value !== false) {\n var _children = tabListRef.current.children;\n\n if (_children.length > 0) {\n var tab = _children[valueToIndex.get(value)];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([\"Material-UI: The value provided to the Tabs component is invalid.\", \"None of the Tabs' children match with `\".concat(value, \"`.\"), valueToIndex.keys ? \"You can provide one of the following values: \".concat(Array.from(valueToIndex.keys()).join(', '), \".\") : null].join('\\n'));\n }\n }\n\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n }\n }\n\n return {\n tabsMeta: tabsMeta,\n tabMeta: tabMeta\n };\n };\n\n var updateIndicatorState = useEventCallback(function () {\n var _newIndicatorStyle;\n\n var _getTabsMeta = getTabsMeta(),\n tabsMeta = _getTabsMeta.tabsMeta,\n tabMeta = _getTabsMeta.tabMeta;\n\n var startValue = 0;\n\n if (tabMeta && tabsMeta) {\n if (vertical) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n } else {\n var correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n startValue = tabMeta.left - tabsMeta.left + correction;\n }\n }\n\n var newIndicatorStyle = (_newIndicatorStyle = {}, _defineProperty(_newIndicatorStyle, start, startValue), _defineProperty(_newIndicatorStyle, size, tabMeta ? tabMeta[size] : 0), _newIndicatorStyle);\n\n if (isNaN(indicatorStyle[start]) || isNaN(indicatorStyle[size])) {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n var dStart = Math.abs(indicatorStyle[start] - newIndicatorStyle[start]);\n var dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n\n var scroll = function scroll(scrollValue) {\n animate(scrollStart, tabsRef.current, scrollValue);\n };\n\n var moveTabsScroll = function moveTabsScroll(delta) {\n var scrollValue = tabsRef.current[scrollStart];\n\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1); // Fix for Edge\n\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n\n scroll(scrollValue);\n };\n\n var handleStartScrollClick = function handleStartScrollClick() {\n moveTabsScroll(-tabsRef.current[clientSize]);\n };\n\n var handleEndScrollClick = function handleEndScrollClick() {\n moveTabsScroll(tabsRef.current[clientSize]);\n };\n\n var handleScrollbarSizeChange = React.useCallback(function (scrollbarHeight) {\n setScrollerStyle({\n overflow: null,\n marginBottom: -scrollbarHeight\n });\n }, []);\n\n var getConditionalElements = function getConditionalElements() {\n var conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/React.createElement(ScrollbarSize, {\n className: classes.scrollable,\n onChange: handleScrollbarSizeChange\n }) : null;\n var scrollButtonsActive = displayScroll.start || displayScroll.end;\n var showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === 'desktop' || scrollButtons === 'on');\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/React.createElement(ScrollButtonComponent, _extends({\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayScroll.start,\n className: clsx(classes.scrollButtons, scrollButtons !== 'on' && classes.scrollButtonsDesktop)\n }, TabScrollButtonProps)) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/React.createElement(ScrollButtonComponent, _extends({\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayScroll.end,\n className: clsx(classes.scrollButtons, scrollButtons !== 'on' && classes.scrollButtonsDesktop)\n }, TabScrollButtonProps)) : null;\n return conditionalElements;\n };\n\n var scrollSelectedIntoView = useEventCallback(function () {\n var _getTabsMeta2 = getTabsMeta(),\n tabsMeta = _getTabsMeta2.tabsMeta,\n tabMeta = _getTabsMeta2.tabMeta;\n\n if (!tabMeta || !tabsMeta) {\n return;\n }\n\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n var nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart);\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n var _nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n\n scroll(_nextScrollStart);\n }\n });\n var updateScrollButtonState = useEventCallback(function () {\n if (scrollable && scrollButtons !== 'off') {\n var _tabsRef$current = tabsRef.current,\n scrollTop = _tabsRef$current.scrollTop,\n scrollHeight = _tabsRef$current.scrollHeight,\n clientHeight = _tabsRef$current.clientHeight,\n scrollWidth = _tabsRef$current.scrollWidth,\n clientWidth = _tabsRef$current.clientWidth;\n var showStartScroll;\n var showEndScroll;\n\n if (vertical) {\n showStartScroll = scrollTop > 1;\n showEndScroll = scrollTop < scrollHeight - clientHeight - 1;\n } else {\n var scrollLeft = getNormalizedScrollLeft(tabsRef.current, theme.direction); // use 1 for the potential rounding error with browser zooms.\n\n showStartScroll = isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n showEndScroll = !isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n }\n\n if (showStartScroll !== displayScroll.start || showEndScroll !== displayScroll.end) {\n setDisplayScroll({\n start: showStartScroll,\n end: showEndScroll\n });\n }\n }\n });\n React.useEffect(function () {\n var handleResize = debounce(function () {\n updateIndicatorState();\n updateScrollButtonState();\n });\n var win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n var handleTabsScroll = React.useCallback(debounce(function () {\n updateScrollButtonState();\n }));\n React.useEffect(function () {\n return function () {\n handleTabsScroll.clear();\n };\n }, [handleTabsScroll]);\n React.useEffect(function () {\n setMounted(true);\n }, []);\n React.useEffect(function () {\n updateIndicatorState();\n updateScrollButtonState();\n });\n React.useEffect(function () {\n scrollSelectedIntoView();\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, function () {\n return {\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n var indicator = /*#__PURE__*/React.createElement(TabIndicator, _extends({\n className: classes.indicator,\n orientation: orientation,\n color: indicatorColor\n }, TabIndicatorProps, {\n style: _extends({}, indicatorStyle, TabIndicatorProps.style)\n }));\n var childIndex = 0;\n var children = React.Children.map(childrenProp, function (child) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n var childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n var selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, {\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected: selected,\n selectionFollowsFocus: selectionFollowsFocus,\n onChange: onChange,\n textColor: textColor,\n value: childValue\n });\n });\n\n var handleKeyDown = function handleKeyDown(event) {\n var target = event.target; // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n\n var role = target.getAttribute('role');\n\n if (role !== 'tab') {\n return;\n }\n\n var newFocusTarget = null;\n var previousItemKey = orientation !== \"vertical\" ? 'ArrowLeft' : 'ArrowUp';\n var nextItemKey = orientation !== \"vertical\" ? 'ArrowRight' : 'ArrowDown';\n\n if (orientation !== \"vertical\" && theme.direction === 'rtl') {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n\n switch (event.key) {\n case previousItemKey:\n newFocusTarget = target.previousElementSibling || tabListRef.current.lastChild;\n break;\n\n case nextItemKey:\n newFocusTarget = target.nextElementSibling || tabListRef.current.firstChild;\n break;\n\n case 'Home':\n newFocusTarget = tabListRef.current.firstChild;\n break;\n\n case 'End':\n newFocusTarget = tabListRef.current.lastChild;\n break;\n\n default:\n break;\n }\n\n if (newFocusTarget !== null) {\n newFocusTarget.focus();\n event.preventDefault();\n }\n };\n\n var conditionalElements = getConditionalElements();\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, vertical && classes.vertical),\n ref: ref\n }, other), conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.scroller, scrollable ? classes.scrollable : classes.fixed),\n style: scrollerStyle,\n ref: tabsRef,\n onScroll: handleTabsScroll\n }, /*#__PURE__*/React.createElement(\"div\", {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n className: clsx(classes.flexContainer, vertical && classes.flexContainerVertical, centered && !scrollable && classes.centered),\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\"\n }, children), mounted && indicator), conditionalElements.scrollButtonEnd);\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * If `true`, the tabs will be centered.\n * This property is intended for large views.\n */\n centered: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Determines the color of the indicator.\n */\n indicatorColor: PropTypes.oneOf(['primary', 'secondary']),\n\n /**\n * Callback fired when the value changes.\n *\n * @param {object} event The event source of the callback\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n\n /**\n * The tabs orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * The component used to render the scroll buttons.\n */\n ScrollButtonComponent: PropTypes.elementType,\n\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `desktop` will only present them on medium and larger viewports.\n * - `on` will always present them.\n * - `off` will never present them.\n */\n scrollButtons: PropTypes.oneOf(['auto', 'desktop', 'off', 'on']),\n\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n\n /**\n * Props applied to the tab indicator element.\n */\n TabIndicatorProps: PropTypes.object,\n\n /**\n * Props applied to the [`TabScrollButton`](/api/tab-scroll-button/) element.\n */\n TabScrollButtonProps: PropTypes.object,\n\n /**\n * Determines the color of the `Tab`.\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this property to `false`.\n */\n value: PropTypes.any,\n\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * -`fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTabs'\n})(Tabs);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport unsupportedProp from '../utils/unsupportedProp';\nexport var styles = function styles(theme) {\n var _extends2;\n\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.button, (_extends2 = {\n maxWidth: 264,\n minWidth: 72,\n position: 'relative',\n boxSizing: 'border-box',\n minHeight: 48,\n flexShrink: 0,\n padding: '6px 12px'\n }, _defineProperty(_extends2, theme.breakpoints.up('sm'), {\n padding: '6px 24px'\n }), _defineProperty(_extends2, \"overflow\", 'hidden'), _defineProperty(_extends2, \"whiteSpace\", 'normal'), _defineProperty(_extends2, \"textAlign\", 'center'), _defineProperty(_extends2, theme.breakpoints.up('sm'), {\n minWidth: 160\n }), _extends2)),\n\n /* Styles applied to the root element if both `icon` and `label` are provided. */\n labelIcon: {\n minHeight: 72,\n paddingTop: 9,\n '& $wrapper > *:first-child': {\n marginBottom: 6\n }\n },\n\n /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"inherit\"`. */\n textColorInherit: {\n color: 'inherit',\n opacity: 0.7,\n '&$selected': {\n opacity: 1\n },\n '&$disabled': {\n opacity: 0.5\n }\n },\n\n /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"primary\"`. */\n textColorPrimary: {\n color: theme.palette.text.secondary,\n '&$selected': {\n color: theme.palette.primary.main\n },\n '&$disabled': {\n color: theme.palette.text.disabled\n }\n },\n\n /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"secondary\"`. */\n textColorSecondary: {\n color: theme.palette.text.secondary,\n '&$selected': {\n color: theme.palette.secondary.main\n },\n '&$disabled': {\n color: theme.palette.text.disabled\n }\n },\n\n /* Pseudo-class applied to the root element if `selected={true}` (controlled by the Tabs component). */\n selected: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}` (controlled by the Tabs component). */\n disabled: {},\n\n /* Styles applied to the root element if `fullWidth={true}` (controlled by the Tabs component). */\n fullWidth: {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n },\n\n /* Styles applied to the root element if `wrapped={true}`. */\n wrapped: {\n fontSize: theme.typography.pxToRem(12),\n lineHeight: 1.5\n },\n\n /* Styles applied to the `icon` and `label`'s wrapper element. */\n wrapper: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n flexDirection: 'column'\n }\n };\n};\nvar Tab = /*#__PURE__*/React.forwardRef(function Tab(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n fullWidth = props.fullWidth,\n icon = props.icon,\n indicator = props.indicator,\n label = props.label,\n onChange = props.onChange,\n onClick = props.onClick,\n onFocus = props.onFocus,\n selected = props.selected,\n selectionFollowsFocus = props.selectionFollowsFocus,\n _props$textColor = props.textColor,\n textColor = _props$textColor === void 0 ? 'inherit' : _props$textColor,\n value = props.value,\n _props$wrapped = props.wrapped,\n wrapped = _props$wrapped === void 0 ? false : _props$wrapped,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"]);\n\n var handleClick = function handleClick(event) {\n if (onChange) {\n onChange(event, value);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n var handleFocus = function handleFocus(event) {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, classes[\"textColor\".concat(capitalize(textColor))], className, disabled && classes.disabled, selected && classes.selected, label && icon && classes.labelIcon, fullWidth && classes.fullWidth, wrapped && classes.wrapped),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n tabIndex: selected ? 0 : -1\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.wrapper\n }, icon, label), indicator);\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes = {\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the tab will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * @ignore\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The icon element.\n */\n icon: PropTypes.node,\n\n /**\n * @ignore\n * For server-side rendering consideration, we let the selected tab\n * render the indicator.\n */\n indicator: PropTypes.node,\n\n /**\n * The label element.\n */\n label: PropTypes.node,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n selected: PropTypes.bool,\n\n /**\n * @ignore\n */\n selectionFollowsFocus: PropTypes.bool,\n\n /**\n * @ignore\n */\n textColor: PropTypes.oneOf(['secondary', 'primary', 'inherit']),\n\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTab'\n})(Tab);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n '&$disabled': {\n opacity: 0\n }\n },\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {\n width: '100%',\n height: 40,\n '& svg': {\n transform: 'rotate(90deg)'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {}\n};\n\nvar _ref = /*#__PURE__*/React.createElement(KeyboardArrowLeft, {\n fontSize: \"small\"\n});\n\nvar _ref2 = /*#__PURE__*/React.createElement(KeyboardArrowRight, {\n fontSize: \"small\"\n});\n\nvar TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(props, ref) {\n var classes = props.classes,\n classNameProp = props.className,\n direction = props.direction,\n orientation = props.orientation,\n disabled = props.disabled,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"direction\", \"orientation\", \"disabled\"]);\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n component: \"div\",\n className: clsx(classes.root, classNameProp, disabled && classes.disabled, orientation === 'vertical' && classes.vertical),\n ref: ref,\n role: null,\n tabIndex: null\n }, other), direction === 'left' ? _ref : _ref2);\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Which direction should the button indicate?\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n\n /**\n * If `true`, the element will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The tabs orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTabScrollButton'\n})(TabScrollButton);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n flex: '1 1 auto',\n WebkitOverflowScrolling: 'touch',\n // Add iOS momentum scrolling.\n overflowY: 'auto',\n padding: '8px 24px',\n '&:first-child': {\n // dialog without title\n paddingTop: 20\n }\n },\n\n /* Styles applied to the root element if `dividers={true}`. */\n dividers: {\n padding: '16px 24px',\n borderTop: \"1px solid \".concat(theme.palette.divider),\n borderBottom: \"1px solid \".concat(theme.palette.divider)\n }\n };\n};\nvar DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$dividers = props.dividers,\n dividers = _props$dividers === void 0 ? false : _props$dividers,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"dividers\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, dividers && classes.dividers),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Display the top and bottom dividers.\n */\n dividers: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogContent'\n})(DialogContent);","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n margin: 0,\n padding: '16px 24px',\n flex: '0 0 auto'\n }\n};\nvar DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other), disableTypography ? children : /*#__PURE__*/React.createElement(Typography, {\n component: \"h2\",\n variant: \"h6\"\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the children won't be wrapped by a typography component.\n * For instance, this can be useful to render an h4 instead of the default h2.\n */\n disableTypography: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogTitle'\n})(DialogTitle);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Fade from '../Fade';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n // Improve scrollable dialog support.\n zIndex: -1,\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\nvar Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n transitionDuration = props.transitionDuration,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"invisible\", \"open\", \"transitionDuration\", \"TransitionComponent\"]);\n\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.root, className, invisible && classes.invisible),\n \"aria-hidden\": true,\n ref: ref\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n */\n invisible: PropTypes.bool,\n\n /**\n * If `true`, the backdrop is open.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiBackdrop'\n})(Backdrop);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport Modal from '../Modal';\nimport Backdrop from '../Backdrop';\nimport Fade from '../Fade';\nimport { duration } from '../styles/transitions';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n },\n\n /* Styles applied to the container element if `scroll=\"paper\"`. */\n scrollPaper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n /* Styles applied to the container element if `scroll=\"body\"`. */\n scrollBody: {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n },\n\n /* Styles applied to the container element. */\n container: {\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n },\n\n /* Styles applied to the `Paper` component. */\n paper: {\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE 11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n },\n\n /* Styles applied to the `Paper` component if `scroll=\"paper\"`. */\n paperScrollPaper: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `scroll=\"body\"`. */\n paperScrollBody: {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE 11\n\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=false`. */\n paperWidthFalse: {\n maxWidth: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"xs\"`. */\n paperWidthXs: {\n maxWidth: Math.max(theme.breakpoints.values.xs, 444),\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"sm\"`. */\n paperWidthSm: {\n maxWidth: theme.breakpoints.values.sm,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"md\"`. */\n paperWidthMd: {\n maxWidth: theme.breakpoints.values.md,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"lg\"`. */\n paperWidthLg: {\n maxWidth: theme.breakpoints.values.lg,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"xl\"`. */\n paperWidthXl: {\n maxWidth: theme.breakpoints.values.xl,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `fullWidth={true}`. */\n paperFullWidth: {\n width: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `fullScreen={true}`. */\n paperFullScreen: {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n '&$paperScrollBody': {\n margin: 0,\n maxWidth: '100%'\n }\n }\n };\n};\nvar defaultTransitionDuration = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nvar Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {\n var BackdropProps = props.BackdropProps,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$fullScreen = props.fullScreen,\n fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$maxWidth = props.maxWidth,\n maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperComponent = props.PaperComponent,\n PaperComponent = _props$PaperComponent === void 0 ? Paper : _props$PaperComponent,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$scroll = props.scroll,\n scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,\n TransitionProps = props.TransitionProps,\n ariaDescribedby = props['aria-describedby'],\n ariaLabelledby = props['aria-labelledby'],\n other = _objectWithoutProperties(props, [\"BackdropProps\", \"children\", \"classes\", \"className\", \"disableBackdropClick\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onEscapeKeyDown\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\", \"aria-describedby\", \"aria-labelledby\"]);\n\n var mouseDownTarget = React.useRef();\n\n var handleMouseDown = function handleMouseDown(event) {\n mouseDownTarget.current = event.target;\n };\n\n var handleBackdropClick = function handleBackdropClick(event) {\n // Ignore the events not coming from the \"backdrop\"\n // We don't want to close the dialog when clicking the dialog content.\n if (event.target !== event.currentTarget) {\n return;\n } // Make sure the event starts and ends on the same DOM element.\n\n\n if (event.target !== mouseDownTarget.current) {\n return;\n }\n\n mouseDownTarget.current = null;\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n return /*#__PURE__*/React.createElement(Modal, _extends({\n className: clsx(classes.root, className),\n BackdropComponent: Backdrop,\n BackdropProps: _extends({\n transitionDuration: transitionDuration\n }, BackdropProps),\n closeAfterTransition: true\n }, disableBackdropClick ? {\n disableBackdropClick: disableBackdropClick\n } : {}, {\n disableEscapeKeyDown: disableEscapeKeyDown,\n onEscapeKeyDown: onEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n role: \"none presentation\"\n }, TransitionProps), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.container, classes[\"scroll\".concat(capitalize(scroll))]),\n onMouseUp: handleBackdropClick,\n onMouseDown: handleMouseDown\n }, /*#__PURE__*/React.createElement(PaperComponent, _extends({\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, classes[\"paperScroll\".concat(capitalize(scroll))], classes[\"paperWidth\".concat(capitalize(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)\n }), children))));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, clicking the backdrop will not fire the `onClose` callback.\n * @deprecated Use the onClose prop with the `reason` argument to filter the `backdropClick` events.\n */\n disableBackdropClick: deprecatedPropType(PropTypes.bool, 'Use the onClose prop with the `reason` argument to filter the `backdropClick` events.'),\n\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n */\n disableEscapeKeyDown: PropTypes.bool,\n\n /**\n * If `true`, the dialog will be full-screen\n */\n fullScreen: PropTypes.bool,\n\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n */\n maxWidth: PropTypes.oneOf(['lg', 'md', 'sm', 'xl', 'xs', false]),\n\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the onClose prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `backdropClick` events.'),\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the dialog enters.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEnter: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog has entered.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntered: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntering: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the escape key is pressed,\n * `disableKeyboard` is false and the modal is in focus.\n * @deprecated Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.\n */\n onEscapeKeyDown: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.'),\n\n /**\n * Callback fired before the dialog exits.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExit: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog has exited.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExited: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExiting: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * If `true`, the Dialog is open.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The component used to render the body of the dialog.\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Determine the container for scrolling the dialog.\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialog'\n})(Dialog);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n },\n\n /* Styles applied to the root element if `disableSpacing={false}`. */\n spacing: {\n '& > :not(:first-child)': {\n marginLeft: 8\n }\n }\n};\nvar DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(props, ref) {\n var _props$disableSpacing = props.disableSpacing,\n disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"disableSpacing\", \"classes\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, !disableSpacing && classes.spacing),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the actions do not have additional margin.\n */\n disableSpacing: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogActions'\n})(DialogActions);"],"names":["styles","entering","opacity","entered","defaultTimeout","enter","enteringScreen","exit","leavingScreen","props","ref","children","_props$disableStrictM","disableStrictModeCompat","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","_props$TransitionComp","TransitionComponent","_props$timeout","timeout","other","theme","enableStrictModeCompat","unstable_strictMode","nodeRef","foreignRef","handleRef","undefined","normalizedTransitionCallback","callback","nodeOrAppearing","maybeAppearing","_ref","current","_ref2","node","isAppearing","handleEntering","handleEnter","transitionProps","mode","webkitTransition","transitions","create","transition","handleEntered","handleExiting","handleExit","handleExited","appear","state","childProps","visibility","cachedType","detectScrollType","dummy","document","createElement","container","width","height","appendChild","dir","fontSize","position","top","overflow","body","scrollLeft","removeChild","getNormalizedScrollLeft","element","direction","scrollWidth","clientWidth","easeInOutSin","time","Math","sin","PI","ScrollbarSize","onChange","scrollbarHeight","setMeasurements","offsetHeight","clientHeight","handleResize","debounce","prevHeight","window","addEventListener","clear","removeEventListener","TabIndicator","classes","className","color","orientation","root","concat","capitalize","vertical","withStyles","bottom","colorPrimary","backgroundColor","palette","primary","main","colorSecondary","secondary","right","name","Tabs","ariaLabel","ariaLabelledBy","action","_props$centered","centered","childrenProp","_props$component","component","Component","_props$indicatorColor","indicatorColor","_props$orientation","_props$ScrollButtonCo","ScrollButtonComponent","TabScrollButton","_props$scrollButtons","scrollButtons","selectionFollowsFocus","_props$TabIndicatorPr","TabIndicatorProps","TabScrollButtonProps","_props$textColor","textColor","value","_props$variant","variant","useTheme","scrollable","isRtl","scrollStart","start","end","clientSize","size","_React$useState","mounted","setMounted","_React$useState2","indicatorStyle","setIndicatorStyle","_React$useState3","displayScroll","setDisplayScroll","_React$useState4","marginBottom","scrollerStyle","setScrollerStyle","valueToIndex","Map","tabsRef","tabListRef","getTabsMeta","tabsMeta","tabMeta","tabsNode","rect","getBoundingClientRect","scrollTop","scrollLeftNormalized","left","_children","length","tab","get","updateIndicatorState","useEventCallback","_newIndicatorStyle","_getTabsMeta","startValue","correction","newIndicatorStyle","isNaN","dStart","abs","dSize","scroll","scrollValue","property","to","options","arguments","cb","_options$ease","ease","_options$duration","duration","from","cancelled","Error","requestAnimationFrame","step","timestamp","min","animate","moveTabsScroll","delta","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","_getTabsMeta2","nextScrollStart","_nextScrollStart","updateScrollButtonState","showStartScroll","showEndScroll","_tabsRef$current","scrollHeight","win","ownerWindow","handleTabsScroll","updateIndicator","updateScrollButtons","indicator","childIndex","map","child","childValue","set","selected","fullWidth","conditionalElements","scrollbarSizeListener","scrollButtonsActive","showScrollButtons","scrollButtonStart","onClick","disabled","scrollButtonsDesktop","scrollButtonEnd","getConditionalElements","scroller","fixed","onScroll","flexContainer","flexContainerVertical","onKeyDown","event","target","getAttribute","newFocusTarget","previousItemKey","nextItemKey","key","previousElementSibling","lastChild","nextElementSibling","firstChild","focus","preventDefault","role","minHeight","WebkitOverflowScrolling","display","flexDirection","justifyContent","flex","whiteSpace","overflowX","scrollbarWidth","breakpoints","down","Tab","_props$disabled","_props$disableFocusRi","disableFocusRipple","icon","label","onFocus","_props$wrapped","wrapped","focusRipple","labelIcon","tabIndex","wrapper","_extends2","typography","button","maxWidth","minWidth","boxSizing","flexShrink","padding","up","paddingTop","textColorInherit","textColorPrimary","text","textColorSecondary","flexGrow","flexBasis","pxToRem","lineHeight","alignItems","classNameProp","transform","DialogContent","_props$dividers","dividers","overflowY","borderTop","divider","borderBottom","d","DialogTitle","_props$disableTypogra","disableTypography","margin","Backdrop","_props$invisible","invisible","open","transitionDuration","zIndex","WebkitTapHighlightColor","defaultTransitionDuration","Dialog","BackdropProps","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$fullScreen","fullScreen","_props$fullWidth","_props$maxWidth","onBackdropClick","onClose","onEscapeKeyDown","_props$PaperComponent","PaperComponent","_props$PaperProps","PaperProps","_props$scroll","_props$transitionDura","TransitionProps","ariaDescribedby","ariaLabelledby","mouseDownTarget","BackdropComponent","closeAfterTransition","onMouseUp","currentTarget","onMouseDown","elevation","paper","String","paperFullScreen","paperFullWidth","scrollPaper","scrollBody","textAlign","content","verticalAlign","outline","boxShadow","paperScrollPaper","maxHeight","paperScrollBody","paperWidthFalse","paperWidthXs","max","values","xs","paperWidthSm","sm","paperWidthMd","md","paperWidthLg","lg","paperWidthXl","xl","borderRadius","DialogActions","_props$disableSpacing","disableSpacing","spacing","marginLeft"],"sourceRoot":""}