my-mask-library
v3.0.1
Published
A Vue.js input mask component library
Downloads
7
Readme
My Mask Library
🚀 Overview
mask-input
is a Vue.js component library that provides an easy-to-use input masking solution. With flexible masking options, you can format user input for phone numbers, credit cards, dates, and more. This library offers a seamless way to enforce input formats and ensure data consistency in your Vue.js applications.
📦 Installation
To get started with mask-input
, follow these steps:
1. Install the Package
You can install the library via npm or yarn:
Using npm
npm install my-mask-library
or
yarn add my-mask-library
📘 Usage
Once installed, you can import and use the MaskInputComponent in your Vue.js application. Here's a step-by-step guide on how to integrate it:
1. Import and Register the Component
In your main entry file (e.g., main.js or main.ts), import the MaskInputComponent and register it globally or locally in your components.
Global Registration
import { createApp } from 'vue';
import App from './App.vue';
import MaskInputComponent from 'my-mask-library';
// Create your Vue app
const app = createApp(App);
// Register the component globally
app.component('MaskInputComponent', MaskInputComponent);
// Mount the app
app.mount('#app');
Local Registration
In the component where you want to use the masked input:
<template>
<div>
<MaskInputComponent
v-model="maskedValue"
mask="(###) ###-####"
type="text"
className="masked-input"
/>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import MaskInputComponent from 'mask-input';
export default defineComponent({
components: {
MaskInputComponent
},
setup() {
const maskedValue = ref('');
return {
maskedValue
};
}
});
</script>
2. Component Props
The MaskInputComponent accepts the following props:
- mask (String, Required): The mask pattern to be applied to the input. Example: "(###) ###-####".
- type (String, Optional): The type of the input. Defaults to "text".
- className (String, Optional): Additional CSS class names to apply to the input.
- placeholder (String, Optional): Placeholder text for the input. Defaults to an empty string.
- disabled (Boolean, Optional): Disables the input if set to true. Defaults to false.
- name (String, Optional): The name attribute for the input. Defaults to an empty string.
- id (String, Optional): The id attribute for the input. Defaults to an empty string.
- autocomplete (String, Optional): The autocomplete attribute for the input. Defaults to "off".
- readonly (Boolean, Optional): Makes the input read-only if set to true. Defaults to false.
3. Handling Events
The component emits the following event:
update:modelValue: Emitted when the masked value changes. You can use this event to update your model value or handle changes in your application.
<template>
<div>
<MaskInputComponent
v-model="maskedValue"
mask="####-####-####-####"
@update:modelValue="handleUpdate"
/>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import MaskInputComponent from 'mask-input';
export default defineComponent({
components: {
MaskInputComponent
},
setup() {
const maskedValue = ref('');
function handleUpdate(newValue: string) {
console.log('Updated masked value:', newValue);
maskedValue.value = newValue;
}
return {
maskedValue,
handleUpdate
};
}
});
</script>
📝 Contributing
We welcome contributions! If you have any ideas, suggestions, or bug fixes, please feel free to open an issue or submit a pull request.
🔗 License
This project is licensed under the MIT License.