Socket
Socket
Sign inDemoInstall

vue-numeric-keypad

Package Overview
Dependencies
10
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vue-numeric-keypad

The virtual numeric keypad that can be used on Vue.


Version published
Maintainers
1
Created

Readme

Source

Vue Numeric Keypad npm npm dev dependency version

The virtual numeric keypad that can be used on Vue. It was produced in NPM v6.14.13 and Vue v2.6.14 environments. By default, keys are randomly arranged and you can specify various settings using options.

Installation

npm i vue-numeric-keypad

Usage

Usage with Module

<template>
  <div id="app">
    <input
      type="number"
      :value="value"
      @click.stop="show = true"
      readonly
    />
    <VueNumericKeypad
      :value.sync="value"
      :show.sync="show"
      :options="options"
    />
  </div>
</template>

<script>
import  VueNumericKeypad  from "vue-numeric-keypad";

export  default {
  name:  "App",
  components: {
    VueNumericKeypad,
  },
  data() {
    return {
      value:  "",
      show:  0,
      options: {
        keyRandomize:  true,
        randomizeClick:  true,
        fixDeleteKey:  false,
      },
    };
  },
  created() {
    document.addEventListener('click', function () {
      this.show = 0;
    }.bind(this));
  }
};
</script>

Usage with CDN

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-numeric-keypad@1.0.1/dist/vue-numeric-keypad.min.js"></script>
<script>
  Vue.use(VueNumericKeypad);
  new Vue({ ... });
</script>
...
<vue-numeric-keypad
  :value.sync="value"
  :show.sync="show"
  :options="options"
/>

Demo

https://chae-sumin.github.io/vue-numeric-keypad-demo/

Props and Options

The props have to deliver changing values or objects, so bind them with v-bind: or :. In addition, value and show require two-way binding, so add the .sync modifier.

props

propertyDescriptionRequiredtype
idID of the keypad.FalseString
:value.syncThe value to change when entering the keypad.TrueString variable
:show.syncBind to the v-show on the keypad. And adjust the font size and randomize the key arrangement.TrueBoolean or Number variable
:optionsSet several values.
(details can be found below)
FalseObject

options

optionDescriptiontypedefault
keyRandomizeIf the value is true, randomize the key array whenever the show prop changes.BooleanTrue
randomizeWhenClickIf the value is true and keyRandomize is true, randomize the key array whenever you press the key.BooleanFalse
fixDeleteKeyIf the value is true, the delete key is fixed at the end when the key array is randomized.BooleanTrue
keypadStylesSet the style of the keypad.Object
(Style Object)
Check below.
buttonWrapStylesSet the style of wrapping the button.Object
(Style Object)
Check below.
buttonStylesSet the style of the button.Object
(Style Object)
Check below.
deleteButtonStylesSet the style of the delete button.Object
(Style Object)
buttonStyles
blankButtonStylesSet the style of the blank button.Object
(Style Object)
buttonStyles
zIndexSets the z-index value.
Valid when keypadStyles is the default.
Number1
rowsSets the number of rows in the key array.
Valid when buttonWrapStyles is the default.
Number4
columnsSets the number of columns in the key array.
Valid when buttonWrapStyles is the default.
keyArraykeyArray can only have an integer 'number' between -1 and 9 and an empty 'string' type.
-1 means the delete key
Arraycolumns === 3 ?
[1, 2, 3, 4, 5, 6, 7, 8, 9, "", 0, -1] :
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, "", -1]
styles defaults

keypadStyles :

const  fontSize = Math.min(this.cellWidth, this.cellHeight) * 0.3;
{
  position: 'fixed',
  bottom: 0,
  left: 0,
  right: 0,
  height: '40vh',
  padding: '10px',
  backgroundColor: '#fff',
  borderRadius: '10px 10px 0 0',
  boxShadow: '0 -4px 4px rgba(0, 0, 0, 0.1)',
  color: '#000',
  overflow: 'hidden',
  fontSize: fontSize + 'px'
}

buttonWrapStyles :

// columns = button columns
// rows = button rows
{
  display: 'grid',
  width: '100%',
  height: '100%',
  gridTemplateColumns: `repeat(${columns}, 1fr)`,
  gridTemplateRows: `repeat(${rows}, 1fr)`,
  gridGap: '5px'
}

buttonStyles :

{
  display: 'flex',
  justifyContent: 'center',
  alignItems: 'center',
  backgroundColor: '#fff',
  border: '1px solid #000',
  borderRadius: '5px',
  fontSize: 'inherit'
}

Tip

  • You can bind only one value to one keypad, or you can bind multiple values.
  • You can always keep the value of the show true and adjust the position of the keypad so that the keypad can always be located in a fixed layout.
  • You don't have to always bind the visible value.
  • If you want to customize a style using css, initialize the style by putting an empty object in the style-related option.
  • If you match the total length of the optional keyArray with the total length of the keypad, the design will not break.

License

NPM

Contact

cotnmin@gmail.com

Keywords

FAQs

Last updated on 04 Oct 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc