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":["useFieldGroup","FormControl","FormHelperText","InputBase","InputLabel","Paper","Popper","SelectFieldInputWrapper","SelectFieldInputWrapperContext","Triangle","VisuallyHidden","css","dispatchChangeEvent","getSearch","useDitectInputTouched","useInputValue","useMergeRefs","useOnClickOutside","useTheme","React","forwardRef","useCallback","useEffect","useId","useMemo","useRef","useState","SearchIcon","jsx","___EmotionJSX","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","_EMOTION_STRINGIFIED_CSS_ERROR__","SelectInnerSpinButton","_ref3","open","onClick","theme","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","props","ref","_extends","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","map","option","keys","label","content","value","defaultLoadOptions","_ref5","_asyncToGenerator","_ref4","undefined","length","_x","apply","arguments","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","setQuery","selectedOptionsCache","setOptions","selectedOptions","current","then","setValue","isControlled","onLoaded","displayValue","_ref6","_selectedOptionsCache","find","listRef","pseudoInputRef","pseudoInputRefs","originalInputRef","originalInputRefs","updateValue","resetValue","_options$find","touched","inputProps","popperOptions","modifiers","roundOffsets","_ref7","y","x","Math","round","enabled","phase","requires","fn","_ref8","state","popper","width","rects","reference","effect","_ref9","elements","offsetWidth","internalInputId","inputId","htmlFor","type","key","autoCapitalize","autoComplete","autoCorrect","spellCheck","Provider","renderInputWrapper","onKeyDown","event","prev","preventDefault","startAdornment","some","endAdornment","_pseudoInputRef$curre","currentTarget","anchorEl","placement","activeElement","Children","toArray","child","i","index","_pseudoInputRef$curre2","click"],"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":["useFieldGroup","FormControl","FormHelperText","InputBase","InputLabel","Paper","Popper","SelectFieldInputWrapper","SelectFieldInputWrapperContext","Triangle","VisuallyHidden","css","dispatchChangeEvent","getSearch","useDitectInputTouched","useInputValue","useMergeRefs","useOnClickOutside","useTheme","React","forwardRef","useCallback","useEffect","useId","useMemo","useRef","useState","SearchIcon","jsx","___EmotionJSX","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","_EMOTION_STRINGIFIED_CSS_ERROR__","SelectInnerSpinButton","_ref3","open","onClick","theme","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","props","ref","_extends","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","map","option","keys","label","content","value","defaultLoadOptions","_ref5","_asyncToGenerator","_ref4","undefined","length","_x","apply","arguments","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","setQuery","selectedOptionsCache","setOptions","selectedOptions","current","then","setValue","isControlled","onLoaded","displayValue","_ref6","_selectedOptionsCache","find","listRef","pseudoInputRef","pseudoInputRefs","originalInputRef","originalInputRefs","updateValue","resetValue","_options$find","touched","inputProps","popperOptions","modifiers","roundOffsets","_ref7","y","x","Math","round","enabled","phase","requires","fn","_ref8","state","popper","width","rects","reference","effect","_ref9","elements","offsetWidth","internalInputId","inputId","htmlFor","type","key","autoCapitalize","autoComplete","autoCorrect","spellCheck","Provider","renderInputWrapper","onKeyDown","event","prev","preventDefault","startAdornment","some","endAdornment","_pseudoInputRef$curre","currentTarget","anchorEl","placement","activeElement","Children","toArray","child","i","index","_pseudoInputRef$curre2","click"],"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":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SerializedStyles } from "@emotion/react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
/**
|
|
3
4
|
* 要素の大きさに合わせたローディング用の表示を作ることができます。
|
|
@@ -7,6 +8,8 @@ import React from "react";
|
|
|
7
8
|
* - ローディング前から大きさは固定だが、入れる場所によって大きさが変動してしまう要素
|
|
8
9
|
*/
|
|
9
10
|
export declare const ShimmerEffect: ({ children, active, }: {
|
|
10
|
-
children: React.ReactElement
|
|
11
|
+
children: React.ReactElement<{
|
|
12
|
+
css?: SerializedStyles | SerializedStyles[];
|
|
13
|
+
}>;
|
|
11
14
|
active?: boolean;
|
|
12
15
|
}) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
@@ -8,7 +8,7 @@ var positionRelativeStyle = process.env.NODE_ENV === "production" ? {
|
|
|
8
8
|
styles: "position:relative"
|
|
9
9
|
} : {
|
|
10
10
|
name: "i6mmos-positionRelativeStyle",
|
|
11
|
-
styles: "position:relative;label:positionRelativeStyle;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
11
|
+
styles: "position:relative;label:positionRelativeStyle;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TaGltbWVyRWZmZWN0L1NoaW1tZXJFZmZlY3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlpQyIsImZpbGUiOiIuLi8uLi8uLi9zcmMvU2hpbW1lckVmZmVjdC9TaGltbWVyRWZmZWN0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcywganN4LCBTZXJpYWxpemVkU3R5bGVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyB1c2VTaGltbWVyRWZmZWN0IH0gZnJvbSBcIi4vdXNlU2hpbW1lckVmZmVjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5jb25zdCBwb3NpdGlvblJlbGF0aXZlU3R5bGUgPSBjc3NgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbi8qKlxuICog6KaB57Sg44Gu5aSn44GN44GV44Gr5ZCI44KP44Gb44Gf44Ot44O844OH44Kj44Oz44Kw55So44Gu6KGo56S644KS5L2c44KL44GT44Go44GM44Gn44GN44G+44GZ44CCXG4gKlxuICogKirpganjgZfjgZ/opoHntKAqKlxuICpcbiAqIC0g44Ot44O844OH44Kj44Oz44Kw5YmN44GL44KJ5aSn44GN44GV44Gv5Zu65a6a44Gg44GM44CB5YWl44KM44KL5aC05omA44Gr44KI44Gj44Gm5aSn44GN44GV44GM5aSJ5YuV44GX44Gm44GX44G+44GG6KaB57SgXG4gKi9cbmV4cG9ydCBjb25zdCBTaGltbWVyRWZmZWN0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGFjdGl2ZSxcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudDx7XG4gICAgY3NzPzogU2VyaWFsaXplZFN0eWxlcyB8IFNlcmlhbGl6ZWRTdHlsZXNbXTtcbiAgfT47XG4gIGFjdGl2ZT86IGJvb2xlYW47XG59KSA9PiB7XG4gIGNvbnN0IHN0eWxlID0gdXNlU2hpbW1lckVmZmVjdCgpO1xuICBpZiAoYWN0aXZlICE9PSB0cnVlKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG5cbiAgaWYgKGNoaWxkcmVuLnByb3BzLmNzcykge1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIC4uLmNoaWxkcmVuLnByb3BzLFxuXG4gICAgICBjc3M6IFtwb3NpdGlvblJlbGF0aXZlU3R5bGUsIGNoaWxkcmVuLnByb3BzLmNzcywgc3R5bGVdLmZsYXQoKSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4ganN4KGNoaWxkcmVuLnR5cGUsIHtcbiAgICBrZXk6IGNoaWxkcmVuLmtleSxcbiAgICAuLi5jaGlsZHJlbi5wcm9wcyxcbiAgICBjc3M6IFtwb3NpdGlvblJlbGF0aXZlU3R5bGUsIHN0eWxlXSxcbiAgfSk7XG59O1xuIl19 */",
|
|
12
12
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
13
13
|
};
|
|
14
14
|
|
|
@@ -28,12 +28,9 @@ export var ShimmerEffect = _ref => {
|
|
|
28
28
|
if (active !== true) {
|
|
29
29
|
return children;
|
|
30
30
|
}
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
32
31
|
if (children.props.css) {
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
34
32
|
return /*#__PURE__*/React.cloneElement(children, _extends({}, children.props, {
|
|
35
|
-
|
|
36
|
-
css: [positionRelativeStyle, children.props.css, style]
|
|
33
|
+
css: [positionRelativeStyle, children.props.css, style].flat()
|
|
37
34
|
}));
|
|
38
35
|
}
|
|
39
36
|
return jsx(children.type, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShimmerEffect.js","names":["css","jsx","useShimmerEffect","React","positionRelativeStyle","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","ShimmerEffect","_ref","children","active","style","props","cloneElement","_extends","type","key"],"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":["css","jsx","useShimmerEffect","React","positionRelativeStyle","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","ShimmerEffect","_ref","children","active","style","props","cloneElement","_extends","flat","type","key"],"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,SAASA,GAAG,EAAEC,GAAG,QAA0B,gBAAgB;AAC3D,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,OAAOC,KAAK,MAAM,OAAO;AAEzB,IAAMC,qBAAqB,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,QAAA,EAAAC;AAAA,CAE1B;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAGC,IAAA,IAQvB;EAAA,IARwB;IAC5BC,QAAQ;IACRC;EAMF,CAAC,GAAAF,IAAA;EACC,IAAMG,KAAK,GAAGd,gBAAgB,CAAC,CAAC;EAChC,IAAIa,MAAM,KAAK,IAAI,EAAE;IACnB,OAAOD,QAAQ;EACjB;EAEA,IAAIA,QAAQ,CAACG,KAAK,CAACjB,GAAG,EAAE;IACtB,oBAAOG,KAAK,CAACe,YAAY,CAACJ,QAAQ,EAAAK,QAAA,KAC7BL,QAAQ,CAACG,KAAK;MAEjBjB,GAAG,EAAE,CAACI,qBAAqB,EAAEU,QAAQ,CAACG,KAAK,CAACjB,GAAG,EAAEgB,KAAK,CAAC,CAACI,IAAI,CAAC;IAAC,EAC/D,CAAC;EACJ;EACA,OAAOnB,GAAG,CAACa,QAAQ,CAACO,IAAI,EAAAF,QAAA;IACtBG,GAAG,EAAER,QAAQ,CAACQ;EAAG,GACdR,QAAQ,CAACG,KAAK;IACjBjB,GAAG,EAAE,CAACI,qBAAqB,EAAEY,KAAK;EAAC,EACpC,CAAC;AACJ,CAAC","ignoreList":[]}
|
package/SortArea/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface SortAreaProps extends Omit<RowProps, "onChange"> {
|
|
|
6
6
|
* keyはuniqueでなければなりません。決して安直なmapのindexなどを渡さないようにしてください。
|
|
7
7
|
* また子コンポーネントは任意のpropsを受け取れるようになっている必要があります。
|
|
8
8
|
*/
|
|
9
|
-
children: React.ReactElement[];
|
|
9
|
+
children: React.ReactElement<any>[];
|
|
10
10
|
/**
|
|
11
11
|
* 並び順を管理するための配列です。
|
|
12
12
|
* これが存在しない場合、SortAreaは無効化されます。
|
package/SortArea/index.js
CHANGED
|
@@ -49,7 +49,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
49
49
|
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);}}"
|
|
50
50
|
} : {
|
|
51
51
|
name: "cep9g1-SortAreaInner",
|
|
52
|
-
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+
|
|
52
|
+
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 */",
|
|
53
53
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
54
54
|
};
|
|
55
55
|
var SortAreaInner = _ref3 => {
|
|
@@ -85,7 +85,7 @@ var SortAreaInner = _ref3 => {
|
|
|
85
85
|
delete e.currentTarget.dataset.dragState;
|
|
86
86
|
}
|
|
87
87
|
}, []);
|
|
88
|
-
var overRef = useRef();
|
|
88
|
+
var overRef = useRef(undefined);
|
|
89
89
|
var handleDragOver = useCallback(e => {
|
|
90
90
|
if (e.currentTarget.draggable === true) {
|
|
91
91
|
if (!e.currentTarget.dataset.dragState) {
|
package/SortArea/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Row","arrayShallowEqual","css","React","useCallback","useMemo","useRef","useState","jsx","___EmotionJSX","camelize","str","arr","split","capital","map","item","index","charAt","toUpperCase","slice","toLowerCase","capitalString","join","dataid","dataId","replace","SortArea","_ref2","list","startAdornment","endAdornment","children","onChange","disabled","props","_objectWithoutPropertiesLoose","_excluded","undefined","length","SortAreaInner","_extends","_ref","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref3","listProp","_excluded2","cache","_list","_setList","setList","value","next","handleDragStart","e","currentTarget","dataset","dragState","dataTransfer","effectAllowed","handleDragLeave","overRef","handleDragOver","draggable","current","parseInt","handleDragEnd","_overRef$current","currentIndex","dropEffect","prev","nextIndex","copy","concat","splice","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":["Row","arrayShallowEqual","css","React","useCallback","useMemo","useRef","useState","jsx","___EmotionJSX","camelize","str","arr","split","capital","map","item","index","charAt","toUpperCase","slice","toLowerCase","capitalString","join","dataid","dataId","replace","SortArea","_ref2","list","startAdornment","endAdornment","children","onChange","disabled","props","_objectWithoutPropertiesLoose","_excluded","undefined","length","SortAreaInner","_extends","_ref","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref3","listProp","_excluded2","cache","_list","_setList","setList","value","next","handleDragStart","e","currentTarget","dataset","dragState","dataTransfer","effectAllowed","handleDragLeave","overRef","handleDragOver","draggable","current","parseInt","handleDragEnd","_overRef$current","currentIndex","dropEffect","prev","nextIndex","copy","concat","splice","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":[]}
|
package/Table/useTable.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface UseTableCellProps<S, K extends keyof S> {
|
|
|
23
23
|
};
|
|
24
24
|
row: Props<S>;
|
|
25
25
|
}
|
|
26
|
-
export type TableCell<S, K extends keyof S> = (props: UseTableCellProps<S, K>) => JSX.Element;
|
|
26
|
+
export type TableCell<S, K extends keyof S> = (props: UseTableCellProps<S, K>) => React.JSX.Element;
|
|
27
27
|
interface ColumnLayoutProperties {
|
|
28
28
|
width?: string | number;
|
|
29
29
|
minWidth?: string | number;
|
|
@@ -40,8 +40,8 @@ type Column<S, K extends keyof S> = {
|
|
|
40
40
|
filterValue: S[K];
|
|
41
41
|
setFilter: (value: S[K]) => void;
|
|
42
42
|
};
|
|
43
|
-
}) => JSX.Element);
|
|
44
|
-
Cell?: (props: UseTableCellProps<S, K>) => JSX.Element;
|
|
43
|
+
}) => React.JSX.Element);
|
|
44
|
+
Cell?: (props: UseTableCellProps<S, K>) => React.JSX.Element;
|
|
45
45
|
cellProps?: {
|
|
46
46
|
style?: React.CSSProperties;
|
|
47
47
|
};
|
|
@@ -76,7 +76,7 @@ export declare const useTable: <S extends TableDataItem>({ data, ...props }: {
|
|
|
76
76
|
headers: {
|
|
77
77
|
key: string;
|
|
78
78
|
style: Record<string, any>;
|
|
79
|
-
render: () => JSX.Element | string;
|
|
79
|
+
render: () => React.JSX.Element | string;
|
|
80
80
|
}[];
|
|
81
81
|
rows: Rows<S>;
|
|
82
82
|
page: Row<S>[];
|
package/Table/useTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTable.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","jsx","___EmotionJSX","isAllRowSelected","useTable","_ref","_props$initialState$p","_props$initialState","_props$initialState$p2","_props$initialState2","data","props","_objectWithoutPropertiesLoose","_excluded","columns","filterValues","setFilters","makeSetFilter","accessor","value","prev","_extends","toggleAllRowsSelected","setRows","copy","slice","map","row","isSelected","headers","Object","entries","current","_ref2","_headerProps$style","Header","width","minWidth","maxWidth","align","headerProps","result","key","style","textAlign","render","column","filterValue","setFilter","dataToProps","cells","path","join","values","propsMap","setPropsMap","rows","newRows","forEach","_loop","_cellProps$style","i","undefined","Cell","cellProps","contentProps","cell","push","cellAlign","Content","_ref3","thisProps","_excluded2","bind","length","filter","toggleRowSelected","toggleRows","flag","toggleRow","pageIndex","setPageIndex","initialState","pageSize","setPageSize","canPreviousPage","canNextPage","Math","floor","nextPage","previousPage","filteredRows","setFilteredRows","fv","firstLoop","_columns$current$acce","Error","j","filtered","page","gotoPage"],"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","useCallback","useEffect","useMemo","useRef","useState","jsx","___EmotionJSX","isAllRowSelected","useTable","_ref","_props$initialState$p","_props$initialState","_props$initialState$p2","_props$initialState2","data","props","_objectWithoutPropertiesLoose","_excluded","columns","filterValues","setFilters","makeSetFilter","accessor","value","prev","_extends","toggleAllRowsSelected","setRows","copy","slice","map","row","isSelected","headers","Object","entries","current","_ref2","_headerProps$style","Header","width","minWidth","maxWidth","align","headerProps","result","key","style","textAlign","render","column","filterValue","setFilter","dataToProps","cells","path","join","values","propsMap","setPropsMap","rows","newRows","forEach","_loop","_cellProps$style","i","undefined","Cell","cellProps","contentProps","cell","push","cellAlign","Content","_ref3","thisProps","_excluded2","bind","length","filter","toggleRowSelected","toggleRows","flag","toggleRow","pageIndex","setPageIndex","initialState","pageSize","setPageSize","canPreviousPage","canNextPage","Math","floor","nextPage","previousPage","filteredRows","setFilteredRows","fv","firstLoop","_columns$current$acce","Error","j","filtered","page","gotoPage"],"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":"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","ignoreList":[]}
|
package/TableUI/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WithPaginationProps } from "./WithPagination";
|
|
2
|
+
import React from "react";
|
|
2
3
|
export interface TableUIRenderCellProps<Row, Value> {
|
|
3
4
|
cell: {
|
|
4
5
|
value: Value;
|
|
@@ -9,7 +10,7 @@ export type TableUIColumn<Row> = {
|
|
|
9
10
|
[Key in keyof Row]: {
|
|
10
11
|
key: Key;
|
|
11
12
|
title?: string;
|
|
12
|
-
renderCell?: ({ cell, row, }: TableUIRenderCellProps<Row, Row[Key]>) => JSX.Element;
|
|
13
|
+
renderCell?: ({ cell, row, }: TableUIRenderCellProps<Row, Row[Key]>) => React.JSX.Element;
|
|
13
14
|
sort?: (a: Row[Key], b: Row[Key]) => number;
|
|
14
15
|
/**
|
|
15
16
|
* この列の幅が全体に占める比を指定する。
|
|
@@ -74,6 +75,6 @@ export interface TableUIProps<Row> extends WithPaginationProps {
|
|
|
74
75
|
/**
|
|
75
76
|
* 行の末尾にインタラクティブ要素を追加するためのメソッド
|
|
76
77
|
*/
|
|
77
|
-
renderActions?: (args: TableUIPropsRenderActionsArgs<Row>) => JSX.Element;
|
|
78
|
+
renderActions?: (args: TableUIPropsRenderActionsArgs<Row>) => React.JSX.Element;
|
|
78
79
|
}
|
|
79
80
|
export declare const TableUI: <Row extends Record<string, any>>(props: TableUIProps<Row>) => import("@emotion/react/jsx-runtime").JSX.Element;
|