1"use strict";(self.webpackChunksmarpshare_frontend=self.webpackChunksmarpshare_frontend||[]).push([[8480],{8480:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{OnboardingPassword:()=>OnboardingPassword,OnboardingPasswordRenderer:()=>OnboardingPasswordRenderer});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(96540),react_redux__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(49924),redux__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(82960),_SharedReactComponents_password_components_password_input__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(20065),src_api__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(56433),src_app_modules_app_onboarding_components_layout__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(87020),src_app_modules_app_onboarding_onboarding_submit_button_onboarding_submit_button__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(99284),src_utils_password_utils_password_utils__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(9563),src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(20219),src_app_react_common_hooks_use_get_text__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(87914),src_app_react_common_hooks_use_session__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(84280),src_utils_tracking_utils_tracking_utils__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(48458),src_store_onboarding_effects__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(46022),src_app_modules_app_util_string_utils__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(73225);const OnboardingPasswordRenderer=({nextState})=>{const{gettext}=(0,src_app_react_common_hooks_use_get_text__WEBPACK_IMPORTED_MODULE_7__.z)(),{session}=(0,src_app_react_common_hooks_use_session__WEBPACK_IMPORTED_MODULE_8__.w)(),[isSending,setIsSending]=react__WEBPACK_IMPORTED_MODULE_0__.useState(!1),[password,setPassword]=react__WEBPACK_IMPORTED_MODULE_0__.useState(""),[passwordFeedbackOptions,setPasswordFeedbackOptions]=react__WEBPACK_IMPORTED_MODULE_0__.useState(src_utils_password_utils_password_utils__WEBPACK_IMPORTED_MODULE_6__.A.getPasswordFeedbackOptions()),isSubmitButtonDisabled=!password||isSending||!!passwordFeedbackOptions.errorMessage;react__WEBPACK_IMPORTED_MODULE_0__.useEffect((()=>{src_utils_tracking_utils_tracking_utils__WEBPACK_IMPORTED_MODULE_9__.A.event("OB Password")}),[]);return(null==session?void 0:session.company)?react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_modules_app_onboarding_components_layout__WEBPACK_IMPORTED_MODULE_4__.N,null,react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_modules_app_onboarding_components_layout__WEBPACK_IMPORTED_MODULE_4__.Y,{className:"onboarding-password"},react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_modules_app_onboarding_components_layout__WEBPACK_IMPORTED_MODULE_4__.Y.Title,null,gettext("Set your password")),react__WEBPACK_IMPORTED_MODULE_0__.createElement(_SharedReactComponents_password_components_password_input__WEBPACK_IMPORTED_MODULE_2__.y,{label:gettext("Password"),highlightColor:"#ED5D40",passwordFeedbackOptions,setPassword:(password,options)=>{setPassword(password),setPasswordFeedbackOptions(options)}}),react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_modules_app_onboarding_components_layout__WEBPACK_IMPORTED_MODULE_4__.Y.Footer,null,react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_modules_app_onboarding_onboarding_submit_button_onboarding_submit_button__WEBPACK_IMPORTED_MODULE_5__._,{isSending,buttonDisable:isSubmitButtonDisabled,label:{label:gettext("Continue")},submitCallback:async e=>{var _a;if(e.preventDefault(),!isSending){if(password.length<src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_12__.EO||password.length>src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_12__.Ab){const newPasswordFeedbackOptions={...passwordFeedbackOptions,errorMessage:(0,src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_12__.AL)(gettext)};return setPasswordFeedbackOptions(newPasswordFeedbackOptions),void src_utils_tracking_utils_tracking_utils__WEBPACK_IMPORTED_MODULE_9__.A.event("OB Password error",{errorMessage:(0,src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_12__.AL)(gettext)})}setIsSending(!0);try{await src_api__WEBPACK_IMPORTED_MODULE_3__.i$.userPasswordCreate({newPassword:password}),nextState()}catch(err){const errorMessage=null!==(_a=(0,src_app_modules_app_util_string_utils__WEBPACK_IMPORTED_MODULE_13__.fi)(err))&&void 0!==_a?_a:gettext("Unexpected error while setting a password"),newPasswordFeedbackOptions={...passwordFeedbackOptions,errorMessage};src_utils_tracking_utils_tracking_utils__WEBPACK_IMPORTED_MODULE_9__.A.event("OB Password error",{errorMessage}),src_utils_tracking_utils_tracking_utils__WEBPACK_IMPORTED_MODULE_9__.A.error(errorMessage,"OnboardingPasswordRenderer.handleSubmitPassword",(0,src_app_modules_app_util_string_utils__WEBPACK_IMPORTED_MODULE_13__.hT)(err)),setPasswordFeedbackOptions(newPasswordFeedbackOptions)}setIsSending(!1)}}})))):null},OnboardingPassword=(0,react_redux__WEBPACK_IMPORTED_MODULE_1__.Ng)(null,(dispatch=>(0,redux__WEBPACK_IMPORTED_MODULE_11__.bindActionCreators)({nextState:src_store_onboarding_effects__WEBPACK_IMPORTED_MODULE_10__.VK},dispatch)))(OnboardingPasswordRenderer)},9563:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(20219);const getPasswordFeedbackOptions=()=>({errorMessage:"",firstBarClass:"strength-bar-normal",secondBarClass:"strength-bar-normal",thirdBarClass:"strength-bar-normal",forthBarClass:"strength-bar-normal",passwordStrength:"",strengthStatusClass:"password-status-normal"}),isPseudorandom=password=>password.toLowerCase().split("").filter(((char,index,word)=>word.indexOf(char)===index)).length>=5,getCardinality=password=>{let result=0;return/[a-z]/g.test(password)&&(result+=26),/[A-Z]/g.test(password)&&(result+=26),/[0-9]/g.test(password)&&(result+=10),/[^a-zA-Z0-9]/g.test(password)&&(result+=32),result},caseInsensitiveContains=(target,substr)=>target.toLowerCase().indexOf(substr.toLowerCase())>-1,getStrength=(password,gettext)=>{const result={score:0,warning:""};if(!isPseudorandom(password))return result.warning=gettext("Please, use a few words, avoid common phrases, keyboard patterns and repeats."),result;const cardinality=getCardinality(password),entropy=password.length*Math.log(cardinality)/Math.log(2);return entropy>=50&&entropy<60?(result.score=1,result):entropy>=60&&entropy<70?(result.score=2,result):entropy>=70&&entropy<80?(result.score=3,result):entropy>=80?(result.score=4,result):(result.warning=gettext("Please, use a few words, avoid common phrases, keyboard patterns and repeats."),result)},checkLength=(password,gettext)=>password.length<src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_0__.EO?{score:-1,warning:gettext("Please, use at least 10 characters.")}:password.length>src_app_modules_app_shared_react_components_password_components_password_util__WEBPACK_IMPORTED_MODULE_0__.Ab?{score:-2,warning:""}
1:null,checkSmarpTerms=(password,gettext)=>caseInsensitiveContains(password,"Haiiloshare")||caseInsensitiveContains(password,"Haiilo")?{score:-3,warning:gettext('Please, don\'t use "Haiilo" or "Haiiloshare" as part of a password.')}:null,checkCompanyNameAndSubdomain=(password,user,gettext)=>user&&user.companyName&&user.companySubdomain&&(user.companyName.length>3&&caseInsensitiveContains(password,user.companyName)||user.companySubdomain.length>3&&caseInsensitiveContains(password,user.companySubdomain))?{score:-3,warning:gettext("Please, don't use your company or site name as a password.")}:null,checkUserEmailAndName=(password,user,gettext)=>{if(!user)return null;const email=user.email||"",firstName=user.firstName||"",lastName=user.lastName||"",emailName=email.split("@")[0];return emailName.length>3&&caseInsensitiveContains(password,emailName)||firstName.length>3&&caseInsensitiveContains(password,firstName)||lastName.length>3&&caseInsensitiveContains(password,lastName)?{score:-3,warning:gettext("Please, don't use your name or email address as a password.")}:null},checkSanity=(password,user,gettext)=>checkLength(password,gettext)||checkSmarpTerms(password,gettext)||checkCompanyNameAndSubdomain(password,user,gettext)||checkUserEmailAndName(password,user,gettext)||{score:0,warning:""},getFeedback=(response,gettext)=>{const result={errorMessage:"",firstBarClass:"strength-bar-normal",secondBarClass:"strength-bar-normal",thirdBarClass:"strength-bar-normal",forthBarClass:"strength-bar-normal",passwordStrength:"",strengthStatusClass:"password-status-normal"};return result.errorMessage=response.warning||"",-2===response.score&&(result.passwordStrength=gettext("Too long"),result.strengthStatusClass="password-status-normal"),-1===response.score&&(result.passwordStrength=gettext("Too short"),result.strengthStatusClass="password-status-normal"),0!==response.score&&-3!==response.score||(result.passwordStrength=gettext("Very weak"),result.strengthStatusClass="password-status-normal"),1===response.score&&(result.firstBarClass="strength-bar-red",result.passwordStrength=gettext("Weak"),result.strengthStatusClass="password-status-red"),2===response.score&&(result.firstBarClass=result.secondBarClass="strength-bar-orange",result.passwordStrength=gettext("Fair"),result.strengthStatusClass="password-status-orange"),3===response.score&&(result.firstBarClass=result.secondBarClass=result.thirdBarClass="strength-bar-yellow",result.passwordStrength=gettext("Good"),result.strengthStatusClass="password-status-yellow"),4===response.score&&(result.firstBarClass=result.secondBarClass=result.thirdBarClass=result.forthBarClass="strength-bar-green",result.passwordStrength=gettext("Strong"),result.strengthStatusClass="password-status-green"),result},__WEBPACK_DEFAULT_EXPORT__={getPasswordFeedbackOptions,isPseudorandom,getCardinality,caseInsensitiveContains,getStrength,checkLength,checkSmarpTerms,checkCompanyNameAndSubdomain,checkUserEmailAndName,checkSanity,getFeedback,fetchStrength:(password,gettext,user)=>{let result=checkSanity(password,user,gettext);return result.score>=0&&(result=getStrength(password,gettext)),Promise.resolve(getFeedback(result,gettext))}}},20065:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{y:()=>PasswordInput});var _emotion_styled__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(59295),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(96540),src_app_react_common_hooks_use_get_text__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(87914),src_app_react_common_hooks_use_session__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(84280),src_utils_password_utils_password_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(9563);const Button=_emotion_styled__WEBPACK_IMPORTED_MODULE_0__.A.button` 2 display: inline; 3 4 &.no-padding { 5 padding: 0; 6 } 7 8 &:active, 9 &:focus, 10 &:hover { 11 background-color: #ffffff; 12 } 13`,Container=_emotion_styled__WEBPACK_IMPORTED_MODULE_0__.A.div` 14 display: flex; 15 justify-content: space-between; 16 align-items: center; 17`,PasswordInput=({label,highlightColor,passwordFeedbackOptions,setPassword})=>{const[inputType,setInputType]=react__WEBPACK_IMPORTED_MODULE_1__.useState("password"),[password,setLocalPassword]=react__WEBPACK_IMPORTED_MODULE_1__.useState(""),{gettext}=(0,src_app_react_common_hooks_use_get_text__WEBPACK_IMPORTED_MODULE_2__.z)(),{session:{user}}=(0,src_app_react_common_hooks_use_session__WEBPACK_IMPORTED_MODULE_3__.w)(),isPasswordShown="text"===inputType;return react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"form-group input-section"},react__WEBPACK_IMPORTED_MODULE_1__.createElement(Container,{className:"password-captions-container"},react__WEBPACK_IMPORTED_MODULE_1__.createElement("label",{className:"password-caption",htmlFor:"new-password","aria-hidden":!0},label),react__WEBPACK_IMPORTED_MODULE_1__.createElement(Button,{"aria-flowto":"new-password",tabIndex:0,className:"password-visibility-button
17no-padding",onClick:()=>{setInputType(isPasswordShown?"password":"text")},style:{color:highlightColor},"data-testid":"password-visibility-button"},isPasswordShown?react__WEBPACK_IMPORTED_MODULE_1__.createElement("span",{className:"password-toggle primary"},react__WEBPACK_IMPORTED_MODULE_1__.createElement("i",{className:"i-eye-slash icon-padding"}),gettext("Hide")):react__WEBPACK_IMPORTED_MODULE_1__.createElement("span",{className:"password-toggle primary"},react__WEBPACK_IMPORTED_MODULE_1__.createElement("i",{className:"i-eye icon-padding"}),gettext("Show")))),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"row"},react__WEBPACK_IMPORTED_MODULE_1__.createElement("input",{tabIndex:1,id:"new-password",className:"form-control",type:inputType,placeholder:"Password",value:password,onChange:async e=>{const password=e.target.value;setLocalPassword(password);const resultObject=await src_utils_password_utils_password_utils__WEBPACK_IMPORTED_MODULE_4__.A.fetchStrength(password,gettext,user);setPassword(password,resultObject)},role:"textbox"})),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{role:"alert"},react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"row password-security-container"},react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:`col col_1_of_4 ${passwordFeedbackOptions.firstBarClass}`}),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:`col col_1_of_4 ${passwordFeedbackOptions.secondBarClass}`}),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:`col col_1_of_4 ${passwordFeedbackOptions.thirdBarClass}`}),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:`col col_1_of_4 ${passwordFeedbackOptions.forthBarClass}`})),react__WEBPACK_IMPORTED_MODULE_1__.createElement("span",{className:passwordFeedbackOptions.strengthStatusClass},gettext(passwordFeedbackOptions.passwordStrength)),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"error-message"},gettext(passwordFeedbackOptions.errorMessage))),react__WEBPACK_IMPORTED_MODULE_1__.createElement("span",{className:"help-block"},gettext("Passwords must be at least 10 characters long and they canât contain your"),react__WEBPACK_IMPORTED_MODULE_1__.createElement("span",{style:{fontStyle:"italic"},className:"password-info-options"},` ${gettext("name, email address, company name.")}`)))}},20219:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{AL:()=>PASSWORD_LENGTH_ERROR,Ab:()=>PASSWORD_LENGTH_MAX,EO:()=>PASSWORD_LENGTH_MIN});const PASSWORD_LENGTH_MIN=10,PASSWORD_LENGTH_MAX=128,PASSWORD_LENGTH_ERROR=gettext=>gettext("Sorry, the password should be minimum 10 and maximum 128 characters long.")},72031:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{z:()=>LogoReact});var react=__webpack_require__(96540),image_utils=__webpack_require__(99438),dist=__webpack_require__(71287);__webpack_require__(56433);const getCompanyLogo=session=>session&&session.company&&session.company.ImageUrlLogin?(0,image_utils.x8)(session.company.ImageUrlLogin,dist.JRo.FitIn):"/images/haiilo-logo-black.png";var use_get_text=__webpack_require__(87914),use_session=__webpack_require__(84280);const LogoReact=()=>{var _a;const{gettext}=(0,use_get_text.z)(),{session}=(0,use_session.w)(),logoAlternativeText=(null===(_a=null==session?void 0:session.company)||void 0===_a?void 0:_a.name)?`${session.company.name} ${gettext("logo")}`:gettext("Company logo");return react.createElement("img",{className:"company-logo",src:getCompanyLogo(session),alt:logoAlternativeText})}},87020:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{N:()=>OnboardingContainer,Y:()=>OnboardingCard});var classnames__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(32485),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(96540),src_app_modules_core_logo_logo_react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(72031);class OnboardingCard extends react__WEBPACK_IMPORTED_MODULE_1__.Component{render(){return react__WEBPACK_IMPORTED_MODULE_1__.createElement("main",null,react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:classnames__WEBPACK_IMPORTED_MODULE_0__("onboarding-mainbox",this.props.className)},this.props.children))}}OnboardingCard.Title=({children})=>react__WEBPACK_IMPORTED_MODULE_1__.createElement("h1",{className:"cat-h2 cat-mt-s"},children),OnboardingCard.Footer=({children})=>react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"onboarding-button-container"},children),OnboardingCard.AcknowledgeTitle=({children})=>react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"greeting-aknowledgement-title"},children);
17const OnboardingContainer=({fakeOnboarding=!1,children})=>{const containerStyle=fakeOnboarding?{backgroundImage:'url("/images/onboarding-bg.jpg")',backgroundSize:"cover"}:{};return react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"new-onboarding-page",style:containerStyle},react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"onboarding-modalbox new-onboarding-card"},!fakeOnboarding&&react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",{className:"title navbar-revamp-onboarding"},react__WEBPACK_IMPORTED_MODULE_1__.createElement(src_app_modules_core_logo_logo_react__WEBPACK_IMPORTED_MODULE_2__.z,null)),react__WEBPACK_IMPORTED_MODULE_1__.createElement("div",null,children)))}},99284:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{_:()=>OnboardingSubmitButton});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(96540),src_app_react_common_components_get_text__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(59247);const OnboardingSubmitButton=({isSending,buttonDisable,label,submitCallback,...other})=>react__WEBPACK_IMPORTED_MODULE_0__.createElement("button",{className:"onboarding-button",disabled:buttonDisable,onClick:submitCallback,...other},isSending?react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_react_common_components_get_text__WEBPACK_IMPORTED_MODULE_1__.q,null,"Sending..."):label.label)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.