{"version":3,"sources":["src/components/sy-site-sign-in-wall/scss/index.scss?tag=sy-site-sign-in-wall&encapsulation=shadow","src/components/sy-site-sign-in-wall/sign-in-wall.tsx"],"names":["indexCss","SydleSiteSignInWall","[object Object]","hostRef","this","contextsAvailability","makeContextAvailability","nameInputValue","emailInputValue","emailTokenInputValue","noEmail","emailPhase","disabled","handleSocialLogin","socialNetwork","socialMediaButtons","querySelectorAll","forEach","el","style","display","sySiteLoginDidSubmit","emit","type","data","handleEmailLogin","eventObj","emailRegex","validEmail","test","emailSignInBtn","querySelector","name","email","setError","t","props","resolve","lang","changeEmailPhase","sySiteLoginDidClose","dialog","open","sySiteLoginDidOpen","close","msg","msgName","errMsg","errMsgName","h","class","setContexts","all","privacyPolicyText","policy","interpolation","escapeValue","Host","ref","hide-footer","hide-close","onSyDialogDidClose","closeComponent","getTitle","_a","supportedNetworks","includes","undefined","onClick","src","getAssetPath","alt","elipseLoader","_b","_c","onSyInputDidChange","e","detail","value","label","error","onSySiteOtpInputDidChange","innerHTML","Consumes"],"mappings":"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","sourcesContent":["@import 'tokens';\n@import 'classes';\n","import { Component, Host, h, getAssetPath, Prop, Event, EventEmitter, Method, State, Listen, Watch } from '@stencil/core';\nimport { Consumes } from '@sydle/sydle-ui';\nimport { makeContextAvailability } from '../../utils/contextsAvailability';\n\n/**\n * TODO\n * - list of supported social networks\n * - fields to use in email default phase\n */\n@Component({\n tag: 'sy-site-sign-in-wall',\n styleUrl: './scss/index.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SydleSiteSignInWall {\n private contextsAvailability = makeContextAvailability(['t', 'lang']);\n\n @Consumes('i18next:t') @State() t;\n @Consumes('i18next:language') @State() lang: string;\n\n private emailSignInBtn?: HTMLElement;\n private socialMediaButtons?: HTMLElement;\n private dialog: HTMLSyDialogElement;\n\n private nameInputValue: any = null;\n private emailInputValue: any = null;\n\n /**\n * Email token value\n */\n @State() emailTokenInputValue: any = null;\n\n /** */\n @State() errMsg: string;\n\n /** */\n @State() errMsgName: string;\n\n /**\n * Defines if the sign-in wall not supports email signin\n */\n @Prop() noEmail = false;\n\n /**\n * Defines the fase os email signin between initial information or token\n */\n @State() emailPhase: 'default' | 'token' | 'error' = 'default';\n\n /**\n * Controls if sign in buttons are disabled or not\n */\n @State() disabled = false;\n\n /**\n * Supported social networks list\n */\n @Prop() supportedNetworks: Array;\n\n /**\n * Emmitted when some login button is pressed\n */\n @Event({ bubbles: true }) sySiteLoginDidSubmit: EventEmitter<{\n type: 'social' | 'email' | 'token';\n data: any;\n }>;\n\n /**\n * Emmitted when sy-dialog is closed\n */\n @Event({ bubbles: true, composed: true }) sySiteLoginDidClose: EventEmitter;\n\n /**\n * Emmitted when sy-dialog is open\n */\n @Event({ bubbles: true }) sySiteLoginDidOpen: EventEmitter;\n\n @Watch('t')\n @Watch('lang')\n setContexts(): void {\n if (this.t) {\n this.contextsAvailability.props.t.resolve();\n }\n if (this.lang) {\n this.contextsAvailability.props.lang.resolve();\n }\n }\n\n /**\n * Always disable sign in buttons after clicking to avoid multiple event emissions.\n * Sign in steps following event emission should be handled by component user.\n */\n @Listen('sySiteLoginDidSubmit')\n submitHandler(): void {\n this.disabled = true;\n }\n\n @Listen('syDialogDidClose')\n closeComponent(): void {\n this.changeEmailPhase('default');\n this.sySiteLoginDidClose.emit();\n }\n\n /**\n * Opens the login dialog\n */\n @Method()\n async open(): Promise {\n this.dialog.open();\n this.sySiteLoginDidOpen.emit();\n }\n\n /**\n * Closes the login dialog\n */\n @Method()\n async close(): Promise {\n this.dialog.close();\n this.changeEmailPhase('default');\n this.sySiteLoginDidClose.emit();\n }\n\n /**\n * Changes email phase and enables signing in\n */\n @Method()\n async changeEmailPhase(emailPhase: 'default' | 'token' | 'error'): Promise {\n this.emailPhase = emailPhase;\n (this.emailSignInBtn.querySelector('.button-text') as HTMLElement).style.display = 'inline';\n (this.emailSignInBtn.querySelector('.sy-loader-ellipsis') as HTMLElement).style.display = 'none';\n this.disabled = false;\n }\n\n /**\n * Set Error\n */\n @Method()\n async setError(msg?: string, msgName?: string): Promise {\n msg ? (this.errMsg = msg) : null;\n msgName ? (this.errMsgName = msgName) : null;\n }\n\n private handleSocialLogin = (socialNetwork: string) => {\n if (this.disabled) return;\n this.socialMediaButtons.querySelectorAll(`.btn-${socialNetwork} .button-text`).forEach((el: HTMLElement) => (el.style.display = 'none'));\n this.socialMediaButtons.querySelectorAll(`.btn-${socialNetwork} .sy-loader-ellipsis`).forEach((el: HTMLElement) => (el.style.display = 'inline-block'));\n this.sySiteLoginDidSubmit.emit({\n type: 'social',\n data: socialNetwork,\n });\n };\n\n private handleEmailLogin = () => {\n if (this.disabled) return;\n let eventObj;\n if (this.emailPhase === 'default') {\n const emailRegex = /^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$/gm;\n const validEmail = emailRegex.test(this.emailInputValue);\n if (validEmail && this.nameInputValue) {\n (this.emailSignInBtn.querySelector('.button-text') as HTMLElement).style.display = 'none';\n (this.emailSignInBtn.querySelector('.sy-loader-ellipsis') as HTMLElement).style.display = 'inline-block';\n eventObj = {\n type: 'email',\n data: {\n name: this.nameInputValue,\n email: this.emailInputValue,\n },\n };\n } else {\n if (!this.nameInputValue) {\n this.setError('', this.t('NAME_ERROR'));\n }\n if (!validEmail) {\n this.setError(this.t('EMAIL_ERROR'));\n }\n return;\n }\n } else if (this.emailPhase === 'token') {\n eventObj = {\n type: 'token',\n data: this.emailTokenInputValue,\n };\n }\n this.sySiteLoginDidSubmit.emit(eventObj);\n };\n\n private elipseLoader(style = { display: 'none' }) {\n return (\n
\n
\n
\n
\n
\n
\n );\n }\n\n private getTitle() {\n if (this.emailPhase === 'error') {\n return 'ERROR_CONTINUE';\n } else if (this.emailPhase === 'token') {\n return 'TOKEN_CONTINUE';\n } else {\n return 'LOGIN_CONTINUE';\n }\n }\n\n async componentWillRender() {\n this.setContexts();\n await this.contextsAvailability.all;\n }\n\n render() {\n const privacyPolicyText = this.t('PRIVACY_POLICY_TEXT', {\n policy: `${this.t('POLICY')}`,\n interpolation: { escapeValue: false },\n });\n\n return (\n \n (this.dialog = el)}\n hide-footer\n hide-close\n onSyDialogDidClose={() => {\n this.closeComponent();\n }}\n >\n
\n
\n {this.t(this.getTitle())}\n
\n\n {this.emailPhase === 'default' ? (\n
(this.socialMediaButtons = el as HTMLElement)} class=\"social-media-buttons\">\n {this.supportedNetworks?.includes('linkedin') && (\n this.handleSocialLogin('linkedin')} class=\"btn-linkedin\">\n
\n \n \"Linkedin\"\n \n
\n \n LinkedIn\n \n {this.elipseLoader()}\n
\n
\n
\n )}\n\n {this.supportedNetworks?.includes('google') && (\n this.handleSocialLogin('google')} class=\"btn-google\">\n
\n
\n \"Google\"\n
\n
\n \n Google\n \n {this.elipseLoader()}\n
\n
\n
\n )}\n\n {this.supportedNetworks?.includes('facebook') && (\n this.handleSocialLogin('facebook')} class=\"btn-facebook\">\n
\n
\n \"Facebook\"\n
\n
\n \n Facebook\n \n {this.elipseLoader()}\n
\n
\n
\n )}\n
\n ) : null}\n\n {!this.noEmail && this.emailPhase !== 'error' ? (\n
\n {this.emailPhase === 'default' ? (\n
\n
{this.t('CONTINUE_WITH_EMAIL')}
\n (this.nameInputValue = e.detail.value)}\n label={this.t('FULL_NAME')}\n value={this.nameInputValue}\n error={this.errMsgName}\n >\n (this.emailInputValue = e.detail.value)}\n type=\"email\"\n name=\"email\"\n label=\"E-mail\"\n error={this.errMsg}\n value={this.emailInputValue}\n >\n
\n ) : (\n
\n {this.t('TOKEN_MESSAGE')}\n (this.emailTokenInputValue = e.detail.value)} value={this.emailTokenInputValue} />\n
\n )}\n (this.emailSignInBtn = el as HTMLElement)}\n disabled={this.disabled || (this.emailPhase === 'token' && !this.emailTokenInputValue) ? true : undefined}\n type=\"accent\"\n onClick={this.handleEmailLogin}\n >\n \n {this.t('BUTTON_LOGIN_CONTINUE')}\n \n {this.elipseLoader({ display: this.disabled && this.emailPhase === 'token' ? 'inline-block' : 'none' })}\n \n
\n ) : (\n
\n {this.errMsg}\n {\n this.setError(null);\n this.changeEmailPhase('default');\n }}\n >\n {this.t('BUTTON_LOGIN_CONTINUE')}\n \n
\n )}\n {this.emailPhase !== 'error' && (\n
\n \n
\n
\n {this.t('EMAIL_RECEIVEMENT')}\n
\n
\n \n
\n
\n
\n
\n )}\n
\n
\n \n
\n \n
\n );\n }\n}\n"]}