@feathery/react 2.6.8 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Form/components/{AIExtractionToast/ExtractionItem.d.ts → ActionToast/ToastItem.d.ts} +6 -6
- package/dist/Form/components/ActionToast/ToastItem.d.ts.map +1 -0
- package/dist/Form/components/{AIExtractionToast → ActionToast}/icons.d.ts +7 -7
- package/dist/Form/components/ActionToast/icons.d.ts.map +1 -0
- package/dist/Form/components/ActionToast/index.d.ts +8 -0
- package/dist/Form/components/ActionToast/index.d.ts.map +1 -0
- package/dist/Form/components/{AIExtractionToast → ActionToast}/useAIExtractionToast.d.ts +72 -64
- package/dist/Form/components/ActionToast/useAIExtractionToast.d.ts.map +1 -0
- package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts +20 -0
- package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts.map +1 -0
- package/dist/Form/components/DevNavBar.d.ts +1 -1
- package/dist/Form/components/ReactPortal.d.ts +2 -2
- package/dist/Form/definitions.d.ts +40 -40
- package/dist/Form/grid/CalendlyEmbed.d.ts +1 -1
- package/dist/Form/grid/Container/index.d.ts +19 -19
- package/dist/Form/grid/Element/index.d.ts +2 -2
- package/dist/Form/grid/Element/utils/address.d.ts +3 -3
- package/dist/Form/grid/Element/utils/utils.d.ts +13 -13
- package/dist/Form/grid/StyledContainer/hooks/index.d.ts +20 -20
- package/dist/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts +1 -1
- package/dist/Form/grid/StyledContainer/index.d.ts +21 -21
- package/dist/Form/grid/StyledContainer/styles.d.ts +5 -5
- package/dist/Form/grid/StyledContainer/transform.d.ts +4 -4
- package/dist/Form/grid/StyledContainer/utils.d.ts +44 -44
- package/dist/Form/grid/index.d.ts +2 -2
- package/dist/Form/hooks/useCheckButtonAction.d.ts +6 -6
- package/dist/Form/hooks/useTrackUserInteraction.d.ts +2 -2
- package/dist/Form/index.d.ts +52 -52
- package/dist/Form/index.d.ts.map +1 -1
- package/dist/Form/logic.d.ts +10 -10
- package/dist/Form/tests/testMocks.d.ts +6 -6
- package/dist/auth/LoginError.d.ts +3 -3
- package/dist/auth/LoginForm.d.ts +29 -29
- package/dist/auth/internal/AuthIntegrationInterface.d.ts +31 -31
- package/dist/auth/internal/useFormAuth.d.ts +10 -10
- package/dist/auth/internal/utils.d.ts +13 -13
- package/dist/auth/useAuthClient.d.ts +2 -2
- package/dist/auth/utils.d.ts +1 -1
- package/dist/elements/basic/ButtonElement.d.ts +2 -2
- package/dist/elements/basic/ImageElement.d.ts +3 -3
- package/dist/elements/basic/ProgressBarElement/components/SegmentBar.d.ts +2 -2
- package/dist/elements/basic/ProgressBarElement/components/SmoothBar.d.ts +2 -2
- package/dist/elements/basic/ProgressBarElement/index.d.ts +2 -2
- package/dist/elements/basic/TextElement.d.ts +2 -2
- package/dist/elements/basic/VideoElement.d.ts +2 -2
- package/dist/elements/components/ErrorInput.d.ts +2 -2
- package/dist/elements/components/FormControl.d.ts +10 -10
- package/dist/elements/components/FormOff.d.ts +10 -10
- package/dist/elements/components/InlineTooltip.d.ts +11 -11
- package/dist/elements/components/LoaderContainer.d.ts +10 -10
- package/dist/elements/components/Lottie.d.ts +2 -2
- package/dist/elements/components/Overlay.d.ts +15 -15
- package/dist/elements/components/Placeholder.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/form.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/header.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/sidebar.d.ts +6 -6
- package/dist/elements/components/QuikFormViewer.d.ts +9 -9
- package/dist/elements/components/Spinner.d.ts +4 -4
- package/dist/elements/components/TextHoverTooltip.d.ts +8 -8
- package/dist/elements/components/TextNodes.d.ts +4 -4
- package/dist/elements/components/Tooltip.d.ts +7 -7
- package/dist/elements/components/Watermark.d.ts +1 -1
- package/dist/elements/components/data/countries.d.ts +14 -14
- package/dist/elements/components/data/states/ae.d.ts +5 -5
- package/dist/elements/components/data/states/au.d.ts +5 -5
- package/dist/elements/components/data/states/br.d.ts +5 -5
- package/dist/elements/components/data/states/ca.d.ts +5 -5
- package/dist/elements/components/data/states/cl.d.ts +5 -5
- package/dist/elements/components/data/states/cn.d.ts +5 -5
- package/dist/elements/components/data/states/co.d.ts +5 -5
- package/dist/elements/components/data/states/eg.d.ts +5 -5
- package/dist/elements/components/data/states/es.d.ts +5 -5
- package/dist/elements/components/data/states/gb.d.ts +5 -5
- package/dist/elements/components/data/states/gt.d.ts +5 -5
- package/dist/elements/components/data/states/hk.d.ts +5 -5
- package/dist/elements/components/data/states/id.d.ts +5 -5
- package/dist/elements/components/data/states/ie.d.ts +5 -5
- package/dist/elements/components/data/states/in.d.ts +5 -5
- package/dist/elements/components/data/states/index.d.ts +6 -6
- package/dist/elements/components/data/states/it.d.ts +5 -5
- package/dist/elements/components/data/states/jp.d.ts +5 -5
- package/dist/elements/components/data/states/kr.d.ts +5 -5
- package/dist/elements/components/data/states/mx.d.ts +5 -5
- package/dist/elements/components/data/states/my.d.ts +5 -5
- package/dist/elements/components/data/states/ng.d.ts +5 -5
- package/dist/elements/components/data/states/nz.d.ts +5 -5
- package/dist/elements/components/data/states/pa.d.ts +5 -5
- package/dist/elements/components/data/states/pe.d.ts +5 -5
- package/dist/elements/components/data/states/ph.d.ts +5 -5
- package/dist/elements/components/data/states/pt.d.ts +5 -5
- package/dist/elements/components/data/states/ro.d.ts +5 -5
- package/dist/elements/components/data/states/ru.d.ts +5 -5
- package/dist/elements/components/data/states/th.d.ts +5 -5
- package/dist/elements/components/data/states/us.d.ts +9 -9
- package/dist/elements/components/data/states/za.d.ts +5 -5
- package/dist/elements/components/icons/Close.d.ts +6 -6
- package/dist/elements/components/icons/DiagonalArrow.d.ts +5 -5
- package/dist/elements/components/icons/DownloadIcon.d.ts +4 -4
- package/dist/elements/components/icons/FileUpload.d.ts +1 -1
- package/dist/elements/components/icons/FormClosed.d.ts +5 -5
- package/dist/elements/components/icons/Heart.d.ts +1 -1
- package/dist/elements/components/icons/Help.d.ts +4 -4
- package/dist/elements/components/icons/HideEyeIcon.d.ts +5 -5
- package/dist/elements/components/icons/LeftChevron.d.ts +1 -1
- package/dist/elements/components/icons/RatingStar.d.ts +1 -1
- package/dist/elements/components/icons/RightChevron.d.ts +1 -1
- package/dist/elements/components/icons/ShowEyeIcon.d.ts +5 -5
- package/dist/elements/components/icons/Warning.d.ts +5 -5
- package/dist/elements/components/icons/index.d.ts +11 -11
- package/dist/elements/components/skeletons/FieldSkeleton.d.ts +7 -7
- package/dist/elements/components/useBorder.d.ts +21 -21
- package/dist/elements/components/useTextEdit.d.ts +6 -5
- package/dist/elements/components/useTextEdit.d.ts.map +1 -1
- package/dist/elements/fields/AddressLine1Field/index.d.ts +4 -4
- package/dist/elements/fields/AddressLine1Field/tests/test-utils.d.ts +34 -34
- package/dist/elements/fields/AddressLine1Field/utils.d.ts +2 -2
- package/dist/elements/fields/ButtonGroupField/index.d.ts +2 -2
- package/dist/elements/fields/ButtonGroupField/tests/test-utils.d.ts +46 -46
- package/dist/elements/fields/CheckboxField/index.d.ts +5 -5
- package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts +20 -20
- package/dist/elements/fields/CheckboxGroupField/index.d.ts +2 -2
- package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +60 -60
- package/dist/elements/fields/ColorPickerField/index.d.ts +2 -2
- package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts +21 -21
- package/dist/elements/fields/CustomField/Status.d.ts +8 -8
- package/dist/elements/fields/CustomField/index.d.ts +3 -3
- package/dist/elements/fields/CustomField/template.d.ts +1 -1
- package/dist/elements/fields/CustomField/useCustomComponentIframe.d.ts +15 -15
- package/dist/elements/fields/DateSelectorField/index.d.ts +22 -22
- package/dist/elements/fields/DateSelectorField/index.d.ts.map +1 -1
- package/dist/elements/fields/DateSelectorField/styles.d.ts +4 -4
- package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts +74 -74
- package/dist/elements/fields/DateSelectorField/useDateLocale.d.ts +7 -7
- package/dist/elements/fields/DateSelectorField/utils.d.ts +3 -3
- package/dist/elements/fields/DropdownField/index.d.ts +1 -1
- package/dist/elements/fields/DropdownField/tests/test-utils.d.ts +28 -28
- package/dist/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +8 -8
- package/dist/elements/fields/DropdownMultiField/createDropdownSelect.d.ts +190 -190
- package/dist/elements/fields/DropdownMultiField/index.d.ts +1 -1
- package/dist/elements/fields/DropdownMultiField/optionNormalization.d.ts +9 -9
- package/dist/elements/fields/DropdownMultiField/selectStyles.d.ts +12 -12
- package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts +47 -47
- package/dist/elements/fields/DropdownMultiField/types.d.ts +49 -49
- package/dist/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts +46 -46
- package/dist/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts +19 -19
- package/dist/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts +46 -46
- package/dist/elements/fields/DropdownMultiField/useDropdownOptions.d.ts +24 -24
- package/dist/elements/fields/DropdownMultiField/useSelectProps.d.ts +112 -112
- package/dist/elements/fields/FileUploadField/index.d.ts +2 -2
- package/dist/elements/fields/FileUploadField/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/MatrixField/index.d.ts +2 -2
- package/dist/elements/fields/MatrixField/tests/test-utils.d.ts +67 -67
- package/dist/elements/fields/PasswordField/index.d.ts +4 -4
- package/dist/elements/fields/PasswordField/tests/test-utils.d.ts +30 -30
- package/dist/elements/fields/PaymentMethodField.d.ts +4 -4
- package/dist/elements/fields/PhoneField/CountryDropdown.d.ts +3 -3
- package/dist/elements/fields/PhoneField/exampleNumbers.d.ts +2 -2
- package/dist/elements/fields/PhoneField/index.d.ts +4 -4
- package/dist/elements/fields/PhoneField/tests/test-utils.d.ts +86 -86
- package/dist/elements/fields/PhoneField/timeZoneCountries.d.ts +4 -4
- package/dist/elements/fields/PhoneField/validation.d.ts +3 -3
- package/dist/elements/fields/PinInputField/index.d.ts +2 -2
- package/dist/elements/fields/PinInputField/tests/test-utils.d.ts +79 -79
- package/dist/elements/fields/PinInputField/useOTPListener.d.ts +1 -1
- package/dist/elements/fields/QRScanner/constants.d.ts +14 -14
- package/dist/elements/fields/QRScanner/hooks/use-device-rotation.d.ts +11 -11
- package/dist/elements/fields/QRScanner/index.d.ts +2 -2
- package/dist/elements/fields/QRScanner/qrLoader.d.ts +2 -2
- package/dist/elements/fields/QRScanner/utils/local-storage.d.ts +5 -5
- package/dist/elements/fields/QRScanner/utils/select-camera.d.ts +9 -9
- package/dist/elements/fields/QRScanner/utils/supports-zoom.d.ts +8 -8
- package/dist/elements/fields/RadioButtonGroupField/index.d.ts +2 -2
- package/dist/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +55 -55
- package/dist/elements/fields/RatingField/index.d.ts +1 -1
- package/dist/elements/fields/RatingField/tests/test-utils.d.ts +22 -22
- package/dist/elements/fields/SignatureField/components/SignatureCanvas.d.ts +22 -22
- package/dist/elements/fields/SignatureField/components/SignatureModal.d.ts +12 -12
- package/dist/elements/fields/SignatureField/components/utils.d.ts +10 -10
- package/dist/elements/fields/SignatureField/index.d.ts +3 -3
- package/dist/elements/fields/SignatureField/translation.d.ts +17 -17
- package/dist/elements/fields/SliderField/index.d.ts +1 -1
- package/dist/elements/fields/SliderField/styles.d.ts +3 -3
- package/dist/elements/fields/SliderField/tests/test-utils.d.ts +22 -22
- package/dist/elements/fields/TextArea/index.d.ts +4 -4
- package/dist/elements/fields/TextArea/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/TextField/TextAutocomplete.d.ts +15 -15
- package/dist/elements/fields/TextField/index.d.ts +4 -4
- package/dist/elements/fields/TextField/index.d.ts.map +1 -1
- package/dist/elements/fields/TextField/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/index.d.ts +27 -26
- package/dist/elements/fields/index.d.ts.map +1 -1
- package/dist/elements/fields/shared/tests/field-test-utils.d.ts +51 -51
- package/dist/elements/index.d.ts +36 -36
- package/dist/elements/styles.d.ts +64 -64
- package/dist/elements/utils/fieldNormalization.d.ts +12 -12
- package/dist/fthry_FormControl.CPHJNRoq.js +16 -0
- package/dist/fthry_InlineTooltip.AGcWhuhV.js +53 -0
- package/dist/fthry_Overlay.X0blINpo.js +228 -0
- package/dist/fthry_PaymentMethodField.DrAgJBPV.js +928 -0
- package/dist/fthry_Placeholder.DLtEoCLC.js +14 -0
- package/dist/fthry_ShowEyeIcon.CkEvtp1W.js +13 -0
- package/dist/fthry_index.BFrZ_89I.js +251 -0
- package/dist/fthry_index.BVM6mIvX.js +73 -0
- package/dist/fthry_index.B_soCJRW.js +1193 -0
- package/dist/fthry_index.BrWMLV_p.js +35 -0
- package/dist/fthry_index.CFbW8L20.js +42 -0
- package/dist/fthry_index.CWt9W3bv.js +95 -0
- package/dist/fthry_index.Cfk_0HTE.js +2000 -0
- package/dist/fthry_index.CjUraQwq.js +888 -0
- package/dist/fthry_index.D99W7p5a.js +293 -0
- package/dist/fthry_index.DAGDZi5r.js +97 -0
- package/dist/fthry_index.DV1PqB3d.js +138 -0
- package/dist/fthry_index.DWyfWu2d.js +216 -0
- package/dist/fthry_index.DaFYDmA_.js +15921 -0
- package/dist/fthry_index.DghPMqyH.js +8166 -0
- package/dist/fthry_index.DodXvrXD.js +98 -0
- package/dist/fthry_index.DohTu1v2.js +46 -0
- package/dist/fthry_index.F6BXSHA5.js +61120 -0
- package/dist/fthry_index.KRksei8j.js +513 -0
- package/dist/fthry_index.dYsdCe_k.js +1427 -0
- package/dist/fthry_index.lC0Xyh-d.js +1162 -0
- package/dist/fthry_index.mE9gZkgT.js +55 -0
- package/dist/fthry_index.rtVAtURz.js +1452 -0
- package/dist/fthry_index.uvWVc7KJ.js +131 -0
- package/dist/fthry_input.Bfzc5hmV.js +3779 -0
- package/dist/fthry_script.cAr9Z1Ke.js +157 -0
- package/dist/fthry_styles.yVoSvBEy.js +1654 -0
- package/dist/fthry_useElementSize.D3n9DgQ-.js +51 -0
- package/dist/fthry_useSalesforceSync.prWuB8V7.js +44 -0
- package/dist/fthry_webfontloader.DyMoLGZ3.js +57 -0
- package/dist/hooks/router.d.ts +14 -14
- package/dist/hooks/useElementSize.d.ts +7 -7
- package/dist/hooks/useLoader.d.ts +35 -35
- package/dist/hooks/useMounted.d.ts +2 -2
- package/dist/hooks/usePollFuserData.d.ts +1 -1
- package/dist/hooks/usePrevious.d.ts +2 -2
- package/dist/hooks/useSalesforceSync.d.ts +10 -10
- package/dist/index.d.ts +150 -149
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/integrations/alloy.d.ts +2 -2
- package/dist/integrations/amplitude.d.ts +1 -1
- package/dist/integrations/argyle.d.ts +2 -2
- package/dist/integrations/calendly.d.ts +2 -2
- package/dist/integrations/firebase.d.ts +42 -42
- package/dist/integrations/flinks/index.d.ts +10 -10
- package/dist/integrations/flinks/utils.d.ts +12 -12
- package/dist/integrations/googleAnalytics.d.ts +3 -3
- package/dist/integrations/googleTagManager.d.ts +1 -1
- package/dist/integrations/heap.d.ts +2 -2
- package/dist/integrations/intercom.d.ts +2 -2
- package/dist/integrations/mixpanel.d.ts +2 -2
- package/dist/integrations/persona.d.ts +2 -2
- package/dist/integrations/plaid.d.ts +2 -2
- package/dist/integrations/recaptcha.d.ts +2 -2
- package/dist/integrations/rudderstack.d.ts +3 -3
- package/dist/integrations/schwab.d.ts +1 -1
- package/dist/integrations/segment.d.ts +1 -1
- package/dist/integrations/stripe/Cart.d.ts +19 -19
- package/dist/integrations/stripe/SimplifiedProduct.d.ts +39 -39
- package/dist/integrations/stripe/index.d.ts +1 -1
- package/dist/integrations/stripe/stripe.d.ts +97 -97
- package/dist/integrations/stytch.d.ts +19 -19
- package/dist/integrations/trustedform.d.ts +2 -2
- package/dist/integrations/utils.d.ts +14 -14
- package/dist/setupTests.d.ts +1 -1
- package/dist/types/Form.d.ts +80 -80
- package/dist/utils/DangerouslySetHTMLContent.d.ts +2 -2
- package/dist/utils/ShadowDomHtmlContent.d.ts +8 -8
- package/dist/utils/array.d.ts +11 -11
- package/dist/utils/browser.d.ts +23 -23
- package/dist/utils/callbackQueue.d.ts +10 -10
- package/dist/utils/document.d.ts +1 -1
- package/dist/utils/elementActions.d.ts +55 -55
- package/dist/utils/entities/Collaborator.d.ts +14 -14
- package/dist/utils/entities/Field.d.ts +129 -129
- package/dist/utils/error.d.ts +13 -13
- package/dist/utils/featheryClient/index.d.ts +103 -103
- package/dist/utils/featheryClient/integrationClient.d.ts +114 -114
- package/dist/utils/featheryClient/utils.d.ts +1 -1
- package/dist/utils/fieldHelperFunctions.d.ts +70 -70
- package/dist/utils/formContext.d.ts +104 -104
- package/dist/utils/formHelperFunctions.d.ts +44 -44
- package/dist/utils/hideAndRepeats.d.ts +27 -27
- package/dist/utils/hydration.d.ts +14 -14
- package/dist/utils/image.d.ts +39 -39
- package/dist/utils/init.d.ts +59 -59
- package/dist/utils/init.d.ts.map +1 -1
- package/dist/utils/interactionState.d.ts +4 -4
- package/dist/utils/internalState.d.ts +91 -91
- package/dist/utils/logic.d.ts +50 -50
- package/dist/utils/offlineRequestHandler.d.ts +94 -94
- package/dist/utils/polyfills.d.ts +2 -2
- package/dist/utils/primitives.d.ts +14 -14
- package/dist/utils/random.d.ts +1 -1
- package/dist/utils/repeat.d.ts +38 -38
- package/dist/utils/sensitiveActions.d.ts +7 -7
- package/dist/utils/stepHelperFunctions.d.ts +22 -22
- package/dist/utils/styles.d.ts +5 -5
- package/dist/utils/validation.d.ts +58 -58
- package/package.json +18 -5
- package/umd/466.e3456c8b3407ad04ba56.js +1 -0
- package/umd/{DateSelectorField.b98c0ecb80f56e65cc69.js → DateSelectorField.bd5646949de71f571d04.js} +1 -1
- package/umd/{TextField.a3d8d42f6f8236d00f83.js → TextField.5a5296fe3ea60c4459f2.js} +1 -1
- package/umd/index.js +1 -1
- package/dist/Form/components/AIExtractionToast/ExtractionItem.d.ts.map +0 -1
- package/dist/Form/components/AIExtractionToast/icons.d.ts.map +0 -1
- package/dist/Form/components/AIExtractionToast/index.d.ts +0 -9
- package/dist/Form/components/AIExtractionToast/index.d.ts.map +0 -1
- package/dist/Form/components/AIExtractionToast/useAIExtractionToast.d.ts.map +0 -1
- package/umd/796.e66d52ea21ef09c4eeaa.js +0 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { b as jsx, a as __assign, j as jsxs, _ as __read, c as __awaiter, d as __generator, l as featheryWindow, m as Fragment, E as ErrorInput } from './fthry_index.F6BXSHA5.js';
|
|
2
|
+
import { useRef, useState, useEffect, memo, useMemo } from 'react';
|
|
3
|
+
import 'react/jsx-runtime';
|
|
4
|
+
import 'react-dom/client';
|
|
5
|
+
import 'stream';
|
|
6
|
+
import 'events';
|
|
7
|
+
import 'buffer';
|
|
8
|
+
import 'util';
|
|
9
|
+
import 'react-dom';
|
|
10
|
+
|
|
11
|
+
var Placeholder = function () { return (jsx("div", __assign({ style: {
|
|
12
|
+
padding: '16px',
|
|
13
|
+
border: '2px dashed #d1d5db',
|
|
14
|
+
borderRadius: '4px',
|
|
15
|
+
textAlign: 'center'
|
|
16
|
+
} }, { children: jsxs("div", __assign({ style: { color: '#4b5563' } }, { children: [jsx("div", __assign({ style: { fontSize: '14px' } }, { children: "Custom Component" })), jsx("div", __assign({ style: { fontSize: '12px', marginTop: '4px' } }, { children: "No code provided" }))] })) }))); };
|
|
17
|
+
var Loading = function () { return (jsx("div", __assign({ style: {
|
|
18
|
+
position: 'absolute',
|
|
19
|
+
top: 0,
|
|
20
|
+
left: 0,
|
|
21
|
+
right: 0,
|
|
22
|
+
padding: '8px',
|
|
23
|
+
backgroundColor: '#dbeafe',
|
|
24
|
+
color: '#2563eb',
|
|
25
|
+
fontSize: '14px'
|
|
26
|
+
} }, { children: "Loading..." }))); };
|
|
27
|
+
var Error = function (_a) {
|
|
28
|
+
var error = _a.error;
|
|
29
|
+
return (jsxs("div", __assign({ style: {
|
|
30
|
+
position: 'absolute',
|
|
31
|
+
top: 0,
|
|
32
|
+
left: 0,
|
|
33
|
+
right: 0,
|
|
34
|
+
padding: '8px',
|
|
35
|
+
backgroundColor: '#fee2e2',
|
|
36
|
+
color: '#dc2626',
|
|
37
|
+
fontSize: '14px'
|
|
38
|
+
} }, { children: ["Error: ", error] })));
|
|
39
|
+
};
|
|
40
|
+
var Status = { Placeholder: Placeholder, Loading: Loading, Error: Error };
|
|
41
|
+
|
|
42
|
+
// Extract package names and URLs imported in the custom component
|
|
43
|
+
var extractImports = function (code) {
|
|
44
|
+
var lines = code.split('\n');
|
|
45
|
+
var imports = new Set();
|
|
46
|
+
lines.forEach(function (line) {
|
|
47
|
+
line = line.trim();
|
|
48
|
+
if (line.startsWith('import')) {
|
|
49
|
+
var match = line.match(/from\s+['"]([^'"]+)['"]/);
|
|
50
|
+
if (match && match[1] !== 'react') {
|
|
51
|
+
imports.add(match[1]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return Array.from(imports);
|
|
56
|
+
};
|
|
57
|
+
var isValidUrl = function (str) {
|
|
58
|
+
try {
|
|
59
|
+
// eslint-disable-next-line no-new
|
|
60
|
+
new URL(str);
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
// Build an importmap script based on the list of packages imported
|
|
68
|
+
var createImportMap = function (imports) {
|
|
69
|
+
var importEntries = imports.map(function (importPath) {
|
|
70
|
+
// Already a full URL, import directly
|
|
71
|
+
if (isValidUrl(importPath)) {
|
|
72
|
+
return "\"".concat(importPath, "\": \"").concat(importPath, "\"");
|
|
73
|
+
}
|
|
74
|
+
// Default to esm.sh for npm packages
|
|
75
|
+
return "\"".concat(importPath, "\": \"https://esm.sh/").concat(importPath, "/?external=react\"");
|
|
76
|
+
});
|
|
77
|
+
return "{\n \"imports\": {\n \"react\": \"https://esm.sh/react@18.2.0\",\n \"react-dom\": \"https://esm.sh/react-dom@18.2.0\",\n \"react-dom/client\": \"https://esm.sh/react-dom@18.2.0/client\",\n \"react/jsx-runtime\": \"https://esm.sh/react@18.2.0/jsx-runtime\"".concat(imports.length ? ',' : '', "\n ").concat(importEntries.join(',\n'), "\n }\n}");
|
|
78
|
+
};
|
|
79
|
+
var createTemplate = function (code, initialValue, elementId) { return "\n<!DOCTYPE html>\n<html>\n <head>\n <script src=\"https://cdn.jsdelivr.net/npm/@babel/standalone/babel.min.js\"></script>\n <style>\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n \n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n line-height: 1.5;\n overflow: hidden;\n }\n\n #root {\n min-height: 100vh;\n width: 100%;\n }\n </style>\n <script type=\"importmap\">\n ".concat(createImportMap(extractImports(code)), "\n </script>\n <script type=\"module\">\n import React from 'react';\n import { createRoot } from 'react-dom/client';\n\n // Store the elementId for use in postMessage\n window.elementId = '").concat(elementId, "';\n\n (async () => {\n try {\n const transformedCode = Babel.transform(\n `").concat(code, "`,\n {\n presets: ['react'],\n filename: 'dynamic.jsx'\n }\n ).code;\n\n // Create a blob URL for the transformed code\n const blob = new Blob([transformedCode], { type: 'text/javascript' });\n const moduleUrl = URL.createObjectURL(blob);\n\n // Import the component\n const { default: UserComponent } = await import(moduleUrl);\n\n // Set up the root and store it\n const container = document.getElementById('root');\n const root = createRoot(container);\n window.rootRef = root;\n\n window.parent.postMessage({ \n type: 'LOADING_COMPLETE',\n elementId: window.elementId\n }, '*');\n\n // Handle resize\n const resizeObserver = new ResizeObserver(entries => {\n const height = entries[0].contentRect.height;\n window.parent.postMessage({ \n type: 'resize', \n height,\n elementId: window.elementId\n }, '*');\n });\n \n resizeObserver.observe(container);\n\n // Store references for updates\n window.React = React;\n window.UserComponent = UserComponent;\n } catch (err) {\n console.error('Error:', err);\n window.parent.postMessage({ \n type: 'error',\n error: `${err.name}: ${err.message}`,\n elementId: window.elementId\n }, '*');\n }\n })();\n </script>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n</html>\n"); };
|
|
80
|
+
|
|
81
|
+
function useCustomComponentIframe(_a) {
|
|
82
|
+
var _this = this;
|
|
83
|
+
var componentCode = _a.componentCode, elementId = _a.elementId, value = _a.value, onChange = _a.onChange, customProps = _a.customProps;
|
|
84
|
+
var iframeRef = useRef(null);
|
|
85
|
+
var rootRef = useRef(null);
|
|
86
|
+
var _b = __read(useState(null), 2), error = _b[0], setError = _b[1];
|
|
87
|
+
var _c = __read(useState(true), 2), loading = _c[0], setLoading = _c[1];
|
|
88
|
+
var renderComponent = function (overrideLoading) {
|
|
89
|
+
var _a, _b;
|
|
90
|
+
if (overrideLoading === void 0) { overrideLoading = false; }
|
|
91
|
+
var iframe = iframeRef.current;
|
|
92
|
+
if (!iframe || !rootRef.current || (loading && !overrideLoading))
|
|
93
|
+
return;
|
|
94
|
+
var root = rootRef.current;
|
|
95
|
+
var React = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.React;
|
|
96
|
+
var UserComponent = (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.UserComponent;
|
|
97
|
+
if (React && UserComponent) {
|
|
98
|
+
var handleChange = function (newValue) {
|
|
99
|
+
var _a;
|
|
100
|
+
(_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.parent.postMessage({
|
|
101
|
+
type: 'valueChange',
|
|
102
|
+
value: newValue,
|
|
103
|
+
elementId: elementId
|
|
104
|
+
}, featheryWindow().location.origin);
|
|
105
|
+
};
|
|
106
|
+
root.render(React.createElement(React.StrictMode, null, React.createElement(UserComponent, __assign({ value: value, onChange: handleChange }, customProps))));
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
// Create iframe whenever code changes
|
|
110
|
+
useEffect(function () {
|
|
111
|
+
var setupIframe = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
112
|
+
var iframe, template, handleMessage_1, error_1;
|
|
113
|
+
return __generator(this, function (_a) {
|
|
114
|
+
iframe = iframeRef.current;
|
|
115
|
+
if (!iframe)
|
|
116
|
+
return [2 /*return*/];
|
|
117
|
+
try {
|
|
118
|
+
setLoading(true);
|
|
119
|
+
template = createTemplate(componentCode, value, elementId);
|
|
120
|
+
handleMessage_1 = function (event) {
|
|
121
|
+
var _a, _b, _c, _d, _e;
|
|
122
|
+
// Verify the message is intended for this element
|
|
123
|
+
if (((_a = event.data) === null || _a === void 0 ? void 0 : _a.elementId) !== elementId)
|
|
124
|
+
return;
|
|
125
|
+
if (event.data.type === 'LOADING_COMPLETE') {
|
|
126
|
+
setLoading(false);
|
|
127
|
+
setError(null);
|
|
128
|
+
rootRef.current = (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.rootRef;
|
|
129
|
+
renderComponent(true);
|
|
130
|
+
}
|
|
131
|
+
else if ((_c = event.data) === null || _c === void 0 ? void 0 : _c.error) {
|
|
132
|
+
setError(event.data.error);
|
|
133
|
+
setLoading(false);
|
|
134
|
+
}
|
|
135
|
+
else if (((_d = event.data) === null || _d === void 0 ? void 0 : _d.type) === 'resize' && iframe) {
|
|
136
|
+
iframe.style.height = "".concat(event.data.height, "px");
|
|
137
|
+
}
|
|
138
|
+
else if (((_e = event.data) === null || _e === void 0 ? void 0 : _e.type) === 'valueChange') {
|
|
139
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event.data.value);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
featheryWindow().addEventListener('message', handleMessage_1);
|
|
143
|
+
iframe.srcdoc = template;
|
|
144
|
+
return [2 /*return*/, function () {
|
|
145
|
+
featheryWindow().removeEventListener('message', handleMessage_1);
|
|
146
|
+
}];
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
error_1 = err;
|
|
150
|
+
setError(error_1.message);
|
|
151
|
+
setLoading(false);
|
|
152
|
+
}
|
|
153
|
+
return [2 /*return*/];
|
|
154
|
+
});
|
|
155
|
+
}); };
|
|
156
|
+
setupIframe();
|
|
157
|
+
}, [componentCode]);
|
|
158
|
+
// Update component props when value changes
|
|
159
|
+
useEffect(function () {
|
|
160
|
+
renderComponent();
|
|
161
|
+
}, [value, loading, customProps]);
|
|
162
|
+
return {
|
|
163
|
+
iframeRef: iframeRef,
|
|
164
|
+
error: error,
|
|
165
|
+
loading: loading
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
var CustomField = function (_a) {
|
|
170
|
+
var _b;
|
|
171
|
+
var element = _a.element, _c = _a.elementProps, elementProps = _c === void 0 ? {} : _c, responsiveStyles = _a.responsiveStyles, onChange = _a.onChange, rawValue = _a.rawValue, required = _a.required, disabled = _a.disabled, fieldStyles = _a.fieldStyles, editMode = _a.editMode, rightToLeft = _a.rightToLeft, index = _a.index;
|
|
172
|
+
var componentCode = element.servar.metadata.code;
|
|
173
|
+
var isCodeEmpty = !componentCode || componentCode.trim() === '';
|
|
174
|
+
var showPlaceholder = isCodeEmpty && editMode;
|
|
175
|
+
var customFieldProps = useMemo(function () {
|
|
176
|
+
var _a;
|
|
177
|
+
return ({
|
|
178
|
+
fieldProperties: {
|
|
179
|
+
description: element.servar.name,
|
|
180
|
+
required: required,
|
|
181
|
+
disabled: disabled,
|
|
182
|
+
custom: ((_a = element.servar.metadata) === null || _a === void 0 ? void 0 : _a.custom) || {},
|
|
183
|
+
aria_label: element.properties.aria_label
|
|
184
|
+
},
|
|
185
|
+
fieldStyles: fieldStyles || {},
|
|
186
|
+
formContext: {
|
|
187
|
+
rightToLeft: rightToLeft || false,
|
|
188
|
+
editMode: editMode || false
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}, [
|
|
192
|
+
required,
|
|
193
|
+
disabled,
|
|
194
|
+
fieldStyles,
|
|
195
|
+
rightToLeft,
|
|
196
|
+
editMode,
|
|
197
|
+
(_b = element.servar.metadata) === null || _b === void 0 ? void 0 : _b.custom
|
|
198
|
+
]);
|
|
199
|
+
var _d = useCustomComponentIframe({
|
|
200
|
+
componentCode: element.servar.metadata.code,
|
|
201
|
+
elementId: index != null ? "".concat(element.id, "[").concat(index, "]") : element.id,
|
|
202
|
+
value: rawValue,
|
|
203
|
+
onChange: onChange,
|
|
204
|
+
customProps: customFieldProps
|
|
205
|
+
}), iframeRef = _d.iframeRef, error = _d.error, loading = _d.loading;
|
|
206
|
+
return (jsxs("div", __assign({ css: __assign({ maxWidth: '100%', width: '100%', height: 'auto', position: 'relative', pointerEvents: editMode ? 'none' : 'auto' }, responsiveStyles === null || responsiveStyles === void 0 ? void 0 : responsiveStyles.getTarget('fc')) }, elementProps, { children: [showPlaceholder ? (jsx(Status.Placeholder, {})) : (jsxs(Fragment, { children: [error && jsx(Status.Error, { error: error }), loading && jsx(Status.Loading, {}), jsx("iframe", { ref: iframeRef, sandbox: 'allow-scripts allow-same-origin', style: {
|
|
207
|
+
width: '100%',
|
|
208
|
+
border: 'none',
|
|
209
|
+
backgroundColor: 'transparent',
|
|
210
|
+
overflow: 'hidden',
|
|
211
|
+
display: 'block'
|
|
212
|
+
} })] })), jsx(ErrorInput, { id: element.servar.key, name: element.servar.key, "aria-label": element.properties.aria_label })] })));
|
|
213
|
+
};
|
|
214
|
+
var index = memo(CustomField);
|
|
215
|
+
|
|
216
|
+
export { index as default };
|