@backstage/plugin-scaffolder 1.30.0-next.1 → 1.30.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 (139) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/dist/alpha/components/TemplateEditorPage/CustomFieldExplorer.esm.js +98 -84
  3. package/dist/alpha/components/TemplateEditorPage/CustomFieldExplorer.esm.js.map +1 -1
  4. package/dist/alpha/components/TemplateEditorPage/CustomFieldPlaygroud.esm.js +119 -102
  5. package/dist/alpha/components/TemplateEditorPage/CustomFieldPlaygroud.esm.js.map +1 -1
  6. package/dist/alpha/components/TemplateEditorPage/CustomFieldsPage.esm.js +13 -10
  7. package/dist/alpha/components/TemplateEditorPage/CustomFieldsPage.esm.js.map +1 -1
  8. package/dist/alpha/components/TemplateEditorPage/DirectoryEditorContext.esm.js +4 -3
  9. package/dist/alpha/components/TemplateEditorPage/DirectoryEditorContext.esm.js.map +1 -1
  10. package/dist/alpha/components/TemplateEditorPage/DryRunContext.esm.js +3 -2
  11. package/dist/alpha/components/TemplateEditorPage/DryRunContext.esm.js.map +1 -1
  12. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResults.esm.js +22 -15
  13. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResults.esm.js.map +1 -1
  14. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsList.esm.js +49 -44
  15. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsList.esm.js.map +1 -1
  16. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsSplitView.esm.js +7 -2
  17. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsSplitView.esm.js.map +1 -1
  18. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsView.esm.js +79 -57
  19. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsView.esm.js.map +1 -1
  20. package/dist/alpha/components/TemplateEditorPage/DryRunResults/IconLink.esm.js +5 -2
  21. package/dist/alpha/components/TemplateEditorPage/DryRunResults/IconLink.esm.js.map +1 -1
  22. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskPageLinks.esm.js +6 -6
  23. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskPageLinks.esm.js.map +1 -1
  24. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskStatusStepper.esm.js +40 -36
  25. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskStatusStepper.esm.js.map +1 -1
  26. package/dist/alpha/components/TemplateEditorPage/TemplateEditor.esm.js +24 -17
  27. package/dist/alpha/components/TemplateEditorPage/TemplateEditor.esm.js.map +1 -1
  28. package/dist/alpha/components/TemplateEditorPage/TemplateEditorBrowser.esm.js +50 -42
  29. package/dist/alpha/components/TemplateEditorPage/TemplateEditorBrowser.esm.js.map +1 -1
  30. package/dist/alpha/components/TemplateEditorPage/TemplateEditorForm.esm.js +5 -4
  31. package/dist/alpha/components/TemplateEditorPage/TemplateEditorForm.esm.js.map +1 -1
  32. package/dist/alpha/components/TemplateEditorPage/TemplateEditorIntro.esm.js +87 -70
  33. package/dist/alpha/components/TemplateEditorPage/TemplateEditorIntro.esm.js.map +1 -1
  34. package/dist/alpha/components/TemplateEditorPage/TemplateEditorLayout.esm.js +7 -7
  35. package/dist/alpha/components/TemplateEditorPage/TemplateEditorLayout.esm.js.map +1 -1
  36. package/dist/alpha/components/TemplateEditorPage/TemplateEditorPage.esm.js +20 -17
  37. package/dist/alpha/components/TemplateEditorPage/TemplateEditorPage.esm.js.map +1 -1
  38. package/dist/alpha/components/TemplateEditorPage/TemplateEditorTextArea.esm.js +52 -45
  39. package/dist/alpha/components/TemplateEditorPage/TemplateEditorTextArea.esm.js.map +1 -1
  40. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbar.esm.js +76 -60
  41. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbar.esm.js.map +1 -1
  42. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.esm.js +42 -36
  43. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.esm.js.map +1 -1
  44. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.esm.js +42 -38
  45. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.esm.js.map +1 -1
  46. package/dist/alpha/components/TemplateEditorPage/TemplateFormPage.esm.js +23 -19
  47. package/dist/alpha/components/TemplateEditorPage/TemplateFormPage.esm.js.map +1 -1
  48. package/dist/alpha/components/TemplateEditorPage/TemplateFormPreviewer.esm.js +39 -31
  49. package/dist/alpha/components/TemplateEditorPage/TemplateFormPreviewer.esm.js.map +1 -1
  50. package/dist/alpha/components/TemplateEditorPage/TemplateIntroPage.esm.js +14 -10
  51. package/dist/alpha/components/TemplateEditorPage/TemplateIntroPage.esm.js.map +1 -1
  52. package/dist/alpha/components/TemplateListPage/RegisterExistingButton.esm.js +6 -6
  53. package/dist/alpha/components/TemplateListPage/RegisterExistingButton.esm.js.map +1 -1
  54. package/dist/alpha/components/TemplateListPage/TemplateListPage.esm.js +54 -34
  55. package/dist/alpha/components/TemplateListPage/TemplateListPage.esm.js.map +1 -1
  56. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPage.esm.js +29 -24
  57. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPage.esm.js.map +1 -1
  58. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.esm.js +40 -33
  59. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.esm.js.map +1 -1
  60. package/dist/alpha/extensions.esm.js +2 -2
  61. package/dist/alpha/extensions.esm.js.map +1 -1
  62. package/dist/alpha/fields/RepoUrlPicker.esm.js +1 -1
  63. package/dist/alpha.d.ts +13 -13
  64. package/dist/components/ActionsPage/ActionsPage.esm.js +120 -167
  65. package/dist/components/ActionsPage/ActionsPage.esm.js.map +1 -1
  66. package/dist/components/FileBrowser/FileBrowser.esm.js +10 -9
  67. package/dist/components/FileBrowser/FileBrowser.esm.js.map +1 -1
  68. package/dist/components/ListTasksPage/ListTasksPage.esm.js +80 -70
  69. package/dist/components/ListTasksPage/ListTasksPage.esm.js.map +1 -1
  70. package/dist/components/ListTasksPage/OwnerListPicker.esm.js +29 -23
  71. package/dist/components/ListTasksPage/OwnerListPicker.esm.js.map +1 -1
  72. package/dist/components/ListTasksPage/columns/CreatedAtColumn.esm.js +2 -2
  73. package/dist/components/ListTasksPage/columns/CreatedAtColumn.esm.js.map +1 -1
  74. package/dist/components/ListTasksPage/columns/OwnerEntityColumn.esm.js +3 -3
  75. package/dist/components/ListTasksPage/columns/OwnerEntityColumn.esm.js.map +1 -1
  76. package/dist/components/ListTasksPage/columns/TaskStatusColumn.esm.js +4 -4
  77. package/dist/components/ListTasksPage/columns/TaskStatusColumn.esm.js.map +1 -1
  78. package/dist/components/ListTasksPage/columns/TemplateTitleColumn.esm.js +2 -2
  79. package/dist/components/ListTasksPage/columns/TemplateTitleColumn.esm.js.map +1 -1
  80. package/dist/components/OngoingTask/ContextMenu.esm.js +80 -58
  81. package/dist/components/OngoingTask/ContextMenu.esm.js.map +1 -1
  82. package/dist/components/OngoingTask/OngoingTask.esm.js +95 -76
  83. package/dist/components/OngoingTask/OngoingTask.esm.js.map +1 -1
  84. package/dist/components/RenderSchema/RenderSchema.esm.js +379 -0
  85. package/dist/components/RenderSchema/RenderSchema.esm.js.map +1 -0
  86. package/dist/components/Router/Router.esm.js +105 -94
  87. package/dist/components/Router/Router.esm.js.map +1 -1
  88. package/dist/components/ScaffolderUsageExamplesTable/ScaffolderUsageExamplesTable.esm.js +28 -0
  89. package/dist/components/ScaffolderUsageExamplesTable/ScaffolderUsageExamplesTable.esm.js.map +1 -0
  90. package/dist/components/TemplateTypePicker/TemplateTypePicker.esm.js +42 -39
  91. package/dist/components/TemplateTypePicker/TemplateTypePicker.esm.js.map +1 -1
  92. package/dist/components/fields/EntityNamePicker/EntityNamePicker.esm.js +2 -2
  93. package/dist/components/fields/EntityNamePicker/EntityNamePicker.esm.js.map +1 -1
  94. package/dist/components/fields/EntityPicker/EntityPicker.esm.js +41 -40
  95. package/dist/components/fields/EntityPicker/EntityPicker.esm.js.map +1 -1
  96. package/dist/components/fields/EntityTagsPicker/EntityTagsPicker.esm.js +5 -4
  97. package/dist/components/fields/EntityTagsPicker/EntityTagsPicker.esm.js.map +1 -1
  98. package/dist/components/fields/MultiEntityPicker/MultiEntityPicker.esm.js +45 -44
  99. package/dist/components/fields/MultiEntityPicker/MultiEntityPicker.esm.js.map +1 -1
  100. package/dist/components/fields/MyGroupsPicker/MyGroupsPicker.esm.js +36 -35
  101. package/dist/components/fields/MyGroupsPicker/MyGroupsPicker.esm.js.map +1 -1
  102. package/dist/components/fields/OwnedEntityPicker/OwnedEntityPicker.esm.js +4 -4
  103. package/dist/components/fields/OwnedEntityPicker/OwnedEntityPicker.esm.js.map +1 -1
  104. package/dist/components/fields/OwnerPicker/OwnerPicker.esm.js +2 -2
  105. package/dist/components/fields/OwnerPicker/OwnerPicker.esm.js.map +1 -1
  106. package/dist/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.esm.js +26 -23
  107. package/dist/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.esm.js.map +1 -1
  108. package/dist/components/fields/RepoBranchPicker/DefaultRepoBranchPicker.esm.js +17 -15
  109. package/dist/components/fields/RepoBranchPicker/DefaultRepoBranchPicker.esm.js.map +1 -1
  110. package/dist/components/fields/RepoBranchPicker/GitHubRepoBranchPicker.esm.js +26 -23
  111. package/dist/components/fields/RepoBranchPicker/GitHubRepoBranchPicker.esm.js.map +1 -1
  112. package/dist/components/fields/RepoBranchPicker/RepoBranchPicker.esm.js +13 -5
  113. package/dist/components/fields/RepoBranchPicker/RepoBranchPicker.esm.js.map +1 -1
  114. package/dist/components/fields/RepoUrlPicker/AzureRepoPicker.esm.js +62 -53
  115. package/dist/components/fields/RepoUrlPicker/AzureRepoPicker.esm.js.map +1 -1
  116. package/dist/components/fields/RepoUrlPicker/BitbucketRepoPicker.esm.js +85 -77
  117. package/dist/components/fields/RepoUrlPicker/BitbucketRepoPicker.esm.js.map +1 -1
  118. package/dist/components/fields/RepoUrlPicker/GerritRepoPicker.esm.js +28 -25
  119. package/dist/components/fields/RepoUrlPicker/GerritRepoPicker.esm.js.map +1 -1
  120. package/dist/components/fields/RepoUrlPicker/GiteaRepoPicker.esm.js +33 -30
  121. package/dist/components/fields/RepoUrlPicker/GiteaRepoPicker.esm.js.map +1 -1
  122. package/dist/components/fields/RepoUrlPicker/GithubRepoPicker.esm.js +37 -34
  123. package/dist/components/fields/RepoUrlPicker/GithubRepoPicker.esm.js.map +1 -1
  124. package/dist/components/fields/RepoUrlPicker/GitlabRepoPicker.esm.js +41 -37
  125. package/dist/components/fields/RepoUrlPicker/GitlabRepoPicker.esm.js.map +1 -1
  126. package/dist/components/fields/RepoUrlPicker/RepoUrlPicker.esm.js +98 -83
  127. package/dist/components/fields/RepoUrlPicker/RepoUrlPicker.esm.js.map +1 -1
  128. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerHost.esm.js +22 -19
  129. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerHost.esm.js.map +1 -1
  130. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerRepoName.esm.js +42 -39
  131. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerRepoName.esm.js.map +1 -1
  132. package/dist/components/fields/SecretInput/SecretInput.esm.js +5 -5
  133. package/dist/components/fields/SecretInput/SecretInput.esm.js.map +1 -1
  134. package/dist/components/fields/VirtualizedListbox.esm.js +29 -26
  135. package/dist/components/fields/VirtualizedListbox.esm.js.map +1 -1
  136. package/dist/index.d.ts +17 -16
  137. package/dist/translation.esm.js +12 -10
  138. package/dist/translation.esm.js.map +1 -1
  139. package/package.json +25 -25
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateWizardPage.esm.js","sources":["../../../../src/alpha/components/TemplateWizardPage/TemplateWizardPage.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 React, { useCallback, useState } from 'react';\nimport { Navigate, useNavigate } from 'react-router-dom';\nimport useAsync from 'react-use/esm/useAsync';\nimport {\n stringifyEntityRef,\n ANNOTATION_EDIT_URL,\n} from '@backstage/catalog-model';\nimport {\n AnalyticsContext,\n useApi,\n useRouteRef,\n useRouteRefParams,\n} from '@backstage/core-plugin-api';\nimport {\n scaffolderApiRef,\n useTemplateSecrets,\n type LayoutOptions,\n FormProps,\n FieldExtensionOptions,\n ReviewStepProps,\n} from '@backstage/plugin-scaffolder-react';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\n\nimport {\n Workflow,\n useTemplateParameterSchema,\n} from '@backstage/plugin-scaffolder-react/alpha';\nimport { JsonValue } from '@backstage/types';\nimport { Header, Page, Progress } from '@backstage/core-components';\n\nimport {\n rootRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n} from '../../../routes';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nimport { TemplateWizardPageContextMenu } from './TemplateWizardPageContextMenu';\nimport { useFormDecorators } from '../../hooks';\n\n/**\n * @alpha\n */\nexport type TemplateWizardPageProps = {\n customFieldExtensions: FieldExtensionOptions<any, any>[];\n components?: {\n ReviewStepComponent?: React.ComponentType<ReviewStepProps>;\n };\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n headerOptions?: {\n pageTitleOverride?: string;\n title?: string;\n subtitle?: string;\n };\n};\n\nexport const TemplateWizardPage = (props: TemplateWizardPageProps) => {\n const rootRef = useRouteRef(rootRouteRef);\n const taskRoute = useRouteRef(scaffolderTaskRouteRef);\n const { secrets: contextSecrets } = useTemplateSecrets();\n const scaffolderApi = useApi(scaffolderApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [isCreating, setIsCreating] = useState(false);\n const navigate = useNavigate();\n const { templateName, namespace } = useRouteRefParams(\n selectedTemplateRouteRef,\n );\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const templateRef = stringifyEntityRef({\n kind: 'Template',\n namespace,\n name: templateName,\n });\n\n const { manifest } = useTemplateParameterSchema(templateRef);\n const decorators = useFormDecorators();\n\n const { value: editUrl } = useAsync(async () => {\n const data = await catalogApi.getEntityByRef(templateRef);\n return data?.metadata.annotations?.[ANNOTATION_EDIT_URL];\n }, [templateRef, catalogApi]);\n\n const onCreate = useCallback(\n async (initialValues: Record<string, JsonValue>) => {\n if (isCreating) {\n return;\n }\n\n setIsCreating(true);\n\n const { formState: values, secrets } = await decorators.run({\n formState: initialValues,\n secrets: contextSecrets,\n manifest,\n });\n\n const { taskId } = await scaffolderApi.scaffold({\n templateRef,\n values,\n secrets,\n });\n\n navigate(taskRoute({ taskId }));\n },\n [\n contextSecrets,\n decorators,\n isCreating,\n manifest,\n navigate,\n scaffolderApi,\n taskRoute,\n templateRef,\n ],\n );\n\n const onError = useCallback(() => <Navigate to={rootRef()} />, [rootRef]);\n\n return (\n <AnalyticsContext attributes={{ entityRef: templateRef }}>\n <Page themeId=\"website\">\n <Header\n pageTitleOverride={t('templateWizardPage.pageTitle')}\n title={t('templateWizardPage.title')}\n subtitle={t('templateWizardPage.subtitle')}\n {...props.headerOptions}\n >\n <TemplateWizardPageContextMenu editUrl={editUrl} />\n </Header>\n {isCreating && <Progress />}\n <Workflow\n namespace={namespace}\n templateName={templateName}\n onCreate={onCreate}\n components={props.components}\n onError={onError}\n extensions={props.customFieldExtensions}\n formProps={props.formProps}\n layouts={props.layouts}\n />\n </Page>\n </AnalyticsContext>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateWizardPage.esm.js","sources":["../../../../src/alpha/components/TemplateWizardPage/TemplateWizardPage.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 { ComponentType, useCallback, useState } from 'react';\nimport { Navigate, useNavigate } from 'react-router-dom';\nimport useAsync from 'react-use/esm/useAsync';\nimport {\n stringifyEntityRef,\n ANNOTATION_EDIT_URL,\n} from '@backstage/catalog-model';\nimport {\n AnalyticsContext,\n useApi,\n useRouteRef,\n useRouteRefParams,\n} from '@backstage/core-plugin-api';\nimport {\n scaffolderApiRef,\n useTemplateSecrets,\n type LayoutOptions,\n FormProps,\n FieldExtensionOptions,\n ReviewStepProps,\n} from '@backstage/plugin-scaffolder-react';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\n\nimport {\n Workflow,\n useTemplateParameterSchema,\n} from '@backstage/plugin-scaffolder-react/alpha';\nimport { JsonValue } from '@backstage/types';\nimport { Header, Page, Progress } from '@backstage/core-components';\n\nimport {\n rootRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n} from '../../../routes';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nimport { TemplateWizardPageContextMenu } from './TemplateWizardPageContextMenu';\nimport { useFormDecorators } from '../../hooks';\n\n/**\n * @alpha\n */\nexport type TemplateWizardPageProps = {\n customFieldExtensions: FieldExtensionOptions<any, any>[];\n components?: {\n ReviewStepComponent?: ComponentType<ReviewStepProps>;\n };\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n headerOptions?: {\n pageTitleOverride?: string;\n title?: string;\n subtitle?: string;\n };\n};\n\nexport const TemplateWizardPage = (props: TemplateWizardPageProps) => {\n const rootRef = useRouteRef(rootRouteRef);\n const taskRoute = useRouteRef(scaffolderTaskRouteRef);\n const { secrets: contextSecrets } = useTemplateSecrets();\n const scaffolderApi = useApi(scaffolderApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [isCreating, setIsCreating] = useState(false);\n const navigate = useNavigate();\n const { templateName, namespace } = useRouteRefParams(\n selectedTemplateRouteRef,\n );\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const templateRef = stringifyEntityRef({\n kind: 'Template',\n namespace,\n name: templateName,\n });\n\n const { manifest } = useTemplateParameterSchema(templateRef);\n const decorators = useFormDecorators();\n\n const { value: editUrl } = useAsync(async () => {\n const data = await catalogApi.getEntityByRef(templateRef);\n return data?.metadata.annotations?.[ANNOTATION_EDIT_URL];\n }, [templateRef, catalogApi]);\n\n const onCreate = useCallback(\n async (initialValues: Record<string, JsonValue>) => {\n if (isCreating) {\n return;\n }\n\n setIsCreating(true);\n\n const { formState: values, secrets } = await decorators.run({\n formState: initialValues,\n secrets: contextSecrets,\n manifest,\n });\n\n const { taskId } = await scaffolderApi.scaffold({\n templateRef,\n values,\n secrets,\n });\n\n navigate(taskRoute({ taskId }));\n },\n [\n contextSecrets,\n decorators,\n isCreating,\n manifest,\n navigate,\n scaffolderApi,\n taskRoute,\n templateRef,\n ],\n );\n\n const onError = useCallback(() => <Navigate to={rootRef()} />, [rootRef]);\n\n return (\n <AnalyticsContext attributes={{ entityRef: templateRef }}>\n <Page themeId=\"website\">\n <Header\n pageTitleOverride={t('templateWizardPage.pageTitle')}\n title={t('templateWizardPage.title')}\n subtitle={t('templateWizardPage.subtitle')}\n {...props.headerOptions}\n >\n <TemplateWizardPageContextMenu editUrl={editUrl} />\n </Header>\n {isCreating && <Progress />}\n <Workflow\n namespace={namespace}\n templateName={templateName}\n onCreate={onCreate}\n components={props.components}\n onError={onError}\n extensions={props.customFieldExtensions}\n formProps={props.formProps}\n layouts={props.layouts}\n />\n </Page>\n </AnalyticsContext>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
1
2
  import IconButton from '@material-ui/core/IconButton';
2
3
  import ListItemIcon from '@material-ui/core/ListItemIcon';
3
4
  import ListItemText from '@material-ui/core/ListItemText';
@@ -7,7 +8,7 @@ import Popover from '@material-ui/core/Popover';
7
8
  import { makeStyles } from '@material-ui/core/styles';
8
9
  import Edit from '@material-ui/icons/Edit';
9
10
  import MoreVert from '@material-ui/icons/MoreVert';
10
- import React, { useState } from 'react';
11
+ import { useState } from 'react';
11
12
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
12
13
  import { scaffolderTranslationRef } from '../../../translation.esm.js';
13
14
 
@@ -30,40 +31,46 @@ function TemplateWizardPageContextMenu(props) {
30
31
  const onClose = () => {
31
32
  setAnchorEl(void 0);
32
33
  };
33
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
34
- IconButton,
35
- {
36
- id: "long-menu",
37
- "aria-label": "more",
38
- "aria-controls": "long-menu",
39
- "aria-expanded": !!anchorEl,
40
- "aria-haspopup": "true",
41
- role: "button",
42
- onClick: onOpen,
43
- "data-testid": "menu-button",
44
- color: "inherit",
45
- className: classes.button
46
- },
47
- /* @__PURE__ */ React.createElement(MoreVert, null)
48
- ), /* @__PURE__ */ React.createElement(
49
- Popover,
50
- {
51
- "aria-labelledby": "long-menu",
52
- open: Boolean(anchorEl),
53
- onClose,
54
- anchorEl,
55
- anchorOrigin: { vertical: "bottom", horizontal: "right" },
56
- transformOrigin: { vertical: "top", horizontal: "right" }
57
- },
58
- /* @__PURE__ */ React.createElement(MenuList, null, /* @__PURE__ */ React.createElement(MenuItem, { onClick: () => window.open(editUrl, "_blank") }, /* @__PURE__ */ React.createElement(ListItemIcon, null, /* @__PURE__ */ React.createElement(Edit, { fontSize: "small" })), /* @__PURE__ */ React.createElement(
59
- ListItemText,
34
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ /* @__PURE__ */ jsx(
36
+ IconButton,
60
37
  {
61
- primary: t(
62
- "templateWizardPage.pageContextMenu.editConfigurationTitle"
63
- )
38
+ id: "long-menu",
39
+ "aria-label": "more",
40
+ "aria-controls": "long-menu",
41
+ "aria-expanded": !!anchorEl,
42
+ "aria-haspopup": "true",
43
+ role: "button",
44
+ onClick: onOpen,
45
+ "data-testid": "menu-button",
46
+ color: "inherit",
47
+ className: classes.button,
48
+ children: /* @__PURE__ */ jsx(MoreVert, {})
64
49
  }
65
- )))
66
- ));
50
+ ),
51
+ /* @__PURE__ */ jsx(
52
+ Popover,
53
+ {
54
+ "aria-labelledby": "long-menu",
55
+ open: Boolean(anchorEl),
56
+ onClose,
57
+ anchorEl,
58
+ anchorOrigin: { vertical: "bottom", horizontal: "right" },
59
+ transformOrigin: { vertical: "top", horizontal: "right" },
60
+ children: /* @__PURE__ */ jsx(MenuList, { children: /* @__PURE__ */ jsxs(MenuItem, { onClick: () => window.open(editUrl, "_blank"), children: [
61
+ /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Edit, { fontSize: "small" }) }),
62
+ /* @__PURE__ */ jsx(
63
+ ListItemText,
64
+ {
65
+ primary: t(
66
+ "templateWizardPage.pageContextMenu.editConfigurationTitle"
67
+ )
68
+ }
69
+ )
70
+ ] }) })
71
+ }
72
+ )
73
+ ] });
67
74
  }
