npm.io
1.2.1 • Published 4 years ago

credence-filter-modal-v1

Licence
Version
1.2.1
Deps
0
Size
83 kB
Vulns
0
Weekly
0

Filter Modal Component for Credence Projects

 version: 1.2.1

Installation

npm i credence-modal-filter-v1

Features

  • Lorem ipsum

Dependencies

  • [Bootstrap-Vue] - ^2.0.0-rc.21

Usage

    <div>
        ...
        <filter-modal :filterModal="propObject" />
        ...
    </div>

Prop Object Data

Name Description Type Syntax
ID Modal ID String id: "myModalID"
Title Modal Title String title: "Filter By"
Cancel Title Value of the cancel button String cancelTitle: "Clear All"
Ok Title Value of the ok button String title: "Apply Filters"
Form Form input field data Object form: {...}
Responses v-model data for each input field Object responses: {}

Form Object Data

Name Description Type Syntax Variants
Autocomplete Form autocomplete attr. String autocomplete: "off" 'on', 'off'
Fields Input fields data [Object] fields: [{...}] ----------

Fields Array Object Data

Data for each field(s) row in the the form

Name Description Type Syntax Variants
ID Field ID [String] id: ["fieldId1"] id: [String, String]
Label Field Label String label: "First Name" -------
Type Field Type [String, String] type: ["single", "date"] type: ["paired", "date"]
Ok Handler Handler func. for ok button Function(event) okHandler(event){...} -----
Cancel Handler Handler func. for cancel button Function(event) cancelHandler(event){...} -----
Submit Handler Handler func. for form submit Function(event) submitHandler(event){...} -----

For List Type Field

Name Description Type Syntax Variants
List Options Values for the select input field [Array] listOptions: [["val1", "val2"],] listOptions: [["val1", "val2"], ["valA", "valB"],]

Sample Usage

<template>
  <filter-modal :filterModal="filterModal" />
</template>

<script>
import FilterModal from "credence-filter-modal-v1/src/FilterModal.vue";

export default {
  name: "ContainerComponent",
  components: { FilterModal },
  data() {
    return {
      filterModal: {
        id: "filter-modal-1",
        title: "Filter By",
        cancelTitle: "Clear All",
        okTitle: "Apply",
        form: {
          autocomplete: "off",
          fields: [
            { id: ["fieldId1"], label: "Date", type: ["single", "date"] },
            { id: ["fieldId2"], label: "Text", type: ["single", "text"] },
            { id: ["fieldId3"], label: "Number", type: ["single", "number"] },
            // prettier-ignore
            { id: ["fieldId4"], label: "Select", type: ["single", "list"], listOptions: [["USD/INR", "INR/AUD"]] },
            { id: ["fieldId5", "fieldId6"], label: "Paired Date", type: ["paired", "date"] },
          ],
        },
        responses: {},
        okHandler(event) {
          event.preventDefault();
          console.log("Apply");
        },
        cancelHandler(event) {
          event.preventDefault();
          console.log("Close");
        },
        submitHandler() {
          console.log("Submit");
        },
      },
    };
  },
};
</script>