@backstage/plugin-scaffolder 1.10.0 → 1.11.0-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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-88194b1f.esm.js","sources":["../../src/next/TemplateListPage/CategoryPicker.tsx","../../src/next/TemplateListPage/RegisterExistingButton.tsx","../../src/next/TemplateListPage/TemplateGroups.tsx","../../src/next/TemplateListPage/TemplateListPage.tsx","../../src/next/TemplateWizardPage/TemplateWizardPage.tsx","../../src/next/Router/Router.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 capitalize from 'lodash/capitalize';\nimport { Progress } from '@backstage/core-components';\nimport {\n Box,\n Checkbox,\n FormControlLabel,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { Autocomplete } from '@material-ui/lab';\nimport { useEntityTypeFilter } from '@backstage/plugin-catalog-react';\nimport { alertApiRef, useApi } from '@backstage/core-plugin-api';\n\nconst icon = <CheckBoxOutlineBlankIcon fontSize=\"small\" />;\nconst checkedIcon = <CheckBoxIcon fontSize=\"small\" />;\n\n/**\n * The Category Picker that is rendered on the left side for picking\n * categories and filtering the template list.\n */\nexport const CategoryPicker = () => {\n const alertApi = useApi(alertApiRef);\n const { error, loading, availableTypes, selectedTypes, setSelectedTypes } =\n useEntityTypeFilter();\n\n if (loading) return <Progress />;\n\n if (error) {\n alertApi.post({\n message: `Failed to load entity types with error: ${error}`,\n severity: 'error',\n });\n return null;\n }\n\n if (!availableTypes) return null;\n\n return (\n <Box pb={1} pt={1}>\n <Typography variant=\"button\">Categories</Typography>\n <Autocomplete\n multiple\n aria-label=\"Categories\"\n options={availableTypes}\n value={selectedTypes}\n onChange={(_: object, value: string[]) => setSelectedTypes(value)}\n renderOption={(option, { selected }) => (\n <FormControlLabel\n control={\n <Checkbox\n icon={icon}\n checkedIcon={checkedIcon}\n checked={selected}\n />\n }\n label={capitalize(option)}\n />\n )}\n size=\"small\"\n popupIcon={<ExpandMoreIcon />}\n renderInput={params => <TextField {...params} variant=\"outlined\" />}\n />\n </Box>\n );\n};\n","/*\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 { BackstageTheme } from '@backstage/theme';\nimport Button from '@material-ui/core/Button';\nimport IconButton from '@material-ui/core/IconButton';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport React from 'react';\nimport { Link as RouterLink, LinkProps } from 'react-router-dom';\nimport AddCircleOutline from '@material-ui/icons/AddCircleOutline';\nimport { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common';\nimport { usePermission } from '@backstage/plugin-permission-react';\n\n/**\n * Properties for {@link RegisterExistingButton}\n *\n * @alpha\n */\nexport type RegisterExistingButtonProps = {\n title: string;\n} & Partial<Pick<LinkProps, 'to'>>;\n\n/**\n * A button that helps users to register an existing component.\n * @alpha\n */\nexport const RegisterExistingButton = (props: RegisterExistingButtonProps) => {\n const { title, to } = props;\n const { allowed } = usePermission({\n permission: catalogEntityCreatePermission,\n });\n const isXSScreen = useMediaQuery<BackstageTheme>(theme =>\n theme.breakpoints.down('xs'),\n );\n\n if (!to || !allowed) {\n return null;\n }\n\n return isXSScreen ? (\n <IconButton\n component={RouterLink}\n color=\"primary\"\n title={title}\n size=\"small\"\n to={to}\n >\n <AddCircleOutline />\n </IconButton>\n ) : (\n <Button component={RouterLink} variant=\"contained\" color=\"primary\" to={to}>\n {title}\n </Button>\n );\n};\n","/*\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 } from 'react';\n\nimport {\n Entity,\n parseEntityRef,\n stringifyEntityRef,\n} from '@backstage/catalog-model';\nimport { useEntityList } from '@backstage/plugin-catalog-react';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { Progress, Link, DocsIcon } from '@backstage/core-components';\nimport { Typography } from '@material-ui/core';\nimport {\n errorApiRef,\n useApi,\n useApp,\n useRouteRef,\n} from '@backstage/core-plugin-api';\nimport { TemplateGroup } from '@backstage/plugin-scaffolder-react';\nimport { viewTechDocRouteRef } from '../../routes';\nimport { nextSelectedTemplateRouteRef } from '../routes';\nimport { useNavigate } from 'react-router-dom';\n\n/**\n * @alpha\n */\nexport type TemplateGroupFilter = {\n title?: React.ReactNode;\n filter: (entity: Entity) => boolean;\n};\n\nexport interface TemplateGroupsProps {\n groups: TemplateGroupFilter[];\n TemplateCardComponent?: React.ComponentType<{\n template: TemplateEntityV1beta3;\n }>;\n}\n\nexport const TemplateGroups = (props: TemplateGroupsProps) => {\n const { loading, error, entities } = useEntityList();\n const { groups, TemplateCardComponent } = props;\n const errorApi = useApi(errorApiRef);\n const app = useApp();\n const viewTechDocsLink = useRouteRef(viewTechDocRouteRef);\n const templateRoute = useRouteRef(nextSelectedTemplateRouteRef);\n const navigate = useNavigate();\n const onSelected = useCallback(\n (template: TemplateEntityV1beta3) => {\n const { namespace, name } = parseEntityRef(stringifyEntityRef(template));\n navigate(templateRoute({ namespace, templateName: name }));\n },\n [navigate, templateRoute],\n );\n\n if (loading) {\n return <Progress />;\n }\n\n if (error) {\n errorApi.post(error);\n return null;\n }\n\n if (!entities || !entities.length) {\n return (\n <Typography variant=\"body2\">\n No templates found that match your filter. Learn more about{' '}\n <Link to=\"https://backstage.io/docs/features/software-templates/adding-templates\">\n adding templates\n </Link>\n .\n </Typography>\n );\n }\n\n return (\n <>\n {groups.map(({ title, filter }, index) => {\n const templates = entities\n .filter((e): e is TemplateEntityV1beta3 => filter(e))\n .map(template => {\n const { kind, namespace, name } = parseEntityRef(\n stringifyEntityRef(template),\n );\n const additionalLinks =\n template.metadata.annotations?.['backstage.io/techdocs-ref'] &&\n viewTechDocsLink\n ? [\n {\n icon: app.getSystemIcon('docs') ?? DocsIcon,\n text: 'View TechDocs',\n url: viewTechDocsLink({ kind, namespace, name }),\n },\n ]\n : [];\n\n return {\n template,\n additionalLinks,\n };\n });\n\n return (\n <TemplateGroup\n key={index}\n templates={templates}\n title={title}\n components={{ CardComponent: TemplateCardComponent }}\n onSelected={onSelected}\n />\n );\n })}\n </>\n );\n};\n","/*\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 */\n\nimport React from 'react';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\n\nimport {\n Content,\n ContentHeader,\n Header,\n Page,\n SupportButton,\n} from '@backstage/core-components';\nimport {\n EntityKindPicker,\n EntityListProvider,\n EntitySearchBar,\n EntityTagPicker,\n CatalogFilterLayout,\n UserListPicker,\n} from '@backstage/plugin-catalog-react';\nimport { CategoryPicker } from './CategoryPicker';\nimport { RegisterExistingButton } from './RegisterExistingButton';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { TemplateGroupFilter, TemplateGroups } from './TemplateGroups';\nimport { registerComponentRouteRef } from '../../routes';\n\nexport type TemplateListPageProps = {\n TemplateCardComponent?: React.ComponentType<{\n template: TemplateEntityV1beta3;\n }>;\n groups?: TemplateGroupFilter[];\n};\n\nconst defaultGroup: TemplateGroupFilter = {\n title: 'All Templates',\n filter: () => true,\n};\n\nexport const TemplateListPage = (props: TemplateListPageProps) => {\n const registerComponentLink = useRouteRef(registerComponentRouteRef);\n const { TemplateCardComponent, groups = [] } = props;\n\n return (\n <EntityListProvider>\n <Page themeId=\"website\">\n <Header\n pageTitleOverride=\"Create a new component\"\n title=\"Create a new component\"\n subtitle=\"Create new software components using standard templates in your organization\"\n />\n <Content>\n <ContentHeader title=\"Available Templates\">\n <RegisterExistingButton\n title=\"Register Existing Component\"\n to={registerComponentLink && registerComponentLink()}\n />\n <SupportButton>\n Create new software components using standard templates. Different\n templates create different kinds of components (services,\n websites, documentation, ...).\n </SupportButton>\n </ContentHeader>\n\n <CatalogFilterLayout>\n <CatalogFilterLayout.Filters>\n <EntitySearchBar />\n <EntityKindPicker initialFilter=\"template\" hidden />\n <UserListPicker\n initialFilter=\"all\"\n availableFilters={['all', 'starred']}\n />\n <CategoryPicker />\n <EntityTagPicker />\n </CatalogFilterLayout.Filters>\n <CatalogFilterLayout.Content>\n <TemplateGroups\n groups={[...groups, defaultGroup]}\n TemplateCardComponent={TemplateCardComponent}\n />\n </CatalogFilterLayout.Content>\n </CatalogFilterLayout>\n </Content>\n </Page>\n </EntityListProvider>\n );\n};\n","/*\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 from 'react';\nimport { Navigate, useNavigate } from 'react-router-dom';\nimport { stringifyEntityRef } 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 Workflow,\n type LayoutOptions,\n} from '@backstage/plugin-scaffolder-react';\nimport { NextFieldExtensionOptions } from '@backstage/plugin-scaffolder-react';\nimport { JsonValue } from '@backstage/types';\nimport { type FormProps } from '../types';\nimport { nextRouteRef } from '../routes';\nimport { scaffolderTaskRouteRef, selectedTemplateRouteRef } from '../../routes';\nimport { Header, Page } from '@backstage/core-components';\n\nexport type TemplateWizardPageProps = {\n customFieldExtensions: NextFieldExtensionOptions<any, any>[];\n layouts?: LayoutOptions[];\n FormProps?: FormProps;\n};\n\nexport const TemplateWizardPage = (props: TemplateWizardPageProps) => {\n const rootRef = useRouteRef(nextRouteRef);\n const taskRoute = useRouteRef(scaffolderTaskRouteRef);\n const { secrets } = useTemplateSecrets();\n const scaffolderApi = useApi(scaffolderApiRef);\n const navigate = useNavigate();\n const { templateName, namespace } = useRouteRefParams(\n selectedTemplateRouteRef,\n );\n\n const templateRef = stringifyEntityRef({\n kind: 'Template',\n namespace,\n name: templateName,\n });\n\n const onCreate = async (values: Record<string, JsonValue>) => {\n const { taskId } = await scaffolderApi.scaffold({\n templateRef,\n values,\n secrets,\n });\n\n navigate(taskRoute({ taskId }));\n };\n\n const onError = () => <Navigate to={rootRef()} />;\n\n return (\n <AnalyticsContext attributes={{ entityRef: templateRef }}>\n <Page themeId=\"website\">\n <Header\n pageTitleOverride=\"Create a new component\"\n title=\"Create a new component\"\n subtitle=\"Create new software components using standard templates in your organization\"\n />\n <Workflow\n namespace={namespace}\n templateName={templateName}\n onCreate={onCreate}\n onError={onError}\n extensions={props.customFieldExtensions}\n FormProps={props.FormProps}\n layouts={props.layouts}\n />\n </Page>\n </AnalyticsContext>\n );\n};\n","/*\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, { PropsWithChildren } from 'react';\nimport { Routes, Route, useOutlet } from 'react-router-dom';\nimport { TemplateListPage } from '../TemplateListPage';\nimport { TemplateWizardPage } from '../TemplateWizardPage';\nimport {\n NextFieldExtensionOptions,\n SecretsContextProvider,\n useCustomFieldExtensions,\n useCustomLayouts,\n type FormProps,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { TemplateGroupFilter } from '../TemplateListPage/TemplateGroups';\nimport { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from '../../extensions/default';\nimport { nextSelectedTemplateRouteRef } from '../routes';\n\n/**\n * The Props for the Scaffolder Router\n *\n * @alpha\n */\nexport type NextRouterProps = {\n components?: {\n TemplateCardComponent?: React.ComponentType<{\n template: TemplateEntityV1beta3;\n }>;\n TaskPageComponent?: React.ComponentType<{}>;\n };\n groups?: TemplateGroupFilter[];\n FormProps?: FormProps;\n};\n\n/**\n * The Scaffolder Router\n *\n * @alpha\n */\nexport const Router = (props: PropsWithChildren<NextRouterProps>) => {\n const { components: { TemplateCardComponent } = {} } = props;\n const outlet = useOutlet() || props.children;\n const customFieldExtensions =\n useCustomFieldExtensions<NextFieldExtensionOptions>(outlet);\n const fieldExtensions = [\n ...customFieldExtensions,\n ...DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS.filter(\n ({ name }) =>\n !customFieldExtensions.some(\n customFieldExtension => customFieldExtension.name === name,\n ),\n ),\n ] as NextFieldExtensionOptions[];\n\n const customLayouts = useCustomLayouts(outlet);\n\n return (\n <Routes>\n <Route\n path=\"/\"\n element={\n <TemplateListPage\n TemplateCardComponent={TemplateCardComponent}\n groups={props.groups}\n />\n }\n />\n <Route\n path={nextSelectedTemplateRouteRef.path}\n element={\n <SecretsContextProvider>\n <TemplateWizardPage\n customFieldExtensions={fieldExtensions}\n layouts={customLayouts}\n FormProps={props.FormProps}\n />\n </SecretsContextProvider>\n }\n />\n </Routes>\n );\n};\n"],"names":["RouterLink","Link"],"mappings":"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"}
@@ -11,21 +11,23 @@ import { ApiRef } from '@backstage/core-plugin-api';
11
11
  import { BackstagePlugin } from '@backstage/core-plugin-api';
