intelicoreact 2.0.18 → 2.0.20
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/Datepicker.styles.css +0 -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/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 +216 -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 +146 -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 +330 -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 +2 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { requestWithRetry } from "./transport.js";
|
|
2
|
+
//#region src/Functions/sdk/runtime-sdk/queue.ts
|
|
3
|
+
var BatchQueue = class {
|
|
4
|
+
config;
|
|
5
|
+
buffer = [];
|
|
6
|
+
timer = null;
|
|
7
|
+
inflight = null;
|
|
8
|
+
destroyed = false;
|
|
9
|
+
/**
|
|
10
|
+
* Создаёт очередь и, если `flushIntervalMs > 0`, запускает
|
|
11
|
+
* периодический таймер флаша. Таймер будет тикать до тех пор,
|
|
12
|
+
* пока не вызовут `destroy()`.
|
|
13
|
+
*/
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
if (config.flushIntervalMs > 0) this.timer = setInterval(() => {
|
|
17
|
+
this.flush();
|
|
18
|
+
}, config.flushIntervalMs);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Текущее количество событий в буфере (ещё не отправленных).
|
|
22
|
+
* Полезно для метрик/дебага.
|
|
23
|
+
*/
|
|
24
|
+
size() {
|
|
25
|
+
return this.buffer.length;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Добавить события в буфер.
|
|
29
|
+
*
|
|
30
|
+
* Триггеры автоматического флаша:
|
|
31
|
+
* - буфер достиг `batchSize` → сразу уходит HTTP-запрос
|
|
32
|
+
* - буфер превысил `maxQueueSize` → лишние **старые** события
|
|
33
|
+
* дропаются (FIFO), чтобы не раздувать память при сбое сети
|
|
34
|
+
*
|
|
35
|
+
* После `destroy()` вызов игнорируется.
|
|
36
|
+
*/
|
|
37
|
+
enqueue(logs) {
|
|
38
|
+
if (this.destroyed) return;
|
|
39
|
+
if (logs.length === 0) return;
|
|
40
|
+
this.buffer.push(...logs);
|
|
41
|
+
if (this.buffer.length > this.config.maxQueueSize) {
|
|
42
|
+
const overflow = this.buffer.length - this.config.maxQueueSize;
|
|
43
|
+
this.buffer.splice(0, overflow);
|
|
44
|
+
this.config.logger("warn", `queue overflow; dropped ${overflow} oldest events`);
|
|
45
|
+
}
|
|
46
|
+
if (this.buffer.length >= this.config.batchSize) this.flush();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Забрать всё из буфера и отправить одним батчем в
|
|
50
|
+
* `POST /api/runtime/ingest`.
|
|
51
|
+
*
|
|
52
|
+
* Если уже есть активный in-flight запрос — возвращаем его же
|
|
53
|
+
* промис (защита от параллельных флашей по таймеру и по размеру).
|
|
54
|
+
*
|
|
55
|
+
* Ошибки HTTP/сети сюда не всплывают — они проглатываются
|
|
56
|
+
* после всех retry-попыток и логируются как 'error'. Дроп
|
|
57
|
+
* целого батча при окончательном фейле — осознанный компромисс:
|
|
58
|
+
* лучше потерять часть телеметрии, чем заблокировать очередь.
|
|
59
|
+
*/
|
|
60
|
+
async flush() {
|
|
61
|
+
if (this.destroyed) return;
|
|
62
|
+
if (this.buffer.length === 0) return;
|
|
63
|
+
if (this.inflight) return this.inflight;
|
|
64
|
+
const batch = this.buffer.splice(0, this.buffer.length);
|
|
65
|
+
this.inflight = (async () => {
|
|
66
|
+
try {
|
|
67
|
+
const body = { logs: batch };
|
|
68
|
+
const res = await requestWithRetry(this.config, {
|
|
69
|
+
method: "POST",
|
|
70
|
+
path: "/api/runtime/ingest",
|
|
71
|
+
body
|
|
72
|
+
}, "ingest");
|
|
73
|
+
this.config.logger("debug", `flushed ${batch.length} logs`, res);
|
|
74
|
+
} catch (err) {
|
|
75
|
+
this.config.logger("error", `flush failed; dropping ${batch.length} logs`, err);
|
|
76
|
+
} finally {
|
|
77
|
+
this.inflight = null;
|
|
78
|
+
}
|
|
79
|
+
})();
|
|
80
|
+
return this.inflight;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Отправить буфер через `navigator.sendBeacon` при закрытии вкладки.
|
|
84
|
+
*
|
|
85
|
+
* В отличие от обычного `flush()`:
|
|
86
|
+
* - fire-and-forget: нет ответа и нет retry
|
|
87
|
+
* - браузер гарантирует доставку даже после того как страница
|
|
88
|
+
* уже уничтожается (unload / pagehide)
|
|
89
|
+
* - нет заголовка `X-API-Key` (sendBeacon не даёт менять headers,
|
|
90
|
+
* но `Content-Type` нам выставляет сам тип Blob)
|
|
91
|
+
*
|
|
92
|
+
* Возвращает `true` если браузер принял пачку в свою очередь,
|
|
93
|
+
* `false` при отсутствии API или отказе (например слишком
|
|
94
|
+
* большой payload — лимит обычно 64 КБ).
|
|
95
|
+
*/
|
|
96
|
+
flushBeacon() {
|
|
97
|
+
if (this.destroyed) return false;
|
|
98
|
+
if (this.buffer.length === 0) return true;
|
|
99
|
+
if (typeof navigator === "undefined" || typeof navigator.sendBeacon !== "function") return false;
|
|
100
|
+
const batch = this.buffer.splice(0, this.buffer.length);
|
|
101
|
+
const blob = new Blob([JSON.stringify({ logs: batch })], { type: "application/json" });
|
|
102
|
+
const url = `${this.config.baseUrl}/api/runtime/ingest`;
|
|
103
|
+
const ok = navigator.sendBeacon(url, blob);
|
|
104
|
+
if (!ok) this.config.logger("warn", `sendBeacon rejected ${batch.length} logs`);
|
|
105
|
+
return ok;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Остановить очередь и освободить ресурсы.
|
|
109
|
+
*
|
|
110
|
+
* Чистит таймер флаша, обнуляет буфер, помечает инстанс
|
|
111
|
+
* уничтоженным — последующие `enqueue`/`flush`/`flushBeacon`
|
|
112
|
+
* становятся no-op. Идемпотентна.
|
|
113
|
+
*
|
|
114
|
+
* Важно: in-flight запрос, если он был запущен до `destroy`,
|
|
115
|
+
* не отменяется — он либо завершится штатно, либо по таймауту
|
|
116
|
+
* `requestTimeoutMs`.
|
|
117
|
+
*/
|
|
118
|
+
destroy() {
|
|
119
|
+
if (this.destroyed) return;
|
|
120
|
+
this.destroyed = true;
|
|
121
|
+
if (this.timer) {
|
|
122
|
+
clearInterval(this.timer);
|
|
123
|
+
this.timer = null;
|
|
124
|
+
}
|
|
125
|
+
this.buffer = [];
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
//#endregion
|
|
129
|
+
export { BatchQueue };
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","names":[],"sources":["../../../../../src/Functions/sdk/runtime-sdk/queue.ts"],"sourcesContent":["import type {\n BatchIngestRequest,\n BatchIngestResponse,\n ResolvedConfig,\n RuntimeLog,\n} from './types';\nimport { requestWithRetry } from './transport';\n\nexport class BatchQueue {\n private buffer: RuntimeLog[] = [];\n private timer: ReturnType<typeof setInterval> | null = null;\n private inflight: Promise<void> | null = null;\n private destroyed = false;\n\n /**\n * Создаёт очередь и, если `flushIntervalMs > 0`, запускает\n * периодический таймер флаша. Таймер будет тикать до тех пор,\n * пока не вызовут `destroy()`.\n */\n constructor(private readonly config: ResolvedConfig) {\n if (config.flushIntervalMs > 0) {\n this.timer = setInterval(() => {\n void this.flush();\n }, config.flushIntervalMs);\n }\n }\n\n /**\n * Текущее количество событий в буфере (ещё не отправленных).\n * Полезно для метрик/дебага.\n */\n size(): number {\n return this.buffer.length;\n }\n\n /**\n * Добавить события в буфер.\n *\n * Триггеры автоматического флаша:\n * - буфер достиг `batchSize` → сразу уходит HTTP-запрос\n * - буфер превысил `maxQueueSize` → лишние **старые** события\n * дропаются (FIFO), чтобы не раздувать память при сбое сети\n *\n * После `destroy()` вызов игнорируется.\n */\n enqueue(logs: RuntimeLog[]): void {\n if (this.destroyed) return;\n if (logs.length === 0) return;\n\n this.buffer.push(...logs);\n\n if (this.buffer.length > this.config.maxQueueSize) {\n const overflow = this.buffer.length - this.config.maxQueueSize;\n this.buffer.splice(0, overflow);\n this.config.logger(\n 'warn',\n `queue overflow; dropped ${overflow} oldest events`,\n );\n }\n\n if (this.buffer.length >= this.config.batchSize) {\n void this.flush();\n }\n }\n\n /**\n * Забрать всё из буфера и отправить одним батчем в\n * `POST /api/runtime/ingest`.\n *\n * Если уже есть активный in-flight запрос — возвращаем его же\n * промис (защита от параллельных флашей по таймеру и по размеру).\n *\n * Ошибки HTTP/сети сюда не всплывают — они проглатываются\n * после всех retry-попыток и логируются как 'error'. Дроп\n * целого батча при окончательном фейле — осознанный компромисс:\n * лучше потерять часть телеметрии, чем заблокировать очередь.\n */\n async flush(): Promise<void> {\n if (this.destroyed) return;\n if (this.buffer.length === 0) return;\n if (this.inflight) return this.inflight;\n\n const batch = this.buffer.splice(0, this.buffer.length);\n\n this.inflight = (async () => {\n try {\n const body: BatchIngestRequest = { logs: batch };\n const res = await requestWithRetry<BatchIngestResponse>(\n this.config,\n { method: 'POST', path: '/api/runtime/ingest', body },\n 'ingest',\n );\n this.config.logger('debug', `flushed ${batch.length} logs`, res);\n }\n catch (err) {\n this.config.logger(\n 'error',\n `flush failed; dropping ${batch.length} logs`,\n err,\n );\n }\n finally {\n this.inflight = null;\n }\n })();\n\n return this.inflight;\n }\n\n /**\n * Отправить буфер через `navigator.sendBeacon` при закрытии вкладки.\n *\n * В отличие от обычного `flush()`:\n * - fire-and-forget: нет ответа и нет retry\n * - браузер гарантирует доставку даже после того как страница\n * уже уничтожается (unload / pagehide)\n * - нет заголовка `X-API-Key` (sendBeacon не даёт менять headers,\n * но `Content-Type` нам выставляет сам тип Blob)\n *\n * Возвращает `true` если браузер принял пачку в свою очередь,\n * `false` при отсутствии API или отказе (например слишком\n * большой payload — лимит обычно 64 КБ).\n */\n flushBeacon(): boolean {\n if (this.destroyed) return false;\n if (this.buffer.length === 0) return true;\n if (\n typeof navigator === 'undefined'\n || typeof navigator.sendBeacon !== 'function'\n ) {\n return false;\n }\n\n const batch = this.buffer.splice(0, this.buffer.length);\n const body: BatchIngestRequest = { logs: batch };\n const blob = new Blob([JSON.stringify(body)], { type: 'application/json' });\n const url = `${this.config.baseUrl}/api/runtime/ingest`;\n const ok = navigator.sendBeacon(url, blob);\n if (!ok)\n this.config.logger('warn', `sendBeacon rejected ${batch.length} logs`);\n return ok;\n }\n\n /**\n * Остановить очередь и освободить ресурсы.\n *\n * Чистит таймер флаша, обнуляет буфер, помечает инстанс\n * уничтоженным — последующие `enqueue`/`flush`/`flushBeacon`\n * становятся no-op. Идемпотентна.\n *\n * Важно: in-flight запрос, если он был запущен до `destroy`,\n * не отменяется — он либо завершится штатно, либо по таймауту\n * `requestTimeoutMs`.\n */\n destroy(): void {\n if (this.destroyed) return;\n this.destroyed = true;\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n this.buffer = [];\n }\n}\n"],"mappings":";;AAQA,IAAa,aAAb,MAAwB;CAWO;CAV7B,SAA+B,CAAC;CAChC,QAAuD;CACvD,WAAyC;CACzC,YAAoB;;;;;;CAOpB,YAAY,QAAyC;EAAxB,KAAA,SAAA;EAC3B,IAAI,OAAO,kBAAkB,GAC3B,KAAK,QAAQ,kBAAkB;GAC7B,KAAU,MAAM;EAClB,GAAG,OAAO,eAAe;CAE7B;;;;;CAMA,OAAe;EACb,OAAO,KAAK,OAAO;CACrB;;;;;;;;;;;CAYA,QAAQ,MAA0B;EAChC,IAAI,KAAK,WAAW;EACpB,IAAI,KAAK,WAAW,GAAG;EAEvB,KAAK,OAAO,KAAK,GAAG,IAAI;EAExB,IAAI,KAAK,OAAO,SAAS,KAAK,OAAO,cAAc;GACjD,MAAM,WAAW,KAAK,OAAO,SAAS,KAAK,OAAO;GAClD,KAAK,OAAO,OAAO,GAAG,QAAQ;GAC9B,KAAK,OAAO,OACV,QACA,2BAA2B,SAAS,eACtC;EACF;EAEA,IAAI,KAAK,OAAO,UAAU,KAAK,OAAO,WACpC,KAAU,MAAM;CAEpB;;;;;;;;;;;;;CAcA,MAAM,QAAuB;EAC3B,IAAI,KAAK,WAAW;EACpB,IAAI,KAAK,OAAO,WAAW,GAAG;EAC9B,IAAI,KAAK,UAAU,OAAO,KAAK;EAE/B,MAAM,QAAQ,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,MAAM;EAEtD,KAAK,YAAY,YAAY;GAC3B,IAAI;IACF,MAAM,OAA2B,EAAE,MAAM,MAAM;IAC/C,MAAM,MAAM,MAAM,iBAChB,KAAK,QACL;KAAE,QAAQ;KAAQ,MAAM;KAAuB;IAAK,GACpD,QACF;IACA,KAAK,OAAO,OAAO,SAAS,WAAW,MAAM,OAAO,QAAQ,GAAG;GACjE,SACO,KAAK;IACV,KAAK,OAAO,OACV,SACA,0BAA0B,MAAM,OAAO,QACvC,GACF;GACF,UACQ;IACN,KAAK,WAAW;GAClB;EACF,EAAA,CAAG;EAEH,OAAO,KAAK;CACd;;;;;;;;;;;;;;;CAgBA,cAAuB;EACrB,IAAI,KAAK,WAAW,OAAO;EAC3B,IAAI,KAAK,OAAO,WAAW,GAAG,OAAO;EACrC,IACE,OAAO,cAAc,eAClB,OAAO,UAAU,eAAe,YAEnC,OAAO;EAGT,MAAM,QAAQ,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,MAAM;EAEtD,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,EADH,MAAM,MACH,CAAI,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;EAC1E,MAAM,MAAM,GAAG,KAAK,OAAO,QAAQ;EACnC,MAAM,KAAK,UAAU,WAAW,KAAK,IAAI;EACzC,IAAI,CAAC,IACH,KAAK,OAAO,OAAO,QAAQ,uBAAuB,MAAM,OAAO,MAAM;EACvE,OAAO;CACT;;;;;;;;;;;;CAaA,UAAgB;EACd,IAAI,KAAK,WAAW;EACpB,KAAK,YAAY;EACjB,IAAI,KAAK,OAAO;GACd,cAAc,KAAK,KAAK;GACxB,KAAK,QAAQ;EACf;EACA,KAAK,SAAS,CAAC;CACjB;AACF"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { buildHeaders } from "./config.js";
|
|
2
|
+
//#region src/Functions/sdk/runtime-sdk/transport.ts
|
|
3
|
+
var HttpError = class extends Error {
|
|
4
|
+
status;
|
|
5
|
+
body;
|
|
6
|
+
retryAfterMs;
|
|
7
|
+
constructor(status, body, retryAfterMs) {
|
|
8
|
+
super(`HTTP ${status}: ${body.slice(0, 200)}`);
|
|
9
|
+
this.status = status;
|
|
10
|
+
this.body = body;
|
|
11
|
+
this.retryAfterMs = retryAfterMs;
|
|
12
|
+
this.name = "HttpError";
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Однократный HTTP-запрос без retry-логики.
|
|
17
|
+
*
|
|
18
|
+
* Особенности:
|
|
19
|
+
* - таймаут через `AbortController`, дефолт 8 с
|
|
20
|
+
* - non-2xx ответ → `HttpError` с распарсенным `Retry-After`
|
|
21
|
+
* - поддерживает `application/json` и text-ответы
|
|
22
|
+
* - 204 No Content → резолв `undefined`
|
|
23
|
+
*
|
|
24
|
+
* Используется как строительный блок для `requestWithRetry`
|
|
25
|
+
* и для случаев, где retry не нужен (напр. программная отмена).
|
|
26
|
+
*/
|
|
27
|
+
async function request(config, options) {
|
|
28
|
+
const url = new URL(config.baseUrl + options.path);
|
|
29
|
+
if (options.query) for (const [k, v] of Object.entries(options.query)) url.searchParams.set(k, v);
|
|
30
|
+
const controller = new AbortController();
|
|
31
|
+
const timer = setTimeout(() => controller.abort(), config.requestTimeoutMs);
|
|
32
|
+
const signal = options.signal ?? controller.signal;
|
|
33
|
+
try {
|
|
34
|
+
const res = await config.fetchImpl(url.toString(), {
|
|
35
|
+
method: options.method,
|
|
36
|
+
headers: buildHeaders(config),
|
|
37
|
+
body: options.body !== void 0 ? JSON.stringify(options.body) : void 0,
|
|
38
|
+
signal
|
|
39
|
+
});
|
|
40
|
+
if (!res.ok) {
|
|
41
|
+
const text = await safeText(res);
|
|
42
|
+
const retryAfter = parseRetryAfter(res.headers.get("Retry-After"));
|
|
43
|
+
throw new HttpError(res.status, text, retryAfter);
|
|
44
|
+
}
|
|
45
|
+
if (res.status === 204) return void 0;
|
|
46
|
+
if ((res.headers.get("content-type") ?? "").includes("application/json")) return await res.json();
|
|
47
|
+
return await safeText(res);
|
|
48
|
+
} finally {
|
|
49
|
+
clearTimeout(timer);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* HTTP-запрос с экспоненциальным бэкоффом и уважением к `Retry-After`.
|
|
54
|
+
*
|
|
55
|
+
* Retry-стратегия:
|
|
56
|
+
* - 429 Too Many Requests → ждём `Retry-After` (секунды или HTTP-date)
|
|
57
|
+
* - 5xx → экспоненциальный бэкофф `300 * 2^attempt + jitter`, cap 10 с
|
|
58
|
+
* - `AbortError` / `TypeError` (сетевые) → тоже retry
|
|
59
|
+
* - 4xx кроме 429 → сразу финальный reject (чинить нечего)
|
|
60
|
+
*
|
|
61
|
+
* Каждая попытка (успех или нет) проходит через `logger` и `onError`
|
|
62
|
+
* с указанием `phase` — это даёт наблюдаемость без перехвата промиса.
|
|
63
|
+
*/
|
|
64
|
+
async function requestWithRetry(config, options, phase) {
|
|
65
|
+
let attempt = 0;
|
|
66
|
+
let lastError;
|
|
67
|
+
while (attempt <= config.maxRetries) try {
|
|
68
|
+
return await request(config, options);
|
|
69
|
+
} catch (err) {
|
|
70
|
+
lastError = err;
|
|
71
|
+
attempt += 1;
|
|
72
|
+
const shouldRetry = isRetryable(err) && attempt <= config.maxRetries;
|
|
73
|
+
config.logger(shouldRetry ? "warn" : "error", `${options.method} ${options.path} failed (attempt ${attempt})`, err);
|
|
74
|
+
config.onError?.(err, {
|
|
75
|
+
phase,
|
|
76
|
+
attempt
|
|
77
|
+
});
|
|
78
|
+
if (!shouldRetry) break;
|
|
79
|
+
await sleep(computeBackoff(err, attempt));
|
|
80
|
+
}
|
|
81
|
+
throw lastError;
|
|
82
|
+
}
|
|
83
|
+
function isRetryable(err) {
|
|
84
|
+
if (err instanceof HttpError) return err.status === 429 || err.status >= 500;
|
|
85
|
+
if (err instanceof Error && (err.name === "AbortError" || err.name === "TypeError")) return true;
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
function computeBackoff(err, attempt) {
|
|
89
|
+
if (err instanceof HttpError && err.retryAfterMs !== void 0) return err.retryAfterMs;
|
|
90
|
+
const base = 300;
|
|
91
|
+
const jitter = Math.random() * 200;
|
|
92
|
+
return Math.min(base * 2 ** (attempt - 1) + jitter, 1e4);
|
|
93
|
+
}
|
|
94
|
+
function parseRetryAfter(header) {
|
|
95
|
+
if (!header) return void 0;
|
|
96
|
+
const asSeconds = Number(header);
|
|
97
|
+
if (!Number.isNaN(asSeconds)) return asSeconds * 1e3;
|
|
98
|
+
const asDate = Date.parse(header);
|
|
99
|
+
if (!Number.isNaN(asDate)) return Math.max(asDate - Date.now(), 0);
|
|
100
|
+
}
|
|
101
|
+
async function safeText(res) {
|
|
102
|
+
try {
|
|
103
|
+
return await res.text();
|
|
104
|
+
} catch {
|
|
105
|
+
return "";
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function sleep(ms) {
|
|
109
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { HttpError, request, requestWithRetry };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","names":[],"sources":["../../../../../src/Functions/sdk/runtime-sdk/transport.ts"],"sourcesContent":["import type { ResolvedConfig } from './types';\nimport { buildHeaders } from './config';\n\nexport class HttpError extends Error {\n constructor(\n public readonly status: number,\n public readonly body: string,\n public readonly retryAfterMs?: number,\n ) {\n super(`HTTP ${status}: ${body.slice(0, 200)}`);\n this.name = 'HttpError';\n }\n}\n\ninterface RequestOptions {\n method: 'POST' | 'DELETE' | 'GET';\n path: string;\n body?: unknown;\n query?: Record<string, string>;\n signal?: AbortSignal;\n}\n\n/**\n * Однократный HTTP-запрос без retry-логики.\n *\n * Особенности:\n * - таймаут через `AbortController`, дефолт 8 с\n * - non-2xx ответ → `HttpError` с распарсенным `Retry-After`\n * - поддерживает `application/json` и text-ответы\n * - 204 No Content → резолв `undefined`\n *\n * Используется как строительный блок для `requestWithRetry`\n * и для случаев, где retry не нужен (напр. программная отмена).\n */\nexport async function request<T>(\n config: ResolvedConfig,\n options: RequestOptions,\n): Promise<T> {\n const url = new URL(config.baseUrl + options.path);\n if (options.query) {\n for (const [k, v] of Object.entries(options.query))\n url.searchParams.set(k, v);\n }\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), config.requestTimeoutMs);\n const signal = options.signal ?? controller.signal;\n\n try {\n const res = await config.fetchImpl(url.toString(), {\n method: options.method,\n headers: buildHeaders(config),\n body:\n options.body !== undefined ? JSON.stringify(options.body) : undefined,\n signal,\n });\n\n if (!res.ok) {\n const text = await safeText(res);\n const retryAfter = parseRetryAfter(res.headers.get('Retry-After'));\n throw new HttpError(res.status, text, retryAfter);\n }\n\n if (res.status === 204) return undefined as T;\n const ct = res.headers.get('content-type') ?? '';\n if (ct.includes('application/json')) return (await res.json()) as T;\n return (await safeText(res)) as unknown as T;\n }\n finally {\n clearTimeout(timer);\n }\n}\n\n/**\n * HTTP-запрос с экспоненциальным бэкоффом и уважением к `Retry-After`.\n *\n * Retry-стратегия:\n * - 429 Too Many Requests → ждём `Retry-After` (секунды или HTTP-date)\n * - 5xx → экспоненциальный бэкофф `300 * 2^attempt + jitter`, cap 10 с\n * - `AbortError` / `TypeError` (сетевые) → тоже retry\n * - 4xx кроме 429 → сразу финальный reject (чинить нечего)\n *\n * Каждая попытка (успех или нет) проходит через `logger` и `onError`\n * с указанием `phase` — это даёт наблюдаемость без перехвата промиса.\n */\nexport async function requestWithRetry<T>(\n config: ResolvedConfig,\n options: RequestOptions,\n phase: 'ingest' | 'delete',\n): Promise<T> {\n let attempt = 0;\n let lastError: unknown;\n\n while (attempt <= config.maxRetries) {\n try {\n return await request<T>(config, options);\n }\n catch (err) {\n lastError = err;\n attempt += 1;\n\n const shouldRetry = isRetryable(err) && attempt <= config.maxRetries;\n config.logger(\n shouldRetry ? 'warn' : 'error',\n `${options.method} ${options.path} failed (attempt ${attempt})`,\n err,\n );\n config.onError?.(err, { phase, attempt });\n\n if (!shouldRetry) break;\n\n const delayMs = computeBackoff(err, attempt);\n await sleep(delayMs);\n }\n }\n\n throw lastError;\n}\n\nfunction isRetryable(err: unknown): boolean {\n if (err instanceof HttpError) {\n return err.status === 429 || err.status >= 500;\n }\n if (\n err instanceof Error\n && (err.name === 'AbortError' || err.name === 'TypeError')\n ) {\n return true;\n }\n return false;\n}\n\nfunction computeBackoff(err: unknown, attempt: number): number {\n if (err instanceof HttpError && err.retryAfterMs !== undefined) {\n return err.retryAfterMs;\n }\n const base = 300;\n const jitter = Math.random() * 200;\n return Math.min(base * 2 ** (attempt - 1) + jitter, 10_000);\n}\n\nfunction parseRetryAfter(header: string | null): number | undefined {\n if (!header) return undefined;\n const asSeconds = Number(header);\n if (!Number.isNaN(asSeconds)) return asSeconds * 1000;\n const asDate = Date.parse(header);\n if (!Number.isNaN(asDate)) return Math.max(asDate - Date.now(), 0);\n return undefined;\n}\n\nasync function safeText(res: Response): Promise<string> {\n try {\n return await res.text();\n }\n catch {\n return '';\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
//#region src/Functions/useBodyScrollLock.js
|
|
3
|
+
var useBodyScrollLock = (isScrollBodyLocked) => {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
if (isScrollBodyLocked) document.body.style.overflow = "hidden";
|
|
6
|
+
else document.body.style.overflow = "auto";
|
|
7
|
+
return () => {
|
|
8
|
+
document.body.style.overflow = "auto";
|
|
9
|
+
};
|
|
10
|
+
}, [isScrollBodyLocked]);
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { useBodyScrollLock as default };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=useBodyScrollLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.js","names":[],"sources":["../../../src/Functions/useBodyScrollLock.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst useBodyScrollLock = (isScrollBodyLocked) => {\n useEffect(() => {\n if (isScrollBodyLocked) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n\n return () => {\n document.body.style.overflow = \"auto\";\n };\n }, [isScrollBodyLocked]);\n};\n\nexport default useBodyScrollLock;\n"],"mappings":";;AAEA,IAAM,qBAAqB,uBAAuB;CAChD,gBAAgB;EACd,IAAI,oBACF,SAAS,KAAK,MAAM,WAAW;OAE/B,SAAS,KAAK,MAAM,WAAW;EAGjC,aAAa;GACX,SAAS,KAAK,MAAM,WAAW;EACjC;CACF,GAAG,CAAC,kBAAkB,CAAC;AACzB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
//#region src/Functions/useClickOutside.js
|
|
3
|
+
var useClickOutside = (ref, setOut, open) => {
|
|
4
|
+
function handleClickOutside(event) {
|
|
5
|
+
if (ref.current && !ref.current.contains(event.target)) setOut(open);
|
|
6
|
+
}
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
9
|
+
return () => {
|
|
10
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
11
|
+
};
|
|
12
|
+
}, [ref]);
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { useClickOutside };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=useClickOutside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClickOutside.js","names":[],"sources":["../../../src/Functions/useClickOutside.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nexport const useClickOutside = (ref, setOut, open) => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setOut(open);\n }\n }\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref]);\n};\n"],"mappings":";;AAEO,IAAM,mBAAmB,KAAK,QAAQ,SAAS;CACpD,SAAS,mBAAmB,OAAO;EACjC,IAAI,IAAI,WAAW,CAAC,IAAI,QAAQ,SAAS,MAAM,MAAM,GACnD,OAAO,IAAI;CAEf;CACA,gBAAgB;EACd,SAAS,iBAAiB,aAAa,kBAAkB;EACzD,aAAa;GACX,SAAS,oBAAoB,aAAa,kBAAkB;EAC9D;CACF,GAAG,CAAC,GAAG,CAAC;AACV"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
//#region src/Functions/useDebounce.js
|
|
3
|
+
var useDebounce = ({ searchValue, delay }) => {
|
|
4
|
+
const [debouncedValue, setDebouncedValue] = useState(searchValue);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
const handler = setTimeout(() => {
|
|
7
|
+
setDebouncedValue(searchValue);
|
|
8
|
+
}, delay);
|
|
9
|
+
return () => {
|
|
10
|
+
clearTimeout(handler);
|
|
11
|
+
};
|
|
12
|
+
}, [searchValue, delay]);
|
|
13
|
+
return debouncedValue;
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { useDebounce };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=useDebounce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebounce.js","names":[],"sources":["../../../src/Functions/useDebounce.js"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nexport const useDebounce = ({ searchValue, delay }) => {\n const [debouncedValue, setDebouncedValue] = useState(searchValue);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(searchValue);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [searchValue, delay]);\n\n return debouncedValue;\n};\n"],"mappings":";;AAEO,IAAM,eAAe,EAAE,aAAa,YAAY;CACrD,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,WAAW;CAEhE,gBAAgB;EACd,MAAM,UAAU,iBAAiB;GAC/B,kBAAkB,WAAW;EAC/B,GAAG,KAAK;EAER,aAAa;GACX,aAAa,OAAO;EACtB;CACF,GAAG,CAAC,aAAa,KAAK,CAAC;CAEvB,OAAO;AACT"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createRef, useEffect } from "react";
|
|
2
|
+
//#region src/Functions/useFieldFocus.js
|
|
3
|
+
function useFieldsFocus({ form, setForm }) {
|
|
4
|
+
const isFormAsObject = Boolean(typeof form === "object" && !Array.isArray(form));
|
|
5
|
+
const getField = (key) => {
|
|
6
|
+
if (isFormAsObject) return form?.[key] ?? Object.values(form)?.find((field) => field.key === key);
|
|
7
|
+
else return form?.find((field) => field.key === key);
|
|
8
|
+
};
|
|
9
|
+
const getErroredFields = () => {
|
|
10
|
+
if (isFormAsObject) return Object.values(form)?.filter((field) => field.error);
|
|
11
|
+
else return form?.filter((f) => f?.error);
|
|
12
|
+
};
|
|
13
|
+
const addRefsToFields = () => {
|
|
14
|
+
if (isFormAsObject) setForm((form2) => {
|
|
15
|
+
return Object.keys(form2)?.reduce((result, key) => {
|
|
16
|
+
const field = form2[key];
|
|
17
|
+
return {
|
|
18
|
+
...result,
|
|
19
|
+
[key]: {
|
|
20
|
+
...field,
|
|
21
|
+
ref: createRef(),
|
|
22
|
+
wrapperRef: createRef()
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}, {});
|
|
26
|
+
});
|
|
27
|
+
else setForm((form2) => {
|
|
28
|
+
return form2?.map((field) => {
|
|
29
|
+
field.ref = createRef();
|
|
30
|
+
field.wrapperRef = createRef();
|
|
31
|
+
return field;
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const toggleFieldFocus = ({ field, action = "focus" }) => {
|
|
36
|
+
if (!field || !field?.ref) return null;
|
|
37
|
+
setTimeout(() => {
|
|
38
|
+
field.ref.current?.querySelector(field?.focusSelector || "input")?.[action]();
|
|
39
|
+
}, 50);
|
|
40
|
+
};
|
|
41
|
+
const setFocusTo = (key) => {
|
|
42
|
+
const field = getField(key);
|
|
43
|
+
if (!field) return false;
|
|
44
|
+
toggleFieldFocus({ field });
|
|
45
|
+
};
|
|
46
|
+
const setFocusToErroredField = () => {
|
|
47
|
+
const field = getErroredFields()?.[0];
|
|
48
|
+
if (!field) return false;
|
|
49
|
+
toggleFieldFocus({ field });
|
|
50
|
+
};
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
addRefsToFields();
|
|
53
|
+
}, [form?.length]);
|
|
54
|
+
return {
|
|
55
|
+
setFocusTo,
|
|
56
|
+
setFocusToErroredField
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { useFieldsFocus as default };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=useFieldFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFieldFocus.js","names":["form"],"sources":["../../../src/Functions/useFieldFocus.js"],"sourcesContent":["import { createRef, useEffect } from \"react\";\n\nexport default function useFieldsFocus({ form, setForm }) {\n const isFormAsObject = Boolean(\n typeof form === \"object\" && !Array.isArray(form),\n );\n\n const getField = (key) => {\n if (isFormAsObject) {\n return (\n form?.[key] ?? Object.values(form)?.find((field) => field.key === key)\n );\n } else {\n return form?.find((field) => field.key === key);\n }\n };\n\n const getErroredFields = () => {\n if (isFormAsObject) {\n return Object.values(form)?.filter((field) => field.error);\n } else {\n return form?.filter((f) => f?.error);\n }\n };\n\n const addRefsToFields = () => {\n if (isFormAsObject) {\n setForm((form) => {\n return Object.keys(form)?.reduce((result, key) => {\n const field = form[key];\n return {\n ...result,\n [key]: {\n ...field,\n ref: createRef(),\n wrapperRef: createRef(),\n },\n };\n }, {});\n });\n } else {\n setForm((form) => {\n return form?.map((field) => {\n field.ref = createRef();\n field.wrapperRef = createRef();\n\n return field;\n });\n });\n }\n };\n\n const toggleFieldFocus = ({ field, action = \"focus\" }) => {\n if (!field || !field?.ref) return null;\n\n setTimeout(() => {\n field.ref.current\n ?.querySelector(field?.focusSelector || \"input\")\n ?.[action]();\n }, 50);\n };\n\n const setFocusTo = (key) => {\n const field = getField(key);\n if (!field) return false;\n\n toggleFieldFocus({ field });\n };\n const setFocusToErroredField = () => {\n const field = getErroredFields()?.[0];\n if (!field) return false;\n\n toggleFieldFocus({ field });\n };\n\n useEffect(() => {\n addRefsToFields();\n }, [form?.length]);\n\n return {\n setFocusTo,\n setFocusToErroredField,\n };\n}\n"],"mappings":";;AAEA,SAAwB,eAAe,EAAE,MAAM,WAAW;CACxD,MAAM,iBAAiB,QACrB,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,IAAI,CACjD;CAEA,MAAM,YAAY,QAAQ;EACxB,IAAI,gBACF,OACE,OAAO,QAAQ,OAAO,OAAO,IAAI,CAAA,EAAG,MAAM,UAAU,MAAM,QAAQ,GAAG;OAGvE,OAAO,MAAM,MAAM,UAAU,MAAM,QAAQ,GAAG;CAElD;CAEA,MAAM,yBAAyB;EAC7B,IAAI,gBACF,OAAO,OAAO,OAAO,IAAI,CAAA,EAAG,QAAQ,UAAU,MAAM,KAAK;OAEzD,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK;CAEvC;CAEA,MAAM,wBAAwB;EAC5B,IAAI,gBACF,SAASA,UAAS;GAChB,OAAO,OAAO,KAAKA,KAAI,CAAA,EAAG,QAAQ,QAAQ,QAAQ;IAChD,MAAM,QAAQA,MAAK;IACnB,OAAO;KACL,GAAG;MACF,MAAM;MACL,GAAG;MACH,KAAK,UAAU;MACf,YAAY,UAAU;KACxB;IACF;GACF,GAAG,CAAC,CAAC;EACP,CAAC;OAED,SAASA,UAAS;GAChB,OAAOA,OAAM,KAAK,UAAU;IAC1B,MAAM,MAAM,UAAU;IACtB,MAAM,aAAa,UAAU;IAE7B,OAAO;GACT,CAAC;EACH,CAAC;CAEL;CAEA,MAAM,oBAAoB,EAAE,OAAO,SAAS,cAAc;EACxD,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO;EAElC,iBAAiB;GACf,MAAM,IAAI,SACN,cAAc,OAAO,iBAAiB,OAAO,CAAA,GAC5C,OAAM,CAAE;EACf,GAAG,EAAE;CACP;CAEA,MAAM,cAAc,QAAQ;EAC1B,MAAM,QAAQ,SAAS,GAAG;EAC1B,IAAI,CAAC,OAAO,OAAO;EAEnB,iBAAiB,EAAE,MAAM,CAAC;CAC5B;CACA,MAAM,+BAA+B;EACnC,MAAM,QAAQ,iBAAiB,CAAA,GAAI;EACnC,IAAI,CAAC,OAAO,OAAO;EAEnB,iBAAiB,EAAE,MAAM,CAAC;CAC5B;CAEA,gBAAgB;EACd,gBAAgB;CAClB,GAAG,CAAC,MAAM,MAAM,CAAC;CAEjB,OAAO;EACL;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import General from "../functions/General.js";
|
|
2
|
+
//#region src/Functions/useFormTools/form-drivers/ArrayWithObjects.js
|
|
3
|
+
function ArrayWithObjects({ form, setForm, FormFields }) {
|
|
4
|
+
const { joinData, getFieldData, updateFormField, getFormFields, getFormFieldsAsArray, getFormFieldsKeys } = General({ FormFields });
|
|
5
|
+
const getFormField = (key, argForm = form) => {
|
|
6
|
+
return getFormFields(argForm)?.find((f) => f.key === key);
|
|
7
|
+
};
|
|
8
|
+
const setFormFields = (data) => {
|
|
9
|
+
const isFunction = typeof data === "function";
|
|
10
|
+
setForm((state) => isFunction ? data(state) : data);
|
|
11
|
+
};
|
|
12
|
+
const setFormField = (data, key = null) => setFormFields((fields) => updateFormField(fields, data, key));
|
|
13
|
+
const removeAllFormFields = () => setFormFields([]);
|
|
14
|
+
return {
|
|
15
|
+
joinData,
|
|
16
|
+
getFieldData,
|
|
17
|
+
getFormFields,
|
|
18
|
+
getFormField,
|
|
19
|
+
setFormFields,
|
|
20
|
+
setFormField,
|
|
21
|
+
getFormFieldsAsArray: (fields) => getFormFieldsAsArray(fields || getFormFields()),
|
|
22
|
+
getFormFieldsKeys: (fields) => getFormFieldsKeys(fields || getFormFields()),
|
|
23
|
+
removeAllFormFields
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { ArrayWithObjects as default };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=ArrayWithObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrayWithObjects.js","names":[],"sources":["../../../../../src/Functions/useFormTools/form-drivers/ArrayWithObjects.js"],"sourcesContent":["import General from \"../functions/General\";\n\nexport default function ArrayWithObjects({ form, setForm, FormFields }) {\n const {\n joinData,\n getFieldData,\n updateFormField,\n getFormFields,\n getFormFieldsAsArray,\n getFormFieldsKeys,\n } = General({\n FormFields,\n });\n\n const getFormField = (key, argForm = form) => {\n return getFormFields(argForm)?.find((f) => f.key === key);\n };\n const setFormFields = (data) => {\n const isFunction = typeof data === \"function\";\n setForm((state) => (isFunction ? data(state) : data));\n };\n const setFormField = (data, key = null) =>\n setFormFields((fields) => updateFormField(fields, data, key));\n\n const removeAllFormFields = () => setFormFields([]);\n\n return {\n joinData,\n getFieldData,\n getFormFields,\n getFormField,\n setFormFields,\n setFormField,\n getFormFieldsAsArray: (fields) =>\n getFormFieldsAsArray(fields || getFormFields()),\n getFormFieldsKeys: (fields) => getFormFieldsKeys(fields || getFormFields()),\n removeAllFormFields,\n };\n}\n"],"mappings":";;AAEA,SAAwB,iBAAiB,EAAE,MAAM,SAAS,cAAc;CACtE,MAAM,EACJ,UACA,cACA,iBACA,eACA,sBACA,sBACE,QAAQ,EACV,WACF,CAAC;CAED,MAAM,gBAAgB,KAAK,UAAU,SAAS;EAC5C,OAAO,cAAc,OAAO,CAAA,EAAG,MAAM,MAAM,EAAE,QAAQ,GAAG;CAC1D;CACA,MAAM,iBAAiB,SAAS;EAC9B,MAAM,aAAa,OAAO,SAAS;EACnC,SAAS,UAAW,aAAa,KAAK,KAAK,IAAI,IAAK;CACtD;CACA,MAAM,gBAAgB,MAAM,MAAM,SAChC,eAAe,WAAW,gBAAgB,QAAQ,MAAM,GAAG,CAAC;CAE9D,MAAM,4BAA4B,cAAc,CAAC,CAAC;CAElD,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA,uBAAuB,WACrB,qBAAqB,UAAU,cAAc,CAAC;EAChD,oBAAoB,WAAW,kBAAkB,UAAU,cAAc,CAAC;EAC1E;CACF;AACF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
//#region src/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js
|
|
2
|
+
function ObjectWithIterableObjects({ form, setForm, FormFields }) {
|
|
3
|
+
const joinData = (...args) => {
|
|
4
|
+
const [mainArg] = args;
|
|
5
|
+
const MainArgProto = Array.isArray(mainArg) ? "Array" : typeof mainArg === "object" ? "Object" : void 0;
|
|
6
|
+
const template = Array.isArray(mainArg) ? [] : typeof mainArg === "object" ? {} : null;
|
|
7
|
+
if (!template) return void 0;
|
|
8
|
+
return args.reduce((result, item) => {
|
|
9
|
+
if (MainArgProto === "Array") if (Array.isArray(item)) return [...result, ...item];
|
|
10
|
+
else return [...result, item];
|
|
11
|
+
else if (MainArgProto === "Object") return {
|
|
12
|
+
...result,
|
|
13
|
+
...item
|
|
14
|
+
};
|
|
15
|
+
else return template;
|
|
16
|
+
}, template);
|
|
17
|
+
};
|
|
18
|
+
const getFieldData = (key) => {
|
|
19
|
+
if (Array.isArray(FormFields)) return FormFields[key] || FormFields.find((f) => f.key === key);
|
|
20
|
+
else if (typeof FormFields === "object") return FormFields[key] || Object.values(FormFields).find((f) => f.key === key);
|
|
21
|
+
else return;
|
|
22
|
+
};
|
|
23
|
+
const getFormFields = () => {
|
|
24
|
+
return form.fields || form;
|
|
25
|
+
};
|
|
26
|
+
const getFormField = (key) => {
|
|
27
|
+
if (FormProto === "Array") return getFormFields().find((field) => field.key === key);
|
|
28
|
+
else if (FormProto === "Object") return Object.values(getFormFields()).find((field) => field.key === key) || Object.keys(getFormFields()).reduce((result, field) => {
|
|
29
|
+
if (field === key) result = getFormFields()[field];
|
|
30
|
+
return result;
|
|
31
|
+
}, {});
|
|
32
|
+
else return;
|
|
33
|
+
};
|
|
34
|
+
const setFormFields = (data) => {
|
|
35
|
+
const isFunction = typeof data === "function";
|
|
36
|
+
setForm((state) => {
|
|
37
|
+
if (state.fields) return {
|
|
38
|
+
...state,
|
|
39
|
+
fields: isFunction ? data(state.fields) : data
|
|
40
|
+
};
|
|
41
|
+
else return isFunction ? data(state) : data;
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const setFormField = (data, key = null) => {
|
|
45
|
+
const isFunction = typeof data === "function";
|
|
46
|
+
setFormFields((fields) => {
|
|
47
|
+
const pop = (fields2, key2) => {
|
|
48
|
+
const result = {
|
|
49
|
+
fields: fields2,
|
|
50
|
+
item: void 0
|
|
51
|
+
};
|
|
52
|
+
result.item = fields2[key2] || fields2.find((f) => f.key === key2);
|
|
53
|
+
if (!result.item) return result;
|
|
54
|
+
if (Array.isArray(fields2)) if (!isNaN(parseInt(key2, 10))) result.fields.splice(key2, 1);
|
|
55
|
+
else result.fields = result.fields.filter((f) => f.key !== key2);
|
|
56
|
+
else if (typeof fields2 === "object") result.fields = Object.values(fields2).reduce((object, { key: fKey }) => {
|
|
57
|
+
if (key2 !== fKey) object[key2] = fields2[key2];
|
|
58
|
+
return object;
|
|
59
|
+
}, {});
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
const update = (fields2) => {
|
|
63
|
+
if (!key) return data.key ? Object.values(fields2).reduce((result, field2, i) => {
|
|
64
|
+
const index = fields2[field2.key] ? field2.key : i;
|
|
65
|
+
return {
|
|
66
|
+
...result,
|
|
67
|
+
[index]: data.key === field2.key ? isFunction ? data(field2) : data : field2
|
|
68
|
+
};
|
|
69
|
+
}, {}) : {
|
|
70
|
+
...fields2,
|
|
71
|
+
[fields2.length || 0]: isFunction ? data({}) : data
|
|
72
|
+
};
|
|
73
|
+
const { fields: filtered, item: field } = pop(fields2, key);
|
|
74
|
+
const updatedField = isFunction ? data(field || {}) : {
|
|
75
|
+
...field,
|
|
76
|
+
...data
|
|
77
|
+
};
|
|
78
|
+
return joinData(filtered, fields2[key] ? { [key]: updatedField } : updatedField);
|
|
79
|
+
};
|
|
80
|
+
return update(fields);
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
joinData,
|
|
85
|
+
getFieldData,
|
|
86
|
+
getFormFields,
|
|
87
|
+
getFormField,
|
|
88
|
+
setFormFields,
|
|
89
|
+
setFormField
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
93
|
+
export { ObjectWithIterableObjects as default };
|
|
94
|
+
|
|
95
|
+
//# sourceMappingURL=ObjectWithIterableObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectWithIterableObjects.js","names":["fields","key","field"],"sources":["../../../../../src/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js"],"sourcesContent":["export default function ObjectWithIterableObjects({\n form,\n setForm,\n FormFields,\n}) {\n const joinData = (...args) => {\n const [mainArg] = args;\n const MainArgProto = Array.isArray(mainArg)\n ? \"Array\"\n : typeof mainArg === \"object\"\n ? \"Object\"\n : undefined;\n const template = Array.isArray(mainArg)\n ? []\n : typeof mainArg === \"object\"\n ? {}\n : null;\n\n if (!template) return undefined;\n\n return args.reduce((result, item) => {\n if (MainArgProto === \"Array\") {\n if (Array.isArray(item)) {\n return [...result, ...item];\n } else {\n return [...result, item];\n }\n } else if (MainArgProto === \"Object\") {\n return { ...result, ...item };\n } else {\n return template;\n }\n }, template);\n };\n\n const getFieldData = (key) => {\n if (Array.isArray(FormFields)) {\n return FormFields[key] || FormFields.find((f) => f.key === key);\n } else if (typeof FormFields === \"object\") {\n return (\n FormFields[key] || Object.values(FormFields).find((f) => f.key === key)\n );\n } else {\n return undefined;\n }\n };\n const getFormFields = () => {\n return form.fields || form;\n };\n const getFormField = (key) => {\n // eslint-disable-next-line no-undef\n if (FormProto === \"Array\") {\n return getFormFields().find((field) => field.key === key);\n // eslint-disable-next-line no-undef\n } else if (FormProto === \"Object\") {\n return (\n Object.values(getFormFields()).find((field) => field.key === key) ||\n Object.keys(getFormFields()).reduce((result, field) => {\n if (field === key) result = getFormFields()[field];\n return result;\n }, {})\n );\n } else {\n return undefined;\n }\n };\n const setFormFields = (data) => {\n const isFunction = typeof data === \"function\";\n\n setForm((state) => {\n if (state.fields) {\n return {\n ...state,\n fields: isFunction ? data(state.fields) : data,\n };\n } else {\n return isFunction ? data(state) : data;\n }\n });\n };\n const setFormField = (data, key = null) => {\n const isFunction = typeof data === \"function\";\n\n setFormFields((fields) => {\n const pop = (fields, key) => {\n const result = { fields, item: undefined };\n\n result.item = fields[key] || fields.find((f) => f.key === key);\n\n if (!result.item) return result;\n\n if (Array.isArray(fields)) {\n const index = parseInt(key, 10);\n if (!isNaN(index)) {\n result.fields.splice(key, 1);\n } else {\n result.fields = result.fields.filter((f) => f.key !== key);\n }\n } else if (typeof fields === \"object\") {\n result.fields = Object.values(fields).reduce(\n (object, { key: fKey }) => {\n if (key !== fKey) {\n object[key] = fields[key];\n }\n return object;\n },\n {},\n );\n }\n\n return result;\n };\n const update = (fields) => {\n //KEY is NULLable\n if (!key) {\n return data.key\n ? Object.values(fields).reduce((result, field, i) => {\n const index = fields[field.key] ? field.key : i;\n\n return {\n ...result,\n [index]:\n data.key === field.key\n ? isFunction\n ? data(field)\n : data\n : field,\n };\n }, {})\n : {\n ...fields,\n [fields.length || 0]: isFunction ? data({}) : data,\n };\n }\n\n const { fields: filtered, item: field } = pop(fields, key);\n\n const updatedField = isFunction\n ? data(field || {})\n : { ...field, ...data };\n return joinData(\n filtered,\n fields[key] ? { [key]: updatedField } : updatedField,\n );\n };\n\n return update(fields);\n });\n };\n\n return {\n joinData,\n getFieldData,\n getFormFields,\n getFormField,\n setFormFields,\n setFormField,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import General from "../functions/General.js";
|
|
2
|
+
//#region src/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js
|
|
3
|
+
var noop = () => {};
|
|
4
|
+
function ObjectWithNamedKeyObjects({ form, setForm = noop, FormFields } = {}) {
|
|
5
|
+
const { joinData, getFieldData, updateFormField, getFormFields, getFormFieldsAsArray, getFormFieldsKeys } = General({ FormFields });
|
|
6
|
+
const getFormField = (key, argForm = form) => {
|
|
7
|
+
return Object.values(getFormFields(argForm))?.find((field) => field?.key === key) || Object.keys(getFormFields(argForm))?.reduce((result, field) => {
|
|
8
|
+
if (field === key) result = getFormFields(argForm)[field];
|
|
9
|
+
return result;
|
|
10
|
+
}, null);
|
|
11
|
+
};
|
|
12
|
+
const setFormFields = (data) => {
|
|
13
|
+
const isFunction = typeof data === "function";
|
|
14
|
+
setForm((state) => {
|
|
15
|
+
if (state.fields) return {
|
|
16
|
+
...state,
|
|
17
|
+
fields: isFunction ? data(state.fields) : data
|
|
18
|
+
};
|
|
19
|
+
else return isFunction ? data(state) : data;
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const setFormField = (data, key = null) => setFormFields((fields) => updateFormField(fields, data, key));
|
|
23
|
+
const removeAllFormFields = () => setFormFields({});
|
|
24
|
+
const removeFormField = (key) => setFormFields((state) => Object.keys(state).filter((fKey) => fKey !== key).reduce((obj, key2) => ({
|
|
25
|
+
...obj,
|
|
26
|
+
[key2]: state[key2]
|
|
27
|
+
}), {}));
|
|
28
|
+
const removeFormFields = ([ ...keys]) => setFormFields((state) => Object.keys(state).filter((fKey) => !keys.includes(fKey)).reduce((obj, key) => ({
|
|
29
|
+
...obj,
|
|
30
|
+
[key]: state[key]
|
|
31
|
+
}), {}));
|
|
32
|
+
return {
|
|
33
|
+
joinData,
|
|
34
|
+
getFieldData,
|
|
35
|
+
getFormField,
|
|
36
|
+
setFormFields,
|
|
37
|
+
setFormField,
|
|
38
|
+
getFormFields: () => getFormFields(form),
|
|
39
|
+
getFormFieldsAsArray: () => getFormFieldsAsArray(getFormFields(form)),
|
|
40
|
+
getFormFieldsKeys: () => getFormFieldsKeys(getFormFields(form)),
|
|
41
|
+
removeAllFormFields,
|
|
42
|
+
removeFormField,
|
|
43
|
+
removeFormFields
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { ObjectWithNamedKeyObjects as default };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=ObjectWithNamedKeyObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectWithNamedKeyObjects.js","names":["key"],"sources":["../../../../../src/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js"],"sourcesContent":["import General from \"../functions/General\";\n\nconst noop = () => {};\n\nexport default function ObjectWithNamedKeyObjects({\n form,\n setForm = noop,\n FormFields,\n} = {}) {\n const {\n joinData,\n getFieldData,\n updateFormField,\n getFormFields,\n getFormFieldsAsArray,\n getFormFieldsKeys,\n } = General({\n FormFields,\n });\n\n const getFormField = (key, argForm = form) => {\n return (\n Object.values(getFormFields(argForm))?.find(\n (field) => field?.key === key,\n ) ||\n Object.keys(getFormFields(argForm))?.reduce((result, field) => {\n if (field === key) result = getFormFields(argForm)[field];\n return result;\n }, null)\n );\n };\n const setFormFields = (data) => {\n const isFunction = typeof data === \"function\";\n\n setForm((state) => {\n if (state.fields) {\n return {\n ...state,\n fields: isFunction ? data(state.fields) : data,\n };\n } else {\n return isFunction ? data(state) : data;\n }\n });\n };\n const setFormField = (data, key = null) =>\n setFormFields((fields) => updateFormField(fields, data, key));\n\n const removeAllFormFields = () => setFormFields({});\n const removeFormField = (key) =>\n setFormFields((state) =>\n Object.keys(state)\n .filter((fKey) => fKey !== key)\n .reduce((obj, key) => ({ ...obj, [key]: state[key] }), {}),\n );\n const removeFormFields = ([...keys]) =>\n setFormFields((state) =>\n Object.keys(state)\n .filter((fKey) => !keys.includes(fKey))\n .reduce((obj, key) => ({ ...obj, [key]: state[key] }), {}),\n );\n\n return {\n joinData,\n getFieldData,\n getFormField,\n setFormFields,\n setFormField,\n getFormFields: () => getFormFields(form),\n getFormFieldsAsArray: () => getFormFieldsAsArray(getFormFields(form)),\n getFormFieldsKeys: () => getFormFieldsKeys(getFormFields(form)),\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n };\n}\n"],"mappings":";;AAEA,IAAM,aAAa,CAAC;AAEpB,SAAwB,0BAA0B,EAChD,MACA,UAAU,MACV,eACE,CAAC,GAAG;CACN,MAAM,EACJ,UACA,cACA,iBACA,eACA,sBACA,sBACE,QAAQ,EACV,WACF,CAAC;CAED,MAAM,gBAAgB,KAAK,UAAU,SAAS;EAC5C,OACE,OAAO,OAAO,cAAc,OAAO,CAAC,CAAA,EAAG,MACpC,UAAU,OAAO,QAAQ,GAC5B,KACA,OAAO,KAAK,cAAc,OAAO,CAAC,CAAA,EAAG,QAAQ,QAAQ,UAAU;GAC7D,IAAI,UAAU,KAAK,SAAS,cAAc,OAAO,CAAA,CAAE;GACnD,OAAO;EACT,GAAG,IAAI;CAEX;CACA,MAAM,iBAAiB,SAAS;EAC9B,MAAM,aAAa,OAAO,SAAS;EAEnC,SAAS,UAAU;GACjB,IAAI,MAAM,QACR,OAAO;IACL,GAAG;IACH,QAAQ,aAAa,KAAK,MAAM,MAAM,IAAI;GAC5C;QAEA,OAAO,aAAa,KAAK,KAAK,IAAI;EAEtC,CAAC;CACH;CACA,MAAM,gBAAgB,MAAM,MAAM,SAChC,eAAe,WAAW,gBAAgB,QAAQ,MAAM,GAAG,CAAC;CAE9D,MAAM,4BAA4B,cAAc,CAAC,CAAC;CAClD,MAAM,mBAAmB,QACvB,eAAe,UACb,OAAO,KAAK,KAAK,CAAA,CACd,QAAQ,SAAS,SAAS,GAAG,CAAA,CAC7B,QAAQ,KAAKA,UAAS;EAAE,GAAG;GAAMA,OAAM,MAAMA;CAAK,IAAI,CAAC,CAAC,CAC7D;CACF,MAAM,oBAAoB,EAAI,GAAA,UAC5B,eAAe,UACb,OAAO,KAAK,KAAK,CAAA,CACd,QAAQ,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,CAAA,CACrC,QAAQ,KAAK,SAAS;EAAE,GAAG;GAAM,MAAM,MAAM;CAAK,IAAI,CAAC,CAAC,CAC7D;CAEF,OAAO;EACL;EACA;EACA;EACA;EACA;EACA,qBAAqB,cAAc,IAAI;EACvC,4BAA4B,qBAAqB,cAAc,IAAI,CAAC;EACpE,yBAAyB,kBAAkB,cAAc,IAAI,CAAC;EAC9D;EACA;EACA;CACF;AACF"}
|