Sha256: c195d9b22a9b612fc8754aa6ac5ee2ae0404a47519d52332cd08cf93e402d303

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"

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.70 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.69 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.68 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.67 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.66 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.65 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.64 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.63 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.62 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.61 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.60 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.59 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.58 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.57 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.56 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js
css-zero-0.0.55 lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js