intelicoreact 1.3.26 → 1.3.28
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 +153 -58
- 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 +146 -56
- 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 +10 -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 +15 -2
- 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 +127 -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 +13 -3
- package/dist/index.js +2 -0
- package/package.json +2 -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))) {
|
|
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,51 +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
|
-
var _document$querySelect;
|
|
291
|
+
var _ref2, _document$querySelect;
|
|
292
|
+
|
|
243
293
|
if (isDoNotPullOutListOfMainContainer) return dropdownRef.current;
|
|
244
|
-
return (_document$querySelect = document.querySelector("div#root")) !== null && _document$querySelect !== void 0 ? _document$querySelect : document.querySelector("div#app");
|
|
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) {
|
|
314
|
+
var _getParentNode;
|
|
315
|
+
|
|
260
316
|
try {
|
|
261
317
|
var _document$getElementB;
|
|
262
|
-
|
|
318
|
+
|
|
319
|
+
(_document$getElementB = document.getElementById("mlw-".concat(dropdownId))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.remove();
|
|
263
320
|
} catch (e) {}
|
|
321
|
+
|
|
264
322
|
const dropdownMobileListWrapper = document.createElement("div");
|
|
265
323
|
dropdownMobileListWrapper.classList.add("dropdown-mobile");
|
|
266
324
|
dropdownMobileListWrapper.setAttribute("id", "mlw-".concat(dropdownId));
|
|
267
|
-
dropdownMobileListWrapper.append(dropdownList);
|
|
268
|
-
getParentNode().append(dropdownMobileListWrapper);
|
|
325
|
+
dropdownMobileListWrapper === null || dropdownMobileListWrapper === void 0 ? void 0 : dropdownMobileListWrapper.append(dropdownList);
|
|
326
|
+
(_getParentNode = getParentNode()) === null || _getParentNode === void 0 ? void 0 : _getParentNode.append(dropdownMobileListWrapper);
|
|
269
327
|
} else {
|
|
270
|
-
|
|
328
|
+
var _getParentNode2;
|
|
329
|
+
|
|
330
|
+
(_getParentNode2 = getParentNode()) === null || _getParentNode2 === void 0 ? void 0 : _getParentNode2.append(dropdownList);
|
|
271
331
|
}
|
|
272
332
|
}
|
|
273
333
|
};
|
|
334
|
+
|
|
274
335
|
const getListContainer = () => {
|
|
275
336
|
return document.getElementById(dropdownId);
|
|
276
337
|
};
|
|
338
|
+
|
|
277
339
|
const getListContainerWrapper = () => {
|
|
278
340
|
return document.getElementById("mlw-".concat(dropdownId));
|
|
279
341
|
};
|
|
342
|
+
|
|
280
343
|
const setListContainerStyles = () => {
|
|
281
|
-
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
|
+
|
|
282
346
|
const lc = getListContainer();
|
|
283
347
|
if (!lc || !isOpen) return false;
|
|
284
348
|
const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
|
|
@@ -289,57 +353,64 @@ const Dropdown = _ref => {
|
|
|
289
353
|
top
|
|
290
354
|
} = (_dropdownRef$current$ = dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current.getBoundingClientRect()) !== null && _dropdownRef$current$ !== void 0 ? _dropdownRef$current$ : {};
|
|
291
355
|
const sw = lc.getElementsByClassName("dropdown__list")[0];
|
|
292
|
-
const lh = dropdownListWrapperRef === null || dropdownListWrapperRef === void 0
|
|
293
|
-
const margin = parseInt((_getComputedStyle$mar = (_getComputedStyle = getComputedStyle(sw)) === null || _getComputedStyle === void 0
|
|
294
|
-
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);
|
|
295
359
|
if (initListHeight === null) setInitListHeight(maxHeight);
|
|
296
360
|
const toTop = top - margin;
|
|
297
361
|
const toBottom = windowHeight - top - height - margin * 2;
|
|
298
|
-
const swHeight = sw === null || sw === void 0
|
|
299
|
-
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;
|
|
300
364
|
const listPos = toTop < toBottom || toBottom >= swHeight ? "bottom" : "top";
|
|
301
365
|
lc.style.minWidth = "".concat(width, "px");
|
|
302
366
|
lc.style.left = "".concat(left, "px");
|
|
303
367
|
lc.style.top = "".concat(listPos === "bottom" ? top + height : top - swHeight - 3 * margin, "px");
|
|
304
368
|
sw.style.maxHeight = "".concat(maxSwHeight, "px");
|
|
305
369
|
};
|
|
370
|
+
|
|
306
371
|
const renderListContainer = () => {
|
|
307
372
|
const lc = getListContainer();
|
|
308
373
|
if (!lc) return null;
|
|
309
374
|
return /*#__PURE__*/(0, _reactDom.createPortal)(getListMarkUp(), lc);
|
|
310
375
|
};
|
|
376
|
+
|
|
311
377
|
const getSortedOptions = data => {
|
|
312
378
|
let newData = [...data];
|
|
379
|
+
|
|
313
380
|
if (sortAlphabetical) {
|
|
314
|
-
const openModalOption = newData.filter(
|
|
381
|
+
const openModalOption = newData.filter(_ref3 => {
|
|
315
382
|
let {
|
|
316
383
|
value
|
|
317
|
-
} =
|
|
384
|
+
} = _ref3;
|
|
318
385
|
return value === "open_modal";
|
|
319
386
|
});
|
|
320
|
-
const emptyOption = newData.filter(
|
|
387
|
+
const emptyOption = newData.filter(_ref4 => {
|
|
321
388
|
let {
|
|
322
389
|
value
|
|
323
|
-
} =
|
|
390
|
+
} = _ref4;
|
|
324
391
|
return value === "";
|
|
325
392
|
});
|
|
326
|
-
const restOfOptions = newData.filter(
|
|
393
|
+
const restOfOptions = newData.filter(_ref5 => {
|
|
327
394
|
let {
|
|
328
395
|
value
|
|
329
|
-
} =
|
|
396
|
+
} = _ref5;
|
|
330
397
|
return value !== "open_modal" && value !== "";
|
|
331
398
|
}).sort(_utils.compareAlphabetical);
|
|
332
399
|
newData = [...openModalOption, ...emptyOption, ...restOfOptions].map(item => {
|
|
333
400
|
if (item !== null && item !== void 0 && item.items) {
|
|
334
401
|
item.items = [...item.items].sort(_utils.compareAlphabetical);
|
|
335
402
|
}
|
|
403
|
+
|
|
336
404
|
return item;
|
|
337
405
|
});
|
|
338
406
|
}
|
|
407
|
+
|
|
339
408
|
return newData;
|
|
340
409
|
};
|
|
410
|
+
|
|
341
411
|
const getListMarkUp = () => {
|
|
342
412
|
var _getSortedOptions;
|
|
413
|
+
|
|
343
414
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
344
415
|
className: (0, _classnames.default)("".concat(RC, "__container-wrapper")),
|
|
345
416
|
ref: wrapperRef,
|
|
@@ -389,17 +460,19 @@ const Dropdown = _ref => {
|
|
|
389
460
|
ref: dropdownListRef
|
|
390
461
|
}, (_getSortedOptions = getSortedOptions(depend.options)) === null || _getSortedOptions === void 0 ? void 0 : _getSortedOptions.map(option => {
|
|
391
462
|
var _option$items, _option$label;
|
|
463
|
+
|
|
392
464
|
if (option !== null && option !== void 0 && (_option$items = option.items) !== null && _option$items !== void 0 && _option$items.length) {
|
|
393
465
|
if (!isSearchable || !isSearchChanged) {
|
|
394
466
|
return filteredOptionList(option);
|
|
395
467
|
} else {
|
|
396
468
|
var _option$items2;
|
|
469
|
+
|
|
397
470
|
const items = (_option$items2 = option.items) === null || _option$items2 === void 0 ? void 0 : _option$items2.slice().filter(el => {
|
|
398
471
|
var _el$label2;
|
|
399
|
-
|
|
472
|
+
|
|
473
|
+
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) === "";
|
|
400
474
|
});
|
|
401
|
-
if (items !== null && items !== void 0 && items.length) return filteredOptionList({
|
|
402
|
-
...option,
|
|
475
|
+
if (items !== null && items !== void 0 && items.length) return filteredOptionList({ ...option,
|
|
403
476
|
items
|
|
404
477
|
});
|
|
405
478
|
return null;
|
|
@@ -411,10 +484,12 @@ const Dropdown = _ref => {
|
|
|
411
484
|
className: "".concat(RC, "__list-item ").concat(RC, "__list-item--no-options")
|
|
412
485
|
}, noOptionsText), disabled && isOpen && /*#__PURE__*/_react.default.createElement(_DropdownLoader.default, null))));
|
|
413
486
|
};
|
|
487
|
+
|
|
414
488
|
const toggleList = e => {
|
|
415
|
-
e === null || e === void 0
|
|
489
|
+
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
416
490
|
setIsOpen(isOpen => !isOpen);
|
|
417
491
|
};
|
|
492
|
+
|
|
418
493
|
const closeList = isOpen ? handleClickOutside : () => {};
|
|
419
494
|
(0, _react.useEffect)(() => {
|
|
420
495
|
if (!isDoNotPullOutListOfMainContainer || dropdownRef.current) {
|
|
@@ -423,6 +498,7 @@ const Dropdown = _ref => {
|
|
|
423
498
|
}, [isDoNotPullOutListOfMainContainer, dropdownRef.current]);
|
|
424
499
|
(0, _react.useLayoutEffect)(() => {
|
|
425
500
|
var _getListContainer3;
|
|
501
|
+
|
|
426
502
|
if (!isMobile) {
|
|
427
503
|
window.addEventListener("resize", setListContainerStyles);
|
|
428
504
|
window.addEventListener("mousewheel", closeList);
|
|
@@ -434,19 +510,21 @@ const Dropdown = _ref => {
|
|
|
434
510
|
window.removeEventListener("scroll", closeList);
|
|
435
511
|
window.removeEventListener("touchmove", closeList);
|
|
436
512
|
}
|
|
437
|
-
|
|
513
|
+
|
|
514
|
+
(_getListContainer3 = getListContainer()) === null || _getListContainer3 === void 0 ? void 0 : _getListContainer3.addEventListener("click", closeList);
|
|
438
515
|
return () => {
|
|
439
516
|
var _getListContainer4;
|
|
517
|
+
|
|
440
518
|
window.removeEventListener("resize", setListContainerStyles);
|
|
441
519
|
window.removeEventListener("mousewheel", closeList);
|
|
442
520
|
window.removeEventListener("scroll", closeList);
|
|
443
521
|
window.removeEventListener("touchmove", closeList);
|
|
444
|
-
(_getListContainer4 = getListContainer()) === null || _getListContainer4 === void 0
|
|
522
|
+
(_getListContainer4 = getListContainer()) === null || _getListContainer4 === void 0 ? void 0 : _getListContainer4.removeEventListener("click", closeList);
|
|
445
523
|
};
|
|
446
524
|
}, [getListContainer]);
|
|
447
525
|
(0, _react.useLayoutEffect)(() => {
|
|
448
526
|
setListContainerStyles();
|
|
449
|
-
}, [isOpen, searchValue, isMobile, options, dropdownListWrapperRef === null || dropdownListWrapperRef === void 0
|
|
527
|
+
}, [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]);
|
|
450
528
|
(0, _react.useEffect)(() => {
|
|
451
529
|
document.addEventListener("click", handleClickOutside, true);
|
|
452
530
|
return () => document.removeEventListener("click", handleClickOutside, true);
|
|
@@ -455,9 +533,11 @@ const Dropdown = _ref => {
|
|
|
455
533
|
if (!isOpen) {
|
|
456
534
|
setIsSearchChanged(false);
|
|
457
535
|
}
|
|
536
|
+
|
|
458
537
|
if (scrollReactionObj && typeof scrollReactionObj === "object" && isOpen && dropdownListRef && dropdownListRef.current) {
|
|
459
538
|
dropdownListRef.current.addEventListener("scroll", doScrollCallback);
|
|
460
539
|
}
|
|
540
|
+
|
|
461
541
|
return () => {
|
|
462
542
|
if (scrollReactionObj && typeof scrollReactionObj === "object") removeEventListener("scroll", doScrollCallback);
|
|
463
543
|
};
|
|
@@ -467,20 +547,26 @@ const Dropdown = _ref => {
|
|
|
467
547
|
setSearchValue(selectedLabel);
|
|
468
548
|
setTimeout(() => searchInputRef.current.select(), 1);
|
|
469
549
|
}
|
|
550
|
+
|
|
470
551
|
if (!isSearchInputFocused && !isOpen) {
|
|
471
552
|
setSearchValue(null);
|
|
472
553
|
}
|
|
473
554
|
}, [isSearchInputFocused]);
|
|
474
555
|
(0, _react.useEffect)(() => {
|
|
475
556
|
var _searchInputRef$curre;
|
|
476
|
-
|
|
557
|
+
|
|
558
|
+
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();
|
|
559
|
+
|
|
477
560
|
if (isOpen) {
|
|
478
561
|
var _getListContainer5;
|
|
479
|
-
|
|
562
|
+
|
|
563
|
+
(_getListContainer5 = getListContainer()) === null || _getListContainer5 === void 0 ? void 0 : _getListContainer5.classList.add("dropdown__container--opened");
|
|
480
564
|
} else {
|
|
481
565
|
var _getListContainer6;
|
|
482
|
-
|
|
566
|
+
|
|
567
|
+
(_getListContainer6 = getListContainer()) === null || _getListContainer6 === void 0 ? void 0 : _getListContainer6.classList.remove("dropdown__container--opened");
|
|
483
568
|
}
|
|
569
|
+
|
|
484
570
|
if (!isOpen && isMobile) {
|
|
485
571
|
setSearchValue(null);
|
|
486
572
|
}
|
|
@@ -488,34 +574,41 @@ const Dropdown = _ref => {
|
|
|
488
574
|
(0, _react.useEffect)(() => {
|
|
489
575
|
if (isOpen && isMobile && dropdownListRef !== null && dropdownListRef !== void 0 && dropdownListRef.current && !searchValue) {
|
|
490
576
|
var _dropdownListRef$curr, _dropdownListRef$curr2, _dropdownListRef$curr3, _dropdownListRef$curr4;
|
|
491
|
-
|
|
492
|
-
|
|
577
|
+
|
|
578
|
+
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));
|
|
579
|
+
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));
|
|
493
580
|
}
|
|
494
|
-
}, [isOpen, isMobile, isScrollableList, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current, dropdownListRef === null || dropdownListRef === void 0
|
|
581
|
+
}, [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]);
|
|
495
582
|
(0, _react.useEffect)(() => {
|
|
496
583
|
const setScrollTopValue = e => {
|
|
497
584
|
setScrollTop(parseInt(e.target.scrollTop, 10));
|
|
498
585
|
};
|
|
586
|
+
|
|
499
587
|
if (isOpen && isMobile && dropdownListRef !== null && dropdownListRef !== void 0 && dropdownListRef.current) {
|
|
500
588
|
var _dropdownListRef$curr7;
|
|
501
|
-
|
|
589
|
+
|
|
590
|
+
dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr7 = dropdownListRef.current) === null || _dropdownListRef$curr7 === void 0 ? void 0 : _dropdownListRef$curr7.addEventListener("scroll", setScrollTopValue);
|
|
502
591
|
}
|
|
592
|
+
|
|
503
593
|
return () => {
|
|
504
594
|
var _dropdownListRef$curr8;
|
|
505
|
-
|
|
595
|
+
|
|
596
|
+
dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr8 = dropdownListRef.current) === null || _dropdownListRef$curr8 === void 0 ? void 0 : _dropdownListRef$curr8.removeEventListener("scroll", setScrollTopValue);
|
|
506
597
|
};
|
|
507
598
|
}, [isOpen, isMobile, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current]);
|
|
508
599
|
(0, _react.useEffect)(() => {
|
|
509
600
|
if (dropdownListRef !== null && dropdownListRef !== void 0 && dropdownListRef.current) {
|
|
510
601
|
var _dropdownListRef$curr9, _dropdownListRef$curr10;
|
|
511
|
-
|
|
602
|
+
|
|
603
|
+
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));
|
|
512
604
|
}
|
|
513
605
|
}, [scrollTop, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current]);
|
|
514
606
|
(0, _react.useEffect)(() => {
|
|
515
607
|
return () => {
|
|
516
608
|
var _getListContainer7, _getListContainerWrap;
|
|
517
|
-
|
|
518
|
-
(
|
|
609
|
+
|
|
610
|
+
(_getListContainer7 = getListContainer()) === null || _getListContainer7 === void 0 ? void 0 : _getListContainer7.remove();
|
|
611
|
+
(_getListContainerWrap = getListContainerWrapper()) === null || _getListContainerWrap === void 0 ? void 0 : _getListContainerWrap.remove();
|
|
519
612
|
};
|
|
520
613
|
}, []);
|
|
521
614
|
const postfixText = selectedLabel && ((_filteredOptions$find = filteredOptions.find(option => option.value === value)) === null || _filteredOptions$find === void 0 ? void 0 : _filteredOptions$find.postfix) || null;
|
|
@@ -533,7 +626,7 @@ const Dropdown = _ref => {
|
|
|
533
626
|
onClick: toggleList,
|
|
534
627
|
onKeyDown: onKeyDown,
|
|
535
628
|
onKeyUp: onKeyUp,
|
|
536
|
-
tabIndex: tabIndex === null || tabIndex === void 0
|
|
629
|
+
tabIndex: tabIndex === null || tabIndex === void 0 ? void 0 : (_tabIndex$toString = tabIndex.toString) === null || _tabIndex$toString === void 0 ? void 0 : _tabIndex$toString.call(tabIndex)
|
|
537
630
|
}, customTrigger || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isSearchable && !isMobile ? /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
|
|
538
631
|
ref: searchInputRef,
|
|
539
632
|
className: "".concat(RC, "__input"),
|
|
@@ -563,4 +656,6 @@ const Dropdown = _ref => {
|
|
|
563
656
|
className: "mobile-icon"
|
|
564
657
|
}) : isOpen ? /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, null) : /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, null)))), isOpen && renderListContainer());
|
|
565
658
|
};
|
|
566
|
-
|
|
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;
|