@activecollab/components 2.0.185 → 2.0.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/components/Display/DisplayHours.js +4 -4
  2. package/dist/cjs/components/Display/DisplayHours.js.map +1 -1
  3. package/dist/cjs/components/Display/types.js.map +1 -1
  4. package/dist/cjs/components/Nav/Item/Styles.js +9 -2
  5. package/dist/cjs/components/Nav/Item/Styles.js.map +1 -1
  6. package/dist/cjs/components/Nav/Nav.js +3 -3
  7. package/dist/cjs/components/Nav/Nav.js.map +1 -1
  8. package/dist/cjs/components/Nav/Styles.js +7 -1
  9. package/dist/cjs/components/Nav/Styles.js.map +1 -1
  10. package/dist/cjs/utils/timeUtils.js +6 -6
  11. package/dist/cjs/utils/timeUtils.js.map +1 -1
  12. package/dist/cjs/utils/timeUtils.test.js +2 -2
  13. package/dist/cjs/utils/timeUtils.test.js.map +1 -1
  14. package/dist/esm/components/Display/DisplayHours.js +2 -2
  15. package/dist/esm/components/Display/DisplayHours.js.map +1 -1
  16. package/dist/esm/components/Display/types.d.ts +1 -1
  17. package/dist/esm/components/Display/types.d.ts.map +1 -1
  18. package/dist/esm/components/Display/types.js.map +1 -1
  19. package/dist/esm/components/Nav/Item/Styles.d.ts.map +1 -1
  20. package/dist/esm/components/Nav/Item/Styles.js +9 -2
  21. package/dist/esm/components/Nav/Item/Styles.js.map +1 -1
  22. package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
  23. package/dist/esm/components/Nav/Nav.js +3 -3
  24. package/dist/esm/components/Nav/Nav.js.map +1 -1
  25. package/dist/esm/components/Nav/Styles.d.ts +3 -1
  26. package/dist/esm/components/Nav/Styles.d.ts.map +1 -1
  27. package/dist/esm/components/Nav/Styles.js +5 -1
  28. package/dist/esm/components/Nav/Styles.js.map +1 -1
  29. package/dist/esm/utils/timeUtils.d.ts +2 -2
  30. package/dist/esm/utils/timeUtils.d.ts.map +1 -1
  31. package/dist/esm/utils/timeUtils.js +8 -8
  32. package/dist/esm/utils/timeUtils.js.map +1 -1
  33. package/dist/esm/utils/timeUtils.test.js +4 -4
  34. package/dist/esm/utils/timeUtils.test.js.map +1 -1
  35. package/dist/index.js +29 -16
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.min.js +1 -1
  38. package/dist/index.min.js.map +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Nav.js","names":["React","useState","useRef","useCallback","useMemo","Children","cloneElement","useEffect","useLayoutEffect","classNames","StyledNavListItemMore","StyledNav","StyledNavAsSelect","StyledNavList","useResizeObserver","ExpandSingle","Select","Nav","_ref","_dimensions$width","_childDimensions$widt","children","alignment","onSelect","className","role","targetId","active","setActive","moreOpened","setMoreOpened","type","setType","setMoreOpen","setMoreClose","navItemNames","toArray","map","item","_item$props","props","name","allOptions","index","id","navRef","wrapRef","dimensions","childDimensions","parentWidth","width","childWidth","childrenWidth","setChildrenWidth","onClick","e","metaKey","ctrlKey","target","currentTarget","dataset","disabled","Number","onMoreOptionClick","forEach","child","navAsSelect","createElement","expanded","fill","current","$align","$role","ref","element","Array","from","keys","indexOf","selected","disabledInternalSort","options","mode","forceCloseMenu","disableSearch","keepSameOptionsOrder","onChange","onSelectOpen","onSelectClose","displayName"],"sources":["../../../../src/components/Nav/Nav.tsx"],"sourcesContent":["import React, {\n ReactElement,\n FC,\n ReactNode,\n useState,\n useRef,\n useCallback,\n useMemo,\n Children,\n cloneElement,\n useEffect,\n useLayoutEffect,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport { ItemProps } from \"./Item/Item\";\nimport { StyledNavListItemMore } from \"./Item/Styles\";\nimport { StyledNav, StyledNavAsSelect, StyledNavList } from \"./Styles\";\nimport { useResizeObserver } from \"../../utils\";\nimport { ExpandSingle } from \"../Expanders/ExpandSingle\";\nimport { Select } from \"../Select/Select\";\n\ntype NavType = \"inline\" | \"dropdown\";\nexport type NavAlignType = \"left\" | \"center\" | \"right\";\nexport type NavRoleType = \"bold\" | \"light\";\n\nexport interface INavProps {\n children?: ReactElement<ItemProps>[];\n /** Function for changing active navs. */\n onSelect?: (index: number) => void;\n /** Aligment of nav component. */\n alignment?: NavAlignType;\n /** CSS classes. */\n className?: string;\n /** Role of nav component. */\n role?: NavRoleType;\n /** Target id */\n targetId?: string;\n}\n\nexport const Nav: FC<INavProps> = ({\n children,\n alignment = \"left\",\n onSelect,\n className,\n role = \"bold\",\n targetId,\n}) => {\n const [active, setActive] = useState(0);\n const [moreOpened, setMoreOpened] = useState(false);\n const [type, setType] = useState<NavType>(\"inline\");\n\n const setMoreOpen = useCallback(() => setMoreOpened(true), []);\n const setMoreClose = useCallback(() => setMoreOpened(false), []);\n\n const navItemNames = useMemo(() => {\n return children\n ? (Children.toArray(children) as ReactElement<ItemProps>[]).map(\n (item) => item?.props?.name\n )\n : [];\n }, [children]);\n\n const allOptions = useMemo(() => {\n return navItemNames?.map((name, index) => {\n return { id: index, name: name };\n });\n }, [navItemNames]);\n\n const navRef = useRef<HTMLUListElement | null>(null);\n const wrapRef = useRef<HTMLElement | null>(null);\n const dimensions = useResizeObserver(wrapRef);\n const childDimensions = useResizeObserver(navRef);\n\n const parentWidth = dimensions?.width ?? 0;\n const childWidth = childDimensions?.width ?? 0;\n\n const [childrenWidth, setChildrenWidth] = useState(childWidth);\n\n useLayoutEffect(() => {\n if (type === \"inline\") setChildrenWidth(childWidth);\n }, [childWidth, type]);\n\n const onClick = useCallback(\n (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (e.metaKey || e.ctrlKey) {\n return;\n }\n if (\n e.target &&\n e.currentTarget.dataset.index &&\n !e.currentTarget.dataset.disabled\n ) {\n const index = Number(e.currentTarget.dataset.index);\n setActive(index);\n if (onSelect) {\n onSelect(index);\n }\n }\n },\n [onSelect]\n );\n\n const onMoreOptionClick = useCallback(\n (id) => {\n setActive(id);\n if (onSelect) {\n onSelect(id);\n }\n },\n [onSelect]\n );\n\n useMemo(() => {\n Children.forEach(\n children as ReactElement[],\n (child: ReactElement, index) => {\n if (child && child.props.active) {\n setActive(index);\n }\n }\n );\n }, [children]);\n\n const navAsSelect = useMemo(() => {\n return (\n <StyledNavAsSelect id={targetId}>\n <span>{navItemNames[active]}</span>\n <ExpandSingle expanded={moreOpened} fill=\"currentColor\" />\n </StyledNavAsSelect>\n );\n }, [active, moreOpened, navItemNames, targetId]);\n\n useEffect(() => {\n if (!navRef.current || !wrapRef.current) return;\n\n if (childrenWidth >= parentWidth) {\n setType(\"dropdown\");\n } else {\n setType(\"inline\");\n }\n }, [childrenWidth, parentWidth]);\n\n if (!children) return;\n\n return (\n <StyledNav\n className={classNames(\"c-nav\", className)}\n $align={alignment}\n $role={role}\n ref={wrapRef}\n >\n <StyledNavList ref={navRef}>\n {type === \"inline\" &&\n Children.toArray(children).map((child: ReactNode, index: number) => {\n const element = child as ReactElement;\n return cloneElement(element, {\n active: index === active,\n role,\n onClick,\n \"data-index\": index,\n \"data-disabled\": element.props.disabled,\n });\n })}\n {type === \"dropdown\" ? (\n <StyledNavListItemMore\n name=\"More\"\n active={Array.from(navItemNames.keys()).indexOf(active) === -1}\n role={role}\n >\n <Select\n selected={active}\n target={navAsSelect}\n disabledInternalSort\n options={allOptions}\n type=\"single\"\n mode=\"normal\"\n forceCloseMenu\n disableSearch\n keepSameOptionsOrder\n onChange={onMoreOptionClick}\n onSelectOpen={setMoreOpen}\n onSelectClose={setMoreClose}\n />\n </StyledNavListItemMore>\n ) : null}\n </StyledNavList>\n </StyledNav>\n );\n};\n\nNav.displayName = \"Nav\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Nav.js","names":["React","useState","useRef","useCallback","useMemo","Children","cloneElement","useEffect","useLayoutEffect","classNames","StyledNavListItemMore","StyledNav","StyledNavAsSelect","StyledNavList","useResizeObserver","ExpandSingle","Select","Nav","_ref","_dimensions$width","_childDimensions$widt","children","alignment","onSelect","className","role","targetId","active","setActive","moreOpened","setMoreOpened","type","setType","setMoreOpen","setMoreClose","navItemNames","toArray","map","item","_item$props","props","name","allOptions","index","id","navRef","wrapRef","dimensions","childDimensions","parentWidth","width","childWidth","childrenWidth","setChildrenWidth","onClick","e","metaKey","ctrlKey","target","currentTarget","dataset","disabled","Number","onMoreOptionClick","forEach","child","navAsSelect","createElement","$active","expanded","fill","current","$align","$role","ref","element","selected","disabledInternalSort","options","mode","forceCloseMenu","disableSearch","keepSameOptionsOrder","onChange","onSelectOpen","onSelectClose","displayName"],"sources":["../../../../src/components/Nav/Nav.tsx"],"sourcesContent":["import React, {\n ReactElement,\n FC,\n ReactNode,\n useState,\n useRef,\n useCallback,\n useMemo,\n Children,\n cloneElement,\n useEffect,\n useLayoutEffect,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport { ItemProps } from \"./Item/Item\";\nimport { StyledNavListItemMore } from \"./Item/Styles\";\nimport { StyledNav, StyledNavAsSelect, StyledNavList } from \"./Styles\";\nimport { useResizeObserver } from \"../../utils\";\nimport { ExpandSingle } from \"../Expanders/ExpandSingle\";\nimport { Select } from \"../Select/Select\";\n\ntype NavType = \"inline\" | \"dropdown\";\nexport type NavAlignType = \"left\" | \"center\" | \"right\";\nexport type NavRoleType = \"bold\" | \"light\";\n\nexport interface INavProps {\n children?: ReactElement<ItemProps>[];\n /** Function for changing active navs. */\n onSelect?: (index: number) => void;\n /** Aligment of nav component. */\n alignment?: NavAlignType;\n /** CSS classes. */\n className?: string;\n /** Role of nav component. */\n role?: NavRoleType;\n /** Target id */\n targetId?: string;\n}\n\nexport const Nav: FC<INavProps> = ({\n children,\n alignment = \"left\",\n onSelect,\n className,\n role = \"bold\",\n targetId,\n}) => {\n const [active, setActive] = useState(0);\n const [moreOpened, setMoreOpened] = useState(false);\n const [type, setType] = useState<NavType>(\"inline\");\n\n const setMoreOpen = useCallback(() => setMoreOpened(true), []);\n const setMoreClose = useCallback(() => setMoreOpened(false), []);\n\n const navItemNames = useMemo(() => {\n return children\n ? (Children.toArray(children) as ReactElement<ItemProps>[]).map(\n (item) => item?.props?.name\n )\n : [];\n }, [children]);\n\n const allOptions = useMemo(() => {\n return navItemNames?.map((name, index) => {\n return { id: index, name: name };\n });\n }, [navItemNames]);\n\n const navRef = useRef<HTMLUListElement | null>(null);\n const wrapRef = useRef<HTMLElement | null>(null);\n const dimensions = useResizeObserver(wrapRef);\n const childDimensions = useResizeObserver(navRef);\n\n const parentWidth = dimensions?.width ?? 0;\n const childWidth = childDimensions?.width ?? 0;\n\n const [childrenWidth, setChildrenWidth] = useState(childWidth);\n\n useLayoutEffect(() => {\n if (type === \"inline\") setChildrenWidth(childWidth);\n }, [childWidth, type]);\n\n const onClick = useCallback(\n (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (e.metaKey || e.ctrlKey) {\n return;\n }\n if (\n e.target &&\n e.currentTarget.dataset.index &&\n !e.currentTarget.dataset.disabled\n ) {\n const index = Number(e.currentTarget.dataset.index);\n setActive(index);\n if (onSelect) {\n onSelect(index);\n }\n }\n },\n [onSelect]\n );\n\n const onMoreOptionClick = useCallback(\n (id) => {\n setActive(id);\n if (onSelect) {\n onSelect(id);\n }\n },\n [onSelect]\n );\n\n useMemo(() => {\n Children.forEach(\n children as ReactElement[],\n (child: ReactElement, index) => {\n if (child && child.props.active) {\n setActive(index);\n }\n }\n );\n }, [children]);\n\n const navAsSelect = useMemo(() => {\n return (\n <StyledNavAsSelect id={targetId} $active>\n <span>{navItemNames[active]}</span>\n <ExpandSingle expanded={moreOpened} fill=\"currentColor\" />\n </StyledNavAsSelect>\n );\n }, [active, moreOpened, navItemNames, targetId]);\n\n useEffect(() => {\n if (!navRef.current || !wrapRef.current) return;\n\n if (childrenWidth >= parentWidth) {\n setType(\"dropdown\");\n } else {\n setType(\"inline\");\n }\n }, [childrenWidth, parentWidth]);\n\n if (!children) return;\n\n return (\n <StyledNav\n className={classNames(\"c-nav\", className)}\n $align={alignment}\n $role={role}\n ref={wrapRef}\n >\n <StyledNavList ref={navRef}>\n {type === \"inline\" &&\n Children.toArray(children).map((child: ReactNode, index: number) => {\n const element = child as ReactElement;\n return cloneElement(element, {\n active: index === active,\n role,\n onClick,\n \"data-index\": index,\n \"data-disabled\": element.props.disabled,\n });\n })}\n {type === \"dropdown\" ? (\n <StyledNavListItemMore name={navItemNames[active]} role={role}>\n <Select\n selected={active}\n target={navAsSelect}\n disabledInternalSort\n options={allOptions}\n type=\"single\"\n mode=\"normal\"\n forceCloseMenu\n disableSearch\n keepSameOptionsOrder\n onChange={onMoreOptionClick}\n onSelectOpen={setMoreOpen}\n onSelectClose={setMoreClose}\n />\n </StyledNavListItemMore>\n ) : null}\n </StyledNavList>\n </StyledNav>\n );\n};\n\nNav.displayName = \"Nav\";\n"],"mappings":"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"}
