@ntbjs/react-components 2.0.14 → 3.0.0-rc.1
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/data/Alert/Alert.js +18 -33
- package/build/data/Alert/Alert.js.map +1 -1
- package/build/data/Alert/Alert.styled.js +9 -47
- package/build/data/Alert/Alert.styled.js.map +1 -1
- package/build/data/Badge/Badge.js +36 -61
- package/build/data/Badge/Badge.js.map +1 -1
- package/build/data/Badge/Badge.styled.js +21 -70
- package/build/data/Badge/Badge.styled.js.map +1 -1
- package/build/data/Popover/Popover.js +125 -71
- package/build/data/Popover/Popover.js.map +1 -1
- package/build/data/Popover/Popover.styled.js +10 -140
- package/build/data/Popover/Popover.styled.js.map +1 -1
- package/build/data/SeverityBadge/SeverityBadge.js +13 -22
- package/build/data/SeverityBadge/SeverityBadge.js.map +1 -1
- package/build/data/SeverityBadge/index.js +2 -0
- package/build/data/SeverityBadge/index.js.map +1 -0
- package/build/data/Tab/Tab.js +7 -13
- package/build/data/Tab/Tab.js.map +1 -1
- package/build/data/Tab/Tab.styled.js +4 -7
- package/build/data/Tab/Tab.styled.js.map +1 -1
- package/build/data/Tabs/Tabs.js +30 -32
- package/build/data/Tabs/Tabs.js.map +1 -1
- package/build/data/Tabs/Tabs.styled.js +21 -57
- package/build/data/Tabs/Tabs.styled.js.map +1 -1
- package/build/data/Tooltip/Tooltip.js +102 -33
- package/build/data/Tooltip/Tooltip.js.map +1 -1
- package/build/data/Tooltip/Tooltip.styled.js +9 -22
- package/build/data/Tooltip/Tooltip.styled.js.map +1 -1
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.js +16 -23
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.js.map +1 -1
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js +13 -31
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js.map +1 -1
- package/build/data/VerificationStatusIcon/index.js +2 -0
- package/build/data/VerificationStatusIcon/index.js.map +1 -0
- package/build/data/_shared/FloatingArrow.styled.js +30 -0
- package/build/data/_shared/FloatingArrow.styled.js.map +1 -0
- package/build/hooks/useEventListner.js.map +1 -1
- package/build/hooks/useFloatingPopover.js +187 -0
- package/build/hooks/useFloatingPopover.js.map +1 -0
- package/build/hooks/useIsomorphicLayoutEffect.js.map +1 -1
- package/build/hooks/useOnClickOutside.js.map +1 -1
- package/build/hooks/useTooltipAutoShow.js.map +1 -1
- package/build/icons/arrow-back.svg.js +3 -3
- package/build/icons/arrow-back.svg.js.map +1 -1
- package/build/icons/arrow-forward.svg.js +4 -4
- package/build/icons/arrow-forward.svg.js.map +1 -1
- package/build/icons/check-rectangle-filled.svg.js +3 -3
- package/build/icons/check-rectangle-filled.svg.js.map +1 -1
- package/build/icons/close.svg.js +3 -3
- package/build/icons/close.svg.js.map +1 -1
- package/build/icons/edit-note.svg.js +3 -3
- package/build/icons/edit-note.svg.js.map +1 -1
- package/build/icons/expand-more.svg.js +3 -3
- package/build/icons/expand-more.svg.js.map +1 -1
- package/build/icons/headset.svg.js +3 -3
- package/build/icons/headset.svg.js.map +1 -1
- package/build/icons/layers.svg.js +3 -3
- package/build/icons/layers.svg.js.map +1 -1
- package/build/icons/link.svg.js +3 -3
- package/build/icons/link.svg.js.map +1 -1
- package/build/icons/play.svg.js +3 -3
- package/build/icons/play.svg.js.map +1 -1
- package/build/icons/search.svg.js +3 -3
- package/build/icons/search.svg.js.map +1 -1
- package/build/icons/star-filled.svg.js +3 -3
- package/build/icons/star-filled.svg.js.map +1 -1
- package/build/icons/star.svg.js +3 -3
- package/build/icons/star.svg.js.map +1 -1
- package/build/icons/triangle-right.svg.js +3 -3
- package/build/icons/triangle-right.svg.js.map +1 -1
- package/build/icons/verification.svg.js +3 -3
- package/build/icons/verification.svg.js.map +1 -1
- package/build/icons/warning-circle.svg.js +3 -3
- package/build/icons/warning-circle.svg.js.map +1 -1
- package/build/inputs/ActionButton/ActionButton.js +11 -22
- package/build/inputs/ActionButton/ActionButton.js.map +1 -1
- package/build/inputs/ActionButton/ActionButton.styled.js +5 -54
- package/build/inputs/ActionButton/ActionButton.styled.js.map +1 -1
- package/build/inputs/Button/Button.js +125 -121
- package/build/inputs/Button/Button.js.map +1 -1
- package/build/inputs/Button/Button.styled.js +42 -260
- package/build/inputs/Button/Button.styled.js.map +1 -1
- package/build/inputs/Checkbox/Checkbox.js +45 -61
- package/build/inputs/Checkbox/Checkbox.js.map +1 -1
- package/build/inputs/Checkbox/Checkbox.styled.js +24 -153
- package/build/inputs/Checkbox/Checkbox.styled.js.map +1 -1
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js +106 -111
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js.map +1 -1
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js +88 -273
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js.map +1 -1
- package/build/inputs/CompactStarRating/CompactStarRating.js +56 -77
- package/build/inputs/CompactStarRating/CompactStarRating.js.map +1 -1
- package/build/inputs/CompactStarRating/CompactStarRating.styled.js +32 -211
- package/build/inputs/CompactStarRating/CompactStarRating.styled.js.map +1 -1
- package/build/inputs/CompactTextInput/CompactTextInput.js +86 -105
- package/build/inputs/CompactTextInput/CompactTextInput.js.map +1 -1
- package/build/inputs/CompactTextInput/CompactTextInput.styled.js +55 -258
- package/build/inputs/CompactTextInput/CompactTextInput.styled.js.map +1 -1
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js +70 -77
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js.map +1 -1
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js +28 -60
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js.map +1 -1
- package/build/inputs/MultiLevelCheckbox/types.js +12 -12
- package/build/inputs/MultiLevelCheckbox/types.js.map +1 -1
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js +69 -73
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js.map +1 -1
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js +44 -87
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js.map +1 -1
- package/build/inputs/MultiSelect/MultiSelect.js +69 -79
- package/build/inputs/MultiSelect/MultiSelect.js.map +1 -1
- package/build/inputs/MultiSelect/MultiSelect.styled.js +70 -76
- package/build/inputs/MultiSelect/MultiSelect.styled.js.map +1 -1
- package/build/inputs/Radio/Radio.js +20 -33
- package/build/inputs/Radio/Radio.js.map +1 -1
- package/build/inputs/Radio/Radio.styled.js +15 -96
- package/build/inputs/Radio/Radio.styled.js.map +1 -1
- package/build/inputs/Switch/Switch.js +28 -40
- package/build/inputs/Switch/Switch.js.map +1 -1
- package/build/inputs/Switch/Switch.styled.js +24 -94
- package/build/inputs/Switch/Switch.styled.js.map +1 -1
- package/build/inputs/TextArea/TextArea.js +98 -123
- package/build/inputs/TextArea/TextArea.js.map +1 -1
- package/build/inputs/TextArea/TextArea.styled.js +64 -379
- package/build/inputs/TextArea/TextArea.styled.js.map +1 -1
- package/build/inputs/TextInput/TextInput.js +59 -79
- package/build/inputs/TextInput/TextInput.js.map +1 -1
- package/build/inputs/TextInput/TextInput.styled.js +33 -224
- package/build/inputs/TextInput/TextInput.styled.js.map +1 -1
- package/build/layout/InputGroup/InputGroup.js +6 -9
- package/build/layout/InputGroup/InputGroup.js.map +1 -1
- package/build/layout/InputGroup/InputGroup.styled.js +4 -3
- package/build/layout/InputGroup/InputGroup.styled.js.map +1 -1
- package/build/layout/InputGroup/index.js +2 -0
- package/build/layout/InputGroup/index.js.map +1 -0
- package/build/layout/SectionSeparator/SectionSeparator.js +5 -9
- package/build/layout/SectionSeparator/SectionSeparator.js.map +1 -1
- package/build/layout/SectionSeparator/SectionSeparator.styled.js +4 -8
- package/build/layout/SectionSeparator/SectionSeparator.styled.js.map +1 -1
- package/build/styles/utils/colors-export.d.ts +73 -0
- package/build/styles/utils/colors-export.js.map +1 -1
- package/build/utils/dateTime.js.map +1 -1
- package/build/utils/defaultTheme.js +14 -28
- package/build/utils/defaultTheme.js.map +1 -1
- package/build/utils/getElementRef.js +14 -0
- package/build/utils/getElementRef.js.map +1 -0
- package/build/utils/parseTrigger.js +16 -0
- package/build/utils/parseTrigger.js.map +1 -0
- package/build/widgets/AssetAction/AssetAction.js +26 -33
- package/build/widgets/AssetAction/AssetAction.js.map +1 -1
- package/build/widgets/AssetAction/AssetAction.styled.js +20 -34
- package/build/widgets/AssetAction/AssetAction.styled.js.map +1 -1
- package/build/widgets/AssetActionsBase/AssetActionsBase.js +8 -13
- package/build/widgets/AssetActionsBase/AssetActionsBase.js.map +1 -1
- package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js +4 -9
- package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGallery.js +15 -40
- package/build/widgets/AssetGallery/AssetGallery.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js +55 -70
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js +12 -24
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js +146 -122
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js +99 -286
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +170 -125
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +135 -364
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -1
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js +20 -21
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js.map +1 -1
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js +20 -71
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js.map +1 -1
- package/build/widgets/ContextMenu/ContextMenu.js +12 -11
- package/build/widgets/ContextMenu/ContextMenu.js.map +1 -1
- package/build/widgets/ContextMenu/ContextMenu.styled.js +4 -4
- package/build/widgets/ContextMenu/ContextMenu.styled.js.map +1 -1
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js +17 -25
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js.map +1 -1
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js +16 -71
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js.map +1 -1
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js +7 -11
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js.map +1 -1
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js +4 -11
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js.map +1 -1
- package/build/widgets/InfoCard/InfoCard.js +26 -21
- package/build/widgets/InfoCard/InfoCard.js.map +1 -1
- package/build/widgets/InfoCard/InfoCard.styled.js +36 -84
- package/build/widgets/InfoCard/InfoCard.styled.js.map +1 -1
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.js +28 -34
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.js.map +1 -1
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.js +21 -57
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.js.map +1 -1
- package/build/widgets/InstructionSeverityDisplay/index.js +2 -0
- package/build/widgets/InstructionSeverityDisplay/index.js.map +1 -0
- package/build/widgets/Instructions/Instructions.js +53 -95
- package/build/widgets/Instructions/Instructions.js.map +1 -1
- package/build/widgets/Instructions/Instructions.styled.js +27 -26
- package/build/widgets/Instructions/Instructions.styled.js.map +1 -1
- package/build/widgets/ProgressBar/ProgressBar.js +39 -37
- package/build/widgets/ProgressBar/ProgressBar.js.map +1 -1
- package/build/widgets/ProgressBar/ProgressBar.styled.js +56 -125
- package/build/widgets/ProgressBar/ProgressBar.styled.js.map +1 -1
- package/build/widgets/SummaryCard/SummaryCard.js +55 -64
- package/build/widgets/SummaryCard/SummaryCard.js.map +1 -1
- package/build/widgets/SummaryCard/SummaryCard.styled.js +51 -106
- package/build/widgets/SummaryCard/SummaryCard.styled.js.map +1 -1
- package/package.json +77 -36
- package/styles/utils/colors-export.d.ts +73 -0
- package/types/components/data/Alert/Alert.d.ts +76 -0
- package/types/components/data/Alert/Alert.styled.d.ts +83 -0
- package/types/components/data/Alert/index.d.ts +1 -0
- package/types/components/data/Badge/Badge.d.ts +128 -0
- package/types/components/data/Badge/Badge.styled.d.ts +132 -0
- package/types/components/data/Badge/index.d.ts +1 -0
- package/types/components/data/Popover/Popover.d.ts +205 -0
- package/types/components/data/Popover/Popover.styled.d.ts +15 -0
- package/types/components/data/Popover/index.d.ts +1 -0
- package/types/components/data/SeverityBadge/SeverityBadge.d.ts +72 -0
- package/types/components/data/SeverityBadge/index.d.ts +1 -0
- package/types/components/data/Tab/Tab.d.ts +27 -0
- package/types/components/data/Tab/Tab.styled.d.ts +1 -0
- package/types/components/data/Tab/index.d.ts +1 -0
- package/types/components/data/Tabs/Tabs.d.ts +111 -0
- package/types/components/data/Tabs/Tabs.styled.d.ts +42 -0
- package/types/components/data/Tabs/index.d.ts +1 -0
- package/types/components/data/Tooltip/Tooltip.d.ts +134 -0
- package/types/components/data/Tooltip/Tooltip.styled.d.ts +8 -0
- package/types/components/data/Tooltip/index.d.ts +1 -0
- package/types/components/data/VerificationStatusIcon/VerificationStatusIcon.d.ts +35 -0
- package/types/components/data/VerificationStatusIcon/VerificationStatusIcon.styled.d.ts +46 -0
- package/types/components/data/VerificationStatusIcon/index.d.ts +1 -0
- package/types/components/data/_shared/FloatingArrow.styled.d.ts +129 -0
- package/types/components/data/index.d.ts +8 -0
- package/types/components/index.d.ts +3 -0
- package/types/components/inputs/ActionButton/ActionButton.d.ts +55 -0
- package/types/components/inputs/ActionButton/ActionButton.styled.d.ts +34 -0
- package/types/components/inputs/ActionButton/index.d.ts +1 -0
- package/types/components/inputs/Button/Button.d.ts +82 -0
- package/types/components/inputs/Button/Button.styled.d.ts +102 -0
- package/types/components/inputs/Button/index.d.ts +1 -0
- package/types/components/inputs/Checkbox/Checkbox.d.ts +92 -0
- package/types/components/inputs/Checkbox/Checkbox.styled.d.ts +33 -0
- package/types/components/inputs/Checkbox/index.d.ts +1 -0
- package/types/components/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.d.ts +242 -0
- package/types/components/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.d.ts +157 -0
- package/types/components/inputs/CompactAutocompleteSelect/index.d.ts +1 -0
- package/types/components/inputs/CompactStarRating/CompactStarRating.d.ts +96 -0
- package/types/components/inputs/CompactStarRating/CompactStarRating.styled.d.ts +86 -0
- package/types/components/inputs/CompactStarRating/index.d.ts +1 -0
- package/types/components/inputs/CompactTextInput/CompactTextInput.d.ts +116 -0
- package/types/components/inputs/CompactTextInput/CompactTextInput.styled.d.ts +70 -0
- package/types/components/inputs/CompactTextInput/index.d.ts +1 -0
- package/types/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.d.ts +41 -0
- package/types/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.d.ts +21 -0
- package/types/components/inputs/MultiLevelCheckbox/index.d.ts +2 -0
- package/types/components/inputs/MultiLevelCheckbox/types.d.ts +72 -0
- package/types/components/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.d.ts +44 -0
- package/types/components/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.d.ts +11 -0
- package/types/components/inputs/MultiLevelCheckboxSelect/index.d.ts +1 -0
- package/types/components/inputs/MultiSelect/MultiSelect.d.ts +172 -0
- package/types/components/inputs/MultiSelect/MultiSelect.styled.d.ts +99 -0
- package/types/components/inputs/MultiSelect/index.d.ts +1 -0
- package/types/components/inputs/Radio/Radio.d.ts +65 -0
- package/types/components/inputs/Radio/Radio.styled.d.ts +11 -0
- package/types/components/inputs/Radio/index.d.ts +1 -0
- package/types/components/inputs/Switch/Switch.d.ts +62 -0
- package/types/components/inputs/Switch/Switch.styled.d.ts +20 -0
- package/types/components/inputs/Switch/index.d.ts +1 -0
- package/types/components/inputs/TextArea/TextArea.d.ts +124 -0
- package/types/components/inputs/TextArea/TextArea.styled.d.ts +95 -0
- package/types/components/inputs/TextArea/index.d.ts +1 -0
- package/types/components/inputs/TextInput/TextInput.d.ts +109 -0
- package/types/components/inputs/TextInput/TextInput.styled.d.ts +43 -0
- package/types/components/inputs/TextInput/index.d.ts +1 -0
- package/types/components/inputs/index.d.ts +13 -0
- package/types/components/layout/InputGroup/InputGroup.d.ts +31 -0
- package/types/components/layout/InputGroup/InputGroup.styled.d.ts +1 -0
- package/types/components/layout/InputGroup/index.d.ts +1 -0
- package/types/components/layout/SectionSeparator/SectionSeparator.d.ts +28 -0
- package/types/components/layout/SectionSeparator/SectionSeparator.styled.d.ts +14 -0
- package/types/components/layout/SectionSeparator/index.d.ts +1 -0
- package/types/components/layout/index.d.ts +2 -0
- package/types/components/widgets/AssetAction/AssetAction.d.ts +16 -0
- package/types/components/widgets/AssetAction/AssetAction.styled.d.ts +20 -0
- package/types/components/widgets/AssetAction/index.d.ts +1 -0
- package/types/components/widgets/AssetActionsBase/AssetActionsBase.d.ts +25 -0
- package/types/components/widgets/AssetActionsBase/AssetActionsBase.styled.d.ts +1 -0
- package/types/components/widgets/AssetActionsBase/index.d.ts +1 -0
- package/types/components/widgets/AssetGallery/AssetGallery.d.ts +170 -0
- package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.d.ts +88 -0
- package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.d.ts +3 -0
- package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.d.ts +3 -0
- package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.d.ts +100 -0
- package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.d.ts +2 -0
- package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.d.ts +85 -0
- package/types/components/widgets/AssetGallery/asset.types.d.ts +446 -0
- package/types/components/widgets/AssetGallery/index.d.ts +1 -0
- package/types/components/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.d.ts +60 -0
- package/types/components/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.d.ts +35 -0
- package/types/components/widgets/AssetPreview/AssetPreviewTopBar/index.d.ts +1 -0
- package/types/components/widgets/ContextMenu/ContextMenu.d.ts +134 -0
- package/types/components/widgets/ContextMenu/ContextMenu.styled.d.ts +1 -0
- package/types/components/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.d.ts +45 -0
- package/types/components/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.d.ts +26 -0
- package/types/components/widgets/ContextMenu/ContextMenuItem/index.d.ts +1 -0
- package/types/components/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.d.ts +41 -0
- package/types/components/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.d.ts +1 -0
- package/types/components/widgets/ContextMenu/ContextMenuItemsGroup/index.d.ts +1 -0
- package/types/components/widgets/ContextMenu/index.d.ts +1 -0
- package/types/components/widgets/InfoCard/InfoCard.d.ts +33 -0
- package/types/components/widgets/InfoCard/InfoCard.styled.d.ts +45 -0
- package/types/components/widgets/InfoCard/index.d.ts +1 -0
- package/types/components/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.d.ts +46 -0
- package/types/components/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.d.ts +40 -0
- package/types/components/widgets/InstructionSeverityDisplay/index.d.ts +1 -0
- package/types/components/widgets/Instructions/Instructions.d.ts +156 -0
- package/types/components/widgets/Instructions/Instructions.styled.d.ts +26 -0
- package/types/components/widgets/Instructions/index.d.ts +1 -0
- package/types/components/widgets/ProgressBar/ProgressBar.d.ts +30 -0
- package/types/components/widgets/ProgressBar/ProgressBar.styled.d.ts +78 -0
- package/types/components/widgets/ProgressBar/index.d.ts +1 -0
- package/types/components/widgets/SummaryCard/SummaryCard.d.ts +83 -0
- package/types/components/widgets/SummaryCard/SummaryCard.styled.d.ts +68 -0
- package/types/components/widgets/SummaryCard/index.d.ts +1 -0
- package/types/components/widgets/index.d.ts +11 -0
- package/types/hooks/useElementSize.d.ts +25 -0
- package/types/hooks/useEventListner.d.ts +46 -0
- package/types/hooks/useFloatingPopover.d.ts +242 -0
- package/types/hooks/useIsomorphicLayoutEffect.d.ts +26 -0
- package/types/hooks/useOnClickOutside.d.ts +31 -0
- package/types/hooks/useTooltipAutoShow.d.ts +80 -0
- package/types/icons/index.d.ts +41 -0
- package/types/ssr/index.d.ts +1 -0
- package/types/styles/utils/colors-export.d.ts +73 -0
- package/types/utils/dateTime.d.ts +13 -0
- package/types/utils/defaultTheme.d.ts +174 -0
- package/types/utils/getElementRef.d.ts +21 -0
- package/types/utils/parseTrigger.d.ts +92 -0
- package/build/_virtual/_rollupPluginBabelHelpers.js +0 -12
- package/build/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/widgets/AssetGallery/asset.propType.js +0 -56
- package/build/widgets/AssetGallery/asset.propType.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
1
|
import React__default, { useState, useMemo, useCallback, useEffect } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
2
|
import { MultiLevelCheckbox as MultiLevelCheckbox$1, MultiLevelCheckboxLegend, MultiLevelCheckboxNoResults, CheckboxTree as CheckboxTree$1, CheckboxTreeCheckboxContainer, ExpandTreeButton, CheckboxTreeChildren } from './MultiLevelCheckbox.styled.js';
|
|
5
3
|
import Checkbox from '../Checkbox/Checkbox.js';
|
|
6
4
|
import { isEmpty, uniq, isEqual, isArray } from 'lodash';
|
|
7
|
-
import { findChildValues
|
|
5
|
+
import { findChildValues } from './types.js';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
7
|
|
|
8
|
+
const EMPTY_ARRAY = [];
|
|
9
9
|
function hasChildrenSelected(node, targetValue, checkedValues) {
|
|
10
10
|
if (!isArray(node.children) || node.children.length === 0) {
|
|
11
11
|
return false;
|
|
@@ -39,11 +39,11 @@ function getLabelByValue(targetValue, nodes) {
|
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
41
|
const MultiLevelCheckbox = React__default.forwardRef(function MultiLevelCheckbox({
|
|
42
|
-
options,
|
|
42
|
+
options = EMPTY_ARRAY,
|
|
43
43
|
checked,
|
|
44
44
|
search,
|
|
45
45
|
label,
|
|
46
|
-
noResultsText,
|
|
46
|
+
noResultsText = 'No results.',
|
|
47
47
|
onChange,
|
|
48
48
|
...props
|
|
49
49
|
}, forwardedRef) {
|
|
@@ -90,30 +90,23 @@ const MultiLevelCheckbox = React__default.forwardRef(function MultiLevelCheckbox
|
|
|
90
90
|
setInternalChecked(includeAllChildren(checked, options));
|
|
91
91
|
}
|
|
92
92
|
}, [checked, options]);
|
|
93
|
-
return
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
node
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
93
|
+
return jsxs(MultiLevelCheckbox$1, {
|
|
94
|
+
...props,
|
|
95
|
+
ref: forwardedRef,
|
|
96
|
+
children: [label && jsx(MultiLevelCheckboxLegend, {
|
|
97
|
+
children: label
|
|
98
|
+
}), options.map(node => jsx(CheckboxTree, {
|
|
99
|
+
nodes: options,
|
|
100
|
+
node: node,
|
|
101
|
+
checked: checked.filter(c => [node.value, ...findChildValues(node)].includes(c)),
|
|
102
|
+
onAdd: onAdd,
|
|
103
|
+
onRemove: onRemove,
|
|
104
|
+
search: search
|
|
105
|
+
}, node.value)), !anySearchResults && jsx(MultiLevelCheckboxNoResults, {
|
|
106
|
+
children: noResultsText
|
|
107
|
+
})]
|
|
108
|
+
});
|
|
104
109
|
});
|
|
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
110
|
const CheckboxTree = React__default.memo(function CheckboxTree({
|
|
118
111
|
node,
|
|
119
112
|
nodes,
|
|
@@ -152,56 +145,56 @@ const CheckboxTree = React__default.memo(function CheckboxTree({
|
|
|
152
145
|
if (hideOption) {
|
|
153
146
|
return null;
|
|
154
147
|
}
|
|
155
|
-
return
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
148
|
+
return jsxs(CheckboxTree$1, {
|
|
149
|
+
children: [jsxs(CheckboxTreeCheckboxContainer, {
|
|
150
|
+
children: [isArray(node.children) && node.children.length > 0 && jsx(ExpandTreeButton, {
|
|
151
|
+
$expanded: expanded || expandedBySearch,
|
|
152
|
+
type: "button",
|
|
153
|
+
onClick: () => {
|
|
154
|
+
setExpandedBySearch(current => {
|
|
155
|
+
if (current) {
|
|
156
|
+
setExpanded(false);
|
|
157
|
+
} else {
|
|
158
|
+
setExpanded(v => !v);
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
});
|
|
162
|
+
},
|
|
163
|
+
children: jsx("svg", {
|
|
164
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
165
|
+
viewBox: "0 0 12 7.4",
|
|
166
|
+
children: jsx("path", {
|
|
167
|
+
fill: "currentColor",
|
|
168
|
+
d: "m6,7.4L0,1.4,1.4,0l4.6,4.6L10.6,0l1.4,1.4-6,6Z",
|
|
169
|
+
strokeWidth: "0"
|
|
170
|
+
})
|
|
171
|
+
})
|
|
172
|
+
}), jsx(Checkbox, {
|
|
173
|
+
style: {
|
|
174
|
+
paddingLeft: 24
|
|
175
|
+
},
|
|
176
|
+
muted: !checked.includes(node.value),
|
|
177
|
+
label: node.label,
|
|
178
|
+
indeterminate: checked.includes(node.value) && !hasAllChildrenSelected(node, node.value, checked) || hasChildrenSelected(node, node.value, checked) && !hasAllChildrenSelected(node, node.value, checked),
|
|
179
|
+
checked: hasChildrenSelected(node, node.value, checked) || checked.includes(node.value),
|
|
180
|
+
value: node.value,
|
|
181
|
+
onChange: onChange
|
|
182
|
+
})]
|
|
183
|
+
}), node.children && jsx(CheckboxTreeChildren, {
|
|
184
|
+
$expanded: expanded || expandedBySearch,
|
|
185
|
+
children: jsx("div", {
|
|
186
|
+
children: node.children.map(childNode => jsx(CheckboxTree, {
|
|
187
|
+
checked: checked.filter(c => [childNode.value, ...findChildValues(childNode)].includes(c)),
|
|
188
|
+
onAdd: onChildrenAdd,
|
|
189
|
+
onRemove: onRemove,
|
|
190
|
+
node: childNode,
|
|
191
|
+
nodes: nodes,
|
|
192
|
+
search: search
|
|
193
|
+
}, childNode.value))
|
|
194
|
+
})
|
|
195
|
+
})]
|
|
196
|
+
});
|
|
196
197
|
}, 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
198
|
|
|
206
199
|
export { MultiLevelCheckbox as default };
|
|
207
200
|
//# sourceMappingURL=MultiLevelCheckbox.js.map
|
|
@@ -1 +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":";;;;;;;;AAOA,SAASA,mBAAmBA,CAACC,IAAI,EAAEC,WAAW,EAAEC,aAAa,EAAE;AAC7D,EAAA,IAAI,CAACC,OAAO,CAACH,IAAI,CAACI,QAAQ,CAAC,IAAIJ,IAAI,CAACI,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;AACzD,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAGA,EAAA,IAAIL,IAAI,CAACI,QAAQ,CAACE,IAAI,CAACC,SAAS,IAAIL,aAAa,CAACM,QAAQ,CAACD,SAAS,CAACE,KAAK,CAAC,CAAC,EAAE;AAC5E,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAGA,EAAA,OAAOT,IAAI,CAACI,QAAQ,CAACE,IAAI,CAACC,SAAS,IACjCR,mBAAmB,CAACQ,SAAS,EAAEA,SAAS,CAACE,KAAK,EAAEP,aAAa,CAC/D,CAAC,CAAA;AACH,CAAA;AAEA,SAASQ,sBAAsBA,CAACV,IAAI,EAAEC,WAAW,EAAEC,aAAa,EAAE;AAChE,EAAA,IAAI,CAACF,IAAI,CAACI,QAAQ,IAAIJ,IAAI,CAACI,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;AAChD,IAAA,OAAOH,aAAa,CAACM,QAAQ,CAACR,IAAI,CAACS,KAAK,CAAC,CAAA;AAC3C,GAAA;AAGA,EAAA,IAAIT,IAAI,CAACI,QAAQ,CAACE,IAAI,CAACC,SAAS,IAAI,CAACL,aAAa,CAACM,QAAQ,CAACD,SAAS,CAACE,KAAK,CAAC,CAAC,EAAE;AAC7E,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAGA,EAAA,OAAOT,IAAI,CAACI,QAAQ,CAACO,KAAK,CAACJ,SAAS,IAClCG,sBAAsB,CAACH,SAAS,EAAEA,SAAS,CAACE,KAAK,EAAEP,aAAa,CAClE,CAAC,CAAA;AACH,CAAA;AAEA,SAASU,eAAeA,CAACX,WAAW,EAAEY,KAAK,EAAE;AAC3C,EAAA,KAAK,MAAMb,IAAI,IAAIa,KAAK,EAAE;AACxB,IAAA,IAAIb,IAAI,CAACS,KAAK,KAAKR,WAAW,EAAE;MAC9B,OAAOD,IAAI,CAACc,KAAK,CAAA;AACnB,KAAA;IAEA,IAAId,IAAI,CAACI,QAAQ,EAAE;MACjB,MAAMW,MAAM,GAAGH,eAAe,CAACX,WAAW,EAAED,IAAI,CAACI,QAAQ,CAAC,CAAA;AAC1D,MAAA,IAAIW,MAAM,EAAE;AACV,QAAA,OAAOA,MAAM,CAAA;AACf,OAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACb,CAAA;AAgBMC,MAAAA,kBAAkB,GAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,kBAAkBA,CACrE;EAAEG,OAAO;EAAEC,OAAO;EAAEC,MAAM;EAAEP,KAAK;EAAEQ,aAAa;EAAEC,QAAQ;EAAE,GAAGC,KAAAA;AAAM,CAAC,EACtEC,YAAY,EACZ;AACA,EAAA,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGC,QAAQ,CAACC,kBAAkB,CAACT,OAAO,EAAED,OAAO,CAAC,CAAC,CAAA;AAE5F,EAAA,MAAMW,gBAAgB,GAAGC,OAAO,CAAC,MAAM;AACrC,IAAA,IAAIC,OAAO,CAACX,MAAM,CAAC,EAAE;AACnB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACb,IAAI,CAACN,IAAI,IAAI;AAC1B,MAAA,MAAMiC,WAAW,GAAGC,eAAe,CAAClC,IAAI,CAAC,CAAA;AACzC,MAAA,OAAO,CAACA,IAAI,CAACS,KAAK,EAAE,GAAGwB,WAAW,CAAC,CAChCE,GAAG,CAACC,CAAC,IAAIxB,eAAe,CAACwB,CAAC,EAAEjB,OAAO,CAAC,CAAC,CACrCb,IAAI,CAAC8B,CAAC,IAAIA,CAAC,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAChD,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACF,OAAO,EAAEE,MAAM,CAAC,CAAC,CAAA;EAErB,SAASQ,kBAAkBA,CAACT,OAAO,EAAEP,KAAK,EAAE0B,WAAW,GAAG,IAAI,EAAE;IAC9D,IAAIC,UAAU,GAAG,EAAE,CAAA;IAEnB,SAASC,YAAYA,CAAC5B,KAAK,EAAE;AAC3BA,MAAAA,KAAK,CAAC6B,OAAO,CAAC1C,IAAI,IAAI;QACpB,IAAIU,sBAAsB,CAACV,IAAI,EAAEA,IAAI,CAACS,KAAK,EAAEW,OAAO,CAAC,EAAE;AACrDoB,UAAAA,UAAU,CAACG,IAAI,CAAC3C,IAAI,CAACS,KAAK,CAAC,CAAA;AAC7B,SAAA;QACA,IAAI8B,WAAW,IAAInB,OAAO,CAACZ,QAAQ,CAACR,IAAI,CAACS,KAAK,CAAC,EAAE;AAC/C,UAAA,MAAMwB,WAAW,GAAGC,eAAe,CAAClC,IAAI,CAAC,CAAA;AACzC,UAAA,OAAQwC,UAAU,GAAGA,UAAU,CAACI,MAAM,CAAC,CAAC5C,IAAI,CAACS,KAAK,EAAE,GAAGwB,WAAW,CAAC,CAAC,CAAA;AACtE,SAAA;QAEA,IAAIjC,IAAI,CAACI,QAAQ,EAAE;AACjBqC,UAAAA,YAAY,CAACzC,IAAI,CAACI,QAAQ,CAAC,CAAA;AAC7B,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;IAEAqC,YAAY,CAAC5B,KAAK,CAAC,CAAA;AAEnB,IAAA,OAAO2B,UAAU,CAAA;AACnB,GAAA;AAEA,EAAA,MAAMK,KAAK,GAAGC,WAAW,CACvBC,MAAM,IAAI;AACRpB,IAAAA,kBAAkB,CAACqB,WAAW,IAC5BC,IAAI,CAACpB,kBAAkB,CAAC,CAAC,GAAGmB,WAAW,EAAE,GAAGD,MAAM,CAAC,EAAE5B,OAAO,CAAC,CAC/D,CAAC,CAAA;AACH,GAAC,EACD,CAACA,OAAO,CACV,CAAC,CAAA;AAED,EAAA,MAAM+B,QAAQ,GAAGJ,WAAW,CAC1BC,MAAM,IAAI;IACRpB,kBAAkB,CAACqB,WAAW,IAC5BnB,kBAAkB,CAChBmB,WAAW,CAACG,MAAM,CAACf,CAAC,IAAI,CAACW,MAAM,CAACvC,QAAQ,CAAC4B,CAAC,CAAC,CAAC,EAC5CjB,OAAO,EACP,KACF,CACF,CAAC,CAAA;AACH,GAAC,EACD,CAACA,OAAO,CACV,CAAC,CAAA;AAGDiC,EAAAA,SAAS,CAAC,MAAM;IACd7B,QAAQ,CAAC,CAAC,GAAGG,eAAe,CAAC,CAAC2B,IAAI,EAAE,CAAC,CAAA;AACvC,GAAC,EAAE,CAAC3B,eAAe,EAAEH,QAAQ,CAAC,CAAC,CAAA;AAE/B6B,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAACE,OAAO,CAAC,CAAC,GAAGlC,OAAO,CAAC,CAACiC,IAAI,EAAE,EAAE,CAAC,GAAG3B,eAAe,CAAC,CAAC2B,IAAI,EAAE,CAAC,EAAE;AAC9D1B,MAAAA,kBAAkB,CAACE,kBAAkB,CAACT,OAAO,EAAED,OAAO,CAAC,CAAC,CAAA;AAC1D,KAAA;AACF,GAAC,EAAE,CAACC,OAAO,EAAED,OAAO,CAAC,CAAC,CAAA;EAEtB,OACEF,cAAA,CAAAsC,aAAA,CAACC,oBAAoB,EAAAC,QAAA,CAAA,EAAA,EAAKjC,KAAK,EAAA;AAAEkC,IAAAA,GAAG,EAAEjC,YAAAA;GACnCX,CAAAA,EAAAA,KAAK,IAAIG,cAAA,CAAAsC,aAAA,CAACC,wBAA0B,EAAE1C,IAAAA,EAAAA,KAAkC,CAAC,EACzEK,OAAO,CAACgB,GAAG,CAACnC,IAAI,IACfiB,cAAA,CAAAsC,aAAA,CAACI,YAAY,EAAA;IACXC,GAAG,EAAE5D,IAAI,CAACS,KAAM;AAChBI,IAAAA,KAAK,EAAEM,OAAQ;AACfnB,IAAAA,IAAI,EAAEA,IAAK;IACXoB,OAAO,EAAEA,OAAO,CAAC+B,MAAM,CAACU,CAAC,IAAI,CAAC7D,IAAI,CAACS,KAAK,EAAE,GAAGyB,eAAe,CAAClC,IAAI,CAAC,CAAC,CAACQ,QAAQ,CAACqD,CAAC,CAAC,CAAE;AACjFhB,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,QAAQ,EAAEA,QAAS;AACnB7B,IAAAA,MAAM,EAAEA,MAAAA;AAAO,GAChB,CACF,CAAC,EAED,CAACS,gBAAgB,IAChBb,cAAA,CAAAsC,aAAA,CAACC,2BAA6B,EAAElC,IAAAA,EAAAA,aAA6C,CAE3D,CAAC,CAAA;AAE3B,CAAC,EAAC;AAEFN,kBAAkB,CAAC8C,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;AAC7B9C,EAAAA,OAAO,EAAE+C,SAAS,CAACC,OAAO,CAACC,QAAQ,CAAC;AAIpChD,EAAAA,OAAO,EAAE8C,SAAS,CAACG,KAAK,CAACC,UAAU;EAKnCxD,KAAK,EAAEoD,SAAS,CAACK,MAAM;EAKvBlD,MAAM,EAAE6C,SAAS,CAACK,MAAM;EAKxBjD,aAAa,EAAE4C,SAAS,CAACK,MAAM;AAK/BhD,EAAAA,QAAQ,EAAE2C,SAAS,CAACM,IAAI,CAACF,UAAAA;AAC3B,CAAC,GAAA,EAAA,CAAA;AAEDtD,kBAAkB,CAACyD,YAAY,GAAG;AAChCtD,EAAAA,OAAO,EAAE,EAAE;AACXG,EAAAA,aAAa,EAAE,aAAA;AACjB,CAAC,CAAA;AAED,MAAMqC,YAAY,GAAG1C,cAAK,CAACyD,IAAI,CAAC,SAASf,YAAYA,CAAC;EACpD3D,IAAI;EACJa,KAAK;EACLO,OAAO;EACPyB,KAAK;EACLK,QAAQ;AACR7B,EAAAA,MAAM,GAAG,EAAA;AACX,CAAC,EAAE;EACD,MAAM,CAACsD,QAAQ,EAAEC,WAAW,CAAC,GAAGhD,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC/C,MAAM,CAACiD,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGlD,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE/D,EAAA,MAAML,QAAQ,GAAGuB,WAAW,CAC1BiC,KAAK,IAAI;AACP,IAAA,IAAIA,KAAK,CAACC,MAAM,CAAC5D,OAAO,EAAE;AACxByB,MAAAA,KAAK,CAAC,CAACkC,KAAK,CAACC,MAAM,CAACvE,KAAK,EAAE,GAAGyB,eAAe,CAAClC,IAAI,CAAC,CAAC,CAAC,CAAA;AACvD,KAAC,MAAM;AACLkD,MAAAA,QAAQ,CAAC,CAAC6B,KAAK,CAACC,MAAM,CAACvE,KAAK,EAAE,GAAGyB,eAAe,CAAClC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC1D,KAAA;GACD,EACD,CAACA,IAAI,EAAE6C,KAAK,EAAEK,QAAQ,CACxB,CAAC,CAAA;AAED,EAAA,MAAM+B,aAAa,GAAGnC,WAAW,CAC/BoC,SAAS,IAAI;AACX,IAAA,IAAIxE,sBAAsB,CAACV,IAAI,EAAE,EAAE,EAAE,CAAC,GAAGkF,SAAS,EAAE,GAAG9D,OAAO,CAAC,CAAC,EAAE;MAChE,OAAOyB,KAAK,CAAC,CAAC7C,IAAI,CAACS,KAAK,EAAE,GAAGyE,SAAS,CAAC,CAAC,CAAA;AAC1C,KAAA;IAEArC,KAAK,CAACqC,SAAS,CAAC,CAAA;GACjB,EACD,CAAClF,IAAI,EAAEoB,OAAO,EAAEyB,KAAK,CACvB,CAAC,CAAA;AAED,EAAA,MAAMsC,UAAU,GAAGpD,OAAO,CAAC,MAAM;AAC/B,IAAA,IAAIC,OAAO,CAACX,MAAM,CAAC,EAAE;AACnB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMY,WAAW,GAAGC,eAAe,CAAClC,IAAI,CAAC,CAAA;AACzC,IAAA,OAAO,CAAC,CAACA,IAAI,CAACS,KAAK,EAAE,GAAGwB,WAAW,CAAC,CACjCE,GAAG,CAACC,CAAC,IAAIxB,eAAe,CAACwB,CAAC,EAAEvB,KAAK,CAAC,CAAC,CACnCP,IAAI,CAAC8B,CAAC,IAAIA,CAAC,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;GAC/C,EAAE,CAACrB,IAAI,EAAEa,KAAK,EAAEQ,MAAM,CAAC,CAAC,CAAA;AAEzB+B,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMnB,WAAW,GAAGC,eAAe,CAAClC,IAAI,CAAC,CAAA;IACzC,MAAMoF,cAAc,GAClB,CAACpD,OAAO,CAACX,MAAM,CAAC,IAChB,CAACrB,IAAI,CAACS,KAAK,EAAE,GAAGwB,WAAW,CAAC,CACzBE,GAAG,CAACC,CAAC,IAAIxB,eAAe,CAACwB,CAAC,EAAEvB,KAAK,CAAC,CAAC,CACnCP,IAAI,CAAC8B,CAAC,IAAIA,CAAC,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAChDyD,mBAAmB,CAACM,cAAc,CAAC,CAAA;GACpC,EAAE,CAAC/D,MAAM,EAAER,KAAK,EAAEb,IAAI,CAAC,CAAC,CAAA;AAEzB,EAAA,IAAImF,UAAU,EAAE;AACd,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,OACElE,cAAA,CAAAsC,aAAA,CAACC,cAAc,EAAA,IAAA,EACbvC,cAAA,CAAAsC,aAAA,CAACC,6BAA+B,QAC7BrD,OAAO,CAACH,IAAI,CAACI,QAAQ,CAAC,IAAIJ,IAAI,CAACI,QAAQ,CAACC,MAAM,GAAG,CAAC,IACjDY,cAAA,CAAAsC,aAAA,CAACC,gBAAkB,EAAA;IACjB6B,SAAS,EAAEV,QAAQ,IAAIE,gBAAiB;AACxCS,IAAAA,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEA,MAAM;MACbT,mBAAmB,CAACU,OAAO,IAAI;AAC7B,QAAA,IAAIA,OAAO,EAAE;UACXZ,WAAW,CAAC,KAAK,CAAC,CAAA;AACpB,SAAC,MAAM;AACLA,UAAAA,WAAW,CAACxC,CAAC,IAAI,CAACA,CAAC,CAAC,CAAA;AACtB,SAAA;AACA,QAAA,OAAO,KAAK,CAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;GAEAnB,EAAAA,cAAA,CAAAsC,aAAA,CAAA,KAAA,EAAA;AAAKkC,IAAAA,KAAK,EAAC,4BAA4B;AAACC,IAAAA,OAAO,EAAC,YAAA;GAC9CzE,EAAAA,cAAA,CAAAsC,aAAA,CAAA,MAAA,EAAA;AACEoC,IAAAA,IAAI,EAAC,cAAc;AACnBC,IAAAA,CAAC,EAAC,gDAAgD;AAClDC,IAAAA,WAAW,EAAC,GAAA;GACb,CACE,CACa,CACrB,EAED5E,cAAA,CAAAsC,aAAA,CAACuC,QAAQ,EAAA;AACPC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,WAAW,EAAE,EAAA;KAAK;IAC3BC,KAAK,EAAE,CAAC7E,OAAO,CAACZ,QAAQ,CAACR,IAAI,CAACS,KAAK,CAAE;IACrCK,KAAK,EAAEd,IAAI,CAACc,KAAM;AAClBoF,IAAAA,aAAa,EACV9E,OAAO,CAACZ,QAAQ,CAACR,IAAI,CAACS,KAAK,CAAC,IAAI,CAACC,sBAAsB,CAACV,IAAI,EAAEA,IAAI,CAACS,KAAK,EAAEW,OAAO,CAAC,IAClFrB,mBAAmB,CAACC,IAAI,EAAEA,IAAI,CAACS,KAAK,EAAEW,OAAO,CAAC,IAC7C,CAACV,sBAAsB,CAACV,IAAI,EAAEA,IAAI,CAACS,KAAK,EAAEW,OAAO,CACpD;AACDA,IAAAA,OAAO,EAAErB,mBAAmB,CAACC,IAAI,EAAEA,IAAI,CAACS,KAAK,EAAEW,OAAO,CAAC,IAAIA,OAAO,CAACZ,QAAQ,CAACR,IAAI,CAACS,KAAK,CAAE;IACxFA,KAAK,EAAET,IAAI,CAACS,KAAM;AAClBc,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GACpB,CAC8B,CAAC,EAEjCvB,IAAI,CAACI,QAAQ,IACZa,cAAA,CAAAsC,aAAA,CAACC,oBAAsB,EAAA;IAAC6B,SAAS,EAAEV,QAAQ,IAAIE,gBAAAA;AAAiB,GAAA,EAC9D5D,cAAA,CAAAsC,aAAA,CACGvD,KAAAA,EAAAA,IAAAA,EAAAA,IAAI,CAACI,QAAQ,CAAC+B,GAAG,CAAC5B,SAAS,IAC1BU,cAAA,CAAAsC,aAAA,CAACI,YAAY,EAAA;IACXC,GAAG,EAAErD,SAAS,CAACE,KAAM;IACrBW,OAAO,EAAEA,OAAO,CAAC+B,MAAM,CAACU,CAAC,IACvB,CAACtD,SAAS,CAACE,KAAK,EAAE,GAAGyB,eAAe,CAAC3B,SAAS,CAAC,CAAC,CAACC,QAAQ,CAACqD,CAAC,CAC7D,CAAE;AACFhB,IAAAA,KAAK,EAAEoC,aAAc;AACrB/B,IAAAA,QAAQ,EAAEA,QAAS;AACnBlD,IAAAA,IAAI,EAAEO,SAAU;AAChBM,IAAAA,KAAK,EAAEA,KAAM;AACbQ,IAAAA,MAAM,EAAEA,MAAAA;AAAO,GAChB,CACF,CACE,CACiB,CAEZ,CAAC,CAAA;AAErB,CAAC,EACDiC,OAAO,CAAC,CAAA;AAERK,YAAY,CAACG,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;AACvBjE,EAAAA,IAAI,EAAEoE,QAAQ;AACdvD,EAAAA,KAAK,EAAEqD,SAAS,CAACC,OAAO,CAACC,QAAQ,CAAC;AAClChD,EAAAA,OAAO,EAAE8C,SAAS,CAACG,KAAK,CAACC,UAAU;EACnCjD,MAAM,EAAE6C,SAAS,CAACK,MAAM;AACxB1B,EAAAA,KAAK,EAAEqB,SAAS,CAACM,IAAI,CAACF,UAAU;AAChCpB,EAAAA,QAAQ,EAAEgB,SAAS,CAACM,IAAI,CAACF,UAAAA;AAC3B,CAAC,GAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"MultiLevelCheckbox.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport * as S from './MultiLevelCheckbox.styled';\n\nconst EMPTY_ARRAY = [];\nimport Checkbox from '../Checkbox';\nimport { isArray, isEmpty, isEqual, uniq } from 'lodash';\nimport { findChildValues } from './types';\nimport type { MultiLevelCheckboxNode, MultiLevelCheckboxNodeValue } 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\ntype MultiLevelCheckboxOwnProps = {\n /*\n * The codemod emitted `options?: NodeType[]` from `PropTypes.arrayOf(NodeType)`.\n * `NodeType` is a runtime `PropTypes.shape()` VALUE exported from `./types`, not a\n * type, so that was TS2749 \"refers to a value, but is being used as a type here\".\n * The right target is the hand-written recursive interface, which is also strictly\n * more accurate: `NodeType` validates exactly two levels and then gives up\n * (`children: PropTypes.array`), while `CheckboxTree`, `findChildValues`,\n * `hasChildrenSelected`, `hasAllChildrenSelected` and `getLabelByValue` all recurse\n * without a depth limit and the stories ship four-level trees.\n */\n options?: MultiLevelCheckboxNode[];\n /**\n * Array of checked option values\n */\n checked: any[];\n /**\n * Label text for the MultiLevelCheckbox\n */\n label?: string;\n /**\n * Optional search string\n */\n search?: string;\n /**\n * Optional text to display when no results are found while searching.`\n */\n noResultsText?: string;\n /**\n * Callback function for the `onChange` event\n */\n onChange: (...args: any[]) => any;\n};\n\n/*\n * NMB-3998 §C.2: `props` is spread onto `S.MultiLevelCheckbox`, so the published type\n * has to admit that target's props too — a closed type here is worse than `any` for the\n * 125 consumer files. Declared members win over the base (`Omit` by `keyof MultiLevelCheckboxOwnProps`);\n * a bare `&` would INTERSECT a colliding member instead of overriding it, which narrows\n * it (measured: `rows?: number | string` & `rows?: number`) or empties it to `never`.\n */\ntype Props = Omit<\n React.ComponentPropsWithoutRef<typeof S.MultiLevelCheckbox>,\n keyof MultiLevelCheckboxOwnProps\n> &\n MultiLevelCheckboxOwnProps;\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<any, Props>(function MultiLevelCheckbox(\n {\n options = EMPTY_ARRAY,\n checked,\n search,\n label,\n noResultsText = 'No results.',\n onChange,\n ...props\n },\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\n/*\n * HAND-WRITTEN, because `reactPropsPlugin` cannot reach this component. `CheckboxTree` is\n * a `React.memo(fn)` VARIABLE INITIALIZER, which is not one of the shapes\n * `isReactSfcArrowFunction` accepts (`forwardRef` is), so the plugin left its 6 props as\n * `{}` — 6 x TS2339 plus a TS2322 at each of the two call sites. The propTypes at the\n * bottom of the file are the source, with two corrections that are not cosmetic:\n *\n * - `node: NodeType` and `nodes: PropTypes.arrayOf(NodeType)` become\n * `MultiLevelCheckboxNode`, the genuinely recursive interface, for the reason given on\n * `MultiLevelCheckboxOwnProps.options`: `NodeType` truncates at two levels and this\n * component RECURSES INTO ITSELF at ~line 321 with `node.children.map`.\n * - `checked: PropTypes.array.isRequired` becomes\n * `MultiLevelCheckboxNodeValue[]`, not `any[]`. It is `.filter`ed and `.includes`d\n * against `node.value` throughout, so `any[]` was permission for a comparison that\n * silently never matches.\n */\ntype CheckboxTreeProps = {\n node: MultiLevelCheckboxNode;\n nodes?: MultiLevelCheckboxNode[];\n checked: MultiLevelCheckboxNodeValue[];\n search?: string;\n onAdd: (values: MultiLevelCheckboxNodeValue[]) => void;\n onRemove: (values: MultiLevelCheckboxNodeValue[]) => void;\n};\n\nconst CheckboxTree = React.memo(function CheckboxTree({\n node,\n nodes,\n checked,\n onAdd,\n onRemove,\n search = ''\n}: CheckboxTreeProps) {\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}, isEqual);\n\n/*\n * `CheckboxTree.propTypes` DELETED HERE, and this one is FORCED rather than chosen.\n * `CheckboxTree` is a `React.memo(...)` value, and assigning `.propTypes` to one is a hard\n * type error under @types/react 19:\n * TS2339 Property 'propTypes' does not exist on type 'NamedExoticComponent<…>'.\n * `types.ts`'s own LEGACY RUNTIME block predicted exactly this (\"CheckboxTree forces the\n * issue on its own\").\n *\n * The React 16 cost is real but contained: propTypes are evaluated on every render on\n * React 16, so removing them removes dev-time warnings. `CheckboxTree` is INTERNAL — it is\n * not exported from this file or from the barrel — so the only callers are the two in this\n * module, and both are now checked by `CheckboxTreeProps` at compile time instead, more\n * strictly than the propTypes managed (`node` recursive rather than truncated at two\n * levels, `checked` a value array rather than `PropTypes.array`).\n *\n * `NodeType` STAYS EXPORTED from `./types`. It is re-exported by\n * `MultiLevelCheckbox/index.ts`, which `./inputs/*` publishes, so deleting it is an API\n * break and not this phase's call. See the report in the commit message.\n */\nexport default MultiLevelCheckbox;\n"],"names":["EMPTY_ARRAY","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","_jsxs","S","ref","_jsx","CheckboxTree","c","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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"}
|
|
@@ -6,78 +6,46 @@ const shouldForwardProp = prop => {
|
|
|
6
6
|
};
|
|
7
7
|
const MultiLevelCheckbox = styled.fieldset.withConfig({
|
|
8
8
|
shouldForwardProp
|
|
9
|
-
}).attrs(applyDefaultTheme)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
`;
|
|
9
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
10
|
+
displayName: "MultiLevelCheckboxstyled__MultiLevelCheckbox",
|
|
11
|
+
componentId: "sc-1jac4kc-0"
|
|
12
|
+
})(["padding:0;border:0;margin:0;"]);
|
|
14
13
|
const MultiLevelCheckboxLegend = styled.legend.withConfig({
|
|
15
14
|
shouldForwardProp
|
|
16
|
-
}).attrs(applyDefaultTheme)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
letter-spacing: 0.03em;
|
|
21
|
-
${props => props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'))}
|
|
22
|
-
`;
|
|
15
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
16
|
+
displayName: "MultiLevelCheckboxstyled__MultiLevelCheckboxLegend",
|
|
17
|
+
componentId: "sc-1jac4kc-1"
|
|
18
|
+
})(["line-height:1.2;font-size:0.75rem;padding:0 0 4px;letter-spacing:0.03em;", ""], props => props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600')));
|
|
23
19
|
const MultiLevelCheckboxNoResults = styled.div.withConfig({
|
|
24
20
|
shouldForwardProp
|
|
25
|
-
}).attrs(applyDefaultTheme)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
`;
|
|
21
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
22
|
+
displayName: "MultiLevelCheckboxstyled__MultiLevelCheckboxNoResults",
|
|
23
|
+
componentId: "sc-1jac4kc-2"
|
|
24
|
+
})(["text-align:center;opacity:0.7;font-size:0.875rem;"]);
|
|
30
25
|
const CheckboxTreeChildren = styled.div.withConfig({
|
|
31
26
|
shouldForwardProp
|
|
32
|
-
}).attrs(applyDefaultTheme)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
transition: grid-template-rows 250ms;
|
|
37
|
-
|
|
38
|
-
& > div {
|
|
39
|
-
overflow: hidden;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
${props => props.$expanded && css`
|
|
43
|
-
grid-template-rows: 1fr;
|
|
44
|
-
`}
|
|
45
|
-
}
|
|
46
|
-
`;
|
|
27
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
28
|
+
displayName: "MultiLevelCheckboxstyled__CheckboxTreeChildren",
|
|
29
|
+
componentId: "sc-1jac4kc-3"
|
|
30
|
+
})(["display:grid;grid-template-rows:0fr;padding-left:28px;transition:grid-template-rows 250ms;& > div{overflow:hidden;}", "}"], props => props.$expanded && css(["grid-template-rows:1fr;"]));
|
|
47
31
|
const CheckboxTree = styled.div.withConfig({
|
|
48
32
|
shouldForwardProp
|
|
49
|
-
}).attrs(applyDefaultTheme)
|
|
50
|
-
|
|
51
|
-
|
|
33
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
34
|
+
displayName: "MultiLevelCheckboxstyled__CheckboxTree",
|
|
35
|
+
componentId: "sc-1jac4kc-4"
|
|
36
|
+
})(["width:fit-content;"]);
|
|
52
37
|
const CheckboxTreeCheckboxContainer = styled.div.withConfig({
|
|
53
38
|
shouldForwardProp
|
|
54
|
-
}).attrs(applyDefaultTheme)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
39
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
40
|
+
displayName: "MultiLevelCheckboxstyled__CheckboxTreeCheckboxContainer",
|
|
41
|
+
componentId: "sc-1jac4kc-5"
|
|
42
|
+
})(["position:relative;margin-top:4px;"]);
|
|
58
43
|
const ExpandTreeButton = styled.button.withConfig({
|
|
59
44
|
shouldForwardProp
|
|
60
|
-
}).attrs(applyDefaultTheme)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
position: absolute;
|
|
65
|
-
height: 100%;
|
|
66
|
-
cursor: pointer;
|
|
67
|
-
color: currentColor;
|
|
68
|
-
|
|
69
|
-
& > svg {
|
|
70
|
-
display: block;
|
|
71
|
-
width: 10px;
|
|
72
|
-
transform: rotate(-90deg);
|
|
73
|
-
transition: transform 250ms;
|
|
74
|
-
|
|
75
|
-
${props => props.$expanded && css`
|
|
76
|
-
transform: rotate(0deg);
|
|
77
|
-
`}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
`;
|
|
45
|
+
}).attrs(applyDefaultTheme).withConfig({
|
|
46
|
+
displayName: "MultiLevelCheckboxstyled__ExpandTreeButton",
|
|
47
|
+
componentId: "sc-1jac4kc-6"
|
|
48
|
+
})(["-webkit-appearance:none;background:none;border:none;position:absolute;height:100%;cursor:pointer;color:currentColor;& > svg{display:block;width:10px;transform:rotate(-90deg);transition:transform 250ms;", "}}"], props => props.$expanded && css(["transform:rotate(0deg);"]));
|
|
81
49
|
|
|
82
50
|
export { CheckboxTree, CheckboxTreeCheckboxContainer, CheckboxTreeChildren, ExpandTreeButton, MultiLevelCheckbox, MultiLevelCheckboxLegend, MultiLevelCheckboxNoResults };
|
|
83
51
|
//# sourceMappingURL=MultiLevelCheckbox.styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLevelCheckbox.styled.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.
|
|
1
|
+
{"version":3,"file":"MultiLevelCheckbox.styled.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.ts"],"sourcesContent":["/*\n * $-transient-prop pattern: rules in\n * `src/components/layout/SectionSeparator/SectionSeparator.styled.ts`, derivation and\n * measurements in `scripts/TS-MIGRATION-PLAYBOOK.md` §J.\n *\n * The simple case in this batch: one transient prop, two hosts, no shared `css` helper.\n * Both reads of `$expanded` live in the components' OWN templates — the one in\n * `ExpandTreeButton` is inside a nested `& > svg { … }` SELECTOR, which is not a nested\n * `css` block and does not shadow `props`, so the outer `.attrs<P>()` reaches it and no\n * second generic slot is involved. Contrast `CompactTextInput`'s `themeProp()` arguments,\n * which are real nested `css` blocks. §J.7.\n */\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\n/**\n * Props of the two components that take the expand/collapse state across the\n * `shouldForwardProp` boundary.\n *\n * `MultiLevelCheckbox.tsx` passes `$expanded={expanded || expandedBySearch}` at both\n * sites (lines 263 and 302) — two `useState<boolean>` values OR'd together, hence\n * `boolean`. Optional, per §J.5: nothing supplies a default and the templates are\n * written for its absence (`props.$expanded && css`…``).\n */\ninterface ExpandedStyleProps {\n /** `expanded || expandedBySearch` — opens the `grid-template-rows` / rotates the caret. */\n $expanded?: boolean;\n}\n\n/*\n * Single-argument, and it stays that way — peer floor `styled-components: >=5.1.0`, and\n * the two majors disagree on the second parameter. §J.4. `prop` needs the annotation\n * because `withConfig` takes this by reference, so it gets no contextual typing.\n */\nconst shouldForwardProp = (prop: string): boolean => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const MultiLevelCheckbox = styled.fieldset\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n padding: 0;\n border: 0;\n margin: 0;\n`;\n\nexport const MultiLevelCheckboxLegend = styled.legend\n .withConfig({\n shouldForwardProp\n })\n .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\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n text-align: center;\n opacity: 0.7;\n font-size: 0.875rem;\n`;\n\nexport const CheckboxTreeChildren = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs<ExpandedStyleProps>(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\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n width: fit-content;\n`;\n\nexport const CheckboxTreeCheckboxContainer = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: relative;\n margin-top: 4px;\n`;\n\nexport const ExpandTreeButton = styled.button\n .withConfig({\n shouldForwardProp\n })\n .attrs<ExpandedStyleProps>(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":["shouldForwardProp","prop","startsWith","MultiLevelCheckbox","styled","fieldset","withConfig","attrs","applyDefaultTheme","displayName","componentId","MultiLevelCheckboxLegend","legend","props","theme","themeProp","getColor","MultiLevelCheckboxNoResults","div","CheckboxTreeChildren","$expanded","css","CheckboxTree","CheckboxTreeCheckboxContainer","ExpandTreeButton","button"],"mappings":";;;AAkCA,MAAMA,iBAAiB,GAAIC,IAAY,IAAc;EACnD,OAAOA,IAAI,KAAK,OAAO,IAAI,CAACA,IAAI,CAACC,UAAU,CAAC,GAAG,CAAC;AAClD,CAAC;AAEM,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,QAAQ,CAC9CC,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAACC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,8CAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,8BAAA,CAAA;AAMpB,MAAMC,wBAAwB,GAAGP,MAAM,CAACQ,MAAM,CAClDN,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAACC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,oDAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,0EAAA,EAAA,EAAA,CAAA,EAKvBG,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;AAGE,MAAMC,2BAA2B,GAAGb,MAAM,CAACc,GAAG,CAClDZ,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAACC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,uDAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mDAAA,CAAA;AAMpB,MAAMS,oBAAoB,GAAGf,MAAM,CAACc,GAAG,CAC3CZ,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAAqBC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,gDAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,qHAAA,EAAA,GAAA,CAAA,EAU3CG,KAAK,IACLA,KAAK,CAACO,SAAS,IACfC,GAAG,6BAEF;AAIE,MAAMC,YAAY,GAAGlB,MAAM,CAACc,GAAG,CACnCZ,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAACC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,wCAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA;AAIpB,MAAMa,6BAA6B,GAAGnB,MAAM,CAACc,GAAG,CACpDZ,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAACC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,yDAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mCAAA,CAAA;AAKpB,MAAMc,gBAAgB,GAAGpB,MAAM,CAACqB,MAAM,CAC1CnB,UAAU,CAAC;AACVN,EAAAA;AACF,CAAC,CAAC,CACDO,KAAK,CAAqBC,iBAAiB,CAAC,CAAAF,UAAA,CAAA;EAAAG,WAAA,EAAA,4CAAA;EAAAC,WAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2MAAA,EAAA,IAAA,CAAA,EAezCG,KAAK,IACLA,KAAK,CAACO,SAAS,IACfC,GAAG,6BAEF;;;;"}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
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
3
|
function findChildValues(node) {
|
|
13
4
|
const result = [];
|
|
14
|
-
function traverse(
|
|
15
|
-
if (Array.isArray(
|
|
16
|
-
|
|
5
|
+
function traverse(currentNode) {
|
|
6
|
+
if (Array.isArray(currentNode.children) && currentNode.children.length > 0) {
|
|
7
|
+
currentNode.children.forEach(child => {
|
|
17
8
|
result.push(child.value);
|
|
18
9
|
traverse(child);
|
|
19
10
|
});
|
|
@@ -22,6 +13,15 @@ function findChildValues(node) {
|
|
|
22
13
|
traverse(node);
|
|
23
14
|
return result;
|
|
24
15
|
}
|
|
16
|
+
const NodeType = PropTypes.shape({
|
|
17
|
+
label: PropTypes.string.isRequired,
|
|
18
|
+
value: PropTypes.any.isRequired,
|
|
19
|
+
children: PropTypes.arrayOf(PropTypes.shape({
|
|
20
|
+
label: PropTypes.string.isRequired,
|
|
21
|
+
value: PropTypes.any.isRequired,
|
|
22
|
+
children: PropTypes.array
|
|
23
|
+
}))
|
|
24
|
+
});
|
|
25
25
|
|
|
26
26
|
export { NodeType, findChildValues };
|
|
27
27
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/types.
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/inputs/MultiLevelCheckbox/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\n/**\n * The option tree `MultiLevelCheckbox` and `MultiLevelCheckboxSelect` render.\n *\n * TWO THINGS IN HERE, DESPITE THE FILE NAME: the types, and `findChildValues` —\n * a runtime helper both components call. The helper predates the file's name;\n * moving it is a separate commit.\n */\n\n/**\n * A node's identity.\n *\n * `string | number` RATHER THAN THE `PropTypes.any` IT REPLACES, because three\n * runtime uses constrain it and none of them accepts an arbitrary value: it is\n * the React `key` of every rendered `CheckboxTree`, it is the `value` of the\n * underlying `<input type=\"checkbox\">`, and it is compared with `===` and\n * `Array.prototype.includes` against the `checked` array the consumer owns.\n * An object here already renders as `[object Object]` and breaks reconciliation,\n * so `any` was permission for a bug rather than a description of the API.\n *\n * Every value in the stories is a string.\n */\nexport type MultiLevelCheckboxNodeValue = string | number;\n\n/**\n * One option, with any number of levels of children under it.\n *\n * GENUINELY RECURSIVE, WHICH THE propTypes AT THE BOTTOM ARE NOT — and the\n * recursion is the accurate description, not an improvement invented here:\n *\n * - `NodeType` validates exactly two levels and then gives up (`children:\n * PropTypes.array`), because a self-referential `PropTypes.shape` is not\n * expressible without a lazy indirection. Its own comment says so.\n * - `findChildValues` below, `hasChildrenSelected`, `hasAllChildrenSelected`,\n * `getLabelByValue` and `CheckboxTree` itself all recurse without a depth\n * limit, and the stories ship four-level trees\n * (`sport → idrettsgren → golf → minigolf`).\n *\n * So the propTypes silently accepted anything below level two while the\n * components happily walked it. This interface is what the code has always\n * meant.\n */\nexport interface MultiLevelCheckboxNode {\n /** Shown next to the checkbox, and what the `search` prop matches against. */\n label: string;\n value: MultiLevelCheckboxNodeValue;\n /**\n * Child options. A node with a non-empty `children` array gets an expander\n * arrow; checking it checks the whole subtree.\n */\n children?: MultiLevelCheckboxNode[];\n}\n\n/**\n * Every descendant value under `node`, depth-first, excluding `node` itself.\n *\n * Callers pass `[node.value, ...findChildValues(node)]` when they want the node\n * included, which is why it is excluded here.\n *\n * Guards on `Array.isArray(node.children)`, so a node whose `children` is\n * `undefined` — or something the type says it cannot be — yields `[]` rather\n * than throwing. There is no cycle protection: a node reachable from its own\n * subtree recurses until the stack runs out. That is pre-existing, and the tree\n * comes from the consumer.\n */\nexport function findChildValues(node: MultiLevelCheckboxNode): MultiLevelCheckboxNodeValue[] {\n const result: MultiLevelCheckboxNodeValue[] = [];\n\n function traverse(currentNode: MultiLevelCheckboxNode): void {\n if (Array.isArray(currentNode.children) && currentNode.children.length > 0) {\n currentNode.children.forEach(child => {\n result.push(child.value);\n traverse(child);\n });\n }\n }\n\n traverse(node);\n return result;\n}\n\n/* ============================================================================\n * LEGACY RUNTIME propType — scheduled for deletion. Do not extend it; extend\n * `MultiLevelCheckboxNode` above.\n *\n * WHY IT IS STILL HERE: `MultiLevelCheckbox.tsx` uses it in two places\n * (`MultiLevelCheckbox.propTypes.options` and `CheckboxTree.propTypes.node` /\n * `.nodes`), and on React 16 — which this library still supports, see \"The\n * React 16 promise\" in scripts/VERIFY.md — propTypes are evaluated on every\n * render. Deleting it here would be a runtime behaviour change, not a type\n * change.\n *\n * DELETE WHEN: the library-wide propTypes-removal phase runs (playbook §A.2,\n * C14–C18). `CheckboxTree` forces the issue on its own — it is a\n * `React.memo(...)` value, and assigning `.propTypes` to one is a hard type\n * error under @types/react 19 (TS2339 on `NamedExoticComponent<object>`), which\n * is one of the 19 errors `MultiLevelCheckbox.tsx` still reports.\n *\n * WHAT IT DOES NOT VALIDATE, RECORDED SO NOBODY TRUSTS IT: level three and\n * below. `children: PropTypes.array` accepts an array of anything, so a\n * malformed grandchild is only discovered when `CheckboxTree` renders it.\n * ========================================================================== */\n\n// Define NodeType without self-reference to avoid circular dependency\nexport const NodeType = PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n children: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n children: PropTypes.array\n })\n )\n});\n"],"names":["findChildValues","node","result","traverse","currentNode","Array","isArray","children","length","forEach","child","push","value","NodeType","PropTypes","shape","label","string","isRequired","any","arrayOf","array"],"mappings":";;AAkEO,SAASA,eAAeA,CAACC,IAA4B,EAAiC;EAC3F,MAAMC,MAAqC,GAAG,EAAE;EAEhD,SAASC,QAAQA,CAACC,WAAmC,EAAQ;AAC3D,IAAA,IAAIC,KAAK,CAACC,OAAO,CAACF,WAAW,CAACG,QAAQ,CAAC,IAAIH,WAAW,CAACG,QAAQ,CAACC,MAAM,GAAG,CAAC,EAAE;AAC1EJ,MAAAA,WAAW,CAACG,QAAQ,CAACE,OAAO,CAACC,KAAK,IAAI;AACpCR,QAAAA,MAAM,CAACS,IAAI,CAACD,KAAK,CAACE,KAAK,CAAC;QACxBT,QAAQ,CAACO,KAAK,CAAC;AACjB,MAAA,CAAC,CAAC;AACJ,IAAA;AACF,EAAA;EAEAP,QAAQ,CAACF,IAAI,CAAC;AACd,EAAA,OAAOC,MAAM;AACf;MAyBaW,QAAQ,GAAGC,SAAS,CAACC,KAAK,CAAC;AACtCC,EAAAA,KAAK,EAAEF,SAAS,CAACG,MAAM,CAACC,UAAU;AAClCN,EAAAA,KAAK,EAAEE,SAAS,CAACK,GAAG,CAACD,UAAU;EAC/BX,QAAQ,EAAEO,SAAS,CAACM,OAAO,CACzBN,SAAS,CAACC,KAAK,CAAC;AACdC,IAAAA,KAAK,EAAEF,SAAS,CAACG,MAAM,CAACC,UAAU;AAClCN,IAAAA,KAAK,EAAEE,SAAS,CAACK,GAAG,CAACD,UAAU;IAC/BX,QAAQ,EAAEO,SAAS,CAACO;AACtB,GAAC,CACH;AACF,CAAC;;;;"}
|