@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,14 @@
|
|
|
1
|
+
import { a as __assign, b as jsx } from './fthry_index.F6BXSHA5.js';
|
|
2
|
+
|
|
3
|
+
function Placeholder(_a) {
|
|
4
|
+
var _b;
|
|
5
|
+
var _c, _d;
|
|
6
|
+
var value = _a.value, element = _a.element, responsiveStyles = _a.responsiveStyles, _e = _a.type, type = _e === void 0 ? 'input' : _e, _f = _a.inputFocused, inputFocused = _f === void 0 ? false : _f, _g = _a.repeatIndex, repeatIndex = _g === void 0 ? null : _g;
|
|
7
|
+
var props = element.properties;
|
|
8
|
+
var repeatPlaceholders = (_c = props.repeat_placeholder) !== null && _c !== void 0 ? _c : [];
|
|
9
|
+
var placeholder = (_d = repeatPlaceholders[repeatIndex !== null && repeatIndex !== void 0 ? repeatIndex : 0]) !== null && _d !== void 0 ? _d : (props.placeholder || '');
|
|
10
|
+
var focusedStyles = __assign(__assign({}, responsiveStyles.getTarget('placeholderFocus')), responsiveStyles.getTarget('placeholderActive'));
|
|
11
|
+
return (jsx("span", __assign({ css: __assign(__assign(__assign(__assign({ position: 'absolute', pointerEvents: 'none', insetInlineStart: '0.75rem', transition: '0.2s ease all', top: type === 'input' ? '50%' : '0.6rem' }, responsiveStyles.getTarget('placeholder')), (value ? responsiveStyles.getTarget('placeholderFocus') : {})), (inputFocused ? focusedStyles : {})), (_b = {}, _b["".concat(type, ":focus ~ &")] = focusedStyles, _b)) }, { children: placeholder })));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { Placeholder as P };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { t as __rest, b as jsx, a as __assign } from './fthry_index.F6BXSHA5.js';
|
|
2
|
+
|
|
3
|
+
function ShowEyeIcon$1(_a) {
|
|
4
|
+
var _b = _a.width, width = _b === void 0 ? 30 : _b, _c = _a.height, height = _c === void 0 ? 30 : _c, props = __rest(_a, ["width", "height"]);
|
|
5
|
+
return (jsx("svg", __assign({ xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 24 30', fill: 'none', x: '0px', y: '0px', width: width, height: height }, props, { children: jsx("path", { fillRule: 'evenodd', clipRule: 'evenodd', d: 'M20.8248 3.19128C21.1177 3.48417 21.1177 3.95905 20.8248 4.25194L18.6412 6.43553C20.1944 7.65967 21.4426 9.37509 22.1487 11.5676C22.2392 11.8487 22.2392 12.1513 22.1487 12.4325C19.8665 19.5192 12.0388 21.4893 6.64678 18.43L4.42413 20.6526C4.13124 20.9455 3.65636 20.9455 3.36347 20.6526C3.07058 20.3597 3.07058 19.8849 3.36347 19.592L5.81711 17.1383C5.85403 17.0603 5.90456 16.9883 5.96738 16.9261L9.23128 13.6946C9.26048 13.6497 9.29496 13.6072 9.33473 13.5681C9.37317 13.5304 9.41464 13.4976 9.45835 13.4697L12.2178 10.7376L19.7642 3.19128C20.0571 2.89839 20.5319 2.89839 20.8248 3.19128ZM9.94175 15.135L7.7537 17.3231C12.3935 19.6836 18.7997 17.8825 20.712 12C20.0788 10.052 18.9647 8.56486 17.5962 7.52336L15.1423 9.95291C15.5264 10.5415 15.75 11.2451 15.75 12C15.75 14.0711 14.0711 15.75 12 15.75C11.2401 15.75 10.5325 15.5235 9.94175 15.135ZM14.0385 11.0458C14.1743 11.3354 14.25 11.6586 14.25 12C14.25 13.2426 13.2426 14.25 12 14.25C11.6567 14.25 11.3317 14.1734 11.0407 14.0361L13.276 11.8008L14.0385 11.0458ZM3.28797 12C4.88695 7.08124 9.60598 5.02175 13.8411 5.85218C14.2476 5.93188 14.6417 5.66698 14.7214 5.26051C14.8011 4.85403 14.5362 4.45991 14.1297 4.38021C9.24578 3.42256 3.70608 5.80807 1.85133 11.5676C1.76078 11.8487 1.76078 12.1513 1.85133 12.4325C2.24631 13.659 2.81178 14.7387 3.50826 15.6677C3.75674 15.9991 4.22683 16.0663 4.55824 15.8178C4.88965 15.5694 4.95689 15.0993 4.70841 14.7679C4.11894 13.9816 3.63262 13.0603 3.28797 12ZM9.75 12C9.75 10.7574 10.7574 9.75 12 9.75C12.4142 9.75 12.75 9.41421 12.75 9C12.75 8.58579 12.4142 8.25 12 8.25C9.92893 8.25 8.25 9.92893 8.25 12C8.25 12.4142 8.58579 12.75 9 12.75C9.41421 12.75 9.75 12.4142 9.75 12Z', fill: 'black' }) })));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function ShowEyeIcon(_a) {
|
|
9
|
+
var _b = _a.width, width = _b === void 0 ? 30 : _b, _c = _a.height, height = _c === void 0 ? 30 : _c, props = __rest(_a, ["width", "height"]);
|
|
10
|
+
return (jsx("svg", __assign({ xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 24 30', fill: 'none', height: height, width: width }, props, { children: jsx("path", { fillRule: 'evenodd', clipRule: 'evenodd', d: 'M20.712 12C17.97 20.4349 6.03003 20.4349 3.28797 12C6.03003 3.56512 17.97 3.56512 20.712 12ZM22.1487 11.5676C18.974 1.70927 5.02603 1.70927 1.85133 11.5676C1.76078 11.8487 1.76078 12.1513 1.85133 12.4325C5.02603 22.2907 18.974 22.2907 22.1487 12.4325C22.2392 12.1513 22.2392 11.8487 22.1487 11.5676ZM9.75 12C9.75 10.7574 10.7574 9.75 12 9.75C13.2426 9.75 14.25 10.7574 14.25 12C14.25 13.2426 13.2426 14.25 12 14.25C10.7574 14.25 9.75 13.2426 9.75 12ZM12 8.25C9.92893 8.25 8.25 9.92893 8.25 12C8.25 14.0711 9.92893 15.75 12 15.75C14.0711 15.75 15.75 14.0711 15.75 12C15.75 9.92893 14.0711 8.25 12 8.25Z', fill: 'black' }) })));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { ShowEyeIcon as S, ShowEyeIcon$1 as a };
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { j as jsxs, a as __assign, b as jsx, _ as __read, a5 as isEmptyArray, a6 as toList, a7 as useThumbnailData, a4 as __spreadArray, f as imgMaxSizeStyles, c as __awaiter, d as __generator, a8 as downloadFile, a9 as CloseIcon, i as iosScrollOnFocus, k as FORM_Z_INDEX, aa as justRemove } from './fthry_index.F6BXSHA5.js';
|
|
2
|
+
import { useRef, useState, useEffect } 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
|
+
function FileUploadIcon(_a) {
|
|
12
|
+
var _b = _a.width, width = _b === void 0 ? '48px' : _b, style = _a.style;
|
|
13
|
+
return (jsxs("svg", __assign({ width: width, viewBox: '0 0 48 48', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', style: style }, { children: [jsx("path", { d: 'm18.101 30.078 5.9-5.888 5.898 5.888M24 40.3V24.19', stroke: '#414859' }), jsx("path", { d: 'M34.988 36.336c5 0 9.012-4.056 9.012-9.112s-4.012-9.112-9.012-9.112c0-5.585-4.476-10.112-10-10.112-4.244 0-7.848 2.646-9.302 6.408-.232 0-.465-.059-.698-.059C8.942 14.35 4 19.288 4 25.46c0 6.114 4.884 11.111 10.988 11.111', stroke: '#414859' })] })));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function DownloadIcon(_a) {
|
|
17
|
+
var _b = _a.width, width = _b === void 0 ? 26 : _b, _c = _a.height, height = _c === void 0 ? 26 : _c;
|
|
18
|
+
return (jsx("svg", __assign({ width: width, height: height, viewBox: '0 0 26 26', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, { children: jsx("path", { d: 'M1 19.3529V22.1765C1 22.9253 1.31607 23.6435 1.87868 24.173C2.44129 24.7025 3.20435 25 4 25H22C22.7956 25 23.5587 24.7025 24.1213 24.173C24.6839 23.6435 25 22.9253 25 22.1765V19.3529M5.5 10.8824L13 17.9412M13 17.9412L20.5 10.8824M13 17.9412V1', stroke: 'white', strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round' }) })));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var DEFAULT_FILE_SIZE_LIMIT = 1024 * 1024 * 10;
|
|
22
|
+
var NUM_FILES_LIMIT = 20;
|
|
23
|
+
function FileUploadField(_a) {
|
|
24
|
+
var _this = this;
|
|
25
|
+
var element = _a.element, responsiveStyles = _a.responsiveStyles, _b = _a.required, required = _b === void 0 ? false : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, editMode = _a.editMode, _d = _a.onChange, customOnChange = _d === void 0 ? function () { } : _d, _e = _a.initialFiles, initialFiles = _e === void 0 ? [] : _e, _f = _a.elementProps, elementProps = _f === void 0 ? {} : _f, children = _a.children;
|
|
26
|
+
var servar = element.servar;
|
|
27
|
+
var showLabel = servar.name !== '';
|
|
28
|
+
var isMultiple = servar.metadata.multiple;
|
|
29
|
+
var fileInput = useRef(null);
|
|
30
|
+
var _g = __read(useState([]), 2), rawFiles = _g[0], setRawFiles = _g[1];
|
|
31
|
+
var _h = __read(useState(-1), 2), hoverDownload = _h[0], setHoverDownload = _h[1];
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
// Prevent infinite loop of setting a new empty array as the value
|
|
34
|
+
if (isEmptyArray(rawFiles) && isEmptyArray(initialFiles))
|
|
35
|
+
return;
|
|
36
|
+
// Normalize placeholders like [null] to an empty list
|
|
37
|
+
setRawFiles(toList(initialFiles).filter(Boolean));
|
|
38
|
+
}, [initialFiles]);
|
|
39
|
+
// Thumbnails derived from current files; rawFiles is normalized to exclude nulls
|
|
40
|
+
var thumbnailData = useThumbnailData(rawFiles);
|
|
41
|
+
var hasFiles = rawFiles.length > 0;
|
|
42
|
+
var allowMoreFiles = isMultiple || !hasFiles;
|
|
43
|
+
var hidePreview = element.styles.hide_file_preview;
|
|
44
|
+
var handleDragOver = function (e) {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
e.stopPropagation();
|
|
47
|
+
};
|
|
48
|
+
var handleDrop = function (e) {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
var files = e.dataTransfer.files;
|
|
52
|
+
if (allowMoreFiles)
|
|
53
|
+
handleFiles(files);
|
|
54
|
+
};
|
|
55
|
+
var handleChange = function (event) {
|
|
56
|
+
var files = event.target.files;
|
|
57
|
+
if (files && allowMoreFiles)
|
|
58
|
+
handleFiles(files);
|
|
59
|
+
};
|
|
60
|
+
var onClick = function () {
|
|
61
|
+
var _a;
|
|
62
|
+
if (!allowMoreFiles && !hidePreview)
|
|
63
|
+
return;
|
|
64
|
+
if (disabled)
|
|
65
|
+
return;
|
|
66
|
+
(_a = fileInput.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
67
|
+
};
|
|
68
|
+
var allowedFileTypes = __spreadArray([], __read(servar.metadata.file_types), false);
|
|
69
|
+
if (servar.metadata.custom_file_types)
|
|
70
|
+
allowedFileTypes.push.apply(allowedFileTypes, __spreadArray([], __read(servar.metadata.custom_file_types.map(function (type) { return ".".concat(type); })), false));
|
|
71
|
+
var isFileTypeMatch = function (file, allowedType) {
|
|
72
|
+
var _a;
|
|
73
|
+
// handle image/* or video/* etc.
|
|
74
|
+
if (allowedType.endsWith('/*')) {
|
|
75
|
+
var typeCategory = allowedType.split('/')[0];
|
|
76
|
+
return file.type.startsWith(typeCategory + '/');
|
|
77
|
+
}
|
|
78
|
+
// handle specific file types like application/pdf
|
|
79
|
+
if (allowedType.includes('/')) {
|
|
80
|
+
return file.type === allowedType;
|
|
81
|
+
}
|
|
82
|
+
var extension = '.' + ((_a = file.name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase());
|
|
83
|
+
return allowedType.toLowerCase() === extension;
|
|
84
|
+
};
|
|
85
|
+
var validateFileTypes = function (files) {
|
|
86
|
+
if (allowedFileTypes.length === 0)
|
|
87
|
+
return;
|
|
88
|
+
var individualTypes = allowedFileTypes.flatMap(function (str) {
|
|
89
|
+
return str.split(',').map(function (item) { return item.trim(); });
|
|
90
|
+
});
|
|
91
|
+
var invalidFiles = files.filter(function (file) { return !individualTypes.some(function (type) { return isFileTypeMatch(file, type); }); });
|
|
92
|
+
if (invalidFiles.length > 0) {
|
|
93
|
+
throw new Error("Invalid file type. Allowed types: ".concat(allowedFileTypes.join(', ')));
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
var fileSizeLimit = servar.max_length
|
|
97
|
+
? servar.max_length * 1024
|
|
98
|
+
: DEFAULT_FILE_SIZE_LIMIT;
|
|
99
|
+
var validateFileSizes = function (files) {
|
|
100
|
+
if (files.some(function (file) { return file.size > fileSizeLimit; })) {
|
|
101
|
+
var sizeLabel = '';
|
|
102
|
+
if (fileSizeLimit < 1024)
|
|
103
|
+
sizeLabel = "".concat(fileSizeLimit, " bytes");
|
|
104
|
+
else if (fileSizeLimit <= 1024 * 1024) {
|
|
105
|
+
var kbSize = Math.floor(fileSizeLimit / 1024);
|
|
106
|
+
sizeLabel = "".concat(kbSize, " kb");
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
var mbSize = Math.floor(fileSizeLimit / (1024 * 1024));
|
|
110
|
+
sizeLabel = "".concat(mbSize, " mb");
|
|
111
|
+
}
|
|
112
|
+
throw new Error("File exceeds max size of ".concat(sizeLabel));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
// When the user uploads files to the multi-file upload, we just append to the existing set
|
|
116
|
+
// By default the input element would just replace all the uploaded files (we don't want that)
|
|
117
|
+
var handleFiles = function (filelist) { return __awaiter(_this, void 0, void 0, function () {
|
|
118
|
+
var files, existingCount, uploadedFiles, newRawFiles, length_1;
|
|
119
|
+
var _a, _b, _c;
|
|
120
|
+
return __generator(this, function (_d) {
|
|
121
|
+
if (disabled)
|
|
122
|
+
return [2 /*return*/];
|
|
123
|
+
files = Array.from(filelist);
|
|
124
|
+
if (!isMultiple) {
|
|
125
|
+
files = [files[0]];
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
if (files.some(function (file) { return !file || !(file instanceof File) || file.size <= 0; })) {
|
|
129
|
+
throw new Error('Some files are invalid');
|
|
130
|
+
}
|
|
131
|
+
validateFileTypes(files);
|
|
132
|
+
validateFileSizes(files);
|
|
133
|
+
existingCount = hidePreview ? 0 : rawFiles.length;
|
|
134
|
+
if (files.length + existingCount > NUM_FILES_LIMIT) {
|
|
135
|
+
// Splice off the uploaded files past the upload limit
|
|
136
|
+
files.splice(NUM_FILES_LIMIT - existingCount);
|
|
137
|
+
}
|
|
138
|
+
uploadedFiles = files.map(function (file) { return Promise.resolve(file); });
|
|
139
|
+
newRawFiles = void 0;
|
|
140
|
+
if (hidePreview) {
|
|
141
|
+
newRawFiles = uploadedFiles;
|
|
142
|
+
length_1 = 0;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
newRawFiles = __spreadArray(__spreadArray([], __read(rawFiles), false), __read(uploadedFiles), false);
|
|
146
|
+
length_1 = existingCount;
|
|
147
|
+
}
|
|
148
|
+
setRawFiles(newRawFiles);
|
|
149
|
+
customOnChange(newRawFiles, length_1);
|
|
150
|
+
(_a = fileInput.current) === null || _a === void 0 ? void 0 : _a.setCustomValidity('');
|
|
151
|
+
// Wipe the value of the upload element so we can upload multiple copies of the same file
|
|
152
|
+
// If we didn't do this, then uploading the same file wouldn't re-trigger onChange
|
|
153
|
+
if (fileInput.current) {
|
|
154
|
+
fileInput.current.value = '';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
(_b = fileInput.current) === null || _b === void 0 ? void 0 : _b.setCustomValidity(error.message);
|
|
159
|
+
(_c = fileInput.current) === null || _c === void 0 ? void 0 : _c.reportValidity();
|
|
160
|
+
}
|
|
161
|
+
return [2 /*return*/];
|
|
162
|
+
});
|
|
163
|
+
}); };
|
|
164
|
+
function onClear(index) {
|
|
165
|
+
return function () {
|
|
166
|
+
var newRawFiles = justRemove(rawFiles, index);
|
|
167
|
+
setRawFiles(newRawFiles);
|
|
168
|
+
customOnChange(newRawFiles, -1);
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
var imgStyles = __assign(__assign({}, imgMaxSizeStyles), responsiveStyles.getTarget('img'));
|
|
172
|
+
var icon = element.properties.icon ? (jsx("img", { src: element.properties.icon, style: __assign(__assign({}, imgStyles), { maxWidth: '100%', height: 'auto' }), alt: '' })) : (jsx(FileUploadIcon, { width: imgStyles.width && imgStyles.width !== 'px'
|
|
173
|
+
? imgStyles.width
|
|
174
|
+
: undefined, style: { maxHeight: '100%' } }));
|
|
175
|
+
return (jsxs("div", __assign({ css: __assign({ display: 'flex', flexWrap: 'wrap', position: 'relative', pointerEvents: editMode ? 'none' : 'auto', width: '100%', height: '100%' }, responsiveStyles.getTarget('fc')) }, elementProps, { onDragOver: handleDragOver, onDrop: disabled ? undefined : handleDrop }, { children: [children, !hidePreview &&
|
|
176
|
+
thumbnailData.map(function (_a, index) {
|
|
177
|
+
var filename = _a.filename, thumbnail = _a.thumbnail;
|
|
178
|
+
return index < rawFiles.length ? (jsxs("div", __assign({ css: __assign(__assign({ position: 'relative', width: '100%', maxHeight: '100%', overflow: 'hidden', display: 'flex', justifyContent: 'center', alignItems: 'center', boxSizing: 'border-box' }, (thumbnail
|
|
179
|
+
? {}
|
|
180
|
+
: { paddingLeft: '20px', paddingRight: '20px' })), responsiveStyles.getTarget('field')), onMouseEnter: function () { return setHoverDownload(index); }, onMouseLeave: function () { return setHoverDownload(-1); } }, { children: [hoverDownload === index && (jsx("div", __assign({ css: {
|
|
181
|
+
position: 'absolute',
|
|
182
|
+
margin: 'auto',
|
|
183
|
+
left: 0,
|
|
184
|
+
right: 0,
|
|
185
|
+
top: 0,
|
|
186
|
+
bottom: 0,
|
|
187
|
+
width: '48px',
|
|
188
|
+
height: '48px',
|
|
189
|
+
borderRadius: '8px',
|
|
190
|
+
backgroundColor: '#3E414D80',
|
|
191
|
+
cursor: 'pointer',
|
|
192
|
+
display: 'flex',
|
|
193
|
+
alignItems: 'center',
|
|
194
|
+
justifyContent: 'center'
|
|
195
|
+
}, onClick: function () { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
|
|
196
|
+
switch (_b.label) {
|
|
197
|
+
case 0:
|
|
198
|
+
_a = downloadFile;
|
|
199
|
+
return [4 /*yield*/, rawFiles[index]];
|
|
200
|
+
case 1: return [2 /*return*/, _a.apply(void 0, [(_b.sent())])];
|
|
201
|
+
}
|
|
202
|
+
}); }); } }, { children: jsx(DownloadIcon, {}) }))), thumbnail ? (jsx("img", { src: thumbnail, style: {
|
|
203
|
+
width: '100%',
|
|
204
|
+
height: '100%',
|
|
205
|
+
objectFit: 'contain'
|
|
206
|
+
}, alt: filename || '' })) : (jsx("span", __assign({ style: {
|
|
207
|
+
color: 'black',
|
|
208
|
+
height: '100%',
|
|
209
|
+
width: '100%',
|
|
210
|
+
wordBreak: 'break-all',
|
|
211
|
+
fontSize: 'small',
|
|
212
|
+
display: 'flex',
|
|
213
|
+
justifyContent: 'center',
|
|
214
|
+
alignItems: 'center',
|
|
215
|
+
textAlign: 'center'
|
|
216
|
+
} }, { children: filename || 'File' }))), jsx("div", __assign({ css: {
|
|
217
|
+
position: 'absolute',
|
|
218
|
+
top: '4px',
|
|
219
|
+
right: '4px',
|
|
220
|
+
color: 'white',
|
|
221
|
+
background: '#AAA',
|
|
222
|
+
height: '16px',
|
|
223
|
+
width: '16px',
|
|
224
|
+
borderRadius: '50%',
|
|
225
|
+
pointerEvents: disabled ? 'none' : 'auto',
|
|
226
|
+
cursor: 'pointer',
|
|
227
|
+
display: 'flex',
|
|
228
|
+
justifyContent: 'center',
|
|
229
|
+
alignItems: 'center',
|
|
230
|
+
transition: '0.2s ease all',
|
|
231
|
+
'&:hover': { backgroundColor: '#BBB' }
|
|
232
|
+
}, role: 'button', "aria-label": 'Clear file', onClick: function (event) {
|
|
233
|
+
var _a;
|
|
234
|
+
// Stop propagation so window doesn't open up to pick another file to upload
|
|
235
|
+
event.stopPropagation();
|
|
236
|
+
(_a = fileInput.current) === null || _a === void 0 ? void 0 : _a.setCustomValidity('');
|
|
237
|
+
onClear(index)();
|
|
238
|
+
} }, { children: jsx(CloseIcon, { fill: 'white', width: 12, height: 12 }) }))] }), index)) : null;
|
|
239
|
+
}), (allowMoreFiles || hidePreview) && (jsxs("div", __assign({ onClick: onClick, css: __assign({ position: 'relative', pointerEvents: disabled ? 'none' : 'auto', cursor: 'pointer', maxHeight: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column', overflow: 'hidden', boxSizing: 'border-box', width: '100%' }, responsiveStyles.getTarget('ac')) }, { children: [icon, showLabel && (jsx("div", __assign({ css: responsiveStyles.getTarget('add') }, { children: servar.name })))] }))), jsx("input", { id: servar.key, name: servar.key, ref: fileInput, type: 'file', onChange: handleChange, required: required && !hasFiles, accept: allowedFileTypes.join(',') || undefined, disabled: disabled, "aria-label": element.properties.aria_label, multiple: isMultiple, onFocus: iosScrollOnFocus, style: {
|
|
240
|
+
position: 'absolute',
|
|
241
|
+
pointerEvents: 'none',
|
|
242
|
+
opacity: 0,
|
|
243
|
+
top: 0,
|
|
244
|
+
left: 0,
|
|
245
|
+
width: '100%',
|
|
246
|
+
height: '100%',
|
|
247
|
+
zIndex: FORM_Z_INDEX - 2
|
|
248
|
+
} })] })));
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export { FileUploadField as default };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { u as useBorder, j as jsxs, a as __assign, b as jsx, h as hoverStylesGuard, f as imgMaxSizeStyles, n as noTextSelectStyles, E as ErrorInput } from './fthry_index.F6BXSHA5.js';
|
|
2
|
+
import { useRef, useMemo } from 'react';
|
|
3
|
+
import { I as InlineTooltip } from './fthry_InlineTooltip.AGcWhuhV.js';
|
|
4
|
+
import { u as useSalesforceSync } from './fthry_useSalesforceSync.prWuB8V7.js';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
6
|
+
import 'react-dom/client';
|
|
7
|
+
import 'stream';
|
|
8
|
+
import 'events';
|
|
9
|
+
import 'buffer';
|
|
10
|
+
import 'util';
|
|
11
|
+
import 'react-dom';
|
|
12
|
+
import './fthry_Overlay.X0blINpo.js';
|
|
13
|
+
|
|
14
|
+
function ButtonGroupField(_a) {
|
|
15
|
+
var element = _a.element, responsiveStyles = _a.responsiveStyles, fieldLabel = _a.fieldLabel, inlineError = _a.inlineError, _b = _a.fieldVal, fieldVal = _b === void 0 ? null : _b, _c = _a.repeatIndex, repeatIndex = _c === void 0 ? null : _c, editMode = _a.editMode, _d = _a.onClick, onClick = _d === void 0 ? function () { } : _d, _e = _a.elementProps, elementProps = _e === void 0 ? {} : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, children = _a.children;
|
|
16
|
+
var containerRef = useRef(null);
|
|
17
|
+
var servar = element.servar;
|
|
18
|
+
var _g = useSalesforceSync(servar.metadata.salesforce_sync, editMode), dynamicOptions = _g.dynamicOptions, loadingDynamicOptions = _g.loadingDynamicOptions, shouldSalesforceSync = _g.shouldSalesforceSync;
|
|
19
|
+
var selectedOptMap = useMemo(function () {
|
|
20
|
+
return Array.isArray(fieldVal)
|
|
21
|
+
? fieldVal.reduce(function (map, selected) {
|
|
22
|
+
map[selected] = true;
|
|
23
|
+
return map;
|
|
24
|
+
}, {})
|
|
25
|
+
: {};
|
|
26
|
+
}, [fieldVal]);
|
|
27
|
+
var _h = useBorder({
|
|
28
|
+
element: element,
|
|
29
|
+
error: inlineError,
|
|
30
|
+
breakpoint: responsiveStyles.getMobileBreakpoint()
|
|
31
|
+
}), borderStyles = _h.borderStyles, customBorder = _h.customBorder;
|
|
32
|
+
var labels = servar.metadata.option_labels;
|
|
33
|
+
var tooltips = servar.metadata.option_tooltips;
|
|
34
|
+
var options;
|
|
35
|
+
if (shouldSalesforceSync) {
|
|
36
|
+
options = dynamicOptions.map(function (option) { return ({
|
|
37
|
+
value: option.value,
|
|
38
|
+
label: option.label,
|
|
39
|
+
tooltip: ''
|
|
40
|
+
}); });
|
|
41
|
+
}
|
|
42
|
+
else if (repeatIndex !== null &&
|
|
43
|
+
servar.metadata.repeat_options !== undefined &&
|
|
44
|
+
servar.metadata.repeat_options[repeatIndex] !== undefined) {
|
|
45
|
+
options = servar.metadata.repeat_options[repeatIndex];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
options = servar.metadata.options.map(function (opt, index) { return ({
|
|
49
|
+
value: opt,
|
|
50
|
+
label: labels && labels[index] ? labels[index] : opt,
|
|
51
|
+
tooltip: tooltips && tooltips[index] ? tooltips[index] : ''
|
|
52
|
+
}); });
|
|
53
|
+
}
|
|
54
|
+
return (jsxs("div", __assign({ ref: containerRef, css: __assign({ position: 'relative', width: '100%', height: '100%', pointerEvents: editMode || disabled || loadingDynamicOptions ? 'none' : 'auto' }, responsiveStyles.getTarget('fc')) }, { children: [children, fieldLabel, jsxs("div", __assign({ css: __assign({ display: 'flex', flexWrap: 'wrap', width: '100%' }, responsiveStyles.getTarget('bc')) }, elementProps, { children: [options.map(function (option, index) {
|
|
55
|
+
var _a, _b, _c;
|
|
56
|
+
var value = (_a = option.value) !== null && _a !== void 0 ? _a : option;
|
|
57
|
+
var label = (_b = option.label) !== null && _b !== void 0 ? _b : option;
|
|
58
|
+
var imageUrl = option.image
|
|
59
|
+
? option.image
|
|
60
|
+
: servar.metadata.option_images[index];
|
|
61
|
+
var tooltip = (_c = option.tooltip) !== null && _c !== void 0 ? _c : '';
|
|
62
|
+
return (jsxs("div", __assign({ onClick: function () {
|
|
63
|
+
if (!editMode && !disabled && !loadingDynamicOptions) {
|
|
64
|
+
onClick(value);
|
|
65
|
+
}
|
|
66
|
+
}, css: __assign(__assign({ position: 'relative', display: 'flex', justifyContent: 'center', alignItems: 'center', boxSizing: 'border-box', cursor: 'pointer' }, responsiveStyles.getTarget('field')), { '&:hover': hoverStylesGuard(editMode || disabled || loadingDynamicOptions
|
|
67
|
+
? {}
|
|
68
|
+
: __assign(__assign({}, responsiveStyles.getTarget('hover')), borderStyles.hover)), '&&': selectedOptMap[value]
|
|
69
|
+
? __assign(__assign({}, responsiveStyles.getTarget('active')), borderStyles.active) : {} }) }, { children: [customBorder, imageUrl && (jsx("img", { src: imageUrl, css: __assign(__assign({}, imgMaxSizeStyles), responsiveStyles.getTargets('img')) })), label && (jsx("div", __assign({ css: __assign(__assign({ display: 'flex', maxWidth: '100%' }, responsiveStyles.getTargets('label')), noTextSelectStyles) }, { children: label }))), tooltip && (jsx(InlineTooltip, { containerRef: containerRef, id: "".concat(element.id, "-").concat(label), text: tooltip, responsiveStyles: responsiveStyles, absolute: false, repeat: element.repeat }))] }), "".concat(servar.key, "-").concat(index)));
|
|
70
|
+
}), jsx(ErrorInput, { id: servar.key, name: servar.key, "aria-label": element.properties.aria_label })] }))] })));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { ButtonGroupField as default };
|