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