@salla.sa/twilight-components 2.12.46 → 2.12.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/salla-add-product-button_41.cjs.entry.js +27 -33
- package/dist/cjs/salla-add-product-button_41.cjs.entry.js.map +1 -1
- package/dist/collection/components/salla-login-modal/salla-login-modal.js +13 -12
- package/dist/collection/components/salla-login-modal/salla-login-modal.js.map +1 -1
- package/dist/components/salla-login-modal.js +10 -18
- package/dist/components/salla-login-modal.js.map +1 -1
- package/dist/components/salla-slider2.js +9 -3
- package/dist/components/salla-slider2.js.map +1 -1
- package/dist/esm/salla-add-product-button_41.entry.js +27 -33
- package/dist/esm/salla-add-product-button_41.entry.js.map +1 -1
- package/dist/esm-es5/salla-add-product-button_41.entry.js +1 -1
- package/dist/esm-es5/salla-add-product-button_41.entry.js.map +1 -1
- package/dist/twilight/{p-bfcc27c5.entry.js → p-3edccfea.entry.js} +2 -2
- package/dist/twilight/p-3edccfea.entry.js.map +1 -0
- package/dist/twilight/p-832e4372.system.js +1 -1
- package/dist/twilight/{p-58bb84ee.system.entry.js → p-f7b04f35.system.entry.js} +2 -2
- package/dist/twilight/p-f7b04f35.system.entry.js.map +1 -0
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-login-modal/salla-login-modal.d.ts +0 -1
- package/package.json +5 -5
- package/dist/components/keyboard_arrow_right.js +0 -13
- package/dist/components/keyboard_arrow_right.js.map +0 -1
- package/dist/twilight/p-58bb84ee.system.entry.js.map +0 -1
- package/dist/twilight/p-bfcc27c5.entry.js.map +0 -1
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h } from '@stencil/core';
|
|
5
5
|
import UserIcon from "../../assets/svg/user.svg";
|
|
6
|
-
import PhoneIcon from "../../assets/svg/phone.svg";
|
|
7
|
-
import EmailIcon from "../../assets/svg/mail.svg";
|
|
6
|
+
//import PhoneIcon from "../../assets/svg/phone.svg";
|
|
7
|
+
//import EmailIcon from "../../assets/svg/mail.svg";
|
|
8
8
|
import CameraIcon from '../../assets/svg/camera.svg';
|
|
9
|
-
import KeyboardArrowRightIcon from "../../assets/svg/keyboard_arrow_right.svg";
|
|
9
|
+
//import KeyboardArrowRightIcon from "../../assets/svg/keyboard_arrow_right.svg";
|
|
10
10
|
import ArrowRightIcon from "../../assets/svg/arrow-right.svg";
|
|
11
11
|
import Helper from '../../Helpers/Helper';
|
|
12
12
|
import { CustomFieldType } from './intefaces';
|
|
@@ -103,7 +103,13 @@ export class SallaLoginModal {
|
|
|
103
103
|
this.browseFromFiles = salla.lang.get('common.uploader.browse');
|
|
104
104
|
this.updateTranslations();
|
|
105
105
|
});
|
|
106
|
-
salla.event.on('login::open', (event) =>
|
|
106
|
+
salla.event.on('login::open', (event) => {
|
|
107
|
+
if (!this.isEmailAllowed && !this.isMobileAllowed) {
|
|
108
|
+
salla.logger.warn('Please enable atleast one login type to use this component.');
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.open(event);
|
|
112
|
+
});
|
|
107
113
|
salla.onReady(() => {
|
|
108
114
|
this.isEmailAllowed = salla.config.get('store.settings.auth.email_allowed', this.isEmailAllowed);
|
|
109
115
|
this.isMobileAllowed = salla.config.get('store.settings.auth.mobile_allowed', this.isMobileAllowed);
|
|
@@ -174,15 +180,12 @@ export class SallaLoginModal {
|
|
|
174
180
|
location.reload();
|
|
175
181
|
return;
|
|
176
182
|
}
|
|
177
|
-
if (this.
|
|
178
|
-
this.showTab(this.
|
|
183
|
+
if (this.isMobileAllowed) {
|
|
184
|
+
this.showTab(this.mobileTab);
|
|
179
185
|
}
|
|
180
186
|
else if (this.isEmailAllowed) {
|
|
181
187
|
this.showTab(this.emailTab);
|
|
182
188
|
}
|
|
183
|
-
else if (this.isMobileAllowed) {
|
|
184
|
-
this.showTab(this.mobileTab);
|
|
185
|
-
}
|
|
186
189
|
return this.modal.open();
|
|
187
190
|
}
|
|
188
191
|
showTab(tab, evt) {
|
|
@@ -257,9 +260,7 @@ export class SallaLoginModal {
|
|
|
257
260
|
render() {
|
|
258
261
|
// @ts-ignore
|
|
259
262
|
// @ts-ignore
|
|
260
|
-
return (h("salla-modal", { class: "s-login-modal", "modal-title": this.title, ref: modal => this.modal = modal, width: "xs" }, h("span", { slot: 'icon', class: "s-login-modal-header-icon", innerHTML: UserIcon }), h("div", { class: "s-login-modal-wrapper" }, this.
|
|
261
|
-
h("div", { class: this.generateTabClasses('home'), "data-name": "home", ref: tab => this.homeTab = tab }, h("p", { class: "s-login-modal-sub-title" }, salla.lang.get('blocks.header.select_login_way')), h("slot", { name: "before-login-type" }), h("a", { href: "#", class: "s-login-modal-main-btn", onClick: (evt) => this.showTab(this.mobileTab, evt) }, h("span", { class: "s-login-modal-main-btn-icon", innerHTML: PhoneIcon }), h("span", { class: "s-login-modal-main-btn-text" }, salla.lang.get('blocks.header.sms')), h("span", { class: "s-login-modal-main-btn-arrow", innerHTML: KeyboardArrowRightIcon })), h("a", { href: "#", class: "s-login-modal-main-btn", onClick: (evt) => this.showTab(this.emailTab, evt) }, h("span", { class: "s-login-modal-main-btn-icon", innerHTML: EmailIcon }), h("span", { class: "s-login-modal-main-btn-text" }, salla.lang.get('common.elements.email')), h("span", { class: "s-login-modal-main-btn-arrow", innerHTML: KeyboardArrowRightIcon })), h("slot", { name: "after-login-type" }))
|
|
262
|
-
: '', this.isMobileAllowed ?
|
|
263
|
+
return (h("salla-modal", { class: "s-login-modal", "modal-title": this.title, ref: modal => this.modal = modal, width: "xs" }, h("span", { slot: 'icon', class: "s-login-modal-header-icon", innerHTML: UserIcon }), h("div", { class: "s-login-modal-wrapper" }, this.isMobileAllowed ?
|
|
263
264
|
h("div", { class: this.generateTabClasses('login-phone'), "data-name": "login-phone", ref: tab => this.mobileTab = tab }, h("slot", { name: "before-login-mobile" }), h("form", { onSubmit: (event) => this.loginBySMS(event), method: "POST" }, h("label", { class: "s-login-modal-label" }, salla.lang.get('common.elements.mobile')), h("salla-tel-input", { tabindex: "0", ref: el => this.loginTelInput = el, onKeyDown: e => this.typing(e) }), h("salla-button", { class: "s-login-modal-enter-button", type: "submit", "loader-position": 'center', width: "wide", ref: b => this.smsBtn = b }, salla.lang.get('blocks.header.enter'))), this.isEmailAllowed ?
|
|
264
265
|
h("a", { href: "#", onClick: () => this.showTab(this.emailTab), class: "s-login-modal-link" }, salla.lang.get('blocks.header.login_by_email')) : '', h("slot", { name: "after-login-mobile" })) : '', this.isEmailAllowed ?
|
|
265
266
|
h("div", { class: this.generateTabClasses('login-email'), "data-name": "login-email", ref: tab => this.emailTab = tab }, h("slot", { name: "before-login-email" }), h("label", { class: "s-login-modal-label" }, salla.lang.get('common.elements.email')), h("form", { onSubmit: () => this.loginByEmail(event), method: "POST" }, h("input", { type: "email", ref: el => this.loginEmail = el, onKeyDown: e => this.typing(e), placeholder: "your@email.com", enterkeyhint: "next", class: "s-login-modal-input s-ltr" }), h("span", { class: "s-login-modal-error-message" }), h("salla-button", { "loader-position": 'center', width: "wide", onClick: () => this.loginByEmail(), ref: b => this.emailBtn = b }, salla.lang.get('blocks.header.enter'))), this.isMobileAllowed ?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-login-modal.js","sourceRoot":"","sources":["../../../src/components/salla-login-modal/salla-login-modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, h, Listen, Method, Prop, State} from '@stencil/core';\nimport UserIcon from \"../../assets/svg/user.svg\";\nimport PhoneIcon from \"../../assets/svg/phone.svg\";\nimport EmailIcon from \"../../assets/svg/mail.svg\";\nimport CameraIcon from '../../assets/svg/camera.svg';\nimport KeyboardArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowRightIcon from \"../../assets/svg/arrow-right.svg\";\nimport Helper from '../../Helpers/Helper';\nimport {CustomField, CustomFieldType} from './intefaces';\n\n/**\n * @slot footer - The footer of modal\n * @slot before-login-type - placeholder position\n * @slot after-login-type - placeholder position\n * @slot before-login-mobile - placeholder position\n * @slot after-login-mobile - placeholder position\n * @slot before-login-email - placeholder position\n * @slot after-login-email - placeholder position\n * @slot before-registration - placeholder position\n * @slot after-registration - placeholder position\n */\n@Component({\n tag: 'salla-login-modal',\n styleUrl: 'salla-login-modal.scss'\n})\n\n\nexport class SallaLoginModal {\n constructor() {\n\n this.title = this.host.title || salla.lang.get('blocks.header.login');\n this.host.removeAttribute('title');\n\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n\n salla.lang.onLoaded(() => {\n this.translationLoaded = true;\n this.title = salla.lang.get('blocks.header.login');\n this.dragAndDrop = salla.lang.get('common.uploader.drag_and_drop');\n this.browseFromFiles = salla.lang.get('common.uploader.browse');\n this.updateTranslations();\n });\n\n salla.event.on('login::open', (event) => this.open(event));\n salla.onReady( () => {\n this.isEmailAllowed = salla.config.get('store.settings.auth.email_allowed', this.isEmailAllowed);\n this.isMobileAllowed = salla.config.get('store.settings.auth.mobile_allowed', this.isMobileAllowed);\n this.isEmailRequired = salla.config.get('store.settings.auth.is_email_required', this.isEmailRequired);\n });\n }\n\n @Element() host: HTMLElement;\n /**\n * Does the merchant allow to login using email\n */\n @Prop({mutable: true}) isEmailAllowed: boolean ;\n /**\n * Does the merchant/current location for visitor allow to login using mobile, By default outside KSA is `false`\n */\n @Prop({mutable: true}) isMobileAllowed: boolean = true;\n /**\n * Does the merchant require registration with email & mobile\n */\n @Prop({mutable: true}) isEmailRequired: boolean = false;\n\n /**\n * Once the api verify success, it will be login the customer in web pages\n */\n @Prop({reflect: true}) supportWebAuth: boolean = true;\n\n private modal: HTMLSallaModalElement;\n private homeTab: HTMLDivElement;\n private mobileTab: HTMLDivElement;\n private emailTab: HTMLDivElement;\n private verifyTab: HTMLSallaVerifyElement;\n private registrationTab: HTMLDivElement;\n private regTelInput: HTMLSallaTelInputElement;\n private regEmail: HTMLInputElement;\n private customFieldsWrapper: HTMLDivElement;\n private loginTelInput: HTMLSallaTelInputElement;\n private loginEmail: HTMLInputElement;\n private firstName: HTMLInputElement;\n private lastName: HTMLInputElement;\n private smsBtn: HTMLSallaButtonElement;\n private emailBtn: HTMLSallaButtonElement;\n private regBtn: HTMLSallaButtonElement;\n\n @State() currentTabName = 'home'\n @State() regType: 'phone' | 'email' = 'phone';\n\n\n @State() translationLoaded: boolean = false;\n @State() currentPhone: string = '';\n @State() currentEmail: string = '';\n @State() title: string;\n @State() emailErrorMsg: string;\n @State() firstNameErrorMsg: string;\n @State() lastNameErrorMsg: string;\n\n @State() dragAndDrop: string = salla.lang.get('common.uploader.drag_and_drop');\n @State() browseFromFiles: string = salla.lang.get('common.uploader.browse');\n @State() customFields: CustomField[] = [];\n\n private customFieldsValues: Object = {};\n @State() uploadedImage: string = undefined;\n\n @Listen('verified', {target: 'window'})\n /**\n * @param {CustomEvent|{details:{case:'new_customer'|'authenticated', redirect_url:string|null}}} event\n */\n onVerified(event) {\n salla.log('verified', event);\n //there is a case when force login is activated & is new user, it will return case inside error key., so cover it.\n let verifyCase = event.detail?.data.case || event.detail?.error.case;\n if (!verifyCase) {\n salla.log('verified but without case!');\n return;\n }\n\n if (verifyCase === \"new_customer\") {\n this.customFields = event.detail?.data?.custom_fields || [];\n return this.showTab(this.registrationTab);\n }\n\n if (!salla.auth.canRedirect()) {\n salla.log('Will not auto redirect or reload, due to `salla.auth.canRedirect()`');\n this.modal.close();\n return;\n }\n\n if (event.detail.data.redirect_url) {\n return window.location.href = event.detail.data.redirect_url;\n }\n\n /**\n * we don't want to reload the page if this is not web auth\n * because we'll need the token in the page itself and its there\n * todo :: store the user data in storage for non-web auth and set the config.user from it\n */\n if (this.supportWebAuth) {\n window.location.reload();\n } else {\n this.modal.close();\n }\n }\n\n updateTranslations() {\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n this.modal?.setTitle(this.title);\n }\n\n /**\n * Open login component\n */\n @Method()\n // @ts-ignore\n async open(event = null) {\n // todo :: support change the settings from event details\n // if(event && event.hasOwnProperty('isEmailAllowed')){\n // this.isEmailAllowed = event?.isEmailAllowed;\n // }\n //\n // if(event && event.hasOwnProperty('isMobileAllowed')){\n // this.isMobileAllowed = event?.isMobileAllowed;\n // }\n\n /**\n * This is a workaround until we remove all the user objet from twig files\n * When the user is already login, let's reload the page\n */\n if(!salla.config.isGuest()){\n location.reload()\n return;\n }\n\n if (this.isEmailAllowed && this.isMobileAllowed) {\n this.showTab(this.homeTab);\n } else if (this.isEmailAllowed) {\n this.showTab(this.emailTab);\n } else if (this.isMobileAllowed) {\n this.showTab(this.mobileTab);\n }\n return this.modal.open();\n }\n\n private showTab(tab, evt?) {\n evt?.preventDefault();\n this.currentTabName = tab.getAttribute('data-name');\n\n // todo:: use better way for resize the modal\n // setTimeout(() => this.modal.querySelector('.s-login-modal-wrapper')?.setAttribute('style', 'height:' + tab?.scrollHeight + 'px'));\n\n if ([this.mobileTab, this.emailTab].includes(tab)) {\n this.regType = tab === this.mobileTab ? 'phone' : 'email';\n }\n\n const input = tab.querySelector('input[type=\"tel\"], input[type=\"email\"]');\n input && setTimeout(() => {\n input.focus();\n }, 100);\n\n this.modal?.setTitle(this.currentTabName === 'registration' ? salla.lang.get('common.titles.registration') : this.title);\n\n return this;\n }\n\n private typing = (e, submitMethod = null) => {\n const error = e.target.nextElementSibling;\n e.target.classList.remove('s-has-error');\n error?.classList.contains('s-login-modal-error-message') && (error.innerText = '');\n //it was sending two requests for send two verification requests\n submitMethod && e.key == 'Enter' && submitMethod();\n }\n\n private loginBySMS = async (event = null) => {\n event?.preventDefault();\n const {phone, countryCode, countryKey} = await this.loginTelInput.getValues();\n const isPhoneValid = await this.loginTelInput.isValid();\n if (!isPhoneValid) {\n return;\n }\n this.currentPhone = `${countryKey} ${phone}`;\n this.login(this.smsBtn, {type: 'mobile', phone: phone, country_code: countryCode});\n\n return false;\n }\n\n private loginByEmail = (event = null) => {\n event?.preventDefault();\n if (!Helper.isValidEmail(this.loginEmail.value)) {\n this.validateField(this.loginEmail, this.emailErrorMsg);\n return;\n }\n this.currentEmail = this.loginEmail.value;\n this.login(this.emailBtn, {type: 'email', email: this.loginEmail.value});\n }\n\n private login(btn: HTMLSallaButtonElement, data) {\n btn.load()\n .then(() => btn.disable())\n .then(() => salla.auth.api.login(data))\n .then(() => this.showTab(this.verifyTab))\n .then(() => this.verifyTab.open(data))\n .finally(() => btn.stop() && btn.enable());\n }\n\n private newUser = async () => {\n const {\n phone: regPhone,\n countryCode\n } = this.regType == \"email\" ? await this.regTelInput.getValues() : await this.loginTelInput.getValues(),\n emailValue = this.regEmail.value || this.loginEmail?.value\n await this.newUserValidation();\n await this.regBtn.load();\n await this.regBtn.disable();\n\n let data: any = {\n first_name: this.firstName.value,\n last_name: this.lastName.value,\n phone: regPhone || this.loginTelInput.phone,\n country_code: countryCode,\n verified_by: this.regType,\n custom_fields: this.customFieldsValues,\n };\n emailValue && (data = {...data, email: emailValue});\n this.verifyTab.getCode()\n .then(code => salla.auth.api.register({...data, code}))\n .then(() => salla.auth.canRedirect && window.location.reload())\n .catch((error) => {\n salla.logger.error(error);\n this.regBtn.stop() && this.regBtn.enable()\n })\n }\n\n private async newUserValidation() {\n const isLogByPhone = this.regType == \"phone\",\n isLogByEmail = this.regType == \"email\",\n emailValue = this.regEmail.value || (isLogByEmail && this.loginEmail.value),\n isEmailValid = Helper.isValidEmail(emailValue),\n isFirstNameValid = this.firstName.value.length > 0,\n isLastNameValid = this.lastName.value.length > 0,\n isPhoneValid = await this.regTelInput.isValid() || isLogByPhone && await this.loginTelInput.isValid(),\n emailValidation = (emailValue && isEmailValid) || (!emailValue && !this.isEmailRequired);\n\n // Custom Fields Validation\n var isCustomFieldValid = true;\n //we should make sure that there is text nodes between children\n this.customFieldsWrapper.childNodes\n .forEach((field: HTMLSallaFileUploadElement | HTMLInputElement) => {\n this.customFieldsValues[field.id] = field['value'];\n if (!field.required || this.customFieldsValues[field.id].length) {\n return;\n }\n isCustomFieldValid = false;\n const errorMsg: string = salla.lang.get('common.errors.field_required', {attribute: field.title});\n this.validateField(field, errorMsg)\n });\n\n if (emailValidation && isPhoneValid && isFirstNameValid && isLastNameValid && isCustomFieldValid) return;\n !isEmailValid && this.validateField(this.regEmail, this.emailErrorMsg);\n !isFirstNameValid && this.validateField(this.firstName, this.firstNameErrorMsg);\n !isLastNameValid && this.validateField(this.lastName, this.lastNameErrorMsg);\n throw 'Please insert required fields';\n }\n\n private getFilepondPlaceholder() {\n return `<div class=\"s-login-modal-filepond-placeholder\"><span class=\"s-login-modal-filepond-placeholder-icon\">${CameraIcon}</span><p class=\"s-login-modal-filepond-placeholder-text\">${this.dragAndDrop}</p> <span class=\"filepond--label-action\">${this.browseFromFiles}</span></div>`\n }\n\n // eslint-disable-next-line @stencil/own-methods-must-be-private\n validateField(field: HTMLInputElement | HTMLSallaFileUploadElement, errorMsg: string) {\n field.classList.add('s-has-error');\n field.nextElementSibling['innerText'] = '* ' + errorMsg;\n }\n\n generateTabClasses(tabName) {\n return {\n 's-login-modal-tab': tabName !== 'registration' && tabName !== 'otp',\n \"s-hidden\": this.currentTabName !== tabName,\n \"s-show\": this.currentTabName === tabName,\n 's-login-modal-unactive': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName !== tabName,\n 's-login-modal-active': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName === tabName\n }\n }\n\n generateRegClasses(regType) {\n return {\n \"mb-1.5\": true,\n \"s-hidden\": this.regType === regType\n }\n }\n\n render() {\n // @ts-ignore\n // @ts-ignore\n return (\n <salla-modal class=\"s-login-modal\" modal-title={this.title} ref={modal => this.modal = modal} width=\"xs\">\n <span slot='icon' class=\"s-login-modal-header-icon\" innerHTML={UserIcon}/>\n <div class=\"s-login-modal-wrapper\">\n\n {/* Tab 1 (Select Login Type)*/}\n {this.isEmailAllowed && this.isMobileAllowed ?\n <div class={this.generateTabClasses('home')} data-name=\"home\" ref={tab => this.homeTab = tab}>\n <p class=\"s-login-modal-sub-title\">{salla.lang.get('blocks.header.select_login_way')}</p>\n <slot name=\"before-login-type\"/>\n <a href=\"#\" class=\"s-login-modal-main-btn\" onClick={(evt) => this.showTab(this.mobileTab, evt)}>\n <span class=\"s-login-modal-main-btn-icon\" innerHTML={PhoneIcon}/>\n <span class=\"s-login-modal-main-btn-text\">{salla.lang.get('blocks.header.sms')}</span>\n <span class=\"s-login-modal-main-btn-arrow\" innerHTML={KeyboardArrowRightIcon}/>\n </a>\n <a href=\"#\" class=\"s-login-modal-main-btn\" onClick={(evt) => this.showTab(this.emailTab, evt)}>\n <span class=\"s-login-modal-main-btn-icon\" innerHTML={EmailIcon}/>\n <span class=\"s-login-modal-main-btn-text\">{salla.lang.get('common.elements.email')}</span>\n <span class=\"s-login-modal-main-btn-arrow\" innerHTML={KeyboardArrowRightIcon}/>\n </a>\n <slot name=\"after-login-type\"/>\n </div>\n : ''}\n\n\n {/* Tab 2 (Login By Mobile)*/}\n {this.isMobileAllowed ?\n <div class={this.generateTabClasses('login-phone')} data-name=\"login-phone\"\n ref={tab => this.mobileTab = tab}>\n <slot name=\"before-login-mobile\"/>\n <form onSubmit={(event) => this.loginBySMS(event)} method=\"POST\">\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input tabindex=\"0\" ref={el => this.loginTelInput = el}\n onKeyDown={e => this.typing(e)}></salla-tel-input>\n {/* @ts-ignore */}\n <salla-button class=\"s-login-modal-enter-button\" type=\"submit\" loader-position='center' width=\"wide\" ref={b => this.smsBtn = b}>\n {salla.lang.get('blocks.header.enter')}\n </salla-button>\n </form>\n {this.isEmailAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.emailTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_email')}</a> : ''}\n <slot name=\"after-login-mobile\"/>\n </div> : ''}\n\n\n {/* Tab 3 (Login By Email)*/}\n {this.isEmailAllowed ?\n <div class={this.generateTabClasses('login-email')} data-name=\"login-email\"\n ref={tab => this.emailTab = tab}>\n <slot name=\"before-login-email\"/>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <form onSubmit={() => this.loginByEmail(event)} method=\"POST\">\n <input type=\"email\" ref={el => this.loginEmail = el} onKeyDown={e => this.typing(e)}\n placeholder=\"your@email.com\"\n enterkeyhint=\"next\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.loginByEmail()}\n ref={b => this.emailBtn = b}>{salla.lang.get('blocks.header.enter')}</salla-button>\n </form>\n {this.isMobileAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.mobileTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_sms')}</a>\n : ''\n }\n <slot name=\"after-login-email\"/>\n </div> : ''}\n\n\n {/* Tab 4 (Verify OTP)*/}\n <salla-verify display=\"inline\" support-web-auth={this.supportWebAuth ? 'true' : 'false'}\n class={this.generateTabClasses('otp')} data-name=\"otp\" ref={tab => this.verifyTab = tab}\n autoReload={false}>\n <a onClick={() => this.showTab(this.regType == 'phone' ? this.mobileTab : this.emailTab)}\n class=\"s-verify-back\"\n innerHTML={ArrowRightIcon}\n slot=\"after-footer\"\n href=\"#\"/>\n {this.isMobileAllowed && this.regType == 'phone' ? <div dir=\"ltr\" class=\"s-login-modal-currentPhone\" slot=\"mobile\">{this.currentPhone}</div>: ''}\n {this.isEmailAllowed && this.regType == 'email' ? <div dir=\"ltr\" class=\"s-login-modal-currentEmail\" slot=\"email\">{this.currentEmail}</div>: ''}\n </salla-verify>\n\n {/* Tab 5 (Register New User)*/}\n <div data-name=\"registration\" class={this.generateTabClasses('registration')}\n ref={tab => this.registrationTab = tab}>\n <slot name=\"before-registration\"/>\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('blocks.header.your_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.firstName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.first_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('pages.profile.last_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.lastName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.last_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div class={this.generateRegClasses('phone')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input ref={el => this.regTelInput = el}\n onKeyDown={e => this.typing(e, this.newUser)}></salla-tel-input>\n </div>\n\n <div class={this.generateRegClasses('email')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <input type=\"email\" ref={el => this.regEmail = el} onKeyDown={e => this.typing(e, this.newUser)}\n placeholder=\"your@email.com\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n <div class=\"s-login-modal-custom-fields\" ref={el => this.customFieldsWrapper = el}>{\n this.customFields.map((field: CustomField) => [\n <label class=\"s-login-modal-label\">{field.label}</label>,\n field.type === CustomFieldType.PHOTO\n ? <salla-file-upload\n name=\"image\"\n instant-upload={true}\n id={`${field.id}`}\n title={field.label}\n required={field.required}\n url={salla.url.get('upload-image')}\n // onUploaded={}\n labelIdle={this.getFilepondPlaceholder()}/>\n : <input\n onInput={el => field.type == CustomFieldType.NUMBER ? salla.helpers.inputDigitsOnly(el.target) : {}}\n onKeyDown={e => this.typing(e, this.newUser)}\n class=\"s-login-modal-input s-ltr\"\n maxlength={field.length || 1000}//todo:: support it by adding the maxlength or not, not setting static limit\n placeholder={field.description}\n required={field.required}\n title={field.label}\n id={`${field.id}`}\n type=\"text\"/>,\n <span class=\"s-login-modal-error-message\"/>\n ])\n }</div>\n\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.newUser()}\n ref={b => this.regBtn = b}>{salla.lang.get('blocks.header.register')}</salla-button>\n <slot name=\"after-registration\"/>\n </div>\n </div>\n </salla-modal>\n );\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"salla-login-modal.js","sourceRoot":"","sources":["../../../src/components/salla-login-modal/salla-login-modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, h, Listen, Method, Prop, State} from '@stencil/core';\nimport UserIcon from \"../../assets/svg/user.svg\";\n//import PhoneIcon from \"../../assets/svg/phone.svg\";\n//import EmailIcon from \"../../assets/svg/mail.svg\";\nimport CameraIcon from '../../assets/svg/camera.svg';\n//import KeyboardArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowRightIcon from \"../../assets/svg/arrow-right.svg\";\nimport Helper from '../../Helpers/Helper';\nimport {CustomField, CustomFieldType} from './intefaces';\n\n/**\n * @slot footer - The footer of modal\n * @slot before-login-type - placeholder position\n * @slot after-login-type - placeholder position\n * @slot before-login-mobile - placeholder position\n * @slot after-login-mobile - placeholder position\n * @slot before-login-email - placeholder position\n * @slot after-login-email - placeholder position\n * @slot before-registration - placeholder position\n * @slot after-registration - placeholder position\n */\n@Component({\n tag: 'salla-login-modal',\n styleUrl: 'salla-login-modal.scss'\n})\n\n\nexport class SallaLoginModal {\n constructor() {\n\n this.title = this.host.title || salla.lang.get('blocks.header.login');\n this.host.removeAttribute('title');\n\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n\n salla.lang.onLoaded(() => {\n this.translationLoaded = true;\n this.title = salla.lang.get('blocks.header.login');\n this.dragAndDrop = salla.lang.get('common.uploader.drag_and_drop');\n this.browseFromFiles = salla.lang.get('common.uploader.browse');\n this.updateTranslations();\n });\n\n salla.event.on('login::open', (event) => {\n if(!this.isEmailAllowed && !this.isMobileAllowed){\n salla.logger.warn('Please enable atleast one login type to use this component.');\n return;\n }\n this.open(event)\n });\n salla.onReady( () => {\n this.isEmailAllowed = salla.config.get('store.settings.auth.email_allowed', this.isEmailAllowed);\n this.isMobileAllowed = salla.config.get('store.settings.auth.mobile_allowed', this.isMobileAllowed);\n this.isEmailRequired = salla.config.get('store.settings.auth.is_email_required', this.isEmailRequired);\n });\n }\n\n @Element() host: HTMLElement;\n /**\n * Does the merchant allow to login using email\n */\n @Prop({mutable: true}) isEmailAllowed: boolean ;\n /**\n * Does the merchant/current location for visitor allow to login using mobile, By default outside KSA is `false`\n */\n @Prop({mutable: true}) isMobileAllowed: boolean = true;\n /**\n * Does the merchant require registration with email & mobile\n */\n @Prop({mutable: true}) isEmailRequired: boolean = false;\n\n /**\n * Once the api verify success, it will be login the customer in web pages\n */\n @Prop({reflect: true}) supportWebAuth: boolean = true;\n\n private modal: HTMLSallaModalElement;\n //private homeTab: HTMLDivElement;\n private mobileTab: HTMLDivElement;\n private emailTab: HTMLDivElement;\n private verifyTab: HTMLSallaVerifyElement;\n private registrationTab: HTMLDivElement;\n private regTelInput: HTMLSallaTelInputElement;\n private regEmail: HTMLInputElement;\n private customFieldsWrapper: HTMLDivElement;\n private loginTelInput: HTMLSallaTelInputElement;\n private loginEmail: HTMLInputElement;\n private firstName: HTMLInputElement;\n private lastName: HTMLInputElement;\n private smsBtn: HTMLSallaButtonElement;\n private emailBtn: HTMLSallaButtonElement;\n private regBtn: HTMLSallaButtonElement;\n\n @State() currentTabName = 'home'\n @State() regType: 'phone' | 'email' = 'phone';\n\n\n @State() translationLoaded: boolean = false;\n @State() currentPhone: string = '';\n @State() currentEmail: string = '';\n @State() title: string;\n @State() emailErrorMsg: string;\n @State() firstNameErrorMsg: string;\n @State() lastNameErrorMsg: string;\n\n @State() dragAndDrop: string = salla.lang.get('common.uploader.drag_and_drop');\n @State() browseFromFiles: string = salla.lang.get('common.uploader.browse');\n @State() customFields: CustomField[] = [];\n\n private customFieldsValues: Object = {};\n @State() uploadedImage: string = undefined;\n\n @Listen('verified', {target: 'window'})\n /**\n * @param {CustomEvent|{details:{case:'new_customer'|'authenticated', redirect_url:string|null}}} event\n */\n onVerified(event) {\n salla.log('verified', event);\n //there is a case when force login is activated & is new user, it will return case inside error key., so cover it.\n let verifyCase = event.detail?.data.case || event.detail?.error.case;\n if (!verifyCase) {\n salla.log('verified but without case!');\n return;\n }\n\n if (verifyCase === \"new_customer\") {\n this.customFields = event.detail?.data?.custom_fields || [];\n return this.showTab(this.registrationTab);\n }\n\n if (!salla.auth.canRedirect()) {\n salla.log('Will not auto redirect or reload, due to `salla.auth.canRedirect()`');\n this.modal.close();\n return;\n }\n\n if (event.detail.data.redirect_url) {\n return window.location.href = event.detail.data.redirect_url;\n }\n\n /**\n * we don't want to reload the page if this is not web auth\n * because we'll need the token in the page itself and its there\n * todo :: store the user data in storage for non-web auth and set the config.user from it\n */\n if (this.supportWebAuth) {\n window.location.reload();\n } else {\n this.modal.close();\n }\n }\n\n updateTranslations() {\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n this.modal?.setTitle(this.title);\n }\n\n /**\n * Open login component\n */\n @Method()\n // @ts-ignore\n async open(event = null) {\n // todo :: support change the settings from event details\n // if(event && event.hasOwnProperty('isEmailAllowed')){\n // this.isEmailAllowed = event?.isEmailAllowed;\n // }\n //\n // if(event && event.hasOwnProperty('isMobileAllowed')){\n // this.isMobileAllowed = event?.isMobileAllowed;\n // }\n\n /**\n * This is a workaround until we remove all the user objet from twig files\n * When the user is already login, let's reload the page\n */\n if(!salla.config.isGuest()){\n location.reload()\n return;\n }\n\n if (this.isMobileAllowed) {\n this.showTab(this.mobileTab);\n } else if (this.isEmailAllowed) {\n this.showTab(this.emailTab);\n }\n return this.modal.open();\n }\n\n private showTab(tab, evt?) {\n evt?.preventDefault();\n this.currentTabName = tab.getAttribute('data-name');\n\n // todo:: use better way for resize the modal\n // setTimeout(() => this.modal.querySelector('.s-login-modal-wrapper')?.setAttribute('style', 'height:' + tab?.scrollHeight + 'px'));\n\n if ([this.mobileTab, this.emailTab].includes(tab)) {\n this.regType = tab === this.mobileTab ? 'phone' : 'email';\n }\n\n const input = tab.querySelector('input[type=\"tel\"], input[type=\"email\"]');\n input && setTimeout(() => {\n input.focus();\n }, 100);\n\n this.modal?.setTitle(this.currentTabName === 'registration' ? salla.lang.get('common.titles.registration') : this.title);\n\n return this;\n }\n\n private typing = (e, submitMethod = null) => {\n const error = e.target.nextElementSibling;\n e.target.classList.remove('s-has-error');\n error?.classList.contains('s-login-modal-error-message') && (error.innerText = '');\n //it was sending two requests for send two verification requests\n submitMethod && e.key == 'Enter' && submitMethod();\n }\n\n private loginBySMS = async (event = null) => {\n event?.preventDefault();\n const {phone, countryCode, countryKey} = await this.loginTelInput.getValues();\n const isPhoneValid = await this.loginTelInput.isValid();\n if (!isPhoneValid) {\n return;\n }\n this.currentPhone = `${countryKey} ${phone}`;\n this.login(this.smsBtn, {type: 'mobile', phone: phone, country_code: countryCode});\n\n return false;\n }\n\n private loginByEmail = (event = null) => {\n event?.preventDefault();\n if (!Helper.isValidEmail(this.loginEmail.value)) {\n this.validateField(this.loginEmail, this.emailErrorMsg);\n return;\n }\n this.currentEmail = this.loginEmail.value;\n this.login(this.emailBtn, {type: 'email', email: this.loginEmail.value});\n }\n\n private login(btn: HTMLSallaButtonElement, data) {\n btn.load()\n .then(() => btn.disable())\n .then(() => salla.auth.api.login(data))\n .then(() => this.showTab(this.verifyTab))\n .then(() => this.verifyTab.open(data))\n .finally(() => btn.stop() && btn.enable());\n }\n\n private newUser = async () => {\n const {\n phone: regPhone,\n countryCode\n } = this.regType == \"email\" ? await this.regTelInput.getValues() : await this.loginTelInput.getValues(),\n emailValue = this.regEmail.value || this.loginEmail?.value\n await this.newUserValidation();\n await this.regBtn.load();\n await this.regBtn.disable();\n\n let data: any = {\n first_name: this.firstName.value,\n last_name: this.lastName.value,\n phone: regPhone || this.loginTelInput.phone,\n country_code: countryCode,\n verified_by: this.regType,\n custom_fields: this.customFieldsValues,\n };\n emailValue && (data = {...data, email: emailValue});\n this.verifyTab.getCode()\n .then(code => salla.auth.api.register({...data, code}))\n .then(() => salla.auth.canRedirect && window.location.reload())\n .catch((error) => {\n salla.logger.error(error);\n this.regBtn.stop() && this.regBtn.enable()\n })\n }\n\n private async newUserValidation() {\n const isLogByPhone = this.regType == \"phone\",\n isLogByEmail = this.regType == \"email\",\n emailValue = this.regEmail.value || (isLogByEmail && this.loginEmail.value),\n isEmailValid = Helper.isValidEmail(emailValue),\n isFirstNameValid = this.firstName.value.length > 0,\n isLastNameValid = this.lastName.value.length > 0,\n isPhoneValid = await this.regTelInput.isValid() || isLogByPhone && await this.loginTelInput.isValid(),\n emailValidation = (emailValue && isEmailValid) || (!emailValue && !this.isEmailRequired);\n\n // Custom Fields Validation\n var isCustomFieldValid = true;\n //we should make sure that there is text nodes between children\n this.customFieldsWrapper.childNodes\n .forEach((field: HTMLSallaFileUploadElement | HTMLInputElement) => {\n this.customFieldsValues[field.id] = field['value'];\n if (!field.required || this.customFieldsValues[field.id].length) {\n return;\n }\n isCustomFieldValid = false;\n const errorMsg: string = salla.lang.get('common.errors.field_required', {attribute: field.title});\n this.validateField(field, errorMsg)\n });\n\n if (emailValidation && isPhoneValid && isFirstNameValid && isLastNameValid && isCustomFieldValid) return;\n !isEmailValid && this.validateField(this.regEmail, this.emailErrorMsg);\n !isFirstNameValid && this.validateField(this.firstName, this.firstNameErrorMsg);\n !isLastNameValid && this.validateField(this.lastName, this.lastNameErrorMsg);\n throw 'Please insert required fields';\n }\n\n private getFilepondPlaceholder() {\n return `<div class=\"s-login-modal-filepond-placeholder\"><span class=\"s-login-modal-filepond-placeholder-icon\">${CameraIcon}</span><p class=\"s-login-modal-filepond-placeholder-text\">${this.dragAndDrop}</p> <span class=\"filepond--label-action\">${this.browseFromFiles}</span></div>`\n }\n\n // eslint-disable-next-line @stencil/own-methods-must-be-private\n validateField(field: HTMLInputElement | HTMLSallaFileUploadElement, errorMsg: string) {\n field.classList.add('s-has-error');\n field.nextElementSibling['innerText'] = '* ' + errorMsg;\n }\n\n generateTabClasses(tabName) {\n return {\n 's-login-modal-tab': tabName !== 'registration' && tabName !== 'otp',\n \"s-hidden\": this.currentTabName !== tabName,\n \"s-show\": this.currentTabName === tabName,\n 's-login-modal-unactive': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName !== tabName,\n 's-login-modal-active': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName === tabName\n }\n }\n\n generateRegClasses(regType) {\n return {\n \"mb-1.5\": true,\n \"s-hidden\": this.regType === regType\n }\n }\n\n render() {\n // @ts-ignore\n // @ts-ignore\n return (\n <salla-modal class=\"s-login-modal\" modal-title={this.title} ref={modal => this.modal = modal} width=\"xs\">\n <span slot='icon' class=\"s-login-modal-header-icon\" innerHTML={UserIcon}/>\n <div class=\"s-login-modal-wrapper\">\n\n {/* Tab 2 (Login By Mobile)*/}\n {this.isMobileAllowed ?\n <div class={this.generateTabClasses('login-phone')} data-name=\"login-phone\"\n ref={tab => this.mobileTab = tab}>\n <slot name=\"before-login-mobile\"/>\n <form onSubmit={(event) => this.loginBySMS(event)} method=\"POST\">\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input tabindex=\"0\" ref={el => this.loginTelInput = el}\n onKeyDown={e => this.typing(e)}></salla-tel-input>\n {/* @ts-ignore */}\n <salla-button class=\"s-login-modal-enter-button\" type=\"submit\" loader-position='center' width=\"wide\" ref={b => this.smsBtn = b}>\n {salla.lang.get('blocks.header.enter')}\n </salla-button>\n </form>\n {this.isEmailAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.emailTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_email')}</a> : ''}\n <slot name=\"after-login-mobile\"/>\n </div> : ''}\n\n\n {/* Tab 3 (Login By Email)*/}\n {this.isEmailAllowed ?\n <div class={this.generateTabClasses('login-email')} data-name=\"login-email\"\n ref={tab => this.emailTab = tab}>\n <slot name=\"before-login-email\"/>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <form onSubmit={() => this.loginByEmail(event)} method=\"POST\">\n <input type=\"email\" ref={el => this.loginEmail = el} onKeyDown={e => this.typing(e)}\n placeholder=\"your@email.com\"\n enterkeyhint=\"next\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.loginByEmail()}\n ref={b => this.emailBtn = b}>{salla.lang.get('blocks.header.enter')}</salla-button>\n </form>\n {this.isMobileAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.mobileTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_sms')}</a>\n : ''\n }\n <slot name=\"after-login-email\"/>\n </div> : ''}\n\n\n {/* Tab 4 (Verify OTP)*/}\n <salla-verify display=\"inline\" support-web-auth={this.supportWebAuth ? 'true' : 'false'}\n class={this.generateTabClasses('otp')} data-name=\"otp\" ref={tab => this.verifyTab = tab}\n autoReload={false}>\n <a onClick={() => this.showTab(this.regType == 'phone' ? this.mobileTab : this.emailTab)}\n class=\"s-verify-back\"\n innerHTML={ArrowRightIcon}\n slot=\"after-footer\"\n href=\"#\"/>\n {this.isMobileAllowed && this.regType == 'phone' ? <div dir=\"ltr\" class=\"s-login-modal-currentPhone\" slot=\"mobile\">{this.currentPhone}</div>: ''}\n {this.isEmailAllowed && this.regType == 'email' ? <div dir=\"ltr\" class=\"s-login-modal-currentEmail\" slot=\"email\">{this.currentEmail}</div>: ''}\n </salla-verify>\n\n {/* Tab 5 (Register New User)*/}\n <div data-name=\"registration\" class={this.generateTabClasses('registration')}\n ref={tab => this.registrationTab = tab}>\n <slot name=\"before-registration\"/>\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('blocks.header.your_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.firstName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.first_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('pages.profile.last_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.lastName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.last_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div class={this.generateRegClasses('phone')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input ref={el => this.regTelInput = el}\n onKeyDown={e => this.typing(e, this.newUser)}></salla-tel-input>\n </div>\n\n <div class={this.generateRegClasses('email')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <input type=\"email\" ref={el => this.regEmail = el} onKeyDown={e => this.typing(e, this.newUser)}\n placeholder=\"your@email.com\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n <div class=\"s-login-modal-custom-fields\" ref={el => this.customFieldsWrapper = el}>{\n this.customFields.map((field: CustomField) => [\n <label class=\"s-login-modal-label\">{field.label}</label>,\n field.type === CustomFieldType.PHOTO\n ? <salla-file-upload\n name=\"image\"\n instant-upload={true}\n id={`${field.id}`}\n title={field.label}\n required={field.required}\n url={salla.url.get('upload-image')}\n // onUploaded={}\n labelIdle={this.getFilepondPlaceholder()}/>\n : <input\n onInput={el => field.type == CustomFieldType.NUMBER ? salla.helpers.inputDigitsOnly(el.target) : {}}\n onKeyDown={e => this.typing(e, this.newUser)}\n class=\"s-login-modal-input s-ltr\"\n maxlength={field.length || 1000}//todo:: support it by adding the maxlength or not, not setting static limit\n placeholder={field.description}\n required={field.required}\n title={field.label}\n id={`${field.id}`}\n type=\"text\"/>,\n <span class=\"s-login-modal-error-message\"/>\n ])\n }</div>\n\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.newUser()}\n ref={b => this.regBtn = b}>{salla.lang.get('blocks.header.register')}</salla-button>\n <slot name=\"after-registration\"/>\n </div>\n </div>\n </salla-modal>\n );\n }\n}\n\n"]}
|
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
* Crafted with ❤ by Salla
|
|
3
3
|
*/
|
|
4
4
|
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
5
|
-
import { e as email } from './mail.js';
|
|
6
5
|
import { C as CameraIcon } from './camera.js';
|
|
7
|
-
import { K as KeyboardArrowRightIcon } from './keyboard_arrow_right.js';
|
|
8
6
|
import { H as Helper } from './Helper.js';
|
|
9
7
|
import { d as defineCustomElement$7 } from './salla-button2.js';
|
|
10
8
|
import { d as defineCustomElement$6 } from './salla-file-upload2.js';
|
|
@@ -20,13 +18,6 @@ const UserIcon = `<!-- Generated by IcoMoon.io -->
|
|
|
20
18
|
</svg>
|
|
21
19
|
`;
|
|
22
20
|
|
|
23
|
-
const PhoneIcon = `<!-- Generated by IcoMoon.io -->
|
|
24
|
-
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
|
25
|
-
<title>phone</title>
|
|
26
|
-
<path d="M30.823 21.713l-3.883-3.883c-1.569-1.568-4.12-1.568-5.689 0l-2.568 2.568c-3.063-1.499-5.583-4.019-7.081-7.083l2.568-2.567c0.759-0.76 1.177-1.771 1.177-2.845s-0.419-2.084-1.179-2.844l-3.881-3.881c-1.52-1.521-4.171-1.521-5.689 0l-1.845 1.847c-2.22 2.219-3.183 5.407-2.573 8.527 1.98 10.144 10.125 18.292 20.269 20.271 0.616 0.121 1.236 0.18 1.849 0.18 2.492 0 4.896-0.972 6.677-2.752l1.847-1.847c1.568-1.571 1.568-4.121 0.001-5.691zM28.936 25.517l-1.845 1.847c-1.592 1.592-3.883 2.283-6.132 1.841-9.089-1.776-16.388-9.075-18.163-18.165-0.439-2.247 0.249-4.539 1.841-6.129l1.847-1.847c0.256-0.257 0.596-0.397 0.959-0.397s0.703 0.14 0.959 0.397l3.883 3.883c0.256 0.256 0.397 0.596 0.397 0.959s-0.141 0.703-0.397 0.96l-3.22 3.217c-0.383 0.384-0.496 0.959-0.287 1.457 1.813 4.339 5.343 7.868 9.683 9.684 0.497 0.207 1.073 0.095 1.457-0.288l3.22-3.22c0.529-0.529 1.389-0.528 1.917 0l3.881 3.883c0.528 0.529 0.528 1.389 0 1.919z"></path>
|
|
27
|
-
</svg>
|
|
28
|
-
`;
|
|
29
|
-
|
|
30
21
|
const ArrowRightIcon = `<!-- Generated by IcoMoon.io -->
|
|
31
22
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
|
32
23
|
<title>arrow-right</title>
|
|
@@ -127,7 +118,13 @@ const SallaLoginModal$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
127
118
|
this.browseFromFiles = salla.lang.get('common.uploader.browse');
|
|
128
119
|
this.updateTranslations();
|
|
129
120
|
});
|
|
130
|
-
salla.event.on('login::open', (event) =>
|
|
121
|
+
salla.event.on('login::open', (event) => {
|
|
122
|
+
if (!this.isEmailAllowed && !this.isMobileAllowed) {
|
|
123
|
+
salla.logger.warn('Please enable atleast one login type to use this component.');
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.open(event);
|
|
127
|
+
});
|
|
131
128
|
salla.onReady(() => {
|
|
132
129
|
this.isEmailAllowed = salla.config.get('store.settings.auth.email_allowed', this.isEmailAllowed);
|
|
133
130
|
this.isMobileAllowed = salla.config.get('store.settings.auth.mobile_allowed', this.isMobileAllowed);
|
|
@@ -198,15 +195,12 @@ const SallaLoginModal$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
198
195
|
location.reload();
|
|
199
196
|
return;
|
|
200
197
|
}
|
|
201
|
-
if (this.
|
|
202
|
-
this.showTab(this.
|
|
198
|
+
if (this.isMobileAllowed) {
|
|
199
|
+
this.showTab(this.mobileTab);
|
|
203
200
|
}
|
|
204
201
|
else if (this.isEmailAllowed) {
|
|
205
202
|
this.showTab(this.emailTab);
|
|
206
203
|
}
|
|
207
|
-
else if (this.isMobileAllowed) {
|
|
208
|
-
this.showTab(this.mobileTab);
|
|
209
|
-
}
|
|
210
204
|
return this.modal.open();
|
|
211
205
|
}
|
|
212
206
|
showTab(tab, evt) {
|
|
@@ -281,9 +275,7 @@ const SallaLoginModal$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
281
275
|
render() {
|
|
282
276
|
// @ts-ignore
|
|
283
277
|
// @ts-ignore
|
|
284
|
-
return (h("salla-modal", { class: "s-login-modal", "modal-title": this.title, ref: modal => this.modal = modal, width: "xs" }, h("span", { slot: 'icon', class: "s-login-modal-header-icon", innerHTML: UserIcon }), h("div", { class: "s-login-modal-wrapper" }, this.
|
|
285
|
-
h("div", { class: this.generateTabClasses('home'), "data-name": "home", ref: tab => this.homeTab = tab }, h("p", { class: "s-login-modal-sub-title" }, salla.lang.get('blocks.header.select_login_way')), h("slot", { name: "before-login-type" }), h("a", { href: "#", class: "s-login-modal-main-btn", onClick: (evt) => this.showTab(this.mobileTab, evt) }, h("span", { class: "s-login-modal-main-btn-icon", innerHTML: PhoneIcon }), h("span", { class: "s-login-modal-main-btn-text" }, salla.lang.get('blocks.header.sms')), h("span", { class: "s-login-modal-main-btn-arrow", innerHTML: KeyboardArrowRightIcon })), h("a", { href: "#", class: "s-login-modal-main-btn", onClick: (evt) => this.showTab(this.emailTab, evt) }, h("span", { class: "s-login-modal-main-btn-icon", innerHTML: email }), h("span", { class: "s-login-modal-main-btn-text" }, salla.lang.get('common.elements.email')), h("span", { class: "s-login-modal-main-btn-arrow", innerHTML: KeyboardArrowRightIcon })), h("slot", { name: "after-login-type" }))
|
|
286
|
-
: '', this.isMobileAllowed ?
|
|
278
|
+
return (h("salla-modal", { class: "s-login-modal", "modal-title": this.title, ref: modal => this.modal = modal, width: "xs" }, h("span", { slot: 'icon', class: "s-login-modal-header-icon", innerHTML: UserIcon }), h("div", { class: "s-login-modal-wrapper" }, this.isMobileAllowed ?
|
|
287
279
|
h("div", { class: this.generateTabClasses('login-phone'), "data-name": "login-phone", ref: tab => this.mobileTab = tab }, h("slot", { name: "before-login-mobile" }), h("form", { onSubmit: (event) => this.loginBySMS(event), method: "POST" }, h("label", { class: "s-login-modal-label" }, salla.lang.get('common.elements.mobile')), h("salla-tel-input", { tabindex: "0", ref: el => this.loginTelInput = el, onKeyDown: e => this.typing(e) }), h("salla-button", { class: "s-login-modal-enter-button", type: "submit", "loader-position": 'center', width: "wide", ref: b => this.smsBtn = b }, salla.lang.get('blocks.header.enter'))), this.isEmailAllowed ?
|
|
288
280
|
h("a", { href: "#", onClick: () => this.showTab(this.emailTab), class: "s-login-modal-link" }, salla.lang.get('blocks.header.login_by_email')) : '', h("slot", { name: "after-login-mobile" })) : '', this.isEmailAllowed ?
|
|
289
281
|
h("div", { class: this.generateTabClasses('login-email'), "data-name": "login-email", ref: tab => this.emailTab = tab }, h("slot", { name: "before-login-email" }), h("label", { class: "s-login-modal-label" }, salla.lang.get('common.elements.email')), h("form", { onSubmit: () => this.loginByEmail(event), method: "POST" }, h("input", { type: "email", ref: el => this.loginEmail = el, onKeyDown: e => this.typing(e), placeholder: "your@email.com", enterkeyhint: "next", class: "s-login-modal-input s-ltr" }), h("span", { class: "s-login-modal-error-message" }), h("salla-button", { "loader-position": 'center', width: "wide", onClick: () => this.loginByEmail(), ref: b => this.emailBtn = b }, salla.lang.get('blocks.header.enter'))), this.isMobileAllowed ?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"salla-login-modal.js","mappings":"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","names":["SallaLoginModal","EmailIcon"],"sources":["./src/components/salla-login-modal/intefaces.ts","./src/components/salla-login-modal/salla-login-modal.scss?tag=salla-login-modal","./src/components/salla-login-modal/salla-login-modal.tsx"],"sourcesContent":["export interface CustomField {\n id: number;\n label: string;\n description: string;\n type: string;\n required: boolean;\n length: number;\n}\n\nexport enum CustomFieldType {\n TEXT = 'text',\n NUMBER = 'number',\n PHOTO = 'photo'\n}\n","/*\n* Salla Login Component: login popup modal\n* You can use these classes to target the elements in the component.\n*/\n\n.s-login-modal {\n &-sub-title {\n\n }\n &-main-btn {\n \n }\n &-main-btn-icon {\n\n }\n &-main-btn-text {\n\n }\n &-main-btn-arrow {\n\n }\n &-label {\n\n }\n &-input {\n\n }\n &-otp-input {\n\n }\n &-link {\n\n }\n &-error-message {\n\n }\n &-wrapper {\n\n }\n &-tab {\n\n }\n &-active {\n\n }\n &-unactive {\n\n }\n}\n","import {Component, Element, h, Listen, Method, Prop, State} from '@stencil/core';\nimport UserIcon from \"../../assets/svg/user.svg\";\nimport PhoneIcon from \"../../assets/svg/phone.svg\";\nimport EmailIcon from \"../../assets/svg/mail.svg\";\nimport CameraIcon from '../../assets/svg/camera.svg';\nimport KeyboardArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowRightIcon from \"../../assets/svg/arrow-right.svg\";\nimport Helper from '../../Helpers/Helper';\nimport {CustomField, CustomFieldType} from './intefaces';\n\n/**\n * @slot footer - The footer of modal\n * @slot before-login-type - placeholder position\n * @slot after-login-type - placeholder position\n * @slot before-login-mobile - placeholder position\n * @slot after-login-mobile - placeholder position\n * @slot before-login-email - placeholder position\n * @slot after-login-email - placeholder position\n * @slot before-registration - placeholder position\n * @slot after-registration - placeholder position\n */\n@Component({\n tag: 'salla-login-modal',\n styleUrl: 'salla-login-modal.scss'\n})\n\n\nexport class SallaLoginModal {\n constructor() {\n\n this.title = this.host.title || salla.lang.get('blocks.header.login');\n this.host.removeAttribute('title');\n\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n\n salla.lang.onLoaded(() => {\n this.translationLoaded = true;\n this.title = salla.lang.get('blocks.header.login');\n this.dragAndDrop = salla.lang.get('common.uploader.drag_and_drop');\n this.browseFromFiles = salla.lang.get('common.uploader.browse');\n this.updateTranslations();\n });\n\n salla.event.on('login::open', (event) => this.open(event));\n salla.onReady( () => {\n this.isEmailAllowed = salla.config.get('store.settings.auth.email_allowed', this.isEmailAllowed);\n this.isMobileAllowed = salla.config.get('store.settings.auth.mobile_allowed', this.isMobileAllowed);\n this.isEmailRequired = salla.config.get('store.settings.auth.is_email_required', this.isEmailRequired);\n });\n }\n\n @Element() host: HTMLElement;\n /**\n * Does the merchant allow to login using email\n */\n @Prop({mutable: true}) isEmailAllowed: boolean ;\n /**\n * Does the merchant/current location for visitor allow to login using mobile, By default outside KSA is `false`\n */\n @Prop({mutable: true}) isMobileAllowed: boolean = true;\n /**\n * Does the merchant require registration with email & mobile\n */\n @Prop({mutable: true}) isEmailRequired: boolean = false;\n\n /**\n * Once the api verify success, it will be login the customer in web pages\n */\n @Prop({reflect: true}) supportWebAuth: boolean = true;\n\n private modal: HTMLSallaModalElement;\n private homeTab: HTMLDivElement;\n private mobileTab: HTMLDivElement;\n private emailTab: HTMLDivElement;\n private verifyTab: HTMLSallaVerifyElement;\n private registrationTab: HTMLDivElement;\n private regTelInput: HTMLSallaTelInputElement;\n private regEmail: HTMLInputElement;\n private customFieldsWrapper: HTMLDivElement;\n private loginTelInput: HTMLSallaTelInputElement;\n private loginEmail: HTMLInputElement;\n private firstName: HTMLInputElement;\n private lastName: HTMLInputElement;\n private smsBtn: HTMLSallaButtonElement;\n private emailBtn: HTMLSallaButtonElement;\n private regBtn: HTMLSallaButtonElement;\n\n @State() currentTabName = 'home'\n @State() regType: 'phone' | 'email' = 'phone';\n\n\n @State() translationLoaded: boolean = false;\n @State() currentPhone: string = '';\n @State() currentEmail: string = '';\n @State() title: string;\n @State() emailErrorMsg: string;\n @State() firstNameErrorMsg: string;\n @State() lastNameErrorMsg: string;\n\n @State() dragAndDrop: string = salla.lang.get('common.uploader.drag_and_drop');\n @State() browseFromFiles: string = salla.lang.get('common.uploader.browse');\n @State() customFields: CustomField[] = [];\n\n private customFieldsValues: Object = {};\n @State() uploadedImage: string = undefined;\n\n @Listen('verified', {target: 'window'})\n /**\n * @param {CustomEvent|{details:{case:'new_customer'|'authenticated', redirect_url:string|null}}} event\n */\n onVerified(event) {\n salla.log('verified', event);\n //there is a case when force login is activated & is new user, it will return case inside error key., so cover it.\n let verifyCase = event.detail?.data.case || event.detail?.error.case;\n if (!verifyCase) {\n salla.log('verified but without case!');\n return;\n }\n\n if (verifyCase === \"new_customer\") {\n this.customFields = event.detail?.data?.custom_fields || [];\n return this.showTab(this.registrationTab);\n }\n\n if (!salla.auth.canRedirect()) {\n salla.log('Will not auto redirect or reload, due to `salla.auth.canRedirect()`');\n this.modal.close();\n return;\n }\n\n if (event.detail.data.redirect_url) {\n return window.location.href = event.detail.data.redirect_url;\n }\n\n /**\n * we don't want to reload the page if this is not web auth\n * because we'll need the token in the page itself and its there\n * todo :: store the user data in storage for non-web auth and set the config.user from it\n */\n if (this.supportWebAuth) {\n window.location.reload();\n } else {\n this.modal.close();\n }\n }\n\n updateTranslations() {\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n this.modal?.setTitle(this.title);\n }\n\n /**\n * Open login component\n */\n @Method()\n // @ts-ignore\n async open(event = null) {\n // todo :: support change the settings from event details\n // if(event && event.hasOwnProperty('isEmailAllowed')){\n // this.isEmailAllowed = event?.isEmailAllowed;\n // }\n //\n // if(event && event.hasOwnProperty('isMobileAllowed')){\n // this.isMobileAllowed = event?.isMobileAllowed;\n // }\n\n /**\n * This is a workaround until we remove all the user objet from twig files\n * When the user is already login, let's reload the page\n */\n if(!salla.config.isGuest()){\n location.reload()\n return;\n }\n\n if (this.isEmailAllowed && this.isMobileAllowed) {\n this.showTab(this.homeTab);\n } else if (this.isEmailAllowed) {\n this.showTab(this.emailTab);\n } else if (this.isMobileAllowed) {\n this.showTab(this.mobileTab);\n }\n return this.modal.open();\n }\n\n private showTab(tab, evt?) {\n evt?.preventDefault();\n this.currentTabName = tab.getAttribute('data-name');\n\n // todo:: use better way for resize the modal\n // setTimeout(() => this.modal.querySelector('.s-login-modal-wrapper')?.setAttribute('style', 'height:' + tab?.scrollHeight + 'px'));\n\n if ([this.mobileTab, this.emailTab].includes(tab)) {\n this.regType = tab === this.mobileTab ? 'phone' : 'email';\n }\n\n const input = tab.querySelector('input[type=\"tel\"], input[type=\"email\"]');\n input && setTimeout(() => {\n input.focus();\n }, 100);\n\n this.modal?.setTitle(this.currentTabName === 'registration' ? salla.lang.get('common.titles.registration') : this.title);\n\n return this;\n }\n\n private typing = (e, submitMethod = null) => {\n const error = e.target.nextElementSibling;\n e.target.classList.remove('s-has-error');\n error?.classList.contains('s-login-modal-error-message') && (error.innerText = '');\n //it was sending two requests for send two verification requests\n submitMethod && e.key == 'Enter' && submitMethod();\n }\n\n private loginBySMS = async (event = null) => {\n event?.preventDefault();\n const {phone, countryCode, countryKey} = await this.loginTelInput.getValues();\n const isPhoneValid = await this.loginTelInput.isValid();\n if (!isPhoneValid) {\n return;\n }\n this.currentPhone = `${countryKey} ${phone}`;\n this.login(this.smsBtn, {type: 'mobile', phone: phone, country_code: countryCode});\n\n return false;\n }\n\n private loginByEmail = (event = null) => {\n event?.preventDefault();\n if (!Helper.isValidEmail(this.loginEmail.value)) {\n this.validateField(this.loginEmail, this.emailErrorMsg);\n return;\n }\n this.currentEmail = this.loginEmail.value;\n this.login(this.emailBtn, {type: 'email', email: this.loginEmail.value});\n }\n\n private login(btn: HTMLSallaButtonElement, data) {\n btn.load()\n .then(() => btn.disable())\n .then(() => salla.auth.api.login(data))\n .then(() => this.showTab(this.verifyTab))\n .then(() => this.verifyTab.open(data))\n .finally(() => btn.stop() && btn.enable());\n }\n\n private newUser = async () => {\n const {\n phone: regPhone,\n countryCode\n } = this.regType == \"email\" ? await this.regTelInput.getValues() : await this.loginTelInput.getValues(),\n emailValue = this.regEmail.value || this.loginEmail?.value\n await this.newUserValidation();\n await this.regBtn.load();\n await this.regBtn.disable();\n\n let data: any = {\n first_name: this.firstName.value,\n last_name: this.lastName.value,\n phone: regPhone || this.loginTelInput.phone,\n country_code: countryCode,\n verified_by: this.regType,\n custom_fields: this.customFieldsValues,\n };\n emailValue && (data = {...data, email: emailValue});\n this.verifyTab.getCode()\n .then(code => salla.auth.api.register({...data, code}))\n .then(() => salla.auth.canRedirect && window.location.reload())\n .catch((error) => {\n salla.logger.error(error);\n this.regBtn.stop() && this.regBtn.enable()\n })\n }\n\n private async newUserValidation() {\n const isLogByPhone = this.regType == \"phone\",\n isLogByEmail = this.regType == \"email\",\n emailValue = this.regEmail.value || (isLogByEmail && this.loginEmail.value),\n isEmailValid = Helper.isValidEmail(emailValue),\n isFirstNameValid = this.firstName.value.length > 0,\n isLastNameValid = this.lastName.value.length > 0,\n isPhoneValid = await this.regTelInput.isValid() || isLogByPhone && await this.loginTelInput.isValid(),\n emailValidation = (emailValue && isEmailValid) || (!emailValue && !this.isEmailRequired);\n\n // Custom Fields Validation\n var isCustomFieldValid = true;\n //we should make sure that there is text nodes between children\n this.customFieldsWrapper.childNodes\n .forEach((field: HTMLSallaFileUploadElement | HTMLInputElement) => {\n this.customFieldsValues[field.id] = field['value'];\n if (!field.required || this.customFieldsValues[field.id].length) {\n return;\n }\n isCustomFieldValid = false;\n const errorMsg: string = salla.lang.get('common.errors.field_required', {attribute: field.title});\n this.validateField(field, errorMsg)\n });\n\n if (emailValidation && isPhoneValid && isFirstNameValid && isLastNameValid && isCustomFieldValid) return;\n !isEmailValid && this.validateField(this.regEmail, this.emailErrorMsg);\n !isFirstNameValid && this.validateField(this.firstName, this.firstNameErrorMsg);\n !isLastNameValid && this.validateField(this.lastName, this.lastNameErrorMsg);\n throw 'Please insert required fields';\n }\n\n private getFilepondPlaceholder() {\n return `<div class=\"s-login-modal-filepond-placeholder\"><span class=\"s-login-modal-filepond-placeholder-icon\">${CameraIcon}</span><p class=\"s-login-modal-filepond-placeholder-text\">${this.dragAndDrop}</p> <span class=\"filepond--label-action\">${this.browseFromFiles}</span></div>`\n }\n\n // eslint-disable-next-line @stencil/own-methods-must-be-private\n validateField(field: HTMLInputElement | HTMLSallaFileUploadElement, errorMsg: string) {\n field.classList.add('s-has-error');\n field.nextElementSibling['innerText'] = '* ' + errorMsg;\n }\n\n generateTabClasses(tabName) {\n return {\n 's-login-modal-tab': tabName !== 'registration' && tabName !== 'otp',\n \"s-hidden\": this.currentTabName !== tabName,\n \"s-show\": this.currentTabName === tabName,\n 's-login-modal-unactive': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName !== tabName,\n 's-login-modal-active': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName === tabName\n }\n }\n\n generateRegClasses(regType) {\n return {\n \"mb-1.5\": true,\n \"s-hidden\": this.regType === regType\n }\n }\n\n render() {\n // @ts-ignore\n // @ts-ignore\n return (\n <salla-modal class=\"s-login-modal\" modal-title={this.title} ref={modal => this.modal = modal} width=\"xs\">\n <span slot='icon' class=\"s-login-modal-header-icon\" innerHTML={UserIcon}/>\n <div class=\"s-login-modal-wrapper\">\n\n {/* Tab 1 (Select Login Type)*/}\n {this.isEmailAllowed && this.isMobileAllowed ?\n <div class={this.generateTabClasses('home')} data-name=\"home\" ref={tab => this.homeTab = tab}>\n <p class=\"s-login-modal-sub-title\">{salla.lang.get('blocks.header.select_login_way')}</p>\n <slot name=\"before-login-type\"/>\n <a href=\"#\" class=\"s-login-modal-main-btn\" onClick={(evt) => this.showTab(this.mobileTab, evt)}>\n <span class=\"s-login-modal-main-btn-icon\" innerHTML={PhoneIcon}/>\n <span class=\"s-login-modal-main-btn-text\">{salla.lang.get('blocks.header.sms')}</span>\n <span class=\"s-login-modal-main-btn-arrow\" innerHTML={KeyboardArrowRightIcon}/>\n </a>\n <a href=\"#\" class=\"s-login-modal-main-btn\" onClick={(evt) => this.showTab(this.emailTab, evt)}>\n <span class=\"s-login-modal-main-btn-icon\" innerHTML={EmailIcon}/>\n <span class=\"s-login-modal-main-btn-text\">{salla.lang.get('common.elements.email')}</span>\n <span class=\"s-login-modal-main-btn-arrow\" innerHTML={KeyboardArrowRightIcon}/>\n </a>\n <slot name=\"after-login-type\"/>\n </div>\n : ''}\n\n\n {/* Tab 2 (Login By Mobile)*/}\n {this.isMobileAllowed ?\n <div class={this.generateTabClasses('login-phone')} data-name=\"login-phone\"\n ref={tab => this.mobileTab = tab}>\n <slot name=\"before-login-mobile\"/>\n <form onSubmit={(event) => this.loginBySMS(event)} method=\"POST\">\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input tabindex=\"0\" ref={el => this.loginTelInput = el}\n onKeyDown={e => this.typing(e)}></salla-tel-input>\n {/* @ts-ignore */}\n <salla-button class=\"s-login-modal-enter-button\" type=\"submit\" loader-position='center' width=\"wide\" ref={b => this.smsBtn = b}>\n {salla.lang.get('blocks.header.enter')}\n </salla-button>\n </form>\n {this.isEmailAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.emailTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_email')}</a> : ''}\n <slot name=\"after-login-mobile\"/>\n </div> : ''}\n\n\n {/* Tab 3 (Login By Email)*/}\n {this.isEmailAllowed ?\n <div class={this.generateTabClasses('login-email')} data-name=\"login-email\"\n ref={tab => this.emailTab = tab}>\n <slot name=\"before-login-email\"/>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <form onSubmit={() => this.loginByEmail(event)} method=\"POST\">\n <input type=\"email\" ref={el => this.loginEmail = el} onKeyDown={e => this.typing(e)}\n placeholder=\"your@email.com\"\n enterkeyhint=\"next\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.loginByEmail()}\n ref={b => this.emailBtn = b}>{salla.lang.get('blocks.header.enter')}</salla-button>\n </form>\n {this.isMobileAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.mobileTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_sms')}</a>\n : ''\n }\n <slot name=\"after-login-email\"/>\n </div> : ''}\n\n\n {/* Tab 4 (Verify OTP)*/}\n <salla-verify display=\"inline\" support-web-auth={this.supportWebAuth ? 'true' : 'false'}\n class={this.generateTabClasses('otp')} data-name=\"otp\" ref={tab => this.verifyTab = tab}\n autoReload={false}>\n <a onClick={() => this.showTab(this.regType == 'phone' ? this.mobileTab : this.emailTab)}\n class=\"s-verify-back\"\n innerHTML={ArrowRightIcon}\n slot=\"after-footer\"\n href=\"#\"/>\n {this.isMobileAllowed && this.regType == 'phone' ? <div dir=\"ltr\" class=\"s-login-modal-currentPhone\" slot=\"mobile\">{this.currentPhone}</div>: ''}\n {this.isEmailAllowed && this.regType == 'email' ? <div dir=\"ltr\" class=\"s-login-modal-currentEmail\" slot=\"email\">{this.currentEmail}</div>: ''}\n </salla-verify>\n\n {/* Tab 5 (Register New User)*/}\n <div data-name=\"registration\" class={this.generateTabClasses('registration')}\n ref={tab => this.registrationTab = tab}>\n <slot name=\"before-registration\"/>\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('blocks.header.your_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.firstName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.first_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('pages.profile.last_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.lastName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.last_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div class={this.generateRegClasses('phone')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input ref={el => this.regTelInput = el}\n onKeyDown={e => this.typing(e, this.newUser)}></salla-tel-input>\n </div>\n\n <div class={this.generateRegClasses('email')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <input type=\"email\" ref={el => this.regEmail = el} onKeyDown={e => this.typing(e, this.newUser)}\n placeholder=\"your@email.com\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n <div class=\"s-login-modal-custom-fields\" ref={el => this.customFieldsWrapper = el}>{\n this.customFields.map((field: CustomField) => [\n <label class=\"s-login-modal-label\">{field.label}</label>,\n field.type === CustomFieldType.PHOTO\n ? <salla-file-upload\n name=\"image\"\n instant-upload={true}\n id={`${field.id}`}\n title={field.label}\n required={field.required}\n url={salla.url.get('upload-image')}\n // onUploaded={}\n labelIdle={this.getFilepondPlaceholder()}/>\n : <input\n onInput={el => field.type == CustomFieldType.NUMBER ? salla.helpers.inputDigitsOnly(el.target) : {}}\n onKeyDown={e => this.typing(e, this.newUser)}\n class=\"s-login-modal-input s-ltr\"\n maxlength={field.length || 1000}//todo:: support it by adding the maxlength or not, not setting static limit\n placeholder={field.description}\n required={field.required}\n title={field.label}\n id={`${field.id}`}\n type=\"text\"/>,\n <span class=\"s-login-modal-error-message\"/>\n ])\n }</div>\n\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.newUser()}\n ref={b => this.regBtn = b}>{salla.lang.get('blocks.header.register')}</salla-button>\n <slot name=\"after-registration\"/>\n </div>\n </div>\n </salla-modal>\n );\n }\n}\n\n"],"version":3}
|
|
1
|
+
{"file":"salla-login-modal.js","mappings":"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","names":["SallaLoginModal"],"sources":["./src/components/salla-login-modal/intefaces.ts","./src/components/salla-login-modal/salla-login-modal.scss?tag=salla-login-modal","./src/components/salla-login-modal/salla-login-modal.tsx"],"sourcesContent":["export interface CustomField {\n id: number;\n label: string;\n description: string;\n type: string;\n required: boolean;\n length: number;\n}\n\nexport enum CustomFieldType {\n TEXT = 'text',\n NUMBER = 'number',\n PHOTO = 'photo'\n}\n","/*\n* Salla Login Component: login popup modal\n* You can use these classes to target the elements in the component.\n*/\n\n.s-login-modal {\n &-sub-title {\n\n }\n &-main-btn {\n \n }\n &-main-btn-icon {\n\n }\n &-main-btn-text {\n\n }\n &-main-btn-arrow {\n\n }\n &-label {\n\n }\n &-input {\n\n }\n &-otp-input {\n\n }\n &-link {\n\n }\n &-error-message {\n\n }\n &-wrapper {\n\n }\n &-tab {\n\n }\n &-active {\n\n }\n &-unactive {\n\n }\n}\n","import {Component, Element, h, Listen, Method, Prop, State} from '@stencil/core';\nimport UserIcon from \"../../assets/svg/user.svg\";\n//import PhoneIcon from \"../../assets/svg/phone.svg\";\n//import EmailIcon from \"../../assets/svg/mail.svg\";\nimport CameraIcon from '../../assets/svg/camera.svg';\n//import KeyboardArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowRightIcon from \"../../assets/svg/arrow-right.svg\";\nimport Helper from '../../Helpers/Helper';\nimport {CustomField, CustomFieldType} from './intefaces';\n\n/**\n * @slot footer - The footer of modal\n * @slot before-login-type - placeholder position\n * @slot after-login-type - placeholder position\n * @slot before-login-mobile - placeholder position\n * @slot after-login-mobile - placeholder position\n * @slot before-login-email - placeholder position\n * @slot after-login-email - placeholder position\n * @slot before-registration - placeholder position\n * @slot after-registration - placeholder position\n */\n@Component({\n tag: 'salla-login-modal',\n styleUrl: 'salla-login-modal.scss'\n})\n\n\nexport class SallaLoginModal {\n constructor() {\n\n this.title = this.host.title || salla.lang.get('blocks.header.login');\n this.host.removeAttribute('title');\n\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n\n salla.lang.onLoaded(() => {\n this.translationLoaded = true;\n this.title = salla.lang.get('blocks.header.login');\n this.dragAndDrop = salla.lang.get('common.uploader.drag_and_drop');\n this.browseFromFiles = salla.lang.get('common.uploader.browse');\n this.updateTranslations();\n });\n\n salla.event.on('login::open', (event) => {\n if(!this.isEmailAllowed && !this.isMobileAllowed){\n salla.logger.warn('Please enable atleast one login type to use this component.');\n return;\n }\n this.open(event)\n });\n salla.onReady( () => {\n this.isEmailAllowed = salla.config.get('store.settings.auth.email_allowed', this.isEmailAllowed);\n this.isMobileAllowed = salla.config.get('store.settings.auth.mobile_allowed', this.isMobileAllowed);\n this.isEmailRequired = salla.config.get('store.settings.auth.is_email_required', this.isEmailRequired);\n });\n }\n\n @Element() host: HTMLElement;\n /**\n * Does the merchant allow to login using email\n */\n @Prop({mutable: true}) isEmailAllowed: boolean ;\n /**\n * Does the merchant/current location for visitor allow to login using mobile, By default outside KSA is `false`\n */\n @Prop({mutable: true}) isMobileAllowed: boolean = true;\n /**\n * Does the merchant require registration with email & mobile\n */\n @Prop({mutable: true}) isEmailRequired: boolean = false;\n\n /**\n * Once the api verify success, it will be login the customer in web pages\n */\n @Prop({reflect: true}) supportWebAuth: boolean = true;\n\n private modal: HTMLSallaModalElement;\n //private homeTab: HTMLDivElement;\n private mobileTab: HTMLDivElement;\n private emailTab: HTMLDivElement;\n private verifyTab: HTMLSallaVerifyElement;\n private registrationTab: HTMLDivElement;\n private regTelInput: HTMLSallaTelInputElement;\n private regEmail: HTMLInputElement;\n private customFieldsWrapper: HTMLDivElement;\n private loginTelInput: HTMLSallaTelInputElement;\n private loginEmail: HTMLInputElement;\n private firstName: HTMLInputElement;\n private lastName: HTMLInputElement;\n private smsBtn: HTMLSallaButtonElement;\n private emailBtn: HTMLSallaButtonElement;\n private regBtn: HTMLSallaButtonElement;\n\n @State() currentTabName = 'home'\n @State() regType: 'phone' | 'email' = 'phone';\n\n\n @State() translationLoaded: boolean = false;\n @State() currentPhone: string = '';\n @State() currentEmail: string = '';\n @State() title: string;\n @State() emailErrorMsg: string;\n @State() firstNameErrorMsg: string;\n @State() lastNameErrorMsg: string;\n\n @State() dragAndDrop: string = salla.lang.get('common.uploader.drag_and_drop');\n @State() browseFromFiles: string = salla.lang.get('common.uploader.browse');\n @State() customFields: CustomField[] = [];\n\n private customFieldsValues: Object = {};\n @State() uploadedImage: string = undefined;\n\n @Listen('verified', {target: 'window'})\n /**\n * @param {CustomEvent|{details:{case:'new_customer'|'authenticated', redirect_url:string|null}}} event\n */\n onVerified(event) {\n salla.log('verified', event);\n //there is a case when force login is activated & is new user, it will return case inside error key., so cover it.\n let verifyCase = event.detail?.data.case || event.detail?.error.case;\n if (!verifyCase) {\n salla.log('verified but without case!');\n return;\n }\n\n if (verifyCase === \"new_customer\") {\n this.customFields = event.detail?.data?.custom_fields || [];\n return this.showTab(this.registrationTab);\n }\n\n if (!salla.auth.canRedirect()) {\n salla.log('Will not auto redirect or reload, due to `salla.auth.canRedirect()`');\n this.modal.close();\n return;\n }\n\n if (event.detail.data.redirect_url) {\n return window.location.href = event.detail.data.redirect_url;\n }\n\n /**\n * we don't want to reload the page if this is not web auth\n * because we'll need the token in the page itself and its there\n * todo :: store the user data in storage for non-web auth and set the config.user from it\n */\n if (this.supportWebAuth) {\n window.location.reload();\n } else {\n this.modal.close();\n }\n }\n\n updateTranslations() {\n this.emailErrorMsg = salla.lang.get('common.elements.email_is_valid');\n this.firstNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.first_name')});\n this.lastNameErrorMsg = salla.lang.get('common.errors.field_required', {attribute: salla.lang.get('pages.profile.last_name')});\n this.modal?.setTitle(this.title);\n }\n\n /**\n * Open login component\n */\n @Method()\n // @ts-ignore\n async open(event = null) {\n // todo :: support change the settings from event details\n // if(event && event.hasOwnProperty('isEmailAllowed')){\n // this.isEmailAllowed = event?.isEmailAllowed;\n // }\n //\n // if(event && event.hasOwnProperty('isMobileAllowed')){\n // this.isMobileAllowed = event?.isMobileAllowed;\n // }\n\n /**\n * This is a workaround until we remove all the user objet from twig files\n * When the user is already login, let's reload the page\n */\n if(!salla.config.isGuest()){\n location.reload()\n return;\n }\n\n if (this.isMobileAllowed) {\n this.showTab(this.mobileTab);\n } else if (this.isEmailAllowed) {\n this.showTab(this.emailTab);\n }\n return this.modal.open();\n }\n\n private showTab(tab, evt?) {\n evt?.preventDefault();\n this.currentTabName = tab.getAttribute('data-name');\n\n // todo:: use better way for resize the modal\n // setTimeout(() => this.modal.querySelector('.s-login-modal-wrapper')?.setAttribute('style', 'height:' + tab?.scrollHeight + 'px'));\n\n if ([this.mobileTab, this.emailTab].includes(tab)) {\n this.regType = tab === this.mobileTab ? 'phone' : 'email';\n }\n\n const input = tab.querySelector('input[type=\"tel\"], input[type=\"email\"]');\n input && setTimeout(() => {\n input.focus();\n }, 100);\n\n this.modal?.setTitle(this.currentTabName === 'registration' ? salla.lang.get('common.titles.registration') : this.title);\n\n return this;\n }\n\n private typing = (e, submitMethod = null) => {\n const error = e.target.nextElementSibling;\n e.target.classList.remove('s-has-error');\n error?.classList.contains('s-login-modal-error-message') && (error.innerText = '');\n //it was sending two requests for send two verification requests\n submitMethod && e.key == 'Enter' && submitMethod();\n }\n\n private loginBySMS = async (event = null) => {\n event?.preventDefault();\n const {phone, countryCode, countryKey} = await this.loginTelInput.getValues();\n const isPhoneValid = await this.loginTelInput.isValid();\n if (!isPhoneValid) {\n return;\n }\n this.currentPhone = `${countryKey} ${phone}`;\n this.login(this.smsBtn, {type: 'mobile', phone: phone, country_code: countryCode});\n\n return false;\n }\n\n private loginByEmail = (event = null) => {\n event?.preventDefault();\n if (!Helper.isValidEmail(this.loginEmail.value)) {\n this.validateField(this.loginEmail, this.emailErrorMsg);\n return;\n }\n this.currentEmail = this.loginEmail.value;\n this.login(this.emailBtn, {type: 'email', email: this.loginEmail.value});\n }\n\n private login(btn: HTMLSallaButtonElement, data) {\n btn.load()\n .then(() => btn.disable())\n .then(() => salla.auth.api.login(data))\n .then(() => this.showTab(this.verifyTab))\n .then(() => this.verifyTab.open(data))\n .finally(() => btn.stop() && btn.enable());\n }\n\n private newUser = async () => {\n const {\n phone: regPhone,\n countryCode\n } = this.regType == \"email\" ? await this.regTelInput.getValues() : await this.loginTelInput.getValues(),\n emailValue = this.regEmail.value || this.loginEmail?.value\n await this.newUserValidation();\n await this.regBtn.load();\n await this.regBtn.disable();\n\n let data: any = {\n first_name: this.firstName.value,\n last_name: this.lastName.value,\n phone: regPhone || this.loginTelInput.phone,\n country_code: countryCode,\n verified_by: this.regType,\n custom_fields: this.customFieldsValues,\n };\n emailValue && (data = {...data, email: emailValue});\n this.verifyTab.getCode()\n .then(code => salla.auth.api.register({...data, code}))\n .then(() => salla.auth.canRedirect && window.location.reload())\n .catch((error) => {\n salla.logger.error(error);\n this.regBtn.stop() && this.regBtn.enable()\n })\n }\n\n private async newUserValidation() {\n const isLogByPhone = this.regType == \"phone\",\n isLogByEmail = this.regType == \"email\",\n emailValue = this.regEmail.value || (isLogByEmail && this.loginEmail.value),\n isEmailValid = Helper.isValidEmail(emailValue),\n isFirstNameValid = this.firstName.value.length > 0,\n isLastNameValid = this.lastName.value.length > 0,\n isPhoneValid = await this.regTelInput.isValid() || isLogByPhone && await this.loginTelInput.isValid(),\n emailValidation = (emailValue && isEmailValid) || (!emailValue && !this.isEmailRequired);\n\n // Custom Fields Validation\n var isCustomFieldValid = true;\n //we should make sure that there is text nodes between children\n this.customFieldsWrapper.childNodes\n .forEach((field: HTMLSallaFileUploadElement | HTMLInputElement) => {\n this.customFieldsValues[field.id] = field['value'];\n if (!field.required || this.customFieldsValues[field.id].length) {\n return;\n }\n isCustomFieldValid = false;\n const errorMsg: string = salla.lang.get('common.errors.field_required', {attribute: field.title});\n this.validateField(field, errorMsg)\n });\n\n if (emailValidation && isPhoneValid && isFirstNameValid && isLastNameValid && isCustomFieldValid) return;\n !isEmailValid && this.validateField(this.regEmail, this.emailErrorMsg);\n !isFirstNameValid && this.validateField(this.firstName, this.firstNameErrorMsg);\n !isLastNameValid && this.validateField(this.lastName, this.lastNameErrorMsg);\n throw 'Please insert required fields';\n }\n\n private getFilepondPlaceholder() {\n return `<div class=\"s-login-modal-filepond-placeholder\"><span class=\"s-login-modal-filepond-placeholder-icon\">${CameraIcon}</span><p class=\"s-login-modal-filepond-placeholder-text\">${this.dragAndDrop}</p> <span class=\"filepond--label-action\">${this.browseFromFiles}</span></div>`\n }\n\n // eslint-disable-next-line @stencil/own-methods-must-be-private\n validateField(field: HTMLInputElement | HTMLSallaFileUploadElement, errorMsg: string) {\n field.classList.add('s-has-error');\n field.nextElementSibling['innerText'] = '* ' + errorMsg;\n }\n\n generateTabClasses(tabName) {\n return {\n 's-login-modal-tab': tabName !== 'registration' && tabName !== 'otp',\n \"s-hidden\": this.currentTabName !== tabName,\n \"s-show\": this.currentTabName === tabName,\n 's-login-modal-unactive': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName !== tabName,\n 's-login-modal-active': tabName !== 'registration' && tabName !== 'otp' && this.currentTabName === tabName\n }\n }\n\n generateRegClasses(regType) {\n return {\n \"mb-1.5\": true,\n \"s-hidden\": this.regType === regType\n }\n }\n\n render() {\n // @ts-ignore\n // @ts-ignore\n return (\n <salla-modal class=\"s-login-modal\" modal-title={this.title} ref={modal => this.modal = modal} width=\"xs\">\n <span slot='icon' class=\"s-login-modal-header-icon\" innerHTML={UserIcon}/>\n <div class=\"s-login-modal-wrapper\">\n\n {/* Tab 2 (Login By Mobile)*/}\n {this.isMobileAllowed ?\n <div class={this.generateTabClasses('login-phone')} data-name=\"login-phone\"\n ref={tab => this.mobileTab = tab}>\n <slot name=\"before-login-mobile\"/>\n <form onSubmit={(event) => this.loginBySMS(event)} method=\"POST\">\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input tabindex=\"0\" ref={el => this.loginTelInput = el}\n onKeyDown={e => this.typing(e)}></salla-tel-input>\n {/* @ts-ignore */}\n <salla-button class=\"s-login-modal-enter-button\" type=\"submit\" loader-position='center' width=\"wide\" ref={b => this.smsBtn = b}>\n {salla.lang.get('blocks.header.enter')}\n </salla-button>\n </form>\n {this.isEmailAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.emailTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_email')}</a> : ''}\n <slot name=\"after-login-mobile\"/>\n </div> : ''}\n\n\n {/* Tab 3 (Login By Email)*/}\n {this.isEmailAllowed ?\n <div class={this.generateTabClasses('login-email')} data-name=\"login-email\"\n ref={tab => this.emailTab = tab}>\n <slot name=\"before-login-email\"/>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <form onSubmit={() => this.loginByEmail(event)} method=\"POST\">\n <input type=\"email\" ref={el => this.loginEmail = el} onKeyDown={e => this.typing(e)}\n placeholder=\"your@email.com\"\n enterkeyhint=\"next\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.loginByEmail()}\n ref={b => this.emailBtn = b}>{salla.lang.get('blocks.header.enter')}</salla-button>\n </form>\n {this.isMobileAllowed ?\n <a href=\"#\" onClick={() => this.showTab(this.mobileTab)}\n class=\"s-login-modal-link\">{salla.lang.get('blocks.header.login_by_sms')}</a>\n : ''\n }\n <slot name=\"after-login-email\"/>\n </div> : ''}\n\n\n {/* Tab 4 (Verify OTP)*/}\n <salla-verify display=\"inline\" support-web-auth={this.supportWebAuth ? 'true' : 'false'}\n class={this.generateTabClasses('otp')} data-name=\"otp\" ref={tab => this.verifyTab = tab}\n autoReload={false}>\n <a onClick={() => this.showTab(this.regType == 'phone' ? this.mobileTab : this.emailTab)}\n class=\"s-verify-back\"\n innerHTML={ArrowRightIcon}\n slot=\"after-footer\"\n href=\"#\"/>\n {this.isMobileAllowed && this.regType == 'phone' ? <div dir=\"ltr\" class=\"s-login-modal-currentPhone\" slot=\"mobile\">{this.currentPhone}</div>: ''}\n {this.isEmailAllowed && this.regType == 'email' ? <div dir=\"ltr\" class=\"s-login-modal-currentEmail\" slot=\"email\">{this.currentEmail}</div>: ''}\n </salla-verify>\n\n {/* Tab 5 (Register New User)*/}\n <div data-name=\"registration\" class={this.generateTabClasses('registration')}\n ref={tab => this.registrationTab = tab}>\n <slot name=\"before-registration\"/>\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('blocks.header.your_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.firstName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.first_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div>\n <label class=\"s-login-modal-label\">{salla.lang.get('pages.profile.last_name')}</label>\n <input type=\"text\" class=\"s-login-modal-input\" ref={el => this.lastName = el}\n onKeyDown={e => this.typing(e, this.newUser)}\n placeholder={salla.lang.get('pages.profile.last_name')}/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n\n <div class={this.generateRegClasses('phone')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.mobile')}</label>\n <salla-tel-input ref={el => this.regTelInput = el}\n onKeyDown={e => this.typing(e, this.newUser)}></salla-tel-input>\n </div>\n\n <div class={this.generateRegClasses('email')}>\n <label class=\"s-login-modal-label\">{salla.lang.get('common.elements.email')}</label>\n <input type=\"email\" ref={el => this.regEmail = el} onKeyDown={e => this.typing(e, this.newUser)}\n placeholder=\"your@email.com\"\n class=\"s-login-modal-input s-ltr\"/>\n <span class=\"s-login-modal-error-message\"/>\n </div>\n <div class=\"s-login-modal-custom-fields\" ref={el => this.customFieldsWrapper = el}>{\n this.customFields.map((field: CustomField) => [\n <label class=\"s-login-modal-label\">{field.label}</label>,\n field.type === CustomFieldType.PHOTO\n ? <salla-file-upload\n name=\"image\"\n instant-upload={true}\n id={`${field.id}`}\n title={field.label}\n required={field.required}\n url={salla.url.get('upload-image')}\n // onUploaded={}\n labelIdle={this.getFilepondPlaceholder()}/>\n : <input\n onInput={el => field.type == CustomFieldType.NUMBER ? salla.helpers.inputDigitsOnly(el.target) : {}}\n onKeyDown={e => this.typing(e, this.newUser)}\n class=\"s-login-modal-input s-ltr\"\n maxlength={field.length || 1000}//todo:: support it by adding the maxlength or not, not setting static limit\n placeholder={field.description}\n required={field.required}\n title={field.label}\n id={`${field.id}`}\n type=\"text\"/>,\n <span class=\"s-login-modal-error-message\"/>\n ])\n }</div>\n\n <salla-button loader-position='center' width=\"wide\" onClick={() => this.newUser()}\n ref={b => this.regBtn = b}>{salla.lang.get('blocks.header.register')}</salla-button>\n <slot name=\"after-registration\"/>\n </div>\n </div>\n </salla-modal>\n );\n }\n}\n\n"],"version":3}
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
* Crafted with ❤ by Salla
|
|
3
3
|
*/
|
|
4
4
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
const ArrowRightIcon = `<!-- Generated by IcoMoon.io -->
|
|
7
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
|
8
|
+
<title>keyboard_arrow_right</title>
|
|
9
|
+
<path d="M11.438 22.479l6.125-6.125-6.125-6.125 1.875-1.875 8 8-8 8z"></path>
|
|
10
|
+
</svg>
|
|
11
|
+
`;
|
|
6
12
|
|
|
7
13
|
const ArrowLeftIcon = `<!-- Generated by IcoMoon.io -->
|
|
8
14
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
|
@@ -411,10 +417,10 @@ const SallaSlider = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
411
417
|
: '', h("div", { class: "s-slider-block__title-left" }, this.displayAllUrl ?
|
|
412
418
|
h("a", { href: this.displayAllUrl, class: "s-slider-block__display-all" }, this.displayAllTitle)
|
|
413
419
|
: '', this.showControls ?
|
|
414
|
-
h("div", { class: "s-slider-block__title-nav", dir: "rtl" }, h("button", { "aria-label": "Previous Slide", class: "s-slider-prev s-slider-nav-arrow" }, h("span", { class: "s-slider-button-icon", innerHTML: this.direction == 'rtl' ?
|
|
420
|
+
h("div", { class: "s-slider-block__title-nav", dir: "rtl" }, h("button", { "aria-label": "Previous Slide", class: "s-slider-prev s-slider-nav-arrow" }, h("span", { class: "s-slider-button-icon", innerHTML: this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon })), h("button", { "aria-label": "Next Slide", class: "s-slider-next s-slider-nav-arrow" }, h("span", { class: "s-slider-button-icon", innerHTML: this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon })))
|
|
415
421
|
: ''))
|
|
416
422
|
: '', h("div", { class: "swiper s-slider-container", ref: el => this.sliderContainer = el, dir: this.vertical ? "ltr" : this.direction }, h("slot", null), h("div", { class: "swiper-wrapper s-slider-swiper-wrapper", ref: el => this.sliderWrapper = el }, h("slot", { name: 'items' })), this.pagination ? h("div", { class: "swiper-pagination" }) : ''), this.type == 'thumbs' && this.hasThumbSlot ? h("div", { class: "s-slider-thumbs" }, h("div", { class: "swiper s-slider-thumbs-container", dir: this.getThumbsDirection(), ref: el => this.thumbsSliderContainer = el }, h("div", { class: { "s-slider-swiper-wrapper swiper-wrapper": true, "s-slider-grid-thumbs": this.gridThumbs }, ref: el => this.thumbsSliderWrapper = el }, h("slot", { name: "thumbs" })), this.showThumbsControls ?
|
|
417
|
-
h("div", { class: "s-slider-thumbs-nav", dir: "rtl" }, h("button", { "aria-label": "Previous Slide", class: "s-slider-thumbs-prev s-slider-nav-arrow" }, h("span", { class: "s-slider-button-icon", innerHTML: this.direction == 'rtl' ?
|
|
423
|
+
h("div", { class: "s-slider-thumbs-nav", dir: "rtl" }, h("button", { "aria-label": "Previous Slide", class: "s-slider-thumbs-prev s-slider-nav-arrow" }, h("span", { class: "s-slider-button-icon", innerHTML: this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon })), h("button", { "aria-label": "Next Slide", class: "s-slider-thumbs-next s-slider-nav-arrow" }, h("span", { class: "s-slider-button-icon", innerHTML: this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon })))
|
|
418
424
|
: null))
|
|
419
425
|
: null));
|
|
420
426
|
}
|