@os-design/core 1.0.220 → 1.0.221

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.
@@ -14,7 +14,7 @@ var _utils = require("@os-design/utils");
14
14
  var _react2 = _interopRequireWildcard(require("react"));
15
15
  var _getFocusableElements = _interopRequireDefault(require("./utils/getFocusableElements"));
16
16
  var _excluded = ["type", "left", "leftHasPadding", "right", "rightHasPadding", "disabled", "loading", "containerRef", "containerProps", "size", "value", "onChange"];
17
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
18
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -54,23 +54,24 @@ var notHasLeftStyles = function notHasLeftStyles(p) {
54
54
  var notHasRightStyles = function notHasRightStyles(p) {
55
55
  return !p.hasRight && (0, _react.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n "])), p.theme.inputPaddingHorizontal);
56
56
  };
57
- var StyledInput = exports.StyledInput = (0, _styled["default"])('input', (0, _utils.omitEmotionProps)('hasLeft', 'hasRight'))(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n ", ";\n appearance: none;\n border: none;\n font-size: 1em;\n flex: 1;\n overflow: hidden;\n\n color: ", ";\n background-color: transparent;\n\n &::placeholder {\n color: ", ";\n }\n\n ", ";\n ", ";\n"])), _styles.resetFocusStyles, function (p) {
57
+ var hideSpinButton = (0, _react.css)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n /* Chrome, Safari, Edge, Opera */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n appearance: textfield;\n"])));
58
+ var StyledInput = exports.StyledInput = (0, _styled["default"])('input', (0, _utils.omitEmotionProps)('hasLeft', 'hasRight'))(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n ", ";\n border: none;\n font-size: 1em;\n flex: 1;\n overflow: hidden;\n\n color: ", ";\n background-color: transparent;\n\n &::placeholder {\n color: ", ";\n }\n\n ", ";\n ", ";\n ", ";\n"])), _styles.resetFocusStyles, function (p) {
58
59
  return (0, _theming.clr)(p.theme.inputColorText);
59
60
  }, function (p) {
60
61
  return (0, _theming.clr)(p.theme.inputColorPlaceholder);
61
- }, notHasLeftStyles, notHasRightStyles);
62
- var Addon = (0, _styled["default"])('span', (0, _utils.omitEmotionProps)('hasPadding'))(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n user-select: none;\n color: ", ";\n\n svg {\n transform: scale(1.2);\n }\n"])), function (p) {
62
+ }, hideSpinButton, notHasLeftStyles, notHasRightStyles);
63
+ var Addon = (0, _styled["default"])('span', (0, _utils.omitEmotionProps)('hasPadding'))(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n user-select: none;\n color: ", ";\n\n svg {\n transform: scale(1.2);\n }\n"])), function (p) {
63
64
  return (0, _theming.clr)(p.theme.inputColorPlaceholder);
64
65
  });
65
- var LeftAddon = (0, _styled["default"])(Addon)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n ", "\n"])), function (p) {
66
+ var LeftAddon = (0, _styled["default"])(Addon)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n ", "\n"])), function (p) {
66
67
  return p.theme.inputAddonPaddingHorizontal;
67
68
  }, function (p) {
68
- return p.hasPadding && (0, _react.css)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n "])), p.theme.inputPaddingHorizontal);
69
+ return p.hasPadding && (0, _react.css)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n "])), p.theme.inputPaddingHorizontal);
69
70
  });
70
- var RightAddon = (0, _styled["default"])(Addon)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n ", "\n"])), function (p) {
71
+ var RightAddon = (0, _styled["default"])(Addon)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n ", "\n"])), function (p) {
71
72
  return p.theme.inputAddonPaddingHorizontal;
72
73
  }, function (p) {
73
- return p.hasPadding && (0, _react.css)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n "])), p.theme.inputPaddingHorizontal);
74
+ return p.hasPadding && (0, _react.css)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n "])), p.theme.inputPaddingHorizontal);
74
75
  });
75
76
 
