| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | 
							- // https://forum.vuejs.org/t/how-to-use-helper-functions-for-imported-modules-in-vuejs-vue-template/6266/5
 
- export default {
 
-   directives: {
 
-     lazy: {
 
-       bind (figure, binding) {
 
-         // console.log('directive lazy bind', figure, binding)
 
-         // show only the first image
 
-         if (binding.value === 0) {
 
-           const img = figure.querySelector('img:not(.blank)')
 
-           figure.classList.add('loading')
 
-           img.addEventListener('load', function (e) {
 
-             // console.log('img loaded', e)
 
-             figure.classList.remove('loading')
 
-             figure.classList.add('loaded')
 
-           })
 
-           img.addEventListener('error', function (e) {
 
-             console.error('img ERROR', e)
 
-             e.target.classList.remove('loading')
 
-             e.target.classList.add('error')
 
-           })
 
-           img.setAttribute('src', img.getAttribute('data-src'))
 
-           // img.removeAttribute('data-src')
 
-           // img.classList.remove('lazy')
 
-         }
 
-       }
 
-     },
 
-     switcher: {
 
-       inserted (el, binding) {
 
-         // switch images on mousemove
 
-         el.addEventListener('mousemove', function (event) {
 
-           const figs = this.querySelectorAll('figure.loaded')
 
-           // console.log('mousemove', figs.length, this, event)
 
-           // let len = figs.length
 
-           // let w = this.clientWidth;
 
-           // let g = w / len;
 
-           // let delta = Math.floor(event.layerX / g)
 
-           // console.log(event.offsetX, this.clientWidth, figs.length)
 
-           // console.log(event.offsetX / (this.clientWidth / figs.length))
 
-           let delta = Math.floor(event.offsetX / (this.clientWidth / figs.length))
 
-           delta = delta < 0 ? 0 : delta >= figs.length ? figs.length - 1 : delta
 
-           // console.log('delta', delta)
 
-           figs.forEach((fig, index) => {
 
-             // console.log(index)
 
-             if (index === delta) {
 
-               // fig.style.display = "block"
 
-               fig.classList.remove('hide')
 
-               fig.classList.add('show')
 
-             } else {
 
-               // fig.style.display = "none"
 
-               fig.classList.remove('show')
 
-               fig.classList.add('hide')
 
-             }
 
-           })
 
-         })
 
-       }
 
-     }
 
-   },
 
-   mounted () {
 
-     // lazy load images on mouseover
 
-     // console.log('card mounted', this.$options.name)
 
-     // if (this.$options.name ==! 'ModalCard') {
 
-     this.activateLazyLoad()
 
-     // }
 
-   },
 
-   updated () {
 
-     // lazy load images on mouseover
 
-     // console.log('card updated', this.$options.name)
 
-     // if (this.$options.name ==! 'ModalCard') {
 
-     this.activateLazyLoad()
 
-     // }
 
-   },
 
-   methods: {
 
-     // used by ModalCard
 
-     activateLazyLoad () {
 
-       // console.log('card activateLazyLoad', this.$options.name)
 
-       this.$el.addEventListener('mouseover', function (event) {
 
-         const figures = this.querySelectorAll('.images figure.lazy:not(.loaded):not(.loading)')
 
-         console.log('mouseover', this, figures)
 
-         figures.forEach((figure, index) => {
 
-           const img = figure.querySelector('img:not(.blank)')
 
-           // console.log('forEach img',img)
 
-           img.classList.add('loading')
 
-           img.addEventListener('load', function (e) {
 
-             // console.log('img loaded', e)
 
-             figure.classList.remove('loading')
 
-             figure.classList.add('loaded')
 
-           })
 
-           img.addEventListener('error', function (e) {
 
-             console.error('img ERROR', figure, e)
 
-           })
 
-           const src = img.getAttribute('data-src')
 
-           // for debug purpose
 
-           console.log(figures.length, index)
 
-           // let src = img.getAttribute('data-src')
 
-           // if (index > 0 && index < figures.length - 1) {
 
-           //   src = img.getAttribute('data-src').replace('?', '/bad?')
 
-           // }
 
-           img.setAttribute('src', src)
 
-           // img.removeAttribute('data-src')
 
-           // img.classList.remove('lazy')
 
-         })
 
-       }, { once: true })
 
-     }
 
-   }
 
- }
 
 
  |