@peculiar/fortify-webcomponents
Version:
Web-components for creating CSR or Certificate and viewing certificates list using Fortify
57 lines (56 loc) • 3.85 kB
JavaScript
/*!
* © Peculiar Ventures https://peculiarventures.com/ - BSD 3-Clause License
*/
/**
* @license
* Copyright (c) Peculiar Ventures, LLC.
*
* This source code is licensed under the BSD 3-Clause license found in the
* LICENSE file in the root directory of this source tree.
*/
import { h, } from "@stencil/core";
import { ESignatureAlgorithm, EHashAlgorithm, EName, } from "@peculiar/fortify-client-core";
import { Typography } from "@peculiar/certificates-viewer";
import { getString } from "../../utils/l10n";
import { FortifyButton } from "../fortify-button";
import { EnrollmentFormPublicKey } from "./enrollment-form-public-key";
import { EnrollmentFormSubject } from "./enrollment-form-subject";
import { EnrollmentFormOptions } from "./enrollment-form-options";
import { EnrollmentFormProvider } from "./enrollment-form-provider";
const FORM_ID = 'enrollment-form';
export const EnrollmentForm = (props) => {
const { formPolicy, providers = [], onSubmit, onCancel, } = props;
const handleSubmit = (event) => {
event.preventDefault();
if (event.target instanceof HTMLFormElement) {
const formData = new FormData(event.target);
const availableSubjectCodes = Object.values(EName);
const data = {
subjectName: '',
useSelfSignedCertificate: false,
providerId: '',
signatureAlgorithm: ESignatureAlgorithm.RSA2048,
hashAlgorithm: EHashAlgorithm.SHA_256,
};
formData.forEach((value, key) => {
if (key in data) {
data[key] = value;
}
if (key === 'useSelfSignedCertificate') {
data[key] = true;
}
if (availableSubjectCodes.includes(key) && value) {
if (!data.subjectName) {
data.subjectName = `${key}=${value}`;
}
else {
data.subjectName = data.subjectName.concat(`, ${key}=${value}`);
}
}
});
onSubmit(data);
}
};
return (h("div", { class: "enrollment_form" }, h("header", { class: "enrollment_form_header" }, h(Typography, { variant: "h5", color: "black" }, getString('enrollment.title'))), h("form", { class: "enrollment_form_content", id: FORM_ID, onSubmit: handleSubmit }, h("div", { class: "enrollment_form_group" }, h(Typography, { variant: "s2", color: "black" }, getString('enrollment.title.provider')), h(EnrollmentFormProvider, { class: "enrollment_form_group_fields mt_2", providers: providers })), h("div", { class: "enrollment_form_group" }, h(Typography, { variant: "s2", color: "black" }, formPolicy.subject.title || getString('enrollment.title.subject')), h(EnrollmentFormSubject, { class: "enrollment_form_group_fields mt_2", formPolicy: formPolicy.subject.fields })), h("div", { class: "enrollment_form_group" }, h(Typography, { variant: "s2", color: "black" }, formPolicy.publicKey.title || getString('enrollment.title.publicKey')), h(EnrollmentFormPublicKey, { class: "enrollment_form_group_fields mt_2", formPolicy: formPolicy.publicKey.fields })), h("div", { class: "enrollment_form_group" }, h(Typography, { variant: "s2", color: "black" }, formPolicy.options.title || getString('enrollment.title.options')), h(EnrollmentFormOptions, { class: "mt_6", formPolicy: formPolicy.options.fields }))), h("footer", { class: "enrollment_form_footer container_actions" }, h(FortifyButton, { onClick: onCancel }, getString('actions.cancel')), h(FortifyButton, { variant: "primary", type: "submit", ref: (el) => el === null || el === void 0 ? void 0 : el.setAttribute('form', FORM_ID) }, getString('actions.create')))));
};
//# sourceMappingURL=enrollment-form.js.map