A Vue.js 2 component to clone DOM elements

vue-cloneya

A vue component to clone DOM elements.

Install

yarn add vue-cloneya
# or
npm i vue-cloneya

Import

import Vue      from 'vue'
import VueCloneya from 'vue-cloneya'

Vue.use(VueCloneya)

Example

<vue-cloneya :maximum="5" :value="exampleData">
  <div class="input-group">
      <!-- Add the "v-cloneya-input" directive to elements you wish to set v-bind:value -->
      <!-- Only input, select, radio, checkbox etc. -->
      <input type="text" name="example[]" class="form-control" placeholder="Example" v-cloneya-input>
      <span class="input-group-btn">
        <!-- Add the "v-cloneya-add" directive to elements you wish to add the click listener
        that will clone the root element -->
        <button type="button" class="btn btn-success" tabindex="-1" v-cloneya-add>
            <i class="fa fa-plus"></i>
        </button>
        <!-- Add the "v-cloneya-remove" directive to elements you wish to add the click listener
        that will remove the element -->
        <button type="button" class="btn btn-danger" tabindex="-1"  v-cloneya-remove>
          <i class="fa fa-minus"></i>
        </button>
      </span>
  </div>
</vue-cloneya>

API

Props

minimum

  • Type: number
  • Default: 1

The minimum number of clones allowed.

maximum

  • Type: number
  • Default: 1

The maximum number of clones allowed.

value

  • Type: array
  • Default: null

The values for the v-cloneya-input.

Events

When minimum limit is reached:

  • minimum:cloneya

When maximum limit is reached:

  • maximum:cloneya

Directives

cloneyaInput

v-cloneya-input

cloneyaAdd

v-cloneya-add

cloneyaRemove

v-cloneya-remove

Development

# for dev
yarn dev
#or 
npm run dev

# build with parcel-bundler
yarn build
#or
npm run build

GitHub