@hitachivantara/uikit-react-core 5.18.2 → 5.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/AppSwitcher/Action/Action.cjs.map +1 -1
- package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs +5 -5
- package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs.map +1 -1
- package/dist/cjs/components/Banner/Banner.cjs.map +1 -1
- package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
- package/dist/cjs/components/BaseInput/validations.cjs.map +1 -1
- package/dist/cjs/components/Box/Box.cjs.map +1 -1
- package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs.map +1 -1
- package/dist/cjs/components/BreadCrumb/utils.cjs.map +1 -1
- package/dist/cjs/components/BulkActions/BulkActions.cjs +1 -5
- package/dist/cjs/components/BulkActions/BulkActions.cjs.map +1 -1
- package/dist/cjs/components/CheckBox/CheckBox.cjs +4 -4
- package/dist/cjs/components/CheckBox/CheckBox.cjs.map +1 -1
- package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
- package/dist/cjs/components/Controls/Controls.cjs.map +1 -1
- package/dist/cjs/components/Controls/LeftControl/LeftControl.cjs +1 -1
- package/dist/cjs/components/Controls/LeftControl/LeftControl.cjs.map +1 -1
- package/dist/cjs/components/Controls/RightControl/RightControl.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.cjs +3 -3
- package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/List/List.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/utils.cjs +2 -2
- package/dist/cjs/components/Dropdown/utils.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
- package/dist/cjs/components/Forms/Adornment/Adornment.cjs +1 -2
- package/dist/cjs/components/Forms/Adornment/Adornment.cjs.map +1 -1
- package/dist/cjs/components/Forms/FormElement/validationStates.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
- package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
- package/dist/cjs/components/List/useSelectableList.cjs +1 -4
- package/dist/cjs/components/List/useSelectableList.cjs.map +1 -1
- package/dist/cjs/components/Loading/Loading.cjs.map +1 -1
- package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs +1 -1
- package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs.map +1 -1
- package/dist/cjs/components/Pagination/ButtonIconTooltip.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Select.cjs +2 -4
- package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
- package/dist/cjs/components/Pagination/utils.cjs.map +1 -1
- package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
- package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs +1 -1
- package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs.map +1 -1
- package/dist/cjs/components/TimeAgo/TimeAgo.cjs +14 -7
- package/dist/cjs/components/TimeAgo/TimeAgo.cjs.map +1 -1
- package/dist/cjs/components/TimeAgo/TimeAgo.styles.cjs +12 -0
- package/dist/cjs/components/TimeAgo/TimeAgo.styles.cjs.map +1 -0
- package/dist/cjs/hooks/useWidth.cjs +1 -1
- package/dist/cjs/hooks/useWidth.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
- package/dist/esm/components/AppSwitcher/TitleWithTooltip.js +6 -6
- package/dist/esm/components/AppSwitcher/TitleWithTooltip.js.map +1 -1
- package/dist/esm/components/Banner/Banner.js.map +1 -1
- package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
- package/dist/esm/components/BaseInput/validations.js.map +1 -1
- package/dist/esm/components/Box/Box.js.map +1 -1
- package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
- package/dist/esm/components/BreadCrumb/utils.js.map +1 -1
- package/dist/esm/components/BulkActions/BulkActions.js +1 -5
- package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
- package/dist/esm/components/CheckBox/CheckBox.js +4 -4
- package/dist/esm/components/CheckBox/CheckBox.js.map +1 -1
- package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/dist/esm/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/esm/components/Controls/Controls.js.map +1 -1
- package/dist/esm/components/Controls/LeftControl/LeftControl.js +1 -1
- package/dist/esm/components/Controls/LeftControl/LeftControl.js.map +1 -1
- package/dist/esm/components/Controls/RightControl/RightControl.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/utils.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +3 -3
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/List/List.js.map +1 -1
- package/dist/esm/components/Dropdown/utils.js +2 -2
- package/dist/esm/components/Dropdown/utils.js.map +1 -1
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/esm/components/Forms/Adornment/Adornment.js +1 -2
- package/dist/esm/components/Forms/Adornment/Adornment.js.map +1 -1
- package/dist/esm/components/Forms/FormElement/validationStates.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/esm/components/List/useSelectableList.js +2 -5
- package/dist/esm/components/List/useSelectableList.js.map +1 -1
- package/dist/esm/components/Loading/Loading.js.map +1 -1
- package/dist/esm/components/OverflowTooltip/OverflowTooltip.js +1 -1
- package/dist/esm/components/OverflowTooltip/OverflowTooltip.js.map +1 -1
- package/dist/esm/components/Pagination/ButtonIconTooltip.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/Select.js +2 -4
- package/dist/esm/components/Pagination/Select.js.map +1 -1
- package/dist/esm/components/Pagination/utils.js.map +1 -1
- package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
- package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js +1 -1
- package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js.map +1 -1
- package/dist/esm/components/TimeAgo/TimeAgo.js +16 -8
- package/dist/esm/components/TimeAgo/TimeAgo.js.map +1 -1
- package/dist/esm/components/TimeAgo/TimeAgo.styles.js +12 -0
- package/dist/esm/components/TimeAgo/TimeAgo.styles.js.map +1 -0
- package/dist/esm/hooks/useWidth.js +1 -1
- package/dist/esm/hooks/useWidth.js.map +1 -1
- package/dist/esm/index.js +28 -28
- package/dist/types/index.d.ts +55 -36
- package/package.json +2 -2
- package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs +0 -8
- package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs.map +0 -1
- package/dist/esm/components/TimeAgo/timeAgoClasses.js +0 -8
- package/dist/esm/components/TimeAgo/timeAgoClasses.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineEditor.cjs","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled } from \"@core/hooks\";\nimport {\n ExtractNames,\n getVarValue,\n isKeypress,\n keyboardCodes,\n} from \"@core/utils\";\nimport {\n HvButtonProps,\n HvTypographyVariants,\n HvTypographyProps,\n HvInput,\n HvButton,\n HvTypography,\n} from \"@core/components\";\nimport { HvThemeTypographyProps, theme } from \"@hitachivantara/uikit-styles\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\nconst getTypographyStyles = (typography): HvThemeTypographyProps => {\n const typographyStyles = {};\n Object.keys(typography).forEach((k) => {\n typographyStyles[k] = getVarValue(typography[k]);\n });\n return typographyStyles;\n};\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = ({\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n}: HvInlineEditorProps) => {\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n\n const typographyStyles = getTypographyStyles(theme.typography[variant] || {});\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown = (event) => {\n if (isKeypress(event, keyboardCodes.Esc)) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event);\n };\n\n const handleChange = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(className, classes.root)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n <Edit\n color=\"secondary_60\"\n role=\"presentation\"\n className={cx(classes.icon, { [classes.iconVisible]: showIcon })}\n />\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["getTypographyStyles","typography","typographyStyles","Object","keys","forEach","k","getVarValue","HvInlineEditor","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","theme","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKeypress","keyboardCodes","Esc","handleChange","val","root","children","_jsx","inputRoot","inputBorderContainer","inputProps","style","height","undefined","_jsxs","HvButton","overrideIconColors","button","largeText","parseInt","onClick","HvTypography","noWrap","text","textEmpty","Edit","color","role","icon","iconVisible"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"InlineEditor.cjs","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled } from \"@core/hooks\";\nimport {\n ExtractNames,\n getVarValue,\n isKeypress,\n keyboardCodes,\n} from \"@core/utils\";\nimport {\n HvButtonProps,\n HvTypographyVariants,\n HvTypographyProps,\n HvInput,\n HvButton,\n HvTypography,\n HvInputProps,\n} from \"@core/components\";\nimport { HvThemeTypographyProps, theme } from \"@hitachivantara/uikit-styles\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\nconst getTypographyStyles = (typography): HvThemeTypographyProps => {\n const typographyStyles = {};\n Object.keys(typography).forEach((k) => {\n typographyStyles[k] = getVarValue(typography[k]);\n });\n return typographyStyles;\n};\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = ({\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n}: HvInlineEditorProps) => {\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n\n const typographyStyles = getTypographyStyles(theme.typography[variant] || {});\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n if (isKeypress(event, keyboardCodes.Esc)) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event as any);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(className, classes.root)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n <Edit\n color=\"secondary_60\"\n role=\"presentation\"\n className={cx(classes.icon, { [classes.iconVisible]: showIcon })}\n />\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["getTypographyStyles","typography","typographyStyles","Object","keys","forEach","k","getVarValue","HvInlineEditor","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","theme","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKeypress","keyboardCodes","Esc","handleChange","val","root","children","_jsx","inputRoot","inputBorderContainer","inputProps","style","height","undefined","_jsxs","HvButton","overrideIconColors","button","largeText","parseInt","onClick","HvTypography","noWrap","text","textEmpty","Edit","color","role","icon","iconVisible"],"mappings":";;;;;;;;;;;;;;AAmDA,MAAMA,sBAAsBA,CAACC,eAAuC;AAClE,QAAMC,mBAAmB,CAAA;AACzBC,SAAOC,KAAKH,UAAU,EAAEI,QAASC,CAAM,MAAA;AACrCJ,qBAAiBI,CAAC,IAAIC,MAAAA,YAAYN,WAAWK,CAAC,CAAC;AAAA,EAAA,CAChD;AACMJ,SAAAA;AACT;AAMO,MAAMM,iBAAiBA,CAAC;AAAA,EAC7BC;AAAAA,EACAC,SAASC;AAAAA,EACTC,OAAOC;AAAAA,EACPC;AAAAA,EACAC;AAAAA,EACAC,WAAWC,iBAAiBC,MAAAA;AAAAA,EAC5BC,UAAU;AAAA,EACVC,cAAc;AAAA,EACdC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACgB,MAAM;AACnB,QAAA;AAAA,IAAEhB;AAAAA,IAASiB;AAAAA,EAAAA,IAAOC,oBAAAA,WAAWjB,WAAW;AAC9C,QAAM,CAACC,OAAOiB,QAAQ,IAAIC,cAAAA,cAAcjB,WAAWC,YAAY;AAC/D,QAAM,CAACiB,UAAUC,WAAW,IAAIC,eAAS,KAAK;AAC9C,QAAM,CAACC,aAAaC,cAAc,IAAIF,eAASrB,KAAK;AACpD,QAAMwB,WAAWC,MAAAA;AAEjB,QAAMnC,mBAAmBF,oBAAoBsC,YAAAA,MAAMrC,WAAWkB,OAAO,KAAK,CAAA,CAAE;AACtE,QAAA;AAAA,IAAEoB;AAAAA,EAAerC,IAAAA;AAEvBsC,QAAAA,gBAAgB,MAAM;AACpB,UAAMC,QAAQL,SAASM;AACvB,QAAIX,YAAYU,OAAO;AACrBA,YAAME,MAAM;AACZF,YAAMG,OAAO;AAAA,IACf;AAAA,EAAA,GACC,CAACb,QAAQ,CAAC;AAEb,QAAMc,cAAcA,MAAM;AACxBb,gBAAY,IAAI;AAChBG,mBAAevB,KAAK;AAAA,EAAA;AAGtB,QAAMkC,aAAsCC,CAAU,UAAA;AACpDf,gBAAY,KAAK;AAEjB,UAAMgB,WAAWpC,SAASsB;AAC1BL,aAASmB,QAAQ;AACjB3B,qCAAS0B,OAAOC;AAAAA,EAAQ;AAG1B,QAAMC,gBAA4CF,CAAU,UAAA;AAC1D,QAAIG,oBAAWH,OAAOI,cAAcC,cAAAA,GAAG,GAAG;AACxCpB,kBAAY,KAAK;AACjBH,eAASK,WAAW;AAAA,IACtB;AACAX,2CAAYwB;AAAAA,EAAa;AAGrBM,QAAAA,eAAyCA,CAACN,OAAOO,QAAQ;AAC7DzB,aAASyB,GAAG;AACZhC,yCAAWyB,OAAOO;AAAAA,EAAG;AAGvB,wCACE,OAAA;AAAA,IAAK7C,WAAWkB,GAAGlB,WAAWC,QAAQ6C,IAAI;AAAA,IAAEC,UACzCzB,WACC0B,2BAAAA,IAACxC,gBAAc;AAAA,MACbmB;AAAAA,MACA1B,SAAS;AAAA,QACP6C,MAAM7C,QAAQgD;AAAAA,QACdjB,OAAO/B,QAAQ+B;AAAAA,QACfkB,sBAAsBjD,QAAQiD;AAAAA,MAChC;AAAA,MACAC,YAAY;AAAA,QACVC,OAAO;AAAA,UACL,GAAG3D;AAAAA,UACH4D,QAAQ7C,mBAAmBC,gBAAUqB,aAAawB;AAAAA,QACpD;AAAA,MACF;AAAA,MACAnD;AAAAA,MACAS,QAAQyB;AAAAA,MACRxB,UAAU+B;AAAAA,MACV9B,WAAW0B;AAAAA,MAAc,GACrBvB;AAAAA,IAAAA,CACL,IAEDsC,2BAAAA,KAACC,iBAAQ;AAAA,MACP9C,SAAQ;AAAA,MACR+C,oBAAoB;AAAA,MACpBzD,WAAWkB,GAAGjB,QAAQyD,QAAQ;AAAA,QAC5B,CAACzD,QAAQ0D,SAAS,GAAGC,SAAS9B,YAAsB,EAAE,KAAK;AAAA,MAAA,CAC5D;AAAA,MACD+B,SAASzB;AAAAA,MAAY,GACjBrB;AAAAA,MAAWgC,UAAA,CAEfC,2BAAAA,IAACc,yBAAY;AAAA,QACXpD;AAAAA,QACAqD,QAAM;AAAA,QACN/D,WAAWkB,GAAGjB,QAAQ+D,MAAM;AAAA,UAAE,CAAC/D,QAAQgE,SAAS,GAAG,CAAC9D;AAAAA,QAAAA,CAAO;AAAA,QAAE,GACzDa;AAAAA,QAAe+B,UAElB5C,SAASQ;AAAAA,MAAAA,CACE,GACdqC,2BAAAA,IAACkB,sBAAI;AAAA,QACHC,OAAM;AAAA,QACNC,MAAK;AAAA,QACLpE,WAAWkB,GAAGjB,QAAQoE,MAAM;AAAA,UAAE,CAACpE,QAAQqE,WAAW,GAAGhE;AAAAA,QAAAA,CAAU;AAAA,MAAA,CAChE,CAAC;AAAA,IAAA,CACM;AAAA,EAAA,CAET;AAET;;;"}
|
|
@@ -3,10 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const React = require("react");
|
|
4
4
|
function useSelectableList(defaultList = []) {
|
|
5
5
|
const [list, setList] = React.useState(defaultList);
|
|
6
|
-
const
|
|
7
|
-
React.useEffect(() => {
|
|
8
|
-
setSelection(list.filter((elem) => elem.selected));
|
|
9
|
-
}, [list]);
|
|
6
|
+
const selection = React.useMemo(() => list.filter((elem) => elem.selected), [list]);
|
|
10
7
|
return [list, setList, selection];
|
|
11
8
|
}
|
|
12
9
|
exports.default = useSelectableList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectableList.cjs","sources":["../../../../src/components/List/useSelectableList.ts"],"sourcesContent":["import { useState,
|
|
1
|
+
{"version":3,"file":"useSelectableList.cjs","sources":["../../../../src/components/List/useSelectableList.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { HvListValue } from \".\";\n\nexport default function useSelectableList(defaultList: HvListValue[] = []) {\n const [list, setList] = useState(defaultList);\n\n const selection = useMemo(() => list.filter((elem) => elem.selected), [list]);\n\n return [list, setList, selection] as const;\n}\n"],"names":["useSelectableList","defaultList","list","setList","useState","selection","useMemo","filter","elem","selected"],"mappings":";;;AAGwBA,SAAAA,kBAAkBC,cAA6B,IAAI;AACzE,QAAM,CAACC,MAAMC,OAAO,IAAIC,eAASH,WAAW;AAEtCI,QAAAA,YAAYC,MAAAA,QAAQ,MAAMJ,KAAKK,OAAQC,CAASA,SAAAA,KAAKC,QAAQ,GAAG,CAACP,IAAI,CAAC;AAErE,SAAA,CAACA,MAAMC,SAASE,SAAS;AAClC;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.cjs","sources":["../../../../src/components/Loading/Loading.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { clsx } from \"clsx\";\nimport range from \"lodash/range\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n StyledBar,\n StyledBarContainer,\n StyledLabel,\n StyledRoot,\n} from \"./Loading.styles\";\nimport loadingClasses, { HvLoadingClasses } from \"./loadingClasses\";\n\nexport interface HvLoadingProps extends HvBaseProps {\n /** Indicates if the component should be render in a small size. */\n small?: boolean;\n /** The label to be displayed. */\n label?: string | React.ReactNode;\n /** Whether the loading animation is hidden. */\n hidden?: boolean;\n /** Color applied to the bars. */\n color?: string;\n classes?: HvLoadingClasses;\n}\n\n/**\n * Loading provides feedback about a process that is taking place in the application.\n */\nexport const HvLoading = (props: HvLoadingProps) => {\n const { color, hidden, small, label, classes, className, ...others } = props;\n\n const getColor = (colorName) => {\n return color ? theme.colors[color] || color : theme.colors[colorName];\n };\n\n const size = small ? \"small\" : \"regular\";\n const colorVariant = color ? \"Color\" : \"\";\n const variant = `${size}${colorVariant}`;\n\n const inline = { backgroundColor: getColor(small ? \"secondary\" : \"brand\") };\n return (\n <StyledRoot\n hidden={!!hidden}\n className={clsx(\n className,\n loadingClasses.root,\n classes?.root,\n hidden && clsx(classes?.hidden, loadingClasses.hidden)\n )}\n {...others}\n >\n <StyledBarContainer\n className={clsx(loadingClasses.barContainer, classes?.barContainer)}\n >\n {range(0, 3).map((e) => (\n <StyledBar\n key={e}\n style={inline}\n className={clsx(\n loadingClasses.loadingBar,\n classes?.loadingBar,\n loadingClasses[variant],\n classes?.[variant]\n )}\n $variant={variant}\n />\n ))}\n </StyledBarContainer>\n {label && (\n <StyledLabel\n variant=\"caption1\"\n className={clsx(loadingClasses.label, classes?.label)}\n >\n {label}\n </StyledLabel>\n )}\n </StyledRoot>\n );\n};\n"],"names":["HvLoading","props","color","hidden","small","label","classes","className","others","getColor","colorName","theme","colors","size","colorVariant","variant","inline","backgroundColor","StyledRoot","clsx","loadingClasses","root","children","_jsx","StyledBarContainer","barContainer","range","map","e","StyledBar","style","loadingBar","$variant","StyledLabel"],"mappings":";;;;;;;;;;AA2BaA,MAAAA,YAAYA,CAACC,UAA0B;AAC5C,QAAA;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,IAAQC;AAAAA,IAAOC;AAAAA,IAAOC;AAAAA,IAASC;AAAAA,IAAW,GAAGC;AAAAA,EAAWP,IAAAA;
|
|
1
|
+
{"version":3,"file":"Loading.cjs","sources":["../../../../src/components/Loading/Loading.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { clsx } from \"clsx\";\nimport range from \"lodash/range\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n StyledBar,\n StyledBarContainer,\n StyledLabel,\n StyledRoot,\n} from \"./Loading.styles\";\nimport loadingClasses, { HvLoadingClasses } from \"./loadingClasses\";\n\nexport interface HvLoadingProps extends HvBaseProps {\n /** Indicates if the component should be render in a small size. */\n small?: boolean;\n /** The label to be displayed. */\n label?: string | React.ReactNode;\n /** Whether the loading animation is hidden. */\n hidden?: boolean;\n /** Color applied to the bars. */\n color?: string;\n classes?: HvLoadingClasses;\n}\n\n/**\n * Loading provides feedback about a process that is taking place in the application.\n */\nexport const HvLoading = (props: HvLoadingProps) => {\n const { color, hidden, small, label, classes, className, ...others } = props;\n\n const getColor = (colorName: string) => {\n return color ? theme.colors[color] || color : theme.colors[colorName];\n };\n\n const size = small ? \"small\" : \"regular\";\n const colorVariant = color ? \"Color\" : \"\";\n const variant = `${size}${colorVariant}`;\n\n const inline = { backgroundColor: getColor(small ? \"secondary\" : \"brand\") };\n return (\n <StyledRoot\n hidden={!!hidden}\n className={clsx(\n className,\n loadingClasses.root,\n classes?.root,\n hidden && clsx(classes?.hidden, loadingClasses.hidden)\n )}\n {...others}\n >\n <StyledBarContainer\n className={clsx(loadingClasses.barContainer, classes?.barContainer)}\n >\n {range(0, 3).map((e) => (\n <StyledBar\n key={e}\n style={inline}\n className={clsx(\n loadingClasses.loadingBar,\n classes?.loadingBar,\n loadingClasses[variant],\n classes?.[variant]\n )}\n $variant={variant}\n />\n ))}\n </StyledBarContainer>\n {label && (\n <StyledLabel\n variant=\"caption1\"\n className={clsx(loadingClasses.label, classes?.label)}\n >\n {label}\n </StyledLabel>\n )}\n </StyledRoot>\n );\n};\n"],"names":["HvLoading","props","color","hidden","small","label","classes","className","others","getColor","colorName","theme","colors","size","colorVariant","variant","inline","backgroundColor","StyledRoot","clsx","loadingClasses","root","children","_jsx","StyledBarContainer","barContainer","range","map","e","StyledBar","style","loadingBar","$variant","StyledLabel"],"mappings":";;;;;;;;;;AA2BaA,MAAAA,YAAYA,CAACC,UAA0B;AAC5C,QAAA;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,IAAQC;AAAAA,IAAOC;AAAAA,IAAOC;AAAAA,IAASC;AAAAA,IAAW,GAAGC;AAAAA,EAAWP,IAAAA;AAEjEQ,QAAAA,WAAWA,CAACC,cAAsB;AAC/BR,WAAAA,QAAQS,kBAAMC,OAAOV,KAAK,KAAKA,QAAQS,YAAAA,MAAMC,OAAOF,SAAS;AAAA,EAAA;AAGhEG,QAAAA,OAAOT,QAAQ,UAAU;AACzBU,QAAAA,eAAeZ,QAAQ,UAAU;AACjCa,QAAAA,UAAW,GAAEF,OAAOC;AAE1B,QAAME,SAAS;AAAA,IAAEC,iBAAiBR,SAASL,QAAQ,cAAc,OAAO;AAAA,EAAA;AACxE,yCACGc,eAAAA,YAAU;AAAA,IACTf,QAAQ,CAAC,CAACA;AAAAA,IACVI,WAAWY,KAAAA,KACTZ,WACAa,eAAAA,QAAeC,MACff,mCAASe,MACTlB,UAAUgB,KAAKb,KAAAA,mCAASH,QAAQiB,eAAAA,QAAejB,MAAM,CACvD;AAAA,IAAE,GACEK;AAAAA,IAAMc,UAAA,CAEVC,2BAAAA,IAACC,mCAAkB;AAAA,MACjBjB,WAAWY,KAAAA,KAAKC,eAAAA,QAAeK,cAAcnB,mCAASmB,YAAY;AAAA,MAAEH,UAEnEI,eAAAA,QAAM,GAAG,CAAC,EAAEC,IAAKC,CAAAA,qCACfC,0BAAS;AAAA,QAERC,OAAOd;AAAAA,QACPT,WAAWY,KACTC,KAAAA,uBAAeW,YACfzB,mCAASyB,YACTX,eAAAA,QAAeL,OAAO,GACtBT,mCAAUS,QACZ;AAAA,QACAiB,UAAUjB;AAAAA,MAAQ,GARba,CASN,CACF;AAAA,IAAA,CACiB,GACnBvB,SACCkB,2BAAAA,IAACU,4BAAW;AAAA,MACVlB,SAAQ;AAAA,MACRR,WAAWY,KAAAA,KAAKC,eAAAA,QAAef,OAAOC,mCAASD,KAAK;AAAA,MAAEiB,UAErDjB;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACS;AAEhB;;"}
|
|
@@ -8,7 +8,7 @@ const overflowTooltipClasses = require("./overflowTooltipClasses.cjs");
|
|
|
8
8
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
9
9
|
const Tooltip = require("../Tooltip/Tooltip.cjs");
|
|
10
10
|
const Typography = require("../Typography/Typography.cjs");
|
|
11
|
-
const isParagraph = (children) => /\s/.test(children);
|
|
11
|
+
const isParagraph = (children = "") => /\s/.test(children);
|
|
12
12
|
const HvOverflowTooltip = ({
|
|
13
13
|
id,
|
|
14
14
|
classes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverflowTooltip.cjs","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useMemo } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\nimport { HvBaseProps } from \"@core/types/index\";\nimport { HvTooltip, HvTooltipProps, HvTypography } from \"@core/components\";\nimport { StyledDataContainer } from \"./OverflowTooltip.styles\";\nimport overflowTooltipClasses, {\n HvOverflowTooltipClasses,\n} from \"./overflowTooltipClasses\";\n\nexport interface HvOverflowTooltipProps extends HvBaseProps {\n /** The node that will be rendered inside the tooltip. */\n data: React.ReactNode;\n /** If true, the tooltip is shown. */\n open?: boolean;\n /** If `true` the overflow tooltip will always use the paragraph overflow style. */\n paragraphOverflow?: boolean;\n /** Tooltip placement. */\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n /** Extra properties to add to the tooltip. */\n tooltipsProps?: Partial<HvTooltipProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvOverflowTooltipClasses;\n}\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nexport const HvOverflowTooltip = ({\n id,\n classes,\n className,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}: HvOverflowTooltipProps) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data?.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <StyledDataContainer\n ref={ref}\n className={clsx(\n className,\n !isParag &&\n clsx(overflowTooltipClasses.tooltipAnchor, classes?.tooltipAnchor),\n isParag &&\n clsx(\n overflowTooltipClasses.tooltipAnchorParagraph,\n classes?.tooltipAnchorParagraph\n )\n )}\n $isParag={isParag}\n >\n {data}\n </StyledDataContainer>\n ),\n [\n className,\n classes?.tooltipAnchor,\n classes?.tooltipAnchorParagraph,\n data,\n isParag,\n ref,\n ]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography\n className={clsx(\n overflowTooltipClasses.tooltipData,\n classes?.tooltipData\n )}\n variant=\"body\"\n >\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n"],"names":["isParagraph","children","test","HvOverflowTooltip","id","classes","className","data","open","paragraphOverflow","placement","tooltipsProps","width","ref","useResizeDetector","refreshMode","refreshOptions","trailing","handleHeight","scrollWidth","current","isOverflowing","isParag","useMemo","toString","content","_jsx","StyledDataContainer","clsx","overflowTooltipClasses","tooltipAnchor","tooltipAnchorParagraph","$isParag","HvTooltip","disableHoverListener","title","HvTypography","tooltipData","variant"],"mappings":";;;;;;;;;;AAqCA,MAAMA,
|
|
1
|
+
{"version":3,"file":"OverflowTooltip.cjs","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useMemo } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\nimport { HvBaseProps } from \"@core/types/index\";\nimport { HvTooltip, HvTooltipProps, HvTypography } from \"@core/components\";\nimport { StyledDataContainer } from \"./OverflowTooltip.styles\";\nimport overflowTooltipClasses, {\n HvOverflowTooltipClasses,\n} from \"./overflowTooltipClasses\";\n\nexport interface HvOverflowTooltipProps extends HvBaseProps {\n /** The node that will be rendered inside the tooltip. */\n data: React.ReactNode;\n /** If true, the tooltip is shown. */\n open?: boolean;\n /** If `true` the overflow tooltip will always use the paragraph overflow style. */\n paragraphOverflow?: boolean;\n /** Tooltip placement. */\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n /** Extra properties to add to the tooltip. */\n tooltipsProps?: Partial<HvTooltipProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvOverflowTooltipClasses;\n}\n\nconst isParagraph = (children = \"\") => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nexport const HvOverflowTooltip = ({\n id,\n classes,\n className,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}: HvOverflowTooltipProps) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data?.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <StyledDataContainer\n ref={ref}\n className={clsx(\n className,\n !isParag &&\n clsx(overflowTooltipClasses.tooltipAnchor, classes?.tooltipAnchor),\n isParag &&\n clsx(\n overflowTooltipClasses.tooltipAnchorParagraph,\n classes?.tooltipAnchorParagraph\n )\n )}\n $isParag={isParag}\n >\n {data}\n </StyledDataContainer>\n ),\n [\n className,\n classes?.tooltipAnchor,\n classes?.tooltipAnchorParagraph,\n data,\n isParag,\n ref,\n ]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography\n className={clsx(\n overflowTooltipClasses.tooltipData,\n classes?.tooltipData\n )}\n variant=\"body\"\n >\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n"],"names":["isParagraph","children","test","HvOverflowTooltip","id","classes","className","data","open","paragraphOverflow","placement","tooltipsProps","width","ref","useResizeDetector","refreshMode","refreshOptions","trailing","handleHeight","scrollWidth","current","isOverflowing","isParag","useMemo","toString","content","_jsx","StyledDataContainer","clsx","overflowTooltipClasses","tooltipAnchor","tooltipAnchorParagraph","$isParag","HvTooltip","disableHoverListener","title","HvTypography","tooltipData","variant"],"mappings":";;;;;;;;;;AAqCA,MAAMA,cAAcA,CAACC,WAAW,OAAO,KAAKC,KAAKD,QAAQ;AAKlD,MAAME,oBAAoBA,CAAC;AAAA,EAChCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY;AAAA,EACZC;AACsB,MAAM;;AACtB,QAAA;AAAA,IAAEC,QAAQ;AAAA,IAAGC;AAAAA,MAAQC,sCAAkB;AAAA,IAC3CC,aAAa;AAAA,IACbC,gBAAgB;AAAA,MACdC,UAAU;AAAA,IACZ;AAAA,IACAC,cAAc;AAAA,EAAA,CACf;AACKC,QAAAA,gBAAcN,SAAIO,YAAJP,mBAAaM,gBAAe;AAE1CE,QAAAA,gBAAgBF,cAAcP,SAAS;AAE7C,QAAMU,UAAUC,MAAAA,QACd,MAAMd,qBAAqBT,YAAYO,6BAAMiB,UAAU,GACvD,CAACjB,MAAME,iBAAiB,CAC1B;AAEA,QAAMgB,UAAUF,MAAAA,QACd,MACEG,2BAAAA,IAACC,uBAAAA,qBAAmB;AAAA,IAClBd;AAAAA,IACAP,WAAWsB,KACTtB,KAAAA,WACA,CAACgB,WACCM,UAAKC,uBAAuBC,QAAAA,eAAezB,mCAASyB,aAAa,GACnER,WACEM,UACEC,uBAAAA,QAAuBE,wBACvB1B,mCAAS0B,sBACX,CACJ;AAAA,IACAC,UAAUV;AAAAA,IAAQrB,UAEjBM;AAAAA,EACkB,CAAA,GAEvB,CACED,WACAD,mCAASyB,eACTzB,mCAAS0B,wBACTxB,MACAe,SACAT,GAAG,CAEP;AAEOL,SAAAA,QAAQa,gBACbK,2BAAAA,IAACO,mBAAS;AAAA,IACR7B;AAAAA,IACA8B,sBAAsB,CAACb;AAAAA,IACvBb;AAAAA,IACAE;AAAAA,IACAyB,sCACGC,yBAAY;AAAA,MACX9B,WAAWsB,KAAAA,KACTC,uBAAAA,QAAuBQ,aACvBhC,mCAASgC,WACX;AAAA,MACAC,SAAQ;AAAA,MAAMrC,UAEbM;AAAAA,IAAAA,CACW;AAAA,IACf,GACGI;AAAAA,IAAaV,UAEhBwB;AAAAA,EACQ,CAAA,IAEXA;AAEJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonIconTooltip.cjs","sources":["../../../../src/components/Pagination/ButtonIconTooltip.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ButtonIconTooltip.cjs","sources":["../../../../src/components/Pagination/ButtonIconTooltip.tsx"],"sourcesContent":["import {\n HvButton,\n HvButtonProps,\n HvTooltip,\n HvTypography,\n} from \"@core/components\";\nimport { ReactNode } from \"react\";\n\ninterface ButtonIconTooltipProps extends HvButtonProps {\n tooltip: ReactNode;\n children: ReactNode;\n}\n\nconst ButtonIconTooltip = ({\n tooltip,\n children,\n ...buttonProps\n}: ButtonIconTooltipProps) => {\n return (\n <HvTooltip title={<HvTypography>{tooltip}</HvTypography>}>\n <div>\n <HvButton icon variant=\"secondaryGhost\" {...buttonProps}>\n {children}\n </HvButton>\n </div>\n </HvTooltip>\n );\n};\nexport default ButtonIconTooltip;\n"],"names":["ButtonIconTooltip","tooltip","children","buttonProps","HvTooltip","title","HvTypography","HvButton","icon","variant"],"mappings":";;;;;;AAaA,MAAMA,oBAAoBA,CAAC;AAAA,EACzBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACmB,MAAM;AAC5B,wCACGC,QAAAA,WAAS;AAAA,IAACC,sCAAQC,yBAAY;AAAA,MAAAJ,UAAED;AAAAA,IAAAA,CAAsB;AAAA,IAAEC,yCACvD,OAAA;AAAA,MAAAA,yCACGK,iBAAQ;AAAA,QAACC,MAAI;AAAA,QAACC,SAAQ;AAAA,QAAgB,GAAKN;AAAAA,QAAWD;AAAAA,MAAAA,CAE7C;AAAA,IAAA,CACP;AAAA,EAAA,CACI;AAEf;AACA,MAAA,sBAAeF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.cjs","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { Hidden } from \"@mui/material\";\nimport { HvInput, HvInputProps, HvTypography } from \"@core/components\";\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useLabels } from \"@core/hooks\";\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvPaginationClasses>;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst { Enter } = keyboardCodes;\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes: classesProp = {},\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKeypress(evt, Enter) && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","Enter","keyboardCodes","defaultPageSizeOptions","HvPagination","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKeypress","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.cjs","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { Hidden } from \"@mui/material\";\nimport { HvInput, HvInputProps, HvTypography } from \"@core/components\";\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useLabels } from \"@core/hooks\";\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvPaginationClasses>;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst { Enter } = keyboardCodes;\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes: classesProp = {},\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKeypress(evt, Enter) && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_: any, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","Enter","keyboardCodes","defaultPageSizeOptions","HvPagination","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKeypress","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":"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"}
|
|
@@ -8,11 +8,9 @@ const BaseDropdown = require("../BaseDropdown/BaseDropdown.cjs");
|
|
|
8
8
|
const Panel = require("../Panel/Panel.cjs");
|
|
9
9
|
const SelectionList = require("../SelectionList/SelectionList.cjs");
|
|
10
10
|
const Option = ({
|
|
11
|
-
|
|
12
|
-
...others
|
|
11
|
+
...props
|
|
13
12
|
}) => /* @__PURE__ */ jsxRuntime.jsx(ListItem.HvListItem, {
|
|
14
|
-
...
|
|
15
|
-
children
|
|
13
|
+
...props
|
|
16
14
|
});
|
|
17
15
|
const HvSelect = ({
|
|
18
16
|
className,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.cjs","sources":["../../../../src/components/Pagination/Select.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"Select.cjs","sources":["../../../../src/components/Pagination/Select.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {\n HvBaseDropdown,\n HvSelectionList,\n HvListItem,\n HvPanel,\n HvSelectionListProps,\n HvBaseDropdownProps,\n HvListItemProps,\n} from \"..\";\nimport { useClasses } from \"./Select.styles\";\n\nexport const Option = ({ ...props }: Partial<HvListItemProps>) => (\n <HvListItem {...props} />\n);\n\nconst HvSelect = ({\n className,\n classes: classesProp = {},\n onChange,\n disabled,\n value,\n children,\n ...others\n}: any) => {\n const { classes } = useClasses(classesProp);\n const [open, setOpen] = useState(false);\n\n const handleSelect: HvSelectionListProps[\"onChange\"] = (evt, val) => {\n onChange?.(evt, val);\n setOpen(false);\n };\n\n const handleToggle: HvBaseDropdownProps[\"onToggle\"] = (_evt, s) => {\n setOpen(s);\n };\n\n const setFocusToContent: HvBaseDropdownProps[\"onContainerCreation\"] = (\n containerRef\n ) => {\n const listItems =\n containerRef != null ? [...containerRef.getElementsByTagName(\"li\")] : [];\n listItems.every((listItem) => {\n if (listItem.tabIndex >= 0) {\n listItem.focus();\n return false;\n }\n return true;\n });\n };\n\n return (\n <HvBaseDropdown\n className={className}\n classes={{\n selection: classes.selection,\n header: classes.header,\n headerOpen: classes.headerOpen,\n }}\n expanded={open}\n onToggle={handleToggle}\n onContainerCreation={setFocusToContent}\n placeholder={value}\n disabled={disabled}\n variableWidth\n {...others}\n >\n <HvPanel>\n <HvSelectionList value={value} onChange={handleSelect}>\n {children}\n </HvSelectionList>\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n\nexport default HvSelect;\n"],"names":["Option","props","HvListItem","HvSelect","className","classes","classesProp","onChange","disabled","value","children","others","useClasses","open","setOpen","useState","handleSelect","evt","val","handleToggle","_evt","s","setFocusToContent","containerRef","listItems","getElementsByTagName","every","listItem","tabIndex","focus","HvBaseDropdown","selection","header","headerOpen","expanded","onToggle","onContainerCreation","placeholder","variableWidth","HvPanel","HvSelectionList"],"mappings":";;;;;;;;;AAYO,MAAMA,SAASA,CAAC;AAAA,EAAE,GAAGC;AAAgC,qCACzDC,SAAAA,YAAU;AAAA,EAAA,GAAKD;AAAK,CAAG;AAG1B,MAAME,WAAWA,CAAC;AAAA,EAChBC;AAAAA,EACAC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACA,MAAM;AACH,QAAA;AAAA,IAAEN;AAAAA,EAAAA,IAAYO,cAAAA,WAAWN,WAAW;AAC1C,QAAM,CAACO,MAAMC,OAAO,IAAIC,eAAS,KAAK;AAEhCC,QAAAA,eAAiDA,CAACC,KAAKC,QAAQ;AACnEX,yCAAWU,KAAKC;AAChBJ,YAAQ,KAAK;AAAA,EAAA;AAGTK,QAAAA,eAAgDA,CAACC,MAAMC,MAAM;AACjEP,YAAQO,CAAC;AAAA,EAAA;AAGX,QAAMC,oBACJC,CACG,iBAAA;AACGC,UAAAA,YACJD,gBAAgB,OAAO,CAAC,GAAGA,aAAaE,qBAAqB,IAAI,CAAC,IAAI;AACxED,cAAUE,MAAOC,CAAa,aAAA;AACxBA,UAAAA,SAASC,YAAY,GAAG;AAC1BD,iBAASE,MAAM;AACR,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,EAAA;AAGH,wCACGC,aAAAA,gBAAc;AAAA,IACb1B;AAAAA,IACAC,SAAS;AAAA,MACP0B,WAAW1B,QAAQ0B;AAAAA,MACnBC,QAAQ3B,QAAQ2B;AAAAA,MAChBC,YAAY5B,QAAQ4B;AAAAA,IACtB;AAAA,IACAC,UAAUrB;AAAAA,IACVsB,UAAUhB;AAAAA,IACViB,qBAAqBd;AAAAA,IACrBe,aAAa5B;AAAAA,IACbD;AAAAA,IACA8B,eAAa;AAAA,IAAA,GACT3B;AAAAA,IAAMD,yCAET6B,eAAO;AAAA,MAAA7B,yCACL8B,+BAAe;AAAA,QAAC/B;AAAAA,QAAcF,UAAUS;AAAAA,QAAaN;AAAAA,MAAAA,CAErC;AAAA,IAAA,CACV;AAAA,EAAA,CACK;AAEpB;AAEA,MAAA,aAAeP;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../src/components/Pagination/utils.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const setColor = (condition: boolean): string | undefined =>\n condition ? \"secondary_60\" : undefined;\n\nexport const getSafePage = (\n inPage: number,\n page: number,\n pages: number\n): number =>\n Number.isNaN(inPage) ? page : Math.min(Math.max(inPage, 0), pages - 1);\n\nexport const usePageInput = (initialPage: number) => {\n const [page, setPage] = useState<number>(initialPage + 1);\n\n const handleChange = useCallback(\n (evt, newPage: number) => setPage(newPage),\n []\n );\n\n return [page, handleChange] as const;\n};\n"],"names":["setColor","condition","undefined","getSafePage","inPage","page","pages","Number","isNaN","Math","min","max","usePageInput","initialPage","setPage","useState","handleChange","useCallback","evt","newPage"],"mappings":";;;AAEO,MAAMA,WAAWA,CAACC,cACvBA,YAAY,iBAAiBC;AAExB,MAAMC,cAAcA,CACzBC,QACAC,MACAC,UAEAC,OAAOC,MAAMJ,MAAM,IAAIC,OAAOI,KAAKC,IAAID,KAAKE,IAAIP,QAAQ,CAAC,GAAGE,QAAQ,CAAC;AAE1DM,MAAAA,eAAeA,CAACC,gBAAwB;AACnD,QAAM,CAACR,MAAMS,OAAO,IAAIC,MAAAA,SAAiBF,cAAc,CAAC;AAElDG,QAAAA,eAAeC,kBACnB,CAACC,
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../src/components/Pagination/utils.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const setColor = (condition: boolean): string | undefined =>\n condition ? \"secondary_60\" : undefined;\n\nexport const getSafePage = (\n inPage: number,\n page: number,\n pages: number\n): number =>\n Number.isNaN(inPage) ? page : Math.min(Math.max(inPage, 0), pages - 1);\n\nexport const usePageInput = (initialPage: number) => {\n const [page, setPage] = useState<number>(initialPage + 1);\n\n const handleChange = useCallback(\n (evt: any, newPage: number) => setPage(newPage),\n []\n );\n\n return [page, handleChange] as const;\n};\n"],"names":["setColor","condition","undefined","getSafePage","inPage","page","pages","Number","isNaN","Math","min","max","usePageInput","initialPage","setPage","useState","handleChange","useCallback","evt","newPage"],"mappings":";;;AAEO,MAAMA,WAAWA,CAACC,cACvBA,YAAY,iBAAiBC;AAExB,MAAMC,cAAcA,CACzBC,QACAC,MACAC,UAEAC,OAAOC,MAAMJ,MAAM,IAAIC,OAAOI,KAAKC,IAAID,KAAKE,IAAIP,QAAQ,CAAC,GAAGE,QAAQ,CAAC;AAE1DM,MAAAA,eAAeA,CAACC,gBAAwB;AACnD,QAAM,CAACR,MAAMS,OAAO,IAAIC,MAAAA,SAAiBF,cAAc,CAAC;AAElDG,QAAAA,eAAeC,kBACnB,CAACC,KAAUC,YAAoBL,QAAQK,OAAO,GAC9C,CAAA,CACF;AAEO,SAAA,CAACd,MAAMW,YAAY;AAC5B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionList.cjs","sources":["../../../../src/components/SelectionList/SelectionList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useEffect } from \"react\";\nimport { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n multiSelectionEventHandler,\n} from \"@core/utils\";\nimport {\n StyledListContainer,\n StyledFormElement,\n StyledLabel,\n StyledInfoMessage,\n StyledError,\n} from \"./SelectionList.styles\";\nimport { HvFormStatus } from \"../Forms/FormElement\";\nimport selectionListClasses, {\n HvSelectionListClasses,\n} from \"./selectionListClasses\";\n\nexport interface HvSelectionListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\"> {\n /** The form element name. */\n name?: string;\n /**\n * The value of the form element. It must be represented in the child list items.\n *\n * Can either be a single value (when multiple = false) or an\n * array of values (when multiple = true).\n *\n * When defined the selection list state becomes controlled.\n */\n value?: any | any[];\n /** When uncontrolled, defines the initial value. */\n defaultValue?: any | any[];\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /** Provide additional descriptive text for the form element. */\n description?: React.ReactNode;\n /** Indicates that the form element is disabled. If `true` the state is propagated to the children list items. */\n disabled?: boolean;\n /** Indicates that the form element is not editable. */\n readOnly?: boolean;\n /** Indicates that user input is required on the form element. */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: string;\n /** Indicates that the user may select more than one item from the current selectable list items. */\n multiple?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** Indicates whether the list orientation is horizontal or vertical. Defaults to vertical. */\n orientation?: \"vertical\" | \"horizontal\";\n /** The callback fired when the value changes. */\n onChange?: (event: React.MouseEvent, value: any) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSelectionListClasses;\n}\n\nconst getValueFromSelectedChildren = (children, multiple) => {\n const selectedValues = React.Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.selected !== undefined;\n const childIsSelected =\n child && childIsControlled\n ? child.props?.selected\n : child.props?.defaultSelected;\n\n return childIsSelected ? child?.props.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return multiple ? selectedValues : selectedValues?.[0];\n};\n\n/**\n * Allows the user to select one or more items from a list of choices.\n *\n * Although it supports multi-selection, DS recommends the use of a selection list\n * when it’s clear that the user can only select just one option from the range provided.\n */\nexport const HvSelectionList = ({\n id,\n classes,\n className,\n children,\n name,\n value: valueProp,\n defaultValue,\n required = false,\n readOnly = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n orientation = \"vertical\",\n multiple = false,\n singleSelectionToggle = false,\n ...others\n}: HvSelectionListProps) => {\n const elementId = useUniqueId(id, \"hvselectionlist\");\n\n const [value, setValue] = useControlled(\n valueProp,\n defaultValue !== undefined\n ? defaultValue\n : // when uncontrolled and no default value is given,\n // extract the initial selected values from the children own state\n () => getValueFromSelectedChildren(children, multiple)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const [allValues, selectedState] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n\n React.Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = multiple\n ? value.indexOf(childValue) !== -1\n : value === childValue;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n });\n\n return [childValues, childSelectedState];\n }, [children, multiple, value]);\n\n const selectionAnchor = useRef(undefined);\n\n const listContainer = useRef<any>(null);\n\n const { ArrowUp, ArrowDown } = keyboardCodes;\n\n useEffect(() => {\n const handleMeta = (event) => {\n const tempArray: any[] = [];\n if (\n (isKeypress(event, ArrowUp) &&\n event.shiftKey &&\n listContainer.current.contains(event.target)) ||\n (isKeypress(event, ArrowDown) &&\n event.shiftKey &&\n listContainer.current.contains(event.target))\n ) {\n selectedState.forEach((isSelected, i) => {\n if (i === event.target.value - 1) {\n if (!isSelected) {\n tempArray.push(allValues[i]);\n }\n } else if (isSelected) {\n tempArray.push(allValues[i]);\n }\n });\n setValue(tempArray);\n }\n };\n window.addEventListener(\"keyup\", handleMeta);\n\n return () => {\n window.removeEventListener(\"keyup\", handleMeta);\n };\n }, [allValues, selectedState, setValue, ArrowUp, ArrowDown]);\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnClick: (e: React.MouseEvent) => void,\n evt: React.MouseEvent\n ) => {\n childOnClick?.(evt);\n\n if (!readOnly && !disabled) {\n let newValue: any;\n if (multiple) {\n newValue = multiSelectionEventHandler(\n evt,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n undefined\n );\n } else {\n newValue =\n singleSelectionToggle && selectedState[index]\n ? null\n : allValues[index];\n }\n\n onChange?.(evt, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n }\n },\n [\n allValues,\n disabled,\n multiple,\n onChange,\n readOnly,\n required,\n selectedState,\n setValidationState,\n setValue,\n singleSelectionToggle,\n selectionAnchor,\n ]\n );\n\n const modifiedChildren = useMemo(() => {\n return React.Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return React.cloneElement(child, {\n role: \"option\",\n selected: childIsSelected,\n onClick: (evt) =>\n onChildChangeInterceptor(i, child?.props?.onClick, evt),\n disabled: disabled || child?.props?.disabled,\n });\n });\n }, [children, disabled, onChildChangeInterceptor, selectedState]);\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n\n const listId = (label && setId(elementId, \"listbox\")) || \"\";\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, selectionListClasses.root, classes?.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(selectionListClasses.label, classes?.label)}\n />\n )}\n {description && (\n <StyledInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n selectionListClasses.description,\n classes?.description\n )}\n >\n {description}\n </StyledInfoMessage>\n )}\n\n <StyledListContainer\n id={listId}\n interactive\n condensed\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n aria-errormessage={\n validationState === \"invalid\" ? errorMessageId : undefined\n }\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n className={clsx(\n classes?.listbox,\n selectionListClasses.listbox,\n orientation === \"vertical\" &&\n clsx(selectionListClasses.vertical, classes?.vertical),\n orientation === \"horizontal\" &&\n clsx(selectionListClasses.horizontal, classes?.horizontal),\n validationState === \"invalid\" &&\n clsx(selectionListClasses.invalid, classes?.invalid)\n )}\n ref={listContainer}\n $orientation={orientation}\n $validationState={validationState}\n {...others}\n >\n {modifiedChildren}\n </StyledListContainer>\n\n {canShowError && (\n <StyledError\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(selectionListClasses.error, classes?.error)}\n >\n {validationMessage}\n </StyledError>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["getValueFromSelectedChildren","children","multiple","selectedValues","React","Children","toArray","map","child","childIsControlled","props","selected","undefined","childIsSelected","defaultSelected","value","filter","v","HvSelectionList","id","classes","className","name","valueProp","defaultValue","required","readOnly","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","orientation","singleSelectionToggle","others","elementId","useUniqueId","setValue","useControlled","validationState","setValidationState","validationMessage","allValues","selectedState","useMemo","childValues","childSelectedState","forEach","i","childValue","indexOf","selectionAnchor","useRef","listContainer","ArrowUp","ArrowDown","keyboardCodes","useEffect","handleMeta","event","tempArray","isKeypress","shiftKey","current","contains","target","isSelected","push","addEventListener","removeEventListener","onChildChangeInterceptor","useCallback","index","childOnClick","evt","newValue","multiSelectionEventHandler","length","modifiedChildren","cloneElement","role","onClick","canShowError","errorMessageId","setId","listId","StyledFormElement","clsx","selectionListClasses","root","_jsx","StyledLabel","StyledInfoMessage","StyledListContainer","interactive","condensed","join","trim","listbox","vertical","horizontal","invalid","ref","$orientation","$validationState","StyledError","disableBorder","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectionList.cjs","sources":["../../../../src/components/SelectionList/SelectionList.tsx"],"sourcesContent":["import React, {\n useCallback,\n useMemo,\n useRef,\n useEffect,\n ReactNode,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n multiSelectionEventHandler,\n} from \"@core/utils\";\nimport {\n StyledListContainer,\n StyledFormElement,\n StyledLabel,\n StyledInfoMessage,\n StyledError,\n} from \"./SelectionList.styles\";\nimport { HvFormStatus } from \"../Forms/FormElement\";\nimport selectionListClasses, {\n HvSelectionListClasses,\n} from \"./selectionListClasses\";\n\nexport interface HvSelectionListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\"> {\n /** The form element name. */\n name?: string;\n /**\n * The value of the form element. It must be represented in the child list items.\n *\n * Can either be a single value (when multiple = false) or an\n * array of values (when multiple = true).\n *\n * When defined the selection list state becomes controlled.\n */\n value?: any | any[];\n /** When uncontrolled, defines the initial value. */\n defaultValue?: any | any[];\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /** Provide additional descriptive text for the form element. */\n description?: React.ReactNode;\n /** Indicates that the form element is disabled. If `true` the state is propagated to the children list items. */\n disabled?: boolean;\n /** Indicates that the form element is not editable. */\n readOnly?: boolean;\n /** Indicates that user input is required on the form element. */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: string;\n /** Indicates that the user may select more than one item from the current selectable list items. */\n multiple?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** Indicates whether the list orientation is horizontal or vertical. Defaults to vertical. */\n orientation?: \"vertical\" | \"horizontal\";\n /** The callback fired when the value changes. */\n onChange?: (event: React.MouseEvent, value: any) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSelectionListClasses;\n}\n\nconst getValueFromSelectedChildren = (\n children: ReactNode,\n multiple: boolean\n) => {\n const selectedValues = React.Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.selected !== undefined;\n const childIsSelected =\n child && childIsControlled\n ? child.props?.selected\n : child.props?.defaultSelected;\n\n return childIsSelected ? child?.props.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return multiple ? selectedValues : selectedValues?.[0];\n};\n\n/**\n * Allows the user to select one or more items from a list of choices.\n *\n * Although it supports multi-selection, DS recommends the use of a selection list\n * when it’s clear that the user can only select just one option from the range provided.\n */\nexport const HvSelectionList = ({\n id,\n classes,\n className,\n children,\n name,\n value: valueProp,\n defaultValue,\n required = false,\n readOnly = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n orientation = \"vertical\",\n multiple = false,\n singleSelectionToggle = false,\n ...others\n}: HvSelectionListProps) => {\n const elementId = useUniqueId(id, \"hvselectionlist\");\n\n const [value, setValue] = useControlled(\n valueProp,\n defaultValue !== undefined\n ? defaultValue\n : // when uncontrolled and no default value is given,\n // extract the initial selected values from the children own state\n () => getValueFromSelectedChildren(children, multiple)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const [allValues, selectedState] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n\n React.Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = multiple\n ? value.indexOf(childValue) !== -1\n : value === childValue;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n });\n\n return [childValues, childSelectedState];\n }, [children, multiple, value]);\n\n const selectionAnchor = useRef(undefined);\n\n const listContainer = useRef<any>(null);\n\n const { ArrowUp, ArrowDown } = keyboardCodes;\n\n useEffect(() => {\n const handleMeta = (event: KeyboardEvent) => {\n const tempArray: any[] = [];\n if (\n (isKeypress(event, ArrowUp) &&\n event.shiftKey &&\n listContainer.current.contains(event.target)) ||\n (isKeypress(event, ArrowDown) &&\n event.shiftKey &&\n listContainer.current.contains(event.target))\n ) {\n selectedState.forEach((isSelected, i) => {\n if (i === (event.target as any).value - 1) {\n if (!isSelected) {\n tempArray.push(allValues[i]);\n }\n } else if (isSelected) {\n tempArray.push(allValues[i]);\n }\n });\n setValue(tempArray);\n }\n };\n window.addEventListener(\"keyup\", handleMeta);\n\n return () => {\n window.removeEventListener(\"keyup\", handleMeta);\n };\n }, [allValues, selectedState, setValue, ArrowUp, ArrowDown]);\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnClick: (e: React.MouseEvent) => void,\n evt: React.MouseEvent\n ) => {\n childOnClick?.(evt);\n\n if (!readOnly && !disabled) {\n let newValue: any;\n if (multiple) {\n newValue = multiSelectionEventHandler(\n evt,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n undefined\n );\n } else {\n newValue =\n singleSelectionToggle && selectedState[index]\n ? null\n : allValues[index];\n }\n\n onChange?.(evt, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n }\n },\n [\n allValues,\n disabled,\n multiple,\n onChange,\n readOnly,\n required,\n selectedState,\n setValidationState,\n setValue,\n singleSelectionToggle,\n selectionAnchor,\n ]\n );\n\n const modifiedChildren = useMemo(() => {\n return React.Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return React.cloneElement(child, {\n role: \"option\",\n selected: childIsSelected,\n onClick: (evt) =>\n onChildChangeInterceptor(i, child?.props?.onClick, evt),\n disabled: disabled || child?.props?.disabled,\n });\n });\n }, [children, disabled, onChildChangeInterceptor, selectedState]);\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n\n const listId = (label && setId(elementId, \"listbox\")) || \"\";\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, selectionListClasses.root, classes?.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(selectionListClasses.label, classes?.label)}\n />\n )}\n {description && (\n <StyledInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n selectionListClasses.description,\n classes?.description\n )}\n >\n {description}\n </StyledInfoMessage>\n )}\n\n <StyledListContainer\n id={listId}\n interactive\n condensed\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n aria-errormessage={\n validationState === \"invalid\" ? errorMessageId : undefined\n }\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n className={clsx(\n classes?.listbox,\n selectionListClasses.listbox,\n orientation === \"vertical\" &&\n clsx(selectionListClasses.vertical, classes?.vertical),\n orientation === \"horizontal\" &&\n clsx(selectionListClasses.horizontal, classes?.horizontal),\n validationState === \"invalid\" &&\n clsx(selectionListClasses.invalid, classes?.invalid)\n )}\n ref={listContainer}\n $orientation={orientation}\n $validationState={validationState}\n {...others}\n >\n {modifiedChildren}\n </StyledListContainer>\n\n {canShowError && (\n <StyledError\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(selectionListClasses.error, classes?.error)}\n >\n {validationMessage}\n </StyledError>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["getValueFromSelectedChildren","children","multiple","selectedValues","React","Children","toArray","map","child","childIsControlled","props","selected","undefined","childIsSelected","defaultSelected","value","filter","v","HvSelectionList","id","classes","className","name","valueProp","defaultValue","required","readOnly","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","orientation","singleSelectionToggle","others","elementId","useUniqueId","setValue","useControlled","validationState","setValidationState","validationMessage","allValues","selectedState","useMemo","childValues","childSelectedState","forEach","i","childValue","indexOf","selectionAnchor","useRef","listContainer","ArrowUp","ArrowDown","keyboardCodes","useEffect","handleMeta","event","tempArray","isKeypress","shiftKey","current","contains","target","isSelected","push","addEventListener","removeEventListener","onChildChangeInterceptor","useCallback","index","childOnClick","evt","newValue","multiSelectionEventHandler","length","modifiedChildren","cloneElement","role","onClick","canShowError","errorMessageId","setId","listId","StyledFormElement","clsx","selectionListClasses","root","_jsx","StyledLabel","StyledInfoMessage","StyledListContainer","interactive","condensed","join","trim","listbox","vertical","horizontal","invalid","ref","$orientation","$validationState","StyledError","disableBorder","error"],"mappings":"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"}
|
|
@@ -50,6 +50,6 @@ const StyledContainer = /* @__PURE__ */ _styled__default.default("div", process.
|
|
|
50
50
|
};
|
|
51
51
|
return acc;
|
|
52
52
|
}, {})
|
|
53
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
53
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvU2ltcGxlR3JpZC9TaW1wbGVHcmlkLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkIrQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1NpbXBsZUdyaWQvU2ltcGxlR3JpZC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBTcGFjaW5nLCBCcmVha3BvaW50IH0gZnJvbSBcIi5cIjtcblxuZnVuY3Rpb24gc2l6ZShwcm9wczogeyBzaXplOiBhbnk7IHNpemVzOiBhbnkgfSkge1xuICBpZiAodHlwZW9mIHByb3BzLnNpemUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gcHJvcHMuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiBwcm9wcy5zaXplc1twcm9wcy5zaXplXSB8fCBwcm9wcy5zaXplIHx8IHByb3BzLnNpemVzLm1kO1xufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50czogQnJlYWtwb2ludFtdKSB7XG4gIGlmIChicmVha3BvaW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYnJlYWtwb2ludHM7XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0eSA9IFwibWF4V2lkdGhcIiBpbiBicmVha3BvaW50c1swXSA/IFwibWF4V2lkdGhcIiA6IFwibWluV2lkdGhcIjtcbiAgY29uc3Qgc29ydGVkID0gWy4uLmJyZWFrcG9pbnRzXS5zb3J0KFxuICAgIChhLCBiKSA9PlxuICAgICAgc2l6ZSh7IHNpemU6IGJbcHJvcGVydHldLCBzaXplczogdGhlbWUuYnJlYWtwb2ludHMgfSkgLVxuICAgICAgc2l6ZSh7IHNpemU6IGFbcHJvcGVydHldLCBzaXplczogdGhlbWUuYnJlYWtwb2ludHMgfSlcbiAgKTtcblxuICByZXR1cm4gcHJvcGVydHkgPT09IFwibWluV2lkdGhcIiA/IHNvcnRlZC5yZXZlcnNlKCkgOiBzb3J0ZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoXG4gICh7XG4gICAgYnJlYWtwb2ludHMsXG4gICAgc3BhY2luZyxcbiAgICBjb2xzLFxuICB9OiB7XG4gICAgYnJlYWtwb2ludHM/OiBCcmVha3BvaW50W107XG4gICAgc3BhY2luZzogU3BhY2luZztcbiAgICBjb2xzPzogbnVtYmVyO1xuICB9KSA9PiAoe1xuICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgZGlzcGxheTogXCJncmlkXCIsXG4gICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogYHJlcGVhdCgke2NvbHN9LCBtaW5tYXgoMCwgMWZyKSlgLFxuICAgIGdhcDogdGhlbWUuc3BhY2Vbc3BhY2luZ10sXG4gICAgLi4uKGJyZWFrcG9pbnRzICYmXG4gICAgICBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50cykucmVkdWNlKChhY2MsIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBcIm1heFdpZHRoXCIgaW4gYnJlYWtwb2ludCA/IFwibWF4LXdpZHRoXCIgOiBcIm1pbi13aWR0aFwiO1xuICAgICAgICBjb25zdCBicmVha3BvaW50U2l6ZSA9IHNpemUoe1xuICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICBwcm9wZXJ0eSA9PT0gXCJtYXgtd2lkdGhcIlxuICAgICAgICAgICAgICA/IGJyZWFrcG9pbnQubWF4V2lkdGhcbiAgICAgICAgICAgICAgOiBicmVha3BvaW50Lm1pbldpZHRoLFxuICAgICAgICAgIHNpemVzOiB0aGVtZS5icmVha3BvaW50cyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYWNjW1xuICAgICAgICAgIGBAbWVkaWEgKCR7cHJvcGVydHl9OiAke1xuICAgICAgICAgICAgYnJlYWtwb2ludFNpemUgKyAocHJvcGVydHkgPT09IFwibWF4LXdpZHRoXCIgPyAwIDogMSlcbiAgICAgICAgICB9cHgpYFxuICAgICAgICBdID0ge1xuICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHticmVha3BvaW50LmNvbHN9LCBtaW5tYXgoMCwgMWZyKSlgLFxuICAgICAgICAgIGdhcDogdGhlbWUuc3BhY2Vbc3BhY2luZ10sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KSksXG4gIH0pXG4pO1xuIl19 */");
|
|
54
54
|
exports.StyledContainer = StyledContainer;
|
|
55
55
|
//# sourceMappingURL=SimpleGrid.styles.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleGrid.styles.cjs","sources":["../../../../src/components/SimpleGrid/SimpleGrid.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Spacing, Breakpoint } from \".\";\n\nfunction size(props) {\n if (typeof props.size === \"number\") {\n return props.size;\n }\n\n return props.sizes[props.size] || props.size || props.sizes.md;\n}\n\nfunction getSortedBreakpoints(breakpoints) {\n if (breakpoints.length === 0) {\n return breakpoints;\n }\n\n const property = \"maxWidth\" in breakpoints[0] ? \"maxWidth\" : \"minWidth\";\n const sorted = [...breakpoints].sort(\n (a, b) =>\n size({ size: b[property], sizes: theme.breakpoints }) -\n size({ size: a[property], sizes: theme.breakpoints })\n );\n\n return property === \"minWidth\" ? sorted.reverse() : sorted;\n}\n\nexport const StyledContainer = styled(\"div\")(\n ({\n breakpoints,\n spacing,\n cols,\n }: {\n breakpoints?: Breakpoint[];\n spacing: Spacing;\n cols?: number;\n }) => ({\n boxSizing: \"border-box\",\n display: \"grid\",\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n ...(breakpoints &&\n getSortedBreakpoints(breakpoints).reduce((acc, breakpoint) => {\n const property = \"maxWidth\" in breakpoint ? \"max-width\" : \"min-width\";\n const breakpointSize = size({\n size:\n property === \"max-width\"\n ? breakpoint.maxWidth\n : breakpoint.minWidth,\n sizes: theme.breakpoints,\n });\n\n acc[\n `@media (${property}: ${\n breakpointSize + (property === \"max-width\" ? 0 : 1)\n }px)`\n ] = {\n gridTemplateColumns: `repeat(${breakpoint.cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n };\n\n return acc;\n }, {})),\n })\n);\n"],"names":["size","props","sizes","md","getSortedBreakpoints","breakpoints","length","property","sorted","sort","a","b","theme","reverse","StyledContainer","_styled","process","env","NODE_ENV","target","label","spacing","cols","boxSizing","display","gridTemplateColumns","gap","space","reduce","acc","breakpoint","breakpointSize","maxWidth","minWidth"],"mappings":";;;;;;AAIA,SAASA,KAAKC,
|
|
1
|
+
{"version":3,"file":"SimpleGrid.styles.cjs","sources":["../../../../src/components/SimpleGrid/SimpleGrid.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Spacing, Breakpoint } from \".\";\n\nfunction size(props: { size: any; sizes: any }) {\n if (typeof props.size === \"number\") {\n return props.size;\n }\n\n return props.sizes[props.size] || props.size || props.sizes.md;\n}\n\nfunction getSortedBreakpoints(breakpoints: Breakpoint[]) {\n if (breakpoints.length === 0) {\n return breakpoints;\n }\n\n const property = \"maxWidth\" in breakpoints[0] ? \"maxWidth\" : \"minWidth\";\n const sorted = [...breakpoints].sort(\n (a, b) =>\n size({ size: b[property], sizes: theme.breakpoints }) -\n size({ size: a[property], sizes: theme.breakpoints })\n );\n\n return property === \"minWidth\" ? sorted.reverse() : sorted;\n}\n\nexport const StyledContainer = styled(\"div\")(\n ({\n breakpoints,\n spacing,\n cols,\n }: {\n breakpoints?: Breakpoint[];\n spacing: Spacing;\n cols?: number;\n }) => ({\n boxSizing: \"border-box\",\n display: \"grid\",\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n ...(breakpoints &&\n getSortedBreakpoints(breakpoints).reduce((acc, breakpoint) => {\n const property = \"maxWidth\" in breakpoint ? \"max-width\" : \"min-width\";\n const breakpointSize = size({\n size:\n property === \"max-width\"\n ? breakpoint.maxWidth\n : breakpoint.minWidth,\n sizes: theme.breakpoints,\n });\n\n acc[\n `@media (${property}: ${\n breakpointSize + (property === \"max-width\" ? 0 : 1)\n }px)`\n ] = {\n gridTemplateColumns: `repeat(${breakpoint.cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n };\n\n return acc;\n }, {})),\n })\n);\n"],"names":["size","props","sizes","md","getSortedBreakpoints","breakpoints","length","property","sorted","sort","a","b","theme","reverse","StyledContainer","_styled","process","env","NODE_ENV","target","label","spacing","cols","boxSizing","display","gridTemplateColumns","gap","space","reduce","acc","breakpoint","breakpointSize","maxWidth","minWidth"],"mappings":";;;;;;AAIA,SAASA,KAAKC,OAAkC;AAC1C,MAAA,OAAOA,MAAMD,SAAS,UAAU;AAClC,WAAOC,MAAMD;AAAAA,EACf;AAEOC,SAAAA,MAAMC,MAAMD,MAAMD,IAAI,KAAKC,MAAMD,QAAQC,MAAMC,MAAMC;AAC9D;AAEA,SAASC,qBAAqBC,aAA2B;AACnDA,MAAAA,YAAYC,WAAW,GAAG;AACrBD,WAAAA;AAAAA,EACT;AAEA,QAAME,WAAW,cAAcF,YAAY,CAAC,IAAI,aAAa;AACvDG,QAAAA,SAAS,CAAC,GAAGH,WAAW,EAAEI,KAC9B,CAACC,GAAGC,MACFX,KAAK;AAAA,IAAEA,MAAMW,EAAEJ,QAAQ;AAAA,IAAGL,OAAOU,YAAMP,MAAAA;AAAAA,EAAa,CAAA,IACpDL,KAAK;AAAA,IAAEA,MAAMU,EAAEH,QAAQ;AAAA,IAAGL,OAAOU,YAAMP,MAAAA;AAAAA,EAAa,CAAA,CACxD;AAEA,SAAOE,aAAa,aAAaC,OAAOK,QAAAA,IAAYL;AACtD;AAEO,MAAMM,kBAAyBC,iCAAA,QAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EACzC,CAAC;AAAA,EACCf;AAAAA,EACAgB;AAAAA,EACAC;AAKF,OAAO;AAAA,EACLC,WAAW;AAAA,EACXC,SAAS;AAAA,EACTC,qBAAsB,UAASH;AAAAA,EAC/BI,KAAKd,YAAAA,MAAMe,MAAMN,OAAO;AAAA,EACxB,GAAIhB,eACFD,qBAAqBC,WAAW,EAAEuB,OAAO,CAACC,KAAKC,eAAe;AACtDvB,UAAAA,WAAW,cAAcuB,aAAa,cAAc;AAC1D,UAAMC,iBAAiB/B,KAAK;AAAA,MAC1BA,MACEO,aAAa,cACTuB,WAAWE,WACXF,WAAWG;AAAAA,MACjB/B,OAAOU,YAAMP,MAAAA;AAAAA,IAAAA,CACd;AAEDwB,QACG,WAAUtB,aACTwB,kBAAkBxB,aAAa,cAAc,IAAI,OAC9C,IACH;AAAA,MACFkB,qBAAsB,UAASK,WAAWR;AAAAA,MAC1CI,KAAKd,YAAAA,MAAMe,MAAMN,OAAO;AAAA,IAAA;AAGnBQ,WAAAA;AAAAA,EACT,GAAG,EAAE;AACT,IAAEb,QAAAC,IAAAC,88FACJ;;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const clsx = require("clsx");
|
|
4
3
|
const isEmpty = require("lodash/isEmpty");
|
|
5
|
-
const
|
|
4
|
+
const TimeAgo_styles = require("./TimeAgo.styles.cjs");
|
|
6
5
|
const useTimeAgo = require("./useTimeAgo.cjs");
|
|
7
6
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
8
7
|
const Typography = require("../Typography/Typography.cjs");
|
|
9
8
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
10
9
|
const isEmpty__default = /* @__PURE__ */ _interopDefault(isEmpty);
|
|
11
10
|
const HvTimeAgo = ({
|
|
12
|
-
classes,
|
|
11
|
+
classes: classesProp,
|
|
12
|
+
className,
|
|
13
13
|
timestamp,
|
|
14
14
|
locale: localeProp = "en",
|
|
15
15
|
component: Component = Typography.HvTypography,
|
|
@@ -19,19 +19,26 @@ const HvTimeAgo = ({
|
|
|
19
19
|
justText = false,
|
|
20
20
|
...others
|
|
21
21
|
}) => {
|
|
22
|
+
const {
|
|
23
|
+
classes,
|
|
24
|
+
cx
|
|
25
|
+
} = TimeAgo_styles.useClasses(classesProp);
|
|
22
26
|
const locale = isEmpty__default.default(localeProp) ? "en" : localeProp;
|
|
23
27
|
const timeAgo = useTimeAgo.default(timestamp, {
|
|
24
28
|
locale,
|
|
25
29
|
disableRefresh,
|
|
26
30
|
showSeconds
|
|
27
31
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
if (justText && timestamp)
|
|
33
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
34
|
+
children: timeAgo
|
|
35
|
+
});
|
|
36
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Component, {
|
|
37
|
+
className: cx(classes.root, className),
|
|
32
38
|
...others,
|
|
33
39
|
children: !timestamp ? emptyElement : timeAgo
|
|
34
40
|
});
|
|
35
41
|
};
|
|
42
|
+
exports.timeAgoClasses = TimeAgo_styles.staticClasses;
|
|
36
43
|
exports.HvTimeAgo = HvTimeAgo;
|
|
37
44
|
//# sourceMappingURL=TimeAgo.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeAgo.cjs","sources":["../../../../src/components/TimeAgo/TimeAgo.tsx"],"sourcesContent":["import { HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport
|
|
1
|
+
{"version":3,"file":"TimeAgo.cjs","sources":["../../../../src/components/TimeAgo/TimeAgo.tsx"],"sourcesContent":["import { HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { ExtractNames } from \"@core/utils\";\nimport { staticClasses, useClasses } from \"./TimeAgo.styles\";\nimport useTimeAgo from \"./useTimeAgo\";\n\nexport { staticClasses as timeAgoClasses };\n\nexport type HvTimeAgoClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvTimeAgoProps extends HvBaseProps<HTMLElement, \"children\"> {\n /**\n * The timestamp to format, in seconds or milliseconds.\n * Defaults to `emptyElement` if value is null or 0\n */\n timestamp?: number;\n /**\n * The locale to be used. Should be on of the dayjs supported locales and explicitly imported\n * @see https://day.js.org/docs/en/i18n/i18n\n */\n locale?: string;\n /**\n * The component used for the root node. Either a string to use a HTML element or a component.\n * Defaults to `HvTypography`.\n */\n component?: React.ElementType<React.HTMLAttributes<HTMLElement>>;\n /**\n * The element to render when the timestamp is null or 0\n * Defaults to `—` (Em Dash)\n */\n emptyElement?: React.ReactNode;\n /**\n * Disables periodic date refreshes\n */\n disableRefresh?: boolean;\n /**\n * Whether to show seconds in the rendered time\n */\n showSeconds?: boolean;\n /**\n * Whether the component should render just the string\n * Consider using `useTimeAgo` instead\n */\n justText?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTimeAgoClasses;\n}\n\n/**\n * The HvTimeAgo component implements the Design System relative time format guidelines.\n */\nexport const HvTimeAgo = ({\n classes: classesProp,\n className,\n timestamp,\n locale: localeProp = \"en\",\n component: Component = HvTypography,\n emptyElement = \"—\",\n disableRefresh = false,\n showSeconds = false,\n justText = false,\n ...others\n}: HvTimeAgoProps) => {\n const { classes, cx } = useClasses(classesProp);\n const locale = isEmpty(localeProp) ? \"en\" : localeProp;\n const timeAgo = useTimeAgo(timestamp, {\n locale,\n disableRefresh,\n showSeconds,\n });\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (justText && timestamp) return <>{timeAgo}</>;\n\n return (\n <Component className={cx(classes.root, className)} {...others}>\n {!timestamp ? emptyElement : timeAgo}\n </Component>\n );\n};\n"],"names":["HvTimeAgo","classes","classesProp","className","timestamp","locale","localeProp","component","Component","HvTypography","emptyElement","disableRefresh","showSeconds","justText","others","cx","useClasses","isEmpty","timeAgo","useTimeAgo","_Fragment","children","root"],"mappings":";;;;;;;;;AAoDO,MAAMA,YAAYA,CAAC;AAAA,EACxBC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,QAAQC,aAAa;AAAA,EACrBC,WAAWC,YAAYC,WAAAA;AAAAA,EACvBC,eAAe;AAAA,EACfC,iBAAiB;AAAA,EACjBC,cAAc;AAAA,EACdC,WAAW;AAAA,EACX,GAAGC;AACW,MAAM;AACd,QAAA;AAAA,IAAEb;AAAAA,IAASc;AAAAA,EAAAA,IAAOC,eAAAA,WAAWd,WAAW;AAC9C,QAAMG,SAASY,iBAAAA,QAAQX,UAAU,IAAI,OAAOA;AACtCY,QAAAA,UAAUC,mBAAWf,WAAW;AAAA,IACpCC;AAAAA,IACAM;AAAAA,IACAC;AAAAA,EAAAA,CACD;AAGD,MAAIC,YAAYT;AAAW,0CAAOgB,WAAAA,UAAA;AAAA,MAAAC,UAAGH;AAAAA,IAAAA,CAAU;AAE/C,wCACGV,WAAS;AAAA,IAACL,WAAWY,GAAGd,QAAQqB,MAAMnB,SAAS;AAAA,IAAE,GAAKW;AAAAA,IAAMO,UAC1D,CAACjB,YAAYM,eAAeQ;AAAAA,EAAAA,CACpB;AAEf;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const classes = require("../../utils/classes.cjs");
|
|
4
|
+
const {
|
|
5
|
+
staticClasses,
|
|
6
|
+
useClasses
|
|
7
|
+
} = classes.createClasses("HvTimeAgo", {
|
|
8
|
+
root: {}
|
|
9
|
+
});
|
|
10
|
+
exports.staticClasses = staticClasses;
|
|
11
|
+
exports.useClasses = useClasses;
|
|
12
|
+
//# sourceMappingURL=TimeAgo.styles.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeAgo.styles.cjs","sources":["../../../../src/components/TimeAgo/TimeAgo.styles.ts"],"sourcesContent":["import { createClasses } from \"@core/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTimeAgo\", {\n root: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","root"],"mappings":";;;AAEa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,aAAa;AAAA,EACtEC,MAAM,CAAC;AACT,CAAC;;;"}
|
|
@@ -8,7 +8,7 @@ const useWidth = () => {
|
|
|
8
8
|
return keys.reduce((output, key) => {
|
|
9
9
|
const matches = material.useMediaQuery(muiTheme.breakpoints.up(key));
|
|
10
10
|
return !output && matches ? key : output;
|
|
11
|
-
},
|
|
11
|
+
}, null) || "xs";
|
|
12
12
|
};
|
|
13
13
|
exports.useWidth = useWidth;
|
|
14
14
|
//# sourceMappingURL=useWidth.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWidth.cjs","sources":["../../../src/hooks/useWidth.ts"],"sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Breakpoint, useMediaQuery, useTheme } from \"@mui/material\";\n\nexport const useWidth = () => {\n const muiTheme = useTheme();\n const keys = Object.keys(theme.breakpoints.values).reverse();\n return (\n keys.reduce((output, key) => {\n const matches = useMediaQuery(muiTheme.breakpoints.up(key
|
|
1
|
+
{"version":3,"file":"useWidth.cjs","sources":["../../../src/hooks/useWidth.ts"],"sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Breakpoint, useMediaQuery, useTheme } from \"@mui/material\";\n\nexport const useWidth = () => {\n const muiTheme = useTheme();\n const keys = Object.keys(theme.breakpoints.values).reverse() as Breakpoint[];\n\n return (\n keys.reduce<Breakpoint | null>((output, key) => {\n const matches = useMediaQuery(muiTheme.breakpoints.up(key));\n\n return !output && matches ? key : output;\n }, null) || \"xs\"\n );\n};\n"],"names":["useWidth","muiTheme","useTheme","keys","Object","theme","breakpoints","values","reverse","reduce","output","key","matches","useMediaQuery","up"],"mappings":";;;;AAIO,MAAMA,WAAWA,MAAM;AAC5B,QAAMC,WAAWC,SAAAA;AACjB,QAAMC,OAAOC,OAAOD,KAAKE,YAAAA,MAAMC,YAAYC,MAAM,EAAEC;AAEnD,SACEL,KAAKM,OAA0B,CAACC,QAAQC,QAAQ;AAC9C,UAAMC,UAAUC,SAAAA,cAAcZ,SAASK,YAAYQ,GAAGH,GAAG,CAAC;AAEnD,WAAA,CAACD,UAAUE,UAAUD,MAAMD;AAAAA,EAAAA,GACjC,IAAI,KAAK;AAEhB;;"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -245,7 +245,7 @@ const ScrollToHorizontal = require("./components/ScrollTo/Horizontal/ScrollToHor
|
|
|
245
245
|
const useScrollTo = require("./components/ScrollTo/useScrollTo.cjs");
|
|
246
246
|
const InlineEditor_styles = require("./components/InlineEditor/InlineEditor.styles.cjs");
|
|
247
247
|
const InlineEditor = require("./components/InlineEditor/InlineEditor.cjs");
|
|
248
|
-
const
|
|
248
|
+
const TimeAgo_styles = require("./components/TimeAgo/TimeAgo.styles.cjs");
|
|
249
249
|
const TimeAgo = require("./components/TimeAgo/TimeAgo.cjs");
|
|
250
250
|
const QueryBuilder_styles = require("./components/QueryBuilder/QueryBuilder.styles.cjs");
|
|
251
251
|
const QueryBuilder = require("./components/QueryBuilder/QueryBuilder.cjs");
|
|
@@ -593,7 +593,7 @@ exports.HvScrollToHorizontal = ScrollToHorizontal.HvScrollToHorizontal;
|
|
|
593
593
|
exports.useScrollTo = useScrollTo.useScrollTo;
|
|
594
594
|
exports.inlineEditorClasses = InlineEditor_styles.staticClasses;
|
|
595
595
|
exports.HvInlineEditor = InlineEditor.HvInlineEditor;
|
|
596
|
-
exports.timeAgoClasses =
|
|
596
|
+
exports.timeAgoClasses = TimeAgo_styles.staticClasses;
|
|
597
597
|
exports.HvTimeAgo = TimeAgo.HvTimeAgo;
|
|
598
598
|
exports.queryBuilderClasses = QueryBuilder_styles.staticClasses;
|
|
599
599
|
exports.HvQueryBuilder = QueryBuilder.HvQueryBuilder;
|