kwikid-components-react
Version:
KwikID's Component Library in React
194 lines (187 loc) • 7.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.ReportGeneration = exports.Login = exports.DocumentVerification = exports.CustomerDetails = exports.AgentOnboarding = exports.AddressDetails = void 0;
var _react = _interopRequireWildcard(require("react"));
var _Forms = _interopRequireDefault(require("../form-view/Forms"));
var _idVerification = _interopRequireDefault(require("./configs/id-verification.json"));
var _addressVerification = _interopRequireDefault(require("./configs/address-verification.json"));
var _loginForm = _interopRequireDefault(require("./configs/login-form.json"));
var _agentOnboarding = _interopRequireDefault(require("./configs/agent-onboarding.json"));
var _registrationForm = _interopRequireDefault(require("./configs/registration-form.json"));
var _reportGeneration = _interopRequireDefault(require("./configs/report-generation.json"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // Import only the needed configs
/**
* KwikID Form View component allows for dynamic form rendering based on configuration.
* It handles data binding, validation, and form submission for identity verification workflows.
*/
var _default = exports.default = {
title: "Forms/Forms",
component: _Forms.default,
parameters: {
docs: {
description: {
component: "\nThe Form View component is a powerful tool for rendering dynamic identity verification forms based on JSON configuration.\nIt supports various field types, validation rules, and data binding capabilities commonly used in KYC and identity verification processes.\n\n## Features\n- Dynamic form generation from configuration\n- Two-way data binding\n- Field validation\n- Conditional field visibility\n- Form submission handling\n- Identity verification specific fields and validations\n- Document upload and verification\n- Biometric capture and verification\n\n## Common Use Cases\n- KYC (Know Your Customer) verification\n- Customer onboarding\n- Document verification\n- Biometric verification\n- Liveness checks\n- Address verification\n- PAN/Aadhaar verification\n- Banking and financial application forms\n "
}
},
componentSubtitle: "Dynamic identity verification form renderer component"
},
argTypes: {
data: {
control: "object",
description: "Form data object that will be used to populate the form fields"
},
config: {
control: "object",
description: "Configuration object that defines the form structure and behavior"
},
getData: {
description: "Callback function that gets called when data changes"
},
getSavedData: {
description: "Callback function that gets called when the form is submitted"
}
}
};
const Template = _ref => {
let args = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
const [config] = (0, _react.useState)(args.config);
const [localData, setLocalData] = (0, _react.useState)(args.data);
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
style: {
width: "100%",
height: "100%",
boxShadow: "0px 0px 10px -3px lightgray",
borderRadius: "1rem",
padding: "1rem"
}
}, /*#__PURE__*/_react.default.createElement(_Forms.default, _extends({
config: config,
data: localData,
getData: data => {
setLocalData(data);
console.log("DATA UPDATED:", data);
},
getSavedData: params => {
console.log("DATA SAVED:", params);
}
}, args))));
};
// 1. Document Verification form with Aadhaar, PAN, and Passport
const DocumentVerification = exports.DocumentVerification = Template.bind({});
DocumentVerification.args = {
config: _idVerification.default,
data: {
verification_type: "",
pan_number: "",
aadhaar_number: "",
passport_number: "",
date_of_birth: "",
verification_consent: false
}
};
DocumentVerification.parameters = {
docs: {
description: {
story: "Document verification form supporting multiple ID types including Aadhaar, PAN, and Passport, with built-in validation."
}
}
};
// 2. Address Details form
const AddressDetails = exports.AddressDetails = Template.bind({});
AddressDetails.args = {
config: _addressVerification.default,
data: {
address_type: "",
address_line_1: "",
address_line_2: "",
city: "",
state: "",
pin_code: "",
address_proof_type: "",
address_proof_document: null,
address_confirmation: false
}
};
AddressDetails.parameters = {
docs: {
description: {
story: "Address verification form for capturing and validating customer residential and permanent address information."
}
}
};
// 3. Login Form
const Login = exports.Login = Template.bind({});
Login.args = {
config: _loginForm.default,
data: {
email: "",
password: "",
rememberMe: false
}
};
Login.parameters = {
docs: {
description: {
story: "Authentication form for secure login to identity verification platforms with email and password validation."
}
}
};
// 4. Agent/Admin Onboarding Form
const AgentOnboarding = exports.AgentOnboarding = Template.bind({});
AgentOnboarding.args = {
config: _agentOnboarding.default,
data: {
agent_name: "",
agent_id: "",
agent_password: "",
agent_role: ""
}
};
AgentOnboarding.parameters = {
docs: {
description: {
story: "Agent and admin onboarding form for creating users with specific roles in identity verification workflows."
}
}
};
// 5. Customer Basic Details
const CustomerDetails = exports.CustomerDetails = Template.bind({});
CustomerDetails.args = {
config: _registrationForm.default,
data: {
firstName: "",
lastName: "",
email: "",
phone: "",
dateOfBirth: "",
gender: "",
address: "",
city: "",
country: ""
}
};
CustomerDetails.parameters = {
docs: {
description: {
story: "Customer basic information form capturing essential personal and contact details for identity verification processes."
}
}
};
// 6. Report Generation
const ReportGeneration = exports.ReportGeneration = Template.bind({});
ReportGeneration.args = {
config: _reportGeneration.default,
data: {}
};
ReportGeneration.parameters = {
docs: {
description: {
story: "Report generation form for generating reports based on the selected report type."
}
}
};