@backstage/plugin-scaffolder 1.30.0-next.1 → 1.30.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/alpha/components/TemplateEditorPage/CustomFieldExplorer.esm.js +98 -84
  3. package/dist/alpha/components/TemplateEditorPage/CustomFieldExplorer.esm.js.map +1 -1
  4. package/dist/alpha/components/TemplateEditorPage/CustomFieldPlaygroud.esm.js +119 -102
  5. package/dist/alpha/components/TemplateEditorPage/CustomFieldPlaygroud.esm.js.map +1 -1
  6. package/dist/alpha/components/TemplateEditorPage/CustomFieldsPage.esm.js +13 -10
  7. package/dist/alpha/components/TemplateEditorPage/CustomFieldsPage.esm.js.map +1 -1
  8. package/dist/alpha/components/TemplateEditorPage/DirectoryEditorContext.esm.js +4 -3
  9. package/dist/alpha/components/TemplateEditorPage/DirectoryEditorContext.esm.js.map +1 -1
  10. package/dist/alpha/components/TemplateEditorPage/DryRunContext.esm.js +3 -2
  11. package/dist/alpha/components/TemplateEditorPage/DryRunContext.esm.js.map +1 -1
  12. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResults.esm.js +22 -15
  13. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResults.esm.js.map +1 -1
  14. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsList.esm.js +49 -44
  15. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsList.esm.js.map +1 -1
  16. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsSplitView.esm.js +7 -2
  17. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsSplitView.esm.js.map +1 -1
  18. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsView.esm.js +79 -57
  19. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsView.esm.js.map +1 -1
  20. package/dist/alpha/components/TemplateEditorPage/DryRunResults/IconLink.esm.js +5 -2
  21. package/dist/alpha/components/TemplateEditorPage/DryRunResults/IconLink.esm.js.map +1 -1
  22. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskPageLinks.esm.js +6 -6
  23. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskPageLinks.esm.js.map +1 -1
  24. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskStatusStepper.esm.js +40 -36
  25. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskStatusStepper.esm.js.map +1 -1
  26. package/dist/alpha/components/TemplateEditorPage/TemplateEditor.esm.js +24 -17
  27. package/dist/alpha/components/TemplateEditorPage/TemplateEditor.esm.js.map +1 -1
  28. package/dist/alpha/components/TemplateEditorPage/TemplateEditorBrowser.esm.js +50 -42
  29. package/dist/alpha/components/TemplateEditorPage/TemplateEditorBrowser.esm.js.map +1 -1
  30. package/dist/alpha/components/TemplateEditorPage/TemplateEditorForm.esm.js +5 -4
  31. package/dist/alpha/components/TemplateEditorPage/TemplateEditorForm.esm.js.map +1 -1
  32. package/dist/alpha/components/TemplateEditorPage/TemplateEditorIntro.esm.js +87 -70
  33. package/dist/alpha/components/TemplateEditorPage/TemplateEditorIntro.esm.js.map +1 -1
  34. package/dist/alpha/components/TemplateEditorPage/TemplateEditorLayout.esm.js +7 -7
  35. package/dist/alpha/components/TemplateEditorPage/TemplateEditorLayout.esm.js.map +1 -1
  36. package/dist/alpha/components/TemplateEditorPage/TemplateEditorPage.esm.js +20 -17
  37. package/dist/alpha/components/TemplateEditorPage/TemplateEditorPage.esm.js.map +1 -1
  38. package/dist/alpha/components/TemplateEditorPage/TemplateEditorTextArea.esm.js +52 -45
  39. package/dist/alpha/components/TemplateEditorPage/TemplateEditorTextArea.esm.js.map +1 -1
  40. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbar.esm.js +76 -60
  41. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbar.esm.js.map +1 -1
  42. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.esm.js +42 -36
  43. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.esm.js.map +1 -1
  44. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.esm.js +42 -38
  45. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.esm.js.map +1 -1
  46. package/dist/alpha/components/TemplateEditorPage/TemplateFormPage.esm.js +23 -19
  47. package/dist/alpha/components/TemplateEditorPage/TemplateFormPage.esm.js.map +1 -1
  48. package/dist/alpha/components/TemplateEditorPage/TemplateFormPreviewer.esm.js +39 -31
  49. package/dist/alpha/components/TemplateEditorPage/TemplateFormPreviewer.esm.js.map +1 -1
  50. package/dist/alpha/components/TemplateEditorPage/TemplateIntroPage.esm.js +14 -10
  51. package/dist/alpha/components/TemplateEditorPage/TemplateIntroPage.esm.js.map +1 -1
  52. package/dist/alpha/components/TemplateListPage/RegisterExistingButton.esm.js +6 -6
  53. package/dist/alpha/components/TemplateListPage/RegisterExistingButton.esm.js.map +1 -1
  54. package/dist/alpha/components/TemplateListPage/TemplateListPage.esm.js +54 -34
  55. package/dist/alpha/components/TemplateListPage/TemplateListPage.esm.js.map +1 -1
  56. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPage.esm.js +29 -24
  57. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPage.esm.js.map +1 -1
  58. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.esm.js +40 -33
  59. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.esm.js.map +1 -1
  60. package/dist/alpha/extensions.esm.js +2 -2
  61. package/dist/alpha/extensions.esm.js.map +1 -1
  62. package/dist/alpha/fields/RepoUrlPicker.esm.js +1 -1
  63. package/dist/alpha.d.ts +12 -12
  64. package/dist/components/ActionsPage/ActionsPage.esm.js +120 -167
  65. package/dist/components/ActionsPage/ActionsPage.esm.js.map +1 -1
  66. package/dist/components/FileBrowser/FileBrowser.esm.js +10 -9
  67. package/dist/components/FileBrowser/FileBrowser.esm.js.map +1 -1
  68. package/dist/components/ListTasksPage/ListTasksPage.esm.js +80 -70
  69. package/dist/components/ListTasksPage/ListTasksPage.esm.js.map +1 -1
  70. package/dist/components/ListTasksPage/OwnerListPicker.esm.js +29 -23
  71. package/dist/components/ListTasksPage/OwnerListPicker.esm.js.map +1 -1
  72. package/dist/components/ListTasksPage/columns/CreatedAtColumn.esm.js +2 -2
  73. package/dist/components/ListTasksPage/columns/CreatedAtColumn.esm.js.map +1 -1
  74. package/dist/components/ListTasksPage/columns/OwnerEntityColumn.esm.js +3 -3
  75. package/dist/components/ListTasksPage/columns/OwnerEntityColumn.esm.js.map +1 -1
  76. package/dist/components/ListTasksPage/columns/TaskStatusColumn.esm.js +4 -4
  77. package/dist/components/ListTasksPage/columns/TaskStatusColumn.esm.js.map +1 -1
  78. package/dist/components/ListTasksPage/columns/TemplateTitleColumn.esm.js +2 -2
  79. package/dist/components/ListTasksPage/columns/TemplateTitleColumn.esm.js.map +1 -1
  80. package/dist/components/OngoingTask/ContextMenu.esm.js +80 -58
  81. package/dist/components/OngoingTask/ContextMenu.esm.js.map +1 -1
  82. package/dist/components/OngoingTask/OngoingTask.esm.js +95 -76
  83. package/dist/components/OngoingTask/OngoingTask.esm.js.map +1 -1
  84. package/dist/components/RenderSchema/RenderSchema.esm.js +379 -0
  85. package/dist/components/RenderSchema/RenderSchema.esm.js.map +1 -0
  86. package/dist/components/Router/Router.esm.js +105 -94
  87. package/dist/components/Router/Router.esm.js.map +1 -1
  88. package/dist/components/ScaffolderUsageExamplesTable/ScaffolderUsageExamplesTable.esm.js +28 -0
  89. package/dist/components/ScaffolderUsageExamplesTable/ScaffolderUsageExamplesTable.esm.js.map +1 -0
  90. package/dist/components/TemplateTypePicker/TemplateTypePicker.esm.js +42 -39
  91. package/dist/components/TemplateTypePicker/TemplateTypePicker.esm.js.map +1 -1
  92. package/dist/components/fields/EntityNamePicker/EntityNamePicker.esm.js +2 -2
  93. package/dist/components/fields/EntityNamePicker/EntityNamePicker.esm.js.map +1 -1
  94. package/dist/components/fields/EntityPicker/EntityPicker.esm.js +41 -40
  95. package/dist/components/fields/EntityPicker/EntityPicker.esm.js.map +1 -1
  96. package/dist/components/fields/EntityTagsPicker/EntityTagsPicker.esm.js +5 -4
  97. package/dist/components/fields/EntityTagsPicker/EntityTagsPicker.esm.js.map +1 -1
  98. package/dist/components/fields/MultiEntityPicker/MultiEntityPicker.esm.js +45 -44
  99. package/dist/components/fields/MultiEntityPicker/MultiEntityPicker.esm.js.map +1 -1
  100. package/dist/components/fields/MyGroupsPicker/MyGroupsPicker.esm.js +36 -35
  101. package/dist/components/fields/MyGroupsPicker/MyGroupsPicker.esm.js.map +1 -1
  102. package/dist/components/fields/OwnedEntityPicker/OwnedEntityPicker.esm.js +4 -4
  103. package/dist/components/fields/OwnedEntityPicker/OwnedEntityPicker.esm.js.map +1 -1
  104. package/dist/components/fields/OwnerPicker/OwnerPicker.esm.js +2 -2
  105. package/dist/components/fields/OwnerPicker/OwnerPicker.esm.js.map +1 -1
  106. package/dist/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.esm.js +26 -23
  107. package/dist/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.esm.js.map +1 -1
  108. package/dist/components/fields/RepoBranchPicker/DefaultRepoBranchPicker.esm.js +17 -15
  109. package/dist/components/fields/RepoBranchPicker/DefaultRepoBranchPicker.esm.js.map +1 -1
  110. package/dist/components/fields/RepoBranchPicker/GitHubRepoBranchPicker.esm.js +26 -23
  111. package/dist/components/fields/RepoBranchPicker/GitHubRepoBranchPicker.esm.js.map +1 -1
  112. package/dist/components/fields/RepoBranchPicker/RepoBranchPicker.esm.js +13 -5
  113. package/dist/components/fields/RepoBranchPicker/RepoBranchPicker.esm.js.map +1 -1
  114. package/dist/components/fields/RepoUrlPicker/AzureRepoPicker.esm.js +62 -53
  115. package/dist/components/fields/RepoUrlPicker/AzureRepoPicker.esm.js.map +1 -1
  116. package/dist/components/fields/RepoUrlPicker/BitbucketRepoPicker.esm.js +85 -77
  117. package/dist/components/fields/RepoUrlPicker/BitbucketRepoPicker.esm.js.map +1 -1
  118. package/dist/components/fields/RepoUrlPicker/GerritRepoPicker.esm.js +28 -25
  119. package/dist/components/fields/RepoUrlPicker/GerritRepoPicker.esm.js.map +1 -1
  120. package/dist/components/fields/RepoUrlPicker/GiteaRepoPicker.esm.js +33 -30
  121. package/dist/components/fields/RepoUrlPicker/GiteaRepoPicker.esm.js.map +1 -1
  122. package/dist/components/fields/RepoUrlPicker/GithubRepoPicker.esm.js +37 -34
  123. package/dist/components/fields/RepoUrlPicker/GithubRepoPicker.esm.js.map +1 -1
  124. package/dist/components/fields/RepoUrlPicker/GitlabRepoPicker.esm.js +41 -37
  125. package/dist/components/fields/RepoUrlPicker/GitlabRepoPicker.esm.js.map +1 -1
  126. package/dist/components/fields/RepoUrlPicker/RepoUrlPicker.esm.js +98 -83
  127. package/dist/components/fields/RepoUrlPicker/RepoUrlPicker.esm.js.map +1 -1
  128. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerHost.esm.js +22 -19
  129. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerHost.esm.js.map +1 -1
  130. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerRepoName.esm.js +42 -39
  131. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerRepoName.esm.js.map +1 -1
  132. package/dist/components/fields/SecretInput/SecretInput.esm.js +5 -5
  133. package/dist/components/fields/SecretInput/SecretInput.esm.js.map +1 -1
  134. package/dist/components/fields/VirtualizedListbox.esm.js +29 -26
  135. package/dist/components/fields/VirtualizedListbox.esm.js.map +1 -1
  136. package/dist/index.d.ts +17 -16
  137. package/dist/translation.esm.js +12 -10
  138. package/dist/translation.esm.js.map +1 -1
  139. package/package.json +17 -17
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import FormControl from '@material-ui/core/FormControl';
3
3
  import TextField from '@material-ui/core/TextField';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