@@ -12,7 +12,9 @@ interface StyledNavListItemProps {
12
12
  $asMore?: boolean;
13
13
  }
14
14
  export declare const StyledNavListItem: import("styled-components").StyledComponent<"li", any, StyledNavListItemProps, never>;
15
- export declare const StyledNavAsSelect: import("styled-components").StyledComponent<"div", any, {}, never>;
15
+ export declare const StyledNavAsSelect: import("styled-components").StyledComponent<"div", any, {
16
+ $active: boolean;
17
+ }, never>;
16
18
  export declare const StyledNavAsMoreTarget: import("styled-components").StyledComponent<"div", any, {
17
19
  $role?: NavRoleType | undefined;
18
20
  }, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/Styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAElD,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,gFA6BrB,CAAC;AAIF,eAAO,MAAM,aAAa,mEAGzB,CAAC;AAIF,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,uFAyE7B,CAAC;AAIF,eAAO,MAAM,iBAAiB,oEAS7B,CAAC;AAIF,eAAO,MAAM,qBAAqB;;SAajC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/Styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAElD,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,gFA6BrB,CAAC;AAIF,eAAO,MAAM,aAAa,mEAGzB,CAAC;AAIF,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,uFAyE7B,CAAC;AAIF,eAAO,MAAM,iBAAiB;aAAyB,OAAO;SAqB7D,CAAC;AAIF,eAAO,MAAM,qBAAqB;;SAajC,CAAC"}
