{"version":3,"sources":["_platform/src/components/FormHint/FormHint.js","_platform/src/components/FormPlaceholder/FormPlaceholder.js","_platform/src/components/FormHelpText/FormHelpText.js","_platform/src/components/FormLabel/FormLabel.js","_platform/src/utils/formValidation.js","_platform/src/utils/sanitiseHTML.js","_platform/src/components/FormInput/FormInput.js","_platform/src/components/StatusMessage/StatusMessage.js","_platform/src/components/FormCheckbox/FormCheckbox.js","_platform/src/components/LoginForm/LoginForm.js"],"names":["Hint","props","react__WEBPACK_IMPORTED_MODULE_1___default","a","createElement","className","concat","children","defaultProps","StyledHint","styled","_templateObject","theme","customInputHintColor","gray600","customInputHintFontSize","react__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","react__WEBPACK_IMPORTED_MODULE_0___default","n","_smooth_ui_core_sc__WEBPACK_IMPORTED_MODULE_1__","FormPlaceholder","_ref","inline","py","pl","undefined","FormHelpText","StyledFormHelpText","htmlValue","dangerouslySetInnerHTML","__html","sanitiseHTML","div","Indicator","span","withConfig","displayName","componentId","settingsApp","formPreferOptionalIndicator","CustomLabel","react__WEBPACK_IMPORTED_MODULE_2___default","_StyledLabel","htmlFor","isRequiredIndicator","isRequired","preferOptional","optionalText","formIndicatorOptionalText","requiredText","formIndicatorRequiredText","withTheme","d","__webpack_exports__","isValid","required","touched","valid","value","dompurify__WEBPACK_IMPORTED_MODULE_0__","dompurify__WEBPACK_IMPORTED_MODULE_0___default","dompurify","addHook","node","setAttribute","hasAttribute","StyledInput","inputInline","p","Object","_codebuild_output_src4027493836_src_Patties_Extravaganza_LORI_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_5__","react__WEBPACK_IMPORTED_MODULE_7___default","_smooth_ui_core_sc__WEBPACK_IMPORTED_MODULE_9__","css","_templateObject2","primary","FormInput","_this$props","this","input","immutable","meta","helpText","label","hint","iHaveSuppliedAnExternalLabel","rest","_components_FormHelpText_FormHelpText__WEBPACK_IMPORTED_MODULE_10__","_components_FormLabel_FormLabel__WEBPACK_IMPORTED_MODULE_12__","name","_components_FormHint_FormHint__WEBPACK_IMPORTED_MODULE_11__","_components_FormPlaceholder_FormPlaceholder__WEBPACK_IMPORTED_MODULE_13__","assign","control","id","error","Component","_components_MessageBox_MessageBox__WEBPACK_IMPORTED_MODULE_1__","StatusMessage","variant","CustomFormCheck","FormCheck","CustomCheckbox","Checkbox","customCheckboxDisabledBackground","gray300","_templateObject3","StyledCheckbox","disabled","useHelpTextAsLabel","_codebuild_output_src4027493836_src_Patties_Extravaganza_LORI_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","_smooth_ui_core_sc__WEBPACK_IMPORTED_MODULE_4__","_components_FormHelpText_FormHelpText__WEBPACK_IMPORTED_MODULE_5__","toString","_components_FormPlaceholder_FormPlaceholder__WEBPACK_IMPORTED_MODULE_7__","_components_FormHint_FormHint__WEBPACK_IMPORTED_MODULE_6__","defaultFormLabels","labelUserName","labelPassword","labelRememberMe","LoginForm","initialValues","onSubmitForm","status","_props$theme$settings","labels","_codebuild_output_src4027493836_src_Patties_Extravaganza_LORI_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","formLabels","react_final_form__WEBPACK_IMPORTED_MODULE_3__","onSubmit","render","handleSubmit","submitting","method","component","type","validate","placeholder","loginRememberMeEnabled","loginUseSessionStorage","FormCheckbox","_components_StatusMessage_StatusMessage__WEBPACK_IMPORTED_MODULE_8__","statusDetails","message","_components_Button_Button__WEBPACK_IMPORTED_MODULE_5__","loginPasswordResetShow","passwordResetEnabled","passwordResetPagePath","react_router_dom__WEBPACK_IMPORTED_MODULE_9__","to","loginPasswordResetLabel"],"mappings":"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","file":"static/js/loginForm.c81acf65.chunk.js","sourcesContent":["/**\n * FormInput Hint\n *\n * Used to display a hint above the input box\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@smooth-ui/core-sc';\n\nconst Hint = props => (\n
{props.children}
\n);\n\nHint.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n};\n\nHint.defaultProps = {\n className: '',\n};\n\nconst StyledHint = styled(Hint)`\n color: ${props => props.theme.customInputHintColor || props.theme.gray600};\n font-size: ${props => props.theme.customInputHintFontSize || '0.875em'};\n margin-bottom: 0.5em;\n`;\n\nexport default StyledHint;\n","/**\n * FormPlaceholder\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@smooth-ui/core-sc';\n\nconst FormPlaceholder = ({ children, inline }) => (\n \n {children}\n \n);\n\nFormPlaceholder.propTypes = {\n children: PropTypes.node,\n inline: PropTypes.bool,\n};\n\nFormPlaceholder.defaultProps = {\n children: undefined,\n inline: undefined,\n};\n\nexport default FormPlaceholder;\n","/**\n * Form Fields Help Text\n *\n * Used to display a help text above the input label\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@smooth-ui/core-sc';\nimport sanitiseHTML from '_platform/src/utils/sanitiseHTML';\n\nconst FormHelpText = props => (\n \n {props.htmlValue && (\n \n )}\n {props.children}\n \n);\n\nFormHelpText.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n htmlValue: PropTypes.string,\n};\n\nFormHelpText.defaultProps = {\n children: undefined,\n className: '',\n htmlValue: undefined,\n};\n\nconst StyledFormHelpText = styled.div`\n &.helptext-as-label {\n display: inline;\n\n > div {\n display: inline;\n }\n }\n\n :not(.helptext-as-label) {\n margin-bottom: 0.5em;\n margin-top: 1.5em;\n }\n`;\n\nexport default FormHelpText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Label, styled, withTheme } from '@smooth-ui/core-sc';\nimport 'styled-components/macro'; // For the CSS prop on elements\n\nconst Indicator = styled.span`\n ${props =>\n props.theme.settingsApp.formPreferOptionalIndicator\n ? `\n font-weight: normal;\n padding-left: 0.25em;\n `\n : 'color: red;'}\n`;\n\nconst whichIndicator = (\n isRequired,\n preferOptional,\n optionalText,\n requiredText\n) => {\n if (isRequired === undefined) return null;\n\n if (isRequired && !preferOptional) {\n return requiredText;\n }\n if (!isRequired && preferOptional) {\n return optionalText;\n }\n return null;\n};\n\nconst CustomLabel = props => {\n return (\n \n {props.children}:\n \n {whichIndicator(\n props.isRequiredIndicator,\n props.theme.settingsApp.formPreferOptionalIndicator,\n props.theme.settingsApp.formIndicatorOptionalText,\n props.theme.settingsApp.formIndicatorRequiredText\n )}\n \n \n );\n};\n\nCustomLabel.propTypes = {\n children: PropTypes.node.isRequired,\n htmlFor: PropTypes.string.isRequired,\n isRequiredIndicator: PropTypes.bool,\n theme: PropTypes.object.isRequired,\n};\n\nCustomLabel.defaultProps = {\n isRequiredIndicator: undefined,\n};\n\nexport default withTheme(CustomLabel);\n","/**\n * Form Validation utilities\n */\n\n// Return `valid` value as expected by control inputs Smooth-UI\nexport const isValid = (touched, valid) => {\n if (!touched) return undefined;\n if (valid) return true;\n if (!valid) return false;\n};\n\n// Required\nexport const required = value => (value ? undefined : 'Required');\n\n// Required with custom message\n// Usage: field.required && requiredWithMessage(field.requiredMessage || 'Required')\n// Check if the field is required, if so issue requiredWithMessage.\n// IMPORTANT: Must provide fallback message, otherwise the method won't run\nexport const requiredWithMessage = message => value =>\n value ? undefined : message;\n\n// Email address - matching the API\nexport const validEmail = value =>\n /\\b[a-zA-Z0-9._%\\-+NULL]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,6}\\b/.test(value) // eslint-disable-line no-useless-escape\n ? undefined\n : 'Please enter a valid email address';\n\n// Numbers only\nexport const validNumber = value =>\n isNaN(value) ? 'Must be a number' : undefined;\n\n// Minimum value\n// Usage: minValue(20)\nexport const minValue = min => value =>\n isNaN(value) || value >= min ? undefined : `Must be greater than ${min}`;\n\n// Compose validators\n// Usage: composeValidators(required, validNumber, minValue(20))\nexport const composeValidators = (...validators) => value =>\n validators.reduce((error, validator) => error || validator(value), undefined);\n","import dompurify from 'dompurify';\n\n// Add a hook to make all links open a new window\ndompurify.addHook('afterSanitizeAttributes', function(node) {\n // set all elements owning target to target=_blank\n if ('target' in node) {\n node.setAttribute('target', '_blank');\n // prevent https://www.owasp.org/index.php/Reverse_Tabnabbing\n node.setAttribute('rel', 'noopener noreferrer');\n }\n // set non-HTML/MathML links to xlink:show=new\n if (\n !node.hasAttribute('target') &&\n (node.hasAttribute('xlink:href') || node.hasAttribute('href'))\n ) {\n node.setAttribute('xlink:show', 'new');\n }\n});\n\nexport default dompurify.sanitize;\n","/**\n * FormInput\n */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ControlFeedback,\n css,\n FormGroup,\n Input,\n styled,\n} from '@smooth-ui/core-sc';\nimport FormHelpText from '../../components/FormHelpText/FormHelpText'; // _platform\nimport FormHint from '../../components/FormHint/FormHint'; // _platform\nimport FormLabel from '../../components/FormLabel/FormLabel'; // _platform\nimport FormPlaceholder from '../../components/FormPlaceholder/FormPlaceholder'; // _platform\nimport { isValid } from '../../utils/formValidation'; // _platform\n\n// Prevent inputInline from being passed through to DOM\nconst StyledInput = styled(({ inputInline, ...p }) => )`\n ${props =>\n props.inputInline\n ? css`\n display: inline-block;\n width: auto;\n `\n : null}\n\n :hover {\n border-color: ${props =>\n props.valid === undefined ? props.theme.primary : undefined};\n }\n`;\n\nclass FormInput extends Component {\n render() {\n const {\n input,\n inputInline,\n immutable,\n meta,\n helpText,\n label,\n hint,\n iHaveSuppliedAnExternalLabel,\n isRequiredIndicator,\n ...rest\n } = this.props;\n\n if (\n process.env.NODE_ENV === 'development' &&\n !label &&\n !iHaveSuppliedAnExternalLabel\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n `Dev: FormInput '${input && input.name}' does not have label specified`\n );\n }\n\n return (\n \n {helpText && }\n {label ? (\n \n {label}\n \n ) : null}\n {hint ? {hint} : null}\n {immutable && {input.value}}\n {!immutable && (\n \n )}\n\n {meta.touched && !meta.valid ? (\n {meta.error}\n ) : null}\n \n );\n }\n}\n\nFormInput.propTypes = {\n helpText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n hint: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n iHaveSuppliedAnExternalLabel: PropTypes.bool,\n immutable: PropTypes.bool,\n input: PropTypes.object.isRequired,\n inputInline: PropTypes.bool,\n isRequiredIndicator: PropTypes.bool,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n meta: PropTypes.object.isRequired,\n};\n\nFormInput.defaultProps = {\n helpText: undefined,\n hint: '',\n iHaveSuppliedAnExternalLabel: undefined,\n immutable: false,\n inputInline: false,\n isRequiredIndicator: undefined,\n label: undefined,\n};\n\nexport default FormInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MessageBox from '../../components/MessageBox/MessageBox'; // _platform\n\nconst StatusMessage = props => {\n if (!props.children) return null;\n\n return props.variant === 'success' || props.variant === 'error' ? (\n \n ) : null;\n};\n\nStatusMessage.propTypes = {\n variant: PropTypes.string,\n};\n\nStatusMessage.defaultProps = {\n variant: undefined,\n};\n\nexport default StatusMessage;\n","/**\n * FormCheckbox\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ControlFeedback,\n FormGroup,\n FormCheck,\n Checkbox,\n FormCheckLabel,\n styled,\n withTheme,\n} from '@smooth-ui/core-sc';\nimport FormHelpText from '../../components/FormHelpText/FormHelpText'; // _platform\nimport FormHint from '../../components/FormHint/FormHint'; // _platform\nimport FormPlaceholder from '../../components/FormPlaceholder/FormPlaceholder'; // _platform\nimport { isValid } from '../../utils/formValidation'; // _platform\n\nconst CustomFormCheck = styled(FormCheck)`\n align-items: flex-start;\n`;\n\nconst CustomCheckbox = styled(Checkbox)`\n /* Reset z-index to prevent showing over dropdowns and select elements */\n justify-content: flex-start;\n min-width: 25px;\n z-index: 0;\n\n &:hover > .sui-checkbox-content {\n border-color: ${props =>\n props.valid === undefined ? props.theme.primary : undefined};\n }\n\n input:disabled + .sui-checkbox-content {\n background-color: ${props =>\n props.theme.customCheckboxDisabledBackground || props.theme.gray300};\n }\n`;\n\nconst Indicator = styled.span`\n ${props =>\n props.theme.settingsApp.formPreferOptionalIndicator\n ? `\n font-weight: normal;\n padding-left: 0.25em;\n `\n : 'color: red;'}\n`;\n\nconst whichIndicator = (\n isRequired,\n preferOptional,\n optionalText,\n requiredText\n) => {\n if (isRequired === undefined) return null;\n\n if (isRequired && !preferOptional) {\n return requiredText;\n }\n if (!isRequired && preferOptional) {\n return optionalText;\n }\n return null;\n};\n\nconst StyledCheckbox = ({\n input,\n inline,\n disabled,\n immutable,\n isRequiredIndicator,\n meta,\n helpText,\n label,\n hint,\n useHelpTextAsLabel,\n ...rest\n}) => (\n \n {helpText && !useHelpTextAsLabel && }\n \n {!immutable && (\n \n )}\n \n {useHelpTextAsLabel ? (\n \n ) : (\n label\n )}\n \n {whichIndicator(\n isRequiredIndicator,\n rest.theme.settingsApp.formPreferOptionalIndicator,\n rest.theme.settingsApp.formIndicatorOptionalText,\n rest.theme.settingsApp.formIndicatorRequiredText\n )}\n \n \n {immutable && (\n \n {input.value === 'true' || input.value === true ? ' Yes' : ' No'}\n \n )}\n \n {hint ? {hint} : null}\n {meta.touched && !meta.valid ? (\n {meta.error}\n ) : null}\n \n);\n\nStyledCheckbox.propTypes = {\n disabled: PropTypes.bool,\n helpText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n hint: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n immutable: PropTypes.bool,\n inline: PropTypes.bool,\n input: PropTypes.object.isRequired,\n isRequiredIndicator: PropTypes.bool,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n meta: PropTypes.object.isRequired,\n useHelpTextAsLabel: PropTypes.bool,\n};\n\nStyledCheckbox.defaultProps = {\n disabled: false,\n helpText: undefined,\n hint: '',\n immutable: false,\n inline: false,\n isRequiredIndicator: undefined,\n useHelpTextAsLabel: undefined,\n};\n\nexport default withTheme(StyledCheckbox);\n","/**\n * LoginForm\n *\n * This component relies on a LoginProvider-like component to supply data and\n * the submit methods via props.\n *\n * Usage:\n *\n * \n * \n * \n *\n * disableMeta on the LoginProvider, and formLabels on this component are optional props\n */\n\n// Core imports\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Style, SEO and settings\nimport { withTheme } from '@smooth-ui/core-sc';\n\n// Component features\nimport { Form, Field } from 'react-final-form';\nimport { required } from '../../utils/formValidation'; // _platform\nimport Button, { ButtonBlock } from '../../components/Button/Button'; // _platform\nimport FormCheckbox from '../../components/FormCheckbox/FormCheckbox'; // _platform\nimport FormInput from '../../components/FormInput/FormInput'; // _platform\nimport StatusMessage from '../../components/StatusMessage/StatusMessage'; // _platform\nimport { Link } from 'react-router-dom';\n\n// Default form labels\n// These will be _shallow merged_ with props.formLabels (if provided)\n// Usage (from parent component):\n// \nconst defaultFormLabels = {\n labelUserName: 'User Name / Email',\n labelPassword: 'Password',\n labelRememberMe: 'Remember Login',\n};\n\nconst LoginForm = props => {\n const {\n initialValues,\n onSubmitForm,\n status,\n theme: { settingsApp = {} },\n } = props;\n const labels = { ...defaultFormLabels, ...props.formLabels }; // Merge props with default values\n const { labelUserName, labelPassword, labelRememberMe } = labels;\n // We could avoid merging into the labels const, then destructuring it, however leaving as 2 steps for legibility\n\n return (\n
\n (\n
\n \n {/* TODO: Form validation */}\n \n {!!settingsApp.loginRememberMeEnabled &&\n !settingsApp.loginUseSessionStorage && (\n \n )}\n\n \n {status.statusDetails.message ||\n (status.status === 'error' && (\n

\n Login Failed. Please remember that passwords are case\n sensitive.\n

\n ))}\n
\n\n \n \n \n \n )}\n />\n {settingsApp.loginPasswordResetShow &&\n settingsApp.passwordResetEnabled &&\n settingsApp.passwordResetPagePath && (\n
\n \n {settingsApp.loginPasswordResetLabel || 'Reset Password'}\n \n
\n )}\n
\n );\n};\nLoginForm.propTypes = {\n formLabels: PropTypes.shape({\n labelUserName: PropTypes.string,\n labelPassword: PropTypes.string,\n labelRememberMe: PropTypes.string,\n }),\n initialValues: PropTypes.object,\n onSubmitForm: PropTypes.func.isRequired,\n status: PropTypes.object.isRequired,\n theme: PropTypes.object,\n};\n\nLoginForm.defaultProps = {\n formLabels: defaultFormLabels,\n initialValues: {},\n theme: { settingsApp: {} },\n};\n\nexport default withTheme(LoginForm);\n"],"sourceRoot":""}