{"version":3,"file":"onboarding-c476f66c.js","sources":["../../../engines/creator_app/app/assets/javascripts/components/social_media_urls_controller.js","../../../engines/creator_app/app/assets/javascripts/components/fiscal_info_controller.js","../../../engines/creator_app/app/assets/javascripts/components/income_controller.js","../../../engines/creator_app/app/assets/javascripts/onboarding/index.js"],"sourcesContent":["import { Controller } from '@hotwired/stimulus';\n\nconst SOCIAL_MEDIA_PLATFORMS = [\n {\n name: 'Twitch',\n fieldClassName: 'social-media-url__field--twitch',\n urlRegex: /twitch\\.tv\\//,\n },\n {\n name: 'Tiktok',\n fieldClassName: 'social-media-url__field--tiktok',\n urlRegex: /tiktok\\.com\\//,\n },\n {\n name: 'Youtube',\n fieldClassName: 'social-media-url__field--youtube',\n urlRegex: /youtube\\.com\\//,\n },\n {\n name: 'Link do canal ou rede social',\n fieldClassName: 'social-media-url__field--others',\n urlRegex: /.*/,\n },\n];\n\n/* eslint-disable max-len */\nconst FIELD_TEMPLATE = `\n
\n
\n
\n
\n\n
\n \n social-media-urls#formatUrl\" placeholder=\"https://\" />\n \n
\n\n \n
\n`;\n/* eslint-enable max-len */\n\nconst SOCIAL_MEDIA_FIELD_CLASS_NAMES = SOCIAL_MEDIA_PLATFORMS.map((socialMedia) => socialMedia.fieldClassName);\n\nconst FIELD_SELECTOR = '.social-media-url__field';\n\n// Regex from https://uibakery.io/regex-library/url\n// eslint-disable-next-line max-len\nconst URL_REGEX = /^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/;\n\nconst formatUrl = (url) => {\n let formattedUrl = url.toLowerCase().trim();\n\n if (formattedUrl.length === 0) {\n return '';\n }\n\n if (!formattedUrl.match(/^https?:\\/\\//)) {\n formattedUrl = `https://${formattedUrl}`;\n }\n\n return formattedUrl;\n};\n\nexport default class extends Controller {\n static targets = ['fields', 'submit'];\n\n static values = { urls: Array };\n\n connect() {\n this.makeSureAtLeastOneFieldExists();\n\n this.urlsValue.forEach((url) => {\n const $addedField = this.add();\n\n const $unformattedInput = $addedField.find('input[type=\"text\"]');\n\n $unformattedInput.val(url);\n\n this.formatUrlForInput($unformattedInput[0]);\n });\n }\n\n makeSureAtLeastOneFieldExists() {\n if (this.urlsValue.length === 0) {\n this.urlsValue = [''];\n }\n }\n\n add() {\n const $addedField = $(FIELD_TEMPLATE);\n\n $(this.fieldsTarget).append($addedField);\n\n return $addedField;\n }\n\n remove(event) {\n const $removeButton = $(event.currentTarget);\n $removeButton.closest(FIELD_SELECTOR).remove();\n\n this.updateLabelCounters();\n this.checkSubmitValidity();\n }\n\n formatUrl(event) {\n this.formatUrlForInput(event.currentTarget);\n }\n\n formatUrlForInput(input) {\n const $unformattedInput = $(input);\n const $formattedInput = $unformattedInput.siblings('input[name=\"social_media_urls[]\"]');\n const $field = $unformattedInput.closest(FIELD_SELECTOR);\n const $label = $unformattedInput.siblings('label');\n\n const formattedUrl = formatUrl($unformattedInput.val());\n $formattedInput.val(formattedUrl);\n\n const isValid = URL_REGEX.test(formattedUrl) || formattedUrl === '';\n\n $unformattedInput.toggleClass('is-invalid', !isValid);\n\n const socialMedia = SOCIAL_MEDIA_PLATFORMS.find((socialMediaItem) => formattedUrl.match(socialMediaItem.urlRegex));\n\n if (!$field.hasClass(socialMedia.fieldClassName)) {\n $field.removeClass(SOCIAL_MEDIA_FIELD_CLASS_NAMES.join(' '));\n $field.addClass(socialMedia.fieldClassName);\n\n $label.text(socialMedia.name);\n\n this.updateLabelCounters();\n }\n\n this.checkSubmitValidity();\n }\n\n updateLabelCounters() {\n SOCIAL_MEDIA_PLATFORMS.forEach((socialMedia) => {\n const $fields = $(this.fieldsTarget).find(`.${socialMedia.fieldClassName}`);\n\n $fields.each((index, field) => {\n const $label = $(field).find('label');\n\n $label.text(`${socialMedia.name} #${index + 1}`);\n });\n });\n }\n\n checkSubmitValidity() {\n const $urls = $(this.fieldsTarget).find('input[name=\"social_media_urls[]\"]');\n\n const atLeastOneUrlFilled = $urls.map((_, url) => $(url).val().length > 0).toArray().some((isValid) => isValid);\n const allValuesAreValid = $(this.fieldsTarget).find('.is-invalid').length === 0;\n\n this.submitTarget.disabled = !atLeastOneUrlFilled || !allValuesAreValid;\n }\n}\n","/* eslint-disable class-methods-use-this */\n/* eslint-disable no-restricted-syntax */\nimport { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n static targets = [\n 'usPersonCheckbox',\n 'usPersonDetails',\n 'usPersonNumber',\n 'taxResidenceInOcdeCheckbox',\n 'taxResidenceInOcdeDetails',\n 'taxResidenceInOcdeCountry',\n 'taxResidenceInOcdeTaxNumber',\n 'addCountryButton',\n 'countryTemplate',\n ];\n\n static values = { formClass: String };\n\n connect() {\n this.newCountryTemplate = this.countryTemplateTarget.outerHTML;\n\n this.setupCountryFields();\n\n $(this.usPersonNumberTarget).mask('000-00-0000', { reverse: false });\n\n $(`.${this.formClassValue}`).on('submit', (e) => {\n if (!this.validateUsPersonNumber() || !this.validateTaxResidenceInOcdeTaxNumbers()) {\n e.preventDefault();\n }\n });\n }\n\n setupCountryFields() {\n const $taxResidenceInOcdeCountry = $(this.taxResidenceInOcdeCountryTargets);\n\n $taxResidenceInOcdeCountry.select2({\n language: {\n noResults() {\n return 'País não listado na OCDE';\n },\n },\n });\n }\n\n addNewCountryField() {\n const $addCountryButton = $(this.addCountryButtonTarget);\n\n $addCountryButton.before(this.newCountryTemplate);\n\n this.setupCountryFields();\n\n $.$EventBus.emit('form:reattachValidation');\n }\n\n removeCountryField(e) {\n const $form = $(`.${this.formClassValue}`);\n const $taxResidenceInOcdeCountries = $(this.taxResidenceInOcdeCountryTargets);\n const $button = $(e.target);\n\n if ($taxResidenceInOcdeCountries.length === 1) {\n return;\n }\n\n $button.closest('.fiscal-info__row').remove();\n $form.trigger('change');\n }\n\n toggleUsPersonDetails() {\n $(this.usPersonDetailsTarget).toggle();\n }\n\n toggleTaxResidenceInOcdeDetails() {\n $(this.taxResidenceInOcdeDetailsTarget).toggle();\n }\n\n validateUsPersonNumber() {\n // Regex from https://uibakery.io/regex-library/ssn\n const ssnRegex = /^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$/;\n const $ssnInput = $(this.usPersonNumberTarget);\n const ssn = $ssnInput.val();\n\n const $usPersonCheckbox = $(this.usPersonCheckboxTarget);\n\n if (!$usPersonCheckbox.is(':checked')) {\n return true;\n }\n\n if (ssn.length < 11) {\n $ssnInput.addClass('is-invalid');\n $ssnInput.siblings('.h-form__feedback--invalid').text('Número de caractéres insuficiente');\n\n return false;\n }\n\n if (!ssnRegex.test(ssn)) {\n $ssnInput.addClass('is-invalid');\n $ssnInput.siblings('.h-form__feedback--invalid').text('SSN inválido');\n\n return false;\n }\n\n return true;\n }\n\n validateTaxResidenceInOcdeTaxNumbers() {\n const $taxResidenceInOcdeCheckbox = $(this.taxResidenceInOcdeCheckboxTarget);\n const $taxResidenceInOcdeTaxNumbers = $(this.taxResidenceInOcdeTaxNumberTargets);\n\n let isValid = true;\n\n if (!$taxResidenceInOcdeCheckbox.is(':checked')) {\n return true;\n }\n\n for (const number of $taxResidenceInOcdeTaxNumbers) {\n const $numberInput = $(number);\n\n if ($numberInput.val().length < 5) {\n $numberInput.addClass('is-invalid');\n $numberInput.siblings('.h-form__feedback--invalid').text('Número de caracteres insuficiente');\n\n isValid = false;\n }\n\n if ($numberInput.val().length > 18) {\n $numberInput.addClass('is-invalid');\n $numberInput.siblings('.h-form__feedback--invalid').text('Número de caracteres acima do esperado');\n\n isValid = false;\n }\n }\n\n return isValid;\n }\n}\n","/* eslint-disable class-methods-use-this */\nimport { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n static targets = ['incomeManualField', 'incomeManualInput', 'errorMessage'];\n\n static values = {\n highestIncome: Number,\n };\n\n connect() {\n $(this.incomeManualInputTarget).mask('#.##0', { reverse: true });\n\n $('form').on('submit', (e) => {\n const parsedVal = parseFloat(this.incomeManualInputTarget.value.replace('.', ''));\n\n if (parsedVal < this.highestIncomeValue) {\n e.preventDefault();\n\n $(this.incomeManualInputTarget).addClass('creator-onboarding-form__input--invalid');\n $(this.errorMessageTarget).show();\n }\n });\n }\n\n showIncomeManualField() {\n $(this.incomeManualFieldTarget).removeClass('d-none');\n\n $.$EventBus.emit('form:reattachValidation');\n }\n\n hideIncomeManualField() {\n $(this.incomeManualFieldTarget).addClass('d-none');\n\n $.$EventBus.emit('form:reattachValidation');\n }\n\n clearError() {\n $(this.incomeManualInputTarget).removeClass('creator-onboarding-form__input--invalid');\n $(this.errorMessageTarget).hide();\n }\n}\n","import Stimulus from '@root/javascripts/stimulus';\n\nimport SocialMediaUrlsController from '../components/social_media_urls_controller';\nimport FiscalInfoController from '../components/fiscal_info_controller';\nimport IncomeController from '../components/income_controller';\n\nStimulus.register('social-media-urls', SocialMediaUrlsController);\nStimulus.register('fiscal-info', FiscalInfoController);\nStimulus.register('income', IncomeController);\n\n$.ajaxSetup({\n statusCode: {\n 302(response) {\n const redirectUrl = response.getResponseHeader('X-Ajax-Redirect-Url');\n if (redirectUrl !== undefined) {\n window.location.pathname = redirectUrl;\n }\n },\n },\n});\n"],"names":["SOCIAL_MEDIA_PLATFORMS","FIELD_TEMPLATE","SOCIAL_MEDIA_FIELD_CLASS_NAMES","socialMedia","FIELD_SELECTOR","URL_REGEX","formatUrl","url","formattedUrl","SocialMediaUrlsController","Controller","$unformattedInput","$addedField","event","input","$formattedInput","$field","$label","isValid","socialMediaItem","index","field","atLeastOneUrlFilled","_","allValuesAreValid","__publicField","FiscalInfoController","$form","$taxResidenceInOcdeCountries","$button","ssnRegex","$ssnInput","ssn","$taxResidenceInOcdeCheckbox","$taxResidenceInOcdeTaxNumbers","number","$numberInput","IncomeController","Stimulus","response","redirectUrl"],"mappings":"0NAEA,MAAMA,EAAyB,CAC7B,CACE,KAAM,SACN,eAAgB,kCAChB,SAAU,cACX,EACD,CACE,KAAM,SACN,eAAgB,kCAChB,SAAU,eACX,EACD,CACE,KAAM,UACN,eAAgB,mCAChB,SAAU,gBACX,EACD,CACE,KAAM,+BACN,eAAgB,kCAChB,SAAU,IACX,CACH,EAGMC,EAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBjBC,EAAiCF,EAAuB,IAAKG,GAAgBA,EAAY,cAAc,EAEvGC,EAAiB,2BAIjBC,EAAY,2GAEZC,EAAaC,GAAQ,CACzB,IAAIC,EAAeD,EAAI,YAAa,EAAC,KAAI,EAEzC,OAAIC,EAAa,SAAW,EACnB,IAGJA,EAAa,MAAM,cAAc,IACpCA,EAAe,WAAWA,CAAY,IAGjCA,EACT,EAEe,MAAKC,UAASC,CAAW,CAKtC,SAAU,CACR,KAAK,8BAA6B,EAElC,KAAK,UAAU,QAASH,GAAQ,CAG9B,MAAMI,EAFc,KAAK,MAEa,KAAK,oBAAoB,EAE/DA,EAAkB,IAAIJ,CAAG,EAEzB,KAAK,kBAAkBI,EAAkB,CAAC,CAAC,CACjD,CAAK,CACF,CAED,+BAAgC,CAC1B,KAAK,UAAU,SAAW,IAC5B,KAAK,UAAY,CAAC,EAAE,EAEvB,CAED,KAAM,CACJ,MAAMC,EAAc,EAAEX,CAAc,EAEpC,SAAE,KAAK,YAAY,EAAE,OAAOW,CAAW,EAEhCA,CACR,CAED,OAAOC,EAAO,CACU,EAAEA,EAAM,aAAa,EAC7B,QAAQT,CAAc,EAAE,OAAM,EAE5C,KAAK,oBAAmB,EACxB,KAAK,oBAAmB,CACzB,CAED,UAAUS,EAAO,CACf,KAAK,kBAAkBA,EAAM,aAAa,CAC3C,CAED,kBAAkBC,EAAO,CACvB,MAAMH,EAAoB,EAAEG,CAAK,EAC3BC,EAAkBJ,EAAkB,SAAS,mCAAmC,EAChFK,EAASL,EAAkB,QAAQP,CAAc,EACjDa,EAASN,EAAkB,SAAS,OAAO,EAE3CH,EAAeF,EAAUK,EAAkB,IAAK,CAAA,EACtDI,EAAgB,IAAIP,CAAY,EAEhC,MAAMU,EAAUb,EAAU,KAAKG,CAAY,GAAKA,IAAiB,GAEjEG,EAAkB,YAAY,aAAc,CAACO,CAAO,EAEpD,MAAMf,EAAcH,EAAuB,KAAMmB,GAAoBX,EAAa,MAAMW,EAAgB,QAAQ,CAAC,EAE5GH,EAAO,SAASb,EAAY,cAAc,IAC7Ca,EAAO,YAAYd,EAA+B,KAAK,GAAG,CAAC,EAC3Dc,EAAO,SAASb,EAAY,cAAc,EAE1Cc,EAAO,KAAKd,EAAY,IAAI,EAE5B,KAAK,oBAAmB,GAG1B,KAAK,oBAAmB,CACzB,CAED,qBAAsB,CACpBH,EAAuB,QAASG,GAAgB,CAC9B,EAAE,KAAK,YAAY,EAAE,KAAK,IAAIA,EAAY,cAAc,EAAE,EAElE,KAAK,CAACiB,EAAOC,IAAU,CACd,EAAEA,CAAK,EAAE,KAAK,OAAO,EAE7B,KAAK,GAAGlB,EAAY,IAAI,KAAKiB,EAAQ,CAAC,EAAE,CACvD,CAAO,CACP,CAAK,CACF,CAED,qBAAsB,CAGpB,MAAME,EAFQ,EAAE,KAAK,YAAY,EAAE,KAAK,mCAAmC,EAEzC,IAAI,CAACC,EAAGhB,IAAQ,EAAEA,CAAG,EAAE,IAAG,EAAG,OAAS,CAAC,EAAE,QAAO,EAAG,KAAMW,GAAYA,CAAO,EACxGM,EAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,SAAW,EAE9E,KAAK,aAAa,SAAW,CAACF,GAAuB,CAACE,CACvD,CACH,CA3FEC,EADkBhB,EACX,UAAU,CAAC,SAAU,QAAQ,GAEpCgB,EAHkBhB,EAGX,SAAS,CAAE,KAAM,QClEX,MAAKiB,UAAShB,CAAW,CAetC,SAAU,CACR,KAAK,mBAAqB,KAAK,sBAAsB,UAErD,KAAK,mBAAkB,EAEvB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAe,CAAE,QAAS,EAAK,CAAE,EAEnE,EAAE,IAAI,KAAK,cAAc,EAAE,EAAE,GAAG,SAAW,GAAM,EAC3C,CAAC,KAAK,uBAAsB,GAAM,CAAC,KAAK,qCAAoC,IAC9E,EAAE,eAAc,CAExB,CAAK,CACF,CAED,oBAAqB,CACgB,EAAE,KAAK,gCAAgC,EAE/C,QAAQ,CACjC,SAAU,CACR,WAAY,CACV,MAAO,0BACR,CACF,CACP,CAAK,CACF,CAED,oBAAqB,CACO,EAAE,KAAK,sBAAsB,EAErC,OAAO,KAAK,kBAAkB,EAEhD,KAAK,mBAAkB,EAEvB,EAAE,UAAU,KAAK,yBAAyB,CAC3C,CAED,mBAAmB,EAAG,CACpB,MAAMiB,EAAQ,EAAE,IAAI,KAAK,cAAc,EAAE,EACnCC,EAA+B,EAAE,KAAK,gCAAgC,EACtEC,EAAU,EAAE,EAAE,MAAM,EAEtBD,EAA6B,SAAW,IAI5CC,EAAQ,QAAQ,mBAAmB,EAAE,OAAM,EAC3CF,EAAM,QAAQ,QAAQ,EACvB,CAED,uBAAwB,CACtB,EAAE,KAAK,qBAAqB,EAAE,OAAM,CACrC,CAED,iCAAkC,CAChC,EAAE,KAAK,+BAA+B,EAAE,OAAM,CAC/C,CAED,wBAAyB,CAEvB,MAAMG,EAAW,sDACXC,EAAY,EAAE,KAAK,oBAAoB,EACvCC,EAAMD,EAAU,MAItB,OAF0B,EAAE,KAAK,sBAAsB,EAEhC,GAAG,UAAU,EAIhCC,EAAI,OAAS,IACfD,EAAU,SAAS,YAAY,EAC/BA,EAAU,SAAS,4BAA4B,EAAE,KAAK,mCAAmC,EAElF,IAGJD,EAAS,KAAKE,CAAG,EAOf,IANLD,EAAU,SAAS,YAAY,EAC/BA,EAAU,SAAS,4BAA4B,EAAE,KAAK,cAAc,EAE7D,IAdA,EAkBV,CAED,sCAAuC,CACrC,MAAME,EAA8B,EAAE,KAAK,gCAAgC,EACrEC,EAAgC,EAAE,KAAK,kCAAkC,EAE/E,IAAIhB,EAAU,GAEd,GAAI,CAACe,EAA4B,GAAG,UAAU,EAC5C,MAAO,GAGT,UAAWE,KAAUD,EAA+B,CAClD,MAAME,EAAe,EAAED,CAAM,EAEzBC,EAAa,MAAM,OAAS,IAC9BA,EAAa,SAAS,YAAY,EAClCA,EAAa,SAAS,4BAA4B,EAAE,KAAK,mCAAmC,EAE5FlB,EAAU,IAGRkB,EAAa,MAAM,OAAS,KAC9BA,EAAa,SAAS,YAAY,EAClCA,EAAa,SAAS,4BAA4B,EAAE,KAAK,wCAAwC,EAEjGlB,EAAU,GAEb,CAED,OAAOA,CACR,CACH,CAlIEO,EADkBC,EACX,UAAU,CACf,mBACA,kBACA,iBACA,6BACA,4BACA,4BACA,8BACA,mBACA,iBACJ,GAEED,EAbkBC,EAaX,SAAS,CAAE,UAAW,SCdhB,MAAKW,UAAS3B,CAAW,CAOtC,SAAU,CACR,EAAE,KAAK,uBAAuB,EAAE,KAAK,QAAS,CAAE,QAAS,EAAI,CAAE,EAE/D,EAAE,MAAM,EAAE,GAAG,SAAW,GAAM,CACV,WAAW,KAAK,wBAAwB,MAAM,QAAQ,IAAK,EAAE,CAAC,EAEhE,KAAK,qBACnB,EAAE,eAAc,EAEhB,EAAE,KAAK,uBAAuB,EAAE,SAAS,yCAAyC,EAClF,EAAE,KAAK,kBAAkB,EAAE,KAAI,EAEvC,CAAK,CACF,CAED,uBAAwB,CACtB,EAAE,KAAK,uBAAuB,EAAE,YAAY,QAAQ,EAEpD,EAAE,UAAU,KAAK,yBAAyB,CAC3C,CAED,uBAAwB,CACtB,EAAE,KAAK,uBAAuB,EAAE,SAAS,QAAQ,EAEjD,EAAE,UAAU,KAAK,yBAAyB,CAC3C,CAED,YAAa,CACX,EAAE,KAAK,uBAAuB,EAAE,YAAY,yCAAyC,EACrF,EAAE,KAAK,kBAAkB,EAAE,KAAI,CAChC,CACH,CArCEe,EADkBY,EACX,UAAU,CAAC,oBAAqB,oBAAqB,cAAc,GAE1EZ,EAHkBY,EAGX,SAAS,CACd,cAAe,MACnB,GCFAC,EAAS,SAAS,oBAAqB7B,CAAyB,EAChE6B,EAAS,SAAS,cAAeZ,CAAoB,EACrDY,EAAS,SAAS,SAAUD,CAAgB,EAE5C,EAAE,UAAU,CACV,WAAY,CACV,IAAIE,EAAU,CACZ,MAAMC,EAAcD,EAAS,kBAAkB,qBAAqB,EAChEC,IAAgB,SAClB,OAAO,SAAS,SAAWA,EAE9B,CACF,CACH,CAAC"}