{\n constructor(props: Props) {\n super(props);\n const { gcomDashboardId } = this.props.queryParams;\n if (gcomDashboardId) {\n this.getGcomDashboard({ gcomDashboard: gcomDashboardId });\n return;\n }\n }\n\n componentWillUnmount() {\n this.props.cleanUpAction({ cleanupAction: (state) => (state.importDashboard = initialImportDashboardState) });\n }\n\n // Do not display upload file list\n fileListRenderer = (file: DropzoneFile, removeFile: (file: DropzoneFile) => void) => null;\n\n onFileUpload = (result: string | ArrayBuffer | null) => {\n reportInteraction(IMPORT_STARTED_EVENT_NAME, {\n import_source: 'json_uploaded',\n });\n\n try {\n this.props.importDashboardJson(JSON.parse(String(result)));\n } catch (error) {\n if (error instanceof Error) {\n appEvents.emit(AppEvents.alertError, ['Import failed', 'JSON -> JS Serialization failed: ' + error.message]);\n }\n return;\n }\n };\n\n getDashboardFromJson = (formData: { dashboardJson: string }) => {\n reportInteraction(IMPORT_STARTED_EVENT_NAME, {\n import_source: 'json_pasted',\n });\n\n this.props.importDashboardJson(JSON.parse(formData.dashboardJson));\n };\n\n getGcomDashboard = (formData: { gcomDashboard: string }) => {\n reportInteraction(IMPORT_STARTED_EVENT_NAME, {\n import_source: 'gcom',\n });\n\n let dashboardId;\n const match = /(^\\d+$)|dashboards\\/(\\d+)/.exec(formData.gcomDashboard);\n if (match && match[1]) {\n dashboardId = match[1];\n } else if (match && match[2]) {\n dashboardId = match[2];\n }\n\n if (dashboardId) {\n this.props.fetchGcomDashboard(dashboardId);\n }\n };\n\n renderImportForm() {\n const styles = importStyles(this.props.theme);\n\n const GcomDashboardsLink = () => (\n \n grafana.com/dashboards\n \n );\n\n return (\n <>\n \n \n \n \n
\n \n \n
\n \n \n
\n >\n );\n }\n\n pageNav: NavModelItem = {\n text: 'Import dashboard',\n subTitle: 'Import dashboard from file or Grafana.com',\n };\n\n render() {\n const { loadingState } = this.props;\n\n return (\n \n \n {loadingState === LoadingState.Loading && (\n \n \n \n \n \n )}\n {[LoadingState.Error, LoadingState.NotStarted].includes(loadingState) && this.renderImportForm()}\n {loadingState === LoadingState.Done && }\n \n \n );\n }\n}\n\nconst DashboardImportUnConnected = withTheme2(UnthemedDashboardImport);\nconst DashboardImport = connector(DashboardImportUnConnected);\nDashboardImport.displayName = 'DashboardImport';\nexport default DashboardImport;\n\nconst importStyles = stylesFactory((theme: GrafanaTheme2) => {\n return {\n option: css`\n margin-bottom: ${theme.spacing(4)};\n max-width: 600px;\n `,\n labelWithLink: css`\n max-width: 100%;\n `,\n linkWithinLabel: css`\n font-size: inherit;\n `,\n };\n});\n"],"names":["initialDeleteLibraryPanelModalState","searchCompleted","deleteLibraryPanelModalReducer","state","action","d","getConnectedDashboards","libraryPanel","dispatch","dashboards","api","DeleteLibraryPanelModal","onDismiss","onConfirm","styles","dashboardTitles","loadingState","asyncDispatch","connected","done","Modal","LoadingIndicator","HasConnectedDashboards","Confirm","Button","suffix","message","title","i","LibraryPanelCardComponent","onClick","onDelete","showSecondaryActions","showDeletionModal","setShowDeletionModal","onDeletePanel","panelPlugin","config","PanelTypeCard","FolderLink","LibraryPanelCardSkeleton","rootProps","getStyles","LibraryPanelCard","Link","Icon","theme","searchForLibraryPanels","args","findPluginMeta","pluginMeta","filterLibraryPanels","libraryPanels","isWidget","pluginMetaList","matchingPluginMeta","subscription","dataObservable","libraryPanelsResult","filteredLibraryPanels","perPage","page","totalCount","err","deleteLibraryPanel","uid","e","asyncDispatcher","initialLibraryPanelsViewState","initSearch","changePage","libraryPanelsViewReducer","numberOfPages","getModalStyles","validateDashboardJson","json","dashboard","tag","validateGcomDashboard","gcomDashboard","match","validateTitle","newTitle","folderUid","error","validateUid","value","existingDashboard","ImportDashboardLibraryPanelsList","inputs","label","description","folderName","Field","input","index","libraryPanelIndex","ImportDashboardForm","register","errors","control","getValues","uidReset","initialFolderUid","onUidReset","onCancel","onSubmit","watch","isSubmitted","setSubmitted","watchDataSources","watchFolder","newLibraryPanels","existingLibraryPanels","Legend","Input","v","selectors","InputControl","ref","field","OldFolderPicker","dataSourceOption","current","DataSourcePicker","constantIndex","getButtonVariant","getButtonText","IMPORT_FINISHED_EVENT_NAME","mapStateToProps","searchObj","mapDispatchToProps","connector","ImportDashboardOverviewUnConnected","form","meta","source","folder","Form","ImportDashboardOverview","IMPORT_STARTED_EVENT_NAME","JSON_PLACEHOLDER","UnthemedDashboardImport","props","file","removeFile","result","formData","dashboardId","gcomDashboardId","importStyles","GcomDashboardsLink","TextLink","FileDropzone","Label","TextArea","Page","Spinner","DashboardImportUnConnected","DashboardImport","stylesFactory"],"sourceRoot":""}