@@ -8,35 +8,38 @@ const GerritRepoPicker = (props) => {
8
8
  const { onChange, rawErrors, state, isDisabled } = props;
9
9
  const { t } = useTranslationRef(scaffolderTranslationRef);
10
10
  const { workspace, owner } = state;
11
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(FormControl, { margin: "normal", error: rawErrors?.length > 0 && !workspace }, /* @__PURE__ */ React.createElement(
12
- TextField,
13
- {
14
- id: "ownerInput",
15
- label: t("fields.gerritRepoPicker.owner.title"),
16
- onChange: (e) => onChange({ owner: e.target.value }),
17
- helperText: t("fields.gerritRepoPicker.owner.description"),
18
- disabled: isDisabled,
19
- value: owner
20
- }
21
- )), /* @__PURE__ */ React.createElement(
22
- FormControl,
23
- {
24
- margin: "normal",
25
- required: true,
26
- error: rawErrors?.length > 0 && !workspace
27
- },
28
- /* @__PURE__ */ React.createElement(
11
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
12
+ /* @__PURE__ */ jsx(FormControl, { margin: "normal", error: rawErrors?.length > 0 && !workspace, children: /* @__PURE__ */ jsx(
29
13
  TextField,
30
14
  {
31
- id: "parentInput",
32
- label: t("fields.gerritRepoPicker.parent.title"),
33
- onChange: (e) => onChange({ workspace: e.target.value }),
15
+ id: "ownerInput",
16
+ label: t("fields.gerritRepoPicker.owner.title"),
17
+ onChange: (e) => onChange({ owner: e.target.value }),
18
+ helperText: t("fields.gerritRepoPicker.owner.description"),
34
19
  disabled: isDisabled,
35
- value: workspace,
36
- helperText: t("fields.gerritRepoPicker.parent.description")
20
+ value: owner
21
+ }
22
+ ) }),
23
+ /* @__PURE__ */ jsx(
24
+ FormControl,
25
+ {
26
+ margin: "normal",
27
+ required: true,
28
+ error: rawErrors?.length > 0 && !workspace,
29
+ children: /* @__PURE__ */ jsx(
30
+ TextField,
31
+ {
32
+ id: "parentInput",
33
+ label: t("fields.gerritRepoPicker.parent.title"),
34
+ onChange: (e) => onChange({ workspace: e.target.value }),
35
+ disabled: isDisabled,
36
+ value: workspace,
37
+ helperText: t("fields.gerritRepoPicker.parent.description")
38
+ }
39
+ )
37
40
  }
38
41
  )
39
- ));
42
+ ] });
40
43
  };
