0.3.0 • Published 2 years ago

vanilla-pattern-lock v0.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

vanilla-pattern-lock

npm npm version

Android like pattern unlock.

Features

  • Converts pattern to number
  • Vanilla JS - no external libs required
  • Support for touch devices
  • Small size (less than 10KB)
  • TS typings

pattern-lock2-ffmpg

Demo

https://maxwroc.github.io/vanilla-pattern-lock/

Usage

const lock = new PatternLock({ 
    vibrate: true // whether to vibrate on dot/node selection (mobile devices)
});

lock
  .render(document.getElementById("lockContainer"))
  .on("complete", pattern => { // triggers when user stops swiping
      if (pattern == 12345) {
          lock.success(); // green markers
      }
      else {
          lock.failure(); // red markers
          setTimeout(() => {
              lock.clear();
          }, 2000);
      }
  })

Documentation

Methods

Method interfaceReturn valueDescription
render(container: Element)PatternLockRenders pattern lock SVG elementcontainer - Element in which SVG will be rendered
clear()PatternLockClears existing selection and resets internal state
getPattern()numberReturns current pattern
success()PatternLockShows success markers/indicators
failure()PatternLockShows failure markers/indicators

Event related methods

Method interfaceReturn valueDescription
on(name: string, func: Function)PatternLockSets handler for an event (for handler interface look below)
off(name: string, func: Function)PatternLockRemoves handler for an event

Events

Event nameHandler interfaceDescription
complete(pattern: number): voidFired when user finished entering pattern
select(index: number, elem: Element): voidFired when the dot/node is selected.index - Index of the dot/nodeelem - Dot element (SVG image element)
selectionStart(): voidFired when user starts entering pattern
selectionEnd(): voidFired when user ends entering pattern
clear(): voidFired when clear method is called (current pattern is erased)

Settings

NameTypeDescription
vibratebooleanWhether to vibrate when dot is selected

Installation / download

Like it? Star it!

If you like it please consider leaving star on github.

Credits

This code is based on Tympanix/pattern-lock-js. The original library depends on JQuery and it is written in plain JS. I have rewritten the original code in TypeScript and I've added few additional features.