12
12
  import { ComponentType } from 'react';
13
13
  import { createScaffolderFieldExtension as createScaffolderFieldExtension_2 } from '@backstage/plugin-scaffolder-react';
14
+ import { createScaffolderLayout as createScaffolderLayout_2 } from '@backstage/plugin-scaffolder-react';
14
15
  import { CustomFieldExtensionSchema as CustomFieldExtensionSchema_2 } from '@backstage/plugin-scaffolder-react';
15
16
  import { CustomFieldValidator as CustomFieldValidator_2 } from '@backstage/plugin-scaffolder-react';
16
17
  import { DiscoveryApi } from '@backstage/core-plugin-api';
17
18
  import { Entity } from '@backstage/catalog-model';
18
- import { Extension } from '@backstage/core-plugin-api';
19
19
  import { ExternalRouteRef } from '@backstage/core-plugin-api';
20
20
  import { FetchApi } from '@backstage/core-plugin-api';
21
21
  import { FieldExtensionComponent as FieldExtensionComponent_2 } from '@backstage/plugin-scaffolder-react';
22
22
  import { FieldExtensionComponentProps as FieldExtensionComponentProps_2 } from '@backstage/plugin-scaffolder-react';
23
23
  import { FieldExtensionOptions as FieldExtensionOptions_2 } from '@backstage/plugin-scaffolder-react';
