intelicoreact 1.3.44 → 1.3.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +9 -1
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +10 -1
- package/dist/Atomic/FormElements/Calendar/Calendar.js +24 -4
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +10 -1
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +14 -2
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +54 -5
- package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +21 -3
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +143 -50
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +7 -1
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +47 -9
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +15 -3
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +29 -15
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +15 -5
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +26 -6
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +35 -19
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +38 -9
- package/dist/Atomic/FormElements/Input/Input.js +57 -24
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +31 -4
- package/dist/Atomic/FormElements/InputColor/InputColor.js +14 -4
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +27 -6
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +42 -7
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +21 -3
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +81 -58
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +41 -6
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +8 -1
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +44 -14
- package/dist/Atomic/FormElements/InputLink/InputLink.js +23 -6
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +4 -0
- package/dist/Atomic/FormElements/InputMask/InputMask.js +208 -77
- package/dist/Atomic/FormElements/InputMask/functions.js +28 -2
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +119 -43
- package/dist/Atomic/FormElements/InputMask2/functions.js +28 -2
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +137 -44
- package/dist/Atomic/FormElements/InputMask3/functions.js +28 -2
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +17 -3
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +24 -5
- package/dist/Atomic/FormElements/Label/Label.js +9 -1
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +73 -35
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +15 -3
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +44 -23
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +17 -7
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +14 -3
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +10 -1
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +14 -3
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +23 -3
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +34 -17
- package/dist/Atomic/FormElements/RangeList/RangeList.js +25 -6
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +11 -1
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +72 -14
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +124 -40
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +10 -1
- package/dist/Atomic/FormElements/Switcher/Switcher.js +10 -1
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +13 -1
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +10 -1
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +17 -2
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +17 -3
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +11 -1
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +29 -6
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +3 -2
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +12 -1
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +145 -53
- package/dist/Atomic/FormElements/Text/Text.js +16 -10
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +9 -1
- package/dist/Atomic/FormElements/Textarea/Textarea.js +13 -1
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +35 -6
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +13 -4
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +21 -7
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +35 -8
- package/dist/Atomic/FormElements/UserContacts/partial/defaultIcons.js +91 -0
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +18 -5
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +10 -3
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +11 -3
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +2 -1
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +12 -5
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +3 -3
- package/dist/Atomic/Layout/Header/Header.js +15 -3
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +20 -3
- package/dist/Atomic/Layout/Spinner/Spinner.js +8 -1
- package/dist/Atomic/UI/Accordion/Accordion.js +19 -3
- package/dist/Atomic/UI/Accordion/AccordionItem.js +23 -9
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +32 -7
- package/dist/Atomic/UI/AccordionText/AccordionText.js +15 -3
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +21 -4
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +15 -3
- package/dist/Atomic/UI/Alert/Alert.js +16 -3
- package/dist/Atomic/UI/Arrow/Arrow.js +16 -3
- package/dist/Atomic/UI/Box/Box.js +9 -3
- package/dist/Atomic/UI/Button/Button.js +11 -2
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +10 -1
- package/dist/Atomic/UI/Chart/Chart.js +29 -4
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +19 -11
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +12 -1
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +34 -11
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +56 -82
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +19 -15
- package/dist/Atomic/UI/Chart/partial/utils.js +20 -6
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +13 -3
- package/dist/Atomic/UI/DateTime/DateTime.js +14 -3
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +16 -4
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +11 -3
- package/dist/Atomic/UI/DoubleString/DoubleString.js +17 -5
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +10 -3
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +52 -17
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +29 -1
- package/dist/Atomic/UI/Hint/Hint.js +30 -5
- package/dist/Atomic/UI/Modal/Modal.js +29 -6
- package/dist/Atomic/UI/Modal/ModalHOC.js +10 -1
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +7 -1
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +8 -1
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +49 -32
- package/dist/Atomic/UI/ModalBackup/Modal.js +90 -65
- package/dist/Atomic/UI/ModalBackup/ModalHOC.js +21 -12
- package/dist/Atomic/UI/ModalBackup/partials/ModalFooter.js +11 -6
- package/dist/Atomic/UI/ModalBackup/partials/ModalTitle.js +19 -15
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +21 -6
- package/dist/Atomic/UI/NavLine/NavLine.js +55 -26
- package/dist/Atomic/UI/NavLine/Tabs.js +3 -2
- package/dist/Atomic/UI/PageTitle/PageTitle.js +10 -2
- package/dist/Atomic/UI/PieChart/PieChart.js +10 -1
- package/dist/Atomic/UI/Price/Price.js +8 -3
- package/dist/Atomic/UI/PriceRange/PriceRange.js +7 -1
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +16 -1
- package/dist/Atomic/UI/Status/Status.js +8 -1
- package/dist/Atomic/UI/Table/Partials/TdCell.js +29 -5
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +11 -1
- package/dist/Atomic/UI/Table/Partials/TdRow.js +17 -5
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +14 -3
- package/dist/Atomic/UI/Table/Table.js +12 -1
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +18 -2
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +9 -1
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +4 -1
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +13 -1
- package/dist/Atomic/UI/Tag/Tag.js +14 -3
- package/dist/Atomic/UI/TagList/TagList.js +35 -19
- package/dist/Atomic/UI/UserBox/UserBox.js +13 -1
- package/dist/Classes/AbortableFetch.js +93 -36
- package/dist/Classes/AnimatedHandler.js +7 -3
- package/dist/Classes/RESTAPI/index.js +43 -39
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +93 -35
- package/dist/Classes/RESTAPI/partials/ApiBase.js +9 -1
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +19 -7
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +35 -28
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +44 -21
- package/dist/Classes/RESTAPI/partials/Utils.js +19 -6
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +6 -2
- package/dist/Classes/RESTAPI/partials/_utils.js +36 -13
- package/dist/Constants/index.constants.js +15 -8
- package/dist/Functions/Portal.js +16 -5
- package/dist/Functions/customEventListener.js +17 -4
- package/dist/Functions/fieldValueFormatters.js +83 -43
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +26 -23
- package/dist/Functions/locale/createTranslator.js +9 -4
- package/dist/Functions/operations.js +22 -12
- package/dist/Functions/presets/inputMaskPresets.js +11 -9
- package/dist/Functions/presets/inputPresets.js +11 -8
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +9 -7
- package/dist/Functions/schemas.js +13 -6
- package/dist/Functions/useBodyScrollLock.js +6 -1
- package/dist/Functions/useClickOutside.js +4 -0
- package/dist/Functions/useDebounce.js +7 -2
- package/dist/Functions/useFieldFocus.js +18 -6
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +9 -0
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +23 -12
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +15 -6
- package/dist/Functions/useFormTools/functions/General.js +28 -18
- package/dist/Functions/useFormTools/functions/RenderFields.js +11 -2
- package/dist/Functions/useFormTools/functions/usePrevious.js +5 -1
- package/dist/Functions/useFormTools/index.js +144 -85
- package/dist/Functions/useInputHighlightError.js +12 -3
- package/dist/Functions/useIsMobile.js +12 -7
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +7 -1
- package/dist/Functions/useKeyPress/useKeyPress.js +9 -1
- package/dist/Functions/useLocalStorage.js +9 -1
- package/dist/Functions/useLocationParams.js +5 -4
- package/dist/Functions/useMetaInfo.js +10 -3
- package/dist/Functions/useMouseUpOutside.js +3 -0
- package/dist/Functions/useOnlineStatus.js +9 -1
- package/dist/Functions/usePasswordChecker.js +20 -4
- package/dist/Functions/usePrevious.js +5 -1
- package/dist/Functions/useResize.js +10 -2
- package/dist/Functions/useScrollTo.js +7 -2
- package/dist/Functions/useToggle.js +5 -1
- package/dist/Functions/utils.js +128 -49
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +9 -2
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +9 -2
- package/dist/Molecular/CustomIcons/components/AppStore.js +9 -2
- package/dist/Molecular/CustomIcons/components/Arrow.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +9 -2
- package/dist/Molecular/CustomIcons/components/Bell.js +9 -2
- package/dist/Molecular/CustomIcons/components/Button.js +9 -2
- package/dist/Molecular/CustomIcons/components/Campaigns.js +9 -2
- package/dist/Molecular/CustomIcons/components/Check.js +9 -2
- package/dist/Molecular/CustomIcons/components/Check2.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/Close.js +9 -2
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +9 -2
- package/dist/Molecular/CustomIcons/components/Delete.js +9 -2
- package/dist/Molecular/CustomIcons/components/Edit.js +9 -2
- package/dist/Molecular/CustomIcons/components/Email.js +9 -2
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +9 -2
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +9 -2
- package/dist/Molecular/CustomIcons/components/Flows.js +9 -2
- package/dist/Molecular/CustomIcons/components/Gift.js +9 -2
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +9 -2
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +9 -2
- package/dist/Molecular/CustomIcons/components/Home.js +9 -2
- package/dist/Molecular/CustomIcons/components/Home2.js +9 -2
- package/dist/Molecular/CustomIcons/components/Key.js +9 -2
- package/dist/Molecular/CustomIcons/components/Landers.js +9 -2
- package/dist/Molecular/CustomIcons/components/Lock.js +9 -2
- package/dist/Molecular/CustomIcons/components/Mail.js +9 -2
- package/dist/Molecular/CustomIcons/components/Mastercard.js +9 -2
- package/dist/Molecular/CustomIcons/components/Minus.js +9 -2
- package/dist/Molecular/CustomIcons/components/Offers.js +9 -2
- package/dist/Molecular/CustomIcons/components/Pause.js +9 -2
- package/dist/Molecular/CustomIcons/components/PayPal.js +9 -2
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +9 -2
- package/dist/Molecular/CustomIcons/components/Phone.js +9 -2
- package/dist/Molecular/CustomIcons/components/Play.js +9 -2
- package/dist/Molecular/CustomIcons/components/Plus.js +9 -2
- package/dist/Molecular/CustomIcons/components/Profile.js +9 -2
- package/dist/Molecular/CustomIcons/components/QRCode.js +9 -2
- package/dist/Molecular/CustomIcons/components/Rectangle.js +9 -2
- package/dist/Molecular/CustomIcons/components/Revert.js +9 -2
- package/dist/Molecular/CustomIcons/components/Star.js +9 -2
- package/dist/Molecular/CustomIcons/components/Star2.js +9 -2
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +9 -2
- package/dist/Molecular/CustomIcons/components/Trash.js +9 -2
- package/dist/Molecular/CustomIcons/components/TrashRed.js +9 -2
- package/dist/Molecular/CustomIcons/components/Triggers.js +9 -2
- package/dist/Molecular/CustomIcons/components/User.js +9 -2
- package/dist/Molecular/CustomIcons/components/Visa.js +9 -2
- package/dist/Molecular/CustomIcons/components/X.js +9 -2
- package/dist/Molecular/CustomIcons/index.js +122 -0
- package/dist/Molecular/FormElement/FormElement.js +12 -1
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +31 -30
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +12 -9
- package/dist/Molecular/InputAddress/InputAddress.js +114 -65
- package/dist/Molecular/InputPassword/InputPassword.js +19 -5
- package/dist/index.js +2 -0
- package/package.json +1 -1
|
@@ -1,29 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
9
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
10
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
11
16
|
var _reactDom = require("react-dom");
|
|
17
|
+
|
|
12
18
|
var _reactFeather = require("react-feather");
|
|
19
|
+
|
|
13
20
|
var _Input = _interopRequireDefault(require("../../../Atomic/FormElements/Input/Input"));
|
|
21
|
+
|
|
14
22
|
var _RadioInput = _interopRequireDefault(require("../../../Atomic/FormElements/RadioInput/RadioInput"));
|
|
23
|
+
|
|
15
24
|
var _fieldValueFormatters = require("../../../Functions/fieldValueFormatters");
|
|
25
|
+
|
|
16
26
|
var _useBodyScrollLock = _interopRequireDefault(require("../../../Functions/useBodyScrollLock"));
|
|
27
|
+
|
|
17
28
|
var _useIsMobile = _interopRequireDefault(require("../../../Functions/useIsMobile"));
|
|
29
|
+
|
|
18
30
|
var _utils = require("../../../Functions/utils");
|
|
31
|
+
|
|
19
32
|
var _DropdownLoader = _interopRequireDefault(require("./components/DropdownLoader"));
|
|
33
|
+
|
|
20
34
|
require("./Dropdown.scss");
|
|
21
|
-
|
|
22
|
-
function
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
23
40
|
const RC = "dropdown";
|
|
24
41
|
const MIN_ITEMS_FOR_SHOW_MOBILE_SEARCH = 10;
|
|
42
|
+
|
|
25
43
|
const Dropdown = _ref => {
|
|
26
|
-
var _options$find,
|
|
44
|
+
var _options$find, _dropdownListWrapperR4, _dropdownListWrapperR5, _dropdownListRef$curr5, _dropdownListRef$curr6, _filteredOptions$find, _tabIndex$toString;
|
|
45
|
+
|
|
27
46
|
let {
|
|
28
47
|
label,
|
|
29
48
|
options = [],
|
|
@@ -75,22 +94,28 @@ const Dropdown = _ref => {
|
|
|
75
94
|
return options === null || options === void 0 ? void 0 : options.reduce((result, item) => {
|
|
76
95
|
if (item !== null && item !== void 0 && item.list || item !== null && item !== void 0 && item.items) {
|
|
77
96
|
var _item$list, _item$items;
|
|
78
|
-
|
|
97
|
+
|
|
98
|
+
result += (item === null || item === void 0 ? void 0 : (_item$list = item.list) === null || _item$list === void 0 ? void 0 : _item$list.length) || (item === null || item === void 0 ? void 0 : (_item$items = item.items) === null || _item$items === void 0 ? void 0 : _item$items.length) || 0;
|
|
79
99
|
} else {
|
|
80
100
|
++result;
|
|
81
101
|
}
|
|
102
|
+
|
|
82
103
|
return result;
|
|
83
104
|
}, 0);
|
|
84
105
|
}, [options]);
|
|
85
106
|
if (isMobile) isSearchable = getTotalOptions() > (minItemsForShowMobileSearch || MIN_ITEMS_FOR_SHOW_MOBILE_SEARCH);
|
|
107
|
+
|
|
86
108
|
const moveOtherToEnd = options => {
|
|
87
109
|
const otherIndex = options === null || options === void 0 ? void 0 : options.findIndex(option => (option === null || option === void 0 ? void 0 : option.value) === "other");
|
|
110
|
+
|
|
88
111
|
if (otherIndex > -1) {
|
|
89
112
|
const other = options === null || options === void 0 ? void 0 : options.splice(otherIndex, 1);
|
|
90
113
|
options.push(...other);
|
|
91
114
|
}
|
|
115
|
+
|
|
92
116
|
return options;
|
|
93
117
|
};
|
|
118
|
+
|
|
94
119
|
const optionsWithOtherAtTheEnd = moveOtherToEnd(options);
|
|
95
120
|
options.map(option => {
|
|
96
121
|
if (option.items) {
|
|
@@ -99,40 +124,48 @@ const Dropdown = _ref => {
|
|
|
99
124
|
});
|
|
100
125
|
const filteredGroups = optionsWithOtherAtTheEnd.map(item => {
|
|
101
126
|
var _item$items2;
|
|
102
|
-
|
|
103
|
-
|
|
127
|
+
|
|
128
|
+
return { ...item,
|
|
104
129
|
items: !isSearchable || !isSearchChanged ? item === null || item === void 0 ? void 0 : item.items : (_item$items2 = item.items) === null || _item$items2 === void 0 ? void 0 : _item$items2.slice().filter(el => {
|
|
105
130
|
var _el$label;
|
|
106
|
-
|
|
131
|
+
|
|
132
|
+
return (el === null || el === void 0 ? void 0 : (_el$label = el.label) === null || _el$label === void 0 ? void 0 : _el$label.toLowerCase().includes((searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase()) || "")) || !(el !== null && el !== void 0 && el.value) || (el === null || el === void 0 ? void 0 : el.value) === "";
|
|
107
133
|
})
|
|
108
134
|
};
|
|
109
135
|
}).filter(item => {
|
|
110
136
|
var _item$items3;
|
|
137
|
+
|
|
111
138
|
return ((_item$items3 = item.items) === null || _item$items3 === void 0 ? void 0 : _item$items3.length) > 0;
|
|
112
139
|
});
|
|
113
140
|
const filteredItems = optionsWithOtherAtTheEnd.filter(item => {
|
|
114
141
|
var _item$items4;
|
|
142
|
+
|
|
115
143
|
return !((_item$items4 = item.items) !== null && _item$items4 !== void 0 && _item$items4.length);
|
|
116
144
|
}).filter(item => {
|
|
117
145
|
var _item$label;
|
|
146
|
+
|
|
118
147
|
if (!isSearchable || !isSearchChanged) return true;
|
|
119
|
-
return (item === null || item === void 0
|
|
148
|
+
return (item === null || item === void 0 ? void 0 : (_item$label = item.label) === null || _item$label === void 0 ? void 0 : _item$label.toLowerCase().includes((searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase()) || "")) || !(item !== null && item !== void 0 && item.value) || (item === null || item === void 0 ? void 0 : item.value) === "";
|
|
120
149
|
});
|
|
121
150
|
const filteredOptions = [...filteredItems, ...filteredGroups];
|
|
122
151
|
const modalBtnTrigger = entity && entity !== "" && typeof entity === "string";
|
|
152
|
+
|
|
123
153
|
const onChangeHandler = item => {
|
|
124
154
|
setIsOpen(false);
|
|
125
155
|
onChange(item.value);
|
|
126
156
|
};
|
|
157
|
+
|
|
127
158
|
const onKeyDown = e => {
|
|
128
159
|
if (![9, 13].includes(e.keyCode)) return false;
|
|
129
160
|
setIsOpen(false);
|
|
130
161
|
};
|
|
162
|
+
|
|
131
163
|
const onKeyUp = e => {
|
|
132
164
|
if (![9, 13].includes(e.keyCode)) return false;
|
|
133
165
|
setIsOpen(true);
|
|
134
|
-
};
|
|
135
|
-
|
|
166
|
+
}; // decorator
|
|
167
|
+
|
|
168
|
+
|
|
136
169
|
const getDepends = getDependsTrigger => {
|
|
137
170
|
const newOnChange = e => {
|
|
138
171
|
if (e.value === "open_modal") {
|
|
@@ -140,9 +173,9 @@ const Dropdown = _ref => {
|
|
|
140
173
|
} else {
|
|
141
174
|
onChangeHandler(e);
|
|
142
175
|
}
|
|
143
|
-
};
|
|
176
|
+
}; // add pseudo option
|
|
177
|
+
|
|
144
178
|
|
|
145
|
-
// add pseudo option
|
|
146
179
|
const newOptions = [{
|
|
147
180
|
label: "New ".concat(entity),
|
|
148
181
|
value: "open_modal",
|
|
@@ -155,18 +188,22 @@ const Dropdown = _ref => {
|
|
|
155
188
|
options: getDependsTrigger ? newOptions : options
|
|
156
189
|
};
|
|
157
190
|
};
|
|
191
|
+
|
|
158
192
|
const handleClickOutside = event => {
|
|
159
193
|
var _getListContainer;
|
|
194
|
+
|
|
160
195
|
if (!((_getListContainer = getListContainer()) !== null && _getListContainer !== void 0 && _getListContainer.contains(event === null || event === void 0 ? void 0 : event.target)) && !(dropdownRef !== null && dropdownRef !== void 0 && dropdownRef.current.contains(event === null || event === void 0 ? void 0 : event.target))) {
|
|
161
196
|
setIsOpen(false);
|
|
162
197
|
}
|
|
163
198
|
};
|
|
199
|
+
|
|
164
200
|
const onSearchHandler = name => {
|
|
165
201
|
let inputValue = name;
|
|
166
202
|
if (!isNotValidateASCII) inputValue = (0, _fieldValueFormatters.formatToOnlyASCIICodeText)(inputValue);
|
|
167
203
|
setIsSearchChanged(true);
|
|
168
204
|
setSearchValue(inputValue);
|
|
169
205
|
};
|
|
206
|
+
|
|
170
207
|
const onWrapperClick = e => {
|
|
171
208
|
if (e.target === (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current)) {
|
|
172
209
|
e.stopPropagation();
|
|
@@ -174,9 +211,12 @@ const Dropdown = _ref => {
|
|
|
174
211
|
setIsOpen(false);
|
|
175
212
|
}
|
|
176
213
|
};
|
|
214
|
+
|
|
177
215
|
const hightlightedText = (text, postfix, description) => {
|
|
178
216
|
var _text;
|
|
217
|
+
|
|
179
218
|
const prepare = text => text === null || text === void 0 ? void 0 : text.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
|
|
219
|
+
|
|
180
220
|
text = text.replace(/["&<>]/g, function (a) {
|
|
181
221
|
return {
|
|
182
222
|
'"': """,
|
|
@@ -190,12 +230,15 @@ const Dropdown = _ref => {
|
|
|
190
230
|
const descriptionPart = description ? "<span class=\"dropdown__list-item-description\">".concat(description, "</span>") : "";
|
|
191
231
|
return main + postfixPart + descriptionPart;
|
|
192
232
|
};
|
|
233
|
+
|
|
193
234
|
const depend = getDepends(modalBtnTrigger);
|
|
235
|
+
|
|
194
236
|
const getMarkupForElement = (item, index, optTestId) => {
|
|
195
|
-
var _item$value, _item$value2, _item$customMobileIco;
|
|
237
|
+
var _item$value, _item$value$toString, _item$value2, _item$value2$toString, _item$customMobileIco;
|
|
238
|
+
|
|
196
239
|
return /*#__PURE__*/_react.default.createElement("button", {
|
|
197
|
-
"data-testid": "dropdown--button--key-".concat(optTestId || (item === null || item === void 0
|
|
198
|
-
key: (_item$value2 = item.value) === null || _item$value2 === void 0
|
|
240
|
+
"data-testid": "dropdown--button--key-".concat(optTestId || (item === null || item === void 0 ? void 0 : (_item$value = item.value) === null || _item$value === void 0 ? void 0 : (_item$value$toString = _item$value.toString()) === null || _item$value$toString === void 0 ? void 0 : _item$value$toString.replace(/\s/, "-")) || (item === null || item === void 0 ? void 0 : item.key) || "item", "--option"),
|
|
241
|
+
key: (_item$value2 = item.value) === null || _item$value2 === void 0 ? void 0 : (_item$value2$toString = _item$value2.toString()) === null || _item$value2$toString === void 0 ? void 0 : _item$value2$toString.replace(/ /g, "_"),
|
|
199
242
|
onMouseDown: () => depend.onChange(item),
|
|
200
243
|
className: (0, _classnames.default)("".concat(RC, "__list-item"), {
|
|
201
244
|
["".concat(RC, "__list-item_active")]: item.value === value,
|
|
@@ -215,18 +258,22 @@ const Dropdown = _ref => {
|
|
|
215
258
|
checked: value
|
|
216
259
|
}) : "");
|
|
217
260
|
};
|
|
261
|
+
|
|
218
262
|
const filteredOptionList = filteredOption => {
|
|
219
|
-
var _filteredOption$items, _filteredOption$label;
|
|
263
|
+
var _filteredOption$items, _filteredOption$label, _filteredOption$label2;
|
|
264
|
+
|
|
220
265
|
return ((_filteredOption$items = filteredOption.items) === null || _filteredOption$items === void 0 ? void 0 : _filteredOption$items.length) > 0 ? /*#__PURE__*/_react.default.createElement("div", {
|
|
221
|
-
key: (_filteredOption$label = filteredOption.label) === null || _filteredOption$label === void 0
|
|
266
|
+
key: (_filteredOption$label = filteredOption.label) === null || _filteredOption$label === void 0 ? void 0 : (_filteredOption$label2 = _filteredOption$label.toString()) === null || _filteredOption$label2 === void 0 ? void 0 : _filteredOption$label2.replace(/ /g, "_").concat(Date.now()),
|
|
222
267
|
className: (0, _classnames.default)("".concat(RC, "-group"), filteredOption.className)
|
|
223
268
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
224
269
|
className: "".concat(RC, "-group__name")
|
|
225
270
|
}, filteredOption.label), filteredOption.items.map((el, index) => getMarkupForElement(el, index, el === null || el === void 0 ? void 0 : el.testId))) : null;
|
|
226
271
|
};
|
|
272
|
+
|
|
227
273
|
const selectedLabel = ((_options$find = options.find(el => el.value === value)) === null || _options$find === void 0 ? void 0 : _options$find.label) || options.reduce((acc, item) => {
|
|
228
|
-
var _item$items5;
|
|
229
|
-
|
|
274
|
+
var _item$items5, _item$items5$find;
|
|
275
|
+
|
|
276
|
+
return acc || ((_item$items5 = item.items) === null || _item$items5 === void 0 ? void 0 : (_item$items5$find = _item$items5.find(el => el.value === value)) === null || _item$items5$find === void 0 ? void 0 : _item$items5$find.label);
|
|
230
277
|
}, null);
|
|
231
278
|
const doScrollCallback = (0, _react.useCallback)(e => {
|
|
232
279
|
const {
|
|
@@ -234,53 +281,68 @@ const Dropdown = _ref => {
|
|
|
234
281
|
isWithAnyScrolling,
|
|
235
282
|
scrollingInaccuracy = 0
|
|
236
283
|
} = scrollReactionObj || {};
|
|
284
|
+
|
|
237
285
|
if (callback && typeof callback === "function") {
|
|
238
286
|
if (isWithAnyScrolling) callback(e);else if (Math.round(e.target.clientHeight + e.target.scrollTop + scrollingInaccuracy) >= e.target.scrollHeight) callback(e);
|
|
239
287
|
}
|
|
240
288
|
}, [filteredOptions]);
|
|
289
|
+
|
|
241
290
|
const getParentNode = () => {
|
|
242
291
|
var _ref2, _document$querySelect;
|
|
292
|
+
|
|
243
293
|
if (isDoNotPullOutListOfMainContainer) return dropdownRef.current;
|
|
244
294
|
return (_ref2 = (_document$querySelect = document.querySelector("div#root")) !== null && _document$querySelect !== void 0 ? _document$querySelect : document.querySelector("div#app")) !== null && _ref2 !== void 0 ? _ref2 : document.querySelector("div#storybook-root");
|
|
245
295
|
};
|
|
296
|
+
|
|
246
297
|
const initListContainer = () => {
|
|
247
298
|
const dropdownList = document.createElement("div");
|
|
248
299
|
dropdownList.setAttribute("id", dropdownId);
|
|
249
300
|
dropdownList.classList.add("dropdown__container");
|
|
301
|
+
|
|
250
302
|
if (isMobile) {
|
|
251
303
|
dropdownList.addEventListener("click", e => {
|
|
252
304
|
if (e.target.id === dropdownId) setIsOpen(false);
|
|
253
305
|
});
|
|
254
306
|
}
|
|
307
|
+
|
|
255
308
|
try {
|
|
256
309
|
var _getListContainer2;
|
|
257
|
-
|
|
310
|
+
|
|
311
|
+
(_getListContainer2 = getListContainer()) === null || _getListContainer2 === void 0 ? void 0 : _getListContainer2.remove();
|
|
258
312
|
} finally {
|
|
259
313
|
if (isMobile) {
|
|
260
314
|
var _getParentNode;
|
|
315
|
+
|
|
261
316
|
try {
|
|
262
317
|
var _document$getElementB;
|
|
263
|
-
|
|
318
|
+
|
|
319
|
+
(_document$getElementB = document.getElementById("mlw-".concat(dropdownId))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.remove();
|
|
264
320
|
} catch (e) {}
|
|
321
|
+
|
|
265
322
|
const dropdownMobileListWrapper = document.createElement("div");
|
|
266
323
|
dropdownMobileListWrapper.classList.add("dropdown-mobile");
|
|
267
324
|
dropdownMobileListWrapper.setAttribute("id", "mlw-".concat(dropdownId));
|
|
268
|
-
dropdownMobileListWrapper === null || dropdownMobileListWrapper === void 0
|
|
269
|
-
(_getParentNode = getParentNode()) === null || _getParentNode === void 0
|
|
325
|
+
dropdownMobileListWrapper === null || dropdownMobileListWrapper === void 0 ? void 0 : dropdownMobileListWrapper.append(dropdownList);
|
|
326
|
+
(_getParentNode = getParentNode()) === null || _getParentNode === void 0 ? void 0 : _getParentNode.append(dropdownMobileListWrapper);
|
|
270
327
|
} else {
|
|
271
328
|
var _getParentNode2;
|
|
272
|
-
|
|
329
|
+
|
|
330
|
+
(_getParentNode2 = getParentNode()) === null || _getParentNode2 === void 0 ? void 0 : _getParentNode2.append(dropdownList);
|
|
273
331
|
}
|
|
274
332
|
}
|
|
275
333
|
};
|
|
334
|
+
|
|
276
335
|
const getListContainer = () => {
|
|
277
336
|
return document.getElementById(dropdownId);
|
|
278
337
|
};
|
|
338
|
+
|
|
279
339
|
const getListContainerWrapper = () => {
|
|
280
340
|
return document.getElementById("mlw-".concat(dropdownId));
|
|
281
341
|
};
|
|
342
|
+
|
|
282
343
|
const setListContainerStyles = () => {
|
|
283
|
-
var _dropdownRef$current$, _dropdownListWrapperR, _getComputedStyle$mar, _getComputedStyle, _getComputedStyle$max, _getComputedStyle2, _sw$getBoundingClient, _dropdownListWrapperR2, _lh$getBoundingClient;
|
|
344
|
+
var _dropdownRef$current$, _dropdownListWrapperR, _getComputedStyle$mar, _getComputedStyle, _getComputedStyle$mar2, _getComputedStyle$max, _getComputedStyle2, _getComputedStyle2$ma, _sw$getBoundingClient, _dropdownListWrapperR2, _dropdownListWrapperR3, _lh$getBoundingClient;
|
|
345
|
+
|
|
284
346
|
const lc = getListContainer();
|
|
285
347
|
if (!lc || !isOpen) return false;
|
|
286
348
|
const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
|
|
@@ -291,27 +353,30 @@ const Dropdown = _ref => {
|
|
|
291
353
|
top
|
|
292
354
|
} = (_dropdownRef$current$ = dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current.getBoundingClientRect()) !== null && _dropdownRef$current$ !== void 0 ? _dropdownRef$current$ : {};
|
|
293
355
|
const sw = lc.getElementsByClassName("dropdown__list")[0];
|
|
294
|
-
const lh = dropdownListWrapperRef === null || dropdownListWrapperRef === void 0
|
|
295
|
-
const margin = parseInt((_getComputedStyle$mar = (_getComputedStyle = getComputedStyle(sw)) === null || _getComputedStyle === void 0
|
|
296
|
-
const maxHeight = initListHeight !== null && initListHeight !== void 0 ? initListHeight : parseInt((_getComputedStyle$max = (_getComputedStyle2 = getComputedStyle(sw)) === null || _getComputedStyle2 === void 0
|
|
356
|
+
const lh = dropdownListWrapperRef === null || dropdownListWrapperRef === void 0 ? void 0 : (_dropdownListWrapperR = dropdownListWrapperRef.current) === null || _dropdownListWrapperR === void 0 ? void 0 : _dropdownListWrapperR.getElementsByClassName("dropdown__list-header")[0];
|
|
357
|
+
const margin = parseInt((_getComputedStyle$mar = (_getComputedStyle = getComputedStyle(sw)) === null || _getComputedStyle === void 0 ? void 0 : (_getComputedStyle$mar2 = _getComputedStyle.marginTop) === null || _getComputedStyle$mar2 === void 0 ? void 0 : _getComputedStyle$mar2.replace("px", "")) !== null && _getComputedStyle$mar !== void 0 ? _getComputedStyle$mar : 0, 10);
|
|
358
|
+
const maxHeight = initListHeight !== null && initListHeight !== void 0 ? initListHeight : parseInt((_getComputedStyle$max = (_getComputedStyle2 = getComputedStyle(sw)) === null || _getComputedStyle2 === void 0 ? void 0 : (_getComputedStyle2$ma = _getComputedStyle2.maxHeight) === null || _getComputedStyle2$ma === void 0 ? void 0 : _getComputedStyle2$ma.replace("px", "")) !== null && _getComputedStyle$max !== void 0 ? _getComputedStyle$max : 0, 10);
|
|
297
359
|
if (initListHeight === null) setInitListHeight(maxHeight);
|
|
298
360
|
const toTop = top - margin;
|
|
299
361
|
const toBottom = windowHeight - top - height - margin * 2;
|
|
300
|
-
const swHeight = sw === null || sw === void 0
|
|
301
|
-
const maxSwHeight = isMobile ? (dropdownListWrapperRef === null || dropdownListWrapperRef === void 0
|
|
362
|
+
const swHeight = sw === null || sw === void 0 ? void 0 : (_sw$getBoundingClient = sw.getBoundingClientRect()) === null || _sw$getBoundingClient === void 0 ? void 0 : _sw$getBoundingClient.height;
|
|
363
|
+
const maxSwHeight = isMobile ? (dropdownListWrapperRef === null || dropdownListWrapperRef === void 0 ? void 0 : (_dropdownListWrapperR2 = dropdownListWrapperRef.current) === null || _dropdownListWrapperR2 === void 0 ? void 0 : (_dropdownListWrapperR3 = _dropdownListWrapperR2.getBoundingClientRect()) === null || _dropdownListWrapperR3 === void 0 ? void 0 : _dropdownListWrapperR3.height) - (lh === null || lh === void 0 ? void 0 : (_lh$getBoundingClient = lh.getBoundingClientRect()) === null || _lh$getBoundingClient === void 0 ? void 0 : _lh$getBoundingClient.height) : toTop >= maxHeight || toBottom >= maxHeight ? maxHeight - 3 * margin : toTop > toBottom ? toTop - 3 * margin : toBottom - 4 * margin;
|
|
302
364
|
const listPos = toTop < toBottom || toBottom >= swHeight ? "bottom" : "top";
|
|
303
365
|
lc.style.minWidth = "".concat(width, "px");
|
|
304
366
|
lc.style.left = "".concat(left, "px");
|
|
305
367
|
lc.style.top = "".concat(listPos === "bottom" ? top + height : top - swHeight - 3 * margin, "px");
|
|
306
368
|
sw.style.maxHeight = "".concat(maxSwHeight, "px");
|
|
307
369
|
};
|
|
370
|
+
|
|
308
371
|
const renderListContainer = () => {
|
|
309
372
|
const lc = getListContainer();
|
|
310
373
|
if (!lc) return null;
|
|
311
374
|
return /*#__PURE__*/(0, _reactDom.createPortal)(getListMarkUp(), lc);
|
|
312
375
|
};
|
|
376
|
+
|
|
313
377
|
const getSortedOptions = data => {
|
|
314
378
|
let newData = [...data];
|
|
379
|
+
|
|
315
380
|
if (sortAlphabetical) {
|
|
316
381
|
const openModalOption = newData.filter(_ref3 => {
|
|
317
382
|
let {
|
|
@@ -335,13 +400,17 @@ const Dropdown = _ref => {
|
|
|
335
400
|
if (item !== null && item !== void 0 && item.items) {
|
|
336
401
|
item.items = [...item.items].sort(_utils.compareAlphabetical);
|
|
337
402
|
}
|
|
403
|
+
|
|
338
404
|
return item;
|
|
339
405
|
});
|
|
340
406
|
}
|
|
407
|
+
|
|
341
408
|
return newData;
|
|
342
409
|
};
|
|
410
|
+
|
|
343
411
|
const getListMarkUp = () => {
|
|
344
412
|
var _getSortedOptions;
|
|
413
|
+
|
|
345
414
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
346
415
|
className: (0, _classnames.default)("".concat(RC, "__container-wrapper")),
|
|
347
416
|
ref: wrapperRef,
|
|
@@ -390,17 +459,19 @@ const Dropdown = _ref => {
|
|
|
390
459
|
ref: dropdownListRef
|
|
391
460
|
}, (_getSortedOptions = getSortedOptions(depend.options)) === null || _getSortedOptions === void 0 ? void 0 : _getSortedOptions.map(option => {
|
|
392
461
|
var _option$items, _option$label;
|
|
462
|
+
|
|
393
463
|
if (option !== null && option !== void 0 && (_option$items = option.items) !== null && _option$items !== void 0 && _option$items.length) {
|
|
394
464
|
if (!isSearchable || !isSearchChanged) {
|
|
395
465
|
return filteredOptionList(option);
|
|
396
466
|
} else {
|
|
397
467
|
var _option$items2;
|
|
468
|
+
|
|
398
469
|
const items = (_option$items2 = option.items) === null || _option$items2 === void 0 ? void 0 : _option$items2.slice().filter(el => {
|
|
399
470
|
var _el$label2;
|
|
400
|
-
|
|
471
|
+
|
|
472
|
+
return (el === null || el === void 0 ? void 0 : (_el$label2 = el.label) === null || _el$label2 === void 0 ? void 0 : _el$label2.toLowerCase().includes((searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase()) || "")) || !(el !== null && el !== void 0 && el.value) || (el === null || el === void 0 ? void 0 : el.value) === "";
|
|
401
473
|
});
|
|
402
|
-
if (items !== null && items !== void 0 && items.length) return filteredOptionList({
|
|
403
|
-
...option,
|
|
474
|
+
if (items !== null && items !== void 0 && items.length) return filteredOptionList({ ...option,
|
|
404
475
|
items
|
|
405
476
|
});
|
|
406
477
|
return null;
|
|
@@ -412,12 +483,14 @@ const Dropdown = _ref => {
|
|
|
412
483
|
className: "".concat(RC, "__list-item ").concat(RC, "__list-item--no-options")
|
|
413
484
|
}, noOptionsText), disabled && isOpen && /*#__PURE__*/_react.default.createElement(_DropdownLoader.default, null))));
|
|
414
485
|
};
|
|
486
|
+
|
|
415
487
|
const toggleList = e => {
|
|
416
|
-
e === null || e === void 0
|
|
488
|
+
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
417
489
|
setIsOpen(isOpen => {
|
|
418
490
|
return !isOpen;
|
|
419
491
|
});
|
|
420
492
|
};
|
|
493
|
+
|
|
421
494
|
const closeList = isOpen ? handleClickOutside : () => {};
|
|
422
495
|
(0, _react.useEffect)(() => {
|
|
423
496
|
if (!isDoNotPullOutListOfMainContainer || dropdownRef.current) {
|
|
@@ -426,6 +499,7 @@ const Dropdown = _ref => {
|
|
|
426
499
|
}, [isDoNotPullOutListOfMainContainer, dropdownRef.current]);
|
|
427
500
|
(0, _react.useLayoutEffect)(() => {
|
|
428
501
|
var _getListContainer3;
|
|
502
|
+
|
|
429
503
|
if (!isMobile) {
|
|
430
504
|
window.addEventListener("resize", setListContainerStyles);
|
|
431
505
|
window.addEventListener("mousewheel", closeList);
|
|
@@ -437,19 +511,21 @@ const Dropdown = _ref => {
|
|
|
437
511
|
window.removeEventListener("scroll", closeList);
|
|
438
512
|
window.removeEventListener("touchmove", closeList);
|
|
439
513
|
}
|
|
440
|
-
|
|
514
|
+
|
|
515
|
+
(_getListContainer3 = getListContainer()) === null || _getListContainer3 === void 0 ? void 0 : _getListContainer3.addEventListener("click", closeList);
|
|
441
516
|
return () => {
|
|
442
517
|
var _getListContainer4;
|
|
518
|
+
|
|
443
519
|
window.removeEventListener("resize", setListContainerStyles);
|
|
444
520
|
window.removeEventListener("mousewheel", closeList);
|
|
445
521
|
window.removeEventListener("scroll", closeList);
|
|
446
522
|
window.removeEventListener("touchmove", closeList);
|
|
447
|
-
(_getListContainer4 = getListContainer()) === null || _getListContainer4 === void 0
|
|
523
|
+
(_getListContainer4 = getListContainer()) === null || _getListContainer4 === void 0 ? void 0 : _getListContainer4.removeEventListener("click", closeList);
|
|
448
524
|
};
|
|
449
525
|
}, [getListContainer]);
|
|
450
526
|
(0, _react.useLayoutEffect)(() => {
|
|
451
527
|
setListContainerStyles();
|
|
452
|
-
}, [isOpen, searchValue, isMobile, options, dropdownListWrapperRef === null || dropdownListWrapperRef === void 0
|
|
528
|
+
}, [isOpen, searchValue, isMobile, options, dropdownListWrapperRef === null || dropdownListWrapperRef === void 0 ? void 0 : (_dropdownListWrapperR4 = dropdownListWrapperRef.current) === null || _dropdownListWrapperR4 === void 0 ? void 0 : (_dropdownListWrapperR5 = _dropdownListWrapperR4.getBoundingClientRect()) === null || _dropdownListWrapperR5 === void 0 ? void 0 : _dropdownListWrapperR5.height]);
|
|
453
529
|
(0, _react.useEffect)(() => {
|
|
454
530
|
document.addEventListener("click", handleClickOutside, true);
|
|
455
531
|
return () => document.removeEventListener("click", handleClickOutside, true);
|
|
@@ -458,9 +534,11 @@ const Dropdown = _ref => {
|
|
|
458
534
|
if (!isOpen) {
|
|
459
535
|
setIsSearchChanged(false);
|
|
460
536
|
}
|
|
537
|
+
|
|
461
538
|
if (scrollReactionObj && typeof scrollReactionObj === "object" && isOpen && dropdownListRef && dropdownListRef.current) {
|
|
462
539
|
dropdownListRef.current.addEventListener("scroll", doScrollCallback);
|
|
463
540
|
}
|
|
541
|
+
|
|
464
542
|
return () => {
|
|
465
543
|
if (scrollReactionObj && typeof scrollReactionObj === "object") removeEventListener("scroll", doScrollCallback);
|
|
466
544
|
};
|
|
@@ -470,20 +548,26 @@ const Dropdown = _ref => {
|
|
|
470
548
|
setSearchValue(selectedLabel);
|
|
471
549
|
setTimeout(() => searchInputRef.current.select(), 1);
|
|
472
550
|
}
|
|
551
|
+
|
|
473
552
|
if (!isSearchInputFocused && !isOpen) {
|
|
474
553
|
setSearchValue(null);
|
|
475
554
|
}
|
|
476
555
|
}, [isSearchInputFocused]);
|
|
477
556
|
(0, _react.useEffect)(() => {
|
|
478
557
|
var _searchInputRef$curre;
|
|
479
|
-
|
|
558
|
+
|
|
559
|
+
if (isOpen && !isSearchInputFocused && searchInputRef !== null && searchInputRef !== void 0 && searchInputRef.current && !isMobile) searchInputRef === null || searchInputRef === void 0 ? void 0 : (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
|
|
560
|
+
|
|
480
561
|
if (isOpen) {
|
|
481
562
|
var _getListContainer5;
|
|
482
|
-
|
|
563
|
+
|
|
564
|
+
(_getListContainer5 = getListContainer()) === null || _getListContainer5 === void 0 ? void 0 : _getListContainer5.classList.add("dropdown__container--opened");
|
|
483
565
|
} else {
|
|
484
566
|
var _getListContainer6;
|
|
485
|
-
|
|
567
|
+
|
|
568
|
+
(_getListContainer6 = getListContainer()) === null || _getListContainer6 === void 0 ? void 0 : _getListContainer6.classList.remove("dropdown__container--opened");
|
|
486
569
|
}
|
|
570
|
+
|
|
487
571
|
if (!isOpen && isMobile) {
|
|
488
572
|
setSearchValue(null);
|
|
489
573
|
}
|
|
@@ -491,34 +575,41 @@ const Dropdown = _ref => {
|
|
|
491
575
|
(0, _react.useEffect)(() => {
|
|
492
576
|
if (isOpen && isMobile && dropdownListRef !== null && dropdownListRef !== void 0 && dropdownListRef.current && !searchValue) {
|
|
493
577
|
var _dropdownListRef$curr, _dropdownListRef$curr2, _dropdownListRef$curr3, _dropdownListRef$curr4;
|
|
494
|
-
|
|
495
|
-
|
|
578
|
+
|
|
579
|
+
setIsScrollableList((dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr = dropdownListRef.current) === null || _dropdownListRef$curr === void 0 ? void 0 : _dropdownListRef$curr.scrollHeight) > (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr2 = dropdownListRef.current) === null || _dropdownListRef$curr2 === void 0 ? void 0 : _dropdownListRef$curr2.clientHeight));
|
|
580
|
+
setIsFixedMaxHeight(isScrollableList || (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr3 = dropdownListRef.current) === null || _dropdownListRef$curr3 === void 0 ? void 0 : _dropdownListRef$curr3.scrollHeight) > (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr4 = dropdownListRef.current) === null || _dropdownListRef$curr4 === void 0 ? void 0 : _dropdownListRef$curr4.clientHeight));
|
|
496
581
|
}
|
|
497
|
-
}, [isOpen, isMobile, isScrollableList, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current, dropdownListRef === null || dropdownListRef === void 0
|
|
582
|
+
}, [isOpen, isMobile, isScrollableList, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr5 = dropdownListRef.current) === null || _dropdownListRef$curr5 === void 0 ? void 0 : _dropdownListRef$curr5.scrollHeight, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr6 = dropdownListRef.current) === null || _dropdownListRef$curr6 === void 0 ? void 0 : _dropdownListRef$curr6.clientHeight]);
|
|
498
583
|
(0, _react.useEffect)(() => {
|
|
499
584
|
const setScrollTopValue = e => {
|
|
500
585
|
setScrollTop(parseInt(e.target.scrollTop, 10));
|
|
501
586
|
};
|
|
587
|
+
|
|
502
588
|
if (isOpen && isMobile && dropdownListRef !== null && dropdownListRef !== void 0 && dropdownListRef.current) {
|
|
503
589
|
var _dropdownListRef$curr7;
|
|
504
|
-
|
|
590
|
+
|
|
591
|
+
dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr7 = dropdownListRef.current) === null || _dropdownListRef$curr7 === void 0 ? void 0 : _dropdownListRef$curr7.addEventListener("scroll", setScrollTopValue);
|
|
505
592
|
}
|
|
593
|
+
|
|
506
594
|
return () => {
|
|
507
595
|
var _dropdownListRef$curr8;
|
|
508
|
-
|
|
596
|
+
|
|
597
|
+
dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr8 = dropdownListRef.current) === null || _dropdownListRef$curr8 === void 0 ? void 0 : _dropdownListRef$curr8.removeEventListener("scroll", setScrollTopValue);
|
|
509
598
|
};
|
|
510
599
|
}, [isOpen, isMobile, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current]);
|
|
511
600
|
(0, _react.useEffect)(() => {
|
|
512
601
|
if (dropdownListRef !== null && dropdownListRef !== void 0 && dropdownListRef.current) {
|
|
513
602
|
var _dropdownListRef$curr9, _dropdownListRef$curr10;
|
|
514
|
-
|
|
603
|
+
|
|
604
|
+
setScrollHeight(parseInt((dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr9 = dropdownListRef.current) === null || _dropdownListRef$curr9 === void 0 ? void 0 : _dropdownListRef$curr9.scrollHeight) - (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr10 = dropdownListRef.current) === null || _dropdownListRef$curr10 === void 0 ? void 0 : _dropdownListRef$curr10.clientHeight), 10));
|
|
515
605
|
}
|
|
516
606
|
}, [scrollTop, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current]);
|
|
517
607
|
(0, _react.useEffect)(() => {
|
|
518
608
|
return () => {
|
|
519
609
|
var _getListContainer7, _getListContainerWrap;
|
|
520
|
-
|
|
521
|
-
(
|
|
610
|
+
|
|
611
|
+
(_getListContainer7 = getListContainer()) === null || _getListContainer7 === void 0 ? void 0 : _getListContainer7.remove();
|
|
612
|
+
(_getListContainerWrap = getListContainerWrapper()) === null || _getListContainerWrap === void 0 ? void 0 : _getListContainerWrap.remove();
|
|
522
613
|
};
|
|
523
614
|
}, []);
|
|
524
615
|
const postfixText = selectedLabel && ((_filteredOptions$find = filteredOptions.find(option => option.value === value)) === null || _filteredOptions$find === void 0 ? void 0 : _filteredOptions$find.postfix) || null;
|
|
@@ -536,7 +627,7 @@ const Dropdown = _ref => {
|
|
|
536
627
|
onClick: toggleList,
|
|
537
628
|
onKeyDown: onKeyDown,
|
|
538
629
|
onKeyUp: onKeyUp,
|
|
539
|
-
tabIndex: tabIndex === null || tabIndex === void 0
|
|
630
|
+
tabIndex: tabIndex === null || tabIndex === void 0 ? void 0 : (_tabIndex$toString = tabIndex.toString) === null || _tabIndex$toString === void 0 ? void 0 : _tabIndex$toString.call(tabIndex)
|
|
540
631
|
}, customTrigger || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isSearchable && !isMobile ? /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
|
|
541
632
|
ref: searchInputRef,
|
|
542
633
|
className: "".concat(RC, "__input"),
|
|
@@ -565,4 +656,6 @@ const Dropdown = _ref => {
|
|
|
565
656
|
className: "mobile-icon"
|
|
566
657
|
}) : isOpen ? /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, null) : /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, null)))), isOpen && renderListContainer());
|
|
567
658
|
};
|
|
568
|
-
|
|
659
|
+
|
|
660
|
+
var _default = Dropdown;
|
|
661
|
+
exports.default = _default;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
9
12
|
require("./DropdownLoader.scss");
|
|
13
|
+
|
|
10
14
|
const DropdownLoader = function (_ref) {
|
|
11
15
|
let {
|
|
12
16
|
variant
|
|
@@ -17,4 +21,6 @@ const DropdownLoader = function (_ref) {
|
|
|
17
21
|
className: "lds-ring".concat(variant === "little" ? " lds-ring_little" : "")
|
|
18
22
|
}, /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null)));
|
|
19
23
|
};
|
|
20
|
-
|
|
24
|
+
|
|
25
|
+
var _default = DropdownLoader;
|
|
26
|
+
exports.default = _default;
|