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