24
24
  import { FieldValidation } from '@rjsf/core';
25
- import type { FormProps as FormProps_2 } from '@rjsf/core';
25
+ import { FormProps as FormProps_2 } from '@backstage/plugin-scaffolder-react';
26
26
  import type { FormProps as FormProps_3 } from '@rjsf/core-v5';
27
27
  import { IdentityApi } from '@backstage/core-plugin-api';
28
28
  import { JsonObject } from '@backstage/types';
29
+ import { LayoutOptions as LayoutOptions_2 } from '@backstage/plugin-scaffolder-react';
30
+ import { LayoutTemplate as LayoutTemplate_2 } from '@backstage/plugin-scaffolder-react';
29
31
  import { ListActionsResponse as ListActionsResponse_2 } from '@backstage/plugin-scaffolder-react';
30
32
  import { LogEvent as LogEvent_2 } from '@backstage/plugin-scaffolder-react';
31
33
  import { Observable } from '@backstage/types';
@@ -61,11 +63,10 @@ import { z } from 'zod';
61
63
  export declare const createScaffolderFieldExtension: typeof createScaffolderFieldExtension_2;
62
64
 
63
65
  /**
64
- * Method for creating custom Layouts that can be used in the scaffolder frontend form
65
- *
66
66
  * @public
67
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderLayout} instead as this has now been moved.
67
68
  */
