@backstage/plugin-scaffolder 1.4.0-next.3 → 1.4.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.
- package/CHANGELOG.md +46 -0
- package/alpha/package.json +1 -1
- package/dist/esm/{Router-02ff57b3.esm.js → Router-e14e5f4e.esm.js} +3 -3
- package/dist/esm/{Router-02ff57b3.esm.js.map → Router-e14e5f4e.esm.js.map} +1 -1
- package/dist/esm/{default-e54e51de.esm.js → default-ffab2851.esm.js} +2 -2
- package/dist/esm/{default-e54e51de.esm.js.map → default-ffab2851.esm.js.map} +1 -1
- package/dist/esm/{index-4a5b6a07.esm.js → index-8dd91f94.esm.js} +3 -3
- package/dist/esm/{index-4a5b6a07.esm.js.map → index-8dd91f94.esm.js.map} +1 -1
- package/dist/esm/{index-6000fac5.esm.js → index-a298f509.esm.js} +21 -12
- package/dist/esm/index-a298f509.esm.js.map +1 -0
- package/dist/index.alpha.d.ts +1 -0
- package/dist/index.beta.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +1 -1
- package/package.json +20 -20
- package/dist/esm/index-6000fac5.esm.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EntityPicker, m as EntityNamePicker, n as entityNamePickerValidation, o as EntityTagsPicker, R as RepoUrlPicker, p as repoPickerValidation, O as OwnerPicker, q as OwnedEntityPicker } from './index-
|
|
1
|
+
import { E as EntityPicker, m as EntityNamePicker, n as entityNamePickerValidation, o as EntityTagsPicker, R as RepoUrlPicker, p as repoPickerValidation, O as OwnerPicker, q as OwnedEntityPicker } from './index-a298f509.esm.js';
|
|
2
2
|
|
|
3
3
|
const DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS = [
|
|
4
4
|
{
|
|
@@ -30,4 +30,4 @@ const DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS = [
|
|
|
30
30
|
];
|
|
31
31
|
|
|
32
32
|
export { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS as D };
|
|
33
|
-
//# sourceMappingURL=default-
|
|
33
|
+
//# sourceMappingURL=default-ffab2851.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-
|
|
1
|
+
{"version":3,"file":"default-ffab2851.esm.js","sources":["../../src/extensions/default.ts"],"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 */\nimport { EntityPicker } from '../components/fields/EntityPicker/EntityPicker';\nimport { EntityNamePicker } from '../components/fields/EntityNamePicker/EntityNamePicker';\nimport { entityNamePickerValidation } from '../components/fields/EntityNamePicker/validation';\nimport { EntityTagsPicker } from '../components/fields/EntityTagsPicker/EntityTagsPicker';\nimport { OwnerPicker } from '../components/fields/OwnerPicker/OwnerPicker';\nimport { RepoUrlPicker } from '../components/fields/RepoUrlPicker/RepoUrlPicker';\nimport { repoPickerValidation } from '../components/fields/RepoUrlPicker/validation';\nimport { OwnedEntityPicker } from '../components/fields/OwnedEntityPicker/OwnedEntityPicker';\n\nexport const DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS = [\n {\n component: EntityPicker,\n name: 'EntityPicker',\n },\n {\n component: EntityNamePicker,\n name: 'EntityNamePicker',\n validation: entityNamePickerValidation,\n },\n {\n component: EntityTagsPicker,\n name: 'EntityTagsPicker',\n },\n {\n component: RepoUrlPicker,\n name: 'RepoUrlPicker',\n validation: repoPickerValidation,\n },\n {\n component: OwnerPicker,\n name: 'OwnerPicker',\n },\n {\n component: OwnedEntityPicker,\n name: 'OwnedEntityPicker',\n },\n];\n"],"names":[],"mappings":";;AAQY,MAAC,mCAAmC,GAAG;AACnD,EAAE;AACF,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,IAAI,EAAE,cAAc;AACxB,GAAG;AACH,EAAE;AACF,IAAI,SAAS,EAAE,gBAAgB;AAC/B,IAAI,IAAI,EAAE,kBAAkB;AAC5B,IAAI,UAAU,EAAE,0BAA0B;AAC1C,GAAG;AACH,EAAE;AACF,IAAI,SAAS,EAAE,gBAAgB;AAC/B,IAAI,IAAI,EAAE,kBAAkB;AAC5B,GAAG;AACH,EAAE;AACF,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,IAAI,EAAE,eAAe;AACzB,IAAI,UAAU,EAAE,oBAAoB;AACpC,GAAG;AACH,EAAE;AACF,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,IAAI,EAAE,aAAa;AACvB,GAAG;AACH,EAAE;AACF,IAAI,SAAS,EAAE,iBAAiB;AAChC,IAAI,IAAI,EAAE,mBAAmB;AAC7B,GAAG;AACH;;;;"}
|
|
@@ -16,9 +16,9 @@ import { Link } from 'react-router-dom';
|
|
|
16
16
|
import AddCircleOutline from '@material-ui/icons/AddCircleOutline';
|
|
17
17
|
import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common';
|
|
18
18
|
import { usePermission } from '@backstage/plugin-permission-react';
|
|
19
|
-
import { s as selectedTemplateRouteRef, r as registerComponentRouteRef, F as FIELD_EXTENSION_WRAPPER_KEY, i as FIELD_EXTENSION_KEY } from './index-
|
|
19
|
+
import { s as selectedTemplateRouteRef, r as registerComponentRouteRef, F as FIELD_EXTENSION_WRAPPER_KEY, i as FIELD_EXTENSION_KEY } from './index-a298f509.esm.js';
|
|
20
20
|
import { RELATION_OWNED_BY, parseEntityRef, stringifyEntityRef } from '@backstage/catalog-model';
|
|
21
|
-
import { D as DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from './default-
|
|
21
|
+
import { D as DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from './default-ffab2851.esm.js';
|
|
22
22
|
import '@backstage/errors';
|
|
23
23
|
import 'qs';
|
|
24
24
|
import 'zen-observable';
|
|
@@ -335,4 +335,4 @@ const Router = (props) => {
|
|
|
335
335
|
};
|
|
336
336
|
|
|
337
337
|
export { Router };
|
|
338
|
-
//# sourceMappingURL=index-
|
|
338
|
+
//# sourceMappingURL=index-8dd91f94.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-4a5b6a07.esm.js","sources":["../../src/next/TemplateListPage/CategoryPicker.tsx","../../src/next/TemplateListPage/RegisterExistingButton.tsx","../../src/next/TemplateListPage/TemplateCard/CardHeader.tsx","../../src/next/TemplateListPage/TemplateCard/TemplateCard.tsx","../../src/next/TemplateListPage/TemplateGroup.tsx","../../src/next/TemplateListPage/TemplateGroups.tsx","../../src/next/TemplateListPage/TemplateListPage.tsx","../../src/next/TemplateWizardPage/SecretsContext/SecretsContext.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 */\n\nimport React from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core';\nimport { ItemCardHeader } from '@backstage/core-components';\nimport { BackstageTheme } from '@backstage/theme';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { FavoriteEntity } from '@backstage/plugin-catalog-react';\n\nconst useStyles = makeStyles<BackstageTheme, { cardBackgroundImage: string }>(\n () => ({\n header: {\n backgroundImage: ({ cardBackgroundImage }) => cardBackgroundImage,\n },\n subtitleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n }),\n);\n\n/**\n * Props for the CardHeader component\n */\nexport interface CardHeaderProps {\n template: TemplateEntityV1beta3;\n}\n\n/**\n * The Card Header with the background for the TemplateCard.\n */\nexport const CardHeader = (props: CardHeaderProps) => {\n const {\n template: {\n metadata: { title, name },\n spec: { type },\n },\n } = props;\n const { getPageTheme } = useTheme<BackstageTheme>();\n const themeForType = getPageTheme({ themeId: type });\n\n const styles = useStyles({\n cardBackgroundImage: themeForType.backgroundImage,\n });\n\n const SubtitleComponent = (\n <div className={styles.subtitleWrapper}>\n <div>{type}</div>\n <div>\n <FavoriteEntity entity={props.template} style={{ padding: 0 }} />\n </div>\n </div>\n );\n\n return (\n <ItemCardHeader\n title={title ?? name}\n subtitle={SubtitleComponent}\n classes={{ root: styles.header }}\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 */\nimport React from 'react';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport {\n Box,\n Card,\n CardActions,\n CardContent,\n Chip,\n Divider,\n makeStyles,\n} from '@material-ui/core';\nimport { CardHeader } from './CardHeader';\nimport { MarkdownContent, UserIcon, Button } from '@backstage/core-components';\nimport {\n parseEntityRef,\n RELATION_OWNED_BY,\n stringifyEntityRef,\n} from '@backstage/catalog-model';\nimport {\n EntityRefLinks,\n getEntityRelations,\n} from '@backstage/plugin-catalog-react';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { selectedTemplateRouteRef } from '../../../routes';\nimport { BackstageTheme } from '@backstage/theme';\n\nconst useStyles = makeStyles<BackstageTheme>(theme => ({\n box: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n '-webkit-line-clamp': 10,\n '-webkit-box-orient': 'vertical',\n /** to make the styles for React Markdown not leak into the description */\n '& p:first-child': {\n marginTop: 0,\n marginBottom: theme.spacing(2),\n },\n },\n label: {\n color: theme.palette.text.secondary,\n textTransform: 'uppercase',\n fontWeight: 'bold',\n letterSpacing: 0.5,\n lineHeight: 1,\n fontSize: '0.75rem',\n },\n margin: {\n marginBottom: theme.spacing(2),\n },\n footer: {\n display: 'flex',\n justifyContent: 'space-between',\n flex: 1,\n alignItems: 'center',\n },\n ownedBy: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n color: theme.palette.link,\n },\n}));\n\n/**\n * The Props for the Template Card component\n * @alpha\n */\nexport interface TemplateCardProps {\n template: TemplateEntityV1beta3;\n deprecated?: boolean;\n}\n\n/**\n * The Template Card component that is rendered in a list for each template\n * @alpha\n */\nexport const TemplateCard = (props: TemplateCardProps) => {\n const { template } = props;\n const styles = useStyles();\n const ownedByRelations = getEntityRelations(template, RELATION_OWNED_BY);\n const templateRoute = useRouteRef(selectedTemplateRouteRef);\n const { name, namespace } = parseEntityRef(stringifyEntityRef(template));\n const href = templateRoute({ templateName: name, namespace: namespace });\n\n return (\n <Card>\n <CardHeader template={template} />\n <CardContent>\n <Box className={styles.box}>\n <MarkdownContent\n content={template.metadata.description ?? 'No description'}\n />\n </Box>\n {(template.metadata.tags?.length ?? 0) > 0 && (\n <>\n <Divider className={styles.margin} />\n <Box>\n {template.metadata.tags?.map(tag => (\n <Chip size=\"small\" label={tag} key={tag} />\n ))}\n </Box>\n </>\n )}\n </CardContent>\n <CardActions>\n <div className={styles.footer}>\n <div className={styles.ownedBy}>\n {ownedByRelations.length > 0 && (\n <>\n <UserIcon />\n <EntityRefLinks\n entityRefs={ownedByRelations}\n defaultKind=\"Group\"\n />\n </>\n )}\n </div>\n <Button size=\"small\" variant=\"outlined\" color=\"primary\" to={href}>\n Choose\n </Button>\n </div>\n </CardActions>\n </Card>\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 { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport React from 'react';\nimport {\n Content,\n ContentHeader,\n ItemCardGrid,\n Link,\n} from '@backstage/core-components';\nimport { Typography } from '@material-ui/core';\nimport { TemplateCard, TemplateCardProps } from './TemplateCard';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\n\nexport interface TemplateGroupProps {\n templates: TemplateEntityV1beta3[];\n title: React.ReactNode;\n components?: {\n CardComponent?: React.ComponentType<TemplateCardProps>;\n };\n}\n\nexport const TemplateGroup = (props: TemplateGroupProps) => {\n const { templates, title, components: { CardComponent } = {} } = props;\n const titleComponent =\n typeof title === 'string' ? <ContentHeader title={title} /> : title;\n\n if (templates.length === 0) {\n return (\n <Content>\n {titleComponent}\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 </Content>\n );\n }\n\n const Card = CardComponent || TemplateCard;\n\n return (\n <Content>\n {titleComponent}\n <ItemCardGrid>\n {templates.map(template => (\n <Card key={stringifyEntityRef(template)} template={template} />\n ))}\n </ItemCardGrid>\n </Content>\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 { TemplateGroup } from './TemplateGroup';\nimport { Entity } from '@backstage/catalog-model';\nimport { useEntityList } from '@backstage/plugin-catalog-react';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { Progress, Link } from '@backstage/core-components';\nimport { Typography } from '@material-ui/core';\nimport { errorApiRef, useApi } from '@backstage/core-plugin-api';\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\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 <TemplateGroup\n key={index}\n templates={entities.filter((e): e is TemplateEntityV1beta3 =>\n filter(e),\n )}\n title={title}\n components={{ CardComponent: TemplateCardComponent }}\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 { registerComponentRouteRef } from '../../routes';\nimport { TemplateGroupFilter, TemplateGroups } from './TemplateGroups';\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 = [defaultGroup] } = props;\n\n return (\n <EntityListProvider>\n <Page themeId=\"home\">\n <Header\n pageTitleOverride=\"Create a New Component\"\n title=\"Create a New Component\"\n subtitle=\"Create new software components using standard templates\"\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}\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, {\n useState,\n useCallback,\n useContext,\n createContext,\n PropsWithChildren,\n} from 'react';\n\ntype SecretsContextContents = {\n secrets: Record<string, string>;\n setSecrets: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n};\n\n/**\n * The actual context object.\n */\nexport const SecretsContext = createContext<SecretsContextContents | undefined>(\n undefined,\n);\n\n/**\n * The Context Provider that holds the state for the secrets.\n *\n * @alpha\n */\nexport const SecretsContextProvider = ({ children }: PropsWithChildren<{}>) => {\n const [secrets, setSecrets] = useState<Record<string, string>>({});\n\n return (\n <SecretsContext.Provider value={{ secrets, setSecrets }}>\n {children}\n </SecretsContext.Provider>\n );\n};\n\n/**\n * Hook to access the secrets context.\n * @alpha\n */\nexport const useTemplateSecrets = () => {\n const value = useContext(SecretsContext);\n if (!value) {\n throw new Error(\n 'useTemplateSecrets must be used within a SecretsContextProvider',\n );\n }\n\n const { setSecrets } = value;\n\n const setSecret = useCallback(\n (input: Record<string, string>) => {\n setSecrets(currentSecrets => ({ ...currentSecrets, ...input }));\n },\n [setSecrets],\n );\n\n return { setSecret };\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 { FieldExtensionOptions } from '../../extensions';\n\nexport interface TemplateWizardPageProps {\n customFieldExtensions: FieldExtensionOptions<any, any>[];\n}\n\nexport const TemplateWizardPage = (_props: TemplateWizardPageProps) => {\n return null;\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';\nimport { TemplateListPage } from '../TemplateListPage';\nimport { SecretsContextProvider } from '../TemplateWizardPage/SecretsContext';\nimport { TemplateWizardPage } from '../TemplateWizardPage';\nimport {\n FieldExtensionOptions,\n FIELD_EXTENSION_WRAPPER_KEY,\n FIELD_EXTENSION_KEY,\n DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS,\n} from '../../extensions';\n\nimport { useElementFilter } from '@backstage/core-plugin-api';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { TemplateGroupFilter } from '../TemplateListPage/TemplateGroups';\nimport { selectedTemplateRouteRef } 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};\n\n/**\n * The Scaffolder Router\n *\n * @alpha\n */\nexport const Router = (props: PropsWithChildren<NextRouterProps>) => {\n const { components: { TemplateCardComponent } = {} } = props;\n\n const outlet = useOutlet() || props.children;\n\n const customFieldExtensions = useElementFilter(outlet, elements =>\n elements\n .selectByComponentData({\n key: FIELD_EXTENSION_WRAPPER_KEY,\n })\n .findComponentData<FieldExtensionOptions>({\n key: FIELD_EXTENSION_KEY,\n }),\n );\n\n const fieldExtensions = [\n ...customFieldExtensions,\n ...DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS.filter(\n ({ name }) =>\n !customFieldExtensions.some(\n customFieldExtension => customFieldExtension.name === name,\n ),\n ),\n ];\n\n return (\n <Routes>\n <Route\n element={\n <TemplateListPage\n TemplateCardComponent={TemplateCardComponent}\n groups={props.groups}\n />\n }\n />\n\n <Route\n path={selectedTemplateRouteRef.path}\n element={\n <SecretsContextProvider>\n <TemplateWizardPage customFieldExtensions={fieldExtensions} />\n </SecretsContextProvider>\n }\n />\n </Routes>\n );\n};\n"],"names":["RouterLink","useStyles","Button","Link"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-8dd91f94.esm.js","sources":["../../src/next/TemplateListPage/CategoryPicker.tsx","../../src/next/TemplateListPage/RegisterExistingButton.tsx","../../src/next/TemplateListPage/TemplateCard/CardHeader.tsx","../../src/next/TemplateListPage/TemplateCard/TemplateCard.tsx","../../src/next/TemplateListPage/TemplateGroup.tsx","../../src/next/TemplateListPage/TemplateGroups.tsx","../../src/next/TemplateListPage/TemplateListPage.tsx","../../src/next/TemplateWizardPage/SecretsContext/SecretsContext.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 */\n\nimport React from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core';\nimport { ItemCardHeader } from '@backstage/core-components';\nimport { BackstageTheme } from '@backstage/theme';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { FavoriteEntity } from '@backstage/plugin-catalog-react';\n\nconst useStyles = makeStyles<BackstageTheme, { cardBackgroundImage: string }>(\n () => ({\n header: {\n backgroundImage: ({ cardBackgroundImage }) => cardBackgroundImage,\n },\n subtitleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n }),\n);\n\n/**\n * Props for the CardHeader component\n */\nexport interface CardHeaderProps {\n template: TemplateEntityV1beta3;\n}\n\n/**\n * The Card Header with the background for the TemplateCard.\n */\nexport const CardHeader = (props: CardHeaderProps) => {\n const {\n template: {\n metadata: { title, name },\n spec: { type },\n },\n } = props;\n const { getPageTheme } = useTheme<BackstageTheme>();\n const themeForType = getPageTheme({ themeId: type });\n\n const styles = useStyles({\n cardBackgroundImage: themeForType.backgroundImage,\n });\n\n const SubtitleComponent = (\n <div className={styles.subtitleWrapper}>\n <div>{type}</div>\n <div>\n <FavoriteEntity entity={props.template} style={{ padding: 0 }} />\n </div>\n </div>\n );\n\n return (\n <ItemCardHeader\n title={title ?? name}\n subtitle={SubtitleComponent}\n classes={{ root: styles.header }}\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 */\nimport React from 'react';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport {\n Box,\n Card,\n CardActions,\n CardContent,\n Chip,\n Divider,\n makeStyles,\n} from '@material-ui/core';\nimport { CardHeader } from './CardHeader';\nimport { MarkdownContent, UserIcon, Button } from '@backstage/core-components';\nimport {\n parseEntityRef,\n RELATION_OWNED_BY,\n stringifyEntityRef,\n} from '@backstage/catalog-model';\nimport {\n EntityRefLinks,\n getEntityRelations,\n} from '@backstage/plugin-catalog-react';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { selectedTemplateRouteRef } from '../../../routes';\nimport { BackstageTheme } from '@backstage/theme';\n\nconst useStyles = makeStyles<BackstageTheme>(theme => ({\n box: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n '-webkit-line-clamp': 10,\n '-webkit-box-orient': 'vertical',\n /** to make the styles for React Markdown not leak into the description */\n '& p:first-child': {\n marginTop: 0,\n marginBottom: theme.spacing(2),\n },\n },\n label: {\n color: theme.palette.text.secondary,\n textTransform: 'uppercase',\n fontWeight: 'bold',\n letterSpacing: 0.5,\n lineHeight: 1,\n fontSize: '0.75rem',\n },\n margin: {\n marginBottom: theme.spacing(2),\n },\n footer: {\n display: 'flex',\n justifyContent: 'space-between',\n flex: 1,\n alignItems: 'center',\n },\n ownedBy: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n color: theme.palette.link,\n },\n}));\n\n/**\n * The Props for the Template Card component\n * @alpha\n */\nexport interface TemplateCardProps {\n template: TemplateEntityV1beta3;\n deprecated?: boolean;\n}\n\n/**\n * The Template Card component that is rendered in a list for each template\n * @alpha\n */\nexport const TemplateCard = (props: TemplateCardProps) => {\n const { template } = props;\n const styles = useStyles();\n const ownedByRelations = getEntityRelations(template, RELATION_OWNED_BY);\n const templateRoute = useRouteRef(selectedTemplateRouteRef);\n const { name, namespace } = parseEntityRef(stringifyEntityRef(template));\n const href = templateRoute({ templateName: name, namespace: namespace });\n\n return (\n <Card>\n <CardHeader template={template} />\n <CardContent>\n <Box className={styles.box}>\n <MarkdownContent\n content={template.metadata.description ?? 'No description'}\n />\n </Box>\n {(template.metadata.tags?.length ?? 0) > 0 && (\n <>\n <Divider className={styles.margin} />\n <Box>\n {template.metadata.tags?.map(tag => (\n <Chip size=\"small\" label={tag} key={tag} />\n ))}\n </Box>\n </>\n )}\n </CardContent>\n <CardActions>\n <div className={styles.footer}>\n <div className={styles.ownedBy}>\n {ownedByRelations.length > 0 && (\n <>\n <UserIcon />\n <EntityRefLinks\n entityRefs={ownedByRelations}\n defaultKind=\"Group\"\n />\n </>\n )}\n </div>\n <Button size=\"small\" variant=\"outlined\" color=\"primary\" to={href}>\n Choose\n </Button>\n </div>\n </CardActions>\n </Card>\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 { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport React from 'react';\nimport {\n Content,\n ContentHeader,\n ItemCardGrid,\n Link,\n} from '@backstage/core-components';\nimport { Typography } from '@material-ui/core';\nimport { TemplateCard, TemplateCardProps } from './TemplateCard';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\n\nexport interface TemplateGroupProps {\n templates: TemplateEntityV1beta3[];\n title: React.ReactNode;\n components?: {\n CardComponent?: React.ComponentType<TemplateCardProps>;\n };\n}\n\nexport const TemplateGroup = (props: TemplateGroupProps) => {\n const { templates, title, components: { CardComponent } = {} } = props;\n const titleComponent =\n typeof title === 'string' ? <ContentHeader title={title} /> : title;\n\n if (templates.length === 0) {\n return (\n <Content>\n {titleComponent}\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 </Content>\n );\n }\n\n const Card = CardComponent || TemplateCard;\n\n return (\n <Content>\n {titleComponent}\n <ItemCardGrid>\n {templates.map(template => (\n <Card key={stringifyEntityRef(template)} template={template} />\n ))}\n </ItemCardGrid>\n </Content>\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 { TemplateGroup } from './TemplateGroup';\nimport { Entity } from '@backstage/catalog-model';\nimport { useEntityList } from '@backstage/plugin-catalog-react';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { Progress, Link } from '@backstage/core-components';\nimport { Typography } from '@material-ui/core';\nimport { errorApiRef, useApi } from '@backstage/core-plugin-api';\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\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 <TemplateGroup\n key={index}\n templates={entities.filter((e): e is TemplateEntityV1beta3 =>\n filter(e),\n )}\n title={title}\n components={{ CardComponent: TemplateCardComponent }}\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 { registerComponentRouteRef } from '../../routes';\nimport { TemplateGroupFilter, TemplateGroups } from './TemplateGroups';\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 = [defaultGroup] } = props;\n\n return (\n <EntityListProvider>\n <Page themeId=\"home\">\n <Header\n pageTitleOverride=\"Create a New Component\"\n title=\"Create a New Component\"\n subtitle=\"Create new software components using standard templates\"\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}\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, {\n useState,\n useCallback,\n useContext,\n createContext,\n PropsWithChildren,\n} from 'react';\n\ntype SecretsContextContents = {\n secrets: Record<string, string>;\n setSecrets: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n};\n\n/**\n * The actual context object.\n */\nexport const SecretsContext = createContext<SecretsContextContents | undefined>(\n undefined,\n);\n\n/**\n * The Context Provider that holds the state for the secrets.\n *\n * @alpha\n */\nexport const SecretsContextProvider = ({ children }: PropsWithChildren<{}>) => {\n const [secrets, setSecrets] = useState<Record<string, string>>({});\n\n return (\n <SecretsContext.Provider value={{ secrets, setSecrets }}>\n {children}\n </SecretsContext.Provider>\n );\n};\n\n/**\n * Hook to access the secrets context.\n * @alpha\n */\nexport const useTemplateSecrets = () => {\n const value = useContext(SecretsContext);\n if (!value) {\n throw new Error(\n 'useTemplateSecrets must be used within a SecretsContextProvider',\n );\n }\n\n const { setSecrets } = value;\n\n const setSecret = useCallback(\n (input: Record<string, string>) => {\n setSecrets(currentSecrets => ({ ...currentSecrets, ...input }));\n },\n [setSecrets],\n );\n\n return { setSecret };\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 { FieldExtensionOptions } from '../../extensions';\n\nexport interface TemplateWizardPageProps {\n customFieldExtensions: FieldExtensionOptions<any, any>[];\n}\n\nexport const TemplateWizardPage = (_props: TemplateWizardPageProps) => {\n return null;\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';\nimport { TemplateListPage } from '../TemplateListPage';\nimport { SecretsContextProvider } from '../TemplateWizardPage/SecretsContext';\nimport { TemplateWizardPage } from '../TemplateWizardPage';\nimport {\n FieldExtensionOptions,\n FIELD_EXTENSION_WRAPPER_KEY,\n FIELD_EXTENSION_KEY,\n DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS,\n} from '../../extensions';\n\nimport { useElementFilter } from '@backstage/core-plugin-api';\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { TemplateGroupFilter } from '../TemplateListPage/TemplateGroups';\nimport { selectedTemplateRouteRef } 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};\n\n/**\n * The Scaffolder Router\n *\n * @alpha\n */\nexport const Router = (props: PropsWithChildren<NextRouterProps>) => {\n const { components: { TemplateCardComponent } = {} } = props;\n\n const outlet = useOutlet() || props.children;\n\n const customFieldExtensions = useElementFilter(outlet, elements =>\n elements\n .selectByComponentData({\n key: FIELD_EXTENSION_WRAPPER_KEY,\n })\n .findComponentData<FieldExtensionOptions>({\n key: FIELD_EXTENSION_KEY,\n }),\n );\n\n const fieldExtensions = [\n ...customFieldExtensions,\n ...DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS.filter(\n ({ name }) =>\n !customFieldExtensions.some(\n customFieldExtension => customFieldExtension.name === name,\n ),\n ),\n ];\n\n return (\n <Routes>\n <Route\n element={\n <TemplateListPage\n TemplateCardComponent={TemplateCardComponent}\n groups={props.groups}\n />\n }\n />\n\n <Route\n path={selectedTemplateRouteRef.path}\n element={\n <SecretsContextProvider>\n <TemplateWizardPage customFieldExtensions={fieldExtensions} />\n </SecretsContextProvider>\n }\n />\n </Routes>\n );\n};\n"],"names":["RouterLink","useStyles","Button","Link"],"mappings":"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"}
|
|
@@ -363,7 +363,7 @@ const EntityTagsPicker = (props) => {
|
|
|
363
363
|
};
|
|
364
364
|
|
|
365
365
|
const OwnerPicker = (props) => {
|
|
366
|
-
var _a;
|
|
366
|
+
var _a, _b, _c;
|
|
367
367
|
const {
|
|
368
368
|
schema: { title = "Owner", description = "The owner of the component" },
|
|
369
369
|
uiSchema,
|
|
@@ -376,7 +376,8 @@ const OwnerPicker = (props) => {
|
|
|
376
376
|
"Group",
|
|
377
377
|
"User"
|
|
378
378
|
],
|
|
379
|
-
defaultKind: "Group"
|
|
379
|
+
defaultKind: "Group",
|
|
380
|
+
allowArbitraryValues: (_c = (_b = uiSchema["ui:options"]) == null ? void 0 : _b.allowArbitraryValues) != null ? _c : true
|
|
380
381
|
}
|
|
381
382
|
};
|
|
382
383
|
return /* @__PURE__ */ React.createElement(EntityPicker, {
|
|
@@ -463,19 +464,27 @@ const AzureRepoPicker = (props) => {
|
|
|
463
464
|
};
|
|
464
465
|
|
|
465
466
|
const BitbucketRepoPicker = (props) => {
|
|
466
|
-
const { onChange, rawErrors, state } = props;
|
|
467
|
+
const { allowedOwners = [], onChange, rawErrors, state } = props;
|
|
467
468
|
const { host, workspace, project } = state;
|
|
469
|
+
const ownerItems = allowedOwners ? allowedOwners == null ? void 0 : allowedOwners.map((i) => ({ label: i, value: i })) : [];
|
|
468
470
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, host === "bitbucket.org" && /* @__PURE__ */ React.createElement(FormControl, {
|
|
469
471
|
margin: "normal",
|
|
470
472
|
required: true,
|
|
471
473
|
error: (rawErrors == null ? void 0 : rawErrors.length) > 0 && !workspace
|
|
472
|
-
}, /* @__PURE__ */ React.createElement(
|
|
474
|
+
}, (allowedOwners == null ? void 0 : allowedOwners.length) ? /* @__PURE__ */ React.createElement(Select, {
|
|
475
|
+
native: true,
|
|
476
|
+
label: "Allowed Workspaces",
|
|
477
|
+
onChange: (s) => onChange({ workspace: String(Array.isArray(s) ? s[0] : s) }),
|
|
478
|
+
disabled: allowedOwners.length === 1,
|
|
479
|
+
selected: workspace,
|
|
480
|
+
items: ownerItems
|
|
481
|
+
}) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(InputLabel, {
|
|
473
482
|
htmlFor: "workspaceInput"
|
|
474
483
|
}, "Workspace"), /* @__PURE__ */ React.createElement(Input, {
|
|
475
484
|
id: "workspaceInput",
|
|
476
485
|
onChange: (e) => onChange({ workspace: e.target.value }),
|
|
477
486
|
value: workspace
|
|
478
|
-
}), /* @__PURE__ */ React.createElement(FormHelperText, null, "The Organization that this repo will belong to")), /* @__PURE__ */ React.createElement(FormControl, {
|
|
487
|
+
})), /* @__PURE__ */ React.createElement(FormHelperText, null, "The Organization that this repo will belong to")), /* @__PURE__ */ React.createElement(FormControl, {
|
|
479
488
|
margin: "normal",
|
|
480
489
|
required: true,
|
|
481
490
|
error: (rawErrors == null ? void 0 : rawErrors.length) > 0 && !project
|
|
@@ -493,7 +502,6 @@ const GerritRepoPicker = (props) => {
|
|
|
493
502
|
const { workspace, owner } = state;
|
|
494
503
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(FormControl, {
|
|
495
504
|
margin: "normal",
|
|
496
|
-
required: true,
|
|
497
505
|
error: (rawErrors == null ? void 0 : rawErrors.length) > 0 && !workspace
|
|
498
506
|
}, /* @__PURE__ */ React.createElement(InputLabel, {
|
|
499
507
|
htmlFor: "ownerInput"
|
|
@@ -501,7 +509,7 @@ const GerritRepoPicker = (props) => {
|
|
|
501
509
|
id: "ownerInput",
|
|
502
510
|
onChange: (e) => onChange({ owner: e.target.value }),
|
|
503
511
|
value: owner
|
|
504
|
-
}), /* @__PURE__ */ React.createElement(FormHelperText, null, "The owner of the project")), /* @__PURE__ */ React.createElement(FormControl, {
|
|
512
|
+
}), /* @__PURE__ */ React.createElement(FormHelperText, null, "The owner of the project (optional)")), /* @__PURE__ */ React.createElement(FormControl, {
|
|
505
513
|
margin: "normal",
|
|
506
514
|
required: true,
|
|
507
515
|
error: (rawErrors == null ? void 0 : rawErrors.length) > 0 && !workspace
|
|
@@ -715,6 +723,7 @@ const RepoUrlPicker = (props) => {
|
|
|
715
723
|
state,
|
|
716
724
|
onChange: updateLocalState
|
|
717
725
|
}), hostType === "bitbucket" && /* @__PURE__ */ React.createElement(BitbucketRepoPicker, {
|
|
726
|
+
allowedOwners,
|
|
718
727
|
rawErrors,
|
|
719
728
|
state,
|
|
720
729
|
onChange: updateLocalState
|
|
@@ -735,7 +744,7 @@ const RepoUrlPicker = (props) => {
|
|
|
735
744
|
};
|
|
736
745
|
|
|
737
746
|
const repoPickerValidation = (value, validation, context) => {
|
|
738
|
-
var _a;
|
|
747
|
+
var _a, _b;
|
|
739
748
|
try {
|
|
740
749
|
const { host, searchParams } = new URL(`https://${value}`);
|
|
741
750
|
const integrationApi = context.apiHolder.get(scmIntegrationsApiRef);
|
|
@@ -749,7 +758,7 @@ const repoPickerValidation = (value, validation, context) => {
|
|
|
749
758
|
if (!searchParams.get("project")) {
|
|
750
759
|
validation.addError("Incomplete repository location provided, project not provided");
|
|
751
760
|
}
|
|
752
|
-
} else {
|
|
761
|
+
} else if (((_b = integrationApi == null ? void 0 : integrationApi.byHost(host)) == null ? void 0 : _b.type) !== "gerrit") {
|
|
753
762
|
if (!searchParams.get("owner")) {
|
|
754
763
|
validation.addError("Incomplete repository location provided, owner not provided");
|
|
755
764
|
}
|
|
@@ -927,7 +936,7 @@ const OwnerPickerFieldExtension = scaffolderPlugin.provide(createScaffolderField
|
|
|
927
936
|
}));
|
|
928
937
|
const ScaffolderPage = scaffolderPlugin.provide(createRoutableExtension({
|
|
929
938
|
name: "ScaffolderPage",
|
|
930
|
-
component: () => import('./Router-
|
|
939
|
+
component: () => import('./Router-e14e5f4e.esm.js').then((m) => m.Router),
|
|
931
940
|
mountPoint: rootRouteRef
|
|
932
941
|
}));
|
|
933
942
|
const OwnedEntityPickerFieldExtension = scaffolderPlugin.provide(createScaffolderFieldExtension({
|
|
@@ -940,7 +949,7 @@ const EntityTagsPickerFieldExtension = scaffolderPlugin.provide(createScaffolder
|
|
|
940
949
|
}));
|
|
941
950
|
const NextScaffolderPage = scaffolderPlugin.provide(createRoutableExtension({
|
|
942
951
|
name: "NextScaffolderPage",
|
|
943
|
-
component: () => import('./index-
|
|
952
|
+
component: () => import('./index-8dd91f94.esm.js').then((m) => m.Router),
|
|
944
953
|
mountPoint: rootRouteRef
|
|
945
954
|
}));
|
|
946
955
|
|
|
@@ -1381,4 +1390,4 @@ const TaskPage = ({ loadingText }) => {
|
|
|
1381
1390
|
};
|
|
1382
1391
|
|
|
1383
1392
|
export { OwnedEntityPickerFieldExtension as A, RepoUrlPickerFieldExtension as B, ScaffolderPage as C, scaffolderPlugin as D, EntityPicker as E, FIELD_EXTENSION_WRAPPER_KEY as F, useTemplateSecrets as G, NextScaffolderPage as N, OwnerPicker as O, RepoUrlPicker as R, SecretsContext as S, TemplateTypePicker as T, actionsRouteRef as a, scaffolderListTaskRouteRef as b, scaffolderApiRef as c, scaffolderTaskRouteRef as d, editRouteRef as e, rootRouteRef as f, TaskStatusStepper as g, TaskPageLinks as h, FIELD_EXTENSION_KEY as i, SecretsContextProvider as j, TaskPage as k, legacySelectedTemplateRouteRef as l, EntityNamePicker as m, entityNamePickerValidation as n, EntityTagsPicker as o, repoPickerValidation as p, OwnedEntityPicker as q, registerComponentRouteRef as r, selectedTemplateRouteRef as s, ScaffolderClient as t, createScaffolderFieldExtension as u, ScaffolderFieldExtensions as v, EntityPickerFieldExtension as w, EntityNamePickerFieldExtension as x, EntityTagsPickerFieldExtension as y, OwnerPickerFieldExtension as z };
|
|
1384
|
-
//# sourceMappingURL=index-
|
|
1393
|
+
//# sourceMappingURL=index-a298f509.esm.js.map
|