@feathery/react 2.12.3-pr-1522.4bcc507.0 → 2.14.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/cjs/Form/components/ActionToast/ToastItem.d.ts.map +1 -0
- package/cjs/Form/components/ActionToast/icons.d.ts.map +1 -0
- package/cjs/Form/components/ActionToast/index.d.ts.map +1 -0
- package/cjs/Form/components/ActionToast/useAIExtractionToast.d.ts.map +1 -0
- package/cjs/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts.map +1 -0
- package/cjs/Form/components/DevNavBar.d.ts.map +1 -0
- package/cjs/Form/components/ReactPortal.d.ts.map +1 -0
- package/cjs/Form/definitions.d.ts.map +1 -0
- package/cjs/Form/grid/CalendlyEmbed.d.ts.map +1 -0
- package/cjs/Form/grid/Container/index.d.ts.map +1 -0
- package/cjs/Form/grid/Element/index.d.ts.map +1 -0
- package/cjs/Form/grid/Element/utils/address.d.ts.map +1 -0
- package/cjs/Form/grid/Element/utils/utils.d.ts.map +1 -0
- package/cjs/Form/grid/StyledContainer/hooks/index.d.ts.map +1 -0
- package/cjs/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts.map +1 -0
- package/cjs/Form/grid/StyledContainer/index.d.ts.map +1 -0
- package/cjs/Form/grid/StyledContainer/styles.d.ts.map +1 -0
- package/cjs/Form/grid/StyledContainer/transform.d.ts.map +1 -0
- package/cjs/Form/grid/StyledContainer/utils.d.ts.map +1 -0
- package/cjs/Form/grid/index.d.ts.map +1 -0
- package/cjs/Form/hooks/useCheckButtonAction.d.ts.map +1 -0
- package/cjs/Form/hooks/useTrackUserInteraction.d.ts.map +1 -0
- package/cjs/Form/index.d.ts.map +1 -0
- package/cjs/Form/logic.d.ts.map +1 -0
- package/cjs/Form/tests/testMocks.d.ts.map +1 -0
- package/cjs/auth/LoginError.d.ts.map +1 -0
- package/cjs/auth/LoginForm.d.ts.map +1 -0
- package/cjs/auth/internal/AuthIntegrationInterface.d.ts.map +1 -0
- package/cjs/auth/internal/useFormAuth.d.ts.map +1 -0
- package/cjs/auth/internal/utils.d.ts.map +1 -0
- package/cjs/auth/useAuthClient.d.ts.map +1 -0
- package/cjs/auth/utils.d.ts.map +1 -0
- package/cjs/elements/basic/ButtonElement.d.ts.map +1 -0
- package/cjs/elements/basic/ImageElement.d.ts.map +1 -0
- package/cjs/elements/basic/ProgressBarElement/components/SegmentBar.d.ts.map +1 -0
- package/cjs/elements/basic/ProgressBarElement/components/SmoothBar.d.ts.map +1 -0
- package/cjs/elements/basic/ProgressBarElement/index.d.ts.map +1 -0
- package/cjs/elements/basic/TextElement.d.ts.map +1 -0
- package/cjs/elements/basic/VideoElement.d.ts.map +1 -0
- package/cjs/elements/components/ErrorInput.d.ts.map +1 -0
- package/cjs/elements/components/FormControl.d.ts.map +1 -0
- package/cjs/elements/components/FormOff.d.ts.map +1 -0
- package/cjs/elements/components/InlineTooltip.d.ts.map +1 -0
- package/cjs/elements/components/LoaderContainer.d.ts.map +1 -0
- package/cjs/elements/components/Lottie.d.ts.map +1 -0
- package/cjs/elements/components/Overlay.d.ts.map +1 -0
- package/cjs/elements/components/Placeholder.d.ts.map +1 -0
- package/cjs/elements/components/QuikFormViewer/transforms/form.d.ts.map +1 -0
- package/cjs/elements/components/QuikFormViewer/transforms/header.d.ts.map +1 -0
- package/cjs/elements/components/QuikFormViewer/transforms/sidebar.d.ts.map +1 -0
- package/cjs/elements/components/QuikFormViewer.d.ts.map +1 -0
- package/cjs/elements/components/Spinner.d.ts.map +1 -0
- package/cjs/elements/components/TextHoverTooltip.d.ts.map +1 -0
- package/cjs/elements/components/TextNodes.d.ts.map +1 -0
- package/cjs/elements/components/Tooltip.d.ts.map +1 -0
- package/cjs/elements/components/Watermark.d.ts.map +1 -0
- package/cjs/elements/components/data/countries.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ae.d.ts.map +1 -0
- package/cjs/elements/components/data/states/au.d.ts.map +1 -0
- package/cjs/elements/components/data/states/br.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ca.d.ts.map +1 -0
- package/cjs/elements/components/data/states/cl.d.ts.map +1 -0
- package/cjs/elements/components/data/states/cn.d.ts.map +1 -0
- package/cjs/elements/components/data/states/co.d.ts.map +1 -0
- package/cjs/elements/components/data/states/eg.d.ts.map +1 -0
- package/cjs/elements/components/data/states/es.d.ts.map +1 -0
- package/cjs/elements/components/data/states/gb.d.ts.map +1 -0
- package/cjs/elements/components/data/states/gt.d.ts.map +1 -0
- package/cjs/elements/components/data/states/hk.d.ts.map +1 -0
- package/cjs/elements/components/data/states/id.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ie.d.ts.map +1 -0
- package/cjs/elements/components/data/states/in.d.ts.map +1 -0
- package/cjs/elements/components/data/states/index.d.ts.map +1 -0
- package/cjs/elements/components/data/states/it.d.ts.map +1 -0
- package/cjs/elements/components/data/states/jp.d.ts.map +1 -0
- package/cjs/elements/components/data/states/kr.d.ts.map +1 -0
- package/cjs/elements/components/data/states/mx.d.ts.map +1 -0
- package/cjs/elements/components/data/states/my.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ng.d.ts.map +1 -0
- package/cjs/elements/components/data/states/nz.d.ts.map +1 -0
- package/cjs/elements/components/data/states/pa.d.ts.map +1 -0
- package/cjs/elements/components/data/states/pe.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ph.d.ts.map +1 -0
- package/cjs/elements/components/data/states/pt.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ro.d.ts.map +1 -0
- package/cjs/elements/components/data/states/ru.d.ts.map +1 -0
- package/cjs/elements/components/data/states/th.d.ts.map +1 -0
- package/cjs/elements/components/data/states/us.d.ts.map +1 -0
- package/cjs/elements/components/data/states/za.d.ts.map +1 -0
- package/cjs/elements/components/icons/Close.d.ts.map +1 -0
- package/cjs/elements/components/icons/DiagonalArrow.d.ts.map +1 -0
- package/cjs/elements/components/icons/DownloadIcon.d.ts.map +1 -0
- package/cjs/elements/components/icons/FileUpload.d.ts.map +1 -0
- package/cjs/elements/components/icons/FormClosed.d.ts.map +1 -0
- package/cjs/elements/components/icons/Heart.d.ts.map +1 -0
- package/cjs/elements/components/icons/Help.d.ts.map +1 -0
- package/cjs/elements/components/icons/HideEyeIcon.d.ts.map +1 -0
- package/cjs/elements/components/icons/LeftChevron.d.ts.map +1 -0
- package/cjs/elements/components/icons/RatingStar.d.ts.map +1 -0
- package/cjs/elements/components/icons/RightChevron.d.ts.map +1 -0
- package/cjs/elements/components/icons/ShowEyeIcon.d.ts.map +1 -0
- package/cjs/elements/components/icons/Warning.d.ts.map +1 -0
- package/cjs/elements/components/icons/index.d.ts.map +1 -0
- package/cjs/elements/components/skeletons/FieldSkeleton.d.ts.map +1 -0
- package/cjs/elements/components/useBorder.d.ts.map +1 -0
- package/cjs/elements/components/useTextEdit.d.ts.map +1 -0
- package/cjs/elements/fields/AddressLine1Field/index.d.ts.map +1 -0
- package/cjs/elements/fields/AddressLine1Field/tests/test-utils.d.ts +34 -0
- package/cjs/elements/fields/AddressLine1Field/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/AddressLine1Field/utils.d.ts.map +1 -0
- package/cjs/elements/fields/ButtonGroupField/index.d.ts.map +1 -0
- package/cjs/elements/fields/ButtonGroupField/tests/test-utils.d.ts +46 -0
- package/cjs/elements/fields/ButtonGroupField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/CheckboxField/index.d.ts.map +1 -0
- package/cjs/elements/fields/CheckboxField/tests/test-utils.d.ts +20 -0
- package/cjs/elements/fields/CheckboxField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/CheckboxGroupField/index.d.ts.map +1 -0
- package/cjs/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +60 -0
- package/cjs/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/ColorPickerField/index.d.ts.map +1 -0
- package/cjs/elements/fields/ColorPickerField/tests/test-utils.d.ts +21 -0
- package/cjs/elements/fields/ColorPickerField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/CustomField/Status.d.ts.map +1 -0
- package/cjs/elements/fields/CustomField/index.d.ts.map +1 -0
- package/cjs/elements/fields/CustomField/template.d.ts.map +1 -0
- package/cjs/elements/fields/CustomField/useCustomComponentIframe.d.ts.map +1 -0
- package/cjs/elements/fields/DateSelectorField/index.d.ts.map +1 -0
- package/cjs/elements/fields/DateSelectorField/styles.d.ts.map +1 -0
- package/cjs/elements/fields/DateSelectorField/tests/test-utils.d.ts +90 -0
- package/cjs/elements/fields/DateSelectorField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/DateSelectorField/useDateLocale.d.ts.map +1 -0
- package/cjs/elements/fields/DateSelectorField/utils.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownField/index.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownField/tests/test-utils.d.ts +27 -0
- package/cjs/elements/fields/DropdownField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/createDropdownSelect.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/index.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/optionNormalization.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/selectStyles.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/tests/test-utils.d.ts +47 -0
- package/cjs/elements/fields/DropdownMultiField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/types.d.ts +51 -0
- package/cjs/elements/fields/DropdownMultiField/types.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/useDropdownOptions.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/useSelectProps.d.ts +119 -0
- package/cjs/elements/fields/DropdownMultiField/useSelectProps.d.ts.map +1 -0
- package/cjs/elements/fields/DropdownMultiField/useWindowedOptions.d.ts +19 -0
- package/cjs/elements/fields/DropdownMultiField/useWindowedOptions.d.ts.map +1 -0
- package/cjs/elements/fields/FileUploadField/index.d.ts.map +1 -0
- package/cjs/elements/fields/FileUploadField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/MatrixField/index.d.ts.map +1 -0
- package/cjs/elements/fields/MatrixField/tests/test-utils.d.ts +67 -0
- package/cjs/elements/fields/MatrixField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/PasswordField/index.d.ts.map +1 -0
- package/cjs/elements/fields/PasswordField/tests/test-utils.d.ts +30 -0
- package/cjs/elements/fields/PasswordField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/PaymentMethodField.d.ts.map +1 -0
- package/cjs/elements/fields/PhoneField/CountryDropdown.d.ts.map +1 -0
- package/cjs/elements/fields/PhoneField/exampleNumbers.d.ts.map +1 -0
- package/cjs/elements/fields/PhoneField/index.d.ts.map +1 -0
- package/cjs/elements/fields/PhoneField/tests/test-utils.d.ts +86 -0
- package/cjs/elements/fields/PhoneField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/PhoneField/timeZoneCountries.d.ts.map +1 -0
- package/cjs/elements/fields/PhoneField/validation.d.ts.map +1 -0
- package/cjs/elements/fields/PinInputField/index.d.ts.map +1 -0
- package/cjs/elements/fields/PinInputField/tests/test-utils.d.ts +79 -0
- package/cjs/elements/fields/PinInputField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/PinInputField/useOTPListener.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/constants.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/hooks/use-device-rotation.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/index.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/qrLoader.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/utils/local-storage.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/utils/select-camera.d.ts.map +1 -0
- package/cjs/elements/fields/QRScanner/utils/supports-zoom.d.ts.map +1 -0
- package/cjs/elements/fields/RadioButtonGroupField/index.d.ts.map +1 -0
- package/cjs/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +55 -0
- package/cjs/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/RatingField/index.d.ts.map +1 -0
- package/cjs/elements/fields/RatingField/tests/test-utils.d.ts +22 -0
- package/cjs/elements/fields/RatingField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/SignatureField/components/SignatureCanvas.d.ts.map +1 -0
- package/cjs/elements/fields/SignatureField/components/SignatureModal.d.ts.map +1 -0
- package/cjs/elements/fields/SignatureField/components/utils.d.ts.map +1 -0
- package/cjs/elements/fields/SignatureField/index.d.ts.map +1 -0
- package/cjs/elements/fields/SignatureField/translation.d.ts.map +1 -0
- package/cjs/elements/fields/SliderField/index.d.ts.map +1 -0
- package/cjs/elements/fields/SliderField/styles.d.ts.map +1 -0
- package/cjs/elements/fields/SliderField/tests/test-utils.d.ts +22 -0
- package/cjs/elements/fields/SliderField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/TextArea/index.d.ts.map +1 -0
- package/cjs/elements/fields/TextArea/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/TextField/TextAutocomplete.d.ts.map +1 -0
- package/cjs/elements/fields/TextField/index.d.ts.map +1 -0
- package/cjs/elements/fields/TextField/tests/test-utils.d.ts.map +1 -0
- package/cjs/elements/fields/index.d.ts.map +1 -0
- package/cjs/elements/fields/shared/tests/field-test-utils.d.ts +51 -0
- package/cjs/elements/fields/shared/tests/field-test-utils.d.ts.map +1 -0
- package/cjs/elements/index.d.ts.map +1 -0
- package/cjs/elements/styles.d.ts.map +1 -0
- package/cjs/elements/utils/fieldNormalization.d.ts.map +1 -0
- package/cjs/fthry_FormControl.BwXT0ep8.js +18 -0
- package/cjs/fthry_InlineTooltip.BdhCa_rK.js +55 -0
- package/cjs/fthry_Overlay.CkaxO8d5.js +231 -0
- package/cjs/fthry_PaymentMethodField.mg1fdRD0.js +927 -0
- package/cjs/fthry_Placeholder.Jcsn0I77.js +16 -0
- package/cjs/fthry_ShowEyeIcon.B1bZYLk8.js +16 -0
- package/cjs/fthry_index.6mEHhzfW.js +1451 -0
- package/cjs/fthry_index.BAjR2Rnl.js +94 -0
- package/cjs/fthry_index.BDYAeN41.js +888 -0
- package/cjs/fthry_index.BWlL6Yer.js +215 -0
- package/cjs/fthry_index.BlqRmYU3.js +96 -0
- package/cjs/fthry_index.Brf3d6gi.js +97 -0
- package/cjs/fthry_index.C1fh-rBQ.js +130 -0
- package/cjs/fthry_index.CFas_RaG.js +255 -0
- package/cjs/fthry_index.CH-jUzEB.js +16132 -0
- package/cjs/fthry_index.CIRAsV1y.js +140 -0
- package/cjs/fthry_index.CM61c38_.js +1426 -0
- package/cjs/fthry_index.CNP-DZpU.js +1195 -0
- package/cjs/fthry_index.CdljdZZa.js +1999 -0
- package/cjs/fthry_index.Cg6LX1gC.js +34 -0
- package/cjs/fthry_index.CrMPecva.js +45 -0
- package/cjs/fthry_index.D347YZZf.js +1161 -0
- package/cjs/fthry_index.DAUqZ_Ax.js +72 -0
- package/cjs/fthry_index.DamIMdR9.js +512 -0
- package/cjs/fthry_index.Dl8vbJjd.js +292 -0
- package/cjs/fthry_index.LJEYPWI3.js +8290 -0
- package/cjs/fthry_index.Wk8VztlG.js +54 -0
- package/cjs/fthry_index.YHxFZskW.js +46599 -0
- package/cjs/fthry_index.stdBLQZf.js +41 -0
- package/cjs/fthry_input.Co8r9GsS.js +3782 -0
- package/cjs/fthry_script.Bq4U9W-W.js +159 -0
- package/cjs/fthry_styles.v2wlusMk.js +1675 -0
- package/cjs/fthry_useElementSize.H_jyVKqM.js +53 -0
- package/cjs/fthry_useSalesforceSync.PzKJwKNh.js +46 -0
- package/cjs/fthry_webfontloader.BEk-u0hO.js +59 -0
- package/cjs/hooks/router.d.ts.map +1 -0
- package/cjs/hooks/useElementSize.d.ts.map +1 -0
- package/cjs/hooks/useLoader.d.ts.map +1 -0
- package/cjs/hooks/useMounted.d.ts.map +1 -0
- package/cjs/hooks/usePollFuserData.d.ts.map +1 -0
- package/cjs/hooks/usePrevious.d.ts.map +1 -0
- package/cjs/hooks/useSalesforceSync.d.ts.map +1 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +23 -0
- package/cjs/integrations/alloy.d.ts.map +1 -0
- package/cjs/integrations/amplitude.d.ts.map +1 -0
- package/cjs/integrations/argyle.d.ts.map +1 -0
- package/cjs/integrations/calendly.d.ts.map +1 -0
- package/cjs/integrations/firebase.d.ts.map +1 -0
- package/cjs/integrations/flinks/index.d.ts.map +1 -0
- package/cjs/integrations/flinks/utils.d.ts.map +1 -0
- package/cjs/integrations/googleAnalytics.d.ts.map +1 -0
- package/cjs/integrations/googleTagManager.d.ts.map +1 -0
- package/cjs/integrations/heap.d.ts.map +1 -0
- package/cjs/integrations/intercom.d.ts.map +1 -0
- package/cjs/integrations/mixpanel.d.ts.map +1 -0
- package/cjs/integrations/persona.d.ts.map +1 -0
- package/cjs/integrations/plaid.d.ts.map +1 -0
- package/cjs/integrations/recaptcha.d.ts +7 -0
- package/cjs/integrations/recaptcha.d.ts.map +1 -0
- package/cjs/integrations/rudderstack.d.ts.map +1 -0
- package/cjs/integrations/schwab.d.ts.map +1 -0
- package/cjs/integrations/segment.d.ts.map +1 -0
- package/cjs/integrations/stripe/Cart.d.ts.map +1 -0
- package/cjs/integrations/stripe/SimplifiedProduct.d.ts.map +1 -0
- package/cjs/integrations/stripe/index.d.ts.map +1 -0
- package/cjs/integrations/stripe/stripe.d.ts.map +1 -0
- package/cjs/integrations/stytch.d.ts.map +1 -0
- package/cjs/integrations/trustedform.d.ts.map +1 -0
- package/cjs/integrations/utils.d.ts.map +1 -0
- package/cjs/setupTests.d.ts.map +1 -0
- package/cjs/types/Form.d.ts.map +1 -0
- package/cjs/utils/DangerouslySetHTMLContent.d.ts.map +1 -0
- package/cjs/utils/ShadowDomHtmlContent.d.ts.map +1 -0
- package/cjs/utils/array.d.ts.map +1 -0
- package/cjs/utils/browser.d.ts.map +1 -0
- package/cjs/utils/callbackQueue.d.ts.map +1 -0
- package/cjs/utils/document.d.ts.map +1 -0
- package/cjs/utils/elementActions.d.ts.map +1 -0
- package/cjs/utils/entities/Collaborator.d.ts.map +1 -0
- package/cjs/utils/entities/Field.d.ts.map +1 -0
- package/cjs/utils/error.d.ts.map +1 -0
- package/cjs/utils/featheryClient/index.d.ts.map +1 -0
- package/cjs/utils/featheryClient/integrationClient.d.ts.map +1 -0
- package/cjs/utils/featheryClient/utils.d.ts.map +1 -0
- package/cjs/utils/fieldHelperFunctions.d.ts.map +1 -0
- package/cjs/utils/formContext.d.ts.map +1 -0
- package/cjs/utils/formHelperFunctions.d.ts.map +1 -0
- package/cjs/utils/hideAndRepeats.d.ts.map +1 -0
- package/cjs/utils/hydration.d.ts.map +1 -0
- package/cjs/utils/image.d.ts.map +1 -0
- package/cjs/utils/init.d.ts.map +1 -0
- package/cjs/utils/interactionState.d.ts.map +1 -0
- package/cjs/utils/internalState.d.ts.map +1 -0
- package/cjs/utils/logic.d.ts.map +1 -0
- package/cjs/utils/offlineRequestHandler.d.ts.map +1 -0
- package/cjs/utils/polyfills.d.ts.map +1 -0
- package/cjs/utils/primitives.d.ts.map +1 -0
- package/cjs/utils/random.d.ts.map +1 -0
- package/cjs/utils/repeat.d.ts.map +1 -0
- package/cjs/utils/sensitiveActions.d.ts.map +1 -0
- package/cjs/utils/stepHelperFunctions.d.ts.map +1 -0
- package/cjs/utils/styles.d.ts.map +1 -0
- package/cjs/utils/validation.d.ts.map +1 -0
- package/dist/Form/components/ActionToast/ToastItem.d.ts +5 -5
- package/dist/Form/components/ActionToast/icons.d.ts +7 -7
- package/dist/Form/components/ActionToast/index.d.ts +7 -7
- package/dist/Form/components/ActionToast/useAIExtractionToast.d.ts +72 -72
- package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts +19 -19
- 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/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 +33 -34
- package/dist/elements/fields/AddressLine1Field/tests/test-utils.d.ts.map +1 -1
- 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 +45 -46
- package/dist/elements/fields/ButtonGroupField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/CheckboxField/index.d.ts +5 -5
- package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts +19 -20
- package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/CheckboxGroupField/index.d.ts +2 -2
- package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +59 -60
- package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/ColorPickerField/index.d.ts +2 -2
- package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts +20 -21
- package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts.map +1 -1
- 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/styles.d.ts +4 -4
- package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts +89 -90
- package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts.map +1 -1
- 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 +26 -28
- package/dist/elements/fields/DropdownField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +8 -8
- package/dist/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts.map +1 -1
- 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/index.d.ts.map +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/selectStyles.d.ts.map +1 -1
- package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts +46 -47
- package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/DropdownMultiField/types.d.ts +50 -49
- package/dist/elements/fields/DropdownMultiField/types.d.ts.map +1 -1
- 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 +118 -112
- package/dist/elements/fields/DropdownMultiField/useSelectProps.d.ts.map +1 -1
- package/dist/elements/fields/DropdownMultiField/useWindowedOptions.d.ts +19 -0
- package/dist/elements/fields/DropdownMultiField/useWindowedOptions.d.ts.map +1 -0
- 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 +66 -67
- package/dist/elements/fields/MatrixField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/PasswordField/index.d.ts +4 -4
- package/dist/elements/fields/PasswordField/tests/test-utils.d.ts +29 -30
- package/dist/elements/fields/PasswordField/tests/test-utils.d.ts.map +1 -1
- 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 +85 -86
- package/dist/elements/fields/PhoneField/tests/test-utils.d.ts.map +1 -1
- 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 +78 -79
- package/dist/elements/fields/PinInputField/tests/test-utils.d.ts.map +1 -1
- 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 +54 -55
- package/dist/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/RatingField/index.d.ts +1 -1
- package/dist/elements/fields/RatingField/tests/test-utils.d.ts +21 -22
- package/dist/elements/fields/RatingField/tests/test-utils.d.ts.map +1 -1
- 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 +21 -22
- package/dist/elements/fields/SliderField/tests/test-utils.d.ts.map +1 -1
- 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/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 +50 -51
- package/dist/elements/fields/shared/tests/field-test-utils.d.ts.map +1 -1
- 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.CrSvLSA7.js +16 -0
- package/dist/fthry_InlineTooltip.xj-t-582.js +53 -0
- package/dist/fthry_Overlay.CJFSLbLE.js +228 -0
- package/dist/fthry_PaymentMethodField.PRJIHswh.js +925 -0
- package/dist/fthry_Placeholder.7M07CwTS.js +14 -0
- package/dist/fthry_ShowEyeIcon.n639xEWA.js +13 -0
- package/dist/fthry_index.BE1aEx2n.js +70 -0
- package/dist/fthry_index.BKbx2qxD.js +94 -0
- package/dist/fthry_index.BdbDXIuj.js +290 -0
- package/dist/fthry_index.Be8xdrui.js +52 -0
- package/dist/fthry_index.BpsK3TYO.js +135 -0
- package/dist/fthry_index.CdIRvNp8.js +46487 -0
- package/dist/fthry_index.Cfn3D1XZ.js +92 -0
- package/dist/fthry_index.CwsphGMI.js +1193 -0
- package/dist/fthry_index.CxH24rcl.js +95 -0
- package/dist/fthry_index.CzHuSmWc.js +213 -0
- package/dist/fthry_index.D6sWBKuA.js +43 -0
- package/dist/fthry_index.DEU7NBKU.js +1159 -0
- package/dist/fthry_index.DMTSFPNS.js +886 -0
- package/dist/fthry_index.DQhKI62v.js +510 -0
- package/dist/fthry_index.DQuVxHkp.js +253 -0
- package/dist/fthry_index.Dd5mpmpk.js +39 -0
- package/dist/fthry_index.Df-7wyL2.js +1449 -0
- package/dist/fthry_index.DgIPpVNk.js +32 -0
- package/dist/fthry_index.DsHJmYgu.js +1424 -0
- package/dist/fthry_index.DtttVU-B.js +128 -0
- package/dist/fthry_index.RwhYSoEm.js +16111 -0
- package/dist/fthry_index.g8xB96Yo.js +8270 -0
- package/dist/fthry_index.sXNItbKY.js +1997 -0
- package/dist/fthry_input.CD5doOgD.js +3779 -0
- package/dist/fthry_script.B1ROwso4.js +157 -0
- package/dist/fthry_styles.C-VyrwW3.js +1654 -0
- package/dist/fthry_useElementSize.1FdURPgQ.js +51 -0
- package/dist/fthry_useSalesforceSync.wEr6a7_E.js +44 -0
- package/dist/fthry_webfontloader.ChgT0Ifr.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 +157 -156
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- 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 +6 -2
- package/dist/integrations/recaptcha.d.ts.map +1 -1
- 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 +109 -109
- 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 +111 -111
- 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/interactionState.d.ts +4 -4
- package/dist/utils/internalState.d.ts +99 -99
- 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 +10 -9
- package/umd/DropdownMultiField.c8c926000cbed5ee771a.js +1 -0
- package/umd/index.js +1 -1
- package/dist/cjs/Form/components/ActionToast/ToastItem.d.ts.map +0 -1
- package/dist/cjs/Form/components/ActionToast/icons.d.ts.map +0 -1
- package/dist/cjs/Form/components/ActionToast/index.d.ts.map +0 -1
- package/dist/cjs/Form/components/ActionToast/useAIExtractionToast.d.ts.map +0 -1
- package/dist/cjs/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts.map +0 -1
- package/dist/cjs/Form/components/DevNavBar.d.ts.map +0 -1
- package/dist/cjs/Form/components/ReactPortal.d.ts.map +0 -1
- package/dist/cjs/Form/definitions.d.ts.map +0 -1
- package/dist/cjs/Form/grid/CalendlyEmbed.d.ts.map +0 -1
- package/dist/cjs/Form/grid/Container/index.d.ts.map +0 -1
- package/dist/cjs/Form/grid/Element/index.d.ts.map +0 -1
- package/dist/cjs/Form/grid/Element/utils/address.d.ts.map +0 -1
- package/dist/cjs/Form/grid/Element/utils/utils.d.ts.map +0 -1
- package/dist/cjs/Form/grid/StyledContainer/hooks/index.d.ts.map +0 -1
- package/dist/cjs/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts.map +0 -1
- package/dist/cjs/Form/grid/StyledContainer/index.d.ts.map +0 -1
- package/dist/cjs/Form/grid/StyledContainer/styles.d.ts.map +0 -1
- package/dist/cjs/Form/grid/StyledContainer/transform.d.ts.map +0 -1
- package/dist/cjs/Form/grid/StyledContainer/utils.d.ts.map +0 -1
- package/dist/cjs/Form/grid/index.d.ts.map +0 -1
- package/dist/cjs/Form/hooks/useCheckButtonAction.d.ts.map +0 -1
- package/dist/cjs/Form/hooks/useTrackUserInteraction.d.ts.map +0 -1
- package/dist/cjs/Form/index.d.ts.map +0 -1
- package/dist/cjs/Form/logic.d.ts.map +0 -1
- package/dist/cjs/Form/tests/testMocks.d.ts.map +0 -1
- package/dist/cjs/auth/LoginError.d.ts.map +0 -1
- package/dist/cjs/auth/LoginForm.d.ts.map +0 -1
- package/dist/cjs/auth/internal/AuthIntegrationInterface.d.ts.map +0 -1
- package/dist/cjs/auth/internal/useFormAuth.d.ts.map +0 -1
- package/dist/cjs/auth/internal/utils.d.ts.map +0 -1
- package/dist/cjs/auth/useAuthClient.d.ts.map +0 -1
- package/dist/cjs/auth/utils.d.ts.map +0 -1
- package/dist/cjs/elements/basic/ButtonElement.d.ts.map +0 -1
- package/dist/cjs/elements/basic/ImageElement.d.ts.map +0 -1
- package/dist/cjs/elements/basic/ProgressBarElement/components/SegmentBar.d.ts.map +0 -1
- package/dist/cjs/elements/basic/ProgressBarElement/components/SmoothBar.d.ts.map +0 -1
- package/dist/cjs/elements/basic/ProgressBarElement/index.d.ts.map +0 -1
- package/dist/cjs/elements/basic/TextElement.d.ts.map +0 -1
- package/dist/cjs/elements/basic/VideoElement.d.ts.map +0 -1
- package/dist/cjs/elements/components/ErrorInput.d.ts.map +0 -1
- package/dist/cjs/elements/components/FormControl.d.ts.map +0 -1
- package/dist/cjs/elements/components/FormOff.d.ts.map +0 -1
- package/dist/cjs/elements/components/InlineTooltip.d.ts.map +0 -1
- package/dist/cjs/elements/components/LoaderContainer.d.ts.map +0 -1
- package/dist/cjs/elements/components/Lottie.d.ts.map +0 -1
- package/dist/cjs/elements/components/Overlay.d.ts.map +0 -1
- package/dist/cjs/elements/components/Placeholder.d.ts.map +0 -1
- package/dist/cjs/elements/components/QuikFormViewer/transforms/form.d.ts.map +0 -1
- package/dist/cjs/elements/components/QuikFormViewer/transforms/header.d.ts.map +0 -1
- package/dist/cjs/elements/components/QuikFormViewer/transforms/sidebar.d.ts.map +0 -1
- package/dist/cjs/elements/components/QuikFormViewer.d.ts.map +0 -1
- package/dist/cjs/elements/components/Spinner.d.ts.map +0 -1
- package/dist/cjs/elements/components/TextHoverTooltip.d.ts.map +0 -1
- package/dist/cjs/elements/components/TextNodes.d.ts.map +0 -1
- package/dist/cjs/elements/components/Tooltip.d.ts.map +0 -1
- package/dist/cjs/elements/components/Watermark.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/countries.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ae.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/au.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/br.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ca.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/cl.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/cn.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/co.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/eg.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/es.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/gb.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/gt.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/hk.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/id.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ie.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/in.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/index.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/it.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/jp.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/kr.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/mx.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/my.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ng.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/nz.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/pa.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/pe.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ph.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/pt.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ro.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/ru.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/th.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/us.d.ts.map +0 -1
- package/dist/cjs/elements/components/data/states/za.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/Close.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/DiagonalArrow.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/DownloadIcon.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/FileUpload.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/FormClosed.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/Heart.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/Help.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/HideEyeIcon.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/LeftChevron.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/RatingStar.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/RightChevron.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/ShowEyeIcon.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/Warning.d.ts.map +0 -1
- package/dist/cjs/elements/components/icons/index.d.ts.map +0 -1
- package/dist/cjs/elements/components/skeletons/FieldSkeleton.d.ts.map +0 -1
- package/dist/cjs/elements/components/useBorder.d.ts.map +0 -1
- package/dist/cjs/elements/components/useTextEdit.d.ts.map +0 -1
- package/dist/cjs/elements/fields/AddressLine1Field/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/AddressLine1Field/tests/test-utils.d.ts +0 -35
- package/dist/cjs/elements/fields/AddressLine1Field/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/AddressLine1Field/utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/ButtonGroupField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/ButtonGroupField/tests/test-utils.d.ts +0 -47
- package/dist/cjs/elements/fields/ButtonGroupField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CheckboxField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CheckboxField/tests/test-utils.d.ts +0 -21
- package/dist/cjs/elements/fields/CheckboxField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CheckboxGroupField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +0 -61
- package/dist/cjs/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/ColorPickerField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/ColorPickerField/tests/test-utils.d.ts +0 -22
- package/dist/cjs/elements/fields/ColorPickerField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CustomField/Status.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CustomField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CustomField/template.d.ts.map +0 -1
- package/dist/cjs/elements/fields/CustomField/useCustomComponentIframe.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DateSelectorField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DateSelectorField/styles.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DateSelectorField/tests/test-utils.d.ts +0 -91
- package/dist/cjs/elements/fields/DateSelectorField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DateSelectorField/useDateLocale.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DateSelectorField/utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownField/tests/test-utils.d.ts +0 -29
- package/dist/cjs/elements/fields/DropdownField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/createDropdownSelect.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/optionNormalization.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/selectStyles.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/tests/test-utils.d.ts +0 -48
- package/dist/cjs/elements/fields/DropdownMultiField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/types.d.ts +0 -50
- package/dist/cjs/elements/fields/DropdownMultiField/types.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/useDropdownOptions.d.ts.map +0 -1
- package/dist/cjs/elements/fields/DropdownMultiField/useSelectProps.d.ts +0 -113
- package/dist/cjs/elements/fields/DropdownMultiField/useSelectProps.d.ts.map +0 -1
- package/dist/cjs/elements/fields/FileUploadField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/FileUploadField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/MatrixField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/MatrixField/tests/test-utils.d.ts +0 -68
- package/dist/cjs/elements/fields/MatrixField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PasswordField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PasswordField/tests/test-utils.d.ts +0 -31
- package/dist/cjs/elements/fields/PasswordField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PaymentMethodField.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PhoneField/CountryDropdown.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PhoneField/exampleNumbers.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PhoneField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PhoneField/tests/test-utils.d.ts +0 -87
- package/dist/cjs/elements/fields/PhoneField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PhoneField/timeZoneCountries.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PhoneField/validation.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PinInputField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PinInputField/tests/test-utils.d.ts +0 -80
- package/dist/cjs/elements/fields/PinInputField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/PinInputField/useOTPListener.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/constants.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/hooks/use-device-rotation.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/qrLoader.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/utils/local-storage.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/utils/select-camera.d.ts.map +0 -1
- package/dist/cjs/elements/fields/QRScanner/utils/supports-zoom.d.ts.map +0 -1
- package/dist/cjs/elements/fields/RadioButtonGroupField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +0 -56
- package/dist/cjs/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/RatingField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/RatingField/tests/test-utils.d.ts +0 -23
- package/dist/cjs/elements/fields/RatingField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SignatureField/components/SignatureCanvas.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SignatureField/components/SignatureModal.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SignatureField/components/utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SignatureField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SignatureField/translation.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SliderField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SliderField/styles.d.ts.map +0 -1
- package/dist/cjs/elements/fields/SliderField/tests/test-utils.d.ts +0 -23
- package/dist/cjs/elements/fields/SliderField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/TextArea/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/TextArea/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/TextField/TextAutocomplete.d.ts.map +0 -1
- package/dist/cjs/elements/fields/TextField/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/TextField/tests/test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/fields/index.d.ts.map +0 -1
- package/dist/cjs/elements/fields/shared/tests/field-test-utils.d.ts +0 -52
- package/dist/cjs/elements/fields/shared/tests/field-test-utils.d.ts.map +0 -1
- package/dist/cjs/elements/index.d.ts.map +0 -1
- package/dist/cjs/elements/styles.d.ts.map +0 -1
- package/dist/cjs/elements/utils/fieldNormalization.d.ts.map +0 -1
- package/dist/cjs/fthry_FormControl.BkRkEOPV.js +0 -18
- package/dist/cjs/fthry_InlineTooltip.CbVeAbj-.js +0 -55
- package/dist/cjs/fthry_Overlay.zp3MDZez.js +0 -231
- package/dist/cjs/fthry_PaymentMethodField.CJ8dq0fW.js +0 -927
- package/dist/cjs/fthry_Placeholder.BmZn9eqe.js +0 -16
- package/dist/cjs/fthry_ShowEyeIcon.Bm2XEOxd.js +0 -16
- package/dist/cjs/fthry_index.B4YjC-C6.js +0 -94
- package/dist/cjs/fthry_index.B9-9P9JF.js +0 -54
- package/dist/cjs/fthry_index.BGZ09_Df.js +0 -34
- package/dist/cjs/fthry_index.BHZiDOJy.js +0 -72
- package/dist/cjs/fthry_index.BMG2-fL2.js +0 -41
- package/dist/cjs/fthry_index.BRcdDEP7.js +0 -130
- package/dist/cjs/fthry_index.BYMaOURT.js +0 -140
- package/dist/cjs/fthry_index.Bc1WOCpN.js +0 -45
- package/dist/cjs/fthry_index.Bwkf_lk3.js +0 -8183
- package/dist/cjs/fthry_index.CAuvgDuG.js +0 -512
- package/dist/cjs/fthry_index.CohzVLkQ.js +0 -1426
- package/dist/cjs/fthry_index.CtdngFQd.js +0 -46575
- package/dist/cjs/fthry_index.CzI9aLcM.js +0 -96
- package/dist/cjs/fthry_index.D6MKhV5W.js +0 -888
- package/dist/cjs/fthry_index.DHlxQYOY.js +0 -1161
- package/dist/cjs/fthry_index.DI7QOcRZ.js +0 -1451
- package/dist/cjs/fthry_index.DNAP_k72.js +0 -292
- package/dist/cjs/fthry_index.DRGdkWyD.js +0 -1999
- package/dist/cjs/fthry_index.DvJ038DD.js +0 -16132
- package/dist/cjs/fthry_index.E_PMR0Yl.js +0 -215
- package/dist/cjs/fthry_index.fleNYFAW.js +0 -255
- package/dist/cjs/fthry_index.hn3nWnc7.js +0 -97
- package/dist/cjs/fthry_index.sQV37Gt2.js +0 -1195
- package/dist/cjs/fthry_input.BhfAe7t1.js +0 -3782
- package/dist/cjs/fthry_script.iSzGaCwW.js +0 -159
- package/dist/cjs/fthry_styles.CKZy9WDb.js +0 -1675
- package/dist/cjs/fthry_useElementSize.CUMmUgEh.js +0 -53
- package/dist/cjs/fthry_useSalesforceSync.DURMJ7-O.js +0 -46
- package/dist/cjs/fthry_webfontloader.C04VodQo.js +0 -59
- package/dist/cjs/hooks/router.d.ts.map +0 -1
- package/dist/cjs/hooks/useElementSize.d.ts.map +0 -1
- package/dist/cjs/hooks/useLoader.d.ts.map +0 -1
- package/dist/cjs/hooks/useMounted.d.ts.map +0 -1
- package/dist/cjs/hooks/usePollFuserData.d.ts.map +0 -1
- package/dist/cjs/hooks/usePrevious.d.ts.map +0 -1
- package/dist/cjs/hooks/useSalesforceSync.d.ts.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -23
- package/dist/cjs/integrations/alloy.d.ts.map +0 -1
- package/dist/cjs/integrations/amplitude.d.ts.map +0 -1
- package/dist/cjs/integrations/argyle.d.ts.map +0 -1
- package/dist/cjs/integrations/calendly.d.ts.map +0 -1
- package/dist/cjs/integrations/firebase.d.ts.map +0 -1
- package/dist/cjs/integrations/flinks/index.d.ts.map +0 -1
- package/dist/cjs/integrations/flinks/utils.d.ts.map +0 -1
- package/dist/cjs/integrations/googleAnalytics.d.ts.map +0 -1
- package/dist/cjs/integrations/googleTagManager.d.ts.map +0 -1
- package/dist/cjs/integrations/heap.d.ts.map +0 -1
- package/dist/cjs/integrations/intercom.d.ts.map +0 -1
- package/dist/cjs/integrations/mixpanel.d.ts.map +0 -1
- package/dist/cjs/integrations/persona.d.ts.map +0 -1
- package/dist/cjs/integrations/plaid.d.ts.map +0 -1
- package/dist/cjs/integrations/recaptcha.d.ts +0 -3
- package/dist/cjs/integrations/recaptcha.d.ts.map +0 -1
- package/dist/cjs/integrations/rudderstack.d.ts.map +0 -1
- package/dist/cjs/integrations/schwab.d.ts.map +0 -1
- package/dist/cjs/integrations/segment.d.ts.map +0 -1
- package/dist/cjs/integrations/stripe/Cart.d.ts.map +0 -1
- package/dist/cjs/integrations/stripe/SimplifiedProduct.d.ts.map +0 -1
- package/dist/cjs/integrations/stripe/index.d.ts.map +0 -1
- package/dist/cjs/integrations/stripe/stripe.d.ts.map +0 -1
- package/dist/cjs/integrations/stytch.d.ts.map +0 -1
- package/dist/cjs/integrations/trustedform.d.ts.map +0 -1
- package/dist/cjs/integrations/utils.d.ts.map +0 -1
- package/dist/cjs/setupTests.d.ts.map +0 -1
- package/dist/cjs/types/Form.d.ts.map +0 -1
- package/dist/cjs/utils/DangerouslySetHTMLContent.d.ts.map +0 -1
- package/dist/cjs/utils/ShadowDomHtmlContent.d.ts.map +0 -1
- package/dist/cjs/utils/array.d.ts.map +0 -1
- package/dist/cjs/utils/browser.d.ts.map +0 -1
- package/dist/cjs/utils/callbackQueue.d.ts.map +0 -1
- package/dist/cjs/utils/document.d.ts.map +0 -1
- package/dist/cjs/utils/elementActions.d.ts.map +0 -1
- package/dist/cjs/utils/entities/Collaborator.d.ts.map +0 -1
- package/dist/cjs/utils/entities/Field.d.ts.map +0 -1
- package/dist/cjs/utils/error.d.ts.map +0 -1
- package/dist/cjs/utils/featheryClient/index.d.ts.map +0 -1
- package/dist/cjs/utils/featheryClient/integrationClient.d.ts.map +0 -1
- package/dist/cjs/utils/featheryClient/utils.d.ts.map +0 -1
- package/dist/cjs/utils/fieldHelperFunctions.d.ts.map +0 -1
- package/dist/cjs/utils/formContext.d.ts.map +0 -1
- package/dist/cjs/utils/formHelperFunctions.d.ts.map +0 -1
- package/dist/cjs/utils/hideAndRepeats.d.ts.map +0 -1
- package/dist/cjs/utils/hydration.d.ts.map +0 -1
- package/dist/cjs/utils/image.d.ts.map +0 -1
- package/dist/cjs/utils/init.d.ts.map +0 -1
- package/dist/cjs/utils/interactionState.d.ts.map +0 -1
- package/dist/cjs/utils/internalState.d.ts.map +0 -1
- package/dist/cjs/utils/logic.d.ts.map +0 -1
- package/dist/cjs/utils/offlineRequestHandler.d.ts.map +0 -1
- package/dist/cjs/utils/polyfills.d.ts.map +0 -1
- package/dist/cjs/utils/primitives.d.ts.map +0 -1
- package/dist/cjs/utils/random.d.ts.map +0 -1
- package/dist/cjs/utils/repeat.d.ts.map +0 -1
- package/dist/cjs/utils/sensitiveActions.d.ts.map +0 -1
- package/dist/cjs/utils/stepHelperFunctions.d.ts.map +0 -1
- package/dist/cjs/utils/styles.d.ts.map +0 -1
- package/dist/cjs/utils/validation.d.ts.map +0 -1
- package/dist/esm/Form/components/ActionToast/ToastItem.d.ts +0 -6
- package/dist/esm/Form/components/ActionToast/ToastItem.d.ts.map +0 -1
- package/dist/esm/Form/components/ActionToast/icons.d.ts +0 -8
- package/dist/esm/Form/components/ActionToast/icons.d.ts.map +0 -1
- package/dist/esm/Form/components/ActionToast/index.d.ts +0 -8
- package/dist/esm/Form/components/ActionToast/index.d.ts.map +0 -1
- package/dist/esm/Form/components/ActionToast/useAIExtractionToast.d.ts +0 -73
- package/dist/esm/Form/components/ActionToast/useAIExtractionToast.d.ts.map +0 -1
- package/dist/esm/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts +0 -20
- package/dist/esm/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts.map +0 -1
- package/dist/esm/Form/components/DevNavBar.d.ts +0 -2
- package/dist/esm/Form/components/DevNavBar.d.ts.map +0 -1
- package/dist/esm/Form/components/ReactPortal.d.ts +0 -3
- package/dist/esm/Form/components/ReactPortal.d.ts.map +0 -1
- package/dist/esm/Form/definitions.d.ts +0 -41
- package/dist/esm/Form/definitions.d.ts.map +0 -1
- package/dist/esm/Form/grid/CalendlyEmbed.d.ts +0 -2
- package/dist/esm/Form/grid/CalendlyEmbed.d.ts.map +0 -1
- package/dist/esm/Form/grid/Container/index.d.ts +0 -20
- package/dist/esm/Form/grid/Container/index.d.ts.map +0 -1
- package/dist/esm/Form/grid/Element/index.d.ts +0 -3
- package/dist/esm/Form/grid/Element/index.d.ts.map +0 -1
- package/dist/esm/Form/grid/Element/utils/address.d.ts +0 -4
- package/dist/esm/Form/grid/Element/utils/address.d.ts.map +0 -1
- package/dist/esm/Form/grid/Element/utils/utils.d.ts +0 -14
- package/dist/esm/Form/grid/Element/utils/utils.d.ts.map +0 -1
- package/dist/esm/Form/grid/StyledContainer/hooks/index.d.ts +0 -21
- package/dist/esm/Form/grid/StyledContainer/hooks/index.d.ts.map +0 -1
- package/dist/esm/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts +0 -2
- package/dist/esm/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts.map +0 -1
- package/dist/esm/Form/grid/StyledContainer/index.d.ts +0 -22
- package/dist/esm/Form/grid/StyledContainer/index.d.ts.map +0 -1
- package/dist/esm/Form/grid/StyledContainer/styles.d.ts +0 -6
- package/dist/esm/Form/grid/StyledContainer/styles.d.ts.map +0 -1
- package/dist/esm/Form/grid/StyledContainer/transform.d.ts +0 -5
- package/dist/esm/Form/grid/StyledContainer/transform.d.ts.map +0 -1
- package/dist/esm/Form/grid/StyledContainer/utils.d.ts +0 -45
- package/dist/esm/Form/grid/StyledContainer/utils.d.ts.map +0 -1
- package/dist/esm/Form/grid/index.d.ts +0 -3
- package/dist/esm/Form/grid/index.d.ts.map +0 -1
- package/dist/esm/Form/hooks/useCheckButtonAction.d.ts +0 -7
- package/dist/esm/Form/hooks/useCheckButtonAction.d.ts.map +0 -1
- package/dist/esm/Form/hooks/useTrackUserInteraction.d.ts +0 -3
- package/dist/esm/Form/hooks/useTrackUserInteraction.d.ts.map +0 -1
- package/dist/esm/Form/index.d.ts +0 -53
- package/dist/esm/Form/index.d.ts.map +0 -1
- package/dist/esm/Form/logic.d.ts +0 -11
- package/dist/esm/Form/logic.d.ts.map +0 -1
- package/dist/esm/Form/tests/testMocks.d.ts +0 -7
- package/dist/esm/Form/tests/testMocks.d.ts.map +0 -1
- package/dist/esm/auth/LoginError.d.ts +0 -4
- package/dist/esm/auth/LoginError.d.ts.map +0 -1
- package/dist/esm/auth/LoginForm.d.ts +0 -30
- package/dist/esm/auth/LoginForm.d.ts.map +0 -1
- package/dist/esm/auth/internal/AuthIntegrationInterface.d.ts +0 -32
- package/dist/esm/auth/internal/AuthIntegrationInterface.d.ts.map +0 -1
- package/dist/esm/auth/internal/useFormAuth.d.ts +0 -11
- package/dist/esm/auth/internal/useFormAuth.d.ts.map +0 -1
- package/dist/esm/auth/internal/utils.d.ts +0 -14
- package/dist/esm/auth/internal/utils.d.ts.map +0 -1
- package/dist/esm/auth/useAuthClient.d.ts +0 -3
- package/dist/esm/auth/useAuthClient.d.ts.map +0 -1
- package/dist/esm/auth/utils.d.ts +0 -2
- package/dist/esm/auth/utils.d.ts.map +0 -1
- package/dist/esm/elements/basic/ButtonElement.d.ts +0 -3
- package/dist/esm/elements/basic/ButtonElement.d.ts.map +0 -1
- package/dist/esm/elements/basic/ImageElement.d.ts +0 -4
- package/dist/esm/elements/basic/ImageElement.d.ts.map +0 -1
- package/dist/esm/elements/basic/ProgressBarElement/components/SegmentBar.d.ts +0 -3
- package/dist/esm/elements/basic/ProgressBarElement/components/SegmentBar.d.ts.map +0 -1
- package/dist/esm/elements/basic/ProgressBarElement/components/SmoothBar.d.ts +0 -3
- package/dist/esm/elements/basic/ProgressBarElement/components/SmoothBar.d.ts.map +0 -1
- package/dist/esm/elements/basic/ProgressBarElement/index.d.ts +0 -3
- package/dist/esm/elements/basic/ProgressBarElement/index.d.ts.map +0 -1
- package/dist/esm/elements/basic/TextElement.d.ts +0 -3
- package/dist/esm/elements/basic/TextElement.d.ts.map +0 -1
- package/dist/esm/elements/basic/VideoElement.d.ts +0 -3
- package/dist/esm/elements/basic/VideoElement.d.ts.map +0 -1
- package/dist/esm/elements/components/ErrorInput.d.ts +0 -3
- package/dist/esm/elements/components/ErrorInput.d.ts.map +0 -1
- package/dist/esm/elements/components/FormControl.d.ts +0 -11
- package/dist/esm/elements/components/FormControl.d.ts.map +0 -1
- package/dist/esm/elements/components/FormOff.d.ts +0 -11
- package/dist/esm/elements/components/FormOff.d.ts.map +0 -1
- package/dist/esm/elements/components/InlineTooltip.d.ts +0 -12
- package/dist/esm/elements/components/InlineTooltip.d.ts.map +0 -1
- package/dist/esm/elements/components/LoaderContainer.d.ts +0 -11
- package/dist/esm/elements/components/LoaderContainer.d.ts.map +0 -1
- package/dist/esm/elements/components/Lottie.d.ts +0 -3
- package/dist/esm/elements/components/Lottie.d.ts.map +0 -1
- package/dist/esm/elements/components/Overlay.d.ts +0 -16
- package/dist/esm/elements/components/Overlay.d.ts.map +0 -1
- package/dist/esm/elements/components/Placeholder.d.ts +0 -2
- package/dist/esm/elements/components/Placeholder.d.ts.map +0 -1
- package/dist/esm/elements/components/QuikFormViewer/transforms/form.d.ts +0 -2
- package/dist/esm/elements/components/QuikFormViewer/transforms/form.d.ts.map +0 -1
- package/dist/esm/elements/components/QuikFormViewer/transforms/header.d.ts +0 -2
- package/dist/esm/elements/components/QuikFormViewer/transforms/header.d.ts.map +0 -1
- package/dist/esm/elements/components/QuikFormViewer/transforms/sidebar.d.ts +0 -7
- package/dist/esm/elements/components/QuikFormViewer/transforms/sidebar.d.ts.map +0 -1
- package/dist/esm/elements/components/QuikFormViewer.d.ts +0 -10
- package/dist/esm/elements/components/QuikFormViewer.d.ts.map +0 -1
- package/dist/esm/elements/components/Spinner.d.ts +0 -5
- package/dist/esm/elements/components/Spinner.d.ts.map +0 -1
- package/dist/esm/elements/components/TextHoverTooltip.d.ts +0 -9
- package/dist/esm/elements/components/TextHoverTooltip.d.ts.map +0 -1
- package/dist/esm/elements/components/TextNodes.d.ts +0 -5
- package/dist/esm/elements/components/TextNodes.d.ts.map +0 -1
- package/dist/esm/elements/components/Tooltip.d.ts +0 -8
- package/dist/esm/elements/components/Tooltip.d.ts.map +0 -1
- package/dist/esm/elements/components/Watermark.d.ts +0 -2
- package/dist/esm/elements/components/Watermark.d.ts.map +0 -1
- package/dist/esm/elements/components/data/countries.d.ts +0 -15
- package/dist/esm/elements/components/data/countries.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ae.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ae.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/au.d.ts +0 -6
- package/dist/esm/elements/components/data/states/au.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/br.d.ts +0 -6
- package/dist/esm/elements/components/data/states/br.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ca.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ca.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/cl.d.ts +0 -6
- package/dist/esm/elements/components/data/states/cl.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/cn.d.ts +0 -6
- package/dist/esm/elements/components/data/states/cn.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/co.d.ts +0 -6
- package/dist/esm/elements/components/data/states/co.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/eg.d.ts +0 -6
- package/dist/esm/elements/components/data/states/eg.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/es.d.ts +0 -6
- package/dist/esm/elements/components/data/states/es.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/gb.d.ts +0 -6
- package/dist/esm/elements/components/data/states/gb.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/gt.d.ts +0 -6
- package/dist/esm/elements/components/data/states/gt.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/hk.d.ts +0 -6
- package/dist/esm/elements/components/data/states/hk.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/id.d.ts +0 -6
- package/dist/esm/elements/components/data/states/id.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ie.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ie.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/in.d.ts +0 -6
- package/dist/esm/elements/components/data/states/in.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/index.d.ts +0 -7
- package/dist/esm/elements/components/data/states/index.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/it.d.ts +0 -6
- package/dist/esm/elements/components/data/states/it.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/jp.d.ts +0 -6
- package/dist/esm/elements/components/data/states/jp.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/kr.d.ts +0 -6
- package/dist/esm/elements/components/data/states/kr.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/mx.d.ts +0 -6
- package/dist/esm/elements/components/data/states/mx.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/my.d.ts +0 -6
- package/dist/esm/elements/components/data/states/my.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ng.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ng.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/nz.d.ts +0 -6
- package/dist/esm/elements/components/data/states/nz.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/pa.d.ts +0 -6
- package/dist/esm/elements/components/data/states/pa.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/pe.d.ts +0 -6
- package/dist/esm/elements/components/data/states/pe.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ph.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ph.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/pt.d.ts +0 -6
- package/dist/esm/elements/components/data/states/pt.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ro.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ro.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/ru.d.ts +0 -6
- package/dist/esm/elements/components/data/states/ru.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/th.d.ts +0 -6
- package/dist/esm/elements/components/data/states/th.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/us.d.ts +0 -10
- package/dist/esm/elements/components/data/states/us.d.ts.map +0 -1
- package/dist/esm/elements/components/data/states/za.d.ts +0 -6
- package/dist/esm/elements/components/data/states/za.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/Close.d.ts +0 -7
- package/dist/esm/elements/components/icons/Close.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/DiagonalArrow.d.ts +0 -6
- package/dist/esm/elements/components/icons/DiagonalArrow.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/DownloadIcon.d.ts +0 -5
- package/dist/esm/elements/components/icons/DownloadIcon.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/FileUpload.d.ts +0 -2
- package/dist/esm/elements/components/icons/FileUpload.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/FormClosed.d.ts +0 -6
- package/dist/esm/elements/components/icons/FormClosed.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/Heart.d.ts +0 -2
- package/dist/esm/elements/components/icons/Heart.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/Help.d.ts +0 -5
- package/dist/esm/elements/components/icons/Help.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/HideEyeIcon.d.ts +0 -6
- package/dist/esm/elements/components/icons/HideEyeIcon.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/LeftChevron.d.ts +0 -2
- package/dist/esm/elements/components/icons/LeftChevron.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/RatingStar.d.ts +0 -2
- package/dist/esm/elements/components/icons/RatingStar.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/RightChevron.d.ts +0 -2
- package/dist/esm/elements/components/icons/RightChevron.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/ShowEyeIcon.d.ts +0 -6
- package/dist/esm/elements/components/icons/ShowEyeIcon.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/Warning.d.ts +0 -6
- package/dist/esm/elements/components/icons/Warning.d.ts.map +0 -1
- package/dist/esm/elements/components/icons/index.d.ts +0 -12
- package/dist/esm/elements/components/icons/index.d.ts.map +0 -1
- package/dist/esm/elements/components/skeletons/FieldSkeleton.d.ts +0 -8
- package/dist/esm/elements/components/skeletons/FieldSkeleton.d.ts.map +0 -1
- package/dist/esm/elements/components/useBorder.d.ts +0 -22
- package/dist/esm/elements/components/useBorder.d.ts.map +0 -1
- package/dist/esm/elements/components/useTextEdit.d.ts +0 -7
- package/dist/esm/elements/components/useTextEdit.d.ts.map +0 -1
- package/dist/esm/elements/fields/AddressLine1Field/index.d.ts +0 -5
- package/dist/esm/elements/fields/AddressLine1Field/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/AddressLine1Field/tests/test-utils.d.ts +0 -35
- package/dist/esm/elements/fields/AddressLine1Field/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/AddressLine1Field/utils.d.ts +0 -3
- package/dist/esm/elements/fields/AddressLine1Field/utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/ButtonGroupField/index.d.ts +0 -3
- package/dist/esm/elements/fields/ButtonGroupField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/ButtonGroupField/tests/test-utils.d.ts +0 -47
- package/dist/esm/elements/fields/ButtonGroupField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/CheckboxField/index.d.ts +0 -6
- package/dist/esm/elements/fields/CheckboxField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/CheckboxField/tests/test-utils.d.ts +0 -21
- package/dist/esm/elements/fields/CheckboxField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/CheckboxGroupField/index.d.ts +0 -3
- package/dist/esm/elements/fields/CheckboxGroupField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +0 -61
- package/dist/esm/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/ColorPickerField/index.d.ts +0 -3
- package/dist/esm/elements/fields/ColorPickerField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/ColorPickerField/tests/test-utils.d.ts +0 -22
- package/dist/esm/elements/fields/ColorPickerField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/CustomField/Status.d.ts +0 -9
- package/dist/esm/elements/fields/CustomField/Status.d.ts.map +0 -1
- package/dist/esm/elements/fields/CustomField/index.d.ts +0 -4
- package/dist/esm/elements/fields/CustomField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/CustomField/template.d.ts +0 -2
- package/dist/esm/elements/fields/CustomField/template.d.ts.map +0 -1
- package/dist/esm/elements/fields/CustomField/useCustomComponentIframe.d.ts +0 -16
- package/dist/esm/elements/fields/CustomField/useCustomComponentIframe.d.ts.map +0 -1
- package/dist/esm/elements/fields/DateSelectorField/index.d.ts +0 -23
- package/dist/esm/elements/fields/DateSelectorField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/DateSelectorField/styles.d.ts +0 -5
- package/dist/esm/elements/fields/DateSelectorField/styles.d.ts.map +0 -1
- package/dist/esm/elements/fields/DateSelectorField/tests/test-utils.d.ts +0 -91
- package/dist/esm/elements/fields/DateSelectorField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/DateSelectorField/useDateLocale.d.ts +0 -8
- package/dist/esm/elements/fields/DateSelectorField/useDateLocale.d.ts.map +0 -1
- package/dist/esm/elements/fields/DateSelectorField/utils.d.ts +0 -4
- package/dist/esm/elements/fields/DateSelectorField/utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownField/index.d.ts +0 -2
- package/dist/esm/elements/fields/DropdownField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownField/tests/test-utils.d.ts +0 -29
- package/dist/esm/elements/fields/DropdownField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +0 -9
- package/dist/esm/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/createDropdownSelect.d.ts +0 -191
- package/dist/esm/elements/fields/DropdownMultiField/createDropdownSelect.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/index.d.ts +0 -2
- package/dist/esm/elements/fields/DropdownMultiField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/optionNormalization.d.ts +0 -10
- package/dist/esm/elements/fields/DropdownMultiField/optionNormalization.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/selectStyles.d.ts +0 -13
- package/dist/esm/elements/fields/DropdownMultiField/selectStyles.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/tests/test-utils.d.ts +0 -48
- package/dist/esm/elements/fields/DropdownMultiField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/types.d.ts +0 -50
- package/dist/esm/elements/fields/DropdownMultiField/types.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts +0 -47
- package/dist/esm/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts +0 -20
- package/dist/esm/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts +0 -47
- package/dist/esm/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/useDropdownOptions.d.ts +0 -25
- package/dist/esm/elements/fields/DropdownMultiField/useDropdownOptions.d.ts.map +0 -1
- package/dist/esm/elements/fields/DropdownMultiField/useSelectProps.d.ts +0 -113
- package/dist/esm/elements/fields/DropdownMultiField/useSelectProps.d.ts.map +0 -1
- package/dist/esm/elements/fields/FileUploadField/index.d.ts +0 -3
- package/dist/esm/elements/fields/FileUploadField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/FileUploadField/tests/test-utils.d.ts +0 -11
- package/dist/esm/elements/fields/FileUploadField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/MatrixField/index.d.ts +0 -3
- package/dist/esm/elements/fields/MatrixField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/MatrixField/tests/test-utils.d.ts +0 -68
- package/dist/esm/elements/fields/MatrixField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/PasswordField/index.d.ts +0 -5
- package/dist/esm/elements/fields/PasswordField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/PasswordField/tests/test-utils.d.ts +0 -31
- package/dist/esm/elements/fields/PasswordField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/PaymentMethodField.d.ts +0 -5
- package/dist/esm/elements/fields/PaymentMethodField.d.ts.map +0 -1
- package/dist/esm/elements/fields/PhoneField/CountryDropdown.d.ts +0 -4
- package/dist/esm/elements/fields/PhoneField/CountryDropdown.d.ts.map +0 -1
- package/dist/esm/elements/fields/PhoneField/exampleNumbers.d.ts +0 -3
- package/dist/esm/elements/fields/PhoneField/exampleNumbers.d.ts.map +0 -1
- package/dist/esm/elements/fields/PhoneField/index.d.ts +0 -5
- package/dist/esm/elements/fields/PhoneField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/PhoneField/tests/test-utils.d.ts +0 -87
- package/dist/esm/elements/fields/PhoneField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/PhoneField/timeZoneCountries.d.ts +0 -5
- package/dist/esm/elements/fields/PhoneField/timeZoneCountries.d.ts.map +0 -1
- package/dist/esm/elements/fields/PhoneField/validation.d.ts +0 -4
- package/dist/esm/elements/fields/PhoneField/validation.d.ts.map +0 -1
- package/dist/esm/elements/fields/PinInputField/index.d.ts +0 -3
- package/dist/esm/elements/fields/PinInputField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/PinInputField/tests/test-utils.d.ts +0 -80
- package/dist/esm/elements/fields/PinInputField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/PinInputField/useOTPListener.d.ts +0 -2
- package/dist/esm/elements/fields/PinInputField/useOTPListener.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/constants.d.ts +0 -15
- package/dist/esm/elements/fields/QRScanner/constants.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/hooks/use-device-rotation.d.ts +0 -12
- package/dist/esm/elements/fields/QRScanner/hooks/use-device-rotation.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/index.d.ts +0 -3
- package/dist/esm/elements/fields/QRScanner/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/qrLoader.d.ts +0 -3
- package/dist/esm/elements/fields/QRScanner/qrLoader.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/utils/local-storage.d.ts +0 -6
- package/dist/esm/elements/fields/QRScanner/utils/local-storage.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/utils/select-camera.d.ts +0 -10
- package/dist/esm/elements/fields/QRScanner/utils/select-camera.d.ts.map +0 -1
- package/dist/esm/elements/fields/QRScanner/utils/supports-zoom.d.ts +0 -9
- package/dist/esm/elements/fields/QRScanner/utils/supports-zoom.d.ts.map +0 -1
- package/dist/esm/elements/fields/RadioButtonGroupField/index.d.ts +0 -3
- package/dist/esm/elements/fields/RadioButtonGroupField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +0 -56
- package/dist/esm/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/RatingField/index.d.ts +0 -2
- package/dist/esm/elements/fields/RatingField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/RatingField/tests/test-utils.d.ts +0 -23
- package/dist/esm/elements/fields/RatingField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/SignatureField/components/SignatureCanvas.d.ts +0 -23
- package/dist/esm/elements/fields/SignatureField/components/SignatureCanvas.d.ts.map +0 -1
- package/dist/esm/elements/fields/SignatureField/components/SignatureModal.d.ts +0 -13
- package/dist/esm/elements/fields/SignatureField/components/SignatureModal.d.ts.map +0 -1
- package/dist/esm/elements/fields/SignatureField/components/utils.d.ts +0 -11
- package/dist/esm/elements/fields/SignatureField/components/utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/SignatureField/index.d.ts +0 -4
- package/dist/esm/elements/fields/SignatureField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/SignatureField/translation.d.ts +0 -18
- package/dist/esm/elements/fields/SignatureField/translation.d.ts.map +0 -1
- package/dist/esm/elements/fields/SliderField/index.d.ts +0 -2
- package/dist/esm/elements/fields/SliderField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/SliderField/styles.d.ts +0 -4
- package/dist/esm/elements/fields/SliderField/styles.d.ts.map +0 -1
- package/dist/esm/elements/fields/SliderField/tests/test-utils.d.ts +0 -23
- package/dist/esm/elements/fields/SliderField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/TextArea/index.d.ts +0 -5
- package/dist/esm/elements/fields/TextArea/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/TextArea/tests/test-utils.d.ts +0 -11
- package/dist/esm/elements/fields/TextArea/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/TextField/TextAutocomplete.d.ts +0 -16
- package/dist/esm/elements/fields/TextField/TextAutocomplete.d.ts.map +0 -1
- package/dist/esm/elements/fields/TextField/index.d.ts +0 -5
- package/dist/esm/elements/fields/TextField/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/TextField/tests/test-utils.d.ts +0 -11
- package/dist/esm/elements/fields/TextField/tests/test-utils.d.ts.map +0 -1
- package/dist/esm/elements/fields/index.d.ts +0 -28
- package/dist/esm/elements/fields/index.d.ts.map +0 -1
- package/dist/esm/elements/fields/shared/tests/field-test-utils.d.ts +0 -52
- package/dist/esm/elements/fields/shared/tests/field-test-utils.d.ts.map +0 -1
- package/dist/esm/elements/index.d.ts +0 -37
- package/dist/esm/elements/index.d.ts.map +0 -1
- package/dist/esm/elements/styles.d.ts +0 -65
- package/dist/esm/elements/styles.d.ts.map +0 -1
- package/dist/esm/elements/utils/fieldNormalization.d.ts +0 -13
- package/dist/esm/elements/utils/fieldNormalization.d.ts.map +0 -1
- package/dist/esm/fthry_FormControl.DDAZFoSo.js +0 -16
- package/dist/esm/fthry_InlineTooltip.DwsGjmPQ.js +0 -53
- package/dist/esm/fthry_Overlay.DkCTSVzA.js +0 -228
- package/dist/esm/fthry_PaymentMethodField.BgCHxykS.js +0 -925
- package/dist/esm/fthry_Placeholder.BZZOH4gv.js +0 -14
- package/dist/esm/fthry_ShowEyeIcon.FVKM_CUd.js +0 -13
- package/dist/esm/fthry_index.3ZKChQii.js +0 -95
- package/dist/esm/fthry_index.3bbiVByG.js +0 -135
- package/dist/esm/fthry_index.BvXP5j-k.js +0 -1449
- package/dist/esm/fthry_index.Bzcb4acF.js +0 -43
- package/dist/esm/fthry_index.C2vvoqul.js +0 -52
- package/dist/esm/fthry_index.C5QJmvNS.js +0 -94
- package/dist/esm/fthry_index.C7bZ41Dr.js +0 -70
- package/dist/esm/fthry_index.CLVY8zB_.js +0 -1193
- package/dist/esm/fthry_index.CRMp7Yug.js +0 -886
- package/dist/esm/fthry_index.Cfs1JnS1.js +0 -32
- package/dist/esm/fthry_index.CgxfpBL9.js +0 -1997
- package/dist/esm/fthry_index.ChZdNtIX.js +0 -46463
- package/dist/esm/fthry_index.Cvc2tCaE.js +0 -39
- package/dist/esm/fthry_index.DE7Dh4ea.js +0 -290
- package/dist/esm/fthry_index.DbQ9ZgfN.js +0 -16111
- package/dist/esm/fthry_index.DnA1YwIh.js +0 -8163
- package/dist/esm/fthry_index.DtApOSy5.js +0 -213
- package/dist/esm/fthry_index.IEBDVXp5.js +0 -128
- package/dist/esm/fthry_index.JlaR97bs.js +0 -253
- package/dist/esm/fthry_index.TccqLkT8.js +0 -1424
- package/dist/esm/fthry_index.nBx09C9l.js +0 -92
- package/dist/esm/fthry_index.pBPbV9ty.js +0 -510
- package/dist/esm/fthry_index.pN448hs2.js +0 -1159
- package/dist/esm/fthry_input.DgpAkI4d.js +0 -3779
- package/dist/esm/fthry_script.DNqAP9Nj.js +0 -157
- package/dist/esm/fthry_styles.BhmDd9Lo.js +0 -1654
- package/dist/esm/fthry_useElementSize.CuzKKLqH.js +0 -51
- package/dist/esm/fthry_useSalesforceSync.D3lKBSsD.js +0 -44
- package/dist/esm/fthry_webfontloader.Bo43XEHO.js +0 -57
- package/dist/esm/hooks/router.d.ts +0 -15
- package/dist/esm/hooks/router.d.ts.map +0 -1
- package/dist/esm/hooks/useElementSize.d.ts +0 -8
- package/dist/esm/hooks/useElementSize.d.ts.map +0 -1
- package/dist/esm/hooks/useLoader.d.ts +0 -36
- package/dist/esm/hooks/useLoader.d.ts.map +0 -1
- package/dist/esm/hooks/useMounted.d.ts +0 -3
- package/dist/esm/hooks/useMounted.d.ts.map +0 -1
- package/dist/esm/hooks/usePollFuserData.d.ts +0 -2
- package/dist/esm/hooks/usePollFuserData.d.ts.map +0 -1
- package/dist/esm/hooks/usePrevious.d.ts +0 -3
- package/dist/esm/hooks/usePrevious.d.ts.map +0 -1
- package/dist/esm/hooks/useSalesforceSync.d.ts +0 -11
- package/dist/esm/hooks/useSalesforceSync.d.ts.map +0 -1
- package/dist/esm/index.d.ts +0 -158
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -6
- package/dist/esm/integrations/alloy.d.ts +0 -3
- package/dist/esm/integrations/alloy.d.ts.map +0 -1
- package/dist/esm/integrations/amplitude.d.ts +0 -2
- package/dist/esm/integrations/amplitude.d.ts.map +0 -1
- package/dist/esm/integrations/argyle.d.ts +0 -3
- package/dist/esm/integrations/argyle.d.ts.map +0 -1
- package/dist/esm/integrations/calendly.d.ts +0 -3
- package/dist/esm/integrations/calendly.d.ts.map +0 -1
- package/dist/esm/integrations/firebase.d.ts +0 -43
- package/dist/esm/integrations/firebase.d.ts.map +0 -1
- package/dist/esm/integrations/flinks/index.d.ts +0 -11
- package/dist/esm/integrations/flinks/index.d.ts.map +0 -1
- package/dist/esm/integrations/flinks/utils.d.ts +0 -13
- package/dist/esm/integrations/flinks/utils.d.ts.map +0 -1
- package/dist/esm/integrations/googleAnalytics.d.ts +0 -4
- package/dist/esm/integrations/googleAnalytics.d.ts.map +0 -1
- package/dist/esm/integrations/googleTagManager.d.ts +0 -2
- package/dist/esm/integrations/googleTagManager.d.ts.map +0 -1
- package/dist/esm/integrations/heap.d.ts +0 -3
- package/dist/esm/integrations/heap.d.ts.map +0 -1
- package/dist/esm/integrations/intercom.d.ts +0 -3
- package/dist/esm/integrations/intercom.d.ts.map +0 -1
- package/dist/esm/integrations/mixpanel.d.ts +0 -3
- package/dist/esm/integrations/mixpanel.d.ts.map +0 -1
- package/dist/esm/integrations/persona.d.ts +0 -3
- package/dist/esm/integrations/persona.d.ts.map +0 -1
- package/dist/esm/integrations/plaid.d.ts +0 -3
- package/dist/esm/integrations/plaid.d.ts.map +0 -1
- package/dist/esm/integrations/recaptcha.d.ts +0 -3
- package/dist/esm/integrations/recaptcha.d.ts.map +0 -1
- package/dist/esm/integrations/rudderstack.d.ts +0 -4
- package/dist/esm/integrations/rudderstack.d.ts.map +0 -1
- package/dist/esm/integrations/schwab.d.ts +0 -2
- package/dist/esm/integrations/schwab.d.ts.map +0 -1
- package/dist/esm/integrations/segment.d.ts +0 -2
- package/dist/esm/integrations/segment.d.ts.map +0 -1
- package/dist/esm/integrations/stripe/Cart.d.ts +0 -20
- package/dist/esm/integrations/stripe/Cart.d.ts.map +0 -1
- package/dist/esm/integrations/stripe/SimplifiedProduct.d.ts +0 -40
- package/dist/esm/integrations/stripe/SimplifiedProduct.d.ts.map +0 -1
- package/dist/esm/integrations/stripe/index.d.ts +0 -2
- package/dist/esm/integrations/stripe/index.d.ts.map +0 -1
- package/dist/esm/integrations/stripe/stripe.d.ts +0 -98
- package/dist/esm/integrations/stripe/stripe.d.ts.map +0 -1
- package/dist/esm/integrations/stytch.d.ts +0 -20
- package/dist/esm/integrations/stytch.d.ts.map +0 -1
- package/dist/esm/integrations/trustedform.d.ts +0 -3
- package/dist/esm/integrations/trustedform.d.ts.map +0 -1
- package/dist/esm/integrations/utils.d.ts +0 -15
- package/dist/esm/integrations/utils.d.ts.map +0 -1
- package/dist/esm/setupTests.d.ts +0 -2
- package/dist/esm/setupTests.d.ts.map +0 -1
- package/dist/esm/types/Form.d.ts +0 -81
- package/dist/esm/types/Form.d.ts.map +0 -1
- package/dist/esm/utils/DangerouslySetHTMLContent.d.ts +0 -3
- package/dist/esm/utils/DangerouslySetHTMLContent.d.ts.map +0 -1
- package/dist/esm/utils/ShadowDomHtmlContent.d.ts +0 -9
- package/dist/esm/utils/ShadowDomHtmlContent.d.ts.map +0 -1
- package/dist/esm/utils/array.d.ts +0 -12
- package/dist/esm/utils/array.d.ts.map +0 -1
- package/dist/esm/utils/browser.d.ts +0 -24
- package/dist/esm/utils/browser.d.ts.map +0 -1
- package/dist/esm/utils/callbackQueue.d.ts +0 -11
- package/dist/esm/utils/callbackQueue.d.ts.map +0 -1
- package/dist/esm/utils/document.d.ts +0 -2
- package/dist/esm/utils/document.d.ts.map +0 -1
- package/dist/esm/utils/elementActions.d.ts +0 -56
- package/dist/esm/utils/elementActions.d.ts.map +0 -1
- package/dist/esm/utils/entities/Collaborator.d.ts +0 -15
- package/dist/esm/utils/entities/Collaborator.d.ts.map +0 -1
- package/dist/esm/utils/entities/Field.d.ts +0 -130
- package/dist/esm/utils/entities/Field.d.ts.map +0 -1
- package/dist/esm/utils/error.d.ts +0 -14
- package/dist/esm/utils/error.d.ts.map +0 -1
- package/dist/esm/utils/featheryClient/index.d.ts +0 -110
- package/dist/esm/utils/featheryClient/index.d.ts.map +0 -1
- package/dist/esm/utils/featheryClient/integrationClient.d.ts +0 -115
- package/dist/esm/utils/featheryClient/integrationClient.d.ts.map +0 -1
- package/dist/esm/utils/featheryClient/utils.d.ts +0 -2
- package/dist/esm/utils/featheryClient/utils.d.ts.map +0 -1
- package/dist/esm/utils/fieldHelperFunctions.d.ts +0 -71
- package/dist/esm/utils/fieldHelperFunctions.d.ts.map +0 -1
- package/dist/esm/utils/formContext.d.ts +0 -112
- package/dist/esm/utils/formContext.d.ts.map +0 -1
- package/dist/esm/utils/formHelperFunctions.d.ts +0 -45
- package/dist/esm/utils/formHelperFunctions.d.ts.map +0 -1
- package/dist/esm/utils/hideAndRepeats.d.ts +0 -28
- package/dist/esm/utils/hideAndRepeats.d.ts.map +0 -1
- package/dist/esm/utils/hydration.d.ts +0 -15
- package/dist/esm/utils/hydration.d.ts.map +0 -1
- package/dist/esm/utils/image.d.ts +0 -40
- package/dist/esm/utils/image.d.ts.map +0 -1
- package/dist/esm/utils/init.d.ts +0 -60
- package/dist/esm/utils/init.d.ts.map +0 -1
- package/dist/esm/utils/interactionState.d.ts +0 -5
- package/dist/esm/utils/interactionState.d.ts.map +0 -1
- package/dist/esm/utils/internalState.d.ts +0 -100
- package/dist/esm/utils/internalState.d.ts.map +0 -1
- package/dist/esm/utils/logic.d.ts +0 -51
- package/dist/esm/utils/logic.d.ts.map +0 -1
- package/dist/esm/utils/offlineRequestHandler.d.ts +0 -95
- package/dist/esm/utils/offlineRequestHandler.d.ts.map +0 -1
- package/dist/esm/utils/polyfills.d.ts +0 -3
- package/dist/esm/utils/polyfills.d.ts.map +0 -1
- package/dist/esm/utils/primitives.d.ts +0 -15
- package/dist/esm/utils/primitives.d.ts.map +0 -1
- package/dist/esm/utils/random.d.ts +0 -2
- package/dist/esm/utils/random.d.ts.map +0 -1
- package/dist/esm/utils/repeat.d.ts +0 -39
- package/dist/esm/utils/repeat.d.ts.map +0 -1
- package/dist/esm/utils/sensitiveActions.d.ts +0 -8
- package/dist/esm/utils/sensitiveActions.d.ts.map +0 -1
- package/dist/esm/utils/stepHelperFunctions.d.ts +0 -23
- package/dist/esm/utils/stepHelperFunctions.d.ts.map +0 -1
- package/dist/esm/utils/styles.d.ts +0 -6
- package/dist/esm/utils/styles.d.ts.map +0 -1
- package/dist/esm/utils/validation.d.ts +0 -59
- package/dist/esm/utils/validation.d.ts.map +0 -1
- package/umd/DropdownMultiField.898572b300ad673a38c9.js +0 -1
- /package/{dist/cjs → cjs}/Form/components/ActionToast/ToastItem.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/components/ActionToast/icons.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/components/ActionToast/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/components/ActionToast/useAIExtractionToast.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/components/DevNavBar.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/components/ReactPortal.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/definitions.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/CalendlyEmbed.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/Container/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/Element/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/Element/utils/address.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/Element/utils/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/StyledContainer/hooks/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/StyledContainer/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/StyledContainer/styles.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/StyledContainer/transform.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/StyledContainer/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/grid/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/hooks/useCheckButtonAction.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/hooks/useTrackUserInteraction.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/logic.d.ts +0 -0
- /package/{dist/cjs → cjs}/Form/tests/testMocks.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/LoginError.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/LoginForm.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/internal/AuthIntegrationInterface.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/internal/useFormAuth.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/internal/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/useAuthClient.d.ts +0 -0
- /package/{dist/cjs → cjs}/auth/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/ButtonElement.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/ImageElement.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/ProgressBarElement/components/SegmentBar.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/ProgressBarElement/components/SmoothBar.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/ProgressBarElement/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/TextElement.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/basic/VideoElement.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/ErrorInput.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/FormControl.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/FormOff.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/InlineTooltip.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/LoaderContainer.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/Lottie.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/Overlay.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/Placeholder.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/QuikFormViewer/transforms/form.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/QuikFormViewer/transforms/header.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/QuikFormViewer/transforms/sidebar.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/QuikFormViewer.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/Spinner.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/TextHoverTooltip.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/TextNodes.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/Tooltip.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/Watermark.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/countries.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ae.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/au.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/br.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ca.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/cl.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/cn.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/co.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/eg.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/es.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/gb.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/gt.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/hk.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/id.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ie.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/in.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/it.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/jp.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/kr.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/mx.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/my.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ng.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/nz.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/pa.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/pe.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ph.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/pt.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ro.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/ru.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/th.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/us.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/data/states/za.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/Close.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/DiagonalArrow.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/DownloadIcon.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/FileUpload.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/FormClosed.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/Heart.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/Help.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/HideEyeIcon.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/LeftChevron.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/RatingStar.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/RightChevron.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/ShowEyeIcon.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/Warning.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/icons/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/skeletons/FieldSkeleton.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/useBorder.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/components/useTextEdit.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/AddressLine1Field/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/AddressLine1Field/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/ButtonGroupField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/CheckboxField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/CheckboxGroupField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/ColorPickerField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/CustomField/Status.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/CustomField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/CustomField/template.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/CustomField/useCustomComponentIframe.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DateSelectorField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DateSelectorField/styles.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DateSelectorField/useDateLocale.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DateSelectorField/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/createDropdownSelect.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/optionNormalization.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/selectStyles.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/DropdownMultiField/useDropdownOptions.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/FileUploadField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/FileUploadField/tests/test-utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/MatrixField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PasswordField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PaymentMethodField.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PhoneField/CountryDropdown.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PhoneField/exampleNumbers.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PhoneField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PhoneField/timeZoneCountries.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PhoneField/validation.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PinInputField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/PinInputField/useOTPListener.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/constants.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/hooks/use-device-rotation.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/qrLoader.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/utils/local-storage.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/utils/select-camera.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/QRScanner/utils/supports-zoom.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/RadioButtonGroupField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/RatingField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SignatureField/components/SignatureCanvas.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SignatureField/components/SignatureModal.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SignatureField/components/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SignatureField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SignatureField/translation.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SliderField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/SliderField/styles.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/TextArea/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/TextArea/tests/test-utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/TextField/TextAutocomplete.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/TextField/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/TextField/tests/test-utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/fields/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/styles.d.ts +0 -0
- /package/{dist/cjs → cjs}/elements/utils/fieldNormalization.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/router.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/useElementSize.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/useLoader.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/useMounted.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/usePollFuserData.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/usePrevious.d.ts +0 -0
- /package/{dist/cjs → cjs}/hooks/useSalesforceSync.d.ts +0 -0
- /package/{dist/cjs → cjs}/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/alloy.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/amplitude.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/argyle.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/calendly.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/firebase.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/flinks/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/flinks/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/googleAnalytics.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/googleTagManager.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/heap.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/intercom.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/mixpanel.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/persona.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/plaid.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/rudderstack.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/schwab.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/segment.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/stripe/Cart.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/stripe/SimplifiedProduct.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/stripe/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/stripe/stripe.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/stytch.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/trustedform.d.ts +0 -0
- /package/{dist/cjs → cjs}/integrations/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/setupTests.d.ts +0 -0
- /package/{dist/cjs → cjs}/types/Form.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/DangerouslySetHTMLContent.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/ShadowDomHtmlContent.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/array.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/browser.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/callbackQueue.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/document.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/elementActions.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/entities/Collaborator.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/entities/Field.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/error.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/featheryClient/index.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/featheryClient/integrationClient.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/featheryClient/utils.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/fieldHelperFunctions.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/formContext.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/formHelperFunctions.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/hideAndRepeats.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/hydration.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/image.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/init.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/interactionState.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/internalState.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/logic.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/offlineRequestHandler.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/polyfills.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/primitives.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/random.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/repeat.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/sensitiveActions.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/stepHelperFunctions.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/styles.d.ts +0 -0
- /package/{dist/cjs → cjs}/utils/validation.d.ts +0 -0
|
@@ -0,0 +1,3779 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { P as PropTypes } from './fthry_index.CwsphGMI.js';
|
|
3
|
+
|
|
4
|
+
/** Checks if value is string */
|
|
5
|
+
function isString(str) {
|
|
6
|
+
return typeof str === 'string' || str instanceof String;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Checks if value is object */
|
|
10
|
+
function isObject(obj) {
|
|
11
|
+
var _obj$constructor;
|
|
12
|
+
return typeof obj === 'object' && obj != null && (obj == null || (_obj$constructor = obj.constructor) == null ? void 0 : _obj$constructor.name) === 'Object';
|
|
13
|
+
}
|
|
14
|
+
function pick(obj, keys) {
|
|
15
|
+
if (Array.isArray(keys)) return pick(obj, (_, k) => keys.includes(k));
|
|
16
|
+
return Object.entries(obj).reduce((acc, _ref) => {
|
|
17
|
+
let [k, v] = _ref;
|
|
18
|
+
if (keys(v, k)) acc[k] = v;
|
|
19
|
+
return acc;
|
|
20
|
+
}, {});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Direction */
|
|
24
|
+
const DIRECTION = {
|
|
25
|
+
NONE: 'NONE',
|
|
26
|
+
LEFT: 'LEFT',
|
|
27
|
+
FORCE_LEFT: 'FORCE_LEFT',
|
|
28
|
+
RIGHT: 'RIGHT',
|
|
29
|
+
FORCE_RIGHT: 'FORCE_RIGHT'
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** Direction */
|
|
33
|
+
|
|
34
|
+
function forceDirection(direction) {
|
|
35
|
+
switch (direction) {
|
|
36
|
+
case DIRECTION.LEFT:
|
|
37
|
+
return DIRECTION.FORCE_LEFT;
|
|
38
|
+
case DIRECTION.RIGHT:
|
|
39
|
+
return DIRECTION.FORCE_RIGHT;
|
|
40
|
+
default:
|
|
41
|
+
return direction;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Escapes regular expression control chars */
|
|
46
|
+
function escapeRegExp(str) {
|
|
47
|
+
return str.replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes
|
|
51
|
+
function objectIncludes(b, a) {
|
|
52
|
+
if (a === b) return true;
|
|
53
|
+
const arrA = Array.isArray(a),
|
|
54
|
+
arrB = Array.isArray(b);
|
|
55
|
+
let i;
|
|
56
|
+
if (arrA && arrB) {
|
|
57
|
+
if (a.length != b.length) return false;
|
|
58
|
+
for (i = 0; i < a.length; i++) if (!objectIncludes(a[i], b[i])) return false;
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
if (arrA != arrB) return false;
|
|
62
|
+
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
63
|
+
const dateA = a instanceof Date,
|
|
64
|
+
dateB = b instanceof Date;
|
|
65
|
+
if (dateA && dateB) return a.getTime() == b.getTime();
|
|
66
|
+
if (dateA != dateB) return false;
|
|
67
|
+
const regexpA = a instanceof RegExp,
|
|
68
|
+
regexpB = b instanceof RegExp;
|
|
69
|
+
if (regexpA && regexpB) return a.toString() == b.toString();
|
|
70
|
+
if (regexpA != regexpB) return false;
|
|
71
|
+
const keys = Object.keys(a);
|
|
72
|
+
// if (keys.length !== Object.keys(b).length) return false;
|
|
73
|
+
|
|
74
|
+
for (i = 0; i < keys.length; i++) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
|
|
75
|
+
for (i = 0; i < keys.length; i++) if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;
|
|
76
|
+
return true;
|
|
77
|
+
} else if (a && b && typeof a === 'function' && typeof b === 'function') {
|
|
78
|
+
return a.toString() === b.toString();
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Provides details of changing input */
|
|
84
|
+
class ActionDetails {
|
|
85
|
+
/** Current input value */
|
|
86
|
+
|
|
87
|
+
/** Current cursor position */
|
|
88
|
+
|
|
89
|
+
/** Old input value */
|
|
90
|
+
|
|
91
|
+
/** Old selection */
|
|
92
|
+
|
|
93
|
+
constructor(opts) {
|
|
94
|
+
Object.assign(this, opts);
|
|
95
|
+
|
|
96
|
+
// double check if left part was changed (autofilling, other non-standard input triggers)
|
|
97
|
+
while (this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos)) {
|
|
98
|
+
--this.oldSelection.start;
|
|
99
|
+
}
|
|
100
|
+
if (this.insertedCount) {
|
|
101
|
+
// double check right part
|
|
102
|
+
while (this.value.slice(this.cursorPos) !== this.oldValue.slice(this.oldSelection.end)) {
|
|
103
|
+
if (this.value.length - this.cursorPos < this.oldValue.length - this.oldSelection.end) ++this.oldSelection.end;else ++this.cursorPos;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Start changing position */
|
|
109
|
+
get startChangePos() {
|
|
110
|
+
return Math.min(this.cursorPos, this.oldSelection.start);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Inserted symbols count */
|
|
114
|
+
get insertedCount() {
|
|
115
|
+
return this.cursorPos - this.startChangePos;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/** Inserted symbols */
|
|
119
|
+
get inserted() {
|
|
120
|
+
return this.value.substr(this.startChangePos, this.insertedCount);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** Removed symbols count */
|
|
124
|
+
get removedCount() {
|
|
125
|
+
// Math.max for opposite operation
|
|
126
|
+
return Math.max(this.oldSelection.end - this.startChangePos ||
|
|
127
|
+
// for Delete
|
|
128
|
+
this.oldValue.length - this.value.length, 0);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Removed symbols */
|
|
132
|
+
get removed() {
|
|
133
|
+
return this.oldValue.substr(this.startChangePos, this.removedCount);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** Unchanged head symbols */
|
|
137
|
+
get head() {
|
|
138
|
+
return this.value.substring(0, this.startChangePos);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/** Unchanged tail symbols */
|
|
142
|
+
get tail() {
|
|
143
|
+
return this.value.substring(this.startChangePos + this.insertedCount);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** Remove direction */
|
|
147
|
+
get removeDirection() {
|
|
148
|
+
if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;
|
|
149
|
+
|
|
150
|
+
// align right if delete at right
|
|
151
|
+
return (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) &&
|
|
152
|
+
// if not range removed (event with backspace)
|
|
153
|
+
this.oldSelection.end === this.oldSelection.start ? DIRECTION.RIGHT : DIRECTION.LEFT;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** Applies mask on element */
|
|
158
|
+
function IMask(el, opts) {
|
|
159
|
+
// currently available only for input-like elements
|
|
160
|
+
return new IMask.InputMask(el, opts);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754
|
|
164
|
+
// export function maskedClass(mask: string): typeof MaskedPattern;
|
|
165
|
+
// export function maskedClass(mask: DateConstructor): typeof MaskedDate;
|
|
166
|
+
// export function maskedClass(mask: NumberConstructor): typeof MaskedNumber;
|
|
167
|
+
// export function maskedClass(mask: Array<any> | ArrayConstructor): typeof MaskedDynamic;
|
|
168
|
+
// export function maskedClass(mask: MaskedDate): typeof MaskedDate;
|
|
169
|
+
// export function maskedClass(mask: MaskedNumber): typeof MaskedNumber;
|
|
170
|
+
// export function maskedClass(mask: MaskedEnum): typeof MaskedEnum;
|
|
171
|
+
// export function maskedClass(mask: MaskedRange): typeof MaskedRange;
|
|
172
|
+
// export function maskedClass(mask: MaskedRegExp): typeof MaskedRegExp;
|
|
173
|
+
// export function maskedClass(mask: MaskedFunction): typeof MaskedFunction;
|
|
174
|
+
// export function maskedClass(mask: MaskedPattern): typeof MaskedPattern;
|
|
175
|
+
// export function maskedClass(mask: MaskedDynamic): typeof MaskedDynamic;
|
|
176
|
+
// export function maskedClass(mask: Masked): typeof Masked;
|
|
177
|
+
// export function maskedClass(mask: typeof Masked): typeof Masked;
|
|
178
|
+
// export function maskedClass(mask: typeof MaskedDate): typeof MaskedDate;
|
|
179
|
+
// export function maskedClass(mask: typeof MaskedNumber): typeof MaskedNumber;
|
|
180
|
+
// export function maskedClass(mask: typeof MaskedEnum): typeof MaskedEnum;
|
|
181
|
+
// export function maskedClass(mask: typeof MaskedRange): typeof MaskedRange;
|
|
182
|
+
// export function maskedClass(mask: typeof MaskedRegExp): typeof MaskedRegExp;
|
|
183
|
+
// export function maskedClass(mask: typeof MaskedFunction): typeof MaskedFunction;
|
|
184
|
+
// export function maskedClass(mask: typeof MaskedPattern): typeof MaskedPattern;
|
|
185
|
+
// export function maskedClass(mask: typeof MaskedDynamic): typeof MaskedDynamic;
|
|
186
|
+
// export function maskedClass<Mask extends typeof Masked> (mask: Mask): Mask;
|
|
187
|
+
// export function maskedClass(mask: RegExp): typeof MaskedRegExp;
|
|
188
|
+
// export function maskedClass(mask: (value: string, ...args: any[]) => boolean): typeof MaskedFunction;
|
|
189
|
+
|
|
190
|
+
/** Get Masked class by mask type */
|
|
191
|
+
function maskedClass(mask) /* TODO */{
|
|
192
|
+
if (mask == null) throw new Error('mask property should be defined');
|
|
193
|
+
if (mask instanceof RegExp) return IMask.MaskedRegExp;
|
|
194
|
+
if (isString(mask)) return IMask.MaskedPattern;
|
|
195
|
+
if (mask === Date) return IMask.MaskedDate;
|
|
196
|
+
if (mask === Number) return IMask.MaskedNumber;
|
|
197
|
+
if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;
|
|
198
|
+
if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;
|
|
199
|
+
if (IMask.Masked && mask instanceof IMask.Masked) return mask.constructor;
|
|
200
|
+
if (mask instanceof Function) return IMask.MaskedFunction;
|
|
201
|
+
console.warn('Mask not found for mask', mask); // eslint-disable-line no-console
|
|
202
|
+
return IMask.Masked;
|
|
203
|
+
}
|
|
204
|
+
function normalizeOpts(opts) {
|
|
205
|
+
if (!opts) throw new Error('Options in not defined');
|
|
206
|
+
if (IMask.Masked) {
|
|
207
|
+
if (opts.prototype instanceof IMask.Masked) return {
|
|
208
|
+
mask: opts
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
/*
|
|
212
|
+
handle cases like:
|
|
213
|
+
1) opts = Masked
|
|
214
|
+
2) opts = { mask: Masked, ...instanceOpts }
|
|
215
|
+
*/
|
|
216
|
+
const {
|
|
217
|
+
mask = undefined,
|
|
218
|
+
...instanceOpts
|
|
219
|
+
} = opts instanceof IMask.Masked ? {
|
|
220
|
+
mask: opts
|
|
221
|
+
} : isObject(opts) && opts.mask instanceof IMask.Masked ? opts : {};
|
|
222
|
+
if (mask) {
|
|
223
|
+
const _mask = mask.mask;
|
|
224
|
+
return {
|
|
225
|
+
...pick(mask, (_, k) => !k.startsWith('_')),
|
|
226
|
+
mask: mask.constructor,
|
|
227
|
+
_mask,
|
|
228
|
+
...instanceOpts
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (!isObject(opts)) return {
|
|
233
|
+
mask: opts
|
|
234
|
+
};
|
|
235
|
+
return {
|
|
236
|
+
...opts
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754
|
|
241
|
+
|
|
242
|
+
// From masked
|
|
243
|
+
// export default function createMask<Opts extends Masked, ReturnMasked=Opts> (opts: Opts): ReturnMasked;
|
|
244
|
+
// // From masked class
|
|
245
|
+
// export default function createMask<Opts extends MaskedOptions<typeof Masked>, ReturnMasked extends Masked=InstanceType<Opts['mask']>> (opts: Opts): ReturnMasked;
|
|
246
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedDate>, ReturnMasked extends MaskedDate=MaskedDate<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
247
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedNumber>, ReturnMasked extends MaskedNumber=MaskedNumber<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
248
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedEnum>, ReturnMasked extends MaskedEnum=MaskedEnum<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
249
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedRange>, ReturnMasked extends MaskedRange=MaskedRange<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
250
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedRegExp>, ReturnMasked extends MaskedRegExp=MaskedRegExp<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
251
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedFunction>, ReturnMasked extends MaskedFunction=MaskedFunction<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
252
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedPattern>, ReturnMasked extends MaskedPattern=MaskedPattern<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
253
|
+
// export default function createMask<Opts extends MaskedOptions<typeof MaskedDynamic>, ReturnMasked extends MaskedDynamic=MaskedDynamic<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
254
|
+
// // From mask opts
|
|
255
|
+
// export default function createMask<Opts extends MaskedOptions<Masked>, ReturnMasked=Opts extends MaskedOptions<infer M> ? M : never> (opts: Opts): ReturnMasked;
|
|
256
|
+
// export default function createMask<Opts extends MaskedNumberOptions, ReturnMasked extends MaskedNumber=MaskedNumber<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
257
|
+
// export default function createMask<Opts extends MaskedDateFactoryOptions, ReturnMasked extends MaskedDate=MaskedDate<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
258
|
+
// export default function createMask<Opts extends MaskedEnumOptions, ReturnMasked extends MaskedEnum=MaskedEnum<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
259
|
+
// export default function createMask<Opts extends MaskedRangeOptions, ReturnMasked extends MaskedRange=MaskedRange<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
260
|
+
// export default function createMask<Opts extends MaskedPatternOptions, ReturnMasked extends MaskedPattern=MaskedPattern<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
261
|
+
// export default function createMask<Opts extends MaskedDynamicOptions, ReturnMasked extends MaskedDynamic=MaskedDynamic<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
262
|
+
// export default function createMask<Opts extends MaskedOptions<RegExp>, ReturnMasked extends MaskedRegExp=MaskedRegExp<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
263
|
+
// export default function createMask<Opts extends MaskedOptions<Function>, ReturnMasked extends MaskedFunction=MaskedFunction<Opts['parent']>> (opts: Opts): ReturnMasked;
|
|
264
|
+
|
|
265
|
+
/** Creates new {@link Masked} depending on mask type */
|
|
266
|
+
function createMask(opts) {
|
|
267
|
+
if (IMask.Masked && opts instanceof IMask.Masked) return opts;
|
|
268
|
+
const nOpts = normalizeOpts(opts);
|
|
269
|
+
const MaskedClass = maskedClass(nOpts.mask);
|
|
270
|
+
if (!MaskedClass) throw new Error("Masked class is not found for provided mask " + nOpts.mask + ", appropriate module needs to be imported manually before creating mask.");
|
|
271
|
+
if (nOpts.mask === MaskedClass) delete nOpts.mask;
|
|
272
|
+
if (nOpts._mask) {
|
|
273
|
+
nOpts.mask = nOpts._mask;
|
|
274
|
+
delete nOpts._mask;
|
|
275
|
+
}
|
|
276
|
+
return new MaskedClass(nOpts);
|
|
277
|
+
}
|
|
278
|
+
IMask.createMask = createMask;
|
|
279
|
+
|
|
280
|
+
/** Generic element API to use with mask */
|
|
281
|
+
class MaskElement {
|
|
282
|
+
/** */
|
|
283
|
+
|
|
284
|
+
/** */
|
|
285
|
+
|
|
286
|
+
/** */
|
|
287
|
+
|
|
288
|
+
/** Safely returns selection start */
|
|
289
|
+
get selectionStart() {
|
|
290
|
+
let start;
|
|
291
|
+
try {
|
|
292
|
+
start = this._unsafeSelectionStart;
|
|
293
|
+
} catch {}
|
|
294
|
+
return start != null ? start : this.value.length;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Safely returns selection end */
|
|
298
|
+
get selectionEnd() {
|
|
299
|
+
let end;
|
|
300
|
+
try {
|
|
301
|
+
end = this._unsafeSelectionEnd;
|
|
302
|
+
} catch {}
|
|
303
|
+
return end != null ? end : this.value.length;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** Safely sets element selection */
|
|
307
|
+
select(start, end) {
|
|
308
|
+
if (start == null || end == null || start === this.selectionStart && end === this.selectionEnd) return;
|
|
309
|
+
try {
|
|
310
|
+
this._unsafeSelect(start, end);
|
|
311
|
+
} catch {}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/** */
|
|
315
|
+
get isActive() {
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
/** */
|
|
319
|
+
|
|
320
|
+
/** */
|
|
321
|
+
|
|
322
|
+
/** */
|
|
323
|
+
}
|
|
324
|
+
IMask.MaskElement = MaskElement;
|
|
325
|
+
|
|
326
|
+
const KEY_Z = 90;
|
|
327
|
+
const KEY_Y = 89;
|
|
328
|
+
|
|
329
|
+
/** Bridge between HTMLElement and {@link Masked} */
|
|
330
|
+
class HTMLMaskElement extends MaskElement {
|
|
331
|
+
/** HTMLElement to use mask on */
|
|
332
|
+
|
|
333
|
+
constructor(input) {
|
|
334
|
+
super();
|
|
335
|
+
this.input = input;
|
|
336
|
+
this._onKeydown = this._onKeydown.bind(this);
|
|
337
|
+
this._onInput = this._onInput.bind(this);
|
|
338
|
+
this._onBeforeinput = this._onBeforeinput.bind(this);
|
|
339
|
+
this._onCompositionEnd = this._onCompositionEnd.bind(this);
|
|
340
|
+
}
|
|
341
|
+
get rootElement() {
|
|
342
|
+
var _this$input$getRootNo, _this$input$getRootNo2, _this$input;
|
|
343
|
+
return (_this$input$getRootNo = (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) == null ? void 0 : _this$input$getRootNo2.call(_this$input)) != null ? _this$input$getRootNo : document;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/** Is element in focus */
|
|
347
|
+
get isActive() {
|
|
348
|
+
return this.input === this.rootElement.activeElement;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/** Binds HTMLElement events to mask internal events */
|
|
352
|
+
bindEvents(handlers) {
|
|
353
|
+
this.input.addEventListener('keydown', this._onKeydown);
|
|
354
|
+
this.input.addEventListener('input', this._onInput);
|
|
355
|
+
this.input.addEventListener('beforeinput', this._onBeforeinput);
|
|
356
|
+
this.input.addEventListener('compositionend', this._onCompositionEnd);
|
|
357
|
+
this.input.addEventListener('drop', handlers.drop);
|
|
358
|
+
this.input.addEventListener('click', handlers.click);
|
|
359
|
+
this.input.addEventListener('focus', handlers.focus);
|
|
360
|
+
this.input.addEventListener('blur', handlers.commit);
|
|
361
|
+
this._handlers = handlers;
|
|
362
|
+
}
|
|
363
|
+
_onKeydown(e) {
|
|
364
|
+
if (this._handlers.redo && (e.keyCode === KEY_Z && e.shiftKey && (e.metaKey || e.ctrlKey) || e.keyCode === KEY_Y && e.ctrlKey)) {
|
|
365
|
+
e.preventDefault();
|
|
366
|
+
return this._handlers.redo(e);
|
|
367
|
+
}
|
|
368
|
+
if (this._handlers.undo && e.keyCode === KEY_Z && (e.metaKey || e.ctrlKey)) {
|
|
369
|
+
e.preventDefault();
|
|
370
|
+
return this._handlers.undo(e);
|
|
371
|
+
}
|
|
372
|
+
if (!e.isComposing) this._handlers.selectionChange(e);
|
|
373
|
+
}
|
|
374
|
+
_onBeforeinput(e) {
|
|
375
|
+
if (e.inputType === 'historyUndo' && this._handlers.undo) {
|
|
376
|
+
e.preventDefault();
|
|
377
|
+
return this._handlers.undo(e);
|
|
378
|
+
}
|
|
379
|
+
if (e.inputType === 'historyRedo' && this._handlers.redo) {
|
|
380
|
+
e.preventDefault();
|
|
381
|
+
return this._handlers.redo(e);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
_onCompositionEnd(e) {
|
|
385
|
+
this._handlers.input(e);
|
|
386
|
+
}
|
|
387
|
+
_onInput(e) {
|
|
388
|
+
if (!e.isComposing) this._handlers.input(e);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/** Unbinds HTMLElement events to mask internal events */
|
|
392
|
+
unbindEvents() {
|
|
393
|
+
this.input.removeEventListener('keydown', this._onKeydown);
|
|
394
|
+
this.input.removeEventListener('input', this._onInput);
|
|
395
|
+
this.input.removeEventListener('beforeinput', this._onBeforeinput);
|
|
396
|
+
this.input.removeEventListener('compositionend', this._onCompositionEnd);
|
|
397
|
+
this.input.removeEventListener('drop', this._handlers.drop);
|
|
398
|
+
this.input.removeEventListener('click', this._handlers.click);
|
|
399
|
+
this.input.removeEventListener('focus', this._handlers.focus);
|
|
400
|
+
this.input.removeEventListener('blur', this._handlers.commit);
|
|
401
|
+
this._handlers = {};
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
IMask.HTMLMaskElement = HTMLMaskElement;
|
|
405
|
+
|
|
406
|
+
/** Bridge between InputElement and {@link Masked} */
|
|
407
|
+
class HTMLInputMaskElement extends HTMLMaskElement {
|
|
408
|
+
/** InputElement to use mask on */
|
|
409
|
+
|
|
410
|
+
constructor(input) {
|
|
411
|
+
super(input);
|
|
412
|
+
this.input = input;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/** Returns InputElement selection start */
|
|
416
|
+
get _unsafeSelectionStart() {
|
|
417
|
+
return this.input.selectionStart != null ? this.input.selectionStart : this.value.length;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/** Returns InputElement selection end */
|
|
421
|
+
get _unsafeSelectionEnd() {
|
|
422
|
+
return this.input.selectionEnd;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/** Sets InputElement selection */
|
|
426
|
+
_unsafeSelect(start, end) {
|
|
427
|
+
this.input.setSelectionRange(start, end);
|
|
428
|
+
}
|
|
429
|
+
get value() {
|
|
430
|
+
return this.input.value;
|
|
431
|
+
}
|
|
432
|
+
set value(value) {
|
|
433
|
+
this.input.value = value;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
IMask.HTMLMaskElement = HTMLMaskElement;
|
|
437
|
+
|
|
438
|
+
class HTMLContenteditableMaskElement extends HTMLMaskElement {
|
|
439
|
+
/** Returns HTMLElement selection start */
|
|
440
|
+
get _unsafeSelectionStart() {
|
|
441
|
+
const root = this.rootElement;
|
|
442
|
+
const selection = root.getSelection && root.getSelection();
|
|
443
|
+
const anchorOffset = selection && selection.anchorOffset;
|
|
444
|
+
const focusOffset = selection && selection.focusOffset;
|
|
445
|
+
if (focusOffset == null || anchorOffset == null || anchorOffset < focusOffset) {
|
|
446
|
+
return anchorOffset;
|
|
447
|
+
}
|
|
448
|
+
return focusOffset;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/** Returns HTMLElement selection end */
|
|
452
|
+
get _unsafeSelectionEnd() {
|
|
453
|
+
const root = this.rootElement;
|
|
454
|
+
const selection = root.getSelection && root.getSelection();
|
|
455
|
+
const anchorOffset = selection && selection.anchorOffset;
|
|
456
|
+
const focusOffset = selection && selection.focusOffset;
|
|
457
|
+
if (focusOffset == null || anchorOffset == null || anchorOffset > focusOffset) {
|
|
458
|
+
return anchorOffset;
|
|
459
|
+
}
|
|
460
|
+
return focusOffset;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/** Sets HTMLElement selection */
|
|
464
|
+
_unsafeSelect(start, end) {
|
|
465
|
+
if (!this.rootElement.createRange) return;
|
|
466
|
+
const range = this.rootElement.createRange();
|
|
467
|
+
range.setStart(this.input.firstChild || this.input, start);
|
|
468
|
+
range.setEnd(this.input.lastChild || this.input, end);
|
|
469
|
+
const root = this.rootElement;
|
|
470
|
+
const selection = root.getSelection && root.getSelection();
|
|
471
|
+
if (selection) {
|
|
472
|
+
selection.removeAllRanges();
|
|
473
|
+
selection.addRange(range);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/** HTMLElement value */
|
|
478
|
+
get value() {
|
|
479
|
+
return this.input.textContent || '';
|
|
480
|
+
}
|
|
481
|
+
set value(value) {
|
|
482
|
+
this.input.textContent = value;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
IMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;
|
|
486
|
+
|
|
487
|
+
class InputHistory {
|
|
488
|
+
constructor() {
|
|
489
|
+
this.states = [];
|
|
490
|
+
this.currentIndex = 0;
|
|
491
|
+
}
|
|
492
|
+
get currentState() {
|
|
493
|
+
return this.states[this.currentIndex];
|
|
494
|
+
}
|
|
495
|
+
get isEmpty() {
|
|
496
|
+
return this.states.length === 0;
|
|
497
|
+
}
|
|
498
|
+
push(state) {
|
|
499
|
+
// if current index points before the last element then remove the future
|
|
500
|
+
if (this.currentIndex < this.states.length - 1) this.states.length = this.currentIndex + 1;
|
|
501
|
+
this.states.push(state);
|
|
502
|
+
if (this.states.length > InputHistory.MAX_LENGTH) this.states.shift();
|
|
503
|
+
this.currentIndex = this.states.length - 1;
|
|
504
|
+
}
|
|
505
|
+
go(steps) {
|
|
506
|
+
this.currentIndex = Math.min(Math.max(this.currentIndex + steps, 0), this.states.length - 1);
|
|
507
|
+
return this.currentState;
|
|
508
|
+
}
|
|
509
|
+
undo() {
|
|
510
|
+
return this.go(-1);
|
|
511
|
+
}
|
|
512
|
+
redo() {
|
|
513
|
+
return this.go(1);
|
|
514
|
+
}
|
|
515
|
+
clear() {
|
|
516
|
+
this.states.length = 0;
|
|
517
|
+
this.currentIndex = 0;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
InputHistory.MAX_LENGTH = 100;
|
|
521
|
+
|
|
522
|
+
/** Listens to element events and controls changes between element and {@link Masked} */
|
|
523
|
+
class InputMask {
|
|
524
|
+
/**
|
|
525
|
+
View element
|
|
526
|
+
*/
|
|
527
|
+
|
|
528
|
+
/** Internal {@link Masked} model */
|
|
529
|
+
|
|
530
|
+
constructor(el, opts) {
|
|
531
|
+
this.el = el instanceof MaskElement ? el : el.isContentEditable && el.tagName !== 'INPUT' && el.tagName !== 'TEXTAREA' ? new HTMLContenteditableMaskElement(el) : new HTMLInputMaskElement(el);
|
|
532
|
+
this.masked = createMask(opts);
|
|
533
|
+
this._listeners = {};
|
|
534
|
+
this._value = '';
|
|
535
|
+
this._unmaskedValue = '';
|
|
536
|
+
this._rawInputValue = '';
|
|
537
|
+
this.history = new InputHistory();
|
|
538
|
+
this._saveSelection = this._saveSelection.bind(this);
|
|
539
|
+
this._onInput = this._onInput.bind(this);
|
|
540
|
+
this._onChange = this._onChange.bind(this);
|
|
541
|
+
this._onDrop = this._onDrop.bind(this);
|
|
542
|
+
this._onFocus = this._onFocus.bind(this);
|
|
543
|
+
this._onClick = this._onClick.bind(this);
|
|
544
|
+
this._onUndo = this._onUndo.bind(this);
|
|
545
|
+
this._onRedo = this._onRedo.bind(this);
|
|
546
|
+
this.alignCursor = this.alignCursor.bind(this);
|
|
547
|
+
this.alignCursorFriendly = this.alignCursorFriendly.bind(this);
|
|
548
|
+
this._bindEvents();
|
|
549
|
+
|
|
550
|
+
// refresh
|
|
551
|
+
this.updateValue();
|
|
552
|
+
this._onChange();
|
|
553
|
+
}
|
|
554
|
+
maskEquals(mask) {
|
|
555
|
+
var _this$masked;
|
|
556
|
+
return mask == null || ((_this$masked = this.masked) == null ? void 0 : _this$masked.maskEquals(mask));
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
/** Masked */
|
|
560
|
+
get mask() {
|
|
561
|
+
return this.masked.mask;
|
|
562
|
+
}
|
|
563
|
+
set mask(mask) {
|
|
564
|
+
if (this.maskEquals(mask)) return;
|
|
565
|
+
if (!(mask instanceof IMask.Masked) && this.masked.constructor === maskedClass(mask)) {
|
|
566
|
+
// TODO "any" no idea
|
|
567
|
+
this.masked.updateOptions({
|
|
568
|
+
mask
|
|
569
|
+
});
|
|
570
|
+
return;
|
|
571
|
+
}
|
|
572
|
+
const masked = mask instanceof IMask.Masked ? mask : createMask({
|
|
573
|
+
mask
|
|
574
|
+
});
|
|
575
|
+
masked.unmaskedValue = this.masked.unmaskedValue;
|
|
576
|
+
this.masked = masked;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/** Raw value */
|
|
580
|
+
get value() {
|
|
581
|
+
return this._value;
|
|
582
|
+
}
|
|
583
|
+
set value(str) {
|
|
584
|
+
if (this.value === str) return;
|
|
585
|
+
this.masked.value = str;
|
|
586
|
+
this.updateControl('auto');
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
/** Unmasked value */
|
|
590
|
+
get unmaskedValue() {
|
|
591
|
+
return this._unmaskedValue;
|
|
592
|
+
}
|
|
593
|
+
set unmaskedValue(str) {
|
|
594
|
+
if (this.unmaskedValue === str) return;
|
|
595
|
+
this.masked.unmaskedValue = str;
|
|
596
|
+
this.updateControl('auto');
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/** Raw input value */
|
|
600
|
+
get rawInputValue() {
|
|
601
|
+
return this._rawInputValue;
|
|
602
|
+
}
|
|
603
|
+
set rawInputValue(str) {
|
|
604
|
+
if (this.rawInputValue === str) return;
|
|
605
|
+
this.masked.rawInputValue = str;
|
|
606
|
+
this.updateControl();
|
|
607
|
+
this.alignCursor();
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
/** Typed unmasked value */
|
|
611
|
+
get typedValue() {
|
|
612
|
+
return this.masked.typedValue;
|
|
613
|
+
}
|
|
614
|
+
set typedValue(val) {
|
|
615
|
+
if (this.masked.typedValueEquals(val)) return;
|
|
616
|
+
this.masked.typedValue = val;
|
|
617
|
+
this.updateControl('auto');
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
/** Display value */
|
|
621
|
+
get displayValue() {
|
|
622
|
+
return this.masked.displayValue;
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
/** Starts listening to element events */
|
|
626
|
+
_bindEvents() {
|
|
627
|
+
this.el.bindEvents({
|
|
628
|
+
selectionChange: this._saveSelection,
|
|
629
|
+
input: this._onInput,
|
|
630
|
+
drop: this._onDrop,
|
|
631
|
+
click: this._onClick,
|
|
632
|
+
focus: this._onFocus,
|
|
633
|
+
commit: this._onChange,
|
|
634
|
+
undo: this._onUndo,
|
|
635
|
+
redo: this._onRedo
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
/** Stops listening to element events */
|
|
640
|
+
_unbindEvents() {
|
|
641
|
+
if (this.el) this.el.unbindEvents();
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
/** Fires custom event */
|
|
645
|
+
_fireEvent(ev, e) {
|
|
646
|
+
const listeners = this._listeners[ev];
|
|
647
|
+
if (!listeners) return;
|
|
648
|
+
listeners.forEach(l => l(e));
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
/** Current selection start */
|
|
652
|
+
get selectionStart() {
|
|
653
|
+
return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
/** Current cursor position */
|
|
657
|
+
get cursorPos() {
|
|
658
|
+
return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;
|
|
659
|
+
}
|
|
660
|
+
set cursorPos(pos) {
|
|
661
|
+
if (!this.el || !this.el.isActive) return;
|
|
662
|
+
this.el.select(pos, pos);
|
|
663
|
+
this._saveSelection();
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
/** Stores current selection */
|
|
667
|
+
_saveSelection( /* ev */
|
|
668
|
+
) {
|
|
669
|
+
if (this.displayValue !== this.el.value) {
|
|
670
|
+
console.warn('Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'); // eslint-disable-line no-console
|
|
671
|
+
}
|
|
672
|
+
this._selection = {
|
|
673
|
+
start: this.selectionStart,
|
|
674
|
+
end: this.cursorPos
|
|
675
|
+
};
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
/** Syncronizes model value from view */
|
|
679
|
+
updateValue() {
|
|
680
|
+
this.masked.value = this.el.value;
|
|
681
|
+
this._value = this.masked.value;
|
|
682
|
+
this._unmaskedValue = this.masked.unmaskedValue;
|
|
683
|
+
this._rawInputValue = this.masked.rawInputValue;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
/** Syncronizes view from model value, fires change events */
|
|
687
|
+
updateControl(cursorPos) {
|
|
688
|
+
const newUnmaskedValue = this.masked.unmaskedValue;
|
|
689
|
+
const newValue = this.masked.value;
|
|
690
|
+
const newRawInputValue = this.masked.rawInputValue;
|
|
691
|
+
const newDisplayValue = this.displayValue;
|
|
692
|
+
const isChanged = this.unmaskedValue !== newUnmaskedValue || this.value !== newValue || this._rawInputValue !== newRawInputValue;
|
|
693
|
+
this._unmaskedValue = newUnmaskedValue;
|
|
694
|
+
this._value = newValue;
|
|
695
|
+
this._rawInputValue = newRawInputValue;
|
|
696
|
+
if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;
|
|
697
|
+
if (cursorPos === 'auto') this.alignCursor();else if (cursorPos != null) this.cursorPos = cursorPos;
|
|
698
|
+
if (isChanged) this._fireChangeEvents();
|
|
699
|
+
if (!this._historyChanging && (isChanged || this.history.isEmpty)) this.history.push({
|
|
700
|
+
unmaskedValue: newUnmaskedValue,
|
|
701
|
+
selection: {
|
|
702
|
+
start: this.selectionStart,
|
|
703
|
+
end: this.cursorPos
|
|
704
|
+
}
|
|
705
|
+
});
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/** Updates options with deep equal check, recreates {@link Masked} model if mask type changes */
|
|
709
|
+
updateOptions(opts) {
|
|
710
|
+
const {
|
|
711
|
+
mask,
|
|
712
|
+
...restOpts
|
|
713
|
+
} = opts; // TODO types, yes, mask is optional
|
|
714
|
+
|
|
715
|
+
const updateMask = !this.maskEquals(mask);
|
|
716
|
+
const updateOpts = this.masked.optionsIsChanged(restOpts);
|
|
717
|
+
if (updateMask) this.mask = mask;
|
|
718
|
+
if (updateOpts) this.masked.updateOptions(restOpts); // TODO
|
|
719
|
+
|
|
720
|
+
if (updateMask || updateOpts) this.updateControl();
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
/** Updates cursor */
|
|
724
|
+
updateCursor(cursorPos) {
|
|
725
|
+
if (cursorPos == null) return;
|
|
726
|
+
this.cursorPos = cursorPos;
|
|
727
|
+
|
|
728
|
+
// also queue change cursor for mobile browsers
|
|
729
|
+
this._delayUpdateCursor(cursorPos);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
/** Delays cursor update to support mobile browsers */
|
|
733
|
+
_delayUpdateCursor(cursorPos) {
|
|
734
|
+
this._abortUpdateCursor();
|
|
735
|
+
this._changingCursorPos = cursorPos;
|
|
736
|
+
this._cursorChanging = setTimeout(() => {
|
|
737
|
+
if (!this.el) return; // if was destroyed
|
|
738
|
+
this.cursorPos = this._changingCursorPos;
|
|
739
|
+
this._abortUpdateCursor();
|
|
740
|
+
}, 10);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
/** Fires custom events */
|
|
744
|
+
_fireChangeEvents() {
|
|
745
|
+
this._fireEvent('accept', this._inputEvent);
|
|
746
|
+
if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
/** Aborts delayed cursor update */
|
|
750
|
+
_abortUpdateCursor() {
|
|
751
|
+
if (this._cursorChanging) {
|
|
752
|
+
clearTimeout(this._cursorChanging);
|
|
753
|
+
delete this._cursorChanging;
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
/** Aligns cursor to nearest available position */
|
|
758
|
+
alignCursor() {
|
|
759
|
+
this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT));
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/** Aligns cursor only if selection is empty */
|
|
763
|
+
alignCursorFriendly() {
|
|
764
|
+
if (this.selectionStart !== this.cursorPos) return; // skip if range is selected
|
|
765
|
+
this.alignCursor();
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
/** Adds listener on custom event */
|
|
769
|
+
on(ev, handler) {
|
|
770
|
+
if (!this._listeners[ev]) this._listeners[ev] = [];
|
|
771
|
+
this._listeners[ev].push(handler);
|
|
772
|
+
return this;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
/** Removes custom event listener */
|
|
776
|
+
off(ev, handler) {
|
|
777
|
+
if (!this._listeners[ev]) return this;
|
|
778
|
+
if (!handler) {
|
|
779
|
+
delete this._listeners[ev];
|
|
780
|
+
return this;
|
|
781
|
+
}
|
|
782
|
+
const hIndex = this._listeners[ev].indexOf(handler);
|
|
783
|
+
if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);
|
|
784
|
+
return this;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
/** Handles view input event */
|
|
788
|
+
_onInput(e) {
|
|
789
|
+
this._inputEvent = e;
|
|
790
|
+
this._abortUpdateCursor();
|
|
791
|
+
const details = new ActionDetails({
|
|
792
|
+
// new state
|
|
793
|
+
value: this.el.value,
|
|
794
|
+
cursorPos: this.cursorPos,
|
|
795
|
+
// old state
|
|
796
|
+
oldValue: this.displayValue,
|
|
797
|
+
oldSelection: this._selection
|
|
798
|
+
});
|
|
799
|
+
const oldRawValue = this.masked.rawInputValue;
|
|
800
|
+
const offset = this.masked.splice(details.startChangePos, details.removed.length, details.inserted, details.removeDirection, {
|
|
801
|
+
input: true,
|
|
802
|
+
raw: true
|
|
803
|
+
}).offset;
|
|
804
|
+
|
|
805
|
+
// force align in remove direction only if no input chars were removed
|
|
806
|
+
// otherwise we still need to align with NONE (to get out from fixed symbols for instance)
|
|
807
|
+
const removeDirection = oldRawValue === this.masked.rawInputValue ? details.removeDirection : DIRECTION.NONE;
|
|
808
|
+
let cursorPos = this.masked.nearestInputPos(details.startChangePos + offset, removeDirection);
|
|
809
|
+
if (removeDirection !== DIRECTION.NONE) cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);
|
|
810
|
+
this.updateControl(cursorPos);
|
|
811
|
+
delete this._inputEvent;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
/** Handles view change event and commits model value */
|
|
815
|
+
_onChange() {
|
|
816
|
+
if (this.displayValue !== this.el.value) this.updateValue();
|
|
817
|
+
this.masked.doCommit();
|
|
818
|
+
this.updateControl();
|
|
819
|
+
this._saveSelection();
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
/** Handles view drop event, prevents by default */
|
|
823
|
+
_onDrop(ev) {
|
|
824
|
+
ev.preventDefault();
|
|
825
|
+
ev.stopPropagation();
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
/** Restore last selection on focus */
|
|
829
|
+
_onFocus(ev) {
|
|
830
|
+
this.alignCursorFriendly();
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
/** Restore last selection on focus */
|
|
834
|
+
_onClick(ev) {
|
|
835
|
+
this.alignCursorFriendly();
|
|
836
|
+
}
|
|
837
|
+
_onUndo() {
|
|
838
|
+
this._applyHistoryState(this.history.undo());
|
|
839
|
+
}
|
|
840
|
+
_onRedo() {
|
|
841
|
+
this._applyHistoryState(this.history.redo());
|
|
842
|
+
}
|
|
843
|
+
_applyHistoryState(state) {
|
|
844
|
+
if (!state) return;
|
|
845
|
+
this._historyChanging = true;
|
|
846
|
+
this.unmaskedValue = state.unmaskedValue;
|
|
847
|
+
this.el.select(state.selection.start, state.selection.end);
|
|
848
|
+
this._saveSelection();
|
|
849
|
+
this._historyChanging = false;
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
/** Unbind view events and removes element reference */
|
|
853
|
+
destroy() {
|
|
854
|
+
this._unbindEvents();
|
|
855
|
+
this._listeners.length = 0;
|
|
856
|
+
delete this.el;
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
IMask.InputMask = InputMask;
|
|
860
|
+
|
|
861
|
+
/** Provides details of changing model value */
|
|
862
|
+
class ChangeDetails {
|
|
863
|
+
/** Inserted symbols */
|
|
864
|
+
|
|
865
|
+
/** Additional offset if any changes occurred before tail */
|
|
866
|
+
|
|
867
|
+
/** Raw inserted is used by dynamic mask */
|
|
868
|
+
|
|
869
|
+
/** Can skip chars */
|
|
870
|
+
|
|
871
|
+
static normalize(prep) {
|
|
872
|
+
return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];
|
|
873
|
+
}
|
|
874
|
+
constructor(details) {
|
|
875
|
+
Object.assign(this, {
|
|
876
|
+
inserted: '',
|
|
877
|
+
rawInserted: '',
|
|
878
|
+
tailShift: 0,
|
|
879
|
+
skip: false
|
|
880
|
+
}, details);
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
/** Aggregate changes */
|
|
884
|
+
aggregate(details) {
|
|
885
|
+
this.inserted += details.inserted;
|
|
886
|
+
this.rawInserted += details.rawInserted;
|
|
887
|
+
this.tailShift += details.tailShift;
|
|
888
|
+
this.skip = this.skip || details.skip;
|
|
889
|
+
return this;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
/** Total offset considering all changes */
|
|
893
|
+
get offset() {
|
|
894
|
+
return this.tailShift + this.inserted.length;
|
|
895
|
+
}
|
|
896
|
+
get consumed() {
|
|
897
|
+
return Boolean(this.rawInserted) || this.skip;
|
|
898
|
+
}
|
|
899
|
+
equals(details) {
|
|
900
|
+
return this.inserted === details.inserted && this.tailShift === details.tailShift && this.rawInserted === details.rawInserted && this.skip === details.skip;
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
IMask.ChangeDetails = ChangeDetails;
|
|
904
|
+
|
|
905
|
+
/** Provides details of continuous extracted tail */
|
|
906
|
+
class ContinuousTailDetails {
|
|
907
|
+
/** Tail value as string */
|
|
908
|
+
|
|
909
|
+
/** Tail start position */
|
|
910
|
+
|
|
911
|
+
/** Start position */
|
|
912
|
+
|
|
913
|
+
constructor(value, from, stop) {
|
|
914
|
+
if (value === void 0) {
|
|
915
|
+
value = '';
|
|
916
|
+
}
|
|
917
|
+
if (from === void 0) {
|
|
918
|
+
from = 0;
|
|
919
|
+
}
|
|
920
|
+
this.value = value;
|
|
921
|
+
this.from = from;
|
|
922
|
+
this.stop = stop;
|
|
923
|
+
}
|
|
924
|
+
toString() {
|
|
925
|
+
return this.value;
|
|
926
|
+
}
|
|
927
|
+
extend(tail) {
|
|
928
|
+
this.value += String(tail);
|
|
929
|
+
}
|
|
930
|
+
appendTo(masked) {
|
|
931
|
+
return masked.append(this.toString(), {
|
|
932
|
+
tail: true
|
|
933
|
+
}).aggregate(masked._appendPlaceholder());
|
|
934
|
+
}
|
|
935
|
+
get state() {
|
|
936
|
+
return {
|
|
937
|
+
value: this.value,
|
|
938
|
+
from: this.from,
|
|
939
|
+
stop: this.stop
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
set state(state) {
|
|
943
|
+
Object.assign(this, state);
|
|
944
|
+
}
|
|
945
|
+
unshift(beforePos) {
|
|
946
|
+
if (!this.value.length || beforePos != null && this.from >= beforePos) return '';
|
|
947
|
+
const shiftChar = this.value[0];
|
|
948
|
+
this.value = this.value.slice(1);
|
|
949
|
+
return shiftChar;
|
|
950
|
+
}
|
|
951
|
+
shift() {
|
|
952
|
+
if (!this.value.length) return '';
|
|
953
|
+
const shiftChar = this.value[this.value.length - 1];
|
|
954
|
+
this.value = this.value.slice(0, -1);
|
|
955
|
+
return shiftChar;
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
/** Append flags */
|
|
960
|
+
|
|
961
|
+
/** Extract flags */
|
|
962
|
+
|
|
963
|
+
// see https://github.com/microsoft/TypeScript/issues/6223
|
|
964
|
+
|
|
965
|
+
/** Provides common masking stuff */
|
|
966
|
+
class Masked {
|
|
967
|
+
/** */
|
|
968
|
+
|
|
969
|
+
/** */
|
|
970
|
+
|
|
971
|
+
/** Transforms value before mask processing */
|
|
972
|
+
|
|
973
|
+
/** Transforms each char before mask processing */
|
|
974
|
+
|
|
975
|
+
/** Validates if value is acceptable */
|
|
976
|
+
|
|
977
|
+
/** Does additional processing at the end of editing */
|
|
978
|
+
|
|
979
|
+
/** Format typed value to string */
|
|
980
|
+
|
|
981
|
+
/** Parse string to get typed value */
|
|
982
|
+
|
|
983
|
+
/** Enable characters overwriting */
|
|
984
|
+
|
|
985
|
+
/** */
|
|
986
|
+
|
|
987
|
+
/** */
|
|
988
|
+
|
|
989
|
+
/** */
|
|
990
|
+
|
|
991
|
+
/** */
|
|
992
|
+
|
|
993
|
+
constructor(opts) {
|
|
994
|
+
this._value = '';
|
|
995
|
+
this._update({
|
|
996
|
+
...Masked.DEFAULTS,
|
|
997
|
+
...opts
|
|
998
|
+
});
|
|
999
|
+
this._initialized = true;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
/** Sets and applies new options */
|
|
1003
|
+
updateOptions(opts) {
|
|
1004
|
+
if (!this.optionsIsChanged(opts)) return;
|
|
1005
|
+
this.withValueRefresh(this._update.bind(this, opts));
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
/** Sets new options */
|
|
1009
|
+
_update(opts) {
|
|
1010
|
+
Object.assign(this, opts);
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
/** Mask state */
|
|
1014
|
+
get state() {
|
|
1015
|
+
return {
|
|
1016
|
+
_value: this.value,
|
|
1017
|
+
_rawInputValue: this.rawInputValue
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
1020
|
+
set state(state) {
|
|
1021
|
+
this._value = state._value;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
/** Resets value */
|
|
1025
|
+
reset() {
|
|
1026
|
+
this._value = '';
|
|
1027
|
+
}
|
|
1028
|
+
get value() {
|
|
1029
|
+
return this._value;
|
|
1030
|
+
}
|
|
1031
|
+
set value(value) {
|
|
1032
|
+
this.resolve(value, {
|
|
1033
|
+
input: true
|
|
1034
|
+
});
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
/** Resolve new value */
|
|
1038
|
+
resolve(value, flags) {
|
|
1039
|
+
if (flags === void 0) {
|
|
1040
|
+
flags = {
|
|
1041
|
+
input: true
|
|
1042
|
+
};
|
|
1043
|
+
}
|
|
1044
|
+
this.reset();
|
|
1045
|
+
this.append(value, flags, '');
|
|
1046
|
+
this.doCommit();
|
|
1047
|
+
}
|
|
1048
|
+
get unmaskedValue() {
|
|
1049
|
+
return this.value;
|
|
1050
|
+
}
|
|
1051
|
+
set unmaskedValue(value) {
|
|
1052
|
+
this.resolve(value, {});
|
|
1053
|
+
}
|
|
1054
|
+
get typedValue() {
|
|
1055
|
+
return this.parse ? this.parse(this.value, this) : this.unmaskedValue;
|
|
1056
|
+
}
|
|
1057
|
+
set typedValue(value) {
|
|
1058
|
+
if (this.format) {
|
|
1059
|
+
this.value = this.format(value, this);
|
|
1060
|
+
} else {
|
|
1061
|
+
this.unmaskedValue = String(value);
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
/** Value that includes raw user input */
|
|
1066
|
+
get rawInputValue() {
|
|
1067
|
+
return this.extractInput(0, this.displayValue.length, {
|
|
1068
|
+
raw: true
|
|
1069
|
+
});
|
|
1070
|
+
}
|
|
1071
|
+
set rawInputValue(value) {
|
|
1072
|
+
this.resolve(value, {
|
|
1073
|
+
raw: true
|
|
1074
|
+
});
|
|
1075
|
+
}
|
|
1076
|
+
get displayValue() {
|
|
1077
|
+
return this.value;
|
|
1078
|
+
}
|
|
1079
|
+
get isComplete() {
|
|
1080
|
+
return true;
|
|
1081
|
+
}
|
|
1082
|
+
get isFilled() {
|
|
1083
|
+
return this.isComplete;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
/** Finds nearest input position in direction */
|
|
1087
|
+
nearestInputPos(cursorPos, direction) {
|
|
1088
|
+
return cursorPos;
|
|
1089
|
+
}
|
|
1090
|
+
totalInputPositions(fromPos, toPos) {
|
|
1091
|
+
if (fromPos === void 0) {
|
|
1092
|
+
fromPos = 0;
|
|
1093
|
+
}
|
|
1094
|
+
if (toPos === void 0) {
|
|
1095
|
+
toPos = this.displayValue.length;
|
|
1096
|
+
}
|
|
1097
|
+
return Math.min(this.displayValue.length, toPos - fromPos);
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
/** Extracts value in range considering flags */
|
|
1101
|
+
extractInput(fromPos, toPos, flags) {
|
|
1102
|
+
if (fromPos === void 0) {
|
|
1103
|
+
fromPos = 0;
|
|
1104
|
+
}
|
|
1105
|
+
if (toPos === void 0) {
|
|
1106
|
+
toPos = this.displayValue.length;
|
|
1107
|
+
}
|
|
1108
|
+
return this.displayValue.slice(fromPos, toPos);
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
/** Extracts tail in range */
|
|
1112
|
+
extractTail(fromPos, toPos) {
|
|
1113
|
+
if (fromPos === void 0) {
|
|
1114
|
+
fromPos = 0;
|
|
1115
|
+
}
|
|
1116
|
+
if (toPos === void 0) {
|
|
1117
|
+
toPos = this.displayValue.length;
|
|
1118
|
+
}
|
|
1119
|
+
return new ContinuousTailDetails(this.extractInput(fromPos, toPos), fromPos);
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
/** Appends tail */
|
|
1123
|
+
appendTail(tail) {
|
|
1124
|
+
if (isString(tail)) tail = new ContinuousTailDetails(String(tail));
|
|
1125
|
+
return tail.appendTo(this);
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
/** Appends char */
|
|
1129
|
+
_appendCharRaw(ch, flags) {
|
|
1130
|
+
if (!ch) return new ChangeDetails();
|
|
1131
|
+
this._value += ch;
|
|
1132
|
+
return new ChangeDetails({
|
|
1133
|
+
inserted: ch,
|
|
1134
|
+
rawInserted: ch
|
|
1135
|
+
});
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
/** Appends char */
|
|
1139
|
+
_appendChar(ch, flags, checkTail) {
|
|
1140
|
+
if (flags === void 0) {
|
|
1141
|
+
flags = {};
|
|
1142
|
+
}
|
|
1143
|
+
const consistentState = this.state;
|
|
1144
|
+
let details;
|
|
1145
|
+
[ch, details] = this.doPrepareChar(ch, flags);
|
|
1146
|
+
if (ch) {
|
|
1147
|
+
details = details.aggregate(this._appendCharRaw(ch, flags));
|
|
1148
|
+
|
|
1149
|
+
// TODO handle `skip`?
|
|
1150
|
+
|
|
1151
|
+
// try `autofix` lookahead
|
|
1152
|
+
if (!details.rawInserted && this.autofix === 'pad') {
|
|
1153
|
+
const noFixState = this.state;
|
|
1154
|
+
this.state = consistentState;
|
|
1155
|
+
let fixDetails = this.pad(flags);
|
|
1156
|
+
const chDetails = this._appendCharRaw(ch, flags);
|
|
1157
|
+
fixDetails = fixDetails.aggregate(chDetails);
|
|
1158
|
+
|
|
1159
|
+
// if fix was applied or
|
|
1160
|
+
// if details are equal use skip restoring state optimization
|
|
1161
|
+
if (chDetails.rawInserted || fixDetails.equals(details)) {
|
|
1162
|
+
details = fixDetails;
|
|
1163
|
+
} else {
|
|
1164
|
+
this.state = noFixState;
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
if (details.inserted) {
|
|
1169
|
+
let consistentTail;
|
|
1170
|
+
let appended = this.doValidate(flags) !== false;
|
|
1171
|
+
if (appended && checkTail != null) {
|
|
1172
|
+
// validation ok, check tail
|
|
1173
|
+
const beforeTailState = this.state;
|
|
1174
|
+
if (this.overwrite === true) {
|
|
1175
|
+
consistentTail = checkTail.state;
|
|
1176
|
+
for (let i = 0; i < details.rawInserted.length; ++i) {
|
|
1177
|
+
checkTail.unshift(this.displayValue.length - details.tailShift);
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
let tailDetails = this.appendTail(checkTail);
|
|
1181
|
+
appended = tailDetails.rawInserted.length === checkTail.toString().length;
|
|
1182
|
+
|
|
1183
|
+
// not ok, try shift
|
|
1184
|
+
if (!(appended && tailDetails.inserted) && this.overwrite === 'shift') {
|
|
1185
|
+
this.state = beforeTailState;
|
|
1186
|
+
consistentTail = checkTail.state;
|
|
1187
|
+
for (let i = 0; i < details.rawInserted.length; ++i) {
|
|
1188
|
+
checkTail.shift();
|
|
1189
|
+
}
|
|
1190
|
+
tailDetails = this.appendTail(checkTail);
|
|
1191
|
+
appended = tailDetails.rawInserted.length === checkTail.toString().length;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
// if ok, rollback state after tail
|
|
1195
|
+
if (appended && tailDetails.inserted) this.state = beforeTailState;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
// revert all if something went wrong
|
|
1199
|
+
if (!appended) {
|
|
1200
|
+
details = new ChangeDetails();
|
|
1201
|
+
this.state = consistentState;
|
|
1202
|
+
if (checkTail && consistentTail) checkTail.state = consistentTail;
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
return details;
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
/** Appends optional placeholder at the end */
|
|
1209
|
+
_appendPlaceholder() {
|
|
1210
|
+
return new ChangeDetails();
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
/** Appends optional eager placeholder at the end */
|
|
1214
|
+
_appendEager() {
|
|
1215
|
+
return new ChangeDetails();
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
/** Appends symbols considering flags */
|
|
1219
|
+
append(str, flags, tail) {
|
|
1220
|
+
if (!isString(str)) throw new Error('value should be string');
|
|
1221
|
+
const checkTail = isString(tail) ? new ContinuousTailDetails(String(tail)) : tail;
|
|
1222
|
+
if (flags != null && flags.tail) flags._beforeTailState = this.state;
|
|
1223
|
+
let details;
|
|
1224
|
+
[str, details] = this.doPrepare(str, flags);
|
|
1225
|
+
for (let ci = 0; ci < str.length; ++ci) {
|
|
1226
|
+
const d = this._appendChar(str[ci], flags, checkTail);
|
|
1227
|
+
if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail)) break;
|
|
1228
|
+
details.aggregate(d);
|
|
1229
|
+
}
|
|
1230
|
+
if ((this.eager === true || this.eager === 'append') && flags != null && flags.input && str) {
|
|
1231
|
+
details.aggregate(this._appendEager());
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
// append tail but aggregate only tailShift
|
|
1235
|
+
if (checkTail != null) {
|
|
1236
|
+
details.tailShift += this.appendTail(checkTail).tailShift;
|
|
1237
|
+
// TODO it's a good idea to clear state after appending ends
|
|
1238
|
+
// but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)
|
|
1239
|
+
// this._resetBeforeTailState();
|
|
1240
|
+
}
|
|
1241
|
+
return details;
|
|
1242
|
+
}
|
|
1243
|
+
remove(fromPos, toPos) {
|
|
1244
|
+
if (fromPos === void 0) {
|
|
1245
|
+
fromPos = 0;
|
|
1246
|
+
}
|
|
1247
|
+
if (toPos === void 0) {
|
|
1248
|
+
toPos = this.displayValue.length;
|
|
1249
|
+
}
|
|
1250
|
+
this._value = this.displayValue.slice(0, fromPos) + this.displayValue.slice(toPos);
|
|
1251
|
+
return new ChangeDetails();
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
/** Calls function and reapplies current value */
|
|
1255
|
+
withValueRefresh(fn) {
|
|
1256
|
+
if (this._refreshing || !this._initialized) return fn();
|
|
1257
|
+
this._refreshing = true;
|
|
1258
|
+
const rawInput = this.rawInputValue;
|
|
1259
|
+
const value = this.value;
|
|
1260
|
+
const ret = fn();
|
|
1261
|
+
this.rawInputValue = rawInput;
|
|
1262
|
+
// append lost trailing chars at the end
|
|
1263
|
+
if (this.value && this.value !== value && value.indexOf(this.value) === 0) {
|
|
1264
|
+
this.append(value.slice(this.displayValue.length), {}, '');
|
|
1265
|
+
this.doCommit();
|
|
1266
|
+
}
|
|
1267
|
+
delete this._refreshing;
|
|
1268
|
+
return ret;
|
|
1269
|
+
}
|
|
1270
|
+
runIsolated(fn) {
|
|
1271
|
+
if (this._isolated || !this._initialized) return fn(this);
|
|
1272
|
+
this._isolated = true;
|
|
1273
|
+
const state = this.state;
|
|
1274
|
+
const ret = fn(this);
|
|
1275
|
+
this.state = state;
|
|
1276
|
+
delete this._isolated;
|
|
1277
|
+
return ret;
|
|
1278
|
+
}
|
|
1279
|
+
doSkipInvalid(ch, flags, checkTail) {
|
|
1280
|
+
return Boolean(this.skipInvalid);
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
/** Prepares string before mask processing */
|
|
1284
|
+
doPrepare(str, flags) {
|
|
1285
|
+
if (flags === void 0) {
|
|
1286
|
+
flags = {};
|
|
1287
|
+
}
|
|
1288
|
+
return ChangeDetails.normalize(this.prepare ? this.prepare(str, this, flags) : str);
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
/** Prepares each char before mask processing */
|
|
1292
|
+
doPrepareChar(str, flags) {
|
|
1293
|
+
if (flags === void 0) {
|
|
1294
|
+
flags = {};
|
|
1295
|
+
}
|
|
1296
|
+
return ChangeDetails.normalize(this.prepareChar ? this.prepareChar(str, this, flags) : str);
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
/** Validates if value is acceptable */
|
|
1300
|
+
doValidate(flags) {
|
|
1301
|
+
return (!this.validate || this.validate(this.value, this, flags)) && (!this.parent || this.parent.doValidate(flags));
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
/** Does additional processing at the end of editing */
|
|
1305
|
+
doCommit() {
|
|
1306
|
+
if (this.commit) this.commit(this.value, this);
|
|
1307
|
+
}
|
|
1308
|
+
splice(start, deleteCount, inserted, removeDirection, flags) {
|
|
1309
|
+
if (inserted === void 0) {
|
|
1310
|
+
inserted = '';
|
|
1311
|
+
}
|
|
1312
|
+
if (removeDirection === void 0) {
|
|
1313
|
+
removeDirection = DIRECTION.NONE;
|
|
1314
|
+
}
|
|
1315
|
+
if (flags === void 0) {
|
|
1316
|
+
flags = {
|
|
1317
|
+
input: true
|
|
1318
|
+
};
|
|
1319
|
+
}
|
|
1320
|
+
const tailPos = start + deleteCount;
|
|
1321
|
+
const tail = this.extractTail(tailPos);
|
|
1322
|
+
const eagerRemove = this.eager === true || this.eager === 'remove';
|
|
1323
|
+
let oldRawValue;
|
|
1324
|
+
if (eagerRemove) {
|
|
1325
|
+
removeDirection = forceDirection(removeDirection);
|
|
1326
|
+
oldRawValue = this.extractInput(0, tailPos, {
|
|
1327
|
+
raw: true
|
|
1328
|
+
});
|
|
1329
|
+
}
|
|
1330
|
+
let startChangePos = start;
|
|
1331
|
+
const details = new ChangeDetails();
|
|
1332
|
+
|
|
1333
|
+
// if it is just deletion without insertion
|
|
1334
|
+
if (removeDirection !== DIRECTION.NONE) {
|
|
1335
|
+
startChangePos = this.nearestInputPos(start, deleteCount > 1 && start !== 0 && !eagerRemove ? DIRECTION.NONE : removeDirection);
|
|
1336
|
+
|
|
1337
|
+
// adjust tailShift if start was aligned
|
|
1338
|
+
details.tailShift = startChangePos - start;
|
|
1339
|
+
}
|
|
1340
|
+
details.aggregate(this.remove(startChangePos));
|
|
1341
|
+
if (eagerRemove && removeDirection !== DIRECTION.NONE && oldRawValue === this.rawInputValue) {
|
|
1342
|
+
if (removeDirection === DIRECTION.FORCE_LEFT) {
|
|
1343
|
+
let valLength;
|
|
1344
|
+
while (oldRawValue === this.rawInputValue && (valLength = this.displayValue.length)) {
|
|
1345
|
+
details.aggregate(new ChangeDetails({
|
|
1346
|
+
tailShift: -1
|
|
1347
|
+
})).aggregate(this.remove(valLength - 1));
|
|
1348
|
+
}
|
|
1349
|
+
} else if (removeDirection === DIRECTION.FORCE_RIGHT) {
|
|
1350
|
+
tail.unshift();
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
return details.aggregate(this.append(inserted, flags, tail));
|
|
1354
|
+
}
|
|
1355
|
+
maskEquals(mask) {
|
|
1356
|
+
return this.mask === mask;
|
|
1357
|
+
}
|
|
1358
|
+
optionsIsChanged(opts) {
|
|
1359
|
+
return !objectIncludes(this, opts);
|
|
1360
|
+
}
|
|
1361
|
+
typedValueEquals(value) {
|
|
1362
|
+
const tval = this.typedValue;
|
|
1363
|
+
return value === tval || Masked.EMPTY_VALUES.includes(value) && Masked.EMPTY_VALUES.includes(tval) || (this.format ? this.format(value, this) === this.format(this.typedValue, this) : false);
|
|
1364
|
+
}
|
|
1365
|
+
pad(flags) {
|
|
1366
|
+
return new ChangeDetails();
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
Masked.DEFAULTS = {
|
|
1370
|
+
skipInvalid: true
|
|
1371
|
+
};
|
|
1372
|
+
Masked.EMPTY_VALUES = [undefined, null, ''];
|
|
1373
|
+
IMask.Masked = Masked;
|
|
1374
|
+
|
|
1375
|
+
class ChunksTailDetails {
|
|
1376
|
+
/** */
|
|
1377
|
+
|
|
1378
|
+
constructor(chunks, from) {
|
|
1379
|
+
if (chunks === void 0) {
|
|
1380
|
+
chunks = [];
|
|
1381
|
+
}
|
|
1382
|
+
if (from === void 0) {
|
|
1383
|
+
from = 0;
|
|
1384
|
+
}
|
|
1385
|
+
this.chunks = chunks;
|
|
1386
|
+
this.from = from;
|
|
1387
|
+
}
|
|
1388
|
+
toString() {
|
|
1389
|
+
return this.chunks.map(String).join('');
|
|
1390
|
+
}
|
|
1391
|
+
extend(tailChunk) {
|
|
1392
|
+
if (!String(tailChunk)) return;
|
|
1393
|
+
tailChunk = isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk;
|
|
1394
|
+
const lastChunk = this.chunks[this.chunks.length - 1];
|
|
1395
|
+
const extendLast = lastChunk && (
|
|
1396
|
+
// if stops are same or tail has no stop
|
|
1397
|
+
lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&
|
|
1398
|
+
// if tail chunk goes just after last chunk
|
|
1399
|
+
tailChunk.from === lastChunk.from + lastChunk.toString().length;
|
|
1400
|
+
if (tailChunk instanceof ContinuousTailDetails) {
|
|
1401
|
+
// check the ability to extend previous chunk
|
|
1402
|
+
if (extendLast) {
|
|
1403
|
+
// extend previous chunk
|
|
1404
|
+
lastChunk.extend(tailChunk.toString());
|
|
1405
|
+
} else {
|
|
1406
|
+
// append new chunk
|
|
1407
|
+
this.chunks.push(tailChunk);
|
|
1408
|
+
}
|
|
1409
|
+
} else if (tailChunk instanceof ChunksTailDetails) {
|
|
1410
|
+
if (tailChunk.stop == null) {
|
|
1411
|
+
// unwrap floating chunks to parent, keeping `from` pos
|
|
1412
|
+
let firstTailChunk;
|
|
1413
|
+
while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {
|
|
1414
|
+
firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above
|
|
1415
|
+
firstTailChunk.from += tailChunk.from;
|
|
1416
|
+
this.extend(firstTailChunk);
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
// if tail chunk still has value
|
|
1421
|
+
if (tailChunk.toString()) {
|
|
1422
|
+
// if chunks contains stops, then popup stop to container
|
|
1423
|
+
tailChunk.stop = tailChunk.blockIndex;
|
|
1424
|
+
this.chunks.push(tailChunk);
|
|
1425
|
+
}
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
appendTo(masked) {
|
|
1429
|
+
if (!(masked instanceof IMask.MaskedPattern)) {
|
|
1430
|
+
const tail = new ContinuousTailDetails(this.toString());
|
|
1431
|
+
return tail.appendTo(masked);
|
|
1432
|
+
}
|
|
1433
|
+
const details = new ChangeDetails();
|
|
1434
|
+
for (let ci = 0; ci < this.chunks.length; ++ci) {
|
|
1435
|
+
const chunk = this.chunks[ci];
|
|
1436
|
+
const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);
|
|
1437
|
+
const stop = chunk.stop;
|
|
1438
|
+
let chunkBlock;
|
|
1439
|
+
if (stop != null && (
|
|
1440
|
+
// if block not found or stop is behind lastBlock
|
|
1441
|
+
!lastBlockIter || lastBlockIter.index <= stop)) {
|
|
1442
|
+
if (chunk instanceof ChunksTailDetails ||
|
|
1443
|
+
// for continuous block also check if stop is exist
|
|
1444
|
+
masked._stops.indexOf(stop) >= 0) {
|
|
1445
|
+
details.aggregate(masked._appendPlaceholder(stop));
|
|
1446
|
+
}
|
|
1447
|
+
chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];
|
|
1448
|
+
}
|
|
1449
|
+
if (chunkBlock) {
|
|
1450
|
+
const tailDetails = chunkBlock.appendTail(chunk);
|
|
1451
|
+
details.aggregate(tailDetails);
|
|
1452
|
+
|
|
1453
|
+
// get not inserted chars
|
|
1454
|
+
const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);
|
|
1455
|
+
if (remainChars) details.aggregate(masked.append(remainChars, {
|
|
1456
|
+
tail: true
|
|
1457
|
+
}));
|
|
1458
|
+
} else {
|
|
1459
|
+
details.aggregate(masked.append(chunk.toString(), {
|
|
1460
|
+
tail: true
|
|
1461
|
+
}));
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
return details;
|
|
1465
|
+
}
|
|
1466
|
+
get state() {
|
|
1467
|
+
return {
|
|
1468
|
+
chunks: this.chunks.map(c => c.state),
|
|
1469
|
+
from: this.from,
|
|
1470
|
+
stop: this.stop,
|
|
1471
|
+
blockIndex: this.blockIndex
|
|
1472
|
+
};
|
|
1473
|
+
}
|
|
1474
|
+
set state(state) {
|
|
1475
|
+
const {
|
|
1476
|
+
chunks,
|
|
1477
|
+
...props
|
|
1478
|
+
} = state;
|
|
1479
|
+
Object.assign(this, props);
|
|
1480
|
+
this.chunks = chunks.map(cstate => {
|
|
1481
|
+
const chunk = "chunks" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();
|
|
1482
|
+
chunk.state = cstate;
|
|
1483
|
+
return chunk;
|
|
1484
|
+
});
|
|
1485
|
+
}
|
|
1486
|
+
unshift(beforePos) {
|
|
1487
|
+
if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';
|
|
1488
|
+
const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;
|
|
1489
|
+
let ci = 0;
|
|
1490
|
+
while (ci < this.chunks.length) {
|
|
1491
|
+
const chunk = this.chunks[ci];
|
|
1492
|
+
const shiftChar = chunk.unshift(chunkShiftPos);
|
|
1493
|
+
if (chunk.toString()) {
|
|
1494
|
+
// chunk still contains value
|
|
1495
|
+
// but not shifted - means no more available chars to shift
|
|
1496
|
+
if (!shiftChar) break;
|
|
1497
|
+
++ci;
|
|
1498
|
+
} else {
|
|
1499
|
+
// clean if chunk has no value
|
|
1500
|
+
this.chunks.splice(ci, 1);
|
|
1501
|
+
}
|
|
1502
|
+
if (shiftChar) return shiftChar;
|
|
1503
|
+
}
|
|
1504
|
+
return '';
|
|
1505
|
+
}
|
|
1506
|
+
shift() {
|
|
1507
|
+
if (!this.chunks.length) return '';
|
|
1508
|
+
let ci = this.chunks.length - 1;
|
|
1509
|
+
while (0 <= ci) {
|
|
1510
|
+
const chunk = this.chunks[ci];
|
|
1511
|
+
const shiftChar = chunk.shift();
|
|
1512
|
+
if (chunk.toString()) {
|
|
1513
|
+
// chunk still contains value
|
|
1514
|
+
// but not shifted - means no more available chars to shift
|
|
1515
|
+
if (!shiftChar) break;
|
|
1516
|
+
--ci;
|
|
1517
|
+
} else {
|
|
1518
|
+
// clean if chunk has no value
|
|
1519
|
+
this.chunks.splice(ci, 1);
|
|
1520
|
+
}
|
|
1521
|
+
if (shiftChar) return shiftChar;
|
|
1522
|
+
}
|
|
1523
|
+
return '';
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
class PatternCursor {
|
|
1528
|
+
constructor(masked, pos) {
|
|
1529
|
+
this.masked = masked;
|
|
1530
|
+
this._log = [];
|
|
1531
|
+
const {
|
|
1532
|
+
offset,
|
|
1533
|
+
index
|
|
1534
|
+
} = masked._mapPosToBlock(pos) || (pos < 0 ?
|
|
1535
|
+
// first
|
|
1536
|
+
{
|
|
1537
|
+
index: 0,
|
|
1538
|
+
offset: 0
|
|
1539
|
+
} :
|
|
1540
|
+
// last
|
|
1541
|
+
{
|
|
1542
|
+
index: this.masked._blocks.length,
|
|
1543
|
+
offset: 0
|
|
1544
|
+
});
|
|
1545
|
+
this.offset = offset;
|
|
1546
|
+
this.index = index;
|
|
1547
|
+
this.ok = false;
|
|
1548
|
+
}
|
|
1549
|
+
get block() {
|
|
1550
|
+
return this.masked._blocks[this.index];
|
|
1551
|
+
}
|
|
1552
|
+
get pos() {
|
|
1553
|
+
return this.masked._blockStartPos(this.index) + this.offset;
|
|
1554
|
+
}
|
|
1555
|
+
get state() {
|
|
1556
|
+
return {
|
|
1557
|
+
index: this.index,
|
|
1558
|
+
offset: this.offset,
|
|
1559
|
+
ok: this.ok
|
|
1560
|
+
};
|
|
1561
|
+
}
|
|
1562
|
+
set state(s) {
|
|
1563
|
+
Object.assign(this, s);
|
|
1564
|
+
}
|
|
1565
|
+
pushState() {
|
|
1566
|
+
this._log.push(this.state);
|
|
1567
|
+
}
|
|
1568
|
+
popState() {
|
|
1569
|
+
const s = this._log.pop();
|
|
1570
|
+
if (s) this.state = s;
|
|
1571
|
+
return s;
|
|
1572
|
+
}
|
|
1573
|
+
bindBlock() {
|
|
1574
|
+
if (this.block) return;
|
|
1575
|
+
if (this.index < 0) {
|
|
1576
|
+
this.index = 0;
|
|
1577
|
+
this.offset = 0;
|
|
1578
|
+
}
|
|
1579
|
+
if (this.index >= this.masked._blocks.length) {
|
|
1580
|
+
this.index = this.masked._blocks.length - 1;
|
|
1581
|
+
this.offset = this.block.displayValue.length; // TODO this is stupid type error, `block` depends on index that was changed above
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
_pushLeft(fn) {
|
|
1585
|
+
this.pushState();
|
|
1586
|
+
for (this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((_this$block = this.block) == null ? void 0 : _this$block.displayValue.length) || 0) {
|
|
1587
|
+
var _this$block;
|
|
1588
|
+
if (fn()) return this.ok = true;
|
|
1589
|
+
}
|
|
1590
|
+
return this.ok = false;
|
|
1591
|
+
}
|
|
1592
|
+
_pushRight(fn) {
|
|
1593
|
+
this.pushState();
|
|
1594
|
+
for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {
|
|
1595
|
+
if (fn()) return this.ok = true;
|
|
1596
|
+
}
|
|
1597
|
+
return this.ok = false;
|
|
1598
|
+
}
|
|
1599
|
+
pushLeftBeforeFilled() {
|
|
1600
|
+
return this._pushLeft(() => {
|
|
1601
|
+
if (this.block.isFixed || !this.block.value) return;
|
|
1602
|
+
this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);
|
|
1603
|
+
if (this.offset !== 0) return true;
|
|
1604
|
+
});
|
|
1605
|
+
}
|
|
1606
|
+
pushLeftBeforeInput() {
|
|
1607
|
+
// cases:
|
|
1608
|
+
// filled input: 00|
|
|
1609
|
+
// optional empty input: 00[]|
|
|
1610
|
+
// nested block: XX<[]>|
|
|
1611
|
+
return this._pushLeft(() => {
|
|
1612
|
+
if (this.block.isFixed) return;
|
|
1613
|
+
this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);
|
|
1614
|
+
return true;
|
|
1615
|
+
});
|
|
1616
|
+
}
|
|
1617
|
+
pushLeftBeforeRequired() {
|
|
1618
|
+
return this._pushLeft(() => {
|
|
1619
|
+
if (this.block.isFixed || this.block.isOptional && !this.block.value) return;
|
|
1620
|
+
this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);
|
|
1621
|
+
return true;
|
|
1622
|
+
});
|
|
1623
|
+
}
|
|
1624
|
+
pushRightBeforeFilled() {
|
|
1625
|
+
return this._pushRight(() => {
|
|
1626
|
+
if (this.block.isFixed || !this.block.value) return;
|
|
1627
|
+
this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);
|
|
1628
|
+
if (this.offset !== this.block.value.length) return true;
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1631
|
+
pushRightBeforeInput() {
|
|
1632
|
+
return this._pushRight(() => {
|
|
1633
|
+
if (this.block.isFixed) return;
|
|
1634
|
+
|
|
1635
|
+
// const o = this.offset;
|
|
1636
|
+
this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);
|
|
1637
|
+
// HACK cases like (STILL DOES NOT WORK FOR NESTED)
|
|
1638
|
+
// aa|X
|
|
1639
|
+
// aa<X|[]>X_ - this will not work
|
|
1640
|
+
// if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;
|
|
1641
|
+
return true;
|
|
1642
|
+
});
|
|
1643
|
+
}
|
|
1644
|
+
pushRightBeforeRequired() {
|
|
1645
|
+
return this._pushRight(() => {
|
|
1646
|
+
if (this.block.isFixed || this.block.isOptional && !this.block.value) return;
|
|
1647
|
+
|
|
1648
|
+
// TODO check |[*]XX_
|
|
1649
|
+
this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);
|
|
1650
|
+
return true;
|
|
1651
|
+
});
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
class PatternFixedDefinition {
|
|
1656
|
+
/** */
|
|
1657
|
+
|
|
1658
|
+
/** */
|
|
1659
|
+
|
|
1660
|
+
/** */
|
|
1661
|
+
|
|
1662
|
+
/** */
|
|
1663
|
+
|
|
1664
|
+
/** */
|
|
1665
|
+
|
|
1666
|
+
/** */
|
|
1667
|
+
|
|
1668
|
+
constructor(opts) {
|
|
1669
|
+
Object.assign(this, opts);
|
|
1670
|
+
this._value = '';
|
|
1671
|
+
this.isFixed = true;
|
|
1672
|
+
}
|
|
1673
|
+
get value() {
|
|
1674
|
+
return this._value;
|
|
1675
|
+
}
|
|
1676
|
+
get unmaskedValue() {
|
|
1677
|
+
return this.isUnmasking ? this.value : '';
|
|
1678
|
+
}
|
|
1679
|
+
get rawInputValue() {
|
|
1680
|
+
return this._isRawInput ? this.value : '';
|
|
1681
|
+
}
|
|
1682
|
+
get displayValue() {
|
|
1683
|
+
return this.value;
|
|
1684
|
+
}
|
|
1685
|
+
reset() {
|
|
1686
|
+
this._isRawInput = false;
|
|
1687
|
+
this._value = '';
|
|
1688
|
+
}
|
|
1689
|
+
remove(fromPos, toPos) {
|
|
1690
|
+
if (fromPos === void 0) {
|
|
1691
|
+
fromPos = 0;
|
|
1692
|
+
}
|
|
1693
|
+
if (toPos === void 0) {
|
|
1694
|
+
toPos = this._value.length;
|
|
1695
|
+
}
|
|
1696
|
+
this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);
|
|
1697
|
+
if (!this._value) this._isRawInput = false;
|
|
1698
|
+
return new ChangeDetails();
|
|
1699
|
+
}
|
|
1700
|
+
nearestInputPos(cursorPos, direction) {
|
|
1701
|
+
if (direction === void 0) {
|
|
1702
|
+
direction = DIRECTION.NONE;
|
|
1703
|
+
}
|
|
1704
|
+
const minPos = 0;
|
|
1705
|
+
const maxPos = this._value.length;
|
|
1706
|
+
switch (direction) {
|
|
1707
|
+
case DIRECTION.LEFT:
|
|
1708
|
+
case DIRECTION.FORCE_LEFT:
|
|
1709
|
+
return minPos;
|
|
1710
|
+
case DIRECTION.NONE:
|
|
1711
|
+
case DIRECTION.RIGHT:
|
|
1712
|
+
case DIRECTION.FORCE_RIGHT:
|
|
1713
|
+
default:
|
|
1714
|
+
return maxPos;
|
|
1715
|
+
}
|
|
1716
|
+
}
|
|
1717
|
+
totalInputPositions(fromPos, toPos) {
|
|
1718
|
+
if (fromPos === void 0) {
|
|
1719
|
+
fromPos = 0;
|
|
1720
|
+
}
|
|
1721
|
+
if (toPos === void 0) {
|
|
1722
|
+
toPos = this._value.length;
|
|
1723
|
+
}
|
|
1724
|
+
return this._isRawInput ? toPos - fromPos : 0;
|
|
1725
|
+
}
|
|
1726
|
+
extractInput(fromPos, toPos, flags) {
|
|
1727
|
+
if (fromPos === void 0) {
|
|
1728
|
+
fromPos = 0;
|
|
1729
|
+
}
|
|
1730
|
+
if (toPos === void 0) {
|
|
1731
|
+
toPos = this._value.length;
|
|
1732
|
+
}
|
|
1733
|
+
if (flags === void 0) {
|
|
1734
|
+
flags = {};
|
|
1735
|
+
}
|
|
1736
|
+
return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';
|
|
1737
|
+
}
|
|
1738
|
+
get isComplete() {
|
|
1739
|
+
return true;
|
|
1740
|
+
}
|
|
1741
|
+
get isFilled() {
|
|
1742
|
+
return Boolean(this._value);
|
|
1743
|
+
}
|
|
1744
|
+
_appendChar(ch, flags) {
|
|
1745
|
+
if (flags === void 0) {
|
|
1746
|
+
flags = {};
|
|
1747
|
+
}
|
|
1748
|
+
if (this.isFilled) return new ChangeDetails();
|
|
1749
|
+
const appendEager = this.eager === true || this.eager === 'append';
|
|
1750
|
+
const appended = this.char === ch;
|
|
1751
|
+
const isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;
|
|
1752
|
+
const details = new ChangeDetails({
|
|
1753
|
+
inserted: this.char,
|
|
1754
|
+
rawInserted: isResolved ? this.char : ''
|
|
1755
|
+
});
|
|
1756
|
+
this._value = this.char;
|
|
1757
|
+
this._isRawInput = isResolved && (flags.raw || flags.input);
|
|
1758
|
+
return details;
|
|
1759
|
+
}
|
|
1760
|
+
_appendEager() {
|
|
1761
|
+
return this._appendChar(this.char, {
|
|
1762
|
+
tail: true
|
|
1763
|
+
});
|
|
1764
|
+
}
|
|
1765
|
+
_appendPlaceholder() {
|
|
1766
|
+
const details = new ChangeDetails();
|
|
1767
|
+
if (this.isFilled) return details;
|
|
1768
|
+
this._value = details.inserted = this.char;
|
|
1769
|
+
return details;
|
|
1770
|
+
}
|
|
1771
|
+
extractTail() {
|
|
1772
|
+
return new ContinuousTailDetails('');
|
|
1773
|
+
}
|
|
1774
|
+
appendTail(tail) {
|
|
1775
|
+
if (isString(tail)) tail = new ContinuousTailDetails(String(tail));
|
|
1776
|
+
return tail.appendTo(this);
|
|
1777
|
+
}
|
|
1778
|
+
append(str, flags, tail) {
|
|
1779
|
+
const details = this._appendChar(str[0], flags);
|
|
1780
|
+
if (tail != null) {
|
|
1781
|
+
details.tailShift += this.appendTail(tail).tailShift;
|
|
1782
|
+
}
|
|
1783
|
+
return details;
|
|
1784
|
+
}
|
|
1785
|
+
doCommit() {}
|
|
1786
|
+
get state() {
|
|
1787
|
+
return {
|
|
1788
|
+
_value: this._value,
|
|
1789
|
+
_rawInputValue: this.rawInputValue
|
|
1790
|
+
};
|
|
1791
|
+
}
|
|
1792
|
+
set state(state) {
|
|
1793
|
+
this._value = state._value;
|
|
1794
|
+
this._isRawInput = Boolean(state._rawInputValue);
|
|
1795
|
+
}
|
|
1796
|
+
pad(flags) {
|
|
1797
|
+
return this._appendPlaceholder();
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
class PatternInputDefinition {
|
|
1802
|
+
/** */
|
|
1803
|
+
|
|
1804
|
+
/** */
|
|
1805
|
+
|
|
1806
|
+
/** */
|
|
1807
|
+
|
|
1808
|
+
/** */
|
|
1809
|
+
|
|
1810
|
+
/** */
|
|
1811
|
+
|
|
1812
|
+
/** */
|
|
1813
|
+
|
|
1814
|
+
/** */
|
|
1815
|
+
|
|
1816
|
+
/** */
|
|
1817
|
+
|
|
1818
|
+
constructor(opts) {
|
|
1819
|
+
const {
|
|
1820
|
+
parent,
|
|
1821
|
+
isOptional,
|
|
1822
|
+
placeholderChar,
|
|
1823
|
+
displayChar,
|
|
1824
|
+
lazy,
|
|
1825
|
+
eager,
|
|
1826
|
+
...maskOpts
|
|
1827
|
+
} = opts;
|
|
1828
|
+
this.masked = createMask(maskOpts);
|
|
1829
|
+
Object.assign(this, {
|
|
1830
|
+
parent,
|
|
1831
|
+
isOptional,
|
|
1832
|
+
placeholderChar,
|
|
1833
|
+
displayChar,
|
|
1834
|
+
lazy,
|
|
1835
|
+
eager
|
|
1836
|
+
});
|
|
1837
|
+
}
|
|
1838
|
+
reset() {
|
|
1839
|
+
this.isFilled = false;
|
|
1840
|
+
this.masked.reset();
|
|
1841
|
+
}
|
|
1842
|
+
remove(fromPos, toPos) {
|
|
1843
|
+
if (fromPos === void 0) {
|
|
1844
|
+
fromPos = 0;
|
|
1845
|
+
}
|
|
1846
|
+
if (toPos === void 0) {
|
|
1847
|
+
toPos = this.value.length;
|
|
1848
|
+
}
|
|
1849
|
+
if (fromPos === 0 && toPos >= 1) {
|
|
1850
|
+
this.isFilled = false;
|
|
1851
|
+
return this.masked.remove(fromPos, toPos);
|
|
1852
|
+
}
|
|
1853
|
+
return new ChangeDetails();
|
|
1854
|
+
}
|
|
1855
|
+
get value() {
|
|
1856
|
+
return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : '');
|
|
1857
|
+
}
|
|
1858
|
+
get unmaskedValue() {
|
|
1859
|
+
return this.masked.unmaskedValue;
|
|
1860
|
+
}
|
|
1861
|
+
get rawInputValue() {
|
|
1862
|
+
return this.masked.rawInputValue;
|
|
1863
|
+
}
|
|
1864
|
+
get displayValue() {
|
|
1865
|
+
return this.masked.value && this.displayChar || this.value;
|
|
1866
|
+
}
|
|
1867
|
+
get isComplete() {
|
|
1868
|
+
return Boolean(this.masked.value) || this.isOptional;
|
|
1869
|
+
}
|
|
1870
|
+
_appendChar(ch, flags) {
|
|
1871
|
+
if (flags === void 0) {
|
|
1872
|
+
flags = {};
|
|
1873
|
+
}
|
|
1874
|
+
if (this.isFilled) return new ChangeDetails();
|
|
1875
|
+
const state = this.masked.state;
|
|
1876
|
+
// simulate input
|
|
1877
|
+
let details = this.masked._appendChar(ch, this.currentMaskFlags(flags));
|
|
1878
|
+
if (details.inserted && this.doValidate(flags) === false) {
|
|
1879
|
+
details = new ChangeDetails();
|
|
1880
|
+
this.masked.state = state;
|
|
1881
|
+
}
|
|
1882
|
+
if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {
|
|
1883
|
+
details.inserted = this.placeholderChar;
|
|
1884
|
+
}
|
|
1885
|
+
details.skip = !details.inserted && !this.isOptional;
|
|
1886
|
+
this.isFilled = Boolean(details.inserted);
|
|
1887
|
+
return details;
|
|
1888
|
+
}
|
|
1889
|
+
append(str, flags, tail) {
|
|
1890
|
+
// TODO probably should be done via _appendChar
|
|
1891
|
+
return this.masked.append(str, this.currentMaskFlags(flags), tail);
|
|
1892
|
+
}
|
|
1893
|
+
_appendPlaceholder() {
|
|
1894
|
+
if (this.isFilled || this.isOptional) return new ChangeDetails();
|
|
1895
|
+
this.isFilled = true;
|
|
1896
|
+
return new ChangeDetails({
|
|
1897
|
+
inserted: this.placeholderChar
|
|
1898
|
+
});
|
|
1899
|
+
}
|
|
1900
|
+
_appendEager() {
|
|
1901
|
+
return new ChangeDetails();
|
|
1902
|
+
}
|
|
1903
|
+
extractTail(fromPos, toPos) {
|
|
1904
|
+
return this.masked.extractTail(fromPos, toPos);
|
|
1905
|
+
}
|
|
1906
|
+
appendTail(tail) {
|
|
1907
|
+
return this.masked.appendTail(tail);
|
|
1908
|
+
}
|
|
1909
|
+
extractInput(fromPos, toPos, flags) {
|
|
1910
|
+
if (fromPos === void 0) {
|
|
1911
|
+
fromPos = 0;
|
|
1912
|
+
}
|
|
1913
|
+
if (toPos === void 0) {
|
|
1914
|
+
toPos = this.value.length;
|
|
1915
|
+
}
|
|
1916
|
+
return this.masked.extractInput(fromPos, toPos, flags);
|
|
1917
|
+
}
|
|
1918
|
+
nearestInputPos(cursorPos, direction) {
|
|
1919
|
+
if (direction === void 0) {
|
|
1920
|
+
direction = DIRECTION.NONE;
|
|
1921
|
+
}
|
|
1922
|
+
const minPos = 0;
|
|
1923
|
+
const maxPos = this.value.length;
|
|
1924
|
+
const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);
|
|
1925
|
+
switch (direction) {
|
|
1926
|
+
case DIRECTION.LEFT:
|
|
1927
|
+
case DIRECTION.FORCE_LEFT:
|
|
1928
|
+
return this.isComplete ? boundPos : minPos;
|
|
1929
|
+
case DIRECTION.RIGHT:
|
|
1930
|
+
case DIRECTION.FORCE_RIGHT:
|
|
1931
|
+
return this.isComplete ? boundPos : maxPos;
|
|
1932
|
+
case DIRECTION.NONE:
|
|
1933
|
+
default:
|
|
1934
|
+
return boundPos;
|
|
1935
|
+
}
|
|
1936
|
+
}
|
|
1937
|
+
totalInputPositions(fromPos, toPos) {
|
|
1938
|
+
if (fromPos === void 0) {
|
|
1939
|
+
fromPos = 0;
|
|
1940
|
+
}
|
|
1941
|
+
if (toPos === void 0) {
|
|
1942
|
+
toPos = this.value.length;
|
|
1943
|
+
}
|
|
1944
|
+
return this.value.slice(fromPos, toPos).length;
|
|
1945
|
+
}
|
|
1946
|
+
doValidate(flags) {
|
|
1947
|
+
return this.masked.doValidate(this.currentMaskFlags(flags)) && (!this.parent || this.parent.doValidate(this.currentMaskFlags(flags)));
|
|
1948
|
+
}
|
|
1949
|
+
doCommit() {
|
|
1950
|
+
this.masked.doCommit();
|
|
1951
|
+
}
|
|
1952
|
+
get state() {
|
|
1953
|
+
return {
|
|
1954
|
+
_value: this.value,
|
|
1955
|
+
_rawInputValue: this.rawInputValue,
|
|
1956
|
+
masked: this.masked.state,
|
|
1957
|
+
isFilled: this.isFilled
|
|
1958
|
+
};
|
|
1959
|
+
}
|
|
1960
|
+
set state(state) {
|
|
1961
|
+
this.masked.state = state.masked;
|
|
1962
|
+
this.isFilled = state.isFilled;
|
|
1963
|
+
}
|
|
1964
|
+
currentMaskFlags(flags) {
|
|
1965
|
+
var _flags$_beforeTailSta;
|
|
1966
|
+
return {
|
|
1967
|
+
...flags,
|
|
1968
|
+
_beforeTailState: (flags == null || (_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.masked) || (flags == null ? void 0 : flags._beforeTailState)
|
|
1969
|
+
};
|
|
1970
|
+
}
|
|
1971
|
+
pad(flags) {
|
|
1972
|
+
return new ChangeDetails();
|
|
1973
|
+
}
|
|
1974
|
+
}
|
|
1975
|
+
PatternInputDefinition.DEFAULT_DEFINITIONS = {
|
|
1976
|
+
'0': /\d/,
|
|
1977
|
+
'a': /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
|
|
1978
|
+
// http://stackoverflow.com/a/22075070
|
|
1979
|
+
'*': /./
|
|
1980
|
+
};
|
|
1981
|
+
|
|
1982
|
+
/** Masking by RegExp */
|
|
1983
|
+
class MaskedRegExp extends Masked {
|
|
1984
|
+
/** */
|
|
1985
|
+
|
|
1986
|
+
/** Enable characters overwriting */
|
|
1987
|
+
|
|
1988
|
+
/** */
|
|
1989
|
+
|
|
1990
|
+
/** */
|
|
1991
|
+
|
|
1992
|
+
/** */
|
|
1993
|
+
|
|
1994
|
+
updateOptions(opts) {
|
|
1995
|
+
super.updateOptions(opts);
|
|
1996
|
+
}
|
|
1997
|
+
_update(opts) {
|
|
1998
|
+
const mask = opts.mask;
|
|
1999
|
+
if (mask) opts.validate = value => value.search(mask) >= 0;
|
|
2000
|
+
super._update(opts);
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
2003
|
+
IMask.MaskedRegExp = MaskedRegExp;
|
|
2004
|
+
|
|
2005
|
+
/** Pattern mask */
|
|
2006
|
+
class MaskedPattern extends Masked {
|
|
2007
|
+
/** */
|
|
2008
|
+
|
|
2009
|
+
/** */
|
|
2010
|
+
|
|
2011
|
+
/** Single char for empty input */
|
|
2012
|
+
|
|
2013
|
+
/** Single char for filled input */
|
|
2014
|
+
|
|
2015
|
+
/** Show placeholder only when needed */
|
|
2016
|
+
|
|
2017
|
+
/** Enable characters overwriting */
|
|
2018
|
+
|
|
2019
|
+
/** */
|
|
2020
|
+
|
|
2021
|
+
/** */
|
|
2022
|
+
|
|
2023
|
+
/** */
|
|
2024
|
+
|
|
2025
|
+
constructor(opts) {
|
|
2026
|
+
super({
|
|
2027
|
+
...MaskedPattern.DEFAULTS,
|
|
2028
|
+
...opts,
|
|
2029
|
+
definitions: Object.assign({}, PatternInputDefinition.DEFAULT_DEFINITIONS, opts == null ? void 0 : opts.definitions)
|
|
2030
|
+
});
|
|
2031
|
+
}
|
|
2032
|
+
updateOptions(opts) {
|
|
2033
|
+
super.updateOptions(opts);
|
|
2034
|
+
}
|
|
2035
|
+
_update(opts) {
|
|
2036
|
+
opts.definitions = Object.assign({}, this.definitions, opts.definitions);
|
|
2037
|
+
super._update(opts);
|
|
2038
|
+
this._rebuildMask();
|
|
2039
|
+
}
|
|
2040
|
+
_rebuildMask() {
|
|
2041
|
+
const defs = this.definitions;
|
|
2042
|
+
this._blocks = [];
|
|
2043
|
+
this.exposeBlock = undefined;
|
|
2044
|
+
this._stops = [];
|
|
2045
|
+
this._maskedBlocks = {};
|
|
2046
|
+
const pattern = this.mask;
|
|
2047
|
+
if (!pattern || !defs) return;
|
|
2048
|
+
let unmaskingBlock = false;
|
|
2049
|
+
let optionalBlock = false;
|
|
2050
|
+
for (let i = 0; i < pattern.length; ++i) {
|
|
2051
|
+
if (this.blocks) {
|
|
2052
|
+
const p = pattern.slice(i);
|
|
2053
|
+
const bNames = Object.keys(this.blocks).filter(bName => p.indexOf(bName) === 0);
|
|
2054
|
+
// order by key length
|
|
2055
|
+
bNames.sort((a, b) => b.length - a.length);
|
|
2056
|
+
// use block name with max length
|
|
2057
|
+
const bName = bNames[0];
|
|
2058
|
+
if (bName) {
|
|
2059
|
+
const {
|
|
2060
|
+
expose,
|
|
2061
|
+
repeat,
|
|
2062
|
+
...bOpts
|
|
2063
|
+
} = normalizeOpts(this.blocks[bName]); // TODO type Opts<Arg & Extra>
|
|
2064
|
+
const blockOpts = {
|
|
2065
|
+
lazy: this.lazy,
|
|
2066
|
+
eager: this.eager,
|
|
2067
|
+
placeholderChar: this.placeholderChar,
|
|
2068
|
+
displayChar: this.displayChar,
|
|
2069
|
+
overwrite: this.overwrite,
|
|
2070
|
+
autofix: this.autofix,
|
|
2071
|
+
...bOpts,
|
|
2072
|
+
repeat,
|
|
2073
|
+
parent: this
|
|
2074
|
+
};
|
|
2075
|
+
const maskedBlock = repeat != null ? new IMask.RepeatBlock(blockOpts /* TODO */) : createMask(blockOpts);
|
|
2076
|
+
if (maskedBlock) {
|
|
2077
|
+
this._blocks.push(maskedBlock);
|
|
2078
|
+
if (expose) this.exposeBlock = maskedBlock;
|
|
2079
|
+
|
|
2080
|
+
// store block index
|
|
2081
|
+
if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];
|
|
2082
|
+
this._maskedBlocks[bName].push(this._blocks.length - 1);
|
|
2083
|
+
}
|
|
2084
|
+
i += bName.length - 1;
|
|
2085
|
+
continue;
|
|
2086
|
+
}
|
|
2087
|
+
}
|
|
2088
|
+
let char = pattern[i];
|
|
2089
|
+
let isInput = (char in defs);
|
|
2090
|
+
if (char === MaskedPattern.STOP_CHAR) {
|
|
2091
|
+
this._stops.push(this._blocks.length);
|
|
2092
|
+
continue;
|
|
2093
|
+
}
|
|
2094
|
+
if (char === '{' || char === '}') {
|
|
2095
|
+
unmaskingBlock = !unmaskingBlock;
|
|
2096
|
+
continue;
|
|
2097
|
+
}
|
|
2098
|
+
if (char === '[' || char === ']') {
|
|
2099
|
+
optionalBlock = !optionalBlock;
|
|
2100
|
+
continue;
|
|
2101
|
+
}
|
|
2102
|
+
if (char === MaskedPattern.ESCAPE_CHAR) {
|
|
2103
|
+
++i;
|
|
2104
|
+
char = pattern[i];
|
|
2105
|
+
if (!char) break;
|
|
2106
|
+
isInput = false;
|
|
2107
|
+
}
|
|
2108
|
+
const def = isInput ? new PatternInputDefinition({
|
|
2109
|
+
isOptional: optionalBlock,
|
|
2110
|
+
lazy: this.lazy,
|
|
2111
|
+
eager: this.eager,
|
|
2112
|
+
placeholderChar: this.placeholderChar,
|
|
2113
|
+
displayChar: this.displayChar,
|
|
2114
|
+
...normalizeOpts(defs[char]),
|
|
2115
|
+
parent: this
|
|
2116
|
+
}) : new PatternFixedDefinition({
|
|
2117
|
+
char,
|
|
2118
|
+
eager: this.eager,
|
|
2119
|
+
isUnmasking: unmaskingBlock
|
|
2120
|
+
});
|
|
2121
|
+
this._blocks.push(def);
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
get state() {
|
|
2125
|
+
return {
|
|
2126
|
+
...super.state,
|
|
2127
|
+
_blocks: this._blocks.map(b => b.state)
|
|
2128
|
+
};
|
|
2129
|
+
}
|
|
2130
|
+
set state(state) {
|
|
2131
|
+
if (!state) {
|
|
2132
|
+
this.reset();
|
|
2133
|
+
return;
|
|
2134
|
+
}
|
|
2135
|
+
const {
|
|
2136
|
+
_blocks,
|
|
2137
|
+
...maskedState
|
|
2138
|
+
} = state;
|
|
2139
|
+
this._blocks.forEach((b, bi) => b.state = _blocks[bi]);
|
|
2140
|
+
super.state = maskedState;
|
|
2141
|
+
}
|
|
2142
|
+
reset() {
|
|
2143
|
+
super.reset();
|
|
2144
|
+
this._blocks.forEach(b => b.reset());
|
|
2145
|
+
}
|
|
2146
|
+
get isComplete() {
|
|
2147
|
+
return this.exposeBlock ? this.exposeBlock.isComplete : this._blocks.every(b => b.isComplete);
|
|
2148
|
+
}
|
|
2149
|
+
get isFilled() {
|
|
2150
|
+
return this._blocks.every(b => b.isFilled);
|
|
2151
|
+
}
|
|
2152
|
+
get isFixed() {
|
|
2153
|
+
return this._blocks.every(b => b.isFixed);
|
|
2154
|
+
}
|
|
2155
|
+
get isOptional() {
|
|
2156
|
+
return this._blocks.every(b => b.isOptional);
|
|
2157
|
+
}
|
|
2158
|
+
doCommit() {
|
|
2159
|
+
this._blocks.forEach(b => b.doCommit());
|
|
2160
|
+
super.doCommit();
|
|
2161
|
+
}
|
|
2162
|
+
get unmaskedValue() {
|
|
2163
|
+
return this.exposeBlock ? this.exposeBlock.unmaskedValue : this._blocks.reduce((str, b) => str += b.unmaskedValue, '');
|
|
2164
|
+
}
|
|
2165
|
+
set unmaskedValue(unmaskedValue) {
|
|
2166
|
+
if (this.exposeBlock) {
|
|
2167
|
+
const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);
|
|
2168
|
+
this.exposeBlock.unmaskedValue = unmaskedValue;
|
|
2169
|
+
this.appendTail(tail);
|
|
2170
|
+
this.doCommit();
|
|
2171
|
+
} else super.unmaskedValue = unmaskedValue;
|
|
2172
|
+
}
|
|
2173
|
+
get value() {
|
|
2174
|
+
return this.exposeBlock ? this.exposeBlock.value :
|
|
2175
|
+
// TODO return _value when not in change?
|
|
2176
|
+
this._blocks.reduce((str, b) => str += b.value, '');
|
|
2177
|
+
}
|
|
2178
|
+
set value(value) {
|
|
2179
|
+
if (this.exposeBlock) {
|
|
2180
|
+
const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);
|
|
2181
|
+
this.exposeBlock.value = value;
|
|
2182
|
+
this.appendTail(tail);
|
|
2183
|
+
this.doCommit();
|
|
2184
|
+
} else super.value = value;
|
|
2185
|
+
}
|
|
2186
|
+
get typedValue() {
|
|
2187
|
+
return this.exposeBlock ? this.exposeBlock.typedValue : super.typedValue;
|
|
2188
|
+
}
|
|
2189
|
+
set typedValue(value) {
|
|
2190
|
+
if (this.exposeBlock) {
|
|
2191
|
+
const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);
|
|
2192
|
+
this.exposeBlock.typedValue = value;
|
|
2193
|
+
this.appendTail(tail);
|
|
2194
|
+
this.doCommit();
|
|
2195
|
+
} else super.typedValue = value;
|
|
2196
|
+
}
|
|
2197
|
+
get displayValue() {
|
|
2198
|
+
return this._blocks.reduce((str, b) => str += b.displayValue, '');
|
|
2199
|
+
}
|
|
2200
|
+
appendTail(tail) {
|
|
2201
|
+
return super.appendTail(tail).aggregate(this._appendPlaceholder());
|
|
2202
|
+
}
|
|
2203
|
+
_appendEager() {
|
|
2204
|
+
var _this$_mapPosToBlock;
|
|
2205
|
+
const details = new ChangeDetails();
|
|
2206
|
+
let startBlockIndex = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index;
|
|
2207
|
+
if (startBlockIndex == null) return details;
|
|
2208
|
+
|
|
2209
|
+
// TODO test if it works for nested pattern masks
|
|
2210
|
+
if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;
|
|
2211
|
+
for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {
|
|
2212
|
+
const d = this._blocks[bi]._appendEager();
|
|
2213
|
+
if (!d.inserted) break;
|
|
2214
|
+
details.aggregate(d);
|
|
2215
|
+
}
|
|
2216
|
+
return details;
|
|
2217
|
+
}
|
|
2218
|
+
_appendCharRaw(ch, flags) {
|
|
2219
|
+
if (flags === void 0) {
|
|
2220
|
+
flags = {};
|
|
2221
|
+
}
|
|
2222
|
+
const blockIter = this._mapPosToBlock(this.displayValue.length);
|
|
2223
|
+
const details = new ChangeDetails();
|
|
2224
|
+
if (!blockIter) return details;
|
|
2225
|
+
for (let bi = blockIter.index, block; block = this._blocks[bi]; ++bi) {
|
|
2226
|
+
var _flags$_beforeTailSta;
|
|
2227
|
+
const blockDetails = block._appendChar(ch, {
|
|
2228
|
+
...flags,
|
|
2229
|
+
_beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]
|
|
2230
|
+
});
|
|
2231
|
+
details.aggregate(blockDetails);
|
|
2232
|
+
if (blockDetails.consumed) break; // go next char
|
|
2233
|
+
}
|
|
2234
|
+
return details;
|
|
2235
|
+
}
|
|
2236
|
+
extractTail(fromPos, toPos) {
|
|
2237
|
+
if (fromPos === void 0) {
|
|
2238
|
+
fromPos = 0;
|
|
2239
|
+
}
|
|
2240
|
+
if (toPos === void 0) {
|
|
2241
|
+
toPos = this.displayValue.length;
|
|
2242
|
+
}
|
|
2243
|
+
const chunkTail = new ChunksTailDetails();
|
|
2244
|
+
if (fromPos === toPos) return chunkTail;
|
|
2245
|
+
this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {
|
|
2246
|
+
const blockChunk = b.extractTail(bFromPos, bToPos);
|
|
2247
|
+
blockChunk.stop = this._findStopBefore(bi);
|
|
2248
|
+
blockChunk.from = this._blockStartPos(bi);
|
|
2249
|
+
if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;
|
|
2250
|
+
chunkTail.extend(blockChunk);
|
|
2251
|
+
});
|
|
2252
|
+
return chunkTail;
|
|
2253
|
+
}
|
|
2254
|
+
extractInput(fromPos, toPos, flags) {
|
|
2255
|
+
if (fromPos === void 0) {
|
|
2256
|
+
fromPos = 0;
|
|
2257
|
+
}
|
|
2258
|
+
if (toPos === void 0) {
|
|
2259
|
+
toPos = this.displayValue.length;
|
|
2260
|
+
}
|
|
2261
|
+
if (flags === void 0) {
|
|
2262
|
+
flags = {};
|
|
2263
|
+
}
|
|
2264
|
+
if (fromPos === toPos) return '';
|
|
2265
|
+
let input = '';
|
|
2266
|
+
this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {
|
|
2267
|
+
input += b.extractInput(fromPos, toPos, flags);
|
|
2268
|
+
});
|
|
2269
|
+
return input;
|
|
2270
|
+
}
|
|
2271
|
+
_findStopBefore(blockIndex) {
|
|
2272
|
+
let stopBefore;
|
|
2273
|
+
for (let si = 0; si < this._stops.length; ++si) {
|
|
2274
|
+
const stop = this._stops[si];
|
|
2275
|
+
if (stop <= blockIndex) stopBefore = stop;else break;
|
|
2276
|
+
}
|
|
2277
|
+
return stopBefore;
|
|
2278
|
+
}
|
|
2279
|
+
|
|
2280
|
+
/** Appends placeholder depending on laziness */
|
|
2281
|
+
_appendPlaceholder(toBlockIndex) {
|
|
2282
|
+
const details = new ChangeDetails();
|
|
2283
|
+
if (this.lazy && toBlockIndex == null) return details;
|
|
2284
|
+
const startBlockIter = this._mapPosToBlock(this.displayValue.length);
|
|
2285
|
+
if (!startBlockIter) return details;
|
|
2286
|
+
const startBlockIndex = startBlockIter.index;
|
|
2287
|
+
const endBlockIndex = toBlockIndex != null ? toBlockIndex : this._blocks.length;
|
|
2288
|
+
this._blocks.slice(startBlockIndex, endBlockIndex).forEach(b => {
|
|
2289
|
+
if (!b.lazy || toBlockIndex != null) {
|
|
2290
|
+
var _blocks2;
|
|
2291
|
+
details.aggregate(b._appendPlaceholder((_blocks2 = b._blocks) == null ? void 0 : _blocks2.length));
|
|
2292
|
+
}
|
|
2293
|
+
});
|
|
2294
|
+
return details;
|
|
2295
|
+
}
|
|
2296
|
+
|
|
2297
|
+
/** Finds block in pos */
|
|
2298
|
+
_mapPosToBlock(pos) {
|
|
2299
|
+
let accVal = '';
|
|
2300
|
+
for (let bi = 0; bi < this._blocks.length; ++bi) {
|
|
2301
|
+
const block = this._blocks[bi];
|
|
2302
|
+
const blockStartPos = accVal.length;
|
|
2303
|
+
accVal += block.displayValue;
|
|
2304
|
+
if (pos <= accVal.length) {
|
|
2305
|
+
return {
|
|
2306
|
+
index: bi,
|
|
2307
|
+
offset: pos - blockStartPos
|
|
2308
|
+
};
|
|
2309
|
+
}
|
|
2310
|
+
}
|
|
2311
|
+
}
|
|
2312
|
+
_blockStartPos(blockIndex) {
|
|
2313
|
+
return this._blocks.slice(0, blockIndex).reduce((pos, b) => pos += b.displayValue.length, 0);
|
|
2314
|
+
}
|
|
2315
|
+
_forEachBlocksInRange(fromPos, toPos, fn) {
|
|
2316
|
+
if (toPos === void 0) {
|
|
2317
|
+
toPos = this.displayValue.length;
|
|
2318
|
+
}
|
|
2319
|
+
const fromBlockIter = this._mapPosToBlock(fromPos);
|
|
2320
|
+
if (fromBlockIter) {
|
|
2321
|
+
const toBlockIter = this._mapPosToBlock(toPos);
|
|
2322
|
+
// process first block
|
|
2323
|
+
const isSameBlock = toBlockIter && fromBlockIter.index === toBlockIter.index;
|
|
2324
|
+
const fromBlockStartPos = fromBlockIter.offset;
|
|
2325
|
+
const fromBlockEndPos = toBlockIter && isSameBlock ? toBlockIter.offset : this._blocks[fromBlockIter.index].displayValue.length;
|
|
2326
|
+
fn(this._blocks[fromBlockIter.index], fromBlockIter.index, fromBlockStartPos, fromBlockEndPos);
|
|
2327
|
+
if (toBlockIter && !isSameBlock) {
|
|
2328
|
+
// process intermediate blocks
|
|
2329
|
+
for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {
|
|
2330
|
+
fn(this._blocks[bi], bi, 0, this._blocks[bi].displayValue.length);
|
|
2331
|
+
}
|
|
2332
|
+
|
|
2333
|
+
// process last block
|
|
2334
|
+
fn(this._blocks[toBlockIter.index], toBlockIter.index, 0, toBlockIter.offset);
|
|
2335
|
+
}
|
|
2336
|
+
}
|
|
2337
|
+
}
|
|
2338
|
+
remove(fromPos, toPos) {
|
|
2339
|
+
if (fromPos === void 0) {
|
|
2340
|
+
fromPos = 0;
|
|
2341
|
+
}
|
|
2342
|
+
if (toPos === void 0) {
|
|
2343
|
+
toPos = this.displayValue.length;
|
|
2344
|
+
}
|
|
2345
|
+
const removeDetails = super.remove(fromPos, toPos);
|
|
2346
|
+
this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {
|
|
2347
|
+
removeDetails.aggregate(b.remove(bFromPos, bToPos));
|
|
2348
|
+
});
|
|
2349
|
+
return removeDetails;
|
|
2350
|
+
}
|
|
2351
|
+
nearestInputPos(cursorPos, direction) {
|
|
2352
|
+
if (direction === void 0) {
|
|
2353
|
+
direction = DIRECTION.NONE;
|
|
2354
|
+
}
|
|
2355
|
+
if (!this._blocks.length) return 0;
|
|
2356
|
+
const cursor = new PatternCursor(this, cursorPos);
|
|
2357
|
+
if (direction === DIRECTION.NONE) {
|
|
2358
|
+
// -------------------------------------------------
|
|
2359
|
+
// NONE should only go out from fixed to the right!
|
|
2360
|
+
// -------------------------------------------------
|
|
2361
|
+
if (cursor.pushRightBeforeInput()) return cursor.pos;
|
|
2362
|
+
cursor.popState();
|
|
2363
|
+
if (cursor.pushLeftBeforeInput()) return cursor.pos;
|
|
2364
|
+
return this.displayValue.length;
|
|
2365
|
+
}
|
|
2366
|
+
|
|
2367
|
+
// FORCE is only about a|* otherwise is 0
|
|
2368
|
+
if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {
|
|
2369
|
+
// try to break fast when *|a
|
|
2370
|
+
if (direction === DIRECTION.LEFT) {
|
|
2371
|
+
cursor.pushRightBeforeFilled();
|
|
2372
|
+
if (cursor.ok && cursor.pos === cursorPos) return cursorPos;
|
|
2373
|
+
cursor.popState();
|
|
2374
|
+
}
|
|
2375
|
+
|
|
2376
|
+
// forward flow
|
|
2377
|
+
cursor.pushLeftBeforeInput();
|
|
2378
|
+
cursor.pushLeftBeforeRequired();
|
|
2379
|
+
cursor.pushLeftBeforeFilled();
|
|
2380
|
+
|
|
2381
|
+
// backward flow
|
|
2382
|
+
if (direction === DIRECTION.LEFT) {
|
|
2383
|
+
cursor.pushRightBeforeInput();
|
|
2384
|
+
cursor.pushRightBeforeRequired();
|
|
2385
|
+
if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;
|
|
2386
|
+
cursor.popState();
|
|
2387
|
+
if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;
|
|
2388
|
+
cursor.popState();
|
|
2389
|
+
}
|
|
2390
|
+
if (cursor.ok) return cursor.pos;
|
|
2391
|
+
if (direction === DIRECTION.FORCE_LEFT) return 0;
|
|
2392
|
+
cursor.popState();
|
|
2393
|
+
if (cursor.ok) return cursor.pos;
|
|
2394
|
+
cursor.popState();
|
|
2395
|
+
if (cursor.ok) return cursor.pos;
|
|
2396
|
+
return 0;
|
|
2397
|
+
}
|
|
2398
|
+
if (direction === DIRECTION.RIGHT || direction === DIRECTION.FORCE_RIGHT) {
|
|
2399
|
+
// forward flow
|
|
2400
|
+
cursor.pushRightBeforeInput();
|
|
2401
|
+
cursor.pushRightBeforeRequired();
|
|
2402
|
+
if (cursor.pushRightBeforeFilled()) return cursor.pos;
|
|
2403
|
+
if (direction === DIRECTION.FORCE_RIGHT) return this.displayValue.length;
|
|
2404
|
+
|
|
2405
|
+
// backward flow
|
|
2406
|
+
cursor.popState();
|
|
2407
|
+
if (cursor.ok) return cursor.pos;
|
|
2408
|
+
cursor.popState();
|
|
2409
|
+
if (cursor.ok) return cursor.pos;
|
|
2410
|
+
return this.nearestInputPos(cursorPos, DIRECTION.LEFT);
|
|
2411
|
+
}
|
|
2412
|
+
return cursorPos;
|
|
2413
|
+
}
|
|
2414
|
+
totalInputPositions(fromPos, toPos) {
|
|
2415
|
+
if (fromPos === void 0) {
|
|
2416
|
+
fromPos = 0;
|
|
2417
|
+
}
|
|
2418
|
+
if (toPos === void 0) {
|
|
2419
|
+
toPos = this.displayValue.length;
|
|
2420
|
+
}
|
|
2421
|
+
let total = 0;
|
|
2422
|
+
this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {
|
|
2423
|
+
total += b.totalInputPositions(bFromPos, bToPos);
|
|
2424
|
+
});
|
|
2425
|
+
return total;
|
|
2426
|
+
}
|
|
2427
|
+
|
|
2428
|
+
/** Get block by name */
|
|
2429
|
+
maskedBlock(name) {
|
|
2430
|
+
return this.maskedBlocks(name)[0];
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
/** Get all blocks by name */
|
|
2434
|
+
maskedBlocks(name) {
|
|
2435
|
+
const indices = this._maskedBlocks[name];
|
|
2436
|
+
if (!indices) return [];
|
|
2437
|
+
return indices.map(gi => this._blocks[gi]);
|
|
2438
|
+
}
|
|
2439
|
+
pad(flags) {
|
|
2440
|
+
const details = new ChangeDetails();
|
|
2441
|
+
this._forEachBlocksInRange(0, this.displayValue.length, b => details.aggregate(b.pad(flags)));
|
|
2442
|
+
return details;
|
|
2443
|
+
}
|
|
2444
|
+
}
|
|
2445
|
+
MaskedPattern.DEFAULTS = {
|
|
2446
|
+
...Masked.DEFAULTS,
|
|
2447
|
+
lazy: true,
|
|
2448
|
+
placeholderChar: '_'
|
|
2449
|
+
};
|
|
2450
|
+
MaskedPattern.STOP_CHAR = '`';
|
|
2451
|
+
MaskedPattern.ESCAPE_CHAR = '\\';
|
|
2452
|
+
MaskedPattern.InputDefinition = PatternInputDefinition;
|
|
2453
|
+
MaskedPattern.FixedDefinition = PatternFixedDefinition;
|
|
2454
|
+
IMask.MaskedPattern = MaskedPattern;
|
|
2455
|
+
|
|
2456
|
+
/** Pattern which accepts ranges */
|
|
2457
|
+
class MaskedRange extends MaskedPattern {
|
|
2458
|
+
/**
|
|
2459
|
+
Optionally sets max length of pattern.
|
|
2460
|
+
Used when pattern length is longer then `to` param length. Pads zeros at start in this case.
|
|
2461
|
+
*/
|
|
2462
|
+
|
|
2463
|
+
/** Min bound */
|
|
2464
|
+
|
|
2465
|
+
/** Max bound */
|
|
2466
|
+
|
|
2467
|
+
get _matchFrom() {
|
|
2468
|
+
return this.maxLength - String(this.from).length;
|
|
2469
|
+
}
|
|
2470
|
+
constructor(opts) {
|
|
2471
|
+
super(opts); // mask will be created in _update
|
|
2472
|
+
}
|
|
2473
|
+
updateOptions(opts) {
|
|
2474
|
+
super.updateOptions(opts);
|
|
2475
|
+
}
|
|
2476
|
+
_update(opts) {
|
|
2477
|
+
const {
|
|
2478
|
+
to = this.to || 0,
|
|
2479
|
+
from = this.from || 0,
|
|
2480
|
+
maxLength = this.maxLength || 0,
|
|
2481
|
+
autofix = this.autofix,
|
|
2482
|
+
...patternOpts
|
|
2483
|
+
} = opts;
|
|
2484
|
+
this.to = to;
|
|
2485
|
+
this.from = from;
|
|
2486
|
+
this.maxLength = Math.max(String(to).length, maxLength);
|
|
2487
|
+
this.autofix = autofix;
|
|
2488
|
+
const fromStr = String(this.from).padStart(this.maxLength, '0');
|
|
2489
|
+
const toStr = String(this.to).padStart(this.maxLength, '0');
|
|
2490
|
+
let sameCharsCount = 0;
|
|
2491
|
+
while (sameCharsCount < toStr.length && toStr[sameCharsCount] === fromStr[sameCharsCount]) ++sameCharsCount;
|
|
2492
|
+
patternOpts.mask = toStr.slice(0, sameCharsCount).replace(/0/g, '\\0') + '0'.repeat(this.maxLength - sameCharsCount);
|
|
2493
|
+
super._update(patternOpts);
|
|
2494
|
+
}
|
|
2495
|
+
get isComplete() {
|
|
2496
|
+
return super.isComplete && Boolean(this.value);
|
|
2497
|
+
}
|
|
2498
|
+
boundaries(str) {
|
|
2499
|
+
let minstr = '';
|
|
2500
|
+
let maxstr = '';
|
|
2501
|
+
const [, placeholder, num] = str.match(/^(\D*)(\d*)(\D*)/) || [];
|
|
2502
|
+
if (num) {
|
|
2503
|
+
minstr = '0'.repeat(placeholder.length) + num;
|
|
2504
|
+
maxstr = '9'.repeat(placeholder.length) + num;
|
|
2505
|
+
}
|
|
2506
|
+
minstr = minstr.padEnd(this.maxLength, '0');
|
|
2507
|
+
maxstr = maxstr.padEnd(this.maxLength, '9');
|
|
2508
|
+
return [minstr, maxstr];
|
|
2509
|
+
}
|
|
2510
|
+
doPrepareChar(ch, flags) {
|
|
2511
|
+
if (flags === void 0) {
|
|
2512
|
+
flags = {};
|
|
2513
|
+
}
|
|
2514
|
+
let details;
|
|
2515
|
+
[ch, details] = super.doPrepareChar(ch.replace(/\D/g, ''), flags);
|
|
2516
|
+
if (!ch) details.skip = !this.isComplete;
|
|
2517
|
+
return [ch, details];
|
|
2518
|
+
}
|
|
2519
|
+
_appendCharRaw(ch, flags) {
|
|
2520
|
+
if (flags === void 0) {
|
|
2521
|
+
flags = {};
|
|
2522
|
+
}
|
|
2523
|
+
if (!this.autofix || this.value.length + 1 > this.maxLength) return super._appendCharRaw(ch, flags);
|
|
2524
|
+
const fromStr = String(this.from).padStart(this.maxLength, '0');
|
|
2525
|
+
const toStr = String(this.to).padStart(this.maxLength, '0');
|
|
2526
|
+
const [minstr, maxstr] = this.boundaries(this.value + ch);
|
|
2527
|
+
if (Number(maxstr) < this.from) return super._appendCharRaw(fromStr[this.value.length], flags);
|
|
2528
|
+
if (Number(minstr) > this.to) {
|
|
2529
|
+
if (!flags.tail && this.autofix === 'pad' && this.value.length + 1 < this.maxLength) {
|
|
2530
|
+
return super._appendCharRaw(fromStr[this.value.length], flags).aggregate(this._appendCharRaw(ch, flags));
|
|
2531
|
+
}
|
|
2532
|
+
return super._appendCharRaw(toStr[this.value.length], flags);
|
|
2533
|
+
}
|
|
2534
|
+
return super._appendCharRaw(ch, flags);
|
|
2535
|
+
}
|
|
2536
|
+
doValidate(flags) {
|
|
2537
|
+
const str = this.value;
|
|
2538
|
+
const firstNonZero = str.search(/[^0]/);
|
|
2539
|
+
if (firstNonZero === -1 && str.length <= this._matchFrom) return true;
|
|
2540
|
+
const [minstr, maxstr] = this.boundaries(str);
|
|
2541
|
+
return this.from <= Number(maxstr) && Number(minstr) <= this.to && super.doValidate(flags);
|
|
2542
|
+
}
|
|
2543
|
+
pad(flags) {
|
|
2544
|
+
const details = new ChangeDetails();
|
|
2545
|
+
if (this.value.length === this.maxLength) return details;
|
|
2546
|
+
const value = this.value;
|
|
2547
|
+
const padLength = this.maxLength - this.value.length;
|
|
2548
|
+
if (padLength) {
|
|
2549
|
+
this.reset();
|
|
2550
|
+
for (let i = 0; i < padLength; ++i) {
|
|
2551
|
+
details.aggregate(super._appendCharRaw('0', flags));
|
|
2552
|
+
}
|
|
2553
|
+
|
|
2554
|
+
// append tail
|
|
2555
|
+
value.split('').forEach(ch => this._appendCharRaw(ch));
|
|
2556
|
+
}
|
|
2557
|
+
return details;
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
IMask.MaskedRange = MaskedRange;
|
|
2561
|
+
|
|
2562
|
+
const DefaultPattern = 'd{.}`m{.}`Y';
|
|
2563
|
+
|
|
2564
|
+
// Make format and parse required when pattern is provided
|
|
2565
|
+
|
|
2566
|
+
/** Date mask */
|
|
2567
|
+
class MaskedDate extends MaskedPattern {
|
|
2568
|
+
static extractPatternOptions(opts) {
|
|
2569
|
+
const {
|
|
2570
|
+
mask,
|
|
2571
|
+
pattern,
|
|
2572
|
+
...patternOpts
|
|
2573
|
+
} = opts;
|
|
2574
|
+
return {
|
|
2575
|
+
...patternOpts,
|
|
2576
|
+
mask: isString(mask) ? mask : pattern
|
|
2577
|
+
};
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
/** Pattern mask for date according to {@link MaskedDate#format} */
|
|
2581
|
+
|
|
2582
|
+
/** Start date */
|
|
2583
|
+
|
|
2584
|
+
/** End date */
|
|
2585
|
+
|
|
2586
|
+
/** Format typed value to string */
|
|
2587
|
+
|
|
2588
|
+
/** Parse string to get typed value */
|
|
2589
|
+
|
|
2590
|
+
constructor(opts) {
|
|
2591
|
+
super(MaskedDate.extractPatternOptions({
|
|
2592
|
+
...MaskedDate.DEFAULTS,
|
|
2593
|
+
...opts
|
|
2594
|
+
}));
|
|
2595
|
+
}
|
|
2596
|
+
updateOptions(opts) {
|
|
2597
|
+
super.updateOptions(opts);
|
|
2598
|
+
}
|
|
2599
|
+
_update(opts) {
|
|
2600
|
+
const {
|
|
2601
|
+
mask,
|
|
2602
|
+
pattern,
|
|
2603
|
+
blocks,
|
|
2604
|
+
...patternOpts
|
|
2605
|
+
} = {
|
|
2606
|
+
...MaskedDate.DEFAULTS,
|
|
2607
|
+
...opts
|
|
2608
|
+
};
|
|
2609
|
+
const patternBlocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());
|
|
2610
|
+
// adjust year block
|
|
2611
|
+
if (opts.min) patternBlocks.Y.from = opts.min.getFullYear();
|
|
2612
|
+
if (opts.max) patternBlocks.Y.to = opts.max.getFullYear();
|
|
2613
|
+
if (opts.min && opts.max && patternBlocks.Y.from === patternBlocks.Y.to) {
|
|
2614
|
+
patternBlocks.m.from = opts.min.getMonth() + 1;
|
|
2615
|
+
patternBlocks.m.to = opts.max.getMonth() + 1;
|
|
2616
|
+
if (patternBlocks.m.from === patternBlocks.m.to) {
|
|
2617
|
+
patternBlocks.d.from = opts.min.getDate();
|
|
2618
|
+
patternBlocks.d.to = opts.max.getDate();
|
|
2619
|
+
}
|
|
2620
|
+
}
|
|
2621
|
+
Object.assign(patternBlocks, this.blocks, blocks);
|
|
2622
|
+
super._update({
|
|
2623
|
+
...patternOpts,
|
|
2624
|
+
mask: isString(mask) ? mask : pattern,
|
|
2625
|
+
blocks: patternBlocks
|
|
2626
|
+
});
|
|
2627
|
+
}
|
|
2628
|
+
doValidate(flags) {
|
|
2629
|
+
const date = this.date;
|
|
2630
|
+
return super.doValidate(flags) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));
|
|
2631
|
+
}
|
|
2632
|
+
|
|
2633
|
+
/** Checks if date is exists */
|
|
2634
|
+
isDateExist(str) {
|
|
2635
|
+
return this.format(this.parse(str, this), this).indexOf(str) >= 0;
|
|
2636
|
+
}
|
|
2637
|
+
|
|
2638
|
+
/** Parsed Date */
|
|
2639
|
+
get date() {
|
|
2640
|
+
return this.typedValue;
|
|
2641
|
+
}
|
|
2642
|
+
set date(date) {
|
|
2643
|
+
this.typedValue = date;
|
|
2644
|
+
}
|
|
2645
|
+
get typedValue() {
|
|
2646
|
+
return this.isComplete ? super.typedValue : null;
|
|
2647
|
+
}
|
|
2648
|
+
set typedValue(value) {
|
|
2649
|
+
super.typedValue = value;
|
|
2650
|
+
}
|
|
2651
|
+
maskEquals(mask) {
|
|
2652
|
+
return mask === Date || super.maskEquals(mask);
|
|
2653
|
+
}
|
|
2654
|
+
optionsIsChanged(opts) {
|
|
2655
|
+
return super.optionsIsChanged(MaskedDate.extractPatternOptions(opts));
|
|
2656
|
+
}
|
|
2657
|
+
}
|
|
2658
|
+
MaskedDate.GET_DEFAULT_BLOCKS = () => ({
|
|
2659
|
+
d: {
|
|
2660
|
+
mask: MaskedRange,
|
|
2661
|
+
from: 1,
|
|
2662
|
+
to: 31,
|
|
2663
|
+
maxLength: 2
|
|
2664
|
+
},
|
|
2665
|
+
m: {
|
|
2666
|
+
mask: MaskedRange,
|
|
2667
|
+
from: 1,
|
|
2668
|
+
to: 12,
|
|
2669
|
+
maxLength: 2
|
|
2670
|
+
},
|
|
2671
|
+
Y: {
|
|
2672
|
+
mask: MaskedRange,
|
|
2673
|
+
from: 1900,
|
|
2674
|
+
to: 9999
|
|
2675
|
+
}
|
|
2676
|
+
});
|
|
2677
|
+
MaskedDate.DEFAULTS = {
|
|
2678
|
+
...MaskedPattern.DEFAULTS,
|
|
2679
|
+
mask: Date,
|
|
2680
|
+
pattern: DefaultPattern,
|
|
2681
|
+
format: (date, masked) => {
|
|
2682
|
+
if (!date) return '';
|
|
2683
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
2684
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
2685
|
+
const year = date.getFullYear();
|
|
2686
|
+
return [day, month, year].join('.');
|
|
2687
|
+
},
|
|
2688
|
+
parse: (str, masked) => {
|
|
2689
|
+
const [day, month, year] = str.split('.').map(Number);
|
|
2690
|
+
return new Date(year, month - 1, day);
|
|
2691
|
+
}
|
|
2692
|
+
};
|
|
2693
|
+
IMask.MaskedDate = MaskedDate;
|
|
2694
|
+
|
|
2695
|
+
/** Dynamic mask for choosing appropriate mask in run-time */
|
|
2696
|
+
class MaskedDynamic extends Masked {
|
|
2697
|
+
constructor(opts) {
|
|
2698
|
+
super({
|
|
2699
|
+
...MaskedDynamic.DEFAULTS,
|
|
2700
|
+
...opts
|
|
2701
|
+
});
|
|
2702
|
+
this.currentMask = undefined;
|
|
2703
|
+
}
|
|
2704
|
+
updateOptions(opts) {
|
|
2705
|
+
super.updateOptions(opts);
|
|
2706
|
+
}
|
|
2707
|
+
_update(opts) {
|
|
2708
|
+
super._update(opts);
|
|
2709
|
+
if ('mask' in opts) {
|
|
2710
|
+
this.exposeMask = undefined;
|
|
2711
|
+
// mask could be totally dynamic with only `dispatch` option
|
|
2712
|
+
this.compiledMasks = Array.isArray(opts.mask) ? opts.mask.map(m => {
|
|
2713
|
+
const {
|
|
2714
|
+
expose,
|
|
2715
|
+
...maskOpts
|
|
2716
|
+
} = normalizeOpts(m);
|
|
2717
|
+
const masked = createMask({
|
|
2718
|
+
overwrite: this._overwrite,
|
|
2719
|
+
eager: this._eager,
|
|
2720
|
+
skipInvalid: this._skipInvalid,
|
|
2721
|
+
...maskOpts
|
|
2722
|
+
});
|
|
2723
|
+
if (expose) this.exposeMask = masked;
|
|
2724
|
+
return masked;
|
|
2725
|
+
}) : [];
|
|
2726
|
+
|
|
2727
|
+
// this.currentMask = this.doDispatch(''); // probably not needed but lets see
|
|
2728
|
+
}
|
|
2729
|
+
}
|
|
2730
|
+
_appendCharRaw(ch, flags) {
|
|
2731
|
+
if (flags === void 0) {
|
|
2732
|
+
flags = {};
|
|
2733
|
+
}
|
|
2734
|
+
const details = this._applyDispatch(ch, flags);
|
|
2735
|
+
if (this.currentMask) {
|
|
2736
|
+
details.aggregate(this.currentMask._appendChar(ch, this.currentMaskFlags(flags)));
|
|
2737
|
+
}
|
|
2738
|
+
return details;
|
|
2739
|
+
}
|
|
2740
|
+
_applyDispatch(appended, flags, tail) {
|
|
2741
|
+
if (appended === void 0) {
|
|
2742
|
+
appended = '';
|
|
2743
|
+
}
|
|
2744
|
+
if (flags === void 0) {
|
|
2745
|
+
flags = {};
|
|
2746
|
+
}
|
|
2747
|
+
if (tail === void 0) {
|
|
2748
|
+
tail = '';
|
|
2749
|
+
}
|
|
2750
|
+
const prevValueBeforeTail = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._value : this.value;
|
|
2751
|
+
const inputValue = this.rawInputValue;
|
|
2752
|
+
const insertValue = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._rawInputValue : inputValue;
|
|
2753
|
+
const tailValue = inputValue.slice(insertValue.length);
|
|
2754
|
+
const prevMask = this.currentMask;
|
|
2755
|
+
const details = new ChangeDetails();
|
|
2756
|
+
const prevMaskState = prevMask == null ? void 0 : prevMask.state;
|
|
2757
|
+
|
|
2758
|
+
// clone flags to prevent overwriting `_beforeTailState`
|
|
2759
|
+
this.currentMask = this.doDispatch(appended, {
|
|
2760
|
+
...flags
|
|
2761
|
+
}, tail);
|
|
2762
|
+
|
|
2763
|
+
// restore state after dispatch
|
|
2764
|
+
if (this.currentMask) {
|
|
2765
|
+
if (this.currentMask !== prevMask) {
|
|
2766
|
+
// if mask changed reapply input
|
|
2767
|
+
this.currentMask.reset();
|
|
2768
|
+
if (insertValue) {
|
|
2769
|
+
this.currentMask.append(insertValue, {
|
|
2770
|
+
raw: true
|
|
2771
|
+
});
|
|
2772
|
+
details.tailShift = this.currentMask.value.length - prevValueBeforeTail.length;
|
|
2773
|
+
}
|
|
2774
|
+
if (tailValue) {
|
|
2775
|
+
details.tailShift += this.currentMask.append(tailValue, {
|
|
2776
|
+
raw: true,
|
|
2777
|
+
tail: true
|
|
2778
|
+
}).tailShift;
|
|
2779
|
+
}
|
|
2780
|
+
} else if (prevMaskState) {
|
|
2781
|
+
// Dispatch can do something bad with state, so
|
|
2782
|
+
// restore prev mask state
|
|
2783
|
+
this.currentMask.state = prevMaskState;
|
|
2784
|
+
}
|
|
2785
|
+
}
|
|
2786
|
+
return details;
|
|
2787
|
+
}
|
|
2788
|
+
_appendPlaceholder() {
|
|
2789
|
+
const details = this._applyDispatch();
|
|
2790
|
+
if (this.currentMask) {
|
|
2791
|
+
details.aggregate(this.currentMask._appendPlaceholder());
|
|
2792
|
+
}
|
|
2793
|
+
return details;
|
|
2794
|
+
}
|
|
2795
|
+
_appendEager() {
|
|
2796
|
+
const details = this._applyDispatch();
|
|
2797
|
+
if (this.currentMask) {
|
|
2798
|
+
details.aggregate(this.currentMask._appendEager());
|
|
2799
|
+
}
|
|
2800
|
+
return details;
|
|
2801
|
+
}
|
|
2802
|
+
appendTail(tail) {
|
|
2803
|
+
const details = new ChangeDetails();
|
|
2804
|
+
if (tail) details.aggregate(this._applyDispatch('', {}, tail));
|
|
2805
|
+
return details.aggregate(this.currentMask ? this.currentMask.appendTail(tail) : super.appendTail(tail));
|
|
2806
|
+
}
|
|
2807
|
+
currentMaskFlags(flags) {
|
|
2808
|
+
var _flags$_beforeTailSta, _flags$_beforeTailSta2;
|
|
2809
|
+
return {
|
|
2810
|
+
...flags,
|
|
2811
|
+
_beforeTailState: ((_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.currentMaskRef) === this.currentMask && ((_flags$_beforeTailSta2 = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta2.currentMask) || flags._beforeTailState
|
|
2812
|
+
};
|
|
2813
|
+
}
|
|
2814
|
+
doDispatch(appended, flags, tail) {
|
|
2815
|
+
if (flags === void 0) {
|
|
2816
|
+
flags = {};
|
|
2817
|
+
}
|
|
2818
|
+
if (tail === void 0) {
|
|
2819
|
+
tail = '';
|
|
2820
|
+
}
|
|
2821
|
+
return this.dispatch(appended, this, flags, tail);
|
|
2822
|
+
}
|
|
2823
|
+
doValidate(flags) {
|
|
2824
|
+
return super.doValidate(flags) && (!this.currentMask || this.currentMask.doValidate(this.currentMaskFlags(flags)));
|
|
2825
|
+
}
|
|
2826
|
+
doPrepare(str, flags) {
|
|
2827
|
+
if (flags === void 0) {
|
|
2828
|
+
flags = {};
|
|
2829
|
+
}
|
|
2830
|
+
let [s, details] = super.doPrepare(str, flags);
|
|
2831
|
+
if (this.currentMask) {
|
|
2832
|
+
let currentDetails;
|
|
2833
|
+
[s, currentDetails] = super.doPrepare(s, this.currentMaskFlags(flags));
|
|
2834
|
+
details = details.aggregate(currentDetails);
|
|
2835
|
+
}
|
|
2836
|
+
return [s, details];
|
|
2837
|
+
}
|
|
2838
|
+
doPrepareChar(str, flags) {
|
|
2839
|
+
if (flags === void 0) {
|
|
2840
|
+
flags = {};
|
|
2841
|
+
}
|
|
2842
|
+
let [s, details] = super.doPrepareChar(str, flags);
|
|
2843
|
+
if (this.currentMask) {
|
|
2844
|
+
let currentDetails;
|
|
2845
|
+
[s, currentDetails] = super.doPrepareChar(s, this.currentMaskFlags(flags));
|
|
2846
|
+
details = details.aggregate(currentDetails);
|
|
2847
|
+
}
|
|
2848
|
+
return [s, details];
|
|
2849
|
+
}
|
|
2850
|
+
reset() {
|
|
2851
|
+
var _this$currentMask;
|
|
2852
|
+
(_this$currentMask = this.currentMask) == null || _this$currentMask.reset();
|
|
2853
|
+
this.compiledMasks.forEach(m => m.reset());
|
|
2854
|
+
}
|
|
2855
|
+
get value() {
|
|
2856
|
+
return this.exposeMask ? this.exposeMask.value : this.currentMask ? this.currentMask.value : '';
|
|
2857
|
+
}
|
|
2858
|
+
set value(value) {
|
|
2859
|
+
if (this.exposeMask) {
|
|
2860
|
+
this.exposeMask.value = value;
|
|
2861
|
+
this.currentMask = this.exposeMask;
|
|
2862
|
+
this._applyDispatch();
|
|
2863
|
+
} else super.value = value;
|
|
2864
|
+
}
|
|
2865
|
+
get unmaskedValue() {
|
|
2866
|
+
return this.exposeMask ? this.exposeMask.unmaskedValue : this.currentMask ? this.currentMask.unmaskedValue : '';
|
|
2867
|
+
}
|
|
2868
|
+
set unmaskedValue(unmaskedValue) {
|
|
2869
|
+
if (this.exposeMask) {
|
|
2870
|
+
this.exposeMask.unmaskedValue = unmaskedValue;
|
|
2871
|
+
this.currentMask = this.exposeMask;
|
|
2872
|
+
this._applyDispatch();
|
|
2873
|
+
} else super.unmaskedValue = unmaskedValue;
|
|
2874
|
+
}
|
|
2875
|
+
get typedValue() {
|
|
2876
|
+
return this.exposeMask ? this.exposeMask.typedValue : this.currentMask ? this.currentMask.typedValue : '';
|
|
2877
|
+
}
|
|
2878
|
+
set typedValue(typedValue) {
|
|
2879
|
+
if (this.exposeMask) {
|
|
2880
|
+
this.exposeMask.typedValue = typedValue;
|
|
2881
|
+
this.currentMask = this.exposeMask;
|
|
2882
|
+
this._applyDispatch();
|
|
2883
|
+
return;
|
|
2884
|
+
}
|
|
2885
|
+
let unmaskedValue = String(typedValue);
|
|
2886
|
+
|
|
2887
|
+
// double check it
|
|
2888
|
+
if (this.currentMask) {
|
|
2889
|
+
this.currentMask.typedValue = typedValue;
|
|
2890
|
+
unmaskedValue = this.currentMask.unmaskedValue;
|
|
2891
|
+
}
|
|
2892
|
+
this.unmaskedValue = unmaskedValue;
|
|
2893
|
+
}
|
|
2894
|
+
get displayValue() {
|
|
2895
|
+
return this.currentMask ? this.currentMask.displayValue : '';
|
|
2896
|
+
}
|
|
2897
|
+
get isComplete() {
|
|
2898
|
+
var _this$currentMask2;
|
|
2899
|
+
return Boolean((_this$currentMask2 = this.currentMask) == null ? void 0 : _this$currentMask2.isComplete);
|
|
2900
|
+
}
|
|
2901
|
+
get isFilled() {
|
|
2902
|
+
var _this$currentMask3;
|
|
2903
|
+
return Boolean((_this$currentMask3 = this.currentMask) == null ? void 0 : _this$currentMask3.isFilled);
|
|
2904
|
+
}
|
|
2905
|
+
remove(fromPos, toPos) {
|
|
2906
|
+
const details = new ChangeDetails();
|
|
2907
|
+
if (this.currentMask) {
|
|
2908
|
+
details.aggregate(this.currentMask.remove(fromPos, toPos))
|
|
2909
|
+
// update with dispatch
|
|
2910
|
+
.aggregate(this._applyDispatch());
|
|
2911
|
+
}
|
|
2912
|
+
return details;
|
|
2913
|
+
}
|
|
2914
|
+
get state() {
|
|
2915
|
+
var _this$currentMask4;
|
|
2916
|
+
return {
|
|
2917
|
+
...super.state,
|
|
2918
|
+
_rawInputValue: this.rawInputValue,
|
|
2919
|
+
compiledMasks: this.compiledMasks.map(m => m.state),
|
|
2920
|
+
currentMaskRef: this.currentMask,
|
|
2921
|
+
currentMask: (_this$currentMask4 = this.currentMask) == null ? void 0 : _this$currentMask4.state
|
|
2922
|
+
};
|
|
2923
|
+
}
|
|
2924
|
+
set state(state) {
|
|
2925
|
+
const {
|
|
2926
|
+
compiledMasks,
|
|
2927
|
+
currentMaskRef,
|
|
2928
|
+
currentMask,
|
|
2929
|
+
...maskedState
|
|
2930
|
+
} = state;
|
|
2931
|
+
if (compiledMasks) this.compiledMasks.forEach((m, mi) => m.state = compiledMasks[mi]);
|
|
2932
|
+
if (currentMaskRef != null) {
|
|
2933
|
+
this.currentMask = currentMaskRef;
|
|
2934
|
+
this.currentMask.state = currentMask;
|
|
2935
|
+
}
|
|
2936
|
+
super.state = maskedState;
|
|
2937
|
+
}
|
|
2938
|
+
extractInput(fromPos, toPos, flags) {
|
|
2939
|
+
return this.currentMask ? this.currentMask.extractInput(fromPos, toPos, flags) : '';
|
|
2940
|
+
}
|
|
2941
|
+
extractTail(fromPos, toPos) {
|
|
2942
|
+
return this.currentMask ? this.currentMask.extractTail(fromPos, toPos) : super.extractTail(fromPos, toPos);
|
|
2943
|
+
}
|
|
2944
|
+
doCommit() {
|
|
2945
|
+
if (this.currentMask) this.currentMask.doCommit();
|
|
2946
|
+
super.doCommit();
|
|
2947
|
+
}
|
|
2948
|
+
nearestInputPos(cursorPos, direction) {
|
|
2949
|
+
return this.currentMask ? this.currentMask.nearestInputPos(cursorPos, direction) : super.nearestInputPos(cursorPos, direction);
|
|
2950
|
+
}
|
|
2951
|
+
get overwrite() {
|
|
2952
|
+
return this.currentMask ? this.currentMask.overwrite : this._overwrite;
|
|
2953
|
+
}
|
|
2954
|
+
set overwrite(overwrite) {
|
|
2955
|
+
this._overwrite = overwrite;
|
|
2956
|
+
}
|
|
2957
|
+
get eager() {
|
|
2958
|
+
return this.currentMask ? this.currentMask.eager : this._eager;
|
|
2959
|
+
}
|
|
2960
|
+
set eager(eager) {
|
|
2961
|
+
this._eager = eager;
|
|
2962
|
+
}
|
|
2963
|
+
get skipInvalid() {
|
|
2964
|
+
return this.currentMask ? this.currentMask.skipInvalid : this._skipInvalid;
|
|
2965
|
+
}
|
|
2966
|
+
set skipInvalid(skipInvalid) {
|
|
2967
|
+
this._skipInvalid = skipInvalid;
|
|
2968
|
+
}
|
|
2969
|
+
get autofix() {
|
|
2970
|
+
return this.currentMask ? this.currentMask.autofix : this._autofix;
|
|
2971
|
+
}
|
|
2972
|
+
set autofix(autofix) {
|
|
2973
|
+
this._autofix = autofix;
|
|
2974
|
+
}
|
|
2975
|
+
maskEquals(mask) {
|
|
2976
|
+
return Array.isArray(mask) ? this.compiledMasks.every((m, mi) => {
|
|
2977
|
+
if (!mask[mi]) return;
|
|
2978
|
+
const {
|
|
2979
|
+
mask: oldMask,
|
|
2980
|
+
...restOpts
|
|
2981
|
+
} = mask[mi];
|
|
2982
|
+
return objectIncludes(m, restOpts) && m.maskEquals(oldMask);
|
|
2983
|
+
}) : super.maskEquals(mask);
|
|
2984
|
+
}
|
|
2985
|
+
typedValueEquals(value) {
|
|
2986
|
+
var _this$currentMask5;
|
|
2987
|
+
return Boolean((_this$currentMask5 = this.currentMask) == null ? void 0 : _this$currentMask5.typedValueEquals(value));
|
|
2988
|
+
}
|
|
2989
|
+
}
|
|
2990
|
+
/** Currently chosen mask */
|
|
2991
|
+
/** Currently chosen mask */
|
|
2992
|
+
/** Compliled {@link Masked} options */
|
|
2993
|
+
/** Chooses {@link Masked} depending on input value */
|
|
2994
|
+
MaskedDynamic.DEFAULTS = {
|
|
2995
|
+
...Masked.DEFAULTS,
|
|
2996
|
+
dispatch: (appended, masked, flags, tail) => {
|
|
2997
|
+
if (!masked.compiledMasks.length) return;
|
|
2998
|
+
const inputValue = masked.rawInputValue;
|
|
2999
|
+
|
|
3000
|
+
// simulate input
|
|
3001
|
+
const inputs = masked.compiledMasks.map((m, index) => {
|
|
3002
|
+
const isCurrent = masked.currentMask === m;
|
|
3003
|
+
const startInputPos = isCurrent ? m.displayValue.length : m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT);
|
|
3004
|
+
if (m.rawInputValue !== inputValue) {
|
|
3005
|
+
m.reset();
|
|
3006
|
+
m.append(inputValue, {
|
|
3007
|
+
raw: true
|
|
3008
|
+
});
|
|
3009
|
+
} else if (!isCurrent) {
|
|
3010
|
+
m.remove(startInputPos);
|
|
3011
|
+
}
|
|
3012
|
+
m.append(appended, masked.currentMaskFlags(flags));
|
|
3013
|
+
m.appendTail(tail);
|
|
3014
|
+
return {
|
|
3015
|
+
index,
|
|
3016
|
+
weight: m.rawInputValue.length,
|
|
3017
|
+
totalInputPositions: m.totalInputPositions(0, Math.max(startInputPos, m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT)))
|
|
3018
|
+
};
|
|
3019
|
+
});
|
|
3020
|
+
|
|
3021
|
+
// pop masks with longer values first
|
|
3022
|
+
inputs.sort((i1, i2) => i2.weight - i1.weight || i2.totalInputPositions - i1.totalInputPositions);
|
|
3023
|
+
return masked.compiledMasks[inputs[0].index];
|
|
3024
|
+
}
|
|
3025
|
+
};
|
|
3026
|
+
IMask.MaskedDynamic = MaskedDynamic;
|
|
3027
|
+
|
|
3028
|
+
/** Pattern which validates enum values */
|
|
3029
|
+
class MaskedEnum extends MaskedPattern {
|
|
3030
|
+
constructor(opts) {
|
|
3031
|
+
super({
|
|
3032
|
+
...MaskedEnum.DEFAULTS,
|
|
3033
|
+
...opts
|
|
3034
|
+
}); // mask will be created in _update
|
|
3035
|
+
}
|
|
3036
|
+
updateOptions(opts) {
|
|
3037
|
+
super.updateOptions(opts);
|
|
3038
|
+
}
|
|
3039
|
+
_update(opts) {
|
|
3040
|
+
const {
|
|
3041
|
+
enum: enum_,
|
|
3042
|
+
...eopts
|
|
3043
|
+
} = opts;
|
|
3044
|
+
if (enum_) {
|
|
3045
|
+
const lengths = enum_.map(e => e.length);
|
|
3046
|
+
const requiredLength = Math.min(...lengths);
|
|
3047
|
+
const optionalLength = Math.max(...lengths) - requiredLength;
|
|
3048
|
+
eopts.mask = '*'.repeat(requiredLength);
|
|
3049
|
+
if (optionalLength) eopts.mask += '[' + '*'.repeat(optionalLength) + ']';
|
|
3050
|
+
this.enum = enum_;
|
|
3051
|
+
}
|
|
3052
|
+
super._update(eopts);
|
|
3053
|
+
}
|
|
3054
|
+
_appendCharRaw(ch, flags) {
|
|
3055
|
+
if (flags === void 0) {
|
|
3056
|
+
flags = {};
|
|
3057
|
+
}
|
|
3058
|
+
const matchFrom = Math.min(this.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);
|
|
3059
|
+
const matches = this.enum.filter(e => this.matchValue(e, this.unmaskedValue + ch, matchFrom));
|
|
3060
|
+
if (matches.length) {
|
|
3061
|
+
if (matches.length === 1) {
|
|
3062
|
+
this._forEachBlocksInRange(0, this.value.length, (b, bi) => {
|
|
3063
|
+
const mch = matches[0][bi];
|
|
3064
|
+
if (bi >= this.value.length || mch === b.value) return;
|
|
3065
|
+
b.reset();
|
|
3066
|
+
b._appendChar(mch, flags);
|
|
3067
|
+
});
|
|
3068
|
+
}
|
|
3069
|
+
const d = super._appendCharRaw(matches[0][this.value.length], flags);
|
|
3070
|
+
if (matches.length === 1) {
|
|
3071
|
+
matches[0].slice(this.unmaskedValue.length).split('').forEach(mch => d.aggregate(super._appendCharRaw(mch)));
|
|
3072
|
+
}
|
|
3073
|
+
return d;
|
|
3074
|
+
}
|
|
3075
|
+
return new ChangeDetails({
|
|
3076
|
+
skip: !this.isComplete
|
|
3077
|
+
});
|
|
3078
|
+
}
|
|
3079
|
+
extractTail(fromPos, toPos) {
|
|
3080
|
+
if (fromPos === void 0) {
|
|
3081
|
+
fromPos = 0;
|
|
3082
|
+
}
|
|
3083
|
+
if (toPos === void 0) {
|
|
3084
|
+
toPos = this.displayValue.length;
|
|
3085
|
+
}
|
|
3086
|
+
// just drop tail
|
|
3087
|
+
return new ContinuousTailDetails('', fromPos);
|
|
3088
|
+
}
|
|
3089
|
+
remove(fromPos, toPos) {
|
|
3090
|
+
if (fromPos === void 0) {
|
|
3091
|
+
fromPos = 0;
|
|
3092
|
+
}
|
|
3093
|
+
if (toPos === void 0) {
|
|
3094
|
+
toPos = this.displayValue.length;
|
|
3095
|
+
}
|
|
3096
|
+
if (fromPos === toPos) return new ChangeDetails();
|
|
3097
|
+
const matchFrom = Math.min(super.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);
|
|
3098
|
+
let pos;
|
|
3099
|
+
for (pos = fromPos; pos >= 0; --pos) {
|
|
3100
|
+
const matches = this.enum.filter(e => this.matchValue(e, this.value.slice(matchFrom, pos), matchFrom));
|
|
3101
|
+
if (matches.length > 1) break;
|
|
3102
|
+
}
|
|
3103
|
+
const details = super.remove(pos, toPos);
|
|
3104
|
+
details.tailShift += pos - fromPos;
|
|
3105
|
+
return details;
|
|
3106
|
+
}
|
|
3107
|
+
get isComplete() {
|
|
3108
|
+
return this.enum.indexOf(this.value) >= 0;
|
|
3109
|
+
}
|
|
3110
|
+
}
|
|
3111
|
+
/** Match enum value */
|
|
3112
|
+
MaskedEnum.DEFAULTS = {
|
|
3113
|
+
...MaskedPattern.DEFAULTS,
|
|
3114
|
+
matchValue: (estr, istr, matchFrom) => estr.indexOf(istr, matchFrom) === matchFrom
|
|
3115
|
+
};
|
|
3116
|
+
IMask.MaskedEnum = MaskedEnum;
|
|
3117
|
+
|
|
3118
|
+
/** Masking by custom Function */
|
|
3119
|
+
class MaskedFunction extends Masked {
|
|
3120
|
+
/** */
|
|
3121
|
+
|
|
3122
|
+
/** Enable characters overwriting */
|
|
3123
|
+
|
|
3124
|
+
/** */
|
|
3125
|
+
|
|
3126
|
+
/** */
|
|
3127
|
+
|
|
3128
|
+
/** */
|
|
3129
|
+
|
|
3130
|
+
updateOptions(opts) {
|
|
3131
|
+
super.updateOptions(opts);
|
|
3132
|
+
}
|
|
3133
|
+
_update(opts) {
|
|
3134
|
+
super._update({
|
|
3135
|
+
...opts,
|
|
3136
|
+
validate: opts.mask
|
|
3137
|
+
});
|
|
3138
|
+
}
|
|
3139
|
+
}
|
|
3140
|
+
IMask.MaskedFunction = MaskedFunction;
|
|
3141
|
+
|
|
3142
|
+
var _MaskedNumber;
|
|
3143
|
+
/** Number mask */
|
|
3144
|
+
class MaskedNumber extends Masked {
|
|
3145
|
+
/** Single char */
|
|
3146
|
+
|
|
3147
|
+
/** Single char */
|
|
3148
|
+
|
|
3149
|
+
/** Array of single chars */
|
|
3150
|
+
|
|
3151
|
+
/** */
|
|
3152
|
+
|
|
3153
|
+
/** */
|
|
3154
|
+
|
|
3155
|
+
/** Digits after point */
|
|
3156
|
+
|
|
3157
|
+
/** Flag to remove leading and trailing zeros in the end of editing */
|
|
3158
|
+
|
|
3159
|
+
/** Flag to pad trailing zeros after point in the end of editing */
|
|
3160
|
+
|
|
3161
|
+
/** Enable characters overwriting */
|
|
3162
|
+
|
|
3163
|
+
/** */
|
|
3164
|
+
|
|
3165
|
+
/** */
|
|
3166
|
+
|
|
3167
|
+
/** */
|
|
3168
|
+
|
|
3169
|
+
/** Format typed value to string */
|
|
3170
|
+
|
|
3171
|
+
/** Parse string to get typed value */
|
|
3172
|
+
|
|
3173
|
+
constructor(opts) {
|
|
3174
|
+
super({
|
|
3175
|
+
...MaskedNumber.DEFAULTS,
|
|
3176
|
+
...opts
|
|
3177
|
+
});
|
|
3178
|
+
}
|
|
3179
|
+
updateOptions(opts) {
|
|
3180
|
+
super.updateOptions(opts);
|
|
3181
|
+
}
|
|
3182
|
+
_update(opts) {
|
|
3183
|
+
super._update(opts);
|
|
3184
|
+
this._updateRegExps();
|
|
3185
|
+
}
|
|
3186
|
+
_updateRegExps() {
|
|
3187
|
+
const start = '^' + (this.allowNegative ? '[+|\\-]?' : '');
|
|
3188
|
+
const mid = '\\d*';
|
|
3189
|
+
const end = (this.scale ? "(" + escapeRegExp(this.radix) + "\\d{0," + this.scale + "})?" : '') + '$';
|
|
3190
|
+
this._numberRegExp = new RegExp(start + mid + end);
|
|
3191
|
+
this._mapToRadixRegExp = new RegExp("[" + this.mapToRadix.map(escapeRegExp).join('') + "]", 'g');
|
|
3192
|
+
this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');
|
|
3193
|
+
}
|
|
3194
|
+
_removeThousandsSeparators(value) {
|
|
3195
|
+
return value.replace(this._thousandsSeparatorRegExp, '');
|
|
3196
|
+
}
|
|
3197
|
+
_insertThousandsSeparators(value) {
|
|
3198
|
+
// https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript
|
|
3199
|
+
const parts = value.split(this.radix);
|
|
3200
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, this.thousandsSeparator);
|
|
3201
|
+
return parts.join(this.radix);
|
|
3202
|
+
}
|
|
3203
|
+
doPrepareChar(ch, flags) {
|
|
3204
|
+
if (flags === void 0) {
|
|
3205
|
+
flags = {};
|
|
3206
|
+
}
|
|
3207
|
+
const [prepCh, details] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (
|
|
3208
|
+
/*
|
|
3209
|
+
radix should be mapped when
|
|
3210
|
+
1) input is done from keyboard = flags.input && flags.raw
|
|
3211
|
+
2) unmasked value is set = !flags.input && !flags.raw
|
|
3212
|
+
and should not be mapped when
|
|
3213
|
+
1) value is set = flags.input && !flags.raw
|
|
3214
|
+
2) raw value is set = !flags.input && flags.raw
|
|
3215
|
+
*/
|
|
3216
|
+
flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch), flags);
|
|
3217
|
+
if (ch && !prepCh) details.skip = true;
|
|
3218
|
+
if (prepCh && !this.allowPositive && !this.value && prepCh !== '-') details.aggregate(this._appendChar('-'));
|
|
3219
|
+
return [prepCh, details];
|
|
3220
|
+
}
|
|
3221
|
+
_separatorsCount(to, extendOnSeparators) {
|
|
3222
|
+
if (extendOnSeparators === void 0) {
|
|
3223
|
+
extendOnSeparators = false;
|
|
3224
|
+
}
|
|
3225
|
+
let count = 0;
|
|
3226
|
+
for (let pos = 0; pos < to; ++pos) {
|
|
3227
|
+
if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {
|
|
3228
|
+
++count;
|
|
3229
|
+
if (extendOnSeparators) to += this.thousandsSeparator.length;
|
|
3230
|
+
}
|
|
3231
|
+
}
|
|
3232
|
+
return count;
|
|
3233
|
+
}
|
|
3234
|
+
_separatorsCountFromSlice(slice) {
|
|
3235
|
+
if (slice === void 0) {
|
|
3236
|
+
slice = this._value;
|
|
3237
|
+
}
|
|
3238
|
+
return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);
|
|
3239
|
+
}
|
|
3240
|
+
extractInput(fromPos, toPos, flags) {
|
|
3241
|
+
if (fromPos === void 0) {
|
|
3242
|
+
fromPos = 0;
|
|
3243
|
+
}
|
|
3244
|
+
if (toPos === void 0) {
|
|
3245
|
+
toPos = this.displayValue.length;
|
|
3246
|
+
}
|
|
3247
|
+
[fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);
|
|
3248
|
+
return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));
|
|
3249
|
+
}
|
|
3250
|
+
_appendCharRaw(ch, flags) {
|
|
3251
|
+
if (flags === void 0) {
|
|
3252
|
+
flags = {};
|
|
3253
|
+
}
|
|
3254
|
+
const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;
|
|
3255
|
+
const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);
|
|
3256
|
+
this._value = this._removeThousandsSeparators(this.value);
|
|
3257
|
+
const oldValue = this._value;
|
|
3258
|
+
this._value += ch;
|
|
3259
|
+
const num = this.number;
|
|
3260
|
+
let accepted = !isNaN(num);
|
|
3261
|
+
let skip = false;
|
|
3262
|
+
if (accepted) {
|
|
3263
|
+
let fixedNum;
|
|
3264
|
+
if (this.min != null && this.min < 0 && this.number < this.min) fixedNum = this.min;
|
|
3265
|
+
if (this.max != null && this.max > 0 && this.number > this.max) fixedNum = this.max;
|
|
3266
|
+
if (fixedNum != null) {
|
|
3267
|
+
if (this.autofix) {
|
|
3268
|
+
this._value = this.format(fixedNum, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);
|
|
3269
|
+
skip || (skip = oldValue === this._value && !flags.tail); // if not changed on tail it's still ok to proceed
|
|
3270
|
+
} else {
|
|
3271
|
+
accepted = false;
|
|
3272
|
+
}
|
|
3273
|
+
}
|
|
3274
|
+
accepted && (accepted = Boolean(this._value.match(this._numberRegExp)));
|
|
3275
|
+
}
|
|
3276
|
+
let appendDetails;
|
|
3277
|
+
if (!accepted) {
|
|
3278
|
+
this._value = oldValue;
|
|
3279
|
+
appendDetails = new ChangeDetails();
|
|
3280
|
+
} else {
|
|
3281
|
+
appendDetails = new ChangeDetails({
|
|
3282
|
+
inserted: this._value.slice(oldValue.length),
|
|
3283
|
+
rawInserted: skip ? '' : ch,
|
|
3284
|
+
skip
|
|
3285
|
+
});
|
|
3286
|
+
}
|
|
3287
|
+
this._value = this._insertThousandsSeparators(this._value);
|
|
3288
|
+
const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;
|
|
3289
|
+
const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);
|
|
3290
|
+
appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;
|
|
3291
|
+
return appendDetails;
|
|
3292
|
+
}
|
|
3293
|
+
_findSeparatorAround(pos) {
|
|
3294
|
+
if (this.thousandsSeparator) {
|
|
3295
|
+
const searchFrom = pos - this.thousandsSeparator.length + 1;
|
|
3296
|
+
const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);
|
|
3297
|
+
if (separatorPos <= pos) return separatorPos;
|
|
3298
|
+
}
|
|
3299
|
+
return -1;
|
|
3300
|
+
}
|
|
3301
|
+
_adjustRangeWithSeparators(from, to) {
|
|
3302
|
+
const separatorAroundFromPos = this._findSeparatorAround(from);
|
|
3303
|
+
if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;
|
|
3304
|
+
const separatorAroundToPos = this._findSeparatorAround(to);
|
|
3305
|
+
if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;
|
|
3306
|
+
return [from, to];
|
|
3307
|
+
}
|
|
3308
|
+
remove(fromPos, toPos) {
|
|
3309
|
+
if (fromPos === void 0) {
|
|
3310
|
+
fromPos = 0;
|
|
3311
|
+
}
|
|
3312
|
+
if (toPos === void 0) {
|
|
3313
|
+
toPos = this.displayValue.length;
|
|
3314
|
+
}
|
|
3315
|
+
[fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);
|
|
3316
|
+
const valueBeforePos = this.value.slice(0, fromPos);
|
|
3317
|
+
const valueAfterPos = this.value.slice(toPos);
|
|
3318
|
+
const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);
|
|
3319
|
+
this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));
|
|
3320
|
+
const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);
|
|
3321
|
+
return new ChangeDetails({
|
|
3322
|
+
tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length
|
|
3323
|
+
});
|
|
3324
|
+
}
|
|
3325
|
+
nearestInputPos(cursorPos, direction) {
|
|
3326
|
+
if (!this.thousandsSeparator) return cursorPos;
|
|
3327
|
+
switch (direction) {
|
|
3328
|
+
case DIRECTION.NONE:
|
|
3329
|
+
case DIRECTION.LEFT:
|
|
3330
|
+
case DIRECTION.FORCE_LEFT:
|
|
3331
|
+
{
|
|
3332
|
+
const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);
|
|
3333
|
+
if (separatorAtLeftPos >= 0) {
|
|
3334
|
+
const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;
|
|
3335
|
+
if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {
|
|
3336
|
+
return separatorAtLeftPos;
|
|
3337
|
+
}
|
|
3338
|
+
}
|
|
3339
|
+
break;
|
|
3340
|
+
}
|
|
3341
|
+
case DIRECTION.RIGHT:
|
|
3342
|
+
case DIRECTION.FORCE_RIGHT:
|
|
3343
|
+
{
|
|
3344
|
+
const separatorAtRightPos = this._findSeparatorAround(cursorPos);
|
|
3345
|
+
if (separatorAtRightPos >= 0) {
|
|
3346
|
+
return separatorAtRightPos + this.thousandsSeparator.length;
|
|
3347
|
+
}
|
|
3348
|
+
}
|
|
3349
|
+
}
|
|
3350
|
+
return cursorPos;
|
|
3351
|
+
}
|
|
3352
|
+
doCommit() {
|
|
3353
|
+
if (this.value) {
|
|
3354
|
+
const number = this.number;
|
|
3355
|
+
let validnum = number;
|
|
3356
|
+
|
|
3357
|
+
// check bounds
|
|
3358
|
+
if (this.min != null) validnum = Math.max(validnum, this.min);
|
|
3359
|
+
if (this.max != null) validnum = Math.min(validnum, this.max);
|
|
3360
|
+
if (validnum !== number) this.unmaskedValue = this.format(validnum, this);
|
|
3361
|
+
let formatted = this.value;
|
|
3362
|
+
if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);
|
|
3363
|
+
if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);
|
|
3364
|
+
this._value = formatted;
|
|
3365
|
+
}
|
|
3366
|
+
super.doCommit();
|
|
3367
|
+
}
|
|
3368
|
+
_normalizeZeros(value) {
|
|
3369
|
+
const parts = this._removeThousandsSeparators(value).split(this.radix);
|
|
3370
|
+
|
|
3371
|
+
// remove leading zeros
|
|
3372
|
+
parts[0] = parts[0].replace(/^(\D*)(0*)(\d*)/, (match, sign, zeros, num) => sign + num);
|
|
3373
|
+
// add leading zero
|
|
3374
|
+
if (value.length && !/\d$/.test(parts[0])) parts[0] = parts[0] + '0';
|
|
3375
|
+
if (parts.length > 1) {
|
|
3376
|
+
parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros
|
|
3377
|
+
if (!parts[1].length) parts.length = 1; // remove fractional
|
|
3378
|
+
}
|
|
3379
|
+
return this._insertThousandsSeparators(parts.join(this.radix));
|
|
3380
|
+
}
|
|
3381
|
+
_padFractionalZeros(value) {
|
|
3382
|
+
if (!value) return value;
|
|
3383
|
+
const parts = value.split(this.radix);
|
|
3384
|
+
if (parts.length < 2) parts.push('');
|
|
3385
|
+
parts[1] = parts[1].padEnd(this.scale, '0');
|
|
3386
|
+
return parts.join(this.radix);
|
|
3387
|
+
}
|
|
3388
|
+
doSkipInvalid(ch, flags, checkTail) {
|
|
3389
|
+
if (flags === void 0) {
|
|
3390
|
+
flags = {};
|
|
3391
|
+
}
|
|
3392
|
+
const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));
|
|
3393
|
+
return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;
|
|
3394
|
+
}
|
|
3395
|
+
get unmaskedValue() {
|
|
3396
|
+
return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);
|
|
3397
|
+
}
|
|
3398
|
+
set unmaskedValue(unmaskedValue) {
|
|
3399
|
+
super.unmaskedValue = unmaskedValue;
|
|
3400
|
+
}
|
|
3401
|
+
get typedValue() {
|
|
3402
|
+
return this.parse(this.unmaskedValue, this);
|
|
3403
|
+
}
|
|
3404
|
+
set typedValue(n) {
|
|
3405
|
+
this.rawInputValue = this.format(n, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);
|
|
3406
|
+
}
|
|
3407
|
+
|
|
3408
|
+
/** Parsed Number */
|
|
3409
|
+
get number() {
|
|
3410
|
+
return this.typedValue;
|
|
3411
|
+
}
|
|
3412
|
+
set number(number) {
|
|
3413
|
+
this.typedValue = number;
|
|
3414
|
+
}
|
|
3415
|
+
get allowNegative() {
|
|
3416
|
+
return this.min != null && this.min < 0 || this.max != null && this.max < 0;
|
|
3417
|
+
}
|
|
3418
|
+
get allowPositive() {
|
|
3419
|
+
return this.min != null && this.min > 0 || this.max != null && this.max > 0;
|
|
3420
|
+
}
|
|
3421
|
+
typedValueEquals(value) {
|
|
3422
|
+
// handle 0 -> '' case (typed = 0 even if value = '')
|
|
3423
|
+
// for details see https://github.com/uNmAnNeR/imaskjs/issues/134
|
|
3424
|
+
return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');
|
|
3425
|
+
}
|
|
3426
|
+
}
|
|
3427
|
+
_MaskedNumber = MaskedNumber;
|
|
3428
|
+
MaskedNumber.UNMASKED_RADIX = '.';
|
|
3429
|
+
MaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];
|
|
3430
|
+
MaskedNumber.DEFAULTS = {
|
|
3431
|
+
...Masked.DEFAULTS,
|
|
3432
|
+
mask: Number,
|
|
3433
|
+
radix: ',',
|
|
3434
|
+
thousandsSeparator: '',
|
|
3435
|
+
mapToRadix: [_MaskedNumber.UNMASKED_RADIX],
|
|
3436
|
+
min: Number.MIN_SAFE_INTEGER,
|
|
3437
|
+
max: Number.MAX_SAFE_INTEGER,
|
|
3438
|
+
scale: 2,
|
|
3439
|
+
normalizeZeros: true,
|
|
3440
|
+
padFractionalZeros: false,
|
|
3441
|
+
parse: Number,
|
|
3442
|
+
format: n => n.toLocaleString('en-US', {
|
|
3443
|
+
useGrouping: false,
|
|
3444
|
+
maximumFractionDigits: 20
|
|
3445
|
+
})
|
|
3446
|
+
};
|
|
3447
|
+
IMask.MaskedNumber = MaskedNumber;
|
|
3448
|
+
|
|
3449
|
+
/** Mask pipe source and destination types */
|
|
3450
|
+
const PIPE_TYPE = {
|
|
3451
|
+
MASKED: 'value',
|
|
3452
|
+
UNMASKED: 'unmaskedValue',
|
|
3453
|
+
TYPED: 'typedValue'
|
|
3454
|
+
};
|
|
3455
|
+
/** Creates new pipe function depending on mask type, source and destination options */
|
|
3456
|
+
function createPipe(arg, from, to) {
|
|
3457
|
+
if (from === void 0) {
|
|
3458
|
+
from = PIPE_TYPE.MASKED;
|
|
3459
|
+
}
|
|
3460
|
+
if (to === void 0) {
|
|
3461
|
+
to = PIPE_TYPE.MASKED;
|
|
3462
|
+
}
|
|
3463
|
+
const masked = createMask(arg);
|
|
3464
|
+
return value => masked.runIsolated(m => {
|
|
3465
|
+
m[from] = value;
|
|
3466
|
+
return m[to];
|
|
3467
|
+
});
|
|
3468
|
+
}
|
|
3469
|
+
|
|
3470
|
+
/** Pipes value through mask depending on mask type, source and destination options */
|
|
3471
|
+
function pipe(value, mask, from, to) {
|
|
3472
|
+
return createPipe(mask, from, to)(value);
|
|
3473
|
+
}
|
|
3474
|
+
IMask.PIPE_TYPE = PIPE_TYPE;
|
|
3475
|
+
IMask.createPipe = createPipe;
|
|
3476
|
+
IMask.pipe = pipe;
|
|
3477
|
+
|
|
3478
|
+
/** Pattern mask */
|
|
3479
|
+
class RepeatBlock extends MaskedPattern {
|
|
3480
|
+
get repeatFrom() {
|
|
3481
|
+
var _ref;
|
|
3482
|
+
return (_ref = Array.isArray(this.repeat) ? this.repeat[0] : this.repeat === Infinity ? 0 : this.repeat) != null ? _ref : 0;
|
|
3483
|
+
}
|
|
3484
|
+
get repeatTo() {
|
|
3485
|
+
var _ref2;
|
|
3486
|
+
return (_ref2 = Array.isArray(this.repeat) ? this.repeat[1] : this.repeat) != null ? _ref2 : Infinity;
|
|
3487
|
+
}
|
|
3488
|
+
constructor(opts) {
|
|
3489
|
+
super(opts);
|
|
3490
|
+
}
|
|
3491
|
+
updateOptions(opts) {
|
|
3492
|
+
super.updateOptions(opts);
|
|
3493
|
+
}
|
|
3494
|
+
_update(opts) {
|
|
3495
|
+
var _ref3, _ref4, _this$_blocks;
|
|
3496
|
+
const {
|
|
3497
|
+
repeat,
|
|
3498
|
+
...blockOpts
|
|
3499
|
+
} = normalizeOpts(opts); // TODO type
|
|
3500
|
+
this._blockOpts = Object.assign({}, this._blockOpts, blockOpts);
|
|
3501
|
+
const block = createMask(this._blockOpts);
|
|
3502
|
+
this.repeat = (_ref3 = (_ref4 = repeat != null ? repeat : block.repeat) != null ? _ref4 : this.repeat) != null ? _ref3 : Infinity; // TODO type
|
|
3503
|
+
|
|
3504
|
+
super._update({
|
|
3505
|
+
mask: 'm'.repeat(Math.max(this.repeatTo === Infinity && ((_this$_blocks = this._blocks) == null ? void 0 : _this$_blocks.length) || 0, this.repeatFrom)),
|
|
3506
|
+
blocks: {
|
|
3507
|
+
m: block
|
|
3508
|
+
},
|
|
3509
|
+
eager: block.eager,
|
|
3510
|
+
overwrite: block.overwrite,
|
|
3511
|
+
skipInvalid: block.skipInvalid,
|
|
3512
|
+
lazy: block.lazy,
|
|
3513
|
+
placeholderChar: block.placeholderChar,
|
|
3514
|
+
displayChar: block.displayChar
|
|
3515
|
+
});
|
|
3516
|
+
}
|
|
3517
|
+
_allocateBlock(bi) {
|
|
3518
|
+
if (bi < this._blocks.length) return this._blocks[bi];
|
|
3519
|
+
if (this.repeatTo === Infinity || this._blocks.length < this.repeatTo) {
|
|
3520
|
+
this._blocks.push(createMask(this._blockOpts));
|
|
3521
|
+
this.mask += 'm';
|
|
3522
|
+
return this._blocks[this._blocks.length - 1];
|
|
3523
|
+
}
|
|
3524
|
+
}
|
|
3525
|
+
_appendCharRaw(ch, flags) {
|
|
3526
|
+
if (flags === void 0) {
|
|
3527
|
+
flags = {};
|
|
3528
|
+
}
|
|
3529
|
+
const details = new ChangeDetails();
|
|
3530
|
+
for (let bi = (_this$_mapPosToBlock$ = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index) != null ? _this$_mapPosToBlock$ : Math.max(this._blocks.length - 1, 0), block, allocated;
|
|
3531
|
+
// try to get a block or
|
|
3532
|
+
// try to allocate a new block if not allocated already
|
|
3533
|
+
block = (_this$_blocks$bi = this._blocks[bi]) != null ? _this$_blocks$bi : allocated = !allocated && this._allocateBlock(bi); ++bi) {
|
|
3534
|
+
var _this$_mapPosToBlock$, _this$_mapPosToBlock, _this$_blocks$bi, _flags$_beforeTailSta;
|
|
3535
|
+
const blockDetails = block._appendChar(ch, {
|
|
3536
|
+
...flags,
|
|
3537
|
+
_beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]
|
|
3538
|
+
});
|
|
3539
|
+
if (blockDetails.skip && allocated) {
|
|
3540
|
+
// remove the last allocated block and break
|
|
3541
|
+
this._blocks.pop();
|
|
3542
|
+
this.mask = this.mask.slice(1);
|
|
3543
|
+
break;
|
|
3544
|
+
}
|
|
3545
|
+
details.aggregate(blockDetails);
|
|
3546
|
+
if (blockDetails.consumed) break; // go next char
|
|
3547
|
+
}
|
|
3548
|
+
return details;
|
|
3549
|
+
}
|
|
3550
|
+
_trimEmptyTail(fromPos, toPos) {
|
|
3551
|
+
var _this$_mapPosToBlock2, _this$_mapPosToBlock3;
|
|
3552
|
+
if (fromPos === void 0) {
|
|
3553
|
+
fromPos = 0;
|
|
3554
|
+
}
|
|
3555
|
+
const firstBlockIndex = Math.max(((_this$_mapPosToBlock2 = this._mapPosToBlock(fromPos)) == null ? void 0 : _this$_mapPosToBlock2.index) || 0, this.repeatFrom, 0);
|
|
3556
|
+
let lastBlockIndex;
|
|
3557
|
+
if (toPos != null) lastBlockIndex = (_this$_mapPosToBlock3 = this._mapPosToBlock(toPos)) == null ? void 0 : _this$_mapPosToBlock3.index;
|
|
3558
|
+
if (lastBlockIndex == null) lastBlockIndex = this._blocks.length - 1;
|
|
3559
|
+
let removeCount = 0;
|
|
3560
|
+
for (let blockIndex = lastBlockIndex; firstBlockIndex <= blockIndex; --blockIndex, ++removeCount) {
|
|
3561
|
+
if (this._blocks[blockIndex].unmaskedValue) break;
|
|
3562
|
+
}
|
|
3563
|
+
if (removeCount) {
|
|
3564
|
+
this._blocks.splice(lastBlockIndex - removeCount + 1, removeCount);
|
|
3565
|
+
this.mask = this.mask.slice(removeCount);
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
reset() {
|
|
3569
|
+
super.reset();
|
|
3570
|
+
this._trimEmptyTail();
|
|
3571
|
+
}
|
|
3572
|
+
remove(fromPos, toPos) {
|
|
3573
|
+
if (fromPos === void 0) {
|
|
3574
|
+
fromPos = 0;
|
|
3575
|
+
}
|
|
3576
|
+
if (toPos === void 0) {
|
|
3577
|
+
toPos = this.displayValue.length;
|
|
3578
|
+
}
|
|
3579
|
+
const removeDetails = super.remove(fromPos, toPos);
|
|
3580
|
+
this._trimEmptyTail(fromPos, toPos);
|
|
3581
|
+
return removeDetails;
|
|
3582
|
+
}
|
|
3583
|
+
totalInputPositions(fromPos, toPos) {
|
|
3584
|
+
if (fromPos === void 0) {
|
|
3585
|
+
fromPos = 0;
|
|
3586
|
+
}
|
|
3587
|
+
if (toPos == null && this.repeatTo === Infinity) return Infinity;
|
|
3588
|
+
return super.totalInputPositions(fromPos, toPos);
|
|
3589
|
+
}
|
|
3590
|
+
get state() {
|
|
3591
|
+
return super.state;
|
|
3592
|
+
}
|
|
3593
|
+
set state(state) {
|
|
3594
|
+
this._blocks.length = state._blocks.length;
|
|
3595
|
+
this.mask = this.mask.slice(0, this._blocks.length);
|
|
3596
|
+
super.state = state;
|
|
3597
|
+
}
|
|
3598
|
+
}
|
|
3599
|
+
IMask.RepeatBlock = RepeatBlock;
|
|
3600
|
+
|
|
3601
|
+
try {
|
|
3602
|
+
globalThis.IMask = IMask;
|
|
3603
|
+
} catch {}
|
|
3604
|
+
|
|
3605
|
+
const MASK_PROPS = {
|
|
3606
|
+
// common
|
|
3607
|
+
mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func, PropTypes.string, PropTypes.instanceOf(RegExp), PropTypes.oneOf([Date, Number, IMask.Masked]), PropTypes.instanceOf(IMask.Masked)]),
|
|
3608
|
+
value: PropTypes.any,
|
|
3609
|
+
unmask: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['typed'])]),
|
|
3610
|
+
prepare: PropTypes.func,
|
|
3611
|
+
prepareChar: PropTypes.func,
|
|
3612
|
+
validate: PropTypes.func,
|
|
3613
|
+
commit: PropTypes.func,
|
|
3614
|
+
overwrite: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['shift'])]),
|
|
3615
|
+
eager: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['append', 'remove'])]),
|
|
3616
|
+
skipInvalid: PropTypes.bool,
|
|
3617
|
+
// events
|
|
3618
|
+
onAccept: PropTypes.func,
|
|
3619
|
+
onComplete: PropTypes.func,
|
|
3620
|
+
// pattern
|
|
3621
|
+
placeholderChar: PropTypes.string,
|
|
3622
|
+
displayChar: PropTypes.string,
|
|
3623
|
+
lazy: PropTypes.bool,
|
|
3624
|
+
definitions: PropTypes.object,
|
|
3625
|
+
blocks: PropTypes.object,
|
|
3626
|
+
// enum
|
|
3627
|
+
enum: PropTypes.arrayOf(PropTypes.string),
|
|
3628
|
+
// range
|
|
3629
|
+
maxLength: PropTypes.number,
|
|
3630
|
+
from: PropTypes.number,
|
|
3631
|
+
to: PropTypes.number,
|
|
3632
|
+
// date
|
|
3633
|
+
pattern: PropTypes.string,
|
|
3634
|
+
format: PropTypes.func,
|
|
3635
|
+
parse: PropTypes.func,
|
|
3636
|
+
autofix: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['pad'])]),
|
|
3637
|
+
// number
|
|
3638
|
+
radix: PropTypes.string,
|
|
3639
|
+
thousandsSeparator: PropTypes.string,
|
|
3640
|
+
mapToRadix: PropTypes.arrayOf(PropTypes.string),
|
|
3641
|
+
scale: PropTypes.number,
|
|
3642
|
+
normalizeZeros: PropTypes.bool,
|
|
3643
|
+
padFractionalZeros: PropTypes.bool,
|
|
3644
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]),
|
|
3645
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]),
|
|
3646
|
+
// dynamic
|
|
3647
|
+
dispatch: PropTypes.func,
|
|
3648
|
+
// ref
|
|
3649
|
+
inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
3650
|
+
current: PropTypes.object
|
|
3651
|
+
})])
|
|
3652
|
+
};
|
|
3653
|
+
const MASK_PROPS_NAMES = Object.keys(MASK_PROPS).filter(p => p !== 'value');
|
|
3654
|
+
const NON_MASK_OPTIONS_NAMES = ['value', 'unmask', 'onAccept', 'onComplete', 'inputRef'];
|
|
3655
|
+
const MASK_OPTIONS_NAMES = MASK_PROPS_NAMES.filter(pName => NON_MASK_OPTIONS_NAMES.indexOf(pName) < 0);
|
|
3656
|
+
function IMaskMixin(ComposedComponent) {
|
|
3657
|
+
var _Class;
|
|
3658
|
+
const MaskedComponent = (_Class = class MaskedComponent extends React__default.Component {
|
|
3659
|
+
constructor(props) {
|
|
3660
|
+
super(props);
|
|
3661
|
+
this._inputRef = this._inputRef.bind(this);
|
|
3662
|
+
}
|
|
3663
|
+
componentDidMount() {
|
|
3664
|
+
if (!this.props.mask) return;
|
|
3665
|
+
this.initMask();
|
|
3666
|
+
}
|
|
3667
|
+
componentDidUpdate() {
|
|
3668
|
+
const props = this.props;
|
|
3669
|
+
const maskOptions = this._extractMaskOptionsFromProps(props);
|
|
3670
|
+
if (maskOptions.mask) {
|
|
3671
|
+
if (this.maskRef) {
|
|
3672
|
+
this.maskRef.updateOptions(maskOptions); // TODO fix
|
|
3673
|
+
if ('value' in props && props.value !== undefined) this.maskValue = props.value;
|
|
3674
|
+
} else {
|
|
3675
|
+
this.initMask(maskOptions);
|
|
3676
|
+
}
|
|
3677
|
+
} else {
|
|
3678
|
+
this.destroyMask();
|
|
3679
|
+
if ('value' in props && props.value !== undefined) {
|
|
3680
|
+
var _this$element;
|
|
3681
|
+
if ((_this$element = this.element) != null && _this$element.isContentEditable && this.element.tagName !== 'INPUT' && this.element.tagName !== 'TEXTAREA') this.element.textContent = props.value;else this.element.value = props.value;
|
|
3682
|
+
}
|
|
3683
|
+
}
|
|
3684
|
+
}
|
|
3685
|
+
componentWillUnmount() {
|
|
3686
|
+
this.destroyMask();
|
|
3687
|
+
}
|
|
3688
|
+
_inputRef(el) {
|
|
3689
|
+
this.element = el;
|
|
3690
|
+
if (this.props.inputRef) {
|
|
3691
|
+
if (Object.prototype.hasOwnProperty.call(this.props.inputRef, 'current')) this.props.inputRef.current = el;else this.props.inputRef(el);
|
|
3692
|
+
}
|
|
3693
|
+
}
|
|
3694
|
+
initMask(maskOptions) {
|
|
3695
|
+
if (maskOptions === void 0) {
|
|
3696
|
+
maskOptions = this._extractMaskOptionsFromProps(this.props);
|
|
3697
|
+
}
|
|
3698
|
+
this.maskRef = IMask(this.element, maskOptions).on('accept', this._onAccept.bind(this)).on('complete', this._onComplete.bind(this));
|
|
3699
|
+
if ('value' in this.props && this.props.value !== undefined) this.maskValue = this.props.value;
|
|
3700
|
+
}
|
|
3701
|
+
destroyMask() {
|
|
3702
|
+
if (this.maskRef) {
|
|
3703
|
+
this.maskRef.destroy();
|
|
3704
|
+
delete this.maskRef;
|
|
3705
|
+
}
|
|
3706
|
+
}
|
|
3707
|
+
_extractMaskOptionsFromProps(props) {
|
|
3708
|
+
const {
|
|
3709
|
+
...cloneProps
|
|
3710
|
+
} = props;
|
|
3711
|
+
|
|
3712
|
+
// keep only mask options
|
|
3713
|
+
Object.keys(cloneProps).filter(prop => MASK_OPTIONS_NAMES.indexOf(prop) < 0).forEach(nonMaskProp => {
|
|
3714
|
+
delete cloneProps[nonMaskProp];
|
|
3715
|
+
});
|
|
3716
|
+
return cloneProps;
|
|
3717
|
+
}
|
|
3718
|
+
_extractNonMaskProps(props) {
|
|
3719
|
+
const {
|
|
3720
|
+
...cloneProps
|
|
3721
|
+
} = props;
|
|
3722
|
+
MASK_PROPS_NAMES.forEach(maskProp => {
|
|
3723
|
+
if (maskProp !== 'maxLength') delete cloneProps[maskProp];
|
|
3724
|
+
});
|
|
3725
|
+
if (!('defaultValue' in cloneProps)) cloneProps.defaultValue = props.mask ? '' : cloneProps.value;
|
|
3726
|
+
delete cloneProps.value;
|
|
3727
|
+
return cloneProps;
|
|
3728
|
+
}
|
|
3729
|
+
get maskValue() {
|
|
3730
|
+
if (!this.maskRef) return '';
|
|
3731
|
+
if (this.props.unmask === 'typed') return this.maskRef.typedValue;
|
|
3732
|
+
if (this.props.unmask) return this.maskRef.unmaskedValue;
|
|
3733
|
+
return this.maskRef.value;
|
|
3734
|
+
}
|
|
3735
|
+
set maskValue(value) {
|
|
3736
|
+
if (!this.maskRef) return;
|
|
3737
|
+
value = value == null && this.props.unmask !== 'typed' ? '' : value;
|
|
3738
|
+
if (this.props.unmask === 'typed') this.maskRef.typedValue = value;else if (this.props.unmask) this.maskRef.unmaskedValue = value;else this.maskRef.value = value;
|
|
3739
|
+
}
|
|
3740
|
+
_onAccept(e) {
|
|
3741
|
+
if (this.props.onAccept && this.maskRef) this.props.onAccept(this.maskValue, this.maskRef, e);
|
|
3742
|
+
}
|
|
3743
|
+
_onComplete(e) {
|
|
3744
|
+
if (this.props.onComplete && this.maskRef) this.props.onComplete(this.maskValue, this.maskRef, e);
|
|
3745
|
+
}
|
|
3746
|
+
render() {
|
|
3747
|
+
return React__default.createElement(ComposedComponent, {
|
|
3748
|
+
...this._extractNonMaskProps(this.props),
|
|
3749
|
+
inputRef: this._inputRef
|
|
3750
|
+
});
|
|
3751
|
+
}
|
|
3752
|
+
}, _Class.displayName = void 0, _Class.propTypes = void 0, _Class);
|
|
3753
|
+
const nestedComponentName = ComposedComponent.displayName || ComposedComponent.name || 'Component';
|
|
3754
|
+
MaskedComponent.displayName = "IMask(" + nestedComponentName + ")";
|
|
3755
|
+
MaskedComponent.propTypes = MASK_PROPS;
|
|
3756
|
+
return React__default.forwardRef((props, ref) => React__default.createElement(MaskedComponent, {
|
|
3757
|
+
...props,
|
|
3758
|
+
ref
|
|
3759
|
+
}));
|
|
3760
|
+
}
|
|
3761
|
+
|
|
3762
|
+
const IMaskInputClass = IMaskMixin(_ref => {
|
|
3763
|
+
let {
|
|
3764
|
+
inputRef,
|
|
3765
|
+
...props
|
|
3766
|
+
} = _ref;
|
|
3767
|
+
return React__default.createElement('input', {
|
|
3768
|
+
...props,
|
|
3769
|
+
ref: inputRef
|
|
3770
|
+
});
|
|
3771
|
+
});
|
|
3772
|
+
const IMaskInputFn = (props, ref) => React__default.createElement(IMaskInputClass, {
|
|
3773
|
+
...props,
|
|
3774
|
+
ref
|
|
3775
|
+
}) // TODO fix no idea
|
|
3776
|
+
;
|
|
3777
|
+
const IMaskInput = React__default.forwardRef(IMaskInputFn);
|
|
3778
|
+
|
|
3779
|
+
export { IMask as I, IMaskInput as a };
|