41
44
 
42
45
  export { GerritRepoPicker };
@@ -1 +1 @@
1
- {"version":3,"file":"GerritRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GerritRepoPicker.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport { BaseRepoUrlPickerProps } from './types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nexport const GerritRepoPicker = (props: BaseRepoUrlPickerProps) => {\n const { onChange, rawErrors, state, isDisabled } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const { workspace, owner } = state;\n return (\n <>\n <FormControl margin=\"normal\" error={rawErrors?.length > 0 && !workspace}>\n <TextField\n id=\"ownerInput\"\n label={t('fields.gerritRepoPicker.owner.title')}\n onChange={e => onChange({ owner: e.target.value })}\n helperText={t('fields.gerritRepoPicker.owner.description')}\n disabled={isDisabled}\n value={owner}\n />\n </FormControl>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !workspace}\n >\n <TextField\n id=\"parentInput\"\n label={t('fields.gerritRepoPicker.parent.title')}\n onChange={e => onChange({ workspace: e.target.value })}\n disabled={isDisabled}\n value={workspace}\n helperText={t('fields.gerritRepoPicker.parent.description')}\n />\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;AAsBa,MAAA,gBAAA,GAAmB,CAAC,KAAkC,KAAA;AACjE,EAAA,MAAM,EAAE,QAAA,EAAU,SAAW,EAAA,KAAA,EAAO,YAAe,GAAA,KAAA;AACnD,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAM,MAAA,EAAE,SAAW,EAAA,KAAA,EAAU,GAAA,KAAA;AAC7B,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBACG,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,MAAO,EAAA,QAAA,EAAS,OAAO,SAAW,EAAA,MAAA,GAAS,CAAK,IAAA,CAAC,SAC5D,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,EAAG,EAAA,YAAA;AAAA,MACH,KAAA,EAAO,EAAE,qCAAqC,CAAA;AAAA,MAC9C,QAAA,EAAU,OAAK,QAAS,CAAA,EAAE,OAAO,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,MACjD,UAAA,EAAY,EAAE,2CAA2C,CAAA;AAAA,MACzD,QAAU,EAAA,UAAA;AAAA,MACV,KAAO,EAAA;AAAA;AAAA,GAEX,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,QAAA;AAAA,MACP,QAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,SAAA,EAAW,MAAS,GAAA,CAAA,IAAK,CAAC;AAAA,KAAA;AAAA,oBAEjC,KAAA,CAAA,aAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,aAAA;AAAA,QACH,KAAA,EAAO,EAAE,sCAAsC,CAAA;AAAA,QAC/C,QAAA,EAAU,OAAK,QAAS,CAAA,EAAE,WAAW,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,QACrD,QAAU,EAAA,UAAA;AAAA,QACV,KAAO,EAAA,SAAA;AAAA,QACP,UAAA,EAAY,EAAE,4CAA4C;AAAA;AAAA;AAC5D,GAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"GerritRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GerritRepoPicker.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport { BaseRepoUrlPickerProps } from './types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nexport const GerritRepoPicker = (props: BaseRepoUrlPickerProps) => {\n const { onChange, rawErrors, state, isDisabled } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const { workspace, owner } = state;\n return (\n <>\n <FormControl margin=\"normal\" error={rawErrors?.length > 0 && !workspace}>\n <TextField\n id=\"ownerInput\"\n label={t('fields.gerritRepoPicker.owner.title')}\n onChange={e => onChange({ owner: e.target.value })}\n helperText={t('fields.gerritRepoPicker.owner.description')}\n disabled={isDisabled}\n value={owner}\n />\n </FormControl>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !workspace}\n >\n <TextField\n id=\"parentInput\"\n label={t('fields.gerritRepoPicker.parent.title')}\n onChange={e => onChange({ workspace: e.target.value })}\n disabled={isDisabled}\n value={workspace}\n helperText={t('fields.gerritRepoPicker.parent.description')}\n />\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;AAqBa,MAAA,gBAAA,GAAmB,CAAC,KAAkC,KAAA;AACjE,EAAA,MAAM,EAAE,QAAA,EAAU,SAAW,EAAA,KAAA,EAAO,YAAe,GAAA,KAAA;AACnD,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAM,MAAA,EAAE,SAAW,EAAA,KAAA,EAAU,GAAA,KAAA;AAC7B,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,WAAA,EAAA,EAAY,QAAO,QAAS,EAAA,KAAA,EAAO,WAAW,MAAS,GAAA,CAAA,IAAK,CAAC,SAC5D,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,YAAA;AAAA,QACH,KAAA,EAAO,EAAE,qCAAqC,CAAA;AAAA,QAC9C,QAAA,EAAU,OAAK,QAAS,CAAA,EAAE,OAAO,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,QACjD,UAAA,EAAY,EAAE,2CAA2C,CAAA;AAAA,QACzD,QAAU,EAAA,UAAA;AAAA,QACV,KAAO,EAAA;AAAA;AAAA,KAEX,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,MAAO,EAAA,QAAA;AAAA,QACP,QAAQ,EAAA,IAAA;AAAA,QACR,KAAO,EAAA,SAAA,EAAW,MAAS,GAAA,CAAA,IAAK,CAAC,SAAA;AAAA,QAEjC,QAAA,kBAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,EAAG,EAAA,aAAA;AAAA,YACH,KAAA,EAAO,EAAE,sCAAsC,CAAA;AAAA,YAC/C,QAAA,EAAU,OAAK,QAAS,CAAA,EAAE,WAAW,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,YACrD,QAAU,EAAA,UAAA;AAAA,YACV,KAAO,EAAA,SAAA;AAAA,YACP,UAAA,EAAY,EAAE,4CAA4C;AAAA;AAAA;AAC5D;AAAA;AACF,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import FormControl from '@material-ui/core/FormControl';
3
3
  import FormHelperText from '@material-ui/core/FormHelperText';
4
4
  import TextField from '@material-ui/core/TextField';
@@ -11,39 +11,42 @@ const GiteaRepoPicker = (props) => {
11
11
  const { t } = useTranslationRef(scaffolderTranslationRef);
12
12
  const ownerItems = allowedOwners ? allowedOwners.map((i) => ({ label: i, value: i })) : [{ label: "Loading...", value: "loading" }];
13
13
  const { owner } = state;
14
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
14
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
15
15
  FormControl,
16
16
  {
17
17
  margin: "normal",
18
18
  required: true,
19
- error: rawErrors?.length > 0 && !owner
20
- },
21
- allowedOwners?.length ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
22
- Select,
23
- {
24
- native: true,
25
- label: t("fields.giteaRepoPicker.owner.title"),
26
- onChange: (selected) => onChange({
27
- owner: String(
28
- Array.isArray(selected) ? selected[0] : selected
29
- )
30
- }),
31
- disabled: isDisabled || allowedOwners.length === 1,
32
- selected: owner,
33
- items: ownerItems
34
- }
35
- ), /* @__PURE__ */ React.createElement(FormHelperText, null, t("fields.giteaRepoPicker.owner.description"))) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
36
- TextField,
37
- {
38
- id: "ownerInput",
39
- label: t("fields.giteaRepoPicker.owner.inputTitle"),
40
- onChange: (e) => onChange({ owner: e.target.value }),
41
- helperText: t("fields.giteaRepoPicker.owner.description"),
42
- disabled: isDisabled,
43
- value: owner
44
- }
45
- ))
46
- ));
19
+ error: rawErrors?.length > 0 && !owner,
20
+ children: allowedOwners?.length ? /* @__PURE__ */ jsxs(Fragment, { children: [
21
+ /* @__PURE__ */ jsx(
22
+ Select,
23
+ {
24
+ native: true,
25
+ label: t("fields.giteaRepoPicker.owner.title"),
26
+ onChange: (selected) => onChange({
27
+ owner: String(
28
+ Array.isArray(selected) ? selected[0] : selected
29
+ )
30
+ }),
31
+ disabled: isDisabled || allowedOwners.length === 1,
32
+ selected: owner,
33
+ items: ownerItems
34
+ }
35
+ ),
36
+ /* @__PURE__ */ jsx(FormHelperText, { children: t("fields.giteaRepoPicker.owner.description") })
37
+ ] }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
38
+ TextField,
39
+ {
40
+ id: "ownerInput",
41
+ label: t("fields.giteaRepoPicker.owner.inputTitle"),
42
+ onChange: (e) => onChange({ owner: e.target.value }),
43
+ helperText: t("fields.giteaRepoPicker.owner.description"),
44
+ disabled: isDisabled,
45
+ value: owner
46
+ }
47
+ ) })
48
+ }
49
+ ) });
47
50
  };