68
- export declare function createScaffolderLayout<TInputProps = unknown>(options: LayoutOptions): Extension<LayoutComponent<TInputProps>>;
69
+ export declare const createScaffolderLayout: typeof createScaffolderLayout_2;
69
70
 
70
71
  /**
71
72
  * @public
@@ -175,7 +176,7 @@ export declare interface FieldSchema<TReturn, TUiOptions> {
175
176
  }
176
177
 
177
178
  /**
178
- * Any `@rjsf/core` form properties that are publicly exposed to the `NextScaffolderpage`
179
+ * Any `@rjsf/core` form properties that are publicly exposed to the `NextScaffolderPage`
179
180
  *
180
181
  * @alpha
181
182
  * @deprecated use the import from {@link @backstage/plugin-scaffolder-react/alpha#FormProps} instead
@@ -183,28 +184,16 @@ export declare interface FieldSchema<TReturn, TUiOptions> {
183
184
  export declare type FormProps = Pick<FormProps_3, 'transformErrors' | 'noHtml5Validate'>;
184
185
 
185
186
  /**
186
- * The type used to wrap up the Layout and embed the input props
187
- *
188
- * @public
189
- */
190
- export declare type LayoutComponent<_TInputProps> = () => null;
191
-
192
- /**
193
- * The type of layouts that is passed to the TemplateForms
194
- *
195
187
  * @public
188
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutOptions} instead as this has now been moved.
196
189
  */
