{"id":1100,"date":"2026-06-30T12:19:17","date_gmt":"2026-06-30T12:19:17","guid":{"rendered":"https:\/\/www.deco-masters.be\/toepassingswijzer\/"},"modified":"2026-06-30T13:41:17","modified_gmt":"2026-06-30T13:41:17","slug":"toepassingswijzer","status":"publish","type":"page","link":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/","title":{"rendered":"The Masters Collective"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1100\" class=\"elementor elementor-1100 elementor-1045\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9cecbb6 e-flex e-con-boxed e-con e-parent\" data-id=\"9cecbb6\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-adf3cc3 elementor-widget elementor-widget-shortcode\" data-id=\"adf3cc3\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n          \n\t\t\t\t<style>\n\t\t  .pdf-viewer {\n\t\t    --pv-paper:#f7f5f1;\n\t\t    --pv-ink:#20201e;\n\t\t    --pv-muted:#6d6963;\n\t\t    --pv-line:#cfc8bf;\n\t\t    --pv-accent:#75695d;\n\n\t\t    \/* Houdt rekening met de padding die rond dit blok staat (op de\n\t\t       Elementor-sectie\/kolom zelf), zodat blok + padding samen\n\t\t       exact de schermhoogte vullen i.p.v. ze op te tellen. *\/\n\t\t    position: relative;\n\t\t    width: 100%;\n\t\t    height: calc(100vh - 80px - 40px);\n\t\t    height: calc(100dvh - 80px - 40px);\n\t\t    min-height: 800px;\n\t\t    overflow: hidden;\n\t\t    box-sizing: border-box;\n\t\t  }\n\t\t  .pdf-viewer *{ box-sizing: border-box; }\n\t\t  @media (max-width: 767px) {\n\t\t    .pdf-viewer {\n\t\t      height: calc(100vh - 140px - 40px);\n\t\t      height: calc(100dvh - 140px - 40px);\n\t\t    }\n\t\t  }\n\n\t\t  .pdf-viewer .pv-stage {\n\t\t    position: relative;\n\t\t    width: 100%;\n\t\t    height: 100%;\n\t\t    display: flex;\n\t\t    align-items: center;\n\t\t    justify-content: center;\n\t\t  }\n\n\t\t  .pdf-viewer .pv-frame {\n\t\t    position: relative;\n\t\t    flex: none;\n\t\t    overflow: hidden;\n\t\t    background: var(--pv-paper);\n\t\t    border: 1px solid rgba(32,32,30,.08);\n\t\t    box-shadow: 0 18px 42px rgba(35,31,27,.15);\n\t\t    touch-action: none;\n\t\t  }\n\t\t  .pdf-viewer .pv-frame.pv-zoomed { cursor: grab; }\n\t\t  .pdf-viewer .pv-frame.pv-zoomed:active { cursor: grabbing; }\n\n\t\t  .pdf-viewer .pv-track {\n\t\t    position: relative;\n\t\t    width: 100%;\n\t\t    height: 100%;\n\t\t  }\n\n\t\t  .pdf-viewer .pv-slide {\n\t\t    position: absolute;\n\t\t    inset: 0;\n\t\t    display: flex;\n\t\t    align-items: center;\n\t\t    justify-content: center;\n\t\t    overflow: hidden;\n\t\t    transition: transform .42s cubic-bezier(.22,.61,.36,1);\n\t\t    will-change: transform;\n\t\t  }\n\n\t\t  .pdf-viewer .pv-zoom {\n\t\t    width: 100%;\n\t\t    height: 100%;\n\t\t    transform-origin: center center;\n\t\t  }\n\t\t  .pdf-viewer .pv-zoom.pv-zoom-anim { transition: transform .25s ease; }\n\n\t\t  .pdf-viewer .pv-zoom canvas {\n\t\t    display: block;\n\t\t    width: 100%;\n\t\t    height: 100%;\n\t\t  }\n\n\t\t  .pdf-viewer .pv-arrow {\n\t\t    position: absolute;\n\t\t    top: 50%;\n\t\t    transform: translateY(-50%);\n\t\t    width: 46px;\n\t\t    height: 46px;\n\t\t    border: none;\n\t\t    border-radius: 50%;\n\t\t    background: rgba(247,245,241,.92);\n\t\t    color: var(--pv-ink);\n\t\t    display: flex;\n\t\t    align-items: center;\n\t\t    justify-content: center;\n\t\t    font-size: 26px;\n\t\t    line-height: 1;\n\t\t    cursor: pointer;\n\t\t    z-index: 5;\n\t\t    box-shadow: 0 8px 24px rgba(35,31,27,.16);\n\t\t    transition: opacity .2s ease, transform .2s ease, background .2s ease;\n\t\t    padding: 0;\n\t\t  }\n\t\t  .pdf-viewer .pv-arrow:hover { background: var(--pv-paper); transform: translateY(-50%) scale(1.05); }\n\t\t  .pdf-viewer .pv-arrow.prev { left: 22px; }\n\t\t  .pdf-viewer .pv-arrow.next { right: 22px; }\n\t\t  .pdf-viewer .pv-arrow[hidden] { display: none; }\n\n\t\t  .pdf-viewer .pv-counter {\n\t\t    position: absolute;\n\t\t    right: 16px;\n\t\t    bottom: 16px;\n\t\t    z-index: 5;\n\t\t    font-size: 11px;\n\t\t    letter-spacing: .04em;\n\t\t    color: var(--pv-muted);\n\t\t    background: rgba(247,245,241,.85);\n\t\t    border-radius: 999px;\n\t\t    padding: 6px 11px;\n\t\t  }\n\n\t\t  .pdf-viewer .pv-download {\n\t\t    position: absolute;\n\t\t    top: 16px;\n\t\t    right: 16px;\n\t\t    z-index: 5;\n\t\t    width: 40px;\n\t\t    height: 40px;\n\t\t    border-radius: 50%;\n\t\t    background: rgba(247,245,241,.92);\n\t\t    color: var(--pv-ink);\n\t\t    display: flex;\n\t\t    align-items: center;\n\t\t    justify-content: center;\n\t\t    box-shadow: 0 8px 24px rgba(35,31,27,.16);\n\t\t    text-decoration: none;\n\t\t    transition: background .2s ease, transform .2s ease;\n\t\t  }\n\t\t  .pdf-viewer .pv-download:hover { background: var(--pv-paper); transform: scale(1.05); }\n\n\t\t  .pdf-viewer .pv-zoom-controls {\n\t\t    position: absolute;\n\t\t    left: 16px;\n\t\t    bottom: 16px;\n\t\t    z-index: 5;\n\t\t    display: flex;\n\t\t    gap: 6px;\n\t\t  }\n\n\t\t  .pdf-viewer .pv-zoom-btn {\n\t\t    width: 34px;\n\t\t    height: 34px;\n\t\t    border: none;\n\t\t    border-radius: 50%;\n\t\t    background: rgba(247,245,241,.92);\n\t\t    color: var(--pv-ink);\n\t\t    font-size: 18px;\n\t\t    line-height: 1;\n\t\t    cursor: pointer;\n\t\t    display: flex;\n\t\t    align-items: center;\n\t\t    justify-content: center;\n\t\t    box-shadow: 0 8px 24px rgba(35,31,27,.16);\n\t\t    padding: 0;\n\t\t    transition: background .2s ease;\n\t\t  }\n\t\t  .pdf-viewer .pv-zoom-btn:hover { background: var(--pv-paper); }\n\t\t  .pdf-viewer .pv-zoom-btn:disabled { opacity: .35; cursor: default; }\n\n\t\t  @media (max-width: 760px) {\n\t\t    .pdf-viewer .pv-arrow { width: 40px; height: 40px; font-size: 22px; }\n\t\t    .pdf-viewer .pv-arrow.prev { left: 10px; }\n\t\t    .pdf-viewer .pv-arrow.next { right: 10px; }\n\t\t    .pdf-viewer .pv-counter { right: 10px; bottom: 10px; font-size: 10px; }\n\t\t    .pdf-viewer .pv-download { top: 10px; right: 10px; width: 36px; height: 36px; }\n\t\t    .pdf-viewer .pv-zoom-controls { left: 10px; bottom: 10px; }\n\t\t    .pdf-viewer .pv-zoom-btn { width: 30px; height: 30px; font-size: 16px; }\n\t\t  }\n\t\t<\/style>\n\t\t\n\t\t<div class=\"pdf-viewer\">\n\t\t  <div class=\"pv-stage\">\n\t\t    <div class=\"pv-frame\">\n\t\t      <div class=\"pv-track\"><\/div>\n\t\t    <\/div>\n\t\t    <button class=\"pv-arrow prev\" type=\"button\" aria-label=\"Vorige pagina\">&#8249;<\/button>\n\t\t    <button class=\"pv-arrow next\" type=\"button\" aria-label=\"Volgende pagina\">&#8250;<\/button>\n\t\t    <div class=\"pv-counter\">\u2014 \/ \u2014<\/div>\n\t\t    <a class=\"pv-download\" href=\"#\" download aria-label=\"PDF downloaden\" title=\"PDF downloaden\">\n\t\t      <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t        <path d=\"M12 3v12\"\/>\n\t\t        <path d=\"M7 10l5 5 5-5\"\/>\n\t\t        <path d=\"M5 21h14\"\/>\n\t\t      <\/svg>\n\t\t    <\/a>\n\t\t    <div class=\"pv-zoom-controls\">\n\t\t      <button class=\"pv-zoom-btn pv-zoom-out\" type=\"button\" aria-label=\"Uitzoomen\">&#8722;<\/button>\n\t\t      <button class=\"pv-zoom-btn pv-zoom-in\" type=\"button\" aria-label=\"Inzoomen\">&#43;<\/button>\n\t\t    <\/div>\n\t\t  <\/div>\n\t\t<\/div>\n\n\t\t\t\t<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js\"><\/script>\n\t\t\t\t<script>\n\t\t(function () {\n\n\t\t  const PDF_URL = \"https:\\\/\\\/www.deco-masters.be\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Toepassingswijzer_The-Masters-Collective-ENG-digitaal.pdf\";\n\n\t\t  \/* Zoom-instellingen *\/\n\t\t  const MIN_ZOOM = 1;\n\t\t  const MAX_ZOOM = 3;\n\t\t  const ZOOM_STEP = 0.5;\n\t\t  const ZOOM_RENDER_FACTOR = 2; \/\/ extra render-resolutie zodat inzoomen scherp blijft\n\n\t\t  if (typeof pdfjsLib !== 'undefined' && !pdfjsLib.GlobalWorkerOptions.workerSrc) {\n\t\t    pdfjsLib.GlobalWorkerOptions.workerSrc =\n\t\t      'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js';\n\t\t  }\n\n\t\t  let root = document.currentScript.previousElementSibling;\n\t\t  while (root && root.tagName === 'SCRIPT') root = root.previousElementSibling;\n\n\t\t  const viewer    = root;\n\t\t  const stage     = root.querySelector('.pv-stage');\n\t\t  const frame     = root.querySelector('.pv-frame');\n\t\t  const track     = root.querySelector('.pv-track');\n\t\t  const counter   = root.querySelector('.pv-counter');\n\t\t  const btnPrev   = root.querySelector('.pv-arrow.prev');\n\t\t  const btnNext   = root.querySelector('.pv-arrow.next');\n\t\t  const btnDl     = root.querySelector('.pv-download');\n\t\t  const btnZoomIn  = root.querySelector('.pv-zoom-in');\n\t\t  const btnZoomOut = root.querySelector('.pv-zoom-out');\n\n\t\t  let pdf = null;\n\t\t  let current = 1;\n\t\t  let busy = false;\n\t\t  let currentSlide = null;\n\t\t  let baseRatio = null;\n\n\t\t  let zoom = 1;\n\t\t  let panX = 0;\n\t\t  let panY = 0;\n\n\t\t  btnDl.href = PDF_URL;\n\t\t  try {\n\t\t    const name = decodeURIComponent(PDF_URL.split('\/').pop().split('?')[0]);\n\t\t    if (name) btnDl.setAttribute('download', name);\n\t\t  } catch (e) { \/* laat browser de naam zelf bepalen *\/ }\n\n\t\t  function arrowReserve() {\n\t\t    return window.matchMedia('(max-width: 760px)').matches ? 60 : 84;\n\t\t  }\n\n\t\t  function layoutFrame() {\n\t\t    if (baseRatio === null) return;\n\t\t    const reserve = arrowReserve();\n\t\t    const availW  = Math.max(120, stage.clientWidth - reserve * 2);\n\t\t    const availH  = stage.clientHeight;\n\n\t\t    let w, h;\n\t\t    if (availW * baseRatio <= availH) {\n\t\t      w = availW;\n\t\t      h = availW * baseRatio;\n\t\t    } else {\n\t\t      h = availH;\n\t\t      w = availH \/ baseRatio;\n\t\t    }\n\n\t\t    frame.style.width  = w + 'px';\n\t\t    frame.style.height = h + 'px';\n\t\t  }\n\n\t\t  \/* Padding die rond dit blok staat (op de Elementor-sectie\/kolom\n\t\t     zelf) \u2014 moet van de schermhoogte afgetrokken worden zodat blok +\n\t\t     padding samen exact de viewport vullen. *\/\n\t\t  function verticalReserve() {\n\t\t    return window.matchMedia('(max-width: 767px)').matches\n\t\t      ? { top: 140, bottom: 40 }\n\t\t      : { top: 80, bottom: 40 };\n\t\t  }\n\n\t\t  function setViewerHeight() {\n\t\t    const h = window.visualViewport ? window.visualViewport.height : window.innerHeight;\n\t\t    const reserve = verticalReserve();\n\t\t    viewer.style.height = Math.max(800, h - reserve.top - reserve.bottom) + 'px';\n\t\t  }\n\n\t\t  function makeSlide() {\n\t\t    const slide  = document.createElement('div');\n\t\t    slide.className = 'pv-slide';\n\t\t    const zoomWrap = document.createElement('div');\n\t\t    zoomWrap.className = 'pv-zoom';\n\t\t    const canvas = document.createElement('canvas');\n\t\t    zoomWrap.appendChild(canvas);\n\t\t    slide.appendChild(zoomWrap);\n\t\t    return slide;\n\t\t  }\n\n\t\t  function renderInto(canvas, pageNum) {\n\t\t    return pdf.getPage(pageNum).then(function (page) {\n\t\t      const vp1 = page.getViewport({ scale: 1 });\n\t\t      if (baseRatio === null) {\n\t\t        baseRatio = vp1.height \/ vp1.width;\n\t\t      }\n\t\t      layoutFrame();\n\n\t\t      const stageWidth  = frame.clientWidth;\n\t\t      const outputScale = (window.devicePixelRatio || 1) * ZOOM_RENDER_FACTOR;\n\t\t      const scale         = stageWidth \/ vp1.width;\n\t\t      const vp            = page.getViewport({ scale: scale * outputScale });\n\n\t\t      canvas.width  = Math.round(vp.width);\n\t\t      canvas.height = Math.round(vp.height);\n\n\t\t      const ctx = canvas.getContext('2d');\n\t\t      return page.render({ canvasContext: ctx, viewport: vp }).promise;\n\t\t    });\n\t\t  }\n\n\t\t  function updateCounter() {\n\t\t    counter.textContent = current + ' \/ ' + pdf.numPages;\n\t\t    btnPrev.hidden = current <= 1;\n\t\t    btnNext.hidden = current >= pdf.numPages;\n\t\t  }\n\n\t\t  function showFirstPage() {\n\t\t    const slide = makeSlide();\n\t\t    track.appendChild(slide);\n\t\t    renderInto(slide.querySelector('canvas'), current).then(function () {\n\t\t      currentSlide = slide;\n\t\t      updateCounter();\n\t\t    });\n\t\t  }\n\n\t\t  function go(delta) {\n\t\t    if (busy || !pdf) return;\n\t\t    const target = current + delta;\n\t\t    if (target < 1 || target > pdf.numPages) return;\n\n\t\t    busy = true;\n\t\t    const direction  = delta > 0 ? 1 : -1;\n\t\t    const incoming   = makeSlide();\n\t\t    const canvas     = incoming.querySelector('canvas');\n\n\t\t    incoming.style.transition = 'none';\n\t\t    incoming.style.transform  = 'translateX(' + (direction * 100) + '%)';\n\t\t    track.appendChild(incoming);\n\n\t\t    renderInto(canvas, target).then(function () {\n\t\t      incoming.getBoundingClientRect();\n\t\t      incoming.style.transition = '';\n\n\t\t      requestAnimationFrame(function () {\n\t\t        currentSlide.style.transform = 'translateX(' + (-direction * 100) + '%)';\n\t\t        incoming.style.transform     = 'translateX(0%)';\n\t\t      });\n\n\t\t      incoming.addEventListener('transitionend', function onEnd() {\n\t\t        incoming.removeEventListener('transitionend', onEnd);\n\t\t        currentSlide.remove();\n\t\t        currentSlide = incoming;\n\t\t        current = target;\n\t\t        updateCounter();\n\t\t        resetZoom();\n\t\t        busy = false;\n\t\t      }, { once: true });\n\t\t    });\n\t\t  }\n\n\t\t  btnPrev.addEventListener('click', function () { go(-1); });\n\t\t  btnNext.addEventListener('click', function () { go(1); });\n\n\t\t  function clamp(v, min, max) { return Math.min(max, Math.max(min, v)); }\n\n\t\t  function clampPan() {\n\t\t    const fw = frame.clientWidth, fh = frame.clientHeight;\n\t\t    const maxX = Math.max(0, (fw * (zoom - 1)) \/ 2);\n\t\t    const maxY = Math.max(0, (fh * (zoom - 1)) \/ 2);\n\t\t    panX = clamp(panX, -maxX, maxX);\n\t\t    panY = clamp(panY, -maxY, maxY);\n\t\t  }\n\n\t\t  function applyZoomTransform() {\n\t\t    if (!currentSlide) return;\n\t\t    const zoomEl = currentSlide.querySelector('.pv-zoom');\n\t\t    zoomEl.style.transform = 'translate(' + panX + 'px,' + panY + 'px) scale(' + zoom + ')';\n\t\t  }\n\n\t\t  function updateZoomButtons() {\n\t\t    btnZoomOut.disabled = zoom <= MIN_ZOOM + 0.001;\n\t\t    btnZoomIn.disabled  = zoom >= MAX_ZOOM - 0.001;\n\t\t  }\n\n\t\t  function setZoom(z, animate) {\n\t\t    if (!currentSlide) return;\n\t\t    zoom = clamp(z, MIN_ZOOM, MAX_ZOOM);\n\t\t    clampPan();\n\t\t    const zoomEl = currentSlide.querySelector('.pv-zoom');\n\t\t    zoomEl.classList.toggle('pv-zoom-anim', !!animate);\n\t\t    applyZoomTransform();\n\t\t    frame.classList.toggle('pv-zoomed', zoom > 1);\n\t\t    updateZoomButtons();\n\t\t  }\n\n\t\t  function resetZoom() {\n\t\t    zoom = 1;\n\t\t    panX = 0;\n\t\t    panY = 0;\n\t\t    frame.classList.remove('pv-zoomed');\n\t\t    updateZoomButtons();\n\t\t  }\n\n\t\t  btnZoomIn.addEventListener('click', function () { setZoom(zoom + ZOOM_STEP, true); });\n\t\t  btnZoomOut.addEventListener('click', function () { setZoom(zoom - ZOOM_STEP, true); });\n\n\t\t  frame.addEventListener('dblclick', function () {\n\t\t    setZoom(zoom > 1 ? 1 : 2, true);\n\t\t  });\n\n\t\t  let dragging = false, dragStartX = 0, dragStartY = 0, panStartX = 0, panStartY = 0;\n\n\t\t  frame.addEventListener('mousedown', function (e) {\n\t\t    if (zoom <= 1) return;\n\t\t    dragging = true;\n\t\t    dragStartX = e.clientX;\n\t\t    dragStartY = e.clientY;\n\t\t    panStartX = panX;\n\t\t    panStartY = panY;\n\t\t    if (currentSlide) currentSlide.querySelector('.pv-zoom').classList.remove('pv-zoom-anim');\n\t\t    e.preventDefault();\n\t\t  });\n\t\t  window.addEventListener('mousemove', function (e) {\n\t\t    if (!dragging) return;\n\t\t    panX = panStartX + (e.clientX - dragStartX);\n\t\t    panY = panStartY + (e.clientY - dragStartY);\n\t\t    clampPan();\n\t\t    applyZoomTransform();\n\t\t  });\n\t\t  window.addEventListener('mouseup', function () { dragging = false; });\n\n\t\t  let touchState = null;\n\t\t  let touchStartX = 0, touchStartY = 0, touchMoved = false;\n\t\t  let pinchStartDist = 0, pinchStartZoom = 1;\n\t\t  let panTouchStartX = 0, panTouchStartY = 0, panStartXAtTouch = 0, panStartYAtTouch = 0;\n\n\t\t  function touchDistance(touches) {\n\t\t    const dx = touches[0].clientX - touches[1].clientX;\n\t\t    const dy = touches[0].clientY - touches[1].clientY;\n\t\t    return Math.sqrt(dx * dx + dy * dy);\n\t\t  }\n\n\t\t  frame.addEventListener('touchstart', function (e) {\n\t\t    if (e.touches.length === 2) {\n\t\t      touchState = 'pinch';\n\t\t      pinchStartDist = touchDistance(e.touches);\n\t\t      pinchStartZoom = zoom;\n\t\t      if (currentSlide) currentSlide.querySelector('.pv-zoom').classList.remove('pv-zoom-anim');\n\t\t    } else if (e.touches.length === 1) {\n\t\t      const t = e.touches[0];\n\t\t      touchStartX = t.clientX;\n\t\t      touchStartY = t.clientY;\n\t\t      touchMoved  = false;\n\t\t      if (zoom > 1) {\n\t\t        touchState = 'pan';\n\t\t        panTouchStartX = t.clientX;\n\t\t        panTouchStartY = t.clientY;\n\t\t        panStartXAtTouch = panX;\n\t\t        panStartYAtTouch = panY;\n\t\t        if (currentSlide) currentSlide.querySelector('.pv-zoom').classList.remove('pv-zoom-anim');\n\t\t      } else {\n\t\t        touchState = 'swipe';\n\t\t      }\n\t\t    }\n\t\t  }, { passive: true });\n\n\t\t  frame.addEventListener('touchmove', function (e) {\n\t\t    if (touchState === 'pinch' && e.touches.length === 2) {\n\t\t      e.preventDefault();\n\t\t      const dist   = touchDistance(e.touches);\n\t\t      const factor = dist \/ pinchStartDist;\n\t\t      zoom = clamp(pinchStartZoom * factor, MIN_ZOOM, MAX_ZOOM);\n\t\t      clampPan();\n\t\t      applyZoomTransform();\n\t\t      frame.classList.toggle('pv-zoomed', zoom > 1);\n\t\t    } else if (touchState === 'pan' && e.touches.length === 1) {\n\t\t      e.preventDefault();\n\t\t      const t = e.touches[0];\n\t\t      panX = panStartXAtTouch + (t.clientX - panTouchStartX);\n\t\t      panY = panStartYAtTouch + (t.clientY - panTouchStartY);\n\t\t      clampPan();\n\t\t      applyZoomTransform();\n\t\t    } else if (touchState === 'swipe' && e.touches.length === 1) {\n\t\t      const t  = e.touches[0];\n\t\t      const dx = t.clientX - touchStartX;\n\t\t      const dy = t.clientY - touchStartY;\n\t\t      if (Math.abs(dx) > 12 && Math.abs(dx) > Math.abs(dy)) touchMoved = true;\n\t\t    }\n\t\t  }, { passive: false });\n\n\t\t  frame.addEventListener('touchend', function (e) {\n\t\t    if (touchState === 'swipe' && touchMoved) {\n\t\t      const t  = e.changedTouches[0];\n\t\t      const dx = t.clientX - touchStartX;\n\t\t      const dy = t.clientY - touchStartY;\n\t\t      if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) go(dx < 0 ? 1 : -1);\n\t\t    }\n\t\t    if (touchState === 'pinch' && zoom <= MIN_ZOOM + 0.02) {\n\t\t      setZoom(1, true);\n\t\t    }\n\t\t    if (e.touches.length === 0) updateZoomButtons();\n\t\t    touchState = null;\n\t\t  }, { passive: true });\n\n\t\t  let hovering = false;\n\t\t  viewer.addEventListener('mouseenter', function () { hovering = true; });\n\t\t  viewer.addEventListener('mouseleave', function () { hovering = false; });\n\n\t\t  document.addEventListener('keydown', function (e) {\n\t\t    if (!hovering) return;\n\t\t    if (e.key === 'ArrowRight') go(1);\n\t\t    if (e.key === 'ArrowLeft')  go(-1);\n\t\t    if (e.key === '+' || e.key === '=') setZoom(zoom + ZOOM_STEP, true);\n\t\t    if (e.key === '-') setZoom(zoom - ZOOM_STEP, true);\n\t\t  });\n\n\t\t  let resizeTimer = null;\n\t\t  function handleResize() {\n\t\t    setViewerHeight();\n\t\t    clearTimeout(resizeTimer);\n\t\t    resizeTimer = setTimeout(function () {\n\t\t      if (!currentSlide || busy) return;\n\t\t      renderInto(currentSlide.querySelector('canvas'), current).then(function () {\n\t\t        clampPan();\n\t\t        applyZoomTransform();\n\t\t      });\n\t\t    }, 150);\n\t\t  }\n\n\t\t  window.addEventListener('resize', handleResize);\n\t\t  window.addEventListener('orientationchange', handleResize);\n\t\t  if (window.visualViewport) {\n\t\t    window.visualViewport.addEventListener('resize', handleResize);\n\t\t  }\n\n\t\t  setViewerHeight();\n\t\t  updateZoomButtons();\n\n\t\t  pdfjsLib.getDocument(PDF_URL).promise.then(function (doc) {\n\t\t    pdf = doc;\n\t\t    showFirstPage();\n\t\t  });\n\n\t\t})();\n\t\t<\/script>\n\t\t\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1100","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Masters Collective - Decomasters<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Masters Collective - Decomasters\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/\" \/>\n<meta property=\"og:site_name\" content=\"Decomasters\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-30T13:41:17+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/\",\"url\":\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/\",\"name\":\"The Masters Collective - Decomasters\",\"isPartOf\":{\"@id\":\"https:\/\/www.deco-masters.be\/en\/#website\"},\"datePublished\":\"2026-06-30T12:19:17+00:00\",\"dateModified\":\"2026-06-30T13:41:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.deco-masters.be\/en\/home\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Masters Collective\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.deco-masters.be\/en\/#website\",\"url\":\"https:\/\/www.deco-masters.be\/en\/\",\"name\":\"Decomasters\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.deco-masters.be\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.deco-masters.be\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.deco-masters.be\/en\/#organization\",\"name\":\"Decomasters\",\"url\":\"https:\/\/www.deco-masters.be\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.deco-masters.be\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.deco-masters.be\/wp-content\/uploads\/2025\/01\/logo.png\",\"contentUrl\":\"https:\/\/www.deco-masters.be\/wp-content\/uploads\/2025\/01\/logo.png\",\"width\":640,\"height\":252,\"caption\":\"Decomasters\"},\"image\":{\"@id\":\"https:\/\/www.deco-masters.be\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Masters Collective - Decomasters","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/","og_locale":"en_US","og_type":"article","og_title":"The Masters Collective - Decomasters","og_url":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/","og_site_name":"Decomasters","article_modified_time":"2026-06-30T13:41:17+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/","url":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/","name":"The Masters Collective - Decomasters","isPartOf":{"@id":"https:\/\/www.deco-masters.be\/en\/#website"},"datePublished":"2026-06-30T12:19:17+00:00","dateModified":"2026-06-30T13:41:17+00:00","breadcrumb":{"@id":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.deco-masters.be\/en\/toepassingswijzer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.deco-masters.be\/en\/home\/"},{"@type":"ListItem","position":2,"name":"The Masters Collective"}]},{"@type":"WebSite","@id":"https:\/\/www.deco-masters.be\/en\/#website","url":"https:\/\/www.deco-masters.be\/en\/","name":"Decomasters","description":"","publisher":{"@id":"https:\/\/www.deco-masters.be\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.deco-masters.be\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.deco-masters.be\/en\/#organization","name":"Decomasters","url":"https:\/\/www.deco-masters.be\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.deco-masters.be\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.deco-masters.be\/wp-content\/uploads\/2025\/01\/logo.png","contentUrl":"https:\/\/www.deco-masters.be\/wp-content\/uploads\/2025\/01\/logo.png","width":640,"height":252,"caption":"Decomasters"},"image":{"@id":"https:\/\/www.deco-masters.be\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/pages\/1100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/comments?post=1100"}],"version-history":[{"count":2,"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/pages\/1100\/revisions"}],"predecessor-version":[{"id":1122,"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/pages\/1100\/revisions\/1122"}],"wp:attachment":[{"href":"https:\/\/www.deco-masters.be\/en\/wp-json\/wp\/v2\/media?parent=1100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}