48
51
 
49
52
  export { GiteaRepoPicker };
@@ -1 +1 @@
1
- {"version":3,"file":"GiteaRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GiteaRepoPicker.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 */\nimport React from 'react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport { Select, SelectItem } from '@backstage/core-components';\nimport { BaseRepoUrlPickerProps } from './types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nexport const GiteaRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n allowedRepos?: string[];\n }>,\n) => {\n const { allowedOwners = [], state, onChange, rawErrors, isDisabled } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners.map(i => ({ label: i, value: i }))\n : [{ label: 'Loading...', value: 'loading' }];\n\n const { owner } = state;\n\n return (\n <>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !owner}\n >\n {allowedOwners?.length ? (\n <>\n <Select\n native\n label={t('fields.giteaRepoPicker.owner.title')}\n onChange={selected =>\n onChange({\n owner: String(\n Array.isArray(selected) ? selected[0] : selected,\n ),\n })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={owner}\n items={ownerItems}\n />\n <FormHelperText>\n {t('fields.giteaRepoPicker.owner.description')}\n </FormHelperText>\n </>\n ) : (\n <>\n <TextField\n id=\"ownerInput\"\n label={t('fields.giteaRepoPicker.owner.inputTitle')}\n onChange={e => onChange({ owner: e.target.value })}\n helperText={t('fields.giteaRepoPicker.owner.description')}\n disabled={isDisabled}\n value={owner}\n />\n </>\n )}\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAwBa,MAAA,eAAA,GAAkB,CAC7B,KAIG,KAAA;AACH,EAAM,MAAA,EAAE,gBAAgB,EAAC,EAAG,OAAO,QAAU,EAAA,SAAA,EAAW,YAAe,GAAA,KAAA;AACvE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,aAA2B,aAC7B,GAAA,aAAA,CAAc,IAAI,CAAM,CAAA,MAAA,EAAE,OAAO,CAAG,EAAA,KAAA,EAAO,CAAE,EAAA,CAAE,IAC/C,CAAC,EAAE,OAAO,YAAc,EAAA,KAAA,EAAO,WAAW,CAAA;AAE9C,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA;AAElB,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,QAAA;AAAA,MACP,QAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,SAAA,EAAW,MAAS,GAAA,CAAA,IAAK,CAAC;AAAA,KAAA;AAAA,IAEhC,aAAA,EAAe,yBAEZ,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,MAAM,EAAA,IAAA;AAAA,QACN,KAAA,EAAO,EAAE,oCAAoC,CAAA;AAAA,QAC7C,QAAA,EAAU,cACR,QAAS,CAAA;AAAA,UACP,KAAO,EAAA,MAAA;AAAA,YACL,MAAM,OAAQ,CAAA,QAAQ,CAAI,GAAA,QAAA,CAAS,CAAC,CAAI,GAAA;AAAA;AAC1C,SACD,CAAA;AAAA,QAEH,QAAA,EAAU,UAAc,IAAA,aAAA,CAAc,MAAW,KAAA,CAAA;AAAA,QACjD,QAAU,EAAA,KAAA;AAAA,QACV,KAAO,EAAA;AAAA;AAAA,KACT,sCACC,cACE,EAAA,IAAA,EAAA,CAAA,CAAE,0CAA0C,CAC/C,CACF,oBAGE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,YAAA;AAAA,QACH,KAAA,EAAO,EAAE,yCAAyC,CAAA;AAAA,QAClD,QAAA,EAAU,OAAK,QAAS,CAAA,EAAE,OAAO,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,QACjD,UAAA,EAAY,EAAE,0CAA0C,CAAA;AAAA,QACxD,QAAU,EAAA,UAAA;AAAA,QACV,KAAO,EAAA;AAAA;AAAA,KAEX;AAAA,GAGN,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"GiteaRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GiteaRepoPicker.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 */\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport { Select, SelectItem } from '@backstage/core-components';\nimport { BaseRepoUrlPickerProps } from './types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nexport const GiteaRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n allowedRepos?: string[];\n }>,\n) => {\n const { allowedOwners = [], state, onChange, rawErrors, isDisabled } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners.map(i => ({ label: i, value: i }))\n : [{ label: 'Loading...', value: 'loading' }];\n\n const { owner } = state;\n\n return (\n <>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !owner}\n >\n {allowedOwners?.length ? (\n <>\n <Select\n native\n label={t('fields.giteaRepoPicker.owner.title')}\n onChange={selected =>\n onChange({\n owner: String(\n Array.isArray(selected) ? selected[0] : selected,\n ),\n })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={owner}\n items={ownerItems}\n />\n <FormHelperText>\n {t('fields.giteaRepoPicker.owner.description')}\n </FormHelperText>\n </>\n ) : (\n <>\n <TextField\n id=\"ownerInput\"\n label={t('fields.giteaRepoPicker.owner.inputTitle')}\n onChange={e => onChange({ owner: e.target.value })}\n helperText={t('fields.giteaRepoPicker.owner.description')}\n disabled={isDisabled}\n value={owner}\n />\n </>\n )}\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAuBa,MAAA,eAAA,GAAkB,CAC7B,KAIG,KAAA;AACH,EAAM,MAAA,EAAE,gBAAgB,EAAC,EAAG,OAAO,QAAU,EAAA,SAAA,EAAW,YAAe,GAAA,KAAA;AACvE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,aAA2B,aAC7B,GAAA,aAAA,CAAc,IAAI,CAAM,CAAA,MAAA,EAAE,OAAO,CAAG,EAAA,KAAA,EAAO,CAAE,EAAA,CAAE,IAC/C,CAAC,EAAE,OAAO,YAAc,EAAA,KAAA,EAAO,WAAW,CAAA;AAE9C,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA;AAElB,EAAA,uBAEI,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,QAAA;AAAA,MACP,QAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,SAAA,EAAW,MAAS,GAAA,CAAA,IAAK,CAAC,KAAA;AAAA,MAEhC,QAAA,EAAA,aAAA,EAAe,yBAEZ,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,MAAM,EAAA,IAAA;AAAA,YACN,KAAA,EAAO,EAAE,oCAAoC,CAAA;AAAA,YAC7C,QAAA,EAAU,cACR,QAAS,CAAA;AAAA,cACP,KAAO,EAAA,MAAA;AAAA,gBACL,MAAM,OAAQ,CAAA,QAAQ,CAAI,GAAA,QAAA,CAAS,CAAC,CAAI,GAAA;AAAA;AAC1C,aACD,CAAA;AAAA,YAEH,QAAA,EAAU,UAAc,IAAA,aAAA,CAAc,MAAW,KAAA,CAAA;AAAA,YACjD,QAAU,EAAA,KAAA;AAAA,YACV,KAAO,EAAA;AAAA;AAAA,SACT;AAAA,wBACC,GAAA,CAAA,cAAA,EAAA,EACE,QAAE,EAAA,CAAA,CAAA,0CAA0C,CAC/C,EAAA;AAAA,OAAA,EACF,oBAGE,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,EAAG,EAAA,YAAA;AAAA,UACH,KAAA,EAAO,EAAE,yCAAyC,CAAA;AAAA,UAClD,QAAA,EAAU,OAAK,QAAS,CAAA,EAAE,OAAO,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,UACjD,UAAA,EAAY,EAAE,0CAA0C,CAAA;AAAA,UACxD,QAAU,EAAA,UAAA;AAAA,UACV,KAAO,EAAA;AAAA;AAAA,OAEX,EAAA;AAAA;AAAA,GAGN,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
- import React, { useState, useCallback, useMemo } from 'react';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import { useState, useCallback, useMemo } from 'react';
2
3
  import FormControl from '@material-ui/core/FormControl';
3
4
  import FormHelperText from '@material-ui/core/FormHelperText';
4
5
  import TextField from '@material-ui/core/TextField';
@@ -61,47 +62,49 @@ const GithubRepoPicker = (props) => {
61
62
  onChange({ availableRepos });
62
63
  }, [availableRepositoriesWithOwner, owner, onChange]);
