Sha256: 28d8f4497bbcceb26199b2f0a432d75007547fefc0487918fa479661f8d62d89

Contents?: true

Size: 633 Bytes

Versions: 66

Compression:

Stored size: 633 Bytes

Contents

import { Controller } from "@hotwired/stimulus";

/**
 * Connect an input (e.g. title) to slug.
 */
export default class SluggableController extends Controller {
  static targets = ["source", "slug"];
  static values = {
    slug: String,
  };

  sourceChanged(e) {
    if (this.slugValue === "") {
      this.slugTarget.value = parameterize(this.sourceTarget.value);
    }
  }

  slugChanged(e) {
    this.slugValue = this.slugTarget.value;
  }
}

function parameterize(input) {
  return input
    .toLowerCase()
    .replace(/'/g, "-")
    .replace(/[^-\w\s]/g, "")
    .replace(/[^a-z0-9]+/g, "-")
    .replace(/(^-|-$)/g, "");
}

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
katalyst-koi-4.16.0 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.15.1 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.15.0 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.14.3 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.14.2 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.14.1 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.14.0 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.13.2 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.13.0 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.6 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.5 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.4 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.3 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.2 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.1 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.12.0 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.11.2 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.11.1 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.11.0 app/assets/javascripts/koi/controllers/sluggable_controller.js
katalyst-koi-4.10.3 app/assets/javascripts/koi/controllers/sluggable_controller.js