intelicoreact 2.0.17 → 2.0.19
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/es/Atomic/FormElements/ActionAlert/ActionAlert.js +44 -0
- package/dist/es/Atomic/FormElements/ActionAlert/ActionAlert.js.map +1 -0
- package/dist/es/Atomic/FormElements/ActionAlert/ActionAlert.styles.css +39 -0
- package/dist/es/Atomic/FormElements/ActionAlert/index.js +7 -0
- package/dist/es/Atomic/FormElements/ActionAlert/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +35 -0
- package/dist/es/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js.map +1 -0
- package/dist/es/Atomic/FormElements/AdvancedStatus/AdvancedStatus.styles.css +84 -0
- package/dist/es/Atomic/FormElements/AdvancedStatus/index.js +7 -0
- package/dist/es/Atomic/FormElements/AdvancedStatus/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/Calendar/Calendar.js +154 -0
- package/dist/es/Atomic/FormElements/Calendar/Calendar.js.map +1 -0
- package/dist/es/Atomic/FormElements/Calendar/Calendar.styles.css +142 -0
- package/dist/es/Atomic/FormElements/CheckboxInput/CheckboxInput.js +45 -0
- package/dist/es/Atomic/FormElements/CheckboxInput/CheckboxInput.js.map +1 -0
- package/dist/es/Atomic/FormElements/CheckboxInput/CheckboxInput.styles.css +105 -0
- package/dist/es/Atomic/FormElements/CheckboxInput/index.js +7 -0
- package/dist/es/Atomic/FormElements/CheckboxInput/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +32 -0
- package/dist/es/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js.map +1 -0
- package/dist/es/Atomic/FormElements/CheckboxesLine/CheckboxesLine.styles.css +26 -0
- package/dist/es/Atomic/FormElements/CheckboxesLine/index.js +7 -0
- package/dist/es/Atomic/FormElements/CheckboxesLine/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/Datepicker/Datepicker.js +307 -0
- package/dist/es/Atomic/FormElements/Datepicker/Datepicker.js.map +1 -0
- package/dist/es/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +95 -0
- package/dist/es/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js.map +1 -0
- package/dist/es/Atomic/FormElements/Dropdown/Dropdown.js +472 -0
- package/dist/es/Atomic/FormElements/Dropdown/Dropdown.js.map +1 -0
- package/dist/es/Atomic/FormElements/Dropdown/Dropdown.styles.css +529 -0
- package/dist/es/Atomic/FormElements/Dropdown/_utils.js +68 -0
- package/dist/es/Atomic/FormElements/Dropdown/_utils.js.map +1 -0
- package/dist/es/Atomic/FormElements/Dropdown/components/DropdownLoader.js +23 -0
- package/dist/es/Atomic/FormElements/Dropdown/components/DropdownLoader.js.map +1 -0
- package/dist/es/Atomic/FormElements/Dropdown/components/DropdownLoader.styles.css +61 -0
- package/dist/es/Atomic/FormElements/Dropdown/index.js +7 -0
- package/dist/es/Atomic/FormElements/Dropdown/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/Dropdown/useDropdown.js +118 -0
- package/dist/es/Atomic/FormElements/Dropdown/useDropdown.js.map +1 -0
- package/dist/es/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +373 -0
- package/dist/es/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js.map +1 -0
- package/dist/es/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.styles.css +411 -0
- package/dist/es/Atomic/FormElements/FileLoader/FileLoader.js +55 -0
- package/dist/es/Atomic/FormElements/FileLoader/FileLoader.js.map +1 -0
- package/dist/es/Atomic/FormElements/FileLoader/FileLoader.styles.css +127 -0
- package/dist/es/Atomic/FormElements/FileLoader/partial/LoadZone.js +86 -0
- package/dist/es/Atomic/FormElements/FileLoader/partial/LoadZone.js.map +1 -0
- package/dist/es/Atomic/FormElements/FileLoader/partial/LoadedContent.js +52 -0
- package/dist/es/Atomic/FormElements/FileLoader/partial/LoadedContent.js.map +1 -0
- package/dist/es/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +174 -0
- package/dist/es/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js.map +1 -0
- package/dist/es/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.styles.css +88 -0
- package/dist/es/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +137 -0
- package/dist/es/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js.map +1 -0
- package/dist/es/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.styles.css +101 -0
- package/dist/es/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +150 -0
- package/dist/es/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js.map +1 -0
- package/dist/es/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.styles.css +14 -0
- package/dist/es/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +75 -0
- package/dist/es/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js.map +1 -0
- package/dist/es/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.styles.css +54 -0
- package/dist/es/Atomic/FormElements/FormattedRawSSN/index.js +7 -0
- package/dist/es/Atomic/FormElements/FormattedRawSSN/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/Input.js +119 -0
- package/dist/es/Atomic/FormElements/Input/Input.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/Input.styles.css +125 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useErrorBlink.js +57 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useErrorBlink.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useInputFocus.js +34 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useInputFocus.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useInputHover.js +16 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useInputHover.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useInputValueProcessing.js +126 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useInputValueProcessing.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useKeyboardHandling.js +32 -0
- package/dist/es/Atomic/FormElements/Input/hooks/useKeyboardHandling.js.map +1 -0
- package/dist/es/Atomic/FormElements/Input/index.js +7 -0
- package/dist/es/Atomic/FormElements/Input/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputCalendar/InputCalendar.js +89 -0
- package/dist/es/Atomic/FormElements/InputCalendar/InputCalendar.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputCalendar/InputCalendar.styles.css +20 -0
- package/dist/es/Atomic/FormElements/InputColor/InputColor.js +52 -0
- package/dist/es/Atomic/FormElements/InputColor/InputColor.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputColor/InputColor.styles.css +17 -0
- package/dist/es/Atomic/FormElements/InputColor/index.js +7 -0
- package/dist/es/Atomic/FormElements/InputColor/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputCurrency/InputCurrency.js +133 -0
- package/dist/es/Atomic/FormElements/InputCurrency/InputCurrency.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputCurrency/InputCurrency.styles.css +13 -0
- package/dist/es/Atomic/FormElements/InputDateRange/InputDateRange.js +215 -0
- package/dist/es/Atomic/FormElements/InputDateRange/InputDateRange.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputDateRange/InputDateRange.styles.css +594 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/DateInput.js +45 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/DateInput.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/Datepicker.js +422 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/Datepicker.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/OpenedPart.js +171 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/OpenedPart.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/SelectItem.js +22 -0
- package/dist/es/Atomic/FormElements/InputDateRange/components/SelectItem.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputDateRange/dependencies.js +166 -0
- package/dist/es/Atomic/FormElements/InputDateRange/dependencies.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputLink/InputLink.js +64 -0
- package/dist/es/Atomic/FormElements/InputLink/InputLink.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputLink/InputLink.styles.css +46 -0
- package/dist/es/Atomic/FormElements/InputLink/index.js +7 -0
- package/dist/es/Atomic/FormElements/InputLink/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputMask/InputMask.js +7 -0
- package/dist/es/Atomic/FormElements/InputMask/InputMask.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputMask3/InputMask3.js +486 -0
- package/dist/es/Atomic/FormElements/InputMask3/InputMask3.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputMask3/InputMask3.styles.css +133 -0
- package/dist/es/Atomic/FormElements/InputMask3/config.js +18 -0
- package/dist/es/Atomic/FormElements/InputMask3/config.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputMask3/functions.js +43 -0
- package/dist/es/Atomic/FormElements/InputMask3/functions.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputWithAction/InputWithAction.js +74 -0
- package/dist/es/Atomic/FormElements/InputWithAction/InputWithAction.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputWithAction/InputWithAction.styles.css +88 -0
- package/dist/es/Atomic/FormElements/InputWithAction/index.js +7 -0
- package/dist/es/Atomic/FormElements/InputWithAction/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputsRow/InputsRow.js +118 -0
- package/dist/es/Atomic/FormElements/InputsRow/InputsRow.js.map +1 -0
- package/dist/es/Atomic/FormElements/InputsRow/InputsRow.styles.css +32 -0
- package/dist/es/Atomic/FormElements/InputsRow/index.js +7 -0
- package/dist/es/Atomic/FormElements/InputsRow/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/Label/Label.js +73 -0
- package/dist/es/Atomic/FormElements/Label/Label.js.map +1 -0
- package/dist/es/Atomic/FormElements/Label/Label.styles.css +30 -0
- package/dist/es/Atomic/FormElements/Label/index.js +7 -0
- package/dist/es/Atomic/FormElements/Label/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/MobileCalendar/MobileCalendar.js +339 -0
- package/dist/es/Atomic/FormElements/MobileCalendar/MobileCalendar.js.map +1 -0
- package/dist/es/Atomic/FormElements/MobileCalendar/MobileCalendar.styles.css +74 -0
- package/dist/es/Atomic/FormElements/MultiSelect/MultiSelect.js +40 -0
- package/dist/es/Atomic/FormElements/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/es/Atomic/FormElements/MultiSelect/MultiSelect.styles.css +14 -0
- package/dist/es/Atomic/FormElements/NumericInput/NumericInput.js +204 -0
- package/dist/es/Atomic/FormElements/NumericInput/NumericInput.js.map +1 -0
- package/dist/es/Atomic/FormElements/NumericInput/NumericInput.styles.css +129 -0
- package/dist/es/Atomic/FormElements/RadioGroup/RadioGroup.js +44 -0
- package/dist/es/Atomic/FormElements/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/es/Atomic/FormElements/RadioGroup/RadioGroup.styles.css +20 -0
- package/dist/es/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +57 -0
- package/dist/es/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js.map +1 -0
- package/dist/es/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.styles.css +23 -0
- package/dist/es/Atomic/FormElements/RadioInput/RadioInput.js +35 -0
- package/dist/es/Atomic/FormElements/RadioInput/RadioInput.js.map +1 -0
- package/dist/es/Atomic/FormElements/RadioInput/RadioInput.styles.css +70 -0
- package/dist/es/Atomic/FormElements/RadioInput/index.js +7 -0
- package/dist/es/Atomic/FormElements/RadioInput/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +42 -0
- package/dist/es/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js.map +1 -0
- package/dist/es/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.styles.css +123 -0
- package/dist/es/Atomic/FormElements/RangeCalendar/RangeCalendar.js +98 -0
- package/dist/es/Atomic/FormElements/RangeCalendar/RangeCalendar.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeCalendar/RangeCalendar.styles.css +103 -0
- package/dist/es/Atomic/FormElements/RangeInputs/RangeInputs.js +128 -0
- package/dist/es/Atomic/FormElements/RangeInputs/RangeInputs.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeInputs/RangeInputs.styles.css +50 -0
- package/dist/es/Atomic/FormElements/RangeInputs/index.js +7 -0
- package/dist/es/Atomic/FormElements/RangeInputs/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeList/RangeList.js +147 -0
- package/dist/es/Atomic/FormElements/RangeList/RangeList.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeList/RangeList.styles.css +143 -0
- package/dist/es/Atomic/FormElements/RangeList/index.js +7 -0
- package/dist/es/Atomic/FormElements/RangeList/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeList/partial/RangeListRow.js +40 -0
- package/dist/es/Atomic/FormElements/RangeList/partial/RangeListRow.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeSlider/RangeSlider.js +342 -0
- package/dist/es/Atomic/FormElements/RangeSlider/RangeSlider.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeSlider/RangeSlider.styles.css +134 -0
- package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.interface.js +23 -0
- package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.interface.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.js +590 -0
- package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.js.map +1 -0
- package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.styles.css +360 -0
- package/dist/es/Atomic/FormElements/SwitchableRow/SwitchableRow.js +29 -0
- package/dist/es/Atomic/FormElements/SwitchableRow/SwitchableRow.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitchableRow/SwitchableRow.styles.css +14 -0
- package/dist/es/Atomic/FormElements/Switcher/Switcher.js +36 -0
- package/dist/es/Atomic/FormElements/Switcher/Switcher.js.map +1 -0
- package/dist/es/Atomic/FormElements/Switcher/Switcher.styles.css +83 -0
- package/dist/es/Atomic/FormElements/Switcher/index.js +7 -0
- package/dist/es/Atomic/FormElements/Switcher/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +36 -0
- package/dist/es/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.styles.css +21 -0
- package/dist/es/Atomic/FormElements/SwitcherHide/SwitcherHide.js +31 -0
- package/dist/es/Atomic/FormElements/SwitcherHide/SwitcherHide.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherHide/index.js +7 -0
- package/dist/es/Atomic/FormElements/SwitcherHide/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +43 -0
- package/dist/es/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherRadio/SwitcherRadio.styles.css +22 -0
- package/dist/es/Atomic/FormElements/SwitcherRadio/index.js +7 -0
- package/dist/es/Atomic/FormElements/SwitcherRadio/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherRange/SwitcherRange.js +33 -0
- package/dist/es/Atomic/FormElements/SwitcherRange/SwitcherRange.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherRange/index.js +7 -0
- package/dist/es/Atomic/FormElements/SwitcherRange/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +56 -0
- package/dist/es/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.styles.css +0 -0
- package/dist/es/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +99 -0
- package/dist/es/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.styles.css +55 -0
- package/dist/es/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +49 -0
- package/dist/es/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js.map +1 -0
- package/dist/es/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.styles.css +38 -0
- package/dist/es/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +82 -0
- package/dist/es/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js.map +1 -0
- package/dist/es/Atomic/FormElements/TagsDropdown/TagsDropdown.js +800 -0
- package/dist/es/Atomic/FormElements/TagsDropdown/TagsDropdown.js.map +1 -0
- package/dist/es/Atomic/FormElements/TagsDropdown/TagsDropdown.styles.css +707 -0
- package/dist/es/Atomic/FormElements/Text/Text.js +67 -0
- package/dist/es/Atomic/FormElements/Text/Text.js.map +1 -0
- package/dist/es/Atomic/FormElements/Text/Text.styles.css +12 -0
- package/dist/es/Atomic/FormElements/Text/index.js +7 -0
- package/dist/es/Atomic/FormElements/Text/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/TextSwitcher/TextSwitcher.js +35 -0
- package/dist/es/Atomic/FormElements/TextSwitcher/TextSwitcher.js.map +1 -0
- package/dist/es/Atomic/FormElements/TextSwitcher/TextSwitcher.styles.css +84 -0
- package/dist/es/Atomic/FormElements/Textarea/Textarea.js +73 -0
- package/dist/es/Atomic/FormElements/Textarea/Textarea.js.map +1 -0
- package/dist/es/Atomic/FormElements/Textarea/Textarea.styles.css +102 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +124 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js.map +1 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.styles.css +46 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/index.js +7 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +36 -0
- package/dist/es/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js.map +1 -0
- package/dist/es/Atomic/FormElements/TimeRange/TimeRange.js +55 -0
- package/dist/es/Atomic/FormElements/TimeRange/TimeRange.js.map +1 -0
- package/dist/es/Atomic/FormElements/TimeRange/TimeRange.styles.css +18 -0
- package/dist/es/Atomic/FormElements/TimeRange/index.js +7 -0
- package/dist/es/Atomic/FormElements/TimeRange/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/UserContacts/UserContacts.js +115 -0
- package/dist/es/Atomic/FormElements/UserContacts/UserContacts.js.map +1 -0
- package/dist/es/Atomic/FormElements/UserContacts/UserContacts.styles.css +15 -0
- package/dist/es/Atomic/FormElements/UserContacts/index.js +7 -0
- package/dist/es/Atomic/FormElements/UserContacts/index.js.map +1 -0
- package/dist/es/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +52 -0
- package/dist/es/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js.map +1 -0
- package/dist/es/Atomic/FormElements/VariantsListRadio/VariantsListRadio.styles.css +213 -0
- package/dist/es/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +61 -0
- package/dist/es/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js.map +1 -0
- package/dist/es/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +62 -0
- package/dist/es/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js.map +1 -0
- package/dist/es/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.styles.css +70 -0
- package/dist/es/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +82 -0
- package/dist/es/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js.map +1 -0
- package/dist/es/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.styles.css +70 -0
- package/dist/es/Atomic/Layout/Header/Header.js +87 -0
- package/dist/es/Atomic/Layout/Header/Header.js.map +1 -0
- package/dist/es/Atomic/Layout/Header/Header.styles.css +82 -0
- package/dist/es/Atomic/Layout/MainMenu/MainMenu.js +134 -0
- package/dist/es/Atomic/Layout/MainMenu/MainMenu.js.map +1 -0
- package/dist/es/Atomic/Layout/MainMenu/MainMenu.styles.css +205 -0
- package/dist/es/Atomic/Layout/Spinner/Spinner.js +32 -0
- package/dist/es/Atomic/Layout/Spinner/Spinner.js.map +1 -0
- package/dist/es/Atomic/Layout/Spinner/Spinner.styles.css +82 -0
- package/dist/es/Atomic/Layout/Spinner/index.js +7 -0
- package/dist/es/Atomic/Layout/Spinner/index.js.map +1 -0
- package/dist/es/Atomic/UI/Accordion/Accordion.js +48 -0
- package/dist/es/Atomic/UI/Accordion/Accordion.js.map +1 -0
- package/dist/es/Atomic/UI/Accordion/Accordion.styles.css +133 -0
- package/dist/es/Atomic/UI/Accordion/AccordionItem.js +110 -0
- package/dist/es/Atomic/UI/Accordion/AccordionItem.js.map +1 -0
- package/dist/es/Atomic/UI/Accordion/index.js +7 -0
- package/dist/es/Atomic/UI/Accordion/index.js.map +1 -0
- package/dist/es/Atomic/UI/AccordionTable/AccordionTable.js +167 -0
- package/dist/es/Atomic/UI/AccordionTable/AccordionTable.js.map +1 -0
- package/dist/es/Atomic/UI/AccordionTable/AccordionTable.styles.css +228 -0
- package/dist/es/Atomic/UI/AccordionText/AccordionText.js +47 -0
- package/dist/es/Atomic/UI/AccordionText/AccordionText.js.map +1 -0
- package/dist/es/Atomic/UI/AccordionText/AccordionText.styles.css +48 -0
- package/dist/es/Atomic/UI/AdvancedTag/AdvTag.js +148 -0
- package/dist/es/Atomic/UI/AdvancedTag/AdvTag.js.map +1 -0
- package/dist/es/Atomic/UI/AdvancedTag/AdvancedTags.js +40 -0
- package/dist/es/Atomic/UI/AdvancedTag/AdvancedTags.js.map +1 -0
- package/dist/es/Atomic/UI/AdvancedTag/AdvancedTags.styles.css +106 -0
- package/dist/es/Atomic/UI/AdvancedTag/index.js +8 -0
- package/dist/es/Atomic/UI/AdvancedTag/index.js.map +1 -0
- package/dist/es/Atomic/UI/Alert/Alert.js +54 -0
- package/dist/es/Atomic/UI/Alert/Alert.js.map +1 -0
- package/dist/es/Atomic/UI/Alert/Alert.styles.css +65 -0
- package/dist/es/Atomic/UI/Alert/index.js +7 -0
- package/dist/es/Atomic/UI/Alert/index.js.map +1 -0
- package/dist/es/Atomic/UI/Arrow/Arrow.js +107 -0
- package/dist/es/Atomic/UI/Arrow/Arrow.js.map +1 -0
- package/dist/es/Atomic/UI/Arrow/Arrow.styles.css +14 -0
- package/dist/es/Atomic/UI/Box/Box.js +33 -0
- package/dist/es/Atomic/UI/Box/Box.js.map +1 -0
- package/dist/es/Atomic/UI/Box/Box.styles.css +62 -0
- package/dist/es/Atomic/UI/Button/Button.js +35 -0
- package/dist/es/Atomic/UI/Button/Button.js.map +1 -0
- package/dist/es/Atomic/UI/Button/Button.styles.css +124 -0
- package/dist/es/Atomic/UI/ButtonsBar/ButtonsBar.js +49 -0
- package/dist/es/Atomic/UI/ButtonsBar/ButtonsBar.js.map +1 -0
- package/dist/es/Atomic/UI/ButtonsBar/ButtonsBar.styles.css +7 -0
- package/dist/es/Atomic/UI/ButtonsBar/index.js +7 -0
- package/dist/es/Atomic/UI/ButtonsBar/index.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/Chart.js +96 -0
- package/dist/es/Atomic/UI/Chart/Chart.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/Chart.styles.css +45 -0
- package/dist/es/Atomic/UI/Chart/index.js +7 -0
- package/dist/es/Atomic/UI/Chart/index.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/partial/Chart.constants.js +89 -0
- package/dist/es/Atomic/UI/Chart/partial/Chart.constants.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +80 -0
- package/dist/es/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.styles.css +16 -0
- package/dist/es/Atomic/UI/Chart/partial/datasetSetters.js +78 -0
- package/dist/es/Atomic/UI/Chart/partial/datasetSetters.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/partial/optionsConstructor.js +259 -0
- package/dist/es/Atomic/UI/Chart/partial/optionsConstructor.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/partial/optionsSetters.js +35 -0
- package/dist/es/Atomic/UI/Chart/partial/optionsSetters.js.map +1 -0
- package/dist/es/Atomic/UI/Chart/partial/utils.js +37 -0
- package/dist/es/Atomic/UI/Chart/partial/utils.js.map +1 -0
- package/dist/es/Atomic/UI/CircleProgressBar/CircleProgressBar.js +85 -0
- package/dist/es/Atomic/UI/CircleProgressBar/CircleProgressBar.js.map +1 -0
- package/dist/es/Atomic/UI/CircleProgressBar/CircleProgressBar.styles.css +31 -0
- package/dist/es/Atomic/UI/DateTime/DateTime.js +45 -0
- package/dist/es/Atomic/UI/DateTime/DateTime.js.map +1 -0
- package/dist/es/Atomic/UI/DateTime/DateTime.styles.css +33 -0
- package/dist/es/Atomic/UI/DebugContainer/DebugContainer.js +45 -0
- package/dist/es/Atomic/UI/DebugContainer/DebugContainer.js.map +1 -0
- package/dist/es/Atomic/UI/DebugContainer/DebugContainer.styles.css +32 -0
- package/dist/es/Atomic/UI/DebugContainer/useDebugContainer.js +16 -0
- package/dist/es/Atomic/UI/DebugContainer/useDebugContainer.js.map +1 -0
- package/dist/es/Atomic/UI/DoubleString/DoubleString.js +77 -0
- package/dist/es/Atomic/UI/DoubleString/DoubleString.js.map +1 -0
- package/dist/es/Atomic/UI/DoubleString/DoubleString.styles.css +42 -0
- package/dist/es/Atomic/UI/DoubleString/index.js +7 -0
- package/dist/es/Atomic/UI/DoubleString/index.js.map +1 -0
- package/dist/es/Atomic/UI/Hint/Hint.js +218 -0
- package/dist/es/Atomic/UI/Hint/Hint.js.map +1 -0
- package/dist/es/Atomic/UI/Hint/Hint.styles.css +107 -0
- package/dist/es/Atomic/UI/Hint/index.js +7 -0
- package/dist/es/Atomic/UI/Hint/index.js.map +1 -0
- package/dist/es/Atomic/UI/Hint/partials/_constants.js +11 -0
- package/dist/es/Atomic/UI/Hint/partials/_constants.js.map +1 -0
- package/dist/es/Atomic/UI/Hint/partials/_utils.js +35 -0
- package/dist/es/Atomic/UI/Hint/partials/_utils.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/Modal.js +178 -0
- package/dist/es/Atomic/UI/Modal/Modal.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/Modal.styles.css +337 -0
- package/dist/es/Atomic/UI/Modal/ModalHOC.js +64 -0
- package/dist/es/Atomic/UI/Modal/ModalHOC.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/ModalMobile.styles.css +60 -0
- package/dist/es/Atomic/UI/Modal/index.js +13 -0
- package/dist/es/Atomic/UI/Modal/index.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/partials/ModalFooter.js +19 -0
- package/dist/es/Atomic/UI/Modal/partials/ModalFooter.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/partials/ModalTitle.js +43 -0
- package/dist/es/Atomic/UI/Modal/partials/ModalTitle.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/partials/_constants.js +26 -0
- package/dist/es/Atomic/UI/Modal/partials/_constants.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/partials/_utils.js +45 -0
- package/dist/es/Atomic/UI/Modal/partials/_utils.js.map +1 -0
- package/dist/es/Atomic/UI/Modal/partials/useMobileModal.js +141 -0
- package/dist/es/Atomic/UI/Modal/partials/useMobileModal.js.map +1 -0
- package/dist/es/Atomic/UI/MonoAccordion/MonoAccordion.js +59 -0
- package/dist/es/Atomic/UI/MonoAccordion/MonoAccordion.js.map +1 -0
- package/dist/es/Atomic/UI/MonoAccordion/MonoAccordion.styles.css +110 -0
- package/dist/es/Atomic/UI/MonoAccordion/index.js +7 -0
- package/dist/es/Atomic/UI/MonoAccordion/index.js.map +1 -0
- package/dist/es/Atomic/UI/NavLine/NavLine.js +209 -0
- package/dist/es/Atomic/UI/NavLine/NavLine.js.map +1 -0
- package/dist/es/Atomic/UI/NavLine/NavLine.styles.css +187 -0
- package/dist/es/Atomic/UI/NavLine/index.js +7 -0
- package/dist/es/Atomic/UI/NavLine/index.js.map +1 -0
- package/dist/es/Atomic/UI/PageTitle/PageTitle.js +49 -0
- package/dist/es/Atomic/UI/PageTitle/PageTitle.js.map +1 -0
- package/dist/es/Atomic/UI/PageTitle/PageTitle.styles.css +89 -0
- package/dist/es/Atomic/UI/PageTitle/index.js +7 -0
- package/dist/es/Atomic/UI/PageTitle/index.js.map +1 -0
- package/dist/es/Atomic/UI/PieChart/PieChart.js +41 -0
- package/dist/es/Atomic/UI/PieChart/PieChart.js.map +1 -0
- package/dist/es/Atomic/UI/PieChart/PieChart.styles.css +44 -0
- package/dist/es/Atomic/UI/Price/Price.js +20 -0
- package/dist/es/Atomic/UI/Price/Price.js.map +1 -0
- package/dist/es/Atomic/UI/Price/index.js +7 -0
- package/dist/es/Atomic/UI/Price/index.js.map +1 -0
- package/dist/es/Atomic/UI/PriceRange/PriceRange.js +33 -0
- package/dist/es/Atomic/UI/PriceRange/PriceRange.js.map +1 -0
- package/dist/es/Atomic/UI/PriceRange/index.js +7 -0
- package/dist/es/Atomic/UI/PriceRange/index.js.map +1 -0
- package/dist/es/Atomic/UI/ProgressLine/ProgressLine.js +74 -0
- package/dist/es/Atomic/UI/ProgressLine/ProgressLine.js.map +1 -0
- package/dist/es/Atomic/UI/ProgressLine/ProgressLine.styles.css +243 -0
- package/dist/es/Atomic/UI/ProgressLine/index.js +7 -0
- package/dist/es/Atomic/UI/ProgressLine/index.js.map +1 -0
- package/dist/es/Atomic/UI/Status/Status.js +48 -0
- package/dist/es/Atomic/UI/Status/Status.js.map +1 -0
- package/dist/es/Atomic/UI/Status/Status.styles.css +98 -0
- package/dist/es/Atomic/UI/Status/index.js +7 -0
- package/dist/es/Atomic/UI/Status/index.js.map +1 -0
- package/dist/es/Atomic/UI/Table/Partials/TdCell.js +67 -0
- package/dist/es/Atomic/UI/Table/Partials/TdCell.js.map +1 -0
- package/dist/es/Atomic/UI/Table/Partials/TdHeader.js +43 -0
- package/dist/es/Atomic/UI/Table/Partials/TdHeader.js.map +1 -0
- package/dist/es/Atomic/UI/Table/Partials/TdRow.js +56 -0
- package/dist/es/Atomic/UI/Table/Partials/TdRow.js.map +1 -0
- package/dist/es/Atomic/UI/Table/Table.js +36 -0
- package/dist/es/Atomic/UI/Table/Table.js.map +1 -0
- package/dist/es/Atomic/UI/Table/Table.styles.css +63 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdActions.js +56 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdActions.js.map +1 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdPriority.js +29 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdPriority.js.map +1 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdRange.js +14 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdRange.js.map +1 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdTypes.styles.css +29 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdWeight.js +43 -0
- package/dist/es/Atomic/UI/Table/TdTypes/TdWeight.js.map +1 -0
- package/dist/es/Atomic/UI/Tag/Tag.js +110 -0
- package/dist/es/Atomic/UI/Tag/Tag.js.map +1 -0
- package/dist/es/Atomic/UI/Tag/Tag.styles.css +148 -0
- package/dist/es/Atomic/UI/Tag/index.js +7 -0
- package/dist/es/Atomic/UI/Tag/index.js.map +1 -0
- package/dist/es/Atomic/UI/TagList/TagList.js +152 -0
- package/dist/es/Atomic/UI/TagList/TagList.js.map +1 -0
- package/dist/es/Atomic/UI/TagList/TagList.styles.css +59 -0
- package/dist/es/Atomic/UI/UserBox/UserBox.js +49 -0
- package/dist/es/Atomic/UI/UserBox/UserBox.js.map +1 -0
- package/dist/es/Atomic/UI/UserBox/UserBox.styles.css +64 -0
- package/dist/es/Atomic/UI/UserBox/index.js +7 -0
- package/dist/es/Atomic/UI/UserBox/index.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/constructor.js +12 -0
- package/dist/es/Atomic/UI/WizardStepper/constructor.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/index.js +7 -0
- package/dist/es/Atomic/UI/WizardStepper/index.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +52 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.styles.css +23 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StateIcon/index.js +7 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StateIcon/index.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +67 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepRow/StepRow.styles.css +60 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +43 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.styles.css +64 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +7 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/StepWrapper/index.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/icons.js +124 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/icons.js.map +1 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/index.js +7 -0
- package/dist/es/Atomic/UI/WizardStepper/ui/index.js.map +1 -0
- package/dist/es/Classes/AbortableFetch.js +271 -0
- package/dist/es/Classes/AbortableFetch.js.map +1 -0
- package/dist/es/Classes/AnimatedHandler.js +27 -0
- package/dist/es/Classes/AnimatedHandler.js.map +1 -0
- package/dist/es/Classes/RESTAPI/index.js +112 -0
- package/dist/es/Classes/RESTAPI/index.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/AbortableFetch.js +323 -0
- package/dist/es/Classes/RESTAPI/partials/AbortableFetch.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/ApiBase.js +38 -0
- package/dist/es/Classes/RESTAPI/partials/ApiBase.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/ApiRequestCreators.js +151 -0
- package/dist/es/Classes/RESTAPI/partials/ApiRequestCreators.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/ApiUtils.js +142 -0
- package/dist/es/Classes/RESTAPI/partials/ApiUtils.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/CredentialsProcessing.js +212 -0
- package/dist/es/Classes/RESTAPI/partials/CredentialsProcessing.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/Utils.js +70 -0
- package/dist/es/Classes/RESTAPI/partials/Utils.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/_utils.js +144 -0
- package/dist/es/Classes/RESTAPI/partials/_utils.js.map +1 -0
- package/dist/es/Classes/RESTAPI/partials/sse.js +127 -0
- package/dist/es/Classes/RESTAPI/partials/sse.js.map +1 -0
- package/dist/es/Constants/index.constants.js +78 -0
- package/dist/es/Constants/index.constants.js.map +1 -0
- package/dist/es/Functions/Portal.js +21 -0
- package/dist/es/Functions/Portal.js.map +1 -0
- package/dist/es/Functions/customEventListener.js +67 -0
- package/dist/es/Functions/customEventListener.js.map +1 -0
- package/dist/es/Functions/dateTime.js +113 -0
- package/dist/es/Functions/dateTime.js.map +1 -0
- package/dist/es/Functions/fieldValueFormatters.js +193 -0
- package/dist/es/Functions/fieldValueFormatters.js.map +1 -0
- package/dist/es/Functions/guards/assertions.js +265 -0
- package/dist/es/Functions/guards/assertions.js.map +1 -0
- package/dist/es/Functions/guards/safeValue.js +66 -0
- package/dist/es/Functions/guards/safeValue.js.map +1 -0
- package/dist/es/Functions/guards/typeGuards.js +397 -0
- package/dist/es/Functions/guards/typeGuards.js.map +1 -0
- package/dist/es/Functions/hooks/useFormFieldsChangesManager.js +84 -0
- package/dist/es/Functions/hooks/useFormFieldsChangesManager.js.map +1 -0
- package/dist/es/Functions/locale/createTranslator.js +23 -0
- package/dist/es/Functions/locale/createTranslator.js.map +1 -0
- package/dist/es/Functions/operations.js +88 -0
- package/dist/es/Functions/operations.js.map +1 -0
- package/dist/es/Functions/presets/inputMaskPresets.js +82 -0
- package/dist/es/Functions/presets/inputMaskPresets.js.map +1 -0
- package/dist/es/Functions/presets/inputPresets.js +50 -0
- package/dist/es/Functions/presets/inputPresets.js.map +1 -0
- package/dist/es/Functions/presets/mobileKeyboardTypesPresets.js +11 -0
- package/dist/es/Functions/presets/mobileKeyboardTypesPresets.js.map +1 -0
- package/dist/es/Functions/sdk/runtime-sdk/client.js +161 -0
- package/dist/es/Functions/sdk/runtime-sdk/client.js.map +1 -0
- package/dist/es/Functions/sdk/runtime-sdk/config.js +77 -0
- package/dist/es/Functions/sdk/runtime-sdk/config.js.map +1 -0
- package/dist/es/Functions/sdk/runtime-sdk/queue.js +131 -0
- package/dist/es/Functions/sdk/runtime-sdk/queue.js.map +1 -0
- package/dist/es/Functions/sdk/runtime-sdk/transport.js +114 -0
- package/dist/es/Functions/sdk/runtime-sdk/transport.js.map +1 -0
- package/dist/es/Functions/useBodyScrollLock.js +15 -0
- package/dist/es/Functions/useBodyScrollLock.js.map +1 -0
- package/dist/es/Functions/useClickOutside.js +17 -0
- package/dist/es/Functions/useClickOutside.js.map +1 -0
- package/dist/es/Functions/useDebounce.js +18 -0
- package/dist/es/Functions/useDebounce.js.map +1 -0
- package/dist/es/Functions/useFieldFocus.js +62 -0
- package/dist/es/Functions/useFieldFocus.js.map +1 -0
- package/dist/es/Functions/useFormTools/form-drivers/ArrayWithObjects.js +29 -0
- package/dist/es/Functions/useFormTools/form-drivers/ArrayWithObjects.js.map +1 -0
- package/dist/es/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +95 -0
- package/dist/es/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js.map +1 -0
- package/dist/es/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +49 -0
- package/dist/es/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js.map +1 -0
- package/dist/es/Functions/useFormTools/functions/General.js +87 -0
- package/dist/es/Functions/useFormTools/functions/General.js.map +1 -0
- package/dist/es/Functions/useFormTools/functions/RenderFields.js +70 -0
- package/dist/es/Functions/useFormTools/functions/RenderFields.js.map +1 -0
- package/dist/es/Functions/useFormTools/index.js +464 -0
- package/dist/es/Functions/useFormTools/index.js.map +1 -0
- package/dist/es/Functions/useInputHighlightError.js +50 -0
- package/dist/es/Functions/useInputHighlightError.js.map +1 -0
- package/dist/es/Functions/useIsMobile/index.js +7 -0
- package/dist/es/Functions/useIsMobile/index.js.map +1 -0
- package/dist/es/Functions/useIsMobile/useIsMobile.js +32 -0
- package/dist/es/Functions/useIsMobile/useIsMobile.js.map +1 -0
- package/dist/es/Functions/useKeyPress/useHandleKeyPress.js +38 -0
- package/dist/es/Functions/useKeyPress/useHandleKeyPress.js.map +1 -0
- package/dist/es/Functions/useKeyPress/useKeyPress.js +54 -0
- package/dist/es/Functions/useKeyPress/useKeyPress.js.map +1 -0
- package/dist/es/Functions/useLocalStorage.js +28 -0
- package/dist/es/Functions/useLocalStorage.js.map +1 -0
- package/dist/es/Functions/useLocationParams.js +27 -0
- package/dist/es/Functions/useLocationParams.js.map +1 -0
- package/dist/es/Functions/useMediaQuery.js +14 -0
- package/dist/es/Functions/useMediaQuery.js.map +1 -0
- package/dist/es/Functions/useMetaInfo.js +33 -0
- package/dist/es/Functions/useMetaInfo.js.map +1 -0
- package/dist/es/Functions/useMouseUpOutside.js +17 -0
- package/dist/es/Functions/useMouseUpOutside.js.map +1 -0
- package/dist/es/Functions/useOnlineStatus.js +23 -0
- package/dist/es/Functions/useOnlineStatus.js.map +1 -0
- package/dist/es/Functions/usePasswordChecker.js +116 -0
- package/dist/es/Functions/usePasswordChecker.js.map +1 -0
- package/dist/es/Functions/usePrevious.js +13 -0
- package/dist/es/Functions/usePrevious.js.map +1 -0
- package/dist/es/Functions/useResize.js +24 -0
- package/dist/es/Functions/useResize.js.map +1 -0
- package/dist/es/Functions/useScrollTo.js +17 -0
- package/dist/es/Functions/useScrollTo.js.map +1 -0
- package/dist/es/Functions/useToggle.js +15 -0
- package/dist/es/Functions/useToggle.js.map +1 -0
- package/dist/es/Functions/utils/disableDefaultBehavior/disableDefaultBehavior.js +9 -0
- package/dist/es/Functions/utils/disableDefaultBehavior/disableDefaultBehavior.js.map +1 -0
- package/dist/es/Functions/utils/getLimitedMask/getLimitedMask.js +39 -0
- package/dist/es/Functions/utils/getLimitedMask/getLimitedMask.js.map +1 -0
- package/dist/es/Functions/utils.js +288 -0
- package/dist/es/Functions/utils.js.map +1 -0
- package/dist/es/Langs.js +166 -0
- package/dist/es/Langs.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/AffiliateNetworks.js +33 -0
- package/dist/es/Molecular/CustomIcons/components/AffiliateNetworks.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/AlertCircle.js +30 -0
- package/dist/es/Molecular/CustomIcons/components/AlertCircle.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/AppStore.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/AppStore.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Arrow.js +43 -0
- package/dist/es/Molecular/CustomIcons/components/Arrow.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowDown.js +21 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowDown.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowLeft.js +21 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowLeft.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowRight.js +21 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowRight.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowUp.js +21 -0
- package/dist/es/Molecular/CustomIcons/components/ArrowUp.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Bell.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Bell.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Button.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Button.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Campaigns.js +20 -0
- package/dist/es/Molecular/CustomIcons/components/Campaigns.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Check.js +15 -0
- package/dist/es/Molecular/CustomIcons/components/Check.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Check2.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Check2.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronDown.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronDown.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronDownDisabled.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronDownDisabled.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronLeft.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronLeft.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronRight.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronRight.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronUp.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronUp.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronUpDown.js +33 -0
- package/dist/es/Molecular/CustomIcons/components/ChevronUpDown.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Close.js +20 -0
- package/dist/es/Molecular/CustomIcons/components/Close.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/ColumnsOrder.js +53 -0
- package/dist/es/Molecular/CustomIcons/components/ColumnsOrder.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Delete.js +20 -0
- package/dist/es/Molecular/CustomIcons/components/Delete.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Edit.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Edit.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Email.js +36 -0
- package/dist/es/Molecular/CustomIcons/components/Email.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/FinturfLogo.js +33 -0
- package/dist/es/Molecular/CustomIcons/components/FinturfLogo.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/FinturfLogo2.js +41 -0
- package/dist/es/Molecular/CustomIcons/components/FinturfLogo2.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Flows.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Flows.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Gift.js +21 -0
- package/dist/es/Molecular/CustomIcons/components/Gift.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/GoogleAuth.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/GoogleAuth.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/GooglePlay.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/GooglePlay.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/HelpCircle.js +22 -0
- package/dist/es/Molecular/CustomIcons/components/HelpCircle.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/HelpCircle2.js +23 -0
- package/dist/es/Molecular/CustomIcons/components/HelpCircle2.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/HelpCircleFilled.js +22 -0
- package/dist/es/Molecular/CustomIcons/components/HelpCircleFilled.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Home.js +22 -0
- package/dist/es/Molecular/CustomIcons/components/Home.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Home2.js +25 -0
- package/dist/es/Molecular/CustomIcons/components/Home2.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Key.js +24 -0
- package/dist/es/Molecular/CustomIcons/components/Key.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Landers.js +23 -0
- package/dist/es/Molecular/CustomIcons/components/Landers.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Lock.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Lock.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Mail.js +28 -0
- package/dist/es/Molecular/CustomIcons/components/Mail.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Mastercard.js +81 -0
- package/dist/es/Molecular/CustomIcons/components/Mastercard.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Minus.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/Minus.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Offers.js +20 -0
- package/dist/es/Molecular/CustomIcons/components/Offers.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Pause.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/Pause.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/PayPal.js +54 -0
- package/dist/es/Molecular/CustomIcons/components/PayPal.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/PayPalLightLarge.js +39 -0
- package/dist/es/Molecular/CustomIcons/components/PayPalLightLarge.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Phone.js +33 -0
- package/dist/es/Molecular/CustomIcons/components/Phone.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Play.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/Play.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Plus.js +34 -0
- package/dist/es/Molecular/CustomIcons/components/Plus.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Profile.js +24 -0
- package/dist/es/Molecular/CustomIcons/components/Profile.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/QRCode.js +35 -0
- package/dist/es/Molecular/CustomIcons/components/QRCode.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Rectangle.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Rectangle.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Revert.js +22 -0
- package/dist/es/Molecular/CustomIcons/components/Revert.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Star.js +18 -0
- package/dist/es/Molecular/CustomIcons/components/Star.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Star2.js +20 -0
- package/dist/es/Molecular/CustomIcons/components/Star2.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/TrafficSources.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/TrafficSources.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Trash.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Trash.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/TrashRed.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/TrashRed.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Triggers.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/Triggers.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/User.js +21 -0
- package/dist/es/Molecular/CustomIcons/components/User.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/Visa.js +41 -0
- package/dist/es/Molecular/CustomIcons/components/Visa.js.map +1 -0
- package/dist/es/Molecular/CustomIcons/components/X.js +19 -0
- package/dist/es/Molecular/CustomIcons/components/X.js.map +1 -0
- package/dist/es/Molecular/FormElement/FormElement.js +37 -0
- package/dist/es/Molecular/FormElement/FormElement.js.map +1 -0
- package/dist/es/Molecular/FormElement/FormElement.styles.css +21 -0
- package/dist/es/Molecular/FormWithDependOn/FormWithDependOn.js +111 -0
- package/dist/es/Molecular/FormWithDependOn/FormWithDependOn.js.map +1 -0
- package/dist/es/Molecular/FormWithDependOn/partials/_utils.js +33 -0
- package/dist/es/Molecular/FormWithDependOn/partials/_utils.js.map +1 -0
- package/dist/es/Molecular/InputAddress/InputAddress.js +352 -0
- package/dist/es/Molecular/InputAddress/InputAddress.js.map +1 -0
- package/dist/es/Molecular/InputAddress/InputAddress.styles.css +353 -0
- package/dist/es/Molecular/InputCustomFetch/InputCustomFetch.js +355 -0
- package/dist/es/Molecular/InputCustomFetch/InputCustomFetch.js.map +1 -0
- package/dist/es/Molecular/InputCustomFetch/InputCustomFetch.styles.css +358 -0
- package/dist/es/Molecular/InputCustomFetch/lib/hooks/useDebouncedCallback.js +27 -0
- package/dist/es/Molecular/InputCustomFetch/lib/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/es/Molecular/InputCustomFetch/lib/hooks/useFetchWithAbort.js +50 -0
- package/dist/es/Molecular/InputCustomFetch/lib/hooks/useFetchWithAbort.js.map +1 -0
- package/dist/es/Molecular/InputCustomFetch/lib/utils.js +24 -0
- package/dist/es/Molecular/InputCustomFetch/lib/utils.js.map +1 -0
- package/dist/es/Molecular/InputPassword/InputPassword.js +47 -0
- package/dist/es/Molecular/InputPassword/InputPassword.js.map +1 -0
- package/dist/es/Molecular/InputPassword/InputPassword.styles.css +23 -0
- package/dist/es/_virtual/_rolldown/runtime.js +1 -15
- package/dist/es/charts.js +2 -3
- package/dist/es/classes.js +1 -1
- package/dist/es/form.js +68 -93
- package/dist/es/hooks.js +12 -17
- package/dist/es/icons.js +126 -6
- package/dist/es/index.js +145 -70
- package/dist/es/layout.js +3 -3
- package/dist/es/presets.js +6 -6
- package/dist/es/router-ui.js +5 -8
- package/dist/es/sdk.js +3 -1
- package/dist/es/types/index.js +0 -2
- package/dist/es/ui.js +30 -39
- package/dist/es/utils.js +5 -6
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["fields"],"sources":["../../../../src/Functions/useFormTools/index.js"],"sourcesContent":["// eslint-disable-next-line no-unused-vars\nimport { createRef, useEffect, useState } from \"react\";\n\nimport ArrayWithObjects from \"./form-drivers/ArrayWithObjects\";\nimport ObjectWithIterableObjects from \"./form-drivers/ObjectWithIterableObjects\";\nimport ObjectWithNamedKeyObjects from \"./form-drivers/ObjectWithNamedKeyObjects\";\nimport General from \"./functions/General\";\nimport RenderFields from \"./functions/RenderFields\";\n\nconst DefaultFocusControllerProps = {\n setAutoFocus: true,\n onlyEmptyFieldAutoFocus: false,\n};\n\nexport default function useFormTools({\n form,\n setForm,\n FormType,\n FormFields,\n FormDataDriverName = \"ArrayWithObjects\" ||\n \"ObjectWithIterableObjects\" ||\n \"ObjectWithNamedKeyObjects\",\n FormDataDriver = null,\n FocusControllerProps = DefaultFocusControllerProps,\n goToNextFieldOnEnterPressed = true,\n} = {}) {\n FocusControllerProps = {\n ...DefaultFocusControllerProps,\n ...FocusControllerProps,\n };\n\n const FormDataDrivers = {\n ArrayWithObjects: {\n handlers: ArrayWithObjects,\n default: true,\n },\n ObjectWithIterableObjects: {\n handlers: ObjectWithIterableObjects,\n },\n ObjectWithNamedKeyObjects: {\n handlers: ObjectWithNamedKeyObjects,\n },\n };\n\n const getFormDataDriver = (name) => {\n return (\n FormDataDriver ||\n FormDataDrivers[name]?.handlers ||\n Object.values(FormDataDrivers).find((df) => df.default === true)\n ?.handlers ||\n (() => ({}))\n );\n };\n const getFormDataDriverInstance = (name, ...args) => {\n return getFormDataDriver(name)(...args);\n };\n\n const { getFieldClassName, updateFormField } = General();\n\n const {\n getFieldData,\n getFormField,\n setFormFields,\n setFormField,\n getFormFieldsAsArray,\n getFormFieldsKeys,\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n } = getFormDataDriverInstance(FormDataDriverName, {\n form,\n setForm,\n FormFields,\n });\n\n ///////////////////////////////////////////////////////////////\n //--- OnChange Observer ---//--- START ---//\n const [onChangeObservers, setOnChangeObservers] = useState({});\n const addOnChangeObserver = (key, cb) => {\n let observerId = null;\n\n setOnChangeObservers((state) => {\n //Set Default Value\n if (!state[key]) state[key] = {};\n\n observerId = state[key].length;\n\n state[key][observerId] = cb;\n\n return state;\n });\n\n return observerId;\n };\n const removeOnChangeObserver = (key, id) => {\n setOnChangeObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key] = Object.keys(state)\n .filter((cbId) => cbId !== id)\n .map((cbId) => state[key][cbId]);\n\n return state;\n });\n };\n const onChangeObserver = (key, value) => {\n if (!onChangeObservers[key] || typeof onChangeObservers[key] !== \"object\")\n return;\n\n const Observers = onChangeObservers[key];\n\n Object.values(Observers).map((cb) => {\n cb({ value, form });\n return null;\n });\n };\n const onFieldChange = (key, value) => {\n if (value === getFormField(key)?.value) return false;\n\n onChangeObserver(key, value);\n setFormField(\n (field) => ({\n ...field,\n error: \"\",\n value,\n }),\n key,\n );\n };\n //--- OnChange Observer ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Form Submit Blocker ---//--- START ---//\n const [formSubmitBlockers, setFormSubmitBlockers] = useState([]);\n const toggleFormSubmitBlock = (key, value) => {\n setFormSubmitBlockers((state) =>\n state.includes(key) || !value\n ? [...state.filter((k) => k !== key)]\n : [...state, key],\n );\n };\n const clearFormSubmitBlockers = () => setFormSubmitBlockers([]);\n //--- Form Submit Blocker ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Property Observer Blocker ---//--- START ---//\n // const [propertyObservers, setPropertyObservers] = useState({});\n // function addPropertyObserver () {\n // };\n //--- Property Observer Blocker ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Render Fields Controller ---//--- START ---//\n const [isFormFieldsAdded, setIsFormFieldsAdded] = useState(false);\n const [renderFormFields, setRenderFormFieldsState] = useState([]);\n const setRenderFormFields = (data) => {\n setIsFormFieldsAdded(true);\n // eslint-disable-next-line no-use-before-define\n removeRenderFields(renderFormFields);\n // eslint-disable-next-line no-use-before-define\n resetIsInitFocused();\n setRenderFormFieldsState(data);\n };\n const addRenderFields = (fields) => {\n setRenderFormFieldsState((state) => [...state, ...fields]);\n };\n const removeRenderFields = (fields) => {\n setRenderFormFieldsState((state) =>\n state.filter((field) => !fields.includes(field)),\n );\n };\n\n const [isFormRendered, setIsFormRendered] = useState(false);\n const submitIsFormRendered = () => setIsFormRendered(true);\n const resetIsFormRendered = () => setIsFormRendered(false);\n\n const onEnterDown = async (e) => {\n if (!goToNextFieldOnEnterPressed) return false;\n\n const focusable = document.querySelectorAll(\n 'a, button, input, [tabindex]:not([tabindex=\"-1\"])',\n );\n const currentIndex = await new Promise((resolve) => {\n focusable.forEach((node, i) => {\n if (node === e.target) resolve(i);\n });\n });\n\n if (!currentIndex) return false;\n\n const nextIndex = currentIndex + 1;\n\n if (nextIndex >= focusable.length) return false;\n\n const nextItem = focusable[nextIndex];\n\n nextItem.focus();\n };\n\n const onKeyDown = (...args) => {\n const event = args.reduce((e, item) => {\n if (item?.nativeEvent instanceof KeyboardEvent) return item;\n return e;\n }, null);\n\n if (!event) return false;\n\n const { keyCode } = event;\n\n switch (keyCode) {\n //OnEnterDown\n case 13:\n onEnterDown(event);\n break;\n\n default:\n break;\n }\n };\n\n //On Type Change\n useEffect(() => {\n resetIsFormRendered();\n }, [FormType]);\n\n //On Render Fields Change\n useEffect(() => {\n if (isFormFieldsAdded) resetIsFormRendered(false);\n\n //Add Form Fields\n if (renderFormFields.length !== 0) {\n setFormFields((fields) => {\n return renderFormFields.reduce((result, key) => {\n const fieldData = getFieldData(key);\n const field = getFormField(key) ? getFormField(key) : fieldData;\n\n if (\n !field?.className ||\n field?.className?.indexOf(getFieldClassName(key, FormType)) === -1\n ) {\n field.className = `${field?.className} ${getFieldClassName(key, FormType)}`;\n }\n\n if (typeof fieldData?.label === \"object\") {\n field.label = fieldData.label[FormType] || fieldData.label.default;\n }\n\n field.ref = createRef();\n field.wrapperRef = createRef();\n\n field.isValueChangedByUser = false;\n\n if (goToNextFieldOnEnterPressed) {\n const onKeyDownProp = field.onKeyDown || (() => {});\n field.onKeyDown = (...args) => {\n onKeyDown(...args);\n onKeyDownProp(...args);\n };\n }\n\n //Is Field Value Changed By USER\n // eslint-disable-next-line no-use-before-define\n addOnFieldRenderedObserver(\n key,\n () => {\n const element = getFormField(key)?.ref?.current?.querySelector(\n field?.focusSelector || \"input\",\n );\n const handler = () =>\n setFormField({ isValueChangedByUser: true }, key);\n\n element?.addEventListener(\"paste\", handler, { once: true });\n element?.addEventListener(\"keypress\", handler, { once: true });\n },\n true,\n );\n\n return updateFormField(result, field, key);\n }, fields);\n });\n }\n }, [renderFormFields]);\n\n const [onFormRenderObservers, setOnFormRenderObservers] = useState([]);\n const addOnFormRenderObserver = (cb, { once = false } = {}) => {\n setOnFormRenderObservers((state) => [\n ...state,\n { cb, once, isWorkedOut: false },\n ]);\n };\n // eslint-disable-next-line no-unused-vars\n const updateOnFormRenderObserver = (key, data) => {\n setOnFormRenderObservers((state) => {\n const copy = [...state];\n copy[key] = { ...state[key], ...data };\n\n return copy;\n });\n };\n const removeOnFormRenderObserver = (key) => {\n setOnFormRenderObservers((state) =>\n state.slice().filter((v, i) => i !== key),\n );\n };\n const onFormRenderWorker = () => {\n // eslint-disable-next-line default-param-last\n onFormRenderObservers.map(\n ({ once, isWorkedOut, cb = () => {} } = {}, key) => {\n if (once && isWorkedOut) return null;\n\n cb(form);\n if (once) removeOnFormRenderObserver(key);\n else updateOnFormRenderObserver(key, { isWorkedOut: true });\n return null;\n },\n );\n };\n\n //On Form Rendered\n useEffect(() => {\n if (!isFormRendered && onFormRenderObservers.length) {\n const formFieldsKeys = getFormFieldsKeys(form);\n const isAllFieldsRendered = renderFormFields.reduce((result, key) => {\n if (!formFieldsKeys.includes(key)) result = false;\n\n return result;\n }, true);\n\n if (isAllFieldsRendered) {\n submitIsFormRendered(true);\n onFormRenderWorker();\n }\n }\n }, [form, renderFormFields, onFormRenderObservers]);\n //--- Render Fields Controller ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//\n const hightliteErrorLabels = () => {\n const fields = getFormFieldsAsArray();\n\n const filtered = fields?.reduce((result, field) => {\n if (field?.errorLabelHightlite) {\n // eslint-disable-next-line no-use-before-define\n result.push({\n ...field,\n className: getFieldClassName(field?.key, FormType),\n });\n }\n\n return result;\n }, []);\n\n filtered?.map((field) => {\n const formField = document.querySelector(`.${field?.className}`);\n\n if (!formField) return null;\n\n formField.classList.remove(\"errorLabelHightlite\");\n\n if (field?.error) {\n formField.classList.add(\"errorLabelHightlite\");\n }\n\n return null;\n });\n };\n useEffect(() => {\n hightliteErrorLabels();\n }, [form]);\n //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Fields Focus Controller ---//--- START ---//\n const [isInitFocused, setIsInitFocused] = useState(false);\n const [autoFocusedField, setAutoFocusedField] = useState(null);\n\n const setFirstFieldInitFocused = () => setIsInitFocused(true);\n const resetIsInitFocused = () => setIsInitFocused(false);\n\n const toggleFieldFocus = (\n { key, cb = () => {}, form: argForm, field },\n action = \"focus\",\n ) => {\n if (!key && !field) return null;\n\n if (!argForm) argForm = form;\n\n const formField = field || getFormField(key, argForm);\n\n if (!formField || !formField.ref) {\n return false;\n }\n\n if (\n action === \"focus\" &&\n FocusControllerProps.onlyEmptyFieldAutoFocus &&\n Boolean(formField?.value)\n )\n return null;\n\n setTimeout(() => {\n formField.ref.current\n ?.querySelector(formField?.focusSelector || \"input\")\n ?.[action]();\n cb();\n }, 50);\n };\n\n const setFieldFocus = ({ key, cb = () => {}, form: argForm, field }) =>\n toggleFieldFocus({ key, cb, form: argForm, field }, \"focus\");\n const setFieldBlur = ({ key, cb = () => {}, form: argForm, field }) =>\n toggleFieldFocus({ key, cb, form: argForm, field }, \"blur\");\n\n const setFirstFieldFocus = () => {\n let field = null;\n\n for (let i = 0; i < renderFormFields.length && !field; ++i) {\n const key = renderFormFields[i];\n const tmpField = getFormField(key);\n if (tmpField && !tmpField?.disabled) field = tmpField;\n }\n\n if (!field) return false;\n\n if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(field?.value)) {\n setFirstFieldInitFocused();\n return false;\n }\n\n setAutoFocusedField(field.key);\n\n const callback = () => {\n setFormField({ value: field.value }, field.key);\n setFirstFieldInitFocused();\n };\n\n setTimeout(() => setFieldFocus({ key: field.key, cb: callback, form }), 50);\n };\n\n const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = useState({});\n const addOnFieldFocusCallback = (key, cb) => {\n setOnFieldFocusCallbacks((state) => {\n const stateCopy = { ...state };\n\n if (!state[key]) stateCopy[key] = [];\n\n stateCopy[key].push(cb);\n\n return stateCopy;\n });\n };\n const callOnFieldFocusCallbacks = (key) => {\n if (!Array.isArray(onFieldFocusCallbacks[key])) return null;\n\n onFieldFocusCallbacks[key]?.map((cb) => cb());\n };\n\n const [focusOnRenderFields, setFocusOnRenderFields] = useState([]);\n const addFocusFieldOnRender = (key, cb) => {\n setFocusOnRenderFields((state) => [...state, key]);\n\n if (cb) addOnFieldFocusCallback(key, cb);\n };\n const removeFocusFieldOnRender = (key) => {\n setFocusOnRenderFields((state) => state.filter((field) => field !== key));\n };\n\n useEffect(() => {\n if (\n FocusControllerProps.setAutoFocus &&\n !isInitFocused &&\n !autoFocusedField &&\n isFormRendered\n )\n setFirstFieldFocus();\n\n if (focusOnRenderFields.length) {\n getFormFieldsKeys(form)?.map((key) => {\n if (\n focusOnRenderFields.includes(key) &&\n getFormField(key)?.value?.length === 0\n ) {\n const cb = () => {\n removeFocusFieldOnRender(key);\n callOnFieldFocusCallbacks(key);\n };\n\n setFieldFocus({ key, form, cb });\n }\n return null;\n });\n }\n }, [form, focusOnRenderFields, isInitFocused, isFormRendered]);\n\n useEffect(() => {\n setAutoFocusedField(null);\n }, [isInitFocused]);\n\n useEffect(() => {\n resetIsInitFocused();\n }, [FormType]);\n\n //Remove Focus From Autocomplete field !!! TODO\n // useEffect(() => {\n // if (!autoFocusedField) return null;\n // const field = getFormField(autoFocusedField);\n\n // if (field?.value !== '' && !field?.isValueChangedByUser) {\n // setFieldBlur({key: autoFocusedField, form});\n // }\n // }, [autoFocusedField, form]);\n //--- Fields Focus Controller ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- OnFieldRendered Observer ---//--- START ---//\n const [onFieldRenderedObservers, setOnFieldRenderedObservers] = useState({});\n const [isFieldObserversReset, setIsFieldObserversReset] = useState(false);\n\n const resetOnFieldRenderObserversWorkedOut = () => {\n if (!isFieldObserversReset && renderFormFields.length) {\n renderFormFields.map((key) => {\n setFormField({ isOnRenderObserversWorkedOut: false }, key);\n return key;\n });\n setIsFieldObserversReset(true);\n }\n };\n const addOnFieldRenderedObserver = (key, cb, isOnceCallable = true) => {\n let observerId = null;\n\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) state[key] = {};\n\n observerId = Object.keys(state[key]).length || 0;\n\n state[key][observerId] = {\n f: cb,\n isOnceCallable,\n };\n\n return state;\n });\n\n return observerId;\n };\n const updateOnFieldRenderedObserver = (key, id, data) => {\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key][id] = {\n ...state[key][id],\n ...data,\n };\n\n return state;\n });\n };\n const removeOnFieldRenderedObserver = (key, id) => {\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key] = Object.keys(state)\n .filter((cbId) => cbId !== id)\n .map((cbId) => state[key][cbId]);\n\n return state;\n });\n };\n const onFieldRenderedObserver = (key, data) => {\n if (\n !onFieldRenderedObservers[key] ||\n typeof onFieldRenderedObservers[key] !== \"object\"\n )\n return;\n\n const Observers = onFieldRenderedObservers[key];\n const FilteredObservers = Object.values(Observers).filter(\n (observer) => !observer?.isObserverWorkedOut,\n );\n\n if (FilteredObservers.length === 0) return null;\n\n setFormField({ isOnRenderObserversWorkedOut: true }, key);\n\n FilteredObservers.map(({ f, isOnceCallable }, id) => {\n f(data);\n if (isOnceCallable)\n updateOnFieldRenderedObserver(key, id, { isObserverWorkedOut: true });\n return null;\n });\n };\n const onRenderObserverWorker = () => {\n return getFormFieldsKeys(form)?.map((key) => {\n //OnFieldRendered\n const fieldData = getFormField(key);\n if (!fieldData?.isOnRenderObserversWorkedOut) {\n onFieldRenderedObserver(key, fieldData);\n return { key, isWorkedOut: true };\n }\n\n return { key, isWorkedOut: false };\n });\n };\n\n useEffect(() => {\n resetOnFieldRenderObserversWorkedOut();\n onRenderObserverWorker();\n }, [form]);\n\n useEffect(() => {\n setIsFieldObserversReset(false);\n }, [FormType]);\n //--- OnFieldRendered Observer ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //Detect What Changed || TRY TO DO\n // const compare = async (prev, current) => {\n // if (!prev) return current;\n\n // return new Promise((resolve) => {\n // Object.keys(current).reduce((result, key, i, arr) => {\n // //If PROPERTY is NOT EXISTS BEFORE\n // if ([null, undefined].includes(prev[key])) {\n // result[key] = current[key];\n // }\n // //If PROPERTY is AN OBJECT\n // else if (typeof current[key] === 'object') {\n // //If PROPERTY is EXISTS BEFORE\n // const innerCompare = compare(prev[key], current[key]);\n // // //If SOMETHING CHANGED\n // if (innerCompare?.length) result[key] = innerCompare;\n // }\n // //If PROPERTY is AN SIMPLE VALUE and PROPERTY CHANGED\n // else if (prev[key] !== current[key]) {\n // result[key] = current[key];\n // }\n\n // if (i === arr.length-1) {\n // resolve(result);\n // }\n\n // return result;\n // }, {});\n // });\n // };\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- WindowScrollController ---//--- START ---//\n const scrollToField = ({ key = null, field = null, form: argForm }) => {\n if (!key && !field) return false;\n if (!argForm) argForm = form;\n\n if (!field) field = getFormField(key, argForm);\n\n const wrapperRef = field?.wrapperRef || field?.ref;\n // eslint-disable-next-line no-unsafe-optional-chaining\n const { top: topOffset } = wrapperRef?.current?.getBoundingClientRect();\n const scrollTop =\n Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;\n window.scrollTo({ top: scrollTop });\n };\n\n //--- WindowScrollController ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n const addErrorsToForm = (errors, argForm = form) => {\n if (!argForm) argForm = form;\n\n setFormFields((fields) => {\n return errors.reduce(\n (fields, { message: error, propertyPath: errKey }) => {\n return updateFormField(fields, { error }, errKey);\n },\n fields,\n );\n });\n };\n\n return {\n FormDataDrivers,\n\n //OnChangeObserver\n addOnChangeObserver,\n removeOnChangeObserver,\n onChangeObservers,\n\n //OnChangeHandler\n onFieldChange,\n\n //Form Submit Blocker\n toggleFormSubmitBlock,\n clearFormSubmitBlockers,\n isFormSubmitBlocked: Boolean(formSubmitBlockers.length),\n\n //Property Observers\n // addPropertyObserver,\n\n //Render Fields\n renderFormFields,\n setRenderFormFields,\n addRenderFields,\n removeRenderFields,\n\n getFieldClassName,\n\n //Field Focus Controller\n isInitFocused,\n setFirstFieldInitFocused,\n resetIsInitFocused,\n setFieldFocus,\n setFieldBlur,\n setFirstFieldFocus,\n autoFocusedField,\n\n addFocusFieldOnRender,\n removeFocusFieldOnRender,\n\n //Field Render Controller\n addOnFieldRenderedObserver,\n removeOnFieldRenderedObserver,\n onFieldRenderedObservers,\n\n updateFormField,\n addOnFormRenderObserver,\n submitIsFormRendered,\n resetIsFormRendered,\n renderFields: ({\n form: argForm = form,\n fields: argFields = renderFormFields,\n cols: argCols = 1,\n RenderFieldComponent,\n }) =>\n RenderFields({\n form: argForm,\n fields: argFields,\n cols: argCols,\n RenderFieldComponent,\n onFieldChange,\n FormDataDriver: getFormDataDriver(FormDataDriverName),\n }),\n\n scrollToField,\n\n getFieldData,\n getFormField,\n setFormFields,\n setFormField: (data, key) => setFormField(data, key),\n getFormFieldsAsArray,\n getFormFieldsKeys,\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n addErrorsToForm,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { KEYBOARD_SERVICE_KEYS } from "../Constants/index.constants.js";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
//#region src/Functions/useInputHighlightError.js
|
|
4
|
+
var useInputHighlightError = ({ value, blinkTime, isUseErrorsBlink }) => {
|
|
5
|
+
const DEFAULT_BLINK_TIME = 100;
|
|
6
|
+
const [isToHighlightError, setIsToHighlightError] = useState(false);
|
|
7
|
+
const [isAttemptToChange, setIsAttemptToChange] = useState(false);
|
|
8
|
+
const [prevValue, setPreviousValue] = useState(value);
|
|
9
|
+
function hasHighlightError(e) {
|
|
10
|
+
const changedValue = `${value ?? ""}`;
|
|
11
|
+
const previousValue = `${prevValue ?? ""}`;
|
|
12
|
+
const short = previousValue.length <= changedValue.length ? previousValue : changedValue;
|
|
13
|
+
const long = previousValue.length > changedValue.length ? previousValue : changedValue;
|
|
14
|
+
const infoAboutDifferencesSameness = short.split("").reduce((acc, symbol, idx) => {
|
|
15
|
+
if (acc.countOn && symbol === long[idx]) acc.same.push(symbol);
|
|
16
|
+
else {
|
|
17
|
+
acc.countOn = false;
|
|
18
|
+
acc.differences.push([idx, symbol]);
|
|
19
|
+
}
|
|
20
|
+
return acc;
|
|
21
|
+
}, {
|
|
22
|
+
same: [],
|
|
23
|
+
countOn: true,
|
|
24
|
+
differences: []
|
|
25
|
+
});
|
|
26
|
+
const samePart = infoAboutDifferencesSameness.same.join("");
|
|
27
|
+
const differencesLength = infoAboutDifferencesSameness.differences.length;
|
|
28
|
+
const currentSet = changedValue?.replace(samePart, "");
|
|
29
|
+
if (!KEYBOARD_SERVICE_KEYS.includes(e.key) && changedValue === previousValue) setIsAttemptToChange(!(!differencesLength && e.key === currentSet));
|
|
30
|
+
}
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (isUseErrorsBlink && isAttemptToChange) {
|
|
33
|
+
setIsAttemptToChange(null);
|
|
34
|
+
setIsToHighlightError(true);
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
setIsToHighlightError(false);
|
|
37
|
+
}, blinkTime || DEFAULT_BLINK_TIME);
|
|
38
|
+
}
|
|
39
|
+
}, [isAttemptToChange]);
|
|
40
|
+
return {
|
|
41
|
+
isToHighlightError,
|
|
42
|
+
setPreviousValue,
|
|
43
|
+
setIsToHighlightError,
|
|
44
|
+
hasHighlightError
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { useInputHighlightError as default, useInputHighlightError };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=useInputHighlightError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInputHighlightError.js","names":[],"sources":["../../../src/Functions/useInputHighlightError.js"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { KEYBOARD_SERVICE_KEYS } from \"../Constants/index.constants\";\n\nexport const useInputHighlightError = ({\n value,\n blinkTime,\n isUseErrorsBlink,\n}) => {\n const DEFAULT_BLINK_TIME = 100;\n const [isToHighlightError, setIsToHighlightError] = useState(false);\n const [isAttemptToChange, setIsAttemptToChange] = useState(false);\n const [prevValue, setPreviousValue] = useState(value);\n\n function hasHighlightError(e) {\n const changedValue = `${value ?? \"\"}`;\n const previousValue = `${prevValue ?? \"\"}`;\n\n const short =\n previousValue.length <= changedValue.length\n ? previousValue\n : changedValue;\n const long =\n previousValue.length > changedValue.length ? previousValue : changedValue;\n\n const infoAboutDifferencesSameness = short.split(\"\").reduce(\n (acc, symbol, idx) => {\n if (acc.countOn && symbol === long[idx]) acc.same.push(symbol);\n else {\n acc.countOn = false;\n acc.differences.push([idx, symbol]);\n }\n return acc;\n },\n { same: [], countOn: true, differences: [] },\n );\n\n const samePart = infoAboutDifferencesSameness.same.join(\"\");\n const differencesLength = infoAboutDifferencesSameness.differences.length;\n const currentSet = changedValue?.replace(samePart, \"\");\n\n if (\n !KEYBOARD_SERVICE_KEYS.includes(e.key) &&\n changedValue === previousValue\n )\n setIsAttemptToChange(!(!differencesLength && e.key === currentSet));\n }\n\n useEffect(() => {\n if (isUseErrorsBlink && isAttemptToChange) {\n setIsAttemptToChange(null);\n setIsToHighlightError(true);\n setTimeout(() => {\n setIsToHighlightError(false);\n }, blinkTime || DEFAULT_BLINK_TIME);\n }\n }, [isAttemptToChange]);\n\n return {\n isToHighlightError,\n setPreviousValue,\n setIsToHighlightError,\n hasHighlightError,\n };\n};\n\nexport default useInputHighlightError;\n"],"mappings":";;;AAIO,IAAM,0BAA0B,EACrC,OACA,WACA,uBACI;CACJ,MAAM,qBAAqB;CAC3B,MAAM,CAAC,oBAAoB,yBAAyB,SAAS,KAAK;CAClE,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,KAAK;CAChE,MAAM,CAAC,WAAW,oBAAoB,SAAS,KAAK;CAEpD,SAAS,kBAAkB,GAAG;EAC5B,MAAM,eAAe,GAAG,SAAS;EACjC,MAAM,gBAAgB,GAAG,aAAa;EAEtC,MAAM,QACJ,cAAc,UAAU,aAAa,SACjC,gBACA;EACN,MAAM,OACJ,cAAc,SAAS,aAAa,SAAS,gBAAgB;EAE/D,MAAM,+BAA+B,MAAM,MAAM,EAAE,CAAA,CAAE,QAClD,KAAK,QAAQ,QAAQ;GACpB,IAAI,IAAI,WAAW,WAAW,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QACxD;IACH,IAAI,UAAU;IACd,IAAI,YAAY,KAAK,CAAC,KAAK,MAAM,CAAC;GACpC;GACA,OAAO;EACT,GACA;GAAE,MAAM,CAAC;GAAG,SAAS;GAAM,aAAa,CAAC;EAAE,CAC7C;EAEA,MAAM,WAAW,6BAA6B,KAAK,KAAK,EAAE;EAC1D,MAAM,oBAAoB,6BAA6B,YAAY;EACnE,MAAM,aAAa,cAAc,QAAQ,UAAU,EAAE;EAErD,IACE,CAAC,sBAAsB,SAAS,EAAE,GAAG,KACrC,iBAAiB,eAEjB,qBAAqB,EAAE,CAAC,qBAAqB,EAAE,QAAQ,WAAW;CACtE;CAEA,gBAAgB;EACd,IAAI,oBAAoB,mBAAmB;GACzC,qBAAqB,IAAI;GACzB,sBAAsB,IAAI;GAC1B,iBAAiB;IACf,sBAAsB,KAAK;GAC7B,GAAG,aAAa,kBAAkB;EACpC;CACF,GAAG,CAAC,iBAAiB,CAAC;CAEtB,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/Functions/useIsMobile/index.ts"],"sourcesContent":["import useIsMobile from './useIsMobile';\n\nexport default useIsMobile;\n"],"mappings":";;AAEA,IAAA,sBAAe"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
//#region src/Functions/useIsMobile/useIsMobile.ts
|
|
3
|
+
/**
|
|
4
|
+
* Hook to detect if the current device is a mobile device
|
|
5
|
+
* @param props - Configuration options
|
|
6
|
+
* @param props.isWithoutWidthCheck - If true, only checks user agent without width verification
|
|
7
|
+
* @returns Object containing isMobile flag
|
|
8
|
+
*/
|
|
9
|
+
function useIsMobile({ isWithoutWidthCheck = false } = {}) {
|
|
10
|
+
const isIPad = () => {
|
|
11
|
+
const ua = navigator.userAgent || navigator.vendor || window.opera;
|
|
12
|
+
const isMac = /Macintosh/.test(ua);
|
|
13
|
+
const hasTouch = navigator.maxTouchPoints && navigator.maxTouchPoints > 2;
|
|
14
|
+
return isMac && !!hasTouch;
|
|
15
|
+
};
|
|
16
|
+
const getIsMobile = () => {
|
|
17
|
+
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || isIPad();
|
|
18
|
+
};
|
|
19
|
+
const [isMobile, setIsMobile] = useState(getIsMobile());
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (getIsMobile()) setIsMobile(true);
|
|
22
|
+
}, [navigator.userAgent]);
|
|
23
|
+
return {
|
|
24
|
+
isMobile: isMobile && (isWithoutWidthCheck || window.screen.width <= 768 || window.screen.width <= 1024 && window.matchMedia("(orientation: landscape)").matches),
|
|
25
|
+
isMobilePortrait: isMobile && window.screen.width <= 768 && window.matchMedia("(orientation: portait)").matches,
|
|
26
|
+
isMobileLandscape: isMobile && window.screen.width <= 1024 && window.matchMedia("(orientation: landscape)").matches
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { useIsMobile as default };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=useIsMobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsMobile.js","names":[],"sources":["../../../../src/Functions/useIsMobile/useIsMobile.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\ninterface UseIsMobileProps {\n isWithoutWidthCheck?: boolean;\n}\n\ninterface UseIsMobileProps {\n isWithoutWidthCheck?: boolean;\n}\n/**\n * Hook to detect if the current device is a mobile device\n * @param props - Configuration options\n * @param props.isWithoutWidthCheck - If true, only checks user agent without width verification\n * @returns Object containing isMobile flag\n */\nfunction useIsMobile({ isWithoutWidthCheck = false }: UseIsMobileProps = {}): { isMobile: boolean, isMobilePortrait: boolean; isMobileLandscape: boolean } {\n const isIPad = (): boolean => {\n const ua = navigator.userAgent || navigator.vendor || (window as any).opera;\n\n // iPadOS 13+ выдает себя как Mac, но с touch-экраном\n const isMac = /Macintosh/.test(ua);\n const hasTouch = navigator.maxTouchPoints && navigator.maxTouchPoints > 2;\n\n return isMac && !!hasTouch;\n };\n\n const getIsMobile = (): boolean => {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || isIPad();\n };\n\n const [isMobile, setIsMobile] = useState<boolean>(getIsMobile());\n\n useEffect(() => {\n if (getIsMobile()) {\n setIsMobile(true);\n }\n }, [navigator.userAgent]);\n\n return {\n isMobile: isMobile && (isWithoutWidthCheck || window.screen.width <= 768 || (window.screen.width <= 1024 && window.matchMedia('(orientation: landscape)').matches)),\n isMobilePortrait: isMobile && window.screen.width <= 768 && window.matchMedia('(orientation: portait)').matches,\n isMobileLandscape: isMobile && window.screen.width <= 1024 && window.matchMedia('(orientation: landscape)').matches,\n };\n}\n\nexport default useIsMobile;\n"],"mappings":";;;;;;;;AAeA,SAAS,YAAY,EAAE,sBAAsB,UAA4B,CAAC,GAAiF;CACzJ,MAAM,eAAwB;EAC5B,MAAM,KAAK,UAAU,aAAa,UAAU,UAAW,OAAe;EAGtE,MAAM,QAAQ,YAAY,KAAK,EAAE;EACjC,MAAM,WAAW,UAAU,kBAAkB,UAAU,iBAAiB;EAExE,OAAO,SAAS,CAAC,CAAC;CACpB;CAEA,MAAM,oBAA6B;EACjC,OAAO,iEAAiE,KAAK,UAAU,SAAS,KAAK,OAAO;CAC9G;CAEA,MAAM,CAAC,UAAU,eAAe,SAAkB,YAAY,CAAC;CAE/D,gBAAgB;EACd,IAAI,YAAY,GACd,YAAY,IAAI;CAEpB,GAAG,CAAC,UAAU,SAAS,CAAC;CAExB,OAAO;EACL,UAAU,aAAa,uBAAuB,OAAO,OAAO,SAAS,OAAQ,OAAO,OAAO,SAAS,QAAQ,OAAO,WAAW,0BAA0B,CAAC,CAAC;EAC1J,kBAAkB,YAAY,OAAO,OAAO,SAAS,OAAO,OAAO,WAAW,wBAAwB,CAAC,CAAC;EACxG,mBAAmB,YAAY,OAAO,OAAO,SAAS,QAAQ,OAAO,WAAW,0BAA0B,CAAC,CAAC;CAC9G;AACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import useKeyPress from "./useKeyPress.js";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
//#region src/Functions/useKeyPress/useHandleKeyPress.ts
|
|
4
|
+
/**
|
|
5
|
+
* A hook that handles Enter and Escape key press events
|
|
6
|
+
*
|
|
7
|
+
* @param props - Configuration object for key press handling
|
|
8
|
+
* @param props.escCallback - Function to be called when Escape key is pressed
|
|
9
|
+
* @param props.enterCallback - Function to be called when Enter key is pressed
|
|
10
|
+
* @param props.withClamping - Whether to allow key repeat events (default: true)
|
|
11
|
+
* @param props.withEventManagementStructure - Structure for event management (e.g. Modal)
|
|
12
|
+
* @param props.suspendProcessing - Optional map of key -> predicate to suspend processing for specific keys
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* function Component() {
|
|
17
|
+
* useHandleKeyPress({
|
|
18
|
+
* escCallback: () => console.log('Esc pressed'),
|
|
19
|
+
* enterCallback: () => console.log('Enter pressed'),
|
|
20
|
+
* });
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
function useHandleKeyPress({ escCallback, enterCallback, withClamping = true, withEventManagementStructure, suspendProcessing = null }) {
|
|
25
|
+
const { isWithSubmitAndCloseManagement } = withEventManagementStructure || {};
|
|
26
|
+
const isPressEnter = useKeyPress("Enter", withClamping, isWithSubmitAndCloseManagement, suspendProcessing);
|
|
27
|
+
const isPressEscape = useKeyPress("Escape", withClamping, isWithSubmitAndCloseManagement, suspendProcessing);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (!isWithSubmitAndCloseManagement && isPressEscape && typeof escCallback === "function") escCallback();
|
|
30
|
+
}, [isPressEscape, escCallback]);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!isWithSubmitAndCloseManagement && isPressEnter && typeof enterCallback === "function") enterCallback();
|
|
33
|
+
}, [isPressEnter, enterCallback]);
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { useHandleKeyPress as default };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=useHandleKeyPress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHandleKeyPress.js","names":[],"sources":["../../../../src/Functions/useKeyPress/useHandleKeyPress.ts"],"sourcesContent":["import type TWithEventManagementAsObj from '../../types/declaration/TWithEventManagementAsObj';\nimport type { ISuspendProcessing } from './useKeyPress';\n\nimport { useEffect } from 'react';\nimport useKeyPress from './useKeyPress';\n\ninterface UseHandleKeyPressProps {\n /** Callback function to be called when Escape key is pressed */\n escCallback?: () => void;\n /** Callback function to be called when Enter key is pressed */\n enterCallback?: () => void;\n /** Whether to allow key repeat events */\n withClamping?: boolean;\n\n withEventManagementStructure?: TWithEventManagementAsObj<'Modal'>;\n\n /** Array of Keys (ev.key) to exclude from processing */\n suspendProcessing?: null | ISuspendProcessing;\n}\n\n/**\n * A hook that handles Enter and Escape key press events\n *\n * @param props - Configuration object for key press handling\n * @param props.escCallback - Function to be called when Escape key is pressed\n * @param props.enterCallback - Function to be called when Enter key is pressed\n * @param props.withClamping - Whether to allow key repeat events (default: true)\n * @param props.withEventManagementStructure - Structure for event management (e.g. Modal)\n * @param props.suspendProcessing - Optional map of key -> predicate to suspend processing for specific keys\n *\n * @example\n * ```tsx\n * function Component() {\n * useHandleKeyPress({\n * escCallback: () => console.log('Esc pressed'),\n * enterCallback: () => console.log('Enter pressed'),\n * });\n * }\n * ```\n */\nfunction useHandleKeyPress({\n escCallback,\n enterCallback,\n withClamping = true,\n withEventManagementStructure,\n suspendProcessing = null,\n}: UseHandleKeyPressProps): void {\n const { isWithSubmitAndCloseManagement } = withEventManagementStructure || {};\n\n const isPressEnter = useKeyPress('Enter', withClamping, isWithSubmitAndCloseManagement, suspendProcessing);\n const isPressEscape = useKeyPress('Escape', withClamping, isWithSubmitAndCloseManagement, suspendProcessing);\n\n useEffect(() => {\n if (!isWithSubmitAndCloseManagement && isPressEscape && typeof escCallback === 'function') {\n escCallback();\n }\n }, [isPressEscape, escCallback]);\n\n useEffect(() => {\n if (!isWithSubmitAndCloseManagement && isPressEnter && typeof enterCallback === 'function') {\n enterCallback();\n }\n }, [isPressEnter, enterCallback])\n}\n\nexport default useHandleKeyPress;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwCA,SAAS,kBAAkB,EACzB,aACA,eACA,eAAe,MACf,8BACA,oBAAoB,QACW;CAC/B,MAAM,EAAE,mCAAmC,gCAAgC,CAAC;CAE5E,MAAM,eAAe,YAAY,SAAS,cAAc,gCAAgC,iBAAiB;CACzG,MAAM,gBAAgB,YAAY,UAAU,cAAc,gCAAgC,iBAAiB;CAE3G,gBAAgB;EACd,IAAI,CAAC,kCAAkC,iBAAiB,OAAO,gBAAgB,YAC7E,YAAY;CAEhB,GAAG,CAAC,eAAe,WAAW,CAAC;CAE/B,gBAAgB;EACd,IAAI,CAAC,kCAAkC,gBAAgB,OAAO,kBAAkB,YAC9E,cAAc;CAElB,GAAG,CAAC,cAAc,aAAa,CAAC;AAClC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { getIsOnlyAnObject } from "../utils.js";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
//#region src/Functions/useKeyPress/useKeyPress.ts
|
|
4
|
+
function isISuspendProcessing(x) {
|
|
5
|
+
return getIsOnlyAnObject(x) && Object.values(x).every((v) => typeof v === "function");
|
|
6
|
+
}
|
|
7
|
+
function useKeyPress(targetKey, clamping = true, isForbidden, suspendProcessing) {
|
|
8
|
+
const [keyPressed, setKeyPressed] = useState(false);
|
|
9
|
+
const safelySuspendProcessing = isISuspendProcessing(suspendProcessing) ? suspendProcessing : {};
|
|
10
|
+
const downHandler = useCallback((event) => {
|
|
11
|
+
const { key, repeat, altKey, ctrlKey, shiftKey, metaKey } = event;
|
|
12
|
+
if (key === targetKey && !altKey && !ctrlKey && !shiftKey && !metaKey && !safelySuspendProcessing[key]?.(event)) {
|
|
13
|
+
if (!clamping && repeat) return;
|
|
14
|
+
setKeyPressed(true);
|
|
15
|
+
}
|
|
16
|
+
}, [
|
|
17
|
+
clamping,
|
|
18
|
+
targetKey,
|
|
19
|
+
suspendProcessing
|
|
20
|
+
]);
|
|
21
|
+
const upHandler = useCallback((event) => {
|
|
22
|
+
const { key, repeat, altKey, ctrlKey, shiftKey, metaKey } = event;
|
|
23
|
+
if (key === targetKey && !altKey && !ctrlKey && !shiftKey && !metaKey && !safelySuspendProcessing[key]?.(event)) {
|
|
24
|
+
if (!clamping && repeat) return;
|
|
25
|
+
setKeyPressed(false);
|
|
26
|
+
}
|
|
27
|
+
}, [
|
|
28
|
+
clamping,
|
|
29
|
+
targetKey,
|
|
30
|
+
suspendProcessing
|
|
31
|
+
]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
const handleDown = (event) => downHandler(event);
|
|
34
|
+
const handleUp = (event) => upHandler(event);
|
|
35
|
+
if (!isForbidden) {
|
|
36
|
+
window.addEventListener("keydown", handleDown);
|
|
37
|
+
window.addEventListener("keyup", handleUp);
|
|
38
|
+
}
|
|
39
|
+
return () => {
|
|
40
|
+
window.removeEventListener("keydown", handleDown);
|
|
41
|
+
window.removeEventListener("keyup", handleUp);
|
|
42
|
+
};
|
|
43
|
+
}, [
|
|
44
|
+
downHandler,
|
|
45
|
+
upHandler,
|
|
46
|
+
isForbidden,
|
|
47
|
+
suspendProcessing
|
|
48
|
+
]);
|
|
49
|
+
return keyPressed;
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { useKeyPress as default, isISuspendProcessing };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=useKeyPress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyPress.js","names":[],"sources":["../../../../src/Functions/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { getIsOnlyAnObject } from '../utils';\n\n/**\n * A hook that detects when a specific key is pressed\n * @param targetKey - The key to listen for\n * @param clamping - Whether to allow key repeat events\n * @returns boolean indicating if the target key is currently pressed\n */\n\nexport interface ISuspendProcessing {\n [key: string]: (event: globalThis.KeyboardEvent) => boolean; // Вернет true, если НУЖНО приостановить обработку\n}\n\nexport function isISuspendProcessing(x: unknown): x is ISuspendProcessing {\n return getIsOnlyAnObject(x) && Object.values(x as Record<string, unknown>).every(v => typeof v === 'function');\n}\n\nfunction useKeyPress(\n targetKey: string,\n clamping: boolean = true,\n isForbidden?: boolean,\n suspendProcessing?: null | ISuspendProcessing,\n): boolean {\n const [keyPressed, setKeyPressed] = useState<boolean>(false);\n const safelySuspendProcessing = (isISuspendProcessing(suspendProcessing) ? suspendProcessing : {}) as ISuspendProcessing;\n\n const downHandler = useCallback(\n (event: globalThis.KeyboardEvent): void => {\n const { key, repeat, altKey, ctrlKey, shiftKey, metaKey } = event;\n const isPressingWithoutAuxiliaryKeys = !altKey && !ctrlKey && !shiftKey && !metaKey;\n\n if (key === targetKey && isPressingWithoutAuxiliaryKeys && !(safelySuspendProcessing[key]?.(event))) {\n if (!clamping && repeat) return;\n setKeyPressed(true);\n }\n },\n // ? Намерянно в зависимостях используем именно входной suspendProcessing,\n // ? хоть в коде используем \"безопасный\"\n [clamping, targetKey, suspendProcessing],\n );\n\n const upHandler = useCallback(\n (event: globalThis.KeyboardEvent): void => {\n const { key, repeat, altKey, ctrlKey, shiftKey, metaKey } = event;\n const isPressingWithoutAuxiliaryKeys = !altKey && !ctrlKey && !shiftKey && !metaKey;\n\n if (key === targetKey && isPressingWithoutAuxiliaryKeys && !(safelySuspendProcessing[key]?.(event))) {\n if (!clamping && repeat) return;\n setKeyPressed(false);\n }\n },\n // ? Намерянно в зависимостях используем именно входной suspendProcessing,\n // ? хоть в коде используем \"безопасный\"\n [clamping, targetKey, suspendProcessing],\n );\n\n useEffect(\n () => {\n const handleDown = (event: globalThis.KeyboardEvent): void => downHandler(event);\n const handleUp = (event: globalThis.KeyboardEvent): void => upHandler(event);\n\n if (!isForbidden) {\n window.addEventListener('keydown', handleDown);\n window.addEventListener('keyup', handleUp);\n }\n\n return () => {\n // ? Намерянно НЕ оборачиваю if-кой:\n // ? при попытке снять если не было установлено ошибки не будет,\n // ? но при этом корректно отработет переход из isForbidden: false в isForbidden: true.\n window.removeEventListener('keydown', handleDown);\n window.removeEventListener('keyup', handleUp);\n };\n },\n // ? Намерянно в зависимостях используем именно входной suspendProcessing,\n // ? хоть в коде используем \"безопасный\"\n [downHandler, upHandler, isForbidden, suspendProcessing],\n );\n\n return keyPressed;\n}\n\nexport default useKeyPress;\n"],"mappings":";;;AAcA,SAAgB,qBAAqB,GAAqC;CACxE,OAAO,kBAAkB,CAAC,KAAK,OAAO,OAAO,CAA4B,CAAC,CAAC,OAAM,MAAK,OAAO,MAAM,UAAU;AAC/G;AAEA,SAAS,YACP,WACA,WAAoB,MACpB,aACA,mBACS;CACT,MAAM,CAAC,YAAY,iBAAiB,SAAkB,KAAK;CAC3D,MAAM,0BAA2B,qBAAqB,iBAAiB,IAAI,oBAAoB,CAAC;CAEhG,MAAM,cAAc,aACjB,UAA0C;EACzC,MAAM,EAAE,KAAK,QAAQ,QAAQ,SAAS,UAAU,YAAY;EAG5D,IAAI,QAAQ,aAF2B,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,WAEjB,CAAE,wBAAwB,IAAI,GAAG,KAAK,GAAI;GACnG,IAAI,CAAC,YAAY,QAAQ;GACzB,cAAc,IAAI;EACpB;CACF,GAGA;EAAC;EAAU;EAAW;CAAiB,CACzC;CAEA,MAAM,YAAY,aACf,UAA0C;EACzC,MAAM,EAAE,KAAK,QAAQ,QAAQ,SAAS,UAAU,YAAY;EAG5D,IAAI,QAAQ,aAF2B,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,WAEjB,CAAE,wBAAwB,IAAI,GAAG,KAAK,GAAI;GACnG,IAAI,CAAC,YAAY,QAAQ;GACzB,cAAc,KAAK;EACrB;CACF,GAGA;EAAC;EAAU;EAAW;CAAiB,CACzC;CAEA,gBACQ;EACJ,MAAM,cAAc,UAA0C,YAAY,KAAK;EAC/E,MAAM,YAAY,UAA0C,UAAU,KAAK;EAE3E,IAAI,CAAC,aAAa;GAChB,OAAO,iBAAiB,WAAW,UAAU;GAC7C,OAAO,iBAAiB,SAAS,QAAQ;EAC3C;EAEA,aAAa;GAIX,OAAO,oBAAoB,WAAW,UAAU;GAChD,OAAO,oBAAoB,SAAS,QAAQ;EAC9C;CACF,GAGA;EAAC;EAAa;EAAW;EAAa;CAAiB,CACzD;CAEA,OAAO;AACT"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
//#region src/Functions/useLocalStorage.js
|
|
3
|
+
var useLocalStorage = (key, initialValue) => {
|
|
4
|
+
const [storedValue, setStoredValue] = useState(() => {
|
|
5
|
+
if (typeof window === "undefined") return initialValue;
|
|
6
|
+
try {
|
|
7
|
+
const item = window.localStorage.getItem(key);
|
|
8
|
+
return item ? JSON.parse(item) : initialValue;
|
|
9
|
+
} catch (error) {
|
|
10
|
+
console.log(error);
|
|
11
|
+
return initialValue;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
const setValue = (value) => {
|
|
15
|
+
try {
|
|
16
|
+
const valueToStore = value instanceof Function ? value(storedValue) : value;
|
|
17
|
+
setStoredValue(valueToStore);
|
|
18
|
+
if (typeof window !== "undefined") window.localStorage.setItem(key, JSON.stringify(valueToStore));
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.log(error);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
return [storedValue, setValue];
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
26
|
+
export { useLocalStorage as default };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=useLocalStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLocalStorage.js","names":[],"sources":["../../../src/Functions/useLocalStorage.js"],"sourcesContent":["import { useState } from \"react\";\n\nconst useLocalStorage = (key, initialValue) => {\n const [storedValue, setStoredValue] = useState(() => {\n if (typeof window === \"undefined\") {\n return initialValue;\n }\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n return initialValue;\n }\n });\n\n const setValue = (value) => {\n try {\n const valueToStore =\n value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n }\n };\n\n return [storedValue, setValue];\n};\nexport default useLocalStorage;\n"],"mappings":";;AAEA,IAAM,mBAAmB,KAAK,iBAAiB;CAC7C,MAAM,CAAC,aAAa,kBAAkB,eAAe;EACnD,IAAI,OAAO,WAAW,aACpB,OAAO;EAET,IAAI;GACF,MAAM,OAAO,OAAO,aAAa,QAAQ,GAAG;GAC5C,OAAO,OAAO,KAAK,MAAM,IAAI,IAAI;EACnC,SAAS,OAAO;GAEd,QAAQ,IAAI,KAAK;GACjB,OAAO;EACT;CACF,CAAC;CAED,MAAM,YAAY,UAAU;EAC1B,IAAI;GACF,MAAM,eACJ,iBAAiB,WAAW,MAAM,WAAW,IAAI;GACnD,eAAe,YAAY;GAC3B,IAAI,OAAO,WAAW,aACpB,OAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,YAAY,CAAC;EAEjE,SAAS,OAAO;GAEd,QAAQ,IAAI,KAAK;EACnB;CACF;CAEA,OAAO,CAAC,aAAa,QAAQ;AAC/B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
//#region src/Functions/useLocationParams.js
|
|
3
|
+
function useLocationParams() {
|
|
4
|
+
const [params, setParams] = useState({});
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
setParams((state) => {
|
|
7
|
+
const arr = window.location.search?.replace("?", "").split("&");
|
|
8
|
+
return {
|
|
9
|
+
...state,
|
|
10
|
+
...arr.reduce((obj, item) => {
|
|
11
|
+
const keyVal = item.split("=");
|
|
12
|
+
const key = keyVal[0];
|
|
13
|
+
const value = decodeURIComponent(keyVal[1]);
|
|
14
|
+
return {
|
|
15
|
+
...obj,
|
|
16
|
+
[key]: value
|
|
17
|
+
};
|
|
18
|
+
}, {})
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}, [window.location.search]);
|
|
22
|
+
return params;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { useLocationParams as default };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=useLocationParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLocationParams.js","names":[],"sources":["../../../src/Functions/useLocationParams.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport default function useLocationParams() {\n const [params, setParams] = useState({});\n\n useEffect(() => {\n setParams((state) => {\n const arr = window.location.search?.replace(\"?\", \"\").split(\"&\");\n\n return {\n ...state,\n ...arr.reduce((obj, item) => {\n const keyVal = item.split(\"=\");\n const key = keyVal[0];\n const value = decodeURIComponent(keyVal[1]);\n\n return {\n ...obj,\n [key]: value,\n };\n }, {}),\n };\n });\n }, [window.location.search]);\n\n return params;\n}\n"],"mappings":";;AAEA,SAAwB,oBAAoB;CAC1C,MAAM,CAAC,QAAQ,aAAa,SAAS,CAAC,CAAC;CAEvC,gBAAgB;EACd,WAAW,UAAU;GACnB,MAAM,MAAM,OAAO,SAAS,QAAQ,QAAQ,KAAK,EAAE,CAAA,CAAE,MAAM,GAAG;GAE9D,OAAO;IACL,GAAG;IACH,GAAG,IAAI,QAAQ,KAAK,SAAS;KAC3B,MAAM,SAAS,KAAK,MAAM,GAAG;KAC7B,MAAM,MAAM,OAAO;KACnB,MAAM,QAAQ,mBAAmB,OAAO,EAAE;KAE1C,OAAO;MACL,GAAG;OACF,MAAM;KACT;IACF,GAAG,CAAC,CAAC;GACP;EACF,CAAC;CACH,GAAG,CAAC,OAAO,SAAS,MAAM,CAAC;CAE3B,OAAO;AACT"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
//#region src/Functions/useMediaQuery.js
|
|
3
|
+
function subscribe(callback) {
|
|
4
|
+
const observer = new ResizeObserver(() => callback());
|
|
5
|
+
observer.observe(document.documentElement);
|
|
6
|
+
return () => observer.disconnect();
|
|
7
|
+
}
|
|
8
|
+
var useMediaQuery = (query) => {
|
|
9
|
+
return useSyncExternalStore(subscribe, () => window.matchMedia(query).matches, () => false);
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useMediaQuery as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=useMediaQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaQuery.js","names":[],"sources":["../../../src/Functions/useMediaQuery.js"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\n\nfunction subscribe(callback) {\n const observer = new ResizeObserver(() => callback());\n observer.observe(document.documentElement);\n return () => observer.disconnect();\n}\n\nconst useMediaQuery = (query) => {\n return useSyncExternalStore(\n subscribe,\n () => window.matchMedia(query).matches,\n () => false,\n );\n};\n\nexport default useMediaQuery;\n"],"mappings":";;AAEA,SAAS,UAAU,UAAU;CAC3B,MAAM,WAAW,IAAI,qBAAqB,SAAS,CAAC;CACpD,SAAS,QAAQ,SAAS,eAAe;CACzC,aAAa,SAAS,WAAW;AACnC;AAEA,IAAM,iBAAiB,UAAU;CAC/B,OAAO,qBACL,iBACM,OAAO,WAAW,KAAK,CAAA,CAAE,eACzB,KACR;AACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
//#region src/Functions/useMetaInfo.js
|
|
3
|
+
var useMetaInfo = () => {
|
|
4
|
+
const [browser, setBrowser] = useState("Other");
|
|
5
|
+
const [device, setDevice] = useState("desktop");
|
|
6
|
+
const [isiOS, setIsiOS] = useState(false);
|
|
7
|
+
const [chromeVersion, setChromeVersion] = useState(null);
|
|
8
|
+
const [iOSVersion, setiOSVersion] = useState(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const userAgent = navigator.userAgent;
|
|
11
|
+
if (userAgent.indexOf("Chrome") !== -1) {
|
|
12
|
+
setBrowser("Chrome");
|
|
13
|
+
const version = userAgent.match(/Chrom(e|ium)\/([0-9\.]+)/)[2];
|
|
14
|
+
setChromeVersion(version);
|
|
15
|
+
} else if (userAgent.indexOf("Safari") !== -1) setBrowser("Safari");
|
|
16
|
+
const iOSV = ((userAgent.match(/(CPU|iPhone).*OS (\d+_?\d*)|CPU like Mac OS X/i) || [])[2] || "0").replace("_", ".");
|
|
17
|
+
const iOSVersion2 = parseFloat(iOSV);
|
|
18
|
+
setIsiOS(!isNaN(iOSVersion2));
|
|
19
|
+
if (!isNaN(iOSVersion2)) setiOSVersion(iOSV);
|
|
20
|
+
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) setDevice("mobile");
|
|
21
|
+
}, []);
|
|
22
|
+
return {
|
|
23
|
+
browser,
|
|
24
|
+
device,
|
|
25
|
+
isiOS,
|
|
26
|
+
chromeVersion,
|
|
27
|
+
iOSVersion
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { useMetaInfo as default, useMetaInfo };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=useMetaInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMetaInfo.js","names":["iOSVersion"],"sources":["../../../src/Functions/useMetaInfo.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport const useMetaInfo = () => {\n const [browser, setBrowser] = useState(\"Other\");\n const [device, setDevice] = useState(\"desktop\");\n const [isiOS, setIsiOS] = useState(false);\n const [chromeVersion, setChromeVersion] = useState(null);\n const [iOSVersion, setiOSVersion] = useState(null);\n\n useEffect(() => {\n const userAgent = navigator.userAgent;\n\n if (userAgent.indexOf(\"Chrome\") !== -1) {\n setBrowser(\"Chrome\");\n\n // Извлечение версии Chrome\n const version = userAgent.match(/Chrom(e|ium)\\/([0-9\\.]+)/)[2];\n setChromeVersion(version);\n } else if (userAgent.indexOf(\"Safari\") !== -1) setBrowser(\"Safari\");\n\n const iOSV = (\n (userAgent.match(/(CPU|iPhone).*OS (\\d+_?\\d*)|CPU like Mac OS X/i) ||\n [])[2] || \"0\"\n ).replace(\"_\", \".\");\n const iOSVersion = parseFloat(iOSV);\n\n setIsiOS(!isNaN(iOSVersion));\n if (!isNaN(iOSVersion)) {\n setiOSVersion(iOSV); // Записываем версию iOS\n }\n\n if (\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n userAgent,\n )\n )\n setDevice(\"mobile\");\n }, []);\n\n return { browser, device, isiOS, chromeVersion, iOSVersion }; // Возврат версий Chrome и iOS\n};\n\nexport default useMetaInfo;\n"],"mappings":";;AAEO,IAAM,oBAAoB;CAC/B,MAAM,CAAC,SAAS,cAAc,SAAS,OAAO;CAC9C,MAAM,CAAC,QAAQ,aAAa,SAAS,SAAS;CAC9C,MAAM,CAAC,OAAO,YAAY,SAAS,KAAK;CACxC,MAAM,CAAC,eAAe,oBAAoB,SAAS,IAAI;CACvD,MAAM,CAAC,YAAY,iBAAiB,SAAS,IAAI;CAEjD,gBAAgB;EACd,MAAM,YAAY,UAAU;EAE5B,IAAI,UAAU,QAAQ,QAAQ,MAAM,IAAI;GACtC,WAAW,QAAQ;GAGnB,MAAM,UAAU,UAAU,MAAM,0BAA0B,CAAA,CAAE;GAC5D,iBAAiB,OAAO;EAC1B,OAAA,IAAW,UAAU,QAAQ,QAAQ,MAAM,IAAI,WAAW,QAAQ;EAElE,MAAM,SACH,UAAU,MAAM,gDAAgD,KAC/D,CAAC,EAAA,CAAG,MAAM,IAAA,CACZ,QAAQ,KAAK,GAAG;EAClB,MAAMA,cAAa,WAAW,IAAI;EAElC,SAAS,CAAC,MAAMA,WAAU,CAAC;EAC3B,IAAI,CAAC,MAAMA,WAAU,GACnB,cAAc,IAAI;EAGpB,IACE,iEAAiE,KAC/D,SACF,GAEA,UAAU,QAAQ;CACtB,GAAG,CAAC,CAAC;CAEL,OAAO;EAAE;EAAS;EAAQ;EAAO;EAAe;CAAW;AAC7D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
//#region src/Functions/useMouseUpOutside.js
|
|
3
|
+
function useMouseUpOutside(ref, setOut, open) {
|
|
4
|
+
function handleMouseUpOutside(event) {
|
|
5
|
+
if (ref.current && !ref.current.contains(event.target)) setOut(open);
|
|
6
|
+
}
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
document.addEventListener("mouseup", handleMouseUpOutside);
|
|
9
|
+
return () => {
|
|
10
|
+
document.removeEventListener("mouseup", handleMouseUpOutside);
|
|
11
|
+
};
|
|
12
|
+
}, [ref]);
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { useMouseUpOutside as default };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=useMouseUpOutside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMouseUpOutside.js","names":[],"sources":["../../../src/Functions/useMouseUpOutside.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nexport default function useMouseUpOutside(ref, setOut, open) {\n function handleMouseUpOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setOut(open);\n }\n }\n\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleMouseUpOutside);\n return () => {\n document.removeEventListener(\"mouseup\", handleMouseUpOutside);\n };\n }, [ref]);\n}\n"],"mappings":";;AAEA,SAAwB,kBAAkB,KAAK,QAAQ,MAAM;CAC3D,SAAS,qBAAqB,OAAO;EACnC,IAAI,IAAI,WAAW,CAAC,IAAI,QAAQ,SAAS,MAAM,MAAM,GACnD,OAAO,IAAI;CAEf;CAEA,gBAAgB;EACd,SAAS,iBAAiB,WAAW,oBAAoB;EACzD,aAAa;GACX,SAAS,oBAAoB,WAAW,oBAAoB;EAC9D;CACF,GAAG,CAAC,GAAG,CAAC;AACV"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
//#region src/Functions/useOnlineStatus.js
|
|
3
|
+
var useOnlineStatus = () => {
|
|
4
|
+
function getOnlineStatus() {
|
|
5
|
+
return typeof navigator !== "undefined" && typeof navigator.onLine === "boolean" ? navigator.onLine : true;
|
|
6
|
+
}
|
|
7
|
+
const [onlineStatus, setOnlineStatus] = useState(getOnlineStatus());
|
|
8
|
+
const goOnline = () => setOnlineStatus(true);
|
|
9
|
+
const goOffline = () => setOnlineStatus(false);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
window.addEventListener("online", goOnline);
|
|
12
|
+
window.addEventListener("offline", goOffline);
|
|
13
|
+
return () => {
|
|
14
|
+
window.removeEventListener("online", goOnline);
|
|
15
|
+
window.removeEventListener("offline", goOffline);
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
return onlineStatus;
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
export { useOnlineStatus as default };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=useOnlineStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOnlineStatus.js","names":[],"sources":["../../../src/Functions/useOnlineStatus.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nconst useOnlineStatus = () => {\n function getOnlineStatus() {\n return typeof navigator !== \"undefined\" &&\n typeof navigator.onLine === \"boolean\"\n ? navigator.onLine\n : true;\n }\n const [onlineStatus, setOnlineStatus] = useState(getOnlineStatus());\n\n const goOnline = () => setOnlineStatus(true);\n\n const goOffline = () => setOnlineStatus(false);\n\n useEffect(() => {\n window.addEventListener(\"online\", goOnline);\n window.addEventListener(\"offline\", goOffline);\n\n return () => {\n window.removeEventListener(\"online\", goOnline);\n window.removeEventListener(\"offline\", goOffline);\n };\n }, []);\n\n return onlineStatus;\n};\n\nexport default useOnlineStatus;\n"],"mappings":";;AAEA,IAAM,wBAAwB;CAC5B,SAAS,kBAAkB;EACzB,OAAO,OAAO,cAAc,eAC1B,OAAO,UAAU,WAAW,YAC1B,UAAU,SACV;CACN;CACA,MAAM,CAAC,cAAc,mBAAmB,SAAS,gBAAgB,CAAC;CAElE,MAAM,iBAAiB,gBAAgB,IAAI;CAE3C,MAAM,kBAAkB,gBAAgB,KAAK;CAE7C,gBAAgB;EACd,OAAO,iBAAiB,UAAU,QAAQ;EAC1C,OAAO,iBAAiB,WAAW,SAAS;EAE5C,aAAa;GACX,OAAO,oBAAoB,UAAU,QAAQ;GAC7C,OAAO,oBAAoB,WAAW,SAAS;EACjD;CACF,GAAG,CAAC,CAAC;CAEL,OAAO;AACT"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import cn from "classnames";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/Functions/usePasswordChecker.js
|
|
5
|
+
function usePasswordChecker({ label = "Password must:" } = {}) {
|
|
6
|
+
const [checkRules, setCheckRules] = useState([]);
|
|
7
|
+
const addCheckRule = (data) => setCheckRules((state) => [...state, data]);
|
|
8
|
+
const handleCheckRule = (type, props = {}, value = "") => {
|
|
9
|
+
const { min, max } = props;
|
|
10
|
+
switch (type) {
|
|
11
|
+
case "len":
|
|
12
|
+
if (min && value.length < min) return false;
|
|
13
|
+
if (max && value.length > max) return false;
|
|
14
|
+
return true;
|
|
15
|
+
case "lowerCaseContains": {
|
|
16
|
+
const toUpperCase = value.slice().toUpperCase().split("");
|
|
17
|
+
return value.slice().split("").reduce((isMatch, char, i) => {
|
|
18
|
+
if (char !== toUpperCase[i]) isMatch = true;
|
|
19
|
+
return isMatch;
|
|
20
|
+
}, false);
|
|
21
|
+
}
|
|
22
|
+
case "upperCaseContains": {
|
|
23
|
+
const toLowerCase = value.slice().toLowerCase().split("");
|
|
24
|
+
return value.slice().split("").reduce((isMatch, char, i) => {
|
|
25
|
+
if (char !== toLowerCase[i]) isMatch = true;
|
|
26
|
+
return isMatch;
|
|
27
|
+
}, false);
|
|
28
|
+
}
|
|
29
|
+
case "numberContains": return value.slice().split("").reduce((isMatch, char) => {
|
|
30
|
+
if (Number.isInteger(parseInt(char, 10))) isMatch = true;
|
|
31
|
+
return isMatch;
|
|
32
|
+
}, false);
|
|
33
|
+
case "specialContains": return value.slice().split("").reduce((isMatch, char) => {
|
|
34
|
+
if (!Number.isInteger(parseInt(char, 10)) && !char.match(/[a-z]/i)) isMatch = true;
|
|
35
|
+
return isMatch;
|
|
36
|
+
}, false);
|
|
37
|
+
default: return false;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const testCheckRules = (value) => {
|
|
41
|
+
let result = true;
|
|
42
|
+
setCheckRules((state) => {
|
|
43
|
+
return [...state].map((rule) => {
|
|
44
|
+
const isMatch = handleCheckRule(rule.type, rule.props, value);
|
|
45
|
+
if (!isMatch) result = false;
|
|
46
|
+
return {
|
|
47
|
+
...rule,
|
|
48
|
+
isMatch
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
const renderPasswordChecker = () => {
|
|
55
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
56
|
+
className: "password-checker",
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ jsxs("div", {
|
|
59
|
+
className: "password-checker__header",
|
|
60
|
+
children: [/* @__PURE__ */ jsxs("label", {
|
|
61
|
+
className: "password-checker__header-label",
|
|
62
|
+
children: [
|
|
63
|
+
" ",
|
|
64
|
+
label,
|
|
65
|
+
" "
|
|
66
|
+
]
|
|
67
|
+
}), " "]
|
|
68
|
+
}),
|
|
69
|
+
" ",
|
|
70
|
+
/* @__PURE__ */ jsxs("div", {
|
|
71
|
+
className: "password-checker__body",
|
|
72
|
+
children: [
|
|
73
|
+
" ",
|
|
74
|
+
checkRules.map(({ icon, text, isMatch, key }) => /* @__PURE__ */ jsxs("div", {
|
|
75
|
+
className: cn("password-checker__body-item", {
|
|
76
|
+
"password-checker__body-item--match": isMatch && isMatch !== null,
|
|
77
|
+
"password-checker__body-item--dont-match": !isMatch && isMatch !== null
|
|
78
|
+
}),
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: "password-checker__body-item__icon",
|
|
82
|
+
children: [
|
|
83
|
+
" ",
|
|
84
|
+
icon,
|
|
85
|
+
" "
|
|
86
|
+
]
|
|
87
|
+
}),
|
|
88
|
+
" ",
|
|
89
|
+
/* @__PURE__ */ jsxs("div", {
|
|
90
|
+
className: "password-checker__body-item__text",
|
|
91
|
+
children: [
|
|
92
|
+
" ",
|
|
93
|
+
text,
|
|
94
|
+
" "
|
|
95
|
+
]
|
|
96
|
+
}),
|
|
97
|
+
" "
|
|
98
|
+
]
|
|
99
|
+
}, key)),
|
|
100
|
+
" "
|
|
101
|
+
]
|
|
102
|
+
}),
|
|
103
|
+
" "
|
|
104
|
+
]
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
addCheckRule,
|
|
109
|
+
testCheckRules,
|
|
110
|
+
renderPasswordChecker
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//#endregion
|
|
114
|
+
export { usePasswordChecker as default };
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=usePasswordChecker.js.map
|