68
75
 
69
76
  export { TemplateWizardPageContextMenu };
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateWizardPageContextMenu.esm.js","sources":["../../../../src/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.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 IconButton from '@material-ui/core/IconButton';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MenuList from '@material-ui/core/MenuList';\nimport Popover from '@material-ui/core/Popover';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Edit from '@material-ui/icons/Edit';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport React, { useState } from 'react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nconst useStyles = makeStyles(theme => ({\n button: {\n color: theme.page.fontColor,\n },\n}));\n\nexport type TemplateWizardPageContextMenuProps = {\n editUrl?: string;\n};\n\nexport function TemplateWizardPageContextMenu(\n props: TemplateWizardPageContextMenuProps,\n) {\n const { editUrl } = props;\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = useState<HTMLButtonElement>();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n if (!editUrl) {\n return null;\n }\n\n const onOpen = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const onClose = () => {\n setAnchorEl(undefined);\n };\n\n return (\n <>\n <IconButton\n id=\"long-menu\"\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-expanded={!!anchorEl}\n aria-haspopup=\"true\"\n role=\"button\"\n onClick={onOpen}\n data-testid=\"menu-button\"\n color=\"inherit\"\n className={classes.button}\n >\n <MoreVert />\n </IconButton>\n <Popover\n aria-labelledby=\"long-menu\"\n open={Boolean(anchorEl)}\n onClose={onClose}\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n <MenuList>\n <MenuItem onClick={() => window.open(editUrl, '_blank')}>\n <ListItemIcon>\n <Edit fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText\n primary={t(\n 'templateWizardPage.pageContextMenu.editConfigurationTitle',\n )}\n />\n </MenuItem>\n </MenuList>\n </Popover>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AA6BA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,MAAQ,EAAA;AAAA,IACN,KAAA,EAAO,MAAM,IAAK,CAAA;AAAA;AAEtB,CAAE,CAAA,CAAA;AAMK,SAAS,8BACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,SAAY,GAAA,KAAA;AACpB,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAA4B,EAAA;AAC5D,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AAGT,EAAM,MAAA,MAAA,GAAS,CAAC,KAAmD,KAAA;AACjE,IAAA,WAAA,CAAY,MAAM,aAAa,CAAA;AAAA,GACjC;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,WAAA,CAAY,KAAS,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,EAAG,EAAA,WAAA;AAAA,MACH,YAAW,EAAA,MAAA;AAAA,MACX,eAAc,EAAA,WAAA;AAAA,MACd,eAAA,EAAe,CAAC,CAAC,QAAA;AAAA,MACjB,eAAc,EAAA,MAAA;AAAA,MACd,IAAK,EAAA,QAAA;AAAA,MACL,OAAS,EAAA,MAAA;AAAA,MACT,aAAY,EAAA,aAAA;AAAA,MACZ,KAAM,EAAA,SAAA;AAAA,MACN,WAAW,OAAQ,CAAA;AAAA,KAAA;AAAA,wCAElB,QAAS,EAAA,IAAA;AAAA,GAEZ,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,iBAAgB,EAAA,WAAA;AAAA,MAChB,IAAA,EAAM,QAAQ,QAAQ,CAAA;AAAA,MACtB,OAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAc,EAAA,EAAE,QAAU,EAAA,QAAA,EAAU,YAAY,OAAQ,EAAA;AAAA,MACxD,eAAiB,EAAA,EAAE,QAAU,EAAA,KAAA,EAAO,YAAY,OAAQ;AAAA,KAAA;AAAA,wCAEvD,QACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,YAAS,OAAS,EAAA,MAAM,OAAO,IAAK,CAAA,OAAA,EAAS,QAAQ,CAAA,EAAA,sCACnD,YACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,QAAS,EAAA,OAAA,EAAQ,CACzB,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,CAAA;AAAA,UACP;AAAA;AACF;AAAA,KAEJ,CACF;AAAA,GAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TemplateWizardPageContextMenu.esm.js","sources":["../../../../src/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.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 IconButton from '@material-ui/core/IconButton';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MenuList from '@material-ui/core/MenuList';\nimport Popover from '@material-ui/core/Popover';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Edit from '@material-ui/icons/Edit';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport { SyntheticEvent, useState } from 'react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nconst useStyles = makeStyles(theme => ({\n button: {\n color: theme.page.fontColor,\n },\n}));\n\nexport type TemplateWizardPageContextMenuProps = {\n editUrl?: string;\n};\n\nexport function TemplateWizardPageContextMenu(\n props: TemplateWizardPageContextMenuProps,\n) {\n const { editUrl } = props;\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = useState<HTMLButtonElement>();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n if (!editUrl) {\n return null;\n }\n\n const onOpen = (event: SyntheticEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const onClose = () => {\n setAnchorEl(undefined);\n };\n\n return (\n <>\n <IconButton\n id=\"long-menu\"\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-expanded={!!anchorEl}\n aria-haspopup=\"true\"\n role=\"button\"\n onClick={onOpen}\n data-testid=\"menu-button\"\n color=\"inherit\"\n className={classes.button}\n >\n <MoreVert />\n </IconButton>\n <Popover\n aria-labelledby=\"long-menu\"\n open={Boolean(anchorEl)}\n onClose={onClose}\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n <MenuList>\n <MenuItem onClick={() => window.open(editUrl, '_blank')}>\n <ListItemIcon>\n <Edit fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText\n primary={t(\n 'templateWizardPage.pageContextMenu.editConfigurationTitle',\n )}\n />\n </MenuItem>\n </MenuList>\n </Popover>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA6BA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,MAAQ,EAAA;AAAA,IACN,KAAA,EAAO,MAAM,IAAK,CAAA;AAAA;AAEtB,CAAE,CAAA,CAAA;AAMK,SAAS,8BACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,SAAY,GAAA,KAAA;AACpB,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAA4B,EAAA;AAC5D,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AAGT,EAAM,MAAA,MAAA,GAAS,CAAC,KAA6C,KAAA;AAC3D,IAAA,WAAA,CAAY,MAAM,aAAa,CAAA;AAAA,GACjC;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,WAAA,CAAY,KAAS,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,WAAA;AAAA,QACH,YAAW,EAAA,MAAA;AAAA,QACX,eAAc,EAAA,WAAA;AAAA,QACd,eAAA,EAAe,CAAC,CAAC,QAAA;AAAA,QACjB,eAAc,EAAA,MAAA;AAAA,QACd,IAAK,EAAA,QAAA;AAAA,QACL,OAAS,EAAA,MAAA;AAAA,QACT,aAAY,EAAA,aAAA;AAAA,QACZ,KAAM,EAAA,SAAA;AAAA,QACN,WAAW,OAAQ,CAAA,MAAA;AAAA,QAEnB,8BAAC,QAAS,EAAA,EAAA;AAAA;AAAA,KACZ;AAAA,oBACA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,iBAAgB,EAAA,WAAA;AAAA,QAChB,IAAA,EAAM,QAAQ,QAAQ,CAAA;AAAA,QACtB,OAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAc,EAAA,EAAE,QAAU,EAAA,QAAA,EAAU,YAAY,OAAQ,EAAA;AAAA,QACxD,eAAiB,EAAA,EAAE,QAAU,EAAA,KAAA,EAAO,YAAY,OAAQ,EAAA;AAAA,QAExD,QAAA,kBAAA,GAAA,CAAC,QACC,EAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,QAAS,EAAA,EAAA,OAAA,EAAS,MAAM,MAAO,CAAA,IAAA,CAAK,OAAS,EAAA,QAAQ,CACpD,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,YACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,QAAA,EAAS,SAAQ,CACzB,EAAA,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cACC,OAAS,EAAA,CAAA;AAAA,gBACP;AAAA;AACF;AAAA;AACF,SAAA,EACF,CACF,EAAA;AAAA;AAAA;AACF,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
+ import { jsx } from 'react/jsx-runtime';
1
2
  import { convertLegacyRouteRef, compatWrapper } from '@backstage/core-compat-api';
2
3
  import { PageBlueprint, createExtensionInput, NavItemBlueprint, ApiBlueprint, createApiFactory, discoveryApiRef, fetchApiRef, identityApiRef } from '@backstage/frontend-plugin-api';
3
- import React from 'react';
4
4
  import { rootRouteRef } from '../routes.esm.js';
5
5
  import CreateComponentIcon from '@material-ui/icons/AddCircleOutline';
6
6
  import { FormFieldBlueprint } from '@backstage/plugin-scaffolder-react/alpha';
@@ -23,7 +23,7 @@ const scaffolderPage = PageBlueprint.makeWithOverrides({
23
23
  defaultPath: "/create",
24
24
  loader: () => import('../components/Router/Router.esm.js').then(
25
25
  (m) => compatWrapper(
26
- /* @__PURE__ */ React.createElement(m.InternalRouter, { formFieldLoaders })
26
+ /* @__PURE__ */ jsx(m.InternalRouter, { formFieldLoaders })
27
27
  )
28
28
  )
29
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.esm.js","sources":["../../src/alpha/extensions.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 {\n compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\nimport {\n NavItemBlueprint,\n PageBlueprint,\n ApiBlueprint,\n createApiFactory,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n createExtensionInput,\n} from '@backstage/frontend-plugin-api';\nimport React from 'react';\nimport { rootRouteRef } from '../routes';\nimport CreateComponentIcon from '@material-ui/icons/AddCircleOutline';\nimport { FormFieldBlueprint } from '@backstage/plugin-scaffolder-react/alpha';\nimport { scmIntegrationsApiRef } from '@backstage/integration-react';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport { ScaffolderClient } from '../api';\n\nexport const scaffolderPage = PageBlueprint.makeWithOverrides({\n inputs: {\n formFields: createExtensionInput([\n FormFieldBlueprint.dataRefs.formFieldLoader,\n ]),\n },\n factory(originalFactory, { inputs }) {\n const formFieldLoaders = inputs.formFields.map(i =>\n i.get(FormFieldBlueprint.dataRefs.formFieldLoader),\n );\n return originalFactory({\n routeRef: convertLegacyRouteRef(rootRouteRef),\n defaultPath: '/create',\n loader: () =>\n import('../components/Router/Router').then(m =>\n compatWrapper(\n <m.InternalRouter formFieldLoaders={formFieldLoaders} />,\n ),\n ),\n });\n },\n});\n\nexport const scaffolderNavItem = NavItemBlueprint.make({\n params: {\n routeRef: convertLegacyRouteRef(rootRouteRef),\n title: 'Create...',\n icon: CreateComponentIcon,\n },\n});\n\nexport const repoUrlPickerFormField = FormFieldBlueprint.make({\n name: 'repo-url-picker',\n params: {\n field: () => import('./fields/RepoUrlPicker').then(m => m.RepoUrlPicker),\n },\n});\n\nexport const scaffolderApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\n api: scaffolderApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n scmIntegrationsApi: scmIntegrationsApiRef,\n fetchApi: fetchApiRef,\n identityApi: identityApiRef,\n },\n factory: ({ discoveryApi, scmIntegrationsApi, fetchApi, identityApi }) =>\n new ScaffolderClient({\n discoveryApi,\n scmIntegrationsApi,\n fetchApi,\n identityApi,\n }),\n }),\n },\n});\n"],"names":[],"mappings":";;;;;;;;;;AAsCa,MAAA,cAAA,GAAiB,cAAc,iBAAkB,CAAA;AAAA,EAC5D,MAAQ,EAAA;AAAA,IACN,YAAY,oBAAqB,CAAA;AAAA,MAC/B,mBAAmB,QAAS,CAAA;AAAA,KAC7B;AAAA,GACH;AAAA,EACA,OAAQ,CAAA,eAAA,EAAiB,EAAE,MAAA,EAAU,EAAA;AACnC,IAAM,MAAA,gBAAA,GAAmB,OAAO,UAAW,CAAA,GAAA;AAAA,MAAI,CAC7C,CAAA,KAAA,CAAA,CAAE,GAAI,CAAA,kBAAA,CAAmB,SAAS,eAAe;AAAA,KACnD;AACA,IAAA,OAAO,eAAgB,CAAA;AAAA,MACrB,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,MAC5C,WAAa,EAAA,SAAA;AAAA,MACb,MAAQ,EAAA,MACN,OAAO,oCAA6B,CAAE,CAAA,IAAA;AAAA,QAAK,CACzC,CAAA,KAAA,aAAA;AAAA,0BACG,KAAA,CAAA,aAAA,CAAA,CAAA,CAAE,cAAF,EAAA,EAAiB,gBAAoC,EAAA;AAAA;AACxD;AACF,KACH,CAAA;AAAA;AAEL,CAAC;AAEY,MAAA,iBAAA,GAAoB,iBAAiB,IAAK,CAAA;AAAA,EACrD,MAAQ,EAAA;AAAA,IACN,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,IAC5C,KAAO,EAAA,WAAA;AAAA,IACP,IAAM,EAAA;AAAA;AAEV,CAAC;AAEY,MAAA,sBAAA,GAAyB,mBAAmB,IAAK,CAAA;AAAA,EAC5D,IAAM,EAAA,iBAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,KAAA,EAAO,MAAM,OAAO,+BAAwB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,aAAa;AAAA;AAE3E,CAAC;AAEY,MAAA,aAAA,GAAgB,aAAa,IAAK,CAAA;AAAA,EAC7C,MAAQ,EAAA;AAAA,IACN,SAAS,gBAAiB,CAAA;AAAA,MACxB,GAAK,EAAA,gBAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,YAAc,EAAA,eAAA;AAAA,QACd,kBAAoB,EAAA,qBAAA;AAAA,QACpB,QAAU,EAAA,WAAA;AAAA,QACV,WAAa,EAAA;AAAA,OACf;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,YAAA,EAAc,oBAAoB,QAAU,EAAA,WAAA,EACtD,KAAA,IAAI,gBAAiB,CAAA;AAAA,QACnB,YAAA;AAAA,QACA,kBAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACD;AAAA,KACJ;AAAA;AAEL,CAAC;;;;"}
1
+ {"version":3,"file":"extensions.esm.js","sources":["../../src/alpha/extensions.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 {\n compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\nimport {\n NavItemBlueprint,\n PageBlueprint,\n ApiBlueprint,\n createApiFactory,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n createExtensionInput,\n} from '@backstage/frontend-plugin-api';\nimport { rootRouteRef } from '../routes';\nimport CreateComponentIcon from '@material-ui/icons/AddCircleOutline';\nimport { FormFieldBlueprint } from '@backstage/plugin-scaffolder-react/alpha';\nimport { scmIntegrationsApiRef } from '@backstage/integration-react';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport { ScaffolderClient } from '../api';\n\nexport const scaffolderPage = PageBlueprint.makeWithOverrides({\n inputs: {\n formFields: createExtensionInput([\n FormFieldBlueprint.dataRefs.formFieldLoader,\n ]),\n },\n factory(originalFactory, { inputs }) {\n const formFieldLoaders = inputs.formFields.map(i =>\n i.get(FormFieldBlueprint.dataRefs.formFieldLoader),\n );\n return originalFactory({\n routeRef: convertLegacyRouteRef(rootRouteRef),\n defaultPath: '/create',\n loader: () =>\n import('../components/Router/Router').then(m =>\n compatWrapper(\n <m.InternalRouter formFieldLoaders={formFieldLoaders} />,\n ),\n ),\n });\n },\n});\n\nexport const scaffolderNavItem = NavItemBlueprint.make({\n params: {\n routeRef: convertLegacyRouteRef(rootRouteRef),\n title: 'Create...',\n icon: CreateComponentIcon,\n },\n});\n\nexport const repoUrlPickerFormField = FormFieldBlueprint.make({\n name: 'repo-url-picker',\n params: {\n field: () => import('./fields/RepoUrlPicker').then(m => m.RepoUrlPicker),\n },\n});\n\nexport const scaffolderApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\n api: scaffolderApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n scmIntegrationsApi: scmIntegrationsApiRef,\n fetchApi: fetchApiRef,\n identityApi: identityApiRef,\n },\n factory: ({ discoveryApi, scmIntegrationsApi, fetchApi, identityApi }) =>\n new ScaffolderClient({\n discoveryApi,\n scmIntegrationsApi,\n fetchApi,\n identityApi,\n }),\n }),\n },\n});\n"],"names":[],"mappings":";;;;;;;;;;AAqCa,MAAA,cAAA,GAAiB,cAAc,iBAAkB,CAAA;AAAA,EAC5D,MAAQ,EAAA;AAAA,IACN,YAAY,oBAAqB,CAAA;AAAA,MAC/B,mBAAmB,QAAS,CAAA;AAAA,KAC7B;AAAA,GACH;AAAA,EACA,OAAQ,CAAA,eAAA,EAAiB,EAAE,MAAA,EAAU,EAAA;AACnC,IAAM,MAAA,gBAAA,GAAmB,OAAO,UAAW,CAAA,GAAA;AAAA,MAAI,CAC7C,CAAA,KAAA,CAAA,CAAE,GAAI,CAAA,kBAAA,CAAmB,SAAS,eAAe;AAAA,KACnD;AACA,IAAA,OAAO,eAAgB,CAAA;AAAA,MACrB,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,MAC5C,WAAa,EAAA,SAAA;AAAA,MACb,MAAQ,EAAA,MACN,OAAO,oCAA6B,CAAE,CAAA,IAAA;AAAA,QAAK,CACzC,CAAA,KAAA,aAAA;AAAA,0BACG,GAAA,CAAA,CAAA,CAAE,cAAF,EAAA,EAAiB,gBAAoC,EAAA;AAAA;AACxD;AACF,KACH,CAAA;AAAA;AAEL,CAAC;AAEY,MAAA,iBAAA,GAAoB,iBAAiB,IAAK,CAAA;AAAA,EACrD,MAAQ,EAAA;AAAA,IACN,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,IAC5C,KAAO,EAAA,WAAA;AAAA,IACP,IAAM,EAAA;AAAA;AAEV,CAAC;AAEY,MAAA,sBAAA,GAAyB,mBAAmB,IAAK,CAAA;AAAA,EAC5D,IAAM,EAAA,iBAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,KAAA,EAAO,MAAM,OAAO,+BAAwB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,aAAa;AAAA;AAE3E,CAAC;AAEY,MAAA,aAAA,GAAgB,aAAa,IAAK,CAAA;AAAA,EAC7C,MAAQ,EAAA;AAAA,IACN,SAAS,gBAAiB,CAAA;AAAA,MACxB,GAAK,EAAA,gBAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,YAAc,EAAA,eAAA;AAAA,QACd,kBAAoB,EAAA,qBAAA;AAAA,QACpB,QAAU,EAAA,WAAA;AAAA,QACV,WAAa,EAAA;AAAA,OACf;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,YAAA,EAAc,oBAAoB,QAAU,EAAA,WAAA,EACtD,KAAA,IAAI,gBAAiB,CAAA;AAAA,QACnB,YAAA;AAAA,QACA,kBAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACD;AAAA,KACJ;AAAA;AAEL,CAAC;;;;"}
@@ -8,7 +8,7 @@ import '../../components/fields/OwnedEntityPicker/schema.esm.js';
8
8
  import '../../components/fields/EntityTagsPicker/schema.esm.js';