@@ -62,7 +62,11 @@ StyledNavListItem.displayName = "StyledNavListItem";
62
62
  export const StyledNavAsSelect = styled.div.withConfig({
63
63
  displayName: "Styles__StyledNavAsSelect",
64
64
  componentId: "sc-1khiypw-3"
65
- })(["padding:0 10px;height:100%;display:flex;align-items:center;svg{color:var(--color-primary);}"]);
65
+ })(["padding:0 10px;height:100%;display:flex;align-items:center;gap:4px;svg{color:var(--color-primary);top:1px;position:relative;}", ""], props => props.$active && css(["", " & *{", "}"], {
66
+ "color": "var(--color-primary)"
67
+ }, {
68
+ "color": "var(--color-primary)"
69
+ }));
66
70
  StyledNavAsSelect.displayName = "StyledNavAsSelect";
67
71
  export const StyledNavAsMoreTarget = styled.div.withConfig({
68
72
  displayName: "Styles__StyledNavAsMoreTarget",
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","StyledNav","nav","withConfig","displayName","componentId","props","$align","$role","StyledNavList","ul","StyledNavListItem","li","$disabled","$active","StyledNavAsSelect","div","StyledNavAsMoreTarget"],"sources":["../../../../src/components/Nav/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { NavAlignType, NavRoleType } from \"./Nav\";\n\ninterface StyledNavProps {\n $align?: NavAlignType;\n $role?: NavRoleType;\n}\n\nexport const StyledNav = styled.nav<StyledNavProps>`\n ${tw`tw-flex`}\n height: 100%;\n width: 100%;\n overflow: clip visible;\n\n ${(props) =>\n props.$align === \"left\" &&\n css`\n ${tw`tw-justify-start`}\n `}\n\n ${(props) =>\n props.$align === \"center\" &&\n css`\n ${tw`tw-justify-center`}\n `}\n\n ${(props) =>\n props.$align === \"right\" &&\n css`\n ${tw`tw-justify-end`}\n `}\n\n ${(props) =>\n props.$role === \"light\" &&\n css`\n height: auto;\n `}\n`;\n\nStyledNav.displayName = \"StyledNav\";\n\nexport const StyledNavList = styled.ul`\n ${tw`tw-flex tw-list-none tw-m-0 tw-p-0`}\n overflow: clip visible;\n`;\n\nStyledNavList.displayName = \"StyledNavList\";\n\ninterface StyledNavListItemProps {\n $active?: boolean;\n $disabled?: boolean;\n $role?: NavRoleType;\n $asMore?: boolean;\n}\n\nexport const StyledNavListItem = styled.li<StyledNavListItemProps>`\n ${tw`tw-text-sm tw-cursor-default tw-relative tw-select-none`}\n color: var(--color-theme-700);\n font-size: 15px;\n display: flex;\n align-items: center;\n font-weight: 500;\n padding: 0 10px;\n flex-shrink: 0;\n\n &:hover,\n &:hover * {\n ${(props) =>\n !props.$disabled &&\n css`\n ${tw`tw-text-primary`}\n `}\n }\n\n ${(props) =>\n !props.$active &&\n !props.$disabled &&\n css`\n ${tw`tw-cursor-pointer`}\n `}\n\n &::after {\n content: \"\";\n ${tw`tw-absolute tw-block tw-m-auto tw-w-0 tw-bg-transparent`}\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n height: 3px;\n transition: width 0.3s ease, background-color 0.3s ease;\n }\n\n ${(props) =>\n props.$active &&\n css`\n ${tw`tw-pointer-events-none`}\n &::after {\n ${tw`tw-w-full tw-bg-primary`}\n }\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n ${tw`tw-select-none tw-cursor-not-allowed tw-opacity-50`}\n `}\n\n ${(props) =>\n props.$role === \"light\" &&\n css`\n ${tw`tw-text-sm`}\n color: var(--color-theme-800);\n font-weight: 400;\n padding: 0 8px;\n\n &::after {\n bottom: -4px;\n height: 2px;\n }\n `}\n\n ${(props) =>\n props.$active &&\n css`\n ${tw`tw-text-primary`}\n & * {\n ${tw`tw-text-primary`}\n }\n `}\n`;\n\nStyledNavListItem.displayName = \"StyledNavListItem\";\n\nexport const StyledNavAsSelect = styled.div`\n padding: 0 10px;\n height: 100%;\n display: flex;\n align-items: center;\n\n svg {\n color: var(--color-primary);\n }\n`;\n\nStyledNavAsSelect.displayName = \"StyledNavAsSelect\";\n\nexport const StyledNavAsMoreTarget = styled.div<{\n $role?: NavRoleType;\n}>`\n padding: 0 10px;\n height: 100%;\n display: flex;\n align-items: center;\n\n ${(props) =>\n props.$role === \"light\" &&\n css`\n padding: 0;\n `}\n`;\n\nStyledNavAsMoreTarget.displayName = \"StyledNavAsMoreTarget\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAU/C,OAAO,MAAMC,SAAS,GAAGF,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8EAC7B;EAAA;AAAQ,CAAC,EAKVC,KAAK,IACNA,KAAK,CAACC,MAAM,KAAK,MAAM,IACvBP,GAAG,WACG;EAAA;AAAiB,CAAC,CACvB,EAEAM,KAAK,IACNA,KAAK,CAACC,MAAM,KAAK,QAAQ,IACzBP,GAAG,WACG;EAAA;AAAkB,CAAC,CACxB,EAEAM,KAAK,IACNA,KAAK,CAACC,MAAM,KAAK,OAAO,IACxBP,GAAG,WACG;EAAA;AAAe,CAAC,CACrB,EAEAM,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBR,GAAG,kBAEF,CACJ;AAEDC,SAAS,CAACG,WAAW,GAAG,WAAW;AAEnC,OAAO,MAAMK,aAAa,GAAGV,MAAM,CAACW,EAAE,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oCAChC;EAAA;EAAA;EAAA;EAAA;AAAmC,CAAC,CAEzC;AAEDI,aAAa,CAACL,WAAW,GAAG,eAAe;AAS3C,OAAO,MAAMO,iBAAiB,GAAGZ,MAAM,CAACa,EAAE,CAAAT,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gUACpC;EAAA;EAAA;EAAA;EAAA;EAAA;AAAwD,CAAC,EAWxDC,KAAK,IACN,CAACA,KAAK,CAACO,SAAS,IAChBb,GAAG,WACG;EAAA;AAAgB,CAAC,CACtB,EAGFM,KAAK,IACN,CAACA,KAAK,CAACQ,OAAO,IACd,CAACR,KAAK,CAACO,SAAS,IAChBb,GAAG,WACG;EAAA;AAAkB,CAAC,CACxB,EAIG;EAAA;EAAA;EAAA;EAAA;EAAA;AAAwD,CAAC,EAQ5DM,KAAK,IACNA,KAAK,CAACQ,OAAO,IACbd,GAAG,0BACG;EAAA;AAAuB,CAAC,EAEtB;EAAA;EAAA;AAAwB,CAAC,CAEhC,EAEAM,KAAK,IACNA,KAAK,CAACO,SAAS,IACfb,GAAG,WACG;EAAA;EAAA;EAAA;AAAmD,CAAC,CACzD,EAEAM,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBR,GAAG,wGACG;EAAA;EAAA;AAAW,CAAC,CASjB,EAEAM,KAAK,IACNA,KAAK,CAACQ,OAAO,IACbd,GAAG,qBACG;EAAA;AAAgB,CAAC,EAEf;EAAA;AAAgB,CAAC,CAExB,CACJ;AAEDW,iBAAiB,CAACP,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMW,iBAAiB,GAAGhB,MAAM,CAACiB,GAAG,CAAAb,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,mGAS1C;AAEDU,iBAAiB,CAACX,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMa,qBAAqB,GAAGlB,MAAM,CAACiB,GAAG,CAAAb,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wEAQ1CC,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBR,GAAG,gBAEF,CACJ;AAEDiB,qBAAqB,CAACb,WAAW,GAAG,uBAAuB"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","StyledNav","nav","withConfig","displayName","componentId","props","$align","$role","StyledNavList","ul","StyledNavListItem","li","$disabled","$active","StyledNavAsSelect","div","StyledNavAsMoreTarget"],"sources":["../../../../src/components/Nav/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { NavAlignType, NavRoleType } from \"./Nav\";\n\ninterface StyledNavProps {\n $align?: NavAlignType;\n $role?: NavRoleType;\n}\n\nexport const StyledNav = styled.nav<StyledNavProps>`\n ${tw`tw-flex`}\n height: 100%;\n width: 100%;\n overflow: clip visible;\n\n ${(props) =>\n props.$align === \"left\" &&\n css`\n ${tw`tw-justify-start`}\n `}\n\n ${(props) =>\n props.$align === \"center\" &&\n css`\n ${tw`tw-justify-center`}\n `}\n\n ${(props) =>\n props.$align === \"right\" &&\n css`\n ${tw`tw-justify-end`}\n `}\n\n ${(props) =>\n props.$role === \"light\" &&\n css`\n height: auto;\n `}\n`;\n\nStyledNav.displayName = \"StyledNav\";\n\nexport const StyledNavList = styled.ul`\n ${tw`tw-flex tw-list-none tw-m-0 tw-p-0`}\n overflow: clip visible;\n`;\n\nStyledNavList.displayName = \"StyledNavList\";\n\ninterface StyledNavListItemProps {\n $active?: boolean;\n $disabled?: boolean;\n $role?: NavRoleType;\n $asMore?: boolean;\n}\n\nexport const StyledNavListItem = styled.li<StyledNavListItemProps>`\n ${tw`tw-text-sm tw-cursor-default tw-relative tw-select-none`}\n color: var(--color-theme-700);\n font-size: 15px;\n display: flex;\n align-items: center;\n font-weight: 500;\n padding: 0 10px;\n flex-shrink: 0;\n\n &:hover,\n &:hover * {\n ${(props) =>\n !props.$disabled &&\n css`\n ${tw`tw-text-primary`}\n `}\n }\n\n ${(props) =>\n !props.$active &&\n !props.$disabled &&\n css`\n ${tw`tw-cursor-pointer`}\n `}\n\n &::after {\n content: \"\";\n ${tw`tw-absolute tw-block tw-m-auto tw-w-0 tw-bg-transparent`}\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n height: 3px;\n transition: width 0.3s ease, background-color 0.3s ease;\n }\n\n ${(props) =>\n props.$active &&\n css`\n ${tw`tw-pointer-events-none`}\n &::after {\n ${tw`tw-w-full tw-bg-primary`}\n }\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n ${tw`tw-select-none tw-cursor-not-allowed tw-opacity-50`}\n `}\n\n ${(props) =>\n props.$role === \"light\" &&\n css`\n ${tw`tw-text-sm`}\n color: var(--color-theme-800);\n font-weight: 400;\n padding: 0 8px;\n\n &::after {\n bottom: -4px;\n height: 2px;\n }\n `}\n\n ${(props) =>\n props.$active &&\n css`\n ${tw`tw-text-primary`}\n & * {\n ${tw`tw-text-primary`}\n }\n `}\n`;\n\nStyledNavListItem.displayName = \"StyledNavListItem\";\n\nexport const StyledNavAsSelect = styled.div<{ $active: boolean }>`\n padding: 0 10px;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 4px;\n\n svg {\n color: var(--color-primary);\n top: 1px;\n position: relative;\n }\n\n ${(props) =>\n props.$active &&\n css`\n ${tw`tw-text-primary`}\n & * {\n ${tw`tw-text-primary`}\n }\n `}\n`;\n\nStyledNavAsSelect.displayName = \"StyledNavAsSelect\";\n\nexport const StyledNavAsMoreTarget = styled.div<{\n $role?: NavRoleType;\n}>`\n padding: 0 10px;\n height: 100%;\n display: flex;\n align-items: center;\n\n ${(props) =>\n props.$role === \"light\" &&\n css`\n padding: 0;\n `}\n`;\n\nStyledNavAsMoreTarget.displayName = \"StyledNavAsMoreTarget\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAU/C,OAAO,MAAMC,SAAS,GAAGF,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8EAC7B;EAAA;AAAQ,CAAC,EAKVC,KAAK,IACNA,KAAK,CAACC,MAAM,KAAK,MAAM,IACvBP,GAAG,WACG;EAAA;AAAiB,CAAC,CACvB,EAEAM,KAAK,IACNA,KAAK,CAACC,MAAM,KAAK,QAAQ,IACzBP,GAAG,WACG;EAAA;AAAkB,CAAC,CACxB,EAEAM,KAAK,IACNA,KAAK,CAACC,MAAM,KAAK,OAAO,IACxBP,GAAG,WACG;EAAA;AAAe,CAAC,CACrB,EAEAM,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBR,GAAG,kBAEF,CACJ;AAEDC,SAAS,CAACG,WAAW,GAAG,WAAW;AAEnC,OAAO,MAAMK,aAAa,GAAGV,MAAM,CAACW,EAAE,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oCAChC;EAAA;EAAA;EAAA;EAAA;AAAmC,CAAC,CAEzC;AAEDI,aAAa,CAACL,WAAW,GAAG,eAAe;AAS3C,OAAO,MAAMO,iBAAiB,GAAGZ,MAAM,CAACa,EAAE,CAAAT,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gUACpC;EAAA;EAAA;EAAA;EAAA;EAAA;AAAwD,CAAC,EAWxDC,KAAK,IACN,CAACA,KAAK,CAACO,SAAS,IAChBb,GAAG,WACG;EAAA;AAAgB,CAAC,CACtB,EAGFM,KAAK,IACN,CAACA,KAAK,CAACQ,OAAO,IACd,CAACR,KAAK,CAACO,SAAS,IAChBb,GAAG,WACG;EAAA;AAAkB,CAAC,CACxB,EAIG;EAAA;EAAA;EAAA;EAAA;EAAA;AAAwD,CAAC,EAQ5DM,KAAK,IACNA,KAAK,CAACQ,OAAO,IACbd,GAAG,0BACG;EAAA;AAAuB,CAAC,EAEtB;EAAA;EAAA;AAAwB,CAAC,CAEhC,EAEAM,KAAK,IACNA,KAAK,CAACO,SAAS,IACfb,GAAG,WACG;EAAA;EAAA;EAAA;AAAmD,CAAC,CACzD,EAEAM,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBR,GAAG,wGACG;EAAA;EAAA;AAAW,CAAC,CASjB,EAEAM,KAAK,IACNA,KAAK,CAACQ,OAAO,IACbd,GAAG,qBACG;EAAA;AAAgB,CAAC,EAEf;EAAA;AAAgB,CAAC,CAExB,CACJ;AAEDW,iBAAiB,CAACP,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMW,iBAAiB,GAAGhB,MAAM,CAACiB,GAAG,CAAAb,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0IAatCC,KAAK,IACNA,KAAK,CAACQ,OAAO,IACbd,GAAG,qBACG;EAAA;AAAgB,CAAC,EAEf;EAAA;AAAgB,CAAC,CAExB,CACJ;AAEDe,iBAAiB,CAACX,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMa,qBAAqB,GAAGlB,MAAM,CAACiB,GAAG,CAAAb,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wEAQ1CC,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBR,GAAG,gBAEF,CACJ;AAEDiB,qBAAqB,CAACb,WAAW,GAAG,uBAAuB"}
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.
9
9
  * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.
10
- * @param {boolean} [trimZeroes=false] - Whether to remove minutes if they are zero.
10
+ * @param {boolean} [trimZeroMinutes=false] - Whether to remove minutes if they are zero.
11
11
  *
12
12
  * @returns {string} - A formatted time string in HH:MM format.
13
13
  *
@@ -15,7 +15,7 @@
15
15
  * formatHours(1.5) // "1:30"
16
16
  * formatHours("3.5", true) // "03:30"
17
17
  */
18
- export declare const formatHours: (num: number | string | undefined, withLeadingZeroHours?: boolean, trimZeroes?: boolean) => string;
18
+ export declare const formatHours: (num: number | string | undefined, withLeadingZeroHours?: boolean, trimZeroMinutes?: boolean) => string;
19
19
  export declare const withLeadingZero: (num: string | number, size?: number) => string;
20
20
  export declare const isDecimal: (num: number) => boolean;
21
21
  export declare const isValidTime: (time: string | undefined) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"timeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/timeUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,QACjB,MAAM,GAAG,MAAM,GAAG,SAAS,2DAG/B,MA+DF,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,MAAM,0BAInD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,OAEvC,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,MAAM,GAAG,SAAS,KAAG,OAEtD,CAAC"}
