{"version":3,"sources":["webpack:///./src/shared/components/VersionInfoOSS.tsx","webpack:///./src/shared/thunks/app.ts","webpack:///./src/shared/components/VersionInfo.tsx","webpack:///./src/shared/selectors/app.ts","webpack:///./src/onboarding/components/SigninForm.tsx","webpack:///./src/onboarding/containers/SigninPage.tsx"],"names":["dispatch","versionInfo","async","url","response","fetch","info","json","version","commit","err","console","error","href","slice","render","className","style","this","props","widthPixels","width","timeZone","state","app","persisted","theme","navbarMode","navBarState","getVersionInfo","hasUpdatedTimeRangeInVEO","ephemeral","getPresentationMode","inPresentationMode","getFlowsCTA","flowsCTA","explorer","tasks","alerts","username","password","handleUsername","e","target","value","setState","handlePassword","handleSignIn","notify","resp","auth","status","Error","data","message","handleRedirect","onSubmit","Row","Column","widthXS","Twelve","Element","label","name","onChange","size","Medium","autoFocus","testID","id","type","Password","Footer","color","Primary","text","Submit","history","location","returnTo","URLSearchParams","search","get","replace","push","mdtp","constructor","super","Loading","allowed","window","pathname","Done","componentWillUnmount","dismissAllNotifications","loading","spinnerComponent","Notifications","Body","alignItems","Center","cloud","VersionInfo"],"mappings":"6JA+Ce,MAlCY,KACzB,MAAMA,EAAW,cAEXC,EAAc,YAAY,KAMhC,OAJA,qBAAU,KACRD,GCdkCE,MACpCF,IAEA,IACE,MAAMG,EAAM,GAAG,uBAITC,QAAiBC,MAAMF,GACvBG,QAAaF,EAASG,OAS5B,OAPAP,EACE,YAAe,CACbQ,QAASF,EAAKE,QACdC,OAAQH,EAAKG,UAIVH,EACP,MAAOI,GACPC,QAAQC,MAAMF,GACdV,EACE,YAAe,CACbQ,QAAS,MACTC,OAAQ,eDTX,CAACT,IAGF,oC,YACYC,EAAYO,QACtB,6B,UACQ,IACR,8BACE,uBACEK,KAAM,+CAA+CZ,EAAYQ,UAEhER,EAAYQ,QAAUR,EAAYQ,OAAOK,MAAM,EAAG,KAGvD,6B,YACU,IACV,8BACE,uBACED,KAAM,yCAAyC,IAAQC,MAAM,EAAG,MAE/D,IAAQA,MAAM,EAAG,OE3B5B,MAAM,UAAoB,gBACjBC,SACL,OACE,yBACEC,UAAU,eACVC,MAAOC,KAAKD,MAAK,cACL,gBAEZ,2BACG,IACC,oC,WACW,IAAS,IACjB,KAAW,8B,IAAQ,IAAQH,MAAM,EAAG,G,MAGvC,kBAAC,EAAc,QAObG,YACV,GAAIC,KAAKC,MAAMC,YACb,MAAO,CAACC,MAAO,GAAGH,KAAKC,MAAMC,kBAKpB,O,iCCjCf,8OAAO,MAAME,EAAYC,GACvBA,EAAMC,IAAIC,UAAUH,UAAa,QAEtBI,EAASH,GACpBA,EAAMC,IAAIC,UAAUC,OAAU,OAEnBC,EAAcJ,GACzBA,EAAMC,IAAIC,UAAUG,aAAgB,YAEzBC,EAAkBN,GAC7BA,EAAMC,IAAIC,UAAUxB,aAAgB,GAEzB6B,EAA4BP,GACvCA,EAAMC,IAAIO,UAAUD,2BAA4B,EAErCE,EAAuBT,GAClCA,EAAMC,IAAIO,UAAUE,qBAAsB,EAE/BC,EAAeX,GAC1BA,EAAMC,IAAIC,UAAUU,UACnB,CAACC,UAAU,EAAMC,OAAO,EAAMC,QAAQ,I,mICczC,IAAM,EAAN,cAAyB,gBAAzB,c,oBACS,KAAAf,MAAe,CACpBgB,SAAU,GACVC,SAAU,IAoDJ,KAAAC,eAAkBC,IACxB,MAAMH,EAAWG,EAAEC,OAAOC,MAC1B1B,KAAK2B,SAAS,CAACN,cAET,KAAAO,eAAkBJ,IACxB,MAAMF,EAAWE,EAAEC,OAAOC,MAC1B1B,KAAK2B,SAAS,CAACL,cAGT,KAAAO,aAAe7C,UACrB,MAAM,OAAC8C,GAAU9B,KAAKC,OAChB,SAACoB,EAAQ,SAAEC,GAAYtB,KAAKK,MAElC,IACE,MAAM0B,QAAa,qBAAW,CAACC,KAAM,CAACX,WAAUC,cAEhD,GAAoB,MAAhBS,EAAKE,OACP,MAAM,IAAIC,MAAMH,EAAKI,KAAKC,SAG5BpC,KAAKqC,iBACL,MAAO3C,GACP,MAAM0C,EAAU,cAAI1C,EAAO,oBAAqB,IAGhD,GAAe,MAFA,cAAIA,EAAO,kBAAmB,IAO3C,YAJAoC,EAAO,OAAD,wBACD,KAAgB,CACnBM,QAAS,mDAKb,IAAKA,EAEH,YADAN,EAAO,KAITA,EAAO,OAAD,wBAAK,KAAgB,CAAEM,eAvF1BvC,SACL,MAAM,SAACwB,EAAQ,SAAEC,GAAYtB,KAAKK,MAClC,OACE,kBAAC,OAAI,CAACiC,SAAUtC,KAAK6B,cACnB,kBAAC,OAAI,KACH,kBAAC,OAAKU,IAAG,KACP,kBAAC,OAAKC,OAAM,CAACC,QAAS,UAAQC,QAC5B,kBAAC,OAAKC,QAAO,CAACC,MAAM,YAClB,kBAAC,QAAK,CACJC,KAAK,WACLnB,MAAOL,EACPyB,SAAU9C,KAAKuB,eACfwB,KAAM,gBAAcC,OACpBC,WAAW,EACXC,OAAO,WACPC,GAAG,YAIT,kBAAC,OAAKX,OAAM,CAACC,QAAS,UAAQC,QAC5B,kBAAC,OAAKC,QAAO,CAACC,MAAM,YAClB,kBAAC,QAAK,CACJC,KAAK,WACLnB,MAAOJ,EACPwB,SAAU9C,KAAK4B,eACfmB,KAAM,gBAAcC,OACpBI,KAAM,YAAUC,SAChBH,OAAO,WACPC,GAAG,eAIT,kBAAC,OAAKX,OAAM,CAACC,QAAS,UAAQC,QAC5B,kBAAC,OAAKY,OAAM,KACV,kBAAC,SAAM,CACLC,MAAO,iBAAeC,QACtBC,KAAK,UACLV,KAAM,gBAAcC,OACpBI,KAAM,aAAWM,OACjBP,GAAG,sBAoDXd,iBACN,MAAM,QAACsB,EAAO,SAAEC,GAAY5D,KAAKC,MAE3B4D,EADS,IAAIC,gBAAgBF,EAASG,QACpBC,IAAI,YAExBH,EACFF,EAAQM,QAAQJ,GAEhBF,EAAQO,KAAK,OAzGb,EAAU,aADf,KACK,GA8GN,MAAMC,EAAO,CACXrC,OAAQ,KAKK,MAFG,YAAQ,KAAMqC,EAEjB,CAAU,YAAW,I,iCC1HpC,IAAM,EAAN,cAAyB,gBACvBC,YAAYnE,GACVoE,MAAMpE,GAEND,KAAKK,MAAQ,CACX4B,OAAQ,kBAAgBqC,SAGrBtF,0BACL,MAAM+C,QAAa,mBAAS,IAE5B,GAAoB,MAAhBA,EAAKE,OACP,MAAM,IAAIC,MAAM,iCAGlB,MAAM,QAACqC,GAAWxC,EAAKI,KAEvB,GAAIoC,EACFvE,KAAKC,MAAM0D,QAAQO,KAAK,sBACnB,GAAI,IAET,YADAM,OAAOZ,SAASa,SAAW,KAI7BzE,KAAK2B,SAAS,CAACM,OAAQ,kBAAgByC,OAGzCC,uBACE3E,KAAKC,MAAM2E,0BAGN/E,SACL,OACE,kBAAC,mBAAgB,CACfgF,QAAS7E,KAAKK,MAAM4B,OACpB6C,iBAAkB,kBAAC,gBAAa,OAEhC,kBAACC,EAAA,EAAa,MACd,kBAAC,aAAU,KACT,kBAAC,aAAU,CAACjF,UAAU,cAAcoD,OAAO,eACzC,kBAAC,QAAK,CAACpD,UAAU,sBACf,kBAAC,QAAMkF,KAAI,CAACC,WAAY,aAAWC,QACjC,yBAAKpF,UAAU,sBACf,kBAAC,oBAAiB,CAChBqF,OAAO,EACPrF,UAAU,sBAEZ,kBAAC,EAAU,OAEb,kBAAC,QAAMwD,OAAM,KACX,kBAAC8B,EAAA,EAAW,aAlDtB,EAAU,aADf,I,2CACK,GA4DN,MAAM,EAAO,CACXR,wBAAA,KAGI,EAAY,YAAQ,KAAM,GAEjB,YAAU,YAAW","file":"78.a8bcdf1568.js","sourcesContent":["// Libraries\nimport React, {FC, useEffect} from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\n\n// Constants\nimport {GIT_SHA} from 'src/shared/constants'\n\n// Thunks\nimport {fetchVersionInfo} from 'src/shared/thunks/app'\n\n// Selectors\nimport {getVersionInfo} from 'src/shared/selectors/app'\n\nconst VersionInfoOSS: FC = () => {\n const dispatch = useDispatch()\n\n const versionInfo = useSelector(getVersionInfo)\n\n useEffect(() => {\n dispatch(fetchVersionInfo())\n }, [dispatch])\n\n return (\n <>\n InfluxDB {versionInfo.version}\n
\n Server:{' '}\n \n \n {versionInfo.commit && versionInfo.commit.slice(0, 7)}\n \n \n
\n Frontend:{' '}\n \n \n {GIT_SHA.slice(0, 7)}\n \n \n \n )\n}\n\nexport default VersionInfoOSS\n","import {Dispatch} from 'redux'\nimport {getAPIBasepath} from 'src/utils/basepath'\nimport {VersionInfo} from 'src/types'\nimport {Action, setVersionInfo} from 'src/shared/actions/app'\n\nexport const fetchVersionInfo = () => async (\n dispatch: Dispatch\n): Promise => {\n try {\n const url = `${getAPIBasepath()}/health`\n // Have to use fetch here since the oats client doesn't work with the servers option in the oss swagger\n // Ex: https://github.com/influxdata/openapi/blob/35d734671d05ba9337dd6fbd8bb5c6085482011b/contracts/oss.yml#L5887\n // The \"/health\" endpoint is actually not prefixed by \"api/v2\", but the oats client has the prefix\n const response = await fetch(url)\n const info = await response.json()\n\n dispatch(\n setVersionInfo({\n version: info.version,\n commit: info.commit,\n })\n )\n\n return info\n } catch (err) {\n console.error(err)\n dispatch(\n setVersionInfo({\n version: 'n/a',\n commit: 'n/a',\n })\n )\n }\n}\n","// Libraries\nimport React, {PureComponent} from 'react'\n\n// Components\nimport VersionInfoOSS from 'src/shared/components/VersionInfoOSS'\n\n// Constants\nimport {VERSION, GIT_SHA, CLOUD} from 'src/shared/constants'\n\ninterface Props {\n widthPixels?: number\n}\n\nclass VersionInfo extends PureComponent {\n public render() {\n return (\n \n

\n {CLOUD ? (\n <>\n Version {VERSION}{' '}\n {GIT_SHA && ({GIT_SHA.slice(0, 7)})}\n \n ) : (\n \n )}\n

\n \n )\n }\n\n private get style() {\n if (this.props.widthPixels) {\n return {width: `${this.props.widthPixels}px`}\n }\n }\n}\n\nexport default VersionInfo\n","import {\n AppState,\n TimeZone,\n Theme,\n NavBarState,\n VersionInfo,\n FlowsCTA,\n} from 'src/types'\n\nexport const timeZone = (state: AppState): TimeZone =>\n state.app.persisted.timeZone || ('Local' as TimeZone)\n\nexport const theme = (state: AppState): Theme =>\n state.app.persisted.theme || ('dark' as Theme)\n\nexport const navbarMode = (state: AppState): NavBarState =>\n state.app.persisted.navBarState || ('collapsed' as NavBarState)\n\nexport const getVersionInfo = (state: AppState): VersionInfo =>\n state.app.persisted.versionInfo || ({} as VersionInfo)\n\nexport const hasUpdatedTimeRangeInVEO = (state: AppState): boolean =>\n state.app.ephemeral.hasUpdatedTimeRangeInVEO || false\n\nexport const getPresentationMode = (state: AppState): boolean =>\n state.app.ephemeral.inPresentationMode || false\n\nexport const getFlowsCTA = (state: AppState): FlowsCTA =>\n state.app.persisted.flowsCTA ||\n ({explorer: true, tasks: true, alerts: true} as FlowsCTA)\n","// Libraries\nimport React, {PureComponent, ChangeEvent} from 'react'\nimport {withRouter, RouteComponentProps} from 'react-router-dom'\nimport {connect, ConnectedProps} from 'react-redux'\nimport {get} from 'lodash'\n\n// Components\nimport {Form, Input, Button, Grid} from '@influxdata/clockface'\n\n// APIs\nimport {postSignin} from 'src/client'\n\n// Actions\nimport {notify as notifyAction} from 'src/shared/actions/notifications'\n\n// Constants\nimport * as copy from 'src/shared/copy/notifications'\n\n// Types\nimport {\n Columns,\n InputType,\n ButtonType,\n ComponentSize,\n ComponentColor,\n} from '@influxdata/clockface'\n\n// Decorators\nimport {ErrorHandling} from 'src/shared/decorators/errors'\n\nexport interface OwnProps {\n notify: typeof notifyAction\n}\n\ninterface State {\n username: string\n password: string\n}\n\ntype ReduxProps = ConnectedProps\ntype Props = OwnProps & RouteComponentProps & ReduxProps\n\n@ErrorHandling\nclass SigninForm extends PureComponent {\n public state: State = {\n username: '',\n password: '',\n }\n\n public render() {\n const {username, password} = this.state\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n\n private handleUsername = (e: ChangeEvent): void => {\n const username = e.target.value\n this.setState({username})\n }\n private handlePassword = (e: ChangeEvent): void => {\n const password = e.target.value\n this.setState({password})\n }\n\n private handleSignIn = async (): Promise => {\n const {notify} = this.props\n const {username, password} = this.state\n\n try {\n const resp = await postSignin({auth: {username, password}})\n\n if (resp.status !== 204) {\n throw new Error(resp.data.message)\n }\n\n this.handleRedirect()\n } catch (error) {\n const message = get(error, 'response.data.msg', '')\n const status = get(error, 'response.status', '')\n\n if (status === 401) {\n notify({\n ...copy.SigninError,\n message: 'Login failed: username or password is invalid',\n })\n return\n }\n\n if (!message) {\n notify(copy.SigninError)\n return\n }\n\n notify({...copy.SigninError, message})\n }\n }\n\n private handleRedirect() {\n const {history, location} = this.props\n const params = new URLSearchParams(location.search)\n const returnTo = params.get('returnTo')\n\n if (returnTo) {\n history.replace(returnTo)\n } else {\n history.push('/')\n }\n }\n}\n\nconst mdtp = {\n notify: notifyAction,\n}\n\nconst connector = connect(null, mdtp)\n\nexport default connector(withRouter(SigninForm))\n","// Libraries\nimport React, {PureComponent} from 'react'\nimport {withRouter, RouteComponentProps} from 'react-router-dom'\nimport {connect, ConnectedProps} from 'react-redux'\n\n// APIs\nimport {getSetup} from 'src/client'\n\n// Actions\nimport {dismissAllNotifications} from 'src/shared/actions/notifications'\n\n// Components\nimport {ErrorHandling} from 'src/shared/decorators/errors'\nimport SigninForm from 'src/onboarding/components/SigninForm'\nimport {\n SpinnerContainer,\n TechnoSpinner,\n Panel,\n AlignItems,\n InfluxDBCloudLogo,\n FunnelPage,\n AppWrapper,\n} from '@influxdata/clockface'\nimport {RemoteDataState} from 'src/types'\nimport VersionInfo from 'src/shared/components/VersionInfo'\nimport Notifications from 'src/shared/components/notifications/Notifications'\n\n// Constants\nimport {CLOUD, CLOUD_SIGNIN_PATHNAME} from 'src/shared/constants'\n\ninterface State {\n status: RemoteDataState\n}\n\ntype ReduxProps = ConnectedProps\ntype Props = RouteComponentProps & ReduxProps\n@ErrorHandling\nclass SigninPage extends PureComponent {\n constructor(props) {\n super(props)\n\n this.state = {\n status: RemoteDataState.Loading,\n }\n }\n public async componentDidMount() {\n const resp = await getSetup({})\n\n if (resp.status !== 200) {\n throw new Error('There was an error onboarding')\n }\n\n const {allowed} = resp.data\n\n if (allowed) {\n this.props.history.push('/onboarding/0')\n } else if (CLOUD) {\n window.location.pathname = CLOUD_SIGNIN_PATHNAME\n return\n }\n\n this.setState({status: RemoteDataState.Done})\n }\n\n componentWillUnmount() {\n this.props.dismissAllNotifications()\n }\n\n public render() {\n return (\n }\n >\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nconst mdtp = {\n dismissAllNotifications,\n}\n\nconst connector = connect(null, mdtp)\n\nexport default connector(withRouter(SigninPage))\n"],"sourceRoot":""}