intelicoreact 1.4.83 → 1.4.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +14 -22
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +14 -22
- package/dist/Atomic/FormElements/Calendar/Calendar.js +67 -122
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +27 -36
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +23 -39
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +110 -246
- package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +44 -85
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +266 -430
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +5 -9
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +161 -283
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +39 -64
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +51 -132
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +34 -73
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +79 -138
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +55 -77
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +75 -126
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +33 -83
- package/dist/Atomic/FormElements/Input/Input.js +160 -256
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +48 -102
- package/dist/Atomic/FormElements/InputColor/InputColor.js +26 -41
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +38 -76
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +109 -177
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +32 -57
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +184 -302
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +85 -157
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +11 -16
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +77 -194
- package/dist/Atomic/FormElements/InputLink/InputLink.js +32 -58
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +8 -12
- package/dist/Atomic/FormElements/InputMask/InputMask.js +554 -964
- package/dist/Atomic/FormElements/InputMask/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask/functions.js +17 -43
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +268 -404
- package/dist/Atomic/FormElements/InputMask2/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask2/functions.js +17 -43
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +299 -459
- package/dist/Atomic/FormElements/InputMask3/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask3/functions.js +17 -43
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +51 -113
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +64 -118
- package/dist/Atomic/FormElements/Label/Label.js +14 -24
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +217 -349
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +25 -47
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +133 -207
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +29 -61
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +20 -42
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +22 -33
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +20 -43
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +54 -101
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +59 -102
- package/dist/Atomic/FormElements/RangeList/RangeList.js +89 -150
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +23 -29
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +148 -326
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +389 -588
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +14 -24
- package/dist/Atomic/FormElements/Switcher/Switcher.js +24 -29
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +23 -41
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +20 -32
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +32 -55
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +22 -42
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +23 -33
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +51 -120
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +2 -3
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +23 -46
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +47 -98
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +485 -713
- package/dist/Atomic/FormElements/Text/Text.js +47 -53
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +21 -31
- package/dist/Atomic/FormElements/Textarea/Textarea.js +31 -47
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +68 -128
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +25 -36
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +33 -70
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +58 -123
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +48 -80
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +32 -42
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +40 -60
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +2 -3
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +50 -69
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +3 -3
- package/dist/Atomic/Layout/Header/Header.js +21 -48
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +35 -77
- package/dist/Atomic/Layout/Spinner/Spinner.js +8 -14
- package/dist/Atomic/UI/Accordion/Accordion.js +18 -48
- package/dist/Atomic/UI/Accordion/AccordionItem.js +35 -60
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +48 -104
- package/dist/Atomic/UI/AccordionText/AccordionText.js +21 -54
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +47 -92
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +22 -50
- package/dist/Atomic/UI/Alert/Alert.js +22 -51
- package/dist/Atomic/UI/Arrow/Arrow.js +15 -35
- package/dist/Atomic/UI/Box/Box.js +14 -21
- package/dist/Atomic/UI/Button/Button.js +26 -35
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +22 -31
- package/dist/Atomic/UI/Chart/Chart.js +45 -86
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +14 -24
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +13 -22
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +68 -113
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +158 -140
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +26 -42
- package/dist/Atomic/UI/Chart/partial/utils.js +20 -48
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +22 -42
- package/dist/Atomic/UI/DateTime/DateTime.js +23 -38
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +13 -37
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +5 -21
- package/dist/Atomic/UI/DoubleString/DoubleString.js +34 -63
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +15 -63
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +62 -157
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +47 -110
- package/dist/Atomic/UI/Hint/Hint.js +67 -122
- package/dist/Atomic/UI/Hint/partial/_utils.js +52 -0
- package/dist/Atomic/UI/Hint/partials/_utils.js +14 -29
- package/dist/Atomic/UI/Modal/Modal.js +147 -184
- package/dist/Atomic/UI/Modal/ModalHOC.js +15 -26
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +7 -12
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +17 -21
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +99 -161
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +32 -62
- package/dist/Atomic/UI/NavLine/NavLine.js +120 -211
- package/dist/Atomic/UI/NavLine/Tabs.js +2 -3
- package/dist/Atomic/UI/PageTitle/PageTitle.js +13 -17
- package/dist/Atomic/UI/PieChart/PieChart.js +11 -21
- package/dist/Atomic/UI/Price/Price.js +10 -13
- package/dist/Atomic/UI/PriceRange/PriceRange.js +7 -11
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +28 -58
- package/dist/Atomic/UI/Status/Status.js +19 -30
- package/dist/Atomic/UI/Table/Partials/TdCell.js +28 -71
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +7 -16
- package/dist/Atomic/UI/Table/Partials/TdRow.js +29 -65
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +16 -40
- package/dist/Atomic/UI/Table/Table.js +27 -47
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +18 -48
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +9 -19
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +5 -6
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +22 -39
- package/dist/Atomic/UI/Tag/Tag.js +59 -94
- package/dist/Atomic/UI/TagList/TagList.js +81 -144
- package/dist/Atomic/UI/UserBox/UserBox.js +14 -26
- package/dist/Atomic/UI/WizardStepper/constructor.js +7 -15
- package/dist/Atomic/UI/WizardStepper/index.js +1 -5
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +20 -26
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -4
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +26 -39
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -5
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +23 -42
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -5
- package/dist/Atomic/UI/WizardStepper/ui/icons.js +40 -49
- package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -5
- package/dist/Classes/AbortableFetch.js +283 -422
- package/dist/Classes/AnimatedHandler.js +44 -56
- package/dist/Classes/RESTAPI/index.js +158 -441
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +290 -428
- package/dist/Classes/RESTAPI/partials/ApiBase.js +24 -67
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +83 -353
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +161 -403
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +159 -400
- package/dist/Classes/RESTAPI/partials/Utils.js +81 -135
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +2 -6
- package/dist/Classes/RESTAPI/partials/_utils.js +103 -398
- package/dist/Constants/index.constants.js +8 -15
- package/dist/Functions/Portal.js +14 -33
- package/dist/Functions/customEventListener.js +9 -24
- package/dist/Functions/fieldValueFormatters.js +147 -209
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +75 -137
- package/dist/Functions/locale/createTranslator.js +13 -28
- package/dist/Functions/operations.js +35 -49
- package/dist/Functions/presets/inputMaskPresets.js +25 -27
- package/dist/Functions/presets/inputPresets.js +19 -22
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +7 -9
- package/dist/Functions/schemas.js +6 -15
- package/dist/Functions/useBodyScrollLock.js +4 -9
- package/dist/Functions/useClickOutside.js +3 -7
- package/dist/Functions/useDebounce.js +11 -25
- package/dist/Functions/useFieldFocus.js +42 -67
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +35 -54
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +74 -95
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +55 -91
- package/dist/Functions/useFormTools/functions/General.js +80 -99
- package/dist/Functions/useFormTools/functions/RenderFields.js +45 -72
- package/dist/Functions/useFormTools/functions/usePrevious.js +3 -7
- package/dist/Functions/useFormTools/index.js +380 -592
- package/dist/Functions/useInputHighlightError.js +27 -52
- package/dist/Functions/useIsMobile.js +15 -39
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +10 -15
- package/dist/Functions/useKeyPress/useKeyPress.js +18 -35
- package/dist/Functions/useLocalStorage.js +7 -22
- package/dist/Functions/useLocationParams.js +16 -27
- package/dist/Functions/useMediaQuery.js +10 -27
- package/dist/Functions/useMetaInfo.js +19 -50
- package/dist/Functions/useMouseUpOutside.js +2 -5
- package/dist/Functions/useOnlineStatus.js +7 -26
- package/dist/Functions/usePasswordChecker.js +42 -77
- package/dist/Functions/usePrevious.js +3 -7
- package/dist/Functions/useResize.js +12 -32
- package/dist/Functions/useScrollTo.js +6 -20
- package/dist/Functions/useToggle.js +10 -30
- package/dist/Functions/utils.js +188 -386
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +21 -32
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +21 -32
- package/dist/Molecular/CustomIcons/components/AppStore.js +25 -36
- package/dist/Molecular/CustomIcons/components/Arrow.js +31 -42
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +13 -24
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +16 -27
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +16 -27
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +13 -24
- package/dist/Molecular/CustomIcons/components/Bell.js +11 -22
- package/dist/Molecular/CustomIcons/components/Button.js +11 -22
- package/dist/Molecular/CustomIcons/components/Campaigns.js +12 -23
- package/dist/Molecular/CustomIcons/components/Check.js +12 -23
- package/dist/Molecular/CustomIcons/components/Check2.js +11 -22
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +11 -22
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +11 -22
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +11 -22
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +11 -22
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +11 -22
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +26 -37
- package/dist/Molecular/CustomIcons/components/Close.js +13 -24
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +38 -49
- package/dist/Molecular/CustomIcons/components/Delete.js +12 -23
- package/dist/Molecular/CustomIcons/components/Edit.js +11 -22
- package/dist/Molecular/CustomIcons/components/Email.js +29 -40
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +19 -30
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +27 -38
- package/dist/Molecular/CustomIcons/components/Flows.js +11 -22
- package/dist/Molecular/CustomIcons/components/Gift.js +16 -27
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +25 -36
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +25 -36
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +14 -25
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +15 -26
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +14 -25
- package/dist/Molecular/CustomIcons/components/Home.js +14 -25
- package/dist/Molecular/CustomIcons/components/Home2.js +17 -28
- package/dist/Molecular/CustomIcons/components/Key.js +19 -30
- package/dist/Molecular/CustomIcons/components/Landers.js +15 -26
- package/dist/Molecular/CustomIcons/components/Lock.js +11 -22
- package/dist/Molecular/CustomIcons/components/Mail.js +19 -30
- package/dist/Molecular/CustomIcons/components/Mastercard.js +61 -72
- package/dist/Molecular/CustomIcons/components/Minus.js +24 -35
- package/dist/Molecular/CustomIcons/components/Offers.js +12 -23
- package/dist/Molecular/CustomIcons/components/Pause.js +24 -35
- package/dist/Molecular/CustomIcons/components/PayPal.js +38 -49
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +25 -36
- package/dist/Molecular/CustomIcons/components/Phone.js +26 -37
- package/dist/Molecular/CustomIcons/components/Play.js +24 -35
- package/dist/Molecular/CustomIcons/components/Plus.js +24 -35
- package/dist/Molecular/CustomIcons/components/Profile.js +16 -27
- package/dist/Molecular/CustomIcons/components/QRCode.js +26 -37
- package/dist/Molecular/CustomIcons/components/Rectangle.js +11 -22
- package/dist/Molecular/CustomIcons/components/Revert.js +14 -25
- package/dist/Molecular/CustomIcons/components/Star.js +10 -21
- package/dist/Molecular/CustomIcons/components/Star2.js +12 -23
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +14 -25
- package/dist/Molecular/CustomIcons/components/Trash.js +11 -22
- package/dist/Molecular/CustomIcons/components/TrashRed.js +11 -22
- package/dist/Molecular/CustomIcons/components/Triggers.js +11 -22
- package/dist/Molecular/CustomIcons/components/User.js +16 -27
- package/dist/Molecular/CustomIcons/components/Visa.js +27 -38
- package/dist/Molecular/CustomIcons/components/X.js +11 -22
- package/dist/Molecular/CustomIcons/index.js +61 -183
- package/dist/Molecular/FormElement/FormElement.js +19 -28
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +91 -112
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +35 -37
- package/dist/Molecular/InputAddress/InputAddress.js +176 -312
- package/dist/Molecular/InputPassword/InputPassword.js +15 -39
- package/dist/index.js +1 -3
- package/package.json +1 -1
- package/dist/Atomic/FormElements/UserContacts/partial/defaultIcons.js +0 -119
- package/dist/Atomic/UI/ModalBackup/Modal.js +0 -174
- package/dist/Atomic/UI/ModalBackup/Modal.scss +0 -333
- package/dist/Atomic/UI/ModalBackup/ModalHOC.js +0 -51
- package/dist/Atomic/UI/ModalBackup/partials/ModalFooter.js +0 -24
- package/dist/Atomic/UI/ModalBackup/partials/ModalTitle.js +0 -41
- package/dist/Functions/presets/inputMaskPreset.js +0 -176
|
@@ -1,62 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = useFormTools;
|
|
9
|
-
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
-
|
|
16
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
17
|
-
|
|
18
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
-
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
8
|
var _react = require("react");
|
|
23
|
-
|
|
24
9
|
var _ArrayWithObjects = _interopRequireDefault(require("./form-drivers/ArrayWithObjects"));
|
|
25
|
-
|
|
26
10
|
var _ObjectWithIterableObjects = _interopRequireDefault(require("./form-drivers/ObjectWithIterableObjects"));
|
|
27
|
-
|
|
28
11
|
var _ObjectWithNamedKeyObjects = _interopRequireDefault(require("./form-drivers/ObjectWithNamedKeyObjects"));
|
|
29
|
-
|
|
30
|
-
var _General2 = _interopRequireDefault(require("./functions/General"));
|
|
31
|
-
|
|
12
|
+
var _General = _interopRequireDefault(require("./functions/General"));
|
|
32
13
|
var _RenderFields = _interopRequireDefault(require("./functions/RenderFields"));
|
|
14
|
+
// eslint-disable-next-line no-unused-vars
|
|
33
15
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
|
-
|
|
38
|
-
var DefaultFocusControllerProps = {
|
|
16
|
+
const DefaultFocusControllerProps = {
|
|
39
17
|
setAutoFocus: true,
|
|
40
18
|
onlyEmptyFieldAutoFocus: false
|
|
41
19
|
};
|
|
42
|
-
|
|
43
20
|
function useFormTools() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
var FormDataDrivers = {
|
|
21
|
+
let {
|
|
22
|
+
form,
|
|
23
|
+
setForm,
|
|
24
|
+
FormType,
|
|
25
|
+
FormFields,
|
|
26
|
+
FormDataDriverName = "ArrayWithObjects" || "ObjectWithIterableObjects" || "ObjectWithNamedKeyObjects",
|
|
27
|
+
FormDataDriver = null,
|
|
28
|
+
FocusControllerProps = DefaultFocusControllerProps,
|
|
29
|
+
goToNextFieldOnEnterPressed = true
|
|
30
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
31
|
+
FocusControllerProps = {
|
|
32
|
+
...DefaultFocusControllerProps,
|
|
33
|
+
...FocusControllerProps
|
|
34
|
+
};
|
|
35
|
+
const FormDataDrivers = {
|
|
60
36
|
ArrayWithObjects: {
|
|
61
37
|
handlers: _ArrayWithObjects.default,
|
|
62
38
|
default: true
|
|
@@ -68,54 +44,42 @@ function useFormTools() {
|
|
|
68
44
|
handlers: _ObjectWithNamedKeyObjects.default
|
|
69
45
|
}
|
|
70
46
|
};
|
|
71
|
-
|
|
72
|
-
var getFormDataDriver = function getFormDataDriver(name) {
|
|
47
|
+
const getFormDataDriver = name => {
|
|
73
48
|
var _FormDataDrivers$name, _Object$values$find;
|
|
74
|
-
|
|
75
|
-
return FormDataDriver || ((_FormDataDrivers$name = FormDataDrivers[name]) === null || _FormDataDrivers$name === void 0 ? void 0 : _FormDataDrivers$name.handlers) || ((_Object$values$find = Object.values(FormDataDrivers).find(function (df) {
|
|
76
|
-
return df.default === true;
|
|
77
|
-
})) === null || _Object$values$find === void 0 ? void 0 : _Object$values$find.handlers) || function () {
|
|
78
|
-
return {};
|
|
79
|
-
};
|
|
49
|
+
return FormDataDriver || ((_FormDataDrivers$name = FormDataDrivers[name]) === null || _FormDataDrivers$name === void 0 ? void 0 : _FormDataDrivers$name.handlers) || ((_Object$values$find = Object.values(FormDataDrivers).find(df => df.default === true)) === null || _Object$values$find === void 0 ? void 0 : _Object$values$find.handlers) || (() => ({}));
|
|
80
50
|
};
|
|
81
|
-
|
|
82
|
-
var getFormDataDriverInstance = function getFormDataDriverInstance(name) {
|
|
51
|
+
const getFormDataDriverInstance = function (name) {
|
|
83
52
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
84
53
|
args[_key - 1] = arguments[_key];
|
|
85
54
|
}
|
|
55
|
+
return getFormDataDriver(name)(...args);
|
|
56
|
+
};
|
|
57
|
+
const {
|
|
58
|
+
getFieldClassName,
|
|
59
|
+
updateFormField
|
|
60
|
+
} = (0, _General.default)();
|
|
61
|
+
const {
|
|
62
|
+
getFieldData,
|
|
63
|
+
getFormField,
|
|
64
|
+
setFormFields,
|
|
65
|
+
setFormField,
|
|
66
|
+
getFormFieldsAsArray,
|
|
67
|
+
getFormFieldsKeys,
|
|
68
|
+
removeAllFormFields,
|
|
69
|
+
removeFormField,
|
|
70
|
+
removeFormFields
|
|
71
|
+
} = getFormDataDriverInstance(FormDataDriverName, {
|
|
72
|
+
form,
|
|
73
|
+
setForm,
|
|
74
|
+
FormFields
|
|
75
|
+
});
|
|
86
76
|
|
|
87
|
-
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
var _General = (0, _General2.default)(),
|
|
91
|
-
getFieldClassName = _General.getFieldClassName,
|
|
92
|
-
updateFormField = _General.updateFormField;
|
|
93
|
-
|
|
94
|
-
var _getFormDataDriverIns = getFormDataDriverInstance(FormDataDriverName, {
|
|
95
|
-
form: form,
|
|
96
|
-
setForm: setForm,
|
|
97
|
-
FormFields: FormFields
|
|
98
|
-
}),
|
|
99
|
-
getFieldData = _getFormDataDriverIns.getFieldData,
|
|
100
|
-
getFormField = _getFormDataDriverIns.getFormField,
|
|
101
|
-
setFormFields = _getFormDataDriverIns.setFormFields,
|
|
102
|
-
_setFormField = _getFormDataDriverIns.setFormField,
|
|
103
|
-
getFormFieldsAsArray = _getFormDataDriverIns.getFormFieldsAsArray,
|
|
104
|
-
getFormFieldsKeys = _getFormDataDriverIns.getFormFieldsKeys,
|
|
105
|
-
removeAllFormFields = _getFormDataDriverIns.removeAllFormFields,
|
|
106
|
-
removeFormField = _getFormDataDriverIns.removeFormField,
|
|
107
|
-
removeFormFields = _getFormDataDriverIns.removeFormFields; ///////////////////////////////////////////////////////////////
|
|
77
|
+
///////////////////////////////////////////////////////////////
|
|
108
78
|
//--- OnChange Observer ---//--- START ---//
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
onChangeObservers = _useState2[0],
|
|
114
|
-
setOnChangeObservers = _useState2[1];
|
|
115
|
-
|
|
116
|
-
var addOnChangeObserver = function addOnChangeObserver(key, cb) {
|
|
117
|
-
var observerId = null;
|
|
118
|
-
setOnChangeObservers(function (state) {
|
|
79
|
+
const [onChangeObservers, setOnChangeObservers] = (0, _react.useState)({});
|
|
80
|
+
const addOnChangeObserver = (key, cb) => {
|
|
81
|
+
let observerId = null;
|
|
82
|
+
setOnChangeObservers(state => {
|
|
119
83
|
//Set Default Value
|
|
120
84
|
if (!state[key]) state[key] = {};
|
|
121
85
|
observerId = state[key].length;
|
|
@@ -124,261 +88,161 @@ function useFormTools() {
|
|
|
124
88
|
});
|
|
125
89
|
return observerId;
|
|
126
90
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
setOnChangeObservers(function (state) {
|
|
91
|
+
const removeOnChangeObserver = (key, id) => {
|
|
92
|
+
setOnChangeObservers(state => {
|
|
130
93
|
//Set Default Value
|
|
131
94
|
if (!state[key]) return state;
|
|
132
|
-
state[key] = Object.keys(state).filter(
|
|
133
|
-
return cbId !== id;
|
|
134
|
-
}).map(function (cbId) {
|
|
135
|
-
return state[key][cbId];
|
|
136
|
-
});
|
|
95
|
+
state[key] = Object.keys(state).filter(cbId => cbId !== id).map(cbId => state[key][cbId]);
|
|
137
96
|
return state;
|
|
138
97
|
});
|
|
139
98
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
Object.values(Observers).map(function (cb) {
|
|
99
|
+
const onChangeObserver = (key, value) => {
|
|
100
|
+
if (!onChangeObservers[key] || typeof onChangeObservers[key] !== "object") return;
|
|
101
|
+
const Observers = onChangeObservers[key];
|
|
102
|
+
Object.values(Observers).map(cb => {
|
|
145
103
|
cb({
|
|
146
|
-
value
|
|
147
|
-
form
|
|
104
|
+
value,
|
|
105
|
+
form
|
|
148
106
|
});
|
|
149
107
|
return null;
|
|
150
108
|
});
|
|
151
109
|
};
|
|
152
|
-
|
|
153
|
-
var onFieldChange = function onFieldChange(key, value) {
|
|
110
|
+
const onFieldChange = (key, value) => {
|
|
154
111
|
var _getFormField;
|
|
155
|
-
|
|
156
112
|
if (value === ((_getFormField = getFormField(key)) === null || _getFormField === void 0 ? void 0 : _getFormField.value)) return false;
|
|
157
113
|
onChangeObserver(key, value);
|
|
114
|
+
setFormField(field => ({
|
|
115
|
+
...field,
|
|
116
|
+
error: "",
|
|
117
|
+
value
|
|
118
|
+
}), key);
|
|
119
|
+
};
|
|
120
|
+
//--- OnChange Observer ---//--- END ---//
|
|
158
121
|
|
|
159
|
-
_setFormField(function (field) {
|
|
160
|
-
return _objectSpread(_objectSpread({}, field), {}, {
|
|
161
|
-
error: "",
|
|
162
|
-
value: value
|
|
163
|
-
});
|
|
164
|
-
}, key);
|
|
165
|
-
}; //--- OnChange Observer ---//--- END ---//
|
|
166
122
|
///////////////////////////////////////////////////////////////
|
|
167
123
|
///////////////////////////////////////////////////////////////
|
|
168
|
-
//--- Form Submit Blocker ---//--- START ---//
|
|
169
124
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
setFormSubmitBlockers = _useState4[1];
|
|
175
|
-
|
|
176
|
-
var toggleFormSubmitBlock = function toggleFormSubmitBlock(key, value) {
|
|
177
|
-
setFormSubmitBlockers(function (state) {
|
|
178
|
-
return state.includes(key) || !value ? (0, _toConsumableArray2.default)(state.filter(function (k) {
|
|
179
|
-
return k !== key;
|
|
180
|
-
})) : [].concat((0, _toConsumableArray2.default)(state), [key]);
|
|
181
|
-
});
|
|
125
|
+
//--- Form Submit Blocker ---//--- START ---//
|
|
126
|
+
const [formSubmitBlockers, setFormSubmitBlockers] = (0, _react.useState)([]);
|
|
127
|
+
const toggleFormSubmitBlock = (key, value) => {
|
|
128
|
+
setFormSubmitBlockers(state => state.includes(key) || !value ? [...state.filter(k => k !== key)] : [...state, key]);
|
|
182
129
|
};
|
|
130
|
+
const clearFormSubmitBlockers = () => setFormSubmitBlockers([]);
|
|
131
|
+
//--- Form Submit Blocker ---//--- END ---//
|
|
183
132
|
|
|
184
|
-
var clearFormSubmitBlockers = function clearFormSubmitBlockers() {
|
|
185
|
-
return setFormSubmitBlockers([]);
|
|
186
|
-
}; //--- Form Submit Blocker ---//--- END ---//
|
|
187
133
|
///////////////////////////////////////////////////////////////
|
|
188
134
|
///////////////////////////////////////////////////////////////
|
|
135
|
+
|
|
189
136
|
//--- Property Observer Blocker ---//--- START ---//
|
|
190
137
|
// const [propertyObservers, setPropertyObservers] = useState({});
|
|
191
138
|
// function addPropertyObserver () {
|
|
192
139
|
// };
|
|
193
140
|
//--- Property Observer Blocker ---//--- END ---//
|
|
141
|
+
|
|
194
142
|
///////////////////////////////////////////////////////////////
|
|
195
143
|
///////////////////////////////////////////////////////////////
|
|
196
|
-
//--- Render Fields Controller ---//--- START ---//
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
var _useState5 = (0, _react.useState)(false),
|
|
200
|
-
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
201
|
-
isFormFieldsAdded = _useState6[0],
|
|
202
|
-
setIsFormFieldsAdded = _useState6[1];
|
|
203
|
-
|
|
204
|
-
var _useState7 = (0, _react.useState)([]),
|
|
205
|
-
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
206
|
-
renderFormFields = _useState8[0],
|
|
207
|
-
setRenderFormFieldsState = _useState8[1];
|
|
208
|
-
|
|
209
|
-
var setRenderFormFields = function setRenderFormFields(data) {
|
|
210
|
-
setIsFormFieldsAdded(true); // eslint-disable-next-line no-use-before-define
|
|
211
|
-
|
|
212
|
-
removeRenderFields(renderFormFields); // eslint-disable-next-line no-use-before-define
|
|
213
144
|
|
|
145
|
+
//--- Render Fields Controller ---//--- START ---//
|
|
146
|
+
const [isFormFieldsAdded, setIsFormFieldsAdded] = (0, _react.useState)(false);
|
|
147
|
+
const [renderFormFields, setRenderFormFieldsState] = (0, _react.useState)([]);
|
|
148
|
+
const setRenderFormFields = data => {
|
|
149
|
+
setIsFormFieldsAdded(true);
|
|
150
|
+
// eslint-disable-next-line no-use-before-define
|
|
151
|
+
removeRenderFields(renderFormFields);
|
|
152
|
+
// eslint-disable-next-line no-use-before-define
|
|
214
153
|
resetIsInitFocused();
|
|
215
154
|
setRenderFormFieldsState(data);
|
|
216
155
|
};
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
156
|
+
const addRenderFields = fields => {
|
|
157
|
+
setRenderFormFieldsState(state => [...state, ...fields]);
|
|
158
|
+
};
|
|
159
|
+
const removeRenderFields = fields => {
|
|
160
|
+
setRenderFormFieldsState(state => state.filter(field => !fields.includes(field)));
|
|
161
|
+
};
|
|
162
|
+
const [isFormRendered, setIsFormRendered] = (0, _react.useState)(false);
|
|
163
|
+
const submitIsFormRendered = () => setIsFormRendered(true);
|
|
164
|
+
const resetIsFormRendered = () => setIsFormRendered(false);
|
|
165
|
+
const onEnterDown = async e => {
|
|
166
|
+
if (!goToNextFieldOnEnterPressed) return false;
|
|
167
|
+
const focusable = document.querySelectorAll('a, button, input, [tabindex]:not([tabindex="-1"])');
|
|
168
|
+
const currentIndex = await new Promise(resolve => {
|
|
169
|
+
focusable.forEach((node, i) => {
|
|
170
|
+
if (node === e.target) resolve(i);
|
|
228
171
|
});
|
|
229
172
|
});
|
|
173
|
+
if (!currentIndex) return false;
|
|
174
|
+
const nextIndex = currentIndex + 1;
|
|
175
|
+
if (nextIndex >= focusable.length) return false;
|
|
176
|
+
const nextItem = focusable[nextIndex];
|
|
177
|
+
nextItem.focus();
|
|
230
178
|
};
|
|
231
|
-
|
|
232
|
-
var _useState9 = (0, _react.useState)(false),
|
|
233
|
-
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
234
|
-
isFormRendered = _useState10[0],
|
|
235
|
-
setIsFormRendered = _useState10[1];
|
|
236
|
-
|
|
237
|
-
var submitIsFormRendered = function submitIsFormRendered() {
|
|
238
|
-
return setIsFormRendered(true);
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
var resetIsFormRendered = function resetIsFormRendered() {
|
|
242
|
-
return setIsFormRendered(false);
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
var onEnterDown = /*#__PURE__*/function () {
|
|
246
|
-
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {
|
|
247
|
-
var focusable, currentIndex, nextIndex, nextItem;
|
|
248
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
249
|
-
while (1) {
|
|
250
|
-
switch (_context.prev = _context.next) {
|
|
251
|
-
case 0:
|
|
252
|
-
if (goToNextFieldOnEnterPressed) {
|
|
253
|
-
_context.next = 2;
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
return _context.abrupt("return", false);
|
|
258
|
-
|
|
259
|
-
case 2:
|
|
260
|
-
focusable = document.querySelectorAll('a, button, input, [tabindex]:not([tabindex="-1"])');
|
|
261
|
-
_context.next = 5;
|
|
262
|
-
return new Promise(function (resolve) {
|
|
263
|
-
focusable.forEach(function (node, i) {
|
|
264
|
-
if (node === e.target) resolve(i);
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
case 5:
|
|
269
|
-
currentIndex = _context.sent;
|
|
270
|
-
|
|
271
|
-
if (currentIndex) {
|
|
272
|
-
_context.next = 8;
|
|
273
|
-
break;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
return _context.abrupt("return", false);
|
|
277
|
-
|
|
278
|
-
case 8:
|
|
279
|
-
nextIndex = currentIndex + 1;
|
|
280
|
-
|
|
281
|
-
if (!(nextIndex >= focusable.length)) {
|
|
282
|
-
_context.next = 11;
|
|
283
|
-
break;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
return _context.abrupt("return", false);
|
|
287
|
-
|
|
288
|
-
case 11:
|
|
289
|
-
nextItem = focusable[nextIndex];
|
|
290
|
-
nextItem.focus();
|
|
291
|
-
|
|
292
|
-
case 13:
|
|
293
|
-
case "end":
|
|
294
|
-
return _context.stop();
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}, _callee);
|
|
298
|
-
}));
|
|
299
|
-
|
|
300
|
-
return function onEnterDown(_x) {
|
|
301
|
-
return _ref2.apply(this, arguments);
|
|
302
|
-
};
|
|
303
|
-
}();
|
|
304
|
-
|
|
305
|
-
var onKeyDown = function onKeyDown() {
|
|
179
|
+
const onKeyDown = function () {
|
|
306
180
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
307
181
|
args[_key2] = arguments[_key2];
|
|
308
182
|
}
|
|
309
|
-
|
|
310
|
-
var event = args.reduce(function (e, item) {
|
|
183
|
+
const event = args.reduce((e, item) => {
|
|
311
184
|
if ((item === null || item === void 0 ? void 0 : item.nativeEvent) instanceof KeyboardEvent) return item;
|
|
312
185
|
return e;
|
|
313
186
|
}, null);
|
|
314
187
|
if (!event) return false;
|
|
315
|
-
|
|
316
|
-
|
|
188
|
+
const {
|
|
189
|
+
keyCode
|
|
190
|
+
} = event;
|
|
317
191
|
switch (keyCode) {
|
|
318
192
|
//OnEnterDown
|
|
319
193
|
case 13:
|
|
320
194
|
onEnterDown(event);
|
|
321
195
|
break;
|
|
322
|
-
|
|
323
196
|
default:
|
|
324
197
|
break;
|
|
325
198
|
}
|
|
326
|
-
};
|
|
327
|
-
|
|
199
|
+
};
|
|
328
200
|
|
|
329
|
-
|
|
201
|
+
//On Type Change
|
|
202
|
+
(0, _react.useEffect)(() => {
|
|
330
203
|
resetIsFormRendered();
|
|
331
|
-
}, [FormType]);
|
|
204
|
+
}, [FormType]);
|
|
332
205
|
|
|
333
|
-
|
|
334
|
-
|
|
206
|
+
//On Render Fields Change
|
|
207
|
+
(0, _react.useEffect)(() => {
|
|
208
|
+
if (isFormFieldsAdded) resetIsFormRendered(false);
|
|
335
209
|
|
|
210
|
+
//Add Form Fields
|
|
336
211
|
if (renderFormFields.length !== 0) {
|
|
337
|
-
setFormFields(
|
|
338
|
-
return renderFormFields.reduce(
|
|
212
|
+
setFormFields(fields => {
|
|
213
|
+
return renderFormFields.reduce((result, key) => {
|
|
339
214
|
var _field$className;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
if (!(field !== null && field !== void 0 && field.className) || (field === null || field === void 0 ? void 0 : (_field$className = field.className) === null || _field$className === void 0 ? void 0 : _field$className.indexOf(getFieldClassName(key, FormType))) === -1) {
|
|
215
|
+
const fieldData = getFieldData(key);
|
|
216
|
+
const field = getFormField(key) ? getFormField(key) : fieldData;
|
|
217
|
+
if (!(field !== null && field !== void 0 && field.className) || (field === null || field === void 0 || (_field$className = field.className) === null || _field$className === void 0 ? void 0 : _field$className.indexOf(getFieldClassName(key, FormType))) === -1) {
|
|
345
218
|
field.className = "".concat(field === null || field === void 0 ? void 0 : field.className, " ").concat(getFieldClassName(key, FormType));
|
|
346
219
|
}
|
|
347
|
-
|
|
348
|
-
if ((0, _typeof2.default)(fieldData === null || fieldData === void 0 ? void 0 : fieldData.label) === "object") {
|
|
220
|
+
if (typeof (fieldData === null || fieldData === void 0 ? void 0 : fieldData.label) === "object") {
|
|
349
221
|
field.label = fieldData.label[FormType] || fieldData.label.default;
|
|
350
222
|
}
|
|
351
|
-
|
|
352
223
|
field.ref = /*#__PURE__*/(0, _react.createRef)();
|
|
353
224
|
field.wrapperRef = /*#__PURE__*/(0, _react.createRef)();
|
|
354
225
|
field.isValueChangedByUser = false;
|
|
355
|
-
|
|
356
226
|
if (goToNextFieldOnEnterPressed) {
|
|
357
|
-
|
|
358
|
-
|
|
227
|
+
const onKeyDownProp = field.onKeyDown || (() => {});
|
|
359
228
|
field.onKeyDown = function () {
|
|
360
|
-
onKeyDown
|
|
361
|
-
onKeyDownProp
|
|
362
|
-
};
|
|
363
|
-
} //Is Field Value Changed By USER
|
|
364
|
-
// eslint-disable-next-line no-use-before-define
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
addOnFieldRenderedObserver(key, function () {
|
|
368
|
-
var _getFormField2, _getFormField2$ref, _getFormField2$ref$cu;
|
|
369
|
-
|
|
370
|
-
var element = (_getFormField2 = getFormField(key)) === null || _getFormField2 === void 0 ? void 0 : (_getFormField2$ref = _getFormField2.ref) === null || _getFormField2$ref === void 0 ? void 0 : (_getFormField2$ref$cu = _getFormField2$ref.current) === null || _getFormField2$ref$cu === void 0 ? void 0 : _getFormField2$ref$cu.querySelector((field === null || field === void 0 ? void 0 : field.focusSelector) || "input");
|
|
371
|
-
|
|
372
|
-
var handler = function handler() {
|
|
373
|
-
return _setFormField({
|
|
374
|
-
isValueChangedByUser: true
|
|
375
|
-
}, key);
|
|
229
|
+
onKeyDown(...arguments);
|
|
230
|
+
onKeyDownProp(...arguments);
|
|
376
231
|
};
|
|
232
|
+
}
|
|
377
233
|
|
|
378
|
-
|
|
234
|
+
//Is Field Value Changed By USER
|
|
235
|
+
// eslint-disable-next-line no-use-before-define
|
|
236
|
+
addOnFieldRenderedObserver(key, () => {
|
|
237
|
+
var _getFormField2;
|
|
238
|
+
const element = (_getFormField2 = getFormField(key)) === null || _getFormField2 === void 0 || (_getFormField2 = _getFormField2.ref) === null || _getFormField2 === void 0 || (_getFormField2 = _getFormField2.current) === null || _getFormField2 === void 0 ? void 0 : _getFormField2.querySelector((field === null || field === void 0 ? void 0 : field.focusSelector) || "input");
|
|
239
|
+
const handler = () => setFormField({
|
|
240
|
+
isValueChangedByUser: true
|
|
241
|
+
}, key);
|
|
242
|
+
element === null || element === void 0 || element.addEventListener("paste", handler, {
|
|
379
243
|
once: true
|
|
380
244
|
});
|
|
381
|
-
element === null || element === void 0
|
|
245
|
+
element === null || element === void 0 || element.addEventListener("keypress", handler, {
|
|
382
246
|
once: true
|
|
383
247
|
});
|
|
384
248
|
}, true);
|
|
@@ -387,53 +251,40 @@ function useFormTools() {
|
|
|
387
251
|
});
|
|
388
252
|
}
|
|
389
253
|
}, [renderFormFields]);
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
var updateOnFormRenderObserver = function updateOnFormRenderObserver(key, data) {
|
|
412
|
-
setOnFormRenderObservers(function (state) {
|
|
413
|
-
var copy = (0, _toConsumableArray2.default)(state);
|
|
414
|
-
copy[key] = _objectSpread(_objectSpread({}, state[key]), data);
|
|
254
|
+
const [onFormRenderObservers, setOnFormRenderObservers] = (0, _react.useState)([]);
|
|
255
|
+
const addOnFormRenderObserver = function (cb) {
|
|
256
|
+
let {
|
|
257
|
+
once = false
|
|
258
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
259
|
+
setOnFormRenderObservers(state => [...state, {
|
|
260
|
+
cb,
|
|
261
|
+
once,
|
|
262
|
+
isWorkedOut: false
|
|
263
|
+
}]);
|
|
264
|
+
};
|
|
265
|
+
// eslint-disable-next-line no-unused-vars
|
|
266
|
+
const updateOnFormRenderObserver = (key, data) => {
|
|
267
|
+
setOnFormRenderObservers(state => {
|
|
268
|
+
const copy = [...state];
|
|
269
|
+
copy[key] = {
|
|
270
|
+
...state[key],
|
|
271
|
+
...data
|
|
272
|
+
};
|
|
415
273
|
return copy;
|
|
416
274
|
});
|
|
417
275
|
};
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
setOnFormRenderObservers(function (state) {
|
|
421
|
-
return state.slice().filter(function (v, i) {
|
|
422
|
-
return i !== key;
|
|
423
|
-
});
|
|
424
|
-
});
|
|
276
|
+
const removeOnFormRenderObserver = key => {
|
|
277
|
+
setOnFormRenderObservers(state => state.slice().filter((v, i) => i !== key));
|
|
425
278
|
};
|
|
426
|
-
|
|
427
|
-
var onFormRenderWorker = function onFormRenderWorker() {
|
|
279
|
+
const onFormRenderWorker = () => {
|
|
428
280
|
// eslint-disable-next-line default-param-last
|
|
429
281
|
onFormRenderObservers.map(function () {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
var key = arguments.length > 1 ? arguments[1] : undefined;
|
|
282
|
+
let {
|
|
283
|
+
once,
|
|
284
|
+
isWorkedOut,
|
|
285
|
+
cb = () => {}
|
|
286
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
287
|
+
let key = arguments.length > 1 ? arguments[1] : undefined;
|
|
437
288
|
if (once && isWorkedOut) return null;
|
|
438
289
|
cb(form);
|
|
439
290
|
if (once) removeOnFormRenderObserver(key);else updateOnFormRenderObserver(key, {
|
|
@@ -441,330 +292,265 @@ function useFormTools() {
|
|
|
441
292
|
});
|
|
442
293
|
return null;
|
|
443
294
|
});
|
|
444
|
-
};
|
|
445
|
-
|
|
295
|
+
};
|
|
446
296
|
|
|
447
|
-
|
|
297
|
+
//On Form Rendered
|
|
298
|
+
(0, _react.useEffect)(() => {
|
|
448
299
|
if (!isFormRendered && onFormRenderObservers.length) {
|
|
449
|
-
|
|
450
|
-
|
|
300
|
+
const formFieldsKeys = getFormFieldsKeys(form);
|
|
301
|
+
const isAllFieldsRendered = renderFormFields.reduce((result, key) => {
|
|
451
302
|
if (!formFieldsKeys.includes(key)) result = false;
|
|
452
303
|
return result;
|
|
453
304
|
}, true);
|
|
454
|
-
|
|
455
305
|
if (isAllFieldsRendered) {
|
|
456
306
|
submitIsFormRendered(true);
|
|
457
307
|
onFormRenderWorker();
|
|
458
308
|
}
|
|
459
309
|
}
|
|
460
|
-
}, [form, renderFormFields, onFormRenderObservers]);
|
|
310
|
+
}, [form, renderFormFields, onFormRenderObservers]);
|
|
311
|
+
//--- Render Fields Controller ---//--- END ---//
|
|
312
|
+
|
|
461
313
|
///////////////////////////////////////////////////////////////
|
|
462
314
|
///////////////////////////////////////////////////////////////
|
|
463
|
-
//--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//
|
|
464
315
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
316
|
+
//--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//
|
|
317
|
+
const hightliteErrorLabels = () => {
|
|
318
|
+
const fields = getFormFieldsAsArray();
|
|
319
|
+
const filtered = fields === null || fields === void 0 ? void 0 : fields.reduce((result, field) => {
|
|
468
320
|
if (field !== null && field !== void 0 && field.errorLabelHightlite) {
|
|
469
321
|
// eslint-disable-next-line no-use-before-define
|
|
470
|
-
result.push(
|
|
322
|
+
result.push({
|
|
323
|
+
...field,
|
|
471
324
|
className: getFieldClassName(field === null || field === void 0 ? void 0 : field.key, FormType)
|
|
472
|
-
})
|
|
325
|
+
});
|
|
473
326
|
}
|
|
474
|
-
|
|
475
327
|
return result;
|
|
476
328
|
}, []);
|
|
477
|
-
filtered === null || filtered === void 0
|
|
478
|
-
|
|
329
|
+
filtered === null || filtered === void 0 || filtered.map(field => {
|
|
330
|
+
const formField = document.querySelector(".".concat(field === null || field === void 0 ? void 0 : field.className));
|
|
479
331
|
if (!formField) return null;
|
|
480
332
|
formField.classList.remove("errorLabelHightlite");
|
|
481
|
-
|
|
482
333
|
if (field !== null && field !== void 0 && field.error) {
|
|
483
334
|
formField.classList.add("errorLabelHightlite");
|
|
484
335
|
}
|
|
485
|
-
|
|
486
336
|
return null;
|
|
487
337
|
});
|
|
488
338
|
};
|
|
489
|
-
|
|
490
|
-
(0, _react.useEffect)(function () {
|
|
339
|
+
(0, _react.useEffect)(() => {
|
|
491
340
|
hightliteErrorLabels();
|
|
492
|
-
}, [form]);
|
|
341
|
+
}, [form]);
|
|
342
|
+
//--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//
|
|
343
|
+
|
|
493
344
|
///////////////////////////////////////////////////////////////
|
|
494
345
|
///////////////////////////////////////////////////////////////
|
|
495
|
-
//--- Fields Focus Controller ---//--- START ---//
|
|
496
|
-
|
|
497
|
-
var _useState13 = (0, _react.useState)(false),
|
|
498
|
-
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
499
|
-
isInitFocused = _useState14[0],
|
|
500
|
-
setIsInitFocused = _useState14[1];
|
|
501
|
-
|
|
502
|
-
var _useState15 = (0, _react.useState)(null),
|
|
503
|
-
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
504
|
-
autoFocusedField = _useState16[0],
|
|
505
|
-
setAutoFocusedField = _useState16[1];
|
|
506
346
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
field = _ref5.field;
|
|
521
|
-
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "focus";
|
|
347
|
+
//--- Fields Focus Controller ---//--- START ---//
|
|
348
|
+
const [isInitFocused, setIsInitFocused] = (0, _react.useState)(false);
|
|
349
|
+
const [autoFocusedField, setAutoFocusedField] = (0, _react.useState)(null);
|
|
350
|
+
const setFirstFieldInitFocused = () => setIsInitFocused(true);
|
|
351
|
+
const resetIsInitFocused = () => setIsInitFocused(false);
|
|
352
|
+
const toggleFieldFocus = function (_ref) {
|
|
353
|
+
let {
|
|
354
|
+
key,
|
|
355
|
+
cb = () => {},
|
|
356
|
+
form: argForm,
|
|
357
|
+
field
|
|
358
|
+
} = _ref;
|
|
359
|
+
let action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "focus";
|
|
522
360
|
if (!key && !field) return null;
|
|
523
361
|
if (!argForm) argForm = form;
|
|
524
|
-
|
|
525
|
-
|
|
362
|
+
const formField = field || getFormField(key, argForm);
|
|
526
363
|
if (!formField || !formField.ref) {
|
|
527
364
|
return false;
|
|
528
365
|
}
|
|
529
|
-
|
|
530
366
|
if (action === "focus" && FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(formField === null || formField === void 0 ? void 0 : formField.value)) return null;
|
|
531
|
-
setTimeout(
|
|
532
|
-
var _formField$ref$curren
|
|
533
|
-
|
|
534
|
-
(_formField$ref$curren = formField.ref.current) === null || _formField$ref$curren === void 0 ? void 0 : (_formField$ref$curren2 = _formField$ref$curren.querySelector((formField === null || formField === void 0 ? void 0 : formField.focusSelector) || "input")) === null || _formField$ref$curren2 === void 0 ? void 0 : _formField$ref$curren2[action]();
|
|
367
|
+
setTimeout(() => {
|
|
368
|
+
var _formField$ref$curren;
|
|
369
|
+
(_formField$ref$curren = formField.ref.current) === null || _formField$ref$curren === void 0 || (_formField$ref$curren = _formField$ref$curren.querySelector((formField === null || formField === void 0 ? void 0 : formField.focusSelector) || "input")) === null || _formField$ref$curren === void 0 || _formField$ref$curren[action]();
|
|
535
370
|
cb();
|
|
536
371
|
}, 50);
|
|
537
372
|
};
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
373
|
+
const setFieldFocus = _ref2 => {
|
|
374
|
+
let {
|
|
375
|
+
key,
|
|
376
|
+
cb = () => {},
|
|
377
|
+
form: argForm,
|
|
378
|
+
field
|
|
379
|
+
} = _ref2;
|
|
545
380
|
return toggleFieldFocus({
|
|
546
|
-
key
|
|
547
|
-
cb
|
|
381
|
+
key,
|
|
382
|
+
cb,
|
|
548
383
|
form: argForm,
|
|
549
|
-
field
|
|
384
|
+
field
|
|
550
385
|
}, "focus");
|
|
551
386
|
};
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
387
|
+
const setFieldBlur = _ref3 => {
|
|
388
|
+
let {
|
|
389
|
+
key,
|
|
390
|
+
cb = () => {},
|
|
391
|
+
form: argForm,
|
|
392
|
+
field
|
|
393
|
+
} = _ref3;
|
|
559
394
|
return toggleFieldFocus({
|
|
560
|
-
key
|
|
561
|
-
cb
|
|
395
|
+
key,
|
|
396
|
+
cb,
|
|
562
397
|
form: argForm,
|
|
563
|
-
field
|
|
398
|
+
field
|
|
564
399
|
}, "blur");
|
|
565
400
|
};
|
|
566
|
-
|
|
567
|
-
var setFirstFieldFocus = function setFirstFieldFocus() {
|
|
401
|
+
const setFirstFieldFocus = () => {
|
|
568
402
|
var _field;
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
var key = renderFormFields[i];
|
|
574
|
-
var tmpField = getFormField(key);
|
|
403
|
+
let field = null;
|
|
404
|
+
for (let i = 0; i < renderFormFields.length && !field; ++i) {
|
|
405
|
+
const key = renderFormFields[i];
|
|
406
|
+
const tmpField = getFormField(key);
|
|
575
407
|
if (tmpField && !(tmpField !== null && tmpField !== void 0 && tmpField.disabled)) field = tmpField;
|
|
576
408
|
}
|
|
577
|
-
|
|
578
409
|
if (!field) return false;
|
|
579
|
-
|
|
580
410
|
if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean((_field = field) === null || _field === void 0 ? void 0 : _field.value)) {
|
|
581
411
|
setFirstFieldInitFocused();
|
|
582
412
|
return false;
|
|
583
413
|
}
|
|
584
|
-
|
|
585
414
|
setAutoFocusedField(field.key);
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
_setFormField({
|
|
415
|
+
const callback = () => {
|
|
416
|
+
setFormField({
|
|
589
417
|
value: field.value
|
|
590
418
|
}, field.key);
|
|
591
|
-
|
|
592
419
|
setFirstFieldInitFocused();
|
|
593
420
|
};
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
onFieldFocusCallbacks = _useState18[0],
|
|
607
|
-
setOnFieldFocusCallbacks = _useState18[1];
|
|
608
|
-
|
|
609
|
-
var addOnFieldFocusCallback = function addOnFieldFocusCallback(key, cb) {
|
|
610
|
-
setOnFieldFocusCallbacks(function (state) {
|
|
611
|
-
var stateCopy = _objectSpread({}, state);
|
|
612
|
-
|
|
421
|
+
setTimeout(() => setFieldFocus({
|
|
422
|
+
key: field.key,
|
|
423
|
+
cb: callback,
|
|
424
|
+
form
|
|
425
|
+
}), 50);
|
|
426
|
+
};
|
|
427
|
+
const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = (0, _react.useState)({});
|
|
428
|
+
const addOnFieldFocusCallback = (key, cb) => {
|
|
429
|
+
setOnFieldFocusCallbacks(state => {
|
|
430
|
+
const stateCopy = {
|
|
431
|
+
...state
|
|
432
|
+
};
|
|
613
433
|
if (!state[key]) stateCopy[key] = [];
|
|
614
434
|
stateCopy[key].push(cb);
|
|
615
435
|
return stateCopy;
|
|
616
436
|
});
|
|
617
437
|
};
|
|
618
|
-
|
|
619
|
-
var callOnFieldFocusCallbacks = function callOnFieldFocusCallbacks(key) {
|
|
438
|
+
const callOnFieldFocusCallbacks = key => {
|
|
620
439
|
var _onFieldFocusCallback;
|
|
621
|
-
|
|
622
440
|
if (!Array.isArray(onFieldFocusCallbacks[key])) return null;
|
|
623
|
-
(_onFieldFocusCallback = onFieldFocusCallbacks[key]) === null || _onFieldFocusCallback === void 0
|
|
624
|
-
return cb();
|
|
625
|
-
});
|
|
441
|
+
(_onFieldFocusCallback = onFieldFocusCallbacks[key]) === null || _onFieldFocusCallback === void 0 || _onFieldFocusCallback.map(cb => cb());
|
|
626
442
|
};
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
focusOnRenderFields = _useState20[0],
|
|
631
|
-
setFocusOnRenderFields = _useState20[1];
|
|
632
|
-
|
|
633
|
-
var addFocusFieldOnRender = function addFocusFieldOnRender(key, cb) {
|
|
634
|
-
setFocusOnRenderFields(function (state) {
|
|
635
|
-
return [].concat((0, _toConsumableArray2.default)(state), [key]);
|
|
636
|
-
});
|
|
443
|
+
const [focusOnRenderFields, setFocusOnRenderFields] = (0, _react.useState)([]);
|
|
444
|
+
const addFocusFieldOnRender = (key, cb) => {
|
|
445
|
+
setFocusOnRenderFields(state => [...state, key]);
|
|
637
446
|
if (cb) addOnFieldFocusCallback(key, cb);
|
|
638
447
|
};
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
setFocusOnRenderFields(function (state) {
|
|
642
|
-
return state.filter(function (field) {
|
|
643
|
-
return field !== key;
|
|
644
|
-
});
|
|
645
|
-
});
|
|
448
|
+
const removeFocusFieldOnRender = key => {
|
|
449
|
+
setFocusOnRenderFields(state => state.filter(field => field !== key));
|
|
646
450
|
};
|
|
647
|
-
|
|
648
|
-
(0, _react.useEffect)(function () {
|
|
451
|
+
(0, _react.useEffect)(() => {
|
|
649
452
|
if (FocusControllerProps.setAutoFocus && !isInitFocused && !autoFocusedField && isFormRendered) setFirstFieldFocus();
|
|
650
|
-
|
|
651
453
|
if (focusOnRenderFields.length) {
|
|
652
454
|
var _getFormFieldsKeys;
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
if (focusOnRenderFields.includes(key) && ((_getFormField3 = getFormField(key)) === null || _getFormField3 === void 0 ? void 0 : (_getFormField3$value = _getFormField3.value) === null || _getFormField3$value === void 0 ? void 0 : _getFormField3$value.length) === 0) {
|
|
658
|
-
var cb = function cb() {
|
|
455
|
+
(_getFormFieldsKeys = getFormFieldsKeys(form)) === null || _getFormFieldsKeys === void 0 || _getFormFieldsKeys.map(key => {
|
|
456
|
+
var _getFormField3;
|
|
457
|
+
if (focusOnRenderFields.includes(key) && ((_getFormField3 = getFormField(key)) === null || _getFormField3 === void 0 || (_getFormField3 = _getFormField3.value) === null || _getFormField3 === void 0 ? void 0 : _getFormField3.length) === 0) {
|
|
458
|
+
const cb = () => {
|
|
659
459
|
removeFocusFieldOnRender(key);
|
|
660
460
|
callOnFieldFocusCallbacks(key);
|
|
661
461
|
};
|
|
662
|
-
|
|
663
462
|
setFieldFocus({
|
|
664
|
-
key
|
|
665
|
-
form
|
|
666
|
-
cb
|
|
463
|
+
key,
|
|
464
|
+
form,
|
|
465
|
+
cb
|
|
667
466
|
});
|
|
668
467
|
}
|
|
669
|
-
|
|
670
468
|
return null;
|
|
671
469
|
});
|
|
672
470
|
}
|
|
673
471
|
}, [form, focusOnRenderFields, isInitFocused, isFormRendered]);
|
|
674
|
-
(0, _react.useEffect)(
|
|
472
|
+
(0, _react.useEffect)(() => {
|
|
675
473
|
setAutoFocusedField(null);
|
|
676
474
|
}, [isInitFocused]);
|
|
677
|
-
(0, _react.useEffect)(
|
|
475
|
+
(0, _react.useEffect)(() => {
|
|
678
476
|
resetIsInitFocused();
|
|
679
|
-
}, [FormType]);
|
|
477
|
+
}, [FormType]);
|
|
478
|
+
|
|
479
|
+
//Remove Focus From Autocomplete field !!! TODO
|
|
680
480
|
// useEffect(() => {
|
|
681
481
|
// if (!autoFocusedField) return null;
|
|
682
482
|
// const field = getFormField(autoFocusedField);
|
|
483
|
+
|
|
683
484
|
// if (field?.value !== '' && !field?.isValueChangedByUser) {
|
|
684
485
|
// setFieldBlur({key: autoFocusedField, form});
|
|
685
486
|
// }
|
|
686
487
|
// }, [autoFocusedField, form]);
|
|
687
488
|
//--- Fields Focus Controller ---//--- END ---//
|
|
489
|
+
|
|
688
490
|
///////////////////////////////////////////////////////////////
|
|
689
491
|
///////////////////////////////////////////////////////////////
|
|
690
|
-
//--- OnFieldRendered Observer ---//--- START ---//
|
|
691
|
-
|
|
692
|
-
var _useState21 = (0, _react.useState)({}),
|
|
693
|
-
_useState22 = (0, _slicedToArray2.default)(_useState21, 2),
|
|
694
|
-
onFieldRenderedObservers = _useState22[0],
|
|
695
|
-
setOnFieldRenderedObservers = _useState22[1];
|
|
696
|
-
|
|
697
|
-
var _useState23 = (0, _react.useState)(false),
|
|
698
|
-
_useState24 = (0, _slicedToArray2.default)(_useState23, 2),
|
|
699
|
-
isFieldObserversReset = _useState24[0],
|
|
700
|
-
setIsFieldObserversReset = _useState24[1];
|
|
701
492
|
|
|
702
|
-
|
|
493
|
+
//--- OnFieldRendered Observer ---//--- START ---//
|
|
494
|
+
const [onFieldRenderedObservers, setOnFieldRenderedObservers] = (0, _react.useState)({});
|
|
495
|
+
const [isFieldObserversReset, setIsFieldObserversReset] = (0, _react.useState)(false);
|
|
496
|
+
const resetOnFieldRenderObserversWorkedOut = () => {
|
|
703
497
|
if (!isFieldObserversReset && renderFormFields.length) {
|
|
704
|
-
renderFormFields.map(
|
|
705
|
-
|
|
498
|
+
renderFormFields.map(key => {
|
|
499
|
+
setFormField({
|
|
706
500
|
isOnRenderObserversWorkedOut: false
|
|
707
501
|
}, key);
|
|
708
|
-
|
|
709
502
|
return key;
|
|
710
503
|
});
|
|
711
504
|
setIsFieldObserversReset(true);
|
|
712
505
|
}
|
|
713
506
|
};
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
setOnFieldRenderedObservers(function (state) {
|
|
507
|
+
const addOnFieldRenderedObserver = function (key, cb) {
|
|
508
|
+
let isOnceCallable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
509
|
+
let observerId = null;
|
|
510
|
+
setOnFieldRenderedObservers(state => {
|
|
719
511
|
//Set Default Value
|
|
720
512
|
if (!state[key]) state[key] = {};
|
|
721
513
|
observerId = Object.keys(state[key]).length || 0;
|
|
722
514
|
state[key][observerId] = {
|
|
723
515
|
f: cb,
|
|
724
|
-
isOnceCallable
|
|
516
|
+
isOnceCallable
|
|
725
517
|
};
|
|
726
518
|
return state;
|
|
727
519
|
});
|
|
728
520
|
return observerId;
|
|
729
521
|
};
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
setOnFieldRenderedObservers(function (state) {
|
|
522
|
+
const updateOnFieldRenderedObserver = (key, id, data) => {
|
|
523
|
+
setOnFieldRenderedObservers(state => {
|
|
733
524
|
//Set Default Value
|
|
734
525
|
if (!state[key]) return state;
|
|
735
|
-
state[key][id] =
|
|
526
|
+
state[key][id] = {
|
|
527
|
+
...state[key][id],
|
|
528
|
+
...data
|
|
529
|
+
};
|
|
736
530
|
return state;
|
|
737
531
|
});
|
|
738
532
|
};
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
setOnFieldRenderedObservers(function (state) {
|
|
533
|
+
const removeOnFieldRenderedObserver = (key, id) => {
|
|
534
|
+
setOnFieldRenderedObservers(state => {
|
|
742
535
|
//Set Default Value
|
|
743
536
|
if (!state[key]) return state;
|
|
744
|
-
state[key] = Object.keys(state).filter(
|
|
745
|
-
return cbId !== id;
|
|
746
|
-
}).map(function (cbId) {
|
|
747
|
-
return state[key][cbId];
|
|
748
|
-
});
|
|
537
|
+
state[key] = Object.keys(state).filter(cbId => cbId !== id).map(cbId => state[key][cbId]);
|
|
749
538
|
return state;
|
|
750
539
|
});
|
|
751
540
|
};
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
var FilteredObservers = Object.values(Observers).filter(function (observer) {
|
|
757
|
-
return !(observer !== null && observer !== void 0 && observer.isObserverWorkedOut);
|
|
758
|
-
});
|
|
541
|
+
const onFieldRenderedObserver = (key, data) => {
|
|
542
|
+
if (!onFieldRenderedObservers[key] || typeof onFieldRenderedObservers[key] !== "object") return;
|
|
543
|
+
const Observers = onFieldRenderedObservers[key];
|
|
544
|
+
const FilteredObservers = Object.values(Observers).filter(observer => !(observer !== null && observer !== void 0 && observer.isObserverWorkedOut));
|
|
759
545
|
if (FilteredObservers.length === 0) return null;
|
|
760
|
-
|
|
761
|
-
_setFormField({
|
|
546
|
+
setFormField({
|
|
762
547
|
isOnRenderObserversWorkedOut: true
|
|
763
548
|
}, key);
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
549
|
+
FilteredObservers.map((_ref4, id) => {
|
|
550
|
+
let {
|
|
551
|
+
f,
|
|
552
|
+
isOnceCallable
|
|
553
|
+
} = _ref4;
|
|
768
554
|
f(data);
|
|
769
555
|
if (isOnceCallable) updateOnFieldRenderedObserver(key, id, {
|
|
770
556
|
isObserverWorkedOut: true
|
|
@@ -772,41 +558,40 @@ function useFormTools() {
|
|
|
772
558
|
return null;
|
|
773
559
|
});
|
|
774
560
|
};
|
|
775
|
-
|
|
776
|
-
var onRenderObserverWorker = function onRenderObserverWorker() {
|
|
561
|
+
const onRenderObserverWorker = () => {
|
|
777
562
|
var _getFormFieldsKeys2;
|
|
778
|
-
|
|
779
|
-
return (_getFormFieldsKeys2 = getFormFieldsKeys(form)) === null || _getFormFieldsKeys2 === void 0 ? void 0 : _getFormFieldsKeys2.map(function (key) {
|
|
563
|
+
return (_getFormFieldsKeys2 = getFormFieldsKeys(form)) === null || _getFormFieldsKeys2 === void 0 ? void 0 : _getFormFieldsKeys2.map(key => {
|
|
780
564
|
//OnFieldRendered
|
|
781
|
-
|
|
782
|
-
|
|
565
|
+
const fieldData = getFormField(key);
|
|
783
566
|
if (!(fieldData !== null && fieldData !== void 0 && fieldData.isOnRenderObserversWorkedOut)) {
|
|
784
567
|
onFieldRenderedObserver(key, fieldData);
|
|
785
568
|
return {
|
|
786
|
-
key
|
|
569
|
+
key,
|
|
787
570
|
isWorkedOut: true
|
|
788
571
|
};
|
|
789
572
|
}
|
|
790
|
-
|
|
791
573
|
return {
|
|
792
|
-
key
|
|
574
|
+
key,
|
|
793
575
|
isWorkedOut: false
|
|
794
576
|
};
|
|
795
577
|
});
|
|
796
578
|
};
|
|
797
|
-
|
|
798
|
-
(0, _react.useEffect)(function () {
|
|
579
|
+
(0, _react.useEffect)(() => {
|
|
799
580
|
resetOnFieldRenderObserversWorkedOut();
|
|
800
581
|
onRenderObserverWorker();
|
|
801
582
|
}, [form]);
|
|
802
|
-
(0, _react.useEffect)(
|
|
583
|
+
(0, _react.useEffect)(() => {
|
|
803
584
|
setIsFieldObserversReset(false);
|
|
804
|
-
}, [FormType]);
|
|
585
|
+
}, [FormType]);
|
|
586
|
+
//--- OnFieldRendered Observer ---//--- END ---//
|
|
587
|
+
|
|
805
588
|
///////////////////////////////////////////////////////////////
|
|
806
589
|
///////////////////////////////////////////////////////////////
|
|
590
|
+
|
|
807
591
|
//Detect What Changed || TRY TO DO
|
|
808
592
|
// const compare = async (prev, current) => {
|
|
809
593
|
// if (!prev) return current;
|
|
594
|
+
|
|
810
595
|
// return new Promise((resolve) => {
|
|
811
596
|
// Object.keys(current).reduce((result, key, i, arr) => {
|
|
812
597
|
// //If PROPERTY is NOT EXISTS BEFORE
|
|
@@ -824,123 +609,126 @@ function useFormTools() {
|
|
|
824
609
|
// else if (prev[key] !== current[key]) {
|
|
825
610
|
// result[key] = current[key];
|
|
826
611
|
// }
|
|
612
|
+
|
|
827
613
|
// if (i === arr.length-1) {
|
|
828
614
|
// resolve(result);
|
|
829
615
|
// }
|
|
616
|
+
|
|
830
617
|
// return result;
|
|
831
618
|
// }, {});
|
|
832
619
|
// });
|
|
833
620
|
// };
|
|
621
|
+
|
|
834
622
|
///////////////////////////////////////////////////////////////
|
|
835
623
|
///////////////////////////////////////////////////////////////
|
|
836
|
-
//--- WindowScrollController ---//--- START ---//
|
|
837
624
|
|
|
838
|
-
|
|
625
|
+
//--- WindowScrollController ---//--- START ---//
|
|
626
|
+
const scrollToField = _ref5 => {
|
|
839
627
|
var _field2, _field3, _wrapperRef$current;
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
argForm = _ref9.form;
|
|
628
|
+
let {
|
|
629
|
+
key = null,
|
|
630
|
+
field = null,
|
|
631
|
+
form: argForm
|
|
632
|
+
} = _ref5;
|
|
846
633
|
if (!key && !field) return false;
|
|
847
634
|
if (!argForm) argForm = form;
|
|
848
635
|
if (!field) field = getFormField(key, argForm);
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
636
|
+
const wrapperRef = ((_field2 = field) === null || _field2 === void 0 ? void 0 : _field2.wrapperRef) || ((_field3 = field) === null || _field3 === void 0 ? void 0 : _field3.ref);
|
|
637
|
+
// eslint-disable-next-line no-unsafe-optional-chaining
|
|
638
|
+
const {
|
|
639
|
+
top: topOffset
|
|
640
|
+
} = wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.getBoundingClientRect();
|
|
641
|
+
const scrollTop = Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;
|
|
855
642
|
window.scrollTo({
|
|
856
643
|
top: scrollTop
|
|
857
644
|
});
|
|
858
|
-
};
|
|
645
|
+
};
|
|
646
|
+
|
|
647
|
+
//--- WindowScrollController ---//--- END ---//
|
|
648
|
+
|
|
859
649
|
///////////////////////////////////////////////////////////////
|
|
860
650
|
///////////////////////////////////////////////////////////////
|
|
861
651
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
var argForm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : form;
|
|
652
|
+
const addErrorsToForm = function (errors) {
|
|
653
|
+
let argForm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : form;
|
|
865
654
|
if (!argForm) argForm = form;
|
|
866
|
-
setFormFields(
|
|
867
|
-
return errors.reduce(
|
|
868
|
-
|
|
869
|
-
|
|
655
|
+
setFormFields(fields => {
|
|
656
|
+
return errors.reduce((fields, _ref6) => {
|
|
657
|
+
let {
|
|
658
|
+
message: error,
|
|
659
|
+
propertyPath: errKey
|
|
660
|
+
} = _ref6;
|
|
870
661
|
return updateFormField(fields, {
|
|
871
|
-
error
|
|
662
|
+
error
|
|
872
663
|
}, errKey);
|
|
873
664
|
}, fields);
|
|
874
665
|
});
|
|
875
666
|
};
|
|
876
|
-
|
|
877
667
|
return {
|
|
878
|
-
FormDataDrivers
|
|
668
|
+
FormDataDrivers,
|
|
879
669
|
//OnChangeObserver
|
|
880
|
-
addOnChangeObserver
|
|
881
|
-
removeOnChangeObserver
|
|
882
|
-
onChangeObservers
|
|
670
|
+
addOnChangeObserver,
|
|
671
|
+
removeOnChangeObserver,
|
|
672
|
+
onChangeObservers,
|
|
883
673
|
//OnChangeHandler
|
|
884
|
-
onFieldChange
|
|
674
|
+
onFieldChange,
|
|
885
675
|
//Form Submit Blocker
|
|
886
|
-
toggleFormSubmitBlock
|
|
887
|
-
clearFormSubmitBlockers
|
|
676
|
+
toggleFormSubmitBlock,
|
|
677
|
+
clearFormSubmitBlockers,
|
|
888
678
|
isFormSubmitBlocked: Boolean(formSubmitBlockers.length),
|
|
889
679
|
//Property Observers
|
|
890
680
|
// addPropertyObserver,
|
|
681
|
+
|
|
891
682
|
//Render Fields
|
|
892
|
-
renderFormFields
|
|
893
|
-
setRenderFormFields
|
|
894
|
-
addRenderFields
|
|
895
|
-
removeRenderFields
|
|
896
|
-
getFieldClassName
|
|
683
|
+
renderFormFields,
|
|
684
|
+
setRenderFormFields,
|
|
685
|
+
addRenderFields,
|
|
686
|
+
removeRenderFields,
|
|
687
|
+
getFieldClassName,
|
|
897
688
|
//Field Focus Controller
|
|
898
|
-
isInitFocused
|
|
899
|
-
setFirstFieldInitFocused
|
|
900
|
-
resetIsInitFocused
|
|
901
|
-
setFieldFocus
|
|
902
|
-
setFieldBlur
|
|
903
|
-
setFirstFieldFocus
|
|
904
|
-
autoFocusedField
|
|
905
|
-
addFocusFieldOnRender
|
|
906
|
-
removeFocusFieldOnRender
|
|
689
|
+
isInitFocused,
|
|
690
|
+
setFirstFieldInitFocused,
|
|
691
|
+
resetIsInitFocused,
|
|
692
|
+
setFieldFocus,
|
|
693
|
+
setFieldBlur,
|
|
694
|
+
setFirstFieldFocus,
|
|
695
|
+
autoFocusedField,
|
|
696
|
+
addFocusFieldOnRender,
|
|
697
|
+
removeFocusFieldOnRender,
|
|
907
698
|
//Field Render Controller
|
|
908
|
-
addOnFieldRenderedObserver
|
|
909
|
-
removeOnFieldRenderedObserver
|
|
910
|
-
onFieldRenderedObservers
|
|
911
|
-
updateFormField
|
|
912
|
-
addOnFormRenderObserver
|
|
913
|
-
submitIsFormRendered
|
|
914
|
-
resetIsFormRendered
|
|
915
|
-
renderFields:
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
RenderFieldComponent = _ref11.RenderFieldComponent;
|
|
699
|
+
addOnFieldRenderedObserver,
|
|
700
|
+
removeOnFieldRenderedObserver,
|
|
701
|
+
onFieldRenderedObservers,
|
|
702
|
+
updateFormField,
|
|
703
|
+
addOnFormRenderObserver,
|
|
704
|
+
submitIsFormRendered,
|
|
705
|
+
resetIsFormRendered,
|
|
706
|
+
renderFields: _ref7 => {
|
|
707
|
+
let {
|
|
708
|
+
form: argForm = form,
|
|
709
|
+
fields: argFields = renderFormFields,
|
|
710
|
+
cols: argCols = 1,
|
|
711
|
+
RenderFieldComponent
|
|
712
|
+
} = _ref7;
|
|
923
713
|
return (0, _RenderFields.default)({
|
|
924
714
|
form: argForm,
|
|
925
715
|
fields: argFields,
|
|
926
716
|
cols: argCols,
|
|
927
|
-
RenderFieldComponent
|
|
928
|
-
onFieldChange
|
|
717
|
+
RenderFieldComponent,
|
|
718
|
+
onFieldChange,
|
|
929
719
|
FormDataDriver: getFormDataDriver(FormDataDriverName)
|
|
930
720
|
});
|
|
931
721
|
},
|
|
932
|
-
scrollToField
|
|
933
|
-
getFieldData
|
|
934
|
-
getFormField
|
|
935
|
-
setFormFields
|
|
936
|
-
setFormField:
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
removeFormFields: removeFormFields,
|
|
944
|
-
addErrorsToForm: addErrorsToForm
|
|
722
|
+
scrollToField,
|
|
723
|
+
getFieldData,
|
|
724
|
+
getFormField,
|
|
725
|
+
setFormFields,
|
|
726
|
+
setFormField: (data, key) => setFormField(data, key),
|
|
727
|
+
getFormFieldsAsArray,
|
|
728
|
+
getFormFieldsKeys,
|
|
729
|
+
removeAllFormFields,
|
|
730
|
+
removeFormField,
|
|
731
|
+
removeFormFields,
|
|
732
|
+
addErrorsToForm
|
|
945
733
|
};
|
|
946
734
|
}
|