@ntbjs/react-components 2.0.0-rc.29 → 2.0.0-rc.30
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/build/{_rollupPluginBabelHelpers-c245b26a.js → _virtual/_rollupPluginBabelHelpers.js} +2 -1
- package/build/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/build/{Alert-e6847a22.js → data/Alert/Alert.js} +5 -55
- package/build/data/Alert/Alert.js.map +1 -0
- package/build/data/Alert/Alert.styled.js +56 -0
- package/build/data/Alert/Alert.styled.js.map +1 -0
- package/build/data/Alert/index.js +2 -6
- package/build/data/Alert/index.js.map +1 -0
- package/build/data/Badge/Badge.js +87 -0
- package/build/data/Badge/Badge.js.map +1 -0
- package/build/{Badge-d93586a9.js → data/Badge/Badge.styled.js} +4 -85
- package/build/data/Badge/Badge.styled.js.map +1 -0
- package/build/data/Badge/index.js +2 -5
- package/build/data/Badge/index.js.map +1 -0
- package/build/data/Popover/Popover.js +93 -0
- package/build/data/Popover/Popover.js.map +1 -0
- package/build/{Popover-20050b91.js → data/Popover/Popover.styled.js} +6 -92
- package/build/data/Popover/Popover.styled.js.map +1 -0
- package/build/data/Popover/index.js +2 -10
- package/build/data/Popover/index.js.map +1 -0
- package/build/{Tab-04d435c3.js → data/Tab/Tab.js} +5 -12
- package/build/data/Tab/Tab.js.map +1 -0
- package/build/data/Tab/Tab.styled.js +13 -0
- package/build/data/Tab/Tab.styled.js.map +1 -0
- package/build/data/Tab/index.js +2 -5
- package/build/data/Tab/index.js.map +1 -0
- package/build/{Tabs-74d1ea8a.js → data/Tabs/Tabs.js} +6 -74
- package/build/data/Tabs/Tabs.js.map +1 -0
- package/build/data/Tabs/Tabs.styled.js +74 -0
- package/build/data/Tabs/Tabs.styled.js.map +1 -0
- package/build/data/Tabs/index.js +2 -7
- package/build/data/Tabs/index.js.map +1 -0
- package/build/{Tooltip-c1d1199e.js → data/Tooltip/Tooltip.js} +5 -26
- package/build/data/Tooltip/Tooltip.js.map +1 -0
- package/build/data/Tooltip/Tooltip.styled.js +28 -0
- package/build/data/Tooltip/Tooltip.styled.js.map +1 -0
- package/build/data/Tooltip/index.js +2 -7
- package/build/data/Tooltip/index.js.map +1 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.js +36 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.js.map +1 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js +53 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js.map +1 -0
- package/build/data/index.js +8 -16
- package/build/data/index.js.map +1 -0
- package/build/hooks/useEventListner.js +21 -0
- package/build/hooks/useEventListner.js.map +1 -0
- package/build/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/build/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/build/hooks/useOnClickOutside.js +14 -0
- package/build/hooks/useOnClickOutside.js.map +1 -0
- package/build/icons/arrow-back.svg.js +16 -0
- package/build/icons/arrow-back.svg.js.map +1 -0
- package/build/{arrow-forward-ad12c5f3.js → icons/arrow-forward.svg.js} +2 -1
- package/build/icons/arrow-forward.svg.js.map +1 -0
- package/build/icons/check-rectangle-filled.svg.js +16 -0
- package/build/icons/check-rectangle-filled.svg.js.map +1 -0
- package/build/{close-a5d37608.js → icons/close.svg.js} +2 -1
- package/build/icons/close.svg.js.map +1 -0
- package/build/{edit-note-283a0e15.js → icons/edit-note.svg.js} +2 -1
- package/build/icons/edit-note.svg.js.map +1 -0
- package/build/{expand-more-c5523c46.js → icons/expand-more.svg.js} +2 -1
- package/build/icons/expand-more.svg.js.map +1 -0
- package/build/icons/headset.svg.js +16 -0
- package/build/icons/headset.svg.js.map +1 -0
- package/build/icons/layers.svg.js +16 -0
- package/build/icons/layers.svg.js.map +1 -0
- package/build/icons/link.svg.js +16 -0
- package/build/icons/link.svg.js.map +1 -0
- package/build/icons/play.svg.js +16 -0
- package/build/icons/play.svg.js.map +1 -0
- package/build/icons/search.svg.js +16 -0
- package/build/icons/search.svg.js.map +1 -0
- package/build/icons/star-filled.svg.js +16 -0
- package/build/icons/star-filled.svg.js.map +1 -0
- package/build/icons/star.svg.js +16 -0
- package/build/icons/star.svg.js.map +1 -0
- package/build/icons/triangle-right.svg.js +16 -0
- package/build/icons/triangle-right.svg.js.map +1 -0
- package/build/icons/verification.svg.js +16 -0
- package/build/icons/verification.svg.js.map +1 -0
- package/build/{warning-circle-24f3efcd.js → icons/warning-circle.svg.js} +2 -1
- package/build/icons/warning-circle.svg.js.map +1 -0
- package/build/index.js +5 -0
- package/build/index.js.map +1 -0
- package/build/inputs/ActionButton/ActionButton.js +36 -0
- package/build/inputs/ActionButton/ActionButton.js.map +1 -0
- package/build/{ActionButton-4db754c3.js → inputs/ActionButton/ActionButton.styled.js} +4 -34
- package/build/inputs/ActionButton/ActionButton.styled.js.map +1 -0
- package/build/inputs/ActionButton/index.js +2 -6
- package/build/inputs/ActionButton/index.js.map +1 -0
- package/build/inputs/Button/Button.js +188 -0
- package/build/inputs/Button/Button.js.map +1 -0
- package/build/{Button-73eb8516.js → inputs/Button/Button.styled.js} +4 -186
- package/build/inputs/Button/Button.styled.js.map +1 -0
- package/build/inputs/Button/index.js +2 -13
- package/build/inputs/Button/index.js.map +1 -0
- package/build/inputs/Checkbox/Checkbox.js +97 -0
- package/build/inputs/Checkbox/Checkbox.js.map +1 -0
- package/build/inputs/Checkbox/Checkbox.styled.js +122 -0
- package/build/inputs/Checkbox/Checkbox.styled.js.map +1 -0
- package/build/inputs/Checkbox/index.js +2 -6
- package/build/inputs/Checkbox/index.js.map +1 -0
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js +267 -0
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js.map +1 -0
- package/build/{CompactAutocompleteSelect-52c49513.js → inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js} +6 -267
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js.map +1 -0
- package/build/inputs/CompactAutocompleteSelect/index.js +2 -23
- package/build/inputs/CompactAutocompleteSelect/index.js.map +1 -0
- package/build/inputs/CompactStarRating/CompactStarRating.js +177 -0
- package/build/inputs/CompactStarRating/CompactStarRating.js.map +1 -0
- package/build/inputs/CompactStarRating/CompactStarRating.styled.js +217 -0
- package/build/inputs/CompactStarRating/CompactStarRating.styled.js.map +1 -0
- package/build/inputs/CompactStarRating/index.js +2 -17
- package/build/inputs/CompactStarRating/index.js.map +1 -0
- package/build/inputs/CompactTextInput/CompactTextInput.js +184 -0
- package/build/inputs/CompactTextInput/CompactTextInput.js.map +1 -0
- package/build/{CompactTextInput-42ca5d42.js → inputs/CompactTextInput/CompactTextInput.styled.js} +4 -194
- package/build/inputs/CompactTextInput/CompactTextInput.styled.js.map +1 -0
- package/build/inputs/CompactTextInput/index.js +2 -19
- package/build/inputs/CompactTextInput/index.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js +207 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js +66 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/index.js +3 -0
- package/build/inputs/MultiLevelCheckbox/index.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/types.js +27 -0
- package/build/inputs/MultiLevelCheckbox/types.js.map +1 -0
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js +184 -26
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js.map +1 -0
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js +93 -0
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js.map +1 -0
- package/build/inputs/MultiLevelCheckboxSelect/index.js +2 -0
- package/build/inputs/MultiLevelCheckboxSelect/index.js.map +1 -0
- package/build/{MultiSelect-9f497e62.js → inputs/MultiSelect/MultiSelect.js} +6 -223
- package/build/inputs/MultiSelect/MultiSelect.js.map +1 -0
- package/build/inputs/MultiSelect/MultiSelect.styled.js +224 -0
- package/build/inputs/MultiSelect/MultiSelect.styled.js.map +1 -0
- package/build/inputs/MultiSelect/index.js +2 -10
- package/build/inputs/MultiSelect/index.js.map +1 -0
- package/build/inputs/Radio/Radio.js +60 -0
- package/build/inputs/Radio/Radio.js.map +1 -0
- package/build/{Radio-73ca3ae2.js → inputs/Radio/Radio.styled.js} +4 -58
- package/build/inputs/Radio/Radio.styled.js.map +1 -0
- package/build/inputs/Radio/index.js +2 -7
- package/build/inputs/Radio/index.js.map +1 -0
- package/build/inputs/Switch/Switch.js +64 -0
- package/build/inputs/Switch/Switch.js.map +1 -0
- package/build/{Switch-ecf3122b.js → inputs/Switch/Switch.styled.js} +4 -62
- package/build/inputs/Switch/Switch.styled.js.map +1 -0
- package/build/inputs/Switch/index.js +2 -6
- package/build/inputs/Switch/index.js.map +1 -0
- package/build/inputs/TextArea/TextArea.js +178 -0
- package/build/inputs/TextArea/TextArea.js.map +1 -0
- package/build/{TextArea-1e5b9201.js → inputs/TextArea/TextArea.styled.js} +3 -175
- package/build/inputs/TextArea/TextArea.styled.js.map +1 -0
- package/build/inputs/TextArea/index.js +2 -20
- package/build/inputs/TextArea/index.js.map +1 -0
- package/build/inputs/TextInput/TextInput.js +139 -0
- package/build/inputs/TextInput/TextInput.js.map +1 -0
- package/build/{TextInput-fab35842.js → inputs/TextInput/TextInput.styled.js} +4 -137
- package/build/inputs/TextInput/TextInput.styled.js.map +1 -0
- package/build/inputs/TextInput/index.js +2 -9
- package/build/inputs/TextInput/index.js.map +1 -0
- package/build/inputs/index.js +15 -40
- package/build/inputs/index.js.map +1 -0
- package/build/{InputGroup-1294d190.js → layout/InputGroup/InputGroup.js} +5 -8
- package/build/layout/InputGroup/InputGroup.js.map +1 -0
- package/build/layout/InputGroup/InputGroup.styled.js +9 -0
- package/build/layout/InputGroup/InputGroup.styled.js.map +1 -0
- package/build/layout/SectionSeparator/SectionSeparator.js +23 -0
- package/build/layout/SectionSeparator/SectionSeparator.js.map +1 -0
- package/build/layout/SectionSeparator/SectionSeparator.styled.js +14 -0
- package/build/layout/SectionSeparator/SectionSeparator.styled.js.map +1 -0
- package/build/layout/SectionSeparator/index.js +2 -5
- package/build/layout/SectionSeparator/index.js.map +1 -0
- package/build/layout/index.js +3 -6
- package/build/layout/index.js.map +1 -0
- package/build/ssr/index.js +1 -0
- package/build/ssr/index.js.map +1 -0
- package/build/styles/utils/colors.scss.js +4 -0
- package/build/styles/utils/colors.scss.js.map +1 -0
- package/build/utils/dateTime.js +17 -0
- package/build/utils/dateTime.js.map +1 -0
- package/build/utils/defaultTheme.js +44 -0
- package/build/utils/defaultTheme.js.map +1 -0
- package/build/{AssetAction-98d76ce0.js → widgets/AssetAction/AssetAction.js} +6 -40
- package/build/widgets/AssetAction/AssetAction.js.map +1 -0
- package/build/widgets/AssetAction/AssetAction.styled.js +41 -0
- package/build/widgets/AssetAction/AssetAction.styled.js.map +1 -0
- package/build/widgets/AssetAction/index.js +2 -7
- package/build/widgets/AssetAction/index.js.map +1 -0
- package/build/{AssetActionsBase-9e4c0735.js → widgets/AssetActionsBase/AssetActionsBase.js} +6 -15
- package/build/widgets/AssetActionsBase/AssetActionsBase.js.map +1 -0
- package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js +15 -0
- package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js.map +1 -0
- package/build/widgets/AssetActionsBase/index.js +2 -8
- package/build/widgets/AssetActionsBase/index.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGallery.js +99 -0
- package/build/widgets/AssetGallery/AssetGallery.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js +385 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js +30 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js +401 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js +329 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +409 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +280 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -0
- package/build/widgets/AssetGallery/asset.propType.js +54 -0
- package/build/widgets/AssetGallery/asset.propType.js.map +1 -0
- package/build/widgets/AssetGallery/index.js +2 -48
- package/build/widgets/AssetGallery/index.js.map +1 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js +44 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js.map +1 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js +77 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js.map +1 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/index.js +2 -6
- package/build/widgets/AssetPreview/AssetPreviewTopBar/index.js.map +1 -0
- package/build/{ContextMenu-0f7134e4.js → widgets/ContextMenu/ContextMenu.js} +5 -9
- package/build/widgets/ContextMenu/ContextMenu.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenu.styled.js +10 -0
- package/build/widgets/ContextMenu/ContextMenu.styled.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js +44 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js +77 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItem/index.js +2 -5
- package/build/widgets/ContextMenu/ContextMenuItem/index.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js +22 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js +21 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/index.js +2 -37
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/index.js.map +1 -0
- package/build/widgets/ContextMenu/index.js +2 -5
- package/build/widgets/ContextMenu/index.js.map +1 -0
- package/build/widgets/InfoCard/InfoCard.js +40 -0
- package/build/widgets/InfoCard/InfoCard.js.map +1 -0
- package/build/{InfoCard-c98b6f5a.js → widgets/InfoCard/InfoCard.styled.js} +5 -38
- package/build/widgets/InfoCard/InfoCard.styled.js.map +1 -0
- package/build/widgets/InfoCard/index.js +2 -6
- package/build/widgets/InfoCard/index.js.map +1 -0
- package/build/{Instructions-bfd28cea.js → widgets/Instructions/Instructions.js} +8 -34
- package/build/widgets/Instructions/Instructions.js.map +1 -0
- package/build/widgets/Instructions/Instructions.styled.js +32 -0
- package/build/widgets/Instructions/Instructions.styled.js.map +1 -0
- package/build/widgets/Instructions/index.js +2 -28
- package/build/widgets/Instructions/index.js.map +1 -0
- package/build/widgets/ProgressBar/ProgressBar.js +72 -0
- package/build/widgets/ProgressBar/ProgressBar.js.map +1 -0
- package/build/{ProgressBar-bc4a4a7e.js → widgets/ProgressBar/ProgressBar.styled.js} +5 -70
- package/build/widgets/ProgressBar/ProgressBar.styled.js.map +1 -0
- package/build/widgets/ProgressBar/index.js +2 -6
- package/build/widgets/ProgressBar/index.js.map +1 -0
- package/build/widgets/SummaryCard/SummaryCard.js +92 -0
- package/build/widgets/SummaryCard/SummaryCard.js.map +1 -0
- package/build/widgets/SummaryCard/SummaryCard.styled.js +137 -0
- package/build/widgets/SummaryCard/SummaryCard.styled.js.map +1 -0
- package/build/widgets/SummaryCard/index.js +2 -19
- package/build/widgets/SummaryCard/index.js.map +1 -0
- package/build/widgets/index.js +12 -53
- package/build/widgets/index.js.map +1 -0
- package/package.json +5 -2
- package/build/AssetGallery-63f721ec.js +0 -1981
- package/build/AssetPreviewTopBar-acd6353d.js +0 -127
- package/build/Checkbox-4a5fd716.js +0 -213
- package/build/CompactStarRating-9af2f427.js +0 -411
- package/build/ContextMenuItem-ea411141.js +0 -127
- package/build/MultiLevelCheckboxSelect-d8044c88.js +0 -604
- package/build/SectionSeparator-f47760a2.js +0 -31
- package/build/SummaryCard-24040650.js +0 -223
- package/build/VerificationStatusIcon-49cb1c1b.js +0 -95
- package/build/defaultTheme-1bcc2541.js +0 -1178
- package/build/layout/InputGroup/index.js +0 -5
- package/build/shift-away-subtle-0dd94a03.js +0 -7
package/build/{CompactTextInput-42ca5d42.js → inputs/CompactTextInput/CompactTextInput.styled.js}
RENAMED
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
import { isFunction, isEmpty } from 'lodash';
|
|
2
|
-
import { nanoid } from 'nanoid';
|
|
3
|
-
import { a as applyDefaultTheme, P as PropTypes } from './defaultTheme-1bcc2541.js';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import React__default, { useState, useMemo, useEffect, useCallback } from 'react';
|
|
6
|
-
import { S as SvgEditNote } from './edit-note-283a0e15.js';
|
|
7
|
-
import './Alert-e6847a22.js';
|
|
8
|
-
import './Badge-d93586a9.js';
|
|
9
|
-
import { P as Popover } from './Popover-20050b91.js';
|
|
10
|
-
import './Tab-04d435c3.js';
|
|
11
|
-
import './Tabs-74d1ea8a.js';
|
|
12
|
-
import { T as Tooltip } from './Tooltip-c1d1199e.js';
|
|
13
|
-
import './VerificationStatusIcon-49cb1c1b.js';
|
|
14
1
|
import styled, { keyframes, css } from 'styled-components';
|
|
15
|
-
|
|
16
|
-
var _path;
|
|
17
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
18
|
-
function SvgLink(props) {
|
|
19
|
-
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
20
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
21
|
-
viewBox: "0 0 20 10"
|
|
22
|
-
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
23
|
-
fill: "currentColor",
|
|
24
|
-
d: "M9 10H5c-1.38 0-2.56-.49-3.54-1.46S0 6.39 0 5s.49-2.56 1.46-3.54S3.62 0 5 0h4v2H5c-.83 0-1.54.29-2.13.88s-.88 1.29-.88 2.13.29 1.54.88 2.13 1.29.88 2.13.88h4v2zM6 6V4h8v2H6zm5 4V8h4c.83 0 1.54-.29 2.13-.88s.88-1.29.88-2.13-.29-1.54-.88-2.13-1.29-.88-2.13-.88h-4V0h4c1.38 0 2.56.49 3.54 1.46S20 3.61 20 5s-.49 2.56-1.46 3.54S16.39 10 15 10h-4z"
|
|
25
|
-
})));
|
|
26
|
-
}
|
|
2
|
+
import { applyDefaultTheme } from '../../utils/defaultTheme.js';
|
|
27
3
|
|
|
28
4
|
const fadeIn = keyframes`
|
|
29
5
|
from {
|
|
@@ -75,7 +51,7 @@ const commonAnchorTagStyle = css`
|
|
|
75
51
|
const readOnlyBackground = css`
|
|
76
52
|
${props => props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('white'))}
|
|
77
53
|
`;
|
|
78
|
-
const CompactTextInput
|
|
54
|
+
const CompactTextInput = styled.div.attrs(applyDefaultTheme)`
|
|
79
55
|
display: flex;
|
|
80
56
|
align-items: center;
|
|
81
57
|
height: 24px;
|
|
@@ -346,171 +322,5 @@ const ReadOnlyLinkContainer = styled.div.attrs(applyDefaultTheme)`
|
|
|
346
322
|
padding: 0 10px 1px;
|
|
347
323
|
`;
|
|
348
324
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
inputType,
|
|
352
|
-
name,
|
|
353
|
-
defaultValue,
|
|
354
|
-
value,
|
|
355
|
-
placeholder,
|
|
356
|
-
link,
|
|
357
|
-
linkTarget,
|
|
358
|
-
linkHandler,
|
|
359
|
-
activeLinkHandler,
|
|
360
|
-
autoSelect,
|
|
361
|
-
readOnly,
|
|
362
|
-
disabled,
|
|
363
|
-
edit,
|
|
364
|
-
type,
|
|
365
|
-
descriptionToolTip,
|
|
366
|
-
bold,
|
|
367
|
-
hidden,
|
|
368
|
-
onChange: onChangeProp,
|
|
369
|
-
onFocus: onFocusProp,
|
|
370
|
-
onBlur: onBlurProp,
|
|
371
|
-
loadingIcon,
|
|
372
|
-
successIcon,
|
|
373
|
-
...props
|
|
374
|
-
}, forwardedRef) {
|
|
375
|
-
const [uniqueId] = useState(nanoid());
|
|
376
|
-
const [currentValue, setCurrentValue] = useState();
|
|
377
|
-
const [autoFocus, setAutoFocus] = useState(false);
|
|
378
|
-
const memoizedDescriptionToolTip = useMemo(() => {
|
|
379
|
-
return descriptionToolTip;
|
|
380
|
-
}, [descriptionToolTip]);
|
|
381
|
-
useEffect(() => {
|
|
382
|
-
setCurrentValue(value || defaultValue);
|
|
383
|
-
setAutoFocus(false);
|
|
384
|
-
}, [value, defaultValue]);
|
|
385
|
-
const onChange = useCallback(event => {
|
|
386
|
-
setCurrentValue(event.target.value);
|
|
387
|
-
if (!autoFocus) {
|
|
388
|
-
setAutoFocus(true);
|
|
389
|
-
}
|
|
390
|
-
if (isFunction(onChangeProp)) {
|
|
391
|
-
onChangeProp(event);
|
|
392
|
-
}
|
|
393
|
-
}, [onChangeProp]);
|
|
394
|
-
const onFocus = useCallback(event => {
|
|
395
|
-
if (autoSelect) {
|
|
396
|
-
event.target.select();
|
|
397
|
-
}
|
|
398
|
-
if (isFunction(onFocusProp)) {
|
|
399
|
-
onFocusProp(event);
|
|
400
|
-
}
|
|
401
|
-
}, [autoSelect, readOnly, onFocusProp]);
|
|
402
|
-
const onBlur = useCallback(event => {
|
|
403
|
-
if (isFunction(onBlurProp)) {
|
|
404
|
-
onBlurProp(event);
|
|
405
|
-
}
|
|
406
|
-
}, [onBlurProp]);
|
|
407
|
-
const input = () => {
|
|
408
|
-
return React__default.createElement(Input, {
|
|
409
|
-
ref: forwardedRef,
|
|
410
|
-
id: uniqueId,
|
|
411
|
-
key: uniqueId,
|
|
412
|
-
autoFocus: autoFocus,
|
|
413
|
-
inputType: inputType,
|
|
414
|
-
name: name,
|
|
415
|
-
readOnly: readOnly,
|
|
416
|
-
disabled: disabled,
|
|
417
|
-
edit: edit,
|
|
418
|
-
placeholder: placeholder,
|
|
419
|
-
defaultValue: defaultValue,
|
|
420
|
-
value: value,
|
|
421
|
-
type: type,
|
|
422
|
-
bold: bold,
|
|
423
|
-
hasLink: !isEmpty(link),
|
|
424
|
-
onFocus: onFocus,
|
|
425
|
-
onChange: onChange,
|
|
426
|
-
onBlur: onBlur
|
|
427
|
-
});
|
|
428
|
-
};
|
|
429
|
-
if (hidden) return null;
|
|
430
|
-
return React__default.createElement(CompactTextInput$1, props, label && React__default.createElement(Label, {
|
|
431
|
-
htmlFor: uniqueId,
|
|
432
|
-
disabled: disabled
|
|
433
|
-
}, label, React__default.createElement(SuccessContainer, null, type === 'loading' && loadingIcon, type === 'success' && successIcon)), React__default.createElement(InputContainer, {
|
|
434
|
-
$hasLabel: !isEmpty(label)
|
|
435
|
-
}, !memoizedDescriptionToolTip && !link && React__default.createElement("div", null, input()), memoizedDescriptionToolTip && !link && React__default.createElement("div", null, React__default.createElement(Tooltip, {
|
|
436
|
-
content: memoizedDescriptionToolTip,
|
|
437
|
-
key: "tooltip1",
|
|
438
|
-
placement: "bottom-end",
|
|
439
|
-
trigger: 'mouseenter',
|
|
440
|
-
zIndex: 999999
|
|
441
|
-
}, input())), link && !readOnly && React__default.createElement("div", null, React__default.createElement(Popover, {
|
|
442
|
-
arrow: false,
|
|
443
|
-
content: React__default.createElement(LinkPopoverContainer, null, activeLinkHandler ? React__default.createElement(StyledLink, {
|
|
444
|
-
href: link,
|
|
445
|
-
target: linkTarget,
|
|
446
|
-
onClick: e => {
|
|
447
|
-
if (activeLinkHandler) {
|
|
448
|
-
e.preventDefault();
|
|
449
|
-
linkHandler();
|
|
450
|
-
}
|
|
451
|
-
},
|
|
452
|
-
rel: "noreferrer"
|
|
453
|
-
}, React__default.createElement(SvgLink, null), currentValue) : React__default.createElement(StyledLink, {
|
|
454
|
-
href: link,
|
|
455
|
-
target: linkTarget,
|
|
456
|
-
rel: "noreferrer"
|
|
457
|
-
}, React__default.createElement(SvgLink, null), currentValue)),
|
|
458
|
-
key: "tooltip2",
|
|
459
|
-
placement: "bottom-start",
|
|
460
|
-
trigger: "focusin",
|
|
461
|
-
zIndex: 999999,
|
|
462
|
-
interactive: true
|
|
463
|
-
}, input())), link && readOnly && React__default.createElement(ReadOnlyLinkContainer, null, React__default.createElement(StyledLink, {
|
|
464
|
-
href: link,
|
|
465
|
-
rel: "noreferrer",
|
|
466
|
-
style: {
|
|
467
|
-
display: 'inline-block'
|
|
468
|
-
},
|
|
469
|
-
target: linkTarget
|
|
470
|
-
}, currentValue)), !readOnly && !disabled && React__default.createElement(React__default.Fragment, null, React__default.createElement(InputIconContainer, {
|
|
471
|
-
type: type
|
|
472
|
-
}, React__default.createElement(SvgEditNote, null)), isEmpty(label) && React__default.createElement(InputSuccessContainer, null, type === 'loading' && loadingIcon, type === 'success' && successIcon))));
|
|
473
|
-
});
|
|
474
|
-
CompactTextInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
475
|
-
label: PropTypes.string,
|
|
476
|
-
success: PropTypes.bool,
|
|
477
|
-
inputType: PropTypes.string,
|
|
478
|
-
name: PropTypes.string,
|
|
479
|
-
defaultValue: PropTypes.string,
|
|
480
|
-
value: PropTypes.string,
|
|
481
|
-
placeholder: PropTypes.string,
|
|
482
|
-
link: PropTypes.string,
|
|
483
|
-
linkTarget: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),
|
|
484
|
-
linkHandler: PropTypes.func,
|
|
485
|
-
activeLinkHandler: PropTypes.bool,
|
|
486
|
-
autoSelect: PropTypes.bool,
|
|
487
|
-
readOnly: PropTypes.bool,
|
|
488
|
-
disabled: PropTypes.bool,
|
|
489
|
-
edit: PropTypes.bool,
|
|
490
|
-
warning: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
|
491
|
-
bold: PropTypes.bool,
|
|
492
|
-
hidden: PropTypes.bool,
|
|
493
|
-
onChange: PropTypes.func,
|
|
494
|
-
onFocus: PropTypes.func,
|
|
495
|
-
onBlur: PropTypes.func,
|
|
496
|
-
type: PropTypes.oneOf(['', 'error', 'warning', 'loading', 'success']),
|
|
497
|
-
descriptionToolTip: PropTypes.string,
|
|
498
|
-
loadingIcon: PropTypes.element,
|
|
499
|
-
successIcon: PropTypes.element
|
|
500
|
-
} : {};
|
|
501
|
-
CompactTextInput.defaultProps = {
|
|
502
|
-
inputType: 'text',
|
|
503
|
-
autoSelect: true,
|
|
504
|
-
linkTarget: '_self',
|
|
505
|
-
bold: false,
|
|
506
|
-
readOnly: false,
|
|
507
|
-
descriptionToolTip: '',
|
|
508
|
-
edit: false,
|
|
509
|
-
hidden: false,
|
|
510
|
-
type: '',
|
|
511
|
-
linkHandler: () => {},
|
|
512
|
-
activeLinkHandler: false,
|
|
513
|
-
onChange: () => {}
|
|
514
|
-
};
|
|
515
|
-
|
|
516
|
-
export { CompactTextInput as C };
|
|
325
|
+
export { CompactTextInput, Input, InputContainer, InputIconContainer, InputSuccessContainer, Label, LinkPopoverContainer, ReadOnlyLinkContainer, StyledLink, SuccessContainer };
|
|
326
|
+
//# sourceMappingURL=CompactTextInput.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactTextInput.styled.js","sources":["../../../src/components/inputs/CompactTextInput/CompactTextInput.styled.js"],"sourcesContent":["import styled, { css, keyframes } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nconst fadeIn = keyframes`\n from {\n background-color: ${props =>\n props.theme.themeProp('rgba(48, 130, 106, 0)', 'rgba(191, 224, 213, 0)')};\n }\n to {\n background-color: ${props =>\n props.theme.themeProp('rgba(48, 130, 106, 1)', 'rgba(191, 224, 213, 1)')};\n }\n`;\n\nconst fadeOut = keyframes`\n from {\n background-color: ${props =>\n props.theme.themeProp('rgba(48, 130, 106, 1)', 'rgba(191, 224, 213, 1)')};\n }\n to {\n background-color: ${props =>\n props.theme.themeProp('rgba(48, 130, 106, 0)', 'rgba(191, 224, 213, 0)')};\n }\n`;\n\nconst fadeInCheck = keyframes`\n from {\n opacity: 0\n }\n to {\n opacity: 1\n }\n`;\n\nconst fadeOutCheck = keyframes`\n from {\n opacity: 1\n }\n to {\n opacity: 0\n }\n`;\n\nconst linkColor = css`\n ${props => props.theme.themeProp('color', '#ACCDC3', props.theme.getColor('emerald-500'))}\n ${props =>\n !props.disabled &&\n css`\n &:hover {\n text-decoration: underline;\n }\n `}\n`;\n\nconst commonAnchorTagStyle = css`\n a,\n && {\n font-size: 0.875rem;\n text-decoration: none;\n }\n`;\n\nconst readOnlyBackground = css`\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-900'),\n props.theme.getColor('white')\n )}\n`;\n\nexport const CompactTextInput = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n height: 24px;\n font-family: ${props => props.theme.primaryFontFamily};\n`;\n\nexport const Label = styled.label.attrs(applyDefaultTheme)`\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('white'),\n props.theme.getColor('gray-700')\n )};\n flex-basis: 33.33%;\n font-size: 0.875rem;\n line-height: 1rem;\n justify-content: space-between;\n height: 19px;\n display: flex;\n align-items: center;\n ${props =>\n props.disabled &&\n css`\n opacity: 0.5;\n cursor: not-allowed;\n `}\n`;\n\nexport const InputContainer = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n height: 19px;\n flex-basis: ${props => (props.$hasLabel ? '66.66%' : '100%')};\n`;\n\nexport const SuccessContainer = styled.div.attrs(applyDefaultTheme)`\n opacity: 1;\n pointer-events: none;\n display: flex;\n opacity: ${props => (props.fadeIn ? 0 : 1)};\n animation: ${props => (props.fadeIn ? fadeOutCheck : fadeInCheck)} 0.5s ease-in-out;\n transition: opacity 0.5s ease-in-out;\n margin-right: 5px;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-500')\n )}\n > svg {\n width: 13px;\n }\n`;\n\nexport const InputSuccessContainer = styled.div.attrs(applyDefaultTheme)`\n opacity: 1;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n opacity: ${props => (props.fadeIn ? 0 : 1)};\n animation: ${props => (props.fadeIn ? fadeOutCheck : fadeInCheck)} 0.5s ease-in-out;\n transition: opacity 0.5s ease-in-out;\n position: relative;\n margin-top: -20px;\n margin-right: 8px;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-500')\n )}\n > svg {\n width: 13px;\n }\n`;\n\nexport const InputIconContainer = styled.div.attrs(applyDefaultTheme)`\n opacity: 0;\n pointer-events: none;\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n padding: 5px 10px 0 0;\n ${props =>\n props.theme.themeProp(\n 'background',\n css`\n linear-gradient(-90deg,\n ${props =>\n props.type === 'error'\n ? '#901d1d'\n : props.type === 'warning'\n ? '#816600'\n : props.theme.getColor('gray-700')} 55%,\n transparent)\n `,\n css`\n linear-gradient(-90deg,\n ${props =>\n props.type === 'error'\n ? '#f7d5d0'\n : props.type === 'warning'\n ? '#fffebf'\n : props.theme.getColor('gray-100')} 55%,\n transparent)\n `\n )};\n\n display: flex;\n align-items: center;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n color: ${props => props.theme.getColor('gray-400')};\n\n ${props => props.type === 'warning' && props.theme.themeProp('color', '#C3AF43', '#C3AF43')}\n\n ${props => props.type === 'error' && props.theme.themeProp('color', '#CB968F', '#CB968F')}\n\n > svg {\n width: 12px;\n }\n`;\n\nexport const Input = styled.input.attrs(applyDefaultTheme)`\n box-sizing: border-box;\n height: 22px;\n width: 100%;\n display: block;\n font-size: 0.875rem;\n line-height: 1rem;\n font-family: inherit;\n padding: 1px 10px;\n border-radius: 3px;\n border: 1px solid transparent;\n\n${props => {\n if (props.type === 'error') {\n return css`\n ${props.theme.themeProp('background', '#7f1b1b', '#FEE2E2')} !important;\n `;\n } else if (props.type === 'warning') {\n return css`\n ${props.theme.themeProp('background', '#634E01', '#FFFDE8')} !important;\n `;\n } else {\n return props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-900'),\n props.theme.getColor('white')\n );\n }\n}}\n\n ${props =>\n props.readOnly &&\n css`\n cursor: default;\n `}\n\n ${props =>\n props.disabled &&\n css`\n opacity: 0.5;\n `}\n\n ${props =>\n props.type === 'success' &&\n css`\n animation: ${props => (props.type === 'success' ? fadeIn : fadeOut)} 0.5s ease-in-out;\n `}\n\n\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-200'),\n props.theme.getColor('gray-700')\n )}\n\n\n \n \n\n ${props =>\n props.hasLink &&\n css`\n &&:not(:focus),\n &&:read-only {\n ${linkColor}\n }\n &&:read-only {\n cursor: default;\n }\n `};\n\n \n\n\n &&:not(:hover):not(:focus) {\n\n ${props => {\n if (props.edit) {\n if (props.type === 'error') {\n return props.theme.themeProp('background', '#7f1b1b', '#FEE2E2');\n } else if (props.type === 'warning') {\n return props.theme.themeProp('background', '#634E01', '#FFFDE8');\n } else {\n return props.theme.themeProp(\n 'background',\n 'rgba(39,39,42, 0.7)',\n 'rgba(244,244,245, 0.3)'\n );\n }\n }\n }}\n \n \n\n ${props =>\n props.edit &&\n props.theme.themeProp('border-color', 'rgba(39,39,42, 0.7)', 'rgba(228,228,231, 0.3)')};\n \n ${props =>\n props.hasLink &&\n css`\n &&:not(:focus),\n &&:read-only {\n cursor: default;\n ${linkColor}\n }\n `}\n }\n\n &&:hover:not(:focus) {\n\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('gray-100')\n )}\n\n ${props =>\n props.readOnly &&\n css`\n ${readOnlyBackground}\n `};\n\n ${props =>\n props.edit &&\n props.theme.themeProp(\n 'border-color',\n props.theme.getColor('gray-700'),\n props.theme.getColor('gray-100')\n )};\n\n ${props =>\n props.type === 'warning' && props.theme.themeProp('background', '#806403', '#FFFEBF')};\n\n ${props => props.type === 'error' && props.theme.themeProp('background', '#901d1d', '#F7D5D0')};\n\n\n ${props =>\n props.hasLink &&\n css`\n cursor: pointer;\n &&:read-only {\n background: none !important;\n cursor: default;\n }\n `}\n & + ${InputIconContainer} {\n opacity: 1;\n \n }\n }\n\n ${props =>\n props.disabled &&\n css`\n background: none !important;\n cursor: not-allowed;\n `}\n ${props =>\n props.disabled &&\n props.hasLink &&\n css`\n background: none !important;\n cursor: not-allowed !important;\n `}\n\n }\n\n &&:focus {\n ${props =>\n !props.readOnly &&\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('gray-100')\n )};\n\n ${props =>\n props.readOnly &&\n css`\n ${readOnlyBackground}\n `};\n \n ${props =>\n props.type === 'error' &&\n !props.readOnly &&\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-200'),\n props.theme.getColor('gray-700')\n )};\n\n ${props =>\n !props.readOnly &&\n css`\n border-color: ${props => props.theme.getColor('gray-600')};\n `};\n outline: none;\n\n ${props =>\n props.type === 'warning' &&\n css`\n ${props => props.theme.themeProp('border-color', '#F4E21E', '#F4E21E')}\n ${props.theme.themeProp('background', 'white', 'white')}\n ${props.theme.themeProp('color', 'black', 'black')}\n `};\n\n ${props =>\n props.type === 'error' &&\n css`\n ${props => props.theme.themeProp('border-color', '#D83018', '#D83018')}\n ${props.theme.themeProp('background', 'white', 'white')}\n ${props.theme.themeProp('color', 'black', 'black')}\n `};\n }\n\n &&::placeholder {\n color: inherit;\n opacity: 0.6;\n }\n\n ${props =>\n props.bold &&\n css`\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.0625;\n padding-top: 3px;\n padding-bottom: 2px;\n `}\n`;\n\nexport const LinkPopoverContainer = styled.div.attrs(applyDefaultTheme)`\n ${commonAnchorTagStyle}\n\n padding: 5px 8px;\n\n svg {\n width: 18px;\n margin-right: 8px;\n }\n`;\n\nexport const StyledLink = styled.a.attrs(applyDefaultTheme)`\n ${commonAnchorTagStyle}\n ${linkColor}\n`;\n\nexport const ReadOnlyLinkContainer = styled.div.attrs(applyDefaultTheme)`\n ${readOnlyBackground};\n border: 1px solid transparent;\n border-radius: 3px;\n padding: 0 10px 1px;\n`;\n"],"names":["fadeIn","keyframes","props","theme","themeProp","fadeOut","fadeInCheck","fadeOutCheck","linkColor","css","getColor","disabled","commonAnchorTagStyle","readOnlyBackground","CompactTextInput","styled","div","attrs","applyDefaultTheme","primaryFontFamily","Label","label","InputContainer","$hasLabel","SuccessContainer","InputSuccessContainer","InputIconContainer","type","Input","input","readOnly","hasLink","edit","bold","LinkPopoverContainer","StyledLink","a","ReadOnlyLinkContainer"],"mappings":"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"}
|
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
3
|
-
import 'nanoid';
|
|
4
|
-
import '../../defaultTheme-1bcc2541.js';
|
|
5
|
-
import 'styled-components';
|
|
6
|
-
import 'react';
|
|
7
|
-
import '../../edit-note-283a0e15.js';
|
|
8
|
-
import '../../Alert-e6847a22.js';
|
|
9
|
-
import '../../_rollupPluginBabelHelpers-c245b26a.js';
|
|
10
|
-
import '../../Badge-d93586a9.js';
|
|
11
|
-
import '../../Popover-20050b91.js';
|
|
12
|
-
import 'polished';
|
|
13
|
-
import '@tippyjs/react';
|
|
14
|
-
import '../../shift-away-subtle-0dd94a03.js';
|
|
15
|
-
import 'popper-max-size-modifier';
|
|
16
|
-
import '../../Tab-04d435c3.js';
|
|
17
|
-
import '../../Tabs-74d1ea8a.js';
|
|
18
|
-
import '../../Tooltip-c1d1199e.js';
|
|
19
|
-
import '../../VerificationStatusIcon-49cb1c1b.js';
|
|
1
|
+
export { default } from './CompactTextInput.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { useState, useMemo, useCallback, useEffect } from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { MultiLevelCheckbox as MultiLevelCheckbox$1, MultiLevelCheckboxLegend, MultiLevelCheckboxNoResults, CheckboxTree as CheckboxTree$1, CheckboxTreeCheckboxContainer, ExpandTreeButton, CheckboxTreeChildren } from './MultiLevelCheckbox.styled.js';
|
|
5
|
+
import Checkbox from '../Checkbox/Checkbox.js';
|
|
6
|
+
import { isEmpty, uniq, isEqual, isArray } from 'lodash';
|
|
7
|
+
import { findChildValues, NodeType } from './types.js';
|
|
8
|
+
|
|
9
|
+
function hasChildrenSelected(node, targetValue, checkedValues) {
|
|
10
|
+
if (!isArray(node.children) || node.children.length === 0) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (node.children.some(childNode => checkedValues.includes(childNode.value))) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return node.children.some(childNode => hasChildrenSelected(childNode, childNode.value, checkedValues));
|
|
17
|
+
}
|
|
18
|
+
function hasAllChildrenSelected(node, targetValue, checkedValues) {
|
|
19
|
+
if (!node.children || node.children.length === 0) {
|
|
20
|
+
return checkedValues.includes(node.value);
|
|
21
|
+
}
|
|
22
|
+
if (node.children.some(childNode => !checkedValues.includes(childNode.value))) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return node.children.every(childNode => hasAllChildrenSelected(childNode, childNode.value, checkedValues));
|
|
26
|
+
}
|
|
27
|
+
function getLabelByValue(targetValue, nodes) {
|
|
28
|
+
for (const node of nodes) {
|
|
29
|
+
if (node.value === targetValue) {
|
|
30
|
+
return node.label;
|
|
31
|
+
}
|
|
32
|
+
if (node.children) {
|
|
33
|
+
const result = getLabelByValue(targetValue, node.children);
|
|
34
|
+
if (result) {
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const MultiLevelCheckbox = React__default.forwardRef(function MultiLevelCheckbox({
|
|
42
|
+
options,
|
|
43
|
+
checked,
|
|
44
|
+
search,
|
|
45
|
+
label,
|
|
46
|
+
noResultsText,
|
|
47
|
+
onChange,
|
|
48
|
+
...props
|
|
49
|
+
}, forwardedRef) {
|
|
50
|
+
const [internalChecked, setInternalChecked] = useState(includeAllChildren(checked, options));
|
|
51
|
+
const anySearchResults = useMemo(() => {
|
|
52
|
+
if (isEmpty(search)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return options.some(node => {
|
|
56
|
+
const childValues = findChildValues(node);
|
|
57
|
+
return [node.value, ...childValues].map(v => getLabelByValue(v, options)).some(v => v.match(new RegExp(search, 'i')));
|
|
58
|
+
});
|
|
59
|
+
}, [options, search]);
|
|
60
|
+
function includeAllChildren(checked, nodes, honorParent = true) {
|
|
61
|
+
let newChecked = [];
|
|
62
|
+
function fillSiblings(nodes) {
|
|
63
|
+
nodes.forEach(node => {
|
|
64
|
+
if (hasAllChildrenSelected(node, node.value, checked)) {
|
|
65
|
+
newChecked.push(node.value);
|
|
66
|
+
}
|
|
67
|
+
if (honorParent && checked.includes(node.value)) {
|
|
68
|
+
const childValues = findChildValues(node);
|
|
69
|
+
return newChecked = newChecked.concat([node.value, ...childValues]);
|
|
70
|
+
}
|
|
71
|
+
if (node.children) {
|
|
72
|
+
fillSiblings(node.children);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
fillSiblings(nodes);
|
|
77
|
+
return newChecked;
|
|
78
|
+
}
|
|
79
|
+
const onAdd = useCallback(values => {
|
|
80
|
+
setInternalChecked(prevChecked => uniq(includeAllChildren([...prevChecked, ...values], options)));
|
|
81
|
+
}, [options]);
|
|
82
|
+
const onRemove = useCallback(values => {
|
|
83
|
+
setInternalChecked(prevChecked => includeAllChildren(prevChecked.filter(v => !values.includes(v)), options, false));
|
|
84
|
+
}, [options]);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
onChange([...internalChecked].sort());
|
|
87
|
+
}, [internalChecked, onChange]);
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
if (!isEqual([...checked].sort(), [...internalChecked].sort())) {
|
|
90
|
+
setInternalChecked(includeAllChildren(checked, options));
|
|
91
|
+
}
|
|
92
|
+
}, [checked, options]);
|
|
93
|
+
return React__default.createElement(MultiLevelCheckbox$1, _extends({}, props, {
|
|
94
|
+
ref: forwardedRef
|
|
95
|
+
}), label && React__default.createElement(MultiLevelCheckboxLegend, null, label), options.map(node => React__default.createElement(CheckboxTree, {
|
|
96
|
+
key: node.value,
|
|
97
|
+
nodes: options,
|
|
98
|
+
node: node,
|
|
99
|
+
checked: checked.filter(c => [node.value, ...findChildValues(node)].includes(c)),
|
|
100
|
+
onAdd: onAdd,
|
|
101
|
+
onRemove: onRemove,
|
|
102
|
+
search: search
|
|
103
|
+
})), !anySearchResults && React__default.createElement(MultiLevelCheckboxNoResults, null, noResultsText));
|
|
104
|
+
});
|
|
105
|
+
MultiLevelCheckbox.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
106
|
+
options: PropTypes.arrayOf(NodeType),
|
|
107
|
+
checked: PropTypes.array.isRequired,
|
|
108
|
+
label: PropTypes.string,
|
|
109
|
+
search: PropTypes.string,
|
|
110
|
+
noResultsText: PropTypes.string,
|
|
111
|
+
onChange: PropTypes.func.isRequired
|
|
112
|
+
} : {};
|
|
113
|
+
MultiLevelCheckbox.defaultProps = {
|
|
114
|
+
options: [],
|
|
115
|
+
noResultsText: 'No results.'
|
|
116
|
+
};
|
|
117
|
+
const CheckboxTree = React__default.memo(function CheckboxTree({
|
|
118
|
+
node,
|
|
119
|
+
nodes,
|
|
120
|
+
checked,
|
|
121
|
+
onAdd,
|
|
122
|
+
onRemove,
|
|
123
|
+
search = ''
|
|
124
|
+
}) {
|
|
125
|
+
const [expanded, setExpanded] = useState(false);
|
|
126
|
+
const [expandedBySearch, setExpandedBySearch] = useState(false);
|
|
127
|
+
const onChange = useCallback(event => {
|
|
128
|
+
if (event.target.checked) {
|
|
129
|
+
onAdd([event.target.value, ...findChildValues(node)]);
|
|
130
|
+
} else {
|
|
131
|
+
onRemove([event.target.value, ...findChildValues(node)]);
|
|
132
|
+
}
|
|
133
|
+
}, [node, onAdd, onRemove]);
|
|
134
|
+
const onChildrenAdd = useCallback(newValues => {
|
|
135
|
+
if (hasAllChildrenSelected(node, '', [...newValues, ...checked])) {
|
|
136
|
+
return onAdd([node.value, ...newValues]);
|
|
137
|
+
}
|
|
138
|
+
onAdd(newValues);
|
|
139
|
+
}, [node, checked, onAdd]);
|
|
140
|
+
const hideOption = useMemo(() => {
|
|
141
|
+
if (isEmpty(search)) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const childValues = findChildValues(node);
|
|
145
|
+
return ![node.value, ...childValues].map(v => getLabelByValue(v, nodes)).some(v => v.match(new RegExp(search, 'i')));
|
|
146
|
+
}, [node, nodes, search]);
|
|
147
|
+
useEffect(() => {
|
|
148
|
+
const childValues = findChildValues(node);
|
|
149
|
+
const expandBySearch = !isEmpty(search) && [node.value, ...childValues].map(v => getLabelByValue(v, nodes)).some(v => v.match(new RegExp(search, 'i')));
|
|
150
|
+
setExpandedBySearch(expandBySearch);
|
|
151
|
+
}, [search, nodes, node]);
|
|
152
|
+
if (hideOption) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
return React__default.createElement(CheckboxTree$1, null, React__default.createElement(CheckboxTreeCheckboxContainer, null, isArray(node.children) && node.children.length > 0 && React__default.createElement(ExpandTreeButton, {
|
|
156
|
+
$expanded: expanded || expandedBySearch,
|
|
157
|
+
type: "button",
|
|
158
|
+
onClick: () => {
|
|
159
|
+
setExpandedBySearch(current => {
|
|
160
|
+
if (current) {
|
|
161
|
+
setExpanded(false);
|
|
162
|
+
} else {
|
|
163
|
+
setExpanded(v => !v);
|
|
164
|
+
}
|
|
165
|
+
return false;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}, React__default.createElement("svg", {
|
|
169
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
170
|
+
viewBox: "0 0 12 7.4"
|
|
171
|
+
}, React__default.createElement("path", {
|
|
172
|
+
fill: "currentColor",
|
|
173
|
+
d: "m6,7.4L0,1.4,1.4,0l4.6,4.6L10.6,0l1.4,1.4-6,6Z",
|
|
174
|
+
strokeWidth: "0"
|
|
175
|
+
}))), React__default.createElement(Checkbox, {
|
|
176
|
+
style: {
|
|
177
|
+
paddingLeft: 24
|
|
178
|
+
},
|
|
179
|
+
muted: !checked.includes(node.value),
|
|
180
|
+
label: node.label,
|
|
181
|
+
indeterminate: checked.includes(node.value) && !hasAllChildrenSelected(node, node.value, checked) || hasChildrenSelected(node, node.value, checked) && !hasAllChildrenSelected(node, node.value, checked),
|
|
182
|
+
checked: hasChildrenSelected(node, node.value, checked) || checked.includes(node.value),
|
|
183
|
+
value: node.value,
|
|
184
|
+
onChange: onChange
|
|
185
|
+
})), node.children && React__default.createElement(CheckboxTreeChildren, {
|
|
186
|
+
$expanded: expanded || expandedBySearch
|
|
187
|
+
}, React__default.createElement("div", null, node.children.map(childNode => React__default.createElement(CheckboxTree, {
|
|
188
|
+
key: childNode.value,
|
|
189
|
+
checked: checked.filter(c => [childNode.value, ...findChildValues(childNode)].includes(c)),
|
|
190
|
+
onAdd: onChildrenAdd,
|
|
191
|
+
onRemove: onRemove,
|
|
192
|
+
node: childNode,
|
|
193
|
+
nodes: nodes,
|
|
194
|
+
search: search
|
|
195
|
+
})))));
|
|
196
|
+
}, isEqual);
|
|
197
|
+
CheckboxTree.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
198
|
+
node: NodeType,
|
|
199
|
+
nodes: PropTypes.arrayOf(NodeType),
|
|
200
|
+
checked: PropTypes.array.isRequired,
|
|
201
|
+
search: PropTypes.string,
|
|
202
|
+
onAdd: PropTypes.func.isRequired,
|
|
203
|
+
onRemove: PropTypes.func.isRequired
|
|
204
|
+
} : {};
|
|
205
|
+
|
|
206
|
+
export { MultiLevelCheckbox as default };
|
|
207
|
+
//# sourceMappingURL=MultiLevelCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiLevelCheckbox.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './MultiLevelCheckbox.styled';\nimport Checkbox from '../Checkbox';\nimport { isArray, isEmpty, isEqual, uniq } from 'lodash';\nimport { NodeType, findChildValues } from './types';\n\nfunction hasChildrenSelected(node, targetValue, checkedValues) {\n if (!isArray(node.children) || node.children.length === 0) {\n return false;\n }\n\n // Check if any direct children are selected\n if (node.children.some(childNode => checkedValues.includes(childNode.value))) {\n return true;\n }\n\n // Check recursively for selected children in each child node\n return node.children.some(childNode =>\n hasChildrenSelected(childNode, childNode.value, checkedValues)\n );\n}\n\nfunction hasAllChildrenSelected(node, targetValue, checkedValues) {\n if (!node.children || node.children.length === 0) {\n return checkedValues.includes(node.value);\n }\n\n // Check if any direct children are not selected\n if (node.children.some(childNode => !checkedValues.includes(childNode.value))) {\n return false;\n }\n\n // Check recursively for selected children in each child node\n return node.children.every(childNode =>\n hasAllChildrenSelected(childNode, childNode.value, checkedValues)\n );\n}\n\nfunction getLabelByValue(targetValue, nodes) {\n for (const node of nodes) {\n if (node.value === targetValue) {\n return node.label;\n }\n\n if (node.children) {\n const result = getLabelByValue(targetValue, node.children);\n if (result) {\n return result;\n }\n }\n }\n\n return null; // Return null if the value is not found in the array\n}\n\n/**\n * MultiLevelCheckbox allow the user to select one or more items from a nested set.\n *\n * This component is controlled which means that the consumer will have to keep track of what options are selected. The selected options should be provided to the `checked`-prop.\n * On any selection or deselection `onChange` will be called with an updated `checked`-list.\n *\n * ### Import\n *\n * ```js\n * import { MultiLevelCheckbox } from '@ntbjs/react-components/inputs'\n * // or\n * import MultiLevelCheckbox from '@ntbjs/react-components/inputs/MultiLevelCheckbox'\n * ```\n */\nconst MultiLevelCheckbox = React.forwardRef(function MultiLevelCheckbox(\n { options, checked, search, label, noResultsText, onChange, ...props },\n forwardedRef\n) {\n const [internalChecked, setInternalChecked] = useState(includeAllChildren(checked, options));\n\n const anySearchResults = useMemo(() => {\n if (isEmpty(search)) {\n return true;\n }\n\n return options.some(node => {\n const childValues = findChildValues(node);\n return [node.value, ...childValues]\n .map(v => getLabelByValue(v, options))\n .some(v => v.match(new RegExp(search, 'i')));\n });\n }, [options, search]);\n\n function includeAllChildren(checked, nodes, honorParent = true) {\n let newChecked = [];\n\n function fillSiblings(nodes) {\n nodes.forEach(node => {\n if (hasAllChildrenSelected(node, node.value, checked)) {\n newChecked.push(node.value);\n }\n if (honorParent && checked.includes(node.value)) {\n const childValues = findChildValues(node);\n return (newChecked = newChecked.concat([node.value, ...childValues]));\n }\n\n if (node.children) {\n fillSiblings(node.children);\n }\n });\n }\n\n fillSiblings(nodes);\n\n return newChecked;\n }\n\n const onAdd = useCallback(\n values => {\n setInternalChecked(prevChecked =>\n uniq(includeAllChildren([...prevChecked, ...values], options))\n );\n },\n [options]\n );\n\n const onRemove = useCallback(\n values => {\n setInternalChecked(prevChecked =>\n includeAllChildren(\n prevChecked.filter(v => !values.includes(v)),\n options,\n false\n )\n );\n },\n [options]\n );\n\n // Call the onChange callback with the new internal value\n useEffect(() => {\n onChange([...internalChecked].sort());\n }, [internalChecked, onChange]);\n\n useEffect(() => {\n if (!isEqual([...checked].sort(), [...internalChecked].sort())) {\n setInternalChecked(includeAllChildren(checked, options));\n }\n }, [checked, options]);\n\n return (\n <S.MultiLevelCheckbox {...props} ref={forwardedRef}>\n {label && <S.MultiLevelCheckboxLegend>{label}</S.MultiLevelCheckboxLegend>}\n {options.map(node => (\n <CheckboxTree\n key={node.value}\n nodes={options}\n node={node}\n checked={checked.filter(c => [node.value, ...findChildValues(node)].includes(c))}\n onAdd={onAdd}\n onRemove={onRemove}\n search={search}\n />\n ))}\n\n {!anySearchResults && (\n <S.MultiLevelCheckboxNoResults>{noResultsText}</S.MultiLevelCheckboxNoResults>\n )}\n </S.MultiLevelCheckbox>\n );\n});\n\nMultiLevelCheckbox.propTypes = {\n options: PropTypes.arrayOf(NodeType),\n /**\n * Array of checked option values\n */\n checked: PropTypes.array.isRequired,\n\n /**\n * Label text for the MultiLevelCheckbox\n */\n label: PropTypes.string,\n\n /**\n * Optional search string\n */\n search: PropTypes.string,\n\n /**\n * Optional text to display when no results are found while searching.`\n */\n noResultsText: PropTypes.string,\n\n /**\n * Callback function for the `onChange` event\n */\n onChange: PropTypes.func.isRequired\n};\n\nMultiLevelCheckbox.defaultProps = {\n options: [],\n noResultsText: 'No results.'\n};\n\nconst CheckboxTree = React.memo(function CheckboxTree({\n node,\n nodes,\n checked,\n onAdd,\n onRemove,\n search = ''\n}) {\n const [expanded, setExpanded] = useState(false);\n const [expandedBySearch, setExpandedBySearch] = useState(false);\n\n const onChange = useCallback(\n event => {\n if (event.target.checked) {\n onAdd([event.target.value, ...findChildValues(node)]);\n } else {\n onRemove([event.target.value, ...findChildValues(node)]);\n }\n },\n [node, onAdd, onRemove]\n );\n\n const onChildrenAdd = useCallback(\n newValues => {\n if (hasAllChildrenSelected(node, '', [...newValues, ...checked])) {\n return onAdd([node.value, ...newValues]);\n }\n\n onAdd(newValues);\n },\n [node, checked, onAdd]\n );\n\n const hideOption = useMemo(() => {\n if (isEmpty(search)) {\n return;\n }\n\n const childValues = findChildValues(node);\n return ![node.value, ...childValues]\n .map(v => getLabelByValue(v, nodes))\n .some(v => v.match(new RegExp(search, 'i')));\n }, [node, nodes, search]);\n\n useEffect(() => {\n const childValues = findChildValues(node);\n const expandBySearch =\n !isEmpty(search) &&\n [node.value, ...childValues]\n .map(v => getLabelByValue(v, nodes))\n .some(v => v.match(new RegExp(search, 'i')));\n setExpandedBySearch(expandBySearch);\n }, [search, nodes, node]);\n\n if (hideOption) {\n return null;\n }\n\n return (\n <S.CheckboxTree>\n <S.CheckboxTreeCheckboxContainer>\n {isArray(node.children) && node.children.length > 0 && (\n <S.ExpandTreeButton\n $expanded={expanded || expandedBySearch}\n type=\"button\"\n onClick={() => {\n setExpandedBySearch(current => {\n if (current) {\n setExpanded(false);\n } else {\n setExpanded(v => !v);\n }\n return false;\n });\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 7.4\">\n <path\n fill=\"currentColor\"\n d=\"m6,7.4L0,1.4,1.4,0l4.6,4.6L10.6,0l1.4,1.4-6,6Z\"\n strokeWidth=\"0\"\n />\n </svg>\n </S.ExpandTreeButton>\n )}\n\n <Checkbox\n style={{ paddingLeft: 24 }}\n muted={!checked.includes(node.value)}\n label={node.label}\n indeterminate={\n (checked.includes(node.value) && !hasAllChildrenSelected(node, node.value, checked)) ||\n (hasChildrenSelected(node, node.value, checked) &&\n !hasAllChildrenSelected(node, node.value, checked))\n }\n checked={hasChildrenSelected(node, node.value, checked) || checked.includes(node.value)}\n value={node.value}\n onChange={onChange}\n />\n </S.CheckboxTreeCheckboxContainer>\n\n {node.children && (\n <S.CheckboxTreeChildren $expanded={expanded || expandedBySearch}>\n <div>\n {node.children.map(childNode => (\n <CheckboxTree\n key={childNode.value}\n checked={checked.filter(c =>\n [childNode.value, ...findChildValues(childNode)].includes(c)\n )}\n onAdd={onChildrenAdd}\n onRemove={onRemove}\n node={childNode}\n nodes={nodes}\n search={search}\n />\n ))}\n </div>\n </S.CheckboxTreeChildren>\n )}\n </S.CheckboxTree>\n );\n},\nisEqual);\n\nCheckboxTree.propTypes = {\n node: NodeType,\n nodes: PropTypes.arrayOf(NodeType),\n checked: PropTypes.array.isRequired,\n search: PropTypes.string,\n onAdd: PropTypes.func.isRequired,\n onRemove: PropTypes.func.isRequired\n};\n\nexport default MultiLevelCheckbox;\n"],"names":["hasChildrenSelected","node","targetValue","checkedValues","isArray","children","length","some","childNode","includes","value","hasAllChildrenSelected","every","getLabelByValue","nodes","label","result","MultiLevelCheckbox","React","forwardRef","options","checked","search","noResultsText","onChange","props","forwardedRef","internalChecked","setInternalChecked","useState","includeAllChildren","anySearchResults","useMemo","isEmpty","childValues","findChildValues","map","v","match","RegExp","honorParent","newChecked","fillSiblings","forEach","push","concat","onAdd","useCallback","values","prevChecked","uniq","onRemove","filter","useEffect","sort","isEqual","createElement","S","_extends","ref","CheckboxTree","key","c","propTypes","process","env","NODE_ENV","PropTypes","arrayOf","NodeType","array","isRequired","string","func","defaultProps","memo","expanded","setExpanded","expandedBySearch","setExpandedBySearch","event","target","onChildrenAdd","newValues","hideOption","expandBySearch","$expanded","type","onClick","current","xmlns","viewBox","fill","d","strokeWidth","Checkbox","style","paddingLeft","muted","indeterminate"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import { applyDefaultTheme } from '../../utils/defaultTheme.js';
|
|
3
|
+
|
|
4
|
+
const MultiLevelCheckbox = styled.fieldset.attrs(applyDefaultTheme)`
|
|
5
|
+
padding: 0;
|
|
6
|
+
border: 0;
|
|
7
|
+
margin: 0;
|
|
8
|
+
`;
|
|
9
|
+
const MultiLevelCheckboxLegend = styled.legend.attrs(applyDefaultTheme)`
|
|
10
|
+
line-height: 1.2;
|
|
11
|
+
font-size: 0.75rem;
|
|
12
|
+
padding: 0 0 4px;
|
|
13
|
+
letter-spacing: 0.03em;
|
|
14
|
+
${props => props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'))}
|
|
15
|
+
`;
|
|
16
|
+
const MultiLevelCheckboxNoResults = styled.div.attrs(applyDefaultTheme)`
|
|
17
|
+
text-align: center;
|
|
18
|
+
opacity: 0.7;
|
|
19
|
+
font-size: 0.875rem;
|
|
20
|
+
`;
|
|
21
|
+
const CheckboxTreeChildren = styled.div.attrs(applyDefaultTheme)`
|
|
22
|
+
display: grid;
|
|
23
|
+
grid-template-rows: 0fr;
|
|
24
|
+
padding-left: 28px;
|
|
25
|
+
transition: grid-template-rows 250ms;
|
|
26
|
+
|
|
27
|
+
& > div {
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
${props => props.$expanded && css`
|
|
32
|
+
grid-template-rows: 1fr;
|
|
33
|
+
`}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
const CheckboxTree = styled.div.attrs(applyDefaultTheme)`
|
|
37
|
+
width: fit-content;
|
|
38
|
+
`;
|
|
39
|
+
const CheckboxTreeCheckboxContainer = styled.div.attrs(applyDefaultTheme)`
|
|
40
|
+
position: relative;
|
|
41
|
+
margin-top: 4px;
|
|
42
|
+
`;
|
|
43
|
+
const ExpandTreeButton = styled.button.attrs(applyDefaultTheme)`
|
|
44
|
+
-webkit-appearance: none;
|
|
45
|
+
background: none;
|
|
46
|
+
border: none;
|
|
47
|
+
position: absolute;
|
|
48
|
+
height: 100%;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
color: currentColor;
|
|
51
|
+
|
|
52
|
+
& > svg {
|
|
53
|
+
display: block;
|
|
54
|
+
width: 10px;
|
|
55
|
+
transform: rotate(-90deg);
|
|
56
|
+
transition: transform 250ms;
|
|
57
|
+
|
|
58
|
+
${props => props.$expanded && css`
|
|
59
|
+
transform: rotate(0deg);
|
|
60
|
+
`}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
64
|
+
|
|
65
|
+
export { CheckboxTree, CheckboxTreeCheckboxContainer, CheckboxTreeChildren, ExpandTreeButton, MultiLevelCheckbox, MultiLevelCheckboxLegend, MultiLevelCheckboxNoResults };
|
|
66
|
+
//# sourceMappingURL=MultiLevelCheckbox.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiLevelCheckbox.styled.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nexport const MultiLevelCheckbox = styled.fieldset.attrs(applyDefaultTheme)`\n padding: 0;\n border: 0;\n margin: 0;\n`;\n\nexport const MultiLevelCheckboxLegend = styled.legend.attrs(applyDefaultTheme)`\n line-height: 1.2;\n font-size: 0.75rem;\n padding: 0 0 4px;\n letter-spacing: 0.03em;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-600')\n )}\n`;\n\nexport const MultiLevelCheckboxNoResults = styled.div.attrs(applyDefaultTheme)`\n text-align: center;\n opacity: 0.7;\n font-size: 0.875rem;\n`;\n\nexport const CheckboxTreeChildren = styled.div.attrs(applyDefaultTheme)`\n display: grid;\n grid-template-rows: 0fr;\n padding-left: 28px;\n transition: grid-template-rows 250ms;\n\n & > div {\n overflow: hidden;\n }\n\n ${props =>\n props.$expanded &&\n css`\n grid-template-rows: 1fr;\n `}\n}\n`;\n\nexport const CheckboxTree = styled.div.attrs(applyDefaultTheme)`\n width: fit-content;\n`;\n\nexport const CheckboxTreeCheckboxContainer = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n margin-top: 4px;\n`;\n\nexport const ExpandTreeButton = styled.button.attrs(applyDefaultTheme)`\n -webkit-appearance: none;\n background: none;\n border: none;\n position: absolute;\n height: 100%;\n cursor: pointer;\n color: currentColor;\n\n & > svg {\n display: block;\n width: 10px;\n transform: rotate(-90deg);\n transition: transform 250ms;\n\n ${props =>\n props.$expanded &&\n css`\n transform: rotate(0deg);\n `}\n }\n}\n`;\n"],"names":["MultiLevelCheckbox","styled","fieldset","attrs","applyDefaultTheme","MultiLevelCheckboxLegend","legend","props","theme","themeProp","getColor","MultiLevelCheckboxNoResults","div","CheckboxTreeChildren","$expanded","css","CheckboxTree","CheckboxTreeCheckboxContainer","ExpandTreeButton","button"],"mappings":";;;AAGO,MAAMA,kBAAkB,GAAGC,MAAM,CAACC,QAAQ,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC1E;AACA;AACA;AACA,EAAC;AAEM,MAAMC,wBAAwB,GAAGJ,MAAM,CAACK,MAAM,CAACH,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC9E;AACA;AACA;AACA;AACA,EAAIG,EAAAA,KAAK,IACLA,KAAK,CAACC,KAAK,CAACC,SAAS,CACnB,OAAO,EACPF,KAAK,CAACC,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,EAChCH,KAAK,CAACC,KAAK,CAACE,QAAQ,CAAC,UAAU,CACjC,CAAC,CAAA;AACL,EAAC;AAEM,MAAMC,2BAA2B,GAAGV,MAAM,CAACW,GAAG,CAACT,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC9E;AACA;AACA;AACA,EAAC;AAEM,MAAMS,oBAAoB,GAAGZ,MAAM,CAACW,GAAG,CAACT,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIG,KAAK,IACLA,KAAK,CAACO,SAAS,IACfC,GAAG,CAAA;AACP;AACA,IAAK,CAAA,CAAA;AACL;AACA,EAAC;AAEM,MAAMC,YAAY,GAAGf,MAAM,CAACW,GAAG,CAACT,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC/D;AACA,EAAC;AAEM,MAAMa,6BAA6B,GAAGhB,MAAM,CAACW,GAAG,CAACT,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAChF;AACA;AACA,EAAC;AAEM,MAAMc,gBAAgB,GAAGjB,MAAM,CAACkB,MAAM,CAAChB,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAA,EAAMG,KAAK,IACLA,KAAK,CAACO,SAAS,IACfC,GAAG,CAAA;AACT;AACA,MAAO,CAAA,CAAA;AACP;AACA;AACA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
|
|
3
|
+
const NodeType = PropTypes.shape({
|
|
4
|
+
label: PropTypes.string.isRequired,
|
|
5
|
+
value: PropTypes.any.isRequired,
|
|
6
|
+
children: PropTypes.arrayOf(PropTypes.shape({
|
|
7
|
+
label: PropTypes.string.isRequired,
|
|
8
|
+
value: PropTypes.any.isRequired,
|
|
9
|
+
children: PropTypes.array
|
|
10
|
+
}))
|
|
11
|
+
});
|
|
12
|
+
function findChildValues(node) {
|
|
13
|
+
const result = [];
|
|
14
|
+
function traverse(node) {
|
|
15
|
+
if (Array.isArray(node.children) && node.children.length > 0) {
|
|
16
|
+
node.children.forEach(child => {
|
|
17
|
+
result.push(child.value);
|
|
18
|
+
traverse(child);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
traverse(node);
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { NodeType, findChildValues };
|
|
27
|
+
//# sourceMappingURL=types.js.map
|