Sha256: 2b5b5299335926e93be351047b7e72cf3737f2981cfce9c62b0a4c953ca8743e

Contents?: true

Size: 1.49 KB

Versions: 10

Compression:

Stored size: 1.49 KB

Contents

// application_controller.js
import { Controller } from '@hotwired/stimulus'

export default class ApplicationController extends Controller {
  connect () {
    this.element[this.identifier] = this
  }

  getController (element, identifier) {
    return this.application.getControllerForElementAndIdentifier(element, identifier)
  }

  triggerEvent (el, name, data) {
    let event
    if (typeof window.CustomEvent === 'function') {
      event = new CustomEvent(name, { detail: data, cancelable: true, bubbles: true })
    } else {
      event = document.createEvent('CustomEvent')
      event.initCustomEvent(name, true, true, data)
    }
    el.dispatchEvent(event)
  }

  elementScrolled (element) {
    if (element.scrollHeight - Math.round(element.scrollTop) === element.clientHeight) {
      return true
    }
    return false
  }

  debouncedHover (element, timeout, handler) {
    var timeoutId = null
    element.addEventListener(marker, 'mouseover', function () {
      timeoutId = setTimeout(handler, timeout)
    })

    element.addEventListener(marker, 'mouseout', function () {
      clearTimeout(timeoutId)
    })
  }

  get ourUrl () {
    // This requires the mensaTableOutlet
    let turboFrame = this.mensaTableOutlet?.turboFrameTarget
    if(!turboFrame) {
      turboFrame = this.turboFrameTarget
    }
    let url

    if (turboFrame && turboFrame.getAttribute('src')) {
      url = new URL(turboFrame.getAttribute('src'))
    } else {
      url = new URL(window.location.href)
    }
    return url
  }
}

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mensa-0.1.15 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.14 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.13 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.12 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.10 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.9 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.7 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.6 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.4 app/javascript/mensa/controllers/application_controller.js
mensa-0.1.3 app/javascript/mensa/controllers/application_controller.js