197
- export declare interface LayoutOptions<P = any> {
198
- name: string;
199
- component: LayoutTemplate<P>;
200
- }
190
+ export declare type LayoutOptions = LayoutOptions_2;
201
191
 
202
192
  /**
203
- * The field template from \@rjsf/core which is a react component that gets passed \@rjsf/core field related props.
204
- *
205
193
  * @public
194
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutTemplate} instead as this has now been moved.
206
195
  */
207
- export declare type LayoutTemplate<T = any> = FormProps_2<T>['ObjectFieldTemplate'];
196
+ export declare type LayoutTemplate = LayoutTemplate_2;
208
197
 
209
198
  /**
210
199
  * @public
@@ -241,7 +230,7 @@ export declare type NextRouterProps = {
241
230
  TaskPageComponent?: React_2.ComponentType<{}>;
242
231
  };
243
232
  groups?: TemplateGroupFilter[];
244
- FormProps?: FormProps;
233
+ FormProps?: FormProps_2;
245
234
  };
246
235
 
247
236
  /**
@@ -517,11 +506,10 @@ export declare type ScaffolderGetIntegrationsListOptions = ScaffolderGetIntegrat
517
506
  export declare type ScaffolderGetIntegrationsListResponse = ScaffolderGetIntegrationsListResponse_2;
518
507
 
519
508
  /**
520
- * The wrapping component for defining scaffolder layouts as children
521
- *
522
509
  * @public
510
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderLayouts} instead as this has now been moved.
523
511
  */
524
- export declare const ScaffolderLayouts: React.ComponentType;
512
+ export declare const ScaffolderLayouts: ComponentType< {}>;
525
513
 
526
514
  /**
527
515
  * @public
@@ -11,21 +11,23 @@ import { ApiRef } from '@backstage/core-plugin-api';
11
11
  import { BackstagePlugin } from '@backstage/core-plugin-api';
12
12
  import { ComponentType } from 'react';
13
13
  import { createScaffolderFieldExtension as createScaffolderFieldExtension_2 } from '@backstage/plugin-scaffolder-react';
14
+ import { createScaffolderLayout as createScaffolderLayout_2 } from '@backstage/plugin-scaffolder-react';
14
15
  import { CustomFieldExtensionSchema as CustomFieldExtensionSchema_2 } from '@backstage/plugin-scaffolder-react';
15
16
  import { CustomFieldValidator as CustomFieldValidator_2 } from '@backstage/plugin-scaffolder-react';
16
17
  import { DiscoveryApi } from '@backstage/core-plugin-api';
17
18
  import { Entity } from '@backstage/catalog-model';
18
- import { Extension } from '@backstage/core-plugin-api';
19
19
  import { ExternalRouteRef } from '@backstage/core-plugin-api';
20
20
  import { FetchApi } from '@backstage/core-plugin-api';
21
21
  import { FieldExtensionComponent as FieldExtensionComponent_2 } from '@backstage/plugin-scaffolder-react';
22
22
  import { FieldExtensionComponentProps as FieldExtensionComponentProps_2 } from '@backstage/plugin-scaffolder-react';
23
23
  import { FieldExtensionOptions as FieldExtensionOptions_2 } from '@backstage/plugin-scaffolder-react';
24
24
  import { FieldValidation } from '@rjsf/core';
25
- import type { FormProps as FormProps_2 } from '@rjsf/core';
25
+ import { FormProps as FormProps_2 } from '@backstage/plugin-scaffolder-react';
26
26
  import type { FormProps as FormProps_3 } from '@rjsf/core-v5';
27
27
  import { IdentityApi } from '@backstage/core-plugin-api';
28
28
  import { JsonObject } from '@backstage/types';
29
+ import { LayoutOptions as LayoutOptions_2 } from '@backstage/plugin-scaffolder-react';
30
+ import { LayoutTemplate as LayoutTemplate_2 } from '@backstage/plugin-scaffolder-react';
29
31
  import { ListActionsResponse as ListActionsResponse_2 } from '@backstage/plugin-scaffolder-react';
30
32
  import { LogEvent as LogEvent_2 } from '@backstage/plugin-scaffolder-react';
31
33
  import { Observable } from '@backstage/types';
@@ -61,11 +63,10 @@ import { z } from 'zod';
61
63
  export declare const createScaffolderFieldExtension: typeof createScaffolderFieldExtension_2;
62
64
 
63
65
  /**
64
- * Method for creating custom Layouts that can be used in the scaffolder frontend form
65
- *
66
66
  * @public
67
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderLayout} instead as this has now been moved.
67
68
  */
