intelicoreact 1.4.76 → 1.4.78
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 +9 -1
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +10 -1
- package/dist/Atomic/FormElements/Calendar/Calendar.js +24 -4
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +10 -1
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +14 -2
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +54 -5
- package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +21 -3
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +145 -52
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +7 -1
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +91 -25
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +15 -3
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +29 -15
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +15 -5
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +23 -4
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +26 -6
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +38 -19
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +38 -9
- package/dist/Atomic/FormElements/Input/Input.js +60 -25
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +31 -4
- package/dist/Atomic/FormElements/InputColor/InputColor.js +14 -4
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +29 -6
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +43 -8
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +21 -3
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +81 -58
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +41 -6
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +8 -1
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +46 -16
- package/dist/Atomic/FormElements/InputLink/InputLink.js +23 -6
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +4 -0
- package/dist/Atomic/FormElements/InputMask/InputMask.js +208 -77
- package/dist/Atomic/FormElements/InputMask/functions.js +28 -2
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +119 -43
- package/dist/Atomic/FormElements/InputMask2/functions.js +28 -2
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +137 -44
- package/dist/Atomic/FormElements/InputMask3/functions.js +28 -2
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +17 -3
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +24 -5
- package/dist/Atomic/FormElements/Label/Label.js +9 -1
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +73 -35
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +15 -3
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +44 -23
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +17 -7
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +14 -3
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +10 -1
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +14 -3
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +23 -3
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +34 -17
- package/dist/Atomic/FormElements/RangeList/RangeList.js +25 -6
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +11 -1
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +85 -14
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +132 -43
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +10 -1
- package/dist/Atomic/FormElements/Switcher/Switcher.js +10 -1
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +13 -1
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +10 -1
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +17 -2
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +17 -3
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +11 -1
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +29 -6
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +3 -2
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +12 -1
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +23 -6
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +223 -105
- package/dist/Atomic/FormElements/Text/Text.js +16 -10
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +9 -1
- package/dist/Atomic/FormElements/Textarea/Textarea.js +16 -5
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +35 -6
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +13 -4
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +21 -7
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +35 -8
- package/dist/Atomic/FormElements/UserContacts/partial/defaultIcons.js +91 -0
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +18 -5
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +10 -3
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +11 -3
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +2 -1
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +12 -5
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +3 -3
- package/dist/Atomic/Layout/Header/Header.js +15 -3
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +20 -3
- package/dist/Atomic/Layout/Spinner/Spinner.js +8 -1
- package/dist/Atomic/UI/Accordion/Accordion.js +19 -3
- package/dist/Atomic/UI/Accordion/AccordionItem.js +23 -9
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +32 -7
- package/dist/Atomic/UI/AccordionText/AccordionText.js +17 -3
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +21 -4
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +15 -3
- package/dist/Atomic/UI/Alert/Alert.js +19 -3
- package/dist/Atomic/UI/Arrow/Arrow.js +16 -3
- package/dist/Atomic/UI/Box/Box.js +9 -3
- package/dist/Atomic/UI/Button/Button.js +11 -2
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +10 -1
- package/dist/Atomic/UI/Chart/Chart.js +29 -4
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +19 -11
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +12 -1
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +34 -11
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +56 -82
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +19 -15
- package/dist/Atomic/UI/Chart/partial/utils.js +20 -6
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +13 -3
- package/dist/Atomic/UI/DateTime/DateTime.js +14 -3
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +16 -4
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +11 -3
- package/dist/Atomic/UI/DoubleString/DoubleString.js +17 -5
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +10 -3
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +52 -17
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +29 -1
- package/dist/Atomic/UI/Hint/Hint.js +39 -13
- package/dist/Atomic/UI/Hint/partials/_utils.js +19 -4
- package/dist/Atomic/UI/Modal/Modal.js +28 -6
- package/dist/Atomic/UI/Modal/ModalHOC.js +9 -1
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +7 -1
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +8 -1
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +49 -32
- package/dist/Atomic/UI/ModalBackup/Modal.js +174 -0
- package/dist/Atomic/UI/ModalBackup/Modal.scss +333 -0
- package/dist/Atomic/UI/ModalBackup/ModalHOC.js +51 -0
- package/dist/Atomic/UI/ModalBackup/partials/ModalFooter.js +24 -0
- package/dist/Atomic/UI/ModalBackup/partials/ModalTitle.js +41 -0
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +21 -6
- package/dist/Atomic/UI/NavLine/NavLine.js +55 -26
- package/dist/Atomic/UI/NavLine/Tabs.js +3 -2
- package/dist/Atomic/UI/PageTitle/PageTitle.js +10 -2
- package/dist/Atomic/UI/PieChart/PieChart.js +10 -1
- package/dist/Atomic/UI/Price/Price.js +8 -3
- package/dist/Atomic/UI/PriceRange/PriceRange.js +7 -1
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +16 -1
- package/dist/Atomic/UI/Status/Status.js +8 -1
- package/dist/Atomic/UI/Table/Partials/TdCell.js +29 -5
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +11 -1
- package/dist/Atomic/UI/Table/Partials/TdRow.js +17 -5
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +14 -3
- package/dist/Atomic/UI/Table/Table.js +12 -1
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +18 -2
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +9 -1
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +4 -1
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +13 -1
- package/dist/Atomic/UI/Tag/Tag.js +26 -11
- package/dist/Atomic/UI/TagList/TagList.js +52 -21
- package/dist/Atomic/UI/TagList/TagList.scss +3 -2
- package/dist/Atomic/UI/UserBox/UserBox.js +13 -1
- package/dist/Atomic/UI/WizardStepper/constructor.js +11 -3
- package/dist/Atomic/UI/WizardStepper/index.js +5 -1
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +10 -0
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +4 -1
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +17 -2
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +5 -1
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +15 -1
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +5 -1
- package/dist/Atomic/UI/WizardStepper/ui/icons.js +9 -2
- package/dist/Atomic/UI/WizardStepper/ui/index.js +5 -1
- package/dist/Classes/AbortableFetch.js +93 -36
- package/dist/Classes/AnimatedHandler.js +7 -3
- package/dist/Classes/RESTAPI/index.js +43 -39
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +93 -35
- package/dist/Classes/RESTAPI/partials/ApiBase.js +9 -1
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +32 -24
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +41 -34
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +46 -21
- package/dist/Classes/RESTAPI/partials/Utils.js +19 -6
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +6 -2
- package/dist/Classes/RESTAPI/partials/_utils.js +39 -16
- package/dist/Constants/index.constants.js +15 -8
- package/dist/Functions/Portal.js +16 -5
- package/dist/Functions/customEventListener.js +17 -4
- package/dist/Functions/fieldValueFormatters.js +83 -43
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +26 -23
- package/dist/Functions/locale/createTranslator.js +9 -4
- package/dist/Functions/operations.js +22 -12
- package/dist/Functions/presets/inputMaskPresets.js +11 -9
- package/dist/Functions/presets/inputPresets.js +11 -8
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +9 -7
- package/dist/Functions/schemas.js +13 -6
- package/dist/Functions/useBodyScrollLock.js +6 -1
- package/dist/Functions/useClickOutside.js +4 -0
- package/dist/Functions/useDebounce.js +7 -2
- package/dist/Functions/useFieldFocus.js +18 -6
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +9 -0
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +23 -12
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +15 -6
- package/dist/Functions/useFormTools/functions/General.js +28 -18
- package/dist/Functions/useFormTools/functions/RenderFields.js +11 -2
- package/dist/Functions/useFormTools/functions/usePrevious.js +5 -1
- package/dist/Functions/useFormTools/index.js +144 -85
- package/dist/Functions/useInputHighlightError.js +12 -3
- package/dist/Functions/useIsMobile.js +13 -7
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +7 -1
- package/dist/Functions/useKeyPress/useKeyPress.js +9 -1
- package/dist/Functions/useLocalStorage.js +9 -1
- package/dist/Functions/useLocationParams.js +5 -4
- package/dist/Functions/useMediaQuery.js +9 -3
- package/dist/Functions/useMetaInfo.js +10 -3
- package/dist/Functions/useMouseUpOutside.js +3 -0
- package/dist/Functions/useOnlineStatus.js +9 -1
- package/dist/Functions/usePasswordChecker.js +20 -4
- package/dist/Functions/usePrevious.js +5 -1
- package/dist/Functions/useResize.js +10 -2
- package/dist/Functions/useScrollTo.js +7 -2
- package/dist/Functions/useToggle.js +5 -1
- package/dist/Functions/utils.js +131 -56
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +9 -2
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +9 -2
- package/dist/Molecular/CustomIcons/components/AppStore.js +9 -2
- package/dist/Molecular/CustomIcons/components/Arrow.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +9 -2
- package/dist/Molecular/CustomIcons/components/Bell.js +9 -2
- package/dist/Molecular/CustomIcons/components/Button.js +9 -2
- package/dist/Molecular/CustomIcons/components/Campaigns.js +9 -2
- package/dist/Molecular/CustomIcons/components/Check.js +9 -2
- package/dist/Molecular/CustomIcons/components/Check2.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/Close.js +9 -2
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +9 -2
- package/dist/Molecular/CustomIcons/components/Delete.js +9 -2
- package/dist/Molecular/CustomIcons/components/Edit.js +9 -2
- package/dist/Molecular/CustomIcons/components/Email.js +9 -2
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +9 -2
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +9 -2
- package/dist/Molecular/CustomIcons/components/Flows.js +9 -2
- package/dist/Molecular/CustomIcons/components/Gift.js +9 -2
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +9 -2
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +9 -2
- package/dist/Molecular/CustomIcons/components/Home.js +9 -2
- package/dist/Molecular/CustomIcons/components/Home2.js +9 -2
- package/dist/Molecular/CustomIcons/components/Key.js +9 -2
- package/dist/Molecular/CustomIcons/components/Landers.js +9 -2
- package/dist/Molecular/CustomIcons/components/Lock.js +9 -2
- package/dist/Molecular/CustomIcons/components/Mail.js +9 -2
- package/dist/Molecular/CustomIcons/components/Mastercard.js +9 -2
- package/dist/Molecular/CustomIcons/components/Minus.js +9 -2
- package/dist/Molecular/CustomIcons/components/Offers.js +9 -2
- package/dist/Molecular/CustomIcons/components/Pause.js +9 -2
- package/dist/Molecular/CustomIcons/components/PayPal.js +9 -2
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +9 -2
- package/dist/Molecular/CustomIcons/components/Phone.js +9 -2
- package/dist/Molecular/CustomIcons/components/Play.js +9 -2
- package/dist/Molecular/CustomIcons/components/Plus.js +9 -2
- package/dist/Molecular/CustomIcons/components/Profile.js +9 -2
- package/dist/Molecular/CustomIcons/components/QRCode.js +9 -2
- package/dist/Molecular/CustomIcons/components/Rectangle.js +9 -2
- package/dist/Molecular/CustomIcons/components/Revert.js +9 -2
- package/dist/Molecular/CustomIcons/components/Star.js +9 -2
- package/dist/Molecular/CustomIcons/components/Star2.js +9 -2
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +9 -2
- package/dist/Molecular/CustomIcons/components/Trash.js +9 -2
- package/dist/Molecular/CustomIcons/components/TrashRed.js +9 -2
- package/dist/Molecular/CustomIcons/components/Triggers.js +9 -2
- package/dist/Molecular/CustomIcons/components/User.js +9 -2
- package/dist/Molecular/CustomIcons/components/Visa.js +9 -2
- package/dist/Molecular/CustomIcons/components/X.js +9 -2
- package/dist/Molecular/CustomIcons/index.js +122 -0
- package/dist/Molecular/FormElement/FormElement.js +12 -1
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +31 -30
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +12 -9
- package/dist/Molecular/InputAddress/InputAddress.js +114 -65
- package/dist/Molecular/InputPassword/InputPassword.js +19 -5
- package/dist/index.js +2 -0
- package/package.json +1 -1
- package/dist/Atomic/UI/Hint/partial/_utils.js +0 -52
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = useFormTools;
|
|
9
|
+
|
|
8
10
|
var _react = require("react");
|
|
11
|
+
|
|
9
12
|
var _ArrayWithObjects = _interopRequireDefault(require("./form-drivers/ArrayWithObjects"));
|
|
13
|
+
|
|
10
14
|
var _ObjectWithIterableObjects = _interopRequireDefault(require("./form-drivers/ObjectWithIterableObjects"));
|
|
15
|
+
|
|
11
16
|
var _ObjectWithNamedKeyObjects = _interopRequireDefault(require("./form-drivers/ObjectWithNamedKeyObjects"));
|
|
17
|
+
|
|
12
18
|
var _General = _interopRequireDefault(require("./functions/General"));
|
|
19
|
+
|
|
13
20
|
var _RenderFields = _interopRequireDefault(require("./functions/RenderFields"));
|
|
14
|
-
// eslint-disable-next-line no-unused-vars
|
|
15
21
|
|
|
22
|
+
// eslint-disable-next-line no-unused-vars
|
|
16
23
|
const DefaultFocusControllerProps = {
|
|
17
24
|
setAutoFocus: true,
|
|
18
25
|
onlyEmptyFieldAutoFocus: false
|
|
19
26
|
};
|
|
27
|
+
|
|
20
28
|
function useFormTools() {
|
|
21
29
|
let {
|
|
22
30
|
form,
|
|
@@ -28,8 +36,7 @@ function useFormTools() {
|
|
|
28
36
|
FocusControllerProps = DefaultFocusControllerProps,
|
|
29
37
|
goToNextFieldOnEnterPressed = true
|
|
30
38
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
31
|
-
FocusControllerProps = {
|
|
32
|
-
...DefaultFocusControllerProps,
|
|
39
|
+
FocusControllerProps = { ...DefaultFocusControllerProps,
|
|
33
40
|
...FocusControllerProps
|
|
34
41
|
};
|
|
35
42
|
const FormDataDrivers = {
|
|
@@ -44,16 +51,21 @@ function useFormTools() {
|
|
|
44
51
|
handlers: _ObjectWithNamedKeyObjects.default
|
|
45
52
|
}
|
|
46
53
|
};
|
|
54
|
+
|
|
47
55
|
const getFormDataDriver = name => {
|
|
48
56
|
var _FormDataDrivers$name, _Object$values$find;
|
|
57
|
+
|
|
49
58
|
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) || (() => ({}));
|
|
50
59
|
};
|
|
60
|
+
|
|
51
61
|
const getFormDataDriverInstance = function (name) {
|
|
52
62
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
53
63
|
args[_key - 1] = arguments[_key];
|
|
54
64
|
}
|
|
65
|
+
|
|
55
66
|
return getFormDataDriver(name)(...args);
|
|
56
67
|
};
|
|
68
|
+
|
|
57
69
|
const {
|
|
58
70
|
getFieldClassName,
|
|
59
71
|
updateFormField
|
|
@@ -72,11 +84,11 @@ function useFormTools() {
|
|
|
72
84
|
form,
|
|
73
85
|
setForm,
|
|
74
86
|
FormFields
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
///////////////////////////////////////////////////////////////
|
|
87
|
+
}); ///////////////////////////////////////////////////////////////
|
|
78
88
|
//--- OnChange Observer ---//--- START ---//
|
|
89
|
+
|
|
79
90
|
const [onChangeObservers, setOnChangeObservers] = (0, _react.useState)({});
|
|
91
|
+
|
|
80
92
|
const addOnChangeObserver = (key, cb) => {
|
|
81
93
|
let observerId = null;
|
|
82
94
|
setOnChangeObservers(state => {
|
|
@@ -88,6 +100,7 @@ function useFormTools() {
|
|
|
88
100
|
});
|
|
89
101
|
return observerId;
|
|
90
102
|
};
|
|
103
|
+
|
|
91
104
|
const removeOnChangeObserver = (key, id) => {
|
|
92
105
|
setOnChangeObservers(state => {
|
|
93
106
|
//Set Default Value
|
|
@@ -96,6 +109,7 @@ function useFormTools() {
|
|
|
96
109
|
return state;
|
|
97
110
|
});
|
|
98
111
|
};
|
|
112
|
+
|
|
99
113
|
const onChangeObserver = (key, value) => {
|
|
100
114
|
if (!onChangeObservers[key] || typeof onChangeObservers[key] !== "object") return;
|
|
101
115
|
const Observers = onChangeObservers[key];
|
|
@@ -107,61 +121,67 @@ function useFormTools() {
|
|
|
107
121
|
return null;
|
|
108
122
|
});
|
|
109
123
|
};
|
|
124
|
+
|
|
110
125
|
const onFieldChange = (key, value) => {
|
|
111
126
|
var _getFormField;
|
|
127
|
+
|
|
112
128
|
if (value === ((_getFormField = getFormField(key)) === null || _getFormField === void 0 ? void 0 : _getFormField.value)) return false;
|
|
113
129
|
onChangeObserver(key, value);
|
|
114
|
-
setFormField(field => ({
|
|
115
|
-
...field,
|
|
130
|
+
setFormField(field => ({ ...field,
|
|
116
131
|
error: "",
|
|
117
132
|
value
|
|
118
133
|
}), key);
|
|
119
|
-
};
|
|
120
|
-
//--- OnChange Observer ---//--- END ---//
|
|
121
|
-
|
|
134
|
+
}; //--- OnChange Observer ---//--- END ---//
|
|
122
135
|
///////////////////////////////////////////////////////////////
|
|
123
136
|
///////////////////////////////////////////////////////////////
|
|
124
|
-
|
|
125
137
|
//--- Form Submit Blocker ---//--- START ---//
|
|
138
|
+
|
|
139
|
+
|
|
126
140
|
const [formSubmitBlockers, setFormSubmitBlockers] = (0, _react.useState)([]);
|
|
141
|
+
|
|
127
142
|
const toggleFormSubmitBlock = (key, value) => {
|
|
128
143
|
setFormSubmitBlockers(state => state.includes(key) || !value ? [...state.filter(k => k !== key)] : [...state, key]);
|
|
129
144
|
};
|
|
130
|
-
const clearFormSubmitBlockers = () => setFormSubmitBlockers([]);
|
|
131
|
-
//--- Form Submit Blocker ---//--- END ---//
|
|
132
145
|
|
|
146
|
+
const clearFormSubmitBlockers = () => setFormSubmitBlockers([]); //--- Form Submit Blocker ---//--- END ---//
|
|
133
147
|
///////////////////////////////////////////////////////////////
|
|
134
148
|
///////////////////////////////////////////////////////////////
|
|
135
|
-
|
|
136
149
|
//--- Property Observer Blocker ---//--- START ---//
|
|
137
150
|
// const [propertyObservers, setPropertyObservers] = useState({});
|
|
138
151
|
// function addPropertyObserver () {
|
|
139
152
|
// };
|
|
140
153
|
//--- Property Observer Blocker ---//--- END ---//
|
|
141
|
-
|
|
142
154
|
///////////////////////////////////////////////////////////////
|
|
143
155
|
///////////////////////////////////////////////////////////////
|
|
144
|
-
|
|
145
156
|
//--- Render Fields Controller ---//--- START ---//
|
|
157
|
+
|
|
158
|
+
|
|
146
159
|
const [isFormFieldsAdded, setIsFormFieldsAdded] = (0, _react.useState)(false);
|
|
147
160
|
const [renderFormFields, setRenderFormFieldsState] = (0, _react.useState)([]);
|
|
161
|
+
|
|
148
162
|
const setRenderFormFields = data => {
|
|
149
|
-
setIsFormFieldsAdded(true);
|
|
150
|
-
|
|
151
|
-
removeRenderFields(renderFormFields);
|
|
152
|
-
|
|
163
|
+
setIsFormFieldsAdded(true); // eslint-disable-next-line no-use-before-define
|
|
164
|
+
|
|
165
|
+
removeRenderFields(renderFormFields); // eslint-disable-next-line no-use-before-define
|
|
166
|
+
|
|
153
167
|
resetIsInitFocused();
|
|
154
168
|
setRenderFormFieldsState(data);
|
|
155
169
|
};
|
|
170
|
+
|
|
156
171
|
const addRenderFields = fields => {
|
|
157
172
|
setRenderFormFieldsState(state => [...state, ...fields]);
|
|
158
173
|
};
|
|
174
|
+
|
|
159
175
|
const removeRenderFields = fields => {
|
|
160
176
|
setRenderFormFieldsState(state => state.filter(field => !fields.includes(field)));
|
|
161
177
|
};
|
|
178
|
+
|
|
162
179
|
const [isFormRendered, setIsFormRendered] = (0, _react.useState)(false);
|
|
180
|
+
|
|
163
181
|
const submitIsFormRendered = () => setIsFormRendered(true);
|
|
182
|
+
|
|
164
183
|
const resetIsFormRendered = () => setIsFormRendered(false);
|
|
184
|
+
|
|
165
185
|
const onEnterDown = async e => {
|
|
166
186
|
if (!goToNextFieldOnEnterPressed) return false;
|
|
167
187
|
const focusable = document.querySelectorAll('a, button, input, [tabindex]:not([tabindex="-1"])');
|
|
@@ -176,10 +196,12 @@ function useFormTools() {
|
|
|
176
196
|
const nextItem = focusable[nextIndex];
|
|
177
197
|
nextItem.focus();
|
|
178
198
|
};
|
|
199
|
+
|
|
179
200
|
const onKeyDown = function () {
|
|
180
201
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
181
202
|
args[_key2] = arguments[_key2];
|
|
182
203
|
}
|
|
204
|
+
|
|
183
205
|
const event = args.reduce((e, item) => {
|
|
184
206
|
if ((item === null || item === void 0 ? void 0 : item.nativeEvent) instanceof KeyboardEvent) return item;
|
|
185
207
|
return e;
|
|
@@ -188,61 +210,70 @@ function useFormTools() {
|
|
|
188
210
|
const {
|
|
189
211
|
keyCode
|
|
190
212
|
} = event;
|
|
213
|
+
|
|
191
214
|
switch (keyCode) {
|
|
192
215
|
//OnEnterDown
|
|
193
216
|
case 13:
|
|
194
217
|
onEnterDown(event);
|
|
195
218
|
break;
|
|
219
|
+
|
|
196
220
|
default:
|
|
197
221
|
break;
|
|
198
222
|
}
|
|
199
|
-
};
|
|
223
|
+
}; //On Type Change
|
|
224
|
+
|
|
200
225
|
|
|
201
|
-
//On Type Change
|
|
202
226
|
(0, _react.useEffect)(() => {
|
|
203
227
|
resetIsFormRendered();
|
|
204
|
-
}, [FormType]);
|
|
228
|
+
}, [FormType]); //On Render Fields Change
|
|
205
229
|
|
|
206
|
-
//On Render Fields Change
|
|
207
230
|
(0, _react.useEffect)(() => {
|
|
208
|
-
if (isFormFieldsAdded) resetIsFormRendered(false);
|
|
231
|
+
if (isFormFieldsAdded) resetIsFormRendered(false); //Add Form Fields
|
|
209
232
|
|
|
210
|
-
//Add Form Fields
|
|
211
233
|
if (renderFormFields.length !== 0) {
|
|
212
234
|
setFormFields(fields => {
|
|
213
235
|
return renderFormFields.reduce((result, key) => {
|
|
214
236
|
var _field$className;
|
|
237
|
+
|
|
215
238
|
const fieldData = getFieldData(key);
|
|
216
239
|
const field = getFormField(key) ? getFormField(key) : fieldData;
|
|
217
|
-
|
|
240
|
+
|
|
241
|
+
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) {
|
|
218
242
|
field.className = "".concat(field === null || field === void 0 ? void 0 : field.className, " ").concat(getFieldClassName(key, FormType));
|
|
219
243
|
}
|
|
244
|
+
|
|
220
245
|
if (typeof (fieldData === null || fieldData === void 0 ? void 0 : fieldData.label) === "object") {
|
|
221
246
|
field.label = fieldData.label[FormType] || fieldData.label.default;
|
|
222
247
|
}
|
|
248
|
+
|
|
223
249
|
field.ref = /*#__PURE__*/(0, _react.createRef)();
|
|
224
250
|
field.wrapperRef = /*#__PURE__*/(0, _react.createRef)();
|
|
225
251
|
field.isValueChangedByUser = false;
|
|
252
|
+
|
|
226
253
|
if (goToNextFieldOnEnterPressed) {
|
|
227
254
|
const onKeyDownProp = field.onKeyDown || (() => {});
|
|
255
|
+
|
|
228
256
|
field.onKeyDown = function () {
|
|
229
257
|
onKeyDown(...arguments);
|
|
230
258
|
onKeyDownProp(...arguments);
|
|
231
259
|
};
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
//Is Field Value Changed By USER
|
|
260
|
+
} //Is Field Value Changed By USER
|
|
235
261
|
// eslint-disable-next-line no-use-before-define
|
|
262
|
+
|
|
263
|
+
|
|
236
264
|
addOnFieldRenderedObserver(key, () => {
|
|
237
|
-
var _getFormField2;
|
|
238
|
-
|
|
265
|
+
var _getFormField2, _getFormField2$ref, _getFormField2$ref$cu;
|
|
266
|
+
|
|
267
|
+
const 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");
|
|
268
|
+
|
|
239
269
|
const handler = () => setFormField({
|
|
240
270
|
isValueChangedByUser: true
|
|
241
271
|
}, key);
|
|
242
|
-
|
|
272
|
+
|
|
273
|
+
element === null || element === void 0 ? void 0 : element.addEventListener("paste", handler, {
|
|
243
274
|
once: true
|
|
244
275
|
});
|
|
245
|
-
element === null || element === void 0
|
|
276
|
+
element === null || element === void 0 ? void 0 : element.addEventListener("keypress", handler, {
|
|
246
277
|
once: true
|
|
247
278
|
});
|
|
248
279
|
}, true);
|
|
@@ -252,6 +283,7 @@ function useFormTools() {
|
|
|
252
283
|
}
|
|
253
284
|
}, [renderFormFields]);
|
|
254
285
|
const [onFormRenderObservers, setOnFormRenderObservers] = (0, _react.useState)([]);
|
|
286
|
+
|
|
255
287
|
const addOnFormRenderObserver = function (cb) {
|
|
256
288
|
let {
|
|
257
289
|
once = false
|
|
@@ -261,21 +293,23 @@ function useFormTools() {
|
|
|
261
293
|
once,
|
|
262
294
|
isWorkedOut: false
|
|
263
295
|
}]);
|
|
264
|
-
};
|
|
265
|
-
|
|
296
|
+
}; // eslint-disable-next-line no-unused-vars
|
|
297
|
+
|
|
298
|
+
|
|
266
299
|
const updateOnFormRenderObserver = (key, data) => {
|
|
267
300
|
setOnFormRenderObservers(state => {
|
|
268
301
|
const copy = [...state];
|
|
269
|
-
copy[key] = {
|
|
270
|
-
...state[key],
|
|
302
|
+
copy[key] = { ...state[key],
|
|
271
303
|
...data
|
|
272
304
|
};
|
|
273
305
|
return copy;
|
|
274
306
|
});
|
|
275
307
|
};
|
|
308
|
+
|
|
276
309
|
const removeOnFormRenderObserver = key => {
|
|
277
310
|
setOnFormRenderObservers(state => state.slice().filter((v, i) => i !== key));
|
|
278
311
|
};
|
|
312
|
+
|
|
279
313
|
const onFormRenderWorker = () => {
|
|
280
314
|
// eslint-disable-next-line default-param-last
|
|
281
315
|
onFormRenderObservers.map(function () {
|
|
@@ -292,9 +326,9 @@ function useFormTools() {
|
|
|
292
326
|
});
|
|
293
327
|
return null;
|
|
294
328
|
});
|
|
295
|
-
};
|
|
329
|
+
}; //On Form Rendered
|
|
330
|
+
|
|
296
331
|
|
|
297
|
-
//On Form Rendered
|
|
298
332
|
(0, _react.useEffect)(() => {
|
|
299
333
|
if (!isFormRendered && onFormRenderObservers.length) {
|
|
300
334
|
const formFieldsKeys = getFormFieldsKeys(form);
|
|
@@ -302,53 +336,56 @@ function useFormTools() {
|
|
|
302
336
|
if (!formFieldsKeys.includes(key)) result = false;
|
|
303
337
|
return result;
|
|
304
338
|
}, true);
|
|
339
|
+
|
|
305
340
|
if (isAllFieldsRendered) {
|
|
306
341
|
submitIsFormRendered(true);
|
|
307
342
|
onFormRenderWorker();
|
|
308
343
|
}
|
|
309
344
|
}
|
|
310
|
-
}, [form, renderFormFields, onFormRenderObservers]);
|
|
311
|
-
//--- Render Fields Controller ---//--- END ---//
|
|
312
|
-
|
|
345
|
+
}, [form, renderFormFields, onFormRenderObservers]); //--- Render Fields Controller ---//--- END ---//
|
|
313
346
|
///////////////////////////////////////////////////////////////
|
|
314
347
|
///////////////////////////////////////////////////////////////
|
|
315
|
-
|
|
316
348
|
//--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//
|
|
349
|
+
|
|
317
350
|
const hightliteErrorLabels = () => {
|
|
318
351
|
const fields = getFormFieldsAsArray();
|
|
319
352
|
const filtered = fields === null || fields === void 0 ? void 0 : fields.reduce((result, field) => {
|
|
320
353
|
if (field !== null && field !== void 0 && field.errorLabelHightlite) {
|
|
321
354
|
// eslint-disable-next-line no-use-before-define
|
|
322
|
-
result.push({
|
|
323
|
-
...field,
|
|
355
|
+
result.push({ ...field,
|
|
324
356
|
className: getFieldClassName(field === null || field === void 0 ? void 0 : field.key, FormType)
|
|
325
357
|
});
|
|
326
358
|
}
|
|
359
|
+
|
|
327
360
|
return result;
|
|
328
361
|
}, []);
|
|
329
|
-
filtered === null || filtered === void 0
|
|
362
|
+
filtered === null || filtered === void 0 ? void 0 : filtered.map(field => {
|
|
330
363
|
const formField = document.querySelector(".".concat(field === null || field === void 0 ? void 0 : field.className));
|
|
331
364
|
if (!formField) return null;
|
|
332
365
|
formField.classList.remove("errorLabelHightlite");
|
|
366
|
+
|
|
333
367
|
if (field !== null && field !== void 0 && field.error) {
|
|
334
368
|
formField.classList.add("errorLabelHightlite");
|
|
335
369
|
}
|
|
370
|
+
|
|
336
371
|
return null;
|
|
337
372
|
});
|
|
338
373
|
};
|
|
374
|
+
|
|
339
375
|
(0, _react.useEffect)(() => {
|
|
340
376
|
hightliteErrorLabels();
|
|
341
|
-
}, [form]);
|
|
342
|
-
//--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//
|
|
343
|
-
|
|
377
|
+
}, [form]); //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//
|
|
344
378
|
///////////////////////////////////////////////////////////////
|
|
345
379
|
///////////////////////////////////////////////////////////////
|
|
346
|
-
|
|
347
380
|
//--- Fields Focus Controller ---//--- START ---//
|
|
381
|
+
|
|
348
382
|
const [isInitFocused, setIsInitFocused] = (0, _react.useState)(false);
|
|
349
383
|
const [autoFocusedField, setAutoFocusedField] = (0, _react.useState)(null);
|
|
384
|
+
|
|
350
385
|
const setFirstFieldInitFocused = () => setIsInitFocused(true);
|
|
386
|
+
|
|
351
387
|
const resetIsInitFocused = () => setIsInitFocused(false);
|
|
388
|
+
|
|
352
389
|
const toggleFieldFocus = function (_ref) {
|
|
353
390
|
let {
|
|
354
391
|
key,
|
|
@@ -360,16 +397,20 @@ function useFormTools() {
|
|
|
360
397
|
if (!key && !field) return null;
|
|
361
398
|
if (!argForm) argForm = form;
|
|
362
399
|
const formField = field || getFormField(key, argForm);
|
|
400
|
+
|
|
363
401
|
if (!formField || !formField.ref) {
|
|
364
402
|
return false;
|
|
365
403
|
}
|
|
404
|
+
|
|
366
405
|
if (action === "focus" && FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(formField === null || formField === void 0 ? void 0 : formField.value)) return null;
|
|
367
406
|
setTimeout(() => {
|
|
368
|
-
var _formField$ref$curren;
|
|
369
|
-
|
|
407
|
+
var _formField$ref$curren, _formField$ref$curren2;
|
|
408
|
+
|
|
409
|
+
(_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]();
|
|
370
410
|
cb();
|
|
371
411
|
}, 50);
|
|
372
412
|
};
|
|
413
|
+
|
|
373
414
|
const setFieldFocus = _ref2 => {
|
|
374
415
|
let {
|
|
375
416
|
key,
|
|
@@ -384,6 +425,7 @@ function useFormTools() {
|
|
|
384
425
|
field
|
|
385
426
|
}, "focus");
|
|
386
427
|
};
|
|
428
|
+
|
|
387
429
|
const setFieldBlur = _ref3 => {
|
|
388
430
|
let {
|
|
389
431
|
key,
|
|
@@ -398,73 +440,93 @@ function useFormTools() {
|
|
|
398
440
|
field
|
|
399
441
|
}, "blur");
|
|
400
442
|
};
|
|
443
|
+
|
|
401
444
|
const setFirstFieldFocus = () => {
|
|
402
445
|
var _field;
|
|
446
|
+
|
|
403
447
|
let field = null;
|
|
448
|
+
|
|
404
449
|
for (let i = 0; i < renderFormFields.length && !field; ++i) {
|
|
405
450
|
const key = renderFormFields[i];
|
|
406
451
|
const tmpField = getFormField(key);
|
|
407
452
|
if (tmpField && !(tmpField !== null && tmpField !== void 0 && tmpField.disabled)) field = tmpField;
|
|
408
453
|
}
|
|
454
|
+
|
|
409
455
|
if (!field) return false;
|
|
456
|
+
|
|
410
457
|
if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean((_field = field) === null || _field === void 0 ? void 0 : _field.value)) {
|
|
411
458
|
setFirstFieldInitFocused();
|
|
412
459
|
return false;
|
|
413
460
|
}
|
|
461
|
+
|
|
414
462
|
setAutoFocusedField(field.key);
|
|
463
|
+
|
|
415
464
|
const callback = () => {
|
|
416
465
|
setFormField({
|
|
417
466
|
value: field.value
|
|
418
467
|
}, field.key);
|
|
419
468
|
setFirstFieldInitFocused();
|
|
420
469
|
};
|
|
470
|
+
|
|
421
471
|
setTimeout(() => setFieldFocus({
|
|
422
472
|
key: field.key,
|
|
423
473
|
cb: callback,
|
|
424
474
|
form
|
|
425
475
|
}), 50);
|
|
426
476
|
};
|
|
477
|
+
|
|
427
478
|
const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = (0, _react.useState)({});
|
|
479
|
+
|
|
428
480
|
const addOnFieldFocusCallback = (key, cb) => {
|
|
429
481
|
setOnFieldFocusCallbacks(state => {
|
|
430
|
-
const stateCopy = {
|
|
431
|
-
...state
|
|
482
|
+
const stateCopy = { ...state
|
|
432
483
|
};
|
|
433
484
|
if (!state[key]) stateCopy[key] = [];
|
|
434
485
|
stateCopy[key].push(cb);
|
|
435
486
|
return stateCopy;
|
|
436
487
|
});
|
|
437
488
|
};
|
|
489
|
+
|
|
438
490
|
const callOnFieldFocusCallbacks = key => {
|
|
439
491
|
var _onFieldFocusCallback;
|
|
492
|
+
|
|
440
493
|
if (!Array.isArray(onFieldFocusCallbacks[key])) return null;
|
|
441
|
-
(_onFieldFocusCallback = onFieldFocusCallbacks[key]) === null || _onFieldFocusCallback === void 0
|
|
494
|
+
(_onFieldFocusCallback = onFieldFocusCallbacks[key]) === null || _onFieldFocusCallback === void 0 ? void 0 : _onFieldFocusCallback.map(cb => cb());
|
|
442
495
|
};
|
|
496
|
+
|
|
443
497
|
const [focusOnRenderFields, setFocusOnRenderFields] = (0, _react.useState)([]);
|
|
498
|
+
|
|
444
499
|
const addFocusFieldOnRender = (key, cb) => {
|
|
445
500
|
setFocusOnRenderFields(state => [...state, key]);
|
|
446
501
|
if (cb) addOnFieldFocusCallback(key, cb);
|
|
447
502
|
};
|
|
503
|
+
|
|
448
504
|
const removeFocusFieldOnRender = key => {
|
|
449
505
|
setFocusOnRenderFields(state => state.filter(field => field !== key));
|
|
450
506
|
};
|
|
507
|
+
|
|
451
508
|
(0, _react.useEffect)(() => {
|
|
452
509
|
if (FocusControllerProps.setAutoFocus && !isInitFocused && !autoFocusedField && isFormRendered) setFirstFieldFocus();
|
|
510
|
+
|
|
453
511
|
if (focusOnRenderFields.length) {
|
|
454
512
|
var _getFormFieldsKeys;
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
513
|
+
|
|
514
|
+
(_getFormFieldsKeys = getFormFieldsKeys(form)) === null || _getFormFieldsKeys === void 0 ? void 0 : _getFormFieldsKeys.map(key => {
|
|
515
|
+
var _getFormField3, _getFormField3$value;
|
|
516
|
+
|
|
517
|
+
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) {
|
|
458
518
|
const cb = () => {
|
|
459
519
|
removeFocusFieldOnRender(key);
|
|
460
520
|
callOnFieldFocusCallbacks(key);
|
|
461
521
|
};
|
|
522
|
+
|
|
462
523
|
setFieldFocus({
|
|
463
524
|
key,
|
|
464
525
|
form,
|
|
465
526
|
cb
|
|
466
527
|
});
|
|
467
528
|
}
|
|
529
|
+
|
|
468
530
|
return null;
|
|
469
531
|
});
|
|
470
532
|
}
|
|
@@ -474,25 +536,22 @@ function useFormTools() {
|
|
|
474
536
|
}, [isInitFocused]);
|
|
475
537
|
(0, _react.useEffect)(() => {
|
|
476
538
|
resetIsInitFocused();
|
|
477
|
-
}, [FormType]);
|
|
478
|
-
|
|
479
|
-
//Remove Focus From Autocomplete field !!! TODO
|
|
539
|
+
}, [FormType]); //Remove Focus From Autocomplete field !!! TODO
|
|
480
540
|
// useEffect(() => {
|
|
481
541
|
// if (!autoFocusedField) return null;
|
|
482
542
|
// const field = getFormField(autoFocusedField);
|
|
483
|
-
|
|
484
543
|
// if (field?.value !== '' && !field?.isValueChangedByUser) {
|
|
485
544
|
// setFieldBlur({key: autoFocusedField, form});
|
|
486
545
|
// }
|
|
487
546
|
// }, [autoFocusedField, form]);
|
|
488
547
|
//--- Fields Focus Controller ---//--- END ---//
|
|
489
|
-
|
|
490
548
|
///////////////////////////////////////////////////////////////
|
|
491
549
|
///////////////////////////////////////////////////////////////
|
|
492
|
-
|
|
493
550
|
//--- OnFieldRendered Observer ---//--- START ---//
|
|
551
|
+
|
|
494
552
|
const [onFieldRenderedObservers, setOnFieldRenderedObservers] = (0, _react.useState)({});
|
|
495
553
|
const [isFieldObserversReset, setIsFieldObserversReset] = (0, _react.useState)(false);
|
|
554
|
+
|
|
496
555
|
const resetOnFieldRenderObserversWorkedOut = () => {
|
|
497
556
|
if (!isFieldObserversReset && renderFormFields.length) {
|
|
498
557
|
renderFormFields.map(key => {
|
|
@@ -504,6 +563,7 @@ function useFormTools() {
|
|
|
504
563
|
setIsFieldObserversReset(true);
|
|
505
564
|
}
|
|
506
565
|
};
|
|
566
|
+
|
|
507
567
|
const addOnFieldRenderedObserver = function (key, cb) {
|
|
508
568
|
let isOnceCallable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
509
569
|
let observerId = null;
|
|
@@ -519,17 +579,18 @@ function useFormTools() {
|
|
|
519
579
|
});
|
|
520
580
|
return observerId;
|
|
521
581
|
};
|
|
582
|
+
|
|
522
583
|
const updateOnFieldRenderedObserver = (key, id, data) => {
|
|
523
584
|
setOnFieldRenderedObservers(state => {
|
|
524
585
|
//Set Default Value
|
|
525
586
|
if (!state[key]) return state;
|
|
526
|
-
state[key][id] = {
|
|
527
|
-
...state[key][id],
|
|
587
|
+
state[key][id] = { ...state[key][id],
|
|
528
588
|
...data
|
|
529
589
|
};
|
|
530
590
|
return state;
|
|
531
591
|
});
|
|
532
592
|
};
|
|
593
|
+
|
|
533
594
|
const removeOnFieldRenderedObserver = (key, id) => {
|
|
534
595
|
setOnFieldRenderedObservers(state => {
|
|
535
596
|
//Set Default Value
|
|
@@ -538,6 +599,7 @@ function useFormTools() {
|
|
|
538
599
|
return state;
|
|
539
600
|
});
|
|
540
601
|
};
|
|
602
|
+
|
|
541
603
|
const onFieldRenderedObserver = (key, data) => {
|
|
542
604
|
if (!onFieldRenderedObservers[key] || typeof onFieldRenderedObservers[key] !== "object") return;
|
|
543
605
|
const Observers = onFieldRenderedObservers[key];
|
|
@@ -558,11 +620,14 @@ function useFormTools() {
|
|
|
558
620
|
return null;
|
|
559
621
|
});
|
|
560
622
|
};
|
|
623
|
+
|
|
561
624
|
const onRenderObserverWorker = () => {
|
|
562
625
|
var _getFormFieldsKeys2;
|
|
626
|
+
|
|
563
627
|
return (_getFormFieldsKeys2 = getFormFieldsKeys(form)) === null || _getFormFieldsKeys2 === void 0 ? void 0 : _getFormFieldsKeys2.map(key => {
|
|
564
628
|
//OnFieldRendered
|
|
565
629
|
const fieldData = getFormField(key);
|
|
630
|
+
|
|
566
631
|
if (!(fieldData !== null && fieldData !== void 0 && fieldData.isOnRenderObserversWorkedOut)) {
|
|
567
632
|
onFieldRenderedObserver(key, fieldData);
|
|
568
633
|
return {
|
|
@@ -570,28 +635,26 @@ function useFormTools() {
|
|
|
570
635
|
isWorkedOut: true
|
|
571
636
|
};
|
|
572
637
|
}
|
|
638
|
+
|
|
573
639
|
return {
|
|
574
640
|
key,
|
|
575
641
|
isWorkedOut: false
|
|
576
642
|
};
|
|
577
643
|
});
|
|
578
644
|
};
|
|
645
|
+
|
|
579
646
|
(0, _react.useEffect)(() => {
|
|
580
647
|
resetOnFieldRenderObserversWorkedOut();
|
|
581
648
|
onRenderObserverWorker();
|
|
582
649
|
}, [form]);
|
|
583
650
|
(0, _react.useEffect)(() => {
|
|
584
651
|
setIsFieldObserversReset(false);
|
|
585
|
-
}, [FormType]);
|
|
586
|
-
//--- OnFieldRendered Observer ---//--- END ---//
|
|
587
|
-
|
|
652
|
+
}, [FormType]); //--- OnFieldRendered Observer ---//--- END ---//
|
|
588
653
|
///////////////////////////////////////////////////////////////
|
|
589
654
|
///////////////////////////////////////////////////////////////
|
|
590
|
-
|
|
591
655
|
//Detect What Changed || TRY TO DO
|
|
592
656
|
// const compare = async (prev, current) => {
|
|
593
657
|
// if (!prev) return current;
|
|
594
|
-
|
|
595
658
|
// return new Promise((resolve) => {
|
|
596
659
|
// Object.keys(current).reduce((result, key, i, arr) => {
|
|
597
660
|
// //If PROPERTY is NOT EXISTS BEFORE
|
|
@@ -609,22 +672,20 @@ function useFormTools() {
|
|
|
609
672
|
// else if (prev[key] !== current[key]) {
|
|
610
673
|
// result[key] = current[key];
|
|
611
674
|
// }
|
|
612
|
-
|
|
613
675
|
// if (i === arr.length-1) {
|
|
614
676
|
// resolve(result);
|
|
615
677
|
// }
|
|
616
|
-
|
|
617
678
|
// return result;
|
|
618
679
|
// }, {});
|
|
619
680
|
// });
|
|
620
681
|
// };
|
|
621
|
-
|
|
622
682
|
///////////////////////////////////////////////////////////////
|
|
623
683
|
///////////////////////////////////////////////////////////////
|
|
624
|
-
|
|
625
684
|
//--- WindowScrollController ---//--- START ---//
|
|
685
|
+
|
|
626
686
|
const scrollToField = _ref5 => {
|
|
627
687
|
var _field2, _field3, _wrapperRef$current;
|
|
688
|
+
|
|
628
689
|
let {
|
|
629
690
|
key = null,
|
|
630
691
|
field = null,
|
|
@@ -633,22 +694,20 @@ function useFormTools() {
|
|
|
633
694
|
if (!key && !field) return false;
|
|
634
695
|
if (!argForm) argForm = form;
|
|
635
696
|
if (!field) field = getFormField(key, argForm);
|
|
636
|
-
const wrapperRef = ((_field2 = field) === null || _field2 === void 0 ? void 0 : _field2.wrapperRef) || ((_field3 = field) === null || _field3 === void 0 ? void 0 : _field3.ref);
|
|
637
|
-
|
|
697
|
+
const wrapperRef = ((_field2 = field) === null || _field2 === void 0 ? void 0 : _field2.wrapperRef) || ((_field3 = field) === null || _field3 === void 0 ? void 0 : _field3.ref); // eslint-disable-next-line no-unsafe-optional-chaining
|
|
698
|
+
|
|
638
699
|
const {
|
|
639
700
|
top: topOffset
|
|
640
|
-
} = wrapperRef === null || wrapperRef === void 0
|
|
701
|
+
} = wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.getBoundingClientRect();
|
|
641
702
|
const scrollTop = Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;
|
|
642
703
|
window.scrollTo({
|
|
643
704
|
top: scrollTop
|
|
644
705
|
});
|
|
645
|
-
};
|
|
646
|
-
|
|
647
|
-
//--- WindowScrollController ---//--- END ---//
|
|
648
|
-
|
|
706
|
+
}; //--- WindowScrollController ---//--- END ---//
|
|
649
707
|
///////////////////////////////////////////////////////////////
|
|
650
708
|
///////////////////////////////////////////////////////////////
|
|
651
709
|
|
|
710
|
+
|
|
652
711
|
const addErrorsToForm = function (errors) {
|
|
653
712
|
let argForm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : form;
|
|
654
713
|
if (!argForm) argForm = form;
|
|
@@ -664,6 +723,7 @@ function useFormTools() {
|
|
|
664
723
|
}, fields);
|
|
665
724
|
});
|
|
666
725
|
};
|
|
726
|
+
|
|
667
727
|
return {
|
|
668
728
|
FormDataDrivers,
|
|
669
729
|
//OnChangeObserver
|
|
@@ -678,7 +738,6 @@ function useFormTools() {
|
|
|
678
738
|
isFormSubmitBlocked: Boolean(formSubmitBlockers.length),
|
|
679
739
|
//Property Observers
|
|
680
740
|
// addPropertyObserver,
|
|
681
|
-
|
|
682
741
|
//Render Fields
|
|
683
742
|
renderFormFields,
|
|
684
743
|
setRenderFormFields,
|