@open-formulieren/formio-builder
Version:
An opinionated Formio webform builder for Open Forms
156 lines (155 loc) • 5.65 kB
JavaScript
import { jsxs as a, jsx as e } from "react/jsx-runtime";
import { useFormikContext as c } from "formik";
import { useContext as d } from "react";
import { defineMessages as h, useIntl as m, FormattedMessage as p } from "react-intl";
import y from "../../components/builder/label.js";
import g from "../../components/builder/description.js";
import b from "../../components/builder/tooltip.js";
import { BuilderContext as u } from "../../context.js";
import { Tabs as T, TabList as C, TabPanel as s } from "../../components/formio/tabs.js";
import "clsx";
import { useErrorChecker as M } from "../../utils/errors.js";
/* empty css */
import "@floating-ui/react";
/* empty css */
import "@formio/vanilla-text-mask";
import "formiojs";
import v from "../../components/formio/checkbox.js";
import "lodash";
/* empty css */
import D from "../../components/formio/select.js";
import "dompurify";
import "../../components/formio/datagrid.js";
import { LABELS as l } from "../../components/builder/messages.js";
import E, { useDeriveComponentKey as A } from "../../components/builder/key.js";
import S from "../../components/builder/hidden.js";
import q from "../../components/builder/clear-on-hide.js";
import F from "../../components/builder/is-sensitive-data.js";
import k from "../../components/builder/presentation-config.js";
import "@ckeditor/ckeditor5-react";
import "../../components/CKEditor.js";
/* empty css */
import x from "../../components/builder/simple-conditional.js";
import L from "../../components/builder/is-confirmation-email.js";
import O from "../../components/builder/validate/required.js";
import "react-use";
import V, { useManageValidatorsTranslations as w } from "../../components/builder/validate/i18n.js";
import "../../components/builder/prefill/identifierRole.js";
import { ComponentTranslations as I } from "../../components/builder/i18n.js";
import { Basic as R, Advanced as H, Validation as P, Translations as K } from "../../components/builder/tabs.js";
import "@open-formulieren/monaco-json-editor";
import "../../components/builder/values/values-src.js";
/* empty css */
const U = () => {
const t = m(), [r, i] = A(), {
hasAnyError: o
} = M(), {
values: n
} = c(), f = n.digitalAddressTypes.includes("email");
return w(["required"]), /* @__PURE__ */ a(T, { children: [
/* @__PURE__ */ a(C, { children: [
/* @__PURE__ */ e(R, { hasErrors: o("label", "key", "description", "tooltip", "hidden", "clearOnHide", "isSensitiveData", "showInSummary", "showInEmail", "showInPDF", "shouldUpdateCustomerData", "digitalAddressTypes") }),
/* @__PURE__ */ e(H, { hasErrors: o("conditional") }),
/* @__PURE__ */ e(P, { hasErrors: o("validate") }),
/* @__PURE__ */ e(K, { hasErrors: o("openForms.translations") })
] }),
/* @__PURE__ */ a(s, { children: [
/* @__PURE__ */ e(y, {}),
/* @__PURE__ */ e(E, { isManuallySetRef: r, generatedValue: i }),
/* @__PURE__ */ e(g, {}),
/* @__PURE__ */ e(b, {}),
/* @__PURE__ */ e(k, {}),
/* @__PURE__ */ e(N, {}),
/* @__PURE__ */ e(j, {}),
/* @__PURE__ */ e(S, {}),
/* @__PURE__ */ e(q, {}),
/* @__PURE__ */ e(F, {}),
f && /* @__PURE__ */ e(L, {})
] }),
/* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(x, {}) }),
/* @__PURE__ */ a(s, { children: [
/* @__PURE__ */ e(O, {}),
/* @__PURE__ */ e(V, {})
] }),
/* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(I, { propertyLabels: {
label: t.formatMessage(l.label),
description: t.formatMessage(l.description),
tooltip: t.formatMessage(l.tooltip)
} }) })
] });
};
U.defaultValues = {
// basic tab
label: "",
key: "",
description: "",
tooltip: "",
hidden: !1,
clearOnHide: !0,
isSensitiveData: !0,
shouldUpdateCustomerData: !0,
digitalAddressTypes: ["email", "phoneNumber"],
confirmationRecipient: !1,
// Advanced tab
conditional: {
show: void 0,
when: "",
eq: ""
},
// Validation tab
validate: {
required: !1,
plugins: []
},
translatedErrors: {}
};
const j = () => {
const t = m(), {
formType: r
} = d(u), i = t.formatMessage({
id: "68Aey7",
defaultMessage: [{
type: 0,
value: "When this is checked, Open Forms automatically updates the customer profile when a digital address is added."
}]
});
return r === "appointment" ? null : /* @__PURE__ */ e(v, { name: "shouldUpdateCustomerData", label: /* @__PURE__ */ e(p, { id: "9XqFGF", defaultMessage: [{
type: 0,
value: "Open Forms should update customer data after submission"
}] }), tooltip: i });
}, B = h({
email: {
id: "78ckd0",
defaultMessage: [{
type: 0,
value: "Email"
}]
},
phoneNumber: {
id: "q+qVVR",
defaultMessage: [{
type: 0,
value: "Phone number"
}]
}
}), N = () => {
const t = m(), {
formType: r
} = d(u), i = Object.entries(B).map(([o, n]) => ({
value: o,
label: t.formatMessage(n)
}));
return r === "appointment" ? null : /* @__PURE__ */ e(D, { name: "digitalAddressTypes", label: /* @__PURE__ */ e(p, { id: "vN6yXh", defaultMessage: [{
type: 0,
value: "Available digital address types"
}] }), tooltip: t.formatMessage({
id: "Y1qhnH",
defaultMessage: [{
type: 0,
value: "Digital address types a user can be contacted on."
}]
}), isMulti: !0, required: !0, options: i });
};
export {
U as default
};