68
- export declare function createScaffolderLayout<TInputProps = unknown>(options: LayoutOptions): Extension<LayoutComponent<TInputProps>>;
69
+ export declare const createScaffolderLayout: typeof createScaffolderLayout_2;
69
70
 
70
71
  /**
71
72
  * @public
@@ -177,28 +178,16 @@ export declare interface FieldSchema<TReturn, TUiOptions> {
177
178
  /* Excluded from this release type: FormProps */
178
179
 
179
180
  /**
180
- * The type used to wrap up the Layout and embed the input props
181
- *
182
- * @public
183
- */
184
- export declare type LayoutComponent<_TInputProps> = () => null;
185
-
186
- /**
187
- * The type of layouts that is passed to the TemplateForms
188
- *
189
181
  * @public
182
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutOptions} instead as this has now been moved.
190
183
  */
191
- export declare interface LayoutOptions<P = any> {
192
- name: string;
193
- component: LayoutTemplate<P>;
194
- }
184
+ export declare type LayoutOptions = LayoutOptions_2;
195
185
 
196
186
  /**
197
- * The field template from \@rjsf/core which is a react component that gets passed \@rjsf/core field related props.
198
- *
199
187
  * @public
188
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutTemplate} instead as this has now been moved.
200
189
  */
201
- export declare type LayoutTemplate<T = any> = FormProps_2<T>['ObjectFieldTemplate'];
190
+ export declare type LayoutTemplate = LayoutTemplate_2;
202
191
 
203
192
  /**
204
193
  * @public
@@ -490,11 +479,10 @@ export declare type ScaffolderGetIntegrationsListOptions = ScaffolderGetIntegrat
490
479
  export declare type ScaffolderGetIntegrationsListResponse = ScaffolderGetIntegrationsListResponse_2;
491
480
 
492
481
  /**
493
- * The wrapping component for defining scaffolder layouts as children
494
- *
495
482
  * @public
483
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderLayouts} instead as this has now been moved.
496
484
  */
497
- export declare const ScaffolderLayouts: React.ComponentType;
485
+ export declare const ScaffolderLayouts: ComponentType< {}>;
498
486
 
499
487
  /**
500
488
  * @public
package/dist/index.d.ts CHANGED
@@ -11,21 +11,23 @@ import { ApiRef } from '@backstage/core-plugin-api';
11
11
  import { BackstagePlugin } from '@backstage/core-plugin-api';
12
12
  import { ComponentType } from 'react';
13
13
  import { createScaffolderFieldExtension as createScaffolderFieldExtension_2 } from '@backstage/plugin-scaffolder-react';
14
+ import { createScaffolderLayout as createScaffolderLayout_2 } from '@backstage/plugin-scaffolder-react';
14
15
  import { CustomFieldExtensionSchema as CustomFieldExtensionSchema_2 } from '@backstage/plugin-scaffolder-react';
15
16
  import { CustomFieldValidator as CustomFieldValidator_2 } from '@backstage/plugin-scaffolder-react';
16
17
  import { DiscoveryApi } from '@backstage/core-plugin-api';
17
18
  import { Entity } from '@backstage/catalog-model';
18
- import { Extension } from '@backstage/core-plugin-api';
19
19
  import { ExternalRouteRef } from '@backstage/core-plugin-api';
20
20
  import { FetchApi } from '@backstage/core-plugin-api';
21
21
  import { FieldExtensionComponent as FieldExtensionComponent_2 } from '@backstage/plugin-scaffolder-react';
22
22
  import { FieldExtensionComponentProps as FieldExtensionComponentProps_2 } from '@backstage/plugin-scaffolder-react';
23
23
  import { FieldExtensionOptions as FieldExtensionOptions_2 } from '@backstage/plugin-scaffolder-react';
24
24
  import { FieldValidation } from '@rjsf/core';
25
- import type { FormProps as FormProps_2 } from '@rjsf/core';
25
+ import { FormProps as FormProps_2 } from '@backstage/plugin-scaffolder-react';
26
26
  import type { FormProps as FormProps_3 } from '@rjsf/core-v5';
27
27
  import { IdentityApi } from '@backstage/core-plugin-api';
28
28
  import { JsonObject } from '@backstage/types';
29
+ import { LayoutOptions as LayoutOptions_2 } from '@backstage/plugin-scaffolder-react';
30
+ import { LayoutTemplate as LayoutTemplate_2 } from '@backstage/plugin-scaffolder-react';
29
31
  import { ListActionsResponse as ListActionsResponse_2 } from '@backstage/plugin-scaffolder-react';
30
32
  import { LogEvent as LogEvent_2 } from '@backstage/plugin-scaffolder-react';
31
33
  import { Observable } from '@backstage/types';
@@ -61,11 +63,10 @@ import { z } from 'zod';
61
63
  export declare const createScaffolderFieldExtension: typeof createScaffolderFieldExtension_2;
62
64
 
63
65
  /**
64
- * Method for creating custom Layouts that can be used in the scaffolder frontend form
65
- *
66
66
  * @public
67
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderLayout} instead as this has now been moved.
67
68
  */
