{"version":3,"file":"TextareaInput-B3HVYjVz.js","sources":["../../../app/javascript/utils/editor/editorRegexPatterns.js","../../../app/javascript/components/shared/TextareaInput.vue"],"sourcesContent":["const textAreaRegex =\n /[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267F\\u2692-\\u2694\\u2696\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED0\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3]|\\uD83E[\\uDD10-\\uDD18\\uDD80-\\uDD84\\uDDC0]|\\uD83C\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uD83C\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uD83C\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uD83C\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF8\\uDDFE\\uDDFF]|\\uD83C\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uD83C\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uD83C\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uD83C\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uD83C\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uD83C\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uD83C\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uD83C\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uD83C\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uD83C\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uD83C\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uD83C\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uD83C\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uD83C\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uD83C\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uD83C\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|[#*0-9]\\u20E3/g;\n\nexport default textAreaRegex;\n","<template>\n <div\n class=\"textarea-input\"\n :class=\"{ 'has-errors': hasErrors }\">\n <label\n v-if=\"label.length\"\n :for=\"inputId\"\n :class=\"theme ? null : labelClass\"\n class=\"control-label\"\n :style=\"labelStyles\">\n <span v-html=\"label\"></span>\n <span\n v-if=\"required\"\n class=\"text-red-4\">\n *\n </span>\n </label>\n <div class=\"flex\">\n <textarea\n :value=\"modelValue\"\n :class=\"textareaClasses\"\n :style=\"textareaTheme\"\n :rows=\"rows\"\n :placeholder=\"placeholder\"\n :maxlength=\"maxLength\"\n :minlength=\"minLength\"\n @keydown.enter=\"checkPreventNewLine\"\n @paste=\"checkPreventPaste\"\n @input=\"checkText\"\n @blur=\"$emit('blur')\"></textarea>\n </div>\n <span\n v-if=\"hasErrors\"\n class=\"error-box mt-2\">\n {{ inputErrors.join(\", \") }}\n </span>\n </div>\n</template>\n\n<script>\nimport textAreaRegex from \"@/app/javascript/utils/editor/editorRegexPatterns\";\nimport computedStyle from \"@/components/planner/app/javascript/mixins/computedStyle\";\n\nexport default {\n name: \"TextareaInput\",\n mixins: [computedStyle],\n props: {\n modelValue: {\n type: String,\n default: \"\"\n },\n inputId: {\n type: String,\n default: \"\"\n },\n labelClass: {\n type: String,\n required: false,\n default: \"typeset-6\"\n },\n required: {\n type: Boolean,\n default: false\n },\n label: {\n type: String,\n required: false,\n default: \"\"\n },\n errors: {\n type: Array,\n default: () => []\n },\n rows: {\n type: String,\n default: \"2\"\n },\n theme: {\n type: Object,\n default: () => {}\n },\n maxLength: {\n type: String,\n default: \"\"\n },\n minLength: {\n type: String,\n default: \"\"\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n pattern: {\n type: RegExp,\n required: false,\n default: null\n },\n preventPaste: {\n type: Boolean,\n required: false,\n default: false\n },\n bordered: {\n type: Boolean,\n default: false\n },\n resize: {\n type: String,\n default: \"both\"\n },\n preventNewLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:modelValue\", \"errored-pattern\", \"blur\"],\n computed: {\n inputErrors() {\n return this.errors || [];\n },\n hasErrors() {\n return this.inputErrors.length > 0;\n },\n textareaTheme() {\n if (this.theme) {\n return {\n paddingLeft: this.theme.textarea.paddingLeft,\n paddingRight: this.theme.textarea.paddingRight,\n borderRadius: this.theme.textarea.borderRadius,\n textTransform: this.theme.textarea.textTransform,\n fontFamily: this.theme.textarea.fontFamily,\n fontSize: this.theme.textarea.fontSize,\n fontWeight: this.theme.textarea.fontWeight,\n outline: this.theme.textarea.outline,\n \"--textarea-color\": this.theme.textarea.color,\n \"--textarea-hover-color\": this.theme.textarea.hover.color,\n \"--textarea-focus-color\": this.theme.textarea.focus.color,\n \"--textarea-background-color\": this.theme.textarea.backgroundColor,\n \"--textarea-hover-background-color\":\n this.theme.textarea.hover.backgroundColor,\n \"--textarea-focus-background-color\":\n this.theme.textarea.focus.backgroundColor,\n \"--textarea-border-color\": this.theme.textarea.borderColor,\n \"--textarea-hover-border-color\":\n this.theme.textarea.hover.borderColor,\n \"--textarea-focus-border-color\":\n this.theme.textarea.focus.borderColor,\n \"--textarea-box-shadow\": this.theme.textarea.boxShadow,\n \"--textarea-hover-box-shadow\": this.theme.textarea.hover.boxShadow,\n \"--textarea-focus-box-shadow\": this.theme.textarea.focus.boxShadow,\n \"--textarea-placeholder-color\": this.theme.textarea.placeholder.color\n };\n }\n return null;\n },\n labelStyles() {\n if (this.theme) {\n return this.computedStyle(this.theme, \"labelStyles\");\n }\n return null;\n },\n textareaClasses() {\n return [\n this.theme ? \"themed-textarea\" : \"form-control\",\n {\n bordered: this.bordered,\n [`resize-${this.resize}`]: this.resize !== \"both\"\n }\n ];\n }\n },\n methods: {\n checkText($event) {\n const { value } = $event.target;\n if (value.length && this.pattern && !this.pattern.test(value)) {\n this.$emit(\"errored-pattern\");\n } else {\n this.$emit(\"update:modelValue\", value.replace(textAreaRegex, \"\"));\n }\n },\n checkPreventNewLine(e) {\n if (this.preventNewLine) {\n e.preventDefault();\n }\n },\n checkPreventPaste(e) {\n if (this.preventPaste) {\n e.preventDefault();\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.themed-textarea {\n // Set some defaults, in case these aren't set in the custom theme.\n --textarea-color: #343434;\n --textarea-hover-color: #343434;\n --textarea-focus-color: #343434;\n --textarea-background-color: #efefef;\n --textarea-border-color: #efefef;\n --textarea-hover-background-color: #ffffff;\n --textarea-hover-border-color: #121212;\n --textarea-box-shadow: inset 0 2px 4px 0 rgba(0, 37, 84, 0.08);\n\n color: var(--textarea-color);\n background-color: var(--textarea-background-color);\n border-color: var(--textarea-border-color);\n box-shadow: var(--textarea-box-shadow);\n\n // Interaction styles (hover/focus) must use css variables\n &:hover {\n color: var(--textarea-hover-color);\n background-color: var(--textarea-hover-background-color);\n border-color: var(--textarea-hover-border-color);\n box-shadow: var(--textarea-hover-box-shadow);\n }\n\n &:focus {\n color: var(--textarea-focus-color);\n background-color: var(--textarea-focus-background-color);\n border-color: var(--textarea-focus-border-color);\n box-shadow: var(--textarea-focus-box-shadow);\n }\n\n &::placeholder {\n color: var(--textarea-placeholder-color);\n }\n}\n</style>\n"],"names":["textAreaRegex","_sfc_main","computedStyle","$event","value","e","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_createElementBlock","_normalizeClass","$options","$props","_normalizeStyle","_createElementVNode","_hoisted_3","_createCommentVNode","_cache","_withKeys","args","_ctx","_openBlock","_hoisted_6","_toDisplayString"],"mappings":"4JAAA,MAAMA,EACJ,6zFC0CGC,EAAU,CACb,KAAM,gBACN,OAAQ,CAACC,CAAa,EACtB,MAAO,CACL,WAAY,CACV,KAAM,OACN,QAAS,EACV,EACD,QAAS,CACP,KAAM,OACN,QAAS,EACV,EACD,WAAY,CACV,KAAM,OACN,SAAU,GACV,QAAS,WACV,EACD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EACD,MAAO,CACL,KAAM,OACN,SAAU,GACV,QAAS,EACV,EACD,OAAQ,CACN,KAAM,MACN,QAAS,IAAM,CAAA,CAChB,EACD,KAAM,CACJ,KAAM,OACN,QAAS,GACV,EACD,MAAO,CACL,KAAM,OACN,QAAS,IAAM,CAAA,CAChB,EACD,UAAW,CACT,KAAM,OACN,QAAS,EACV,EACD,UAAW,CACT,KAAM,OACN,QAAS,EACV,EACD,YAAa,CACX,KAAM,OACN,QAAS,EACV,EACD,QAAS,CACP,KAAM,OACN,SAAU,GACV,QAAS,IACV,EACD,aAAc,CACZ,KAAM,QACN,SAAU,GACV,QAAS,EACV,EACD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EACD,OAAQ,CACN,KAAM,OACN,QAAS,MACV,EACD,eAAgB,CACd,KAAM,QACN,QAAS,EACX,CACD,EACD,MAAO,CAAC,oBAAqB,kBAAmB,MAAM,EACtD,SAAU,CACR,aAAc,CACZ,OAAO,KAAK,QAAU,CAAE,CACzB,EACD,WAAY,CACV,OAAO,KAAK,YAAY,OAAS,CAClC,EACD,eAAgB,CACd,OAAI,KAAK,MACA,CACL,YAAa,KAAK,MAAM,SAAS,YACjC,aAAc,KAAK,MAAM,SAAS,aAClC,aAAc,KAAK,MAAM,SAAS,aAClC,cAAe,KAAK,MAAM,SAAS,cACnC,WAAY,KAAK,MAAM,SAAS,WAChC,SAAU,KAAK,MAAM,SAAS,SAC9B,WAAY,KAAK,MAAM,SAAS,WAChC,QAAS,KAAK,MAAM,SAAS,QAC7B,mBAAoB,KAAK,MAAM,SAAS,MACxC,yBAA0B,KAAK,MAAM,SAAS,MAAM,MACpD,yBAA0B,KAAK,MAAM,SAAS,MAAM,MACpD,8BAA+B,KAAK,MAAM,SAAS,gBACnD,oCACE,KAAK,MAAM,SAAS,MAAM,gBAC5B,oCACE,KAAK,MAAM,SAAS,MAAM,gBAC5B,0BAA2B,KAAK,MAAM,SAAS,YAC/C,gCACE,KAAK,MAAM,SAAS,MAAM,YAC5B,gCACE,KAAK,MAAM,SAAS,MAAM,YAC5B,wBAAyB,KAAK,MAAM,SAAS,UAC7C,8BAA+B,KAAK,MAAM,SAAS,MAAM,UACzD,8BAA+B,KAAK,MAAM,SAAS,MAAM,UACzD,+BAAgC,KAAK,MAAM,SAAS,YAAY,KACjE,EAEI,IACR,EACD,aAAc,CACZ,OAAI,KAAK,MACA,KAAK,cAAc,KAAK,MAAO,aAAa,EAE9C,IACR,EACD,iBAAkB,CAChB,MAAO,CACL,KAAK,MAAQ,kBAAoB,eACjC,CACE,SAAU,KAAK,SACf,CAAC,UAAU,KAAK,MAAM,EAAE,EAAG,KAAK,SAAW,MAC7C,CACD,CACH,CACD,EACD,QAAS,CACP,UAAUC,EAAQ,CAChB,KAAM,CAAE,MAAAC,GAAUD,EAAO,OACrBC,EAAM,QAAU,KAAK,SAAW,CAAC,KAAK,QAAQ,KAAKA,CAAK,EAC1D,KAAK,MAAM,iBAAiB,EAE5B,KAAK,MAAM,oBAAqBA,EAAM,QAAQJ,EAAe,EAAE,CAAC,CAEnE,EACD,oBAAoBK,EAAG,CACjB,KAAK,gBACPA,EAAE,eAAgB,CAErB,EACD,kBAAkBA,EAAG,CACf,KAAK,cACPA,EAAE,eAAgB,CAEtB,CACF,CACF,EAhMAC,EAAA,CAAA,KAAA,EAAAC,EAAA,CAAA,WAAA,KAAA,IAAA,EAaQ,MAAM,cAILC,EAAA,CAAA,MAAM,MAAM,EAjBrBC,EAAA,CAAA,QAAA,OAAA,cAAA,YAAA,WAAA,KAAA,IAAA,EAiCM,MAAM,qDAhCVC,EAmCM,MAAA,CAlCJ,MAFJC,EAAA,CAEU,iBAAgB,CAAA,aACEC,EAAS,UAAA,CAAA,IAEzBC,EAAA,MAAM,YADdH,EAYQ,QAAA,CAhBZ,IAAA,EAMO,IAAKG,EAAO,QACZ,MAPPF,EAOc,CAAAE,EAAA,MAAe,KAAAA,EAAA,WACjB,eAAe,CAAA,EACpB,MATPC,EAScF,EAAW,WAAA,IACnBG,EAA4B,OAAtB,CAAA,UAAQF,EAAA,OAVpB,KAAA,EAAAN,CAAA,EAYcM,EAAQ,cADhBH,EAIO,OAJPM,EAEqB,KAErB,GAfNC,EAAA,GAAA,EAAA,CAAA,EAAA,GAAAX,CAAA,GAAAW,EAAA,GAAA,EAAA,EAiBIF,EAaM,MAbNP,EAaM,CAZJO,EAWmC,WAAA,CAVhC,MAAOF,EAAU,WACjB,MApBTF,EAoBgBC,EAAe,eAAA,EACtB,MArBTE,EAqBgBF,EAAa,aAAA,EACpB,KAAMC,EAAI,KACV,YAAaA,EAAW,YACxB,UAAWA,EAAS,UACpB,UAAWA,EAAS,UACpB,UAAOK,EAAA,CAAA,IAAAA,EAAA,CAAA,EA1BhBC,UA0BwBP,EAAmB,qBAAAA,EAAA,oBAAA,GAAAQ,CAAA,EAAA,CAAA,OAAA,CAAA,GAClC,4BAAOR,EAAiB,mBAAAA,EAAA,kBAAA,GAAAQ,CAAA,GACxB,4BAAOR,EAAS,WAAAA,EAAA,UAAA,GAAAQ,CAAA,GAChB,sBAAMC,EAAK,MAAA,MAAA,EA7BpB,EAAA,KAAA,GAAAZ,CAAA,IAgCYG,EAAS,WADjBU,IAAAZ,EAIO,OAJPa,EAGKC,EAAAZ,EAAA,YAAY,KAAI,IAAA,CAAA,EAAA,CAAA,GAlCzBK,EAAA,GAAA,EAAA"}