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