@backstage/plugin-home 0.7.3-next.1 → 0.7.4-next.0

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 (142) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/alpha/package.json +1 -1
  3. package/dist/alpha.esm.js +1 -1
  4. package/dist/alpha.esm.js.map +1 -1
  5. package/dist/api/VisitsApi.esm.js +11 -0
  6. package/dist/api/VisitsApi.esm.js.map +1 -0
  7. package/dist/api/VisitsStorageApi.esm.js +118 -0
  8. package/dist/api/VisitsStorageApi.esm.js.map +1 -0
  9. package/dist/api/VisitsWebStorageApi.esm.js +15 -0
  10. package/dist/api/VisitsWebStorageApi.esm.js.map +1 -0
  11. package/dist/api/config.esm.js +37 -0
  12. package/dist/api/config.esm.js.map +1 -0
  13. package/dist/assets/TemplateBackstageLogo.esm.js +22 -0
  14. package/dist/assets/TemplateBackstageLogo.esm.js.map +1 -0
  15. package/dist/assets/TemplateBackstageLogoIcon.esm.js +33 -0
  16. package/dist/assets/TemplateBackstageLogoIcon.esm.js.map +1 -0
  17. package/dist/{esm/index-BNfZuEhy.esm.js → componentRenderers/ComponentAccordion.esm.js} +2 -26
  18. package/dist/componentRenderers/ComponentAccordion.esm.js.map +1 -0
  19. package/dist/componentRenderers/ComponentTabs/ComponentTab.esm.js +9 -0
  20. package/dist/componentRenderers/ComponentTabs/ComponentTab.esm.js.map +1 -0
  21. package/dist/componentRenderers/ComponentTabs/ComponentTabs.esm.js +23 -0
  22. package/dist/componentRenderers/ComponentTabs/ComponentTabs.esm.js.map +1 -0
  23. package/dist/componentRenderers/index.esm.js +4 -0
  24. package/dist/componentRenderers/index.esm.js.map +1 -0
  25. package/dist/components/CustomHomepage/AddWidgetDialog.esm.js +45 -0
  26. package/dist/components/CustomHomepage/AddWidgetDialog.esm.js.map +1 -0
  27. package/dist/components/CustomHomepage/CustomHomepageButtons.esm.js +90 -0
  28. package/dist/components/CustomHomepage/CustomHomepageButtons.esm.js.map +1 -0
  29. package/dist/components/CustomHomepage/CustomHomepageGrid.esm.js +319 -0
  30. package/dist/components/CustomHomepage/CustomHomepageGrid.esm.js.map +1 -0
  31. package/dist/components/CustomHomepage/WidgetSettingsOverlay.esm.js +88 -0
  32. package/dist/components/CustomHomepage/WidgetSettingsOverlay.esm.js.map +1 -0
  33. package/dist/components/CustomHomepage/types.esm.js +48 -0
  34. package/dist/components/CustomHomepage/types.esm.js.map +1 -0
  35. package/dist/components/HomepageCompositionRoot.esm.js +12 -0
  36. package/dist/components/HomepageCompositionRoot.esm.js.map +1 -0
  37. package/dist/components/StarredEntityListItem/StarredEntityListItem.esm.js +31 -0
  38. package/dist/components/StarredEntityListItem/StarredEntityListItem.esm.js.map +1 -0
  39. package/dist/components/VisitList/ItemCategory.esm.js +63 -0
  40. package/dist/components/VisitList/ItemCategory.esm.js.map +1 -0
  41. package/dist/components/VisitList/ItemDetail.esm.js +26 -0
  42. package/dist/components/VisitList/ItemDetail.esm.js.map +1 -0
  43. package/dist/components/VisitList/ItemName.esm.js +27 -0
  44. package/dist/components/VisitList/ItemName.esm.js.map +1 -0
  45. package/dist/components/VisitList/VisitList.esm.js +46 -0
  46. package/dist/components/VisitList/VisitList.esm.js.map +1 -0
  47. package/dist/components/VisitList/VisitListEmpty.esm.js +7 -0
  48. package/dist/components/VisitList/VisitListEmpty.esm.js.map +1 -0
  49. package/dist/components/VisitList/VisitListFew.esm.js +7 -0
  50. package/dist/components/VisitList/VisitListFew.esm.js.map +1 -0
  51. package/dist/components/VisitList/VisitListItem.esm.js +31 -0
  52. package/dist/components/VisitList/VisitListItem.esm.js.map +1 -0
  53. package/dist/components/VisitList/VisitListSkeleton.esm.js +39 -0
  54. package/dist/components/VisitList/VisitListSkeleton.esm.js.map +1 -0
  55. package/dist/components/VisitListener.esm.js +62 -0
  56. package/dist/components/VisitListener.esm.js.map +1 -0
  57. package/dist/components/index.esm.js +4 -0
  58. package/dist/components/index.esm.js.map +1 -0
  59. package/dist/deprecated.esm.js +7 -0
  60. package/dist/deprecated.esm.js.map +1 -0
  61. package/dist/{esm/index-FqRX6ImF.esm.js → homePageComponents/CompanyLogo/CompanyLogo.esm.js} +1 -1
  62. package/dist/{esm/index-FqRX6ImF.esm.js.map → homePageComponents/CompanyLogo/CompanyLogo.esm.js.map} +1 -1
  63. package/dist/homePageComponents/CompanyLogo/index.esm.js +2 -0
  64. package/dist/homePageComponents/CompanyLogo/index.esm.js.map +1 -0
  65. package/dist/{esm/index-D7JTE1IL.esm.js → homePageComponents/FeaturedDocsCard/Content.esm.js} +1 -1
  66. package/dist/homePageComponents/FeaturedDocsCard/Content.esm.js.map +1 -0
  67. package/dist/homePageComponents/FeaturedDocsCard/index.esm.js +2 -0
  68. package/dist/homePageComponents/FeaturedDocsCard/index.esm.js.map +1 -0
  69. package/dist/{esm/index-BvvJGS3L.esm.js → homePageComponents/HeaderWorldClock/HeaderWorldClock.esm.js} +1 -1
  70. package/dist/homePageComponents/HeaderWorldClock/HeaderWorldClock.esm.js.map +1 -0
  71. package/dist/homePageComponents/HeaderWorldClock/index.esm.js +2 -0
  72. package/dist/homePageComponents/HeaderWorldClock/index.esm.js.map +1 -0
  73. package/dist/homePageComponents/RandomJoke/Actions.esm.js +11 -0
  74. package/dist/homePageComponents/RandomJoke/Actions.esm.js.map +1 -0
  75. package/dist/homePageComponents/RandomJoke/Content.esm.js +13 -0
  76. package/dist/homePageComponents/RandomJoke/Content.esm.js.map +1 -0
  77. package/dist/homePageComponents/RandomJoke/Context.esm.js +48 -0
  78. package/dist/homePageComponents/RandomJoke/Context.esm.js.map +1 -0
  79. package/dist/homePageComponents/RandomJoke/Settings.esm.js +33 -0
  80. package/dist/homePageComponents/RandomJoke/Settings.esm.js.map +1 -0
  81. package/dist/homePageComponents/RandomJoke/index.esm.js +5 -0
  82. package/dist/homePageComponents/RandomJoke/index.esm.js.map +1 -0
  83. package/dist/{esm/index-SfHoDIi1.esm.js → homePageComponents/StarredEntities/Content.esm.js} +4 -27
  84. package/dist/homePageComponents/StarredEntities/Content.esm.js.map +1 -0
  85. package/dist/homePageComponents/StarredEntities/index.esm.js +2 -0
  86. package/dist/homePageComponents/StarredEntities/index.esm.js.map +1 -0
  87. package/dist/{esm/index-CeXFfTX2.esm.js → homePageComponents/Toolkit/Content.esm.js} +4 -17
  88. package/dist/homePageComponents/Toolkit/Content.esm.js.map +1 -0
  89. package/dist/homePageComponents/Toolkit/Context.esm.js +18 -0
  90. package/dist/homePageComponents/Toolkit/Context.esm.js.map +1 -0
  91. package/dist/homePageComponents/Toolkit/index.esm.js +3 -0
  92. package/dist/homePageComponents/Toolkit/index.esm.js.map +1 -0
  93. package/dist/homePageComponents/VisitedByType/Actions.esm.js +18 -0
  94. package/dist/homePageComponents/VisitedByType/Actions.esm.js.map +1 -0
  95. package/dist/homePageComponents/VisitedByType/Content.esm.js +68 -0
  96. package/dist/homePageComponents/VisitedByType/Content.esm.js.map +1 -0
  97. package/dist/homePageComponents/VisitedByType/Context.esm.js +77 -0
  98. package/dist/homePageComponents/VisitedByType/Context.esm.js.map +1 -0
  99. package/dist/homePageComponents/VisitedByType/RecentlyVisited.esm.js +9 -0
  100. package/dist/homePageComponents/VisitedByType/RecentlyVisited.esm.js.map +1 -0
  101. package/dist/homePageComponents/VisitedByType/TopVisited.esm.js +9 -0
  102. package/dist/homePageComponents/VisitedByType/TopVisited.esm.js.map +1 -0
  103. package/dist/homePageComponents/VisitedByType/VisitedByType.esm.js +21 -0
  104. package/dist/homePageComponents/VisitedByType/VisitedByType.esm.js.map +1 -0
  105. package/dist/homePageComponents/WelcomeTitle/WelcomeTitle.esm.js +27 -0
  106. package/dist/homePageComponents/WelcomeTitle/WelcomeTitle.esm.js.map +1 -0
  107. package/dist/homePageComponents/WelcomeTitle/index.esm.js +2 -0
  108. package/dist/homePageComponents/WelcomeTitle/index.esm.js.map +1 -0
  109. package/dist/homePageComponents/WelcomeTitle/locales/goodAfternoon.locales.json.esm.js +256 -0
  110. package/dist/homePageComponents/WelcomeTitle/locales/goodAfternoon.locales.json.esm.js.map +1 -0
  111. package/dist/homePageComponents/WelcomeTitle/locales/goodEvening.locales.json.esm.js +196 -0
  112. package/dist/homePageComponents/WelcomeTitle/locales/goodEvening.locales.json.esm.js.map +1 -0
  113. package/dist/homePageComponents/WelcomeTitle/locales/goodMorning.locales.json.esm.js +131 -0
  114. package/dist/homePageComponents/WelcomeTitle/locales/goodMorning.locales.json.esm.js.map +1 -0
  115. package/dist/homePageComponents/WelcomeTitle/timeUtil.esm.js +41 -0
  116. package/dist/homePageComponents/WelcomeTitle/timeUtil.esm.js.map +1 -0
  117. package/dist/index.esm.js +10 -352
  118. package/dist/index.esm.js.map +1 -1
  119. package/dist/plugin.esm.js +144 -0
  120. package/dist/plugin.esm.js.map +1 -0
  121. package/dist/routes.esm.js +8 -0
  122. package/dist/routes.esm.js.map +1 -0
  123. package/package.json +20 -20
  124. package/dist/esm/Content-Quo42yad.esm.js +0 -396
  125. package/dist/esm/Content-Quo42yad.esm.js.map +0 -1
  126. package/dist/esm/RecentlyVisited-qOUgoCVu.esm.js +0 -48
  127. package/dist/esm/RecentlyVisited-qOUgoCVu.esm.js.map +0 -1
  128. package/dist/esm/TopVisited-B_KhSJit.esm.js +0 -48
  129. package/dist/esm/TopVisited-B_KhSJit.esm.js.map +0 -1
  130. package/dist/esm/VisitListener-dDLtFiIW.esm.js +0 -627
  131. package/dist/esm/VisitListener-dDLtFiIW.esm.js.map +0 -1
  132. package/dist/esm/index-BMySa_Iw.esm.js +0 -638
  133. package/dist/esm/index-BMySa_Iw.esm.js.map +0 -1
  134. package/dist/esm/index-BNfZuEhy.esm.js.map +0 -1
  135. package/dist/esm/index-BvvJGS3L.esm.js.map +0 -1
  136. package/dist/esm/index-Bzg5mDMo.esm.js +0 -45
  137. package/dist/esm/index-Bzg5mDMo.esm.js.map +0 -1
  138. package/dist/esm/index-CeXFfTX2.esm.js.map +0 -1
  139. package/dist/esm/index-D7JTE1IL.esm.js.map +0 -1
  140. package/dist/esm/index-Dg9lslkf.esm.js +0 -90
  141. package/dist/esm/index-Dg9lslkf.esm.js.map +0 -1
  142. package/dist/esm/index-SfHoDIi1.esm.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # @backstage/plugin-home
