UNPKG

@peculiar/fortify-webcomponents

Version:

Web-components for creating CSR or Certificate and viewing certificates list using Fortify

57 lines (56 loc) 3.85 kB
/*! * © 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