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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/dist/alpha/components/TemplateEditorPage/CustomFieldExplorer.esm.js +98 -84
  3. package/dist/alpha/components/TemplateEditorPage/CustomFieldExplorer.esm.js.map +1 -1
  4. package/dist/alpha/components/TemplateEditorPage/CustomFieldPlaygroud.esm.js +119 -102
  5. package/dist/alpha/components/TemplateEditorPage/CustomFieldPlaygroud.esm.js.map +1 -1
  6. package/dist/alpha/components/TemplateEditorPage/CustomFieldsPage.esm.js +13 -10
  7. package/dist/alpha/components/TemplateEditorPage/CustomFieldsPage.esm.js.map +1 -1
  8. package/dist/alpha/components/TemplateEditorPage/DirectoryEditorContext.esm.js +4 -3
  9. package/dist/alpha/components/TemplateEditorPage/DirectoryEditorContext.esm.js.map +1 -1
  10. package/dist/alpha/components/TemplateEditorPage/DryRunContext.esm.js +3 -2
  11. package/dist/alpha/components/TemplateEditorPage/DryRunContext.esm.js.map +1 -1
  12. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResults.esm.js +22 -15
  13. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResults.esm.js.map +1 -1
  14. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsList.esm.js +49 -44
  15. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsList.esm.js.map +1 -1
  16. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsSplitView.esm.js +7 -2
  17. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsSplitView.esm.js.map +1 -1
  18. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsView.esm.js +79 -57
  19. package/dist/alpha/components/TemplateEditorPage/DryRunResults/DryRunResultsView.esm.js.map +1 -1
  20. package/dist/alpha/components/TemplateEditorPage/DryRunResults/IconLink.esm.js +5 -2
  21. package/dist/alpha/components/TemplateEditorPage/DryRunResults/IconLink.esm.js.map +1 -1
  22. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskPageLinks.esm.js +6 -6
  23. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskPageLinks.esm.js.map +1 -1
  24. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskStatusStepper.esm.js +40 -36
  25. package/dist/alpha/components/TemplateEditorPage/DryRunResults/TaskStatusStepper.esm.js.map +1 -1
  26. package/dist/alpha/components/TemplateEditorPage/TemplateEditor.esm.js +24 -17
  27. package/dist/alpha/components/TemplateEditorPage/TemplateEditor.esm.js.map +1 -1
  28. package/dist/alpha/components/TemplateEditorPage/TemplateEditorBrowser.esm.js +50 -42
  29. package/dist/alpha/components/TemplateEditorPage/TemplateEditorBrowser.esm.js.map +1 -1
  30. package/dist/alpha/components/TemplateEditorPage/TemplateEditorForm.esm.js +5 -4
  31. package/dist/alpha/components/TemplateEditorPage/TemplateEditorForm.esm.js.map +1 -1
  32. package/dist/alpha/components/TemplateEditorPage/TemplateEditorIntro.esm.js +87 -70
  33. package/dist/alpha/components/TemplateEditorPage/TemplateEditorIntro.esm.js.map +1 -1
  34. package/dist/alpha/components/TemplateEditorPage/TemplateEditorLayout.esm.js +7 -7
  35. package/dist/alpha/components/TemplateEditorPage/TemplateEditorLayout.esm.js.map +1 -1
  36. package/dist/alpha/components/TemplateEditorPage/TemplateEditorPage.esm.js +20 -17
  37. package/dist/alpha/components/TemplateEditorPage/TemplateEditorPage.esm.js.map +1 -1
  38. package/dist/alpha/components/TemplateEditorPage/TemplateEditorTextArea.esm.js +52 -45
  39. package/dist/alpha/components/TemplateEditorPage/TemplateEditorTextArea.esm.js.map +1 -1
  40. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbar.esm.js +76 -60
  41. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbar.esm.js.map +1 -1
  42. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.esm.js +42 -36
  43. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.esm.js.map +1 -1
  44. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.esm.js +42 -38
  45. package/dist/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.esm.js.map +1 -1
  46. package/dist/alpha/components/TemplateEditorPage/TemplateFormPage.esm.js +23 -19
  47. package/dist/alpha/components/TemplateEditorPage/TemplateFormPage.esm.js.map +1 -1
  48. package/dist/alpha/components/TemplateEditorPage/TemplateFormPreviewer.esm.js +39 -31
  49. package/dist/alpha/components/TemplateEditorPage/TemplateFormPreviewer.esm.js.map +1 -1
  50. package/dist/alpha/components/TemplateEditorPage/TemplateIntroPage.esm.js +14 -10
  51. package/dist/alpha/components/TemplateEditorPage/TemplateIntroPage.esm.js.map +1 -1
  52. package/dist/alpha/components/TemplateListPage/RegisterExistingButton.esm.js +6 -6
  53. package/dist/alpha/components/TemplateListPage/RegisterExistingButton.esm.js.map +1 -1
  54. package/dist/alpha/components/TemplateListPage/TemplateListPage.esm.js +54 -34
  55. package/dist/alpha/components/TemplateListPage/TemplateListPage.esm.js.map +1 -1
  56. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPage.esm.js +29 -24
  57. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPage.esm.js.map +1 -1
  58. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.esm.js +40 -33
  59. package/dist/alpha/components/TemplateWizardPage/TemplateWizardPageContextMenu.esm.js.map +1 -1
  60. package/dist/alpha/extensions.esm.js +2 -2
  61. package/dist/alpha/extensions.esm.js.map +1 -1
  62. package/dist/alpha/fields/RepoUrlPicker.esm.js +1 -1
  63. package/dist/alpha.d.ts +13 -13
  64. package/dist/components/ActionsPage/ActionsPage.esm.js +120 -167
  65. package/dist/components/ActionsPage/ActionsPage.esm.js.map +1 -1
  66. package/dist/components/FileBrowser/FileBrowser.esm.js +10 -9
  67. package/dist/components/FileBrowser/FileBrowser.esm.js.map +1 -1
  68. package/dist/components/ListTasksPage/ListTasksPage.esm.js +80 -70
  69. package/dist/components/ListTasksPage/ListTasksPage.esm.js.map +1 -1
  70. package/dist/components/ListTasksPage/OwnerListPicker.esm.js +29 -23
  71. package/dist/components/ListTasksPage/OwnerListPicker.esm.js.map +1 -1
  72. package/dist/components/ListTasksPage/columns/CreatedAtColumn.esm.js +2 -2
  73. package/dist/components/ListTasksPage/columns/CreatedAtColumn.esm.js.map +1 -1
  74. package/dist/components/ListTasksPage/columns/OwnerEntityColumn.esm.js +3 -3
  75. package/dist/components/ListTasksPage/columns/OwnerEntityColumn.esm.js.map +1 -1
  76. package/dist/components/ListTasksPage/columns/TaskStatusColumn.esm.js +4 -4
  77. package/dist/components/ListTasksPage/columns/TaskStatusColumn.esm.js.map +1 -1
  78. package/dist/components/ListTasksPage/columns/TemplateTitleColumn.esm.js +2 -2
  79. package/dist/components/ListTasksPage/columns/TemplateTitleColumn.esm.js.map +1 -1
  80. package/dist/components/OngoingTask/ContextMenu.esm.js +80 -58
  81. package/dist/components/OngoingTask/ContextMenu.esm.js.map +1 -1
  82. package/dist/components/OngoingTask/OngoingTask.esm.js +95 -76
  83. package/dist/components/OngoingTask/OngoingTask.esm.js.map +1 -1
  84. package/dist/components/RenderSchema/RenderSchema.esm.js +379 -0
  85. package/dist/components/RenderSchema/RenderSchema.esm.js.map +1 -0
  86. package/dist/components/Router/Router.esm.js +105 -94
  87. package/dist/components/Router/Router.esm.js.map +1 -1
  88. package/dist/components/ScaffolderUsageExamplesTable/ScaffolderUsageExamplesTable.esm.js +28 -0
  89. package/dist/components/ScaffolderUsageExamplesTable/ScaffolderUsageExamplesTable.esm.js.map +1 -0
  90. package/dist/components/TemplateTypePicker/TemplateTypePicker.esm.js +42 -39
  91. package/dist/components/TemplateTypePicker/TemplateTypePicker.esm.js.map +1 -1
  92. package/dist/components/fields/EntityNamePicker/EntityNamePicker.esm.js +2 -2
  93. package/dist/components/fields/EntityNamePicker/EntityNamePicker.esm.js.map +1 -1
  94. package/dist/components/fields/EntityPicker/EntityPicker.esm.js +41 -40
  95. package/dist/components/fields/EntityPicker/EntityPicker.esm.js.map +1 -1
  96. package/dist/components/fields/EntityTagsPicker/EntityTagsPicker.esm.js +5 -4
  97. package/dist/components/fields/EntityTagsPicker/EntityTagsPicker.esm.js.map +1 -1
  98. package/dist/components/fields/MultiEntityPicker/MultiEntityPicker.esm.js +45 -44
  99. package/dist/components/fields/MultiEntityPicker/MultiEntityPicker.esm.js.map +1 -1
  100. package/dist/components/fields/MyGroupsPicker/MyGroupsPicker.esm.js +36 -35
  101. package/dist/components/fields/MyGroupsPicker/MyGroupsPicker.esm.js.map +1 -1
  102. package/dist/components/fields/OwnedEntityPicker/OwnedEntityPicker.esm.js +4 -4
  103. package/dist/components/fields/OwnedEntityPicker/OwnedEntityPicker.esm.js.map +1 -1
  104. package/dist/components/fields/OwnerPicker/OwnerPicker.esm.js +2 -2
  105. package/dist/components/fields/OwnerPicker/OwnerPicker.esm.js.map +1 -1
  106. package/dist/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.esm.js +26 -23
  107. package/dist/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.esm.js.map +1 -1
  108. package/dist/components/fields/RepoBranchPicker/DefaultRepoBranchPicker.esm.js +17 -15
  109. package/dist/components/fields/RepoBranchPicker/DefaultRepoBranchPicker.esm.js.map +1 -1
  110. package/dist/components/fields/RepoBranchPicker/GitHubRepoBranchPicker.esm.js +26 -23
  111. package/dist/components/fields/RepoBranchPicker/GitHubRepoBranchPicker.esm.js.map +1 -1
  112. package/dist/components/fields/RepoBranchPicker/RepoBranchPicker.esm.js +13 -5
  113. package/dist/components/fields/RepoBranchPicker/RepoBranchPicker.esm.js.map +1 -1
  114. package/dist/components/fields/RepoUrlPicker/AzureRepoPicker.esm.js +62 -53
  115. package/dist/components/fields/RepoUrlPicker/AzureRepoPicker.esm.js.map +1 -1
  116. package/dist/components/fields/RepoUrlPicker/BitbucketRepoPicker.esm.js +85 -77
  117. package/dist/components/fields/RepoUrlPicker/BitbucketRepoPicker.esm.js.map +1 -1
  118. package/dist/components/fields/RepoUrlPicker/GerritRepoPicker.esm.js +28 -25
  119. package/dist/components/fields/RepoUrlPicker/GerritRepoPicker.esm.js.map +1 -1
  120. package/dist/components/fields/RepoUrlPicker/GiteaRepoPicker.esm.js +33 -30
  121. package/dist/components/fields/RepoUrlPicker/GiteaRepoPicker.esm.js.map +1 -1
  122. package/dist/components/fields/RepoUrlPicker/GithubRepoPicker.esm.js +37 -34
  123. package/dist/components/fields/RepoUrlPicker/GithubRepoPicker.esm.js.map +1 -1
  124. package/dist/components/fields/RepoUrlPicker/GitlabRepoPicker.esm.js +41 -37
  125. package/dist/components/fields/RepoUrlPicker/GitlabRepoPicker.esm.js.map +1 -1
  126. package/dist/components/fields/RepoUrlPicker/RepoUrlPicker.esm.js +98 -83
  127. package/dist/components/fields/RepoUrlPicker/RepoUrlPicker.esm.js.map +1 -1
  128. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerHost.esm.js +22 -19
  129. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerHost.esm.js.map +1 -1
  130. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerRepoName.esm.js +42 -39
  131. package/dist/components/fields/RepoUrlPicker/RepoUrlPickerRepoName.esm.js.map +1 -1
  132. package/dist/components/fields/SecretInput/SecretInput.esm.js +5 -5
  133. package/dist/components/fields/SecretInput/SecretInput.esm.js.map +1 -1
  134. package/dist/components/fields/VirtualizedListbox.esm.js +29 -26
  135. package/dist/components/fields/VirtualizedListbox.esm.js.map +1 -1
  136. package/dist/index.d.ts +17 -16
  137. package/dist/translation.esm.js +12 -10
  138. package/dist/translation.esm.js.map +1 -1
  139. package/package.json +25 -25
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEditorPage.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorPage.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 { makeStyles } from '@material-ui/core/styles';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport {\n FormProps,\n FieldExtensionOptions,\n type LayoutOptions,\n} from '@backstage/plugin-scaffolder-react';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { editRouteRef } from '../../../routes';\nimport { TemplateEditor } from './TemplateEditor';\n\nconst useStyles = makeStyles(\n {\n content: {\n padding: 0,\n },\n },\n { name: 'ScaffolderTemplateEditorToolbar' },\n);\n\ninterface TemplatePageProps {\n defaultPreviewTemplate?: string;\n fieldExtensions?: FieldExtensionOptions<any, any>[];\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n}\n\nexport function TemplateEditorPage(props: TemplatePageProps) {\n const classes = useStyles();\n const editLink = useRouteRef(editRouteRef);\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n return (\n <Page themeId=\"home\">\n <Header\n title={t('templateEditorPage.title')}\n subtitle={t('templateEditorPage.subtitle')}\n type={t('templateIntroPage.title')}\n typeLink={editLink()}\n />\n <Content className={classes.content}>\n <TemplateEditor\n layouts={props.layouts}\n formProps={props.formProps}\n fieldExtensions={props.fieldExtensions}\n />\n </Content>\n </Page>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AA6BA,MAAM,SAAY,GAAA,UAAA;AAAA,EAChB;AAAA,IACE,OAAS,EAAA;AAAA,MACP,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,EAAE,MAAM,iCAAkC;AAC5C,CAAA;AASO,SAAS,mBAAmB,KAA0B,EAAA;AAC3D,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,QAAA,GAAW,YAAY,YAAY,CAAA;AACzC,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,OAAA,EAAQ,MACZ,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,0BAA0B,CAAA;AAAA,MACnC,QAAA,EAAU,EAAE,6BAA6B,CAAA;AAAA,MACzC,IAAA,EAAM,EAAE,yBAAyB,CAAA;AAAA,MACjC,UAAU,QAAS;AAAA;AAAA,GAErB,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,SAAA,EAAW,QAAQ,OAC1B,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,SAAS,KAAM,CAAA,OAAA;AAAA,MACf,WAAW,KAAM,CAAA,SAAA;AAAA,MACjB,iBAAiB,KAAM,CAAA;AAAA;AAAA,GAE3B,CACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TemplateEditorPage.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorPage.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 { makeStyles } from '@material-ui/core/styles';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport {\n FormProps,\n FieldExtensionOptions,\n type LayoutOptions,\n} from '@backstage/plugin-scaffolder-react';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { editRouteRef } from '../../../routes';\nimport { TemplateEditor } from './TemplateEditor';\n\nconst useStyles = makeStyles(\n {\n content: {\n padding: 0,\n },\n },\n { name: 'ScaffolderTemplateEditorToolbar' },\n);\n\ninterface TemplatePageProps {\n defaultPreviewTemplate?: string;\n fieldExtensions?: FieldExtensionOptions<any, any>[];\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n}\n\nexport function TemplateEditorPage(props: TemplatePageProps) {\n const classes = useStyles();\n const editLink = useRouteRef(editRouteRef);\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n return (\n <Page themeId=\"home\">\n <Header\n title={t('templateEditorPage.title')}\n subtitle={t('templateEditorPage.subtitle')}\n type={t('templateIntroPage.title')}\n typeLink={editLink()}\n />\n <Content className={classes.content}>\n <TemplateEditor\n layouts={props.layouts}\n formProps={props.formProps}\n fieldExtensions={props.fieldExtensions}\n />\n </Content>\n </Page>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AA4BA,MAAM,SAAY,GAAA,UAAA;AAAA,EAChB;AAAA,IACE,OAAS,EAAA;AAAA,MACP,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,EAAE,MAAM,iCAAkC;AAC5C,CAAA;AASO,SAAS,mBAAmB,KAA0B,EAAA;AAC3D,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,QAAA,GAAW,YAAY,YAAY,CAAA;AACzC,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EACE,uBAAA,IAAA,CAAC,IAAK,EAAA,EAAA,OAAA,EAAQ,MACZ,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,0BAA0B,CAAA;AAAA,QACnC,QAAA,EAAU,EAAE,6BAA6B,CAAA;AAAA,QACzC,IAAA,EAAM,EAAE,yBAAyB,CAAA;AAAA,QACjC,UAAU,QAAS;AAAA;AAAA,KACrB;AAAA,oBACC,GAAA,CAAA,OAAA,EAAA,EAAQ,SAAW,EAAA,OAAA,CAAQ,OAC1B,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,WAAW,KAAM,CAAA,SAAA;AAAA,QACjB,iBAAiB,KAAM,CAAA;AAAA;AAAA,KAE3B,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,3 +1,4 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
1
2
  import { StreamLanguage } from '@codemirror/language';
2
3
  import { yaml } from '@codemirror/legacy-modes/mode/yaml';
3
4
  import { showPanel } from '@codemirror/view';
@@ -10,7 +11,7 @@ import RefreshIcon from '@material-ui/icons/Refresh';
10
11
  import SaveIcon from '@material-ui/icons/Save';
11
12
  import { useKeyboardEvent } from '@react-hookz/web';
12
13
  import CodeMirror from '@uiw/react-codemirror';
13
- import React, { useMemo } from 'react';
14
+ import { useMemo } from 'react';
14
15
  import { useDirectoryEditor } from './DirectoryEditorContext.esm.js';
15
16
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
16
17
  import { scaffolderTranslationRef } from '../../../translation.esm.js';
@@ -73,61 +74,67 @@ function TemplateEditorTextArea(props) {
73
74
  }
74
75
  }
75
76
  );
