@mantine/core 9.0.0-alpha.6 → 9.0.0
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/cjs/components/Autocomplete/Autocomplete.cjs +1 -0
- package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/cjs/components/Badge/Badge.module.cjs.map +1 -1
- package/cjs/components/Button/Button.module.cjs.map +1 -1
- package/cjs/components/Checkbox/Checkbox.cjs +2 -1
- package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs +2 -1
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
- package/cjs/components/Chip/Chip.module.cjs.map +1 -1
- package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs +1 -0
- package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
- package/cjs/components/MultiSelect/MultiSelect.cjs +1 -0
- package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.cjs +2 -0
- package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
- package/cjs/components/Pill/Pill.module.cjs.map +1 -1
- package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs +2 -2
- package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
- package/cjs/components/Radio/Radio.cjs +1 -1
- package/cjs/components/Radio/Radio.cjs.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.module.cjs.map +1 -1
- package/cjs/components/Select/Select.cjs +7 -6
- package/cjs/components/Select/Select.cjs.map +1 -1
- package/cjs/components/Stepper/Stepper.cjs.map +1 -1
- package/cjs/components/Stepper/Stepper.module.cjs +1 -0
- package/cjs/components/Stepper/Stepper.module.cjs.map +1 -1
- package/cjs/components/Stepper/StepperStep/StepperStep.cjs +8 -5
- package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
- package/cjs/components/TagsInput/TagsInput.cjs +1 -0
- package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
- package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs +1 -1
- package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
- package/cjs/core/MantineProvider/default-theme.cjs +1 -1
- package/cjs/core/MantineProvider/default-theme.cjs.map +1 -1
- package/esm/components/Autocomplete/Autocomplete.mjs +1 -0
- package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/esm/components/Badge/Badge.module.mjs.map +1 -1
- package/esm/components/Button/Button.module.mjs.map +1 -1
- package/esm/components/Checkbox/Checkbox.mjs +2 -1
- package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs +2 -1
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
- package/esm/components/Chip/Chip.module.mjs.map +1 -1
- package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs +1 -0
- package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs.map +1 -1
- package/esm/components/MultiSelect/MultiSelect.mjs +1 -0
- package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
- package/esm/components/PasswordInput/PasswordInput.mjs +2 -0
- package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
- package/esm/components/Pill/Pill.module.mjs.map +1 -1
- package/esm/components/Popover/PopoverTarget/PopoverTarget.mjs +2 -2
- package/esm/components/Popover/PopoverTarget/PopoverTarget.mjs.map +1 -1
- package/esm/components/Radio/Radio.mjs +1 -1
- package/esm/components/Radio/Radio.mjs.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.module.mjs.map +1 -1
- package/esm/components/Select/Select.mjs +7 -6
- package/esm/components/Select/Select.mjs.map +1 -1
- package/esm/components/Stepper/Stepper.mjs.map +1 -1
- package/esm/components/Stepper/Stepper.module.mjs +1 -0
- package/esm/components/Stepper/Stepper.module.mjs.map +1 -1
- package/esm/components/Stepper/StepperStep/StepperStep.mjs +8 -5
- package/esm/components/Stepper/StepperStep/StepperStep.mjs.map +1 -1
- package/esm/components/TagsInput/TagsInput.mjs +1 -0
- package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
- package/esm/components/Timeline/TimelineItem/TimelineItem.mjs +1 -1
- package/esm/components/Timeline/TimelineItem/TimelineItem.mjs.map +1 -1
- package/esm/core/MantineProvider/default-theme.mjs +1 -1
- package/esm/core/MantineProvider/default-theme.mjs.map +1 -1
- package/esm/core/utils/get-env/get-env.mjs +1 -1
- package/esm/core/utils/get-env/get-env.mjs.map +1 -1
- package/lib/components/Combobox/use-combobox-target-props/use-combobox-target-props.d.ts +0 -16
- package/lib/components/Input/InputClearSection/InputClearSection.d.ts +1 -1
- package/lib/components/Input/use-input-props.d.ts +18 -18
- package/lib/components/Popover/use-popover.d.ts +2 -2
- package/lib/components/Stepper/Stepper.d.ts +1 -1
- package/lib/components/Stepper/StepperStep/StepperStep.d.ts +1 -1
- package/lib/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.d.ts +2 -2
- package/package.json +4 -4
- package/styles/Badge.css +2 -0
- package/styles/Badge.layer.css +2 -0
- package/styles/Button.css +2 -0
- package/styles/Button.layer.css +2 -0
- package/styles/Chip.css +2 -0
- package/styles/Chip.layer.css +2 -0
- package/styles/Pill.css +5 -2
- package/styles/Pill.layer.css +5 -2
- package/styles/SegmentedControl.css +3 -3
- package/styles/SegmentedControl.layer.css +3 -3
- package/styles/Stepper.css +4 -0
- package/styles/Stepper.layer.css +4 -0
- package/styles/default-css-variables.css +1 -1
- package/styles/default-css-variables.layer.css +1 -1
- package/styles.css +19 -6
- package/styles.layer.css +19 -6
- package/cjs/components/MaskInput/MaskInput.cjs +0 -24
- package/cjs/components/MaskInput/MaskInput.cjs.map +0 -1
- package/cjs/components/MaskInput/use-mask-input-props.cjs +0 -29
- package/cjs/components/MaskInput/use-mask-input-props.cjs.map +0 -1
- package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs +0 -33
- package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +0 -1
- package/cjs/components/RollingNumber/DigitColumn.cjs +0 -41
- package/cjs/components/RollingNumber/DigitColumn.cjs.map +0 -1
- package/cjs/components/RollingNumber/RollingNumber.cjs +0 -100
- package/cjs/components/RollingNumber/RollingNumber.cjs.map +0 -1
- package/cjs/components/RollingNumber/RollingNumber.module.cjs +0 -12
- package/cjs/components/RollingNumber/RollingNumber.module.cjs.map +0 -1
- package/cjs/components/RollingNumber/build-value.cjs +0 -22
- package/cjs/components/RollingNumber/build-value.cjs.map +0 -1
- package/cjs/components/RollingNumber/get-digit-parts.cjs +0 -40
- package/cjs/components/RollingNumber/get-digit-parts.cjs.map +0 -1
- package/cjs/components/RollingNumber/get-render-slots.cjs +0 -78
- package/cjs/components/RollingNumber/get-render-slots.cjs.map +0 -1
- package/cjs/components/Tree/FlatTreeNode.cjs +0 -102
- package/cjs/components/Tree/FlatTreeNode.cjs.map +0 -1
- package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs +0 -23
- package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs.map +0 -1
- package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs +0 -28
- package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs.map +0 -1
- package/cjs/components/Tree/merge-async-children/merge-async-children.cjs +0 -32
- package/cjs/components/Tree/merge-async-children/merge-async-children.cjs.map +0 -1
- package/cjs/components/Tree/move-tree-node/move-tree-node.cjs +0 -78
- package/cjs/components/Tree/move-tree-node/move-tree-node.cjs.map +0 -1
- package/cjs/components/Tree/use-tree-node-drag-drop.cjs +0 -96
- package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +0 -1
- package/cjs/components/TreeSelect/TreeSelect.cjs +0 -594
- package/cjs/components/TreeSelect/TreeSelect.cjs.map +0 -1
- package/cjs/components/TreeSelect/TreeSelect.module.cjs +0 -16
- package/cjs/components/TreeSelect/TreeSelect.module.cjs.map +0 -1
- package/cjs/components/TreeSelect/TreeSelectOption.cjs +0 -91
- package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +0 -1
- package/cjs/components/TreeSelect/flatten-tree-select-data.cjs +0 -34
- package/cjs/components/TreeSelect/flatten-tree-select-data.cjs.map +0 -1
- package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs +0 -30
- package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +0 -1
- package/esm/components/MaskInput/MaskInput.mjs +0 -23
- package/esm/components/MaskInput/MaskInput.mjs.map +0 -1
- package/esm/components/MaskInput/use-mask-input-props.mjs +0 -28
- package/esm/components/MaskInput/use-mask-input-props.mjs.map +0 -1
- package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs +0 -32
- package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs.map +0 -1
- package/esm/components/RollingNumber/DigitColumn.mjs +0 -40
- package/esm/components/RollingNumber/DigitColumn.mjs.map +0 -1
- package/esm/components/RollingNumber/RollingNumber.mjs +0 -99
- package/esm/components/RollingNumber/RollingNumber.mjs.map +0 -1
- package/esm/components/RollingNumber/RollingNumber.module.mjs +0 -12
- package/esm/components/RollingNumber/RollingNumber.module.mjs.map +0 -1
- package/esm/components/RollingNumber/build-value.mjs +0 -22
- package/esm/components/RollingNumber/build-value.mjs.map +0 -1
- package/esm/components/RollingNumber/get-digit-parts.mjs +0 -40
- package/esm/components/RollingNumber/get-digit-parts.mjs.map +0 -1
- package/esm/components/RollingNumber/get-render-slots.mjs +0 -78
- package/esm/components/RollingNumber/get-render-slots.mjs.map +0 -1
- package/esm/components/Tree/FlatTreeNode.mjs +0 -101
- package/esm/components/Tree/FlatTreeNode.mjs.map +0 -1
- package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs +0 -22
- package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs.map +0 -1
- package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs +0 -28
- package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs.map +0 -1
- package/esm/components/Tree/merge-async-children/merge-async-children.mjs +0 -32
- package/esm/components/Tree/merge-async-children/merge-async-children.mjs.map +0 -1
- package/esm/components/Tree/move-tree-node/move-tree-node.mjs +0 -78
- package/esm/components/Tree/move-tree-node/move-tree-node.mjs.map +0 -1
- package/esm/components/Tree/use-tree-node-drag-drop.mjs +0 -96
- package/esm/components/Tree/use-tree-node-drag-drop.mjs.map +0 -1
- package/esm/components/TreeSelect/TreeSelect.mjs +0 -593
- package/esm/components/TreeSelect/TreeSelect.mjs.map +0 -1
- package/esm/components/TreeSelect/TreeSelect.module.mjs +0 -16
- package/esm/components/TreeSelect/TreeSelect.module.mjs.map +0 -1
- package/esm/components/TreeSelect/TreeSelectOption.mjs +0 -90
- package/esm/components/TreeSelect/TreeSelectOption.mjs.map +0 -1
- package/esm/components/TreeSelect/flatten-tree-select-data.mjs +0 -34
- package/esm/components/TreeSelect/flatten-tree-select-data.mjs.map +0 -1
- package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs +0 -29
- package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +0 -1
- package/lib/components/MaskInput/MaskInput.d.ts +0 -68
- package/lib/components/MaskInput/index.d.ts +0 -7
- package/lib/components/MaskInput/use-mask-input-props.d.ts +0 -428
- package/lib/components/Pagination/PaginationLabel/PaginationLabel.d.ts +0 -22
- package/lib/components/RollingNumber/DigitColumn.d.ts +0 -10
- package/lib/components/RollingNumber/RollingNumber.d.ts +0 -39
- package/lib/components/RollingNumber/build-value.d.ts +0 -10
- package/lib/components/RollingNumber/get-digit-parts.d.ts +0 -12
- package/lib/components/RollingNumber/get-render-slots.d.ts +0 -35
- package/lib/components/RollingNumber/index.d.ts +0 -9
- package/lib/components/Tree/FlatTreeNode.d.ts +0 -34
- package/lib/components/Tree/filter-tree-data/filter-tree-data.d.ts +0 -4
- package/lib/components/Tree/flatten-tree-data/flatten-tree-data.d.ts +0 -15
- package/lib/components/Tree/merge-async-children/merge-async-children.d.ts +0 -2
- package/lib/components/Tree/move-tree-node/move-tree-node.d.ts +0 -11
- package/lib/components/Tree/use-tree-node-drag-drop.d.ts +0 -18
- package/lib/components/TreeSelect/TreeSelect.d.ts +0 -122
- package/lib/components/TreeSelect/TreeSelectOption.d.ts +0 -29
- package/lib/components/TreeSelect/flatten-tree-select-data.d.ts +0 -12
- package/lib/components/TreeSelect/get-checked-values-by-strategy.d.ts +0 -4
- package/lib/components/TreeSelect/index.d.ts +0 -13
- package/styles/RollingNumber.css +0 -50
- package/styles/RollingNumber.layer.css +0 -51
- package/styles/TreeSelect.css +0 -113
- package/styles/TreeSelect.layer.css +0 -114
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeSelect.cjs","names":["genericFactory","useProps","useCombobox","getTreeExpandedState","findTreeNode","expandToLeafChecked","filterTreeData","flattenTreeSelectData","useStyles","useResolvedStylesApi","extractStyleProps","isNodeChecked","getChildrenNodesValues","checkedToValue","Combobox","Pill","isNodeIndeterminate","TreeSelectOption","classes","ScrollArea","PillsInput","InputBase"],"sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n extractStyleProps,\n Factory,\n genericFactory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Combobox, ComboboxLikeStylesNames, useCombobox } from '../Combobox';\nimport {\n __BaseInputProps,\n __InputStylesNames,\n ClearSectionMode,\n InputClearButtonProps,\n InputVariant,\n} from '../Input';\nimport { InputBase } from '../InputBase';\nimport { Pill } from '../Pill';\nimport { PillsInput } from '../PillsInput';\nimport { ScrollArea, ScrollAreaProps } from '../ScrollArea';\nimport type { TreeNodeData } from '../Tree';\nimport { filterTreeData } from '../Tree/filter-tree-data/filter-tree-data';\nimport {\n findTreeNode,\n getChildrenNodesValues,\n} from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\nimport { isNodeIndeterminate } from '../Tree/is-node-indeterminate/is-node-indeterminate';\nimport { getTreeExpandedState, TreeExpandedState } from '../Tree/use-tree';\nimport { flattenTreeSelectData } from './flatten-tree-select-data';\nimport {\n CheckedStrategy,\n checkedToValue,\n expandToLeafChecked,\n} from './get-checked-values-by-strategy';\nimport { TreeSelectOption, TreeSelectRenderNodePayload } from './TreeSelectOption';\nimport classes from './TreeSelect.module.css';\n\nexport type TreeSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox';\n\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[];\n\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'>\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<TreeSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Tree data */\n data: TreeNodeData[];\n\n /** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */\n mode?: Mode;\n\n /** Controlled value */\n value?: TreeSelectValue<Mode>;\n\n /** Default value */\n defaultValue?: TreeSelectValue<Mode>;\n\n /** Called when value changes */\n onChange?: (value: TreeSelectValue<Mode>) => void;\n\n /** Disables parent-child cascade in checkbox mode @default false */\n checkStrictly?: boolean;\n\n /** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */\n checkedStrategy?: CheckedStrategy;\n\n /** Default expanded node values */\n defaultExpandedValues?: string[];\n\n /** Expand all nodes by default @default false */\n defaultExpandAll?: boolean;\n\n /** Controlled expanded state */\n expandedValues?: string[];\n\n /** Called when expanded state changes */\n onExpandedChange?: (values: string[]) => void;\n\n /** Also toggle expand when clicking a parent node (not just the chevron) @default false */\n expandOnClick?: boolean;\n\n /** Enables search filtering @default false */\n searchable?: boolean;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Custom filter function */\n filter?: (query: string, node: TreeNodeData) => boolean;\n\n /** Message when no nodes match search */\n nothingFoundMessage?: React.ReactNode;\n\n /** Allows deselecting in single mode @default true */\n allowDeselect?: boolean;\n\n /** Shows clear button @default false */\n clearable?: boolean;\n\n /** Determines how the clear button and rightSection are rendered @default 'both' */\n clearSectionMode?: ClearSectionMode;\n\n /** Props for the clear button */\n clearButtonProps?: InputClearButtonProps;\n\n /** Maximum selectable values (multiple/checkbox mode) */\n maxValues?: number;\n\n /** Maximum displayed pills before \"+N more\" */\n maxDisplayedValues?: number;\n\n /** Content shown when values overflow maxDisplayedValues */\n maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);\n\n /** Called with removed value in multiple/checkbox mode */\n onRemove?: (value: string) => void;\n\n /** Called when clear button is clicked */\n onClear?: () => void;\n\n /** Custom node rendering in the dropdown */\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n\n /** Show tree connection lines between parent and child nodes @default true */\n withLines?: boolean;\n\n /** Props for the hidden input */\n hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;\n\n /** Divider for hidden input values @default ',' */\n hiddenInputValuesDivider?: string;\n\n /** Props for the ScrollArea in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n\n /** Controls the default chevron color */\n chevronColor?: MantineColor;\n\n /** Max dropdown height @default 220 */\n maxDropdownHeight?: number | string;\n\n /** Controlled dropdown state */\n dropdownOpened?: boolean;\n\n /** Default dropdown state */\n defaultDropdownOpened?: boolean;\n\n /** Called when dropdown opens */\n onDropdownOpen?: () => void;\n\n /** Called when dropdown closes */\n onDropdownClose?: () => void;\n\n /** Props passed to the underlying Combobox */\n comboboxProps?: Record<string, any>;\n\n /** Clear search on selection change @default true */\n clearSearchOnChange?: boolean;\n\n /** Opens dropdown on focus (searchable mode) @default true */\n openOnFocus?: boolean;\n}\n\nexport type TreeSelectFactory = Factory<{\n props: TreeSelectProps;\n ref: HTMLInputElement;\n stylesNames: TreeSelectStylesNames;\n variant: InputVariant;\n signature: <Mode extends TreeSelectMode = 'single'>(\n props: TreeSelectProps<Mode>\n ) => React.JSX.Element;\n}>;\n\nconst defaultProps = {\n mode: 'single',\n allowDeselect: true,\n checkedStrategy: 'child',\n maxValues: Infinity,\n hiddenInputValuesDivider: ',',\n clearSearchOnChange: true,\n openOnFocus: true,\n size: 'sm',\n withLines: true,\n} satisfies Partial<TreeSelectProps<TreeSelectMode>>;\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 41,\n sm: 50,\n md: 60,\n lg: 72,\n xl: 89,\n};\n\nfunction getAncestorsToNode(value: string, nodes: TreeNodeData[]): string[] | null {\n for (const node of nodes) {\n if (node.value === value) {\n return [];\n }\n if (Array.isArray(node.children)) {\n const path = getAncestorsToNode(value, node.children);\n if (path !== null) {\n return [node.value, ...path];\n }\n }\n }\n return null;\n}\n\nexport const TreeSelect = genericFactory<TreeSelectFactory>((_props) => {\n const props = useProps('TreeSelect', defaultProps as any, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n data,\n mode,\n value,\n defaultValue,\n onChange,\n checkStrictly,\n checkedStrategy,\n defaultExpandedValues,\n defaultExpandAll,\n expandedValues,\n onExpandedChange,\n expandOnClick,\n searchable,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n filter,\n nothingFoundMessage,\n allowDeselect,\n clearable,\n clearSectionMode,\n clearButtonProps,\n maxValues,\n maxDisplayedValues,\n maxDisplayedValuesContent,\n onRemove,\n onClear,\n renderNode,\n withLines,\n hiddenInputProps,\n hiddenInputValuesDivider,\n scrollAreaProps,\n chevronColor,\n maxDropdownHeight,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n comboboxProps,\n clearSearchOnChange,\n openOnFocus,\n variant,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n disabled,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n wrapperProps,\n description,\n label,\n error,\n withErrorStyles,\n name,\n form,\n id,\n placeholder,\n required,\n mod,\n attributes,\n ...others\n } = props;\n\n const isMulti = mode === 'multiple' || mode === 'checkbox';\n const isCheckbox = mode === 'checkbox';\n const _id = useId(id);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const initialExpanded = useMemo(() => {\n if (defaultExpandAll) {\n return getTreeExpandedState(data, '*');\n }\n if (defaultExpandedValues) {\n return getTreeExpandedState(data, defaultExpandedValues);\n }\n return getTreeExpandedState(data, []);\n }, []);\n\n const expandedToRecord = useCallback(\n (values: string[] | undefined): TreeExpandedState | undefined => {\n if (!values) {\n return undefined;\n }\n return getTreeExpandedState(data, values);\n },\n [data]\n );\n\n const [_expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: expandedToRecord(expandedValues),\n defaultValue: initialExpanded,\n finalValue: {},\n onChange: (val) => {\n if (onExpandedChange) {\n onExpandedChange(\n Object.entries(val)\n .filter(([, v]) => v)\n .map(([k]) => k)\n );\n }\n },\n });\n\n const toggleExpand = useCallback(\n (nodeValue: string) => {\n setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });\n },\n [_expandedState]\n );\n\n const initialSearchValue = useMemo(() => {\n if (mode !== 'single' || !defaultValue) {\n return '';\n }\n const node = findTreeNode(defaultValue as string, data);\n return node ? (typeof node.label === 'string' ? node.label : '') : '';\n }, []);\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: initialSearchValue,\n onChange: onSearchChange,\n });\n\n const handleSearchChange = (val: string) => {\n setSearchValue(val);\n combobox.resetSelectedOption();\n };\n\n const [_value, setValue] = useUncontrolled({\n value: value as any,\n defaultValue: defaultValue as any,\n finalValue: isMulti ? [] : null,\n onChange,\n });\n\n const internalChecked = useMemo(() => {\n if (!isCheckbox || !_value || !Array.isArray(_value)) {\n return [];\n }\n if (checkStrictly) {\n return _value;\n }\n return expandToLeafChecked(_value, data);\n }, [isCheckbox, _value, data, checkStrictly]);\n\n const filteredData = useMemo(() => {\n if (!searchable || !_searchValue) {\n return data;\n }\n if (mode === 'single' && _value) {\n const node = findTreeNode(_value as string, data);\n if (node && _searchValue === (typeof node.label === 'string' ? node.label : '')) {\n return data;\n }\n }\n return filterTreeData(data, _searchValue, filter);\n }, [data, _searchValue, filter, searchable, mode, _value]);\n\n const expandedForRender = useMemo(() => {\n if (_searchValue && filteredData !== data) {\n const expanded = { ..._expandedState };\n const expandFilteredParents = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n expanded[node.value] = true;\n expandFilteredParents(node.children);\n }\n }\n };\n expandFilteredParents(filteredData);\n return expanded;\n }\n return _expandedState;\n }, [filteredData, _expandedState, _searchValue, data]);\n\n const flatNodes = useMemo(\n () => flattenTreeSelectData(filteredData, expandedForRender),\n [filteredData, expandedForRender]\n );\n\n const flatNodesRef = useRef(flatNodes);\n flatNodesRef.current = flatNodes;\n\n const nodeLookup = useMemo(() => {\n const lookup: Record<string, TreeNodeData> = {};\n const walk = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n lookup[node.value] = node;\n if (Array.isArray(node.children)) {\n walk(node.children);\n }\n }\n };\n walk(data);\n return lookup;\n }, [data]);\n\n const getNodeLabel = (nodeValue: string): string => {\n const node = nodeLookup[nodeValue];\n if (!node) {\n return nodeValue;\n }\n return typeof node.label === 'string' ? node.label : nodeValue;\n };\n\n const getStyles = useStyles<TreeSelectFactory>({\n name: 'TreeSelect',\n classes: {} as any,\n props: props as any,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<TreeSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const {\n styleProps,\n rest: { type, autoComplete, ...rest },\n } = extractStyleProps(others);\n\n const handleOptionSubmit = (val: string) => {\n if (mode === 'single') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const nextValue = allowDeselect && val === _value ? null : val;\n setValue(nextValue);\n combobox.closeDropdown();\n if (clearSearchOnChange) {\n handleSearchChange(nextValue ? getNodeLabel(nextValue) : '');\n }\n } else if (mode === 'multiple') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n const arr = (_value as string[]) || [];\n if (arr.includes(val)) {\n setValue(arr.filter((v: string) => v !== val));\n onRemove?.(val);\n } else if (arr.length < (maxValues ?? Infinity)) {\n setValue([...arr, val]);\n }\n } else if (mode === 'checkbox') {\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n const nodeChecked = checkStrictly\n ? internalChecked.includes(val)\n : isNodeChecked(val, data, internalChecked);\n\n let newInternalChecked: string[];\n if (checkStrictly) {\n newInternalChecked = nodeChecked\n ? internalChecked.filter((v) => v !== val)\n : [...internalChecked, val];\n } else {\n const childLeaves = getChildrenNodesValues(val, data);\n if (nodeChecked) {\n newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));\n } else {\n newInternalChecked = [...new Set([...internalChecked, ...childLeaves])];\n }\n }\n\n const newValue = checkedToValue(newInternalChecked, data, checkedStrategy!);\n if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {\n return;\n }\n setValue(newValue);\n\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n if (!_expandedState[val]) {\n toggleExpand(val);\n }\n }\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === ' ' && !searchable && isMulti) {\n event.preventDefault();\n combobox.toggleDropdown();\n }\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && isMulti) {\n const arr = (_value as string[]) || [];\n if (arr.length > 0) {\n const removed = arr[arr.length - 1];\n onRemove?.(removed);\n setValue(arr.slice(0, -1));\n }\n }\n\n if (!combobox.dropdownOpened) {\n return;\n }\n\n const index = combobox.getSelectedOptionIndex();\n if (index < 0 || index >= flatNodesRef.current.length) {\n return;\n }\n\n const currentNode = flatNodesRef.current[index];\n\n if (event.key === 'ArrowRight') {\n if (currentNode.hasChildren && !currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n if (currentNode.hasChildren && currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n } else if (currentNode.parent) {\n event.preventDefault();\n const parentIndex = flatNodesRef.current.findIndex(\n (n) => n.node.value === currentNode.parent\n );\n if (parentIndex >= 0) {\n combobox.selectOption(parentIndex);\n }\n }\n }\n };\n\n useEffect(() => {\n if (mode !== 'single' || !searchable) {\n return;\n }\n if (value === null) {\n handleSearchChange('');\n } else if (typeof value === 'string') {\n handleSearchChange(getNodeLabel(value));\n }\n }, [value]);\n\n const prevDropdownOpenedRef = useRef(false);\n useEffect(() => {\n if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {\n const targets = Array.isArray(_value) ? _value : [_value];\n const newExpanded = { ..._expandedState };\n let changed = false;\n for (const target of targets) {\n const ancestors = getAncestorsToNode(target as string, data);\n if (ancestors) {\n for (const a of ancestors) {\n if (!newExpanded[a]) {\n newExpanded[a] = true;\n changed = true;\n }\n }\n }\n }\n if (changed) {\n setExpandedState(newExpanded);\n requestAnimationFrame(() => {\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n });\n }\n }\n prevDropdownOpenedRef.current = combobox.dropdownOpened;\n });\n\n const clearButton = (\n <Combobox.ClearButton\n {...clearButtonProps}\n onClear={() => {\n onClear?.();\n setValue(isMulti ? [] : null);\n handleSearchChange('');\n }}\n />\n );\n\n const hasValue = isMulti\n ? Array.isArray(_value) && _value.length > 0\n : _value != null && _value !== '';\n const _clearable = clearable && hasValue && !disabled && !readOnly;\n\n const singleDisplayLabel = useMemo(() => {\n if (mode !== 'single' || !_value) {\n return '';\n }\n return getNodeLabel(_value as string);\n }, [mode, _value, nodeLookup]);\n\n const displayValues = useMemo(() => {\n if (!isMulti || !Array.isArray(_value)) {\n return [];\n }\n return _value as string[];\n }, [isMulti, _value]);\n\n const pillsListStyle =\n _clearable && isMulti\n ? { paddingInlineEnd: clearSectionOffset[size as string] ?? clearSectionOffset.sm }\n : undefined;\n\n const visiblePills =\n maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;\n\n const overflowCount =\n maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;\n\n const pills = visiblePills.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => {\n if (isCheckbox) {\n const childLeaves = checkStrictly ? [item] : getChildrenNodesValues(item, data);\n const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));\n setValue(checkedToValue(newInternal, data, checkedStrategy!));\n } else {\n setValue((_value as string[]).filter((v: string) => v !== item));\n }\n onRemove?.(item);\n }}\n unstyled={unstyled}\n disabled={disabled}\n {...getStyles('pill')}\n >\n {getNodeLabel(item)}\n </Pill>\n ));\n\n if (overflowCount > 0) {\n const overflowContent =\n typeof maxDisplayedValuesContent === 'function'\n ? maxDisplayedValuesContent(overflowCount)\n : maxDisplayedValuesContent || `+${overflowCount} more`;\n pills.push(\n <Pill key=\"__overflow\" unstyled={unstyled} disabled={disabled} {...getStyles('pill')}>\n {overflowContent}\n </Pill>\n );\n }\n\n const isEmpty = flatNodes.length === 0;\n\n const options = flatNodes.map((flatNode) => {\n const isSelected =\n mode === 'single'\n ? _value === flatNode.node.value\n : mode === 'multiple'\n ? ((_value as string[]) || []).includes(flatNode.node.value)\n : false;\n\n const nodeChecked = isCheckbox\n ? checkStrictly\n ? internalChecked.includes(flatNode.node.value)\n : isNodeChecked(flatNode.node.value, data, internalChecked)\n : false;\n\n const nodeIndeterminate =\n isCheckbox && !checkStrictly\n ? isNodeIndeterminate(flatNode.node.value, data, internalChecked)\n : false;\n\n return (\n <TreeSelectOption\n key={flatNode.node.value}\n node={flatNode.node}\n level={flatNode.level}\n expanded={flatNode.expanded}\n hasChildren={flatNode.hasChildren}\n selected={isSelected}\n checked={nodeChecked}\n indeterminate={nodeIndeterminate}\n showCheckbox={isCheckbox}\n isLastChild={flatNode.isLastChild}\n lineGuides={flatNode.lineGuides}\n withLines={!!withLines}\n onToggleExpand={toggleExpand}\n renderNode={renderNode}\n />\n );\n });\n\n const dropdown = (\n <Combobox.Dropdown hidden={readOnly || disabled}>\n <Combobox.Options className={classes.optionsWrapper}>\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n {...scrollAreaProps}\n >\n {options}\n </ScrollArea.Autosize>\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n\n if (isMulti) {\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"TreeSelect\"\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n withErrorStyles={withErrorStyles}\n __stylesApiProps={{\n ...props,\n rightSectionPointerEvents: rightSectionPointerEvents || 'none',\n multiline: true,\n }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n data-expanded={combobox.dropdownOpened || undefined}\n id={_id}\n required={required}\n mod={mod}\n attributes={attributes}\n >\n <Pill.Group\n attributes={attributes}\n disabled={disabled}\n unstyled={unstyled}\n {...getStyles('pillsList', { style: pillsListStyle })}\n >\n {pills}\n <Combobox.EventsTarget autoComplete={autoComplete}>\n <PillsInput.Field\n {...rest}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n handleSearchChange('');\n }}\n onKeyDown={handleKeyDown}\n value={_searchValue}\n onChange={(event) => {\n handleSearchChange(event.currentTarget.value);\n if (searchable) {\n combobox.openDropdown();\n }\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n name={name}\n valuesDivider={hiddenInputValuesDivider}\n value={_value}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n }\n\n return (\n <>\n <Combobox\n store={combobox}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.Target targetType={searchable ? 'input' : 'button'} autoComplete={autoComplete}>\n <InputBase\n id={_id}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n {...rest}\n {...styleProps}\n size={size}\n __staticSelector=\"TreeSelect\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={searchable ? _searchValue : singleDisplayLabel}\n onChange={(event) => {\n handleSearchChange(event.currentTarget.value);\n combobox.openDropdown();\n }}\n onFocus={(event) => {\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n onFocus?.(event);\n }}\n onBlur={(event) => {\n if (searchable) {\n combobox.closeDropdown();\n }\n handleSearchChange(_value ? getNodeLabel(_value as string) : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n attributes={attributes}\n className={className}\n style={style}\n variant={variant}\n radius={radius}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n withErrorStyles={withErrorStyles}\n placeholder={placeholder}\n required={required}\n mod={mod}\n />\n </Combobox.Target>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n value={_value}\n name={name}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nTreeSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nTreeSelect.displayName = '@mantine/core/TreeSelect';\n"],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
//#region packages/@mantine/core/src/components/TreeSelect/TreeSelect.module.css
|
|
3
|
-
var TreeSelect_module_default = {
|
|
4
|
-
"optionsWrapper": "m_529d33e8",
|
|
5
|
-
"option": "m_28bb748",
|
|
6
|
-
"expandIcon": "m_aa3e3f86",
|
|
7
|
-
"checkIcon": "m_eaa4cdee",
|
|
8
|
-
"label": "m_ffe3a9c1",
|
|
9
|
-
"guideLine": "m_57207d5d",
|
|
10
|
-
"branchVertical": "m_41b9db0b",
|
|
11
|
-
"branchHorizontal": "m_1246e79"
|
|
12
|
-
};
|
|
13
|
-
//#endregion
|
|
14
|
-
exports.default = TreeSelect_module_default;
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=TreeSelect.module.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeSelect.module.cjs","names":[],"sources":["../../../src/components/TreeSelect/TreeSelect.module.css"],"sourcesContent":[".optionsWrapper {\n --ts-level-offset: 20px;\n --ts-line-width: rem(1px);\n --ts-line-color: var(--mantine-color-default-border);\n --ts-option-padding-y: 4px;\n --ts-option-padding-x: 8px;\n}\n\n.option {\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n padding: var(--ts-option-padding-y) var(--ts-option-padding-x);\n padding-inline-start: var(--ts-option-padding-x);\n}\n\n.expandIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n --_ts-expand-icon-size: calc(1.45 * var(--combobox-option-fz, var(--mantine-font-size-sm)));\n width: var(--_ts-expand-icon-size);\n min-width: var(--_ts-expand-icon-size);\n height: var(--_ts-expand-icon-size);\n border-radius: var(--mantine-radius-sm);\n cursor: pointer;\n color: var(--mantine-color-dimmed);\n transform: rotate(-90deg);\n\n :where([data-combobox-selected]) & {\n color: var(--mantine-color-white);\n }\n\n @mixin where-rtl {\n transform: rotate(90deg);\n }\n\n &:where([data-expanded]) {\n transform: rotate(0deg);\n }\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n}\n\n.checkIcon {\n opacity: 0.4;\n width: 0.8em;\n min-width: 0.8em;\n height: 0.8em;\n margin-inline-start: auto;\n\n :where([data-combobox-selected]) & {\n opacity: 1;\n }\n}\n\n.label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Tree lines */\n.guideLine {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n border-inline-start: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n}\n\n.branchVertical {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n border-inline-start: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n\n &:where([data-last]) {\n bottom: auto;\n height: 50%;\n }\n}\n\n.branchHorizontal {\n position: absolute;\n top: 50%;\n height: 0;\n border-top: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n}\n"],"mappings":""}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
-
const require_AccordionChevron = require("../Accordion/AccordionChevron.cjs");
|
|
4
|
-
const require_Combobox = require("../Combobox/Combobox.cjs");
|
|
5
|
-
const require_CheckIcon = require("../Checkbox/CheckIcon.cjs");
|
|
6
|
-
const require_CheckboxIndicator = require("../Checkbox/CheckboxIndicator/CheckboxIndicator.cjs");
|
|
7
|
-
const require_TreeSelect_module = require("./TreeSelect.module.cjs");
|
|
8
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
-
//#region packages/@mantine/core/src/components/TreeSelect/TreeSelectOption.tsx
|
|
10
|
-
const LEVEL_OFFSET = 20;
|
|
11
|
-
const BASE_PADDING = 8;
|
|
12
|
-
const LINE_CONTENT_GAP = 5;
|
|
13
|
-
const OPTION_GAP = 6;
|
|
14
|
-
function TreeSelectOption({ node, level, expanded, hasChildren, selected, checked, indeterminate, showCheckbox, isLastChild, lineGuides, withLines, onToggleExpand, renderNode }) {
|
|
15
|
-
const indentPx = (level - 1) * LEVEL_OFFSET;
|
|
16
|
-
const handleExpandClick = (event) => {
|
|
17
|
-
event.stopPropagation();
|
|
18
|
-
event.preventDefault();
|
|
19
|
-
onToggleExpand(node.value);
|
|
20
|
-
};
|
|
21
|
-
const handleExpandMouseDown = (event) => {
|
|
22
|
-
event.preventDefault();
|
|
23
|
-
};
|
|
24
|
-
const customContent = renderNode ? renderNode({
|
|
25
|
-
node,
|
|
26
|
-
level,
|
|
27
|
-
expanded,
|
|
28
|
-
hasChildren,
|
|
29
|
-
selected,
|
|
30
|
-
checked,
|
|
31
|
-
indeterminate
|
|
32
|
-
}) : null;
|
|
33
|
-
const lineElements = withLines && level > 1 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
34
|
-
lineGuides.map((show, g) => show ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
35
|
-
className: require_TreeSelect_module.default.guideLine,
|
|
36
|
-
style: { insetInlineStart: BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }
|
|
37
|
-
}, `g${g}`) : null),
|
|
38
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
39
|
-
className: require_TreeSelect_module.default.branchVertical,
|
|
40
|
-
"data-last": isLastChild || void 0,
|
|
41
|
-
style: { insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }
|
|
42
|
-
}),
|
|
43
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
44
|
-
className: require_TreeSelect_module.default.branchHorizontal,
|
|
45
|
-
style: {
|
|
46
|
-
insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,
|
|
47
|
-
width: LEVEL_OFFSET / 2
|
|
48
|
-
}
|
|
49
|
-
})
|
|
50
|
-
] }) : null;
|
|
51
|
-
const isActive = selected || checked;
|
|
52
|
-
const showCheckMark = !showCheckbox && isActive;
|
|
53
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Combobox.Combobox.Option, {
|
|
54
|
-
value: node.value,
|
|
55
|
-
disabled: node.nodeProps?.disabled,
|
|
56
|
-
active: isActive,
|
|
57
|
-
className: require_TreeSelect_module.default.option,
|
|
58
|
-
style: { paddingInlineStart: BASE_PADDING + indentPx + (withLines && level > 1 ? LINE_CONTENT_GAP : 0) + (!hasChildren ? OPTION_GAP : 0) },
|
|
59
|
-
"aria-selected": isActive,
|
|
60
|
-
children: [lineElements, customContent || /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
61
|
-
hasChildren && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
62
|
-
className: require_TreeSelect_module.default.expandIcon,
|
|
63
|
-
"data-expanded": expanded || void 0,
|
|
64
|
-
onClick: handleExpandClick,
|
|
65
|
-
onKeyDown: (e) => {
|
|
66
|
-
if (e.key === "Enter") handleExpandClick(e);
|
|
67
|
-
},
|
|
68
|
-
onMouseDown: handleExpandMouseDown,
|
|
69
|
-
role: "button",
|
|
70
|
-
tabIndex: -1,
|
|
71
|
-
"aria-label": expanded ? "Collapse" : "Expand",
|
|
72
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AccordionChevron.AccordionChevron, { size: "80%" })
|
|
73
|
-
}),
|
|
74
|
-
showCheckbox && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CheckboxIndicator.CheckboxIndicator, {
|
|
75
|
-
checked: checked || indeterminate,
|
|
76
|
-
indeterminate: !checked && indeterminate,
|
|
77
|
-
size: "18px"
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
80
|
-
className: require_TreeSelect_module.default.label,
|
|
81
|
-
children: node.label
|
|
82
|
-
}),
|
|
83
|
-
showCheckMark && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CheckIcon.CheckIcon, { className: require_TreeSelect_module.default.checkIcon })
|
|
84
|
-
] })]
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
TreeSelectOption.displayName = "@mantine/core/TreeSelectOption";
|
|
88
|
-
//#endregion
|
|
89
|
-
exports.TreeSelectOption = TreeSelectOption;
|
|
90
|
-
|
|
91
|
-
//# sourceMappingURL=TreeSelectOption.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeSelectOption.cjs","names":["classes","Combobox","AccordionChevron","CheckboxIndicator","CheckIcon"],"sources":["../../../src/components/TreeSelect/TreeSelectOption.tsx"],"sourcesContent":["import { AccordionChevron } from '../Accordion';\nimport { CheckboxIndicator } from '../Checkbox/CheckboxIndicator/CheckboxIndicator';\nimport { CheckIcon } from '../Checkbox/CheckIcon';\nimport { Combobox } from '../Combobox';\nimport type { TreeNodeData } from '../Tree';\nimport classes from './TreeSelect.module.css';\n\nconst LEVEL_OFFSET = 20;\nconst BASE_PADDING = 8;\nconst LINE_CONTENT_GAP = 5;\nconst OPTION_GAP = 6;\n\nexport interface TreeSelectOptionProps {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n showCheckbox: boolean;\n isLastChild: boolean;\n lineGuides: boolean[];\n withLines: boolean;\n onToggleExpand: (value: string) => void;\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n}\n\nexport interface TreeSelectRenderNodePayload {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n}\n\nexport function TreeSelectOption({\n node,\n level,\n expanded,\n hasChildren,\n selected,\n checked,\n indeterminate,\n showCheckbox,\n isLastChild,\n lineGuides,\n withLines,\n onToggleExpand,\n renderNode,\n}: TreeSelectOptionProps) {\n const indentPx = (level - 1) * LEVEL_OFFSET;\n\n const handleExpandClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n onToggleExpand(node.value);\n };\n\n const handleExpandMouseDown = (event: React.MouseEvent) => {\n event.preventDefault();\n };\n\n const customContent = renderNode\n ? renderNode({ node, level, expanded, hasChildren, selected, checked, indeterminate })\n : null;\n\n const lineElements =\n withLines && level > 1 ? (\n <>\n {lineGuides.map((show, g) =>\n show ? (\n <span\n key={`g${g}`}\n className={classes.guideLine}\n style={{ insetInlineStart: BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }}\n />\n ) : null\n )}\n <span\n className={classes.branchVertical}\n data-last={isLastChild || undefined}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n }}\n />\n <span\n className={classes.branchHorizontal}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n width: LEVEL_OFFSET / 2,\n }}\n />\n </>\n ) : null;\n\n const isActive = selected || checked;\n const showCheckMark = !showCheckbox && isActive;\n\n return (\n <Combobox.Option\n value={node.value}\n disabled={node.nodeProps?.disabled}\n active={isActive}\n className={classes.option}\n style={{\n paddingInlineStart:\n BASE_PADDING +\n indentPx +\n (withLines && level > 1 ? LINE_CONTENT_GAP : 0) +\n (!hasChildren ? OPTION_GAP : 0),\n }}\n aria-selected={isActive}\n >\n {lineElements}\n {customContent || (\n <>\n {hasChildren && (\n <span\n className={classes.expandIcon}\n data-expanded={expanded || undefined}\n onClick={handleExpandClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleExpandClick(e as any);\n }\n }}\n onMouseDown={handleExpandMouseDown}\n role=\"button\"\n tabIndex={-1}\n aria-label={expanded ? 'Collapse' : 'Expand'}\n >\n <AccordionChevron size=\"80%\" />\n </span>\n )}\n {showCheckbox && (\n <CheckboxIndicator\n checked={checked || indeterminate}\n indeterminate={!checked && indeterminate}\n size=\"18px\"\n />\n )}\n <span className={classes.label}>{node.label}</span>\n {showCheckMark && <CheckIcon className={classes.checkIcon} />}\n </>\n )}\n </Combobox.Option>\n );\n}\n\nTreeSelectOption.displayName = '@mantine/core/TreeSelectOption';\n"],"mappings":";;;;;;;;;AAOA,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,mBAAmB;AACzB,MAAM,aAAa;AA4BnB,SAAgB,iBAAiB,EAC/B,MACA,OACA,UACA,aACA,UACA,SACA,eACA,cACA,aACA,YACA,WACA,gBACA,cACwB;CACxB,MAAM,YAAY,QAAQ,KAAK;CAE/B,MAAM,qBAAqB,UAA4B;AACrD,QAAM,iBAAiB;AACvB,QAAM,gBAAgB;AACtB,iBAAe,KAAK,MAAM;;CAG5B,MAAM,yBAAyB,UAA4B;AACzD,QAAM,gBAAgB;;CAGxB,MAAM,gBAAgB,aAClB,WAAW;EAAE;EAAM;EAAO;EAAU;EAAa;EAAU;EAAS;EAAe,CAAC,GACpF;CAEJ,MAAM,eACJ,aAAa,QAAQ,IACnB,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;EACG,WAAW,KAAK,MAAM,MACrB,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;GAEE,WAAWA,0BAAAA,QAAQ;GACnB,OAAO,EAAE,kBAAkB,gBAAgB,IAAI,KAAK,eAAe,eAAe,GAAG;GACrF,EAHK,IAAI,IAGT,GACA,KACL;EACD,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,WAAWA,0BAAAA,QAAQ;GACnB,aAAW,eAAe,KAAA;GAC1B,OAAO,EACL,kBAAkB,gBAAgB,QAAQ,KAAK,eAAe,eAAe,GAC9E;GACD,CAAA;EACF,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,WAAWA,0BAAAA,QAAQ;GACnB,OAAO;IACL,kBAAkB,gBAAgB,QAAQ,KAAK,eAAe,eAAe;IAC7E,OAAO,eAAe;IACvB;GACD,CAAA;EACD,EAAA,CAAA,GACD;CAEN,MAAM,WAAW,YAAY;CAC7B,MAAM,gBAAgB,CAAC,gBAAgB;AAEvC,QACE,iBAAA,GAAA,kBAAA,MAACC,iBAAAA,SAAS,QAAV;EACE,OAAO,KAAK;EACZ,UAAU,KAAK,WAAW;EAC1B,QAAQ;EACR,WAAWD,0BAAAA,QAAQ;EACnB,OAAO,EACL,oBACE,eACA,YACC,aAAa,QAAQ,IAAI,mBAAmB,MAC5C,CAAC,cAAc,aAAa,IAChC;EACD,iBAAe;YAZjB,CAcG,cACA,iBACC,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;GACG,eACC,iBAAA,GAAA,kBAAA,KAAC,QAAD;IACE,WAAWA,0BAAAA,QAAQ;IACnB,iBAAe,YAAY,KAAA;IAC3B,SAAS;IACT,YAAY,MAAM;AAChB,SAAI,EAAE,QAAQ,QACZ,mBAAkB,EAAS;;IAG/B,aAAa;IACb,MAAK;IACL,UAAU;IACV,cAAY,WAAW,aAAa;cAEpC,iBAAA,GAAA,kBAAA,KAACE,yBAAAA,kBAAD,EAAkB,MAAK,OAAQ,CAAA;IAC1B,CAAA;GAER,gBACC,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,mBAAD;IACE,SAAS,WAAW;IACpB,eAAe,CAAC,WAAW;IAC3B,MAAK;IACL,CAAA;GAEJ,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAAM,WAAWH,0BAAAA,QAAQ;cAAQ,KAAK;IAAa,CAAA;GAClD,iBAAiB,iBAAA,GAAA,kBAAA,KAACI,kBAAAA,WAAD,EAAW,WAAWJ,0BAAAA,QAAQ,WAAa,CAAA;GAC5D,EAAA,CAAA,CAEW;;;AAItB,iBAAiB,cAAc"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
//#region packages/@mantine/core/src/components/TreeSelect/flatten-tree-select-data.ts
|
|
3
|
-
function flattenTo(acc, data, expandedState, parent, level, parentGuides) {
|
|
4
|
-
for (let i = 0; i < data.length; i++) {
|
|
5
|
-
const node = data[i];
|
|
6
|
-
const isLast = i === data.length - 1;
|
|
7
|
-
const hasLoadedChildren = Array.isArray(node.children);
|
|
8
|
-
const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;
|
|
9
|
-
const hasChildren = hasLoadedChildren || hasAsyncChildren;
|
|
10
|
-
const expanded = expandedState[node.value] || false;
|
|
11
|
-
acc.push({
|
|
12
|
-
node,
|
|
13
|
-
level,
|
|
14
|
-
parent,
|
|
15
|
-
hasChildren,
|
|
16
|
-
expanded,
|
|
17
|
-
isLastChild: isLast,
|
|
18
|
-
lineGuides: parentGuides
|
|
19
|
-
});
|
|
20
|
-
if (expanded && hasLoadedChildren) {
|
|
21
|
-
const childGuides = level >= 2 ? [...parentGuides, !isLast] : [];
|
|
22
|
-
flattenTo(acc, node.children, expandedState, node.value, level + 1, childGuides);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function flattenTreeSelectData(data, expandedState) {
|
|
27
|
-
const result = [];
|
|
28
|
-
flattenTo(result, data, expandedState, null, 1, []);
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
exports.flattenTreeSelectData = flattenTreeSelectData;
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=flatten-tree-select-data.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-tree-select-data.cjs","names":[],"sources":["../../../src/components/TreeSelect/flatten-tree-select-data.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport type { TreeExpandedState } from '../Tree/use-tree';\n\nexport interface TreeSelectFlatNode {\n node: TreeNodeData;\n level: number;\n parent: string | null;\n hasChildren: boolean;\n expanded: boolean;\n isLastChild: boolean;\n lineGuides: boolean[];\n}\n\nfunction flattenTo(\n acc: TreeSelectFlatNode[],\n data: TreeNodeData[],\n expandedState: TreeExpandedState,\n parent: string | null,\n level: number,\n parentGuides: boolean[]\n): void {\n for (let i = 0; i < data.length; i++) {\n const node = data[i];\n const isLast = i === data.length - 1;\n const hasLoadedChildren = Array.isArray(node.children);\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;\n const hasChildren = hasLoadedChildren || hasAsyncChildren;\n const expanded = expandedState[node.value] || false;\n\n acc.push({\n node,\n level,\n parent,\n hasChildren,\n expanded,\n isLastChild: isLast,\n lineGuides: parentGuides,\n });\n\n if (expanded && hasLoadedChildren) {\n const childGuides = level >= 2 ? [...parentGuides, !isLast] : [];\n flattenTo(acc, node.children!, expandedState, node.value, level + 1, childGuides);\n }\n }\n}\n\nexport function flattenTreeSelectData(\n data: TreeNodeData[],\n expandedState: TreeExpandedState\n): TreeSelectFlatNode[] {\n const result: TreeSelectFlatNode[] = [];\n flattenTo(result, data, expandedState, null, 1, []);\n return result;\n}\n"],"mappings":";;AAaA,SAAS,UACP,KACA,MACA,eACA,QACA,OACA,cACM;AACN,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;EAClB,MAAM,SAAS,MAAM,KAAK,SAAS;EACnC,MAAM,oBAAoB,MAAM,QAAQ,KAAK,SAAS;EACtD,MAAM,mBAAmB,CAAC,CAAC,KAAK,eAAe,CAAC;EAChD,MAAM,cAAc,qBAAqB;EACzC,MAAM,WAAW,cAAc,KAAK,UAAU;AAE9C,MAAI,KAAK;GACP;GACA;GACA;GACA;GACA;GACA,aAAa;GACb,YAAY;GACb,CAAC;AAEF,MAAI,YAAY,mBAAmB;GACjC,MAAM,cAAc,SAAS,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,GAAG,EAAE;AAChE,aAAU,KAAK,KAAK,UAAW,eAAe,KAAK,OAAO,QAAQ,GAAG,YAAY;;;;AAKvF,SAAgB,sBACd,MACA,eACsB;CACtB,MAAM,SAA+B,EAAE;AACvC,WAAU,QAAQ,MAAM,eAAe,MAAM,GAAG,EAAE,CAAC;AACnD,QAAO"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
const require_get_children_nodes_values = require("../Tree/get-children-nodes-values/get-children-nodes-values.cjs");
|
|
3
|
-
const require_get_all_checked_nodes = require("../Tree/get-all-checked-nodes/get-all-checked-nodes.cjs");
|
|
4
|
-
const require_is_node_checked = require("../Tree/is-node-checked/is-node-checked.cjs");
|
|
5
|
-
//#region packages/@mantine/core/src/components/TreeSelect/get-checked-values-by-strategy.ts
|
|
6
|
-
function expandToLeafChecked(value, data) {
|
|
7
|
-
const leaves = /* @__PURE__ */ new Set();
|
|
8
|
-
for (const v of value) for (const leaf of require_get_children_nodes_values.getChildrenNodesValues(v, data)) leaves.add(leaf);
|
|
9
|
-
return Array.from(leaves);
|
|
10
|
-
}
|
|
11
|
-
function getTopmostCheckedParents(data, checkedState) {
|
|
12
|
-
const result = [];
|
|
13
|
-
for (const node of data) if (require_is_node_checked.isNodeChecked(node.value, data, checkedState)) result.push(node.value);
|
|
14
|
-
else if (Array.isArray(node.children) && node.children.length > 0) result.push(...getTopmostCheckedParents(node.children, checkedState));
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
function checkedToValue(checkedState, data, strategy) {
|
|
18
|
-
if (checkedState.length === 0) return [];
|
|
19
|
-
switch (strategy) {
|
|
20
|
-
case "child": return checkedState;
|
|
21
|
-
case "all": return require_get_all_checked_nodes.getAllCheckedNodes(data, checkedState).result.filter((n) => n.checked).map((n) => n.value);
|
|
22
|
-
case "parent": return getTopmostCheckedParents(data, checkedState);
|
|
23
|
-
default: return checkedState;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
|
-
exports.checkedToValue = checkedToValue;
|
|
28
|
-
exports.expandToLeafChecked = expandToLeafChecked;
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=get-checked-values-by-strategy.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-checked-values-by-strategy.cjs","names":["getChildrenNodesValues","isNodeChecked","getAllCheckedNodes"],"sources":["../../../src/components/TreeSelect/get-checked-values-by-strategy.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport { getAllCheckedNodes } from '../Tree/get-all-checked-nodes/get-all-checked-nodes';\nimport { getChildrenNodesValues } from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\n\nexport type CheckedStrategy = 'all' | 'parent' | 'child';\n\nexport function expandToLeafChecked(value: string[], data: TreeNodeData[]): string[] {\n const leaves = new Set<string>();\n for (const v of value) {\n for (const leaf of getChildrenNodesValues(v, data)) {\n leaves.add(leaf);\n }\n }\n return Array.from(leaves);\n}\n\nfunction getTopmostCheckedParents(data: TreeNodeData[], checkedState: string[]): string[] {\n const result: string[] = [];\n for (const node of data) {\n if (isNodeChecked(node.value, data, checkedState)) {\n result.push(node.value);\n } else if (Array.isArray(node.children) && node.children.length > 0) {\n result.push(...getTopmostCheckedParents(node.children, checkedState));\n }\n }\n return result;\n}\n\nexport function checkedToValue(\n checkedState: string[],\n data: TreeNodeData[],\n strategy: CheckedStrategy\n): string[] {\n if (checkedState.length === 0) {\n return [];\n }\n\n switch (strategy) {\n case 'child':\n return checkedState;\n case 'all':\n return getAllCheckedNodes(data, checkedState)\n .result.filter((n) => n.checked)\n .map((n) => n.value);\n case 'parent':\n return getTopmostCheckedParents(data, checkedState);\n default:\n return checkedState;\n }\n}\n"],"mappings":";;;;;AAOA,SAAgB,oBAAoB,OAAiB,MAAgC;CACnF,MAAM,yBAAS,IAAI,KAAa;AAChC,MAAK,MAAM,KAAK,MACd,MAAK,MAAM,QAAQA,kCAAAA,uBAAuB,GAAG,KAAK,CAChD,QAAO,IAAI,KAAK;AAGpB,QAAO,MAAM,KAAK,OAAO;;AAG3B,SAAS,yBAAyB,MAAsB,cAAkC;CACxF,MAAM,SAAmB,EAAE;AAC3B,MAAK,MAAM,QAAQ,KACjB,KAAIC,wBAAAA,cAAc,KAAK,OAAO,MAAM,aAAa,CAC/C,QAAO,KAAK,KAAK,MAAM;UACd,MAAM,QAAQ,KAAK,SAAS,IAAI,KAAK,SAAS,SAAS,EAChE,QAAO,KAAK,GAAG,yBAAyB,KAAK,UAAU,aAAa,CAAC;AAGzE,QAAO;;AAGT,SAAgB,eACd,cACA,MACA,UACU;AACV,KAAI,aAAa,WAAW,EAC1B,QAAO,EAAE;AAGX,SAAQ,UAAR;EACE,KAAK,QACH,QAAO;EACT,KAAK,MACH,QAAOC,8BAAAA,mBAAmB,MAAM,aAAa,CAC1C,OAAO,QAAQ,MAAM,EAAE,QAAQ,CAC/B,KAAK,MAAM,EAAE,MAAM;EACxB,KAAK,SACH,QAAO,yBAAyB,MAAM,aAAa;EACrD,QACE,QAAO"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useProps } from "../../core/MantineProvider/use-props/use-props.mjs";
|
|
3
|
-
import { factory } from "../../core/factory/factory.mjs";
|
|
4
|
-
import { InputBase } from "../InputBase/InputBase.mjs";
|
|
5
|
-
import { useMaskInputProps } from "./use-mask-input-props.mjs";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
//#region packages/@mantine/core/src/components/MaskInput/MaskInput.tsx
|
|
8
|
-
const defaultProps = {};
|
|
9
|
-
const MaskInput = factory((props) => {
|
|
10
|
-
const { maskRef, elementProps } = useMaskInputProps(useProps("MaskInput", defaultProps, props));
|
|
11
|
-
return /* @__PURE__ */ jsx(InputBase, {
|
|
12
|
-
component: "input",
|
|
13
|
-
ref: maskRef,
|
|
14
|
-
...elementProps,
|
|
15
|
-
__staticSelector: "MaskInput"
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
MaskInput.classes = InputBase.classes;
|
|
19
|
-
MaskInput.displayName = "@mantine/core/MaskInput";
|
|
20
|
-
//#endregion
|
|
21
|
-
export { MaskInput };
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=MaskInput.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MaskInput.mjs","names":[],"sources":["../../../src/components/MaskInput/MaskInput.tsx"],"sourcesContent":["import { BoxProps, ElementProps, factory, Factory, StylesApiProps, useProps } from '../../core';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { useMaskInputProps } from './use-mask-input-props';\n\nexport interface MaskInputProps\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<MaskInputFactory>,\n ElementProps<'input', 'size'> {\n /** Mask pattern string or array of string literals and RegExp objects */\n mask: string | Array<string | RegExp>;\n\n /** Override or extend the default token map */\n tokens?: Record<string, RegExp>;\n\n /** Called before masking on each keystroke, can return overrides for mask options */\n modify?: (\n value: string\n ) => Partial<Pick<MaskInputProps, 'mask' | 'tokens' | 'slotChar' | 'separate'>> | undefined;\n\n /** When true, raw and display values are decoupled */\n separate?: boolean;\n\n /** Character displayed in unfilled slots, `\"_\"` by default */\n slotChar?: string | null;\n\n /** Show mask pattern even when field is empty and unfocused */\n alwaysShowMask?: boolean;\n\n /** Show mask placeholder on focus, `true` by default */\n showMaskOnFocus?: boolean;\n\n /** Transform each character before validation and insertion */\n transform?: (char: string) => string;\n\n /** Clear value on blur when mask is incomplete, `false` by default */\n autoClear?: boolean;\n\n /** Called on every change with raw and masked values */\n onChangeRaw?: (rawValue: string, maskedValue: string) => void;\n\n /** Called when all required mask slots are filled */\n onComplete?: (maskedValue: string, rawValue: string) => void;\n\n /** Escape hatch for advanced cursor/value manipulation */\n beforeMaskedStateChange?: (states: {\n previousState: { value: string; selection: { start: number; end: number } | null };\n currentState: { value: string; selection: { start: number; end: number } | null };\n nextState: { value: string; selection: { start: number; end: number } | null };\n }) => { value: string; selection: { start: number; end: number } | null };\n}\n\nexport type MaskInputFactory = Factory<{\n props: MaskInputProps;\n variant: InputVariant;\n ref: HTMLInputElement;\n stylesNames: __InputStylesNames;\n}>;\n\nconst defaultProps = {} satisfies Partial<MaskInputProps>;\n\nexport const MaskInput = factory<MaskInputFactory>((props) => {\n const _props = useProps('MaskInput', defaultProps, props);\n const { maskRef, elementProps } = useMaskInputProps(_props);\n\n return (\n <InputBase\n component=\"input\"\n ref={maskRef}\n {...(elementProps as any)}\n __staticSelector=\"MaskInput\"\n />\n );\n});\n\nMaskInput.classes = InputBase.classes;\nMaskInput.displayName = '@mantine/core/MaskInput';\n"],"mappings":";;;;;;;AA6DA,MAAM,eAAe,EAAE;AAEvB,MAAa,YAAY,SAA2B,UAAU;CAE5D,MAAM,EAAE,SAAS,iBAAiB,kBADnB,SAAS,aAAa,cAAc,MAAM,CACE;AAE3D,QACE,oBAAC,WAAD;EACE,WAAU;EACV,KAAK;EACL,GAAK;EACL,kBAAiB;EACjB,CAAA;EAEJ;AAEF,UAAU,UAAU,UAAU;AAC9B,UAAU,cAAc"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useMask, useMergedRef } from "@mantine/hooks";
|
|
3
|
-
//#region packages/@mantine/core/src/components/MaskInput/use-mask-input-props.ts
|
|
4
|
-
function useMaskInputProps(props) {
|
|
5
|
-
const { mask, tokens, modify, separate, slotChar, alwaysShowMask, showMaskOnFocus, transform, autoClear, onChangeRaw, onComplete, beforeMaskedStateChange, ref, ...elementProps } = props;
|
|
6
|
-
const { ref: maskCallbackRef } = useMask({
|
|
7
|
-
mask,
|
|
8
|
-
tokens,
|
|
9
|
-
modify,
|
|
10
|
-
separate,
|
|
11
|
-
slotChar,
|
|
12
|
-
alwaysShowMask,
|
|
13
|
-
showMaskOnFocus,
|
|
14
|
-
transform,
|
|
15
|
-
autoClear,
|
|
16
|
-
onChangeRaw,
|
|
17
|
-
onComplete,
|
|
18
|
-
beforeMaskedStateChange
|
|
19
|
-
});
|
|
20
|
-
return {
|
|
21
|
-
maskRef: useMergedRef(ref, maskCallbackRef),
|
|
22
|
-
elementProps
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
|
-
export { useMaskInputProps };
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=use-mask-input-props.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-mask-input-props.mjs","names":[],"sources":["../../../src/components/MaskInput/use-mask-input-props.ts"],"sourcesContent":["import { useMask, useMergedRef } from '@mantine/hooks';\nimport type { MaskInputProps } from './MaskInput';\n\nexport function useMaskInputProps(props: MaskInputProps & { ref?: React.Ref<HTMLInputElement> }) {\n const {\n mask,\n tokens,\n modify,\n separate,\n slotChar,\n alwaysShowMask,\n showMaskOnFocus,\n transform,\n autoClear,\n onChangeRaw,\n onComplete,\n beforeMaskedStateChange,\n ref,\n ...elementProps\n } = props;\n\n const { ref: maskCallbackRef } = useMask({\n mask,\n tokens,\n modify,\n separate,\n slotChar,\n alwaysShowMask,\n showMaskOnFocus,\n transform,\n autoClear,\n onChangeRaw,\n onComplete,\n beforeMaskedStateChange,\n });\n\n const maskRef = useMergedRef(ref, maskCallbackRef);\n\n return { maskRef, elementProps };\n}\n"],"mappings":";;;AAGA,SAAgB,kBAAkB,OAA+D;CAC/F,MAAM,EACJ,MACA,QACA,QACA,UACA,UACA,gBACA,iBACA,WACA,WACA,aACA,YACA,yBACA,KACA,GAAG,iBACD;CAEJ,MAAM,EAAE,KAAK,oBAAoB,QAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAIF,QAAO;EAAE,SAFO,aAAa,KAAK,gBAAgB;EAEhC;EAAc"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useProps } from "../../../core/MantineProvider/use-props/use-props.mjs";
|
|
3
|
-
import { factory } from "../../../core/factory/factory.mjs";
|
|
4
|
-
import { Box } from "../../../core/Box/Box.mjs";
|
|
5
|
-
import { usePaginationContext } from "../Pagination.context.mjs";
|
|
6
|
-
import Pagination_module_default from "../Pagination.module.mjs";
|
|
7
|
-
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
//#region packages/@mantine/core/src/components/Pagination/PaginationLabel/PaginationLabel.tsx
|
|
9
|
-
const defaultProps = { formatLabel: ({ page, totalPages }) => `Page ${page} of ${totalPages}` };
|
|
10
|
-
const PaginationLabel = factory((_props) => {
|
|
11
|
-
const { classNames, className, style, styles, vars, formatLabel, ...others } = useProps("PaginationLabel", defaultProps, _props);
|
|
12
|
-
const ctx = usePaginationContext();
|
|
13
|
-
return /* @__PURE__ */ jsx(Box, {
|
|
14
|
-
...ctx.getStyles("label", {
|
|
15
|
-
className,
|
|
16
|
-
style,
|
|
17
|
-
styles,
|
|
18
|
-
classNames
|
|
19
|
-
}),
|
|
20
|
-
...others,
|
|
21
|
-
children: formatLabel({
|
|
22
|
-
page: ctx.active,
|
|
23
|
-
totalPages: ctx.total
|
|
24
|
-
})
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
PaginationLabel.classes = Pagination_module_default;
|
|
28
|
-
PaginationLabel.displayName = "@mantine/core/PaginationLabel";
|
|
29
|
-
//#endregion
|
|
30
|
-
export { PaginationLabel };
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=PaginationLabel.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationLabel.mjs","names":["classes"],"sources":["../../../../src/components/Pagination/PaginationLabel/PaginationLabel.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { usePaginationContext } from '../Pagination.context';\nimport classes from '../Pagination.module.css';\n\nexport type PaginationFormatLabel = (input: { page: number; totalPages: number }) => string;\nexport type PaginationLabelStylesNames = 'label';\n\nexport interface PaginationLabelProps\n extends BoxProps, CompoundStylesApiProps<PaginationLabelFactory>, ElementProps<'div'> {\n /** Function to format the label text */\n formatLabel?: PaginationFormatLabel;\n}\n\nexport type PaginationLabelFactory = Factory<{\n props: PaginationLabelProps;\n ref: HTMLDivElement;\n stylesNames: PaginationLabelStylesNames;\n compound: true;\n}>;\n\nconst defaultProps = {\n formatLabel: ({ page, totalPages }) => `Page ${page} of ${totalPages}`,\n} satisfies Partial<PaginationLabelProps>;\n\nexport const PaginationLabel = factory<PaginationLabelFactory>((_props) => {\n const props = useProps('PaginationLabel', defaultProps, _props);\n const { classNames, className, style, styles, vars, formatLabel, ...others } = props;\n const ctx = usePaginationContext();\n\n return (\n <Box {...ctx.getStyles('label', { className, style, styles, classNames })} {...others}>\n {formatLabel({ page: ctx.active, totalPages: ctx.total })}\n </Box>\n );\n});\n\nPaginationLabel.classes = classes;\nPaginationLabel.displayName = '@mantine/core/PaginationLabel';\n"],"mappings":";;;;;;;;AA4BA,MAAM,eAAe,EACnB,cAAc,EAAE,MAAM,iBAAiB,QAAQ,KAAK,MAAM,cAC3D;AAED,MAAa,kBAAkB,SAAiC,WAAW;CAEzE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,aAAa,GAAG,WADtD,SAAS,mBAAmB,cAAc,OAAO;CAE/D,MAAM,MAAM,sBAAsB;AAElC,QACE,oBAAC,KAAD;EAAK,GAAI,IAAI,UAAU,SAAS;GAAE;GAAW;GAAO;GAAQ;GAAY,CAAC;EAAE,GAAI;YAC5E,YAAY;GAAE,MAAM,IAAI;GAAQ,YAAY,IAAI;GAAO,CAAC;EACrD,CAAA;EAER;AAEF,gBAAgB,UAAUA;AAC1B,gBAAgB,cAAc"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
//#region packages/@mantine/core/src/components/RollingNumber/DigitColumn.tsx
|
|
4
|
-
const DIGITS = [
|
|
5
|
-
"0",
|
|
6
|
-
"1",
|
|
7
|
-
"2",
|
|
8
|
-
"3",
|
|
9
|
-
"4",
|
|
10
|
-
"5",
|
|
11
|
-
"6",
|
|
12
|
-
"7",
|
|
13
|
-
"8",
|
|
14
|
-
"9"
|
|
15
|
-
];
|
|
16
|
-
function DigitColumn({ digit, getStyles, previousDigit, empty }) {
|
|
17
|
-
const digitIndex = DIGITS.indexOf(digit);
|
|
18
|
-
const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;
|
|
19
|
-
const direction = prevIndex === -1 || digitIndex >= prevIndex ? "up" : "down";
|
|
20
|
-
const digitStyles = getStyles("digit");
|
|
21
|
-
const columnStyles = getStyles("digitColumn");
|
|
22
|
-
return /* @__PURE__ */ jsx("span", {
|
|
23
|
-
...digitStyles,
|
|
24
|
-
"data-empty": empty || void 0,
|
|
25
|
-
"aria-hidden": "true",
|
|
26
|
-
children: /* @__PURE__ */ jsx("span", {
|
|
27
|
-
...columnStyles,
|
|
28
|
-
style: {
|
|
29
|
-
...columnStyles.style,
|
|
30
|
-
transform: `translateY(${-digitIndex}em)`
|
|
31
|
-
},
|
|
32
|
-
"data-direction": direction,
|
|
33
|
-
children: DIGITS.map((d) => /* @__PURE__ */ jsx("span", { children: d }, d))
|
|
34
|
-
})
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
//#endregion
|
|
38
|
-
export { DigitColumn };
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=DigitColumn.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DigitColumn.mjs","names":[],"sources":["../../../src/components/RollingNumber/DigitColumn.tsx"],"sourcesContent":["import { useStyles } from '../../core';\nimport type { RollingNumberFactory } from './RollingNumber';\n\nconst DIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\ninterface DigitColumnProps {\n digit: string;\n getStyles: ReturnType<typeof useStyles<RollingNumberFactory>>;\n previousDigit: string | null;\n empty?: boolean;\n}\n\nexport function DigitColumn({ digit, getStyles, previousDigit, empty }: DigitColumnProps) {\n const digitIndex = DIGITS.indexOf(digit);\n const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;\n const direction = prevIndex === -1 || digitIndex >= prevIndex ? 'up' : 'down';\n const digitStyles = getStyles('digit');\n const columnStyles = getStyles('digitColumn');\n\n return (\n <span {...digitStyles} data-empty={empty || undefined} aria-hidden=\"true\">\n <span\n {...columnStyles}\n style={{ ...columnStyles.style, transform: `translateY(${-digitIndex}em)` }}\n data-direction={direction}\n >\n {DIGITS.map((d) => (\n <span key={d}>{d}</span>\n ))}\n </span>\n </span>\n );\n}\n"],"mappings":";;;AAGA,MAAM,SAAS;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAI;AASjE,SAAgB,YAAY,EAAE,OAAO,WAAW,eAAe,SAA2B;CACxF,MAAM,aAAa,OAAO,QAAQ,MAAM;CACxC,MAAM,YAAY,kBAAkB,OAAO,OAAO,QAAQ,cAAc,GAAG;CAC3E,MAAM,YAAY,cAAc,MAAM,cAAc,YAAY,OAAO;CACvE,MAAM,cAAc,UAAU,QAAQ;CACtC,MAAM,eAAe,UAAU,cAAc;AAE7C,QACE,oBAAC,QAAD;EAAM,GAAI;EAAa,cAAY,SAAS,KAAA;EAAW,eAAY;YACjE,oBAAC,QAAD;GACE,GAAI;GACJ,OAAO;IAAE,GAAG,aAAa;IAAO,WAAW,cAAc,CAAC,WAAW;IAAM;GAC3E,kBAAgB;aAEf,OAAO,KAAK,MACX,oBAAC,QAAD,EAAA,UAAe,GAAS,EAAb,EAAa,CACxB;GACG,CAAA;EACF,CAAA"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { createVarsResolver } from "../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs";
|
|
3
|
-
import { useProps } from "../../core/MantineProvider/use-props/use-props.mjs";
|
|
4
|
-
import { useStyles } from "../../core/styles-api/use-styles/use-styles.mjs";
|
|
5
|
-
import { factory } from "../../core/factory/factory.mjs";
|
|
6
|
-
import { Box } from "../../core/Box/Box.mjs";
|
|
7
|
-
import { getDigitParts } from "./get-digit-parts.mjs";
|
|
8
|
-
import { buildValue } from "./build-value.mjs";
|
|
9
|
-
import { DigitColumn } from "./DigitColumn.mjs";
|
|
10
|
-
import { getRenderSlots } from "./get-render-slots.mjs";
|
|
11
|
-
import RollingNumber_module_default from "./RollingNumber.module.mjs";
|
|
12
|
-
import { useEffect, useRef } from "react";
|
|
13
|
-
import { jsx } from "react/jsx-runtime";
|
|
14
|
-
//#region packages/@mantine/core/src/components/RollingNumber/RollingNumber.tsx
|
|
15
|
-
const defaultProps = {
|
|
16
|
-
animationDuration: 600,
|
|
17
|
-
timingFunction: "ease",
|
|
18
|
-
decimalSeparator: ".",
|
|
19
|
-
tabularNumbers: true
|
|
20
|
-
};
|
|
21
|
-
const varsResolver = createVarsResolver((_, { animationDuration, timingFunction }) => ({ root: {
|
|
22
|
-
"--rn-duration": `${animationDuration}ms`,
|
|
23
|
-
"--rn-timing-function": timingFunction
|
|
24
|
-
} }));
|
|
25
|
-
const RollingNumber = factory((_props) => {
|
|
26
|
-
const props = useProps("RollingNumber", defaultProps, _props);
|
|
27
|
-
const { classNames, className, style, styles, unstyled, vars, value, prefix, suffix, decimalSeparator, thousandSeparator, decimalScale, fixedDecimalScale, animationDuration, timingFunction, tabularNumbers, mod, attributes, ...others } = props;
|
|
28
|
-
const getStyles = useStyles({
|
|
29
|
-
name: "RollingNumber",
|
|
30
|
-
classes: RollingNumber_module_default,
|
|
31
|
-
props,
|
|
32
|
-
className,
|
|
33
|
-
style,
|
|
34
|
-
classNames,
|
|
35
|
-
styles,
|
|
36
|
-
unstyled,
|
|
37
|
-
attributes,
|
|
38
|
-
vars,
|
|
39
|
-
varsResolver
|
|
40
|
-
});
|
|
41
|
-
const previousValueRef = useRef(value);
|
|
42
|
-
const previousValue = previousValueRef.current;
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
previousValueRef.current = value;
|
|
45
|
-
});
|
|
46
|
-
const slots = getRenderSlots({
|
|
47
|
-
current: getDigitParts({
|
|
48
|
-
value,
|
|
49
|
-
decimalScale,
|
|
50
|
-
fixedDecimalScale
|
|
51
|
-
}),
|
|
52
|
-
previous: getDigitParts({
|
|
53
|
-
value: previousValue,
|
|
54
|
-
decimalScale,
|
|
55
|
-
fixedDecimalScale
|
|
56
|
-
}),
|
|
57
|
-
prefix,
|
|
58
|
-
suffix,
|
|
59
|
-
decimalSeparator,
|
|
60
|
-
thousandSeparator
|
|
61
|
-
});
|
|
62
|
-
const accessibleValue = buildValue({
|
|
63
|
-
value,
|
|
64
|
-
prefix,
|
|
65
|
-
suffix,
|
|
66
|
-
decimalSeparator,
|
|
67
|
-
thousandSeparator,
|
|
68
|
-
decimalScale,
|
|
69
|
-
fixedDecimalScale
|
|
70
|
-
});
|
|
71
|
-
return /* @__PURE__ */ jsx(Box, {
|
|
72
|
-
...getStyles("root"),
|
|
73
|
-
mod: [{ "tabular-numbers": tabularNumbers }, mod],
|
|
74
|
-
role: "status",
|
|
75
|
-
"aria-label": accessibleValue,
|
|
76
|
-
...others,
|
|
77
|
-
children: slots.map((slot) => {
|
|
78
|
-
if (slot.type === "digit") return /* @__PURE__ */ jsx(DigitColumn, {
|
|
79
|
-
digit: slot.digit,
|
|
80
|
-
previousDigit: slot.previousDigit,
|
|
81
|
-
getStyles,
|
|
82
|
-
empty: slot.empty
|
|
83
|
-
}, slot.key);
|
|
84
|
-
return /* @__PURE__ */ jsx("span", {
|
|
85
|
-
...getStyles("char"),
|
|
86
|
-
"data-empty": slot.empty || void 0,
|
|
87
|
-
"aria-hidden": "true",
|
|
88
|
-
children: slot.char
|
|
89
|
-
}, slot.key);
|
|
90
|
-
})
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
RollingNumber.classes = RollingNumber_module_default;
|
|
94
|
-
RollingNumber.varsResolver = varsResolver;
|
|
95
|
-
RollingNumber.displayName = "@mantine/core/RollingNumber";
|
|
96
|
-
//#endregion
|
|
97
|
-
export { RollingNumber };
|
|
98
|
-
|
|
99
|
-
//# sourceMappingURL=RollingNumber.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RollingNumber.mjs","names":["classes"],"sources":["../../../src/components/RollingNumber/RollingNumber.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { buildValue } from './build-value';\nimport { DigitColumn } from './DigitColumn';\nimport { getDigitParts } from './get-digit-parts';\nimport { getRenderSlots } from './get-render-slots';\nimport classes from './RollingNumber.module.css';\n\nexport type RollingNumberStylesNames = 'root' | 'digit' | 'digitColumn' | 'char';\nexport type RollingNumberCssVariables = {\n root: '--rn-duration' | '--rn-timing-function';\n};\n\nexport interface RollingNumberProps\n extends BoxProps, StylesApiProps<RollingNumberFactory>, ElementProps<'div'> {\n /** Number value to display */\n value: number;\n\n /** Prefix added before the value */\n prefix?: string;\n\n /** Suffix added after the value */\n suffix?: string;\n\n /** Character used as a decimal separator @default '.' */\n decimalSeparator?: string;\n\n /** Character used to separate thousands, set to `true` for `,` @default false */\n thousandSeparator?: string | boolean;\n\n /** Number of decimal places to display */\n decimalScale?: number;\n\n /** If set, trailing zeros are added to match `decimalScale` @default false */\n fixedDecimalScale?: boolean;\n\n /** Animation duration in milliseconds @default 600 */\n animationDuration?: number;\n\n /** CSS timing function for animation @default 'ease' */\n timingFunction?: string;\n\n /** If set, use tabular (monospace) numbers @default true */\n tabularNumbers?: boolean;\n}\n\nexport type RollingNumberFactory = Factory<{\n props: RollingNumberProps;\n ref: HTMLDivElement;\n stylesNames: RollingNumberStylesNames;\n vars: RollingNumberCssVariables;\n}>;\n\nconst defaultProps = {\n animationDuration: 600,\n timingFunction: 'ease',\n decimalSeparator: '.',\n tabularNumbers: true,\n} satisfies Partial<RollingNumberProps>;\n\nconst varsResolver = createVarsResolver<RollingNumberFactory>(\n (_, { animationDuration, timingFunction }) => ({\n root: {\n '--rn-duration': `${animationDuration}ms`,\n '--rn-timing-function': timingFunction,\n },\n })\n);\n\nexport const RollingNumber = factory<RollingNumberFactory>((_props) => {\n const props = useProps('RollingNumber', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n animationDuration,\n timingFunction,\n tabularNumbers,\n mod,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RollingNumberFactory>({\n name: 'RollingNumber',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const previousValueRef = useRef(value);\n const previousValue = previousValueRef.current;\n\n useEffect(() => {\n previousValueRef.current = value;\n });\n\n const current = getDigitParts({ value, decimalScale, fixedDecimalScale });\n const prev = getDigitParts({ value: previousValue, decimalScale, fixedDecimalScale });\n\n const slots = getRenderSlots({\n current,\n previous: prev,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n });\n\n const accessibleValue = buildValue({\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n });\n\n return (\n <Box\n {...getStyles('root')}\n mod={[{ 'tabular-numbers': tabularNumbers }, mod]}\n role=\"status\"\n aria-label={accessibleValue}\n {...others}\n >\n {slots.map((slot) => {\n if (slot.type === 'digit') {\n return (\n <DigitColumn\n key={slot.key}\n digit={slot.digit}\n previousDigit={slot.previousDigit}\n getStyles={getStyles}\n empty={slot.empty}\n />\n );\n }\n\n return (\n <span\n key={slot.key}\n {...getStyles('char')}\n data-empty={slot.empty || undefined}\n aria-hidden=\"true\"\n >\n {slot.char}\n </span>\n );\n })}\n </Box>\n );\n});\n\nRollingNumber.classes = classes;\nRollingNumber.varsResolver = varsResolver;\nRollingNumber.displayName = '@mantine/core/RollingNumber';\n"],"mappings":";;;;;;;;;;;;;;AA+DA,MAAM,eAAe;CACnB,mBAAmB;CACnB,gBAAgB;CAChB,kBAAkB;CAClB,gBAAgB;CACjB;AAED,MAAM,eAAe,oBAClB,GAAG,EAAE,mBAAmB,sBAAsB,EAC7C,MAAM;CACJ,iBAAiB,GAAG,kBAAkB;CACtC,wBAAwB;CACzB,EACF,EACF;AAED,MAAa,gBAAgB,SAA+B,WAAW;CACrE,MAAM,QAAQ,SAAS,iBAAiB,cAAc,OAAO;CAC7D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,OACA,QACA,QACA,kBACA,mBACA,cACA,mBACA,mBACA,gBACA,gBACA,KACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAAgC;EAChD,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,mBAAmB,OAAO,MAAM;CACtC,MAAM,gBAAgB,iBAAiB;AAEvC,iBAAgB;AACd,mBAAiB,UAAU;GAC3B;CAKF,MAAM,QAAQ,eAAe;EAC3B,SAJc,cAAc;GAAE;GAAO;GAAc;GAAmB,CAAC;EAKvE,UAJW,cAAc;GAAE,OAAO;GAAe;GAAc;GAAmB,CAAC;EAKnF;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,kBAAkB,WAAW;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,oBAAC,KAAD;EACE,GAAI,UAAU,OAAO;EACrB,KAAK,CAAC,EAAE,mBAAmB,gBAAgB,EAAE,IAAI;EACjD,MAAK;EACL,cAAY;EACZ,GAAI;YAEH,MAAM,KAAK,SAAS;AACnB,OAAI,KAAK,SAAS,QAChB,QACE,oBAAC,aAAD;IAEE,OAAO,KAAK;IACZ,eAAe,KAAK;IACT;IACX,OAAO,KAAK;IACZ,EALK,KAAK,IAKV;AAIN,UACE,oBAAC,QAAD;IAEE,GAAI,UAAU,OAAO;IACrB,cAAY,KAAK,SAAS,KAAA;IAC1B,eAAY;cAEX,KAAK;IACD,EANA,KAAK,IAML;IAET;EACE,CAAA;EAER;AAEF,cAAc,UAAUA;AACxB,cAAc,eAAe;AAC7B,cAAc,cAAc"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
//#region packages/@mantine/core/src/components/RollingNumber/RollingNumber.module.css
|
|
3
|
-
var RollingNumber_module_default = {
|
|
4
|
-
"root": "m_47dd3981",
|
|
5
|
-
"digit": "m_b301d46e",
|
|
6
|
-
"digitColumn": "m_8ae40964",
|
|
7
|
-
"char": "m_47d64bf5"
|
|
8
|
-
};
|
|
9
|
-
//#endregion
|
|
10
|
-
export { RollingNumber_module_default as default };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=RollingNumber.module.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RollingNumber.module.mjs","names":[],"sources":["../../../src/components/RollingNumber/RollingNumber.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n align-items: baseline;\n overflow: hidden;\n\n &[data-tabular-numbers] {\n font-variant-numeric: tabular-nums;\n }\n}\n\n.digit {\n display: inline-block;\n width: 1ch;\n height: 1em;\n overflow: hidden;\n line-height: 1;\n transition:\n width var(--rn-duration) var(--rn-timing-function),\n opacity var(--rn-duration) var(--rn-timing-function);\n\n &[data-empty] {\n width: 0;\n opacity: 0;\n }\n}\n\n.digitColumn {\n display: flex;\n flex-direction: column;\n transition: transform var(--rn-duration) var(--rn-timing-function);\n\n & > span {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 1em;\n }\n}\n\n.char {\n display: inline-block;\n overflow: hidden;\n white-space: pre;\n transition: opacity var(--rn-duration) var(--rn-timing-function);\n\n &[data-empty] {\n width: 0;\n opacity: 0;\n }\n}\n"],"mappings":""}
|