{"version":3,"file":"index.es.min.js","sources":["../../../packages/helpers/src/props.helpers.js","../../../packages/components/src/constants.mjs","../../../packages/components/src/form-item/form-item.js","../../../packages/helpers/src/b2bLeadForm.service.js","../../../packages/components/src/field/field.js","../../../packages/components/src/textarea/textarea.js"],"sourcesContent":["const getData = attributes => attributes.find(attribute => attribute.nodeName === 'data')\n\nconst createProps = attributes => {\n const data = getData([...attributes])\n const props = [...attributes]\n .filter(attribute => attribute.nodeName !== 'data')\n .reduce((all, attr) => {\n return { ...all, [attr.nodeName]: attr.nodeValue }\n }, {})\n\n if (isNil(data)) {\n return props\n }\n\n try {\n return { ...props, ...JSON.parse(data.nodeValue) }\n } catch (error) {\n console.log('ERROR: No data', error, data?.nodeValue)\n }\n}\n\nconst isNil = obj => obj === undefined || obj === null\n\nexport const parseBool = value => (!value || value === 'false' ? false : true)\n\nexport default createProps\n","export const MAX_WIDTH_CONTAINER = 1160\n\nexport const BREAKPOINT_XL = 1920\nexport const BREAKPOINT_TABLET = 1024\nexport const BREAKPOINT_L = 996\nexport const BREAKPOINT_M = 768\nexport const BREAKPOINT_S = 750\nexport const BREAKPOINT_XS = 375\n\nexport const CTA_PRIMARY = 'primary'\nexport const CTA_PRIMARY_TRANSPARENT = 'primary_transparent'\nexport const CTA_SUBTLE = 'subtle'\nexport const CTA_LINK = 'link'\nexport const CTA_LINK_UNDERLINE = 'link-underline'\nexport const CTA_LINK_GOLD = 'link-gold'\nexport const CTA_LINK_ADD_TO_CART_SMALL = 'AddToCart_small'\nexport const CTA_LINK_ADD_TO_CART_LARGE = 'AddToCart_large'\n\nexport const EVENT_TAB_CHANGE = 'EVENT_TAB_CHANGE'\n\nexport const EVENT_VIDEO = 'WEB_COMPONENT_VIDEO'\nexport const EVENT_POPIN_OPEN = 'WEB_COMPONENT_POPIN_OPEN'\nexport const EVENT_POPIN_OPENED = 'WEB_COMPONENT_POPIN_OPENED'\nexport const EVENT_POPIN_CLOSE = 'WEB_COMPONENT_POPIN_CLOSE'\nexport const EVENT_POPIN_CLOSED = 'WEB_COMPONENT_POPIN_CLOSED'\nexport const EVENT_POPIN_CLOSE_CLICK = 'WEB_COMPONENT_POPIN_CLOSE_CLICK'\nexport const EVENT_POPIN_KEY_DOWN = 'keydown'\nexport const EVENT_POPIN_FORM_TOGGLE_TITLE = 'WEB_COMPONENT_POPIN_FORM_TOGGLE_TITLE'\nexport const EVENT_CTA_CLICK = 'WEB_COMPONENT_CTA_CLICK'\nexport const EVENT_HERO_REORDER_OPEN = 'WEB_COMPONENT_HERO_REORDER_OPEN'\nexport const EVENT_HERO_REORDER_CLOSE = 'WEB_COMPONENT_HERO_REORDER_CLOSE'\nexport const EVENT_QUICKVIEW_OPEN = 'WEB_COMPONENT_QUICKVIEW_OPEN'\nexport const EVENT_QS_OPEN = 'WEB_COMPONENT_QS_OPEN'\nexport const EVENT_QS_OPENED = 'WEB_COMPONENT_QS_OPENED'\nexport const EVENT_QS_CLOSE = 'WEB_COMPONENT_QS_CLOSE'\nexport const EVENT_QS_CLOSED = 'WEB_COMPONENT_QS_CLOSED'\nexport const EVENT_QS_CLOSE_CLICK = 'WEB_COMPONENT_QS_CLOSE_CLICK'\nexport const EVENT_QS_KEY_DOWN = 'keydown'\nexport const EVENT_ADD_TO_CART = 'WEB_COMPONENT_ADD_TO_CART'\nexport const EVENT_CART_UPDATED = 'WEB_COMPONENT_CART_UPDATED'\nexport const EVENT_VIDEO_TOGGLE = 'WEB_COMPONENT_VIDEO_TOGGLE'\nexport const VIDEO_ON_HOVER = 'VIDEO_ON_HOVER'\nexport const VIDEO_ON_OUT = 'VIDEO_ON_OUT'\nexport const EVENT_DETAIL_OPEN = 'WEB_COMPONENT_DETAIL_OPEN'\nexport const EVENT_SLIDER_READY = 'WEB_COMPONENT_SLIDER_READY'\nexport const EVENT_SLIDE_CHANGE = 'WEB_COMPONENT_SLIDE_CHANGE'\nexport const EVENT_OVERLAY_OPEN = 'WEB_COMPONENT_OVERLAY_OPEN'\nexport const EVENT_OVERLAY_CLOSE = 'WEB_COMPONENT_OVERLAY_CLOSE'\nexport const EVENT_OVERLAY_CLICKED = 'WEB_COMPONENT_OVERLAY_CLICKED'\nexport const EVENT_OPEN_PRODUCT_AR_CLICKED = 'OPEN_PRODUCT_AR_CLICKED'\nexport const EVENT_SORT_BY_CHANGE = 'WEB_COMPONENT_SORT_BY_CHANGE'\n\nexport const EVENT_BUBBLE_SELECTED = 'EVENT_BUBBLE_SELECTED'\nexport const EVENT_RECO_TOOL_OPTION_CLICKED = 'EVENT_RECO_TOOL_OPTION_CLICKED'\nexport const WEB_COMPONENT_PROJECTS_LOADED = 'WEB_COMPONENT_PROJECTS_LOADED'\nexport const WEB_COMPONENT_ANCHOR_LOADED = 'WEB_COMPONENT_ANCHOR_LOADED'\n\nexport const EVENT_SWIPED_UP = 'swiped-up'\nexport const EVENT_SWIPED_DOWN = 'swiped-down'\nexport const EVENT_SWIPED_LEFT = 'swiped-left'\nexport const EVENT_SWIPED_RIGHT = 'swiped-right'\n\nexport const EVENT_HEADER_POSITION_CHANGED = 'EVENT_HEADER_POSITION_CHANGED'\n\nexport const keys = { ESC: 'Escape' }\n\nexport const ADD_TO_CART_MODIFIER_MINI = 'mini'\nexport const ADD_TO_CART_MODIFIER_DEFAULT = ADD_TO_CART_MODIFIER_MINI\n\nexport const COFFEE_ORIGINAL = 'original'\nexport const COFFEE_VERTUO = 'vertuo'\nexport const COFFEE_PRO = 'pro'\nexport const COFFEE_OL = 'OL'\nexport const COFFEE_VL = 'VL'\nexport const INTENSITY_MAX_OL = 14\nexport const INTENSITY_MAX_VL = 12\nexport const DEFAULT_BUBBLE_ICON = ''\n\nexport const NUMBER_PRODUCTS_SLIDER = 8\nexport const NUMBER_FEATURES_PDP = 8\n\nexport const ALIGNMENT = ['center', 'left', 'right']\nexport const POSITION = ['top', 'right', 'bottom', 'left']\nexport const TRANSLATION_ADD_TO_CART = 'Add to cart'\nexport const TRANSLATION_UPDATE_BASKET = 'Update basket'\n\nexport const TIME_INSTANT = 1\nexport const TIME_FAST = 300\nexport const TIME_MEDIUM = 600\nexport const TIME_SLOW = 1200\n\nexport const APP_APPLE_LINK = {\n default: 'https://apps.apple.com/us/app/nespresso/id342879434',\n us: 'https://apps.apple.com/us/app/nespresso-new/id1609639566',\n uk: 'https://apps.apple.com/gb/app/nespresso-new/id1609639566',\n kr: 'https://apps.apple.com/kr/app/%EB%84%A4%EC%8A%A4%ED%94%84%EB%A0%88%EC%86%8C-%EB%B6%80%ED%8B%B0%ED%81%AC/id1609639566'\n}\nexport const APP_ANDROID_LINK =\n 'https://play.google.com/store/apps/details?id=com.nespresso.activities'\nexport const APP_HUAWEI_LINK = 'https://appgallery.huawei.com/app/C102571517'\n\nexport const SRC_PAGE_PLP = 'plp'\nexport const SRC_PAGE_PDP = 'pdp'\n\nexport const PLP_TYPE_COFFEE = 'coffee'\nexport const PLP_TYPE_MACHINE = 'machine'\nexport const PLP_TYPE_ACCESSORY = 'accessory'\nexport const CALLEO_API_DOMAIN = 'https://www.contact.nespresso.com/'\n\n// SCSS RELATED\n// Todo : should be shared by JS and SCSS\nexport const BROWSER_CONTEXT = 16 // 1rem = 16px\nexport const COLOR_WHITE_1000 = '#FFFFFF' // Do not change for #FFF shortcut, it will break slider-natural gradients !\n\nexport const CONTRAST_DARK = 'dark'\nexport const CONTRAST_LIGHT = 'light'\n\nexport const B2B_CONTACT_FORM_POPIN_ID = 'b2b-contact-form-popin-id'\nexport const B2B_CONTACT_FORM_POPIN_SRC_SEARCH = 'coveo-search'\n\nexport const B2B_CONTACT_FORM_POPIN_SRC_SKU_MAIN_INFO = 'sku-main-info'\n\nexport const B2B_CONTACT_FORM_POPIN_SRC_SKU_MAIN_INFO_AUTO = 'sku-main-info-auto'\n\nexport const ASPECT_RATIO_16_9 = '16/9'\nexport const ASPECT_RATIO_1_1 = '1/1'\n\nexport const NESPRESSO_PRODUCTION_DOMAIN = 'https://www.nespresso.com'\nexport const NESPRESSO_ROLLOUT_DOMAIN = 'https://nc2-env-rollout.nespresso.com'\n\nexport const EVENT_QUIZ_ON_GO_BACK = 'WEB_COMPONENT_EVENT_QUIZ_ON_GO_BACK'\nexport const EVENT_QUIZ_SUBMIT = 'WEB_COMPONENT_EVENT_QUIZ_SUBMIT'\n","import createProps from '@kissui/helpers/src/props.helpers'\nimport { EVENT_POPIN_OPENED } from '../constants.mjs'\n\nconst defaultFieldLabelClass = 't-sm-400-sl'\nconst compactFieldLabelClass = 't-3xs-500-caps-sl'\n\nclass FormItem extends HTMLElement {\n constructor() {\n super()\n this.type = null\n this.value = null\n this.boundKeyPress = this.onKeyPress.bind(this)\n this.boundValueChanged = this.onValueChanged.bind(this)\n this.boundShakeAnimationEnd = this.onShakeAnimationEnd.bind(this)\n this.boundPopinOpened = this.onPopinOpened.bind(this)\n this.boundFocus = this.onFocus.bind(this)\n this.boundBlur = this.onBlur.bind(this)\n }\n\n connectedCallback() {\n this.props = createProps(this.attributes)\n this.classList.add('nb-form-item')\n if (this.type) this.classList.add('nb-' + this.type)\n this.beforeRender()\n this.render()\n this.setRequired()\n this.afterRender()\n this.setCSSvariables()\n this.bindEvent()\n if (this.formElement) {\n this.formElement.addEventListener('focus', this.boundFocus)\n this.formElement.addEventListener('blur', this.boundBlur)\n }\n }\n\n beforeRender() {}\n\n render() {\n const { element_id, element_name, label, input_min_length = '' } = this.props\n\n this.innerHTML = `\n <input id=\"${element_id}\" name=\"${element_name}\" type=\"${this.type}\"\n ${input_min_length ? `minlength = ${input_min_length}` : ''}\n class=\"t-sm-400-sl\" />\n <label for=\"${element_id}\" class=\"${defaultFieldLabelClass}\"><span>${label}</span></label>\n ${this.renderMessages()}\n `\n }\n\n afterRender() {}\n\n setRequired() {\n const { required_message } = this.props\n\n this.formElement = this.querySelector('input, textarea')\n if (required_message) {\n this.formElement.setAttribute('required', 'required')\n }\n }\n\n renderMessages() {\n return `\n ${this.renderRequiredMessage()}\n ${this.renderHelperMessage()}\n ${this.renderNotificationMessage()}\n `\n }\n\n renderRequiredMessage() {\n const { required_message } = this.props\n if (!required_message) {\n return ''\n }\n return `<mark role=\"alert\" class=\"cb-empty t-2xs-500-sl\">${required_message}</mark>`\n }\n\n renderHelperMessage() {\n const { helper_message } = this.props\n if (!helper_message) {\n return ''\n }\n this.classList.add('has-helper')\n return `<p class='cb-helper t-2xs-500-sl'>${helper_message}</p>`\n }\n\n renderNotificationMessage() {\n const { notification_message } = this.props\n if (!notification_message) {\n return ''\n }\n this.classList.add('has-notification')\n return `\n <div class='cb-notification t-2xs-500-sl'>\n <nb-icon icon=\"24/symbol/information\"></nb-icon>\n ${notification_message}\n </div>`\n }\n\n setCSSvariables() {\n const { helper_message, required_message, error_message, max_message } = this.props\n if (helper_message) this.setVariable('helper')\n if (required_message) this.setVariable('empty')\n if (error_message) this.setVariable('error')\n if (max_message) this.setVariable('max')\n }\n\n setVariable(name) {\n const el = this.querySelector('.cb-' + name)\n let height = el.clientHeight\n let margin = parseInt(window.getComputedStyle(el).marginTop)\n const padding = (height + margin) / 16\n this.style.setProperty('--' + name + '-padding-bottom', padding + 'rem')\n }\n\n onKeyPress() {}\n\n onValueChanged(e) {\n if (this.type === 'checkbox') {\n this.value = e.target.checked\n } else {\n this.value = e.target.value\n }\n this.checkFilled()\n this.checkValidity()\n }\n\n onFocus() {\n if (this.type !== 'checkbox') {\n const labelClassList = this.formElement.parentElement.querySelector('label').classList\n labelClassList.add(compactFieldLabelClass)\n labelClassList.remove(defaultFieldLabelClass)\n }\n }\n\n onBlur() {\n this.checkFilled()\n }\n\n checkFilled() {\n const formElementLabel = this.formElement.parentElement.querySelector('label')\n\n // This is to keep label used as placeholder in focus state when textfield is filled\n if (this.value && this.value !== '') {\n this.formElement.classList.add('is-filled')\n if (this.type !== 'checkbox') {\n formElementLabel.classList.add(compactFieldLabelClass)\n formElementLabel.classList.remove(defaultFieldLabelClass)\n }\n } else {\n this.formElement.classList.remove('is-filled')\n if (this.type !== 'checkbox') {\n formElementLabel.classList.add(defaultFieldLabelClass)\n formElementLabel.classList.remove(compactFieldLabelClass)\n }\n }\n }\n\n checkValidity() {\n return this.checkEmpty()\n }\n\n checkEmpty() {\n const { required_message } = this.props\n\n if (!required_message) {\n return true\n }\n\n if (this.value === '' || this.value === false || this.value === null) {\n this.classList.remove('is-error')\n this.classList.add('is-empty')\n return false\n } else {\n this.classList.remove('is-empty')\n return true\n }\n }\n\n shake(messageClass) {\n if (this.classList.contains(messageClass)) {\n this.classList.add('shake')\n this.addEventListener('animationend', this.boundShakeAnimationEnd)\n }\n }\n\n onShakeAnimationEnd() {\n this.classList.remove('shake')\n this.removeEventListener('animationend', this.boundShakeAnimationEnd)\n }\n\n onPopinOpened() {\n // If the form is inside a popin, we need to reset the CSS variables when the popin has its full size\n this.setCSSvariables()\n }\n\n bindEvent() {\n this.unbindEvent()\n window.addEventListener(EVENT_POPIN_OPENED, this.boundPopinOpened)\n this.bindSpecificEvent()\n }\n\n unbindEvent() {\n window.removeEventListener(EVENT_POPIN_OPENED, this.boundPopinOpened)\n this.unbindSpecificEvent()\n }\n\n bindSpecificEvent() {\n if (this.formElement) {\n this.formElement.addEventListener('keyup', this.boundKeyPress)\n this.formElement.addEventListener('change', this.boundValueChanged)\n }\n }\n\n unbindSpecificEvent() {\n if (this.formElement) {\n this.formElement.removeEventListener('keyup', this.boundKeyPress)\n this.formElement.removeEventListener('change', this.boundValueChanged)\n }\n }\n\n disconnectedCallback() {\n this.unbindEvent()\n if (this.formElement) {\n this.formElement.removeEventListener('focus', this.boundFocus)\n this.formElement.removeEventListener('blur', this.boundBlur)\n }\n }\n}\n\ncustomElements.get('nb-form-item') || customElements.define('nb-form-item', FormItem)\nexport default FormItem\n","import { getMarketCode } from '@kissui/helpers/src/dataLayer'\nimport { NESPRESSO_PRODUCTION_DOMAIN, NESPRESSO_ROLLOUT_DOMAIN } from '@kissui/components'\n\nconst apiB2BLeadForm = window.napi && window.napi.market()\n\nexport const getLeadFormFields = async () => {\n return apiB2BLeadForm.getLeadFormFieldDefinitions()\n}\n\nexport const checkFieldExist = (allFormFieldIds, fieldToCheck) => {\n return allFormFieldIds.includes(fieldToCheck)\n}\n\nexport const addAstrixOnMandatoryFields = (label, isMandatory) => {\n return `${label} ${isMandatory ? '*' : ''}` ?? `Label ${isMandatory ? '*' : ''}`\n}\n\n// use rollout test url only on rollout environment\nexport const buildLeadFormSubmitUrl = () => {\n const domainName =\n window.location.origin !== NESPRESSO_ROLLOUT_DOMAIN\n ? NESPRESSO_PRODUCTION_DOMAIN\n : NESPRESSO_ROLLOUT_DOMAIN\n\n return `${domainName}/ecapi/stores/v5/${getMarketCode()}/b2b/lead`\n}\n// This is a bad way of checking, but this was a request, and we don't have any API to blacklist or check fake emails.\nexport const isEmailFakeCheck = emailToCheck => {\n const fakeEmailList = ['a@a.com', 'b@b.com', 'abc@abc.com', '123@123.com']\n\n if (fakeEmailList.includes(emailToCheck)) {\n return true\n }\n}\n","import FormItem from '@kissui/components/src/form-item'\nimport { isEmailFakeCheck } from '@kissui/helpers/src/b2bLeadForm.service'\n\nconst MIN_LENGTH_ERORR_MESSAGE_FALLBACK = 'Please enter minimum 3 characters'\nconst FAKE_EMAIL_MESSAGE_FALLBACK = 'Please use a valid email'\n\nclass Field extends FormItem {\n afterRender() {\n this.setCommonFieldClasses()\n this.setPattern()\n }\n\n setCommonFieldClasses() {\n this.classList.add('nb-field')\n this.querySelector('input, textarea').classList.add('cb-field')\n }\n\n setPattern() {\n const { pattern } = this.props\n\n if (pattern) {\n this.pattern = new RegExp(pattern)\n }\n }\n\n renderMessages() {\n return `\n ${this.renderRequiredMessage()}\n ${this.renderMinLengthMessage()}\n ${this.renderFakeEmailMessage()}\n ${this.renderErrorMessage()}\n ${this.renderHelperMessage()}\n ${this.renderNotificationMessage()}\n `\n }\n\n renderMinLengthMessage() {\n const { input_min_length, min_length_message = MIN_LENGTH_ERORR_MESSAGE_FALLBACK } =\n this.props\n if (!input_min_length || !min_length_message) {\n return ''\n }\n return `<mark role=\"alert\" class=\"cb-error-min-length t-2xs-500-sl\">${min_length_message}</mark>`\n }\n\n renderFakeEmailMessage() {\n if (this.props.input_sub_type !== 'input-email') {\n return ''\n }\n\n const { fake_email_message = FAKE_EMAIL_MESSAGE_FALLBACK } = this.props\n if (!fake_email_message) {\n return ''\n }\n return `<mark role=\"alert\" class=\"cb-error-fake-email t-2xs-500\">${fake_email_message}</mark>`\n }\n\n renderErrorMessage() {\n const { error_message } = this.props\n if (!error_message) {\n return ''\n }\n return `<mark role=\"alert\" class=\"cb-error t-2xs-500-sl\">${error_message}</mark>`\n }\n\n checkValidity() {\n return (\n this.checkEmpty() &&\n this.checkPattern() &&\n this.checkMinLength() &&\n this.checkFakeEmail()\n )\n }\n\n checkPattern() {\n const { pattern } = this.props\n\n if (!pattern) {\n return true\n }\n\n if (this.value !== '' && !this.pattern.test(this.value)) {\n this.removeErrorClasses()\n this.classList.add('is-error')\n this.shake('is-error')\n return false\n } else {\n this.classList.remove('is-error')\n return true\n }\n }\n\n checkMinLength() {\n const { input_min_length, min_length_message = MIN_LENGTH_ERORR_MESSAGE_FALLBACK } =\n this.props\n\n if (!input_min_length || !min_length_message) {\n return true\n }\n if (this.value !== '' && this.value?.length < input_min_length) {\n this.removeErrorClasses()\n this.classList.add('is-error-min-length')\n this.shake('is-error-min-length')\n return false\n } else {\n this.classList.remove('is-error-min-length')\n return true\n }\n }\n\n checkFakeEmail() {\n const { fake_email_message = FAKE_EMAIL_MESSAGE_FALLBACK, input_sub_type } = this.props\n\n if (input_sub_type !== 'input-email' || !fake_email_message) {\n return true\n }\n\n if (this.value !== '' && isEmailFakeCheck(this.value)) {\n this.removeErrorClasses()\n this.classList.add('is-error-fake-email')\n this.shake('is-error-fake-email')\n return false\n } else {\n this.classList.remove('is-error-fake-email')\n return true\n }\n }\n\n removeErrorClasses() {\n this.classList.remove('is-empty')\n this.classList.remove('is-error')\n this.classList.remove('is-error-min-length')\n this.classList.remove('is-error-fake-email')\n }\n}\n\ncustomElements.get('nb-field') || customElements.define('nb-field', Field)\nexport default Field\n","import Field from '@kissui/components/src/field'\n\nclass Textarea extends Field {\n beforeRender() {\n this.classList.add('nb-field')\n this.classList.add('nb-textarea')\n }\n\n render() {\n const { element_id, element_name, label, max } = this.props\n\n this.innerHTML = `\n <textarea id=\"${element_id}\" name=\"${element_name}\" class=\"t-sm-400-sl\"></textarea>\n <label for=\"${element_id}\" class=\"t-sm-400-sl\"><span>${label}</span></label>\n <div class=\"cb-gradients\"></div>\n ${this.renderCounter(max)}\n ${this.renderMessages()}\n `\n }\n\n afterRender() {\n this.setCommonFieldClasses()\n this.setPattern()\n this.setMax()\n }\n\n setMax() {\n const { max } = this.props\n\n if (max) {\n this.max = max\n this.counterElement = this.querySelector('.cb-counter span')\n this.counterElement.textContent = this.formElement.value.length\n this.formElement.setAttribute('maxlength', max)\n }\n }\n\n renderMessages() {\n return `\n ${this.renderRequiredMessage()}\n ${this.renderErrorMessage()}\n ${this.renderMaxMessage()}\n ${this.renderHelperMessage()}\n `\n }\n\n renderMaxMessage() {\n const { max_message } = this.props\n if (!max_message) {\n return ''\n }\n return `<mark role=\"alert\" class=\"cb-max t-2xs-500-sl\">${max_message}</mark>`\n }\n\n renderCounter(max) {\n if (!max) {\n return ''\n }\n return `<div class=\"cb-counter t-3xs-500-caps-sl\"><span>0</span>/${max}</div>`\n }\n\n checkMax(value) {\n if (value == this.max) {\n this.classList.remove('is-empty')\n this.classList.remove('is-error')\n this.classList.add('is-max')\n this.shake('is-max')\n return\n } else {\n this.classList.remove('is-max')\n }\n }\n\n onKeyPress(e) {\n if (this.counterElement) {\n // Update text content\n this.counterElement.textContent = e.target.value.length\n // Check is max has been reached\n this.checkMax(e.target.value.length)\n }\n }\n}\n\ncustomElements.get('nb-textarea') || customElements.define('nb-textarea', Textarea)\nexport default Textarea\n"],"names":["isNil","obj","EVENT_POPIN_OPENED","defaultFieldLabelClass","compactFieldLabelClass","FormItem","HTMLElement","constructor","this","type","value","boundKeyPress","onKeyPress","bind","boundValueChanged","onValueChanged","boundShakeAnimationEnd","onShakeAnimationEnd","boundPopinOpened","onPopinOpened","boundFocus","onFocus","boundBlur","onBlur","connectedCallback","props","attributes","data","find","attribute","nodeName","getData","filter","reduce","all","attr","nodeValue","JSON","parse","error","console","log","createProps","classList","add","beforeRender","render","setRequired","afterRender","setCSSvariables","bindEvent","formElement","addEventListener","element_id","element_name","label","input_min_length","innerHTML","renderMessages","required_message","querySelector","setAttribute","renderRequiredMessage","renderHelperMessage","renderNotificationMessage","helper_message","notification_message","error_message","max_message","setVariable","name","el","padding","clientHeight","parseInt","window","getComputedStyle","marginTop","style","setProperty","e","target","checked","checkFilled","checkValidity","labelClassList","parentElement","remove","formElementLabel","checkEmpty","shake","messageClass","contains","removeEventListener","unbindEvent","bindSpecificEvent","unbindSpecificEvent","disconnectedCallback","customElements","get","define","napi","market","MIN_LENGTH_ERORR_MESSAGE_FALLBACK","FAKE_EMAIL_MESSAGE_FALLBACK","Field","setCommonFieldClasses","setPattern","pattern","RegExp","renderMinLengthMessage","renderFakeEmailMessage","renderErrorMessage","min_length_message","input_sub_type","fake_email_message","checkPattern","checkMinLength","checkFakeEmail","test","removeErrorClasses","length","emailToCheck","includes","isEmailFakeCheck","Textarea","max","renderCounter","setMax","counterElement","textContent","renderMaxMessage","checkMax"],"mappings":"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"}