76
- return /* @__PURE__ */ React.createElement("div", { className: classes.container }, /* @__PURE__ */ React.createElement(
77
- CodeMirror,
78
- {
79
- className: classes.codeMirror,
80
- theme: "dark",
81
- height: "100%",
82
- extensions: [StreamLanguage.define(yaml), panelExtension],
83
- value: props.content,
84
- onChange: props.onUpdate
85
- }
86
- ), (props.onSave || props.onReload) && /* @__PURE__ */ React.createElement("div", { className: classes.floatingButtons }, /* @__PURE__ */ React.createElement(Paper, null, props.onSave && /* @__PURE__ */ React.createElement(
87
- Tooltip,
88
- {
89
- title: t(
90
- "templateEditorPage.templateEditorTextArea.saveIconTooltip"
91
- )
92
- },
93
- /* @__PURE__ */ React.createElement(
94
- IconButton,
77
+ return /* @__PURE__ */ jsxs("div", { className: classes.container, children: [
78
+ /* @__PURE__ */ jsx(
79
+ CodeMirror,
95
80
  {
96
- className: classes.floatingButton,
97
- onClick: () => props.onSave?.()
98
- },
99
- /* @__PURE__ */ React.createElement(SaveIcon, null)
100
- )
101
- ), props.onReload && /* @__PURE__ */ React.createElement(
102
- Tooltip,
103
- {
104
- title: t(
105
- "templateEditorPage.templateEditorTextArea.refreshIconTooltip"
81
+ className: classes.codeMirror,
82
+ theme: "dark",
83
+ height: "100%",
84
+ extensions: [StreamLanguage.define(yaml), panelExtension],
85
+ value: props.content,
86
+ onChange: props.onUpdate
87
+ }
88
+ ),
89
+ (props.onSave || props.onReload) && /* @__PURE__ */ jsx("div", { className: classes.floatingButtons, children: /* @__PURE__ */ jsxs(Paper, { children: [
90
+ props.onSave && /* @__PURE__ */ jsx(
91
+ Tooltip,
92
+ {
93
+ title: t(
94
+ "templateEditorPage.templateEditorTextArea.saveIconTooltip"
95
+ ),
96
+ children: /* @__PURE__ */ jsx(
97
+ IconButton,
98
+ {
99
+ className: classes.floatingButton,
100
+ onClick: () => props.onSave?.(),
101
+ children: /* @__PURE__ */ jsx(SaveIcon, {})
102
+ }
103
+ )
104
+ }
105
+ ),
106
+ props.onReload && /* @__PURE__ */ jsx(
107
+ Tooltip,
108
+ {
109
+ title: t(
110
+ "templateEditorPage.templateEditorTextArea.refreshIconTooltip"
111
+ ),
112
+ children: /* @__PURE__ */ jsx(
113
+ IconButton,
114
+ {
115
+ className: classes.floatingButton,
116
+ onClick: () => props.onReload?.(),
117
+ children: /* @__PURE__ */ jsx(RefreshIcon, {})
118
+ }
119
+ )
120
+ }
106
121
  )
107
- },
108
- /* @__PURE__ */ React.createElement(
109
- IconButton,
110
- {
111
- className: classes.floatingButton,
112
- onClick: () => props.onReload?.()
113
- },
114
- /* @__PURE__ */ React.createElement(RefreshIcon, null)
115
- )
116
- ))));
122
+ ] }) })
123
+ ] });
117
124
  }
