{"version":3,"file":"RecaptchaModal-DkxtvXAC.mjs","names":[],"sources":["../src/components/display/comments/modal/RecaptchaModal.vue","../src/components/display/comments/modal/RecaptchaModal.vue"],"sourcesContent":["<template>\n  <ClassicModal\n    :id-modal=\"idModal\"\n    :title-modal=\"titleModal\"\n    :closable=\"false\"\n    @close=\"closePopup\"\n  >\n    <template #body>\n      <div class=\"text-center text-danger\">{{ errorRecaptchaText }}</div>\n      <slot v-if=\"!isInTreatment\" name=\"form\" />\n      <ClassicLoading\n        v-else\n        :loading-text=\"\n          isInTreatment && !errorText && !successText\n            ? t('Loading content ...')\n            : undefined\n        \"\n        :error-text=\"errorText\"\n      />\n      <div v-if=\"successText\" class=\"text-center h3\">{{ successText }}</div>\n    </template>\n    <template #footer>\n      <button class=\"btn m-1\" @click=\"closePopup\">\n        {{ t(\"Close\") }}\n      </button>\n      <vue-recaptcha\n        v-if=\"!isVerify\"\n        ref=\"invisibleRecaptcha\"\n        :load-recaptcha-script=\"true\"\n        size=\"invisible\"\n        sitekey=\"6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh\"\n        @verify=\"handleSuccess\"\n        @expired=\"handleError\"\n      />\n      <button\n        v-if=\"!errorText && !successText\"\n        class=\"btn btn-primary m-1\"\n        :disabled=\"disableValidate || isInTreatment\"\n        @click=\"submit\"\n      >\n        {{ t(\"Yes\") }}\n      </button>\n    </template>\n  </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../../../stores/ParamSdkStore\";\nimport ClassicLoading from \"../../../form/ClassicLoading.vue\";\nimport ClassicModal from \"../../../misc/modal/ClassicModal.vue\";\nimport { CHECK_TOKEN_KEY } from \"../../../composable/keys\";\nimport { VueRecaptcha } from \"vue-recaptcha\";\nimport { computed, inject, ref, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n  idModal: { default: undefined, type: String },\n  titleModal: { default: undefined, type: String },\n  disableValidate: { default: false, type: Boolean },\n  errorText: { default: undefined, type: String },\n  successText: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst sendError = ref(false);\nconst isVerify = ref(false);\nconst isInTreatment = ref(false);\nconst captchRef = useTemplateRef('invisibleRecaptcha');\n\n\n//Composables\nconst { t } = useI18n();\n// checkToken is not defined in the SDK: it is resolved at runtime from the\n// consuming app's globally provided implementation (app.provide()), and\n// defaults to always-verified when the app hasn't provided one.\nconst checkToken = inject(CHECK_TOKEN_KEY, async () => true);\n\n//Computed\nconst errorRecaptchaText = computed(() =>{\n  if (isCaptchaTest.value) {\n    return t(\"Recaptcha not active\");\n  }\n  return sendError.value ? t(\"Recaptcha error\") : \"\";\n});\nconst isCaptchaTest = computed(() => state.generalParameters.isCaptchaTest as boolean);\n\n\n//Methods\nasync function handleSuccess(token: string) {\n  isVerify.value = await checkToken(token);\n  sendAction();\n}\nfunction handleError() {\n  isVerify.value = false;\n  sendError.value = true;\n}\nasync function submit(): Promise<void> {\n  isInTreatment.value = true;\n  if (!isVerify.value && !isCaptchaTest.value) {\n    (captchRef?.value as InstanceType<typeof VueRecaptcha>).execute();\n  }\n  sendAction();\n}\nfunction closePopup(): void {\n  emit(\"close\");\n}\nfunction sendAction(): void {\n  emit(\"validate\");\n}\n</script>\n","<template>\n  <ClassicModal\n    :id-modal=\"idModal\"\n    :title-modal=\"titleModal\"\n    :closable=\"false\"\n    @close=\"closePopup\"\n  >\n    <template #body>\n      <div class=\"text-center text-danger\">{{ errorRecaptchaText }}</div>\n      <slot v-if=\"!isInTreatment\" name=\"form\" />\n      <ClassicLoading\n        v-else\n        :loading-text=\"\n          isInTreatment && !errorText && !successText\n            ? t('Loading content ...')\n            : undefined\n        \"\n        :error-text=\"errorText\"\n      />\n      <div v-if=\"successText\" class=\"text-center h3\">{{ successText }}</div>\n    </template>\n    <template #footer>\n      <button class=\"btn m-1\" @click=\"closePopup\">\n        {{ t(\"Close\") }}\n      </button>\n      <vue-recaptcha\n        v-if=\"!isVerify\"\n        ref=\"invisibleRecaptcha\"\n        :load-recaptcha-script=\"true\"\n        size=\"invisible\"\n        sitekey=\"6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh\"\n        @verify=\"handleSuccess\"\n        @expired=\"handleError\"\n      />\n      <button\n        v-if=\"!errorText && !successText\"\n        class=\"btn btn-primary m-1\"\n        :disabled=\"disableValidate || isInTreatment\"\n        @click=\"submit\"\n      >\n        {{ t(\"Yes\") }}\n      </button>\n    </template>\n  </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../../../stores/ParamSdkStore\";\nimport ClassicLoading from \"../../../form/ClassicLoading.vue\";\nimport ClassicModal from \"../../../misc/modal/ClassicModal.vue\";\nimport { CHECK_TOKEN_KEY } from \"../../../composable/keys\";\nimport { VueRecaptcha } from \"vue-recaptcha\";\nimport { computed, inject, ref, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n  idModal: { default: undefined, type: String },\n  titleModal: { default: undefined, type: String },\n  disableValidate: { default: false, type: Boolean },\n  errorText: { default: undefined, type: String },\n  successText: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst sendError = ref(false);\nconst isVerify = ref(false);\nconst isInTreatment = ref(false);\nconst captchRef = useTemplateRef('invisibleRecaptcha');\n\n\n//Composables\nconst { t } = useI18n();\n// checkToken is not defined in the SDK: it is resolved at runtime from the\n// consuming app's globally provided implementation (app.provide()), and\n// defaults to always-verified when the app hasn't provided one.\nconst checkToken = inject(CHECK_TOKEN_KEY, async () => true);\n\n//Computed\nconst errorRecaptchaText = computed(() =>{\n  if (isCaptchaTest.value) {\n    return t(\"Recaptcha not active\");\n  }\n  return sendError.value ? t(\"Recaptcha error\") : \"\";\n});\nconst isCaptchaTest = computed(() => state.generalParameters.isCaptchaTest as boolean);\n\n\n//Methods\nasync function handleSuccess(token: string) {\n  isVerify.value = await checkToken(token);\n  sendAction();\n}\nfunction handleError() {\n  isVerify.value = false;\n  sendError.value = true;\n}\nasync function submit(): Promise<void> {\n  isInTreatment.value = true;\n  if (!isVerify.value && !isCaptchaTest.value) {\n    (captchRef?.value as InstanceType<typeof VueRecaptcha>).execute();\n  }\n  sendAction();\n}\nfunction closePopup(): void {\n  emit(\"close\");\n}\nfunction sendAction(): void {\n  emit(\"validate\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEA,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,KAAK;EAC3B,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,gBAAgB,IAAI,KAAK;EAC/B,MAAM,YAAY,eAAe,oBAAoB;EAIrD,MAAM,EAAE,MAAM,QAAQ;EAItB,MAAM,aAAa,OAAO,iBAAiB,YAAY,IAAI;EAG3D,MAAM,qBAAqB,eAAc;GACvC,IAAI,cAAc,OAChB,OAAO,EAAE,sBAAsB;GAEjC,OAAO,UAAU,QAAQ,EAAE,iBAAiB,IAAI;EAClD,CAAC;EACD,MAAM,gBAAgB,eAAe,MAAM,kBAAkB,aAAwB;EAIrF,eAAe,cAAc,OAAe;GAC1C,SAAS,QAAQ,MAAM,WAAW,KAAK;GACvC,WAAW;EACb;EACA,SAAS,cAAc;GACrB,SAAS,QAAQ;GACjB,UAAU,QAAQ;EACpB;EACA,eAAe,SAAwB;GACrC,cAAc,QAAQ;GACtB,IAAI,CAAC,SAAS,SAAS,CAAC,cAAc,OACpC,CAAC,WAAW,OAA4C,QAAQ;GAElE,WAAW;EACb;EACA,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;EACA,SAAS,aAAmB;GAC1B,KAAK,UAAU;EACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCxGW,OAAM,0BAAyB;;;CAWZ,OAAM;;;;qBAlBlC,YA0Ce,OAAA,iBAAA;EAzCZ,YAAU,OAAA;EACV,eAAa,OAAA;EACb,UAAU;EACV,SAAO,OAAA;;EAEG,MAAI,cACsD;GAAnE,mBAAmE,OAAnE,YAAmE,gBAA3B,OAAA,kBAAkB,GAAA,CAAA;IAC7C,OAAA,gBAAb,WAA0C,KAAA,QAAA,QAAA,EAAA,KAAA,EAAA,CAAA,KAAA,UAAA,GAC1C,YAQE,OAAA,mBAAA;;IANC,gBAAyB,OAAA,iBAAa,CAAK,OAAA,aAAS,CAAK,OAAA,cAA0B,OAAA,EAAC,qBAAA,IAAsC,KAAA;IAK1H,cAAY,OAAA;;GAEJ,OAAA,eAAA,UAAA,GAAX,mBAAsE,OAAtE,YAAsE,gBAApB,OAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA;;EAEpD,QAAM,cAGN;GAFT,mBAES,UAAA;IAFD,OAAM;IAAW,SAAO,OAAA;sBAC3B,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA;IAGG,OAAA,YAAA,UAAA,GADT,YAQE,OAAA,iBAAA;;IANA,KAAI;IACH,yBAAuB;IACxB,MAAK;IACL,SAAQ;IACP,UAAQ,OAAA;IACR,WAAS,OAAA;;IAGH,OAAA,aAAS,CAAK,OAAA,eAAA,UAAA,GADvB,mBAOS,UAAA;;IALP,OAAM;IACL,UAAU,OAAA,mBAAmB,OAAA;IAC7B,SAAO,OAAA;sBAEL,OAAA,EAAC,KAAA,CAAA,GAAA,GAAA,UAAA,KAAA,mBAAA,QAAA,IAAA"}