76
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","require","_styled","_interopRequireDefault","_icons","_styles","_theming","_utils","_react2","_interopRequireWildcard","_getFocusableElements","_excluded","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","_taggedTemplateLiteral","strings","raw","freeze","defineProperties","hoverStyles","p","disabled","css","clr","theme","inputHoverColorBorder","focusStyles","inputFocusColorBorder","inputFocusColorShadow","disabledStyles","inputDisabledColorText","inputDisabledColorBg","inputDisabledColorBorder","inputDisabledColorPlaceholder","InputContainer","exports","styled","omitEmotionProps","resetFocusStyles","baseHeight","inputColorBg","inputBorderWidth","inputColorBorder","borderRadius","sizeStyles","transitionStyles","notHasLeftStyles","hasLeft","inputPaddingHorizontal","notHasRightStyles","hasRight","StyledInput","inputColorText","inputColorPlaceholder","Addon","LeftAddon","inputAddonPaddingHorizontal","hasPadding","RightAddon","Input","forwardRef","_ref","ref","_ref$type","type","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","_ref$disabled","_ref$loading","loading","containerRef","_ref$containerProps","containerProps","size","_ref$onChange","onChange","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","innerContainerRef","mergedContainerRef","rightValue","useMemo","createElement","Loading","rightHasPaddingValue","onFocus","useCallback","current","focusableElements","getFocusableElements","focus","onKeyDown","document","inputFocusableElements","firstInputElementIsFocused","activeElement","shiftKey","inputContainerIndex","findIndex","el","elementBeforeInputContainer","tabIndex","ThemeOverrider","overrides","buttonPaddingHorizontal","displayName","_default"],"sources":["../../../src/Input/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Loading } from '@os-design/icons';\nimport {\n resetFocusStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedRef } from '@os-design/utils';\nimport React, {\n ChangeEvent,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n KeyboardEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport getFocusableElements from './utils/getFocusableElements';\n\ntype JsxInputProps = Omit<\n JSX.IntrinsicElements['input'],\n 'value' | 'onChange' | 'size' | 'ref'\n>;\nexport interface InputProps extends JsxInputProps, WithSize {\n /**\n * Type of the input.\n * @default text\n */\n type?: JsxInputProps['type'];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * The ref of the input container.\n * @default undefined\n */\n containerRef?: ForwardedRef<HTMLDivElement>;\n /**\n * The props of the input container.\n * @default undefined\n */\n containerProps?: JSX.IntrinsicElements['div'];\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string, e: ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover {\n border-color: ${clr(p.theme.inputHoverColorBorder)};\n }\n }\n `;\n\nconst focusStyles = (p) =>\n !p.disabled &&\n css`\n &:focus-within {\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n }\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n color: ${clr(p.theme.inputDisabledColorText)};\n background-color: ${clr(p.theme.inputDisabledColorBg)};\n border-color: ${clr(p.theme.inputDisabledColorBorder)};\n\n input,\n textarea {\n cursor: not-allowed;\n &::placeholder {\n color: ${clr(p.theme.inputDisabledColorPlaceholder)};\n }\n }\n `;\n\ntype InputContainerProps = Pick<InputProps, 'disabled' | 'size'>;\nexport const InputContainer = styled(\n 'div',\n omitEmotionProps('disabled', 'size')\n)<InputContainerProps>`\n ${resetFocusStyles};\n\n display: inline-flex;\n width: 100%;\n height: ${(p) => p.theme.baseHeight}em;\n box-sizing: border-box;\n background-color: ${(p) => clr(p.theme.inputColorBg)};\n\n border: ${(p) => p.theme.inputBorderWidth}px solid\n ${(p) => clr(p.theme.inputColorBorder)};\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n ${hoverStyles};\n ${focusStyles};\n ${disabledStyles};\n ${sizeStyles};\n ${transitionStyles('border-color', 'box-shadow')};\n`;\n\nconst notHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst notHasRightStyles = (p) =>\n !p.hasRight &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface StyledInputProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n}\nexport const StyledInput = styled(\n 'input',\n omitEmotionProps('hasLeft', 'hasRight')\n)<StyledInputProps>`\n ${resetFocusStyles};\n appearance: none;\n border: none;\n font-size: 1em;\n flex: 1;\n overflow: hidden;\n\n color: ${(p) => clr(p.theme.inputColorText)};\n background-color: transparent;\n\n &::placeholder {\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n }\n\n ${notHasLeftStyles};\n ${notHasRightStyles};\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The basic input component.\n */\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = 'text',\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n disabled = false,\n loading = false,\n containerRef,\n containerProps = {},\n size,\n value,\n onChange = () => {},\n ...rest\n },\n ref\n ) => {\n const [innerContainerRef, mergedContainerRef] =\n useForwardedRef(containerRef);\n\n const rightValue = useMemo(\n () => (loading ? <Loading /> : right),\n [loading, right]\n );\n\n const rightHasPaddingValue = useMemo(\n () => (loading ? true : rightHasPadding),\n [loading, rightHasPadding]\n );\n\n const onFocus = useCallback<FocusEventHandler>(\n (e) => {\n // Focus the next element if the container element was focused.\n // The next element will be the input or button in the addon.\n if (disabled || e.target !== innerContainerRef.current) return;\n const focusableElements = getFocusableElements(\n innerContainerRef.current\n );\n focusableElements[0].focus();\n },\n [disabled, innerContainerRef]\n );\n\n const onKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n // Focus the previous element if the first element in the input\n // container is focused and the Shift + Tab combination is pressed.\n const focusableElements = getFocusableElements(document);\n const inputFocusableElements = innerContainerRef.current\n ? getFocusableElements(innerContainerRef.current)\n : [];\n const firstInputElementIsFocused =\n inputFocusableElements[0] === document.activeElement;\n if (firstInputElementIsFocused && e.key === 'Tab' && e.shiftKey) {\n const inputContainerIndex = focusableElements.findIndex(\n (el) => el === innerContainerRef.current\n );\n if (inputContainerIndex === 0) return;\n const elementBeforeInputContainer =\n focusableElements[inputContainerIndex - 1];\n elementBeforeInputContainer.focus();\n }\n },\n [innerContainerRef]\n );\n\n return (\n <InputContainer\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n ref={mergedContainerRef}\n {...containerProps}\n >\n {left && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <StyledInput\n type={type}\n disabled={disabled}\n hasLeft={!!left}\n hasRight={!!right}\n value={value || ''}\n onChange={(e) => onChange(e.target.value, e)}\n {...rest}\n ref={ref}\n />\n\n {rightValue && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </InputContainer>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_react","require","_styled","_interopRequireDefault","_icons","_styles","_theming","_utils","_react2","_interopRequireWildcard","_getFocusableElements","_excluded","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","_taggedTemplateLiteral","strings","raw","freeze","defineProperties","hoverStyles","p","disabled","css","clr","theme","inputHoverColorBorder","focusStyles","inputFocusColorBorder","inputFocusColorShadow","disabledStyles","inputDisabledColorText","inputDisabledColorBg","inputDisabledColorBorder","inputDisabledColorPlaceholder","InputContainer","exports","styled","omitEmotionProps","resetFocusStyles","baseHeight","inputColorBg","inputBorderWidth","inputColorBorder","borderRadius","sizeStyles","transitionStyles","notHasLeftStyles","hasLeft","inputPaddingHorizontal","notHasRightStyles","hasRight","hideSpinButton","StyledInput","inputColorText","inputColorPlaceholder","Addon","LeftAddon","inputAddonPaddingHorizontal","hasPadding","RightAddon","Input","forwardRef","_ref","ref","_ref$type","type","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","_ref$disabled","_ref$loading","loading","containerRef","_ref$containerProps","containerProps","size","_ref$onChange","onChange","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","innerContainerRef","mergedContainerRef","rightValue","useMemo","createElement","Loading","rightHasPaddingValue","onFocus","useCallback","current","focusableElements","getFocusableElements","focus","onKeyDown","document","inputFocusableElements","firstInputElementIsFocused","activeElement","shiftKey","inputContainerIndex","findIndex","el","elementBeforeInputContainer","tabIndex","ThemeOverrider","overrides","buttonPaddingHorizontal","displayName","_default"],"sources":["../../../src/Input/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Loading } from '@os-design/icons';\nimport {\n resetFocusStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedRef } from '@os-design/utils';\nimport React, {\n ChangeEvent,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n KeyboardEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport getFocusableElements from './utils/getFocusableElements';\n\ntype JsxInputProps = Omit<\n JSX.IntrinsicElements['input'],\n 'value' | 'onChange' | 'size' | 'ref'\n>;\nexport interface InputProps extends JsxInputProps, WithSize {\n /**\n * Type of the input.\n * @default text\n */\n type?: JsxInputProps['type'];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * The ref of the input container.\n * @default undefined\n */\n containerRef?: ForwardedRef<HTMLDivElement>;\n /**\n * The props of the input container.\n * @default undefined\n */\n containerProps?: JSX.IntrinsicElements['div'];\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string, e: ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover {\n border-color: ${clr(p.theme.inputHoverColorBorder)};\n }\n }\n `;\n\nconst focusStyles = (p) =>\n !p.disabled &&\n css`\n &:focus-within {\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n }\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n color: ${clr(p.theme.inputDisabledColorText)};\n background-color: ${clr(p.theme.inputDisabledColorBg)};\n border-color: ${clr(p.theme.inputDisabledColorBorder)};\n\n input,\n textarea {\n cursor: not-allowed;\n &::placeholder {\n color: ${clr(p.theme.inputDisabledColorPlaceholder)};\n }\n }\n `;\n\ntype InputContainerProps = Pick<InputProps, 'disabled' | 'size'>;\nexport const InputContainer = styled(\n 'div',\n omitEmotionProps('disabled', 'size')\n)<InputContainerProps>`\n ${resetFocusStyles};\n\n display: inline-flex;\n width: 100%;\n height: ${(p) => p.theme.baseHeight}em;\n box-sizing: border-box;\n background-color: ${(p) => clr(p.theme.inputColorBg)};\n\n border: ${(p) => p.theme.inputBorderWidth}px solid\n ${(p) => clr(p.theme.inputColorBorder)};\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n ${hoverStyles};\n ${focusStyles};\n ${disabledStyles};\n ${sizeStyles};\n ${transitionStyles('border-color', 'box-shadow')};\n`;\n\nconst notHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst notHasRightStyles = (p) =>\n !p.hasRight &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst hideSpinButton = css`\n /* Chrome, Safari, Edge, Opera */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n appearance: textfield;\n`;\n\ninterface StyledInputProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n}\nexport const StyledInput = styled(\n 'input',\n omitEmotionProps('hasLeft', 'hasRight')\n)<StyledInputProps>`\n ${resetFocusStyles};\n border: none;\n font-size: 1em;\n flex: 1;\n overflow: hidden;\n\n color: ${(p) => clr(p.theme.inputColorText)};\n background-color: transparent;\n\n &::placeholder {\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n }\n\n ${hideSpinButton};\n ${notHasLeftStyles};\n ${notHasRightStyles};\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The basic input component.\n */\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = 'text',\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n disabled = false,\n loading = false,\n containerRef,\n containerProps = {},\n size,\n value,\n onChange = () => {},\n ...rest\n },\n ref\n ) => {\n const [innerContainerRef, mergedContainerRef] =\n useForwardedRef(containerRef);\n\n const rightValue = useMemo(\n () => (loading ? <Loading /> : right),\n [loading, right]\n );\n\n const rightHasPaddingValue = useMemo(\n () => (loading ? true : rightHasPadding),\n [loading, rightHasPadding]\n );\n\n const onFocus = useCallback<FocusEventHandler>(\n (e) => {\n // Focus the next element if the container element was focused.\n // The next element will be the input or button in the addon.\n if (disabled || e.target !== innerContainerRef.current) return;\n const focusableElements = getFocusableElements(\n innerContainerRef.current\n );\n focusableElements[0].focus();\n },\n [disabled, innerContainerRef]\n );\n\n const onKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n // Focus the previous element if the first element in the input\n // container is focused and the Shift + Tab combination is pressed.\n const focusableElements = getFocusableElements(document);\n const inputFocusableElements = innerContainerRef.current\n ? getFocusableElements(innerContainerRef.current)\n : [];\n const firstInputElementIsFocused =\n inputFocusableElements[0] === document.activeElement;\n if (firstInputElementIsFocused && e.key === 'Tab' && e.shiftKey) {\n const inputContainerIndex = focusableElements.findIndex(\n (el) => el === innerContainerRef.current\n );\n if (inputContainerIndex === 0) return;\n const elementBeforeInputContainer =\n focusableElements[inputContainerIndex - 1];\n elementBeforeInputContainer.focus();\n }\n },\n [innerContainerRef]\n );\n\n return (\n <InputContainer\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n ref={mergedContainerRef}\n {...containerProps}\n >\n {left && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <StyledInput\n type={type}\n disabled={disabled}\n hasLeft={!!left}\n hasRight={!!right}\n value={value || ''}\n onChange={(e) => onChange(e.target.value, e)}\n {...rest}\n ref={ref}\n />\n\n {rightValue && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </InputContainer>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n"],"mappings":"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"}
@@ -97,7 +97,7 @@ var List = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
97
97
  var height = (0, _react.useMemo)(function () {
98
98
  return heightProp || size.height;
99
99
  }, [heightProp, size.height]);
100
- var loadNextHandler = (0, _useRWLoadNext["default"])({
100
+ var loadNext = (0, _useRWLoadNext["default"])({
101
101
  itemCount: itemCount,
102
102
  threshold: threshold,
103
103
  itemSize: itemSize,
@@ -109,8 +109,8 @@ var List = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
109
109
  var top = _ref2.top;
110
110
  // Set the scroll position to the list
111
111
  if (listRef.current) listRef.current.scrollTo(top);
112
- loadNextHandler(top);
113
- }, [listRef, loadNextHandler]);
112
+ loadNext(top);
113
+ }, [listRef, loadNext]);
114
114
 
115
115
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
116
  var InnerElement = (0, _react.useCallback)(function (_ref3) {
@@ -149,11 +149,11 @@ var List = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
149
149
  overscanCount: overscanCount,
150
150
  onScroll: heightProp ? function (_ref5) {
151
151
  var scrollOffset = _ref5.scrollOffset;
152
- return loadNextHandler(scrollOffset);
152
+ return loadNext(scrollOffset);
153
153
  } : undefined,
154
154
  innerElementType: itemCount > 0 ? InnerElement : EmptyComponent
155
155
  }, rest), listChildren);
156
- }, [EmptyComponent, InnerElement, height, heightProp, itemCount, itemSize, listChildren, loadNextHandler, mergedListRef, overscanCount, rest, style]);
156
+ }, [EmptyComponent, InnerElement, height, heightProp, itemCount, itemSize, listChildren, loadNext, mergedListRef, overscanCount, rest, style]);
157
157
  if (heightProp) {
158
158
  return renderList();
159
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_media","require","_theming","_utils","_react","_interopRequireWildcard","_reactWindow","_LayoutContext","_interopRequireDefault","_WindowScroller","_useRWLoadNext","_excluded","_excluded2","_excluded3","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","l","iterator","u","a","f","next","done","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","List","forwardRef","_ref","ref","itemCount","_ref$itemHeight","itemHeight","_ref$threshold","threshold","_ref$overscanCount","overscanCount","heightProp","height","_ref$paddingTop","paddingTop","_ref$paddingBottom","paddingBottom","_ref$style","style","empty","_ref$onLoadNext","onLoadNext","_ref$itemRenderer","itemRenderer","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","listRef","mergedListRef","size","useSize","fontSize","useFontSize","document","body","_useContext","useContext","LayoutContext","hasNavigation","hasPageHeader","_useTheme","useTheme","theme","isMinMd","useIsMinWidth","safeAreaInset","useSafeAreaInset","itemSize","useMemo","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","loadNextHandler","useRWLoadNext","windowScrollHandler","useCallback","_ref2","top","current","scrollTo","InnerElement","_ref3","innerStyle","innerRest","createElement","concat","parseFloat","listChildren","_ref4","childrenStyle","childrenRest","EmptyComponent","Fragment","renderList","FixedSizeList","width","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default","exports"],"sources":["../../../src/List/index.tsx"],"sourcesContent":["import { useIsMinWidth } from '@os-design/media';\nimport { useTheme } from '@os-design/theming';\nimport {\n useFontSize,\n useForwardedRef,\n useSafeAreaInset,\n useSize,\n} from '@os-design/utils';\nimport React, {\n CSSProperties,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport {\n FixedSizeList,\n ListChildComponentProps,\n ListProps as RWListProps,\n} from 'react-window';\nimport LayoutContext from '../Layout/LayoutContext';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\n\nexport interface ListProps extends Partial<RWListProps> {\n /**\n * Total number of items in the list.\n */\n itemCount: number;\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The height of the list in px.\n * @default undefined\n */\n height?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The inline css style.\n * @default undefined\n */\n style?: CSSProperties;\n /**\n * The component that renders if the list is empty.\n * @default undefined\n */\n empty?: React.ReactNode;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n height: heightProp,\n paddingTop = 0,\n paddingBottom = 0,\n style = {},\n empty,\n onLoadNext = () => {},\n itemRenderer = () => null,\n ...rest\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const height = useMemo(\n () => heightProp || size.height,\n [heightProp, size.height]\n );\n\n const loadNextHandler = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height,\n onLoadNext,\n });\n\n const windowScrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n loadNextHandler(top);\n },\n [listRef, loadNextHandler]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style: innerStyle, ...innerRest }) => (\n <div\n style={{\n ...innerStyle,\n height: `${\n parseFloat(innerStyle.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...innerRest}\n />\n ),\n [paddingBottomSize, paddingTopSize]\n );\n\n const listChildren = useCallback<RWListProps['children']>(\n ({ style: childrenStyle, ...childrenRest }) =>\n itemRenderer({\n style: {\n ...childrenStyle,\n top: `${\n parseFloat(\n childrenStyle.top ? childrenStyle.top.toString() : '0'\n ) + paddingTopSize\n }px`,\n },\n ...childrenRest,\n }),\n [itemRenderer, paddingTopSize]\n );\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n const EmptyComponent = useCallback(() => <>{empty}</>, [empty]);\n\n const renderList = useCallback(\n () => (\n <FixedSizeList\n ref={mergedListRef}\n itemCount={itemCount}\n width='100%'\n height={height}\n itemSize={itemSize}\n style={heightProp ? style : { ...style, height: '100% important!' }}\n overscanCount={overscanCount}\n onScroll={\n heightProp\n ? ({ scrollOffset }) => loadNextHandler(scrollOffset)\n : undefined\n }\n innerElementType={itemCount > 0 ? InnerElement : EmptyComponent}\n {...rest}\n >\n {listChildren}\n </FixedSizeList>\n ),\n [\n EmptyComponent,\n InnerElement,\n height,\n heightProp,\n itemCount,\n itemSize,\n listChildren,\n loadNextHandler,\n mergedListRef,\n overscanCount,\n rest,\n style,\n ]\n );\n\n if (heightProp) {\n return renderList();\n }\n\n return (\n <WindowScroller onScroll={windowScrollHandler}>\n {renderList()}\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAOA,IAAAK,YAAA,GAAAL,OAAA;AAKA,IAAAM,cAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,cAAA,GAAAF,sBAAA,CAAAP,OAAA;AAAkD,IAAAU,SAAA;EAAAC,UAAA;EAAAC,UAAA;AAAA,SAAAL,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAZ,wBAAAS,GAAA,EAAAG,WAAA,SAAAA,WAAA,IAAAH,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAO,OAAA,CAAAP,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAQ,KAAA,GAAAN,wBAAA,CAAAC,WAAA,OAAAK,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,cAAAX,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAArB,MAAA,CAAAsB,IAAA,CAAAH,CAAA,OAAAnB,MAAA,CAAAuB,qBAAA,QAAAC,CAAA,GAAAxB,MAAA,CAAAuB,qBAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAApB,MAAA,CAAAE,wBAAA,CAAAiB,CAAA,EAAAC,CAAA,EAAAM,UAAA,OAAAL,CAAA,CAAAM,IAAA,CAAAV,KAAA,CAAAI,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAO,cAAAT,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAN,SAAA,CAAAC,MAAA,EAAAK,CAAA,UAAAC,CAAA,WAAAP,SAAA,CAAAM,CAAA,IAAAN,SAAA,CAAAM,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAlB,MAAA,CAAAqB,CAAA,OAAAQ,OAAA,WAAAT,CAAA,IAAAU,eAAA,CAAAX,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAApB,MAAA,CAAA+B,yBAAA,GAAA/B,MAAA,CAAAgC,gBAAA,CAAAb,CAAA,EAAAnB,MAAA,CAAA+B,yBAAA,CAAAV,CAAA,KAAAH,OAAA,CAAAlB,MAAA,CAAAqB,CAAA,GAAAQ,OAAA,WAAAT,CAAA,IAAApB,MAAA,CAAAC,cAAA,CAAAkB,CAAA,EAAAC,CAAA,EAAApB,MAAA,CAAAE,wBAAA,CAAAmB,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAW,gBAAA3C,GAAA,EAAAgB,GAAA,EAAA8B,KAAA,IAAA9B,GAAA,GAAA+B,cAAA,CAAA/B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA8B,KAAA,EAAAA,KAAA,EAAAP,UAAA,QAAAS,YAAA,QAAAC,QAAA,oBAAAjD,GAAA,CAAAgB,GAAA,IAAA8B,KAAA,WAAA9C,GAAA;AAAA,SAAA+C,eAAAG,GAAA,QAAAlC,GAAA,GAAAmC,YAAA,CAAAD,GAAA,oBAAA3C,OAAA,CAAAS,GAAA,iBAAAA,GAAA,GAAAoC,MAAA,CAAApC,GAAA;AAAA,SAAAmC,aAAAE,KAAA,EAAAC,IAAA,QAAA/C,OAAA,CAAA8C,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAApC,IAAA,CAAAkC,KAAA,EAAAC,IAAA,oBAAA/C,OAAA,CAAAoD,GAAA,uBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAAA,SAAAS,eAAAC,GAAA,EAAArC,CAAA,WAAAsC,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAArC,CAAA,KAAAwC,2BAAA,CAAAH,GAAA,EAAArC,CAAA,KAAAyC,gBAAA;AAAA,SAAAA,iBAAA,cAAAP,SAAA;AAAA,SAAAM,4BAAA7B,CAAA,EAAA+B,MAAA,SAAA/B,CAAA,qBAAAA,CAAA,sBAAAgC,iBAAA,CAAAhC,CAAA,EAAA+B,MAAA,OAAAE,CAAA,GAAAzD,MAAA,CAAAI,SAAA,CAAAsD,QAAA,CAAApD,IAAA,CAAAkB,CAAA,EAAAmC,KAAA,aAAAF,CAAA,iBAAAjC,CAAA,CAAAoC,WAAA,EAAAH,CAAA,GAAAjC,CAAA,CAAAoC,WAAA,CAAAC,IAAA,MAAAJ,CAAA,cAAAA,CAAA,mBAAAK,KAAA,CAAAC,IAAA,CAAAvC,CAAA,OAAAiC,CAAA,+DAAAO,IAAA,CAAAP,CAAA,UAAAD,iBAAA,CAAAhC,CAAA,EAAA+B,MAAA;AAAA,SAAAC,kBAAAN,GAAA,EAAAe,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAf,GAAA,CAAAnC,MAAA,EAAAkD,GAAA,GAAAf,GAAA,CAAAnC,MAAA,WAAAF,CAAA,MAAAqD,IAAA,OAAAJ,KAAA,CAAAG,GAAA,GAAApD,CAAA,GAAAoD,GAAA,EAAApD,CAAA,IAAAqD,IAAA,CAAArD,CAAA,IAAAqC,GAAA,CAAArC,CAAA,UAAAqD,IAAA;AAAA,SAAAd,sBAAAhC,CAAA,EAAA+C,CAAA,QAAA9C,CAAA,WAAAD,CAAA,gCAAAuB,MAAA,IAAAvB,CAAA,CAAAuB,MAAA,CAAAyB,QAAA,KAAAhD,CAAA,4BAAAC,CAAA,QAAAF,CAAA,EAAAsC,CAAA,EAAA5C,CAAA,EAAAwD,CAAA,EAAAC,CAAA,OAAAC,CAAA,OAAA/C,CAAA,iBAAAX,CAAA,IAAAQ,CAAA,GAAAA,CAAA,CAAAf,IAAA,CAAAc,CAAA,GAAAoD,IAAA,QAAAL,CAAA,QAAAnE,MAAA,CAAAqB,CAAA,MAAAA,CAAA,UAAAkD,CAAA,uBAAAA,CAAA,IAAApD,CAAA,GAAAN,CAAA,CAAAP,IAAA,CAAAe,CAAA,GAAAoD,IAAA,MAAAH,CAAA,CAAA3C,IAAA,CAAAR,CAAA,CAAAc,KAAA,GAAAqC,CAAA,CAAAvD,MAAA,KAAAoD,CAAA,GAAAI,CAAA,iBAAAnD,CAAA,IAAAI,CAAA,OAAAiC,CAAA,GAAArC,CAAA,yBAAAmD,CAAA,YAAAlD,CAAA,eAAAgD,CAAA,GAAAhD,CAAA,cAAArB,MAAA,CAAAqE,CAAA,MAAAA,CAAA,2BAAA7C,CAAA,QAAAiC,CAAA,aAAAa,CAAA;AAAA,SAAAnB,gBAAAD,GAAA,QAAAY,KAAA,CAAAY,OAAA,CAAAxB,GAAA,UAAAA,GAAA;AAAA,SAAAyB,yBAAA3D,MAAA,EAAA4D,QAAA,QAAA5D,MAAA,yBAAAJ,MAAA,GAAAiE,6BAAA,CAAA7D,MAAA,EAAA4D,QAAA,OAAAzE,GAAA,EAAAU,CAAA,MAAAb,MAAA,CAAAuB,qBAAA,QAAAuD,gBAAA,GAAA9E,MAAA,CAAAuB,qBAAA,CAAAP,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAiE,gBAAA,CAAA/D,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAA2E,gBAAA,CAAAjE,CAAA,OAAA+D,QAAA,CAAAG,OAAA,CAAA5E,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAA4E,oBAAA,CAAA1E,IAAA,CAAAU,MAAA,EAAAb,GAAA,aAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,cAAAS,MAAA;AAAA,SAAAiE,8BAAA7D,MAAA,EAAA4D,QAAA,QAAA5D,MAAA,yBAAAJ,MAAA,WAAAqE,UAAA,GAAAjF,MAAA,CAAAsB,IAAA,CAAAN,MAAA,OAAAb,GAAA,EAAAU,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAoE,UAAA,CAAAlE,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAA8E,UAAA,CAAApE,CAAA,OAAA+D,QAAA,CAAAG,OAAA,CAAA5E,GAAA,kBAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,YAAAS,MAAA;AA2DlD;AACA;AACA;AACA;AACA,IAAMsE,IAAI,gBAAG,IAAAC,iBAAU,EACrB,UAAAC,IAAA,EAeEC,GAAG,EACA;EAAA,IAdDC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAAC,eAAA,GAAAH,IAAA,CACTI,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;IAAAE,cAAA,GAAAL,IAAA,CACdM,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,EAAE,GAAAA,cAAA;IAAAE,kBAAA,GAAAP,IAAA,CACdQ,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,EAAE,GAAAA,kBAAA;IACVE,UAAU,GAAAT,IAAA,CAAlBU,MAAM;IAAAC,eAAA,GAAAX,IAAA,CACNY,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;IAAAE,kBAAA,GAAAb,IAAA,CACdc,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,CAAC,GAAAA,kBAAA;IAAAE,UAAA,GAAAf,IAAA,CACjBgB,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;IACVE,KAAK,GAAAjB,IAAA,CAALiB,KAAK;IAAAC,eAAA,GAAAlB,IAAA,CACLmB,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,YAAM,CAAC,CAAC,GAAAA,eAAA;IAAAE,iBAAA,GAAApB,IAAA,CACrBqB,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG;MAAA,OAAM,IAAI;IAAA,IAAAA,iBAAA;IACtBE,IAAI,GAAA/B,wBAAA,CAAAS,IAAA,EAAApG,SAAA;EAIT,IAAA2H,gBAAA,GAAiC,IAAAC,sBAAe,EAACvB,GAAG,CAAC;IAAAwB,iBAAA,GAAA5D,cAAA,CAAA0D,gBAAA;IAA9CG,OAAO,GAAAD,iBAAA;IAAEE,aAAa,GAAAF,iBAAA;EAC7B,IAAMG,IAAI,GAAG,IAAAC,cAAO,EAAC,CAAC;EACtB,IAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAACC,QAAQ,CAACC,IAAI,CAAC;EAC3C,IAAAC,WAAA,GAAyC,IAAAC,iBAAU,EAACC,yBAAa,CAAC;IAA1DC,aAAa,GAAAH,WAAA,CAAbG,aAAa;IAAEC,aAAa,GAAAJ,WAAA,CAAbI,aAAa;EACpC,IAAAC,SAAA,GAAkB,IAAAC,iBAAQ,EAAC,CAAC;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;EACb,IAAMC,OAAO,GAAG,IAAAC,oBAAa,EAAC,IAAI,CAAC;EACnC,IAAMC,aAAa,GAAG,IAAAC,uBAAgB,EAAC,CAAC;EAExC,IAAMC,QAAQ,GAAG,IAAAC,cAAO,EACtB;IAAA,OAAM3C,UAAU,GAAG0B,QAAQ;EAAA,GAC3B,CAAC1B,UAAU,EAAE0B,QAAQ,CACvB,CAAC;EAED,IAAMkB,cAAc,GAAG,IAAAD,cAAO,EAC5B;IAAA,OACE,CAAC,CAACT,aAAa,GAAGG,KAAK,CAACQ,gBAAgB,CAACP,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAC3D9B,UAAU,IACZkB,QAAQ;EAAA,GACV,CAACQ,aAAa,EAAEG,KAAK,CAACQ,gBAAgB,EAAEP,OAAO,EAAE9B,UAAU,EAAEkB,QAAQ,CACvE,CAAC;EAED,IAAMoB,iBAAiB,GAAG,IAAAH,cAAO,EAC/B;IAAA,OACE,CAAC,CAACV,aAAa,IAAI,CAACK,OAAO,GAAGD,KAAK,CAACU,mBAAmB,GAAG,CAAC,IACzDrC,aAAa,IACbgB,QAAQ,GACVc,aAAa,CAACQ,MAAM;EAAA,GACtB,CACEf,aAAa,EACbI,KAAK,CAACU,mBAAmB,EACzBT,OAAO,EACP5B,aAAa,EACbgB,QAAQ,EACRc,aAAa,CAACQ,MAAM,CAExB,CAAC;EAED,IAAM1C,MAAM,GAAG,IAAAqC,cAAO,EACpB;IAAA,OAAMtC,UAAU,IAAImB,IAAI,CAAClB,MAAM;EAAA,GAC/B,CAACD,UAAU,EAAEmB,IAAI,CAAClB,MAAM,CAC1B,CAAC;EAED,IAAM2C,eAAe,GAAG,IAAAC,yBAAa,EAAC;IACpCpD,SAAS,EAATA,SAAS;IACTI,SAAS,EAATA,SAAS;IACTwC,QAAQ,EAARA,QAAQ;IACRlC,UAAU,EAAEoC,cAAc;IAC1BtC,MAAM,EAANA,MAAM;IACNS,UAAU,EAAVA;EACF,CAAC,CAAC;EAEF,IAAMoC,mBAAmB,GAAG,IAAAC,kBAAW,EACrC,UAAAC,KAAA,EAA6B;IAAA,IAA1BC,GAAG,GAAAD,KAAA,CAAHC,GAAG;IACJ;IACA,IAAIhC,OAAO,CAACiC,OAAO,EAAEjC,OAAO,CAACiC,OAAO,CAACC,QAAQ,CAACF,GAAG,CAAC;IAClDL,eAAe,CAACK,GAAG,CAAC;EACtB,CAAC,EACD,CAAChC,OAAO,EAAE2B,eAAe,CAC3B,CAAC;;EAED;EACA,IAAMQ,YAAY,GAAG,IAAAL,kBAAW,EAC9B,UAAAM,KAAA;IAAA,IAAUC,UAAU,GAAAD,KAAA,CAAjB9C,KAAK;MAAiBgD,SAAS,GAAAzE,wBAAA,CAAAuE,KAAA,EAAAjK,UAAA;IAAA,oBAChCR,MAAA,YAAA4K,aAAA,QAAA5I,QAAA;MACE2F,KAAK,EAAAxE,aAAA,CAAAA,aAAA,KACAuH,UAAU;QACbrD,MAAM,KAAAwD,MAAA,CACJC,UAAU,CAACJ,UAAU,CAACrD,MAAM,CAAC,GAAGsC,cAAc,GAAGE,iBAAiB;MAChE;IACJ,GACEc,SAAS,CACd,CAAC;EAAA,CACH,EACD,CAACd,iBAAiB,EAAEF,cAAc,CACpC,CAAC;EAED,IAAMoB,YAAY,GAAG,IAAAZ,kBAAW,EAC9B,UAAAa,KAAA;IAAA,IAAUC,aAAa,GAAAD,KAAA,CAApBrD,KAAK;MAAoBuD,YAAY,GAAAhF,wBAAA,CAAA8E,KAAA,EAAAvK,UAAA;IAAA,OACtCuH,YAAY,CAAA7E,aAAA;MACVwE,KAAK,EAAAxE,aAAA,CAAAA,aAAA,KACA8H,aAAa;QAChBZ,GAAG,KAAAQ,MAAA,CACDC,UAAU,CACRG,aAAa,CAACZ,GAAG,GAAGY,aAAa,CAACZ,GAAG,CAACpF,QAAQ,CAAC,CAAC,GAAG,GACrD,CAAC,GAAG0E,cAAc;MAChB;IACL,GACEuB,YAAY,CAChB,CAAC;EAAA,GACJ,CAAClD,YAAY,EAAE2B,cAAc,CAC/B,CAAC;;EAED;EACA,IAAMwB,cAAc,GAAG,IAAAhB,kBAAW,EAAC;IAAA,oBAAMnK,MAAA,YAAA4K,aAAA,CAAA5K,MAAA,YAAAoL,QAAA,QAAGxD,KAAQ,CAAC;EAAA,GAAE,CAACA,KAAK,CAAC,CAAC;EAE/D,IAAMyD,UAAU,GAAG,IAAAlB,kBAAW,EAC5B;IAAA,oBACEnK,MAAA,YAAA4K,aAAA,CAAC1K,YAAA,CAAAoL,aAAa,EAAAtJ,QAAA;MACZ4E,GAAG,EAAE0B,aAAc;MACnBzB,SAAS,EAAEA,SAAU;MACrB0E,KAAK,EAAC,MAAM;MACZlE,MAAM,EAAEA,MAAO;MACfoC,QAAQ,EAAEA,QAAS;MACnB9B,KAAK,EAAEP,UAAU,GAAGO,KAAK,GAAAxE,aAAA,CAAAA,aAAA,KAAQwE,KAAK;QAAEN,MAAM,EAAE;MAAiB,EAAG;MACpEF,aAAa,EAAEA,aAAc;MAC7BqE,QAAQ,EACNpE,UAAU,GACN,UAAAqE,KAAA;QAAA,IAAGC,YAAY,GAAAD,KAAA,CAAZC,YAAY;QAAA,OAAO1B,eAAe,CAAC0B,YAAY,CAAC;MAAA,IACnDtH,SACL;MACDuH,gBAAgB,EAAE9E,SAAS,GAAG,CAAC,GAAG2D,YAAY,GAAGW;IAAe,GAC5DlD,IAAI,GAEP8C,YACY,CAAC;EAAA,CACjB,EACD,CACEI,cAAc,EACdX,YAAY,EACZnD,MAAM,EACND,UAAU,EACVP,SAAS,EACT4C,QAAQ,EACRsB,YAAY,EACZf,eAAe,EACf1B,aAAa,EACbnB,aAAa,EACbc,IAAI,EACJN,KAAK,CAET,CAAC;EAED,IAAIP,UAAU,EAAE;IACd,OAAOiE,UAAU,CAAC,CAAC;EACrB;EAEA,oBACErL,MAAA,YAAA4K,aAAA,CAACvK,eAAA,WAAc;IAACmL,QAAQ,EAAEtB;EAAoB,GAC3CmB,UAAU,CAAC,CACE,CAAC;AAErB,CACF,CAAC;AAED5E,IAAI,CAACmF,WAAW,GAAG,MAAM;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAKXrF,IAAI"}
1
+ {"version":3,"file":"index.js","names":["_media","require","_theming","_utils","_react","_interopRequireWildcard","_reactWindow","_LayoutContext","_interopRequireDefault","_WindowScroller","_useRWLoadNext","_excluded","_excluded2","_excluded3","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","l","iterator","u","a","f","next","done","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","List","forwardRef","_ref","ref","itemCount","_ref$itemHeight","itemHeight","_ref$threshold","threshold","_ref$overscanCount","overscanCount","heightProp","height","_ref$paddingTop","paddingTop","_ref$paddingBottom","paddingBottom","_ref$style","style","empty","_ref$onLoadNext","onLoadNext","_ref$itemRenderer","itemRenderer","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","listRef","mergedListRef","size","useSize","fontSize","useFontSize","document","body","_useContext","useContext","LayoutContext","hasNavigation","hasPageHeader","_useTheme","useTheme","theme","isMinMd","useIsMinWidth","safeAreaInset","useSafeAreaInset","itemSize","useMemo","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","loadNext","useRWLoadNext","windowScrollHandler","useCallback","_ref2","top","current","scrollTo","InnerElement","_ref3","innerStyle","innerRest","createElement","concat","parseFloat","listChildren","_ref4","childrenStyle","childrenRest","EmptyComponent","Fragment","renderList","FixedSizeList","width","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default","exports"],"sources":["../../../src/List/index.tsx"],"sourcesContent":["import { useIsMinWidth } from '@os-design/media';\nimport { useTheme } from '@os-design/theming';\nimport {\n useFontSize,\n useForwardedRef,\n useSafeAreaInset,\n useSize,\n} from '@os-design/utils';\nimport React, {\n CSSProperties,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport {\n FixedSizeList,\n ListChildComponentProps,\n ListProps as RWListProps,\n} from 'react-window';\nimport LayoutContext from '../Layout/LayoutContext';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\n\nexport interface ListProps extends Partial<RWListProps> {\n /**\n * Total number of items in the list.\n */\n itemCount: number;\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The height of the list in px.\n * @default undefined\n */\n height?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The inline css style.\n * @default undefined\n */\n style?: CSSProperties;\n /**\n * The component that renders if the list is empty.\n * @default undefined\n */\n empty?: React.ReactNode;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n height: heightProp,\n paddingTop = 0,\n paddingBottom = 0,\n style = {},\n empty,\n onLoadNext = () => {},\n itemRenderer = () => null,\n ...rest\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const height = useMemo(\n () => heightProp || size.height,\n [heightProp, size.height]\n );\n\n const loadNext = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height,\n onLoadNext,\n });\n\n const windowScrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n loadNext(top);\n },\n [listRef, loadNext]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style: innerStyle, ...innerRest }) => (\n <div\n style={{\n ...innerStyle,\n height: `${\n parseFloat(innerStyle.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...innerRest}\n />\n ),\n [paddingBottomSize, paddingTopSize]\n );\n\n const listChildren = useCallback<RWListProps['children']>(\n ({ style: childrenStyle, ...childrenRest }) =>\n itemRenderer({\n style: {\n ...childrenStyle,\n top: `${\n parseFloat(\n childrenStyle.top ? childrenStyle.top.toString() : '0'\n ) + paddingTopSize\n }px`,\n },\n ...childrenRest,\n }),\n [itemRenderer, paddingTopSize]\n );\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n const EmptyComponent = useCallback(() => <>{empty}</>, [empty]);\n\n const renderList = useCallback(\n () => (\n <FixedSizeList\n ref={mergedListRef}\n itemCount={itemCount}\n width='100%'\n height={height}\n itemSize={itemSize}\n style={heightProp ? style : { ...style, height: '100% important!' }}\n overscanCount={overscanCount}\n onScroll={\n heightProp\n ? ({ scrollOffset }) => loadNext(scrollOffset)\n : undefined\n }\n innerElementType={itemCount > 0 ? InnerElement : EmptyComponent}\n {...rest}\n >\n {listChildren}\n </FixedSizeList>\n ),\n [\n EmptyComponent,\n InnerElement,\n height,\n heightProp,\n itemCount,\n itemSize,\n listChildren,\n loadNext,\n mergedListRef,\n overscanCount,\n rest,\n style,\n ]\n );\n\n if (heightProp) {\n return renderList();\n }\n\n return (\n <WindowScroller onScroll={windowScrollHandler}>\n {renderList()}\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"mappings":"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"}
@@ -59,9 +59,18 @@ const notHasLeftStyles = p => !p.hasLeft && css`
59
59
  const notHasRightStyles = p => !p.hasRight && css`
60
60
  padding-right: ${p.theme.inputPaddingHorizontal}em;
61
61
  `;
62
+ const hideSpinButton = css`
63
+ /* Chrome, Safari, Edge, Opera */
64
+ &::-webkit-outer-spin-button,
65
+ &::-webkit-inner-spin-button {
66
+ -webkit-appearance: none;
67
+ margin: 0;
68
+ }
69
+ /* Firefox */
70
+ appearance: textfield;
71
+ `;
62
72
  export const StyledInput = styled('input', omitEmotionProps('hasLeft', 'hasRight'))`
63
73
  ${resetFocusStyles};
64
- appearance: none;
65
74
  border: none;
66
75
  font-size: 1em;
67
76
  flex: 1;
@@ -74,6 +83,7 @@ export const StyledInput = styled('input', omitEmotionProps('hasLeft', 'hasRight
74
83
  color: ${p => clr(p.theme.inputColorPlaceholder)};
75
84
  }
76
85
 
86
+ ${hideSpinButton};
77
87
  ${notHasLeftStyles};
78
88
  ${notHasRightStyles};
79
89
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["css","styled","Loading","resetFocusStyles","sizeStyles","transitionStyles","clr","ThemeOverrider","omitEmotionProps","useForwardedRef","React","forwardRef","useCallback","useMemo","getFocusableElements","hoverStyles","p","disabled","theme","inputHoverColorBorder","focusStyles","inputFocusColorBorder","inputFocusColorShadow","disabledStyles","inputDisabledColorText","inputDisabledColorBg","inputDisabledColorBorder","inputDisabledColorPlaceholder","InputContainer","baseHeight","inputColorBg","inputBorderWidth","inputColorBorder","borderRadius","notHasLeftStyles","hasLeft","inputPaddingHorizontal","notHasRightStyles","hasRight","StyledInput","inputColorText","inputColorPlaceholder","Addon","LeftAddon","inputAddonPaddingHorizontal","hasPadding","RightAddon","Input","type","left","leftHasPadding","right","rightHasPadding","loading","containerRef","containerProps","size","value","onChange","rest","ref","innerContainerRef","mergedContainerRef","rightValue","createElement","rightHasPaddingValue","onFocus","e","target","current","focusableElements","focus","onKeyDown","document","inputFocusableElements","firstInputElementIsFocused","activeElement","key","shiftKey","inputContainerIndex","findIndex","el","elementBeforeInputContainer","_extends","tabIndex","overrides","buttonPaddingHorizontal","displayName"],"sources":["../../../src/Input/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Loading } from '@os-design/icons';\nimport {\n resetFocusStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedRef } from '@os-design/utils';\nimport React, {\n ChangeEvent,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n KeyboardEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport getFocusableElements from './utils/getFocusableElements';\n\ntype JsxInputProps = Omit<\n JSX.IntrinsicElements['input'],\n 'value' | 'onChange' | 'size' | 'ref'\n>;\nexport interface InputProps extends JsxInputProps, WithSize {\n /**\n * Type of the input.\n * @default text\n */\n type?: JsxInputProps['type'];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * The ref of the input container.\n * @default undefined\n */\n containerRef?: ForwardedRef<HTMLDivElement>;\n /**\n * The props of the input container.\n * @default undefined\n */\n containerProps?: JSX.IntrinsicElements['div'];\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string, e: ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover {\n border-color: ${clr(p.theme.inputHoverColorBorder)};\n }\n }\n `;\n\nconst focusStyles = (p) =>\n !p.disabled &&\n css`\n &:focus-within {\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n }\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n color: ${clr(p.theme.inputDisabledColorText)};\n background-color: ${clr(p.theme.inputDisabledColorBg)};\n border-color: ${clr(p.theme.inputDisabledColorBorder)};\n\n input,\n textarea {\n cursor: not-allowed;\n &::placeholder {\n color: ${clr(p.theme.inputDisabledColorPlaceholder)};\n }\n }\n `;\n\ntype InputContainerProps = Pick<InputProps, 'disabled' | 'size'>;\nexport const InputContainer = styled(\n 'div',\n omitEmotionProps('disabled', 'size')\n)<InputContainerProps>`\n ${resetFocusStyles};\n\n display: inline-flex;\n width: 100%;\n height: ${(p) => p.theme.baseHeight}em;\n box-sizing: border-box;\n background-color: ${(p) => clr(p.theme.inputColorBg)};\n\n border: ${(p) => p.theme.inputBorderWidth}px solid\n ${(p) => clr(p.theme.inputColorBorder)};\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n ${hoverStyles};\n ${focusStyles};\n ${disabledStyles};\n ${sizeStyles};\n ${transitionStyles('border-color', 'box-shadow')};\n`;\n\nconst notHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst notHasRightStyles = (p) =>\n !p.hasRight &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface StyledInputProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n}\nexport const StyledInput = styled(\n 'input',\n omitEmotionProps('hasLeft', 'hasRight')\n)<StyledInputProps>`\n ${resetFocusStyles};\n appearance: none;\n border: none;\n font-size: 1em;\n flex: 1;\n overflow: hidden;\n\n color: ${(p) => clr(p.theme.inputColorText)};\n background-color: transparent;\n\n &::placeholder {\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n }\n\n ${notHasLeftStyles};\n ${notHasRightStyles};\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The basic input component.\n */\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = 'text',\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n disabled = false,\n loading = false,\n containerRef,\n containerProps = {},\n size,\n value,\n onChange = () => {},\n ...rest\n },\n ref\n ) => {\n const [innerContainerRef, mergedContainerRef] =\n useForwardedRef(containerRef);\n\n const rightValue = useMemo(\n () => (loading ? <Loading /> : right),\n [loading, right]\n );\n\n const rightHasPaddingValue = useMemo(\n () => (loading ? true : rightHasPadding),\n [loading, rightHasPadding]\n );\n\n const onFocus = useCallback<FocusEventHandler>(\n (e) => {\n // Focus the next element if the container element was focused.\n // The next element will be the input or button in the addon.\n if (disabled || e.target !== innerContainerRef.current) return;\n const focusableElements = getFocusableElements(\n innerContainerRef.current\n );\n focusableElements[0].focus();\n },\n [disabled, innerContainerRef]\n );\n\n const onKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n // Focus the previous element if the first element in the input\n // container is focused and the Shift + Tab combination is pressed.\n const focusableElements = getFocusableElements(document);\n const inputFocusableElements = innerContainerRef.current\n ? getFocusableElements(innerContainerRef.current)\n : [];\n const firstInputElementIsFocused =\n inputFocusableElements[0] === document.activeElement;\n if (firstInputElementIsFocused && e.key === 'Tab' && e.shiftKey) {\n const inputContainerIndex = focusableElements.findIndex(\n (el) => el === innerContainerRef.current\n );\n if (inputContainerIndex === 0) return;\n const elementBeforeInputContainer =\n focusableElements[inputContainerIndex - 1];\n elementBeforeInputContainer.focus();\n }\n },\n [innerContainerRef]\n );\n\n return (\n <InputContainer\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n ref={mergedContainerRef}\n {...containerProps}\n >\n {left && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <StyledInput\n type={type}\n disabled={disabled}\n hasLeft={!!left}\n hasRight={!!right}\n value={value || ''}\n onChange={(e) => onChange(e.target.value, e)}\n {...rest}\n ref={ref}\n />\n\n {rightValue && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </InputContainer>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["css","styled","Loading","resetFocusStyles","sizeStyles","transitionStyles","clr","ThemeOverrider","omitEmotionProps","useForwardedRef","React","forwardRef","useCallback","useMemo","getFocusableElements","hoverStyles","p","disabled","theme","inputHoverColorBorder","focusStyles","inputFocusColorBorder","inputFocusColorShadow","disabledStyles","inputDisabledColorText","inputDisabledColorBg","inputDisabledColorBorder","inputDisabledColorPlaceholder","InputContainer","baseHeight","inputColorBg","inputBorderWidth","inputColorBorder","borderRadius","notHasLeftStyles","hasLeft","inputPaddingHorizontal","notHasRightStyles","hasRight","hideSpinButton","StyledInput","inputColorText","inputColorPlaceholder","Addon","LeftAddon","inputAddonPaddingHorizontal","hasPadding","RightAddon","Input","type","left","leftHasPadding","right","rightHasPadding","loading","containerRef","containerProps","size","value","onChange","rest","ref","innerContainerRef","mergedContainerRef","rightValue","createElement","rightHasPaddingValue","onFocus","e","target","current","focusableElements","focus","onKeyDown","document","inputFocusableElements","firstInputElementIsFocused","activeElement","key","shiftKey","inputContainerIndex","findIndex","el","elementBeforeInputContainer","_extends","tabIndex","overrides","buttonPaddingHorizontal","displayName"],"sources":["../../../src/Input/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Loading } from '@os-design/icons';\nimport {\n resetFocusStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedRef } from '@os-design/utils';\nimport React, {\n ChangeEvent,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n KeyboardEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport getFocusableElements from './utils/getFocusableElements';\n\ntype JsxInputProps = Omit<\n JSX.IntrinsicElements['input'],\n 'value' | 'onChange' | 'size' | 'ref'\n>;\nexport interface InputProps extends JsxInputProps, WithSize {\n /**\n * Type of the input.\n * @default text\n */\n type?: JsxInputProps['type'];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * The ref of the input container.\n * @default undefined\n */\n containerRef?: ForwardedRef<HTMLDivElement>;\n /**\n * The props of the input container.\n * @default undefined\n */\n containerProps?: JSX.IntrinsicElements['div'];\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string, e: ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover {\n border-color: ${clr(p.theme.inputHoverColorBorder)};\n }\n }\n `;\n\nconst focusStyles = (p) =>\n !p.disabled &&\n css`\n &:focus-within {\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n }\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n color: ${clr(p.theme.inputDisabledColorText)};\n background-color: ${clr(p.theme.inputDisabledColorBg)};\n border-color: ${clr(p.theme.inputDisabledColorBorder)};\n\n input,\n textarea {\n cursor: not-allowed;\n &::placeholder {\n color: ${clr(p.theme.inputDisabledColorPlaceholder)};\n }\n }\n `;\n\ntype InputContainerProps = Pick<InputProps, 'disabled' | 'size'>;\nexport const InputContainer = styled(\n 'div',\n omitEmotionProps('disabled', 'size')\n)<InputContainerProps>`\n ${resetFocusStyles};\n\n display: inline-flex;\n width: 100%;\n height: ${(p) => p.theme.baseHeight}em;\n box-sizing: border-box;\n background-color: ${(p) => clr(p.theme.inputColorBg)};\n\n border: ${(p) => p.theme.inputBorderWidth}px solid\n ${(p) => clr(p.theme.inputColorBorder)};\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n ${hoverStyles};\n ${focusStyles};\n ${disabledStyles};\n ${sizeStyles};\n ${transitionStyles('border-color', 'box-shadow')};\n`;\n\nconst notHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst notHasRightStyles = (p) =>\n !p.hasRight &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst hideSpinButton = css`\n /* Chrome, Safari, Edge, Opera */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n appearance: textfield;\n`;\n\ninterface StyledInputProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n}\nexport const StyledInput = styled(\n 'input',\n omitEmotionProps('hasLeft', 'hasRight')\n)<StyledInputProps>`\n ${resetFocusStyles};\n border: none;\n font-size: 1em;\n flex: 1;\n overflow: hidden;\n\n color: ${(p) => clr(p.theme.inputColorText)};\n background-color: transparent;\n\n &::placeholder {\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n }\n\n ${hideSpinButton};\n ${notHasLeftStyles};\n ${notHasRightStyles};\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The basic input component.\n */\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = 'text',\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n disabled = false,\n loading = false,\n containerRef,\n containerProps = {},\n size,\n value,\n onChange = () => {},\n ...rest\n },\n ref\n ) => {\n const [innerContainerRef, mergedContainerRef] =\n useForwardedRef(containerRef);\n\n const rightValue = useMemo(\n () => (loading ? <Loading /> : right),\n [loading, right]\n );\n\n const rightHasPaddingValue = useMemo(\n () => (loading ? true : rightHasPadding),\n [loading, rightHasPadding]\n );\n\n const onFocus = useCallback<FocusEventHandler>(\n (e) => {\n // Focus the next element if the container element was focused.\n // The next element will be the input or button in the addon.\n if (disabled || e.target !== innerContainerRef.current) return;\n const focusableElements = getFocusableElements(\n innerContainerRef.current\n );\n focusableElements[0].focus();\n },\n [disabled, innerContainerRef]\n );\n\n const onKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n // Focus the previous element if the first element in the input\n // container is focused and the Shift + Tab combination is pressed.\n const focusableElements = getFocusableElements(document);\n const inputFocusableElements = innerContainerRef.current\n ? getFocusableElements(innerContainerRef.current)\n : [];\n const firstInputElementIsFocused =\n inputFocusableElements[0] === document.activeElement;\n if (firstInputElementIsFocused && e.key === 'Tab' && e.shiftKey) {\n const inputContainerIndex = focusableElements.findIndex(\n (el) => el === innerContainerRef.current\n );\n if (inputContainerIndex === 0) return;\n const elementBeforeInputContainer =\n focusableElements[inputContainerIndex - 1];\n elementBeforeInputContainer.focus();\n }\n },\n [innerContainerRef]\n );\n\n return (\n <InputContainer\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n ref={mergedContainerRef}\n {...containerProps}\n >\n {left && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <StyledInput\n type={type}\n disabled={disabled}\n hasLeft={!!left}\n hasRight={!!right}\n value={value || ''}\n onChange={(e) => onChange(e.target.value, e)}\n {...rest}\n ref={ref}\n />\n\n {rightValue && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </InputContainer>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n"],"mappings":";AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,OAAO,QAAQ,kBAAkB;AAC1C,SACEC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,QAEX,mBAAmB;AAC1B,SAASC,GAAG,EAAEC,cAAc,QAAQ,oBAAoB;AACxD,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,kBAAkB;AACpE,OAAOC,KAAK,IAIVC,UAAU,EAEVC,WAAW,EACXC,OAAO,QACF,OAAO;AACd,OAAOC,oBAAoB,MAAM,8BAA8B;AAkE/D,MAAMC,WAAW,GAAIC,CAAC,IACpB,CAACA,CAAC,CAACC,QAAQ,IACXjB,GAAI;AACN;AACA;AACA,wBAAwBM,GAAG,CAACU,CAAC,CAACE,KAAK,CAACC,qBAAqB,CAAE;AAC3D;AACA;AACA,GAAG;AAEH,MAAMC,WAAW,GAAIJ,CAAC,IACpB,CAACA,CAAC,CAACC,QAAQ,IACXjB,GAAI;AACN;AACA,sBAAsBM,GAAG,CAACU,CAAC,CAACE,KAAK,CAACG,qBAAqB,CAAE;AACzD,iCAAiCf,GAAG,CAACU,CAAC,CAACE,KAAK,CAACI,qBAAqB,CAAE;AACpE;AACA,GAAG;AAEH,MAAMC,cAAc,GAAIP,CAAC,IACvBA,CAAC,CAACC,QAAQ,IACVjB,GAAI;AACN;AACA,aAAaM,GAAG,CAACU,CAAC,CAACE,KAAK,CAACM,sBAAsB,CAAE;AACjD,wBAAwBlB,GAAG,CAACU,CAAC,CAACE,KAAK,CAACO,oBAAoB,CAAE;AAC1D,oBAAoBnB,GAAG,CAACU,CAAC,CAACE,KAAK,CAACQ,wBAAwB,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,iBAAiBpB,GAAG,CAACU,CAAC,CAACE,KAAK,CAACS,6BAA6B,CAAE;AAC5D;AACA;AACA,GAAG;AAGH,OAAO,MAAMC,cAAc,GAAG3B,MAAM,CAClC,KAAK,EACLO,gBAAgB,CAAC,UAAU,EAAE,MAAM,CACrC,CAAuB;AACvB,IAAIL,gBAAiB;AACrB;AACA;AACA;AACA,YAAaa,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACW,UAAW;AACtC;AACA,sBAAuBb,CAAC,IAAKV,GAAG,CAACU,CAAC,CAACE,KAAK,CAACY,YAAY,CAAE;AACvD;AACA,YAAad,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACa,gBAAiB;AAC5C,MAAOf,CAAC,IAAKV,GAAG,CAACU,CAAC,CAACE,KAAK,CAACc,gBAAgB,CAAE;AAC3C,mBAAoBhB,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACe,YAAa;AAC/C;AACA,IAAIlB,WAAY;AAChB,IAAIK,WAAY;AAChB,IAAIG,cAAe;AACnB,IAAInB,UAAW;AACf,IAAIC,gBAAgB,CAAC,cAAc,EAAE,YAAY,CAAE;AACnD,CAAC;AAED,MAAM6B,gBAAgB,GAAIlB,CAAC,IACzB,CAACA,CAAC,CAACmB,OAAO,IACVnC,GAAI;AACN,oBAAoBgB,CAAC,CAACE,KAAK,CAACkB,sBAAuB;AACnD,GAAG;AAEH,MAAMC,iBAAiB,GAAIrB,CAAC,IAC1B,CAACA,CAAC,CAACsB,QAAQ,IACXtC,GAAI;AACN,qBAAqBgB,CAAC,CAACE,KAAK,CAACkB,sBAAuB;AACpD,GAAG;AAEH,MAAMG,cAAc,GAAGvC,GAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMD,OAAO,MAAMwC,WAAW,GAAGvC,MAAM,CAC/B,OAAO,EACPO,gBAAgB,CAAC,SAAS,EAAE,UAAU,CACxC,CAAoB;AACpB,IAAIL,gBAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,WAAYa,CAAC,IAAKV,GAAG,CAACU,CAAC,CAACE,KAAK,CAACuB,cAAc,CAAE;AAC9C;AACA;AACA;AACA,aAAczB,CAAC,IAAKV,GAAG,CAACU,CAAC,CAACE,KAAK,CAACwB,qBAAqB,CAAE;AACvD;AACA;AACA,IAAIH,cAAe;AACnB,IAAIL,gBAAiB;AACrB,IAAIG,iBAAkB;AACtB,CAAC;AAKD,MAAMM,KAAK,GAAG1C,MAAM,CAAC,MAAM,EAAEO,gBAAgB,CAAC,YAAY,CAAC,CAAc;AACzE;AACA;AACA;AACA,WAAYQ,CAAC,IAAKV,GAAG,CAACU,CAAC,CAACE,KAAK,CAACwB,qBAAqB,CAAE;AACrD;AACA;AACA;AACA;AACA,CAAC;AAED,MAAME,SAAS,GAAG3C,MAAM,CAAC0C,KAAK,CAAE;AAChC,mBAAoB3B,CAAC,IAAKA,CAAC,CAACE,KAAK,CAAC2B,2BAA4B;AAC9D,IAAK7B,CAAC,IACFA,CAAC,CAAC8B,UAAU,IACZ9C,GAAI;AACR,sBAAsBgB,CAAC,CAACE,KAAK,CAACkB,sBAAuB;AACrD,KAAM;AACN,CAAC;AAED,MAAMW,UAAU,GAAG9C,MAAM,CAAC0C,KAAK,CAAE;AACjC,kBAAmB3B,CAAC,IAAKA,CAAC,CAACE,KAAK,CAAC2B,2BAA4B;AAC7D,IAAK7B,CAAC,IACFA,CAAC,CAAC8B,UAAU,IACZ9C,GAAI;AACR,uBAAuBgB,CAAC,CAACE,KAAK,CAACkB,sBAAuB;AACtD,KAAM;AACN,CAAC;;AAED;AACA;AACA;AACA,MAAMY,KAAK,gBAAGrC,UAAU,CACtB,CACE;EACEsC,IAAI,GAAG,MAAM;EACbC,IAAI;EACJC,cAAc,GAAG,KAAK;EACtBC,KAAK;EACLC,eAAe,GAAG,KAAK;EACvBpC,QAAQ,GAAG,KAAK;EAChBqC,OAAO,GAAG,KAAK;EACfC,YAAY;EACZC,cAAc,GAAG,CAAC,CAAC;EACnBC,IAAI;EACJC,KAAK;EACLC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;EACnB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM,CAACC,iBAAiB,EAAEC,kBAAkB,CAAC,GAC3CtD,eAAe,CAAC8C,YAAY,CAAC;EAE/B,MAAMS,UAAU,GAAGnD,OAAO,CACxB,MAAOyC,OAAO,gBAAG5C,KAAA,CAAAuD,aAAA,CAAC/D,OAAO,MAAE,CAAC,GAAGkD,KAAM,EACrC,CAACE,OAAO,EAAEF,KAAK,CACjB,CAAC;EAED,MAAMc,oBAAoB,GAAGrD,OAAO,CAClC,MAAOyC,OAAO,GAAG,IAAI,GAAGD,eAAgB,EACxC,CAACC,OAAO,EAAED,eAAe,CAC3B,CAAC;EAED,MAAMc,OAAO,GAAGvD,WAAW,CACxBwD,CAAC,IAAK;IACL;IACA;IACA,IAAInD,QAAQ,IAAImD,CAAC,CAACC,MAAM,KAAKP,iBAAiB,CAACQ,OAAO,EAAE;IACxD,MAAMC,iBAAiB,GAAGzD,oBAAoB,CAC5CgD,iBAAiB,CAACQ,OACpB,CAAC;IACDC,iBAAiB,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EAC9B,CAAC,EACD,CAACvD,QAAQ,EAAE6C,iBAAiB,CAC9B,CAAC;EAED,MAAMW,SAAS,GAAG7D,WAAW,CAC1BwD,CAAC,IAAK;IACL;IACA;IACA,MAAMG,iBAAiB,GAAGzD,oBAAoB,CAAC4D,QAAQ,CAAC;IACxD,MAAMC,sBAAsB,GAAGb,iBAAiB,CAACQ,OAAO,GACpDxD,oBAAoB,CAACgD,iBAAiB,CAACQ,OAAO,CAAC,GAC/C,EAAE;IACN,MAAMM,0BAA0B,GAC9BD,sBAAsB,CAAC,CAAC,CAAC,KAAKD,QAAQ,CAACG,aAAa;IACtD,IAAID,0BAA0B,IAAIR,CAAC,CAACU,GAAG,KAAK,KAAK,IAAIV,CAAC,CAACW,QAAQ,EAAE;MAC/D,MAAMC,mBAAmB,GAAGT,iBAAiB,CAACU,SAAS,CACpDC,EAAE,IAAKA,EAAE,KAAKpB,iBAAiB,CAACQ,OACnC,CAAC;MACD,IAAIU,mBAAmB,KAAK,CAAC,EAAE;MAC/B,MAAMG,2BAA2B,GAC/BZ,iBAAiB,CAACS,mBAAmB,GAAG,CAAC,CAAC;MAC5CG,2BAA2B,CAACX,KAAK,CAAC,CAAC;IACrC;EACF,CAAC,EACD,CAACV,iBAAiB,CACpB,CAAC;EAED,oBACEpD,KAAA,CAAAuD,aAAA,CAACrC,cAAc,EAAAwD,QAAA;IACbnE,QAAQ,EAAEA,QAAS;IACnBwC,IAAI,EAAEA,IAAK;IACX4B,QAAQ,EAAE,CAACpE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAE;IAC7BkD,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAEA,SAAU;IACrBZ,GAAG,EAAEE;EAAmB,GACpBP,cAAc,GAEjBN,IAAI,iBACHxC,KAAA,CAAAuD,aAAA,CAAC1D,cAAc;IAAC+E,SAAS,EAAE;MAAEC,uBAAuB,EAAE;IAAI;EAAE,gBAC1D7E,KAAA,CAAAuD,aAAA,CAACrB,SAAS;IAACE,UAAU,EAAEK;EAAe,GAAED,IAAgB,CAC1C,CACjB,eAEDxC,KAAA,CAAAuD,aAAA,CAACzB,WAAW,EAAA4C,QAAA;IACVnC,IAAI,EAAEA,IAAK;IACXhC,QAAQ,EAAEA,QAAS;IACnBkB,OAAO,EAAE,CAAC,CAACe,IAAK;IAChBZ,QAAQ,EAAE,CAAC,CAACc,KAAM;IAClBM,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBC,QAAQ,EAAGS,CAAC,IAAKT,QAAQ,CAACS,CAAC,CAACC,MAAM,CAACX,KAAK,EAAEU,CAAC;EAAE,GACzCR,IAAI;IACRC,GAAG,EAAEA;EAAI,EACV,CAAC,EAEDG,UAAU,iBACTtD,KAAA,CAAAuD,aAAA,CAAC1D,cAAc;IAAC+E,SAAS,EAAE;MAAEC,uBAAuB,EAAE;IAAI;EAAE,gBAC1D7E,KAAA,CAAAuD,aAAA,CAAClB,UAAU;IAACD,UAAU,EAAEoB;EAAqB,GAC1CF,UACS,CACE,CAEJ,CAAC;AAErB,CACF,CAAC;AAEDhB,KAAK,CAACwC,WAAW,GAAG,OAAO;AAE3B,eAAexC,KAAK"}
@@ -41,7 +41,7 @@ const List = /*#__PURE__*/forwardRef(({
41
41
  const paddingTopSize = useMemo(() => ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) + paddingTop) * fontSize, [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]);
42
42
  const paddingBottomSize = useMemo(() => ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) + paddingBottom) * fontSize + safeAreaInset.bottom, [hasNavigation, theme.navigationTabHeight, isMinMd, paddingBottom, fontSize, safeAreaInset.bottom]);
43
43
  const height = useMemo(() => heightProp || size.height, [heightProp, size.height]);
44
- const loadNextHandler = useRWLoadNext({
44
+ const loadNext = useRWLoadNext({
45
45
  itemCount,
46
46
  threshold,
47
47
  itemSize,
@@ -54,8 +54,8 @@ const List = /*#__PURE__*/forwardRef(({
54
54
  }) => {
55
55
  // Set the scroll position to the list
56
56
  if (listRef.current) listRef.current.scrollTo(top);
57
- loadNextHandler(top);
58
- }, [listRef, loadNextHandler]);
57
+ loadNext(top);
58
+ }, [listRef, loadNext]);
59
59
 
60
60
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
61
  const InnerElement = useCallback(({
@@ -93,9 +93,9 @@ const List = /*#__PURE__*/forwardRef(({
93
93
  overscanCount: overscanCount,
94
94
  onScroll: heightProp ? ({
95
95
  scrollOffset
96
- }) => loadNextHandler(scrollOffset) : undefined,
96
+ }) => loadNext(scrollOffset) : undefined,
97
97
  innerElementType: itemCount > 0 ? InnerElement : EmptyComponent
98
- }, rest), listChildren), [EmptyComponent, InnerElement, height, heightProp, itemCount, itemSize, listChildren, loadNextHandler, mergedListRef, overscanCount, rest, style]);
98
+ }, rest), listChildren), [EmptyComponent, InnerElement, height, heightProp, itemCount, itemSize, listChildren, loadNext, mergedListRef, overscanCount, rest, style]);
99
99
  if (heightProp) {
100
100
  return renderList();
101
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useIsMinWidth","useTheme","useFontSize","useForwardedRef","useSafeAreaInset","useSize","React","forwardRef","useCallback","useContext","useMemo","FixedSizeList","LayoutContext","WindowScroller","useRWLoadNext","List","itemCount","itemHeight","threshold","overscanCount","height","heightProp","paddingTop","paddingBottom","style","empty","onLoadNext","itemRenderer","rest","ref","listRef","mergedListRef","size","fontSize","document","body","hasNavigation","hasPageHeader","theme","isMinMd","safeAreaInset","itemSize","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","loadNextHandler","windowScrollHandler","top","current","scrollTo","InnerElement","innerStyle","innerRest","createElement","_extends","parseFloat","listChildren","childrenStyle","childrenRest","toString","EmptyComponent","Fragment","renderList","width","onScroll","scrollOffset","undefined","innerElementType","displayName","default"],"sources":["../../../src/List/index.tsx"],"sourcesContent":["import { useIsMinWidth } from '@os-design/media';\nimport { useTheme } from '@os-design/theming';\nimport {\n useFontSize,\n useForwardedRef,\n useSafeAreaInset,\n useSize,\n} from '@os-design/utils';\nimport React, {\n CSSProperties,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport {\n FixedSizeList,\n ListChildComponentProps,\n ListProps as RWListProps,\n} from 'react-window';\nimport LayoutContext from '../Layout/LayoutContext';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\n\nexport interface ListProps extends Partial<RWListProps> {\n /**\n * Total number of items in the list.\n */\n itemCount: number;\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The height of the list in px.\n * @default undefined\n */\n height?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The inline css style.\n * @default undefined\n */\n style?: CSSProperties;\n /**\n * The component that renders if the list is empty.\n * @default undefined\n */\n empty?: React.ReactNode;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n height: heightProp,\n paddingTop = 0,\n paddingBottom = 0,\n style = {},\n empty,\n onLoadNext = () => {},\n itemRenderer = () => null,\n ...rest\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const height = useMemo(\n () => heightProp || size.height,\n [heightProp, size.height]\n );\n\n const loadNextHandler = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height,\n onLoadNext,\n });\n\n const windowScrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n loadNextHandler(top);\n },\n [listRef, loadNextHandler]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style: innerStyle, ...innerRest }) => (\n <div\n style={{\n ...innerStyle,\n height: `${\n parseFloat(innerStyle.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...innerRest}\n />\n ),\n [paddingBottomSize, paddingTopSize]\n );\n\n const listChildren = useCallback<RWListProps['children']>(\n ({ style: childrenStyle, ...childrenRest }) =>\n itemRenderer({\n style: {\n ...childrenStyle,\n top: `${\n parseFloat(\n childrenStyle.top ? childrenStyle.top.toString() : '0'\n ) + paddingTopSize\n }px`,\n },\n ...childrenRest,\n }),\n [itemRenderer, paddingTopSize]\n );\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n const EmptyComponent = useCallback(() => <>{empty}</>, [empty]);\n\n const renderList = useCallback(\n () => (\n <FixedSizeList\n ref={mergedListRef}\n itemCount={itemCount}\n width='100%'\n height={height}\n itemSize={itemSize}\n style={heightProp ? style : { ...style, height: '100% important!' }}\n overscanCount={overscanCount}\n onScroll={\n heightProp\n ? ({ scrollOffset }) => loadNextHandler(scrollOffset)\n : undefined\n }\n innerElementType={itemCount > 0 ? InnerElement : EmptyComponent}\n {...rest}\n >\n {listChildren}\n </FixedSizeList>\n ),\n [\n EmptyComponent,\n InnerElement,\n height,\n heightProp,\n itemCount,\n itemSize,\n listChildren,\n loadNextHandler,\n mergedListRef,\n overscanCount,\n rest,\n style,\n ]\n );\n\n if (heightProp) {\n return renderList();\n }\n\n return (\n <WindowScroller onScroll={windowScrollHandler}>\n {renderList()}\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["useIsMinWidth","useTheme","useFontSize","useForwardedRef","useSafeAreaInset","useSize","React","forwardRef","useCallback","useContext","useMemo","FixedSizeList","LayoutContext","WindowScroller","useRWLoadNext","List","itemCount","itemHeight","threshold","overscanCount","height","heightProp","paddingTop","paddingBottom","style","empty","onLoadNext","itemRenderer","rest","ref","listRef","mergedListRef","size","fontSize","document","body","hasNavigation","hasPageHeader","theme","isMinMd","safeAreaInset","itemSize","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","loadNext","windowScrollHandler","top","current","scrollTo","InnerElement","innerStyle","innerRest","createElement","_extends","parseFloat","listChildren","childrenStyle","childrenRest","toString","EmptyComponent","Fragment","renderList","width","onScroll","scrollOffset","undefined","innerElementType","displayName","default"],"sources":["../../../src/List/index.tsx"],"sourcesContent":["import { useIsMinWidth } from '@os-design/media';\nimport { useTheme } from '@os-design/theming';\nimport {\n useFontSize,\n useForwardedRef,\n useSafeAreaInset,\n useSize,\n} from '@os-design/utils';\nimport React, {\n CSSProperties,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport {\n FixedSizeList,\n ListChildComponentProps,\n ListProps as RWListProps,\n} from 'react-window';\nimport LayoutContext from '../Layout/LayoutContext';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\n\nexport interface ListProps extends Partial<RWListProps> {\n /**\n * Total number of items in the list.\n */\n itemCount: number;\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The height of the list in px.\n * @default undefined\n */\n height?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The inline css style.\n * @default undefined\n */\n style?: CSSProperties;\n /**\n * The component that renders if the list is empty.\n * @default undefined\n */\n empty?: React.ReactNode;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n height: heightProp,\n paddingTop = 0,\n paddingBottom = 0,\n style = {},\n empty,\n onLoadNext = () => {},\n itemRenderer = () => null,\n ...rest\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const height = useMemo(\n () => heightProp || size.height,\n [heightProp, size.height]\n );\n\n const loadNext = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height,\n onLoadNext,\n });\n\n const windowScrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n loadNext(top);\n },\n [listRef, loadNext]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style: innerStyle, ...innerRest }) => (\n <div\n style={{\n ...innerStyle,\n height: `${\n parseFloat(innerStyle.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...innerRest}\n />\n ),\n [paddingBottomSize, paddingTopSize]\n );\n\n const listChildren = useCallback<RWListProps['children']>(\n ({ style: childrenStyle, ...childrenRest }) =>\n itemRenderer({\n style: {\n ...childrenStyle,\n top: `${\n parseFloat(\n childrenStyle.top ? childrenStyle.top.toString() : '0'\n ) + paddingTopSize\n }px`,\n },\n ...childrenRest,\n }),\n [itemRenderer, paddingTopSize]\n );\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n const EmptyComponent = useCallback(() => <>{empty}</>, [empty]);\n\n const renderList = useCallback(\n () => (\n <FixedSizeList\n ref={mergedListRef}\n itemCount={itemCount}\n width='100%'\n height={height}\n itemSize={itemSize}\n style={heightProp ? style : { ...style, height: '100% important!' }}\n overscanCount={overscanCount}\n onScroll={\n heightProp\n ? ({ scrollOffset }) => loadNext(scrollOffset)\n : undefined\n }\n innerElementType={itemCount > 0 ? InnerElement : EmptyComponent}\n {...rest}\n >\n {listChildren}\n </FixedSizeList>\n ),\n [\n EmptyComponent,\n InnerElement,\n height,\n heightProp,\n itemCount,\n itemSize,\n listChildren,\n loadNext,\n mergedListRef,\n overscanCount,\n rest,\n style,\n ]\n );\n\n if (heightProp) {\n return renderList();\n }\n\n return (\n <WindowScroller onScroll={windowScrollHandler}>\n {renderList()}\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Input/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,EACZ,WAAW,EAEX,YAAY,EAKb,MAAM,OAAO,CAAC;AAGf,KAAK,aAAa,GAAG,IAAI,CACvB,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAC9B,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CACtC,CAAC;AACF,MAAM,WAAW,UAAW,SAAQ,aAAa,EAAE,QAAQ;IAKzD,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAK7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAKzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAKlB,YAAY,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAK5C,cAAc,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAK9C,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACtE;AAsCD,KAAK,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AACjE,eAAO,MAAM,cAAc;;;2GAqB1B,CAAC;AAcF,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,eAAO,MAAM,WAAW;;;iHAoBvB,CAAC;AAqCF,QAAA,MAAM,KAAK,qFAyGV,CAAC;AAIF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Input/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,EACZ,WAAW,EAEX,YAAY,EAKb,MAAM,OAAO,CAAC;AAGf,KAAK,aAAa,GAAG,IAAI,CACvB,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAC9B,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CACtC,CAAC;AACF,MAAM,WAAW,UAAW,SAAQ,aAAa,EAAE,QAAQ;IAKzD,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAK7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAKzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAKlB,YAAY,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAK5C,cAAc,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAK9C,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACtE;AAsCD,KAAK,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AACjE,eAAO,MAAM,cAAc;;;2GAqB1B,CAAC;AAyBF,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,eAAO,MAAM,WAAW;;;iHAoBvB,CAAC;AAqCF,QAAA,MAAM,KAAK,qFAyGV,CAAC;AAIF,eAAe,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os-design/core",
3
- "version": "1.0.220",
3
+ "version": "1.0.221",
4
4
  "license": "UNLICENSED",
5
5
  "repository": "git@gitlab.com:os-team/libs/os-design.git",
6
6
  "main": "dist/cjs/index.js",
@@ -59,5 +59,5 @@
59
59
  "react": ">=18",
60
60
  "react-dom": ">=18"
61
61
  },
62
- "gitHead": "be725abf9ac3cb9a455d42c8d3c31d7f7f015e11"
62
+ "gitHead": "077cfdc02330f1dc61f2742ee56e287d57f3ca40"
63
63
  }
@@ -156,6 +156,17 @@ const notHasRightStyles = (p) =>
156
156
  padding-right: ${p.theme.inputPaddingHorizontal}em;
157
157
  `;
158
158
 
159
+ const hideSpinButton = css`
160
+ /* Chrome, Safari, Edge, Opera */
161
+ &::-webkit-outer-spin-button,
162
+ &::-webkit-inner-spin-button {
163
+ -webkit-appearance: none;
164
+ margin: 0;
165
+ }
166
+ /* Firefox */
167
+ appearance: textfield;
168
+ `;
169
+
159
170
  interface StyledInputProps {
160
171
  hasLeft?: boolean;
161
172
  hasRight?: boolean;
@@ -165,7 +176,6 @@ export const StyledInput = styled(
165
176
  omitEmotionProps('hasLeft', 'hasRight')
166
177
  )<StyledInputProps>`
167
178
  ${resetFocusStyles};
168
- appearance: none;
169
179
  border: none;
170
180
  font-size: 1em;
171
181
  flex: 1;
@@ -178,6 +188,7 @@ export const StyledInput = styled(
178
188
  color: ${(p) => clr(p.theme.inputColorPlaceholder)};
179
189
  }
180
190
 
191
+ ${hideSpinButton};
181
192
  ${notHasLeftStyles};
182
193
  ${notHasRightStyles};
183
194
  `;
@@ -143,7 +143,7 @@ const List = forwardRef<FixedSizeList, ListProps>(
143
143
  [heightProp, size.height]
144
144
  );
145
145
 
146
- const loadNextHandler = useRWLoadNext({
146
+ const loadNext = useRWLoadNext({
147
147
  itemCount,
148
148
  threshold,
149
149
  itemSize,
@@ -156,9 +156,9 @@ const List = forwardRef<FixedSizeList, ListProps>(
156
156
  ({ top }: ScrollPosition) => {
157
157
  // Set the scroll position to the list
158
158
  if (listRef.current) listRef.current.scrollTo(top);
159
- loadNextHandler(top);
159
+ loadNext(top);
160
160
  },
161
- [listRef, loadNextHandler]
161
+ [listRef, loadNext]
162
162
  );
163
163
 
164
164
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -208,7 +208,7 @@ const List = forwardRef<FixedSizeList, ListProps>(
208
208
  overscanCount={overscanCount}
209
209
  onScroll={
210
210
  heightProp
211
- ? ({ scrollOffset }) => loadNextHandler(scrollOffset)
211
+ ? ({ scrollOffset }) => loadNext(scrollOffset)
212
212
  : undefined
213
213
  }
214
214
  innerElementType={itemCount > 0 ? InnerElement : EmptyComponent}
@@ -225,7 +225,7 @@ const List = forwardRef<FixedSizeList, ListProps>(
225
225
  itemCount,
226
226
  itemSize,
227
227
  listChildren,
228
- loadNextHandler,
228
+ loadNext,
229
229
  mergedListRef,
230
230
  overscanCount,
231
231
  rest,