118
125
  function TemplateEditorDirectoryEditorTextArea(props) {
119
126
  const classes = useStyles();
120
127
  const directoryEditor = useDirectoryEditor();
121
128
  const { t } = useTranslationRef(scaffolderTranslationRef);
122
129
  if (!directoryEditor) {
123
- return /* @__PURE__ */ React.createElement(
130
+ return /* @__PURE__ */ jsx(
124
131
  Typography,
125
132
  {
126
133
  className: classes.typography,
127
134
  color: "textSecondary",
128
- align: "center"
129
- },
130
- t("templateEditorPage.templateEditorTextArea.emptyStateParagraph")
135
+ align: "center",
136
+ children: t("templateEditorPage.templateEditorTextArea.emptyStateParagraph")
137
+ }
131
138
  );
132
139
  }
133
140
  const actions = directoryEditor?.selectedFile?.dirty ? {
@@ -136,7 +143,7 @@ function TemplateEditorDirectoryEditorTextArea(props) {
136
143
  } : {
137
144
  onReload: () => directoryEditor.reload()
138
145
  };
139
- return /* @__PURE__ */ React.createElement(
146
+ return /* @__PURE__ */ jsx(
140
147
  TemplateEditorTextArea,
141
148
  {
142
149
  errorText: props.errorText,
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEditorTextArea.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorTextArea.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 */\n\nimport { StreamLanguage } from '@codemirror/language';\nimport { yaml as yamlSupport } from '@codemirror/legacy-modes/mode/yaml';\nimport { showPanel } from '@codemirror/view';\nimport IconButton from '@material-ui/core/IconButton';\nimport Paper from '@material-ui/core/Paper';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport SaveIcon from '@material-ui/icons/Save';\nimport { useKeyboardEvent } from '@react-hookz/web';\nimport CodeMirror from '@uiw/react-codemirror';\nimport React, { useMemo } from 'react';\nimport { useDirectoryEditor } from './DirectoryEditorContext';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n position: 'relative',\n width: '100%',\n height: '100%',\n },\n typography: {\n padding: theme.spacing(1.5),\n },\n button: {\n verticalAlign: 'top',\n },\n codeMirror: {\n height: '100%',\n [theme.breakpoints.up('md')]: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n },\n errorPanel: {\n color: theme.palette.error.main,\n lineHeight: 2,\n margin: theme.spacing(0, 1),\n },\n floatingButtons: {\n position: 'absolute',\n top: theme.spacing(1),\n right: theme.spacing(3),\n },\n floatingButton: {\n padding: theme.spacing(1),\n },\n}));\n\n/** A wrapper around CodeMirror with an error panel and extra actions available */\nexport function TemplateEditorTextArea(props: {\n content?: string;\n onUpdate?: (content: string) => void;\n errorText?: string;\n onSave?: () => void;\n onReload?: () => void;\n}) {\n const { errorText } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const panelExtension = useMemo(() => {\n if (!errorText) {\n return showPanel.of(null);\n }\n\n const dom = document.createElement('div');\n dom.classList.add(classes.errorPanel);\n dom.textContent = errorText;\n return showPanel.of(() => ({ dom, bottom: true }));\n }, [classes, errorText]);\n\n useKeyboardEvent(\n e => e.key === 's' && (e.ctrlKey || e.metaKey),\n e => {\n e.preventDefault();\n if (props.onSave) {\n props.onSave();\n }\n },\n );\n\n return (\n <div className={classes.container}>\n <CodeMirror\n className={classes.codeMirror}\n theme=\"dark\"\n height=\"100%\"\n extensions={[StreamLanguage.define(yamlSupport), panelExtension]}\n value={props.content}\n onChange={props.onUpdate}\n />\n {(props.onSave || props.onReload) && (\n <div className={classes.floatingButtons}>\n <Paper>\n {props.onSave && (\n <Tooltip\n title={t(\n 'templateEditorPage.templateEditorTextArea.saveIconTooltip',\n )}\n >\n <IconButton\n className={classes.floatingButton}\n onClick={() => props.onSave?.()}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n )}\n {props.onReload && (\n <Tooltip\n title={t(\n 'templateEditorPage.templateEditorTextArea.refreshIconTooltip',\n )}\n >\n <IconButton\n className={classes.floatingButton}\n onClick={() => props.onReload?.()}\n >\n <RefreshIcon />\n </IconButton>\n </Tooltip>\n )}\n </Paper>\n </div>\n )}\n </div>\n );\n}\n\n/** A version of the TemplateEditorTextArea that is connected to the DirectoryEditor context */\nexport function TemplateEditorDirectoryEditorTextArea(props: {\n errorText?: string;\n}) {\n const classes = useStyles();\n const directoryEditor = useDirectoryEditor();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n if (!directoryEditor) {\n return (\n <Typography\n className={classes.typography}\n color=\"textSecondary\"\n align=\"center\"\n >\n {t('templateEditorPage.templateEditorTextArea.emptyStateParagraph')}\n </Typography>\n );\n }\n\n const actions = directoryEditor?.selectedFile?.dirty\n ? {\n onSave: () => directoryEditor.save(),\n onReload: () => directoryEditor.reload(),\n }\n : {\n onReload: () => directoryEditor.reload(),\n };\n\n return (\n <TemplateEditorTextArea\n errorText={props.errorText}\n content={directoryEditor.selectedFile?.content}\n onUpdate={content =>\n directoryEditor?.selectedFile?.updateContent(content)\n }\n {...actions}\n />\n );\n}\n\nTemplateEditorTextArea.DirectoryEditor = TemplateEditorDirectoryEditorTextArea;\n"],"names":["yamlSupport"],"mappings":"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"}
1
+ {"version":3,"file":"TemplateEditorTextArea.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorTextArea.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 */\n\nimport { StreamLanguage } from '@codemirror/language';\nimport { yaml as yamlSupport } from '@codemirror/legacy-modes/mode/yaml';\nimport { showPanel } from '@codemirror/view';\nimport IconButton from '@material-ui/core/IconButton';\nimport Paper from '@material-ui/core/Paper';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport SaveIcon from '@material-ui/icons/Save';\nimport { useKeyboardEvent } from '@react-hookz/web';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { useMemo } from 'react';\nimport { useDirectoryEditor } from './DirectoryEditorContext';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n position: 'relative',\n width: '100%',\n height: '100%',\n },\n typography: {\n padding: theme.spacing(1.5),\n },\n button: {\n verticalAlign: 'top',\n },\n codeMirror: {\n height: '100%',\n [theme.breakpoints.up('md')]: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n },\n errorPanel: {\n color: theme.palette.error.main,\n lineHeight: 2,\n margin: theme.spacing(0, 1),\n },\n floatingButtons: {\n position: 'absolute',\n top: theme.spacing(1),\n right: theme.spacing(3),\n },\n floatingButton: {\n padding: theme.spacing(1),\n },\n}));\n\n/** A wrapper around CodeMirror with an error panel and extra actions available */\nexport function TemplateEditorTextArea(props: {\n content?: string;\n onUpdate?: (content: string) => void;\n errorText?: string;\n onSave?: () => void;\n onReload?: () => void;\n}) {\n const { errorText } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const panelExtension = useMemo(() => {\n if (!errorText) {\n return showPanel.of(null);\n }\n\n const dom = document.createElement('div');\n dom.classList.add(classes.errorPanel);\n dom.textContent = errorText;\n return showPanel.of(() => ({ dom, bottom: true }));\n }, [classes, errorText]);\n\n useKeyboardEvent(\n e => e.key === 's' && (e.ctrlKey || e.metaKey),\n e => {\n e.preventDefault();\n if (props.onSave) {\n props.onSave();\n }\n },\n );\n\n return (\n <div className={classes.container}>\n <CodeMirror\n className={classes.codeMirror}\n theme=\"dark\"\n height=\"100%\"\n extensions={[StreamLanguage.define(yamlSupport), panelExtension]}\n value={props.content}\n onChange={props.onUpdate}\n />\n {(props.onSave || props.onReload) && (\n <div className={classes.floatingButtons}>\n <Paper>\n {props.onSave && (\n <Tooltip\n title={t(\n 'templateEditorPage.templateEditorTextArea.saveIconTooltip',\n )}\n >\n <IconButton\n className={classes.floatingButton}\n onClick={() => props.onSave?.()}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n )}\n {props.onReload && (\n <Tooltip\n title={t(\n 'templateEditorPage.templateEditorTextArea.refreshIconTooltip',\n )}\n >\n <IconButton\n className={classes.floatingButton}\n onClick={() => props.onReload?.()}\n >\n <RefreshIcon />\n </IconButton>\n </Tooltip>\n )}\n </Paper>\n </div>\n )}\n </div>\n );\n}\n\n/** A version of the TemplateEditorTextArea that is connected to the DirectoryEditor context */\nexport function TemplateEditorDirectoryEditorTextArea(props: {\n errorText?: string;\n}) {\n const classes = useStyles();\n const directoryEditor = useDirectoryEditor();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n if (!directoryEditor) {\n return (\n <Typography\n className={classes.typography}\n color=\"textSecondary\"\n align=\"center\"\n >\n {t('templateEditorPage.templateEditorTextArea.emptyStateParagraph')}\n </Typography>\n );\n }\n\n const actions = directoryEditor?.selectedFile?.dirty\n ? {\n onSave: () => directoryEditor.save(),\n onReload: () => directoryEditor.reload(),\n }\n : {\n onReload: () => directoryEditor.reload(),\n };\n\n return (\n <TemplateEditorTextArea\n errorText={props.errorText}\n content={directoryEditor.selectedFile?.content}\n onUpdate={content =>\n directoryEditor?.selectedFile?.updateContent(content)\n }\n {...actions}\n />\n );\n}\n\nTemplateEditorTextArea.DirectoryEditor = TemplateEditorDirectoryEditorTextArea;\n"],"names":["yamlSupport"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
2
3
  import { makeStyles } from '@material-ui/core/styles';
3
4
  import AppBar from '@material-ui/core/AppBar';
4
5
  import Toolbar from '@material-ui/core/Toolbar';
@@ -60,66 +61,81 @@ function TemplateEditorToolbar(props) {
60
61
  const [showFieldsDrawer, setShowFieldsDrawer] = useState(false);
61
62
  const [showActionsDrawer, setShowActionsDrawer] = useState(false);
62
63
  const [showPublishModal, setShowPublishModal] = useState(false);
63
- return /* @__PURE__ */ React.createElement(AppBar, { className: classes.appbar, position: "relative" }, /* @__PURE__ */ React.createElement(Toolbar, { className: classes.toolbar }, /* @__PURE__ */ React.createElement("div", { className: classes.toolbarCustomActions }, children), /* @__PURE__ */ React.createElement(ButtonGroup, { className: classes.toolbarDefaultActions, variant: "text" }, /* @__PURE__ */ React.createElement(
64
- Tooltip,
65
- {
66
- title: t("templateEditorToolbar.customFieldExplorerTooltip")
67
- },
68
- /* @__PURE__ */ React.createElement(Button, { onClick: () => setShowFieldsDrawer(true) }, /* @__PURE__ */ React.createElement(ExtensionIcon, null))
69
- ), /* @__PURE__ */ React.createElement(
70
- Tooltip,
71
- {
72
- title: t(
73
- "templateEditorToolbar.installedActionsDocumentationTooltip"
74
- )
75
- },
76
- /* @__PURE__ */ React.createElement(Button, { onClick: () => setShowActionsDrawer(true) }, /* @__PURE__ */ React.createElement(DescriptionIcon, null))
77
- ), /* @__PURE__ */ React.createElement(Button, { onClick: () => setShowPublishModal(true) }, t("templateEditorToolbar.addToCatalogButton"))), /* @__PURE__ */ React.createElement(
78
- Drawer,
79
- {
80
- classes: { paper: classes.paper },
81
- anchor: "right",
82
- open: showFieldsDrawer,
83
- onClose: () => setShowFieldsDrawer(false)
84
- },
85
- /* @__PURE__ */ React.createElement(CustomFieldPlaygroud, { fieldExtensions })
86
- ), /* @__PURE__ */ React.createElement(
87
- Drawer,
88
- {
89
- classes: { paper: classes.paper },
90
- anchor: "right",
91
- open: showActionsDrawer,
92
- onClose: () => setShowActionsDrawer(false)
93
- },
94
- /* @__PURE__ */ React.createElement(ActionPageContent, null)
95
- ), /* @__PURE__ */ React.createElement(
96
- Dialog,
97
- {
98
- onClose: () => setShowPublishModal(false),
99
- open: showPublishModal,
100
- "aria-labelledby": "publish-dialog-title",
101
- "aria-describedby": "publish-dialog-description"
102
- },
103
- /* @__PURE__ */ React.createElement(DialogTitle, { id: "publish-dialog-title" }, t("templateEditorToolbar.addToCatalogDialogTitle")),
104
- /* @__PURE__ */ React.createElement(DialogContent, { dividers: true }, /* @__PURE__ */ React.createElement(DialogContentText, { id: "publish-dialog-slide-description" }, t(
105
- "templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction"
106
- ), /* @__PURE__ */ React.createElement("ul", null, t(
107
- "templateEditorToolbar.addToCatalogDialogContent.stepsListItems"
108
- ).split("\n").map((step, index) => /* @__PURE__ */ React.createElement("li", { key: index }, step))))),
109
- /* @__PURE__ */ React.createElement(DialogActions, null, /* @__PURE__ */ React.createElement(
110
- Button,
64
+ return /* @__PURE__ */ jsx(AppBar, { className: classes.appbar, position: "relative", children: /* @__PURE__ */ jsxs(Toolbar, { className: classes.toolbar, children: [
65
+ /* @__PURE__ */ jsx("div", { className: classes.toolbarCustomActions, children }),
66
+ /* @__PURE__ */ jsxs(ButtonGroup, { className: classes.toolbarDefaultActions, variant: "text", children: [
67
+ /* @__PURE__ */ jsx(
68
+ Tooltip,
69
+ {
70
+ title: t("templateEditorToolbar.customFieldExplorerTooltip"),
71
+ children: /* @__PURE__ */ jsx(Button, { onClick: () => setShowFieldsDrawer(true), children: /* @__PURE__ */ jsx(ExtensionIcon, {}) })
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsx(
75
+ Tooltip,
76
+ {
77
+ title: t(
78
+ "templateEditorToolbar.installedActionsDocumentationTooltip"
79
+ ),
80
+ children: /* @__PURE__ */ jsx(Button, { onClick: () => setShowActionsDrawer(true), children: /* @__PURE__ */ jsx(DescriptionIcon, {}) })
81
+ }
82
+ ),
83
+ /* @__PURE__ */ jsx(Button, { onClick: () => setShowPublishModal(true), children: t("templateEditorToolbar.addToCatalogButton") })
84
+ ] }),
85
+ /* @__PURE__ */ jsx(
86
+ Drawer,
111
87
  {
112
- color: "primary",
113
- href: t(
114
- "templateEditorToolbar.addToCatalogDialogActions.documentationUrl"
115
- ),
116
- target: "_blank"
117
- },
118
- t(
119
- "templateEditorToolbar.addToCatalogDialogActions.documentationButton"
120
- )
121
- ))
122
- )));
88
+ classes: { paper: classes.paper },
89
+ anchor: "right",
90
+ open: showFieldsDrawer,
91
+ onClose: () => setShowFieldsDrawer(false),
92
+ children: /* @__PURE__ */ jsx(CustomFieldPlaygroud, { fieldExtensions })
93
+ }
94
+ ),
95
+ /* @__PURE__ */ jsx(
96
+ Drawer,
97
+ {
98
+ classes: { paper: classes.paper },
99
+ anchor: "right",
100
+ open: showActionsDrawer,
101
+ onClose: () => setShowActionsDrawer(false),
102
+ children: /* @__PURE__ */ jsx(ActionPageContent, {})
103
+ }
104
+ ),
105
+ /* @__PURE__ */ jsxs(
106
+ Dialog,
107
+ {
108
+ onClose: () => setShowPublishModal(false),
109
+ open: showPublishModal,
110
+ "aria-labelledby": "publish-dialog-title",
111
+ "aria-describedby": "publish-dialog-description",
112
+ children: [
113
+ /* @__PURE__ */ jsx(DialogTitle, { id: "publish-dialog-title", children: t("templateEditorToolbar.addToCatalogDialogTitle") }),
114
+ /* @__PURE__ */ jsx(DialogContent, { dividers: true, children: /* @__PURE__ */ jsxs(DialogContentText, { id: "publish-dialog-slide-description", children: [
115
+ t(
116
+ "templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction"
117
+ ),
118
+ /* @__PURE__ */ jsx("ul", { children: t(
119
+ "templateEditorToolbar.addToCatalogDialogContent.stepsListItems"
120
+ ).split("\n").map((step, index) => /* @__PURE__ */ jsx("li", { children: step }, index)) })
121
+ ] }) }),
122
+ /* @__PURE__ */ jsx(DialogActions, { children: /* @__PURE__ */ jsx(
123
+ Button,
124
+ {
125
+ color: "primary",
126
+ href: t(
127
+ "templateEditorToolbar.addToCatalogDialogActions.documentationUrl"
128
+ ),
129
+ target: "_blank",
130
+ children: t(
131
+ "templateEditorToolbar.addToCatalogDialogActions.documentationButton"
132
+ )
133
+ }
134
+ ) })
135
+ ]
136
+ }
137
+ )
138
+ ] }) });
123
139
  }
124
140
 
125
141
  export { TemplateEditorToolbar };
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEditorToolbar.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.tsx"],"sourcesContent":["/*\n * Copyright 2024 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, { ReactNode, useState } from 'react';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport Button from '@material-ui/core/Button';\nimport Drawer from '@material-ui/core/Drawer';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport ExtensionIcon from '@material-ui/icons/Extension';\nimport DescriptionIcon from '@material-ui/icons/Description';\n\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { FieldExtensionOptions } from '@backstage/plugin-scaffolder-react';\n\nimport { ActionPageContent } from '../../../components/ActionsPage/ActionsPage';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { CustomFieldPlaygroud } from './CustomFieldPlaygroud';\n\nconst useStyles = makeStyles(\n theme => ({\n paper: {\n width: '90%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n [theme.breakpoints.up('sm')]: {\n width: '70%',\n },\n [theme.breakpoints.up('md')]: {\n width: '50%',\n },\n },\n appbar: {\n zIndex: 1,\n },\n toolbar: {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n gridGap: theme.spacing(1),\n padding: theme.spacing(0, 1),\n backgroundColor: theme.palette.background.paper,\n },\n toolbarCustomActions: {\n display: 'grid',\n alignItems: 'center',\n gridAutoFlow: 'Column',\n gridGap: theme.spacing(1),\n },\n toolbarDefaultActions: {\n justifySelf: 'end',\n },\n }),\n { name: 'ScaffolderTemplateEditorToolbar' },\n);\n\nexport function TemplateEditorToolbar(props: {\n children?: ReactNode;\n fieldExtensions?: FieldExtensionOptions<any, any>[];\n}) {\n const { children, fieldExtensions } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const [showFieldsDrawer, setShowFieldsDrawer] = useState(false);\n const [showActionsDrawer, setShowActionsDrawer] = useState(false);\n const [showPublishModal, setShowPublishModal] = useState(false);\n\n return (\n <AppBar className={classes.appbar} position=\"relative\">\n <Toolbar className={classes.toolbar}>\n <div className={classes.toolbarCustomActions}>{children}</div>\n <ButtonGroup className={classes.toolbarDefaultActions} variant=\"text\">\n <Tooltip\n title={t('templateEditorToolbar.customFieldExplorerTooltip')}\n >\n <Button onClick={() => setShowFieldsDrawer(true)}>\n <ExtensionIcon />\n </Button>\n </Tooltip>\n <Tooltip\n title={t(\n 'templateEditorToolbar.installedActionsDocumentationTooltip',\n )}\n >\n <Button onClick={() => setShowActionsDrawer(true)}>\n <DescriptionIcon />\n </Button>\n </Tooltip>\n <Button onClick={() => setShowPublishModal(true)}>\n {t('templateEditorToolbar.addToCatalogButton')}\n </Button>\n </ButtonGroup>\n <Drawer\n classes={{ paper: classes.paper }}\n anchor=\"right\"\n open={showFieldsDrawer}\n onClose={() => setShowFieldsDrawer(false)}\n >\n <CustomFieldPlaygroud fieldExtensions={fieldExtensions} />\n </Drawer>\n <Drawer\n classes={{ paper: classes.paper }}\n anchor=\"right\"\n open={showActionsDrawer}\n onClose={() => setShowActionsDrawer(false)}\n >\n <ActionPageContent />\n </Drawer>\n <Dialog\n onClose={() => setShowPublishModal(false)}\n open={showPublishModal}\n aria-labelledby=\"publish-dialog-title\"\n aria-describedby=\"publish-dialog-description\"\n >\n <DialogTitle id=\"publish-dialog-title\">\n {t('templateEditorToolbar.addToCatalogDialogTitle')}\n </DialogTitle>\n <DialogContent dividers>\n <DialogContentText id=\"publish-dialog-slide-description\">\n {t(\n 'templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction',\n )}\n <ul>\n {t(\n 'templateEditorToolbar.addToCatalogDialogContent.stepsListItems',\n )\n .split('\\n')\n .map((step, index) => (\n <li key={index}>{step}</li>\n ))}\n </ul>\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"primary\"\n href={t(\n 'templateEditorToolbar.addToCatalogDialogActions.documentationUrl',\n )}\n target=\"_blank\"\n >\n {t(\n 'templateEditorToolbar.addToCatalogDialogActions.documentationButton',\n )}\n </Button>\n </DialogActions>\n </Dialog>\n </Toolbar>\n </AppBar>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateEditorToolbar.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 { ReactNode, useState } from 'react';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport Button from '@material-ui/core/Button';\nimport Drawer from '@material-ui/core/Drawer';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport ExtensionIcon from '@material-ui/icons/Extension';\nimport DescriptionIcon from '@material-ui/icons/Description';\n\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { FieldExtensionOptions } from '@backstage/plugin-scaffolder-react';\n\nimport { ActionPageContent } from '../../../components/ActionsPage/ActionsPage';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { CustomFieldPlaygroud } from './CustomFieldPlaygroud';\n\nconst useStyles = makeStyles(\n theme => ({\n paper: {\n width: '90%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n [theme.breakpoints.up('sm')]: {\n width: '70%',\n },\n [theme.breakpoints.up('md')]: {\n width: '50%',\n },\n },\n appbar: {\n zIndex: 1,\n },\n toolbar: {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n gridGap: theme.spacing(1),\n padding: theme.spacing(0, 1),\n backgroundColor: theme.palette.background.paper,\n },\n toolbarCustomActions: {\n display: 'grid',\n alignItems: 'center',\n gridAutoFlow: 'Column',\n gridGap: theme.spacing(1),\n },\n toolbarDefaultActions: {\n justifySelf: 'end',\n },\n }),\n { name: 'ScaffolderTemplateEditorToolbar' },\n);\n\nexport function TemplateEditorToolbar(props: {\n children?: ReactNode;\n fieldExtensions?: FieldExtensionOptions<any, any>[];\n}) {\n const { children, fieldExtensions } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const [showFieldsDrawer, setShowFieldsDrawer] = useState(false);\n const [showActionsDrawer, setShowActionsDrawer] = useState(false);\n const [showPublishModal, setShowPublishModal] = useState(false);\n\n return (\n <AppBar className={classes.appbar} position=\"relative\">\n <Toolbar className={classes.toolbar}>\n <div className={classes.toolbarCustomActions}>{children}</div>\n <ButtonGroup className={classes.toolbarDefaultActions} variant=\"text\">\n <Tooltip\n title={t('templateEditorToolbar.customFieldExplorerTooltip')}\n >\n <Button onClick={() => setShowFieldsDrawer(true)}>\n <ExtensionIcon />\n </Button>\n </Tooltip>\n <Tooltip\n title={t(\n 'templateEditorToolbar.installedActionsDocumentationTooltip',\n )}\n >\n <Button onClick={() => setShowActionsDrawer(true)}>\n <DescriptionIcon />\n </Button>\n </Tooltip>\n <Button onClick={() => setShowPublishModal(true)}>\n {t('templateEditorToolbar.addToCatalogButton')}\n </Button>\n </ButtonGroup>\n <Drawer\n classes={{ paper: classes.paper }}\n anchor=\"right\"\n open={showFieldsDrawer}\n onClose={() => setShowFieldsDrawer(false)}\n >\n <CustomFieldPlaygroud fieldExtensions={fieldExtensions} />\n </Drawer>\n <Drawer\n classes={{ paper: classes.paper }}\n anchor=\"right\"\n open={showActionsDrawer}\n onClose={() => setShowActionsDrawer(false)}\n >\n <ActionPageContent />\n </Drawer>\n <Dialog\n onClose={() => setShowPublishModal(false)}\n open={showPublishModal}\n aria-labelledby=\"publish-dialog-title\"\n aria-describedby=\"publish-dialog-description\"\n >\n <DialogTitle id=\"publish-dialog-title\">\n {t('templateEditorToolbar.addToCatalogDialogTitle')}\n </DialogTitle>\n <DialogContent dividers>\n <DialogContentText id=\"publish-dialog-slide-description\">\n {t(\n 'templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction',\n )}\n <ul>\n {t(\n 'templateEditorToolbar.addToCatalogDialogContent.stepsListItems',\n )\n .split('\\n')\n .map((step, index) => (\n <li key={index}>{step}</li>\n ))}\n </ul>\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"primary\"\n href={t(\n 'templateEditorToolbar.addToCatalogDialogActions.documentationUrl',\n )}\n target=\"_blank\"\n >\n {t(\n 'templateEditorToolbar.addToCatalogDialogActions.documentationButton',\n )}\n </Button>\n </DialogActions>\n </Dialog>\n </Toolbar>\n </AppBar>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import React, { useState, useCallback } from 'react';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { useState, useCallback } from 'react';
2
3
  import Button from '@material-ui/core/Button';
3
4
  import Menu from '@material-ui/core/Menu';
4
5
  import MenuItem from '@material-ui/core/MenuItem';
@@ -30,43 +31,48 @@ function TemplateEditorToolbarFileMenu(props) {
30
31
  handleCloseMenu();
31
32
  onCloseDirectory?.();
32
33
  }, [handleCloseMenu, onCloseDirectory]);
33
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
34
- Button,
35
- {
36
- "aria-controls": "file-menu",
37
- "aria-haspopup": "true",
38
- onClick: handleOpenMenu
39
- },
40
- t("templateEditorToolbarFileMenu.button")
41
- ), /* @__PURE__ */ React.createElement(
42
- Menu,
43
- {
44
- id: "file-menu",
45
- anchorEl,
46
- open: Boolean(anchorEl),
47
- onClose: handleCloseMenu,
48
- getContentAnchorEl: null,
49
- anchorOrigin: {
50
- vertical: "bottom",
51
- horizontal: "left"
52
- },
53
- transformOrigin: {
54
- vertical: "top",
55
- horizontal: "left"
56
- }
57
- },
58
- /* @__PURE__ */ React.createElement(MenuItem, { onClick: handleOpenDirectory, disabled: !onOpenDirectory }, t("templateEditorToolbarFileMenu.options.openDirectory")),
59
- /* @__PURE__ */ React.createElement(
60
- MenuItem,
34
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ /* @__PURE__ */ jsx(
36
+ Button,
61
37
  {
62
- onClick: handleCreateDirectory,
63
- disabled: !onCreateDirectory,
64
- divider: true
65
- },
66
- t("templateEditorToolbarFileMenu.options.createDirectory")
38
+ "aria-controls": "file-menu",
39
+ "aria-haspopup": "true",
40
+ onClick: handleOpenMenu,
41
+ children: t("templateEditorToolbarFileMenu.button")
42
+ }
67
43
  ),
68
- /* @__PURE__ */ React.createElement(MenuItem, { onClick: handleCloseEditor, disabled: !onCloseDirectory }, t("templateEditorToolbarFileMenu.options.closeEditor"))
69
- ));
44
+ /* @__PURE__ */ jsxs(
45
+ Menu,
46
+ {
47
+ id: "file-menu",
48
+ anchorEl,
49
+ open: Boolean(anchorEl),
50
+ onClose: handleCloseMenu,
51
+ getContentAnchorEl: null,
52
+ anchorOrigin: {
53
+ vertical: "bottom",
54
+ horizontal: "left"
55
+ },
56
+ transformOrigin: {
57
+ vertical: "top",
58
+ horizontal: "left"
59
+ },
60
+ children: [
61
+ /* @__PURE__ */ jsx(MenuItem, { onClick: handleOpenDirectory, disabled: !onOpenDirectory, children: t("templateEditorToolbarFileMenu.options.openDirectory") }),
62
+ /* @__PURE__ */ jsx(
63
+ MenuItem,
64
+ {
65
+ onClick: handleCreateDirectory,
66
+ disabled: !onCreateDirectory,
67
+ divider: true,
68
+ children: t("templateEditorToolbarFileMenu.options.createDirectory")
69
+ }
70
+ ),
71
+ /* @__PURE__ */ jsx(MenuItem, { onClick: handleCloseEditor, disabled: !onCloseDirectory, children: t("templateEditorToolbarFileMenu.options.closeEditor") })
72
+ ]
73
+ }
74
+ )
75
+ ] });
70
76
  }