63
64
  useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);
64
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
65
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
65
66
  FormControl,
66
67
  {
67
68
  margin: "normal",
68
69
  required: true,
69
- error: rawErrors?.length > 0 && !owner
70
- },
71
- allowedOwners?.length ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
72
- Select,
73
- {
74
- native: true,
75
- label: t("fields.githubRepoPicker.owner.title"),
76
- onChange: (s) => onChange({ owner: String(Array.isArray(s) ? s[0] : s) }),
77
- disabled: isDisabled || allowedOwners.length === 1,
78
- selected: owner,
79
- items: ownerItems
80
- }
81
- )) : /* @__PURE__ */ React.createElement(
82
- Autocomplete,
83
- {
84
- value: owner,
85
- onChange: (_, newValue) => {
86
- onChange({ owner: newValue || "" });
87
- },
88
- options: availableOwners,
89
- renderInput: (params) => /* @__PURE__ */ React.createElement(
90
- TextField,
70
+ error: rawErrors?.length > 0 && !owner,
71
+ children: [
72
+ allowedOwners?.length ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
73
+ Select,
91
74
  {
92
- ...params,
93
- label: t("fields.githubRepoPicker.owner.inputTitle"),
75
+ native: true,
76
+ label: t("fields.githubRepoPicker.owner.title"),
77
+ onChange: (s) => onChange({ owner: String(Array.isArray(s) ? s[0] : s) }),
78
+ disabled: isDisabled || allowedOwners.length === 1,
79
+ selected: owner,
80
+ items: ownerItems
81
+ }
82
+ ) }) : /* @__PURE__ */ jsx(
83
+ Autocomplete,
84
+ {
85
+ value: owner,
86
+ onChange: (_, newValue) => {
87
+ onChange({ owner: newValue || "" });
88
+ },
89
+ options: availableOwners,
90
+ renderInput: (params) => /* @__PURE__ */ jsx(
91
+ TextField,
92
+ {
93
+ ...params,
94
+ label: t("fields.githubRepoPicker.owner.inputTitle"),
95
+ disabled: isDisabled,
96
+ required: true
97
+ }
98
+ ),
99
+ freeSolo: true,
94
100
  disabled: isDisabled,
95
- required: true
101
+ autoSelect: true
96
102
  }
97
103
  ),
98
- freeSolo: true,
99
- disabled: isDisabled,
100
- autoSelect: true
101
- }
102
- ),
103
- /* @__PURE__ */ React.createElement(FormHelperText, null, t("fields.githubRepoPicker.owner.description"))
104
- ));
104
+ /* @__PURE__ */ jsx(FormHelperText, { children: t("fields.githubRepoPicker.owner.description") })
105
+ ]
106
+ }
107
+ ) });
105
108
  };