2
2
 
3
+ ## 0.7.4-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 2196d3e: Use relative time when displaying visits from the same day
8
+ - 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`.
9
+ Updated dependency `@rjsf/core` to `5.18.2`.
10
+ Updated dependency `@rjsf/material-ui` to `5.18.2`.
11
+ Updated dependency `@rjsf/validator-ajv8` to `5.18.2`.
12
+ - Updated dependencies
13
+ - @backstage/core-compat-api@0.2.5-next.0
14
+ - @backstage/catalog-model@1.5.0-next.0
15
+ - @backstage/theme@0.5.4-next.0
16
+ - @backstage/core-components@0.14.5-next.0
17
+ - @backstage/plugin-home-react@0.1.13-next.0
18
+ - @backstage/catalog-client@1.6.5-next.0
19
+ - @backstage/plugin-catalog-react@1.11.4-next.0
20
+ - @backstage/config@1.2.0
21
+ - @backstage/core-app-api@1.12.4
22
+ - @backstage/core-plugin-api@1.9.2
23
+ - @backstage/frontend-plugin-api@0.6.5-next.0
24
+
25
+ ## 0.7.3
26
+
27
+ ### Patch Changes
28
+
29
+ - abfbcfc: Updated dependency `@testing-library/react` to `^15.0.0`.
30
+ - cb1e3b0: Updated dependency `@testing-library/dom` to `^10.0.0`.
31
+ - Updated dependencies
32
+ - @backstage/plugin-catalog-react@1.11.3
33
+ - @backstage/plugin-home-react@0.1.12
34
+ - @backstage/core-compat-api@0.2.4
35
+ - @backstage/core-components@0.14.4
36
+ - @backstage/core-app-api@1.12.4
37
+ - @backstage/core-plugin-api@1.9.2
38
+ - @backstage/frontend-plugin-api@0.6.4
39
+ - @backstage/theme@0.5.3
40
+ - @backstage/catalog-client@1.6.4
41
+ - @backstage/catalog-model@1.4.5
42
+ - @backstage/config@1.2.0
43
+
3
44
  ## 0.7.3-next.1
4
45
 
5
46
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-home",
3
- "version": "0.7.3-next.1",
3
+ "version": "0.7.4-next.0",
4
4
  "main": "../dist/alpha.esm.js",
5
5
  "module": "../dist/alpha.esm.js",
6
6
  "types": "../dist/alpha.d.ts"
package/dist/alpha.esm.js CHANGED
@@ -19,7 +19,7 @@ const homePage = createPageExtension({
19
19
  }
20
20
  )
21
21
  },
22
- loader: ({ inputs }) => import('./esm/index-Bzg5mDMo.esm.js').then(
22
+ loader: ({ inputs }) => import('./components/index.esm.js').then(
23
23
  (m) => {
24
24
  var _a, _b;
25
25
  return compatWrapper(
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\n\nimport {\n coreExtensionData,\n createExtensionDataRef,\n createExtensionInput,\n createPageExtension,\n createPlugin,\n createRouteRef,\n} from '@backstage/frontend-plugin-api';\nimport { compatWrapper } from '@backstage/core-compat-api';\n\nconst rootRouteRef = createRouteRef();\n\n/**\n * @alpha\n */\nexport const titleExtensionDataRef = createExtensionDataRef<string>('title');\n\nconst homePage = createPageExtension({\n defaultPath: '/home',\n routeRef: rootRouteRef,\n inputs: {\n props: createExtensionInput(\n {\n children: coreExtensionData.reactElement.optional(),\n title: titleExtensionDataRef.optional(),\n },\n\n {\n singleton: true,\n optional: true,\n },\n ),\n },\n loader: ({ inputs }) =>\n import('./components/').then(m =>\n compatWrapper(\n <m.HomepageCompositionRoot\n children={inputs.props?.output.children}\n title={inputs.props?.output.title}\n />,\n ),\n ),\n});\n\n/**\n * @alpha\n */\nexport default createPlugin({\n id: 'home',\n extensions: [homePage],\n});\n"],"names":[],"mappings":";;;;AA4BA,MAAM,eAAe,cAAe,EAAA,CAAA;AAKvB,MAAA,qBAAA,GAAwB,uBAA+B,OAAO,EAAA;AAE3E,MAAM,WAAW,mBAAoB,CAAA;AAAA,EACnC,WAAa,EAAA,OAAA;AAAA,EACb,QAAU,EAAA,YAAA;AAAA,EACV,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,oBAAA;AAAA,MACL;AAAA,QACE,QAAA,EAAU,iBAAkB,CAAA,YAAA,CAAa,QAAS,EAAA;AAAA,QAClD,KAAA,EAAO,sBAAsB,QAAS,EAAA;AAAA,OACxC;AAAA,MAEA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,QACX,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EACA,QAAQ,CAAC,EAAE,QACT,KAAA,OAAO,6BAAe,CAAE,CAAA,IAAA;AAAA,IAAK,CAAE,CAAA,KAAA;AApDnC,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAqDM,MAAA,OAAA,aAAA;AAAA,wBACE,KAAA,CAAA,aAAA;AAAA,UAAC,CAAE,CAAA,uBAAA;AAAA,UAAF;AAAA,YACC,QAAU,EAAA,CAAA,EAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,MAAO,CAAA,QAAA;AAAA,YAC/B,KAAO,EAAA,CAAA,EAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,MAAO,CAAA,KAAA;AAAA,WAAA;AAAA,SAC9B;AAAA,OACF,CAAA;AAAA,KAAA;AAAA,GACF;AACJ,CAAC,CAAA,CAAA;AAKD,YAAe,YAAa,CAAA;AAAA,EAC1B,EAAI,EAAA,MAAA;AAAA,EACJ,UAAA,EAAY,CAAC,QAAQ,CAAA;AACvB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\n\nimport {\n coreExtensionData,\n createExtensionDataRef,\n createExtensionInput,\n createPageExtension,\n createPlugin,\n createRouteRef,\n} from '@backstage/frontend-plugin-api';\nimport { compatWrapper } from '@backstage/core-compat-api';\n\nconst rootRouteRef = createRouteRef();\n\n/**\n * @alpha\n */\nexport const titleExtensionDataRef = createExtensionDataRef<string>('title');\n\nconst homePage = createPageExtension({\n defaultPath: '/home',\n routeRef: rootRouteRef,\n inputs: {\n props: createExtensionInput(\n {\n children: coreExtensionData.reactElement.optional(),\n title: titleExtensionDataRef.optional(),\n },\n\n {\n singleton: true,\n optional: true,\n },\n ),\n },\n loader: ({ inputs }) =>\n import('./components/').then(m =>\n compatWrapper(\n <m.HomepageCompositionRoot\n children={inputs.props?.output.children}\n title={inputs.props?.output.title}\n />,\n ),\n ),\n});\n\n/**\n * @alpha\n */\nexport default createPlugin({\n id: 'home',\n extensions: [homePage],\n});\n"],"names":[],"mappings":";;;;AA4BA,MAAM,eAAe,cAAe,EAAA,CAAA;AAKvB,MAAA,qBAAA,GAAwB,uBAA+B,OAAO,EAAA;AAE3E,MAAM,WAAW,mBAAoB,CAAA;AAAA,EACnC,WAAa,EAAA,OAAA;AAAA,EACb,QAAU,EAAA,YAAA;AAAA,EACV,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,oBAAA;AAAA,MACL;AAAA,QACE,QAAA,EAAU,iBAAkB,CAAA,YAAA,CAAa,QAAS,EAAA;AAAA,QAClD,KAAA,EAAO,sBAAsB,QAAS,EAAA;AAAA,OACxC;AAAA,MAEA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,QACX,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EACA,QAAQ,CAAC,EAAE,QACT,KAAA,OAAO,2BAAe,CAAE,CAAA,IAAA;AAAA,IAAK,CAAE,CAAA,KAAA;AApDnC,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAqDM,MAAA,OAAA,aAAA;AAAA,wBACE,KAAA,CAAA,aAAA;AAAA,UAAC,CAAE,CAAA,uBAAA;AAAA,UAAF;AAAA,YACC,QAAU,EAAA,CAAA,EAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,MAAO,CAAA,QAAA;AAAA,YAC/B,KAAO,EAAA,CAAA,EAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,MAAO,CAAA,KAAA;AAAA,WAAA;AAAA,SAC9B;AAAA,OACF,CAAA;AAAA,KAAA;AAAA,GACF;AACJ,CAAC,CAAA,CAAA;AAKD,YAAe,YAAa,CAAA;AAAA,EAC1B,EAAI,EAAA,MAAA;AAAA,EACJ,UAAA,EAAY,CAAC,QAAQ,CAAA;AACvB,CAAC,CAAA;;;;"}
@@ -0,0 +1,11 @@
1
+ import { createApiRef } from '@backstage/core-plugin-api';
2
+
3
+ const isOperator = (s) => {
4
+ return ["<", "<=", "==", "!=", ">", ">=", "contains"].includes(s);
5
+ };
6
+ const visitsApiRef = createApiRef({
7
+ id: "homepage.visits"
8
+ });
9
+
10
+ export { isOperator, visitsApiRef };
11
+ //# sourceMappingURL=VisitsApi.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisitsApi.esm.js","sources":["../../src/api/VisitsApi.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createApiRef } from '@backstage/core-plugin-api';\n\n/**\n * @public\n * The operators that can be used in filter.\n */\nexport type Operators = '<' | '<=' | '==' | '!=' | '>' | '>=' | 'contains';\n\n/**\n * @public\n * Type guard for operators.\n */\nexport const isOperator = (s: string): s is Operators => {\n return ['<', '<=', '==', '!=', '>', '>=', 'contains'].includes(s);\n};\n\n/**\n * @public\n * Model for a visit entity.\n */\nexport type Visit = {\n /**\n * The auto-generated visit identification.\n */\n id: string;\n /**\n * The visited entity, usually an entity id.\n */\n name: string;\n /**\n * The visited url pathname, usually the entity route.\n */\n pathname: string;\n /**\n * An individual view count.\n */\n hits: number;\n /**\n * Last date and time of visit. Format: unix epoch in ms.\n */\n timestamp: number;\n /**\n * Optional entity reference. See stringifyEntityRef from catalog-model.\n */\n entityRef?: string;\n};\n\n/**\n * @public\n * This data structure represents the parameters associated with search queries for visits.\n */\nexport type VisitsApiQueryParams = {\n /**\n * Limits the number of results returned. The default is 8.\n */\n limit?: number;\n /**\n * Allows ordering visits on entity properties.\n * @example\n * Sort ascending by the timestamp field.\n * ```\n * { orderBy: [{ field: 'timestamp', direction: 'asc' }] }\n * ```\n */\n orderBy?: Array<{\n field: keyof Visit;\n direction: 'asc' | 'desc';\n }>;\n /**\n * Allows filtering visits on entity properties.\n * @example\n * Most popular docs on the past 7 days\n * ```\n * {\n * orderBy: [{ field: 'hits', direction: 'desc' }],\n * filterBy: [\n * { field: 'timestamp', operator: '>=', value: <date> },\n * { field: 'entityRef', operator: 'contains', value: 'docs' }\n * ]\n * }\n * ```\n */\n filterBy?: Array<{\n field: keyof Visit;\n operator: Operators;\n value: string | number;\n }>;\n};\n\n/**\n * @public\n * This data structure represents the parameters associated with saving visits.\n */\nexport type VisitsApiSaveParams = {\n visit: Omit<Visit, 'id' | 'hits' | 'timestamp'>;\n};\n\n/**\n * @public\n * Visits API public contract.\n */\nexport interface VisitsApi {\n /**\n * Persist a new visit.\n * @param pageVisit - a new visit data\n */\n save(saveParams: VisitsApiSaveParams): Promise<Visit>;\n /**\n * Get user visits.\n * @param queryParams - optional search query params.\n */\n list(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;\n}\n\n/** @public */\nexport const visitsApiRef = createApiRef<VisitsApi>({\n id: 'homepage.visits',\n});\n"],"names":[],"mappings":";;AA4Ba,MAAA,UAAA,GAAa,CAAC,CAA8B,KAAA;AACvD,EAAO,OAAA,CAAC,GAAK,EAAA,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,KAAK,IAAM,EAAA,UAAU,CAAE,CAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAClE,EAAA;AAqGO,MAAM,eAAe,YAAwB,CAAA;AAAA,EAClD,EAAI,EAAA,iBAAA;AACN,CAAC;;;;"}
@@ -0,0 +1,118 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ class VisitsStorageApi {
8
+ constructor(options) {
9
+ __publicField(this, "limit");
10
+ __publicField(this, "storageApi");
11
+ __publicField(this, "storageKeyPrefix", "@backstage/plugin-home:visits");
12
+ __publicField(this, "identityApi");
13
+ var _a;
14
+ this.limit = Math.abs((_a = options.limit) != null ? _a : 100);
15
+ this.storageApi = options.storageApi;
16
+ this.identityApi = options.identityApi;
17
+ }
18
+ static create(options) {
19
+ return new VisitsStorageApi(options);
20
+ }
21
+ /**
22
+ * Returns a list of visits through the visitsApi
23
+ */
24
+ async list(queryParams) {
25
+ var _a, _b;
26
+ let visits = [...await this.retrieveAll()];
27
+ ((_a = queryParams == null ? void 0 : queryParams.orderBy) != null ? _a : []).reverse().forEach((order) => {
28
+ if (order.direction === "asc") {
29
+ visits.sort((a, b) => this.compare(order, a, b));
30
+ } else {
31
+ visits.sort((a, b) => this.compare(order, b, a));
32
+ }
33
+ });
34
+ ((_b = queryParams == null ? void 0 : queryParams.filterBy) != null ? _b : []).reverse().forEach((filter) => {
35
+ visits = visits.filter((visit) => {
36
+ const field = visit[filter.field];
37
+ if (filter.operator === ">")
38
+ return field > filter.value;
39
+ if (filter.operator === ">=")
40
+ return field >= filter.value;
41
+ if (filter.operator === "<")
42
+ return field < filter.value;
43
+ if (filter.operator === "<=")
44
+ return field <= filter.value;
45
+ if (filter.operator === "==")
46
+ return field === filter.value;
47
+ if (filter.operator === "!=")
48
+ return field !== filter.value;
49
+ if (filter.operator === "contains")
50
+ return `${field}`.includes(`${filter.value}`);
51
+ return false;
52
+ });
53
+ });
54
+ return visits;
55
+ }
56
+ /**
57
+ * Saves a visit through the visitsApi
58
+ */
59
+ async save(saveParams) {
60
+ const visits = [...await this.retrieveAll()];
61
+ const visit = {
62
+ ...saveParams.visit,
63
+ id: window.crypto.randomUUID(),
64
+ hits: 1,
65
+ timestamp: Date.now()
66
+ };
67
+ const visitIndex = visits.findIndex((e) => e.pathname === visit.pathname);
68
+ if (visitIndex >= 0) {
69
+ visit.id = visits[visitIndex].id;
70
+ visit.hits = visits[visitIndex].hits + 1;
71
+ visits[visitIndex] = visit;
72
+ } else {
73
+ visits.push(visit);
74
+ }
75
+ visits.sort((a, b) => b.timestamp - a.timestamp);
76
+ await this.persistAll(visits.splice(0, this.limit));
77
+ return visit;
78
+ }
79
+ async persistAll(visits) {
80
+ const storageKey = await this.getStorageKey();
81
+ return this.storageApi.set(storageKey, visits);
82
+ }
83
+ async retrieveAll() {
84
+ var _a;
85
+ const storageKey = await this.getStorageKey();
86
+ const snapshot = this.storageApi.snapshot(storageKey);
87
+ if ((snapshot == null ? void 0 : snapshot.presence) !== "unknown") {
88
+ return (_a = snapshot == null ? void 0 : snapshot.value) != null ? _a : [];
89
+ }
90
+ return new Promise((resolve, reject) => {
91
+ const subscription = this.storageApi.observe$(storageKey).subscribe({
92
+ next: (next) => {
93
+ var _a2;
94
+ const visits = (_a2 = next.value) != null ? _a2 : [];
95
+ subscription.unsubscribe();
96
+ resolve(visits);
97
+ },
98
+ error: (err) => {
99
+ subscription.unsubscribe();
100
+ reject(err);
101
+ }
102
+ });
103
+ });
104
+ }
105
+ async getStorageKey() {
106
+ const { userEntityRef } = await this.identityApi.getBackstageIdentity();
107
+ const storageKey = `${this.storageKeyPrefix}:${userEntityRef}`;
108
+ return storageKey;
109
+ }
110
+ // This assumes Visit fields are either numbers or strings
111
+ compare(order, a, b) {
112
+ const isNumber = typeof a[order.field] === "number";
113
+ return isNumber ? a[order.field] - b[order.field] : `${a[order.field]}`.localeCompare(`${b[order.field]}`);
114
+ }
115
+ }
116
+
117
+ export { VisitsStorageApi };
118
+ //# sourceMappingURL=VisitsStorageApi.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisitsStorageApi.esm.js","sources":["../../src/api/VisitsStorageApi.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { IdentityApi, StorageApi } from '@backstage/core-plugin-api';\nimport {\n Visit,\n VisitsApi,\n VisitsApiQueryParams,\n VisitsApiSaveParams,\n} from './VisitsApi';\n\n/** @public */\nexport type VisitsStorageApiOptions = {\n limit?: number;\n storageApi: StorageApi;\n identityApi: IdentityApi;\n};\n\ntype ArrayElement<A> = A extends readonly (infer T)[] ? T : never;\n\n/**\n * @public\n * This is an implementation of VisitsApi that relies on a StorageApi.\n * Beware that filtering and ordering are done in memory therefore it is\n * prudent to keep limit to a reasonable size.\n */\nexport class VisitsStorageApi implements VisitsApi {\n private readonly limit: number;\n private readonly storageApi: StorageApi;\n private readonly storageKeyPrefix = '@backstage/plugin-home:visits';\n private readonly identityApi: IdentityApi;\n\n static create(options: VisitsStorageApiOptions) {\n return new VisitsStorageApi(options);\n }\n\n private constructor(options: VisitsStorageApiOptions) {\n this.limit = Math.abs(options.limit ?? 100);\n this.storageApi = options.storageApi;\n this.identityApi = options.identityApi;\n }\n\n /**\n * Returns a list of visits through the visitsApi\n */\n async list(queryParams?: VisitsApiQueryParams): Promise<Visit[]> {\n let visits = [...(await this.retrieveAll())];\n\n // reversing order to guarantee orderBy priority\n (queryParams?.orderBy ?? []).reverse().forEach(order => {\n if (order.direction === 'asc') {\n visits.sort((a, b) => this.compare(order, a, b));\n } else {\n visits.sort((a, b) => this.compare(order, b, a));\n }\n });\n\n // reversing order to guarantee filterBy priority\n (queryParams?.filterBy ?? []).reverse().forEach(filter => {\n visits = visits.filter(visit => {\n const field = visit[filter.field] as number | string;\n if (filter.operator === '>') return field > filter.value;\n if (filter.operator === '>=') return field >= filter.value;\n if (filter.operator === '<') return field < filter.value;\n if (filter.operator === '<=') return field <= filter.value;\n if (filter.operator === '==') return field === filter.value;\n if (filter.operator === '!=') return field !== filter.value;\n if (filter.operator === 'contains')\n return `${field}`.includes(`${filter.value}`);\n return false;\n });\n });\n\n return visits;\n }\n\n /**\n * Saves a visit through the visitsApi\n */\n async save(saveParams: VisitsApiSaveParams): Promise<Visit> {\n const visits: Visit[] = [...(await this.retrieveAll())];\n\n const visit: Visit = {\n ...saveParams.visit,\n id: window.crypto.randomUUID(),\n hits: 1,\n timestamp: Date.now(),\n };\n\n // Updates entry if pathname is already registered\n const visitIndex = visits.findIndex(e => e.pathname === visit.pathname);\n if (visitIndex >= 0) {\n visit.id = visits[visitIndex].id;\n visit.hits = visits[visitIndex].hits + 1;\n visits[visitIndex] = visit;\n } else {\n visits.push(visit);\n }\n\n // Sort by time, most recent first\n visits.sort((a, b) => b.timestamp - a.timestamp);\n // Keep the most recent items up to limit\n await this.persistAll(visits.splice(0, this.limit));\n return visit;\n }\n\n private async persistAll(visits: Array<Visit>) {\n const storageKey = await this.getStorageKey();\n return this.storageApi.set<Array<Visit>>(storageKey, visits);\n }\n\n private async retrieveAll(): Promise<Array<Visit>> {\n const storageKey = await this.getStorageKey();\n // Handles for case when snapshot is and is not referenced per storaged type used\n const snapshot = this.storageApi.snapshot<Array<Visit>>(storageKey);\n if (snapshot?.presence !== 'unknown') {\n return snapshot?.value ?? [];\n }\n\n return new Promise((resolve, reject) => {\n const subscription = this.storageApi\n .observe$<Visit[]>(storageKey)\n .subscribe({\n next: next => {\n const visits = next.value ?? [];\n subscription.unsubscribe();\n resolve(visits);\n },\n error: err => {\n subscription.unsubscribe();\n reject(err);\n },\n });\n });\n }\n\n private async getStorageKey(): Promise<string> {\n const { userEntityRef } = await this.identityApi.getBackstageIdentity();\n const storageKey = `${this.storageKeyPrefix}:${userEntityRef}`;\n return storageKey;\n }\n\n // This assumes Visit fields are either numbers or strings\n private compare(\n order: ArrayElement<VisitsApiQueryParams['orderBy']>,\n a: Visit,\n b: Visit,\n ): number {\n const isNumber = typeof a[order.field] === 'number';\n return isNumber\n ? (a[order.field] as number) - (b[order.field] as number)\n : `${a[order.field]}`.localeCompare(`${b[order.field]}`);\n }\n}\n"],"names":["_a"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { VisitsStorageApi } from './VisitsStorageApi.esm.js';
2
+ import { WebStorage } from '@backstage/core-app-api';
3
+
4
+ class VisitsWebStorageApi {
5
+ static create(options) {
6
+ return VisitsStorageApi.create({
7
+ limit: options.limit,
8
+ identityApi: options.identityApi,
9
+ storageApi: WebStorage.create({ errorApi: options.errorApi })
10
+ });
11
+ }
12
+ }
13
+
14
+ export { VisitsWebStorageApi };
15
+ //# sourceMappingURL=VisitsWebStorageApi.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisitsWebStorageApi.esm.js","sources":["../../src/api/VisitsWebStorageApi.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ErrorApi, IdentityApi } from '@backstage/core-plugin-api';\nimport { VisitsStorageApi } from './VisitsStorageApi';\nimport { WebStorage } from '@backstage/core-app-api';\n\n/** @public */\nexport type VisitsWebStorageApiOptions = {\n limit?: number;\n identityApi: IdentityApi;\n errorApi: ErrorApi;\n};\n\n/**\n * @public\n * This is a reference implementation of VisitsApi using WebStorage.\n */\nexport class VisitsWebStorageApi {\n static create(options: VisitsWebStorageApiOptions) {\n return VisitsStorageApi.create({\n limit: options.limit,\n identityApi: options.identityApi,\n storageApi: WebStorage.create({ errorApi: options.errorApi }),\n });\n }\n}\n"],"names":[],"mappings":";;;AA8BO,MAAM,mBAAoB,CAAA;AAAA,EAC/B,OAAO,OAAO,OAAqC,EAAA;AACjD,IAAA,OAAO,iBAAiB,MAAO,CAAA;AAAA,MAC7B,OAAO,OAAQ,CAAA,KAAA;AAAA,MACf,aAAa,OAAQ,CAAA,WAAA;AAAA,MACrB,YAAY,UAAW,CAAA,MAAA,CAAO,EAAE,QAAU,EAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,KAC7D,CAAA,CAAA;AAAA,GACH;AACF;;;;"}
@@ -0,0 +1,37 @@
1
+ import { isOperator } from './VisitsApi.esm.js';
2
+
3
+ function readFilterConfig(config) {
4
+ try {
5
+ const field = config.getString("field");
6
+ const operator = config.getString("operator");
7
+ const value = getValue(config);
8
+ if (isOperator(operator) && value !== void 0) {
9
+ return { field, operator, value };
10
+ }
11
+ return void 0;
12
+ } catch (error) {
13
+ return void 0;
14
+ }
15
+ }
16
+ function getValue(config) {
17
+ let value = void 0;
18
+ try {
19
+ value = config.getString("value");
20
+ } catch (error) {
21
+ try {
22
+ value = config.getNumber("value");
23
+ } catch {
24
+ }
25
+ }
26
+ return value;
27
+ }
28
+ function createFilterByQueryParamFromConfig(configs) {
29
+ try {
30
+ return configs.map(readFilterConfig).filter(Boolean);
31
+ } catch {
32
+ return void 0;
33
+ }
34
+ }
35
+
36
+ export { createFilterByQueryParamFromConfig, readFilterConfig };
37
+ //# sourceMappingURL=config.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.esm.js","sources":["../../src/api/config.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Visit,\n VisitsApiQueryParams,\n Operators,\n isOperator,\n} from './VisitsApi';\nimport { Config } from '@backstage/config';\n\n/**\n * Reads a single FilterBy config.\n *\n * @param config - The single config object\n *\n * @public\n */\n\nexport function readFilterConfig(config: Config):\n | {\n field: keyof Visit;\n operator: Operators;\n value: string | number;\n }\n | undefined {\n try {\n const field = config.getString('field') as keyof Visit;\n const operator = config.getString('operator');\n const value = getValue(config);\n if (isOperator(operator) && value !== undefined) {\n return { field, operator, value };\n }\n return undefined;\n } catch (error) {\n // invalid filter config - ignore filter\n return undefined;\n }\n}\n\nfunction getValue(config: Config) {\n let value = undefined;\n try {\n value = config.getString('value');\n } catch (error) {\n try {\n value = config.getNumber('value');\n } catch {\n // value is not string or number - ignore filter\n }\n }\n return value;\n}\n\n/**\n * Reads a set of filter by configs.\n *\n * @param configs - All of the config objects\n *\n * @public\n */\nexport function createFilterByQueryParamFromConfig(\n configs: Config[],\n): VisitsApiQueryParams['filterBy'] | undefined {\n try {\n return configs\n .map(readFilterConfig)\n .filter(Boolean) as VisitsApiQueryParams['filterBy'];\n } catch {\n return undefined;\n }\n}\n"],"names":[],"mappings":";;AAgCO,SAAS,iBAAiB,MAMnB,EAAA;AACZ,EAAI,IAAA;AACF,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AACtC,IAAM,MAAA,QAAA,GAAW,MAAO,CAAA,SAAA,CAAU,UAAU,CAAA,CAAA;AAC5C,IAAM,MAAA,KAAA,GAAQ,SAAS,MAAM,CAAA,CAAA;AAC7B,IAAA,IAAI,UAAW,CAAA,QAAQ,CAAK,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AAC/C,MAAO,OAAA,EAAE,KAAO,EAAA,QAAA,EAAU,KAAM,EAAA,CAAA;AAAA,KAClC;AACA,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,WACA,KAAO,EAAA;AAEd,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACT;AACF,CAAA;AAEA,SAAS,SAAS,MAAgB,EAAA;AAChC,EAAA,IAAI,KAAQ,GAAA,KAAA,CAAA,CAAA;AACZ,EAAI,IAAA;AACF,IAAQ,KAAA,GAAA,MAAA,CAAO,UAAU,OAAO,CAAA,CAAA;AAAA,WACzB,KAAO,EAAA;AACd,IAAI,IAAA;AACF,MAAQ,KAAA,GAAA,MAAA,CAAO,UAAU,OAAO,CAAA,CAAA;AAAA,KAC1B,CAAA,MAAA;AAAA,KAER;AAAA,GACF;AACA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AASO,SAAS,mCACd,OAC8C,EAAA;AAC9C,EAAI,IAAA;AACF,IAAA,OAAO,OACJ,CAAA,GAAA,CAAI,gBAAgB,CAAA,CACpB,OAAO,OAAO,CAAA,CAAA;AAAA,GACX,CAAA,MAAA;AACN,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACT;AACF;;;;"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+
3
+ const TemplateBackstageLogo = (props) => {
4
+ return /* @__PURE__ */ React.createElement(
5
+ "svg",
6
+ {
7
+ className: props.classes.svg,
8
+ xmlns: "http://www.w3.org/2000/svg",
9
+ viewBox: "0 0 2079.95 456.05"
10
+ },
11
+ /* @__PURE__ */ React.createElement(
12
+ "path",
13
+ {
14
+ className: props.classes.path,
15
+ d: "M302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Zm241-88.84q7.94,0,17.09.17t18.12,1a139.3,139.3,0,0,1,16.74,2.57,42.78,42.78,0,0,1,13.3,5.14,64.27,64.27,0,0,1,20.54,19.89Q662,168,662,186.54q0,19.54-9.49,33.78t-27.1,21.09v.68q22.78,4.82,34.87,20.58t12.08,38.4a72.62,72.62,0,0,1-4.83,26.06,65.29,65.29,0,0,1-14.33,22.46,71.57,71.57,0,0,1-23.47,15.78q-14,6-32.28,6H478.38V126.54Zm9,105.27q28,0,40.21-9.78t12.26-29.31q0-13-4.14-20.58a29.47,29.47,0,0,0-11.4-11.66A45,45,0,0,0,597,155.17a161.2,161.2,0,0,0-20.19-1.2h-65.6v77.84Zm16.57,112.13q21.74,0,34-11.66T639.59,300q0-12-4.48-19.88a34.85,34.85,0,0,0-11.91-12.52,50.14,50.14,0,0,0-17.09-6.52,105,105,0,0,0-20-1.88H511.17v84.7Zm274.79,26.74q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58A41.19,41.19,0,0,1,705,348.56q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.08-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7T736.6,249.29H707.26q.69-16.46,6.9-27.77a52.21,52.21,0,0,1,16.57-18.35,70,70,0,0,1,23.65-10.11A125.51,125.51,0,0,1,782.86,190a168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7A41.23,41.23,0,0,1,844,213.59q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-18,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.5,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14ZM1002.07,225q-11.05-9.25-29.69-9.26-15.89,0-26.58,5.83A47.29,47.29,0,0,0,928.71,237a64.66,64.66,0,0,0-9.15,22.12A119.83,119.83,0,0,0,916.8,285a98.22,98.22,0,0,0,2.93,24,64.18,64.18,0,0,0,9.15,20.74,46.2,46.2,0,0,0,16.23,14.58q10,5.49,23.82,5.48,21.75,0,34-11.31t15-31.89h30q-4.83,32.91-24.68,50.75t-54,17.83q-20.37,0-36.07-6.52A69.86,69.86,0,0,1,907,350.11a79.92,79.92,0,0,1-15.88-28.63A118.64,118.64,0,0,1,885.73,285a129.41,129.41,0,0,1,5.18-37.21,85.63,85.63,0,0,1,15.71-30.17A73.46,73.46,0,0,1,933,197.35Q948.91,190,970,190a108.54,108.54,0,0,1,28.48,3.6,69.59,69.59,0,0,1,23.48,11.15,61,61,0,0,1,16.74,19q6.55,11.49,8.29,27.26h-30.38Q1013.11,234.21,1002.07,225Zm109.77-98.41v145l81.47-77.49h39.36l-70.77,64.46,75.95,112.82h-37.29l-61.1-92.59-27.62,25.38v67.21H1082.5V126.54Zm170.54,205.22a31.07,31.07,0,0,0,10.87,10.63,49,49,0,0,0,15.19,5.66,87.06,87.06,0,0,0,17.44,1.71,109.18,109.18,0,0,0,14.5-1,53.22,53.22,0,0,0,14-3.78,26.27,26.27,0,0,0,10.53-8q4.14-5.32,4.14-13.55,0-11.31-8.63-17.14a73.69,73.69,0,0,0-21.58-9.43q-12.94-3.6-28.13-6.52a146,146,0,0,1-28.14-8.23A58.16,58.16,0,0,1,1261,267.13q-8.64-9.6-8.63-26.75,0-13.38,6-23a49.26,49.26,0,0,1,15.53-15.61,71.76,71.76,0,0,1,21.4-8.91A99.41,99.41,0,0,1,1319,190a141.31,141.31,0,0,1,28,2.58,64.85,64.85,0,0,1,22.62,8.91,46.16,46.16,0,0,1,15.7,17.15q5.87,10.8,6.91,26.91h-29.35q-.69-8.57-4.48-14.23a29.36,29.36,0,0,0-9.67-9.08,44.16,44.16,0,0,0-12.94-5,67.68,67.68,0,0,0-14.33-1.54,87.29,87.29,0,0,0-13.29,1,45.28,45.28,0,0,0-12.26,3.6,24.49,24.49,0,0,0-9,6.86q-3.46,4.29-3.46,11.14a16.32,16.32,0,0,0,5.36,12.52,42.75,42.75,0,0,0,13.63,8.23,120,120,0,0,0,18.64,5.48q10.37,2.24,20.72,4.63,11,2.4,21.57,5.83A70.74,70.74,0,0,1,1382,284.1a44.55,44.55,0,0,1,13.12,14.23q5,8.58,5,21.26,0,16.13-6.73,26.75a52.5,52.5,0,0,1-17.61,17.14,73.89,73.89,0,0,1-24.51,9.09,146.3,146.3,0,0,1-27.1,2.57,126.24,126.24,0,0,1-28.31-3.09A69.56,69.56,0,0,1,1272,361.94a51.74,51.74,0,0,1-16.57-18.52q-6.21-11.49-6.9-27.95h29.34A32.65,32.65,0,0,0,1282.38,331.76Zm226.46-137.67v25.72h-35.56V329.88a31.37,31.37,0,0,0,.87,8.23,8.42,8.42,0,0,0,3.28,4.8,14.61,14.61,0,0,0,6.73,2.23,99.19,99.19,0,0,0,11.22.51h13.46v25.72H1486.4a105.8,105.8,0,0,1-19.5-1.55,28.65,28.65,0,0,1-13.12-5.65,24.09,24.09,0,0,1-7.42-11.66q-2.43-7.54-2.42-19.89V219.81h-30.38V194.09h30.38V140.94h29.34v53.15ZM1699.4,370.68q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58,41.19,41.19,0,0,1-12.6-15.26q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.07-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7t-13.46,26.57h-29.34q.67-16.46,6.9-27.77A52.21,52.21,0,0,1,1562,203.17a70,70,0,0,1,23.65-10.11,125.51,125.51,0,0,1,28.48-3.09,168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7,41.23,41.23,0,0,1,15.53,14.89q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-17.95,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.51,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14Zm208.85,141.62q-20,21.6-62.83,21.6a122.11,122.11,0,0,1-25.37-2.74,78,78,0,0,1-23.48-8.92,54.41,54.41,0,0,1-17.43-16.11q-6.91-10-7.6-24.35h29.35a21.47,21.47,0,0,0,5,13.38,36.67,36.67,0,0,0,11.4,8.91,55.52,55.52,0,0,0,14.67,5,79.51,79.51,0,0,0,15.19,1.55q14.49,0,24.51-5A46,46,0,0,0,1840.59,401a56.53,56.53,0,0,0,9.49-21.09,117.46,117.46,0,0,0,2.94-27.09V341.19h-.7q-7.59,16.46-23,24.18a71.8,71.8,0,0,1-32.63,7.71q-20,0-34.86-7.2A72.88,72.88,0,0,1,1737,346.51a82.13,82.13,0,0,1-15-28.46,116.62,116.62,0,0,1-5-34.47,133.92,133.92,0,0,1,4.14-32.4A88.17,88.17,0,0,1,1735,221a75.49,75.49,0,0,1,25.55-22.29q15.87-8.75,39-8.75a66.21,66.21,0,0,1,31.07,7.38,52.13,52.13,0,0,1,22.09,22.11h.35V194.09h27.61V356.28Q1880.63,399.83,1860.61,421.43Zm-37.46-79.72a47.94,47.94,0,0,0,16.4-15.78,71.89,71.89,0,0,0,9.15-22.11,106.77,106.77,0,0,0,2.93-24.69,96.71,96.71,0,0,0-2.76-23,64,64,0,0,0-8.8-20.4,45.76,45.76,0,0,0-15.71-14.57q-9.66-5.49-23.47-5.49-14.16,0-24.17,5.32a46.77,46.77,0,0,0-16.4,14.23,60.14,60.14,0,0,0-9.32,20.57,99.69,99.69,0,0,0-2.93,24.35,120.63,120.63,0,0,0,2.42,24,67.5,67.5,0,0,0,8.28,21.77,46.37,46.37,0,0,0,15.54,15.78q9.66,6,24.16,6T1823.15,341.71Zm228,18.34q-20,15.09-50.41,15.09-21.4,0-37.11-6.86a73.16,73.16,0,0,1-26.41-19.2,81.52,81.52,0,0,1-16-29.49,141.12,141.12,0,0,1-6-37.38,106.1,106.1,0,0,1,6.21-37A88.56,88.56,0,0,1,1938.8,216a79.09,79.09,0,0,1,26.58-19.2A81.66,81.66,0,0,1,1999,190q23.82,0,39.53,9.78a78,78,0,0,1,25.2,24.86,98.18,98.18,0,0,1,13.12,32.91,140.6,140.6,0,0,1,2.93,34h-133.6a70,70,0,0,0,2.76,22.12,49.9,49.9,0,0,0,10,18.51A49.1,49.1,0,0,0,1976.6,345q10.7,4.82,25.2,4.8,18.65,0,30.55-8.57t15.71-26.06h29Q2071.18,345,2051.17,360.05Zm-7.08-113.84a50,50,0,0,0-10.7-16,53.1,53.1,0,0,0-56.62-10.63,47.48,47.48,0,0,0-15.71,10.81,51.69,51.69,0,0,0-10.35,15.94,60.18,60.18,0,0,0-4.49,19.37h102.53A59.47,59.47,0,0,0,2044.09,246.21ZM302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Z"
16
+ }
17
+ )
18
+ );
19
+ };
20
+
21
+ export { TemplateBackstageLogo };
22
+ //# sourceMappingURL=TemplateBackstageLogo.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateBackstageLogo.esm.js","sources":["../../src/assets/TemplateBackstageLogo.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\n\n/** @public */\nexport const TemplateBackstageLogo = (props: {\n classes: {\n svg: string;\n path: string;\n };\n}) => {\n return (\n <svg\n className={props.classes.svg}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 2079.95 456.05\"\n >\n <path\n className={props.classes.path}\n d=\"M302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Zm241-88.84q7.94,0,17.09.17t18.12,1a139.3,139.3,0,0,1,16.74,2.57,42.78,42.78,0,0,1,13.3,5.14,64.27,64.27,0,0,1,20.54,19.89Q662,168,662,186.54q0,19.54-9.49,33.78t-27.1,21.09v.68q22.78,4.82,34.87,20.58t12.08,38.4a72.62,72.62,0,0,1-4.83,26.06,65.29,65.29,0,0,1-14.33,22.46,71.57,71.57,0,0,1-23.47,15.78q-14,6-32.28,6H478.38V126.54Zm9,105.27q28,0,40.21-9.78t12.26-29.31q0-13-4.14-20.58a29.47,29.47,0,0,0-11.4-11.66A45,45,0,0,0,597,155.17a161.2,161.2,0,0,0-20.19-1.2h-65.6v77.84Zm16.57,112.13q21.74,0,34-11.66T639.59,300q0-12-4.48-19.88a34.85,34.85,0,0,0-11.91-12.52,50.14,50.14,0,0,0-17.09-6.52,105,105,0,0,0-20-1.88H511.17v84.7Zm274.79,26.74q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58A41.19,41.19,0,0,1,705,348.56q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.08-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7T736.6,249.29H707.26q.69-16.46,6.9-27.77a52.21,52.21,0,0,1,16.57-18.35,70,70,0,0,1,23.65-10.11A125.51,125.51,0,0,1,782.86,190a168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7A41.23,41.23,0,0,1,844,213.59q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-18,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.5,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14ZM1002.07,225q-11.05-9.25-29.69-9.26-15.89,0-26.58,5.83A47.29,47.29,0,0,0,928.71,237a64.66,64.66,0,0,0-9.15,22.12A119.83,119.83,0,0,0,916.8,285a98.22,98.22,0,0,0,2.93,24,64.18,64.18,0,0,0,9.15,20.74,46.2,46.2,0,0,0,16.23,14.58q10,5.49,23.82,5.48,21.75,0,34-11.31t15-31.89h30q-4.83,32.91-24.68,50.75t-54,17.83q-20.37,0-36.07-6.52A69.86,69.86,0,0,1,907,350.11a79.92,79.92,0,0,1-15.88-28.63A118.64,118.64,0,0,1,885.73,285a129.41,129.41,0,0,1,5.18-37.21,85.63,85.63,0,0,1,15.71-30.17A73.46,73.46,0,0,1,933,197.35Q948.91,190,970,190a108.54,108.54,0,0,1,28.48,3.6,69.59,69.59,0,0,1,23.48,11.15,61,61,0,0,1,16.74,19q6.55,11.49,8.29,27.26h-30.38Q1013.11,234.21,1002.07,225Zm109.77-98.41v145l81.47-77.49h39.36l-70.77,64.46,75.95,112.82h-37.29l-61.1-92.59-27.62,25.38v67.21H1082.5V126.54Zm170.54,205.22a31.07,31.07,0,0,0,10.87,10.63,49,49,0,0,0,15.19,5.66,87.06,87.06,0,0,0,17.44,1.71,109.18,109.18,0,0,0,14.5-1,53.22,53.22,0,0,0,14-3.78,26.27,26.27,0,0,0,10.53-8q4.14-5.32,4.14-13.55,0-11.31-8.63-17.14a73.69,73.69,0,0,0-21.58-9.43q-12.94-3.6-28.13-6.52a146,146,0,0,1-28.14-8.23A58.16,58.16,0,0,1,1261,267.13q-8.64-9.6-8.63-26.75,0-13.38,6-23a49.26,49.26,0,0,1,15.53-15.61,71.76,71.76,0,0,1,21.4-8.91A99.41,99.41,0,0,1,1319,190a141.31,141.31,0,0,1,28,2.58,64.85,64.85,0,0,1,22.62,8.91,46.16,46.16,0,0,1,15.7,17.15q5.87,10.8,6.91,26.91h-29.35q-.69-8.57-4.48-14.23a29.36,29.36,0,0,0-9.67-9.08,44.16,44.16,0,0,0-12.94-5,67.68,67.68,0,0,0-14.33-1.54,87.29,87.29,0,0,0-13.29,1,45.28,45.28,0,0,0-12.26,3.6,24.49,24.49,0,0,0-9,6.86q-3.46,4.29-3.46,11.14a16.32,16.32,0,0,0,5.36,12.52,42.75,42.75,0,0,0,13.63,8.23,120,120,0,0,0,18.64,5.48q10.37,2.24,20.72,4.63,11,2.4,21.57,5.83A70.74,70.74,0,0,1,1382,284.1a44.55,44.55,0,0,1,13.12,14.23q5,8.58,5,21.26,0,16.13-6.73,26.75a52.5,52.5,0,0,1-17.61,17.14,73.89,73.89,0,0,1-24.51,9.09,146.3,146.3,0,0,1-27.1,2.57,126.24,126.24,0,0,1-28.31-3.09A69.56,69.56,0,0,1,1272,361.94a51.74,51.74,0,0,1-16.57-18.52q-6.21-11.49-6.9-27.95h29.34A32.65,32.65,0,0,0,1282.38,331.76Zm226.46-137.67v25.72h-35.56V329.88a31.37,31.37,0,0,0,.87,8.23,8.42,8.42,0,0,0,3.28,4.8,14.61,14.61,0,0,0,6.73,2.23,99.19,99.19,0,0,0,11.22.51h13.46v25.72H1486.4a105.8,105.8,0,0,1-19.5-1.55,28.65,28.65,0,0,1-13.12-5.65,24.09,24.09,0,0,1-7.42-11.66q-2.43-7.54-2.42-19.89V219.81h-30.38V194.09h30.38V140.94h29.34v53.15ZM1699.4,370.68q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58,41.19,41.19,0,0,1-12.6-15.26q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.07-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7t-13.46,26.57h-29.34q.67-16.46,6.9-27.77A52.21,52.21,0,0,1,1562,203.17a70,70,0,0,1,23.65-10.11,125.51,125.51,0,0,1,28.48-3.09,168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7,41.23,41.23,0,0,1,15.53,14.89q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-17.95,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.51,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14Zm208.85,141.62q-20,21.6-62.83,21.6a122.11,122.11,0,0,1-25.37-2.74,78,78,0,0,1-23.48-8.92,54.41,54.41,0,0,1-17.43-16.11q-6.91-10-7.6-24.35h29.35a21.47,21.47,0,0,0,5,13.38,36.67,36.67,0,0,0,11.4,8.91,55.52,55.52,0,0,0,14.67,5,79.51,79.51,0,0,0,15.19,1.55q14.49,0,24.51-5A46,46,0,0,0,1840.59,401a56.53,56.53,0,0,0,9.49-21.09,117.46,117.46,0,0,0,2.94-27.09V341.19h-.7q-7.59,16.46-23,24.18a71.8,71.8,0,0,1-32.63,7.71q-20,0-34.86-7.2A72.88,72.88,0,0,1,1737,346.51a82.13,82.13,0,0,1-15-28.46,116.62,116.62,0,0,1-5-34.47,133.92,133.92,0,0,1,4.14-32.4A88.17,88.17,0,0,1,1735,221a75.49,75.49,0,0,1,25.55-22.29q15.87-8.75,39-8.75a66.21,66.21,0,0,1,31.07,7.38,52.13,52.13,0,0,1,22.09,22.11h.35V194.09h27.61V356.28Q1880.63,399.83,1860.61,421.43Zm-37.46-79.72a47.94,47.94,0,0,0,16.4-15.78,71.89,71.89,0,0,0,9.15-22.11,106.77,106.77,0,0,0,2.93-24.69,96.71,96.71,0,0,0-2.76-23,64,64,0,0,0-8.8-20.4,45.76,45.76,0,0,0-15.71-14.57q-9.66-5.49-23.47-5.49-14.16,0-24.17,5.32a46.77,46.77,0,0,0-16.4,14.23,60.14,60.14,0,0,0-9.32,20.57,99.69,99.69,0,0,0-2.93,24.35,120.63,120.63,0,0,0,2.42,24,67.5,67.5,0,0,0,8.28,21.77,46.37,46.37,0,0,0,15.54,15.78q9.66,6,24.16,6T1823.15,341.71Zm228,18.34q-20,15.09-50.41,15.09-21.4,0-37.11-6.86a73.16,73.16,0,0,1-26.41-19.2,81.52,81.52,0,0,1-16-29.49,141.12,141.12,0,0,1-6-37.38,106.1,106.1,0,0,1,6.21-37A88.56,88.56,0,0,1,1938.8,216a79.09,79.09,0,0,1,26.58-19.2A81.66,81.66,0,0,1,1999,190q23.82,0,39.53,9.78a78,78,0,0,1,25.2,24.86,98.18,98.18,0,0,1,13.12,32.91,140.6,140.6,0,0,1,2.93,34h-133.6a70,70,0,0,0,2.76,22.12,49.9,49.9,0,0,0,10,18.51A49.1,49.1,0,0,0,1976.6,345q10.7,4.82,25.2,4.8,18.65,0,30.55-8.57t15.71-26.06h29Q2071.18,345,2051.17,360.05Zm-7.08-113.84a50,50,0,0,0-10.7-16,53.1,53.1,0,0,0-56.62-10.63,47.48,47.48,0,0,0-15.71,10.81,51.69,51.69,0,0,0-10.35,15.94,60.18,60.18,0,0,0-4.49,19.37h102.53A59.47,59.47,0,0,0,2044.09,246.21ZM302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Z\"\n />\n </svg>\n );\n};\n"],"names":[],"mappings":";;AAmBa,MAAA,qBAAA,GAAwB,CAAC,KAKhC,KAAA;AACJ,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,MAAM,OAAQ,CAAA,GAAA;AAAA,MACzB,KAAM,EAAA,4BAAA;AAAA,MACN,OAAQ,EAAA,oBAAA;AAAA,KAAA;AAAA,oBAER,KAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,MAAM,OAAQ,CAAA,IAAA;AAAA,QACzB,CAAE,EAAA,u5YAAA;AAAA,OAAA;AAAA,KACJ;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { makeStyles } from '@material-ui/core/styles';
3
+
4
+ const useStyles = makeStyles({
5
+ svg: {
6
+ width: "auto",
7
+ height: 28
8
+ },
9
+ path: {
10
+ fill: "#7df3e1"
11
+ }
12
+ });
13
+ const TemplateBackstageLogoIcon = () => {
14
+ const classes = useStyles();
15
+ return /* @__PURE__ */ React.createElement(
16
+ "svg",
17
+ {
18
+ className: classes.svg,
19
+ xmlns: "http://www.w3.org/2000/svg",
20
+ viewBox: "0 0 337.46 428.5"
21
+ },
22
+ /* @__PURE__ */ React.createElement(
23
+ "path",
24
+ {
25
+ className: classes.path,
26
+ d: "M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z"
27
+ }
28
+ )
29
+ );
30
+ };
31
+
32
+ export { TemplateBackstageLogoIcon };
33
+ //# sourceMappingURL=TemplateBackstageLogoIcon.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateBackstageLogoIcon.esm.js","sources":["../../src/assets/TemplateBackstageLogoIcon.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n svg: {\n width: 'auto',\n height: 28,\n },\n path: {\n fill: '#7df3e1',\n },\n});\n\n/** @public */\nexport const TemplateBackstageLogoIcon = () => {\n const classes = useStyles();\n\n return (\n <svg\n className={classes.svg}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 337.46 428.5\"\n >\n <path\n className={classes.path}\n d=\"M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z\"\n />\n </svg>\n );\n};\n"],"names":[],"mappings":";;;AAmBA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,GAAK,EAAA;AAAA,IACH,KAAO,EAAA,MAAA;AAAA,IACP,MAAQ,EAAA,EAAA;AAAA,GACV;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,GACR;AACF,CAAC,CAAA,CAAA;AAGM,MAAM,4BAA4B,MAAM;AAC7C,EAAA,MAAM,UAAU,SAAU,EAAA,CAAA;AAE1B,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,OAAQ,CAAA,GAAA;AAAA,MACnB,KAAM,EAAA,4BAAA;AAAA,MACN,OAAQ,EAAA,kBAAA;AAAA,KAAA;AAAA,oBAER,KAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,OAAQ,CAAA,IAAA;AAAA,QACnB,CAAE,EAAA,8uFAAA;AAAA,OAAA;AAAA,KACJ;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -8,9 +8,6 @@ import IconButton from '@material-ui/core/IconButton';
8
8
  import { makeStyles } from '@material-ui/core/styles';
9
9
  import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
10
10
  import SettingsIcon from '@material-ui/icons/Settings';
11
- import Tabs from '@material-ui/core/Tabs';
12
- import Tab from '@material-ui/core/Tab';
13
- import { InfoCard } from '@backstage/core-components';
14
11
 
15
12
  const useStyles = makeStyles((theme) => ({
16
13
  settingsIconButton: {
@@ -64,26 +61,5 @@ const ComponentAccordion = (props) => {
64
61
  return ContextProvider ? /* @__PURE__ */ React.createElement(ContextProvider, { ...childProps }, innerContent) : innerContent;
65
62
  };
66
63
 
67
- const ComponentTabs = (props) => {
68
- const { title, tabs } = props;
69
- const [value, setValue] = React.useState(0);
70
- const handleChange = (_event, newValue) => {
71
- setValue(newValue);
72
- };
73
- return /* @__PURE__ */ React.createElement(InfoCard, { title }, /* @__PURE__ */ React.createElement(Tabs, { value, onChange: handleChange }, tabs.map((t) => /* @__PURE__ */ React.createElement(Tab, { key: t.label, label: t.label }))), tabs.map(({ Component }, idx) => /* @__PURE__ */ React.createElement(
74
- "div",
75
- {
76
- key: idx,
77
- ...idx !== value ? { style: { display: "none" } } : {}
78
- },
79
- /* @__PURE__ */ React.createElement(Component, null)
80
- )));
81
- };
82
-
83
- const ComponentTab = (props) => {
84
- const { title, Content, ContextProvider, ...childProps } = props;
85
- return ContextProvider ? /* @__PURE__ */ React.createElement(ContextProvider, { ...childProps }, /* @__PURE__ */ React.createElement(Content, null)) : /* @__PURE__ */ React.createElement(Content, null);
86
- };
87
-
88
- export { ComponentAccordion, ComponentTab, ComponentTabs };
89
- //# sourceMappingURL=index-BNfZuEhy.esm.js.map
64
+ export { ComponentAccordion };
65
+ //# sourceMappingURL=ComponentAccordion.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentAccordion.esm.js","sources":["../../src/componentRenderers/ComponentAccordion.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport { SettingsModal } from '@backstage/plugin-home-react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Theme } from '@material-ui/core/styles';\nimport { makeStyles } from '@material-ui/core/styles';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport SettingsIcon from '@material-ui/icons/Settings';\n\nconst useStyles = makeStyles((theme: Theme) => ({\n settingsIconButton: {\n padding: theme.spacing(0, 1, 0, 0),\n },\n contentContainer: {\n width: '100%',\n },\n}));\n\nexport const ComponentAccordion = (props: {\n title?: string;\n expanded?: boolean;\n Content: () => JSX.Element;\n Actions?: () => JSX.Element;\n Settings?: () => JSX.Element;\n ContextProvider?: (props: any) => JSX.Element;\n}) => {\n const {\n title,\n expanded = false,\n Content,\n Actions,\n Settings,\n ContextProvider,\n ...childProps\n } = props;\n\n const classes = useStyles();\n const [settingsIsExpanded, setSettingsIsExpanded] = React.useState(false);\n const [isExpanded, setIsExpanded] = React.useState(expanded);\n\n const handleOpenSettings = (e: any) => {\n e.stopPropagation();\n setSettingsIsExpanded(prevState => !prevState);\n };\n\n const innerContent = (\n <>\n {Settings && (\n <SettingsModal\n open={settingsIsExpanded}\n close={() => setSettingsIsExpanded(false)}\n componentName={title}\n >\n <Settings />\n </SettingsModal>\n )}\n <Accordion\n expanded={isExpanded}\n onChange={(_e: any, expandedValue: boolean) =>\n setIsExpanded(expandedValue)\n }\n >\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n {Settings && (\n <IconButton\n onClick={handleOpenSettings}\n className={classes.settingsIconButton}\n >\n <SettingsIcon />\n </IconButton>\n )}\n <Typography>{title}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <div className={classes.contentContainer}>\n <Content />\n {Actions && <Actions />}\n </div>\n </AccordionDetails>\n </Accordion>\n </>\n );\n\n return ContextProvider ? (\n <ContextProvider {...childProps}>{innerContent}</ContextProvider>\n ) : (\n innerContent\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AA4BA,MAAM,SAAA,GAAY,UAAW,CAAA,CAAC,KAAkB,MAAA;AAAA,EAC9C,kBAAoB,EAAA;AAAA,IAClB,SAAS,KAAM,CAAA,OAAA,CAAQ,CAAG,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,GACnC;AAAA,EACA,gBAAkB,EAAA;AAAA,IAChB,KAAO,EAAA,MAAA;AAAA,GACT;AACF,CAAE,CAAA,CAAA,CAAA;AAEW,MAAA,kBAAA,GAAqB,CAAC,KAO7B,KAAA;AACJ,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,OAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,eAAA;AAAA,IACA,GAAG,UAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,UAAU,SAAU,EAAA,CAAA;AAC1B,EAAA,MAAM,CAAC,kBAAoB,EAAA,qBAAqB,CAAI,GAAA,KAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AACxE,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAA,KAAA,CAAM,SAAS,QAAQ,CAAA,CAAA;AAE3D,EAAM,MAAA,kBAAA,GAAqB,CAAC,CAAW,KAAA;AACrC,IAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,IAAsB,qBAAA,CAAA,CAAA,SAAA,KAAa,CAAC,SAAS,CAAA,CAAA;AAAA,GAC/C,CAAA;AAEA,EAAM,MAAA,YAAA,6DAED,QACC,oBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,IAAM,EAAA,kBAAA;AAAA,MACN,KAAA,EAAO,MAAM,qBAAA,CAAsB,KAAK,CAAA;AAAA,MACxC,aAAe,EAAA,KAAA;AAAA,KAAA;AAAA,wCAEd,QAAS,EAAA,IAAA,CAAA;AAAA,GAGd,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,QAAU,EAAA,UAAA;AAAA,MACV,QAAU,EAAA,CAAC,EAAS,EAAA,aAAA,KAClB,cAAc,aAAa,CAAA;AAAA,KAAA;AAAA,wCAG5B,gBAAiB,EAAA,EAAA,UAAA,kBAAa,KAAA,CAAA,aAAA,CAAA,cAAA,EAAA,IAAe,KAC3C,QACC,oBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,kBAAA;AAAA,QACT,WAAW,OAAQ,CAAA,kBAAA;AAAA,OAAA;AAAA,0CAElB,YAAa,EAAA,IAAA,CAAA;AAAA,KAGlB,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAY,EAAA,IAAA,EAAA,KAAM,CACrB,CAAA;AAAA,oBACC,KAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,WAAW,OAAQ,CAAA,gBAAA,EAAA,kBACrB,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAQ,CACR,EAAA,OAAA,oBAAY,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAQ,CACvB,CACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAGF,EAAA,OAAO,kCACJ,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA,EAAiB,GAAG,UAAA,EAAA,EAAa,YAAa,CAE/C,GAAA,YAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+
3
+ const ComponentTab = (props) => {
4
+ const { title, Content, ContextProvider, ...childProps } = props;
5
+ return ContextProvider ? /* @__PURE__ */ React.createElement(ContextProvider, { ...childProps }, /* @__PURE__ */ React.createElement(Content, null)) : /* @__PURE__ */ React.createElement(Content, null);
6
+ };
7
+
8
+ export { ComponentTab };
9
+ //# sourceMappingURL=ComponentTab.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentTab.esm.js","sources":["../../../src/componentRenderers/ComponentTabs/ComponentTab.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\n\nexport const ComponentTab = (props: {\n title: string;\n Content: () => JSX.Element;\n ContextProvider?: (props: any) => JSX.Element;\n}) => {\n const { title, Content, ContextProvider, ...childProps } = props;\n\n return ContextProvider ? (\n <ContextProvider {...childProps}>\n <Content />\n </ContextProvider>\n ) : (\n <Content />\n );\n};\n"],"names":[],"mappings":";;AAkBa,MAAA,YAAA,GAAe,CAAC,KAIvB,KAAA;AACJ,EAAA,MAAM,EAAE,KAAO,EAAA,OAAA,EAAS,eAAiB,EAAA,GAAG,YAAe,GAAA,KAAA,CAAA;AAE3D,EAAO,OAAA,eAAA,mBACJ,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA,EAAiB,GAAG,UAAA,EAAA,sCAClB,OAAQ,EAAA,IAAA,CACX,CAEA,mBAAA,KAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,IAAA,CAAA,CAAA;AAEb;;;;"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import Tabs from '@material-ui/core/Tabs';
3
+ import Tab from '@material-ui/core/Tab';
4
+ import { InfoCard } from '@backstage/core-components';
5
+
6
+ const ComponentTabs = (props) => {
7
+ const { title, tabs } = props;
8
+ const [value, setValue] = React.useState(0);
9
+ const handleChange = (_event, newValue) => {
10
+ setValue(newValue);
11
+ };
12
+ return /* @__PURE__ */ React.createElement(InfoCard, { title }, /* @__PURE__ */ React.createElement(Tabs, { value, onChange: handleChange }, tabs.map((t) => /* @__PURE__ */ React.createElement(Tab, { key: t.label, label: t.label }))), tabs.map(({ Component }, idx) => /* @__PURE__ */ React.createElement(
13
+ "div",
14
+ {
15
+ key: idx,
16
+ ...idx !== value ? { style: { display: "none" } } : {}
17
+ },
18
+ /* @__PURE__ */ React.createElement(Component, null)
19
+ )));
20
+ };
21
+
22
+ export { ComponentTabs };
23
+ //# sourceMappingURL=ComponentTabs.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentTabs.esm.js","sources":["../../../src/componentRenderers/ComponentTabs/ComponentTabs.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { InfoCard } from '@backstage/core-components';\n\ntype TabType = {\n label: string;\n Component: () => JSX.Element;\n};\n\nexport const ComponentTabs = (props: { title: string; tabs: TabType[] }) => {\n const { title, tabs } = props;\n\n const [value, setValue] = React.useState(0);\n\n const handleChange = (_event: any, newValue: number) => {\n setValue(newValue);\n };\n\n return (\n <InfoCard title={title}>\n <Tabs value={value} onChange={handleChange}>\n {tabs.map(t => (\n <Tab key={t.label} label={t.label} />\n ))}\n </Tabs>\n {tabs.map(({ Component }, idx) => (\n <div\n key={idx}\n {...(idx !== value ? { style: { display: 'none' } } : {})}\n >\n <Component />\n </div>\n ))}\n </InfoCard>\n );\n};\n"],"names":[],"mappings":";;;;;AA0Ba,MAAA,aAAA,GAAgB,CAAC,KAA8C,KAAA;AAC1E,EAAM,MAAA,EAAE,KAAO,EAAA,IAAA,EAAS,GAAA,KAAA,CAAA;AAExB,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AAE1C,EAAM,MAAA,YAAA,GAAe,CAAC,MAAA,EAAa,QAAqB,KAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,KACR,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAc,QAAU,EAAA,YAAA,EAAA,EAC3B,IAAK,CAAA,GAAA,CAAI,CACR,CAAA,qBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,GAAA,EAAK,CAAE,CAAA,KAAA,EAAO,KAAO,EAAA,CAAA,CAAE,KAAO,EAAA,CACpC,CACH,CAAA,EACC,IAAK,CAAA,GAAA,CAAI,CAAC,EAAE,SAAU,EAAA,EAAG,GACxB,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,GAAA;AAAA,MACJ,GAAI,GAAQ,KAAA,KAAA,GAAQ,EAAE,KAAA,EAAO,EAAE,OAAS,EAAA,MAAA,EAAS,EAAA,GAAI,EAAC;AAAA,KAAA;AAAA,wCAEtD,SAAU,EAAA,IAAA,CAAA;AAAA,GAEd,CACH,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,4 @@
1
+ export { ComponentAccordion } from './ComponentAccordion.esm.js';
2
+ export { ComponentTabs } from './ComponentTabs/ComponentTabs.esm.js';
3
+ export { ComponentTab } from './ComponentTabs/ComponentTab.esm.js';
4
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,45 @@
1
+ import List from '@material-ui/core/List';
2
+ import ListItem from '@material-ui/core/ListItem';
3
+ import DialogContent from '@material-ui/core/DialogContent';
4
+ import DialogTitle from '@material-ui/core/DialogTitle';
5
+ import ListItemAvatar from '@material-ui/core/ListItemAvatar';
6
+ import AddIcon from '@material-ui/icons/Add';
7
+ import ListItemText from '@material-ui/core/ListItemText';
8
+ import React from 'react';
9
+ import Typography from '@material-ui/core/Typography';
10
+
11
+ const getTitle = (widget) => {
12
+ return widget.title || widget.name;
13
+ };
14
+ const AddWidgetDialog = (props) => {
15
+ const { widgets, handleAdd } = props;
16
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DialogTitle, null, "Add new widget to dashboard"), /* @__PURE__ */ React.createElement(DialogContent, null, /* @__PURE__ */ React.createElement(List, { dense: true }, widgets.map((widget) => {
17
+ return /* @__PURE__ */ React.createElement(
18
+ ListItem,
19
+ {
20
+ key: widget.name,
21
+ button: true,
22
+ onClick: () => handleAdd(widget)
23
+ },
24
+ /* @__PURE__ */ React.createElement(ListItemAvatar, null, /* @__PURE__ */ React.createElement(AddIcon, null)),
25
+ /* @__PURE__ */ React.createElement(
26
+ ListItemText,
27
+ {
28
+ secondary: widget.description && /* @__PURE__ */ React.createElement(
29
+ Typography,
30
+ {
31
+ component: "span",
32
+ variant: "caption",
33
+ color: "textPrimary"
34
+ },
35
+ widget.description
36
+ ),
37
+ primary: /* @__PURE__ */ React.createElement(Typography, { variant: "body1", color: "textPrimary" }, getTitle(widget))
38
+ }
39
+ )
40
+ );
41
+ }))));
42
+ };
43
+
44
+ export { AddWidgetDialog };
45
+ //# sourceMappingURL=AddWidgetDialog.esm.js.map