Sha256: 5d3c652072d4c1d0b5a51466deb5725f164580b01bd2ebf753454b126f6f07f0

Contents?: true

Size: 911 Bytes

Versions: 20

Compression:

Stored size: 911 Bytes

Contents

import { Controller } from "@hotwired/stimulus"

// Connects to data-controller="intl-tel-input"
export default class extends Controller {
  static targets = ["input"]

  connect() {
  }

  disconnect() {
    this.inputTargetDisconnected()
  }

  inputTargetConnected() {
    if (!this.hasInputTarget) return;

    this.iti = window.intlTelInput(this.inputTarget, this.#buildOptions())
    this.inputTarget.setAttribute("data-action", "turbo:morph-element->intl-tel-input#reconnect")
  }

  inputTargetDisconnected() {
    if (this.iti) this.iti.destroy()
    this.iti = null
  }

  reconnect() {
    this.inputTargetDisconnected()
    this.inputTargetConnected()
  }

  #buildOptions() {
    return {
      strictMode: true,
      hiddenInput: () => ({ phone: this.inputTarget.attributes.name.value }),
      loadUtilsOnInit: "https://cdn.jsdelivr.net/npm/intl-tel-input@24.8.1/build/js/utils.js",
    }
  }
}

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
plutonium-0.19.10 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.9 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.8 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.7 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.6 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.5 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.4 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.3 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.2 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.1 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.0 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.8 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.7 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.6 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.5 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.4 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.3 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.2 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.1 src/js/controllers/intl_tel_input_controller.js
plutonium-0.18.0 src/js/controllers/intl_tel_input_controller.js