106
109
 
107
110
  export { GithubRepoPicker };
@@ -1 +1 @@
1
- {"version":3,"file":"GithubRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GithubRepoPicker.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 */\nimport React, { useCallback, useMemo, useState } from 'react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport { Select, SelectItem } from '@backstage/core-components';\nimport { BaseRepoUrlPickerProps } from './types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport useDebounce from 'react-use/esm/useDebounce';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport uniq from 'lodash/uniq';\nimport map from 'lodash/map';\n\nexport const GithubRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n accessToken?: string;\n }>,\n) => {\n const {\n allowedOwners = [],\n rawErrors,\n state,\n onChange,\n accessToken,\n isDisabled,\n } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners.map(i => ({ label: i, value: i }))\n : [{ label: 'Loading...', value: 'loading' }];\n\n const { host, owner } = state;\n\n const scaffolderApi = useApi(scaffolderApiRef);\n\n const [availableRepositoriesWithOwner, setAvailableRepositoriesWithOwner] =\n useState<{ owner: string; name: string }[]>([]);\n\n // Update available repositories with owner when client is available\n const updateAvailableRepositoriesWithOwner = useCallback(() => {\n if (!scaffolderApi.autocomplete || !accessToken || !host) {\n setAvailableRepositoriesWithOwner([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'repositoriesWithOwner',\n provider: 'github',\n context: { host },\n })\n .then(({ results }) => {\n setAvailableRepositoriesWithOwner(\n results.map(r => {\n const [rOwner, rName] = r.id.split('/');\n return { owner: rOwner, name: rName };\n }),\n );\n })\n .catch(() => {\n setAvailableRepositoriesWithOwner([]);\n });\n }, [scaffolderApi, accessToken, host]);\n\n useDebounce(updateAvailableRepositoriesWithOwner, 500, [\n updateAvailableRepositoriesWithOwner,\n ]);\n\n // Update available owners when available repositories with owner change\n const availableOwners = useMemo<string[]>(\n () => uniq(map(availableRepositoriesWithOwner, 'owner')),\n [availableRepositoriesWithOwner],\n );\n\n // Update available repositories when available repositories with owner change or when owner changes\n const updateAvailableRepositories = useCallback(() => {\n const availableRepos = availableRepositoriesWithOwner.flatMap(r =>\n r.owner === owner ? [{ name: r.name }] : [],\n );\n\n onChange({ availableRepos });\n }, [availableRepositoriesWithOwner, owner, onChange]);\n\n useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);\n\n return (\n <>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !owner}\n >\n {allowedOwners?.length ? (\n <>\n <Select\n native\n label={t('fields.githubRepoPicker.owner.title')}\n onChange={s =>\n onChange({ owner: String(Array.isArray(s) ? s[0] : s) })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={owner}\n items={ownerItems}\n />\n </>\n ) : (\n <Autocomplete\n value={owner}\n onChange={(_, newValue) => {\n onChange({ owner: newValue || '' });\n }}\n options={availableOwners}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.githubRepoPicker.owner.inputTitle')}\n disabled={isDisabled}\n required\n />\n )}\n freeSolo\n disabled={isDisabled}\n autoSelect\n />\n )}\n <FormHelperText>\n {t('fields.githubRepoPicker.owner.description')}\n </FormHelperText>\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GithubRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GithubRepoPicker.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 */\nimport { useCallback, useMemo, useState } from 'react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport { Select, SelectItem } from '@backstage/core-components';\nimport { BaseRepoUrlPickerProps } from './types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport useDebounce from 'react-use/esm/useDebounce';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport uniq from 'lodash/uniq';\nimport map from 'lodash/map';\n\nexport const GithubRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n accessToken?: string;\n }>,\n) => {\n const {\n allowedOwners = [],\n rawErrors,\n state,\n onChange,\n accessToken,\n isDisabled,\n } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners.map(i => ({ label: i, value: i }))\n : [{ label: 'Loading...', value: 'loading' }];\n\n const { host, owner } = state;\n\n const scaffolderApi = useApi(scaffolderApiRef);\n\n const [availableRepositoriesWithOwner, setAvailableRepositoriesWithOwner] =\n useState<{ owner: string; name: string }[]>([]);\n\n // Update available repositories with owner when client is available\n const updateAvailableRepositoriesWithOwner = useCallback(() => {\n if (!scaffolderApi.autocomplete || !accessToken || !host) {\n setAvailableRepositoriesWithOwner([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'repositoriesWithOwner',\n provider: 'github',\n context: { host },\n })\n .then(({ results }) => {\n setAvailableRepositoriesWithOwner(\n results.map(r => {\n const [rOwner, rName] = r.id.split('/');\n return { owner: rOwner, name: rName };\n }),\n );\n })\n .catch(() => {\n setAvailableRepositoriesWithOwner([]);\n });\n }, [scaffolderApi, accessToken, host]);\n\n useDebounce(updateAvailableRepositoriesWithOwner, 500, [\n updateAvailableRepositoriesWithOwner,\n ]);\n\n // Update available owners when available repositories with owner change\n const availableOwners = useMemo<string[]>(\n () => uniq(map(availableRepositoriesWithOwner, 'owner')),\n [availableRepositoriesWithOwner],\n );\n\n // Update available repositories when available repositories with owner change or when owner changes\n const updateAvailableRepositories = useCallback(() => {\n const availableRepos = availableRepositoriesWithOwner.flatMap(r =>\n r.owner === owner ? [{ name: r.name }] : [],\n );\n\n onChange({ availableRepos });\n }, [availableRepositoriesWithOwner, owner, onChange]);\n\n useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);\n\n return (\n <>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !owner}\n >\n {allowedOwners?.length ? (\n <>\n <Select\n native\n label={t('fields.githubRepoPicker.owner.title')}\n onChange={s =>\n onChange({ owner: String(Array.isArray(s) ? s[0] : s) })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={owner}\n items={ownerItems}\n />\n </>\n ) : (\n <Autocomplete\n value={owner}\n onChange={(_, newValue) => {\n onChange({ owner: newValue || '' });\n }}\n options={availableOwners}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.githubRepoPicker.owner.inputTitle')}\n disabled={isDisabled}\n required\n />\n )}\n freeSolo\n disabled={isDisabled}\n autoSelect\n />\n )}\n <FormHelperText>\n {t('fields.githubRepoPicker.owner.description')}\n </FormHelperText>\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
1
2
  import { Select } from '@backstage/core-components';
2
3
  import { useApi } from '@backstage/core-plugin-api';
3
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
@@ -6,7 +7,7 @@ import FormControl from '@material-ui/core/FormControl';
6
7
  import FormHelperText from '@material-ui/core/FormHelperText';
7
8
  import TextField from '@material-ui/core/TextField';
8
9
  import Autocomplete from '@material-ui/lab/Autocomplete';
9
- import React, { useState, useCallback } from 'react';
10
+ import { useState, useCallback } from 'react';
10
11
  import useDebounce from 'react-use/esm/useDebounce';
11
12
  import { scaffolderTranslationRef } from '../../../translation.esm.js';
12
13
 
@@ -73,50 +74,53 @@ const GitlabRepoPicker = (props) => {
73
74
  });