71
77
 
72
78
  export { TemplateEditorToolbarFileMenu };
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEditorToolbarFileMenu.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.tsx"],"sourcesContent":["/*\n * Copyright 2024 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, { MouseEvent, useCallback, useState } from 'react';\n\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\n\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\n\nimport { scaffolderTranslationRef } from '../../../translation';\n\nexport function TemplateEditorToolbarFileMenu(props: {\n onOpenDirectory?: () => void;\n onCreateDirectory?: () => void;\n onCloseDirectory?: () => void;\n}) {\n const { onOpenDirectory, onCreateDirectory, onCloseDirectory } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenMenu = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n },\n [setAnchorEl],\n );\n\n const handleCloseMenu = useCallback(() => {\n setAnchorEl(null);\n }, [setAnchorEl]);\n\n const handleOpenDirectory = useCallback(() => {\n handleCloseMenu();\n onOpenDirectory?.();\n }, [handleCloseMenu, onOpenDirectory]);\n\n const handleCreateDirectory = useCallback(() => {\n handleCloseMenu();\n onCreateDirectory?.();\n }, [handleCloseMenu, onCreateDirectory]);\n\n const handleCloseEditor = useCallback(() => {\n handleCloseMenu();\n onCloseDirectory?.();\n }, [handleCloseMenu, onCloseDirectory]);\n\n return (\n <>\n <Button\n aria-controls=\"file-menu\"\n aria-haspopup=\"true\"\n onClick={handleOpenMenu}\n >\n {t('templateEditorToolbarFileMenu.button')}\n </Button>\n <Menu\n id=\"file-menu\"\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleCloseMenu}\n getContentAnchorEl={null}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n >\n <MenuItem onClick={handleOpenDirectory} disabled={!onOpenDirectory}>\n {t('templateEditorToolbarFileMenu.options.openDirectory')}\n </MenuItem>\n <MenuItem\n onClick={handleCreateDirectory}\n disabled={!onCreateDirectory}\n divider\n >\n {t('templateEditorToolbarFileMenu.options.createDirectory')}\n </MenuItem>\n <MenuItem onClick={handleCloseEditor} disabled={!onCloseDirectory}>\n {t('templateEditorToolbarFileMenu.options.closeEditor')}\n </MenuItem>\n </Menu>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;AA0BO,SAAS,8BAA8B,KAI3C,EAAA;AACD,EAAA,MAAM,EAAE,eAAA,EAAiB,iBAAmB,EAAA,gBAAA,EAAqB,GAAA,KAAA;AACjE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAA6B,IAAI,CAAA;AAEjE,EAAA,MAAM,cAAiB,GAAA,WAAA;AAAA,IACrB,CAAC,KAAyC,KAAA;AACxC,MAAA,WAAA,CAAY,MAAM,aAAa,CAAA;AAAA,KACjC;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAM,MAAA,eAAA,GAAkB,YAAY,MAAM;AACxC,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,GAClB,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAM,MAAA,mBAAA,GAAsB,YAAY,MAAM;AAC5C,IAAgB,eAAA,EAAA;AAChB,IAAkB,eAAA,IAAA;AAAA,GACjB,EAAA,CAAC,eAAiB,EAAA,eAAe,CAAC,CAAA;AAErC,EAAM,MAAA,qBAAA,GAAwB,YAAY,MAAM;AAC9C,IAAgB,eAAA,EAAA;AAChB,IAAoB,iBAAA,IAAA;AAAA,GACnB,EAAA,CAAC,eAAiB,EAAA,iBAAiB,CAAC,CAAA;AAEvC,EAAM,MAAA,iBAAA,GAAoB,YAAY,MAAM;AAC1C,IAAgB,eAAA,EAAA;AAChB,IAAmB,gBAAA,IAAA;AAAA,GAClB,EAAA,CAAC,eAAiB,EAAA,gBAAgB,CAAC,CAAA;AAEtC,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,eAAc,EAAA,WAAA;AAAA,MACd,eAAc,EAAA,MAAA;AAAA,MACd,OAAS,EAAA;AAAA,KAAA;AAAA,IAER,EAAE,sCAAsC;AAAA,GAE3C,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,EAAG,EAAA,WAAA;AAAA,MACH,QAAA;AAAA,MACA,IAAA,EAAM,QAAQ,QAAQ,CAAA;AAAA,MACtB,OAAS,EAAA,eAAA;AAAA,MACT,kBAAoB,EAAA,IAAA;AAAA,MACpB,YAAc,EAAA;AAAA,QACZ,QAAU,EAAA,QAAA;AAAA,QACV,UAAY,EAAA;AAAA,OACd;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,QAAU,EAAA,KAAA;AAAA,QACV,UAAY,EAAA;AAAA;AACd,KAAA;AAAA,oBAEA,KAAA,CAAA,aAAA,CAAC,YAAS,OAAS,EAAA,mBAAA,EAAqB,UAAU,CAAC,eAAA,EAAA,EAChD,CAAE,CAAA,qDAAqD,CAC1D,CAAA;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,qBAAA;AAAA,QACT,UAAU,CAAC,iBAAA;AAAA,QACX,OAAO,EAAA;AAAA,OAAA;AAAA,MAEN,EAAE,uDAAuD;AAAA,KAC5D;AAAA,oBACA,KAAA,CAAA,aAAA,CAAC,YAAS,OAAS,EAAA,iBAAA,EAAmB,UAAU,CAAC,gBAAA,EAAA,EAC9C,CAAE,CAAA,mDAAmD,CACxD;AAAA,GAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TemplateEditorToolbarFileMenu.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 { MouseEvent, useCallback, useState } from 'react';\n\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\n\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\n\nimport { scaffolderTranslationRef } from '../../../translation';\n\nexport function TemplateEditorToolbarFileMenu(props: {\n onOpenDirectory?: () => void;\n onCreateDirectory?: () => void;\n onCloseDirectory?: () => void;\n}) {\n const { onOpenDirectory, onCreateDirectory, onCloseDirectory } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenMenu = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n },\n [setAnchorEl],\n );\n\n const handleCloseMenu = useCallback(() => {\n setAnchorEl(null);\n }, [setAnchorEl]);\n\n const handleOpenDirectory = useCallback(() => {\n handleCloseMenu();\n onOpenDirectory?.();\n }, [handleCloseMenu, onOpenDirectory]);\n\n const handleCreateDirectory = useCallback(() => {\n handleCloseMenu();\n onCreateDirectory?.();\n }, [handleCloseMenu, onCreateDirectory]);\n\n const handleCloseEditor = useCallback(() => {\n handleCloseMenu();\n onCloseDirectory?.();\n }, [handleCloseMenu, onCloseDirectory]);\n\n return (\n <>\n <Button\n aria-controls=\"file-menu\"\n aria-haspopup=\"true\"\n onClick={handleOpenMenu}\n >\n {t('templateEditorToolbarFileMenu.button')}\n </Button>\n <Menu\n id=\"file-menu\"\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleCloseMenu}\n getContentAnchorEl={null}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n >\n <MenuItem onClick={handleOpenDirectory} disabled={!onOpenDirectory}>\n {t('templateEditorToolbarFileMenu.options.openDirectory')}\n </MenuItem>\n <MenuItem\n onClick={handleCreateDirectory}\n disabled={!onCreateDirectory}\n divider\n >\n {t('templateEditorToolbarFileMenu.options.createDirectory')}\n </MenuItem>\n <MenuItem onClick={handleCloseEditor} disabled={!onCloseDirectory}>\n {t('templateEditorToolbarFileMenu.options.closeEditor')}\n </MenuItem>\n </Menu>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AA0BO,SAAS,8BAA8B,KAI3C,EAAA;AACD,EAAA,MAAM,EAAE,eAAA,EAAiB,iBAAmB,EAAA,gBAAA,EAAqB,GAAA,KAAA;AACjE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAA6B,IAAI,CAAA;AAEjE,EAAA,MAAM,cAAiB,GAAA,WAAA;AAAA,IACrB,CAAC,KAAyC,KAAA;AACxC,MAAA,WAAA,CAAY,MAAM,aAAa,CAAA;AAAA,KACjC;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAM,MAAA,eAAA,GAAkB,YAAY,MAAM;AACxC,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,GAClB,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAM,MAAA,mBAAA,GAAsB,YAAY,MAAM;AAC5C,IAAgB,eAAA,EAAA;AAChB,IAAkB,eAAA,IAAA;AAAA,GACjB,EAAA,CAAC,eAAiB,EAAA,eAAe,CAAC,CAAA;AAErC,EAAM,MAAA,qBAAA,GAAwB,YAAY,MAAM;AAC9C,IAAgB,eAAA,EAAA;AAChB,IAAoB,iBAAA,IAAA;AAAA,GACnB,EAAA,CAAC,eAAiB,EAAA,iBAAiB,CAAC,CAAA;AAEvC,EAAM,MAAA,iBAAA,GAAoB,YAAY,MAAM;AAC1C,IAAgB,eAAA,EAAA;AAChB,IAAmB,gBAAA,IAAA;AAAA,GAClB,EAAA,CAAC,eAAiB,EAAA,gBAAgB,CAAC,CAAA;AAEtC,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,eAAc,EAAA,WAAA;AAAA,QACd,eAAc,EAAA,MAAA;AAAA,QACd,OAAS,EAAA,cAAA;AAAA,QAER,YAAE,sCAAsC;AAAA;AAAA,KAC3C;AAAA,oBACA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,WAAA;AAAA,QACH,QAAA;AAAA,QACA,IAAA,EAAM,QAAQ,QAAQ,CAAA;AAAA,QACtB,OAAS,EAAA,eAAA;AAAA,QACT,kBAAoB,EAAA,IAAA;AAAA,QACpB,YAAc,EAAA;AAAA,UACZ,QAAU,EAAA,QAAA;AAAA,UACV,UAAY,EAAA;AAAA,SACd;AAAA,QACA,eAAiB,EAAA;AAAA,UACf,QAAU,EAAA,KAAA;AAAA,UACV,UAAY,EAAA;AAAA,SACd;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,QAAA,EAAA,EAAS,SAAS,mBAAqB,EAAA,QAAA,EAAU,CAAC,eAChD,EAAA,QAAA,EAAA,CAAA,CAAE,qDAAqD,CAC1D,EAAA,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,OAAS,EAAA,qBAAA;AAAA,cACT,UAAU,CAAC,iBAAA;AAAA,cACX,OAAO,EAAA,IAAA;AAAA,cAEN,YAAE,uDAAuD;AAAA;AAAA,WAC5D;AAAA,0BACA,GAAA,CAAC,YAAS,OAAS,EAAA,iBAAA,EAAmB,UAAU,CAAC,gBAAA,EAC9C,QAAE,EAAA,CAAA,CAAA,mDAAmD,CACxD,EAAA;AAAA;AAAA;AAAA;AACF,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
- import React, { useState, useCallback } from 'react';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { useState, useCallback } from 'react';
2
3
  import { makeStyles } from '@material-ui/core/styles';
3
4
  import Button from '@material-ui/core/Button';
4
5
  import Menu from '@material-ui/core/Menu';
@@ -39,45 +40,48 @@ function TemplateEditorToolbarTemplatesMenu(props) {
39
40
  },
40
41
  [handleCloseMenu, onSelectOption]
41
42
  );
42
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
43
- Button,
44
- {
45
- "aria-controls": "templates-menu",
46
- "aria-haspopup": "true",
47
- onClick: handleOpenMenu
48
- },
49
- t("templateEditorToolbarTemplatesMenu.button")
50
- ), /* @__PURE__ */ React.createElement(
51
- Menu,
52
- {
53
- id: "templates-menu",
54
- anchorEl,
55
- open: Boolean(anchorEl),
56
- onClose: handleCloseMenu,
57
- getContentAnchorEl: null,
58
- anchorOrigin: {
59
- vertical: "bottom",
60
- horizontal: "left"
61
- },
62
- transformOrigin: {
63
- vertical: "top",
64
- horizontal: "left"
65
- },
66
- PaperProps: {
67
- className: classes.menu
43
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
44
+ /* @__PURE__ */ jsx(
45
+ Button,
46
+ {
47
+ "aria-controls": "templates-menu",
48
+ "aria-haspopup": "true",
49
+ onClick: handleOpenMenu,
50
+ children: t("templateEditorToolbarTemplatesMenu.button")
68
51
  }
69
- },
70
- options.map((option, index) => /* @__PURE__ */ React.createElement(
71
- MenuItem,
52
+ ),
53
+ /* @__PURE__ */ jsx(
54
+ Menu,
72
55
  {
73
- key: index,
74
- selected: isSelectedOption(option),
75
- "aria-selected": isSelectedOption(option),
76
- onClick: () => handleSelectOption(option)
77
- },
78
- option.label
79
- ))
80
- ));
56
+ id: "templates-menu",
57
+ anchorEl,
58
+ open: Boolean(anchorEl),
59
+ onClose: handleCloseMenu,
60
+ getContentAnchorEl: null,
61
+ anchorOrigin: {
62
+ vertical: "bottom",
63
+ horizontal: "left"
64
+ },
65
+ transformOrigin: {
66
+ vertical: "top",
67
+ horizontal: "left"
68
+ },
69
+ PaperProps: {
70
+ className: classes.menu
71
+ },
72
+ children: options.map((option, index) => /* @__PURE__ */ jsx(
73
+ MenuItem,
74
+ {
75
+ selected: isSelectedOption(option),
76
+ "aria-selected": isSelectedOption(option),
77
+ onClick: () => handleSelectOption(option),
78
+ children: option.label
79
+ },
80
+ index
81
+ ))
82
+ }
83
+ )
84
+ ] });
81
85
  }
82
86
 
83
87
  export { TemplateEditorToolbarTemplatesMenu };