matsuri-ui 16.6.1-alpha-1736063445138-dc67269.0 → 16.6.1-alpha-1736669614668-b87c8e4.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/AsComponentProps.d.ts +1 -1
- package/AsComponentProps.js.map +1 -1
- package/Button/Button.js +8 -8
- package/Button/Button.js.map +1 -1
- package/CSVImportUI/CSVImportUI.d.ts +2 -2
- package/CSVImportUI/CSVImportUI.js.map +1 -1
- package/CSVImportUI/CSVImportUISearchScreen.d.ts +2 -2
- package/CSVImportUI/CSVImportUISearchScreen.js +4 -4
- package/CSVImportUI/CSVImportUISearchScreen.js.map +1 -1
- package/CSVImportUI/screens/DownloadUpdateTemplateScreen.d.ts +1 -1
- package/CSVImportUI/screens/DownloadUpdateTemplateScreen.js +4 -4
- package/CSVImportUI/screens/DownloadUpdateTemplateScreen.js.map +1 -1
- package/CalendarUI/index.d.ts +1 -1
- package/CalendarUI/index.js.map +1 -1
- package/DateField/DateField.js +2 -2
- package/DateField/DateField.js.map +1 -1
- package/ErrorBoundary/ErrorBoundary.d.ts +1 -1
- package/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/GlobalMenu/index.d.ts +2 -2
- package/GlobalMenu/index.js +29 -29
- package/GlobalMenu/index.js.map +1 -1
- package/ImageUploadArea/ImageUploadArea.d.ts +2 -1
- package/ImageUploadArea/ImageUploadArea.js +10 -10
- package/ImageUploadArea/ImageUploadArea.js.map +1 -1
- package/InputBase/InputBase.d.ts +1 -1
- package/InputBase/InputBase.js +5 -5
- package/InputBase/InputBase.js.map +1 -1
- package/Modal/Modal.d.ts +3 -3
- package/Modal/Modal.js +7 -7
- package/Modal/Modal.js.map +1 -1
- package/Modal/useModal.d.ts +1 -1
- package/Modal/useModal.js.map +1 -1
- package/MultipleTextField/index.js +1 -1
- package/MultipleTextField/index.js.map +1 -1
- package/Peek/index.d.ts +1 -1
- package/Peek/index.js +6 -6
- package/Peek/index.js.map +1 -1
- package/ProgressBar/ProgressBar.d.ts +1 -1
- package/ProgressBar/ProgressBar.js +2 -2
- package/ProgressBar/ProgressBar.js.map +1 -1
- package/RadioButton/RadioButtonGroup.d.ts +1 -1
- package/RadioButton/RadioButtonGroup.js.map +1 -1
- package/SelectField/SelectField.d.ts +1 -1
- package/SelectField/SelectField.js +5 -5
- package/SelectField/SelectField.js.map +1 -1
- package/ShimmerEffect/ShimmerEffect.d.ts +4 -1
- package/ShimmerEffect/ShimmerEffect.js +2 -5
- package/ShimmerEffect/ShimmerEffect.js.map +1 -1
- package/SortArea/index.d.ts +1 -1
- package/SortArea/index.js +2 -2
- package/SortArea/index.js.map +1 -1
- package/Table/useTable.d.ts +4 -4
- package/Table/useTable.js.map +1 -1
- package/TableUI/index.d.ts +3 -2
- package/TableUI/index.js +10 -10
- package/TableUI/index.js.map +1 -1
- package/Tabs/TabGroup.js +3 -3
- package/Tabs/TabGroup.js.map +1 -1
- package/Tabs/TabPanelGroup.js.map +1 -1
- package/Tabs/TabUI.d.ts +1 -1
- package/Tabs/TabUI.js +10 -10
- package/Tabs/TabUI.js.map +1 -1
- package/TextButton/index.js +4 -4
- package/TextButton/index.js.map +1 -1
- package/Timeline/Timeline.d.ts +3 -3
- package/Timeline/Timeline.js +2 -2
- package/Timeline/Timeline.js.map +1 -1
- package/Tooltip/Tooltip.d.ts +1 -1
- package/Tooltip/Tooltip.js +5 -5
- package/Tooltip/Tooltip.js.map +1 -1
- package/UserTextRenderer/UserTextRenderer.d.ts +1 -1
- package/UserTextRenderer/UserTextRenderer.js +1 -1
- package/UserTextRenderer/UserTextRenderer.js.map +1 -1
- package/WeeklyCalendarUI/WeeklyCalendar.d.ts +4 -4
- package/WeeklyCalendarUI/WeeklyCalendar.js +6 -6
- package/WeeklyCalendarUI/WeeklyCalendar.js.map +1 -1
- package/WeeklyCalendarUI/WeeklyCalendarColumn.d.ts +3 -3
- package/WeeklyCalendarUI/WeeklyCalendarColumn.js +5 -2
- package/WeeklyCalendarUI/WeeklyCalendarColumn.js.map +1 -1
- package/cjs/AsComponentProps.js.map +1 -1
- package/cjs/Button/Button.js +8 -8
- package/cjs/Button/Button.js.map +1 -1
- package/cjs/CSVImportUI/CSVImportUI.js.map +1 -1
- package/cjs/CSVImportUI/CSVImportUISearchScreen.js +4 -4
- package/cjs/CSVImportUI/CSVImportUISearchScreen.js.map +1 -1
- package/cjs/CSVImportUI/screens/DownloadUpdateTemplateScreen.js +4 -4
- package/cjs/CSVImportUI/screens/DownloadUpdateTemplateScreen.js.map +1 -1
- package/cjs/CalendarUI/index.js.map +1 -1
- package/cjs/DateField/DateField.js +2 -2
- package/cjs/DateField/DateField.js.map +1 -1
- package/cjs/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/cjs/GlobalMenu/index.js +29 -29
- package/cjs/GlobalMenu/index.js.map +1 -1
- package/cjs/ImageUploadArea/ImageUploadArea.js +10 -10
- package/cjs/ImageUploadArea/ImageUploadArea.js.map +1 -1
- package/cjs/InputBase/InputBase.js +5 -5
- package/cjs/InputBase/InputBase.js.map +1 -1
- package/cjs/Modal/Modal.js +7 -7
- package/cjs/Modal/Modal.js.map +1 -1
- package/cjs/Modal/useModal.js.map +1 -1
- package/cjs/MultipleTextField/index.js +1 -1
- package/cjs/MultipleTextField/index.js.map +1 -1
- package/cjs/Peek/index.js +6 -6
- package/cjs/Peek/index.js.map +1 -1
- package/cjs/ProgressBar/ProgressBar.js +2 -2
- package/cjs/ProgressBar/ProgressBar.js.map +1 -1
- package/cjs/RadioButton/RadioButtonGroup.js.map +1 -1
- package/cjs/SelectField/SelectField.js +5 -5
- package/cjs/SelectField/SelectField.js.map +1 -1
- package/cjs/ShimmerEffect/ShimmerEffect.js +2 -5
- package/cjs/ShimmerEffect/ShimmerEffect.js.map +1 -1
- package/cjs/SortArea/index.js +2 -2
- package/cjs/SortArea/index.js.map +1 -1
- package/cjs/Table/useTable.js.map +1 -1
- package/cjs/TableUI/index.js +10 -10
- package/cjs/TableUI/index.js.map +1 -1
- package/cjs/Tabs/TabGroup.js +3 -3
- package/cjs/Tabs/TabGroup.js.map +1 -1
- package/cjs/Tabs/TabPanelGroup.js.map +1 -1
- package/cjs/Tabs/TabUI.js +10 -10
- package/cjs/Tabs/TabUI.js.map +1 -1
- package/cjs/TextButton/index.js +4 -4
- package/cjs/TextButton/index.js.map +1 -1
- package/cjs/Timeline/Timeline.js +2 -2
- package/cjs/Timeline/Timeline.js.map +1 -1
- package/cjs/Tooltip/Tooltip.js +5 -5
- package/cjs/Tooltip/Tooltip.js.map +1 -1
- package/cjs/UserTextRenderer/UserTextRenderer.js +1 -1
- package/cjs/UserTextRenderer/UserTextRenderer.js.map +1 -1
- package/cjs/WeeklyCalendarUI/WeeklyCalendar.js +6 -6
- package/cjs/WeeklyCalendarUI/WeeklyCalendar.js.map +1 -1
- package/cjs/WeeklyCalendarUI/WeeklyCalendarColumn.js +5 -2
- package/cjs/WeeklyCalendarUI/WeeklyCalendarColumn.js.map +1 -1
- package/cjs/hooks/useFocus.js.map +1 -1
- package/cjs/hooks/useHover.js.map +1 -1
- package/cjs/hooks/useIntersectionObserver.js.map +1 -1
- package/cjs/hooks/useInterval.js +1 -1
- package/cjs/hooks/useInterval.js.map +1 -1
- package/cjs/hooks/useOnClickOutside.js.map +1 -1
- package/cjs/hooks/useResizeObserver.js.map +1 -1
- package/cjs/hooks/useTimeout.js +1 -1
- package/cjs/hooks/useTimeout.js.map +1 -1
- package/cjs/react-spring.d.js +4 -0
- package/cjs/react-spring.d.js.map +1 -0
- package/esm/AsComponentProps.js.map +1 -1
- package/esm/Button/Button.js +8 -8
- package/esm/Button/Button.js.map +1 -1
- package/esm/CSVImportUI/CSVImportUI.js.map +1 -1
- package/esm/CSVImportUI/CSVImportUISearchScreen.js +4 -4
- package/esm/CSVImportUI/CSVImportUISearchScreen.js.map +1 -1
- package/esm/CSVImportUI/screens/DownloadUpdateTemplateScreen.js +4 -4
- package/esm/CSVImportUI/screens/DownloadUpdateTemplateScreen.js.map +1 -1
- package/esm/CalendarUI/index.js.map +1 -1
- package/esm/DateField/DateField.js +2 -2
- package/esm/DateField/DateField.js.map +1 -1
- package/esm/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/esm/GlobalMenu/index.js +29 -29
- package/esm/GlobalMenu/index.js.map +1 -1
- package/esm/ImageUploadArea/ImageUploadArea.js +10 -10
- package/esm/ImageUploadArea/ImageUploadArea.js.map +1 -1
- package/esm/InputBase/InputBase.js +5 -5
- package/esm/InputBase/InputBase.js.map +1 -1
- package/esm/Modal/Modal.js +7 -7
- package/esm/Modal/Modal.js.map +1 -1
- package/esm/Modal/useModal.js.map +1 -1
- package/esm/MultipleTextField/index.js +1 -1
- package/esm/MultipleTextField/index.js.map +1 -1
- package/esm/Peek/index.js +6 -6
- package/esm/Peek/index.js.map +1 -1
- package/esm/ProgressBar/ProgressBar.js +2 -2
- package/esm/ProgressBar/ProgressBar.js.map +1 -1
- package/esm/RadioButton/RadioButtonGroup.js.map +1 -1
- package/esm/SelectField/SelectField.js +5 -5
- package/esm/SelectField/SelectField.js.map +1 -1
- package/esm/ShimmerEffect/ShimmerEffect.js +2 -5
- package/esm/ShimmerEffect/ShimmerEffect.js.map +1 -1
- package/esm/SortArea/index.js +2 -2
- package/esm/SortArea/index.js.map +1 -1
- package/esm/Table/useTable.js.map +1 -1
- package/esm/TableUI/index.js +10 -10
- package/esm/TableUI/index.js.map +1 -1
- package/esm/Tabs/TabGroup.js +3 -3
- package/esm/Tabs/TabGroup.js.map +1 -1
- package/esm/Tabs/TabPanelGroup.js.map +1 -1
- package/esm/Tabs/TabUI.js +10 -10
- package/esm/Tabs/TabUI.js.map +1 -1
- package/esm/TextButton/index.js +4 -4
- package/esm/TextButton/index.js.map +1 -1
- package/esm/Timeline/Timeline.js +2 -2
- package/esm/Timeline/Timeline.js.map +1 -1
- package/esm/Tooltip/Tooltip.js +5 -5
- package/esm/Tooltip/Tooltip.js.map +1 -1
- package/esm/UserTextRenderer/UserTextRenderer.js +1 -1
- package/esm/UserTextRenderer/UserTextRenderer.js.map +1 -1
- package/esm/WeeklyCalendarUI/WeeklyCalendar.js +6 -6
- package/esm/WeeklyCalendarUI/WeeklyCalendar.js.map +1 -1
- package/esm/WeeklyCalendarUI/WeeklyCalendarColumn.js +5 -2
- package/esm/WeeklyCalendarUI/WeeklyCalendarColumn.js.map +1 -1
- package/esm/hooks/useFocus.js.map +1 -1
- package/esm/hooks/useHover.js.map +1 -1
- package/esm/hooks/useIntersectionObserver.js.map +1 -1
- package/esm/hooks/useInterval.js +1 -1
- package/esm/hooks/useInterval.js.map +1 -1
- package/esm/hooks/useOnClickOutside.js.map +1 -1
- package/esm/hooks/useResizeObserver.js.map +1 -1
- package/esm/hooks/useTimeout.js +1 -1
- package/esm/hooks/useTimeout.js.map +1 -1
- package/esm/react-spring.d.js +2 -0
- package/esm/react-spring.d.js.map +1 -0
- package/hooks/useFocus.d.ts +1 -1
- package/hooks/useFocus.js.map +1 -1
- package/hooks/useHover.d.ts +1 -1
- package/hooks/useHover.js.map +1 -1
- package/hooks/useIntersectionObserver.d.ts +1 -1
- package/hooks/useIntersectionObserver.js.map +1 -1
- package/hooks/useInterval.js +1 -1
- package/hooks/useInterval.js.map +1 -1
- package/hooks/useOnClickOutside.d.ts +1 -1
- package/hooks/useOnClickOutside.js.map +1 -1
- package/hooks/useResizeObserver.d.ts +1 -1
- package/hooks/useResizeObserver.js.map +1 -1
- package/hooks/useTimeout.js +1 -1
- package/hooks/useTimeout.js.map +1 -1
- package/package.json +3 -7
- package/react-spring.d.js +2 -0
- package/react-spring.d.js.map +1 -0
- package/types/AsComponentProps.d.ts +1 -1
- package/types/CSVImportUI/CSVImportUI.d.ts +2 -2
- package/types/CSVImportUI/CSVImportUISearchScreen.d.ts +2 -2
- package/types/CSVImportUI/screens/DownloadUpdateTemplateScreen.d.ts +1 -1
- package/types/CalendarUI/index.d.ts +1 -1
- package/types/ErrorBoundary/ErrorBoundary.d.ts +1 -1
- package/types/GlobalMenu/index.d.ts +2 -2
- package/types/ImageUploadArea/ImageUploadArea.d.ts +2 -1
- package/types/InputBase/InputBase.d.ts +1 -1
- package/types/Modal/Modal.d.ts +3 -3
- package/types/Modal/useModal.d.ts +1 -1
- package/types/Peek/index.d.ts +1 -1
- package/types/ProgressBar/ProgressBar.d.ts +1 -1
- package/types/RadioButton/RadioButtonGroup.d.ts +1 -1
- package/types/SelectField/SelectField.d.ts +1 -1
- package/types/ShimmerEffect/ShimmerEffect.d.ts +4 -1
- package/types/SortArea/index.d.ts +1 -1
- package/types/Table/useTable.d.ts +4 -4
- package/types/TableUI/index.d.ts +3 -2
- package/types/Tabs/TabUI.d.ts +1 -1
- package/types/Timeline/Timeline.d.ts +3 -3
- package/types/Tooltip/Tooltip.d.ts +1 -1
- package/types/UserTextRenderer/UserTextRenderer.d.ts +1 -1
- package/types/WeeklyCalendarUI/WeeklyCalendar.d.ts +4 -4
- package/types/WeeklyCalendarUI/WeeklyCalendarColumn.d.ts +3 -3
- package/types/hooks/useFocus.d.ts +1 -1
- package/types/hooks/useHover.d.ts +1 -1
- package/types/hooks/useIntersectionObserver.d.ts +1 -1
- package/types/hooks/useOnClickOutside.d.ts +1 -1
- package/types/hooks/useResizeObserver.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectField.js","names":["_FieldGroup","require","_FormControl","_FormHelperText","_InputBase","_InputLabel","_Paper","_Popper","_SelectFieldInputWrapper","_Triangle","_VisuallyHidden","_react","_dispatchChangeEvent","_useSearch","_useDitectInputTouched","_useInputValue","_useMergeRefs","_useOnClickOutside","_theme","_react2","_interopRequireWildcard","_Search","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","SelectInnerSpinButton","open","onClick","theme","useTheme","jsx","Triangle","css","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","forwardRef","props","ref","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","getSearch","map","option","keys","label","content","value","exports","defaultLoadOptions","undefined","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","useState","useRef","setQuery","selectedOptionsCache","setOptions","useEffect","selectedOptions","current","then","setValue","isControlled","useInputValue","useFieldGroup","onLoaded","displayValue","useMemo","find","listRef","useOnClickOutside","pseudoInputRef","pseudoInputRefs","useMergeRefs","originalInputRef","originalInputRefs","updateValue","useCallback","dispatchChangeEvent","resetValue","touched","inputProps","useDitectInputTouched","popperOptions","modifiers","roundOffsets","y","x","Math","round","enabled","phase","requires","fn","state","popper","width","rects","reference","effect","elements","offsetWidth","internalInputId","useId","inputId","FormControl","InputLabel","htmlFor","VisuallyHidden","type","key","autoCapitalize","autoComplete","autoCorrect","spellCheck","SelectFieldInputWrapperContext","Provider","InputBase","renderInputWrapper","SelectFieldInputWrapper","onKeyDown","event","prev","preventDefault","startAdornment","some","endAdornment","currentTarget","Popper","anchorEl","placement","Paper","activeElement","React","Children","toArray","child","index","click","FormHelperText"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport type { Options as PopperjsOptions } from \"@popperjs/core\";\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return node?.ownerDocument || document;\n}\n\ntype TraversalFunction = (\n list: HTMLUListElement,\n item?: Element | null,\n) => ChildNode | null;\n\nconst nextItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item?.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\n\nconst previousItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item?.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\n\nconst moveFocus = (\n list: HTMLUListElement,\n currentFocus: Element | null,\n traversalFunction: TraversalFunction,\n) => {\n let nextFocus = traversalFunction(list, currentFocus) as HTMLElement | null;\n while (nextFocus) {\n if (\n currentFocus === null\n ? nextFocus === list.lastChild\n : nextFocus === currentFocus\n ) {\n break;\n }\n const disabledFocus =\n (nextFocus as HTMLInputElement).disabled ||\n nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n if (disabledFocus) {\n nextFocus = traversalFunction(list, nextFocus) as HTMLElement;\n } else {\n nextFocus.focus();\n break;\n }\n }\n};\n\nconst SelectInnerSpinButton = ({\n open,\n onClick,\n}: {\n open: boolean;\n onClick: () => void;\n}) => {\n const theme = useTheme();\n return (\n <Triangle\n onClick={onClick}\n data-testid=\"SelectFieldSpinButton\"\n css={[\n css`\n font-size: ${theme.typography.body.fontSize}px;\n transition: ${theme.transitions.duration.shorter}\n ${theme.transitions.easing.easeInOut};\n `,\n open\n ? css`\n transform: rotateX(180deg);\n `\n : null,\n ]}\n />\n );\n};\n\nconst SelectList = forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>((props, ref) => {\n return (\n <ul\n ref={ref}\n role=\"listbox\"\n tabIndex={-1}\n css={css`\n box-sizing: border-box;\n min-height: ${42 * 3.5}px;\n max-height: ${42 * 7.5}px;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n border-radius: inherit;\n `}\n {...props}\n />\n );\n});\n\nconst SelectOption = (props: React.ComponentPropsWithoutRef<\"li\">) => {\n const theme = useTheme();\n return (\n <li\n role=\"option\"\n // aria-selectedは親要素から設定するため、この値は上書きされる\n aria-selected={false}\n css={css`\n box-sizing: border-box;\n min-height: ${theme.spacing * 6}px;\n padding: 9px 12px;\n color: ${theme.palette.text.primary};\n cursor: pointer;\n background-color: ${theme.palette.background.paper};\n border-bottom: 1px solid ${theme.palette.gray[300]};\n outline: 0px;\n transition: ${theme.transitions.duration.shortest};\n\n ${css(theme.typography.body)}\n &:last-child {\n border-bottom: none;\n }\n &:hover,\n &:focus {\n background-color: ${theme.palette.action.hover};\n }\n &[aria-selected=\"true\"] {\n background-color: ${theme.palette.action.selected};\n }\n &[aria-disabled=\"true\"] {\n color: ${theme.palette.text.disabled};\n cursor: default;\n }\n &[aria-readonly=\"true\"],\n &[aria-disabled=\"true\"] {\n &:hover {\n background-color: ${theme.palette.background.paper};\n }\n }\n `}\n {...props}\n />\n );\n};\n\nexport interface SelectOptionValue {\n value: string | undefined;\n label: string;\n keys?: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nexport type RenderSelectOption<\n T extends SelectOptionValue = SelectOptionValue,\n> = (peops: T) => JSX.Element;\n\nexport interface SelectFieldProps<\n T extends SelectOptionValue = SelectOptionValue,\n> extends Pick<FieldProps<string>, \"helperText\" | \"invalid\">,\n FieldGroupProps {\n renderOption?: RenderSelectOption<T>;\n children?: React.ReactNode;\n /**\n * 見出し\n */\n label?: string;\n name?: string;\n defaultValue?: string;\n /**\n * valueの変更は、defaultValueが指定されていないときのみ反映されます。\n */\n value?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n id?: string;\n className?: string;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * selecting data is required\n */\n required?: boolean;\n options?: T[];\n loadOptions?: SelectLoadOptions<T>;\n disabledInput?: boolean;\n readOnly?: boolean;\n /**\n * SelectFieldのOptionがクリックされた際に発火する関数。\n */\n onChange?: (value: T[\"value\"], options: T) => void;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n loading?: boolean;\n originalInputTestId?: string;\n pseudoInputTestId?: string;\n /**\n * オプションの表示にPortalを利用するかどうかを指定します。\n * このpropがtrueの場合、Portalが無効化されます。\n * また初期値がtrueであることに注意してください。\n * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。\n * @default true\n */\n disablePortal?: boolean;\n /**\n * 見かけ上のinput要素に対するrefを利用できます。\n * 選択された値を取得する場合などは、inputHasValueRefを利用してください。\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * 選択された値を保持しているinput要素に対するrefを利用できます。\n * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。\n */\n inputHasValueRef?: React.Ref<HTMLInputElement>;\n}\n\nexport const filterSelectOptionsByQuery = <\n T extends SelectOptionValue = SelectOptionValue,\n>(\n options: T[],\n query: string,\n) => {\n const result = getSearch(\n options.map((option) => {\n return {\n ...option,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n keys: option.keys || [option.label],\n content: option.value,\n };\n }),\n query,\n );\n return result;\n};\n\nexport type SelectLoadOptions<T extends SelectOptionValue = SelectOptionValue> =\n (args: {\n query: string;\n options?: T[];\n selectedOptions?: T[];\n }) => Promise<T[] | undefined>;\n\nconst defaultLoadOptions = async <\n T extends SelectOptionValue = SelectOptionValue,\n>({\n query,\n options,\n}: {\n query: string;\n options?: T[];\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<T[] | undefined> => {\n if (options === undefined) {\n return undefined;\n }\n if (query === undefined) {\n return options;\n }\n const result = filterSelectOptionsByQuery(options, query);\n return result.length ? result : options;\n};\n\nconst DefaultOption = <T extends SelectOptionValue>(props: T): JSX.Element => {\n return <span>{props.label}</span>;\n};\n\nexport const SelectField = <T extends SelectOptionValue>(\n props: SelectFieldProps<T>,\n) => {\n const {\n label,\n name,\n options: propOptions,\n loadOptions = defaultLoadOptions,\n disabledInput,\n onChange,\n onFocus,\n placeholder,\n required,\n id,\n value: _valueProp,\n defaultValue,\n disabled,\n children,\n helperText,\n invalid,\n loading: propsLoading,\n readOnly: propsReadOnly,\n style,\n className,\n originalInputTestId,\n pseudoInputTestId,\n disablePortal = true,\n renderOption = DefaultOption,\n inputRef,\n inputHasValueRef,\n } = props;\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const [query, setQuery] = useState<string>(\"\");\n const selectedOptionsCache = useRef<T[] | undefined>(propOptions);\n const [options, setOptions] = useState(propOptions);\n\n useEffect(() => {\n void loadOptions({\n query,\n options: propOptions,\n selectedOptions: selectedOptionsCache.current,\n }).then((result) => {\n setOptions(result);\n });\n }, [propOptions, loadOptions, query]);\n\n const [value, setValue, isControlled] = useInputValue(props);\n\n const { loading, readOnly } = useFieldGroup({\n loading: propsLoading,\n readOnly: propsReadOnly,\n onLoaded: () => {\n if (isControlled === false) {\n setValue(defaultValue);\n }\n },\n });\n\n const displayValue = useMemo(() => {\n return (\n selectedOptionsCache.current?.find(\n (option) => option.value === value,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ) || options?.find((option) => option.value === value)\n )?.label;\n }, [options, value]);\n\n const listRef = useRef<HTMLUListElement>(null);\n useOnClickOutside([ref, listRef], () => {\n setOpen(false);\n setQuery(\"\");\n });\n\n const pseudoInputRef = useRef<HTMLInputElement>(null);\n const pseudoInputRefs = useMergeRefs(inputRef, pseudoInputRef);\n const originalInputRef = useRef<HTMLInputElement>(null);\n const originalInputRefs = useMergeRefs(inputHasValueRef, originalInputRef);\n\n const updateValue = useCallback(\n (option: T) => {\n onChange?.(option.value, option);\n setValue(option.value);\n selectedOptionsCache.current = options;\n setQuery(\"\");\n if (originalInputRef.current) {\n dispatchChangeEvent(originalInputRef.current, option.value);\n }\n },\n [onChange, options, setValue],\n );\n\n const resetValue = useCallback(() => {\n setValue(undefined);\n if (onChange) {\n const option =\n options?.find((option) => option.value === undefined) ??\n ({ value: undefined, label: \"\" } as T);\n onChange(undefined, option);\n }\n }, [onChange, options, setValue]);\n\n const [touched, inputProps] = useDitectInputTouched(onFocus);\n\n const popperOptions: Partial<PopperjsOptions> = useMemo(() => {\n return {\n modifiers: [\n disablePortal\n ? {\n name: \"computeStyles\",\n options: {\n roundOffsets: ({ y }: { y: number }) => ({\n x: 0,\n y: Math.round(y),\n }),\n },\n }\n : {},\n {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n },\n ],\n };\n }, [disablePortal]);\n\n const internalInputId = useId();\n const inputId = id ?? internalInputId;\n\n return (\n <FormControl style={style} className={className}>\n {label ? (\n <InputLabel\n htmlFor={inputId}\n aria-disabled={disabled}\n required={required}\n loading={loading}\n >\n {label}\n </InputLabel>\n ) : null}\n <VisuallyHidden>\n <input\n ref={originalInputRefs}\n type=\"text\"\n data-testid={originalInputTestId}\n required={required}\n name={name}\n key={value}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SelectField.js","names":["_FieldGroup","require","_FormControl","_FormHelperText","_InputBase","_InputLabel","_Paper","_Popper","_SelectFieldInputWrapper","_Triangle","_VisuallyHidden","_react","_dispatchChangeEvent","_useSearch","_useDitectInputTouched","_useInputValue","_useMergeRefs","_useOnClickOutside","_theme","_react2","_interopRequireWildcard","_Search","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","SelectInnerSpinButton","open","onClick","theme","useTheme","jsx","Triangle","css","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","forwardRef","props","ref","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","getSearch","map","option","keys","label","content","value","exports","defaultLoadOptions","undefined","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","useState","useRef","setQuery","selectedOptionsCache","setOptions","useEffect","selectedOptions","current","then","setValue","isControlled","useInputValue","useFieldGroup","onLoaded","displayValue","useMemo","find","listRef","useOnClickOutside","pseudoInputRef","pseudoInputRefs","useMergeRefs","originalInputRef","originalInputRefs","updateValue","useCallback","dispatchChangeEvent","resetValue","touched","inputProps","useDitectInputTouched","popperOptions","modifiers","roundOffsets","y","x","Math","round","enabled","phase","requires","fn","state","popper","width","rects","reference","effect","elements","offsetWidth","internalInputId","useId","inputId","FormControl","InputLabel","htmlFor","VisuallyHidden","type","key","autoCapitalize","autoComplete","autoCorrect","spellCheck","SelectFieldInputWrapperContext","Provider","InputBase","renderInputWrapper","SelectFieldInputWrapper","onKeyDown","event","prev","preventDefault","startAdornment","some","endAdornment","currentTarget","Popper","anchorEl","placement","Paper","activeElement","React","Children","toArray","child","index","click","FormHelperText"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport type { Options as PopperjsOptions } from \"@popperjs/core\";\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return node?.ownerDocument || document;\n}\n\ntype TraversalFunction = (\n list: HTMLUListElement,\n item?: Element | null,\n) => ChildNode | null;\n\nconst nextItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item?.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\n\nconst previousItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item?.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\n\nconst moveFocus = (\n list: HTMLUListElement,\n currentFocus: Element | null,\n traversalFunction: TraversalFunction,\n) => {\n let nextFocus = traversalFunction(list, currentFocus) as HTMLElement | null;\n while (nextFocus) {\n if (\n currentFocus === null\n ? nextFocus === list.lastChild\n : nextFocus === currentFocus\n ) {\n break;\n }\n const disabledFocus =\n (nextFocus as HTMLInputElement).disabled ||\n nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n if (disabledFocus) {\n nextFocus = traversalFunction(list, nextFocus) as HTMLElement;\n } else {\n nextFocus.focus();\n break;\n }\n }\n};\n\nconst SelectInnerSpinButton = ({\n open,\n onClick,\n}: {\n open: boolean;\n onClick: () => void;\n}) => {\n const theme = useTheme();\n return (\n <Triangle\n onClick={onClick}\n data-testid=\"SelectFieldSpinButton\"\n css={[\n css`\n font-size: ${theme.typography.body.fontSize}px;\n transition: ${theme.transitions.duration.shorter}\n ${theme.transitions.easing.easeInOut};\n `,\n open\n ? css`\n transform: rotateX(180deg);\n `\n : null,\n ]}\n />\n );\n};\n\nconst SelectList = forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>((props, ref) => {\n return (\n <ul\n ref={ref}\n role=\"listbox\"\n tabIndex={-1}\n css={css`\n box-sizing: border-box;\n min-height: ${42 * 3.5}px;\n max-height: ${42 * 7.5}px;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n border-radius: inherit;\n `}\n {...props}\n />\n );\n});\n\nconst SelectOption = (props: React.ComponentPropsWithoutRef<\"li\">) => {\n const theme = useTheme();\n return (\n <li\n role=\"option\"\n // aria-selectedは親要素から設定するため、この値は上書きされる\n aria-selected={false}\n css={css`\n box-sizing: border-box;\n min-height: ${theme.spacing * 6}px;\n padding: 9px 12px;\n color: ${theme.palette.text.primary};\n cursor: pointer;\n background-color: ${theme.palette.background.paper};\n border-bottom: 1px solid ${theme.palette.gray[300]};\n outline: 0px;\n transition: ${theme.transitions.duration.shortest};\n\n ${css(theme.typography.body)}\n &:last-child {\n border-bottom: none;\n }\n &:hover,\n &:focus {\n background-color: ${theme.palette.action.hover};\n }\n &[aria-selected=\"true\"] {\n background-color: ${theme.palette.action.selected};\n }\n &[aria-disabled=\"true\"] {\n color: ${theme.palette.text.disabled};\n cursor: default;\n }\n &[aria-readonly=\"true\"],\n &[aria-disabled=\"true\"] {\n &:hover {\n background-color: ${theme.palette.background.paper};\n }\n }\n `}\n {...props}\n />\n );\n};\n\nexport interface SelectOptionValue {\n value: string | undefined;\n label: string;\n keys?: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nexport type RenderSelectOption<\n T extends SelectOptionValue = SelectOptionValue,\n> = (peops: T) => React.JSX.Element;\n\nexport interface SelectFieldProps<\n T extends SelectOptionValue = SelectOptionValue,\n> extends Pick<FieldProps<string>, \"helperText\" | \"invalid\">,\n FieldGroupProps {\n renderOption?: RenderSelectOption<T>;\n children?: React.ReactNode;\n /**\n * 見出し\n */\n label?: string;\n name?: string;\n defaultValue?: string;\n /**\n * valueの変更は、defaultValueが指定されていないときのみ反映されます。\n */\n value?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n id?: string;\n className?: string;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * selecting data is required\n */\n required?: boolean;\n options?: T[];\n loadOptions?: SelectLoadOptions<T>;\n disabledInput?: boolean;\n readOnly?: boolean;\n /**\n * SelectFieldのOptionがクリックされた際に発火する関数。\n */\n onChange?: (value: T[\"value\"], options: T) => void;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n loading?: boolean;\n originalInputTestId?: string;\n pseudoInputTestId?: string;\n /**\n * オプションの表示にPortalを利用するかどうかを指定します。\n * このpropがtrueの場合、Portalが無効化されます。\n * また初期値がtrueであることに注意してください。\n * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。\n * @default true\n */\n disablePortal?: boolean;\n /**\n * 見かけ上のinput要素に対するrefを利用できます。\n * 選択された値を取得する場合などは、inputHasValueRefを利用してください。\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * 選択された値を保持しているinput要素に対するrefを利用できます。\n * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。\n */\n inputHasValueRef?: React.Ref<HTMLInputElement>;\n}\n\nexport const filterSelectOptionsByQuery = <\n T extends SelectOptionValue = SelectOptionValue,\n>(\n options: T[],\n query: string,\n) => {\n const result = getSearch(\n options.map((option) => {\n return {\n ...option,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n keys: option.keys || [option.label],\n content: option.value,\n };\n }),\n query,\n );\n return result;\n};\n\nexport type SelectLoadOptions<T extends SelectOptionValue = SelectOptionValue> =\n (args: {\n query: string;\n options?: T[];\n selectedOptions?: T[];\n }) => Promise<T[] | undefined>;\n\nconst defaultLoadOptions = async <\n T extends SelectOptionValue = SelectOptionValue,\n>({\n query,\n options,\n}: {\n query: string;\n options?: T[];\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<T[] | undefined> => {\n if (options === undefined) {\n return undefined;\n }\n if (query === undefined) {\n return options;\n }\n const result = filterSelectOptionsByQuery(options, query);\n return result.length ? result : options;\n};\n\nconst DefaultOption = <T extends SelectOptionValue>(\n props: T,\n): React.JSX.Element => {\n return <span>{props.label}</span>;\n};\n\nexport const SelectField = <T extends SelectOptionValue>(\n props: SelectFieldProps<T>,\n) => {\n const {\n label,\n name,\n options: propOptions,\n loadOptions = defaultLoadOptions,\n disabledInput,\n onChange,\n onFocus,\n placeholder,\n required,\n id,\n value: _valueProp,\n defaultValue,\n disabled,\n children,\n helperText,\n invalid,\n loading: propsLoading,\n readOnly: propsReadOnly,\n style,\n className,\n originalInputTestId,\n pseudoInputTestId,\n disablePortal = true,\n renderOption = DefaultOption,\n inputRef,\n inputHasValueRef,\n } = props;\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const [query, setQuery] = useState<string>(\"\");\n const selectedOptionsCache = useRef<T[] | undefined>(propOptions);\n const [options, setOptions] = useState(propOptions);\n\n useEffect(() => {\n void loadOptions({\n query,\n options: propOptions,\n selectedOptions: selectedOptionsCache.current,\n }).then((result) => {\n setOptions(result);\n });\n }, [propOptions, loadOptions, query]);\n\n const [value, setValue, isControlled] = useInputValue(props);\n\n const { loading, readOnly } = useFieldGroup({\n loading: propsLoading,\n readOnly: propsReadOnly,\n onLoaded: () => {\n if (isControlled === false) {\n setValue(defaultValue);\n }\n },\n });\n\n const displayValue = useMemo(() => {\n return (\n selectedOptionsCache.current?.find(\n (option) => option.value === value,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ) || options?.find((option) => option.value === value)\n )?.label;\n }, [options, value]);\n\n const listRef = useRef<HTMLUListElement>(null);\n useOnClickOutside([ref, listRef], () => {\n setOpen(false);\n setQuery(\"\");\n });\n\n const pseudoInputRef = useRef<HTMLInputElement>(null);\n const pseudoInputRefs = useMergeRefs(inputRef, pseudoInputRef);\n const originalInputRef = useRef<HTMLInputElement>(null);\n const originalInputRefs = useMergeRefs(inputHasValueRef, originalInputRef);\n\n const updateValue = useCallback(\n (option: T) => {\n onChange?.(option.value, option);\n setValue(option.value);\n selectedOptionsCache.current = options;\n setQuery(\"\");\n if (originalInputRef.current) {\n dispatchChangeEvent(originalInputRef.current, option.value);\n }\n },\n [onChange, options, setValue],\n );\n\n const resetValue = useCallback(() => {\n setValue(undefined);\n if (onChange) {\n const option =\n options?.find((option) => option.value === undefined) ??\n ({ value: undefined, label: \"\" } as T);\n onChange(undefined, option);\n }\n }, [onChange, options, setValue]);\n\n const [touched, inputProps] = useDitectInputTouched(onFocus);\n\n const popperOptions: Partial<PopperjsOptions> = useMemo(() => {\n return {\n modifiers: [\n disablePortal\n ? {\n name: \"computeStyles\",\n options: {\n roundOffsets: ({ y }: { y: number }) => ({\n x: 0,\n y: Math.round(y),\n }),\n },\n }\n : {},\n {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n },\n ],\n };\n }, [disablePortal]);\n\n const internalInputId = useId();\n const inputId = id ?? internalInputId;\n\n return (\n <FormControl style={style} className={className}>\n {label ? (\n <InputLabel\n htmlFor={inputId}\n aria-disabled={disabled}\n required={required}\n loading={loading}\n >\n {label}\n </InputLabel>\n ) : null}\n <VisuallyHidden>\n <input\n ref={originalInputRefs}\n type=\"text\"\n data-testid={originalInputTestId}\n required={required}\n name={name}\n key={value}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ const positionRelativeStyle = process.env.NODE_ENV === "production" ? {
|
|
|
12
12
|
styles: "position:relative"
|
|
13
13
|
} : {
|
|
14
14
|
name: "i6mmos-positionRelativeStyle",
|
|
15
|
-
styles: "position:relative;label:positionRelativeStyle;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15
|
+
styles: "position:relative;label:positionRelativeStyle;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TaGltbWVyRWZmZWN0L1NoaW1tZXJFZmZlY3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlpQyIsImZpbGUiOiIuLi8uLi8uLi9zcmMvU2hpbW1lckVmZmVjdC9TaGltbWVyRWZmZWN0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcywganN4LCBTZXJpYWxpemVkU3R5bGVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyB1c2VTaGltbWVyRWZmZWN0IH0gZnJvbSBcIi4vdXNlU2hpbW1lckVmZmVjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5jb25zdCBwb3NpdGlvblJlbGF0aXZlU3R5bGUgPSBjc3NgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbi8qKlxuICog6KaB57Sg44Gu5aSn44GN44GV44Gr5ZCI44KP44Gb44Gf44Ot44O844OH44Kj44Oz44Kw55So44Gu6KGo56S644KS5L2c44KL44GT44Go44GM44Gn44GN44G+44GZ44CCXG4gKlxuICogKirpganjgZfjgZ/opoHntKAqKlxuICpcbiAqIC0g44Ot44O844OH44Kj44Oz44Kw5YmN44GL44KJ5aSn44GN44GV44Gv5Zu65a6a44Gg44GM44CB5YWl44KM44KL5aC05omA44Gr44KI44Gj44Gm5aSn44GN44GV44GM5aSJ5YuV44GX44Gm44GX44G+44GG6KaB57SgXG4gKi9cbmV4cG9ydCBjb25zdCBTaGltbWVyRWZmZWN0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGFjdGl2ZSxcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudDx7XG4gICAgY3NzPzogU2VyaWFsaXplZFN0eWxlcyB8IFNlcmlhbGl6ZWRTdHlsZXNbXTtcbiAgfT47XG4gIGFjdGl2ZT86IGJvb2xlYW47XG59KSA9PiB7XG4gIGNvbnN0IHN0eWxlID0gdXNlU2hpbW1lckVmZmVjdCgpO1xuICBpZiAoYWN0aXZlICE9PSB0cnVlKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG5cbiAgaWYgKGNoaWxkcmVuLnByb3BzLmNzcykge1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIC4uLmNoaWxkcmVuLnByb3BzLFxuXG4gICAgICBjc3M6IFtwb3NpdGlvblJlbGF0aXZlU3R5bGUsIGNoaWxkcmVuLnByb3BzLmNzcywgc3R5bGVdLmZsYXQoKSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4ganN4KGNoaWxkcmVuLnR5cGUsIHtcbiAgICBrZXk6IGNoaWxkcmVuLmtleSxcbiAgICAuLi5jaGlsZHJlbi5wcm9wcyxcbiAgICBjc3M6IFtwb3NpdGlvblJlbGF0aXZlU3R5bGUsIHN0eWxlXSxcbiAgfSk7XG59O1xuIl19 */",
|
|
16
16
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -31,13 +31,10 @@ const ShimmerEffect = ({
|
|
|
31
31
|
if (active !== true) {
|
|
32
32
|
return children;
|
|
33
33
|
}
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
35
34
|
if (children.props.css) {
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
37
35
|
return /*#__PURE__*/_react2.default.cloneElement(children, {
|
|
38
36
|
...children.props,
|
|
39
|
-
|
|
40
|
-
css: [positionRelativeStyle, children.props.css, style]
|
|
37
|
+
css: [positionRelativeStyle, children.props.css, style].flat()
|
|
41
38
|
});
|
|
42
39
|
}
|
|
43
40
|
return (0, _react.jsx)(children.type, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShimmerEffect.js","names":["_react","require","_useShimmerEffect","_react2","_interopRequireDefault","e","__esModule","default","_EMOTION_STRINGIFIED_CSS_ERROR__","positionRelativeStyle","process","env","NODE_ENV","name","styles","toString","ShimmerEffect","children","active","style","useShimmerEffect","props","css","React","cloneElement","jsx","type","key","exports"],"sources":["../../../src/ShimmerEffect/ShimmerEffect.tsx"],"sourcesContent":["import { css, jsx } from \"@emotion/react\";\nimport { useShimmerEffect } from \"./useShimmerEffect\";\nimport React from \"react\";\n\nconst positionRelativeStyle = css`\n position: relative;\n`;\n\n/**\n * 要素の大きさに合わせたローディング用の表示を作ることができます。\n *\n * **適した要素**\n *\n * - ローディング前から大きさは固定だが、入れる場所によって大きさが変動してしまう要素\n */\nexport const ShimmerEffect = ({\n children,\n active,\n}: {\n children: React.ReactElement;\n active?: boolean;\n}) => {\n const style = useShimmerEffect();\n if (active !== true) {\n return children;\n }\n
|
|
1
|
+
{"version":3,"file":"ShimmerEffect.js","names":["_react","require","_useShimmerEffect","_react2","_interopRequireDefault","e","__esModule","default","_EMOTION_STRINGIFIED_CSS_ERROR__","positionRelativeStyle","process","env","NODE_ENV","name","styles","toString","ShimmerEffect","children","active","style","useShimmerEffect","props","css","React","cloneElement","flat","jsx","type","key","exports"],"sources":["../../../src/ShimmerEffect/ShimmerEffect.tsx"],"sourcesContent":["import { css, jsx, SerializedStyles } from \"@emotion/react\";\nimport { useShimmerEffect } from \"./useShimmerEffect\";\nimport React from \"react\";\n\nconst positionRelativeStyle = css`\n position: relative;\n`;\n\n/**\n * 要素の大きさに合わせたローディング用の表示を作ることができます。\n *\n * **適した要素**\n *\n * - ローディング前から大きさは固定だが、入れる場所によって大きさが変動してしまう要素\n */\nexport const ShimmerEffect = ({\n children,\n active,\n}: {\n children: React.ReactElement<{\n css?: SerializedStyles | SerializedStyles[];\n }>;\n active?: boolean;\n}) => {\n const style = useShimmerEffect();\n if (active !== true) {\n return children;\n }\n\n if (children.props.css) {\n return React.cloneElement(children, {\n ...children.props,\n\n css: [positionRelativeStyle, children.props.css, style].flat(),\n });\n }\n return jsx(children.type, {\n key: children.key,\n ...children.props,\n css: [positionRelativeStyle, style],\n });\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA0B,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,iCAAA;AAE1B,MAAMC,qBAAqB,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,QAAA,EAAAP;AAAA,CAE1B;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMQ,aAAa,GAAGA,CAAC;EAC5BC,QAAQ;EACRC;AAMF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG,IAAAC,kCAAgB,EAAC,CAAC;EAChC,IAAIF,MAAM,KAAK,IAAI,EAAE;IACnB,OAAOD,QAAQ;EACjB;EAEA,IAAIA,QAAQ,CAACI,KAAK,CAACC,GAAG,EAAE;IACtB,oBAAOC,eAAK,CAACC,YAAY,CAACP,QAAQ,EAAE;MAClC,GAAGA,QAAQ,CAACI,KAAK;MAEjBC,GAAG,EAAE,CAACb,qBAAqB,EAAEQ,QAAQ,CAACI,KAAK,CAACC,GAAG,EAAEH,KAAK,CAAC,CAACM,IAAI,CAAC;IAC/D,CAAC,CAAC;EACJ;EACA,OAAO,IAAAC,UAAG,EAACT,QAAQ,CAACU,IAAI,EAAE;IACxBC,GAAG,EAAEX,QAAQ,CAACW,GAAG;IACjB,GAAGX,QAAQ,CAACI,KAAK;IACjBC,GAAG,EAAE,CAACb,qBAAqB,EAAEU,KAAK;EACpC,CAAC,CAAC;AACJ,CAAC;AAACU,OAAA,CAAAb,aAAA,GAAAA,aAAA","ignoreList":[]}
|
package/cjs/SortArea/index.js
CHANGED
|
@@ -50,7 +50,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
50
50
|
styles: "& [draggable=\"true\"]{z-index:0;box-sizing:border-box;cursor:grab;user-select:none;transition:transform 0.2s ease-out,outline 0.2s ease-out;&[data-drag-state=\"over\"]{outline:2px dotted rgba(0, 0, 0, 0.2);}&[data-drag-state=\"dragging\"]{z-index:999;cursor:grabbing;opacity:0.5;transform:scale(0.8);}}"
|
|
51
51
|
} : {
|
|
52
52
|
name: "cep9g1-SortAreaInner",
|
|
53
|
-
styles: "& [draggable=\"true\"]{z-index:0;box-sizing:border-box;cursor:grab;user-select:none;transition:transform 0.2s ease-out,outline 0.2s ease-out;&[data-drag-state=\"over\"]{outline:2px dotted rgba(0, 0, 0, 0.2);}&[data-drag-state=\"dragging\"]{z-index:999;cursor:grabbing;opacity:0.5;transform:scale(0.8);}};label:SortAreaInner;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Tb3J0QXJlYS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUtjIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9Tb3J0QXJlYS9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uICovXG5pbXBvcnQgeyBSb3csIFJvd1Byb3BzIH0gZnJvbSBcIi4uL0xheW91dHNcIjtcbmltcG9ydCB7IGFycmF5U2hhbGxvd0VxdWFsIH0gZnJvbSBcIi4uL0B1dGlscy9hcnJheVNoYWxsb3dFcXVhbFwiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYXJyID0gc3RyLnNwbGl0KFwiLVwiKTtcbiAgY29uc3QgY2FwaXRhbCA9IGFyci5tYXAoKGl0ZW0sIGluZGV4KSA9PlxuICAgIGluZGV4ID8gaXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0uc2xpY2UoMSkudG9Mb3dlckNhc2UoKSA6IGl0ZW0sXG4gICk7XG4gIGNvbnN0IGNhcGl0YWxTdHJpbmcgPSBjYXBpdGFsLmpvaW4oXCJcIik7XG4gIHJldHVybiBjYXBpdGFsU3RyaW5nO1xufTtcblxuY29uc3QgZGF0YWlkID0gXCJkYXRhLXNvcnQtYXJlYS1pdGVtLWluZGV4XCI7XG5jb25zdCBkYXRhSWQgPSBjYW1lbGl6ZShkYXRhaWQucmVwbGFjZShcImRhdGEtXCIsIFwiXCIpKTtcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0QXJlYVByb3BzIGV4dGVuZHMgT21pdDxSb3dQcm9wcywgXCJvbkNoYW5nZVwiPiB7XG4gIC8qKlxuICAgKiDjgZPjga7jgrPjg7Pjg53jg7zjg43jg7Pjg4jjga7lrZDopoHntKDjga9rZXnlsZ7mgKfjgpLlv4XjgZrmjIHjgaPjgabjgYTjgovlv4XopoHjgYzjgYLjgorjgb7jgZnjgIJcbiAgICoga2V544GvdW5pcXVl44Gn44Gq44GR44KM44Gw44Gq44KK44G+44Gb44KT44CC5rG644GX44Gm5a6J55u044GqbWFw44GuaW5kZXjjgarjganjgpLmuKHjgZXjgarjgYTjgojjgYbjgavjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44G+
|
|
53
|
+
styles: "& [draggable=\"true\"]{z-index:0;box-sizing:border-box;cursor:grab;user-select:none;transition:transform 0.2s ease-out,outline 0.2s ease-out;&[data-drag-state=\"over\"]{outline:2px dotted rgba(0, 0, 0, 0.2);}&[data-drag-state=\"dragging\"]{z-index:999;cursor:grabbing;opacity:0.5;transform:scale(0.8);}};label:SortAreaInner;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Tb3J0QXJlYS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUtjIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9Tb3J0QXJlYS9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uICovXG5pbXBvcnQgeyBSb3csIFJvd1Byb3BzIH0gZnJvbSBcIi4uL0xheW91dHNcIjtcbmltcG9ydCB7IGFycmF5U2hhbGxvd0VxdWFsIH0gZnJvbSBcIi4uL0B1dGlscy9hcnJheVNoYWxsb3dFcXVhbFwiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYXJyID0gc3RyLnNwbGl0KFwiLVwiKTtcbiAgY29uc3QgY2FwaXRhbCA9IGFyci5tYXAoKGl0ZW0sIGluZGV4KSA9PlxuICAgIGluZGV4ID8gaXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0uc2xpY2UoMSkudG9Mb3dlckNhc2UoKSA6IGl0ZW0sXG4gICk7XG4gIGNvbnN0IGNhcGl0YWxTdHJpbmcgPSBjYXBpdGFsLmpvaW4oXCJcIik7XG4gIHJldHVybiBjYXBpdGFsU3RyaW5nO1xufTtcblxuY29uc3QgZGF0YWlkID0gXCJkYXRhLXNvcnQtYXJlYS1pdGVtLWluZGV4XCI7XG5jb25zdCBkYXRhSWQgPSBjYW1lbGl6ZShkYXRhaWQucmVwbGFjZShcImRhdGEtXCIsIFwiXCIpKTtcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0QXJlYVByb3BzIGV4dGVuZHMgT21pdDxSb3dQcm9wcywgXCJvbkNoYW5nZVwiPiB7XG4gIC8qKlxuICAgKiDjgZPjga7jgrPjg7Pjg53jg7zjg43jg7Pjg4jjga7lrZDopoHntKDjga9rZXnlsZ7mgKfjgpLlv4XjgZrmjIHjgaPjgabjgYTjgovlv4XopoHjgYzjgYLjgorjgb7jgZnjgIJcbiAgICoga2V544GvdW5pcXVl44Gn44Gq44GR44KM44Gw44Gq44KK44G+44Gb44KT44CC5rG644GX44Gm5a6J55u044GqbWFw44GuaW5kZXjjgarjganjgpLmuKHjgZXjgarjgYTjgojjgYbjgavjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44G+44Gf5a2Q44Kz44Oz44Od44O844ON44Oz44OI44Gv5Lu75oSP44GucHJvcHPjgpLlj5fjgZHlj5bjgozjgovjgojjgYbjgavjgarjgaPjgabjgYTjgovlv4XopoHjgYzjgYLjgorjgb7jgZnjgIJcbiAgICovXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PltdO1xuICAvKipcbiAgICog5Lim44Gz6aCG44KS566h55CG44GZ44KL44Gf44KB44Gu6YWN5YiX44Gn44GZ44CCXG4gICAqIOOBk+OCjOOBjOWtmOWcqOOBl+OBquOBhOWgtOWQiOOAgVNvcnRBcmVh44Gv54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBsaXN0PzogYW55W107XG4gIC8qKlxuICAgKiDkuKbjgbPpoIbjgYzlpInmm7TjgZXjgozjgZ/mmYLjgavlkbzjgbDjgozjgovjgrPjg7zjg6vjg5Djg4Pjgq/jgafjgZnjgIJcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIG9uQ2hhbmdlPzogKGtleXM6IGFueVtdKSA9PiB2b2lkO1xuICAvKipcbiAgICog5YWI6aCt44Gr44K944O844OI5LiN5Y+v44Gq6KaB57Sg44KS6L+95Yqg44GX44G+44GZ44CCXG4gICAqL1xuICBzdGFydEFkb3JubWVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOacq+WwvuOBq+OCveODvOODiOS4jeWPr+OBquimgee0oOOCkui/veWKoOOBl+OBvuOBmeOAglxuICAgKi9cbiAgZW5kQWRvcm5tZW50PzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICog44K944O844OI5qmf6IO944KS54Sh5Yq55YyW44GX44G+44GZ44CCXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTb3J0QXJlYSA9ICh7XG4gIC8qKlxuICAgKiBkaXNhYmxlZOOBruWgtOWQiOOBq+S4jeimgeOBqlJvd1Byb3Bz44Go44Gu5beu5YiG44Gu44G/5piO56S655qE44Gr5omx44GG44CCXG4gICAqL1xuICBsaXN0LFxuICBzdGFydEFkb3JubWVudCxcbiAgZW5kQWRvcm5tZW50LFxuICBjaGlsZHJlbixcbiAgb25DaGFuZ2UsXG4gIGRpc2FibGVkLFxuICAuLi5wcm9wc1xufTogU29ydEFyZWFQcm9wcykgPT4ge1xuICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkIHx8IGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSb3cgey4uLnByb3BzfT5cbiAgICAgICAge3N0YXJ0QWRvcm5tZW50fVxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtlbmRBZG9ybm1lbnR9XG4gICAgICA8L1Jvdz5cbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgPFNvcnRBcmVhSW5uZXJcbiAgICAgIGxpc3Q9e2xpc3R9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBzdGFydEFkb3JubWVudD17c3RhcnRBZG9ybm1lbnR9XG4gICAgICBlbmRBZG9ybm1lbnQ9e2VuZEFkb3JubWVudH1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Tb3J0QXJlYUlubmVyPlxuICApO1xufTtcblxuaW50ZXJmYWNlIFNvcnRBcmVhSW5uZXJQcm9wcyBleHRlbmRzIFNvcnRBcmVhUHJvcHMge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBsaXN0OiBhbnlbXTtcbn1cblxuY29uc3QgU29ydEFyZWFJbm5lciA9ICh7XG4gIGNoaWxkcmVuLFxuICBvbkNoYW5nZSxcbiAgbGlzdDogbGlzdFByb3AsXG4gIHN0YXJ0QWRvcm5tZW50LFxuICBlbmRBZG9ybm1lbnQsXG4gIC4uLnByb3BzXG59OiBTb3J0QXJlYUlubmVyUHJvcHMpID0+IHtcbiAgY29uc3QgY2FjaGUgPSB1c2VSZWYoLTEpO1xuICBjb25zdCBbX2xpc3QsIF9zZXRMaXN0XSA9IHVzZVN0YXRlKGxpc3RQcm9wKTtcblxuICBjb25zdCBsaXN0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgcmV0dXJuIGFycmF5U2hhbGxvd0VxdWFsKF9saXN0LCBsaXN0UHJvcCkgPyBfbGlzdCA6IGxpc3RQcm9wO1xuICB9LCBbX2xpc3QsIGxpc3RQcm9wXSk7XG5cbiAgY29uc3Qgc2V0TGlzdCA9IHVzZUNhbGxiYWNrKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKHZhbHVlOiAoY3VycmVudDogYW55W10pID0+IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gdmFsdWUobGlzdCk7XG4gICAgICBfc2V0TGlzdChuZXh0KTtcbiAgICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgICBvbkNoYW5nZShuZXh0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtsaXN0LCBvbkNoYW5nZV0sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ1N0YXJ0ID0gdXNlQ2FsbGJhY2soKGU6IFJlYWN0LkRyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBlLmN1cnJlbnRUYXJnZXQuZGF0YXNldC5kcmFnU3RhdGUgPSBcImRyYWdnaW5nXCI7XG4gICAgZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9IFwibW92ZVwiO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0xlYXZlID0gdXNlQ2FsbGJhY2soKGU6IFJlYWN0LkRyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuZHJhZ1N0YXRlICE9PSBcImRyYWdnaW5nXCIpIHtcbiAgICAgIGRlbGV0ZSBlLmN1cnJlbnRUYXJnZXQuZGF0YXNldC5kcmFnU3RhdGU7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgY29uc3Qgb3ZlclJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4odW5kZWZpbmVkKTtcblxuICBjb25zdCBoYW5kbGVEcmFnT3ZlciA9IHVzZUNhbGxiYWNrKChlOiBSZWFjdC5EcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUuY3VycmVudFRhcmdldC5kcmFnZ2FibGUgPT09IHRydWUpIHtcbiAgICAgIGlmICghZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuZHJhZ1N0YXRlKSB7XG4gICAgICAgIGUuY3VycmVudFRhcmdldC5kYXRhc2V0LmRyYWdTdGF0ZSA9IFwib3ZlclwiO1xuICAgICAgICBvdmVyUmVmLmN1cnJlbnQgPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICB9XG4gICAgICBjYWNoZS5jdXJyZW50ID0gcGFyc2VJbnQoZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXRbZGF0YUlkXSEsIDEwKTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5EcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBwYXJzZUludChlLmN1cnJlbnRUYXJnZXQuZGF0YXNldFtkYXRhSWRdISwgMTApO1xuICAgICAgZGVsZXRlIGUuY3VycmVudFRhcmdldC5kYXRhc2V0LmRyYWdTdGF0ZTtcbiAgICAgIGRlbGV0ZSBvdmVyUmVmLmN1cnJlbnQ/LmRhdGFzZXQuZHJhZ1N0YXRlO1xuICAgICAgZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IFwibW92ZVwiO1xuXG4gICAgICBzZXRMaXN0KChwcmV2KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGNhY2hlLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBwcmV2LmNvbmNhdCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gY29weS5zcGxpY2UoY3VycmVudEluZGV4LCAxKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICAgICAgY29weS5zcGxpY2UobmV4dEluZGV4LCAwLCAuLi5jdXJyZW50KTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbc2V0TGlzdF0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Um93XG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgJiBbZHJhZ2dhYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgdHJhbnNmb3JtIDAuMnMgZWFzZS1vdXQsXG4gICAgICAgICAgICBvdXRsaW5lIDAuMnMgZWFzZS1vdXQ7XG5cbiAgICAgICAgICAmW2RhdGEtZHJhZy1zdGF0ZT1cIm92ZXJcIl0ge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IGRvdHRlZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJltkYXRhLWRyYWctc3RhdGU9XCJkcmFnZ2luZ1wiXSB7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA+XG4gICAgICB7c3RhcnRBZG9ybm1lbnR9XG4gICAgICB7UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgIG9uRHJhZ1N0YXJ0OiBoYW5kbGVEcmFnU3RhcnQsXG4gICAgICAgICAgb25EcmFnT3ZlcjogaGFuZGxlRHJhZ092ZXIsXG4gICAgICAgICAgb25EcmFnRW5kOiBoYW5kbGVEcmFnRW5kLFxuICAgICAgICAgIG9uRHJhZ0xlYXZlOiBoYW5kbGVEcmFnTGVhdmUsXG4gICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgICAgIFtkYXRhaWRdOiBpbmRleCxcbiAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgfSk7XG4gICAgICB9KX1cbiAgICAgIHtlbmRBZG9ybm1lbnR9XG4gICAgPC9Sb3c+XG4gICk7XG59O1xuIl19 */",
|
|
54
54
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
55
55
|
};
|
|
56
56
|
const SortAreaInner = ({
|
|
@@ -85,7 +85,7 @@ const SortAreaInner = ({
|
|
|
85
85
|
delete e.currentTarget.dataset.dragState;
|
|
86
86
|
}
|
|
87
87
|
}, []);
|
|
88
|
-
const overRef = (0, _react2.useRef)();
|
|
88
|
+
const overRef = (0, _react2.useRef)(undefined);
|
|
89
89
|
const handleDragOver = (0, _react2.useCallback)(e => {
|
|
90
90
|
if (e.currentTarget.draggable === true) {
|
|
91
91
|
if (!e.currentTarget.dataset.dragState) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_Layouts","require","_arrayShallowEqual","_react","_react2","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","camelize","str","arr","split","capital","map","item","index","charAt","toUpperCase","slice","toLowerCase","capitalString","join","dataid","dataId","replace","SortArea","list","startAdornment","endAdornment","children","onChange","disabled","props","undefined","jsx","Row","SortAreaInner","exports","_ref","process","env","NODE_ENV","name","styles","toString","listProp","cache","useRef","_list","_setList","useState","useMemo","arrayShallowEqual","setList","useCallback","value","next","handleDragStart","currentTarget","dataset","dragState","dataTransfer","effectAllowed","handleDragLeave","overRef","handleDragOver","draggable","current","parseInt","handleDragEnd","currentIndex","dropEffect","prev","nextIndex","copy","concat","splice","css","React","Children","child","cloneElement","onDragStart","onDragOver","onDragEnd","onDragLeave"],"sources":["../../../src/SortArea/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Row, RowProps } from \"../Layouts\";\nimport { arrayShallowEqual } from \"../@utils/arrayShallowEqual\";\nimport { css } from \"@emotion/react\";\nimport React, { useCallback, useMemo, useRef, useState } from \"react\";\n\nconst camelize = (str: string) => {\n const arr = str.split(\"-\");\n const capital = arr.map((item, index) =>\n index ? item.charAt(0).toUpperCase() + item.slice(1).toLowerCase() : item,\n );\n const capitalString = capital.join(\"\");\n return capitalString;\n};\n\nconst dataid = \"data-sort-area-item-index\";\nconst dataId = camelize(dataid.replace(\"data-\", \"\"));\n\nexport interface SortAreaProps extends Omit<RowProps, \"onChange\"> {\n /**\n * このコンポーネントの子要素はkey属性を必ず持っている必要があります。\n * keyはuniqueでなければなりません。決して安直なmapのindexなどを渡さないようにしてください。\n * また子コンポーネントは任意のpropsを受け取れるようになっている必要があります。\n */\n children: React.ReactElement[];\n /**\n * 並び順を管理するための配列です。\n * これが存在しない場合、SortAreaは無効化されます。\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n list?: any[];\n /**\n * 並び順が変更された時に呼ばれるコールバックです。\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange?: (keys: any[]) => void;\n /**\n * 先頭にソート不可な要素を追加します。\n */\n startAdornment?: React.ReactNode;\n /**\n * 末尾にソート不可な要素を追加します。\n */\n endAdornment?: React.ReactNode;\n /**\n * ソート機能を無効化します。\n */\n disabled?: boolean;\n}\n\nexport const SortArea = ({\n /**\n * disabledの場合に不要なRowPropsとの差分のみ明示的に扱う。\n */\n list,\n startAdornment,\n endAdornment,\n children,\n onChange,\n disabled,\n ...props\n}: SortAreaProps) => {\n if (list === undefined || list.length === 0) {\n return null;\n }\n if (disabled) {\n return (\n <Row {...props}>\n {startAdornment}\n {children}\n {endAdornment}\n </Row>\n );\n }\n return (\n <SortAreaInner\n list={list}\n {...props}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n onChange={onChange}\n >\n {children}\n </SortAreaInner>\n );\n};\n\ninterface SortAreaInnerProps extends SortAreaProps {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n list: any[];\n}\n\nconst SortAreaInner = ({\n children,\n onChange,\n list: listProp,\n startAdornment,\n endAdornment,\n ...props\n}: SortAreaInnerProps) => {\n const cache = useRef(-1);\n const [_list, _setList] = useState(listProp);\n\n const list = useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return arrayShallowEqual(_list, listProp) ? _list : listProp;\n }, [_list, listProp]);\n\n const setList = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (value: (current: any[]) => any[]) => {\n const next = value(list);\n _setList(next);\n if (onChange) {\n onChange(next);\n }\n },\n [list, onChange],\n );\n\n const handleDragStart = useCallback((e: React.DragEvent<HTMLDivElement>) => {\n e.currentTarget.dataset.dragState = \"dragging\";\n e.dataTransfer.effectAllowed = \"move\";\n }, []);\n\n const handleDragLeave = useCallback((e: React.DragEvent<HTMLDivElement>) => {\n if (e.currentTarget.dataset.dragState !== \"dragging\") {\n delete e.currentTarget.dataset.dragState;\n }\n }, []);\n\n const overRef = useRef<HTMLElement>();\n\n const handleDragOver = useCallback((e: React.DragEvent<HTMLDivElement>) => {\n if (e.currentTarget.draggable === true) {\n if (!e.currentTarget.dataset.dragState) {\n e.currentTarget.dataset.dragState = \"over\";\n overRef.current = e.currentTarget;\n }\n cache.current = parseInt(e.currentTarget.dataset[dataId]!, 10);\n }\n }, []);\n const handleDragEnd = useCallback(\n (e: React.DragEvent<HTMLDivElement>) => {\n const currentIndex = parseInt(e.currentTarget.dataset[dataId]!, 10);\n delete e.currentTarget.dataset.dragState;\n delete overRef.current?.dataset.dragState;\n e.dataTransfer.dropEffect = \"move\";\n\n setList((prev) => {\n const nextIndex = cache.current;\n const copy = prev.concat();\n const current = copy.splice(currentIndex, 1);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n copy.splice(nextIndex, 0, ...current);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return copy;\n });\n },\n [setList],\n );\n\n return (\n <Row\n {...props}\n css={css`\n & [draggable=\"true\"] {\n z-index: 0;\n box-sizing: border-box;\n cursor: grab;\n user-select: none;\n transition:\n transform 0.2s ease-out,\n outline 0.2s ease-out;\n\n &[data-drag-state=\"over\"] {\n outline: 2px dotted rgba(0, 0, 0, 0.2);\n }\n\n &[data-drag-state=\"dragging\"] {\n z-index: 999;\n cursor: grabbing;\n opacity: 0.5;\n transform: scale(0.8);\n }\n }\n `}\n >\n {startAdornment}\n {React.Children.map(children, (child, index: number) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return React.cloneElement(child, {\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragEnd: handleDragEnd,\n onDragLeave: handleDragLeave,\n draggable: true,\n [dataid]: index,\n ...child.props,\n });\n })}\n {endAdornment}\n </Row>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_Layouts","require","_arrayShallowEqual","_react","_react2","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","camelize","str","arr","split","capital","map","item","index","charAt","toUpperCase","slice","toLowerCase","capitalString","join","dataid","dataId","replace","SortArea","list","startAdornment","endAdornment","children","onChange","disabled","props","undefined","jsx","Row","SortAreaInner","exports","_ref","process","env","NODE_ENV","name","styles","toString","listProp","cache","useRef","_list","_setList","useState","useMemo","arrayShallowEqual","setList","useCallback","value","next","handleDragStart","currentTarget","dataset","dragState","dataTransfer","effectAllowed","handleDragLeave","overRef","handleDragOver","draggable","current","parseInt","handleDragEnd","currentIndex","dropEffect","prev","nextIndex","copy","concat","splice","css","React","Children","child","cloneElement","onDragStart","onDragOver","onDragEnd","onDragLeave"],"sources":["../../../src/SortArea/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Row, RowProps } from \"../Layouts\";\nimport { arrayShallowEqual } from \"../@utils/arrayShallowEqual\";\nimport { css } from \"@emotion/react\";\nimport React, { useCallback, useMemo, useRef, useState } from \"react\";\n\nconst camelize = (str: string) => {\n const arr = str.split(\"-\");\n const capital = arr.map((item, index) =>\n index ? item.charAt(0).toUpperCase() + item.slice(1).toLowerCase() : item,\n );\n const capitalString = capital.join(\"\");\n return capitalString;\n};\n\nconst dataid = \"data-sort-area-item-index\";\nconst dataId = camelize(dataid.replace(\"data-\", \"\"));\n\nexport interface SortAreaProps extends Omit<RowProps, \"onChange\"> {\n /**\n * このコンポーネントの子要素はkey属性を必ず持っている必要があります。\n * keyはuniqueでなければなりません。決して安直なmapのindexなどを渡さないようにしてください。\n * また子コンポーネントは任意のpropsを受け取れるようになっている必要があります。\n */\n children: React.ReactElement<any>[];\n /**\n * 並び順を管理するための配列です。\n * これが存在しない場合、SortAreaは無効化されます。\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n list?: any[];\n /**\n * 並び順が変更された時に呼ばれるコールバックです。\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange?: (keys: any[]) => void;\n /**\n * 先頭にソート不可な要素を追加します。\n */\n startAdornment?: React.ReactNode;\n /**\n * 末尾にソート不可な要素を追加します。\n */\n endAdornment?: React.ReactNode;\n /**\n * ソート機能を無効化します。\n */\n disabled?: boolean;\n}\n\nexport const SortArea = ({\n /**\n * disabledの場合に不要なRowPropsとの差分のみ明示的に扱う。\n */\n list,\n startAdornment,\n endAdornment,\n children,\n onChange,\n disabled,\n ...props\n}: SortAreaProps) => {\n if (list === undefined || list.length === 0) {\n return null;\n }\n if (disabled) {\n return (\n <Row {...props}>\n {startAdornment}\n {children}\n {endAdornment}\n </Row>\n );\n }\n return (\n <SortAreaInner\n list={list}\n {...props}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n onChange={onChange}\n >\n {children}\n </SortAreaInner>\n );\n};\n\ninterface SortAreaInnerProps extends SortAreaProps {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n list: any[];\n}\n\nconst SortAreaInner = ({\n children,\n onChange,\n list: listProp,\n startAdornment,\n endAdornment,\n ...props\n}: SortAreaInnerProps) => {\n const cache = useRef(-1);\n const [_list, _setList] = useState(listProp);\n\n const list = useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return arrayShallowEqual(_list, listProp) ? _list : listProp;\n }, [_list, listProp]);\n\n const setList = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (value: (current: any[]) => any[]) => {\n const next = value(list);\n _setList(next);\n if (onChange) {\n onChange(next);\n }\n },\n [list, onChange],\n );\n\n const handleDragStart = useCallback((e: React.DragEvent<HTMLDivElement>) => {\n e.currentTarget.dataset.dragState = \"dragging\";\n e.dataTransfer.effectAllowed = \"move\";\n }, []);\n\n const handleDragLeave = useCallback((e: React.DragEvent<HTMLDivElement>) => {\n if (e.currentTarget.dataset.dragState !== \"dragging\") {\n delete e.currentTarget.dataset.dragState;\n }\n }, []);\n\n const overRef = useRef<HTMLElement>(undefined);\n\n const handleDragOver = useCallback((e: React.DragEvent<HTMLDivElement>) => {\n if (e.currentTarget.draggable === true) {\n if (!e.currentTarget.dataset.dragState) {\n e.currentTarget.dataset.dragState = \"over\";\n overRef.current = e.currentTarget;\n }\n cache.current = parseInt(e.currentTarget.dataset[dataId]!, 10);\n }\n }, []);\n const handleDragEnd = useCallback(\n (e: React.DragEvent<HTMLDivElement>) => {\n const currentIndex = parseInt(e.currentTarget.dataset[dataId]!, 10);\n delete e.currentTarget.dataset.dragState;\n delete overRef.current?.dataset.dragState;\n e.dataTransfer.dropEffect = \"move\";\n\n setList((prev) => {\n const nextIndex = cache.current;\n const copy = prev.concat();\n const current = copy.splice(currentIndex, 1);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n copy.splice(nextIndex, 0, ...current);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return copy;\n });\n },\n [setList],\n );\n\n return (\n <Row\n {...props}\n css={css`\n & [draggable=\"true\"] {\n z-index: 0;\n box-sizing: border-box;\n cursor: grab;\n user-select: none;\n transition:\n transform 0.2s ease-out,\n outline 0.2s ease-out;\n\n &[data-drag-state=\"over\"] {\n outline: 2px dotted rgba(0, 0, 0, 0.2);\n }\n\n &[data-drag-state=\"dragging\"] {\n z-index: 999;\n cursor: grabbing;\n opacity: 0.5;\n transform: scale(0.8);\n }\n }\n `}\n >\n {startAdornment}\n {React.Children.map(children, (child, index: number) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return React.cloneElement(child, {\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragEnd: handleDragEnd,\n onDragLeave: handleDragLeave,\n draggable: true,\n [dataid]: index,\n ...child.props,\n });\n })}\n {endAdornment}\n </Row>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTable.js","names":["_react","_interopRequireWildcard","require","_react2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isAllRowSelected","useTable","data","props","columns","useRef","filterValues","setFilters","useState","makeSetFilter","accessor","value","prev","toggleAllRowsSelected","useCallback","setRows","copy","slice","map","row","isSelected","headers","useMemo","entries","current","Header","width","minWidth","maxWidth","align","headerProps","result","key","style","textAlign","render","column","filterValue","setFilter","dataToProps","cells","path","join","values","propsMap","setPropsMap","useEffect","rows","newRows","forEach","length","undefined","Cell","cellProps","contentProps","cell","push","cellAlign","Content","thisProps","jsx","bind","filter","toggleRowSelected","toggleRows","flag","toggleRow","pageIndex","setPageIndex","initialState","pageSize","setPageSize","canPreviousPage","canNextPage","Math","floor","nextPage","previousPage","filteredRows","setFilteredRows","fv","firstLoop","Error","j","filtered","page","gotoPage","exports"],"sources":["../../../src/Table/useTable.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/prefer-for-of,@typescript-eslint/prefer-nullish-coalescing,@typescript-eslint/no-unsafe-return */\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\ntype Values<S> = Pick<S, keyof S>;\n\ninterface Props<S> {\n key: string;\n path: number[];\n values: Values<S>;\n isSelected: boolean;\n}\n\ninterface Cell {\n key: string;\n props: UseTableCellProps<any, any>;\n // 型を軽量化するためにanyを使用\n style: Record<string, any>;\n render: () => React.ReactElement<any, any> | null;\n Content: (\n props: React.HTMLProps<HTMLDivElement> & UseTableCellProps<any, any>,\n ) => React.ReactElement<any, any> | null;\n}\ninterface Row<S> extends Props<S> {\n cells: Cell[];\n}\n\ntype Rows<S> = Row<S>[];\n\nexport interface UseTableCellProps<S, K extends keyof S> {\n cell: {\n value: S[K];\n };\n row: Props<S>;\n}\n\nlet isAllRowSelected = false;\n\nexport type TableCell<S, K extends keyof S> = (\n props: UseTableCellProps<S, K>,\n) => JSX.Element;\n\ninterface ColumnLayoutProperties {\n width?: string | number;\n minWidth?: string | number;\n maxWidth?: string | number;\n align?: React.CSSProperties[\"textAlign\"];\n cellAlign?: React.CSSProperties[\"textAlign\"];\n}\n\ntype Column<S, K extends keyof S> = {\n Header:\n | string\n | ((props: {\n toggleAllRowsSelected: () => void;\n filterValues: Values<S>;\n setFilters: (values: Values<S>) => void;\n column: {\n filterValue: S[K];\n setFilter: (value: S[K]) => void;\n };\n }) => JSX.Element);\n Cell?: (props: UseTableCellProps<S, K>) => JSX.Element;\n cellProps?: {\n style?: React.CSSProperties;\n };\n headerProps?: {\n style?: React.CSSProperties;\n };\n filter?: (\n value: S[K],\n args: {\n column: {\n filterValue: S[K];\n };\n },\n ) => boolean;\n} & ColumnLayoutProperties;\n\nexport type TableColumns<S> = {\n [K in keyof S]?: Column<S, K>;\n};\n\nexport type TableDataItem = Record<string, any>;\n\nexport const useTable = <S extends TableDataItem>({\n data,\n ...props\n}: {\n columns: {\n [K in keyof S]?: Column<S, K>;\n };\n data: S[];\n initialState?: { pageIndex?: number; pageSize?: number };\n}) => {\n const columns = useRef(props.columns);\n\n const [filterValues, setFilters] = useState({} as Values<S>);\n\n const makeSetFilter = (accessor: string) => (value: any) => {\n setFilters((prev) => {\n return {\n ...prev,\n [accessor]: value,\n };\n });\n };\n\n const toggleAllRowsSelected = useCallback(() => {\n setRows((prev) => {\n const copy = prev.slice();\n isAllRowSelected = !isAllRowSelected;\n return copy.map((row) => ({\n ...row,\n isSelected: isAllRowSelected,\n }));\n });\n }, []);\n\n const headers = useMemo(() => {\n return Object.entries(columns.current).map(\n ([accessor, { Header, width, minWidth, maxWidth, align, headerProps }]: [\n string,\n Column<any, any>,\n ]) => {\n const result: {\n key: string;\n style: Record<string, any>;\n render: () => JSX.Element | string;\n } = {\n key: accessor,\n style: {\n width,\n minWidth,\n maxWidth,\n textAlign: align,\n ...(headerProps?.style ?? {}),\n },\n render:\n typeof Header === \"string\"\n ? () => {\n return Header;\n }\n : () => {\n return Header({\n toggleAllRowsSelected,\n setFilters,\n filterValues,\n column: {\n filterValue: filterValues[accessor],\n setFilter: makeSetFilter(accessor),\n },\n });\n },\n };\n return result;\n },\n );\n }, [filterValues, toggleAllRowsSelected]);\n\n const dataToProps = useCallback((data: S[]) => {\n return data.map((cells, key) => {\n const path = [key];\n return {\n key: path.join(\".\"),\n path,\n values: cells,\n isSelected: false,\n } satisfies Props<S>;\n });\n }, []);\n const [propsMap, setPropsMap] = useState(dataToProps(data));\n useEffect(() => {\n setPropsMap(dataToProps(data));\n }, [data, dataToProps]);\n const [rows, setRows] = useState<Rows<S>>([]);\n\n useEffect(() => {\n let newRows: Rows<S> = [];\n\n propsMap.forEach((props) => {\n const { path } = props;\n\n const cells: Cell[] = [];\n\n for (let i = 0; i < headers.length; i++) {\n const { key } = headers[i];\n const value = props.values[key];\n const column = columns.current[key];\n if (column === undefined) break;\n const { Cell, cellProps } = column;\n\n const contentProps = {\n cell: { value },\n row: props,\n };\n cells.push({\n key,\n props: contentProps,\n style: {\n textAlign: column.cellAlign,\n ...(cellProps?.style ?? {}),\n },\n Content:\n Cell ||\n (({ cell, row, ...thisProps }) => {\n return <div {...thisProps}>{value}</div>;\n }),\n render:\n Cell !== undefined ? Cell.bind(null, contentProps) : () => value,\n });\n }\n\n newRows.push({\n ...props,\n cells,\n });\n newRows = newRows.filter((row) => {\n return row.path.length === 1 || row.path[0] !== path[0];\n });\n });\n setRows(newRows);\n }, [headers, propsMap]);\n\n const toggleRowSelected = useCallback(\n (toggleRows: number[], flag?: boolean) => {\n setRows((prev) => {\n const copy = prev.slice();\n toggleRows.forEach((toggleRow) => {\n copy[toggleRow].isSelected =\n flag === undefined ? !copy[toggleRow].isSelected : flag;\n });\n return copy;\n });\n },\n [],\n );\n\n const [pageIndex, setPageIndex] = useState(\n props.initialState?.pageIndex ?? 0,\n );\n const [pageSize, setPageSize] = useState(props.initialState?.pageSize ?? 10);\n\n const canPreviousPage = useMemo(() => pageIndex !== 0, [pageIndex]);\n const canNextPage = useMemo(\n () => Math.floor(data.length / pageSize) > pageIndex + 1,\n [data.length, pageIndex, pageSize],\n );\n\n const nextPage = useCallback(() => {\n setPageIndex((prev) => prev + 1);\n }, []);\n const previousPage = useCallback(() => {\n setPageIndex((prev) => prev - 1);\n }, []);\n\n const [filteredRows, setFilteredRows] = useState<Rows<S>>([]);\n\n useEffect(() => {\n const fv = Object.entries(filterValues);\n setFilteredRows(\n rows.filter((row) => {\n const values = Object.entries(row.values);\n let flag = true;\n\n firstLoop: for (let i = 0; i < fv.length; i++) {\n const [accessor, filterValue] = fv[i];\n const filter = columns.current[accessor]?.filter;\n if (filter === undefined) {\n throw new Error(`Set columns.${accessor}.filter`);\n }\n\n for (let j = 0; j < values.length; j++) {\n const [key, value] = values[j];\n if (key !== accessor) continue;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const filtered = filter(value, { column: { filterValue } });\n if (filtered === false) {\n flag = false;\n break firstLoop;\n }\n }\n }\n return flag;\n }),\n );\n }, [filterValues, rows]);\n\n const page = useMemo(\n () => filteredRows.slice(pageIndex * pageSize, (pageIndex + 1) * pageSize),\n [filteredRows, pageIndex, pageSize],\n );\n\n return {\n canPreviousPage,\n canNextPage,\n gotoPage: setPageIndex,\n nextPage,\n setPageSize,\n previousPage,\n pageIndex,\n headers,\n rows: filteredRows,\n page,\n toggleRowSelected,\n toggleAllRowsSelected,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useTable.js","names":["_react","_interopRequireWildcard","require","_react2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isAllRowSelected","useTable","data","props","columns","useRef","filterValues","setFilters","useState","makeSetFilter","accessor","value","prev","toggleAllRowsSelected","useCallback","setRows","copy","slice","map","row","isSelected","headers","useMemo","entries","current","Header","width","minWidth","maxWidth","align","headerProps","result","key","style","textAlign","render","column","filterValue","setFilter","dataToProps","cells","path","join","values","propsMap","setPropsMap","useEffect","rows","newRows","forEach","length","undefined","Cell","cellProps","contentProps","cell","push","cellAlign","Content","thisProps","jsx","bind","filter","toggleRowSelected","toggleRows","flag","toggleRow","pageIndex","setPageIndex","initialState","pageSize","setPageSize","canPreviousPage","canNextPage","Math","floor","nextPage","previousPage","filteredRows","setFilteredRows","fv","firstLoop","Error","j","filtered","page","gotoPage","exports"],"sources":["../../../src/Table/useTable.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/prefer-for-of,@typescript-eslint/prefer-nullish-coalescing,@typescript-eslint/no-unsafe-return */\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\ntype Values<S> = Pick<S, keyof S>;\n\ninterface Props<S> {\n key: string;\n path: number[];\n values: Values<S>;\n isSelected: boolean;\n}\n\ninterface Cell {\n key: string;\n props: UseTableCellProps<any, any>;\n // 型を軽量化するためにanyを使用\n style: Record<string, any>;\n render: () => React.ReactElement<any, any> | null;\n Content: (\n props: React.HTMLProps<HTMLDivElement> & UseTableCellProps<any, any>,\n ) => React.ReactElement<any, any> | null;\n}\ninterface Row<S> extends Props<S> {\n cells: Cell[];\n}\n\ntype Rows<S> = Row<S>[];\n\nexport interface UseTableCellProps<S, K extends keyof S> {\n cell: {\n value: S[K];\n };\n row: Props<S>;\n}\n\nlet isAllRowSelected = false;\n\nexport type TableCell<S, K extends keyof S> = (\n props: UseTableCellProps<S, K>,\n) => React.JSX.Element;\n\ninterface ColumnLayoutProperties {\n width?: string | number;\n minWidth?: string | number;\n maxWidth?: string | number;\n align?: React.CSSProperties[\"textAlign\"];\n cellAlign?: React.CSSProperties[\"textAlign\"];\n}\n\ntype Column<S, K extends keyof S> = {\n Header:\n | string\n | ((props: {\n toggleAllRowsSelected: () => void;\n filterValues: Values<S>;\n setFilters: (values: Values<S>) => void;\n column: {\n filterValue: S[K];\n setFilter: (value: S[K]) => void;\n };\n }) => React.JSX.Element);\n Cell?: (props: UseTableCellProps<S, K>) => React.JSX.Element;\n cellProps?: {\n style?: React.CSSProperties;\n };\n headerProps?: {\n style?: React.CSSProperties;\n };\n filter?: (\n value: S[K],\n args: {\n column: {\n filterValue: S[K];\n };\n },\n ) => boolean;\n} & ColumnLayoutProperties;\n\nexport type TableColumns<S> = {\n [K in keyof S]?: Column<S, K>;\n};\n\nexport type TableDataItem = Record<string, any>;\n\nexport const useTable = <S extends TableDataItem>({\n data,\n ...props\n}: {\n columns: {\n [K in keyof S]?: Column<S, K>;\n };\n data: S[];\n initialState?: { pageIndex?: number; pageSize?: number };\n}) => {\n const columns = useRef(props.columns);\n\n const [filterValues, setFilters] = useState({} as Values<S>);\n\n const makeSetFilter = (accessor: string) => (value: any) => {\n setFilters((prev) => {\n return {\n ...prev,\n [accessor]: value,\n };\n });\n };\n\n const toggleAllRowsSelected = useCallback(() => {\n setRows((prev) => {\n const copy = prev.slice();\n isAllRowSelected = !isAllRowSelected;\n return copy.map((row) => ({\n ...row,\n isSelected: isAllRowSelected,\n }));\n });\n }, []);\n\n const headers = useMemo(() => {\n return Object.entries(columns.current).map(\n ([accessor, { Header, width, minWidth, maxWidth, align, headerProps }]: [\n string,\n Column<any, any>,\n ]) => {\n const result: {\n key: string;\n style: Record<string, any>;\n render: () => React.JSX.Element | string;\n } = {\n key: accessor,\n style: {\n width,\n minWidth,\n maxWidth,\n textAlign: align,\n ...(headerProps?.style ?? {}),\n },\n render:\n typeof Header === \"string\"\n ? () => {\n return Header;\n }\n : () => {\n return Header({\n toggleAllRowsSelected,\n setFilters,\n filterValues,\n column: {\n filterValue: filterValues[accessor],\n setFilter: makeSetFilter(accessor),\n },\n });\n },\n };\n return result;\n },\n );\n }, [filterValues, toggleAllRowsSelected]);\n\n const dataToProps = useCallback((data: S[]) => {\n return data.map((cells, key) => {\n const path = [key];\n return {\n key: path.join(\".\"),\n path,\n values: cells,\n isSelected: false,\n } satisfies Props<S>;\n });\n }, []);\n const [propsMap, setPropsMap] = useState(dataToProps(data));\n useEffect(() => {\n setPropsMap(dataToProps(data));\n }, [data, dataToProps]);\n const [rows, setRows] = useState<Rows<S>>([]);\n\n useEffect(() => {\n let newRows: Rows<S> = [];\n\n propsMap.forEach((props) => {\n const { path } = props;\n\n const cells: Cell[] = [];\n\n for (let i = 0; i < headers.length; i++) {\n const { key } = headers[i];\n const value = props.values[key];\n const column = columns.current[key];\n if (column === undefined) break;\n const { Cell, cellProps } = column;\n\n const contentProps = {\n cell: { value },\n row: props,\n };\n cells.push({\n key,\n props: contentProps,\n style: {\n textAlign: column.cellAlign,\n ...(cellProps?.style ?? {}),\n },\n Content:\n Cell ||\n (({ cell, row, ...thisProps }) => {\n return <div {...thisProps}>{value}</div>;\n }),\n render:\n Cell !== undefined ? Cell.bind(null, contentProps) : () => value,\n });\n }\n\n newRows.push({\n ...props,\n cells,\n });\n newRows = newRows.filter((row) => {\n return row.path.length === 1 || row.path[0] !== path[0];\n });\n });\n setRows(newRows);\n }, [headers, propsMap]);\n\n const toggleRowSelected = useCallback(\n (toggleRows: number[], flag?: boolean) => {\n setRows((prev) => {\n const copy = prev.slice();\n toggleRows.forEach((toggleRow) => {\n copy[toggleRow].isSelected =\n flag === undefined ? !copy[toggleRow].isSelected : flag;\n });\n return copy;\n });\n },\n [],\n );\n\n const [pageIndex, setPageIndex] = useState(\n props.initialState?.pageIndex ?? 0,\n );\n const [pageSize, setPageSize] = useState(props.initialState?.pageSize ?? 10);\n\n const canPreviousPage = useMemo(() => pageIndex !== 0, [pageIndex]);\n const canNextPage = useMemo(\n () => Math.floor(data.length / pageSize) > pageIndex + 1,\n [data.length, pageIndex, pageSize],\n );\n\n const nextPage = useCallback(() => {\n setPageIndex((prev) => prev + 1);\n }, []);\n const previousPage = useCallback(() => {\n setPageIndex((prev) => prev - 1);\n }, []);\n\n const [filteredRows, setFilteredRows] = useState<Rows<S>>([]);\n\n useEffect(() => {\n const fv = Object.entries(filterValues);\n setFilteredRows(\n rows.filter((row) => {\n const values = Object.entries(row.values);\n let flag = true;\n\n firstLoop: for (let i = 0; i < fv.length; i++) {\n const [accessor, filterValue] = fv[i];\n const filter = columns.current[accessor]?.filter;\n if (filter === undefined) {\n throw new Error(`Set columns.${accessor}.filter`);\n }\n\n for (let j = 0; j < values.length; j++) {\n const [key, value] = values[j];\n if (key !== accessor) continue;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const filtered = filter(value, { column: { filterValue } });\n if (filtered === false) {\n flag = false;\n break firstLoop;\n }\n }\n }\n return flag;\n }),\n );\n }, [filterValues, rows]);\n\n const page = useMemo(\n () => filteredRows.slice(pageIndex * pageSize, (pageIndex + 1) * pageSize),\n [filteredRows, pageIndex, pageSize],\n );\n\n return {\n canPreviousPage,\n canNextPage,\n gotoPage: setPageIndex,\n nextPage,\n setPageSize,\n previousPage,\n pageIndex,\n headers,\n rows: filteredRows,\n page,\n toggleRowSelected,\n toggleAllRowsSelected,\n };\n};\n"],"mappings":";;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAMe,IAAAC,OAAA,GAAAD,OAAA;AAAA,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAPf;;AAyCA,IAAIW,gBAAgB,GAAG,KAAK;AAiDrB,MAAMC,QAAQ,GAAGA,CAA0B;EAChDC,IAAI;EACJ,GAAGC;AAOL,CAAC,KAAK;EACJ,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAACF,KAAK,CAACC,OAAO,CAAC;EAErC,MAAM,CAACE,YAAY,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAc,CAAC;EAE5D,MAAMC,aAAa,GAAIC,QAAgB,IAAMC,KAAU,IAAK;IAC1DJ,UAAU,CAAEK,IAAI,IAAK;MACnB,OAAO;QACL,GAAGA,IAAI;QACP,CAACF,QAAQ,GAAGC;MACd,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAED,MAAME,qBAAqB,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC9CC,OAAO,CAAEH,IAAI,IAAK;MAChB,MAAMI,IAAI,GAAGJ,IAAI,CAACK,KAAK,CAAC,CAAC;MACzBjB,gBAAgB,GAAG,CAACA,gBAAgB;MACpC,OAAOgB,IAAI,CAACE,GAAG,CAAEC,GAAG,KAAM;QACxB,GAAGA,GAAG;QACNC,UAAU,EAAEpB;MACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMqB,OAAO,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC5B,OAAO9B,MAAM,CAAC+B,OAAO,CAACnB,OAAO,CAACoB,OAAO,CAAC,CAACN,GAAG,CACxC,CAAC,CAACR,QAAQ,EAAE;MAAEe,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC,QAAQ;MAAEC,KAAK;MAAEC;IAAY,CAAC,CAGpE,KAAK;MACJ,MAAMC,MAIL,GAAG;QACFC,GAAG,EAAEtB,QAAQ;QACbuB,KAAK,EAAE;UACLP,KAAK;UACLC,QAAQ;UACRC,QAAQ;UACRM,SAAS,EAAEL,KAAK;UAChB,IAAIC,WAAW,EAAEG,KAAK,IAAI,CAAC,CAAC;QAC9B,CAAC;QACDE,MAAM,EACJ,OAAOV,MAAM,KAAK,QAAQ,GACtB,MAAM;UACJ,OAAOA,MAAM;QACf,CAAC,GACD,MAAM;UACJ,OAAOA,MAAM,CAAC;YACZZ,qBAAqB;YACrBN,UAAU;YACVD,YAAY;YACZ8B,MAAM,EAAE;cACNC,WAAW,EAAE/B,YAAY,CAACI,QAAQ,CAAC;cACnC4B,SAAS,EAAE7B,aAAa,CAACC,QAAQ;YACnC;UACF,CAAC,CAAC;QACJ;MACR,CAAC;MACD,OAAOqB,MAAM;IACf,CACF,CAAC;EACH,CAAC,EAAE,CAACzB,YAAY,EAAEO,qBAAqB,CAAC,CAAC;EAEzC,MAAM0B,WAAW,GAAG,IAAAzB,kBAAW,EAAEZ,IAAS,IAAK;IAC7C,OAAOA,IAAI,CAACgB,GAAG,CAAC,CAACsB,KAAK,EAAER,GAAG,KAAK;MAC9B,MAAMS,IAAI,GAAG,CAACT,GAAG,CAAC;MAClB,OAAO;QACLA,GAAG,EAAES,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC;QACnBD,IAAI;QACJE,MAAM,EAAEH,KAAK;QACbpB,UAAU,EAAE;MACd,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EACN,MAAM,CAACwB,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAArC,eAAQ,EAAC+B,WAAW,CAACrC,IAAI,CAAC,CAAC;EAC3D,IAAA4C,gBAAS,EAAC,MAAM;IACdD,WAAW,CAACN,WAAW,CAACrC,IAAI,CAAC,CAAC;EAChC,CAAC,EAAE,CAACA,IAAI,EAAEqC,WAAW,CAAC,CAAC;EACvB,MAAM,CAACQ,IAAI,EAAEhC,OAAO,CAAC,GAAG,IAAAP,eAAQ,EAAU,EAAE,CAAC;EAE7C,IAAAsC,gBAAS,EAAC,MAAM;IACd,IAAIE,OAAgB,GAAG,EAAE;IAEzBJ,QAAQ,CAACK,OAAO,CAAE9C,KAAK,IAAK;MAC1B,MAAM;QAAEsC;MAAK,CAAC,GAAGtC,KAAK;MAEtB,MAAMqC,KAAa,GAAG,EAAE;MAExB,KAAK,IAAI1C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuB,OAAO,CAAC6B,MAAM,EAAEpD,CAAC,EAAE,EAAE;QACvC,MAAM;UAAEkC;QAAI,CAAC,GAAGX,OAAO,CAACvB,CAAC,CAAC;QAC1B,MAAMa,KAAK,GAAGR,KAAK,CAACwC,MAAM,CAACX,GAAG,CAAC;QAC/B,MAAMI,MAAM,GAAGhC,OAAO,CAACoB,OAAO,CAACQ,GAAG,CAAC;QACnC,IAAII,MAAM,KAAKe,SAAS,EAAE;QAC1B,MAAM;UAAEC,IAAI;UAAEC;QAAU,CAAC,GAAGjB,MAAM;QAElC,MAAMkB,YAAY,GAAG;UACnBC,IAAI,EAAE;YAAE5C;UAAM,CAAC;UACfQ,GAAG,EAAEhB;QACP,CAAC;QACDqC,KAAK,CAACgB,IAAI,CAAC;UACTxB,GAAG;UACH7B,KAAK,EAAEmD,YAAY;UACnBrB,KAAK,EAAE;YACLC,SAAS,EAAEE,MAAM,CAACqB,SAAS;YAC3B,IAAIJ,SAAS,EAAEpB,KAAK,IAAI,CAAC,CAAC;UAC5B,CAAC;UACDyB,OAAO,EACLN,IAAI,KACH,CAAC;YAAEG,IAAI;YAAEpC,GAAG;YAAE,GAAGwC;UAAU,CAAC,KAAK;YAChC,OAAO,IAAAhF,OAAA,CAAAiF,GAAA,SAASD,SAAS,EAAGhD,KAAW,CAAC;UAC1C,CAAC,CAAC;UACJwB,MAAM,EACJiB,IAAI,KAAKD,SAAS,GAAGC,IAAI,CAACS,IAAI,CAAC,IAAI,EAAEP,YAAY,CAAC,GAAG,MAAM3C;QAC/D,CAAC,CAAC;MACJ;MAEAqC,OAAO,CAACQ,IAAI,CAAC;QACX,GAAGrD,KAAK;QACRqC;MACF,CAAC,CAAC;MACFQ,OAAO,GAAGA,OAAO,CAACc,MAAM,CAAE3C,GAAG,IAAK;QAChC,OAAOA,GAAG,CAACsB,IAAI,CAACS,MAAM,KAAK,CAAC,IAAI/B,GAAG,CAACsB,IAAI,CAAC,CAAC,CAAC,KAAKA,IAAI,CAAC,CAAC,CAAC;MACzD,CAAC,CAAC;IACJ,CAAC,CAAC;IACF1B,OAAO,CAACiC,OAAO,CAAC;EAClB,CAAC,EAAE,CAAC3B,OAAO,EAAEuB,QAAQ,CAAC,CAAC;EAEvB,MAAMmB,iBAAiB,GAAG,IAAAjD,kBAAW,EACnC,CAACkD,UAAoB,EAAEC,IAAc,KAAK;IACxClD,OAAO,CAAEH,IAAI,IAAK;MAChB,MAAMI,IAAI,GAAGJ,IAAI,CAACK,KAAK,CAAC,CAAC;MACzB+C,UAAU,CAACf,OAAO,CAAEiB,SAAS,IAAK;QAChClD,IAAI,CAACkD,SAAS,CAAC,CAAC9C,UAAU,GACxB6C,IAAI,KAAKd,SAAS,GAAG,CAACnC,IAAI,CAACkD,SAAS,CAAC,CAAC9C,UAAU,GAAG6C,IAAI;MAC3D,CAAC,CAAC;MACF,OAAOjD,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EACD,EACF,CAAC;EAED,MAAM,CAACmD,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAA5D,eAAQ,EACxCL,KAAK,CAACkE,YAAY,EAAEF,SAAS,IAAI,CACnC,CAAC;EACD,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAA/D,eAAQ,EAACL,KAAK,CAACkE,YAAY,EAAEC,QAAQ,IAAI,EAAE,CAAC;EAE5E,MAAME,eAAe,GAAG,IAAAlD,cAAO,EAAC,MAAM6C,SAAS,KAAK,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EACnE,MAAMM,WAAW,GAAG,IAAAnD,cAAO,EACzB,MAAMoD,IAAI,CAACC,KAAK,CAACzE,IAAI,CAACgD,MAAM,GAAGoB,QAAQ,CAAC,GAAGH,SAAS,GAAG,CAAC,EACxD,CAACjE,IAAI,CAACgD,MAAM,EAAEiB,SAAS,EAAEG,QAAQ,CACnC,CAAC;EAED,MAAMM,QAAQ,GAAG,IAAA9D,kBAAW,EAAC,MAAM;IACjCsD,YAAY,CAAExD,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EACN,MAAMiE,YAAY,GAAG,IAAA/D,kBAAW,EAAC,MAAM;IACrCsD,YAAY,CAAExD,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM,CAACkE,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAvE,eAAQ,EAAU,EAAE,CAAC;EAE7D,IAAAsC,gBAAS,EAAC,MAAM;IACd,MAAMkC,EAAE,GAAGxF,MAAM,CAAC+B,OAAO,CAACjB,YAAY,CAAC;IACvCyE,eAAe,CACbhC,IAAI,CAACe,MAAM,CAAE3C,GAAG,IAAK;MACnB,MAAMwB,MAAM,GAAGnD,MAAM,CAAC+B,OAAO,CAACJ,GAAG,CAACwB,MAAM,CAAC;MACzC,IAAIsB,IAAI,GAAG,IAAI;MAEfgB,SAAS,EAAE,KAAK,IAAInF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkF,EAAE,CAAC9B,MAAM,EAAEpD,CAAC,EAAE,EAAE;QAC7C,MAAM,CAACY,QAAQ,EAAE2B,WAAW,CAAC,GAAG2C,EAAE,CAAClF,CAAC,CAAC;QACrC,MAAMgE,MAAM,GAAG1D,OAAO,CAACoB,OAAO,CAACd,QAAQ,CAAC,EAAEoD,MAAM;QAChD,IAAIA,MAAM,KAAKX,SAAS,EAAE;UACxB,MAAM,IAAI+B,KAAK,CAAC,eAAexE,QAAQ,SAAS,CAAC;QACnD;QAEA,KAAK,IAAIyE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGxC,MAAM,CAACO,MAAM,EAAEiC,CAAC,EAAE,EAAE;UACtC,MAAM,CAACnD,GAAG,EAAErB,KAAK,CAAC,GAAGgC,MAAM,CAACwC,CAAC,CAAC;UAC9B,IAAInD,GAAG,KAAKtB,QAAQ,EAAE;UACtB;UACA,MAAM0E,QAAQ,GAAGtB,MAAM,CAACnD,KAAK,EAAE;YAAEyB,MAAM,EAAE;cAAEC;YAAY;UAAE,CAAC,CAAC;UAC3D,IAAI+C,QAAQ,KAAK,KAAK,EAAE;YACtBnB,IAAI,GAAG,KAAK;YACZ,MAAMgB,SAAS;UACjB;QACF;MACF;MACA,OAAOhB,IAAI;IACb,CAAC,CACH,CAAC;EACH,CAAC,EAAE,CAAC3D,YAAY,EAAEyC,IAAI,CAAC,CAAC;EAExB,MAAMsC,IAAI,GAAG,IAAA/D,cAAO,EAClB,MAAMwD,YAAY,CAAC7D,KAAK,CAACkD,SAAS,GAAGG,QAAQ,EAAE,CAACH,SAAS,GAAG,CAAC,IAAIG,QAAQ,CAAC,EAC1E,CAACQ,YAAY,EAAEX,SAAS,EAAEG,QAAQ,CACpC,CAAC;EAED,OAAO;IACLE,eAAe;IACfC,WAAW;IACXa,QAAQ,EAAElB,YAAY;IACtBQ,QAAQ;IACRL,WAAW;IACXM,YAAY;IACZV,SAAS;IACT9C,OAAO;IACP0B,IAAI,EAAE+B,YAAY;IAClBO,IAAI;IACJtB,iBAAiB;IACjBlD;EACF,CAAC;AACH,CAAC;AAAC0E,OAAA,CAAAtF,QAAA,GAAAA,QAAA","ignoreList":[]}
|