matsuri-ui 17.1.4-alpha-1756105889243-c6b2c2b.0 → 17.1.4-alpha-1756796886549-65b5930.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.
Files changed (167) hide show
  1. package/CalendarController/CalendarController.js +4 -4
  2. package/CalendarController/CalendarController.js.map +1 -1
  3. package/CalendarLabel/CalendarLabel.js +1 -2
  4. package/CalendarLabel/CalendarLabel.js.map +1 -1
  5. package/Layouts/index.d.ts +0 -2
  6. package/Layouts/index.js +1 -4
  7. package/Layouts/index.js.map +1 -1
  8. package/Pagination/usePaginationIndex.d.ts +0 -4
  9. package/Pagination/usePaginationIndex.js +0 -5
  10. package/Pagination/usePaginationIndex.js.map +1 -1
  11. package/RadioButton/RadioButtonGroup.js +1 -1
  12. package/RadioButton/RadioButtonGroup.js.map +1 -1
  13. package/SelectField/SelectField.d.ts +1 -1
  14. package/SelectField/SelectField.js +6 -6
  15. package/SelectField/SelectField.js.map +1 -1
  16. package/{SearchField → SelectField}/useSearch.js.map +1 -1
  17. package/Timeline/Timeline.d.ts +1 -6
  18. package/Timeline/Timeline.js +5 -6
  19. package/Timeline/Timeline.js.map +1 -1
  20. package/Tooltip/Tooltip.js +5 -5
  21. package/Tooltip/Tooltip.js.map +1 -1
  22. package/WeeklyCalendarUI/WeeklyCalendarUI.js +3 -3
  23. package/WeeklyCalendarUI/WeeklyCalendarUI.js.map +1 -1
  24. package/cjs/CalendarController/CalendarController.js +4 -4
  25. package/cjs/CalendarController/CalendarController.js.map +1 -1
  26. package/cjs/CalendarLabel/CalendarLabel.js +1 -2
  27. package/cjs/CalendarLabel/CalendarLabel.js.map +1 -1
  28. package/cjs/Layouts/index.js +1 -9
  29. package/cjs/Layouts/index.js.map +1 -1
  30. package/cjs/Pagination/usePaginationIndex.js +1 -6
  31. package/cjs/Pagination/usePaginationIndex.js.map +1 -1
  32. package/cjs/RadioButton/RadioButtonGroup.js +1 -1
  33. package/cjs/RadioButton/RadioButtonGroup.js.map +1 -1
  34. package/cjs/SelectField/SelectField.js +6 -6
  35. package/cjs/SelectField/SelectField.js.map +1 -1
  36. package/cjs/{SearchField → SelectField}/useSearch.js.map +1 -1
  37. package/cjs/Timeline/Timeline.js +4 -5
  38. package/cjs/Timeline/Timeline.js.map +1 -1
  39. package/cjs/Tooltip/Tooltip.js +5 -5
  40. package/cjs/Tooltip/Tooltip.js.map +1 -1
  41. package/cjs/WeeklyCalendarUI/WeeklyCalendarUI.js +3 -3
  42. package/cjs/WeeklyCalendarUI/WeeklyCalendarUI.js.map +1 -1
  43. package/cjs/index.js +0 -28
  44. package/cjs/index.js.map +1 -1
  45. package/esm/CalendarController/CalendarController.js +4 -4
  46. package/esm/CalendarController/CalendarController.js.map +1 -1
  47. package/esm/CalendarLabel/CalendarLabel.js +1 -2
  48. package/esm/CalendarLabel/CalendarLabel.js.map +1 -1
  49. package/esm/Layouts/index.js +1 -4
  50. package/esm/Layouts/index.js.map +1 -1
  51. package/esm/Pagination/usePaginationIndex.js +0 -5
  52. package/esm/Pagination/usePaginationIndex.js.map +1 -1
  53. package/esm/RadioButton/RadioButtonGroup.js +1 -1
  54. package/esm/RadioButton/RadioButtonGroup.js.map +1 -1
  55. package/esm/SelectField/SelectField.js +6 -6
  56. package/esm/SelectField/SelectField.js.map +1 -1
  57. package/esm/{SearchField → SelectField}/useSearch.js.map +1 -1
  58. package/esm/Timeline/Timeline.js +5 -6
  59. package/esm/Timeline/Timeline.js.map +1 -1
  60. package/esm/Tooltip/Tooltip.js +5 -5
  61. package/esm/Tooltip/Tooltip.js.map +1 -1
  62. package/esm/WeeklyCalendarUI/WeeklyCalendarUI.js +3 -3
  63. package/esm/WeeklyCalendarUI/WeeklyCalendarUI.js.map +1 -1
  64. package/esm/index.js +0 -4
  65. package/esm/index.js.map +1 -1
  66. package/index.d.ts +0 -4
  67. package/index.js +0 -4
  68. package/index.js.map +1 -1
  69. package/package.json +1 -1
  70. package/types/Layouts/index.d.ts +0 -2
  71. package/types/Pagination/usePaginationIndex.d.ts +0 -4
  72. package/types/SelectField/SelectField.d.ts +1 -1
  73. package/types/Timeline/Timeline.d.ts +1 -6
  74. package/types/index.d.ts +0 -4
  75. package/Layouts/Item.d.ts +0 -6
  76. package/Layouts/Item.js +0 -9
  77. package/Layouts/Item.js.map +0 -1
  78. package/Mobile/MobileHeader.d.ts +0 -24
  79. package/Mobile/MobileHeader.js +0 -78
  80. package/Mobile/MobileHeader.js.map +0 -1
  81. package/Mobile/MobilePage.d.ts +0 -8
  82. package/Mobile/MobilePage.js +0 -31
  83. package/Mobile/MobilePage.js.map +0 -1
  84. package/Mobile/index.d.ts +0 -3
  85. package/Mobile/index.js +0 -4
  86. package/Mobile/index.js.map +0 -1
  87. package/Mobile/useMobile.d.ts +0 -38
  88. package/Mobile/useMobile.js +0 -109
  89. package/Mobile/useMobile.js.map +0 -1
  90. package/SearchField/SearchField.d.ts +0 -15
  91. package/SearchField/SearchField.js +0 -38
  92. package/SearchField/SearchField.js.map +0 -1
  93. package/SearchField/index.d.ts +0 -1
  94. package/SearchField/index.js +0 -2
  95. package/SearchField/index.js.map +0 -1
  96. package/SelectAsyncSearchField/SelectAsyncSearchField.d.ts +0 -14
  97. package/SelectAsyncSearchField/SelectAsyncSearchField.js +0 -42
  98. package/SelectAsyncSearchField/SelectAsyncSearchField.js.map +0 -1
  99. package/SelectAsyncSearchField/index.d.ts +0 -1
  100. package/SelectAsyncSearchField/index.js +0 -2
  101. package/SelectAsyncSearchField/index.js.map +0 -1
  102. package/SelectSearchField/SelectSearchField.d.ts +0 -16
  103. package/SelectSearchField/SelectSearchField.js +0 -54
  104. package/SelectSearchField/SelectSearchField.js.map +0 -1
  105. package/SelectSearchField/index.d.ts +0 -1
  106. package/SelectSearchField/index.js +0 -2
  107. package/SelectSearchField/index.js.map +0 -1
  108. package/cjs/Layouts/Item.js +0 -15
  109. package/cjs/Layouts/Item.js.map +0 -1
  110. package/cjs/Mobile/MobileHeader.js +0 -81
  111. package/cjs/Mobile/MobileHeader.js.map +0 -1
  112. package/cjs/Mobile/MobilePage.js +0 -38
  113. package/cjs/Mobile/MobilePage.js.map +0 -1
  114. package/cjs/Mobile/index.js +0 -22
  115. package/cjs/Mobile/index.js.map +0 -1
  116. package/cjs/Mobile/useMobile.js +0 -119
  117. package/cjs/Mobile/useMobile.js.map +0 -1
  118. package/cjs/SearchField/SearchField.js +0 -41
  119. package/cjs/SearchField/SearchField.js.map +0 -1
  120. package/cjs/SearchField/index.js +0 -10
  121. package/cjs/SearchField/index.js.map +0 -1
  122. package/cjs/SelectAsyncSearchField/SelectAsyncSearchField.js +0 -38
  123. package/cjs/SelectAsyncSearchField/SelectAsyncSearchField.js.map +0 -1
  124. package/cjs/SelectAsyncSearchField/index.js +0 -10
  125. package/cjs/SelectAsyncSearchField/index.js.map +0 -1
  126. package/cjs/SelectSearchField/SelectSearchField.js +0 -58
  127. package/cjs/SelectSearchField/SelectSearchField.js.map +0 -1
  128. package/cjs/SelectSearchField/index.js +0 -10
  129. package/cjs/SelectSearchField/index.js.map +0 -1
  130. package/esm/Layouts/Item.js +0 -9
  131. package/esm/Layouts/Item.js.map +0 -1
  132. package/esm/Mobile/MobileHeader.js +0 -78
  133. package/esm/Mobile/MobileHeader.js.map +0 -1
  134. package/esm/Mobile/MobilePage.js +0 -31
  135. package/esm/Mobile/MobilePage.js.map +0 -1
  136. package/esm/Mobile/index.js +0 -4
  137. package/esm/Mobile/index.js.map +0 -1
  138. package/esm/Mobile/useMobile.js +0 -109
  139. package/esm/Mobile/useMobile.js.map +0 -1
  140. package/esm/SearchField/SearchField.js +0 -38
  141. package/esm/SearchField/SearchField.js.map +0 -1
  142. package/esm/SearchField/index.js +0 -2
  143. package/esm/SearchField/index.js.map +0 -1
  144. package/esm/SelectAsyncSearchField/SelectAsyncSearchField.js +0 -42
  145. package/esm/SelectAsyncSearchField/SelectAsyncSearchField.js.map +0 -1
  146. package/esm/SelectAsyncSearchField/index.js +0 -2
  147. package/esm/SelectAsyncSearchField/index.js.map +0 -1
  148. package/esm/SelectSearchField/SelectSearchField.js +0 -54
  149. package/esm/SelectSearchField/SelectSearchField.js.map +0 -1
  150. package/esm/SelectSearchField/index.js +0 -2
  151. package/esm/SelectSearchField/index.js.map +0 -1
  152. package/types/Layouts/Item.d.ts +0 -6
  153. package/types/Mobile/MobileHeader.d.ts +0 -24
  154. package/types/Mobile/MobilePage.d.ts +0 -8
  155. package/types/Mobile/index.d.ts +0 -3
  156. package/types/Mobile/useMobile.d.ts +0 -38
  157. package/types/SearchField/SearchField.d.ts +0 -15
  158. package/types/SearchField/index.d.ts +0 -1
  159. package/types/SelectAsyncSearchField/SelectAsyncSearchField.d.ts +0 -14
  160. package/types/SelectAsyncSearchField/index.d.ts +0 -1
  161. package/types/SelectSearchField/SelectSearchField.d.ts +0 -16
  162. package/types/SelectSearchField/index.d.ts +0 -1
  163. /package/{SearchField → SelectField}/useSearch.d.ts +0 -0
  164. /package/{SearchField → SelectField}/useSearch.js +0 -0
  165. /package/cjs/{SearchField → SelectField}/useSearch.js +0 -0
  166. /package/esm/{SearchField → SelectField}/useSearch.js +0 -0
  167. /package/types/{SearchField → SelectField}/useSearch.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SelectField.js","names":["_FieldGroup","require","_FormControl","_FormHelperText","_InputBase","_InputLabel","_Paper","_Popper","_SelectFieldInputWrapper","_Triangle","_VisuallyHidden","_react","_dispatchChangeEvent","_useSearch","_useDitectInputTouched","_useInputValue","_useMergeRefs","_useOnClickOutside","_theme","_react2","_interopRequireWildcard","_Search","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","SelectInnerSpinButton","open","onClick","theme","useTheme","jsx","Triangle","css","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","forwardRef","props","ref","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","getSearch","map","option","keys","label","content","value","exports","defaultLoadOptions","undefined","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","useState","useRef","setQuery","selectedOptionsCache","setOptions","useEffect","selectedOptions","current","then","setValue","isControlled","useInputValue","useFieldGroup","onLoaded","displayValue","useMemo","find","listRef","useOnClickOutside","pseudoInputRef","pseudoInputRefs","useMergeRefs","originalInputRef","originalInputRefs","updateValue","useCallback","dispatchChangeEvent","resetValue","touched","inputProps","useDitectInputTouched","popperOptions","modifiers","roundOffsets","y","x","Math","round","enabled","phase","requires","fn","state","popper","width","rects","reference","effect","elements","offsetWidth","internalInputId","useId","inputId","autoFillPreventionKey","updateAutoFillPreventionKey","useReducer","prev","FormControl","InputLabel","htmlFor","VisuallyHidden","type","key","autoCapitalize","autoComplete","onInput","event","preventDefault","currentTarget","autoCorrect","spellCheck","SelectFieldInputWrapperContext","Provider","InputBase","renderInputWrapper","SelectFieldInputWrapper","onKeyDown","startAdornment","some","endAdornment","Popper","anchorEl","placement","Paper","activeElement","React","Children","toArray","child","index","click","FormHelperText"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useReducer,\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 // Auto fillによって値が後から更新されることを防ぐ\n const [autoFillPreventionKey, updateAutoFillPreventionKey] = useReducer(\n (prev: number) => prev + 1,\n 0,\n );\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}-${autoFillPreventionKey}`}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n onInput={(event) => {\n event.preventDefault();\n if (value === undefined) {\n // 選択肢が選択されていない状態で、値に選択肢と一致するものがある場合、その値に更新する\n const option = options?.find(\n (option) => option.value === event.currentTarget.value,\n );\n if (option) {\n updateValue(option);\n } else {\n // 一致する選択肢がない場合、Auto fillが適用されると困るため無効化する\n updateAutoFillPreventionKey();\n }\n } else {\n // このinput要素の値でonInputが発火するケースはAuto fillによる場合のみ、選択肢の選択では発火しない。\n // ここでkeyを更新することでauto fillによる値の上書きを、さらに上書きできる。\n updateAutoFillPreventionKey();\n }\n }}\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectField.js","names":["_FieldGroup","require","_FormControl","_FormHelperText","_InputBase","_InputLabel","_Paper","_Popper","_SelectFieldInputWrapper","_Triangle","_VisuallyHidden","_react","_dispatchChangeEvent","_useSearch","_useDitectInputTouched","_useInputValue","_useMergeRefs","_useOnClickOutside","_theme","_react2","_interopRequireWildcard","_Search","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","SelectInnerSpinButton","open","onClick","theme","useTheme","jsx","Triangle","css","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","forwardRef","props","ref","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","getSearch","map","option","keys","label","content","value","exports","defaultLoadOptions","undefined","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","useState","useRef","setQuery","selectedOptionsCache","setOptions","useEffect","selectedOptions","current","then","setValue","isControlled","useInputValue","useFieldGroup","onLoaded","displayValue","useMemo","find","listRef","useOnClickOutside","pseudoInputRef","pseudoInputRefs","useMergeRefs","originalInputRef","originalInputRefs","updateValue","useCallback","dispatchChangeEvent","resetValue","touched","inputProps","useDitectInputTouched","popperOptions","modifiers","roundOffsets","y","x","Math","round","enabled","phase","requires","fn","state","popper","width","rects","reference","effect","elements","offsetWidth","internalInputId","useId","inputId","autoFillPreventionKey","updateAutoFillPreventionKey","useReducer","prev","FormControl","InputLabel","htmlFor","VisuallyHidden","type","key","autoCapitalize","autoComplete","onInput","event","preventDefault","currentTarget","autoCorrect","spellCheck","SelectFieldInputWrapperContext","Provider","InputBase","renderInputWrapper","SelectFieldInputWrapper","onKeyDown","startAdornment","some","endAdornment","Popper","anchorEl","placement","Paper","activeElement","React","Children","toArray","child","index","click","FormHelperText"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"./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 useReducer,\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 // Auto fillによって値が後から更新されることを防ぐ\n const [autoFillPreventionKey, updateAutoFillPreventionKey] = useReducer(\n (prev: number) => prev + 1,\n 0,\n );\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}-${autoFillPreventionKey}`}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n onInput={(event) => {\n event.preventDefault();\n if (value === undefined) {\n // 選択肢が選択されていない状態で、値に選択肢と一致するものがある場合、その値に更新する\n const option = options?.find(\n (option) => option.value === event.currentTarget.value,\n );\n if (option) {\n updateValue(option);\n } else {\n // 一致する選択肢がない場合、Auto fillが適用されると困るため無効化する\n updateAutoFillPreventionKey();\n }\n } else {\n // このinput要素の値でonInputが発火するケースはAuto fillによる場合のみ、選択肢の選択では発火しない。\n // ここでkeyを更新することでauto fillによる値の上書きを、さらに上書きできる。\n updateAutoFillPreventionKey();\n }\n }}\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 +1 @@
1
- {"version":3,"file":"useSearch.js","names":["_react","require","getSearch","items","query","copy","slice","len","length","key","toLowerCase","i","c","tmp","res","Array","j","index","keylen","keys","current","indexOf","score","sort","a","b","exports","useSearch","cache","useRef","map","item","content","value","result","setResult","useState","useEffect"],"sources":["../../../src/SearchField/useSearch.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nexport interface SearchItem {\n keys: string[];\n content: string;\n value?: string;\n}\n\nexport type WithSearchScore<T> = T & {\n score?: number;\n};\n\nexport interface SearchProps {\n items: string[] | SearchItem[];\n query: string;\n}\n\nexport const getSearch = <\n T extends {\n keys: string[];\n },\n>(\n items: T[],\n query: string,\n): WithSearchScore<T>[] => {\n const copy = items.slice();\n const len = items.length;\n const key = query.toLowerCase();\n let i = -1;\n let c = 0;\n let tmp: {\n keys: string[];\n };\n const res = new Array(len);\n while (++i !== len) {\n tmp = copy[i];\n /**\n * Caluculate Minimum Index\n */\n let j = -1;\n let index = -1;\n const keylen = tmp.keys.length;\n let current;\n while (++j !== keylen) {\n current = tmp.keys[j].toLowerCase().indexOf(key);\n if (index === -1 || (current !== -1 && current < index)) {\n index = current;\n }\n }\n /**\n * Caluculate Score\n */\n const score = index > -1 ? 1 / (index + 1) : 0;\n if (score > 0) {\n res[c++] = { ...tmp, score };\n }\n }\n\n res.length = c;\n res.sort((a, b) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (a.score <= b.score) {\n return 1;\n } else {\n return -1;\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return res;\n};\n\nexport const useSearch = ({ items, query }: SearchProps) => {\n const cache = useRef<SearchItem[]>(\n typeof items[0] === \"string\"\n ? (items as string[]).map((item) => {\n return {\n keys: [item.toLowerCase()],\n content: item,\n value: item,\n };\n })\n : (items as {\n keys: string[];\n content: string;\n }[]),\n );\n const [result, setResult] = useState<WithSearchScore<SearchItem>[]>([]);\n\n useEffect(() => {\n setResult(getSearch(cache.current, query));\n }, [query]);\n\n return { result };\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAiBO,MAAMC,SAAS,GAAGA,CAKvBC,KAAU,EACVC,KAAa,KACY;EACzB,MAAMC,IAAI,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC;EAC1B,MAAMC,GAAG,GAAGJ,KAAK,CAACK,MAAM;EACxB,MAAMC,GAAG,GAAGL,KAAK,CAACM,WAAW,CAAC,CAAC;EAC/B,IAAIC,CAAC,GAAG,CAAC,CAAC;EACV,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,GAEH;EACD,MAAMC,GAAG,GAAG,IAAIC,KAAK,CAACR,GAAG,CAAC;EAC1B,OAAO,EAAEI,CAAC,KAAKJ,GAAG,EAAE;IAClBM,GAAG,GAAGR,IAAI,CAACM,CAAC,CAAC;IACb;AACJ;AACA;IACI,IAAIK,CAAC,GAAG,CAAC,CAAC;IACV,IAAIC,KAAK,GAAG,CAAC,CAAC;IACd,MAAMC,MAAM,GAAGL,GAAG,CAACM,IAAI,CAACX,MAAM;IAC9B,IAAIY,OAAO;IACX,OAAO,EAAEJ,CAAC,KAAKE,MAAM,EAAE;MACrBE,OAAO,GAAGP,GAAG,CAACM,IAAI,CAACH,CAAC,CAAC,CAACN,WAAW,CAAC,CAAC,CAACW,OAAO,CAACZ,GAAG,CAAC;MAChD,IAAIQ,KAAK,KAAK,CAAC,CAAC,IAAKG,OAAO,KAAK,CAAC,CAAC,IAAIA,OAAO,GAAGH,KAAM,EAAE;QACvDA,KAAK,GAAGG,OAAO;MACjB;IACF;IACA;AACJ;AACA;IACI,MAAME,KAAK,GAAGL,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAIA,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IAC9C,IAAIK,KAAK,GAAG,CAAC,EAAE;MACbR,GAAG,CAACF,CAAC,EAAE,CAAC,GAAG;QAAE,GAAGC,GAAG;QAAES;MAAM,CAAC;IAC9B;EACF;EAEAR,GAAG,CAACN,MAAM,GAAGI,CAAC;EACdE,GAAG,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IACjB;IACA,IAAID,CAAC,CAACF,KAAK,IAAIG,CAAC,CAACH,KAAK,EAAE;MACtB,OAAO,CAAC;IACV,CAAC,MAAM;MACL,OAAO,CAAC,CAAC;IACX;EACF,CAAC,CAAC;EACF;EACA,OAAOR,GAAG;AACZ,CAAC;AAACY,OAAA,CAAAxB,SAAA,GAAAA,SAAA;AAEK,MAAMyB,SAAS,GAAGA,CAAC;EAAExB,KAAK;EAAEC;AAAmB,CAAC,KAAK;EAC1D,MAAMwB,KAAK,GAAG,IAAAC,aAAM,EAClB,OAAO1B,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,GACvBA,KAAK,CAAc2B,GAAG,CAAEC,IAAI,IAAK;IAChC,OAAO;MACLZ,IAAI,EAAE,CAACY,IAAI,CAACrB,WAAW,CAAC,CAAC,CAAC;MAC1BsB,OAAO,EAAED,IAAI;MACbE,KAAK,EAAEF;IACT,CAAC;EACH,CAAC,CAAC,GACD5B,KAIP,CAAC;EACD,MAAM,CAAC+B,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAgC,EAAE,CAAC;EAEvE,IAAAC,gBAAS,EAAC,MAAM;IACdF,SAAS,CAACjC,SAAS,CAAC0B,KAAK,CAACR,OAAO,EAAEhB,KAAK,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAO;IAAE8B;EAAO,CAAC;AACnB,CAAC;AAACR,OAAA,CAAAC,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"file":"useSearch.js","names":["_react","require","getSearch","items","query","copy","slice","len","length","key","toLowerCase","i","c","tmp","res","Array","j","index","keylen","keys","current","indexOf","score","sort","a","b","exports","useSearch","cache","useRef","map","item","content","value","result","setResult","useState","useEffect"],"sources":["../../../src/SelectField/useSearch.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nexport interface SearchItem {\n keys: string[];\n content: string;\n value?: string;\n}\n\nexport type WithSearchScore<T> = T & {\n score?: number;\n};\n\nexport interface SearchProps {\n items: string[] | SearchItem[];\n query: string;\n}\n\nexport const getSearch = <\n T extends {\n keys: string[];\n },\n>(\n items: T[],\n query: string,\n): WithSearchScore<T>[] => {\n const copy = items.slice();\n const len = items.length;\n const key = query.toLowerCase();\n let i = -1;\n let c = 0;\n let tmp: {\n keys: string[];\n };\n const res = new Array(len);\n while (++i !== len) {\n tmp = copy[i];\n /**\n * Caluculate Minimum Index\n */\n let j = -1;\n let index = -1;\n const keylen = tmp.keys.length;\n let current;\n while (++j !== keylen) {\n current = tmp.keys[j].toLowerCase().indexOf(key);\n if (index === -1 || (current !== -1 && current < index)) {\n index = current;\n }\n }\n /**\n * Caluculate Score\n */\n const score = index > -1 ? 1 / (index + 1) : 0;\n if (score > 0) {\n res[c++] = { ...tmp, score };\n }\n }\n\n res.length = c;\n res.sort((a, b) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (a.score <= b.score) {\n return 1;\n } else {\n return -1;\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return res;\n};\n\nexport const useSearch = ({ items, query }: SearchProps) => {\n const cache = useRef<SearchItem[]>(\n typeof items[0] === \"string\"\n ? (items as string[]).map((item) => {\n return {\n keys: [item.toLowerCase()],\n content: item,\n value: item,\n };\n })\n : (items as {\n keys: string[];\n content: string;\n }[]),\n );\n const [result, setResult] = useState<WithSearchScore<SearchItem>[]>([]);\n\n useEffect(() => {\n setResult(getSearch(cache.current, query));\n }, [query]);\n\n return { result };\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAiBO,MAAMC,SAAS,GAAGA,CAKvBC,KAAU,EACVC,KAAa,KACY;EACzB,MAAMC,IAAI,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC;EAC1B,MAAMC,GAAG,GAAGJ,KAAK,CAACK,MAAM;EACxB,MAAMC,GAAG,GAAGL,KAAK,CAACM,WAAW,CAAC,CAAC;EAC/B,IAAIC,CAAC,GAAG,CAAC,CAAC;EACV,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,GAEH;EACD,MAAMC,GAAG,GAAG,IAAIC,KAAK,CAACR,GAAG,CAAC;EAC1B,OAAO,EAAEI,CAAC,KAAKJ,GAAG,EAAE;IAClBM,GAAG,GAAGR,IAAI,CAACM,CAAC,CAAC;IACb;AACJ;AACA;IACI,IAAIK,CAAC,GAAG,CAAC,CAAC;IACV,IAAIC,KAAK,GAAG,CAAC,CAAC;IACd,MAAMC,MAAM,GAAGL,GAAG,CAACM,IAAI,CAACX,MAAM;IAC9B,IAAIY,OAAO;IACX,OAAO,EAAEJ,CAAC,KAAKE,MAAM,EAAE;MACrBE,OAAO,GAAGP,GAAG,CAACM,IAAI,CAACH,CAAC,CAAC,CAACN,WAAW,CAAC,CAAC,CAACW,OAAO,CAACZ,GAAG,CAAC;MAChD,IAAIQ,KAAK,KAAK,CAAC,CAAC,IAAKG,OAAO,KAAK,CAAC,CAAC,IAAIA,OAAO,GAAGH,KAAM,EAAE;QACvDA,KAAK,GAAGG,OAAO;MACjB;IACF;IACA;AACJ;AACA;IACI,MAAME,KAAK,GAAGL,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAIA,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IAC9C,IAAIK,KAAK,GAAG,CAAC,EAAE;MACbR,GAAG,CAACF,CAAC,EAAE,CAAC,GAAG;QAAE,GAAGC,GAAG;QAAES;MAAM,CAAC;IAC9B;EACF;EAEAR,GAAG,CAACN,MAAM,GAAGI,CAAC;EACdE,GAAG,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IACjB;IACA,IAAID,CAAC,CAACF,KAAK,IAAIG,CAAC,CAACH,KAAK,EAAE;MACtB,OAAO,CAAC;IACV,CAAC,MAAM;MACL,OAAO,CAAC,CAAC;IACX;EACF,CAAC,CAAC;EACF;EACA,OAAOR,GAAG;AACZ,CAAC;AAACY,OAAA,CAAAxB,SAAA,GAAAA,SAAA;AAEK,MAAMyB,SAAS,GAAGA,CAAC;EAAExB,KAAK;EAAEC;AAAmB,CAAC,KAAK;EAC1D,MAAMwB,KAAK,GAAG,IAAAC,aAAM,EAClB,OAAO1B,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,GACvBA,KAAK,CAAc2B,GAAG,CAAEC,IAAI,IAAK;IAChC,OAAO;MACLZ,IAAI,EAAE,CAACY,IAAI,CAACrB,WAAW,CAAC,CAAC,CAAC;MAC1BsB,OAAO,EAAED,IAAI;MACbE,KAAK,EAAEF;IACT,CAAC;EACH,CAAC,CAAC,GACD5B,KAIP,CAAC;EACD,MAAM,CAAC+B,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAgC,EAAE,CAAC;EAEvE,IAAAC,gBAAS,EAAC,MAAM;IACdF,SAAS,CAACjC,SAAS,CAAC0B,KAAK,CAACR,OAAO,EAAEhB,KAAK,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAO;IAAE8B;EAAO,CAAC;AACnB,CAAC;AAACR,OAAA,CAAAC,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -23,7 +23,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
23
23
  styles: "display:flex;gap:16px;align-items:center;&::before,&::after{flex-grow:1;height:1px;content:\"\";background-color:currentColor;}"
24
24
  } : {
25
25
  name: "1dnm84l-DefaultLabel",
26
- styles: "display:flex;gap:16px;align-items:center;&::before,&::after{flex-grow:1;height:1px;content:\"\";background-color:currentColor;};label:DefaultLabel;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJjIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVDb250ZXh0IH0gZnJvbSBcIi4uL0xvY2FsZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZWxhdGl2ZVRpbWVGb3JtYXQgfSBmcm9tIFwiLi4vQHV0aWxzXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIi4uL1R5cG9ncmFwaHlcIjtcbmltcG9ydCB7IHR5cGUgVW5rbm93blByb3BzIH0gZnJvbSBcIi4uL0B0eXBlcy9Vbmtub3duUHJvcHNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBpc0JldHdlZW4gZnJvbSBcImRheWpzL3BsdWdpbi9pc0JldHdlZW5cIjtcbmltcG9ydCBpc1NhbWVPckFmdGVyIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlclwiO1xuaW1wb3J0IGlzU2FtZU9yQmVmb3JlIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmVcIjtcbmltcG9ydCB0eXBlIHsgVW5pdCB9IGZyb20gXCJyZWxhdGl2ZS10aW1lLWZvcm1hdFwiO1xuXG5kYXlqcy5leHRlbmQoaXNTYW1lT3JBZnRlcik7XG5kYXlqcy5leHRlbmQoaXNTYW1lT3JCZWZvcmUpO1xuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVMYWJlbFByb3BzIHtcbiAgZm9ybWF0dGVkRGF0ZTogc3RyaW5nO1xufVxuXG5jb25zdCBEZWZhdWx0TGFiZWwgPSAoeyBmb3JtYXR0ZWREYXRlIH06IFRpbWVsaW5lTGFiZWxQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxUeXBvZ3JhcGh5XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPlxuICAgICAge2Zvcm1hdHRlZERhdGV9XG4gICAgPC9UeXBvZ3JhcGh5PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVGltZWxpbmVJdGVtUHJvcHM8UHJvcHMgZXh0ZW5kcyBVbmtub3duUHJvcHM+ID0gUHJvcHMgJiB7XG4gIGRhdGU6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVQcm9wczxQcm9wcyBleHRlbmRzIFVua25vd25Qcm9wcz5cbiAgZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4ge1xuICAvKipcbiAgICogVGltZWxpbmVQcm9wcy5kYXRlc+OBp+aMh+WumuOBleOCjOOBn+ODh+ODvOOCv+OCknByb3Bz44Go44GX44Gm5Y+X44GR5Y+W44KK6KGo56S644GZ44KL44Gf44KB44Gu44Kz44Oz44Od44O844ON44Oz44OI44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcmVuZGVySXRlbWAgaW5zdGVhZC5cbiAgICovXG4gIGl0ZW0/OiAocHJvcHM6IFRpbWVsaW5lSXRlbVByb3BzPFByb3BzPikgPT4gUmVhY3QuSlNYLkVsZW1lbnQ7XG4gIC8qKlxuICAgKiBUaW1lbGluZVByb3BzLmRhdGVz44Gn5oyH5a6a44GV44KM44Gf44OH44O844K/44KScHJvcHPjgajjgZfjgablj5fjgZHlj5bjgorooajnpLrjgZnjgovjgZ/jgoHjga7jgrPjg7Pjg53jg7zjg43jg7Pjg4jjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICovXG4gIHJlbmRlckl0ZW0/OiAocHJvcHM6IFRpbWVsaW5lSXRlbVByb3BzPFByb3BzPikgPT4gUmVhY3QuSlNYLkVsZW1lbnQ7XG4gIC8qKlxuICAgKiDml6Xku5jjgajjgIHml6Xku5jjgavlr77lv5zjgZnjgovjg4fjg7zjgr/nvqTjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICpcbiAgICog5piH6aCG44Gna2V544GM44K944O844OI44GV44KM44Gm44GE44KL44GT44Go44KS5YmN5o+Q44Go44GX44Gm44GE44KL54K544Gr5rOo5oSP44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqXG4gICAqIOOCveODvOODiOWHpueQhuOBjOmdouWAkuOBquWgtOWQiOOBr1VJ5YG044Gn44Gu5Yem55CG44KS5qSc6KiO44GX44G+44GZ44CCXG4gICAqXG4gICAqIOOBk+OBk+OBp+WApOOBqOOBl+OBpuaMh+WumuOBleOCjOOBn+mFjeWIl+OBruWei+OBr1RpbWVsaW5lUHJvcHMuaXRlbeOBruW8leaVsOOBq+eUqOOBhOOCieOCjOOBvuOBmeOAglxuICAgKlxuICAgKiBkYXRl44Gu44OV44Kp44O844Oe44OD44OI44GvWVlZWU1NRETjgb7jgZ/jga9ZWVlZLU1NLURE44Gn44GZ44CCbnVtYmVyKG1zKeOBq+OBr+W+jOOBq+WvvuW/nOOBmeOCi+OBi+OCguOBl+OCjOOBvuOBm+OCk+OAglxuICAgKlxuICAgKiBEYXRl5Z6L44KS5Yip55So44GX44Gf44GE44Go44GE44GG5by344GE6KaB5pyb44GM44GC44Gj44Gf5aC05ZCI44GvTWFw44Gr5YiH44KK5pu/44GI44KL44GT44Go44KS5qSc6KiO44GX44G+44GZ44CCXG4gICAqXG4gICAqL1xuICBkYXRlczogUmVjb3JkPHN0cmluZywgUHJvcHNbXT47XG4gIC8qKlxuICAgKiDljLrliIbjgZTjgajjga7jg6njg5njg6vjga7ooajoqJjjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICpcbiAgICogQGRlZmF1bHQge3llYXI6IG51bWVyaWMgLG1vbnRoOiBudW1lcmljLCBkYXk6IG51bWVyaWN9XG4gICAqL1xuICBmb3JtYXQ/OiBcInJlbGF0aXZlXCIgfCBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucztcbiAgLyoqXG4gICAqIOWMuuWIhuOCkuaMh+WumuOBmeOCi+OAguWOn+eCueOCkuS4reW/g+OBqOOBl+OBpuS4oeWBtOOBq+OAgemghuOBq+aMh+WumuOBleOCjOOBn+WMuuWIhueCueOCkumFjee9ruOBl+OBpuOBhOOBj+OAglxuICAgKlxuICAgKiDljp/ngrnjga7jg4fjg5Xjgqnjg6vjg4jjga9cIuS7iuaXpVwi44CCXG4gICAqXG4gICAqIOmBjuWOu+OBi+OCieacquadpeOBuOaYh+mghuOBp+OCveODvOODiOOBleOCjOOBpuOBhOOCi+OBk+OBqOOCkuWJjeaPkOOBq+OBl+OBpuOBhOOBvuOBmeOAglxuICAgKiDjgr3jg7zjg4jlh6bnkIbjgYzpm6PjgZfjgYTloLTlkIjjga9VSeWBtOOBp+OBruWHpueQhuOCkuaknOiojuOBl+OBvuOBmeOAglxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgc2VwYXJhdG9ycz86IHtcbiAgICB1bml0OiBcImRheVwiIHwgXCJtb250aFwiIHwgXCJ5ZWFyXCIgfCBcIndlZWtcIjtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9W107XG4gIC8qKlxuICAgKiDln7rmupbml6XjgpLmjIflrprjgZnjgovjgIJcbiAgICogQGRlZmF1bHQgdG9kYXlcbiAgICovXG4gIGRhdGU/OiBkYXlqcy5Db25maWdUeXBlO1xuICAvKipcbiAgICog44OV44Kp44O844Oe44OD44OI44GV44KM44Gf5pel5LuY44KS5Y+X44GR5Y+W44KK44CB44Op44OZ44Or44Go44GX44Gm6KGo56S644GZ44KL44Kz44Oz44Od44O844ON44Oz44OI44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqL1xuICByZW5kZXJMYWJlbD86IChwcm9wczogVGltZWxpbmVMYWJlbFByb3BzKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcbn1cblxuY29uc3QgZ2V0RGF0ZXNFbnRyaWVzID0gPEUgZXh0ZW5kcyBVbmtub3duUHJvcHM+KFxuICBkYXRlczogUmVjb3JkPHN0cmluZywgRVtdPixcbiAgc2VwYXJhdG9yczoge1xuICAgIHVuaXQ6IFwiZGF5XCIgfCBcIm1vbnRoXCIgfCBcInllYXJcIiB8IFwid2Vla1wiO1xuICAgIHZhbHVlOiBudW1iZXI7XG4gIH1bXSxcbiAgb3JpZ2luOiBkYXlqcy5EYXlqcyxcbikgPT4ge1xuICBpZiAoc2VwYXJhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJldlByb3BzQXJyYXk6IFtdLFxuICAgICAgZGF0ZXNFbnRyaWVzOiBPYmplY3QuZW50cmllcyhkYXRlcykubWFwKChbZGF0ZSwgcHJvcHNBcnJheV0pID0+IHtcbiAgICAgICAgY29uc3QgZGlmZiA9IGRheWpzKGRhdGUpLmRpZmYob3JpZ2luLCBcImRheVwiKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBkYXRlLFxuICAgICAgICAgIHByb3BzQXJyYXkubWFwKChwcm9wcykgPT4gKHtcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdW5pdDogXCJkYXlcIixcbiAgICAgICAgICAgIGRpZmYsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSBhcyBjb25zdDtcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBjb3B5ID0geyAuLi5kYXRlcyB9O1xuICAvLyBwcmV2UHJvcHNcbiAgbGV0IHByZXZQcm9wczogKEUgJiB7IGRhdGU6IHN0cmluZyB9KVtdID0gW107XG4gIGNvbnN0IG1pbiA9IG9yaWdpbi5hZGQoc2VwYXJhdG9yc1swXS52YWx1ZSwgc2VwYXJhdG9yc1swXS51bml0KTtcbiAgZm9yIChjb25zdCBkYXRlIGluIGNvcHkpIHtcbiAgICBpZiAoZGF5anMoZGF0ZSkuaXNCZWZvcmUobWluLCBcImRheVwiKSkge1xuICAgICAgY29uc3QgYWRkID0gY29weVtkYXRlXS5tYXAoKHByb3BzKSA9PiAoeyAuLi5wcm9wcywgZGF0ZSB9KSk7XG4gICAgICBwcmV2UHJvcHMgPSBwcmV2UHJvcHMuY29uY2F0KGFkZCk7XG4gICAgICBkZWxldGUgY29weVtkYXRlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGxldCByZXN1bHRzOiAocmVhZG9ubHkgW1xuICAgIHN0cmluZyxcbiAgICAoRSAmIHtcbiAgICAgIGRhdGU6IHN0cmluZztcbiAgICB9KVtdLFxuICAgIHtcbiAgICAgIHVuaXQ6IHN0cmluZztcbiAgICAgIGRpZmY6IG51bWJlcjtcbiAgICB9LFxuICBdKVtdID0gW107XG4gIHNlcGFyYXRvcnMubWFwKCh7IHVuaXQsIHZhbHVlIH0sIGluZGV4LCBvcmlnaW5hbCkgPT4ge1xuICAgIGNvbnN0IG1pbiA9IG9yaWdpbi5hZGQodmFsdWUsIHVuaXQpO1xuICAgIGNvbnN0IG1heCA9XG4gICAgICBzZXBhcmF0b3JzLmxlbmd0aCAtIDEgPT09IGluZGV4XG4gICAgICAgID8gZGF5anMoXCI5OTk5LzEyLzI0XCIpXG4gICAgICAgIDogb3JpZ2luLmFkZChvcmlnaW5hbFtpbmRleCArIDFdLnZhbHVlLCBvcmlnaW5hbFtpbmRleCArIDFdLnVuaXQpO1xuICAgIGxldCBwcm9wc0FycmF5OiAoRSAmIHsgZGF0ZTogc3RyaW5nIH0pW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGRhdGUgaW4gY29weSkge1xuICAgICAgaWYgKGRheWpzKGRhdGUpLmlzQmV0d2VlbihtaW4sIG1heCwgXCJkYXlcIiwgXCJbKVwiKSkge1xuICAgICAgICBjb25zdCBhZGQgPSBjb3B5W2RhdGVdLm1hcCgocHJvcHMpID0+ICh7IC4uLnByb3BzLCBkYXRlIH0pKTtcbiAgICAgICAgcHJvcHNBcnJheSA9IHByb3BzQXJyYXkuY29uY2F0KGFkZCk7XG4gICAgICAgIGRlbGV0ZSBjb3B5W2RhdGVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wc0FycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmNvbmNhdChbXG4gICAgICAgIFtcbiAgICAgICAgICBtaW4uZm9ybWF0KFwiWVlZWU1NRERcIiksXG4gICAgICAgICAgcHJvcHNBcnJheSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1bml0LFxuICAgICAgICAgICAgZGlmZjogdmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIF0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgcHJldlByb3BzQXJyYXk6IHByZXZQcm9wcyxcbiAgICBkYXRlc0VudHJpZXM6IHJlc3VsdHMsXG4gIH07XG59O1xuXG5jb25zdCBtYWtlUmVuZGVySXRlbXMgPVxuICA8RSBleHRlbmRzIFVua25vd25Qcm9wcz4oXG4gICAgcmVuZGVySXRlbTogKFxuICAgICAgcHJvcHM6IEUgJiB7IGRhdGU6IHN0cmluZzsgaW5kZXg6IG51bWJlciB9LFxuICAgICkgPT4gUmVhY3QuSlNYLkVsZW1lbnQsXG4gICkgPT5cbiAgKHByb3BzQXJyYXk6IChFICYgeyBkYXRlOiBzdHJpbmcgfSlbXSkgPT4ge1xuICAgIHJldHVybiBwcm9wc0FycmF5Lm1hcCgocHJvcHMsIGluZGV4KSA9PlxuICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KHJlbmRlckl0ZW0oeyAuLi5wcm9wcywgaW5kZXggfSksIHtcbiAgICAgICAga2V5OiBgJHtwcm9wcy5kYXRlfS4ke2luZGV4fWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9O1xuXG5leHBvcnQgY29uc3QgVGltZWxpbmUgPSA8RSBleHRlbmRzIFVua25vd25Qcm9wcz4oe1xuICBpdGVtLFxuICByZW5kZXJJdGVtLFxuICBkYXRlcyxcbiAgZm9ybWF0ID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibnVtZXJpY1wiLCBkYXk6IFwibnVtZXJpY1wiIH0sXG4gIHNlcGFyYXRvcnMgPSBbXSxcbiAgZGF0ZSA9IGRheWpzKCkuc3RhcnRPZihcImRheVwiKSxcbiAgcmVuZGVyTGFiZWw6IExhYmVsID0gRGVmYXVsdExhYmVsLFxuICAuLi5wcm9wc1xufTogVGltZWxpbmVQcm9wczxFPikgPT4ge1xuICBjb25zdCBsb2NhbGUgPSB1c2VDb250ZXh0KExvY2FsZUNvbnRleHQpO1xuICBjb25zdCBydGYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gUmVsYXRpdmVUaW1lRm9ybWF0KGxvY2FsZSwge1xuICAgICAgbnVtZXJpYzogXCJhdXRvXCIsXG4gICAgfSk7XG4gIH0sIFtsb2NhbGVdKTtcbiAgY29uc3QgeyBwcmV2UHJvcHNBcnJheSwgZGF0ZXNFbnRyaWVzIH0gPSBnZXREYXRlc0VudHJpZXM8RT4oXG4gICAgZGF0ZXMsXG4gICAgc2VwYXJhdG9ycyxcbiAgICBkYXlqcyhkYXRlKSxcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IEl0ZW0gPSBpdGVtID8/IHJlbmRlckl0ZW07XG4gICAgaWYgKEl0ZW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXRlbSBvciByZW5kZXJJdGVtIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbWFrZVJlbmRlckl0ZW1zPEU+KEl0ZW0pO1xuICB9LCBbaXRlbSwgcmVuZGVySXRlbV0pO1xuXG4gIHJldHVybiBkYXRlc0VudHJpZXMubGVuZ3RoID4gMCA/IChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgYH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7cHJldlByb3BzQXJyYXkubGVuZ3RoID4gMCAmJiA8ZGl2PntyZW5kZXJJdGVtcyhwcmV2UHJvcHNBcnJheSl9PC9kaXY+fVxuICAgICAge2RhdGVzRW50cmllcy5tYXAoKFt2YWx1ZSwgcHJvcHNBcnJheSwgeyB1bml0LCBkaWZmIH1dKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdGVkRGF0ZSA9XG4gICAgICAgICAgZm9ybWF0ID09PSBcInJlbGF0aXZlXCJcbiAgICAgICAgICAgID8gcnRmLmZvcm1hdChkaWZmLCB1bml0IGFzIFVuaXQpXG4gICAgICAgICAgICA6IGRheWpzKHZhbHVlKS50b0RhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBmb3JtYXQpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2Zvcm1hdGVkRGF0ZX0+XG4gICAgICAgICAgICA8TGFiZWwgZm9ybWF0dGVkRGF0ZT17Zm9ybWF0ZWREYXRlfSAvPlxuICAgICAgICAgICAgPGRpdj57cmVuZGVySXRlbXMocHJvcHNBcnJheSl9PC9kaXY+XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApIDogbnVsbDtcbn07XG4iXX0= */",
26
+ styles: "display:flex;gap:16px;align-items:center;&::before,&::after{flex-grow:1;height:1px;content:\"\";background-color:currentColor;};label:DefaultLabel;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJjIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVDb250ZXh0IH0gZnJvbSBcIi4uL0xvY2FsZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZWxhdGl2ZVRpbWVGb3JtYXQgfSBmcm9tIFwiLi4vQHV0aWxzXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIi4uL1R5cG9ncmFwaHlcIjtcbmltcG9ydCB7IHR5cGUgVW5rbm93blByb3BzIH0gZnJvbSBcIi4uL0B0eXBlcy9Vbmtub3duUHJvcHNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBpc0JldHdlZW4gZnJvbSBcImRheWpzL3BsdWdpbi9pc0JldHdlZW5cIjtcbmltcG9ydCBpc1NhbWVPckFmdGVyIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlclwiO1xuaW1wb3J0IGlzU2FtZU9yQmVmb3JlIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmVcIjtcbmltcG9ydCB0eXBlIHsgVW5pdCB9IGZyb20gXCJyZWxhdGl2ZS10aW1lLWZvcm1hdFwiO1xuXG5kYXlqcy5leHRlbmQoaXNTYW1lT3JBZnRlcik7XG5kYXlqcy5leHRlbmQoaXNTYW1lT3JCZWZvcmUpO1xuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVMYWJlbFByb3BzIHtcbiAgZm9ybWF0dGVkRGF0ZTogc3RyaW5nO1xufVxuXG5jb25zdCBEZWZhdWx0TGFiZWwgPSAoeyBmb3JtYXR0ZWREYXRlIH06IFRpbWVsaW5lTGFiZWxQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxUeXBvZ3JhcGh5XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPlxuICAgICAge2Zvcm1hdHRlZERhdGV9XG4gICAgPC9UeXBvZ3JhcGh5PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVGltZWxpbmVJdGVtUHJvcHM8UHJvcHMgZXh0ZW5kcyBVbmtub3duUHJvcHM+ID0gUHJvcHMgJiB7XG4gIGRhdGU6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVQcm9wczxQcm9wcyBleHRlbmRzIFVua25vd25Qcm9wcz5cbiAgZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4ge1xuICAvKipcbiAgICogVGltZWxpbmVQcm9wcy5kYXRlc+OBp+aMh+WumuOBleOCjOOBn+ODh+ODvOOCv+OCknByb3Bz44Go44GX44Gm5Y+X44GR5Y+W44KK6KGo56S644GZ44KL44Gf44KB44Gu44Kz44Oz44Od44O844ON44Oz44OI44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqL1xuICByZW5kZXJJdGVtPzogKHByb3BzOiBUaW1lbGluZUl0ZW1Qcm9wczxQcm9wcz4pID0+IFJlYWN0LkpTWC5FbGVtZW50O1xuICAvKipcbiAgICog5pel5LuY44Go44CB5pel5LuY44Gr5a++5b+c44GZ44KL44OH44O844K/576k44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqXG4gICAqIOaYh+mghuOBp2tleeOBjOOCveODvOODiOOBleOCjOOBpuOBhOOCi+OBk+OBqOOCkuWJjeaPkOOBqOOBl+OBpuOBhOOCi+eCueOBq+azqOaEj+OBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKlxuICAgKiDjgr3jg7zjg4jlh6bnkIbjgYzpnaLlgJLjgarloLTlkIjjga9VSeWBtOOBp+OBruWHpueQhuOCkuaknOiojuOBl+OBvuOBmeOAglxuICAgKlxuICAgKiDjgZPjgZPjgaflgKTjgajjgZfjgabmjIflrprjgZXjgozjgZ/phY3liJfjga7lnovjga9UaW1lbGluZVByb3BzLml0ZW3jga7lvJXmlbDjgavnlKjjgYTjgonjgozjgb7jgZnjgIJcbiAgICpcbiAgICogZGF0ZeOBruODleOCqeODvOODnuODg+ODiOOBr1lZWVlNTURE44G+44Gf44GvWVlZWS1NTS1EROOBp+OBmeOAgm51bWJlcihtcynjgavjga/lvozjgavlr77lv5zjgZnjgovjgYvjgoLjgZfjgozjgb7jgZvjgpPjgIJcbiAgICpcbiAgICogRGF0ZeWei+OCkuWIqeeUqOOBl+OBn+OBhOOBqOOBhOOBhuW8t+OBhOimgeacm+OBjOOBguOBo+OBn+WgtOWQiOOBr01hcOOBq+WIh+OCiuabv+OBiOOCi+OBk+OBqOOCkuaknOiojuOBl+OBvuOBmeOAglxuICAgKlxuICAgKi9cbiAgZGF0ZXM6IFJlY29yZDxzdHJpbmcsIFByb3BzW10+O1xuICAvKipcbiAgICog5Yy65YiG44GU44Go44Gu44Op44OZ44Or44Gu6KGo6KiY44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqXG4gICAqIEBkZWZhdWx0IHt5ZWFyOiBudW1lcmljICxtb250aDogbnVtZXJpYywgZGF5OiBudW1lcmljfVxuICAgKi9cbiAgZm9ybWF0PzogXCJyZWxhdGl2ZVwiIHwgSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnM7XG4gIC8qKlxuICAgKiDljLrliIbjgpLmjIflrprjgZnjgovjgILljp/ngrnjgpLkuK3lv4PjgajjgZfjgabkuKHlgbTjgavjgIHpoIbjgavmjIflrprjgZXjgozjgZ/ljLrliIbngrnjgpLphY3nva7jgZfjgabjgYTjgY/jgIJcbiAgICpcbiAgICog5Y6f54K544Gu44OH44OV44Kp44Or44OI44GvXCLku4rml6VcIuOAglxuICAgKlxuICAgKiDpgY7ljrvjgYvjgonmnKrmnaXjgbjmmIfpoIbjgafjgr3jg7zjg4jjgZXjgozjgabjgYTjgovjgZPjgajjgpLliY3mj5DjgavjgZfjgabjgYTjgb7jgZnjgIJcbiAgICog44K944O844OI5Yem55CG44GM6Zuj44GX44GE5aC05ZCI44GvVUnlgbTjgafjga7lh6bnkIbjgpLmpJzoqI7jgZfjgb7jgZnjgIJcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHNlcGFyYXRvcnM/OiB7XG4gICAgdW5pdDogXCJkYXlcIiB8IFwibW9udGhcIiB8IFwieWVhclwiIHwgXCJ3ZWVrXCI7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgfVtdO1xuICAvKipcbiAgICog5Z+65rqW5pel44KS5oyH5a6a44GZ44KL44CCXG4gICAqIEBkZWZhdWx0IHRvZGF5XG4gICAqL1xuICBkYXRlPzogZGF5anMuQ29uZmlnVHlwZTtcbiAgLyoqXG4gICAqIOODleOCqeODvOODnuODg+ODiOOBleOCjOOBn+aXpeS7mOOCkuWPl+OBkeWPluOCiuOAgeODqeODmeODq+OBqOOBl+OBpuihqOekuuOBmeOCi+OCs+ODs+ODneODvOODjeODs+ODiOOCkuaMh+WumuOBl+OBvuOBmeOAglxuICAgKi9cbiAgcmVuZGVyTGFiZWw/OiAocHJvcHM6IFRpbWVsaW5lTGFiZWxQcm9wcykgPT4gUmVhY3QuSlNYLkVsZW1lbnQ7XG59XG5cbmNvbnN0IGdldERhdGVzRW50cmllcyA9IDxFIGV4dGVuZHMgVW5rbm93blByb3BzPihcbiAgZGF0ZXM6IFJlY29yZDxzdHJpbmcsIEVbXT4sXG4gIHNlcGFyYXRvcnM6IHtcbiAgICB1bml0OiBcImRheVwiIHwgXCJtb250aFwiIHwgXCJ5ZWFyXCIgfCBcIndlZWtcIjtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9W10sXG4gIG9yaWdpbjogZGF5anMuRGF5anMsXG4pID0+IHtcbiAgaWYgKHNlcGFyYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZXZQcm9wc0FycmF5OiBbXSxcbiAgICAgIGRhdGVzRW50cmllczogT2JqZWN0LmVudHJpZXMoZGF0ZXMpLm1hcCgoW2RhdGUsIHByb3BzQXJyYXldKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBkYXlqcyhkYXRlKS5kaWZmKG9yaWdpbiwgXCJkYXlcIik7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBwcm9wc0FycmF5Lm1hcCgocHJvcHMpID0+ICh7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVuaXQ6IFwiZGF5XCIsXG4gICAgICAgICAgICBkaWZmLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0gYXMgY29uc3Q7XG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgY29weSA9IHsgLi4uZGF0ZXMgfTtcbiAgLy8gcHJldlByb3BzXG4gIGxldCBwcmV2UHJvcHM6IChFICYgeyBkYXRlOiBzdHJpbmcgfSlbXSA9IFtdO1xuICBjb25zdCBtaW4gPSBvcmlnaW4uYWRkKHNlcGFyYXRvcnNbMF0udmFsdWUsIHNlcGFyYXRvcnNbMF0udW5pdCk7XG4gIGZvciAoY29uc3QgZGF0ZSBpbiBjb3B5KSB7XG4gICAgaWYgKGRheWpzKGRhdGUpLmlzQmVmb3JlKG1pbiwgXCJkYXlcIikpIHtcbiAgICAgIGNvbnN0IGFkZCA9IGNvcHlbZGF0ZV0ubWFwKChwcm9wcykgPT4gKHsgLi4ucHJvcHMsIGRhdGUgfSkpO1xuICAgICAgcHJldlByb3BzID0gcHJldlByb3BzLmNvbmNhdChhZGQpO1xuICAgICAgZGVsZXRlIGNvcHlbZGF0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBsZXQgcmVzdWx0czogKHJlYWRvbmx5IFtcbiAgICBzdHJpbmcsXG4gICAgKEUgJiB7XG4gICAgICBkYXRlOiBzdHJpbmc7XG4gICAgfSlbXSxcbiAgICB7XG4gICAgICB1bml0OiBzdHJpbmc7XG4gICAgICBkaWZmOiBudW1iZXI7XG4gICAgfSxcbiAgXSlbXSA9IFtdO1xuICBzZXBhcmF0b3JzLm1hcCgoeyB1bml0LCB2YWx1ZSB9LCBpbmRleCwgb3JpZ2luYWwpID0+IHtcbiAgICBjb25zdCBtaW4gPSBvcmlnaW4uYWRkKHZhbHVlLCB1bml0KTtcbiAgICBjb25zdCBtYXggPVxuICAgICAgc2VwYXJhdG9ycy5sZW5ndGggLSAxID09PSBpbmRleFxuICAgICAgICA/IGRheWpzKFwiOTk5OS8xMi8yNFwiKVxuICAgICAgICA6IG9yaWdpbi5hZGQob3JpZ2luYWxbaW5kZXggKyAxXS52YWx1ZSwgb3JpZ2luYWxbaW5kZXggKyAxXS51bml0KTtcbiAgICBsZXQgcHJvcHNBcnJheTogKEUgJiB7IGRhdGU6IHN0cmluZyB9KVtdID0gW107XG4gICAgZm9yIChjb25zdCBkYXRlIGluIGNvcHkpIHtcbiAgICAgIGlmIChkYXlqcyhkYXRlKS5pc0JldHdlZW4obWluLCBtYXgsIFwiZGF5XCIsIFwiWylcIikpIHtcbiAgICAgICAgY29uc3QgYWRkID0gY29weVtkYXRlXS5tYXAoKHByb3BzKSA9PiAoeyAuLi5wcm9wcywgZGF0ZSB9KSk7XG4gICAgICAgIHByb3BzQXJyYXkgPSBwcm9wc0FycmF5LmNvbmNhdChhZGQpO1xuICAgICAgICBkZWxldGUgY29weVtkYXRlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHNBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoW1xuICAgICAgICBbXG4gICAgICAgICAgbWluLmZvcm1hdChcIllZWVlNTUREXCIpLFxuICAgICAgICAgIHByb3BzQXJyYXksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdW5pdCxcbiAgICAgICAgICAgIGRpZmY6IHZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICBdKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHByZXZQcm9wc0FycmF5OiBwcmV2UHJvcHMsXG4gICAgZGF0ZXNFbnRyaWVzOiByZXN1bHRzLFxuICB9O1xufTtcblxuY29uc3QgbWFrZVJlbmRlckl0ZW1zID1cbiAgPEUgZXh0ZW5kcyBVbmtub3duUHJvcHM+KFxuICAgIHJlbmRlckl0ZW06IChcbiAgICAgIHByb3BzOiBFICYgeyBkYXRlOiBzdHJpbmc7IGluZGV4OiBudW1iZXIgfSxcbiAgICApID0+IFJlYWN0LkpTWC5FbGVtZW50LFxuICApID0+XG4gIChwcm9wc0FycmF5OiAoRSAmIHsgZGF0ZTogc3RyaW5nIH0pW10pID0+IHtcbiAgICByZXR1cm4gcHJvcHNBcnJheS5tYXAoKHByb3BzLCBpbmRleCkgPT5cbiAgICAgIFJlYWN0LmNsb25lRWxlbWVudChyZW5kZXJJdGVtKHsgLi4ucHJvcHMsIGluZGV4IH0pLCB7XG4gICAgICAgIGtleTogYCR7cHJvcHMuZGF0ZX0uJHtpbmRleH1gLFxuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuZXhwb3J0IGNvbnN0IFRpbWVsaW5lID0gPEUgZXh0ZW5kcyBVbmtub3duUHJvcHM+KHtcbiAgcmVuZGVySXRlbSxcbiAgZGF0ZXMsXG4gIGZvcm1hdCA9IHsgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcIm51bWVyaWNcIiwgZGF5OiBcIm51bWVyaWNcIiB9LFxuICBzZXBhcmF0b3JzID0gW10sXG4gIGRhdGUgPSBkYXlqcygpLnN0YXJ0T2YoXCJkYXlcIiksXG4gIHJlbmRlckxhYmVsOiBMYWJlbCA9IERlZmF1bHRMYWJlbCxcbiAgLi4ucHJvcHNcbn06IFRpbWVsaW5lUHJvcHM8RT4pID0+IHtcbiAgY29uc3QgbG9jYWxlID0gdXNlQ29udGV4dChMb2NhbGVDb250ZXh0KTtcbiAgY29uc3QgcnRmID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIFJlbGF0aXZlVGltZUZvcm1hdChsb2NhbGUsIHtcbiAgICAgIG51bWVyaWM6IFwiYXV0b1wiLFxuICAgIH0pO1xuICB9LCBbbG9jYWxlXSk7XG4gIGNvbnN0IHsgcHJldlByb3BzQXJyYXksIGRhdGVzRW50cmllcyB9ID0gZ2V0RGF0ZXNFbnRyaWVzPEU+KFxuICAgIGRhdGVzLFxuICAgIHNlcGFyYXRvcnMsXG4gICAgZGF5anMoZGF0ZSksXG4gICk7XG5cbiAgY29uc3QgcmVuZGVySXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBJdGVtID0gcmVuZGVySXRlbTtcbiAgICBpZiAoSXRlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpdGVtIG9yIHJlbmRlckl0ZW0gaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuICAgIHJldHVybiBtYWtlUmVuZGVySXRlbXM8RT4oSXRlbSk7XG4gIH0sIFtyZW5kZXJJdGVtXSk7XG5cbiAgcmV0dXJuIGRhdGVzRW50cmllcy5sZW5ndGggPiAwID8gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtwcmV2UHJvcHNBcnJheS5sZW5ndGggPiAwICYmIDxkaXY+e3JlbmRlckl0ZW1zKHByZXZQcm9wc0FycmF5KX08L2Rpdj59XG4gICAgICB7ZGF0ZXNFbnRyaWVzLm1hcCgoW3ZhbHVlLCBwcm9wc0FycmF5LCB7IHVuaXQsIGRpZmYgfV0pID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ZWREYXRlID1cbiAgICAgICAgICBmb3JtYXQgPT09IFwicmVsYXRpdmVcIlxuICAgICAgICAgICAgPyBydGYuZm9ybWF0KGRpZmYsIHVuaXQgYXMgVW5pdClcbiAgICAgICAgICAgIDogZGF5anModmFsdWUpLnRvRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGZvcm1hdCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17Zm9ybWF0ZWREYXRlfT5cbiAgICAgICAgICAgIDxMYWJlbCBmb3JtYXR0ZWREYXRlPXtmb3JtYXRlZERhdGV9IC8+XG4gICAgICAgICAgICA8ZGl2PntyZW5kZXJJdGVtcyhwcm9wc0FycmF5KX08L2Rpdj5cbiAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICkgOiBudWxsO1xufTtcbiJdfQ== */",
27
27
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
28
28
  };
29
29
  const DefaultLabel = ({
@@ -112,11 +112,10 @@ var _ref = process.env.NODE_ENV === "production" ? {
112
112
  styles: "display:flex;flex-direction:column;gap:16px"
113
113
  } : {
114
114
  name: "wuhi55-Timeline",
115
- styles: "display:flex;flex-direction:column;gap:16px;label:Timeline;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMk9jIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVDb250ZXh0IH0gZnJvbSBcIi4uL0xvY2FsZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZWxhdGl2ZVRpbWVGb3JtYXQgfSBmcm9tIFwiLi4vQHV0aWxzXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIi4uL1R5cG9ncmFwaHlcIjtcbmltcG9ydCB7IHR5cGUgVW5rbm93blByb3BzIH0gZnJvbSBcIi4uL0B0eXBlcy9Vbmtub3duUHJvcHNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBpc0JldHdlZW4gZnJvbSBcImRheWpzL3BsdWdpbi9pc0JldHdlZW5cIjtcbmltcG9ydCBpc1NhbWVPckFmdGVyIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlclwiO1xuaW1wb3J0IGlzU2FtZU9yQmVmb3JlIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmVcIjtcbmltcG9ydCB0eXBlIHsgVW5pdCB9IGZyb20gXCJyZWxhdGl2ZS10aW1lLWZvcm1hdFwiO1xuXG5kYXlqcy5leHRlbmQoaXNTYW1lT3JBZnRlcik7XG5kYXlqcy5leHRlbmQoaXNTYW1lT3JCZWZvcmUpO1xuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVMYWJlbFByb3BzIHtcbiAgZm9ybWF0dGVkRGF0ZTogc3RyaW5nO1xufVxuXG5jb25zdCBEZWZhdWx0TGFiZWwgPSAoeyBmb3JtYXR0ZWREYXRlIH06IFRpbWVsaW5lTGFiZWxQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxUeXBvZ3JhcGh5XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPlxuICAgICAge2Zvcm1hdHRlZERhdGV9XG4gICAgPC9UeXBvZ3JhcGh5PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVGltZWxpbmVJdGVtUHJvcHM8UHJvcHMgZXh0ZW5kcyBVbmtub3duUHJvcHM+ID0gUHJvcHMgJiB7XG4gIGRhdGU6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVQcm9wczxQcm9wcyBleHRlbmRzIFVua25vd25Qcm9wcz5cbiAgZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4ge1xuICAvKipcbiAgICogVGltZWxpbmVQcm9wcy5kYXRlc+OBp+aMh+WumuOBleOCjOOBn+ODh+ODvOOCv+OCknByb3Bz44Go44GX44Gm5Y+X44GR5Y+W44KK6KGo56S644GZ44KL44Gf44KB44Gu44Kz44Oz44Od44O844ON44Oz44OI44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcmVuZGVySXRlbWAgaW5zdGVhZC5cbiAgICovXG4gIGl0ZW0/OiAocHJvcHM6IFRpbWVsaW5lSXRlbVByb3BzPFByb3BzPikgPT4gUmVhY3QuSlNYLkVsZW1lbnQ7XG4gIC8qKlxuICAgKiBUaW1lbGluZVByb3BzLmRhdGVz44Gn5oyH5a6a44GV44KM44Gf44OH44O844K/44KScHJvcHPjgajjgZfjgablj5fjgZHlj5bjgorooajnpLrjgZnjgovjgZ/jgoHjga7jgrPjg7Pjg53jg7zjg43jg7Pjg4jjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICovXG4gIHJlbmRlckl0ZW0/OiAocHJvcHM6IFRpbWVsaW5lSXRlbVByb3BzPFByb3BzPikgPT4gUmVhY3QuSlNYLkVsZW1lbnQ7XG4gIC8qKlxuICAgKiDml6Xku5jjgajjgIHml6Xku5jjgavlr77lv5zjgZnjgovjg4fjg7zjgr/nvqTjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICpcbiAgICog5piH6aCG44Gna2V544GM44K944O844OI44GV44KM44Gm44GE44KL44GT44Go44KS5YmN5o+Q44Go44GX44Gm44GE44KL54K544Gr5rOo5oSP44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqXG4gICAqIOOCveODvOODiOWHpueQhuOBjOmdouWAkuOBquWgtOWQiOOBr1VJ5YG044Gn44Gu5Yem55CG44KS5qSc6KiO44GX44G+44GZ44CCXG4gICAqXG4gICAqIOOBk+OBk+OBp+WApOOBqOOBl+OBpuaMh+WumuOBleOCjOOBn+mFjeWIl+OBruWei+OBr1RpbWVsaW5lUHJvcHMuaXRlbeOBruW8leaVsOOBq+eUqOOBhOOCieOCjOOBvuOBmeOAglxuICAgKlxuICAgKiBkYXRl44Gu44OV44Kp44O844Oe44OD44OI44GvWVlZWU1NRETjgb7jgZ/jga9ZWVlZLU1NLURE44Gn44GZ44CCbnVtYmVyKG1zKeOBq+OBr+W+jOOBq+WvvuW/nOOBmeOCi+OBi+OCguOBl+OCjOOBvuOBm+OCk+OAglxuICAgKlxuICAgKiBEYXRl5Z6L44KS5Yip55So44GX44Gf44GE44Go44GE44GG5by344GE6KaB5pyb44GM44GC44Gj44Gf5aC05ZCI44GvTWFw44Gr5YiH44KK5pu/44GI44KL44GT44Go44KS5qSc6KiO44GX44G+44GZ44CCXG4gICAqXG4gICAqL1xuICBkYXRlczogUmVjb3JkPHN0cmluZywgUHJvcHNbXT47XG4gIC8qKlxuICAgKiDljLrliIbjgZTjgajjga7jg6njg5njg6vjga7ooajoqJjjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICpcbiAgICogQGRlZmF1bHQge3llYXI6IG51bWVyaWMgLG1vbnRoOiBudW1lcmljLCBkYXk6IG51bWVyaWN9XG4gICAqL1xuICBmb3JtYXQ/OiBcInJlbGF0aXZlXCIgfCBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucztcbiAgLyoqXG4gICAqIOWMuuWIhuOCkuaMh+WumuOBmeOCi+OAguWOn+eCueOCkuS4reW/g+OBqOOBl+OBpuS4oeWBtOOBq+OAgemghuOBq+aMh+WumuOBleOCjOOBn+WMuuWIhueCueOCkumFjee9ruOBl+OBpuOBhOOBj+OAglxuICAgKlxuICAgKiDljp/ngrnjga7jg4fjg5Xjgqnjg6vjg4jjga9cIuS7iuaXpVwi44CCXG4gICAqXG4gICAqIOmBjuWOu+OBi+OCieacquadpeOBuOaYh+mghuOBp+OCveODvOODiOOBleOCjOOBpuOBhOOCi+OBk+OBqOOCkuWJjeaPkOOBq+OBl+OBpuOBhOOBvuOBmeOAglxuICAgKiDjgr3jg7zjg4jlh6bnkIbjgYzpm6PjgZfjgYTloLTlkIjjga9VSeWBtOOBp+OBruWHpueQhuOCkuaknOiojuOBl+OBvuOBmeOAglxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgc2VwYXJhdG9ycz86IHtcbiAgICB1bml0OiBcImRheVwiIHwgXCJtb250aFwiIHwgXCJ5ZWFyXCIgfCBcIndlZWtcIjtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9W107XG4gIC8qKlxuICAgKiDln7rmupbml6XjgpLmjIflrprjgZnjgovjgIJcbiAgICogQGRlZmF1bHQgdG9kYXlcbiAgICovXG4gIGRhdGU/OiBkYXlqcy5Db25maWdUeXBlO1xuICAvKipcbiAgICog44OV44Kp44O844Oe44OD44OI44GV44KM44Gf5pel5LuY44KS5Y+X44GR5Y+W44KK44CB44Op44OZ44Or44Go44GX44Gm6KGo56S644GZ44KL44Kz44Oz44Od44O844ON44Oz44OI44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqL1xuICByZW5kZXJMYWJlbD86IChwcm9wczogVGltZWxpbmVMYWJlbFByb3BzKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcbn1cblxuY29uc3QgZ2V0RGF0ZXNFbnRyaWVzID0gPEUgZXh0ZW5kcyBVbmtub3duUHJvcHM+KFxuICBkYXRlczogUmVjb3JkPHN0cmluZywgRVtdPixcbiAgc2VwYXJhdG9yczoge1xuICAgIHVuaXQ6IFwiZGF5XCIgfCBcIm1vbnRoXCIgfCBcInllYXJcIiB8IFwid2Vla1wiO1xuICAgIHZhbHVlOiBudW1iZXI7XG4gIH1bXSxcbiAgb3JpZ2luOiBkYXlqcy5EYXlqcyxcbikgPT4ge1xuICBpZiAoc2VwYXJhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJldlByb3BzQXJyYXk6IFtdLFxuICAgICAgZGF0ZXNFbnRyaWVzOiBPYmplY3QuZW50cmllcyhkYXRlcykubWFwKChbZGF0ZSwgcHJvcHNBcnJheV0pID0+IHtcbiAgICAgICAgY29uc3QgZGlmZiA9IGRheWpzKGRhdGUpLmRpZmYob3JpZ2luLCBcImRheVwiKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBkYXRlLFxuICAgICAgICAgIHByb3BzQXJyYXkubWFwKChwcm9wcykgPT4gKHtcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdW5pdDogXCJkYXlcIixcbiAgICAgICAgICAgIGRpZmYsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSBhcyBjb25zdDtcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBjb3B5ID0geyAuLi5kYXRlcyB9O1xuICAvLyBwcmV2UHJvcHNcbiAgbGV0IHByZXZQcm9wczogKEUgJiB7IGRhdGU6IHN0cmluZyB9KVtdID0gW107XG4gIGNvbnN0IG1pbiA9IG9yaWdpbi5hZGQoc2VwYXJhdG9yc1swXS52YWx1ZSwgc2VwYXJhdG9yc1swXS51bml0KTtcbiAgZm9yIChjb25zdCBkYXRlIGluIGNvcHkpIHtcbiAgICBpZiAoZGF5anMoZGF0ZSkuaXNCZWZvcmUobWluLCBcImRheVwiKSkge1xuICAgICAgY29uc3QgYWRkID0gY29weVtkYXRlXS5tYXAoKHByb3BzKSA9PiAoeyAuLi5wcm9wcywgZGF0ZSB9KSk7XG4gICAgICBwcmV2UHJvcHMgPSBwcmV2UHJvcHMuY29uY2F0KGFkZCk7XG4gICAgICBkZWxldGUgY29weVtkYXRlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGxldCByZXN1bHRzOiAocmVhZG9ubHkgW1xuICAgIHN0cmluZyxcbiAgICAoRSAmIHtcbiAgICAgIGRhdGU6IHN0cmluZztcbiAgICB9KVtdLFxuICAgIHtcbiAgICAgIHVuaXQ6IHN0cmluZztcbiAgICAgIGRpZmY6IG51bWJlcjtcbiAgICB9LFxuICBdKVtdID0gW107XG4gIHNlcGFyYXRvcnMubWFwKCh7IHVuaXQsIHZhbHVlIH0sIGluZGV4LCBvcmlnaW5hbCkgPT4ge1xuICAgIGNvbnN0IG1pbiA9IG9yaWdpbi5hZGQodmFsdWUsIHVuaXQpO1xuICAgIGNvbnN0IG1heCA9XG4gICAgICBzZXBhcmF0b3JzLmxlbmd0aCAtIDEgPT09IGluZGV4XG4gICAgICAgID8gZGF5anMoXCI5OTk5LzEyLzI0XCIpXG4gICAgICAgIDogb3JpZ2luLmFkZChvcmlnaW5hbFtpbmRleCArIDFdLnZhbHVlLCBvcmlnaW5hbFtpbmRleCArIDFdLnVuaXQpO1xuICAgIGxldCBwcm9wc0FycmF5OiAoRSAmIHsgZGF0ZTogc3RyaW5nIH0pW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGRhdGUgaW4gY29weSkge1xuICAgICAgaWYgKGRheWpzKGRhdGUpLmlzQmV0d2VlbihtaW4sIG1heCwgXCJkYXlcIiwgXCJbKVwiKSkge1xuICAgICAgICBjb25zdCBhZGQgPSBjb3B5W2RhdGVdLm1hcCgocHJvcHMpID0+ICh7IC4uLnByb3BzLCBkYXRlIH0pKTtcbiAgICAgICAgcHJvcHNBcnJheSA9IHByb3BzQXJyYXkuY29uY2F0KGFkZCk7XG4gICAgICAgIGRlbGV0ZSBjb3B5W2RhdGVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wc0FycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmNvbmNhdChbXG4gICAgICAgIFtcbiAgICAgICAgICBtaW4uZm9ybWF0KFwiWVlZWU1NRERcIiksXG4gICAgICAgICAgcHJvcHNBcnJheSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1bml0LFxuICAgICAgICAgICAgZGlmZjogdmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIF0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgcHJldlByb3BzQXJyYXk6IHByZXZQcm9wcyxcbiAgICBkYXRlc0VudHJpZXM6IHJlc3VsdHMsXG4gIH07XG59O1xuXG5jb25zdCBtYWtlUmVuZGVySXRlbXMgPVxuICA8RSBleHRlbmRzIFVua25vd25Qcm9wcz4oXG4gICAgcmVuZGVySXRlbTogKFxuICAgICAgcHJvcHM6IEUgJiB7IGRhdGU6IHN0cmluZzsgaW5kZXg6IG51bWJlciB9LFxuICAgICkgPT4gUmVhY3QuSlNYLkVsZW1lbnQsXG4gICkgPT5cbiAgKHByb3BzQXJyYXk6IChFICYgeyBkYXRlOiBzdHJpbmcgfSlbXSkgPT4ge1xuICAgIHJldHVybiBwcm9wc0FycmF5Lm1hcCgocHJvcHMsIGluZGV4KSA9PlxuICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KHJlbmRlckl0ZW0oeyAuLi5wcm9wcywgaW5kZXggfSksIHtcbiAgICAgICAga2V5OiBgJHtwcm9wcy5kYXRlfS4ke2luZGV4fWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9O1xuXG5leHBvcnQgY29uc3QgVGltZWxpbmUgPSA8RSBleHRlbmRzIFVua25vd25Qcm9wcz4oe1xuICBpdGVtLFxuICByZW5kZXJJdGVtLFxuICBkYXRlcyxcbiAgZm9ybWF0ID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibnVtZXJpY1wiLCBkYXk6IFwibnVtZXJpY1wiIH0sXG4gIHNlcGFyYXRvcnMgPSBbXSxcbiAgZGF0ZSA9IGRheWpzKCkuc3RhcnRPZihcImRheVwiKSxcbiAgcmVuZGVyTGFiZWw6IExhYmVsID0gRGVmYXVsdExhYmVsLFxuICAuLi5wcm9wc1xufTogVGltZWxpbmVQcm9wczxFPikgPT4ge1xuICBjb25zdCBsb2NhbGUgPSB1c2VDb250ZXh0KExvY2FsZUNvbnRleHQpO1xuICBjb25zdCBydGYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gUmVsYXRpdmVUaW1lRm9ybWF0KGxvY2FsZSwge1xuICAgICAgbnVtZXJpYzogXCJhdXRvXCIsXG4gICAgfSk7XG4gIH0sIFtsb2NhbGVdKTtcbiAgY29uc3QgeyBwcmV2UHJvcHNBcnJheSwgZGF0ZXNFbnRyaWVzIH0gPSBnZXREYXRlc0VudHJpZXM8RT4oXG4gICAgZGF0ZXMsXG4gICAgc2VwYXJhdG9ycyxcbiAgICBkYXlqcyhkYXRlKSxcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IEl0ZW0gPSBpdGVtID8/IHJlbmRlckl0ZW07XG4gICAgaWYgKEl0ZW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXRlbSBvciByZW5kZXJJdGVtIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbWFrZVJlbmRlckl0ZW1zPEU+KEl0ZW0pO1xuICB9LCBbaXRlbSwgcmVuZGVySXRlbV0pO1xuXG4gIHJldHVybiBkYXRlc0VudHJpZXMubGVuZ3RoID4gMCA/IChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgYH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7cHJldlByb3BzQXJyYXkubGVuZ3RoID4gMCAmJiA8ZGl2PntyZW5kZXJJdGVtcyhwcmV2UHJvcHNBcnJheSl9PC9kaXY+fVxuICAgICAge2RhdGVzRW50cmllcy5tYXAoKFt2YWx1ZSwgcHJvcHNBcnJheSwgeyB1bml0LCBkaWZmIH1dKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdGVkRGF0ZSA9XG4gICAgICAgICAgZm9ybWF0ID09PSBcInJlbGF0aXZlXCJcbiAgICAgICAgICAgID8gcnRmLmZvcm1hdChkaWZmLCB1bml0IGFzIFVuaXQpXG4gICAgICAgICAgICA6IGRheWpzKHZhbHVlKS50b0RhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBmb3JtYXQpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2Zvcm1hdGVkRGF0ZX0+XG4gICAgICAgICAgICA8TGFiZWwgZm9ybWF0dGVkRGF0ZT17Zm9ybWF0ZWREYXRlfSAvPlxuICAgICAgICAgICAgPGRpdj57cmVuZGVySXRlbXMocHJvcHNBcnJheSl9PC9kaXY+XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApIDogbnVsbDtcbn07XG4iXX0= */",
115
+ styles: "display:flex;flex-direction:column;gap:16px;label:Timeline;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcU9jIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9UaW1lbGluZS9UaW1lbGluZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVDb250ZXh0IH0gZnJvbSBcIi4uL0xvY2FsZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZWxhdGl2ZVRpbWVGb3JtYXQgfSBmcm9tIFwiLi4vQHV0aWxzXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIi4uL1R5cG9ncmFwaHlcIjtcbmltcG9ydCB7IHR5cGUgVW5rbm93blByb3BzIH0gZnJvbSBcIi4uL0B0eXBlcy9Vbmtub3duUHJvcHNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBpc0JldHdlZW4gZnJvbSBcImRheWpzL3BsdWdpbi9pc0JldHdlZW5cIjtcbmltcG9ydCBpc1NhbWVPckFmdGVyIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlclwiO1xuaW1wb3J0IGlzU2FtZU9yQmVmb3JlIGZyb20gXCJkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmVcIjtcbmltcG9ydCB0eXBlIHsgVW5pdCB9IGZyb20gXCJyZWxhdGl2ZS10aW1lLWZvcm1hdFwiO1xuXG5kYXlqcy5leHRlbmQoaXNTYW1lT3JBZnRlcik7XG5kYXlqcy5leHRlbmQoaXNTYW1lT3JCZWZvcmUpO1xuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVMYWJlbFByb3BzIHtcbiAgZm9ybWF0dGVkRGF0ZTogc3RyaW5nO1xufVxuXG5jb25zdCBEZWZhdWx0TGFiZWwgPSAoeyBmb3JtYXR0ZWREYXRlIH06IFRpbWVsaW5lTGFiZWxQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxUeXBvZ3JhcGh5XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPlxuICAgICAge2Zvcm1hdHRlZERhdGV9XG4gICAgPC9UeXBvZ3JhcGh5PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVGltZWxpbmVJdGVtUHJvcHM8UHJvcHMgZXh0ZW5kcyBVbmtub3duUHJvcHM+ID0gUHJvcHMgJiB7XG4gIGRhdGU6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmVQcm9wczxQcm9wcyBleHRlbmRzIFVua25vd25Qcm9wcz5cbiAgZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4ge1xuICAvKipcbiAgICogVGltZWxpbmVQcm9wcy5kYXRlc+OBp+aMh+WumuOBleOCjOOBn+ODh+ODvOOCv+OCknByb3Bz44Go44GX44Gm5Y+X44GR5Y+W44KK6KGo56S644GZ44KL44Gf44KB44Gu44Kz44Oz44Od44O844ON44Oz44OI44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqL1xuICByZW5kZXJJdGVtPzogKHByb3BzOiBUaW1lbGluZUl0ZW1Qcm9wczxQcm9wcz4pID0+IFJlYWN0LkpTWC5FbGVtZW50O1xuICAvKipcbiAgICog5pel5LuY44Go44CB5pel5LuY44Gr5a++5b+c44GZ44KL44OH44O844K/576k44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqXG4gICAqIOaYh+mghuOBp2tleeOBjOOCveODvOODiOOBleOCjOOBpuOBhOOCi+OBk+OBqOOCkuWJjeaPkOOBqOOBl+OBpuOBhOOCi+eCueOBq+azqOaEj+OBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKlxuICAgKiDjgr3jg7zjg4jlh6bnkIbjgYzpnaLlgJLjgarloLTlkIjjga9VSeWBtOOBp+OBruWHpueQhuOCkuaknOiojuOBl+OBvuOBmeOAglxuICAgKlxuICAgKiDjgZPjgZPjgaflgKTjgajjgZfjgabmjIflrprjgZXjgozjgZ/phY3liJfjga7lnovjga9UaW1lbGluZVByb3BzLml0ZW3jga7lvJXmlbDjgavnlKjjgYTjgonjgozjgb7jgZnjgIJcbiAgICpcbiAgICogZGF0ZeOBruODleOCqeODvOODnuODg+ODiOOBr1lZWVlNTURE44G+44Gf44GvWVlZWS1NTS1EROOBp+OBmeOAgm51bWJlcihtcynjgavjga/lvozjgavlr77lv5zjgZnjgovjgYvjgoLjgZfjgozjgb7jgZvjgpPjgIJcbiAgICpcbiAgICogRGF0ZeWei+OCkuWIqeeUqOOBl+OBn+OBhOOBqOOBhOOBhuW8t+OBhOimgeacm+OBjOOBguOBo+OBn+WgtOWQiOOBr01hcOOBq+WIh+OCiuabv+OBiOOCi+OBk+OBqOOCkuaknOiojuOBl+OBvuOBmeOAglxuICAgKlxuICAgKi9cbiAgZGF0ZXM6IFJlY29yZDxzdHJpbmcsIFByb3BzW10+O1xuICAvKipcbiAgICog5Yy65YiG44GU44Go44Gu44Op44OZ44Or44Gu6KGo6KiY44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqXG4gICAqIEBkZWZhdWx0IHt5ZWFyOiBudW1lcmljICxtb250aDogbnVtZXJpYywgZGF5OiBudW1lcmljfVxuICAgKi9cbiAgZm9ybWF0PzogXCJyZWxhdGl2ZVwiIHwgSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnM7XG4gIC8qKlxuICAgKiDljLrliIbjgpLmjIflrprjgZnjgovjgILljp/ngrnjgpLkuK3lv4PjgajjgZfjgabkuKHlgbTjgavjgIHpoIbjgavmjIflrprjgZXjgozjgZ/ljLrliIbngrnjgpLphY3nva7jgZfjgabjgYTjgY/jgIJcbiAgICpcbiAgICog5Y6f54K544Gu44OH44OV44Kp44Or44OI44GvXCLku4rml6VcIuOAglxuICAgKlxuICAgKiDpgY7ljrvjgYvjgonmnKrmnaXjgbjmmIfpoIbjgafjgr3jg7zjg4jjgZXjgozjgabjgYTjgovjgZPjgajjgpLliY3mj5DjgavjgZfjgabjgYTjgb7jgZnjgIJcbiAgICog44K944O844OI5Yem55CG44GM6Zuj44GX44GE5aC05ZCI44GvVUnlgbTjgafjga7lh6bnkIbjgpLmpJzoqI7jgZfjgb7jgZnjgIJcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHNlcGFyYXRvcnM/OiB7XG4gICAgdW5pdDogXCJkYXlcIiB8IFwibW9udGhcIiB8IFwieWVhclwiIHwgXCJ3ZWVrXCI7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgfVtdO1xuICAvKipcbiAgICog5Z+65rqW5pel44KS5oyH5a6a44GZ44KL44CCXG4gICAqIEBkZWZhdWx0IHRvZGF5XG4gICAqL1xuICBkYXRlPzogZGF5anMuQ29uZmlnVHlwZTtcbiAgLyoqXG4gICAqIOODleOCqeODvOODnuODg+ODiOOBleOCjOOBn+aXpeS7mOOCkuWPl+OBkeWPluOCiuOAgeODqeODmeODq+OBqOOBl+OBpuihqOekuuOBmeOCi+OCs+ODs+ODneODvOODjeODs+ODiOOCkuaMh+WumuOBl+OBvuOBmeOAglxuICAgKi9cbiAgcmVuZGVyTGFiZWw/OiAocHJvcHM6IFRpbWVsaW5lTGFiZWxQcm9wcykgPT4gUmVhY3QuSlNYLkVsZW1lbnQ7XG59XG5cbmNvbnN0IGdldERhdGVzRW50cmllcyA9IDxFIGV4dGVuZHMgVW5rbm93blByb3BzPihcbiAgZGF0ZXM6IFJlY29yZDxzdHJpbmcsIEVbXT4sXG4gIHNlcGFyYXRvcnM6IHtcbiAgICB1bml0OiBcImRheVwiIHwgXCJtb250aFwiIHwgXCJ5ZWFyXCIgfCBcIndlZWtcIjtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9W10sXG4gIG9yaWdpbjogZGF5anMuRGF5anMsXG4pID0+IHtcbiAgaWYgKHNlcGFyYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZXZQcm9wc0FycmF5OiBbXSxcbiAgICAgIGRhdGVzRW50cmllczogT2JqZWN0LmVudHJpZXMoZGF0ZXMpLm1hcCgoW2RhdGUsIHByb3BzQXJyYXldKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBkYXlqcyhkYXRlKS5kaWZmKG9yaWdpbiwgXCJkYXlcIik7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBwcm9wc0FycmF5Lm1hcCgocHJvcHMpID0+ICh7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVuaXQ6IFwiZGF5XCIsXG4gICAgICAgICAgICBkaWZmLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0gYXMgY29uc3Q7XG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgY29weSA9IHsgLi4uZGF0ZXMgfTtcbiAgLy8gcHJldlByb3BzXG4gIGxldCBwcmV2UHJvcHM6IChFICYgeyBkYXRlOiBzdHJpbmcgfSlbXSA9IFtdO1xuICBjb25zdCBtaW4gPSBvcmlnaW4uYWRkKHNlcGFyYXRvcnNbMF0udmFsdWUsIHNlcGFyYXRvcnNbMF0udW5pdCk7XG4gIGZvciAoY29uc3QgZGF0ZSBpbiBjb3B5KSB7XG4gICAgaWYgKGRheWpzKGRhdGUpLmlzQmVmb3JlKG1pbiwgXCJkYXlcIikpIHtcbiAgICAgIGNvbnN0IGFkZCA9IGNvcHlbZGF0ZV0ubWFwKChwcm9wcykgPT4gKHsgLi4ucHJvcHMsIGRhdGUgfSkpO1xuICAgICAgcHJldlByb3BzID0gcHJldlByb3BzLmNvbmNhdChhZGQpO1xuICAgICAgZGVsZXRlIGNvcHlbZGF0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBsZXQgcmVzdWx0czogKHJlYWRvbmx5IFtcbiAgICBzdHJpbmcsXG4gICAgKEUgJiB7XG4gICAgICBkYXRlOiBzdHJpbmc7XG4gICAgfSlbXSxcbiAgICB7XG4gICAgICB1bml0OiBzdHJpbmc7XG4gICAgICBkaWZmOiBudW1iZXI7XG4gICAgfSxcbiAgXSlbXSA9IFtdO1xuICBzZXBhcmF0b3JzLm1hcCgoeyB1bml0LCB2YWx1ZSB9LCBpbmRleCwgb3JpZ2luYWwpID0+IHtcbiAgICBjb25zdCBtaW4gPSBvcmlnaW4uYWRkKHZhbHVlLCB1bml0KTtcbiAgICBjb25zdCBtYXggPVxuICAgICAgc2VwYXJhdG9ycy5sZW5ndGggLSAxID09PSBpbmRleFxuICAgICAgICA/IGRheWpzKFwiOTk5OS8xMi8yNFwiKVxuICAgICAgICA6IG9yaWdpbi5hZGQob3JpZ2luYWxbaW5kZXggKyAxXS52YWx1ZSwgb3JpZ2luYWxbaW5kZXggKyAxXS51bml0KTtcbiAgICBsZXQgcHJvcHNBcnJheTogKEUgJiB7IGRhdGU6IHN0cmluZyB9KVtdID0gW107XG4gICAgZm9yIChjb25zdCBkYXRlIGluIGNvcHkpIHtcbiAgICAgIGlmIChkYXlqcyhkYXRlKS5pc0JldHdlZW4obWluLCBtYXgsIFwiZGF5XCIsIFwiWylcIikpIHtcbiAgICAgICAgY29uc3QgYWRkID0gY29weVtkYXRlXS5tYXAoKHByb3BzKSA9PiAoeyAuLi5wcm9wcywgZGF0ZSB9KSk7XG4gICAgICAgIHByb3BzQXJyYXkgPSBwcm9wc0FycmF5LmNvbmNhdChhZGQpO1xuICAgICAgICBkZWxldGUgY29weVtkYXRlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHNBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoW1xuICAgICAgICBbXG4gICAgICAgICAgbWluLmZvcm1hdChcIllZWVlNTUREXCIpLFxuICAgICAgICAgIHByb3BzQXJyYXksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdW5pdCxcbiAgICAgICAgICAgIGRpZmY6IHZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICBdKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHByZXZQcm9wc0FycmF5OiBwcmV2UHJvcHMsXG4gICAgZGF0ZXNFbnRyaWVzOiByZXN1bHRzLFxuICB9O1xufTtcblxuY29uc3QgbWFrZVJlbmRlckl0ZW1zID1cbiAgPEUgZXh0ZW5kcyBVbmtub3duUHJvcHM+KFxuICAgIHJlbmRlckl0ZW06IChcbiAgICAgIHByb3BzOiBFICYgeyBkYXRlOiBzdHJpbmc7IGluZGV4OiBudW1iZXIgfSxcbiAgICApID0+IFJlYWN0LkpTWC5FbGVtZW50LFxuICApID0+XG4gIChwcm9wc0FycmF5OiAoRSAmIHsgZGF0ZTogc3RyaW5nIH0pW10pID0+IHtcbiAgICByZXR1cm4gcHJvcHNBcnJheS5tYXAoKHByb3BzLCBpbmRleCkgPT5cbiAgICAgIFJlYWN0LmNsb25lRWxlbWVudChyZW5kZXJJdGVtKHsgLi4ucHJvcHMsIGluZGV4IH0pLCB7XG4gICAgICAgIGtleTogYCR7cHJvcHMuZGF0ZX0uJHtpbmRleH1gLFxuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuZXhwb3J0IGNvbnN0IFRpbWVsaW5lID0gPEUgZXh0ZW5kcyBVbmtub3duUHJvcHM+KHtcbiAgcmVuZGVySXRlbSxcbiAgZGF0ZXMsXG4gIGZvcm1hdCA9IHsgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcIm51bWVyaWNcIiwgZGF5OiBcIm51bWVyaWNcIiB9LFxuICBzZXBhcmF0b3JzID0gW10sXG4gIGRhdGUgPSBkYXlqcygpLnN0YXJ0T2YoXCJkYXlcIiksXG4gIHJlbmRlckxhYmVsOiBMYWJlbCA9IERlZmF1bHRMYWJlbCxcbiAgLi4ucHJvcHNcbn06IFRpbWVsaW5lUHJvcHM8RT4pID0+IHtcbiAgY29uc3QgbG9jYWxlID0gdXNlQ29udGV4dChMb2NhbGVDb250ZXh0KTtcbiAgY29uc3QgcnRmID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIFJlbGF0aXZlVGltZUZvcm1hdChsb2NhbGUsIHtcbiAgICAgIG51bWVyaWM6IFwiYXV0b1wiLFxuICAgIH0pO1xuICB9LCBbbG9jYWxlXSk7XG4gIGNvbnN0IHsgcHJldlByb3BzQXJyYXksIGRhdGVzRW50cmllcyB9ID0gZ2V0RGF0ZXNFbnRyaWVzPEU+KFxuICAgIGRhdGVzLFxuICAgIHNlcGFyYXRvcnMsXG4gICAgZGF5anMoZGF0ZSksXG4gICk7XG5cbiAgY29uc3QgcmVuZGVySXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBJdGVtID0gcmVuZGVySXRlbTtcbiAgICBpZiAoSXRlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpdGVtIG9yIHJlbmRlckl0ZW0gaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuICAgIHJldHVybiBtYWtlUmVuZGVySXRlbXM8RT4oSXRlbSk7XG4gIH0sIFtyZW5kZXJJdGVtXSk7XG5cbiAgcmV0dXJuIGRhdGVzRW50cmllcy5sZW5ndGggPiAwID8gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtwcmV2UHJvcHNBcnJheS5sZW5ndGggPiAwICYmIDxkaXY+e3JlbmRlckl0ZW1zKHByZXZQcm9wc0FycmF5KX08L2Rpdj59XG4gICAgICB7ZGF0ZXNFbnRyaWVzLm1hcCgoW3ZhbHVlLCBwcm9wc0FycmF5LCB7IHVuaXQsIGRpZmYgfV0pID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0ZWREYXRlID1cbiAgICAgICAgICBmb3JtYXQgPT09IFwicmVsYXRpdmVcIlxuICAgICAgICAgICAgPyBydGYuZm9ybWF0KGRpZmYsIHVuaXQgYXMgVW5pdClcbiAgICAgICAgICAgIDogZGF5anModmFsdWUpLnRvRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGZvcm1hdCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17Zm9ybWF0ZWREYXRlfT5cbiAgICAgICAgICAgIDxMYWJlbCBmb3JtYXR0ZWREYXRlPXtmb3JtYXRlZERhdGV9IC8+XG4gICAgICAgICAgICA8ZGl2PntyZW5kZXJJdGVtcyhwcm9wc0FycmF5KX08L2Rpdj5cbiAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICkgOiBudWxsO1xufTtcbiJdfQ== */",
116
116
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
117
117
  };
118
118
  const Timeline = ({
119
- item,
120
119
  renderItem,
121
120
  dates,
122
121
  format = {
@@ -140,12 +139,12 @@ const Timeline = ({
140
139
  datesEntries
141
140
  } = getDatesEntries(dates, separators, (0, _dayjs.default)(date));
142
141
  const renderItems = (0, _react2.useMemo)(() => {
143
- const Item = item ?? renderItem;
142
+ const Item = renderItem;
144
143
  if (Item === undefined) {
145
144
  throw new Error("item or renderItem is required");
146
145
  }
147
146
  return makeRenderItems(Item);
148
- }, [item, renderItem]);
147
+ }, [renderItem]);
149
148
  return datesEntries.length > 0 ? (0, _react.jsx)("div", _extends({
150
149
  css: _ref
151
150
  }, props), prevPropsArray.length > 0 && (0, _react.jsx)("div", null, renderItems(prevPropsArray)), datesEntries.map(([value, propsArray, {
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","names":["_LocaleProvider","require","_utils","_Typography","_react","_react2","_interopRequireWildcard","_dayjs","_interopRequireDefault","_isBetween","_isSameOrAfter","_isSameOrBefore","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","dayjs","extend","isSameOrAfter","isSameOrBefore","isBetween","_ref2","process","env","NODE_ENV","name","styles","toString","DefaultLabel","formattedDate","jsx","Typography","css","getDatesEntries","dates","separators","origin","prevPropsArray","datesEntries","entries","map","date","propsArray","diff","props","unit","copy","prevProps","min","add","value","isBefore","concat","results","index","original","max","format","makeRenderItems","renderItem","React","cloneElement","key","_ref","Timeline","item","year","month","day","startOf","renderLabel","Label","locale","useContext","LocaleContext","rtf","useMemo","RelativeTimeFormat","numeric","renderItems","Item","undefined","Error","formatedDate","toDate","toLocaleDateString","Fragment","exports"],"sources":["../../../src/Timeline/Timeline.tsx"],"sourcesContent":["import { LocaleContext } from \"../LocaleProvider\";\nimport { RelativeTimeFormat } from \"../@utils\";\nimport { Typography } from \"../Typography\";\nimport { type UnknownProps } from \"../@types/UnknownProps\";\nimport { css } from \"@emotion/react\";\nimport React, { useContext, useMemo } from \"react\";\nimport dayjs from \"dayjs\";\nimport isBetween from \"dayjs/plugin/isBetween\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\nimport type { Unit } from \"relative-time-format\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(isBetween);\n\nexport interface TimelineLabelProps {\n formattedDate: string;\n}\n\nconst DefaultLabel = ({ formattedDate }: TimelineLabelProps) => {\n return (\n <Typography\n css={css`\n display: flex;\n gap: 16px;\n align-items: center;\n &::before,\n &::after {\n flex-grow: 1;\n height: 1px;\n content: \"\";\n background-color: currentColor;\n }\n `}\n >\n {formattedDate}\n </Typography>\n );\n};\n\nexport type TimelineItemProps<Props extends UnknownProps> = Props & {\n date: string;\n index: number;\n};\n\nexport interface TimelineProps<Props extends UnknownProps>\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * TimelineProps.datesで指定されたデータをpropsとして受け取り表示するためのコンポーネントを指定します。\n * @deprecated Use `renderItem` instead.\n */\n item?: (props: TimelineItemProps<Props>) => React.JSX.Element;\n /**\n * TimelineProps.datesで指定されたデータをpropsとして受け取り表示するためのコンポーネントを指定します。\n */\n renderItem?: (props: TimelineItemProps<Props>) => React.JSX.Element;\n /**\n * 日付と、日付に対応するデータ群を指定します。\n *\n * 昇順でkeyがソートされていることを前提としている点に注意してください。\n *\n * ソート処理が面倒な場合はUI側での処理を検討します。\n *\n * ここで値として指定された配列の型はTimelineProps.itemの引数に用いられます。\n *\n * dateのフォーマットはYYYYMMDDまたはYYYY-MM-DDです。number(ms)には後に対応するかもしれません。\n *\n * Date型を利用したいという強い要望があった場合はMapに切り替えることを検討します。\n *\n */\n dates: Record<string, Props[]>;\n /**\n * 区分ごとのラベルの表記を指定します。\n *\n * @default {year: numeric ,month: numeric, day: numeric}\n */\n format?: \"relative\" | Intl.DateTimeFormatOptions;\n /**\n * 区分を指定する。原点を中心として両側に、順に指定された区分点を配置していく。\n *\n * 原点のデフォルトは\"今日\"。\n *\n * 過去から未来へ昇順でソートされていることを前提にしています。\n * ソート処理が難しい場合はUI側での処理を検討します。\n *\n * @default []\n */\n separators?: {\n unit: \"day\" | \"month\" | \"year\" | \"week\";\n value: number;\n }[];\n /**\n * 基準日を指定する。\n * @default today\n */\n date?: dayjs.ConfigType;\n /**\n * フォーマットされた日付を受け取り、ラベルとして表示するコンポーネントを指定します。\n */\n renderLabel?: (props: TimelineLabelProps) => React.JSX.Element;\n}\n\nconst getDatesEntries = <E extends UnknownProps>(\n dates: Record<string, E[]>,\n separators: {\n unit: \"day\" | \"month\" | \"year\" | \"week\";\n value: number;\n }[],\n origin: dayjs.Dayjs,\n) => {\n if (separators.length === 0) {\n return {\n prevPropsArray: [],\n datesEntries: Object.entries(dates).map(([date, propsArray]) => {\n const diff = dayjs(date).diff(origin, \"day\");\n return [\n date,\n propsArray.map((props) => ({\n ...props,\n date,\n })),\n {\n unit: \"day\",\n diff,\n },\n ] as const;\n }),\n };\n }\n\n const copy = { ...dates };\n // prevProps\n let prevProps: (E & { date: string })[] = [];\n const min = origin.add(separators[0].value, separators[0].unit);\n for (const date in copy) {\n if (dayjs(date).isBefore(min, \"day\")) {\n const add = copy[date].map((props) => ({ ...props, date }));\n prevProps = prevProps.concat(add);\n delete copy[date];\n } else {\n break;\n }\n }\n let results: (readonly [\n string,\n (E & {\n date: string;\n })[],\n {\n unit: string;\n diff: number;\n },\n ])[] = [];\n separators.map(({ unit, value }, index, original) => {\n const min = origin.add(value, unit);\n const max =\n separators.length - 1 === index\n ? dayjs(\"9999/12/24\")\n : origin.add(original[index + 1].value, original[index + 1].unit);\n let propsArray: (E & { date: string })[] = [];\n for (const date in copy) {\n if (dayjs(date).isBetween(min, max, \"day\", \"[)\")) {\n const add = copy[date].map((props) => ({ ...props, date }));\n propsArray = propsArray.concat(add);\n delete copy[date];\n } else {\n break;\n }\n }\n if (propsArray.length > 0) {\n results = results.concat([\n [\n min.format(\"YYYYMMDD\"),\n propsArray,\n {\n unit,\n diff: value,\n },\n ],\n ]);\n }\n });\n return {\n prevPropsArray: prevProps,\n datesEntries: results,\n };\n};\n\nconst makeRenderItems =\n <E extends UnknownProps>(\n renderItem: (\n props: E & { date: string; index: number },\n ) => React.JSX.Element,\n ) =>\n (propsArray: (E & { date: string })[]) => {\n return propsArray.map((props, index) =>\n React.cloneElement(renderItem({ ...props, index }), {\n key: `${props.date}.${index}`,\n }),\n );\n };\n\nexport const Timeline = <E extends UnknownProps>({\n item,\n renderItem,\n dates,\n format = { year: \"numeric\", month: \"numeric\", day: \"numeric\" },\n separators = [],\n date = dayjs().startOf(\"day\"),\n renderLabel: Label = DefaultLabel,\n ...props\n}: TimelineProps<E>) => {\n const locale = useContext(LocaleContext);\n const rtf = useMemo(() => {\n return RelativeTimeFormat(locale, {\n numeric: \"auto\",\n });\n }, [locale]);\n const { prevPropsArray, datesEntries } = getDatesEntries<E>(\n dates,\n separators,\n dayjs(date),\n );\n\n const renderItems = useMemo(() => {\n const Item = item ?? renderItem;\n if (Item === undefined) {\n throw new Error(\"item or renderItem is required\");\n }\n return makeRenderItems<E>(Item);\n }, [item, renderItem]);\n\n return datesEntries.length > 0 ? (\n <div\n css={css`\n display: flex;\n flex-direction: column;\n gap: 16px;\n `}\n {...props}\n >\n {prevPropsArray.length > 0 && <div>{renderItems(prevPropsArray)}</div>}\n {datesEntries.map(([value, propsArray, { unit, diff }]) => {\n const formatedDate =\n format === \"relative\"\n ? rtf.format(diff, unit as Unit)\n : dayjs(value).toDate().toLocaleDateString(locale, format);\n return (\n <React.Fragment key={formatedDate}>\n <Label formattedDate={formatedDate} />\n <div>{renderItems(propsArray)}</div>\n </React.Fragment>\n );\n })}\n </div>\n ) : null;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Timeline.js","names":["_LocaleProvider","require","_utils","_Typography","_react","_react2","_interopRequireWildcard","_dayjs","_interopRequireDefault","_isBetween","_isSameOrAfter","_isSameOrBefore","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","dayjs","extend","isSameOrAfter","isSameOrBefore","isBetween","_ref2","process","env","NODE_ENV","name","styles","toString","DefaultLabel","formattedDate","jsx","Typography","css","getDatesEntries","dates","separators","origin","prevPropsArray","datesEntries","entries","map","date","propsArray","diff","props","unit","copy","prevProps","min","add","value","isBefore","concat","results","index","original","max","format","makeRenderItems","renderItem","React","cloneElement","key","_ref","Timeline","year","month","day","startOf","renderLabel","Label","locale","useContext","LocaleContext","rtf","useMemo","RelativeTimeFormat","numeric","renderItems","Item","undefined","Error","formatedDate","toDate","toLocaleDateString","Fragment","exports"],"sources":["../../../src/Timeline/Timeline.tsx"],"sourcesContent":["import { LocaleContext } from \"../LocaleProvider\";\nimport { RelativeTimeFormat } from \"../@utils\";\nimport { Typography } from \"../Typography\";\nimport { type UnknownProps } from \"../@types/UnknownProps\";\nimport { css } from \"@emotion/react\";\nimport React, { useContext, useMemo } from \"react\";\nimport dayjs from \"dayjs\";\nimport isBetween from \"dayjs/plugin/isBetween\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\nimport type { Unit } from \"relative-time-format\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(isBetween);\n\nexport interface TimelineLabelProps {\n formattedDate: string;\n}\n\nconst DefaultLabel = ({ formattedDate }: TimelineLabelProps) => {\n return (\n <Typography\n css={css`\n display: flex;\n gap: 16px;\n align-items: center;\n &::before,\n &::after {\n flex-grow: 1;\n height: 1px;\n content: \"\";\n background-color: currentColor;\n }\n `}\n >\n {formattedDate}\n </Typography>\n );\n};\n\nexport type TimelineItemProps<Props extends UnknownProps> = Props & {\n date: string;\n index: number;\n};\n\nexport interface TimelineProps<Props extends UnknownProps>\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * TimelineProps.datesで指定されたデータをpropsとして受け取り表示するためのコンポーネントを指定します。\n */\n renderItem?: (props: TimelineItemProps<Props>) => React.JSX.Element;\n /**\n * 日付と、日付に対応するデータ群を指定します。\n *\n * 昇順でkeyがソートされていることを前提としている点に注意してください。\n *\n * ソート処理が面倒な場合はUI側での処理を検討します。\n *\n * ここで値として指定された配列の型はTimelineProps.itemの引数に用いられます。\n *\n * dateのフォーマットはYYYYMMDDまたはYYYY-MM-DDです。number(ms)には後に対応するかもしれません。\n *\n * Date型を利用したいという強い要望があった場合はMapに切り替えることを検討します。\n *\n */\n dates: Record<string, Props[]>;\n /**\n * 区分ごとのラベルの表記を指定します。\n *\n * @default {year: numeric ,month: numeric, day: numeric}\n */\n format?: \"relative\" | Intl.DateTimeFormatOptions;\n /**\n * 区分を指定する。原点を中心として両側に、順に指定された区分点を配置していく。\n *\n * 原点のデフォルトは\"今日\"。\n *\n * 過去から未来へ昇順でソートされていることを前提にしています。\n * ソート処理が難しい場合はUI側での処理を検討します。\n *\n * @default []\n */\n separators?: {\n unit: \"day\" | \"month\" | \"year\" | \"week\";\n value: number;\n }[];\n /**\n * 基準日を指定する。\n * @default today\n */\n date?: dayjs.ConfigType;\n /**\n * フォーマットされた日付を受け取り、ラベルとして表示するコンポーネントを指定します。\n */\n renderLabel?: (props: TimelineLabelProps) => React.JSX.Element;\n}\n\nconst getDatesEntries = <E extends UnknownProps>(\n dates: Record<string, E[]>,\n separators: {\n unit: \"day\" | \"month\" | \"year\" | \"week\";\n value: number;\n }[],\n origin: dayjs.Dayjs,\n) => {\n if (separators.length === 0) {\n return {\n prevPropsArray: [],\n datesEntries: Object.entries(dates).map(([date, propsArray]) => {\n const diff = dayjs(date).diff(origin, \"day\");\n return [\n date,\n propsArray.map((props) => ({\n ...props,\n date,\n })),\n {\n unit: \"day\",\n diff,\n },\n ] as const;\n }),\n };\n }\n\n const copy = { ...dates };\n // prevProps\n let prevProps: (E & { date: string })[] = [];\n const min = origin.add(separators[0].value, separators[0].unit);\n for (const date in copy) {\n if (dayjs(date).isBefore(min, \"day\")) {\n const add = copy[date].map((props) => ({ ...props, date }));\n prevProps = prevProps.concat(add);\n delete copy[date];\n } else {\n break;\n }\n }\n let results: (readonly [\n string,\n (E & {\n date: string;\n })[],\n {\n unit: string;\n diff: number;\n },\n ])[] = [];\n separators.map(({ unit, value }, index, original) => {\n const min = origin.add(value, unit);\n const max =\n separators.length - 1 === index\n ? dayjs(\"9999/12/24\")\n : origin.add(original[index + 1].value, original[index + 1].unit);\n let propsArray: (E & { date: string })[] = [];\n for (const date in copy) {\n if (dayjs(date).isBetween(min, max, \"day\", \"[)\")) {\n const add = copy[date].map((props) => ({ ...props, date }));\n propsArray = propsArray.concat(add);\n delete copy[date];\n } else {\n break;\n }\n }\n if (propsArray.length > 0) {\n results = results.concat([\n [\n min.format(\"YYYYMMDD\"),\n propsArray,\n {\n unit,\n diff: value,\n },\n ],\n ]);\n }\n });\n return {\n prevPropsArray: prevProps,\n datesEntries: results,\n };\n};\n\nconst makeRenderItems =\n <E extends UnknownProps>(\n renderItem: (\n props: E & { date: string; index: number },\n ) => React.JSX.Element,\n ) =>\n (propsArray: (E & { date: string })[]) => {\n return propsArray.map((props, index) =>\n React.cloneElement(renderItem({ ...props, index }), {\n key: `${props.date}.${index}`,\n }),\n );\n };\n\nexport const Timeline = <E extends UnknownProps>({\n renderItem,\n dates,\n format = { year: \"numeric\", month: \"numeric\", day: \"numeric\" },\n separators = [],\n date = dayjs().startOf(\"day\"),\n renderLabel: Label = DefaultLabel,\n ...props\n}: TimelineProps<E>) => {\n const locale = useContext(LocaleContext);\n const rtf = useMemo(() => {\n return RelativeTimeFormat(locale, {\n numeric: \"auto\",\n });\n }, [locale]);\n const { prevPropsArray, datesEntries } = getDatesEntries<E>(\n dates,\n separators,\n dayjs(date),\n );\n\n const renderItems = useMemo(() => {\n const Item = renderItem;\n if (Item === undefined) {\n throw new Error(\"item or renderItem is required\");\n }\n return makeRenderItems<E>(Item);\n }, [renderItem]);\n\n return datesEntries.length > 0 ? (\n <div\n css={css`\n display: flex;\n flex-direction: column;\n gap: 16px;\n `}\n {...props}\n >\n {prevPropsArray.length > 0 && <div>{renderItems(prevPropsArray)}</div>}\n {datesEntries.map(([value, propsArray, { unit, diff }]) => {\n const formatedDate =\n format === \"relative\"\n ? rtf.format(diff, unit as Unit)\n : dayjs(value).toDate().toLocaleDateString(locale, format);\n return (\n <React.Fragment key={formatedDate}>\n <Label formattedDate={formatedDate} />\n <div>{renderItems(propsArray)}</div>\n </React.Fragment>\n );\n })}\n </div>\n ) : null;\n};\n"],"mappings":"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","ignoreList":[]}