Sha256: 46e599e20fe61482a42c13ab147e4d93490123799320426e095b512a10c99f1d

Contents?: true

Size: 1.43 KB

Versions: 16

Compression:

Stored size: 1.43 KB

Contents

import { Controller } from "@hotwired/stimulus"
import Inputmask from "https://cdn.skypack.dev/inputmask@5.0.9?min"

export default class extends Controller {
  static values = {
    mask:           String,
    alias:          String,
    groupSeparator: { type: String,  default: "" },
    radixPoint:     { type: String,  default: "." },
    digits:         { type: String,  default: "*" },
    digitsOptional: { type: Boolean, default: true },
    inputFormat:    { type: String,  default: "mm/dd/yyyy HH:MM" },
    outputFormat:   { type: String,  default: "yyyy-mm-dd HH:MM" }
  }

  connect() {
    if (this.hasMaskValue) {
      Inputmask({ mask: this.maskValue }).mask(this.element)
    } else if (this.aliasValue == "numeric") {
      Inputmask(this.#numericOptions).mask(this.element)
    } else if (this.aliasValue == "datetime") {
      Inputmask(this.#datetimeOptions).mask(this.element)
    }
  }

  disconnect() {
    Inputmask.remove(this.element)
  }

  get #numericOptions() {
    return {
      alias: "numeric",
      unmaskAsNumber: true,
      removeMaskOnSubmit: true,
      groupSeparator: this.groupSeparatorValue,
      radixPoint: this.radixPointValue,
      digits: this.digitsValue,
      digitsOptional: this.digitsOptionalValue
    }
  }

  get #datetimeOptions() {
    return {
      alias: "datetime",
      removeMaskOnSubmit: true,
      inputFormat: this.inputFormatValue,
      outputFormat: this.outputFormatValue
    }
  }
}

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
css-zero-0.0.86 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.85 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.84 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.83 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.82 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.81 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.80 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.79 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.78 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.77 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.76 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.75 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.74 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.73 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.72 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.71 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js