{"version":3,"file":"BFhnpifg.js","sources":["../../../../mixins/fieldMixin.js"],"sourcesContent":["export const RULES = {\n required(value) { return !!value || this.$t('global.required'); },\n requiredArray(value) { return (value && value.length !== 0) || this.$t('global.required'); },\n email(value) {\n if (!value) return true;\n const pattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return pattern.test(value) || this.t('invalidEmail');\n },\n};\n\nexport const RULES_FOR_FIELDS = {\n required: ['String', 'Number', 'Date', 'Select', 'User', 'Markdown'],\n requiredArray: ['Link', 'Attachment', 'CoverImage', 'MultipleSelect'],\n email: 'User',\n};\n\nconst VALIDATORS = {\n max_items({ rule }, value) {\n if (value && value.length > rule.value) {\n return this.t('errors.records.field_value_has_too_many_items');\n }\n\n return true;\n },\n min_items({ rule }, value) {\n if (value && value.length < rule.value) {\n return this.t('errors.records.field_value_has_too_few_items');\n }\n\n return true;\n },\n max_characters({ rule, field }, value) {\n const valueToCheck = (field.type === 'Markdown' ? this.$markdownToText(value) : value) || '';\n\n if (valueToCheck.length > rule.value) {\n return this.$t('errors.records.field_value_has_too_many_characters');\n }\n\n return true;\n },\n min_characters({ rule, field }, value) {\n const valueToCheck = (field.type === 'Markdown' ? this.$markdownToText(value) : value) || '';\n\n if (valueToCheck.length < rule.value) {\n return this.$t('errors.records.field_value_has_too_few_characters');\n }\n\n return true;\n },\n};\n\nexport const fieldMixin = {\n computed: {\n fieldMixin__fieldRules() {\n return this.fieldMixin__findFieldRules(this.field);\n },\n fieldMixin__maxCharacters() {\n return this.fieldMixin__findRule(this.field, 'max_characters')?.value || null;\n },\n },\n methods: {\n fieldMixin__findFieldRules(field) {\n const rules = [];\n\n Object.keys(VALIDATORS).forEach((ruleType) => {\n const rule = this.fieldMixin__findRule(field, ruleType);\n const validator = VALIDATORS[ruleType];\n\n if (rule) {\n rules.push(validator.bind(this, { rule, field }));\n }\n });\n\n return rules;\n },\n fieldMixin__findRule(field, ruleType) {\n return field?.rules?.find(rule => rule.type === ruleType);\n },\n },\n};\n"],"names":["RULES","value","RULES_FOR_FIELDS","VALIDATORS","rule","field","fieldMixin","_a","rules","ruleType","validator"],"mappings":"AAAY,MAACA,EAAQ,CACnB,SAASC,EAAO,CAAE,MAAO,CAAC,CAACA,GAAS,KAAK,GAAG,iBAAiB,CAAI,EACjE,cAAcA,EAAO,CAAE,OAAQA,GAASA,EAAM,SAAW,GAAM,KAAK,GAAG,iBAAiB,CAAI,EAC5F,MAAMA,EAAO,CACX,OAAKA,EACW,uJACD,KAAKA,CAAK,GAAK,KAAK,EAAE,cAAc,EAFhC,EAGpB,CACH,EAEaC,EAAmB,CAC9B,SAAU,CAAC,SAAU,SAAU,OAAQ,SAAU,OAAQ,UAAU,EACnE,cAAe,CAAC,OAAQ,aAAc,aAAc,gBAAgB,EACpE,MAAO,MACT,EAEMC,EAAa,CACjB,UAAU,CAAE,KAAAC,CAAM,EAAEH,EAAO,CACzB,OAAIA,GAASA,EAAM,OAASG,EAAK,MACxB,KAAK,EAAE,+CAA+C,EAGxD,EACR,EACD,UAAU,CAAE,KAAAA,CAAM,EAAEH,EAAO,CACzB,OAAIA,GAASA,EAAM,OAASG,EAAK,MACxB,KAAK,EAAE,8CAA8C,EAGvD,EACR,EACD,eAAe,CAAE,KAAAA,EAAM,MAAAC,CAAK,EAAIJ,EAAO,CAGrC,QAFsBI,EAAM,OAAS,WAAa,KAAK,gBAAgBJ,CAAK,EAAIA,IAAU,IAEzE,OAASG,EAAK,MACtB,KAAK,GAAG,oDAAoD,EAG9D,EACR,EACD,eAAe,CAAE,KAAAA,EAAM,MAAAC,CAAK,EAAIJ,EAAO,CAGrC,QAFsBI,EAAM,OAAS,WAAa,KAAK,gBAAgBJ,CAAK,EAAIA,IAAU,IAEzE,OAASG,EAAK,MACtB,KAAK,GAAG,mDAAmD,EAG7D,EACR,CACH,EAEaE,EAAa,CACxB,SAAU,CACR,wBAAyB,CACvB,OAAO,KAAK,2BAA2B,KAAK,KAAK,CAClD,EACD,2BAA4B,CAxDpB,IAAAC,EAyDN,QAAOA,EAAA,KAAK,qBAAqB,KAAK,MAAO,gBAAgB,IAAtD,YAAAA,EAAyD,QAAS,IAC1E,CACF,EACD,QAAS,CACP,2BAA2BF,EAAO,CAChC,MAAMG,EAAQ,CAAE,EAEhB,cAAO,KAAKL,CAAU,EAAE,QAASM,GAAa,CAC5C,MAAML,EAAO,KAAK,qBAAqBC,EAAOI,CAAQ,EAChDC,EAAYP,EAAWM,CAAQ,EAEjCL,GACFI,EAAM,KAAKE,EAAU,KAAK,KAAM,CAAE,KAAAN,EAAM,MAAAC,CAAK,CAAE,CAAC,CAE1D,CAAO,EAEMG,CACR,EACD,qBAAqBH,EAAOI,EAAU,CA3E9B,IAAAF,EA4EN,OAAOA,EAAAF,GAAA,YAAAA,EAAO,QAAP,YAAAE,EAAc,KAAKH,GAAQA,EAAK,OAASK,EACjD,CACF,CACH"}