Sha256: b6e1545b4d29d63596477bdfcf09b2ad0990f991f5c7bea685387c562f159499

Contents?: true

Size: 927 Bytes

Versions: 7

Compression:

Stored size: 927 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

7 entries across 7 versions & 1 rubygems

Version Path
plutonium-0.20.4 src/js/controllers/intl_tel_input_controller.js
plutonium-0.20.3 src/js/controllers/intl_tel_input_controller.js
plutonium-0.20.1 src/js/controllers/intl_tel_input_controller.js
plutonium-0.20.0 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.13 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.12 src/js/controllers/intl_tel_input_controller.js
plutonium-0.19.11 src/js/controllers/intl_tel_input_controller.js