cleave.ts 717 B

12345678910111213141516171819202122
  1. // @ts-ignore
  2. import Cleave from 'cleave.js';
  3. import {defineNuxtPlugin} from "nuxt/app";
  4. /** Intégration de la librairie cleave.js
  5. * @see https://github.com/nosir/cleave.js
  6. * @see https://github.com/nosir/cleave.js/blob/master/doc/vue.md
  7. */
  8. export default defineNuxtPlugin(nuxtApp => {
  9. nuxtApp.vueApp.directive('cleave', {
  10. mounted: (el: any, binding: any) => {
  11. el.cleave = new Cleave(el, binding.value ?? {})
  12. },
  13. updated: (el: any) => {
  14. const event = new Event('input', {bubbles: true});
  15. setTimeout(function () {
  16. el.value = el.cleave.properties.result
  17. el.dispatchEvent(event)
  18. }, 100);
  19. }
  20. })
  21. })