68
- export declare function createScaffolderLayout<TInputProps = unknown>(options: LayoutOptions): Extension<LayoutComponent<TInputProps>>;
69
+ export declare const createScaffolderLayout: typeof createScaffolderLayout_2;
69
70
 
70
71
  /**
71
72
  * @public
@@ -177,28 +178,16 @@ export declare interface FieldSchema<TReturn, TUiOptions> {
177
178
  /* Excluded from this release type: FormProps */
178
179
 
179
180
  /**
180
- * The type used to wrap up the Layout and embed the input props
181
- *
182
- * @public
183
- */
184
- export declare type LayoutComponent<_TInputProps> = () => null;
185
-
186
- /**
187
- * The type of layouts that is passed to the TemplateForms
188
- *
189
181
  * @public
182
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutOptions} instead as this has now been moved.
190
183
  */
191
- export declare interface LayoutOptions<P = any> {
192
- name: string;
193
- component: LayoutTemplate<P>;
194
- }
184
+ export declare type LayoutOptions = LayoutOptions_2;
195
185
 
196
186
  /**
197
- * The field template from \@rjsf/core which is a react component that gets passed \@rjsf/core field related props.
198
- *
199
187
  * @public
188
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutTemplate} instead as this has now been moved.
200
189
  */
201
- export declare type LayoutTemplate<T = any> = FormProps_2<T>['ObjectFieldTemplate'];
190
+ export declare type LayoutTemplate = LayoutTemplate_2;
202
191
 
203
192
  /**
204
193
  * @public
@@ -490,11 +479,10 @@ export declare type ScaffolderGetIntegrationsListOptions = ScaffolderGetIntegrat
490
479
  export declare type ScaffolderGetIntegrationsListResponse = ScaffolderGetIntegrationsListResponse_2;
491
480
 
492
481
  /**
493
- * The wrapping component for defining scaffolder layouts as children
494
- *
495
482
  * @public
483
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderLayouts} instead as this has now been moved.
496
484
  */
497
- export declare const ScaffolderLayouts: React.ComponentType;
485
+ export declare const ScaffolderLayouts: ComponentType< {}>;
498
486
 