9
9
  import '../../components/fields/MyGroupsPicker/schema.esm.js';
10
10
  import 'zod-to-json-schema';
11
- import 'react';
11
+ import 'react/jsx-runtime';
12
12
  import 'lodash/capitalize';
13
13
  import '@backstage/core-components';
14
14
  import '@material-ui/core/Box';
package/dist/alpha.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
- import React__default from 'react';
1
+ import * as react from 'react';
2
+ import { ComponentType } from 'react';
3
3
  import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';
4
4
  import { TemplateGroupFilter, FieldExtensionOptions, ReviewStepProps, LayoutOptions, FormProps as FormProps$1 } from '@backstage/plugin-scaffolder-react';
5
5
  import { FormProps as FormProps$2 } from '@rjsf/core';
@@ -23,7 +23,7 @@ type ScaffolderTemplateFormPreviewerClassKey = 'root' | 'toolbar' | 'controls' |
23
23
  * @alpha
24
24
  */
25
25
  type TemplateListPageProps = {
26
- TemplateCardComponent?: React__default.ComponentType<{
26
+ TemplateCardComponent?: ComponentType<{
27
27
  template: TemplateEntityV1beta3;
28
28
  }>;
29
29
  groups?: TemplateGroupFilter[];
@@ -46,7 +46,7 @@ type TemplateListPageProps = {
46
46
  type TemplateWizardPageProps = {
47
47
  customFieldExtensions: FieldExtensionOptions<any, any>[];
48
48
  components?: {
49
- ReviewStepComponent?: React__default.ComponentType<ReviewStepProps>;
49
+ ReviewStepComponent?: ComponentType<ReviewStepProps>;
50
50
  };
51
51
  layouts?: LayoutOptions[];
52
52
  formProps?: FormProps$1;
@@ -115,12 +115,7 @@ declare const scaffolderTranslationRef: _backstage_core_plugin_api_alpha.Transla
115
115
  readonly "fields.repoUrlPicker.repository.inputTitle": "Repository";
116
116
  readonly "actionsPage.content.emptyState.title": "No information to display";
117
117
  readonly "actionsPage.content.emptyState.description": "There are no actions installed or there was an issue communicating with backend.";
118
- readonly "actionsPage.content.tableCell.name": "Name";
119
- readonly "actionsPage.content.tableCell.type": "Type";
120
- readonly "actionsPage.content.tableCell.title": "Title";
121
- readonly "actionsPage.content.tableCell.description": "Description";
122
118
  readonly "actionsPage.content.searchFieldPlaceholder": "Search for an action";
123
- readonly "actionsPage.content.noRowsDescription": "No schema defined";
124
119
  readonly "actionsPage.title": "Installed actions";
125
120
  readonly "actionsPage.action.input": "Input";
126
121
  readonly "actionsPage.action.output": "Output";
@@ -158,6 +153,11 @@ declare const scaffolderTranslationRef: _backstage_core_plugin_api_alpha.Transla
158
153
  readonly "ongoingTask.hideLogsButtonTitle": "Hide Logs";
159
154
  readonly "ongoingTask.showLogsButtonTitle": "Show Logs";
160
155
  readonly "templateEditorForm.stepper.emptyText": "There are no spec parameters in the template to preview.";
156
+ readonly "renderSchema.undefined": "No schema defined";
157
+ readonly "renderSchema.tableCell.name": "Name";
158
+ readonly "renderSchema.tableCell.type": "Type";
159
+ readonly "renderSchema.tableCell.title": "Title";
160
+ readonly "renderSchema.tableCell.description": "Description";
161
161
  readonly "templateTypePicker.title": "Categories";
162
162
  readonly "templateIntroPage.title": "Manage Templates";
163
163
  readonly "templateIntroPage.subtitle": "Edit, preview, and try out templates, forms, and custom fields";
@@ -187,10 +187,10 @@ declare const scaffolderTranslationRef: _backstage_core_plugin_api_alpha.Transla
187
187
  readonly "templateEditorPage.templateEditorIntro.title": "Get started by choosing one of the options below";
188
188
  readonly "templateEditorPage.templateEditorIntro.loadLocal.title": "Load Template Directory";
189
189
  readonly "templateEditorPage.templateEditorIntro.loadLocal.description": "Load a local template directory, allowing you to both edit and try executing your own template.";
190
- readonly "templateEditorPage.templateEditorIntro.loadLocal.unsupportedTooltip": "Only supported in some Chromium-based browsers";
190
+ readonly "templateEditorPage.templateEditorIntro.loadLocal.unsupportedTooltip": "Only supported in some Chromium-based browsers with the page loaded over HTTPS";
191
191
  readonly "templateEditorPage.templateEditorIntro.createLocal.title": "Create New Template";
192
192
  readonly "templateEditorPage.templateEditorIntro.createLocal.description": "Create a local template directory, allowing you to both edit and try executing your own template.";
193
- readonly "templateEditorPage.templateEditorIntro.createLocal.unsupportedTooltip": "Only supported in some Chromium-based browsers";
193
+ readonly "templateEditorPage.templateEditorIntro.createLocal.unsupportedTooltip": "Only supported in some Chromium-based browsers with the page loaded over HTTPS";
194
194
  readonly "templateEditorPage.templateEditorIntro.formEditor.title": "Template Form Playground";
195
195
  readonly "templateEditorPage.templateEditorIntro.formEditor.description": "Preview and edit a template form, either using a sample template or by loading a template from the catalog.";
196
196
  readonly "templateEditorPage.templateEditorIntro.fieldExplorer.title": "Custom Field Explorer";
@@ -204,8 +204,8 @@ declare const scaffolderTranslationRef: _backstage_core_plugin_api_alpha.Transla
204
204
  readonly "templateListPage.pageTitle": "Create a new component";
205
205
  readonly "templateListPage.templateGroups.defaultTitle": "Templates";
206
206
  readonly "templateListPage.templateGroups.otherTitle": "Other Templates";
207
- readonly "templateListPage.contentHeader.registerExistingButtonTitle": "Register Existing Component";
208
207
  readonly "templateListPage.contentHeader.supportButtonTitle": "Create new software components using standard templates. Different templates create different kinds of components (services, websites, documentation, ...).";
208
+ readonly "templateListPage.contentHeader.registerExistingButtonTitle": "Register Existing Component";
209
209
  readonly "templateListPage.additionalLinksForEntity.viewTechDocsTitle": "View TechDocs";
210
210
  readonly "templateWizardPage.title": "Create a new component";
211
211
  readonly "templateWizardPage.subtitle": "Create new software components using standard templates in your organization";
@@ -367,7 +367,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
367
367
  configInput: {
368
368
  path?: string | undefined;
369
369
  };
370
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
370
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
371
371
  optional: true;
372
372
  }>;
373
373
  inputs: {