1
+ {"version":3,"file":"timeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/timeUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,QACjB,MAAM,GAAG,MAAM,GAAG,SAAS,gEAG/B,MA+DF,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,MAAM,0BAInD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,OAEvC,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,MAAM,GAAG,SAAS,KAAG,OAEtD,CAAC"}
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.
9
9
  * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.
10
- * @param {boolean} [trimZeroes=false] - Whether to remove minutes if they are zero.
10
+ * @param {boolean} [trimZeroMinutes=false] - Whether to remove minutes if they are zero.
11
11
  *
12
12
  * @returns {string} - A formatted time string in HH:MM format.
13
13
  *
@@ -15,15 +15,15 @@
15
15
  * formatHours(1.5) // "1:30"
16
16
  * formatHours("3.5", true) // "03:30"
17
17
  */
18
- export const formatHours = function (num, withLeadingZeroHours, trimZeroes) {
18
+ export const formatHours = function (num, withLeadingZeroHours, trimZeroMinutes) {
19
19
  if (withLeadingZeroHours === void 0) {
20
20
  withLeadingZeroHours = false;
21
21
  }
22
- if (trimZeroes === void 0) {
23
- trimZeroes = false;
22
+ if (trimZeroMinutes === void 0) {
23
+ trimZeroMinutes = false;
24
24
  }
25
25
  if (num === 0 || num === "0") {
26
- return trimZeroes ? "0" : withLeadingZeroHours ? "00:00" : "0:00";
26
+ return trimZeroMinutes ? "0" : withLeadingZeroHours ? "00:00" : "0:00";
27
27
  }
28
28
  if (!num) {
29
29
  return "";
@@ -35,7 +35,7 @@ export const formatHours = function (num, withLeadingZeroHours, trimZeroes) {
35
35
  _minutes = Number(_minutes) + "0";
36
36
  }
37
37
  if (_hours && _minutes) {
38
- if (trimZeroes && _minutes === "00") {
38
+ if (trimZeroMinutes && _minutes === "00") {
39
39
  return withLeadingZeroHours ? withLeadingZero(_hours) : String(Number(_hours));
40
40
  }
41
41
  return withLeadingZeroHours ? withLeadingZero(_hours) + ":" + _minutes : _hours + ":" + _minutes;
@@ -53,7 +53,7 @@ export const formatHours = function (num, withLeadingZeroHours, trimZeroes) {
53
53
  }
54
54
  const input = typeof num === "string" ? parseFloat(num) : num;
55
55
  if (!isDecimal(input)) {
56
- if (trimZeroes) {
56
+ if (trimZeroMinutes) {
57
57
  return withLeadingZeroHours ? withLeadingZero(input) : String(Number(input));
58
58
  }
59
59
  return withLeadingZeroHours ? withLeadingZero(input) + ":00" : input + ":00";
@@ -66,7 +66,7 @@ export const formatHours = function (num, withLeadingZeroHours, trimZeroes) {
66
66
  }
67
67
  const minutes = time[1];
68
68
  const minutes_formatted = Math.round(parseInt(minutes, 10) / 100 * 60);
69
- if (trimZeroes && minutes_formatted === 0) {
69
+ if (trimZeroMinutes && minutes_formatted === 0) {
70
70
  return hours;
71
71
  }
72
72
  return hours + ":" + withLeadingZero(minutes_formatted);
@@ -1 +1 @@
1
- {"version":3,"file":"timeUtils.js","names":["formatHours","num","withLeadingZeroHours","trimZeroes","indexOf","_hours","_minutes","split","length","Number","withLeadingZero","String","replace","input","parseFloat","isDecimal","decimal","toFixed","time","toString","hours","minutes","minutes_formatted","Math","round","parseInt","size","s","isInteger","isValidTime","undefined","test"],"sources":["../../../src/utils/timeUtils.ts"],"sourcesContent":["/**\n * @function formatHours\n * @description\n * Formats a decimal number representing hours into a formatted string (HH:MM).\n * The input can be a number, string, or undefined. The function handles various formats\n * and can optionally add a leading zero to the hours component.\n *\n * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.\n * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.\n * @param {boolean} [trimZeroes=false] - Whether to remove minutes if they are zero.\n *\n * @returns {string} - A formatted time string in HH:MM format.\n *\n * @example\n * formatHours(1.5) // \"1:30\"\n * formatHours(\"3.5\", true) // \"03:30\"\n */\nexport const formatHours = (\n num: number | string | undefined,\n withLeadingZeroHours = false,\n trimZeroes = false\n): string => {\n if (num === 0 || num === \"0\") {\n return trimZeroes ? \"0\" : withLeadingZeroHours ? \"00:00\" : \"0:00\";\n }\n if (!num) {\n return \"\";\n }\n if (typeof num === \"string\" && num.indexOf(\":\") >= 0) {\n // eslint-disable-next-line prefer-const\n let [_hours, _minutes] = num.split(\":\");\n if (_minutes && _minutes.length === 1 && Number(_minutes) < 10) {\n _minutes = `${Number(_minutes)}0`;\n }\n if (_hours && _minutes) {\n if (trimZeroes && _minutes === \"00\") {\n return withLeadingZeroHours\n ? withLeadingZero(_hours)\n : String(Number(_hours));\n }\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:${_minutes}`\n : `${_hours}:${_minutes}`;\n } else if (_hours && !_minutes) {\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:00`\n : `${_hours}:00`;\n } else if (!_hours && _minutes) {\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n } else if (!_hours && !_minutes) {\n return withLeadingZeroHours ? \"00:00\" : \"0:00\";\n }\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n }\n if (typeof num === \"string\" && num.indexOf(\",\") >= 0) {\n num = num.replace(\",\", \".\");\n }\n const input = typeof num === \"string\" ? parseFloat(num) : num;\n\n if (!isDecimal(input)) {\n if (trimZeroes) {\n return withLeadingZeroHours\n ? withLeadingZero(input)\n : String(Number(input));\n }\n return withLeadingZeroHours\n ? `${withLeadingZero(input)}:00`\n : `${input}:00`;\n }\n\n const decimal = input.toFixed(2);\n const time = decimal.toString().split(\".\");\n let hours: string = time[0];\n if (withLeadingZeroHours) {\n hours = withLeadingZero(hours);\n }\n const minutes: string = time[1];\n const minutes_formatted = Math.round((parseInt(minutes, 10) / 100) * 60);\n\n if (trimZeroes && minutes_formatted === 0) {\n return hours;\n }\n\n return `${hours}:${withLeadingZero(minutes_formatted)}`;\n};\n\nexport const withLeadingZero = (num: string | number, size = 2) => {\n let s = `${num}`;\n while (s.length < size) s = `0` + s;\n return s;\n};\n\nexport const isDecimal = (num: number): boolean => {\n return !Number.isInteger(num);\n};\n\nexport const isValidTime = (time: string | undefined): boolean => {\n return time === undefined || /^([01]\\d|2[0-3]):([0-5]\\d)$/.test(time);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"timeUtils.js","names":["formatHours","num","withLeadingZeroHours","trimZeroMinutes","indexOf","_hours","_minutes","split","length","Number","withLeadingZero","String","replace","input","parseFloat","isDecimal","decimal","toFixed","time","toString","hours","minutes","minutes_formatted","Math","round","parseInt","size","s","isInteger","isValidTime","undefined","test"],"sources":["../../../src/utils/timeUtils.ts"],"sourcesContent":["/**\n * @function formatHours\n * @description\n * Formats a decimal number representing hours into a formatted string (HH:MM).\n * The input can be a number, string, or undefined. The function handles various formats\n * and can optionally add a leading zero to the hours component.\n *\n * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.\n * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.\n * @param {boolean} [trimZeroMinutes=false] - Whether to remove minutes if they are zero.\n *\n * @returns {string} - A formatted time string in HH:MM format.\n *\n * @example\n * formatHours(1.5) // \"1:30\"\n * formatHours(\"3.5\", true) // \"03:30\"\n */\nexport const formatHours = (\n num: number | string | undefined,\n withLeadingZeroHours = false,\n trimZeroMinutes = false\n): string => {\n if (num === 0 || num === \"0\") {\n return trimZeroMinutes ? \"0\" : withLeadingZeroHours ? \"00:00\" : \"0:00\";\n }\n if (!num) {\n return \"\";\n }\n if (typeof num === \"string\" && num.indexOf(\":\") >= 0) {\n // eslint-disable-next-line prefer-const\n let [_hours, _minutes] = num.split(\":\");\n if (_minutes && _minutes.length === 1 && Number(_minutes) < 10) {\n _minutes = `${Number(_minutes)}0`;\n }\n if (_hours && _minutes) {\n if (trimZeroMinutes && _minutes === \"00\") {\n return withLeadingZeroHours\n ? withLeadingZero(_hours)\n : String(Number(_hours));\n }\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:${_minutes}`\n : `${_hours}:${_minutes}`;\n } else if (_hours && !_minutes) {\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:00`\n : `${_hours}:00`;\n } else if (!_hours && _minutes) {\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n } else if (!_hours && !_minutes) {\n return withLeadingZeroHours ? \"00:00\" : \"0:00\";\n }\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n }\n if (typeof num === \"string\" && num.indexOf(\",\") >= 0) {\n num = num.replace(\",\", \".\");\n }\n const input = typeof num === \"string\" ? parseFloat(num) : num;\n\n if (!isDecimal(input)) {\n if (trimZeroMinutes) {\n return withLeadingZeroHours\n ? withLeadingZero(input)\n : String(Number(input));\n }\n return withLeadingZeroHours\n ? `${withLeadingZero(input)}:00`\n : `${input}:00`;\n }\n\n const decimal = input.toFixed(2);\n const time = decimal.toString().split(\".\");\n let hours: string = time[0];\n if (withLeadingZeroHours) {\n hours = withLeadingZero(hours);\n }\n const minutes: string = time[1];\n const minutes_formatted = Math.round((parseInt(minutes, 10) / 100) * 60);\n\n if (trimZeroMinutes && minutes_formatted === 0) {\n return hours;\n }\n\n return `${hours}:${withLeadingZero(minutes_formatted)}`;\n};\n\nexport const withLeadingZero = (num: string | number, size = 2) => {\n let s = `${num}`;\n while (s.length < size) s = `0` + s;\n return s;\n};\n\nexport const isDecimal = (num: number): boolean => {\n return !Number.isInteger(num);\n};\n\nexport const isValidTime = (time: string | undefined): boolean => {\n return time === undefined || /^([01]\\d|2[0-3]):([0-5]\\d)$/.test(time);\n};\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { formatHours } from "./timeUtils";
2
2
  describe("timeUtis.ts", () => {
3
- it.each([["1:30", "1:30"], ["1:30", "01:30", true], ["1.5", "1:30"], ["1.05", "1:03"], ["5,5", "5:30"], ["5.5", "5:30"], ["5:30", "5:30"], [",5", "0:30"], [".5", "0:30"], ["", ""], [":", "0:00"], ["1:", "1:00"], ["1:", "01:00", true], [":05", "00:05", true], [",05", "00:03", true], [0.5, "00:30", true], [1.5, "01:30", true], [1.5, "1:30", false], ["0:3", "0:30", false], ["555:35", "555:35", false], ["555", "555:00", false], [555.5, "555:30", false], ["5:00", "5", false, true], ["05:00", "05", true, true], ["12:00", "12", false, true], ["12:30", "12:30", false, true], [5, "5:00", false, false], [5, "5", false, true], [0, "0:00", false, false], [0, "0", false, true], [5, "05", true, true], ["5:00", "05", true, true], ["05:00", "5", false, true]])("should formatTime", function (value, expected, leadingZero, trimZeroes) {
3
+ it.each([["1:30", "1:30"], ["1:30", "01:30", true], ["1.5", "1:30"], ["1.05", "1:03"], ["5,5", "5:30"], ["5.5", "5:30"], ["5:30", "5:30"], [",5", "0:30"], [".5", "0:30"], ["", ""], [":", "0:00"], ["1:", "1:00"], ["1:", "01:00", true], [":05", "00:05", true], [",05", "00:03", true], [0.5, "00:30", true], [1.5, "01:30", true], [1.5, "1:30", false], ["0:3", "0:30", false], ["555:35", "555:35", false], ["555", "555:00", false], [555.5, "555:30", false], ["5:00", "5", false, true], ["05:00", "05", true, true], ["12:00", "12", false, true], ["12:30", "12:30", false, true], [5, "5:00", false, false], [5, "5", false, true], [0, "0:00", false, false], [0, "0", false, true], [5, "05", true, true], ["5:00", "05", true, true], ["05:00", "5", false, true]])("should formatTime", function (value, expected, leadingZero, trimZeroMinutes) {
4
4
  if (leadingZero === void 0) {
5
5
  leadingZero = false;
6
6
  }
7
- if (trimZeroes === void 0) {
8
- trimZeroes = false;
7
+ if (trimZeroMinutes === void 0) {
8
+ trimZeroMinutes = false;
9
9
  }
10
- expect(formatHours(value, leadingZero, trimZeroes)).toEqual(expected);
10
+ expect(formatHours(value, leadingZero, trimZeroMinutes)).toEqual(expected);
11
11
  });
12
12
  });
13
13
  //# sourceMappingURL=timeUtils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeUtils.test.js","names":["formatHours","describe","it","each","value","expected","leadingZero","trimZeroes","expect","toEqual"],"sources":["../../../src/utils/timeUtils.test.ts"],"sourcesContent":["import { formatHours } from \"./timeUtils\";\n\ndescribe(\"timeUtis.ts\", () => {\n it.each([\n [\"1:30\", \"1:30\"],\n [\"1:30\", \"01:30\", true],\n [\"1.5\", \"1:30\"],\n [\"1.05\", \"1:03\"],\n [\"5,5\", \"5:30\"],\n [\"5.5\", \"5:30\"],\n [\"5:30\", \"5:30\"],\n [\",5\", \"0:30\"],\n [\".5\", \"0:30\"],\n [\"\", \"\"],\n [\":\", \"0:00\"],\n [\"1:\", \"1:00\"],\n [\"1:\", \"01:00\", true],\n [\":05\", \"00:05\", true],\n [\",05\", \"00:03\", true],\n [0.5, \"00:30\", true],\n [1.5, \"01:30\", true],\n [1.5, \"1:30\", false],\n [\"0:3\", \"0:30\", false],\n [\"555:35\", \"555:35\", false],\n [\"555\", \"555:00\", false],\n [555.5, \"555:30\", false],\n [\"5:00\", \"5\", false, true],\n [\"05:00\", \"05\", true, true],\n [\"12:00\", \"12\", false, true],\n [\"12:30\", \"12:30\", false, true],\n [5, \"5:00\", false, false],\n [5, \"5\", false, true],\n [0, \"0:00\", false, false],\n [0, \"0\", false, true],\n [5, \"05\", true, true],\n [\"5:00\", \"05\", true, true],\n [\"05:00\", \"5\", false, true],\n ])(\n \"should formatTime\",\n (value, expected, leadingZero = false, trimZeroes = false) => {\n expect(formatHours(value, leadingZero, trimZeroes)).toEqual(expected);\n }\n );\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAEzCC,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5BC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EACvB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,GAAG,EAAE,MAAM,CAAC,EACb,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EACrB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EACpB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EACtB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC3B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAC1B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC3B,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAC5B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EACzB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EACrB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EACzB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EACrB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACrB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC1B,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAC5B,CAAC,CACA,mBAAmB,EACnB,UAACC,KAAK,EAAEC,QAAQ,EAAEC,WAAW,EAAUC,UAAU,EAAa;IAAA,IAA5CD,WAAW;MAAXA,WAAW,GAAG,KAAK;IAAA;IAAA,IAAEC,UAAU;MAAVA,UAAU,GAAG,KAAK;IAAA;IACvDC,MAAM,CAACR,WAAW,CAACI,KAAK,EAAEE,WAAW,EAAEC,UAAU,CAAC,CAAC,CAACE,OAAO,CAACJ,QAAQ,CAAC;EACvE,CACF,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"timeUtils.test.js","names":["formatHours","describe","it","each","value","expected","leadingZero","trimZeroMinutes","expect","toEqual"],"sources":["../../../src/utils/timeUtils.test.ts"],"sourcesContent":["import { formatHours } from \"./timeUtils\";\n\ndescribe(\"timeUtis.ts\", () => {\n it.each([\n [\"1:30\", \"1:30\"],\n [\"1:30\", \"01:30\", true],\n [\"1.5\", \"1:30\"],\n [\"1.05\", \"1:03\"],\n [\"5,5\", \"5:30\"],\n [\"5.5\", \"5:30\"],\n [\"5:30\", \"5:30\"],\n [\",5\", \"0:30\"],\n [\".5\", \"0:30\"],\n [\"\", \"\"],\n [\":\", \"0:00\"],\n [\"1:\", \"1:00\"],\n [\"1:\", \"01:00\", true],\n [\":05\", \"00:05\", true],\n [\",05\", \"00:03\", true],\n [0.5, \"00:30\", true],\n [1.5, \"01:30\", true],\n [1.5, \"1:30\", false],\n [\"0:3\", \"0:30\", false],\n [\"555:35\", \"555:35\", false],\n [\"555\", \"555:00\", false],\n [555.5, \"555:30\", false],\n [\"5:00\", \"5\", false, true],\n [\"05:00\", \"05\", true, true],\n [\"12:00\", \"12\", false, true],\n [\"12:30\", \"12:30\", false, true],\n [5, \"5:00\", false, false],\n [5, \"5\", false, true],\n [0, \"0:00\", false, false],\n [0, \"0\", false, true],\n [5, \"05\", true, true],\n [\"5:00\", \"05\", true, true],\n [\"05:00\", \"5\", false, true],\n ])(\n \"should formatTime\",\n (value, expected, leadingZero = false, trimZeroMinutes = false) => {\n expect(formatHours(value, leadingZero, trimZeroMinutes)).toEqual(\n expected\n );\n }\n );\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAEzCC,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5BC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EACvB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,GAAG,EAAE,MAAM,CAAC,EACb,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EACrB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EACpB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EACtB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC3B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAC1B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC3B,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAC5B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EACzB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EACrB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EACzB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EACrB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACrB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC1B,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAC5B,CAAC,CACA,mBAAmB,EACnB,UAACC,KAAK,EAAEC,QAAQ,EAAEC,WAAW,EAAUC,eAAe,EAAa;IAAA,IAAjDD,WAAW;MAAXA,WAAW,GAAG,KAAK;IAAA;IAAA,IAAEC,eAAe;MAAfA,eAAe,GAAG,KAAK;IAAA;IAC5DC,MAAM,CAACR,WAAW,CAACI,KAAK,EAAEE,WAAW,EAAEC,eAAe,CAAC,CAAC,CAACE,OAAO,CAC9DJ,QACF,CAAC;EACH,CACF,CAAC;AACH,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -801,7 +801,7 @@
801
801
  *
802
802
  * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.
803
803
  * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.
804
- * @param {boolean} [trimZeroes=false] - Whether to remove minutes if they are zero.
804
+ * @param {boolean} [trimZeroMinutes=false] - Whether to remove minutes if they are zero.
805
805
  *
806
806
  * @returns {string} - A formatted time string in HH:MM format.
807
807
  *
@@ -811,9 +811,9 @@
811
811
  */
812
812
  var formatHours = function formatHours(num) {
813
813
  var withLeadingZeroHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
814
- var trimZeroes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
814
+ var trimZeroMinutes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
815
815
  if (num === 0 || num === "0") {
816
- return trimZeroes ? "0" : withLeadingZeroHours ? "00:00" : "0:00";
816
+ return trimZeroMinutes ? "0" : withLeadingZeroHours ? "00:00" : "0:00";
817
817
  }
818
818
  if (!num) {
819
819
  return "";
@@ -828,7 +828,7 @@
828
828
  _minutes = "".concat(Number(_minutes), "0");
829
829
  }
830
830
  if (_hours && _minutes) {
831
- if (trimZeroes && _minutes === "00") {
831
+ if (trimZeroMinutes && _minutes === "00") {
832
832
  return withLeadingZeroHours ? withLeadingZero(_hours) : String(Number(_hours));
833
833
  }
834
834
  return withLeadingZeroHours ? "".concat(withLeadingZero(_hours), ":").concat(_minutes) : "".concat(_hours, ":").concat(_minutes);
@@ -846,7 +846,7 @@
846
846
  }
847
847
  var input = typeof num === "string" ? parseFloat(num) : num;
848
848
  if (!isDecimal(input)) {
849
- if (trimZeroes) {
849
+ if (trimZeroMinutes) {
850
850
  return withLeadingZeroHours ? withLeadingZero(input) : String(Number(input));
851
851
  }
852
852
  return withLeadingZeroHours ? "".concat(withLeadingZero(input), ":00") : "".concat(input, ":00");
@@ -859,7 +859,7 @@
859
859
  }
860
860
  var minutes = time[1];
861
861
  var minutes_formatted = Math.round(parseInt(minutes, 10) / 100 * 60);
862
- if (trimZeroes && minutes_formatted === 0) {
862
+ if (trimZeroMinutes && minutes_formatted === 0) {
863
863
  return hours;
864
864
  }
865
865
  return "".concat(hours, ":").concat(withLeadingZero(minutes_formatted));
@@ -13693,7 +13693,13 @@
13693
13693
  var StyledNavAsSelect = styled__default["default"].div.withConfig({
13694
13694
  displayName: "Styles__StyledNavAsSelect",
13695
13695
  componentId: "sc-1khiypw-3"
13696
- })(["padding:0 10px;height:100%;display:flex;align-items:center;svg{color:var(--color-primary);}"]);
13696
+ })(["padding:0 10px;height:100%;display:flex;align-items:center;gap:4px;svg{color:var(--color-primary);top:1px;position:relative;}", ""], function (props) {
13697
+ return props.$active && styled.css(["", " & *{", "}"], {
13698
+ "color": "var(--color-primary)"
13699
+ }, {
13700
+ "color": "var(--color-primary)"
13701
+ });
13702
+ });
13697
13703
  StyledNavAsSelect.displayName = "StyledNavAsSelect";
13698
13704
  var StyledNavAsMoreTarget = styled__default["default"].div.withConfig({
13699
13705
  displayName: "Styles__StyledNavAsMoreTarget",
@@ -13729,10 +13735,17 @@
13729
13735
  var StyledNavListItemMore = styled__default["default"](Item).withConfig({
13730
13736
  displayName: "Styles__StyledNavListItemMore",
13731
13737
  componentId: "sc-m6npdq-0"
13732
- })(["", " cursor:pointer;", ""], function (props) {
13738
+ })(["", " cursor:pointer;&::after{content:\"\";", " bottom:0;left:50%;transform:translateX(-50%);height:3px;transition:width 0.3s ease,background-color 0.3s ease;", "}"], function (props) {
13733
13739
  return props.role !== "light" && styled.css(["padding:0;"]);
13734
13740
  }, {
13735
- "pointerEvents": "auto"
13741
+ "position": "absolute",
13742
+ "margin": "auto",
13743
+ "display": "block",
13744
+ "width": "0px",
13745
+ "backgroundColor": "transparent"
13746
+ }, {
13747
+ "width": "100%",
13748
+ "backgroundColor": "var(--color-primary)"
13736
13749
  });
13737
13750
  StyledNavListItemMore.displayName = "StyledNavListItemMore";
13738
13751
 
@@ -15766,7 +15779,8 @@
15766
15779
  }, [children]);
15767
15780
  var navAsSelect = React.useMemo(function () {
15768
15781
  return /*#__PURE__*/React__default["default"].createElement(StyledNavAsSelect, {
15769
- id: targetId
15782
+ id: targetId,
15783
+ $active: true
15770
15784
  }, /*#__PURE__*/React__default["default"].createElement("span", null, navItemNames[active]), /*#__PURE__*/React__default["default"].createElement(ExpandSingle, {
15771
15785
  expanded: moreOpened,
15772
15786
  fill: "currentColor"
@@ -15798,8 +15812,7 @@
15798
15812
  "data-disabled": element.props.disabled
15799
15813
  });
15800
15814
  }), type === "dropdown" ? /*#__PURE__*/React__default["default"].createElement(StyledNavListItemMore, {
15801
- name: "More",
15802
- active: Array.from(navItemNames.keys()).indexOf(active) === -1,
15815
+ name: navItemNames[active],
15803
15816
  role: role
15804
15817
  }, /*#__PURE__*/React__default["default"].createElement(Select, {
15805
15818
  selected: active,
@@ -17603,7 +17616,7 @@
17603
17616
  });
17604
17617
  DisplayCurrency.displayName = "DisplayCurrency";
17605
17618
 
17606
- var _excluded$x = ["value", "variant", "thousandSeparator", "decimalSeparator", "trimZeroes", "trimDecimals", "decimalSpaces", "format", "disableTooltip", "className", "withLeadingZero", "as"];
17619
+ var _excluded$x = ["value", "variant", "thousandSeparator", "decimalSeparator", "trimZeroMinutes", "trimDecimals", "decimalSpaces", "format", "disableTooltip", "className", "withLeadingZero", "as"];
17607
17620
  var DisplayHours = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
17608
17621
  var value = _ref.value,
17609
17622
  _ref$variant = _ref.variant,
@@ -17612,8 +17625,8 @@
17612
17625
  thousandSeparator = _ref$thousandSeparato === void 0 ? "," : _ref$thousandSeparato,
17613
17626
  _ref$decimalSeparator = _ref.decimalSeparator,
17614
17627
  decimalSeparator = _ref$decimalSeparator === void 0 ? "." : _ref$decimalSeparator,
17615
- _ref$trimZeroes = _ref.trimZeroes,
17616
- trimZeroes = _ref$trimZeroes === void 0 ? false : _ref$trimZeroes,
17628
+ _ref$trimZeroMinutes = _ref.trimZeroMinutes,
17629
+ trimZeroMinutes = _ref$trimZeroMinutes === void 0 ? false : _ref$trimZeroMinutes,
17617
17630
  _ref$trimDecimals = _ref.trimDecimals,
17618
17631
  trimDecimals = _ref$trimDecimals === void 0 ? true : _ref$trimDecimals,
17619
17632
  _ref$decimalSpaces = _ref.decimalSpaces,
@@ -17629,7 +17642,7 @@
17629
17642
  rest = _objectWithoutProperties(_ref, _excluded$x);
17630
17643
  var numberValue = +String(value).replaceAll(thousandSeparator, "").replace(decimalSeparator, ".");
17631
17644
  var formattedValue = formatNumber(numberValue, thousandSeparator, decimalSeparator, trimDecimals, decimalSpaces, "short");
17632
- var formattedLongValue = formatHours(numberValue, withLeadingZero, trimZeroes);
17645
+ var formattedLongValue = formatHours(numberValue, withLeadingZero, trimZeroMinutes);
17633
17646
  var showShortVersion = numberValue > 1000;
17634
17647
  if (format === "short" && showShortVersion) {
17635
17648
  return /*#__PURE__*/React__default["default"].createElement(Tooltip, {