intelicoreact 1.8.10 → 1.8.12
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.js +1 -0
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -0
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -0
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -0
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -0
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -0
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -0
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -0
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -0
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -1
- package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -0
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -0
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -0
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -0
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -0
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -0
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -0
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -0
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -0
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -0
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.ts +3 -3
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -1
- package/dist/Atomic/FormElements/Text/Text.js +1 -0
- package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -0
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -0
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -0
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -0
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -0
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -0
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -0
- package/dist/Atomic/Layout/Header/Header.js +1 -0
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +1 -0
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -0
- package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -0
- package/dist/Atomic/UI/Arrow/Arrow.js +1 -0
- package/dist/Atomic/UI/Box/Box.js +1 -0
- package/dist/Atomic/UI/Chart/Chart.js +1 -0
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -0
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -0
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -0
- package/dist/Atomic/UI/DateTime/DateTime.js +1 -0
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -0
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -0
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -0
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -0
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -0
- package/dist/Atomic/UI/PieChart/PieChart.js +1 -0
- package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -0
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -0
- package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -0
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -0
- package/dist/Atomic/UI/Table/Table.js +1 -0
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -0
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -0
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -0
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -0
- package/dist/Atomic/UI/Tag/Tag.interface.ts +1 -1
- package/dist/Atomic/UI/Tag/Tag.js +1 -1
- package/dist/Atomic/UI/TagList/TagList.js +1 -0
- package/dist/Atomic/UI/WizardStepper/constructor.js +1 -0
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -0
- package/dist/Functions/customEventListener.js +1 -0
- package/dist/Functions/operations.js +1 -0
- package/dist/Functions/useFormTools/functions/RenderFields.js +1 -0
- package/dist/Functions/useFormTools/index.js +1 -0
- package/dist/Functions/usePasswordChecker.js +1 -0
- package/dist/Functions/utils.js +1 -0
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -0
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -0
- package/dist/Molecular/CustomIcons/components/AppStore.js +1 -0
- package/dist/Molecular/CustomIcons/components/Arrow.js +1 -0
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -0
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -0
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -0
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -0
- package/dist/Molecular/CustomIcons/components/Bell.js +1 -0
- package/dist/Molecular/CustomIcons/components/Button.js +1 -0
- package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -0
- package/dist/Molecular/CustomIcons/components/Check.js +1 -0
- package/dist/Molecular/CustomIcons/components/Check2.js +1 -0
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -0
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -0
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -0
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -0
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -0
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -0
- package/dist/Molecular/CustomIcons/components/Close.js +1 -0
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -0
- package/dist/Molecular/CustomIcons/components/Delete.js +1 -0
- package/dist/Molecular/CustomIcons/components/Edit.js +1 -0
- package/dist/Molecular/CustomIcons/components/Email.js +1 -0
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -0
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -0
- package/dist/Molecular/CustomIcons/components/Flows.js +1 -0
- package/dist/Molecular/CustomIcons/components/Gift.js +1 -0
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -0
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -0
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -0
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -0
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -0
- package/dist/Molecular/CustomIcons/components/Home.js +1 -0
- package/dist/Molecular/CustomIcons/components/Home2.js +1 -0
- package/dist/Molecular/CustomIcons/components/Key.js +1 -0
- package/dist/Molecular/CustomIcons/components/Landers.js +1 -0
- package/dist/Molecular/CustomIcons/components/Lock.js +1 -0
- package/dist/Molecular/CustomIcons/components/Mail.js +1 -0
- package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -0
- package/dist/Molecular/CustomIcons/components/Minus.js +1 -0
- package/dist/Molecular/CustomIcons/components/Offers.js +1 -0
- package/dist/Molecular/CustomIcons/components/Pause.js +1 -0
- package/dist/Molecular/CustomIcons/components/PayPal.js +1 -0
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -0
- package/dist/Molecular/CustomIcons/components/Phone.js +1 -0
- package/dist/Molecular/CustomIcons/components/Play.js +1 -0
- package/dist/Molecular/CustomIcons/components/Plus.js +1 -0
- package/dist/Molecular/CustomIcons/components/Profile.js +1 -0
- package/dist/Molecular/CustomIcons/components/QRCode.js +1 -0
- package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -0
- package/dist/Molecular/CustomIcons/components/Revert.js +1 -0
- package/dist/Molecular/CustomIcons/components/Star.js +1 -0
- package/dist/Molecular/CustomIcons/components/Star2.js +1 -0
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -0
- package/dist/Molecular/CustomIcons/components/Trash.js +1 -0
- package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -0
- package/dist/Molecular/CustomIcons/components/Triggers.js +1 -0
- package/dist/Molecular/CustomIcons/components/User.js +1 -0
- package/dist/Molecular/CustomIcons/components/Visa.js +1 -0
- package/dist/Molecular/CustomIcons/components/X.js +1 -0
- package/dist/Molecular/FormElement/FormElement.js +1 -0
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -0
- package/dist/Molecular/InputAddress/InputAddress.js +1 -0
- package/dist/Molecular/InputPassword/InputPassword.js +1 -0
- package/package.json +6 -13
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.jsx +0 -18
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.jsx +0 -121
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.jsx +0 -507
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.jsx +0 -46
- package/dist/Atomic/FormElements/NumericInput/NumericInput.jsx +0 -337
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.jsx +0 -66
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.jsx +0 -78
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.jsx +0 -54
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.jsx +0 -183
- package/dist/Atomic/FormElements/RangeList/RangeList.jsx +0 -181
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.jsx +0 -41
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.jsx +0 -449
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.jsx +0 -865
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.jsx +0 -37
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.jsx +0 -48
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.jsx +0 -62
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.jsx +0 -175
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.jsx +0 -65
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.jsx +0 -118
- package/dist/Atomic/FormElements/Text/Text.jsx +0 -126
- package/dist/Atomic/FormElements/Textarea/Textarea.jsx +0 -61
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.jsx +0 -181
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.jsx +0 -60
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.jsx +0 -83
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.jsx +0 -80
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.jsx +0 -103
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.jsx +0 -115
- package/dist/Atomic/Layout/Header/Header.jsx +0 -86
- package/dist/Atomic/UI/AccordionTable/AccordionTable.jsx +0 -250
- package/dist/Atomic/UI/AccordionText/AccordionText.jsx +0 -68
- package/dist/Atomic/UI/Arrow/Arrow.jsx +0 -134
- package/dist/Atomic/UI/Box/Box.jsx +0 -53
- package/dist/Atomic/UI/Chart/Chart.jsx +0 -178
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.jsx +0 -78
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.jsx +0 -334
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.jsx +0 -111
- package/dist/Atomic/UI/DateTime/DateTime.jsx +0 -57
- package/dist/Atomic/UI/DebugContainer/DebugContainer.jsx +0 -44
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.jsx +0 -15
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.jsx +0 -223
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.jsx +0 -75
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.jsx +0 -86
- package/dist/Atomic/UI/PieChart/PieChart.jsx +0 -41
- package/dist/Atomic/UI/Table/Partials/TdCell.jsx +0 -87
- package/dist/Atomic/UI/Table/Partials/TdHeader.jsx +0 -36
- package/dist/Atomic/UI/Table/Partials/TdRow.jsx +0 -103
- package/dist/Atomic/UI/Table/Partials/TdTitle.jsx +0 -55
- package/dist/Atomic/UI/Table/Table.jsx +0 -63
- package/dist/Atomic/UI/Table/TdTypes/TdActions.jsx +0 -80
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.jsx +0 -26
- package/dist/Atomic/UI/Table/TdTypes/TdRange.jsx +0 -13
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.jsx +0 -56
- package/dist/Atomic/UI/TagList/TagList.jsx +0 -256
- package/dist/Atomic/UI/WizardStepper/constructor.jsx +0 -86
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.jsx +0 -254
- package/dist/Functions/customEventListener.jsx +0 -96
- package/dist/Functions/operations.jsx +0 -138
- package/dist/Functions/useFormTools/functions/RenderFields.jsx +0 -108
- package/dist/Functions/useFormTools/index.jsx +0 -777
- package/dist/Functions/usePasswordChecker.jsx +0 -128
- package/dist/Functions/utils.jsx +0 -492
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.jsx +0 -22
- package/dist/Molecular/CustomIcons/components/AlertCircle.jsx +0 -24
- package/dist/Molecular/CustomIcons/components/AppStore.jsx +0 -30
- package/dist/Molecular/CustomIcons/components/Arrow.jsx +0 -33
- package/dist/Molecular/CustomIcons/components/ArrowDown.jsx +0 -18
- package/dist/Molecular/CustomIcons/components/ArrowLeft.jsx +0 -23
- package/dist/Molecular/CustomIcons/components/ArrowRight.jsx +0 -23
- package/dist/Molecular/CustomIcons/components/ArrowUp.jsx +0 -18
- package/dist/Molecular/CustomIcons/components/Bell.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/Button.jsx +0 -13
- package/dist/Molecular/CustomIcons/components/Campaigns.jsx +0 -17
- package/dist/Molecular/CustomIcons/components/Check.jsx +0 -15
- package/dist/Molecular/CustomIcons/components/Check2.jsx +0 -13
- package/dist/Molecular/CustomIcons/components/ChevronDown.jsx +0 -13
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.jsx +0 -12
- package/dist/Molecular/CustomIcons/components/ChevronLeft.jsx +0 -12
- package/dist/Molecular/CustomIcons/components/ChevronRight.jsx +0 -12
- package/dist/Molecular/CustomIcons/components/ChevronUp.jsx +0 -12
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.jsx +0 -28
- package/dist/Molecular/CustomIcons/components/Close.jsx +0 -15
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.jsx +0 -18
- package/dist/Molecular/CustomIcons/components/Delete.jsx +0 -17
- package/dist/Molecular/CustomIcons/components/Edit.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/Email.jsx +0 -32
- package/dist/Molecular/CustomIcons/components/FinturfLogo.jsx +0 -19
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.jsx +0 -36
- package/dist/Molecular/CustomIcons/components/Flows.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/Gift.jsx +0 -26
- package/dist/Molecular/CustomIcons/components/GoogleAuth.jsx +0 -30
- package/dist/Molecular/CustomIcons/components/GooglePlay.jsx +0 -30
- package/dist/Molecular/CustomIcons/components/HelpCircle.jsx +0 -20
- package/dist/Molecular/CustomIcons/components/HelpCircle2.jsx +0 -21
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.jsx +0 -20
- package/dist/Molecular/CustomIcons/components/Home.jsx +0 -17
- package/dist/Molecular/CustomIcons/components/Home2.jsx +0 -23
- package/dist/Molecular/CustomIcons/components/Key.jsx +0 -24
- package/dist/Molecular/CustomIcons/components/Landers.jsx +0 -21
- package/dist/Molecular/CustomIcons/components/Lock.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/Mail.jsx +0 -27
- package/dist/Molecular/CustomIcons/components/Mastercard.jsx +0 -74
- package/dist/Molecular/CustomIcons/components/Minus.jsx +0 -26
- package/dist/Molecular/CustomIcons/components/Offers.jsx +0 -17
- package/dist/Molecular/CustomIcons/components/Pause.jsx +0 -29
- package/dist/Molecular/CustomIcons/components/PayPal.jsx +0 -42
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.jsx +0 -29
- package/dist/Molecular/CustomIcons/components/Phone.jsx +0 -31
- package/dist/Molecular/CustomIcons/components/Play.jsx +0 -26
- package/dist/Molecular/CustomIcons/components/Plus.jsx +0 -26
- package/dist/Molecular/CustomIcons/components/Profile.jsx +0 -17
- package/dist/Molecular/CustomIcons/components/QRCode.jsx +0 -30
- package/dist/Molecular/CustomIcons/components/Rectangle.jsx +0 -13
- package/dist/Molecular/CustomIcons/components/Revert.jsx +0 -14
- package/dist/Molecular/CustomIcons/components/Star.jsx +0 -15
- package/dist/Molecular/CustomIcons/components/Star2.jsx +0 -17
- package/dist/Molecular/CustomIcons/components/TrafficSources.jsx +0 -15
- package/dist/Molecular/CustomIcons/components/Trash.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/TrashRed.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/Triggers.jsx +0 -16
- package/dist/Molecular/CustomIcons/components/User.jsx +0 -26
- package/dist/Molecular/CustomIcons/components/Visa.jsx +0 -32
- package/dist/Molecular/CustomIcons/components/X.jsx +0 -13
- package/dist/Molecular/FormElement/FormElement.jsx +0 -52
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.jsx +0 -161
- package/dist/Molecular/InputAddress/InputAddress.jsx +0 -641
- package/dist/Molecular/InputPassword/InputPassword.jsx +0 -50
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import Switcher from '../Switcher/Switcher';
|
|
4
|
-
|
|
5
|
-
import './SwitchableRow.scss';
|
|
6
|
-
|
|
7
|
-
const RC_default = 'switchable-row';
|
|
8
|
-
|
|
9
|
-
function SwitchableRow(props) {
|
|
10
|
-
const {
|
|
11
|
-
RC = RC_default,
|
|
12
|
-
className,
|
|
13
|
-
children,
|
|
14
|
-
isActive,
|
|
15
|
-
setIsActive,
|
|
16
|
-
switcherLabel,
|
|
17
|
-
isSwitcherLabelBold,
|
|
18
|
-
testId = RC_default,
|
|
19
|
-
} = props || {};
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<div className={cn(RC, className)} data-testid={testId}>
|
|
23
|
-
<div className={cn(`${RC}__cell`)}>
|
|
24
|
-
<Switcher
|
|
25
|
-
isActive={isActive}
|
|
26
|
-
onChange={setIsActive}
|
|
27
|
-
isLabelBold={isSwitcherLabelBold}
|
|
28
|
-
label={switcherLabel}
|
|
29
|
-
data-testid={`${testId}-switcher`}
|
|
30
|
-
/>
|
|
31
|
-
</div>
|
|
32
|
-
{children}
|
|
33
|
-
</div>
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export default SwitchableRow;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import CheckboxesLine from '../CheckboxesLine/CheckboxesLine';
|
|
4
|
-
import Switcher from '../Switcher/Switcher';
|
|
5
|
-
|
|
6
|
-
import './SwitcherCheckbox.scss';
|
|
7
|
-
|
|
8
|
-
const RC = 'switcher-hide';
|
|
9
|
-
|
|
10
|
-
function SwitcherCheckbox({
|
|
11
|
-
label,
|
|
12
|
-
hint,
|
|
13
|
-
items = [],
|
|
14
|
-
value = [],
|
|
15
|
-
className,
|
|
16
|
-
isLabelBold,
|
|
17
|
-
isActive,
|
|
18
|
-
hintSide,
|
|
19
|
-
disabled,
|
|
20
|
-
hideChildren = true,
|
|
21
|
-
onSwitcherChange = () => {},
|
|
22
|
-
onChange = () => {},
|
|
23
|
-
}) {
|
|
24
|
-
const renderCheckboxes = () => {
|
|
25
|
-
return <CheckboxesLine items={items} value={value} onChange={onChange} />;
|
|
26
|
-
};
|
|
27
|
-
return (
|
|
28
|
-
<div
|
|
29
|
-
className={cn(RC, className, {
|
|
30
|
-
[`${RC}_closed`]: !isActive,
|
|
31
|
-
[`${RC}_disabled`]: disabled,
|
|
32
|
-
})}
|
|
33
|
-
>
|
|
34
|
-
<Switcher
|
|
35
|
-
className={`${RC}__switcher`}
|
|
36
|
-
hintSide={hintSide}
|
|
37
|
-
label={label}
|
|
38
|
-
isActive={isActive}
|
|
39
|
-
onChange={value => onSwitcherChange(value)}
|
|
40
|
-
isLabelBold={isLabelBold}
|
|
41
|
-
hint={hint}
|
|
42
|
-
/>
|
|
43
|
-
{isActive ? renderCheckboxes() : !hideChildren ? renderCheckboxes() : ''}
|
|
44
|
-
</div>
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export default SwitcherCheckbox;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import RangeList from '../RangeList/RangeList';
|
|
4
|
-
import SwitcherHide from '../SwitcherHide/SwitcherHide';
|
|
5
|
-
|
|
6
|
-
import './SwitcherRangeList.scss';
|
|
7
|
-
|
|
8
|
-
const RC = 'switcher-range-list';
|
|
9
|
-
|
|
10
|
-
function SwitcherRangeList(props) {
|
|
11
|
-
const {
|
|
12
|
-
className,
|
|
13
|
-
label,
|
|
14
|
-
isLabelBold,
|
|
15
|
-
hint,
|
|
16
|
-
hintSide,
|
|
17
|
-
disabled,
|
|
18
|
-
isActive,
|
|
19
|
-
value,
|
|
20
|
-
validateErrors,
|
|
21
|
-
isFloatValues,
|
|
22
|
-
decimalPlaces,
|
|
23
|
-
error,
|
|
24
|
-
defaultErrorText,
|
|
25
|
-
nullValueText,
|
|
26
|
-
isOnlyOneRow,
|
|
27
|
-
setIsActive = () => {},
|
|
28
|
-
onChange = () => {},
|
|
29
|
-
testId,
|
|
30
|
-
} = props;
|
|
31
|
-
|
|
32
|
-
return (
|
|
33
|
-
<SwitcherHide
|
|
34
|
-
isActive={isActive}
|
|
35
|
-
onChange={setIsActive}
|
|
36
|
-
label={label}
|
|
37
|
-
isLabelBold={isLabelBold}
|
|
38
|
-
hint={hint}
|
|
39
|
-
hintSide={hintSide}
|
|
40
|
-
className={cn(RC, className)}
|
|
41
|
-
disabled={disabled}
|
|
42
|
-
>
|
|
43
|
-
<div className="switcher-range-list__row">
|
|
44
|
-
<RangeList
|
|
45
|
-
testId={testId}
|
|
46
|
-
className={`${RC}__range-list`}
|
|
47
|
-
value={value}
|
|
48
|
-
isOnlyOneRow={isOnlyOneRow}
|
|
49
|
-
onChange={onChange}
|
|
50
|
-
validateErrors={validateErrors}
|
|
51
|
-
isFloatValues={isFloatValues}
|
|
52
|
-
decimalPlaces={decimalPlaces}
|
|
53
|
-
error={error}
|
|
54
|
-
defaultErrorText={defaultErrorText}
|
|
55
|
-
nullValueText={nullValueText}
|
|
56
|
-
/>
|
|
57
|
-
</div>
|
|
58
|
-
</SwitcherHide>
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export default SwitcherRangeList;
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
-
|
|
5
|
-
import Button from '../../UI/Button/Button';
|
|
6
|
-
import SwitcherHide from '../SwitcherHide/SwitcherHide';
|
|
7
|
-
import TagsDropdown from '../TagsDropdown/TagsDropdown';
|
|
8
|
-
import Textarea from '../Textarea/Textarea';
|
|
9
|
-
import TextSwitcher from '../TextSwitcher/TextSwitcher';
|
|
10
|
-
|
|
11
|
-
import './SwitcherTagsDropdown.scss';
|
|
12
|
-
|
|
13
|
-
const RC = 'switcher-tags-dropdown';
|
|
14
|
-
|
|
15
|
-
function SwitcherTagsDropdown({
|
|
16
|
-
className,
|
|
17
|
-
label,
|
|
18
|
-
isLabelBold,
|
|
19
|
-
isValuesInTags,
|
|
20
|
-
isActive,
|
|
21
|
-
isIncluded,
|
|
22
|
-
isAdvancedLabelSearch,
|
|
23
|
-
disabled,
|
|
24
|
-
options = [],
|
|
25
|
-
chosenOptions = [],
|
|
26
|
-
setIsActive = () => {},
|
|
27
|
-
setIsIncluded = () => {},
|
|
28
|
-
onChange = () => {},
|
|
29
|
-
}) {
|
|
30
|
-
const [listView, setListView] = useState(false);
|
|
31
|
-
const [textValue, setTextValue] = useState();
|
|
32
|
-
|
|
33
|
-
const singleLevelOptions = useMemo(
|
|
34
|
-
() =>
|
|
35
|
-
options.reduce(
|
|
36
|
-
(acc, item) => [...acc, ...(item.groupName ? item.list : [item])],
|
|
37
|
-
[],
|
|
38
|
-
),
|
|
39
|
-
[options],
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
const apply = () => {
|
|
43
|
-
// вернет функциюю сравнения для метода filter с замкнутым массивом listValuesArr
|
|
44
|
-
// (по логике listValuesArr - массив полученный из строки textaria).
|
|
45
|
-
const getFilterFunction = listValuesArr => (item) => {
|
|
46
|
-
return listValuesArr.find((el) => {
|
|
47
|
-
const itemValue = item?.value.toString().toLowerCase();
|
|
48
|
-
const itemLabel = (item.title || item.label || item.name || item.value)
|
|
49
|
-
.toString()
|
|
50
|
-
.toLowerCase();
|
|
51
|
-
const chosenOption = el.toString().toLowerCase();
|
|
52
|
-
const isChosenOptionIncludedInLabel
|
|
53
|
-
= itemLabel.includes(chosenOption)
|
|
54
|
-
&& !chosenOptions.includes(item.value);
|
|
55
|
-
|
|
56
|
-
if (isValuesInTags) {
|
|
57
|
-
return (
|
|
58
|
-
(chosenOption === itemValue || chosenOption === itemLabel)
|
|
59
|
-
&& !item.disabled
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
else if (isAdvancedLabelSearch) {
|
|
63
|
-
return (
|
|
64
|
-
(chosenOption === itemLabel
|
|
65
|
-
|| chosenOption === itemValue
|
|
66
|
-
|| isChosenOptionIncludedInLabel)
|
|
67
|
-
&& !item.disabled
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
return (
|
|
72
|
-
(chosenOption === itemLabel || chosenOption === itemValue)
|
|
73
|
-
&& !item.disabled
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const textToArray = textValue
|
|
80
|
-
?.split?.(',')
|
|
81
|
-
.map(item => item.toString().trim())
|
|
82
|
-
.filter(item => Boolean(item));
|
|
83
|
-
const newOptions = options
|
|
84
|
-
.filter(getFilterFunction(textToArray))
|
|
85
|
-
.map(option => option.value);
|
|
86
|
-
|
|
87
|
-
onChange(newOptions, 'chosenOptions');
|
|
88
|
-
setListView(false);
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
const enterHandler = (e, value) => {
|
|
92
|
-
if (e.keyCode === 13) {
|
|
93
|
-
const option = options?.find(
|
|
94
|
-
item =>
|
|
95
|
-
item?.title?.toLowerCase() === value?.toLowerCase() && !item.disabled,
|
|
96
|
-
);
|
|
97
|
-
const isOptionChecked = chosenOptions?.some(
|
|
98
|
-
item => item?.title?.toLowerCase() === option?.title?.toLowerCase(),
|
|
99
|
-
);
|
|
100
|
-
if (option && !isOptionChecked)
|
|
101
|
-
onChange([...chosenOptions, option], 'chosenOptions');
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
useEffect(() => {
|
|
106
|
-
const getLabel = el => el.title || el.label || el.name || el.value;
|
|
107
|
-
const valuesArr = chosenOptions?.map(item =>
|
|
108
|
-
isValuesInTags
|
|
109
|
-
? item
|
|
110
|
-
: getLabel(singleLevelOptions.find(option => option.value === item)),
|
|
111
|
-
);
|
|
112
|
-
setTextValue(valuesArr.join(', '));
|
|
113
|
-
}, [chosenOptions, listView]);
|
|
114
|
-
|
|
115
|
-
return (
|
|
116
|
-
<SwitcherHide
|
|
117
|
-
isActive={isActive}
|
|
118
|
-
onChange={setIsActive}
|
|
119
|
-
label={label}
|
|
120
|
-
className={cn(RC, className)}
|
|
121
|
-
isLabelBold={isLabelBold}
|
|
122
|
-
disabled={disabled}
|
|
123
|
-
>
|
|
124
|
-
<div className={`${RC}__wrap switcher-hide__content`}>
|
|
125
|
-
<TextSwitcher
|
|
126
|
-
activeText="is"
|
|
127
|
-
inactiveText="is not"
|
|
128
|
-
isActive={isIncluded ?? true}
|
|
129
|
-
onChange={setIsIncluded}
|
|
130
|
-
className={`${RC}__text-switcher`}
|
|
131
|
-
/>
|
|
132
|
-
<div className="filter-select__wrap--buttons">
|
|
133
|
-
<button
|
|
134
|
-
onClick={() => setListView(!listView)}
|
|
135
|
-
className={`${RC}__btn`}
|
|
136
|
-
>
|
|
137
|
-
{listView ? 'Close' : 'List view'}
|
|
138
|
-
</button>
|
|
139
|
-
{listView && (
|
|
140
|
-
<Button
|
|
141
|
-
label="Apply"
|
|
142
|
-
className={`${RC}__apply`}
|
|
143
|
-
onClick={() => apply()}
|
|
144
|
-
/>
|
|
145
|
-
)}
|
|
146
|
-
<button
|
|
147
|
-
onClick={() => onChange([], 'chosenOptions')}
|
|
148
|
-
className={`${RC}__btn`}
|
|
149
|
-
>
|
|
150
|
-
Clear
|
|
151
|
-
</button>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
{listView
|
|
155
|
-
? (
|
|
156
|
-
<Textarea value={textValue} onChange={value => setTextValue(value)} />
|
|
157
|
-
)
|
|
158
|
-
: (
|
|
159
|
-
<TagsDropdown
|
|
160
|
-
options={options}
|
|
161
|
-
chosenOptions={chosenOptions}
|
|
162
|
-
onChange={onChange}
|
|
163
|
-
className={`${RC}__tags-dropdown`}
|
|
164
|
-
onKeyPress={(e, value) => enterHandler(e, value)}
|
|
165
|
-
tagClassname={cn(`${RC}__tag`, {
|
|
166
|
-
[`${RC}__tag_inactive`]: !isIncluded,
|
|
167
|
-
})}
|
|
168
|
-
isValuesInTags={isValuesInTags}
|
|
169
|
-
/>
|
|
170
|
-
)}
|
|
171
|
-
</SwitcherHide>
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export default SwitcherTagsDropdown;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import SwitcherHide from '../SwitcherHide/SwitcherHide';
|
|
4
|
-
import Textarea from '../Textarea/Textarea';
|
|
5
|
-
import TextSwitcher from '../TextSwitcher/TextSwitcher';
|
|
6
|
-
|
|
7
|
-
import './SwitcherTextarea.scss';
|
|
8
|
-
|
|
9
|
-
const RC = 'switcher-textarea';
|
|
10
|
-
|
|
11
|
-
function SwitcherTextarea({
|
|
12
|
-
label,
|
|
13
|
-
isLabelBold,
|
|
14
|
-
hint,
|
|
15
|
-
className,
|
|
16
|
-
isActive = true,
|
|
17
|
-
setIsActive = () => {},
|
|
18
|
-
isIncluded = true,
|
|
19
|
-
setIsIncluded = () => {},
|
|
20
|
-
text = '',
|
|
21
|
-
setText = () => {},
|
|
22
|
-
activeText = 'is',
|
|
23
|
-
inactiveText = 'is not',
|
|
24
|
-
placeholder,
|
|
25
|
-
disabled,
|
|
26
|
-
testId,
|
|
27
|
-
}) {
|
|
28
|
-
return (
|
|
29
|
-
<SwitcherHide
|
|
30
|
-
testId={testId}
|
|
31
|
-
isActive={isActive}
|
|
32
|
-
onChange={setIsActive}
|
|
33
|
-
label={label}
|
|
34
|
-
isLabelBold={isLabelBold}
|
|
35
|
-
className={cn(RC, className)}
|
|
36
|
-
hint={hint}
|
|
37
|
-
disabled={disabled}
|
|
38
|
-
>
|
|
39
|
-
<>
|
|
40
|
-
<div className={`${RC}__wrap switcher-hide__content`}>
|
|
41
|
-
<TextSwitcher
|
|
42
|
-
testId={testId}
|
|
43
|
-
activeText={activeText}
|
|
44
|
-
inactiveText={inactiveText}
|
|
45
|
-
isActive={isIncluded ?? true}
|
|
46
|
-
onChange={value => setIsIncluded(value)}
|
|
47
|
-
className={`${RC}__text-switcher`}
|
|
48
|
-
/>
|
|
49
|
-
<button onClick={() => setText('')} className={`${RC}__btn`}>
|
|
50
|
-
Clear
|
|
51
|
-
</button>
|
|
52
|
-
</div>
|
|
53
|
-
<Textarea
|
|
54
|
-
testId={testId}
|
|
55
|
-
value={text}
|
|
56
|
-
placeholder={placeholder}
|
|
57
|
-
onChange={value => setText(value)}
|
|
58
|
-
className={`${RC}__textarea`}
|
|
59
|
-
/>
|
|
60
|
-
</>
|
|
61
|
-
</SwitcherHide>
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export default SwitcherTextarea;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from 'react';
|
|
2
|
-
|
|
3
|
-
import TagList from '../../UI/TagList/TagList';
|
|
4
|
-
import TagsDropdown from '../TagsDropdown/TagsDropdown';
|
|
5
|
-
|
|
6
|
-
function TagListToDropdown({
|
|
7
|
-
options,
|
|
8
|
-
tagsFullList,
|
|
9
|
-
value = [],
|
|
10
|
-
dropdownProps = {},
|
|
11
|
-
listProps = {},
|
|
12
|
-
onChange,
|
|
13
|
-
useDropdownCompactMode,
|
|
14
|
-
}) {
|
|
15
|
-
const preparedValue = value.map(({ value }) => value);
|
|
16
|
-
const [isEditMode, setIsEditMode] = useState(false);
|
|
17
|
-
const [isRenderAllTags, setIsRenderAllTags] = useState(false);
|
|
18
|
-
const [newValue, setNewValue] = useState(preparedValue);
|
|
19
|
-
const [isValueChanged, setIsValueChanged] = useState(false);
|
|
20
|
-
|
|
21
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
22
|
-
|
|
23
|
-
const tagListRef = useRef(null);
|
|
24
|
-
|
|
25
|
-
const onConfirmChangesClick = () => {
|
|
26
|
-
if (isValueChanged) {
|
|
27
|
-
setIsLoading(true);
|
|
28
|
-
setIsValueChanged(false);
|
|
29
|
-
new Promise((r) => {
|
|
30
|
-
const onChangeResult = onChange(
|
|
31
|
-
options.filter(({ value }) => newValue.includes(value)),
|
|
32
|
-
);
|
|
33
|
-
if (onChangeResult instanceof Promise) {
|
|
34
|
-
onChangeResult.then(data => r(data));
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
r();
|
|
38
|
-
}
|
|
39
|
-
})?.finally(() => {
|
|
40
|
-
setIsEditMode(false);
|
|
41
|
-
setIsLoading(false);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
setIsEditMode(false);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
setNewValue(preparedValue);
|
|
51
|
-
}, [isEditMode]);
|
|
52
|
-
|
|
53
|
-
const renderTagsDropdown = (props) => {
|
|
54
|
-
return (
|
|
55
|
-
<TagsDropdown
|
|
56
|
-
{...dropdownProps}
|
|
57
|
-
disabled={isLoading}
|
|
58
|
-
options={options}
|
|
59
|
-
tagsFullList={tagsFullList}
|
|
60
|
-
chosenOptions={newValue}
|
|
61
|
-
renderOptionsAsTags
|
|
62
|
-
withCreateLogic
|
|
63
|
-
isUseLocalOptionsStore={false}
|
|
64
|
-
onOptionEdit={dropdownProps?.onOptionEdit}
|
|
65
|
-
onOptionDelete={dropdownProps?.onOptionDelete}
|
|
66
|
-
onOptionCreate={dropdownProps?.onOptionCreate}
|
|
67
|
-
onActionConfirmClick={onConfirmChangesClick}
|
|
68
|
-
onActionCancelClick={() => setIsEditMode(v => !v)}
|
|
69
|
-
onChange={(data) => {
|
|
70
|
-
setNewValue(data);
|
|
71
|
-
setIsValueChanged(true);
|
|
72
|
-
}}
|
|
73
|
-
{...props}
|
|
74
|
-
isDefaultOpened={isEditMode}
|
|
75
|
-
/>
|
|
76
|
-
);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const renderTagsList = (props) => {
|
|
80
|
-
return (
|
|
81
|
-
<TagList
|
|
82
|
-
disabled={isLoading}
|
|
83
|
-
refProp={tagListRef}
|
|
84
|
-
{...listProps}
|
|
85
|
-
items={value}
|
|
86
|
-
onEditClick={() => setIsEditMode(v => !v)}
|
|
87
|
-
{...props}
|
|
88
|
-
/>
|
|
89
|
-
);
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const renderCompactMode = () => {
|
|
93
|
-
return renderTagsDropdown({
|
|
94
|
-
withActions: false,
|
|
95
|
-
withSearchInputInList: true,
|
|
96
|
-
customTriggerRef: tagListRef,
|
|
97
|
-
recalculateListContainerStylesTrigger: isRenderAllTags,
|
|
98
|
-
onDropdownListClose: onConfirmChangesClick,
|
|
99
|
-
renderCustomTrigger: ({ isOpen, setIsOpen, inputRef }) =>
|
|
100
|
-
renderTagsList({
|
|
101
|
-
onToggleRenderAll: v => setTimeout(() => setIsRenderAllTags(v), 1),
|
|
102
|
-
onEditClick: () => {
|
|
103
|
-
setIsOpen(!isEditMode);
|
|
104
|
-
if (isEditMode) onConfirmChangesClick();
|
|
105
|
-
else setIsEditMode(true);
|
|
106
|
-
},
|
|
107
|
-
}),
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
return useDropdownCompactMode
|
|
112
|
-
? renderCompactMode()
|
|
113
|
-
: isEditMode
|
|
114
|
-
? renderTagsDropdown({ withActions: true })
|
|
115
|
-
: renderTagsList();
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export default TagListToDropdown;
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import './Text.scss';
|
|
4
|
-
|
|
5
|
-
const RC = 'text';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @param value
|
|
10
|
-
* @param className
|
|
11
|
-
* @param classesObj
|
|
12
|
-
* @param icon
|
|
13
|
-
* @param link
|
|
14
|
-
* @param align
|
|
15
|
-
* @param testId
|
|
16
|
-
* @return {JSX.Element|null}
|
|
17
|
-
* @constructor
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
// ? Прототип лежит на проекте кабинета src\JS\Components\Atomic\FormElements\Text\Text.js
|
|
21
|
-
// ? Что поменял?
|
|
22
|
-
// ? - в верстке убрал дополнительную вложенность
|
|
23
|
-
// ? (теперь только 1 внешний контейнер, доп. классы назначаются рядом с className)
|
|
24
|
-
// ? - убрал пропы as и isTitle, они были для работы с предзаданными классами связанными с токенизацией
|
|
25
|
-
// ? возможность прокинуть доп. классы объектом с условиями оставил через пропу classesObj
|
|
26
|
-
// ? - заменил пропу text на value
|
|
27
|
-
// ? - заменил пропу iconMain на icon
|
|
28
|
-
// ? - переработал пропу link, может быть строкой или объектом
|
|
29
|
-
// ? если это объект, то у него могут быть свойства
|
|
30
|
-
// ? - path - значение для href
|
|
31
|
-
|
|
32
|
-
// ? - target - значение для атрибута target, имеет смысл передавать, если не передаются onClick или redirect
|
|
33
|
-
|
|
34
|
-
// ? - onClick - альтернативный обработчик нажатия, если он есть то он будет ипользован в приоритете,
|
|
35
|
-
// ? ф-я будет вызвана с 1 аргументом - props, в объекте props будет свойство ev (event) и все содержание link,
|
|
36
|
-
// ? по умолчанию до использования onClick будут вызваны e.preventDefault() и e.stopPropagation
|
|
37
|
-
|
|
38
|
-
// ? - redirect - альтернативный исполнитель редиректа (например history.push),
|
|
39
|
-
// ? если есть и нет onClick - будет вызван с одним аргументом (link.path)
|
|
40
|
-
|
|
41
|
-
// ? - isNoPreventDefault - отключает вызов e.preventDefault перед вызовом onClick или redirect
|
|
42
|
-
|
|
43
|
-
// ? - isNoStopPropagation - отключает вызов e.preventDefault перед вызовом onClick или redirect
|
|
44
|
-
|
|
45
|
-
function Text({
|
|
46
|
-
value,
|
|
47
|
-
className,
|
|
48
|
-
classesObj,
|
|
49
|
-
icon,
|
|
50
|
-
link,
|
|
51
|
-
align = 'left',
|
|
52
|
-
testId = 'text-lib-component',
|
|
53
|
-
}) {
|
|
54
|
-
if (!value) return null;
|
|
55
|
-
const isLinkAsObj = link instanceof Object && !Array.isArray(link);
|
|
56
|
-
const isLinkAsString = typeof link === 'string';
|
|
57
|
-
const isLink = isLinkAsObj || isLinkAsString;
|
|
58
|
-
|
|
59
|
-
const linkObj = isLinkAsObj ? link : {};
|
|
60
|
-
const {
|
|
61
|
-
path = '',
|
|
62
|
-
target,
|
|
63
|
-
redirect,
|
|
64
|
-
onClick: onClickInner,
|
|
65
|
-
isNoPreventDefault,
|
|
66
|
-
isNoStopPropagation,
|
|
67
|
-
} = linkObj;
|
|
68
|
-
|
|
69
|
-
const preparedPath = (() => {
|
|
70
|
-
if (!isLink) return '';
|
|
71
|
-
return isLinkAsObj ? path : link;
|
|
72
|
-
})();
|
|
73
|
-
|
|
74
|
-
const atributes = {};
|
|
75
|
-
|
|
76
|
-
if (typeof onClickInner === 'function' || typeof redirect === 'function') {
|
|
77
|
-
atributes.onClick = function onClick(ev) {
|
|
78
|
-
if (!isNoPreventDefault) ev.preventDefault();
|
|
79
|
-
if (!isNoStopPropagation) ev.stopPropagation();
|
|
80
|
-
|
|
81
|
-
// ? если переданы и onClick, и redirect, то onClick считается приоритетнее redirect
|
|
82
|
-
if (onClickInner) {
|
|
83
|
-
onClickInner({ ev, ...link });
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
redirect(preparedPath);
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const mainInner = (
|
|
91
|
-
<>
|
|
92
|
-
{icon && <div className={`${RC}__icon-container`}>{icon}</div>}
|
|
93
|
-
{value}
|
|
94
|
-
</>
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
return (
|
|
98
|
-
<div
|
|
99
|
-
data-testid={testId}
|
|
100
|
-
className={cn(RC, className, {
|
|
101
|
-
[`${RC}-left`]: align === 'left',
|
|
102
|
-
[`${RC}-center`]: align === 'center',
|
|
103
|
-
[`${RC}-right`]: align === 'right',
|
|
104
|
-
[`${RC}-justify`]: align === 'justify',
|
|
105
|
-
...classesObj,
|
|
106
|
-
})}
|
|
107
|
-
>
|
|
108
|
-
{isLink
|
|
109
|
-
? (
|
|
110
|
-
<a
|
|
111
|
-
{...atributes}
|
|
112
|
-
href={preparedPath}
|
|
113
|
-
target={target ?? '_self'}
|
|
114
|
-
rel="noreferrer"
|
|
115
|
-
>
|
|
116
|
-
{mainInner}
|
|
117
|
-
</a>
|
|
118
|
-
)
|
|
119
|
-
: (
|
|
120
|
-
mainInner
|
|
121
|
-
)}
|
|
122
|
-
</div>
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export default Text;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import cn from 'classnames';
|
|
2
|
-
|
|
3
|
-
import { useEffect, useRef } from 'react';
|
|
4
|
-
|
|
5
|
-
import { formatToOnlyASCIICodeText } from '../../../Functions/fieldValueFormatters';
|
|
6
|
-
|
|
7
|
-
import './Textarea.scss';
|
|
8
|
-
|
|
9
|
-
const RC = 'textarea';
|
|
10
|
-
|
|
11
|
-
function Textarea({ ref, id, value, onChange, onFocus, onBlur, placeholder, disabled, className, isNotValidateASCII = false, testId = RC, withAutoGrow, onKeyDown = () => {} }) {
|
|
12
|
-
const internalRef = useRef();
|
|
13
|
-
const textareaRef = ref || internalRef;
|
|
14
|
-
|
|
15
|
-
const handle = {
|
|
16
|
-
change: (val) => {
|
|
17
|
-
let inputValue = val;
|
|
18
|
-
if (!isNotValidateASCII)
|
|
19
|
-
inputValue = formatToOnlyASCIICodeText(inputValue);
|
|
20
|
-
|
|
21
|
-
onChange(inputValue);
|
|
22
|
-
},
|
|
23
|
-
focus: (e) => {
|
|
24
|
-
onFocus?.(e);
|
|
25
|
-
},
|
|
26
|
-
blur: (e) => {
|
|
27
|
-
onBlur?.(e);
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const autoGrow = (el) => {
|
|
32
|
-
el.style.height = '5px';
|
|
33
|
-
el.style.height = `${el.scrollHeight}px`;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
if (withAutoGrow) {
|
|
38
|
-
autoGrow(textareaRef?.current);
|
|
39
|
-
}
|
|
40
|
-
}, [value, withAutoGrow]);
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<div data-testid={testId} className={cn(`${RC}`, className)}>
|
|
44
|
-
<textarea
|
|
45
|
-
id={id ?? Math.random().toString(16).slice(2)}
|
|
46
|
-
data-testid={`${testId}-textarea`}
|
|
47
|
-
className={`${RC}__textarea`}
|
|
48
|
-
value={value}
|
|
49
|
-
onChange={e => handle.change(e.target.value)}
|
|
50
|
-
placeholder={placeholder}
|
|
51
|
-
disabled={disabled}
|
|
52
|
-
onKeyDown={onKeyDown}
|
|
53
|
-
ref={textareaRef}
|
|
54
|
-
onFocus={handle.focus}
|
|
55
|
-
onBlur={handle.blur}
|
|
56
|
-
/>
|
|
57
|
-
</div>
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export default Textarea;
|