{"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"}