intelicoreact 1.8.6 → 1.8.7
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/Dropdown/components/DropdownLoader.jsx +1 -18
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.jsx +1 -121
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.jsx +1 -507
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.jsx +1 -46
- package/dist/Atomic/FormElements/NumericInput/NumericInput.jsx +1 -337
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.jsx +1 -66
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.jsx +1 -78
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.jsx +1 -54
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.jsx +1 -183
- package/dist/Atomic/FormElements/RangeList/RangeList.jsx +1 -181
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.jsx +1 -41
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.jsx +1 -449
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.jsx +1 -865
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.jsx +1 -37
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.jsx +1 -48
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.jsx +1 -62
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.jsx +1 -175
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.jsx +1 -65
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.jsx +1 -118
- package/dist/Atomic/FormElements/Text/Text.jsx +1 -126
- package/dist/Atomic/FormElements/Textarea/Textarea.jsx +1 -61
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.jsx +1 -181
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.jsx +1 -60
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.jsx +1 -83
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.jsx +1 -80
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.jsx +1 -103
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.jsx +1 -115
- package/dist/Atomic/Layout/Header/Header.jsx +1 -86
- package/dist/Atomic/Layout/MainMenu/MainMenu.jsx +1 -164
- package/dist/Atomic/UI/AccordionTable/AccordionTable.jsx +1 -250
- package/dist/Atomic/UI/AccordionText/AccordionText.jsx +1 -68
- package/dist/Atomic/UI/Arrow/Arrow.jsx +1 -134
- package/dist/Atomic/UI/Box/Box.jsx +1 -53
- package/dist/Atomic/UI/Chart/Chart.jsx +1 -178
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.jsx +1 -78
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.jsx +1 -334
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.jsx +1 -111
- package/dist/Atomic/UI/DateTime/DateTime.jsx +1 -57
- package/dist/Atomic/UI/DebugContainer/DebugContainer.jsx +1 -44
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.jsx +1 -15
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.jsx +1 -223
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.jsx +1 -75
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.jsx +1 -86
- package/dist/Atomic/UI/PieChart/PieChart.jsx +1 -41
- package/dist/Atomic/UI/Table/Partials/TdCell.jsx +1 -87
- package/dist/Atomic/UI/Table/Partials/TdHeader.jsx +1 -36
- package/dist/Atomic/UI/Table/Partials/TdRow.jsx +1 -103
- package/dist/Atomic/UI/Table/Partials/TdTitle.jsx +1 -55
- package/dist/Atomic/UI/Table/Table.jsx +1 -63
- package/dist/Atomic/UI/Table/TdTypes/TdActions.jsx +1 -80
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.jsx +1 -26
- package/dist/Atomic/UI/Table/TdTypes/TdRange.jsx +1 -13
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.jsx +1 -56
- package/dist/Atomic/UI/TagList/TagList.jsx +1 -256
- package/dist/Atomic/UI/WizardStepper/constructor.jsx +1 -86
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.jsx +1 -254
- package/dist/Functions/customEventListener.jsx +1 -96
- package/dist/Functions/operations.jsx +1 -138
- package/dist/Functions/useFormTools/functions/RenderFields.jsx +1 -108
- package/dist/Functions/useFormTools/index.jsx +1 -777
- package/dist/Functions/usePasswordChecker.jsx +1 -128
- package/dist/Functions/utils.jsx +1 -492
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.jsx +1 -22
- package/dist/Molecular/CustomIcons/components/AlertCircle.jsx +1 -24
- package/dist/Molecular/CustomIcons/components/AppStore.jsx +1 -30
- package/dist/Molecular/CustomIcons/components/Arrow.jsx +1 -33
- package/dist/Molecular/CustomIcons/components/ArrowDown.jsx +1 -18
- package/dist/Molecular/CustomIcons/components/ArrowLeft.jsx +1 -23
- package/dist/Molecular/CustomIcons/components/ArrowRight.jsx +1 -23
- package/dist/Molecular/CustomIcons/components/ArrowUp.jsx +1 -18
- package/dist/Molecular/CustomIcons/components/Bell.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/Button.jsx +1 -13
- package/dist/Molecular/CustomIcons/components/Campaigns.jsx +1 -17
- package/dist/Molecular/CustomIcons/components/Check.jsx +1 -15
- package/dist/Molecular/CustomIcons/components/Check2.jsx +1 -13
- package/dist/Molecular/CustomIcons/components/ChevronDown.jsx +1 -13
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.jsx +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronLeft.jsx +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronRight.jsx +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronUp.jsx +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.jsx +1 -28
- package/dist/Molecular/CustomIcons/components/Close.jsx +1 -15
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.jsx +1 -18
- package/dist/Molecular/CustomIcons/components/Delete.jsx +1 -17
- package/dist/Molecular/CustomIcons/components/Edit.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/Email.jsx +1 -32
- package/dist/Molecular/CustomIcons/components/FinturfLogo.jsx +1 -19
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.jsx +1 -36
- package/dist/Molecular/CustomIcons/components/Flows.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/Gift.jsx +1 -26
- package/dist/Molecular/CustomIcons/components/GoogleAuth.jsx +1 -30
- package/dist/Molecular/CustomIcons/components/GooglePlay.jsx +1 -30
- package/dist/Molecular/CustomIcons/components/HelpCircle.jsx +1 -20
- package/dist/Molecular/CustomIcons/components/HelpCircle2.jsx +1 -21
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.jsx +1 -20
- package/dist/Molecular/CustomIcons/components/Home.jsx +1 -17
- package/dist/Molecular/CustomIcons/components/Home2.jsx +1 -23
- package/dist/Molecular/CustomIcons/components/Key.jsx +1 -24
- package/dist/Molecular/CustomIcons/components/Landers.jsx +1 -21
- package/dist/Molecular/CustomIcons/components/Lock.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/Mail.jsx +1 -27
- package/dist/Molecular/CustomIcons/components/Mastercard.jsx +1 -74
- package/dist/Molecular/CustomIcons/components/Minus.jsx +1 -26
- package/dist/Molecular/CustomIcons/components/Offers.jsx +1 -17
- package/dist/Molecular/CustomIcons/components/Pause.jsx +1 -29
- package/dist/Molecular/CustomIcons/components/PayPal.jsx +1 -42
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.jsx +1 -29
- package/dist/Molecular/CustomIcons/components/Phone.jsx +1 -31
- package/dist/Molecular/CustomIcons/components/Play.jsx +1 -26
- package/dist/Molecular/CustomIcons/components/Plus.jsx +1 -26
- package/dist/Molecular/CustomIcons/components/Profile.jsx +1 -17
- package/dist/Molecular/CustomIcons/components/QRCode.jsx +1 -30
- package/dist/Molecular/CustomIcons/components/Rectangle.jsx +1 -13
- package/dist/Molecular/CustomIcons/components/Revert.jsx +1 -14
- package/dist/Molecular/CustomIcons/components/Star.jsx +1 -15
- package/dist/Molecular/CustomIcons/components/Star2.jsx +1 -17
- package/dist/Molecular/CustomIcons/components/TrafficSources.jsx +1 -15
- package/dist/Molecular/CustomIcons/components/Trash.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/TrashRed.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/Triggers.jsx +1 -16
- package/dist/Molecular/CustomIcons/components/User.jsx +1 -26
- package/dist/Molecular/CustomIcons/components/Visa.jsx +1 -32
- package/dist/Molecular/CustomIcons/components/X.jsx +1 -13
- package/dist/Molecular/FormElement/FormElement.jsx +1 -52
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.jsx +1 -161
- package/dist/Molecular/InputAddress/InputAddress.jsx +1 -641
- package/dist/Molecular/InputPassword/InputPassword.jsx +1 -50
- package/package.json +1 -1
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.d.ts +0 -5
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js.map +0 -1
- /package/dist/Atomic/FormElements/ActionAlert/{ActionAlert.js → ActionAlert.jsx} +0 -0
- /package/dist/Atomic/FormElements/AdvancedStatus/{AdvancedStatus.js → AdvancedStatus.jsx} +0 -0
- /package/dist/Atomic/FormElements/Calendar/{Calendar.js → Calendar.jsx} +0 -0
- /package/dist/Atomic/FormElements/Calendar/{Calendar.props.js → Calendar.props.jsx} +0 -0
- /package/dist/Atomic/FormElements/CheckboxInput/{CheckboxInput.js → CheckboxInput.jsx} +0 -0
- /package/dist/Atomic/FormElements/CheckboxesLine/{CheckboxesLine.js → CheckboxesLine.jsx} +0 -0
- /package/dist/Atomic/FormElements/Datepicker/{Datepicker.js → Datepicker.jsx} +0 -0
- /package/dist/Atomic/FormElements/Datepicker/{Datepicker.props.js → Datepicker.props.jsx} +0 -0
- /package/dist/Atomic/FormElements/Datepicker/components/{DatepickerCalendar.js → DatepickerCalendar.jsx} +0 -0
- /package/dist/Atomic/FormElements/Datepicker/components/{DatepickerCalendar.props.js → DatepickerCalendar.props.jsx} +0 -0
- /package/dist/Atomic/FormElements/Dropdown/{Dropdown.js → Dropdown.jsx} +0 -0
- /package/dist/Atomic/FormElements/DropdownLiveSearch/{DropdownLiveSearch.js → DropdownLiveSearch.jsx} +0 -0
- /package/dist/Atomic/FormElements/FileLoader/{FileLoader.js → FileLoader.jsx} +0 -0
- /package/dist/Atomic/FormElements/FileLoader/partial/{LoadZone.js → LoadZone.jsx} +0 -0
- /package/dist/Atomic/FormElements/FileLoader/partial/{LoadedContent.js → LoadedContent.jsx} +0 -0
- /package/dist/Atomic/FormElements/FileLoaderDescription/{FileLoaderDescription.js → FileLoaderDescription.jsx} +0 -0
- /package/dist/Atomic/FormElements/FileLoaderLocal/{FileLoaderLocal.js → FileLoaderLocal.jsx} +0 -0
- /package/dist/Atomic/FormElements/FileLoaderLocalGroup/{FileLoaderLocalGroup.js → FileLoaderLocalGroup.jsx} +0 -0
- /package/dist/Atomic/FormElements/FormattedRawSSN/{FormattedRawSSN.js → FormattedRawSSN.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/{Input.js → Input.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/hooks/{useErrorBlink.js → useErrorBlink.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/hooks/{useInputFocus.js → useInputFocus.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/hooks/{useInputHover.js → useInputHover.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/hooks/{useInputValueProcessing.js → useInputValueProcessing.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/hooks/{useKeyboardHandling.js → useKeyboardHandling.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/lib/{autocomplete.js → autocomplete.jsx} +0 -0
- /package/dist/Atomic/FormElements/Input/{types.js → types.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputCalendar/{InputCalendar.js → InputCalendar.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputColor/{InputColor.js → InputColor.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputCurrency/{InputCurrency.js → InputCurrency.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputDateRange/{InputDateRange.js → InputDateRange.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputDateRange/components/{DateInput.js → DateInput.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputDateRange/components/{Datepicker.js → Datepicker.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputDateRange/components/{OpenedPart.js → OpenedPart.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputDateRange/components/{SelectItem.js → SelectItem.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputDateRange/{dependencies.js → dependencies.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputLink/{InputLink.js → InputLink.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputMask/{InputMask.js → InputMask.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputMask3/{InputMask3.js → InputMask3.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputMask3/{config.js → config.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputMask3/{functions.js → functions.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputWithAction/{InputWithAction.js → InputWithAction.jsx} +0 -0
- /package/dist/Atomic/FormElements/InputsRow/{InputsRow.js → InputsRow.jsx} +0 -0
- /package/dist/Atomic/FormElements/Label/{Label.js → Label.jsx} +0 -0
- /package/dist/Atomic/FormElements/RadioInput/{RadioInput.js → RadioInput.jsx} +0 -0
- /package/dist/Atomic/FormElements/RangeInputs/{RangeInputs.js → RangeInputs.jsx} +0 -0
- /package/dist/Atomic/FormElements/Switcher/{Switcher.js → Switcher.jsx} +0 -0
- /package/dist/Atomic/FormElements/SwitcherHide/{SwitcherHide.js → SwitcherHide.jsx} +0 -0
- /package/dist/Atomic/FormElements/SwitcherRadio/{SwitcherRadio.js → SwitcherRadio.jsx} +0 -0
- /package/dist/Atomic/FormElements/SwitcherRange/{SwitcherRange.js → SwitcherRange.jsx} +0 -0
- /package/dist/Atomic/FormElements/TagsDropdown/{TagsDropdown.js → TagsDropdown.jsx} +0 -0
- /package/dist/Atomic/FormElements/TextSwitcher/{TextSwitcher.js → TextSwitcher.jsx} +0 -0
- /package/dist/Atomic/FormElements/TimeRange/{TimeRange.js → TimeRange.jsx} +0 -0
- /package/dist/Atomic/FormElements/UserContacts/{UserContacts.js → UserContacts.jsx} +0 -0
- /package/dist/Atomic/Layout/Spinner/{Spinner.js → Spinner.jsx} +0 -0
- /package/dist/Atomic/UI/Accordion/{Accordion.js → Accordion.jsx} +0 -0
- /package/dist/Atomic/UI/Accordion/{AccordionItem.js → AccordionItem.jsx} +0 -0
- /package/dist/Atomic/UI/AdvancedTag/{AdvTag.js → AdvTag.jsx} +0 -0
- /package/dist/Atomic/UI/AdvancedTag/{AdvancedTags.js → AdvancedTags.jsx} +0 -0
- /package/dist/Atomic/UI/Alert/{Alert.js → Alert.jsx} +0 -0
- /package/dist/Atomic/UI/Button/{Button.js → Button.jsx} +0 -0
- /package/dist/Atomic/UI/ButtonsBar/{ButtonsBar.js → ButtonsBar.jsx} +0 -0
- /package/dist/Atomic/UI/DoubleString/{DoubleString.js → DoubleString.jsx} +0 -0
- /package/dist/Atomic/UI/DynamicIcon/{DynamicIcon.js → DynamicIcon.jsx} +0 -0
- /package/dist/Atomic/UI/Hint/{Hint.js → Hint.jsx} +0 -0
- /package/dist/Atomic/UI/Hint/partials/{_constants.js → _constants.jsx} +0 -0
- /package/dist/Atomic/UI/Hint/partials/{_utils.js → _utils.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/{Modal.js → Modal.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/{ModalHOC.js → ModalHOC.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/partials/{ModalFooter.js → ModalFooter.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/partials/{ModalTitle.js → ModalTitle.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/partials/{_constants.js → _constants.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/partials/{_utils.js → _utils.jsx} +0 -0
- /package/dist/Atomic/UI/Modal/partials/{useMobileModal.js → useMobileModal.jsx} +0 -0
- /package/dist/Atomic/UI/NavLine/{NavLine.js → NavLine.jsx} +0 -0
- /package/dist/Atomic/UI/PageTitle/{PageTitle.js → PageTitle.jsx} +0 -0
- /package/dist/Atomic/UI/Price/{Price.js → Price.jsx} +0 -0
- /package/dist/Atomic/UI/PriceRange/{PriceRange.js → PriceRange.jsx} +0 -0
- /package/dist/Atomic/UI/ProgressLine/{ProgressLine.js → ProgressLine.jsx} +0 -0
- /package/dist/Atomic/UI/Status/{Status.js → Status.jsx} +0 -0
- /package/dist/Atomic/UI/Tag/{Tag.js → Tag.jsx} +0 -0
- /package/dist/Atomic/UI/UserBox/{UserBox.js → UserBox.jsx} +0 -0
- /package/dist/Atomic/UI/WizardStepper/ui/StateIcon/{StateIcon.js → StateIcon.jsx} +0 -0
- /package/dist/Atomic/UI/WizardStepper/ui/StepRow/{StepRow.js → StepRow.jsx} +0 -0
- /package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/{StepWrapper.js → StepWrapper.jsx} +0 -0
- /package/dist/Atomic/UI/WizardStepper/ui/{icons.js → icons.jsx} +0 -0
- /package/dist/Functions/guards/{assertions.js → assertions.jsx} +0 -0
- /package/dist/Functions/guards/{safeValue.js → safeValue.jsx} +0 -0
- /package/dist/Functions/guards/{typeGuards.js → typeGuards.jsx} +0 -0
- /package/dist/Functions/useIsMobile/{useIsMobile.js → useIsMobile.jsx} +0 -0
- /package/dist/Functions/useKeyPress/{useHandleKeyPress.js → useHandleKeyPress.jsx} +0 -0
- /package/dist/Functions/useKeyPress/{useKeyPress.js → useKeyPress.jsx} +0 -0
- /package/dist/Functions/utils/{disableDefaultBehavior.js → disableDefaultBehavior.jsx} +0 -0
- /package/dist/Functions/utils/{getLimitedMask.js → getLimitedMask.jsx} +0 -0
- /package/dist/types/declaration/TWithEventManagementAsObj/innerTypes/{Modal.js → Modal.jsx} +0 -0
|
@@ -1,128 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
|
|
5
|
-
export default function usePasswordChecker({ label = 'Password must:' } = {}) {
|
|
6
|
-
const [checkRules, setCheckRules] = useState([]);
|
|
7
|
-
const addCheckRule = data => setCheckRules(state => [...state, data]);
|
|
8
|
-
const handleCheckRule = (type, props = {}, value = '') => {
|
|
9
|
-
const { min, max } = props;
|
|
10
|
-
|
|
11
|
-
switch (type) {
|
|
12
|
-
case 'len':
|
|
13
|
-
if (min && value.length < min) return false;
|
|
14
|
-
if (max && value.length > max) return false;
|
|
15
|
-
return true;
|
|
16
|
-
|
|
17
|
-
case 'lowerCaseContains': {
|
|
18
|
-
const toUpperCase = value.slice().toUpperCase().split('');
|
|
19
|
-
const original = value.slice().split('');
|
|
20
|
-
|
|
21
|
-
return original.reduce((isMatch, char, i) => {
|
|
22
|
-
if (char !== toUpperCase[i]) isMatch = true;
|
|
23
|
-
|
|
24
|
-
return isMatch;
|
|
25
|
-
}, false);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
case 'upperCaseContains': {
|
|
29
|
-
const toLowerCase = value.slice().toLowerCase().split('');
|
|
30
|
-
const original = value.slice().split('');
|
|
31
|
-
|
|
32
|
-
return original.reduce((isMatch, char, i) => {
|
|
33
|
-
if (char !== toLowerCase[i]) isMatch = true;
|
|
34
|
-
|
|
35
|
-
return isMatch;
|
|
36
|
-
}, false);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
case 'numberContains': {
|
|
40
|
-
const original = value.slice().split('');
|
|
41
|
-
return original.reduce((isMatch, char) => {
|
|
42
|
-
if (Number.isInteger(Number.parseInt(char, 10))) isMatch = true;
|
|
43
|
-
|
|
44
|
-
return isMatch;
|
|
45
|
-
}, false);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
case 'specialContains': {
|
|
49
|
-
const original = value.slice().split('');
|
|
50
|
-
return original.reduce((isMatch, char) => {
|
|
51
|
-
if (!Number.isInteger(Number.parseInt(char, 10)) && !char.match(/[a-z]/i))
|
|
52
|
-
isMatch = true;
|
|
53
|
-
|
|
54
|
-
return isMatch;
|
|
55
|
-
}, false);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
default:
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const testCheckRules = (value) => {
|
|
63
|
-
let result = true;
|
|
64
|
-
|
|
65
|
-
setCheckRules((state) => {
|
|
66
|
-
const rules = [...state];
|
|
67
|
-
return rules.map((rule) => {
|
|
68
|
-
const isMatch = handleCheckRule(rule.type, rule.props, value);
|
|
69
|
-
if (!isMatch) result = false;
|
|
70
|
-
|
|
71
|
-
return { ...rule, isMatch };
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
return result;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const renderPasswordChecker = () => {
|
|
79
|
-
return (
|
|
80
|
-
<div className="password-checker">
|
|
81
|
-
<div className="password-checker__header">
|
|
82
|
-
<label className="password-checker__header-label">
|
|
83
|
-
{' '}
|
|
84
|
-
{label}
|
|
85
|
-
{' '}
|
|
86
|
-
</label>
|
|
87
|
-
{' '}
|
|
88
|
-
</div>
|
|
89
|
-
{' '}
|
|
90
|
-
<div className="password-checker__body">
|
|
91
|
-
{' '}
|
|
92
|
-
{checkRules.map(({ icon, text, isMatch, key }) => (
|
|
93
|
-
<div
|
|
94
|
-
key={key}
|
|
95
|
-
className={cn('password-checker__body-item', {
|
|
96
|
-
'password-checker__body-item--match':
|
|
97
|
-
isMatch && isMatch !== null,
|
|
98
|
-
'password-checker__body-item--dont-match':
|
|
99
|
-
!isMatch && isMatch !== null,
|
|
100
|
-
})}
|
|
101
|
-
>
|
|
102
|
-
<div className="password-checker__body-item__icon">
|
|
103
|
-
{' '}
|
|
104
|
-
{icon}
|
|
105
|
-
{' '}
|
|
106
|
-
</div>
|
|
107
|
-
{' '}
|
|
108
|
-
<div className="password-checker__body-item__text">
|
|
109
|
-
{' '}
|
|
110
|
-
{text}
|
|
111
|
-
{' '}
|
|
112
|
-
</div>
|
|
113
|
-
{' '}
|
|
114
|
-
</div>
|
|
115
|
-
))}
|
|
116
|
-
{' '}
|
|
117
|
-
</div>
|
|
118
|
-
{' '}
|
|
119
|
-
</div>
|
|
120
|
-
);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
return {
|
|
124
|
-
addCheckRule,
|
|
125
|
-
testCheckRules,
|
|
126
|
-
renderPasswordChecker,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
1
|
+
function e(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function r(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||t(r)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(r,t){if(r){if("string"==typeof r)return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}}import{jsxs as n}from"react/jsx-runtime";import o from"classnames";import{useState as a}from"react";export default function c(){var e,c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=c.label,s=void 0===i?"Password must:":i,l=(e=a([]),function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],c=!0,i=!1;try{for(o=o.call(e);!(c=(t=o.next()).done)&&(a.push(t.value),a.length!==r);c=!0);}catch(e){i=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(i)throw n}}return a}}(e,2)||t(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],f=l[1],d=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=r.min,o=r.max;switch(e){case"len":if(n&&t.length<n||o&&t.length>o)return!1;return!0;case"lowerCaseContains":var a=t.slice().toUpperCase().split("");return t.slice().split("").reduce(function(e,r,t){return r!==a[t]&&(e=!0),e},!1);case"upperCaseContains":var c=t.slice().toLowerCase().split("");return t.slice().split("").reduce(function(e,r,t){return r!==c[t]&&(e=!0),e},!1);case"numberContains":return t.slice().split("").reduce(function(e,r){return Number.isInteger(Number.parseInt(r,10))&&(e=!0),e},!1);case"specialContains":return t.slice().split("").reduce(function(e,r){return Number.isInteger(Number.parseInt(r,10))||r.match(/[a-z]/i)||(e=!0),e},!1);default:return!1}};return{addCheckRule:function(e){return f(function(t){return r(t).concat([e])})},testCheckRules:function(e){var t=!0;return f(function(n){return r(n).map(function(r){var n,o,a=d(r.type,r.props,e);return a||(t=!1),n=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({},r),o=o={isMatch:a},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n})}),t},renderPasswordChecker:function(){return n("div",{className:"password-checker",children:[n("div",{className:"password-checker__header",children:[n("label",{className:"password-checker__header-label",children:[" ",s," "]})," "]})," ",n("div",{className:"password-checker__body",children:[" ",u.map(function(e){var r=e.icon,t=e.text,a=e.isMatch,c=e.key;return n("div",{className:o("password-checker__body-item",{"password-checker__body-item--match":a&&null!==a,"password-checker__body-item--dont-match":!a&&null!==a}),children:[n("div",{className:"password-checker__body-item__icon",children:[" ",r," "]})," ",n("div",{className:"password-checker__body-item__text",children:[" ",t," "]})," "]},c)})," "]})," "]})}}}
|
package/dist/Functions/utils.jsx
CHANGED
|
@@ -1,492 +1 @@
|
|
|
1
|
-
import moment from 'moment-timezone';
|
|
2
|
-
|
|
3
|
-
import { useEffect } from 'react';
|
|
4
|
-
|
|
5
|
-
import { DEFAULT_COLORS, OS } from '../Constants/index.constants';
|
|
6
|
-
|
|
7
|
-
export const uuid = () => Date.now().toString(36) + Math.random().toString(36).substring(2);
|
|
8
|
-
|
|
9
|
-
export function getIsOnlyAnObject(input) {
|
|
10
|
-
return (
|
|
11
|
-
typeof input === 'object' // "отбивает" примитивы и функции
|
|
12
|
-
&& input instanceof Object // "отбивает" null
|
|
13
|
-
&& !Array.isArray(input) // "отбивает" массивы
|
|
14
|
-
&& !(input instanceof Set) // "отбивает" сеты
|
|
15
|
-
&& !(input instanceof Map) // "отбивает" мапы
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function handleObjectChange(updateObject, updateFunction) {
|
|
20
|
-
return (data, prop = '', isNumber) => {
|
|
21
|
-
let value;
|
|
22
|
-
if (data?.target) {
|
|
23
|
-
value
|
|
24
|
-
= data.target.type === 'checkbox'
|
|
25
|
-
? data.target.checked
|
|
26
|
-
: data.target.value;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
value = data;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
value = isNumber ? Number(value) : value;
|
|
33
|
-
|
|
34
|
-
const props = prop.split('.');
|
|
35
|
-
const currentObject = props.reduce((res, chapter, index) => {
|
|
36
|
-
if (props.length !== index + 1) res = res[chapter];
|
|
37
|
-
return res;
|
|
38
|
-
}, updateObject);
|
|
39
|
-
|
|
40
|
-
currentObject[props.pop()] = value;
|
|
41
|
-
updateFunction();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export function useOutsideToggle(ref, setOut, open) {
|
|
46
|
-
function handleClickOutside(event) {
|
|
47
|
-
if (ref.current && !ref.current.contains(event.target)) {
|
|
48
|
-
setOut(open);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
document.addEventListener('mouseup', handleClickOutside);
|
|
53
|
-
return () => {
|
|
54
|
-
// Unbind the event listener on clean up
|
|
55
|
-
document.removeEventListener('mouseup', handleClickOutside);
|
|
56
|
-
};
|
|
57
|
-
}, [ref]);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// export const clone = obj => {
|
|
61
|
-
// const data = obj instanceof Array ? [] : {};
|
|
62
|
-
// for (const i in obj) data[i] = typeof obj[i] === 'object' && obj[i] != null ? clone(obj[i]) : obj[i];
|
|
63
|
-
// return data;
|
|
64
|
-
// };
|
|
65
|
-
// ! Этот правильнее
|
|
66
|
-
export function clone(input) {
|
|
67
|
-
if (input === null || typeof input !== 'object') return input;
|
|
68
|
-
const data = Array.isArray(input) ? [] : {};
|
|
69
|
-
for (const i in input) data[i] = clone(input[i]);
|
|
70
|
-
return data;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export async function getResponseClone(res) {
|
|
74
|
-
return await (typeof res?.clone === 'function' ? res.clone() : clone(res))
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// TimeUtils
|
|
78
|
-
export function transformUTCTimeToLocal(date, format = 'YYYY-MM-DD HH:mm:ss') {
|
|
79
|
-
if (!date) return;
|
|
80
|
-
const utcDate = moment.utc(date).toDate();
|
|
81
|
-
return moment(utcDate, format).local().format(format);
|
|
82
|
-
}
|
|
83
|
-
export function transformLocalTimeToUTC(date, format = 'YYYY-MM-DD HH:mm:ss') {
|
|
84
|
-
if (!date) return;
|
|
85
|
-
return moment(date, format).utc().format(format);
|
|
86
|
-
}
|
|
87
|
-
export function transformUTCHoursToLocal(time, format = 'HH:mm:ss') {
|
|
88
|
-
if (!time) return;
|
|
89
|
-
const splitedTime = time.split(':');
|
|
90
|
-
const offset = moment().utcOffset();
|
|
91
|
-
let HH = Number(splitedTime[0]);
|
|
92
|
-
let mm = Number(splitedTime[1]);
|
|
93
|
-
const ss = splitedTime[2];
|
|
94
|
-
mm = mm + offset;
|
|
95
|
-
while (mm > 59) {
|
|
96
|
-
mm -= 60;
|
|
97
|
-
HH += 1;
|
|
98
|
-
}
|
|
99
|
-
if (HH > 23) HH -= 24;
|
|
100
|
-
while (mm < 0) {
|
|
101
|
-
mm += 60;
|
|
102
|
-
HH -= 1;
|
|
103
|
-
}
|
|
104
|
-
if (HH < 0) HH += 24;
|
|
105
|
-
return `${HH}:${mm}:${ss}`;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// ? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн
|
|
109
|
-
export function transformDateOrTimeOrTogetherToFormat(
|
|
110
|
-
data,
|
|
111
|
-
outputFormat = 'HH:mm',
|
|
112
|
-
additional,
|
|
113
|
-
) {
|
|
114
|
-
const ERROR_VALUE = 'Invalid date';
|
|
115
|
-
const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;
|
|
116
|
-
const { parseFormat, isReturnAsMomentInstance } = getIsOnlyAnObject(
|
|
117
|
-
additional,
|
|
118
|
-
)
|
|
119
|
-
? additional
|
|
120
|
-
: {};
|
|
121
|
-
|
|
122
|
-
if (typeof data !== 'string' && typeof data !== 'number') {
|
|
123
|
-
return isReturnAsMomentInstance ? moment('error') : ERROR_MESSGE;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// ? Игнорируем parseFormat, если data пришла как timestamp или если parseFormat не строка
|
|
127
|
-
const momentArgs = [
|
|
128
|
-
data,
|
|
129
|
-
...(!Number.isNaN(Number(data)) || typeof parseFormat === 'string'
|
|
130
|
-
? []
|
|
131
|
-
: [parseFormat]),
|
|
132
|
-
];
|
|
133
|
-
|
|
134
|
-
// ? Задача получить moment-экземпляр, валидный либо невалидный
|
|
135
|
-
const momentInstance = (() => {
|
|
136
|
-
let instance = moment(...momentArgs);
|
|
137
|
-
|
|
138
|
-
// ? Проверяем валидность moment-экземпляр-а путем попытки привести его к выходному формату
|
|
139
|
-
// ? Попадем в этот кейс если
|
|
140
|
-
// ? - data это timestamp
|
|
141
|
-
// ? - data это строка в формате date-time
|
|
142
|
-
// ? - data это строка в формате date (в этом случае время выставится 00:00:00)
|
|
143
|
-
if (instance.format(outputFormat) !== ERROR_VALUE) {
|
|
144
|
-
return instance;
|
|
145
|
-
}
|
|
146
|
-
// ? Если же приведение не удалось, то предполагаем, что data пришла в формате time
|
|
147
|
-
// ? В этом случае создадим объект от текущей даты, распарсим data и установим время
|
|
148
|
-
// ? Корректно обработаются паттерны: 'HH*mm', 'HH*mm*ss', 'HH*mm*ss*любое_количество_ms', где * - любой разделитель
|
|
149
|
-
else if (/^\d\d.\d\d/.test(data)) {
|
|
150
|
-
instance = moment();
|
|
151
|
-
const symbols = data.split('');
|
|
152
|
-
|
|
153
|
-
const timeArr = symbols
|
|
154
|
-
.reduce(
|
|
155
|
-
(acc, symbol, idx) => {
|
|
156
|
-
if (Number.isNaN(Number(symbol))) {
|
|
157
|
-
if (acc.group) acc.result.push(acc.group);
|
|
158
|
-
acc.group = '';
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
acc.group = `${acc.group}${symbol}`;
|
|
162
|
-
}
|
|
163
|
-
if (idx === symbols.length - 1 && acc.group)
|
|
164
|
-
acc.result.push(acc.group);
|
|
165
|
-
return acc;
|
|
166
|
-
},
|
|
167
|
-
{ result: [], group: '' },
|
|
168
|
-
)
|
|
169
|
-
// ? reverse используется исключительно для того, чтобы после можно было использовать метод pop, а не shift,
|
|
170
|
-
// ? т.к. методы добавления/извлечения относительно конца массива работают быстрее,
|
|
171
|
-
// ? чем аналогичные относительно начала массива
|
|
172
|
-
.result
|
|
173
|
-
.reverse();
|
|
174
|
-
|
|
175
|
-
instance.hours(Number(timeArr.pop()));
|
|
176
|
-
instance.minutes(Number(timeArr.pop()));
|
|
177
|
-
instance.seconds(timeArr.length ? Number(timeArr.pop()) : 0);
|
|
178
|
-
instance.milliseconds(timeArr.length ? Number(timeArr.pop()) : 0);
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
instance = moment('error');
|
|
182
|
-
} // ? Иначе создаем заведомо невалидный moment-экземпляр
|
|
183
|
-
|
|
184
|
-
return instance;
|
|
185
|
-
})();
|
|
186
|
-
|
|
187
|
-
if (isReturnAsMomentInstance) return momentInstance;
|
|
188
|
-
|
|
189
|
-
const output = momentInstance.format(outputFormat);
|
|
190
|
-
return output === ERROR_VALUE ? ERROR_MESSGE : output;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// ? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн
|
|
194
|
-
export function transformDateOrTimeOrTogetherToFormattedLocal(
|
|
195
|
-
data,
|
|
196
|
-
outputFormat = 'HH:mm',
|
|
197
|
-
additional,
|
|
198
|
-
) {
|
|
199
|
-
const ERROR_VALUE = 'Invalid date';
|
|
200
|
-
const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;
|
|
201
|
-
|
|
202
|
-
if (additional && !getIsOnlyAnObject(additional)) {
|
|
203
|
-
throw new Error(
|
|
204
|
-
'Bad additional [transformDateOrTimeOrTogetherToFormattedLocal]',
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
const compositeAdditional = {
|
|
209
|
-
...(additional || {}),
|
|
210
|
-
isReturnAsMomentInstance: true,
|
|
211
|
-
};
|
|
212
|
-
const date = transformDateOrTimeOrTogetherToFormat(
|
|
213
|
-
data,
|
|
214
|
-
outputFormat,
|
|
215
|
-
compositeAdditional,
|
|
216
|
-
);
|
|
217
|
-
|
|
218
|
-
const dateWithLocale = date.add(moment().utcOffset(), 'minutes');
|
|
219
|
-
const output = dateWithLocale.format(outputFormat);
|
|
220
|
-
|
|
221
|
-
return output === ERROR_VALUE ? ERROR_MESSGE : output;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// принимает обьект и массив ключей обьекта
|
|
225
|
-
// возвращает обьект с теми полями, которых нет в массиве ключей
|
|
226
|
-
export function omitKeys(obj = {}, keys = []) {
|
|
227
|
-
return keys.reduce((acc, key) => {
|
|
228
|
-
const { [key]: omit, ...rest } = acc;
|
|
229
|
-
return rest;
|
|
230
|
-
}, obj)
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export function logout() {
|
|
234
|
-
window.localStorage.removeItem('accessToken');
|
|
235
|
-
window.localStorage.removeItem('tokenExpires');
|
|
236
|
-
window.location.reload();
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
export function getStyles(el, prop) {
|
|
240
|
-
if (!el) return null;
|
|
241
|
-
if (!prop) return window.getComputedStyle(el);
|
|
242
|
-
return window.getComputedStyle(el).getPropertyValue(prop);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
export function getColorById(id, colors) {
|
|
246
|
-
if (!id) return '#FF7D00';
|
|
247
|
-
|
|
248
|
-
const idToArr = Array.from(id);
|
|
249
|
-
const colorsArr = colors && colors.length > 0 ? colors : DEFAULT_COLORS;
|
|
250
|
-
|
|
251
|
-
let number = idToArr.reduce((acc, item) => {
|
|
252
|
-
if (Number(item)) {
|
|
253
|
-
return acc + Number(item);
|
|
254
|
-
}
|
|
255
|
-
return acc;
|
|
256
|
-
}, 0);
|
|
257
|
-
|
|
258
|
-
while (number >= colorsArr.length) {
|
|
259
|
-
number -= colorsArr.length;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return colorsArr[number];
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
export function debounce(fn, ms) {
|
|
266
|
-
let id = null;
|
|
267
|
-
return (...args) => {
|
|
268
|
-
clearTimeout(id);
|
|
269
|
-
id = setTimeout(() => {
|
|
270
|
-
clearTimeout(id);
|
|
271
|
-
fn(...args);
|
|
272
|
-
}, ms);
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
export function throttle(fn, ms) {
|
|
277
|
-
let id = null;
|
|
278
|
-
return (...args) => {
|
|
279
|
-
if (id) return;
|
|
280
|
-
fn(...args);
|
|
281
|
-
id = setTimeout(() => {
|
|
282
|
-
clearTimeout(id);
|
|
283
|
-
id = null;
|
|
284
|
-
}, ms);
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
export function addBitDepthPoints(value, step = 3) {
|
|
289
|
-
// содержит ли value точку
|
|
290
|
-
const isFraction = value?.includes('.');
|
|
291
|
-
|
|
292
|
-
// взять строку до точки
|
|
293
|
-
const valueBeforeDot = isFraction
|
|
294
|
-
? value?.slice(0, value?.indexOf('.'))
|
|
295
|
-
: value;
|
|
296
|
-
|
|
297
|
-
// расстановка запятых после каждой 3й цифры с конца
|
|
298
|
-
const intPart = valueBeforeDot
|
|
299
|
-
.split('')
|
|
300
|
-
.reverse()
|
|
301
|
-
.reduce(
|
|
302
|
-
(acc, item, idx) =>
|
|
303
|
-
idx % step === 0 && idx !== 0 ? [...acc, ',', item] : [...acc, item],
|
|
304
|
-
[],
|
|
305
|
-
)
|
|
306
|
-
.reverse()
|
|
307
|
-
.join('');
|
|
308
|
-
|
|
309
|
-
return isFraction ? intPart + value?.slice(value?.indexOf('.')) : intPart;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
export function changeMeta(key, items = []) {
|
|
313
|
-
const defaultMeta = items.find(i => i.key === 'default');
|
|
314
|
-
|
|
315
|
-
if (key) {
|
|
316
|
-
const item = items.find(i => i.key === key);
|
|
317
|
-
document.title = item?.title ?? defaultMeta?.title;
|
|
318
|
-
document
|
|
319
|
-
.querySelector('meta[name="description"]')
|
|
320
|
-
.setAttribute('content', item?.description ?? defaultMeta?.description);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
export function firstLetterCapital(str) {
|
|
325
|
-
return typeof str === 'string'
|
|
326
|
-
? `${str.charAt(0).toUpperCase()}${str.slice(1)}`
|
|
327
|
-
: str
|
|
328
|
-
}
|
|
329
|
-
export const capitalized = firstLetterCapital;
|
|
330
|
-
|
|
331
|
-
export function checkedRef(ref) {
|
|
332
|
-
return ref ? (typeof ref === 'function' ? node => ref(node) : ref) : null
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
export function downloadEmulation(data, filename, type = 'image/*') {
|
|
336
|
-
const file = new Blob([data], { type });
|
|
337
|
-
if (window.navigator.msSaveOrOpenBlob) {
|
|
338
|
-
// IE10+
|
|
339
|
-
window.navigator.msSaveOrOpenBlob(file, filename);
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
// Others
|
|
343
|
-
const a = document.createElement('a');
|
|
344
|
-
const url = URL.createObjectURL(file);
|
|
345
|
-
a.href = url;
|
|
346
|
-
a.download = filename;
|
|
347
|
-
document.body.appendChild(a);
|
|
348
|
-
a.click();
|
|
349
|
-
setTimeout(() => {
|
|
350
|
-
document.body.removeChild(a);
|
|
351
|
-
window.URL.revokeObjectURL(url);
|
|
352
|
-
}, 0);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
export async function downloadFile({ url, name, type = null }) {
|
|
357
|
-
const response = await fetch(url).then(async res => ({
|
|
358
|
-
data: await res.blob(),
|
|
359
|
-
type: type ?? res.headers.get('content-type'),
|
|
360
|
-
}));
|
|
361
|
-
downloadEmulation(response.data, name, response.type);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
export function compare(first, second, keys = []) {
|
|
365
|
-
// ? Если типы НЕ равны - не равны априори
|
|
366
|
-
if (typeof first !== typeof second) return false;
|
|
367
|
-
// ? Если ответы на вопрос "массив ли?" не равны, то не равны и типы, значит тоже не равны априори
|
|
368
|
-
if (Array.isArray(first) !== Array.isArray(second)) return false;
|
|
369
|
-
// ? Если прошли if-ку - типы условно равны, можем оценивать тип лишь одного параметра, это будет справедливо и для второго
|
|
370
|
-
|
|
371
|
-
// ? Если примитивы - просто сравниваем. Кейс с null обработан тут.
|
|
372
|
-
if (!(first instanceof Object)) return first === second;
|
|
373
|
-
|
|
374
|
-
// ? Если НЕ приметивы - не важно массив или нет, методы объекта для массива тоже доступны
|
|
375
|
-
|
|
376
|
-
const getComparationStructure = (data) => {
|
|
377
|
-
if (typeof data === 'function') return data.toString();
|
|
378
|
-
if (!(data instanceof Object)) return data;
|
|
379
|
-
|
|
380
|
-
return Object.entries(data)
|
|
381
|
-
.sort((a, b) => (a[0]).localeCompare(b[0]))
|
|
382
|
-
.map(([key, value]) => ([key, getComparationStructure(data[key])]));
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
// ? Получаем структуры для сравнения (с учетом глубины) - массивы массивов, сортируем по ключам,
|
|
386
|
-
const structureForComparingOfFirst = getComparationStructure(first);
|
|
387
|
-
const structureForComparingOfSecond = getComparationStructure(second);
|
|
388
|
-
|
|
389
|
-
return (JSON.stringify(structureForComparingOfFirst) === JSON.stringify(structureForComparingOfSecond));
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
// Set Carret to the End of Input
|
|
393
|
-
export function setCarretToEnd(input) {
|
|
394
|
-
setTimeout(() => {
|
|
395
|
-
const tmp = input.value;
|
|
396
|
-
input.value = '';
|
|
397
|
-
input.value = tmp;
|
|
398
|
-
}, 10);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
export function compareAlphabetical(a, b, key = 'label') {
|
|
402
|
-
let item1 = a?.[key];
|
|
403
|
-
let item2 = b?.[key];
|
|
404
|
-
|
|
405
|
-
if (typeof item1 !== 'string' || typeof item2 !== 'string') return 0;
|
|
406
|
-
|
|
407
|
-
item1 = item1?.toLowerCase();
|
|
408
|
-
item2 = item2?.toLowerCase();
|
|
409
|
-
|
|
410
|
-
if (item1 < item2) {
|
|
411
|
-
return -1;
|
|
412
|
-
}
|
|
413
|
-
if (item1 > item2) {
|
|
414
|
-
return 1;
|
|
415
|
-
}
|
|
416
|
-
return 0;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
export function getBase64(file) {
|
|
420
|
-
if (file) {
|
|
421
|
-
return new Promise((resolve, reject) => {
|
|
422
|
-
const reader = new FileReader();
|
|
423
|
-
reader.readAsDataURL(file);
|
|
424
|
-
reader.onload = () => resolve(reader.result);
|
|
425
|
-
reader.onerror = error => reject('Error: ', error);
|
|
426
|
-
});
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
export function renderFileSize(bytes, decimals = 2) {
|
|
431
|
-
if (!Number(bytes)) return '0 Bytes';
|
|
432
|
-
|
|
433
|
-
const k = 1024;
|
|
434
|
-
const dm = decimals < 0 ? 0 : decimals;
|
|
435
|
-
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
436
|
-
|
|
437
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
438
|
-
|
|
439
|
-
return `${Number.parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
export function getUniqueFileExtensions(extListString) {
|
|
443
|
-
// Split the extensions list into an array
|
|
444
|
-
const extArray = extListString
|
|
445
|
-
?.split(',')
|
|
446
|
-
.map(ext => ext.trim().toUpperCase());
|
|
447
|
-
|
|
448
|
-
// Remove duplicates using a Set
|
|
449
|
-
const uniqueExts = [...new Set(extArray)];
|
|
450
|
-
|
|
451
|
-
// Join the unique extensions into a string
|
|
452
|
-
return uniqueExts.join(', ');
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
export function getOS() {
|
|
456
|
-
const userAgent = window.navigator.userAgent;
|
|
457
|
-
const platform
|
|
458
|
-
= window.navigator?.userAgentData?.platform || window.navigator.platform;
|
|
459
|
-
const macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];
|
|
460
|
-
const windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];
|
|
461
|
-
const iosPlatforms = ['iPhone', 'iPad', 'iPod'];
|
|
462
|
-
let os = OS.Unknown;
|
|
463
|
-
|
|
464
|
-
if (macosPlatforms.includes(platform)) {
|
|
465
|
-
os = OS.MacOS;
|
|
466
|
-
}
|
|
467
|
-
else if (iosPlatforms.includes(platform)) {
|
|
468
|
-
os = OS.iOS;
|
|
469
|
-
}
|
|
470
|
-
else if (windowsPlatforms.includes(platform)) {
|
|
471
|
-
os = OS.Windows;
|
|
472
|
-
}
|
|
473
|
-
else if (/Android/.test(userAgent)) {
|
|
474
|
-
os = OS.Android;
|
|
475
|
-
}
|
|
476
|
-
else if (/Linux/.test(platform)) {
|
|
477
|
-
os = OS.Linux;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
return os;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
String.prototype.longerThan = function (compareWith) {
|
|
484
|
-
return this?.length > compareWith?.length;
|
|
485
|
-
};
|
|
486
|
-
String.prototype.lastIndexEqualsTo = function (index) {
|
|
487
|
-
return this?.length - 1 === index;
|
|
488
|
-
};
|
|
489
|
-
|
|
490
|
-
export function getCorrectTestId({ testId = '', withTier = true }) {
|
|
491
|
-
return testId && testId !== undefined ? `${withTier ? '-' : ''}${testId}` : ''
|
|
492
|
-
}
|
|
1
|
+
function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function e(t,e,r,n,o,i,u){try{var a=t[i](u),l=a.value}catch(t){r(t);return}a.done?e(l):Promise.resolve(l).then(n,o)}function r(t){return function(){var r=this,n=arguments;return new Promise(function(o,i){var u=t.apply(r,n);function a(t){e(u,o,i,a,l,"next",t)}function l(t){e(u,o,i,a,l,"throw",t)}a(void 0)})}}function n(t,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](t):t instanceof e}function o(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(e)||a(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t){var e=function(t,e){if("object"!==u(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!==u(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===u(e)?e:String(e)}function u(t){return t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t}function a(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(e,r)}}function l(t,e){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=a(0),u.throw=a(1),u.return=a(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(a){return function(l){var c=[a,l];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=e.call(t,i)}catch(t){c=[6,t],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}import c from"moment-timezone";import{useEffect as f}from"react";import{DEFAULT_COLORS as s,OS as d}from"../Constants/index.constants";export var uuid=function(){return Date.now().toString(36)+Math.random().toString(36).substring(2)};export function getIsOnlyAnObject(t){return(void 0===t?"undefined":u(t))==="object"&&n(t,Object)&&!Array.isArray(t)&&!n(t,Set)&&!n(t,Map)}export function handleObjectChange(t,e){return function(r){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0;n=(null==r?void 0:r.target)?"checkbox"===r.target.type?r.target.checked:r.target.value:r,n=i?Number(n):n;var u=o.split(".");u.reduce(function(t,e,r){return u.length!==r+1&&(t=t[e]),t},t)[u.pop()]=n,e()}}export function useOutsideToggle(t,e,r){function n(n){t.current&&!t.current.contains(n.target)&&e(r)}f(function(){return document.addEventListener("mouseup",n),function(){document.removeEventListener("mouseup",n)}},[t])}export function clone(t){if(null===t||(void 0===t?"undefined":u(t))!=="object")return t;var e=Array.isArray(t)?[]:{};for(var r in t)e[r]=clone(t[r]);return e}export function getResponseClone(t){return p.apply(this,arguments)}function p(){return(p=r(function(t){return l(this,function(e){switch(e.label){case 0:return[4,"function"==typeof(null==t?void 0:t.clone)?t.clone():clone(t)];case 1:return[2,e.sent()]}})})).apply(this,arguments)}export function transformUTCTimeToLocal(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD HH:mm:ss";if(t){var r=c.utc(t).toDate();return c(r,e).local().format(e)}}export function transformLocalTimeToUTC(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD HH:mm:ss";if(t)return c(t,e).utc().format(e)}export function transformUTCHoursToLocal(t){if(arguments.length>1&&void 0!==arguments[1]&&arguments[1],t){var e=t.split(":"),r=c().utcOffset(),n=Number(e[0]),o=Number(e[1]),i=e[2];for(o+=r;o>59;)o-=60,n+=1;for(n>23&&(n-=24);o<0;)o+=60,n-=1;return n<0&&(n+=24),"".concat(n,":").concat(o,":").concat(i)}}export function transformDateOrTimeOrTogetherToFormat(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"HH:mm",r=arguments.length>2?arguments[2]:void 0,n="Invalid date",i="Invalid input data for ".concat(e," format"),u=getIsOnlyAnObject(r)?r:{},a=u.parseFormat,l=u.isReturnAsMomentInstance;if("string"!=typeof t&&"number"!=typeof t)return l?c("error"):i;var f=[t].concat(o(Number.isNaN(Number(t))&&"string"!=typeof a?[a]:[])),s=function(){var r=c.apply(void 0,o(f));if(r.format(e)!==n);else if(/^\d\d.\d\d/.test(t)){r=c();var i=t.split(""),u=i.reduce(function(t,e,r){return Number.isNaN(Number(e))?(t.group&&t.result.push(t.group),t.group=""):t.group="".concat(t.group).concat(e),r===i.length-1&&t.group&&t.result.push(t.group),t},{result:[],group:""}).result.reverse();r.hours(Number(u.pop())),r.minutes(Number(u.pop())),r.seconds(u.length?Number(u.pop()):0),r.milliseconds(u.length?Number(u.pop()):0)}else r=c("error");return r}();if(l)return s;var d=s.format(e);return d===n?i:d}export function transformDateOrTimeOrTogetherToFormattedLocal(t){var e,r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"HH:mm",o=arguments.length>2?arguments[2]:void 0,i="Invalid input data for ".concat(n," format");if(o&&!getIsOnlyAnObject(o))throw Error("Bad additional [transformDateOrTimeOrTogetherToFormattedLocal]");var u=transformDateOrTimeOrTogetherToFormat(t,n,(e=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){var n;n=r[e],e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n})}return t}({},o||{}),r=r={isReturnAsMomentInstance:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r.push.apply(r,n)}return r})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e)).add(c().utcOffset(),"minutes").format(n);return"Invalid date"===u?i:u}export function omitKeys(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.reduce(function(t,e){return t[e],function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,[e].map(i))},t)}export function logout(){window.localStorage.removeItem("accessToken"),window.localStorage.removeItem("tokenExpires"),window.location.reload()}export function getStyles(t,e){return t?e?window.getComputedStyle(t).getPropertyValue(e):window.getComputedStyle(t):null}export function getColorById(t,e){if(!t)return"#FF7D00";for(var r=Array.from(t),n=e&&e.length>0?e:s,o=r.reduce(function(t,e){return Number(e)?t+Number(e):t},0);o>=n.length;)o-=n.length;return n[o]}export function debounce(t,e){var r=null;return function(){for(var n=arguments.length,i=Array(n),u=0;u<n;u++)i[u]=arguments[u];clearTimeout(r),r=setTimeout(function(){clearTimeout(r),t.apply(void 0,o(i))},e)}}export function throttle(t,e){var r=null;return function(){for(var n=arguments.length,i=Array(n),u=0;u<n;u++)i[u]=arguments[u];r||(t.apply(void 0,o(i)),r=setTimeout(function(){clearTimeout(r),r=null},e))}}export function addBitDepthPoints(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,r=null==t?void 0:t.includes("."),n=(r?null==t?void 0:t.slice(0,null==t?void 0:t.indexOf(".")):t).split("").reverse().reduce(function(t,r,n){return n%e==0&&0!==n?o(t).concat([",",r]):o(t).concat([r])},[]).reverse().join("");return r?n+(null==t?void 0:t.slice(null==t?void 0:t.indexOf("."))):n}export function changeMeta(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=e.find(function(t){return"default"===t.key});if(t){var n,o,i=e.find(function(e){return e.key===t});document.title=null!=(n=null==i?void 0:i.title)?n:null==r?void 0:r.title,document.querySelector('meta[name="description"]').setAttribute("content",null!=(o=null==i?void 0:i.description)?o:null==r?void 0:r.description)}}export function firstLetterCapital(t){return"string"==typeof t?"".concat(t.charAt(0).toUpperCase()).concat(t.slice(1)):t}export var capitalized=firstLetterCapital;export function checkedRef(t){return t?"function"==typeof t?function(e){return t(e)}:t:null}export function downloadEmulation(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"image/*",n=new Blob([t],{type:r});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(n,e);else{var o=document.createElement("a"),i=URL.createObjectURL(n);o.href=i,o.download=e,document.body.appendChild(o),o.click(),setTimeout(function(){document.body.removeChild(o),window.URL.revokeObjectURL(i)},0)}}export function downloadFile(t){return v.apply(this,arguments)}function v(){return(v=r(function(t){var e,n,o,i,u;return l(this,function(a){switch(a.label){case 0:var c;return e=t.url,n=t.name,i=void 0===(o=t.type)?null:o,[4,fetch(e).then((c=r(function(t){var e;return l(this,function(r){switch(r.label){case 0:return e={},[4,t.blob()];case 1:return[2,(e.data=r.sent(),e.type=null!=i?i:t.headers.get("content-type"),e)]}})}),function(t){return c.apply(this,arguments)}))];case 1:return downloadEmulation((u=a.sent()).data,n,u.type),[2]}})})).apply(this,arguments)}export function compare(t,e){if(arguments.length>2&&void 0!==arguments[2]&&arguments[2],(void 0===t?"undefined":u(t))!==(void 0===e?"undefined":u(e))||Array.isArray(t)!==Array.isArray(e))return!1;if(!n(t,Object))return t===e;var r=function(t){return"function"==typeof t?t.toString():n(t,Object)?Object.entries(t).sort(function(t,e){return t[0].localeCompare(e[0])}).map(function(e){var n=function(t){if(Array.isArray(t))return t}(e)||function(t,e){var r,n,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var i=[],u=!0,a=!1;try{for(o=o.call(t);!(u=(r=o.next()).done)&&(i.push(r.value),i.length!==e);u=!0);}catch(t){a=!0,n=t}finally{try{u||null==o.return||o.return()}finally{if(a)throw n}}return i}}(e,2)||a(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=n[0];return n[1],[o,r(t[o])]}):t},o=r(t),i=r(e);return JSON.stringify(o)===JSON.stringify(i)}export function setCarretToEnd(t){setTimeout(function(){var e=t.value;t.value="",t.value=e},10)}export function compareAlphabetical(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"label",n=null==t?void 0:t[r],o=null==e?void 0:e[r];return"string"!=typeof n||"string"!=typeof o?0:(n=null==n?void 0:n.toLowerCase())<(o=null==o?void 0:o.toLowerCase())?-1:+(n>o)}export function getBase64(t){if(t)return new Promise(function(e,r){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){return e(n.result)},n.onerror=function(t){return r("Error: ",t)}})}export function renderFileSize(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;if(!Number(t))return"0 Bytes";var r=Math.floor(Math.log(t)/Math.log(1024));return"".concat(Number.parseFloat((t/Math.pow(1024,r)).toFixed(e<0?0:e))," ").concat(["Bytes","KB","MB","GB"][r])}export function getUniqueFileExtensions(t){return o(new Set(null==t?void 0:t.split(",").map(function(t){return t.trim().toUpperCase()}))).join(", ")}export function getOS(){var t,e,r=window.navigator.userAgent,n=(null==(e=window.navigator)||null==(t=e.userAgentData)?void 0:t.platform)||window.navigator.platform,o=d.Unknown;return["Macintosh","MacIntel","MacPPC","Mac68K"].includes(n)?o=d.MacOS:["iPhone","iPad","iPod"].includes(n)?o=d.iOS:["Win32","Win64","Windows","WinCE"].includes(n)?o=d.Windows:/Android/.test(r)?o=d.Android:/Linux/.test(n)&&(o=d.Linux),o}String.prototype.longerThan=function(t){return(null===this||void 0===this?void 0:this.length)>(null==t?void 0:t.length)},String.prototype.lastIndexEqualsTo=function(t){return(null===this||void 0===this?void 0:this.length)-1===t};export function getCorrectTestId(t){var e=t.testId,r=void 0===e?"":e,n=t.withTier;return r&&void 0!==r?"".concat(void 0===n||n?"-":"").concat(r):""}
|
|
@@ -1,22 +1 @@
|
|
|
1
|
-
export function AffiliateNetworks(
|
|
2
|
-
return (
|
|
3
|
-
<svg
|
|
4
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
-
xmlSpace="preserve"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
{...props}
|
|
8
|
-
>
|
|
9
|
-
<path
|
|
10
|
-
fill="none"
|
|
11
|
-
stroke="#9AA0B9"
|
|
12
|
-
d="M17 21v-2c0-2.2-1.8-4-4-4H5c-2.2 0-4 1.8-4 4v2"
|
|
13
|
-
/>
|
|
14
|
-
<circle cx={9} cy={7} r={4} fill="none" stroke="#9AA0B9" />
|
|
15
|
-
<path
|
|
16
|
-
fill="none"
|
|
17
|
-
stroke="#9AA0B9"
|
|
18
|
-
d="M23 21v-2c0-1.8-1.2-3.4-3-3.9M16 3.1c2.1.5 3.4 2.7 2.9 4.9-.4 1.4-1.5 2.5-2.9 2.9"
|
|
19
|
-
/>
|
|
20
|
-
</svg>
|
|
21
|
-
)
|
|
22
|
-
}
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";export function AffiliateNetworks(t){var n,o;return r("svg",(n=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 24 24"},t),o=o={children:[e("path",{fill:"none",stroke:"#9AA0B9",d:"M17 21v-2c0-2.2-1.8-4-4-4H5c-2.2 0-4 1.8-4 4v2"}),e("circle",{cx:9,cy:7,r:4,fill:"none",stroke:"#9AA0B9"}),e("path",{fill:"none",stroke:"#9AA0B9",d:"M23 21v-2c0-1.8-1.2-3.4-3-3.9M16 3.1c2.1.5 3.4 2.7 2.9 4.9-.4 1.4-1.5 2.5-2.9 2.9"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n))}
|