74
75
  }, [scaffolderApi, accessToken, host, owner, onChange, availableGroups]);
75
76
  useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);
76
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
77
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
77
78
  FormControl,
78
79
  {
79
80
  margin: "normal",
80
81
  required: true,
81
- error: rawErrors?.length > 0 && !owner
82
- },
83
- allowedOwners?.length ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
84
- Select,
85
- {
86
- native: true,
87
- label: t("fields.gitlabRepoPicker.owner.title"),
88
- onChange: (selected) => onChange({
89
- owner: String(
90
- Array.isArray(selected) ? selected[0] : selected
91
- )
92
- }),
93
- disabled: isDisabled || allowedOwners.length === 1,
94
- selected: owner,
95
- items: ownerItems
96
- }
97
- ), /* @__PURE__ */ React.createElement(FormHelperText, null, t("fields.gitlabRepoPicker.owner.description"))) : /* @__PURE__ */ React.createElement(
98
- Autocomplete,
99
- {
100
- value: owner,
101
- onChange: (_, newValue) => {
102
- onChange({ owner: newValue || "" });
103
- },
104
- options: availableGroups.map((group) => group.title),
105
- renderInput: (params) => /* @__PURE__ */ React.createElement(
106
- TextField,
82
+ error: rawErrors?.length > 0 && !owner,
83
+ children: allowedOwners?.length ? /* @__PURE__ */ jsxs(Fragment, { children: [
84
+ /* @__PURE__ */ jsx(
85
+ Select,
107
86
  {
108
- ...params,
87
+ native: true,
109
88
  label: t("fields.gitlabRepoPicker.owner.title"),
110
- disabled: isDisabled,
111
- required: true
89
+ onChange: (selected) => onChange({
90
+ owner: String(
91
+ Array.isArray(selected) ? selected[0] : selected
92
+ )
93
+ }),
94
+ disabled: isDisabled || allowedOwners.length === 1,
95
+ selected: owner,
96
+ items: ownerItems
112
97
  }
113
98
  ),
114
- freeSolo: true,
115
- disabled: isDisabled,
116
- autoSelect: true
117
- }
118
- )
119
- ));
99
+ /* @__PURE__ */ jsx(FormHelperText, { children: t("fields.gitlabRepoPicker.owner.description") })
100
+ ] }) : /* @__PURE__ */ jsx(
101
+ Autocomplete,
102
+ {
103
+ value: owner,
104
+ onChange: (_, newValue) => {
105
+ onChange({ owner: newValue || "" });
106
+ },
107
+ options: availableGroups.map((group) => group.title),
108
+ renderInput: (params) => /* @__PURE__ */ jsx(
109
+ TextField,
110
+ {
111
+ ...params,
112
+ label: t("fields.gitlabRepoPicker.owner.title"),
113
+ disabled: isDisabled,
114
+ required: true
115
+ }
116
+ ),
117
+ freeSolo: true,
118
+ disabled: isDisabled,
119
+ autoSelect: true
120
+ }
121
+ )
122
+ }
123
+ ) });
120
124
  };