499
487
  /**
500
488
  * @public
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- export { D as EntityNamePickerFieldExtension, C as EntityPickerFieldExtension, U as EntityPickerFieldSchema, F as EntityTagsPickerFieldExtension, Y as EntityTagsPickerFieldSchema, N as NextScaffolderPage, H as OwnedEntityPickerFieldExtension, X as OwnedEntityPickerFieldSchema, G as OwnerPickerFieldExtension, V as OwnerPickerFieldSchema, I as RepoUrlPickerFieldExtension, W as RepoUrlPickerFieldSchema, S as ScaffolderClient, $ as ScaffolderFieldExtensions, B as ScaffolderLayouts, J as ScaffolderPage, i as TaskPage, T as TemplateTypePicker, _ as createScaffolderFieldExtension, A as createScaffolderLayout, Q as makeFieldSchemaFromZod, M as nextRouteRef, P as nextScaffolderTaskRouteRef, y as nextSelectedTemplateRouteRef, q as repoPickerValidation, Z as rootRouteRef, a1 as scaffolderApiRef, K as scaffolderPlugin, a0 as useTemplateSecrets } from './esm/index-4dbb353c.esm.js';
1
+ export { A as EntityNamePickerFieldExtension, z as EntityPickerFieldExtension, K as EntityPickerFieldSchema, B as EntityTagsPickerFieldExtension, Q as EntityTagsPickerFieldSchema, N as NextScaffolderPage, D as OwnedEntityPickerFieldExtension, P as OwnedEntityPickerFieldSchema, C as OwnerPickerFieldExtension, L as OwnerPickerFieldSchema, F as RepoUrlPickerFieldExtension, M as RepoUrlPickerFieldSchema, S as ScaffolderClient, W as ScaffolderFieldExtensions, _ as ScaffolderLayouts, G as ScaffolderPage, h as TaskPage, T as TemplateTypePicker, V as createScaffolderFieldExtension, Z as createScaffolderLayout, J as makeFieldSchemaFromZod, y as nextRouteRef, I as nextScaffolderTaskRouteRef, x as nextSelectedTemplateRouteRef, p as repoPickerValidation, U as rootRouteRef, Y as scaffolderApiRef, H as scaffolderPlugin, X as useTemplateSecrets } from './esm/index-42d9f897.esm.js';
2
2
  import 'react';
3
3
  import 'react-router-dom';
4
4
  import '@backstage/core-components';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder",
3
3
  "description": "The Backstage plugin that helps you create new things",
4
- "version": "1.10.0",
4
+ "version": "1.11.0-next.0",
5
5
  "main": "dist/index.esm.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "Apache-2.0",
@@ -33,19 +33,19 @@
33
33
  "clean": "backstage-cli package clean"
34
34
  },
35
35
  "dependencies": {
36
- "@backstage/catalog-client": "^1.3.0",
37
- "@backstage/catalog-model": "^1.1.5",
36
+ "@backstage/catalog-client": "^1.3.1-next.0",
37
+ "@backstage/catalog-model": "^1.1.6-next.0",
38
38
  "@backstage/config": "^1.0.6",
39
39
  "@backstage/core-components": "^0.12.3",
40
40
  "@backstage/core-plugin-api": "^1.3.0",
41
41
  "@backstage/errors": "^1.1.4",
42
42
  "@backstage/integration": "^1.4.2",
43
43
  "@backstage/integration-react": "^1.1.9",
44
- "@backstage/plugin-catalog-common": "^1.0.10",
45
- "@backstage/plugin-catalog-react": "^1.2.4",
44
+ "@backstage/plugin-catalog-common": "^1.0.11-next.0",
45
+ "@backstage/plugin-catalog-react": "^1.3.0-next.0",
46
46
  "@backstage/plugin-permission-react": "^0.4.9",
47
- "@backstage/plugin-scaffolder-common": "^1.2.4",
48
- "@backstage/plugin-scaffolder-react": "^1.0.0",
47
+ "@backstage/plugin-scaffolder-common": "^1.2.5-next.0",
48
+ "@backstage/plugin-scaffolder-react": "^1.1.0-next.0",
49
49
  "@backstage/theme": "^0.2.16",
50
50
  "@backstage/types": "^1.0.2",
51
51
  "@codemirror/language": "^6.0.0",
@@ -56,9 +56,9 @@
56
56
  "@material-ui/lab": "4.0.0-alpha.57",
57
57
  "@react-hookz/web": "^20.0.0",
58
58
  "@rjsf/core": "^3.2.1",
59
- "@rjsf/core-v5": "npm:@rjsf/core@^5.0.0-beta.14",
59
+ "@rjsf/core-v5": "npm:@rjsf/core@5.0.0-beta.16",
60
60
  "@rjsf/material-ui": "^3.2.1",
61
- "@rjsf/utils": "^5.0.0-beta.14",
61
+ "@rjsf/utils": "5.0.0-beta.16",
62
62
  "@uiw/react-codemirror": "^4.9.3",
63
63
  "classnames": "^2.2.6",
64
64
  "git-url-parse": "^13.0.0",
@@ -84,8 +84,8 @@
84
84
  "devDependencies": {
85
85
  "@backstage/cli": "^0.22.1",
86
86
  "@backstage/core-app-api": "^1.4.0",
87
- "@backstage/dev-utils": "^1.0.11",
88
- "@backstage/plugin-catalog": "^1.7.2",
87
+ "@backstage/dev-utils": "^1.0.12-next.0",
88
+ "@backstage/plugin-catalog": "^1.7.3-next.0",
89
89
  "@backstage/test-utils": "^1.2.4",
90
90
  "@testing-library/jest-dom": "^5.10.1",
91
91
  "@testing-library/react": "^12.1.3",