121
125
 
122
126
  export { GitlabRepoPicker };
@@ -1 +1 @@
1
- {"version":3,"file":"GitlabRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GitlabRepoPicker.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 */\nimport { Select, SelectItem } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport React, { useCallback, useState } from 'react';\nimport useDebounce from 'react-use/esm/useDebounce';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { BaseRepoUrlPickerProps } from './types';\n\nexport const GitlabRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n allowedRepos?: string[];\n accessToken?: string;\n }>,\n) => {\n const {\n allowedOwners = [],\n state,\n onChange,\n rawErrors,\n accessToken,\n isDisabled,\n } = props;\n const [availableGroups, setAvailableGroups] = useState<\n { title: string; id: string }[]\n >([]);\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners.map(i => ({ label: i, value: i }))\n : [{ label: 'Loading...', value: 'loading' }];\n\n const { owner, host } = state;\n\n const scaffolderApi = useApi(scaffolderApiRef);\n\n const updateAvailableGroups = useCallback(() => {\n if (!scaffolderApi.autocomplete || !accessToken || !host) {\n setAvailableGroups([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'groups',\n provider: 'gitlab',\n context: { host },\n })\n .then(({ results }) => {\n setAvailableGroups(\n results.map(r => {\n return {\n title: r.title!,\n id: r.id,\n };\n }),\n );\n })\n .catch(() => {\n setAvailableGroups([]);\n });\n }, [scaffolderApi, accessToken, host]);\n\n useDebounce(updateAvailableGroups, 500, [updateAvailableGroups]);\n\n // Update available repositories when client is available and group changes\n const updateAvailableRepositories = useCallback(() => {\n if (!scaffolderApi.autocomplete || !accessToken || !host || !owner) {\n onChange({ availableRepos: [] });\n return;\n }\n\n const selectedGroup = availableGroups.find(group => group.title === owner);\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'repositories',\n context: {\n id: selectedGroup?.id ?? '',\n host,\n },\n provider: 'gitlab',\n })\n .then(({ results }) => {\n onChange({\n availableRepos: results.map(r => {\n return { name: r.title!, id: r.id };\n }),\n });\n })\n .catch(() => {\n onChange({ availableRepos: [] });\n });\n }, [scaffolderApi, accessToken, host, owner, onChange, availableGroups]);\n\n useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);\n\n return (\n <>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !owner}\n >\n {allowedOwners?.length ? (\n <>\n <Select\n native\n label={t('fields.gitlabRepoPicker.owner.title')}\n onChange={selected =>\n onChange({\n owner: String(\n Array.isArray(selected) ? selected[0] : selected,\n ),\n })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={owner}\n items={ownerItems}\n />\n <FormHelperText>\n {t('fields.gitlabRepoPicker.owner.description')}\n </FormHelperText>\n </>\n ) : (\n <Autocomplete\n value={owner}\n onChange={(_, newValue) => {\n onChange({ owner: newValue || '' });\n }}\n options={availableGroups.map(group => group.title)}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.gitlabRepoPicker.owner.title')}\n disabled={isDisabled}\n required\n />\n )}\n freeSolo\n disabled={isDisabled}\n autoSelect\n />\n )}\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitlabRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/GitlabRepoPicker.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 */\nimport { Select, SelectItem } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { useCallback, useState } from 'react';\nimport useDebounce from 'react-use/esm/useDebounce';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { BaseRepoUrlPickerProps } from './types';\n\nexport const GitlabRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n allowedRepos?: string[];\n accessToken?: string;\n }>,\n) => {\n const {\n allowedOwners = [],\n state,\n onChange,\n rawErrors,\n accessToken,\n isDisabled,\n } = props;\n const [availableGroups, setAvailableGroups] = useState<\n { title: string; id: string }[]\n >([]);\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners.map(i => ({ label: i, value: i }))\n : [{ label: 'Loading...', value: 'loading' }];\n\n const { owner, host } = state;\n\n const scaffolderApi = useApi(scaffolderApiRef);\n\n const updateAvailableGroups = useCallback(() => {\n if (!scaffolderApi.autocomplete || !accessToken || !host) {\n setAvailableGroups([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'groups',\n provider: 'gitlab',\n context: { host },\n })\n .then(({ results }) => {\n setAvailableGroups(\n results.map(r => {\n return {\n title: r.title!,\n id: r.id,\n };\n }),\n );\n })\n .catch(() => {\n setAvailableGroups([]);\n });\n }, [scaffolderApi, accessToken, host]);\n\n useDebounce(updateAvailableGroups, 500, [updateAvailableGroups]);\n\n // Update available repositories when client is available and group changes\n const updateAvailableRepositories = useCallback(() => {\n if (!scaffolderApi.autocomplete || !accessToken || !host || !owner) {\n onChange({ availableRepos: [] });\n return;\n }\n\n const selectedGroup = availableGroups.find(group => group.title === owner);\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'repositories',\n context: {\n id: selectedGroup?.id ?? '',\n host,\n },\n provider: 'gitlab',\n })\n .then(({ results }) => {\n onChange({\n availableRepos: results.map(r => {\n return { name: r.title!, id: r.id };\n }),\n });\n })\n .catch(() => {\n onChange({ availableRepos: [] });\n });\n }, [scaffolderApi, accessToken, host, owner, onChange, availableGroups]);\n\n useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);\n\n return (\n <>\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !owner}\n >\n {allowedOwners?.length ? (\n <>\n <Select\n native\n label={t('fields.gitlabRepoPicker.owner.title')}\n onChange={selected =>\n onChange({\n owner: String(\n Array.isArray(selected) ? selected[0] : selected,\n ),\n })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={owner}\n items={ownerItems}\n />\n <FormHelperText>\n {t('fields.gitlabRepoPicker.owner.description')}\n </FormHelperText>\n </>\n ) : (\n <Autocomplete\n value={owner}\n onChange={(_, newValue) => {\n onChange({ owner: newValue || '' });\n }}\n options={availableGroups.map(group => group.title)}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.gitlabRepoPicker.owner.title')}\n disabled={isDisabled}\n required\n />\n )}\n freeSolo\n disabled={isDisabled}\n autoSelect\n />\n )}\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":"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"}