intelicoreact 2.0.10 → 2.0.12
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/Atomic/UI/Accordion/Accordion.interface.d.ts +17 -0
- package/dist/Atomic/UI/Accordion/index.d.ts +1 -1
- package/dist/Classes/RESTAPI/partials/ApiUtils.d.ts +1 -1
- package/dist/classes.cjs +2 -2
- package/dist/classes.cjs.map +2 -2
- package/dist/classes.d.ts +6 -0
- package/dist/classes.js +2 -2
- package/dist/classes.js.map +2 -2
- package/dist/index.cjs +463 -992
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +6 -1
- package/dist/index.js +454 -983
- package/dist/index.js.map +4 -4
- package/dist/layout.cjs +0 -560
- package/dist/layout.cjs.map +4 -4
- package/dist/layout.d.ts +5 -2
- package/dist/layout.js +0 -560
- package/dist/layout.js.map +4 -4
- package/dist/router-ui.cjs +989 -0
- package/dist/router-ui.cjs.map +7 -0
- package/dist/router-ui.d.ts +20 -0
- package/dist/router-ui.js +957 -0
- package/dist/router-ui.js.map +7 -0
- package/dist/ui.cjs +897 -1275
- package/dist/ui.cjs.map +4 -4
- package/dist/ui.d.ts +4 -6
- package/dist/ui.js +867 -1245
- package/dist/ui.js.map +4 -4
- package/package.json +18 -3
- package/router-ui/package.json +5 -0
package/dist/layout.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/layout.ts", "../src/Atomic/Layout/Header/Header.tsx", "../src/Atomic/UI/Hint/Hint.tsx", "../src/Functions/utils.js", "../src/Molecular/CustomIcons/components/HelpCircleFilled.tsx", "../src/Atomic/Layout/Spinner/Spinner.tsx", "../src/Atomic/UI/Hint/partials/_constants.ts", "../src/Atomic/UI/Hint/partials/_utils.ts", "../src/Atomic/Layout/
|
|
4
|
-
"sourcesContent": ["/**\n * IntelicoKit \u2014 Public subpath: \"intelicoreact/layout\"\n * Layout components: Header, MainMenu, Spinner\n */\n\nexport { default as Header } from './Atomic/Layout/Header/Header';\nexport { default as MainMenu } from './Atomic/Layout/MainMenu/MainMenu';\nexport { default as Spinner } from './Atomic/Layout/Spinner/index';\nexport type { ISpinnerProps } from './Atomic/Layout/Spinner/index';\n", "import type { ReactElement } from 'react';\n\nimport type { IHeaderProps } from './Header.interface';\nimport cn from 'classnames';\nimport { useRef, useState } from 'react';\n\nimport { Bell, ChevronRight, Power } from 'react-feather';\n\nimport Hint from '../../UI/Hint/Hint';\nimport './Header.scss';\n\nfunction Header({\n className,\n name = 'John',\n surname = 'Silver',\n status = 'admin',\n img = '',\n hintLabel = 'Help',\n hintText = 'Hint text',\n}: IHeaderProps): ReactElement {\n const [isOpen, setIsOpen] = useState(false);\n\n const userMenu = useRef(null);\n\n const handle = {\n toggleMenu: () => {\n if (!isOpen) setIsOpen(!isOpen);\n },\n closeMenu: () => {\n setTimeout(() => setIsOpen(false), 50);\n },\n logout: () => {\n handle.toggleMenu();\n },\n };\n\n return (\n <header className={cn('header', className)}>\n <div className=\"df\">\n <Hint\n side=\"bottom\"\n hint={hintText}\n className=\"header__hint\"\n label={hintLabel}\n />\n </div>\n\n <div className=\"j6 user-menu\">\n <div onClick={() => {}} className=\"header--bell\">\n <Bell className=\"header--bell-icon\" />\n <div className=\"header--bell-notification-icon\" />\n </div>\n\n <div className=\"header--user-ava\">\n {img && <img src={img} alt=\"user-avatar\" />}\n </div>\n\n <div className=\"dfc mr10\">\n <span className=\"header--user-name\">\n {name}\n {' '}\n {surname}\n </span>\n <span className=\"header--user-status\">{status}</span>\n </div>\n\n <ChevronRight\n onClick={handle.toggleMenu}\n data-testid=\"accordion--title-chevron\"\n className={cn('accordion--title-chevron', {\n 'accordion--title-chevron-open': isOpen,\n })}\n />\n {isOpen && (\n <div className=\"user-menu__dropdown\" ref={userMenu}>\n <div className=\"user-menu__item\" onClick={handle.logout}>\n <Power className=\"mr10\" />\n {' '}\n Logout\n </div>\n </div>\n )}\n </div>\n </header>\n );\n}\n\nexport default Header;\n", "/* eslint-disable react-web-api/no-leaked-event-listener */\n/* eslint-disable react-dom/no-missing-button-type */\nimport type { ReactNode } from 'react';\nimport type { IHintProps } from './Hint.interface';\n\nimport cn from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { AlertTriangle, HelpCircle } from 'react-feather';\n\nimport { capitalized } from '../../../Functions/utils';\nimport { HelpCircleFilled } from '../../../Molecular/CustomIcons';\n\nimport Spinner from '../../Layout/Spinner/Spinner';\n\nimport { I_AM_OPENED_EVENT_NAME, I_AM_OPENED_EVENT_OPTIONS } from './partials/_constants';\nimport { getHintContainer, HandleClickOutsideObj, HandleScrollObj, initHintContainer } from './partials/_utils';\n\nimport './Hint.scss';\n\n// \u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u043C\u0430\u043F \u0434\u043B\u044F \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0442\u0430\u0439\u043C\u0435\u0440\u043E\u0432 \u043F\u043E hintId\nconst hintTimeoutMap = new Map<string, NodeJS.Timeout>();\n\nlet isContentHoveredOuter = false;\n\nconst DEFAULT_EMPTY_OBJ = {} as IHintProps['hintContainer'];\n\nfunction DEFAULT_VOID_FN(): void {}\n\ninterface IIAmOpenedDetails {\n hintId: string;\n}\n\nconst Hint: React.FC<IHintProps> = ({\n hint,\n side = 'right',\n className,\n hintContainer = DEFAULT_EMPTY_OBJ,\n label = '',\n variant = 'filled',\n handleOpenType = 'click',\n onClickCallback,\n onOpenChange = DEFAULT_VOID_FN,\n key,\n id,\n children,\n icon,\n isAccessability = false,\n testId = 'hint',\n isHoverableContent = false,\n isLoading,\n isCloseOnChildrenClick = false,\n}) => {\n const hintRef = useRef(null);\n const [hintId] = useState<string>(id ?? key ?? Math.random().toString(16).slice(2));\n const [iAmOpenedOptions] = useState<Record<string, any>>({ ...I_AM_OPENED_EVENT_OPTIONS, detail: { hintId } });\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [isStyleComputed, setIsStyleComputed] = useState<boolean>(false);\n\n // ? \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C handleScroll-\u0441\u0442\u0435\u0439\u0442, \u0447\u0442\u043E\u0431\u044B \u043D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043C\u0435\u043D\u044F\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0442\u0435\u043C \u0441\u0430\u043C\u044B\u043C \u0433\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0443\u044E \u0440\u0430\u0431\u043E\u0442\u0443 removeEventListener.\n // ? \u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0443\u0435\u043C \u0441\u0442\u0435\u0439\u0442 \u0432\u044B\u0437\u043E\u0432\u043E\u043C \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u0430 HandleScrollObj, \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u043C setIsOpen \u0434\u043B\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u043E\u0431\u044A\u0435\u043A\u0442.\n const [handleScroll] = useState(new (HandleScrollObj as any)(setIsOpen));\n // ? \u041F\u043E \u0430\u043D\u0430\u043B\u043E\u0433\u0438\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C handleClickOutside\n const [handleClickOutside] = useState(new (HandleClickOutsideObj as any)(hintId, setIsOpen));\n\n const isCallbackExist: boolean = typeof onClickCallback === 'function';\n\n const handle = {\n onMouseEnter: (): void => {\n const existing = hintTimeoutMap.get(hintId);\n if (existing) clearTimeout(existing);\n\n if (handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n setIsOpen(true);\n !isOpen && onClickCallback?.();\n\n // ? (FIN-10491) \u0418\u0434\u0435\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F:\n // ? \u041B\u044E\u0431\u043E\u0439 hint \u043A\u0430\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u043D \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \"\u0448\u0438\u0440\u043E\u043A\u043E\u0432\u0435\u0449\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u043E\u0440\u0451\u0442\" - \"\u044F \u043E\u0442\u043A\u0440\u044B\u0442!\"\n // ? \u0418, \u0432 \u0441\u0432\u043E\u044E \u043E\u0447\u0435\u0440\u0435\u0434\u044C, \u043B\u044E\u0431\u043E\u0439 hint \u0441\u043B\u0443\u0448\u0430\u0435\u0442 \"\u0448\u0438\u0440\u043E\u043A\u043E\u0432\u0435\u0449\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043E\u0440\" \u0438 \u043A\u0430\u043A \u0443\u0441\u043B\u044B\u0448\u0438\u0442 \"\u0434\u0443\u043C\u0430\u0435\u0442\" - \"\u0430 \u044D\u0442\u043E \u043D\u0435 \u044F \u043B\u0438 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E \u043E\u0442\u043A\u0440\u044B\u0442?\".\n // ? \u0415\u0441\u043B\u0438 \u041D\u0415 \u043E\u043D, \u0442\u043E \u0442\u043E\u0433\u0434\u0430 \u043E\u043D \u043F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\n\n // ? \u0412 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \"\u0448\u0438\u0440\u043E\u043A\u043E\u0432\u0435\u0449\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043E\u0440\u0430\" \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u0441\u0438\u0441\u0442\u0435\u043C\u0443:\n // ? - \u0434\u0438\u0441\u043F\u0430\u0442\u0447\u0438\u043C \u043D\u0430 \"\u0441\u0435\u0431\u0435\" \u0412\u0421\u041F\u041B\u042B\u0412\u0410\u042E\u0429\u0418\u0419 \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0439 \u0438\u0432\u0435\u043D\u0442\n // ? - \u043D\u043E \u0447\u0442\u043E\u0431\u044B \"\u0441\u043B\u044B\u0448\u0430\u0442\u044C \u0433\u043E\u043B\u043E\u0441\u0430\" \u0432\u0441\u0435\u0445 \u0445\u0438\u043D\u0442\u043E\u0432 \"\u0441\u043B\u0443\u0448\u0430\u0435\u043C\" \u043D\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435 \u0432\u0441\u043F\u043B\u044B\u0442\u0438\u044F (\u0442.\u0435. \u043D\u0430 document)\n // @ts-ignore\n hintRef.current?.dispatchEvent?.(new CustomEvent(I_AM_OPENED_EVENT_NAME, iAmOpenedOptions));\n }, 350);\n hintTimeoutMap.set(hintId, timer);\n }\n },\n onMouseLeave: (): void => {\n const existing = hintTimeoutMap.get(hintId);\n if (existing) clearTimeout(existing);\n\n if (!isHoverableContent && handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n setIsOpen(false);\n hintTimeoutMap.delete(hintId);\n }, 1000);\n hintTimeoutMap.set(hintId, timer);\n }\n else if (isHoverableContent && handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n if (!isContentHoveredOuter) {\n setIsOpen(false);\n }\n hintTimeoutMap.delete(hintId);\n }, 100);\n hintTimeoutMap.set(hintId, timer);\n }\n },\n onMouseLeaveHoverableContent: (): void => {\n const existing = hintTimeoutMap.get(hintId);\n if (existing) clearTimeout(existing);\n\n if (isHoverableContent && handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n setIsOpen(false);\n isContentHoveredOuter = false;\n hintTimeoutMap.delete(hintId);\n }, 100);\n hintTimeoutMap.set(hintId, timer);\n }\n },\n onClick: isCloseOnChildrenClick ? (): void => setIsOpen(false) : (): void => {},\n };\n\n const getHintMarkUp = (className: string | undefined): ReactNode => {\n return (\n <div\n data-testid=\"test-hint-text\"\n className={cn('hint__text', `hint__text_${side}`, `hint--${className}__text`)}\n onMouseEnter={(): void => {\n if (isHoverableContent) isContentHoveredOuter = true;\n }}\n onMouseLeave={isHoverableContent ? handle.onMouseLeaveHoverableContent : undefined}\n onClick={handle.onClick}\n style={{ visibility: isStyleComputed ? 'visible' : 'hidden' }}\n >\n {isLoading && <Spinner size=\"small\" />}\n {hint}\n {children}\n </div>\n );\n };\n\n const setHintContainerStyles = (): void | boolean => {\n const hc = getHintContainer(hintId);\n\n if (!hc || !isOpen) return false;\n\n const { width = 0, top = 0, left = 0 } = hintRef?.current !== null ? (hintRef?.current as HTMLElement)?.getBoundingClientRect() : {};\n const { addWidth, addLeft, addTop } = hintContainer ?? {};\n const windowInnerWidth = document.documentElement.clientWidth;\n const windowInnerHeight = document.documentElement.clientHeight;\n\n const sw = hc.getElementsByClassName('hint__text')[0];\n const { width: swWidth, height: swHeight } = sw?.getBoundingClientRect() || {};\n\n hc.style.width = isOpen ? ((addWidth && !Number.isNaN(+addWidth) ? +addWidth : 0) + width)?.toString().concat('px') : '0';\n hc.style.left = isOpen ? ((addLeft && !Number.isNaN(+addLeft) ? +addLeft : 0) + left)?.toString().concat('px') : '0';\n hc.style.top = isOpen ? ((addTop && !Number.isNaN(+addTop) ? +addTop : 0) + top)?.toString().concat('px') : '0';\n hc.style.maxHeight = isOpen ? swHeight?.toString().concat('px') : '0';\n\n // ? \u0411\u0430\u0437\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u0433\u0440\u0435\u0448\u043D\u043E\u0441\u0442\u0438\n // ? \u0412 \u0440\u0430\u0437\u043D\u044B\u0445 \u0441\u0432\u0438\u0442\u0447-\u043A\u0435\u0439\u0441\u0430\u0445 \u043C\u043E\u0436\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u043E \u0440\u0430\u0437\u043D\u043E\u043C\u0443 (\u0432\u0441\u044F \u0438\u043B\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E). \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u043B \"\u043D\u0430 \u0433\u043B\u0430\u0437\u043E\u043A\"\n const INACCURACY = 20;\n switch (side) {\n case 'top':\n case 'centeredTop':\n if (top - swHeight - (INACCURACY / 2) < 0) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add(`hint__text_${side === 'top' ? 'bottom' : 'centeredBottom'}`);\n }\n break;\n\n case 'bottom':\n case 'centeredBottom':\n if (top + swHeight + INACCURACY > windowInnerHeight) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add(`hint__text_${side === 'bottom' ? 'top' : 'centeredTop'}`);\n }\n break;\n\n case 'left':\n if (left - swWidth - (INACCURACY / 2) < 0) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add('hint__text_right');\n }\n break;\n\n case 'right':\n default:\n if (left + width + swWidth + (INACCURACY / 2) > windowInnerWidth) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add('hint__text_left');\n }\n break;\n }\n\n setIsStyleComputed(true);\n };\n\n const renderHintContainer = (className: string | undefined): React.ReactPortal | null => {\n const hc = getHintContainer(hintId);\n if (!hc) return null;\n return createPortal(getHintMarkUp(className), hc);\n }\n\n useEffect(() => {\n initHintContainer(hintId, hintContainer);\n\n // ? useEffect \u043F\u043E \u043D\u0443\u043B\u0435\u0432\u043E\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F 1 \u0440\u0430\u0437, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0441\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u043A\u043E\u043B\u0431\u0435\u043A \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u0441\u044F\n const iAmOpenedCallback = (ev: Event): CustomEvent<IIAmOpenedDetails> => {\n const event = ev as CustomEvent<IIAmOpenedDetails>;\n if (event?.detail?.hintId !== hintId) {\n setIsOpen(false);\n const timer = hintTimeoutMap.get(hintId);\n if (timer) {\n clearTimeout(timer);\n hintTimeoutMap.delete(hintId);\n }\n }\n return event;\n };\n\n if (hintRef.current) {\n // ? \u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u043F\u0440\u043E\u0441\u043B\u0443\u0448\u043A\u0443 \u043D\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435 \u0432\u0441\u043F\u043B\u044B\u0442\u0438\u044F\n document.addEventListener(I_AM_OPENED_EVENT_NAME, iAmOpenedCallback);\n }\n\n return () => {\n document.removeEventListener(I_AM_OPENED_EVENT_NAME, iAmOpenedCallback);\n const timer = hintTimeoutMap.get(hintId);\n if (timer) {\n clearTimeout(timer);\n hintTimeoutMap.delete(hintId);\n }\n };\n }, []);\n\n useEffect(() => {\n setIsStyleComputed(false);\n setHintContainerStyles();\n onOpenChange?.(isOpen);\n\n if (isOpen) {\n document.addEventListener('scroll', handleScroll, true);\n document.addEventListener('click', handleClickOutside, true);\n }\n else {\n document.removeEventListener('scroll', handleScroll, true);\n document.removeEventListener('click', handleClickOutside, true);\n }\n\n return () => {\n const timer = hintTimeoutMap.get(hintId);\n if (timer) {\n clearTimeout(timer);\n hintTimeoutMap.delete(hintId);\n }\n };\n }, [isOpen]);\n\n return (\n <div data-testid={testId} className={cn('hint', className)} ref={hintRef}>\n <button\n tabIndex={isAccessability ? 0 : -1}\n data-testid={typeof label === 'string' && label.length ? label.replace?.(/\\s/g, '-') : `${testId}--button`}\n aria-label={isAccessability && typeof label === 'string' ? label : ''}\n onClick={() =>\n handleOpenType === 'click'\n && (isCallbackExist ? onClickCallback?.() : setIsOpen(!isOpen))}\n onMouseEnter={handle.onMouseEnter}\n onMouseLeave={handle.onMouseLeave}\n className={cn('hint__button', { hint__button_active: isOpen })}\n >\n {icon || icon === null || (\n <>\n {variant === 'outlined' && <HelpCircle width={16} height={16} className=\"hint__icon outlined\" />}\n {variant === 'filled' && <HelpCircleFilled className=\"hint__icon filled\" />}\n {variant === 'warning' && (\n <AlertTriangle className=\"hint__icon\" color=\"#F06D8D\" width={16} height={16} />\n )}\n </>\n )}\n\n {label && (\n <span className={cn('hint__label', { 'color--primary': isOpen })}>\n {typeof label === 'string' ? capitalized(label) : label}\n </span>\n )}\n </button>\n\n {isOpen && renderHintContainer(className)}\n </div>\n );\n}\n\nexport default Hint;\n", "import { useEffect } from \"react\";\n\nimport moment from \"moment-timezone\";\n\nimport { DEFAULT_COLORS, OS } from \"../Constants/index.constants\";\n\nexport const uuid = () => Date.now().toString(36) + Math.random().toString(36).substring(2);\n\nexport const getIsOnlyAnObject = (input) => {\n return (\n typeof input === \"object\" && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u043F\u0440\u0438\u043C\u0438\u0442\u0438\u0432\u044B \u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438\n input instanceof Object && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" null\n !Array.isArray(input) && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u043C\u0430\u0441\u0441\u0438\u0432\u044B\n !(input instanceof Set) && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u0441\u0435\u0442\u044B\n !(input instanceof Map) // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u043C\u0430\u043F\u044B\n );\n};\n\n/* eslint-disable guard-for-in, no-unused-vars */\nexport const handleObjectChange =\n (updateObject, updateFunction) =>\n (data, prop = \"\", isNumber) => {\n let value;\n if (data?.target) {\n value =\n data.target.type === \"checkbox\"\n ? data.target.checked\n : data.target.value;\n } else value = data;\n\n value = isNumber ? Number(value) : value;\n\n const props = prop.split(\".\");\n const currentObject = props.reduce((res, chapter, index) => {\n if (props.length !== index + 1) res = res[chapter];\n return res;\n }, updateObject);\n\n currentObject[props.pop()] = value;\n updateFunction();\n };\n\nexport const useOutsideToggle = (ref, setOut, open) => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setOut(open);\n }\n }\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleClickOutside);\n return () => {\n // Unbind the event listener on clean up\n document.removeEventListener(\"mouseup\", handleClickOutside);\n };\n }, [ref]);\n};\n\n// export const clone = obj => {\n// const data = obj instanceof Array ? [] : {};\n// for (const i in obj) data[i] = typeof obj[i] === 'object' && obj[i] != null ? clone(obj[i]) : obj[i];\n// return data;\n// };\n// ! \u042D\u0442\u043E\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435\u0435\nexport const clone = (input) => {\n if (input === null || typeof input !== \"object\") return input;\n const data = input instanceof Array ? [] : {};\n for (const i in input) data[i] = clone(input[i]);\n return data;\n};\n\nexport const getResponseClone = async (res) =>\n await (typeof res?.clone === \"function\" ? res.clone() : clone(res));\n\n//TimeUtils\nexport function transformUTCTimeToLocal(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n const utcDate = moment.utc(date).toDate();\n return moment(utcDate, format).local().format(format);\n}\nexport function transformLocalTimeToUTC(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n return moment(date, format).utc().format(format);\n}\nexport function transformUTCHoursToLocal(time, format = \"HH:mm:ss\") {\n if (!time) return;\n const splitedTime = time.split(\":\");\n const offset = moment().utcOffset();\n let HH = Number(splitedTime[0]);\n let mm = Number(splitedTime[1]);\n const ss = splitedTime[2];\n mm = mm + offset;\n while (mm > 59) {\n mm -= 60;\n HH += 1;\n }\n if (HH > 23) HH -= 24;\n while (mm < 0) {\n mm += 60;\n HH -= 1;\n }\n if (HH < 0) HH += 24;\n return `${HH}:${mm}:${ss}`;\n}\n\n//? \u041D\u0430\u043C\u0435\u0440\u044F\u043D\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u044E \u0441\u0430\u043C\u044B\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0439 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\nexport function transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n const { parseFormat, isReturnAsMomentInstance } = getIsOnlyAnObject(\n additional,\n )\n ? additional\n : {};\n\n if (typeof data !== \"string\" && typeof data !== \"number\") {\n return isReturnAsMomentInstance ? moment(\"error\") : ERROR_MESSGE;\n }\n\n //? \u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C parseFormat, \u0435\u0441\u043B\u0438 data \u043F\u0440\u0438\u0448\u043B\u0430 \u043A\u0430\u043A timestamp \u0438\u043B\u0438 \u0435\u0441\u043B\u0438 parseFormat \u043D\u0435 \u0441\u0442\u0440\u043E\u043A\u0430\n const momentArgs = [\n data,\n ...(!Number.isNaN(Number(data)) || typeof parseFormat === \"string\"\n ? []\n : [parseFormat]),\n ];\n\n //? \u0417\u0430\u0434\u0430\u0447\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C moment-\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440, \u0432\u0430\u043B\u0438\u0434\u043D\u044B\u0439 \u043B\u0438\u0431\u043E \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u044B\u0439\n const momentInstance = (() => {\n let instance = moment(...momentArgs);\n\n //? \u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u043C \u0432\u0430\u043B\u0438\u0434\u043D\u043E\u0441\u0442\u044C moment-\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440-\u0430 \u043F\u0443\u0442\u0435\u043C \u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043E \u043A \u0432\u044B\u0445\u043E\u0434\u043D\u043E\u043C\u0443 \u0444\u043E\u0440\u043C\u0430\u0442\u0443\n //? \u041F\u043E\u043F\u0430\u0434\u0435\u043C \u0432 \u044D\u0442\u043E\u0442 \u043A\u0435\u0439\u0441 \u0435\u0441\u043B\u0438\n //? - data \u044D\u0442\u043E timestamp\n //? - data \u044D\u0442\u043E \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 date-time\n //? - data \u044D\u0442\u043E \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 date (\u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F 00:00:00)\n if (instance.format(outputFormat) !== ERROR_VALUE) return instance;\n //? \u0415\u0441\u043B\u0438 \u0436\u0435 \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0442\u043E \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u0435\u043C, \u0447\u0442\u043E data \u043F\u0440\u0438\u0448\u043B\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 time\n //? \u0412 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0441\u043E\u0437\u0434\u0430\u0434\u0438\u043C \u043E\u0431\u044A\u0435\u043A\u0442 \u043E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044B, \u0440\u0430\u0441\u043F\u0430\u0440\u0441\u0438\u043C data \u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043C \u0432\u0440\u0435\u043C\u044F\n //? \u041A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442\u0441\u044F \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u044B: 'HH*mm', 'HH*mm*ss', 'HH*mm*ss*\u043B\u044E\u0431\u043E\u0435_\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E_ms', \u0433\u0434\u0435 * - \u043B\u044E\u0431\u043E\u0439 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\n else if (/^\\d\\d.\\d\\d/.test(data)) {\n instance = moment();\n const symbols = data.split(\"\");\n\n const timeArr = symbols\n .reduce(\n (acc, symbol, idx) => {\n if (Number.isNaN(Number(symbol))) {\n if (acc.group) acc.result.push(acc.group);\n acc.group = \"\";\n } else acc.group = `${acc.group}${symbol}`;\n if (idx === symbols.length - 1 && acc.group)\n acc.result.push(acc.group);\n return acc;\n },\n { result: [], group: \"\" },\n )\n //? reverse \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0442\u043E\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0441\u043B\u0435 \u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0442\u043E\u0434 pop, \u0430 \u043D\u0435 shift,\n //? \u0442.\u043A. \u043C\u0435\u0442\u043E\u0434\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F/\u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u044F \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043A\u043E\u043D\u0446\u0430 \u043C\u0430\u0441\u0441\u0438\u0432\u0430 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0431\u044B\u0441\u0442\u0440\u0435\u0435,\n //? \u0447\u0435\u043C \u0430\u043D\u0430\u043B\u043E\u0433\u0438\u0447\u043D\u044B\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u043C\u0430\u0441\u0441\u0438\u0432\u0430\n .result.reverse();\n\n instance.hours(Number(timeArr.pop()));\n instance.minutes(Number(timeArr.pop()));\n instance.seconds(timeArr.length ? Number(timeArr.pop()) : 0);\n instance.milliseconds(timeArr.length ? Number(timeArr.pop()) : 0);\n } else instance = moment(\"error\"); //? \u0418\u043D\u0430\u0447\u0435 \u0441\u043E\u0437\u0434\u0430\u0435\u043C \u0437\u0430\u0432\u0435\u0434\u043E\u043C\u043E \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u044B\u0439 moment-\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\n\n return instance;\n })();\n\n if (isReturnAsMomentInstance) return momentInstance;\n\n const output = momentInstance.format(outputFormat);\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//? \u041D\u0430\u043C\u0435\u0440\u044F\u043D\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u044E \u0441\u0430\u043C\u044B\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0439 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\nexport function transformDateOrTimeOrTogetherToFormattedLocal(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n\n if (additional && !getIsOnlyAnObject(additional)) {\n throw new Error(\n \"Bad additional [transformDateOrTimeOrTogetherToFormattedLocal]\",\n );\n }\n\n const compositeAdditional = {\n ...(additional || {}),\n isReturnAsMomentInstance: true,\n };\n const date = transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat,\n compositeAdditional,\n );\n\n const dateWithLocale = date.add(moment().utcOffset(), \"minutes\");\n const output = dateWithLocale.format(outputFormat);\n\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//\u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 \u043E\u0431\u044C\u0435\u043A\u0442 \u0438 \u043C\u0430\u0441\u0441\u0438\u0432 \u043A\u043B\u044E\u0447\u0435\u0439 \u043E\u0431\u044C\u0435\u043A\u0442\u0430\n//\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u044C\u0435\u043A\u0442 \u0441 \u0442\u0435\u043C\u0438 \u043F\u043E\u043B\u044F\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u043D\u0435\u0442 \u0432 \u043C\u0430\u0441\u0441\u0438\u0432\u0435 \u043A\u043B\u044E\u0447\u0435\u0439\nexport const omitKeys = (obj = {}, keys = []) =>\n keys.reduce((acc, key) => {\n const { [key]: omit, ...rest } = acc;\n return rest;\n }, obj);\n\nexport const logout = () => {\n window.localStorage.removeItem(\"accessToken\");\n window.localStorage.removeItem(\"tokenExpires\");\n window.location.reload();\n};\n\nexport const getStyles = (el, prop) => {\n if (!el) return null;\n if (!prop) return window.getComputedStyle(el);\n return window.getComputedStyle(el).getPropertyValue(prop);\n};\n\nexport const getColorById = (id, colors) => {\n if (!id) return \"#FF7D00\";\n\n const idToArr = Array.from(id);\n const colorsArr = colors && colors.length > 0 ? colors : DEFAULT_COLORS;\n\n let number = idToArr.reduce((acc, item) => {\n if (Number(item)) {\n return acc + Number(item);\n }\n return acc;\n }, 0);\n\n while (number >= colorsArr.length) {\n number -= colorsArr.length;\n }\n\n return colorsArr[number];\n};\n\nexport const debounce = (fn, ms) => {\n let id = null;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => {\n clearTimeout(id);\n fn(...args);\n }, ms);\n };\n};\n\nexport const throttle = (fn, ms) => {\n let id = null;\n return (...args) => {\n if (id) return;\n fn(...args);\n id = setTimeout(() => {\n clearTimeout(id);\n id = null;\n }, ms);\n };\n};\n\nexport const addBitDepthPoints = (value, step = 3) => {\n //\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043B\u0438 value \u0442\u043E\u0447\u043A\u0443\n const isFraction = value?.includes(\".\");\n\n //\u0432\u0437\u044F\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043E \u0442\u043E\u0447\u043A\u0438\n const valueBeforeDot = isFraction\n ? value?.slice(0, value?.indexOf(\".\"))\n : value;\n\n //\u0440\u0430\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430 \u0437\u0430\u043F\u044F\u0442\u044B\u0445 \u043F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0439 3\u0439 \u0446\u0438\u0444\u0440\u044B \u0441 \u043A\u043E\u043D\u0446\u0430\n const intPart = valueBeforeDot\n .split(\"\")\n .reverse()\n .reduce(\n (acc, item, idx) =>\n idx % step === 0 && idx !== 0 ? [...acc, \",\", item] : [...acc, item],\n [],\n )\n .reverse()\n .join(\"\");\n\n return isFraction ? intPart + value?.slice(value?.indexOf(\".\")) : intPart;\n};\n\nexport const changeMeta = (key, items = []) => {\n const defaultMeta = items.find((i) => i.key === \"default\");\n\n if (key) {\n const item = items.find((i) => i.key === key);\n document.title = item?.title ?? defaultMeta?.title;\n document\n .querySelector('meta[name=\"description\"]')\n .setAttribute(\"content\", item?.description ?? defaultMeta?.description);\n }\n};\n\nexport const firstLetterCapital = (str) =>\n typeof str === \"string\"\n ? `${str.charAt(0).toUpperCase()}${str.slice(1)}`\n : str;\nexport const capitalized = firstLetterCapital;\n\nexport const checkedRef = (ref) =>\n ref ? (typeof ref === \"function\" ? (node) => ref(node) : ref) : null;\n\nexport function downloadEmulation(data, filename, type = \"image/*\") {\n const file = new Blob([data], { type });\n if (window.navigator.msSaveOrOpenBlob)\n // IE10+\n window.navigator.msSaveOrOpenBlob(file, filename);\n else {\n // Others\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(() => {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n}\n\nexport const downloadFile = async ({ url, name, type = null }) => {\n const response = await fetch(url).then(async (res) => ({\n data: await res.blob(),\n type: type ?? res.headers.get(\"content-type\"),\n }));\n downloadEmulation(response.data, name, response.type);\n};\n\nexport const compare = (first, second, keys = []) => {\n //? \u0415\u0441\u043B\u0438 \u0442\u0438\u043F\u044B \u041D\u0415 \u0440\u0430\u0432\u043D\u044B - \u043D\u0435 \u0440\u0430\u0432\u043D\u044B \u0430\u043F\u0440\u0438\u043E\u0440\u0438\n if (typeof first !== typeof second) return false;\n //? \u0415\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442\u044B \u043D\u0430 \u0432\u043E\u043F\u0440\u043E\u0441 \"\u043C\u0430\u0441\u0441\u0438\u0432 \u043B\u0438?\" \u043D\u0435 \u0440\u0430\u0432\u043D\u044B, \u0442\u043E \u043D\u0435 \u0440\u0430\u0432\u043D\u044B \u0438 \u0442\u0438\u043F\u044B, \u0437\u043D\u0430\u0447\u0438\u0442 \u0442\u043E\u0436\u0435 \u043D\u0435 \u0440\u0430\u0432\u043D\u044B \u0430\u043F\u0440\u0438\u043E\u0440\u0438\n if (Array.isArray(first) !== Array.isArray(second)) return false;\n //? \u0415\u0441\u043B\u0438 \u043F\u0440\u043E\u0448\u043B\u0438 if-\u043A\u0443 - \u0442\u0438\u043F\u044B \u0443\u0441\u043B\u043E\u0432\u043D\u043E \u0440\u0430\u0432\u043D\u044B, \u043C\u043E\u0436\u0435\u043C \u043E\u0446\u0435\u043D\u0438\u0432\u0430\u0442\u044C \u0442\u0438\u043F \u043B\u0438\u0448\u044C \u043E\u0434\u043D\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430, \u044D\u0442\u043E \u0431\u0443\u0434\u0435\u0442 \u0441\u043F\u0440\u0430\u0432\u0435\u0434\u043B\u0438\u0432\u043E \u0438 \u0434\u043B\u044F \u0432\u0442\u043E\u0440\u043E\u0433\u043E\n\n //? \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043C\u0438\u0442\u0438\u0432\u044B - \u043F\u0440\u043E\u0441\u0442\u043E \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u043C. \u041A\u0435\u0439\u0441 \u0441 null \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D \u0442\u0443\u0442.\n if (!(first instanceof Object)) return first === second;\n\n //? \u0415\u0441\u043B\u0438 \u041D\u0415 \u043F\u0440\u0438\u043C\u0435\u0442\u0438\u0432\u044B - \u043D\u0435 \u0432\u0430\u0436\u043D\u043E \u043C\u0430\u0441\u0441\u0438\u0432 \u0438\u043B\u0438 \u043D\u0435\u0442, \u043C\u0435\u0442\u043E\u0434\u044B \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u0434\u043B\u044F \u043C\u0430\u0441\u0441\u0438\u0432\u0430 \u0442\u043E\u0436\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\n\n const getComparationStructure = (data) => {\n if (typeof data === 'function') return data.toString();\n if (!(data instanceof Object)) return data;\n\n return Object.entries(data)\n .sort((a, b) => (a[0]).localeCompare(b[0]))\n .map(([key, value]) => ([key, getComparationStructure(data[key])]));\n };\n\n //? \u041F\u043E\u043B\u0443\u0447\u0430\u0435\u043C \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u044B \u0434\u043B\u044F \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F (\u0441 \u0443\u0447\u0435\u0442\u043E\u043C \u0433\u043B\u0443\u0431\u0438\u043D\u044B) - \u043C\u0430\u0441\u0441\u0438\u0432\u044B \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432, \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u043C \u043F\u043E \u043A\u043B\u044E\u0447\u0430\u043C,\n const structureForComparingOfFirst = getComparationStructure(first);\n const structureForComparingOfSecond = getComparationStructure(second);\n\n return (JSON.stringify(structureForComparingOfFirst) === JSON.stringify(structureForComparingOfSecond));\n};\n\n// Set Carret to the End of Input\nexport const setCarretToEnd = (input) => {\n setTimeout(() => {\n const tmp = input.value;\n input.value = \"\";\n input.value = tmp;\n }, 10);\n};\n\nexport const compareAlphabetical = (a, b, key = \"label\") => {\n let item1 = a?.[key];\n let item2 = b?.[key];\n\n if (typeof item1 !== \"string\" || typeof item2 !== \"string\") return 0;\n\n item1 = item1?.toLowerCase();\n item2 = item2?.toLowerCase();\n\n if (item1 < item2) {\n return -1;\n }\n if (item1 > item2) {\n return 1;\n }\n return 0;\n};\n\nexport const getBase64 = (file) => {\n if (file) {\n return new Promise(function (resolve, reject) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(\"Error: \", error);\n });\n }\n};\n\nexport const renderFileSize = (bytes, decimals = 2) => {\n if (!Number(bytes)) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n};\n\nexport const getUniqueFileExtensions = (extListString) => {\n // Split the extensions list into an array\n const extArray = extListString\n ?.split(\",\")\n .map((ext) => ext.trim().toUpperCase());\n\n // Remove duplicates using a Set\n const uniqueExts = [...new Set(extArray)];\n\n // Join the unique extensions into a string\n return uniqueExts.join(\", \");\n};\n\nexport const getOS = () => {\n let userAgent = window.navigator.userAgent,\n platform =\n window.navigator?.userAgentData?.platform || window.navigator.platform,\n macosPlatforms = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"],\n windowsPlatforms = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"],\n iosPlatforms = [\"iPhone\", \"iPad\", \"iPod\"],\n os = OS.Unknown;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = OS.MacOS;\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = OS.iOS;\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = OS.Windows;\n } else if (/Android/.test(userAgent)) {\n os = OS.Android;\n } else if (/Linux/.test(platform)) {\n os = OS.Linux;\n }\n\n return os;\n};\n\n\nString.prototype.longerThan = function (compareWith) {\n return this?.length > compareWith?.length;\n};\nString.prototype.lastIndexEqualsTo = function (index) {\n return this?.length - 1 === index;\n};\n\nexport const getCorrectTestId = ({ testId = \"\", withTier = true }) =>\n testId && testId !== undefined ? `${withTier ? \"-\" : \"\"}${testId}` : \"\";\n\n\n", "import type { ReactElement, SVGProps } from 'react';\n\nexport function HelpCircleFilled(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"#9AA0B9\"\n d=\"M8 14.667A6.667 6.667 0 1 0 8 1.333a6.667 6.667 0 0 0 0 13.334Z\"\n />\n <path\n stroke=\"#fff\"\n d=\"M6.06 6a2 2 0 0 1 3.887.667c0 1.333-2 2-2 2M8 11.333h.006\"\n />\n </svg>\n )\n}\n", "import type { ISpinnerProps } from './Spinner.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport './Spinner.scss';\n\nconst CN = 'loader-box';\n\nconst Spinner: React.FC<ISpinnerProps> = ({ size = null, className, testId = CN }) => {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n data-testid={testId}\n className={cn(\n CN,\n {\n j5: size !== 'small',\n j8: size === 'small',\n },\n className,\n )}\n >\n <div className={cn('lds-ring', { [`lds-ring_${size}`]: size })}>\n <div />\n <div />\n <div />\n <div />\n </div>\n </div>\n );\n};\n\nexport default Spinner;\n", "export const I_AM_OPENED_EVENT_NAME = 'hint:i-am-open';\nexport const I_AM_OPENED_EVENT_OPTIONS = {\n bubbles: true,\n cancelable: true,\n composed: false,\n};\n", "export const getHintContainerId = (hintId: string | number): string => `hint-container-for-hint--id-${hintId}`;\n\nexport function getHintContainer(hintId: string | number): HTMLElement | null {\n return document.getElementById(getHintContainerId(hintId));\n}\n\nexport function getParentNode(): HTMLElement | null {\n return (\n document.querySelector('div#root')\n ?? document.querySelector('div#app')\n ?? document.body\n );\n}\n\nexport function initHintContainer(hintId: string | number, hintContainerSettings: any): void {\n const { className } = hintContainerSettings;\n const hintContainer = document.createElement('div');\n\n hintContainer.setAttribute('id', getHintContainerId(hintId));\n hintContainer.classList.add('hint__container');\n if (className) hintContainer.classList.add(className);\n\n getParentNode()?.append(hintContainer);\n}\n\n// ? addEventListener \u043C\u043E\u0436\u043D\u043E \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0432\u0443\u043C\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u0430\u043C\u0438\n// ? - \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u043F\u0440\u044F\u043C\u043E\u0439 \u043A\u043E\u043B\u0431\u044D\u043A (\u0444-\u044E)\n// ? - \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u043E\u0431\u044A\u0435\u043A\u0442 \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0435\u0441\u0442\u044C \u043C\u0435\u0442\u043E\u0434 handleEvent (\u043F\u043E\u043C\u0438\u043C\u043E handleEvent \u043C\u043E\u0436\u043D\u043E \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432 this \u043F\u0440\u043E\u0447\u0438\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F)\n// ? \u041F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u0441\u044F \u0432\u0442\u043E\u0440\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 (\u0432\u043E\u043E\u0431\u0449\u0435 \u043C\u043E\u0436\u043D\u043E \u043D\u0435 \u043F\u0438\u0441\u0430\u0442\u044C, \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0438 \u043F\u0440\u043E\u0441\u0442\u043E \u043E\u0442 \u0437\u0430\u043C\u044B\u043A\u0430\u043D\u0438\u044F, \u043D\u043E \u0434\u0435\u043B\u0430\u0435\u043C \u043F\u043E \"\u0434\u0437\u0435\u043D\u0443\")\n// ! \u041C\u0435\u0442\u043E\u0434 \u043D\u0430\u043F\u0438\u0441\u0430\u043D \u0441 \u0440\u0430\u0441\u0447\u0435\u0442\u043E\u043C \u043D\u0430 \u0442\u043E, \u0447\u0442\u043E \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u0422\u041E\u041B\u042C\u041A\u041E \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C \u0442\u0443\u043B\u0442\u0438\u043F\u043E\u043C\nexport function HandleScrollObj(this: any, setIsOpen: (isOpen: boolean) => void): void {\n this.setIsOpen = setIsOpen;\n this.handleEvent = function () {\n this.setIsOpen(false);\n };\n}\n\nexport function HandleClickOutsideObj(this: any, id: string | number, setIsOpen: (isOpen: boolean) => void): void {\n this.id = id;\n this.setIsOpen = setIsOpen;\n this.handleEvent = function (event: Event) {\n if (getHintContainer(this.id)) {\n if (!(getHintContainer(this.id) as HTMLElement).contains(event?.target as Node)) {\n this.setIsOpen(false);\n }\n }\n };\n}\n", "import type { ReactElement } from 'react';\n\nimport type { LangKey } from '../../FormElements/Input/types';\nimport type { IMainMenuProps } from './MainMenu.interface';\nimport cn from 'classnames';\nimport { useState } from 'react';\n\nimport * as Icons from 'react-feather';\nimport { NavLink } from 'react-router-dom';\n\nimport Langs from '../../../Langs';\nimport Accordion from '../../UI/Accordion/Accordion';\nimport './MainMenu.scss';\n\nfunction MainMenu(props: IMainMenuProps): ReactElement {\n const { items, className } = props;\n const lng = (globalThis as any).lng as LangKey;\n const txt = Langs[lng];\n const [isOpen, setIsOpen] = useState(true);\n const [isMenuHovered, setIsMenuHovered] = useState(false);\n const [isMenuIconHovered, setIsMenuIconHovered] = useState(false);\n\n const chapterClass = cn('main-menu--items-box-chapter', {\n 'main-menu--items-box-chapter-hidden': !isOpen && !isMenuHovered,\n });\n const accordionClass = cn('main-menu--accordion', {\n 'main-menu--accordion-hidden': !isOpen && !isMenuHovered,\n });\n const itemsBoxClass = cn('main-menu--items-box', {\n 'main-menu--items-box-closed': !isOpen && !isMenuHovered,\n });\n const mainMenuClass = cn('main-menu', className, {\n 'main-menu--closed': !isOpen && !isMenuHovered,\n });\n\n const onMenuHover = (): void => {\n if (!isOpen) {\n setIsMenuHovered(!isMenuHovered);\n items.mainMenu.forEach((item) => {\n item.isOpen = false;\n });\n items.partners.forEach((item) => {\n item.isOpen = false;\n });\n items.other.forEach((item) => {\n item.isOpen = false;\n });\n }\n };\n\n const onCloseMenu = (): void => {\n setIsOpen(!isOpen);\n items.mainMenu.forEach((item) => {\n item.isOpen = false;\n });\n items.partners.forEach((item) => {\n item.isOpen = false;\n });\n items.other.forEach((item) => {\n item.isOpen = false;\n });\n };\n\n const changeMenuIcon = (): ReactElement | null => {\n if (isOpen && !isMenuIconHovered) return <Icons.Menu />;\n if (isOpen && isMenuIconHovered) return <Icons.ChevronLeft />;\n if (!isOpen && isMenuHovered) return <Icons.ChevronRight />;\n if (!isOpen) return <div className=\"main-menu--logo-close\" />;\n return null;\n };\n\n return (\n <div\n className={mainMenuClass}\n onMouseEnter={() => onMenuHover()}\n onMouseLeave={() => setIsMenuHovered(false)}\n >\n <div\n className={cn('main-menu--header', {\n 'main-menu--header-closed': !isOpen && !isMenuHovered,\n })}\n >\n <div\n className={cn('main-menu--logo', {\n 'main-menu--logo-none': !isOpen && !isMenuHovered,\n })}\n />\n <div data-testid=\"main-menu--header-btn\" className=\"main-menu--header-btn\" onClick={() => onCloseMenu()}>\n <div\n className=\"j5\"\n onMouseEnter={() => setIsMenuIconHovered(true)}\n onMouseLeave={() => setIsMenuIconHovered(false)}\n >\n {changeMenuIcon()}\n </div>\n </div>\n </div>\n\n <div className={itemsBoxClass}>\n <div className={cn('main-menu--items-box-main')}>\n {items.main.map((item, index) => {\n const Icon = Icons[item.icon as keyof typeof Icons];\n return item.link\n ? (\n <NavLink\n to={item.link}\n key={index}\n className={cn('main-menu--items-box-title')}\n >\n <div className=\"main-menu--item\">\n <div className=\"df\">\n <Icon className={cn('mr5', item.className)} />\n </div>\n <span className={cn({ hidden: !isOpen && !isMenuHovered })}>\n {item?.title || 'Link'}\n </span>\n </div>\n </NavLink>\n )\n : (\n <span\n key={index}\n className={cn('main-menu--items-box-title', {\n hidden: !isOpen && !isMenuHovered,\n })}\n >\n {txt?.titles[item?.title as keyof typeof txt.titles]}\n </span>\n );\n })}\n </div>\n\n <div className={chapterClass}>\n <span>Main menu</span>\n </div>\n <Accordion\n className={accordionClass}\n items={items.mainMenu}\n />\n\n <div className={chapterClass}>\n <span>Partners</span>\n </div>\n <Accordion\n isOpen={isOpen}\n isMenuHovered={isMenuHovered}\n className={accordionClass}\n items={items.partners}\n />\n\n <div className={chapterClass}>\n <span>Other</span>\n </div>\n <Accordion\n className={accordionClass}\n isOpen={isOpen}\n isMenuHovered={isMenuHovered}\n items={items.other}\n />\n </div>\n </div>\n );\n}\n\nexport default MainMenu;\n", "const Langs = {\n en: {\n auth: {},\n settings: {},\n labels: {\n industries: \"Industries\",\n includedLenders: \"Included Lenders\",\n admin: \"Administrator\",\n user: \"User\",\n help: \"Help\",\n description: \"Description\",\n value: \"Value\",\n paramName: \"Parameter name(key)\",\n active: \"Active\",\n pause: \"Pause\",\n error: \"Error\",\n sold: \"Sold\",\n processing: \"Processing\",\n home: \"Home\",\n goods: \"Goods\",\n improvement: \"Improvement\",\n jewelry: \"Jewelry\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n dateOfBirth: \"Date of Birth\",\n militaryStatus: \"Military status\",\n ssn: \"SSN\",\n lengthAtAddress: \"Length At Address\",\n rentOrOwn: \"Rent or Own\",\n zip: \"ZIP\",\n city: \"City\",\n state: \"State\",\n address: \"Address\",\n email: \"E-mail\",\n homePhone: \"Home Phone\",\n cellPhone: \"Cell Phone\",\n contactTime: \"Contact Time\",\n dlState: \"DL state\",\n dlNumber: \"DL number\",\n ownCar: \"Do you own a car?\",\n tcpaOptin: \"TCPA OPTIN\",\n incomeSource: \"Income Source\",\n timeEmployed: \"Time Employed\",\n jobTitle: \"Job Title\",\n currentEmployer: \"Current Employer\",\n employersPhone: \"Employer's Phone\",\n netMonthlyIncome: \"Net monthly income\",\n howOftenIsPaid: \"How often is paid\",\n nextPayDate: \"Next Pay Date\",\n secondPayDate: \"Second Pay Date\",\n loanAmount: \"Loan amount\",\n ip: \"IP\",\n storyName: \"Story name\",\n channelName: \"Channel name\",\n employmentInfo: \"Employment Information\",\n personalDetails: \"Personal Details\",\n offer: \"Offer\",\n offers: \"Offers\",\n status: \"Status\",\n name: \"Name\",\n from: \"From\",\n to: \"to\",\n periodMonths: \"Period (months)\",\n loansSent: \"Loans Sent\",\n approved: \"Approved\",\n rejected: \"Rejected\",\n loanAmountApproved: \"Loan Amount Approved ($)\",\n loanAmountRejected: \"Loan Amount Rejected ($)\",\n approveRate: \"Approve Rate (%)\",\n actions: \"Actions\",\n locations: \"Locations\",\n score: \"Score\",\n priority: \"Priority\",\n lender: \"Lender\",\n weight: \"Weight\",\n selectLender: \"Select lender\",\n },\n singulars: {},\n titles: {\n pingTree: \"Ping tree\",\n edit: \"Edit\",\n create: \"Create\",\n add: \"Add\",\n consumerInfo: \"Consumer info\",\n personalDetails: \"Personal Details\",\n employmentInfo: \"Employment Information\",\n tools: \"Tools\",\n lenders: \"Lenders\",\n settings: \"Settings\",\n dashboard: \"Dashboard\",\n consumers: \"Consumers\",\n ticketDesk: \"Ticket desk\",\n accounting: \"Accounting\",\n users: \"Users\",\n merchants: \"Merchants\",\n lenderPingTree: \"Lender Ping Tree\",\n reports: \"Reports\",\n leads: \"Leads\",\n location: \"Location\",\n mainMenu: \"Main menu\",\n partners: \"Partners\",\n other: \"Other\",\n homeGoodsAndInteriorDesign: \"Home Goods and Interior Design\",\n },\n placeholders: {\n typeName: \"Type name\",\n params: \"Params placeholder\",\n value: \"Value placeholder\",\n description: \"Description placeholder\",\n },\n hints: {\n landerNotIncluded:\n \"Lender is not included in Ping Tree by the \u201CHome Goods\u201D industry\",\n noMerchants: \"No Merchants for the \u201CHome Goods\u201D industry\",\n },\n buttons: {\n create: \"Create\",\n edit: \"Edit\",\n add: \"Add\",\n close: \"Close\",\n apply: \"Apply\",\n pingTree: \"Ping tree\",\n addRow: \"Add row\",\n consumerInfo: \"Consumer Info\",\n deletePingTree: \"Delete Ping Tree\",\n cancel: \"Cancel\",\n },\n radioButtons: {},\n weekDays: {\n su: \"Su\",\n mo: \"Mo\",\n tu: \"Tu\",\n we: \"We\",\n th: \"Th\",\n fr: \"Fr\",\n sa: \"Sa\",\n },\n alerts: {\n lendersWillBeRemoved: \"lenders will be removed\",\n },\n checkboxes: {\n homeGoods: \"Home Goods\",\n travel: \"Travel\",\n energyImprovement: \"Energy Improvement\",\n jewelryIncluded: \"Jewelry (included in PingTree name 2)\",\n jewelry: \"Jewelry\",\n autoRepair: \"Auto Repair\",\n cosmetics: \"Cosmetics\",\n health: \"Health\",\n },\n errors: {},\n texts: {},\n tabs: {\n general: \"General\",\n payments: \"Payments\",\n filters: \"Filters\",\n offers: \"Offers\",\n merchants: \"Merchants\",\n integration: \"Integration\",\n customDetails: \"Custom details\",\n customerDetails: \"Customer details\",\n postsLog: \"Posts log\",\n },\n toasts: {},\n },\n};\n\nexport default Langs;\n", "import type { IAccordionProps } from './Accordion.interface';\nimport cn from 'classnames';\nimport React, { useState } from 'react';\nimport * as Icons from 'react-feather';\n\nimport { NavLink } from 'react-router-dom';\n\nimport { handleObjectChange } from '../../../Functions/utils';\nimport AccordionItem from './AccordionItem';\n\nimport './Accordion.scss';\n\nconst CN = 'accordion';\n\nconst Accordion: React.FC<IAccordionProps> = ({\n items,\n className,\n itemClassName,\n isMenuHovered,\n isOpen,\n testId = CN,\n}) => {\n const [data, setData] = useState(items);\n\n const onChange = handleObjectChange(setData, () => setData([...data]));\n\n const handleArrayChange = (e: boolean, index: number, prop: keyof (typeof data)[0]): void => {\n // @ts-ignore\n data[index][prop] = e;\n onChange(data);\n };\n\n return (\n <div className={cn(CN, className)} data-testid={testId} role=\"list\" aria-label=\"Accordion list\">\n {items?.map((item, index) => {\n const Icon = Icons[item.icon as keyof typeof Icons];\n return item.link\n ? (\n <NavLink\n data-testid={`${testId}-link-${index}`}\n key={index}\n to={item.link}\n className={cn('main-menu--item main-menu--items-box-title')}\n >\n {item?.icon && <Icon className={cn('mr5', item?.className)} />}\n <span className={cn({ hidden: !isOpen && !isMenuHovered })}>{item?.title || 'Link'}</span>\n </NavLink>\n )\n : (\n <AccordionItem\n testId={`${testId}-item-${index}`}\n key={index}\n className={itemClassName}\n item={item}\n isOpen={!!item.isOpen}\n onClick={value => handleArrayChange(value, index, 'isOpen')}\n />\n );\n })}\n </div>\n );\n};\n\nexport default Accordion;\n", "import type { IAccordionItemProps } from './Accordion.interface';\nimport cn from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport * as Icons from 'react-feather';\n\nimport { NavLink } from 'react-router-dom';\n\nimport Status from '../Status';\n\nimport './Accordion.scss';\n\nconst AccordionItem: React.FC<IAccordionItemProps> = ({\n item,\n onClick,\n isOpen,\n className,\n children,\n noChevron,\n testId = 'accordion-item',\n}) => {\n const Icon = Icons[item.icon as keyof typeof Icons];\n const [maxHeight, setMaxHeight] = useState<number>(0);\n const ref = useRef<HTMLDivElement>(null);\n\n const getItemsHeight = (): number => {\n let itemHeight = 0;\n ref.current?.childNodes.forEach((el) => {\n itemHeight += (el as HTMLElement).offsetHeight;\n });\n\n return itemHeight + 20;\n };\n\n useEffect(() => {\n setMaxHeight(isOpen ? getItemsHeight() : 0);\n }, [isOpen]);\n\n const calculateStatusCount = (): {\n active: number;\n pause: number;\n } | undefined => {\n return item?.rows?.reduce(\n (acc, row) => {\n const result = row.cols.reduce(\n (accum, col) => ({\n active: accum.active + (col.status === 'active' ? 1 : 0),\n pause: accum.pause + (col.status === 'pause' ? 1 : 0),\n }),\n { active: 0, pause: 0 },\n );\n\n return {\n active: acc.active + result.active,\n pause: acc.pause + result.pause,\n };\n },\n { active: 0, pause: 0 },\n );\n };\n\n return (\n <div\n data-testid={testId}\n className={cn('accordion--item', className)}\n role=\"region\"\n aria-labelledby={`accordion-title-${item.title}`}\n >\n <div\n className={cn('accordion--title-box', {\n 'accordion--title-open': isOpen,\n })}\n onClick={() => onClick(!isOpen)}\n id={`accordion-title-${item.title}`}\n role=\"button\"\n aria-expanded={isOpen}\n aria-controls={`accordion-content-${item.title}`}\n tabIndex={0}\n >\n <div className=\"j4 no-wrap\">\n {item?.icon && <Icon className={cn('mr5', item?.className)} aria-hidden=\"true\" />}\n <span className=\"accordion--title\">{item.title || 'Menu Chapter'}</span>\n </div>\n\n <div className=\"j6 accordion-title__right-box\">\n {item.status && (\n <div className=\"mr5\">\n <Status\n type={item?.status.type}\n value={item?.status.value}\n status={item?.status.status}\n active={calculateStatusCount()?.active}\n pause={calculateStatusCount()?.pause}\n />\n </div>\n )}\n\n {!noChevron && (\n <Icons.ChevronRight\n aria-hidden=\"true\"\n className={cn('accordion--title-chevron', {\n 'accordion--title-chevron-open': isOpen,\n })}\n />\n )}\n </div>\n </div>\n\n <div\n ref={ref}\n style={{ maxHeight }}\n className={cn('accordion--content', {\n 'accordion--content-is-open': isOpen,\n })}\n id={`accordion-content-${item.title}`}\n role=\"region\"\n aria-labelledby={`accordion-title-${item.title}`}\n >\n {item.children\n ? item.children.map((el) => {\n return (\n <NavLink to={el.link} key={el.id} className=\"accordion--content-item accordion--menu-link\">\n {el?.title || 'Menu item'}\n </NavLink>\n );\n })\n : children}\n </div>\n </div>\n );\n};\n\nexport default AccordionItem;\n", "import type { IStatusProps } from './Status.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport './Status.scss';\n\nfunction defaultOnClick(): void {}\n\nconst Status: React.FC<IStatusProps> = ({\n icon,\n value,\n label,\n status,\n disabled,\n type,\n active = 0,\n pause = 0,\n className,\n noBackground,\n children,\n testId = 'status',\n onClick = defaultOnClick,\n}) => {\n if (!status) return null;\n\n const text = children && typeof children === 'string' ? children : value || label || status;\n const formattedLabel = text?.[0].toUpperCase() + text?.slice(1);\n\n return (\n <div onClick={onClick} data-testid={testId} className={cn({ disabled }, className)}>\n {type === 'number'\n ? (\n <div>\n {active === 0 && pause === 0\n ? (\n <div className=\"status status--error\">\n <span>{active}</span>\n </div>\n )\n : (\n <div className=\"status status--warning\">\n <span className=\"status--number-active\">{active}</span>\n <span className=\"color--gray-gull\"> / </span>\n <span className={pause > 0 ? 'color--froly' : 'color--gray-gull'}>{pause}</span>\n </div>\n )}\n </div>\n )\n : (\n <div\n className={cn(\n 'status',\n `status--${status}`,\n {\n 'status--no-bg': noBackground && status === 'pause',\n 'color--gray-gull': noBackground && status === 'pause' && !className,\n 'j4': !!icon,\n },\n className,\n )}\n >\n {icon}\n {formattedLabel}\n </div>\n )}\n </div>\n );\n};\n\nexport default Status;\n", "import Status from './Status';\n\nexport default Status;\nexport type { IStatusProps } from './Status.interface';\n", "import Spinner from './Spinner';\n\nexport default Spinner;\nexport type { ISpinnerProps } from './Spinner.interface';\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Spinner_default", "import_classnames", "import_react", "import_react_feather", "import_classnames", "import_react", "import_jsx_runtime", "cn", "import_jsx_runtime", "className", "cn", "import_jsx_runtime", "cn", "
|
|
3
|
+
"sources": ["../src/layout.ts", "../src/Atomic/Layout/Header/Header.tsx", "../src/Atomic/UI/Hint/Hint.tsx", "../src/Functions/utils.js", "../src/Molecular/CustomIcons/components/HelpCircleFilled.tsx", "../src/Atomic/Layout/Spinner/Spinner.tsx", "../src/Atomic/UI/Hint/partials/_constants.ts", "../src/Atomic/UI/Hint/partials/_utils.ts", "../src/Atomic/Layout/Spinner/index.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * IntelicoKit \u2014 Public subpath: \"intelicoreact/layout\"\n * Layout components: Header, Spinner\n *\n * MainMenu \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 react-router-dom (NavLink) \u0438 \u0436\u0438\u0432\u0451\u0442 \u0432\n * \"intelicoreact/router-ui\" \u2014 \u044D\u0442\u043E\u0442 entry \u043E\u0431\u044F\u0437\u0430\u043D \u043E\u0441\u0442\u0430\u0432\u0430\u0442\u044C\u0441\u044F \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u044B\u043C\n * \u043E\u0442 \u0440\u043E\u0443\u0442\u0435\u0440\u0430 (\u0441\u043C. router-ui.ts).\n */\n\nexport { default as Header } from './Atomic/Layout/Header/Header';\nexport { default as Spinner } from './Atomic/Layout/Spinner/index';\nexport type { ISpinnerProps } from './Atomic/Layout/Spinner/index';\n", "import type { ReactElement } from 'react';\n\nimport type { IHeaderProps } from './Header.interface';\nimport cn from 'classnames';\nimport { useRef, useState } from 'react';\n\nimport { Bell, ChevronRight, Power } from 'react-feather';\n\nimport Hint from '../../UI/Hint/Hint';\nimport './Header.scss';\n\nfunction Header({\n className,\n name = 'John',\n surname = 'Silver',\n status = 'admin',\n img = '',\n hintLabel = 'Help',\n hintText = 'Hint text',\n}: IHeaderProps): ReactElement {\n const [isOpen, setIsOpen] = useState(false);\n\n const userMenu = useRef(null);\n\n const handle = {\n toggleMenu: () => {\n if (!isOpen) setIsOpen(!isOpen);\n },\n closeMenu: () => {\n setTimeout(() => setIsOpen(false), 50);\n },\n logout: () => {\n handle.toggleMenu();\n },\n };\n\n return (\n <header className={cn('header', className)}>\n <div className=\"df\">\n <Hint\n side=\"bottom\"\n hint={hintText}\n className=\"header__hint\"\n label={hintLabel}\n />\n </div>\n\n <div className=\"j6 user-menu\">\n <div onClick={() => {}} className=\"header--bell\">\n <Bell className=\"header--bell-icon\" />\n <div className=\"header--bell-notification-icon\" />\n </div>\n\n <div className=\"header--user-ava\">\n {img && <img src={img} alt=\"user-avatar\" />}\n </div>\n\n <div className=\"dfc mr10\">\n <span className=\"header--user-name\">\n {name}\n {' '}\n {surname}\n </span>\n <span className=\"header--user-status\">{status}</span>\n </div>\n\n <ChevronRight\n onClick={handle.toggleMenu}\n data-testid=\"accordion--title-chevron\"\n className={cn('accordion--title-chevron', {\n 'accordion--title-chevron-open': isOpen,\n })}\n />\n {isOpen && (\n <div className=\"user-menu__dropdown\" ref={userMenu}>\n <div className=\"user-menu__item\" onClick={handle.logout}>\n <Power className=\"mr10\" />\n {' '}\n Logout\n </div>\n </div>\n )}\n </div>\n </header>\n );\n}\n\nexport default Header;\n", "/* eslint-disable react-web-api/no-leaked-event-listener */\n/* eslint-disable react-dom/no-missing-button-type */\nimport type { ReactNode } from 'react';\nimport type { IHintProps } from './Hint.interface';\n\nimport cn from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { AlertTriangle, HelpCircle } from 'react-feather';\n\nimport { capitalized } from '../../../Functions/utils';\nimport { HelpCircleFilled } from '../../../Molecular/CustomIcons';\n\nimport Spinner from '../../Layout/Spinner/Spinner';\n\nimport { I_AM_OPENED_EVENT_NAME, I_AM_OPENED_EVENT_OPTIONS } from './partials/_constants';\nimport { getHintContainer, HandleClickOutsideObj, HandleScrollObj, initHintContainer } from './partials/_utils';\n\nimport './Hint.scss';\n\n// \u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u043C\u0430\u043F \u0434\u043B\u044F \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0442\u0430\u0439\u043C\u0435\u0440\u043E\u0432 \u043F\u043E hintId\nconst hintTimeoutMap = new Map<string, NodeJS.Timeout>();\n\nlet isContentHoveredOuter = false;\n\nconst DEFAULT_EMPTY_OBJ = {} as IHintProps['hintContainer'];\n\nfunction DEFAULT_VOID_FN(): void {}\n\ninterface IIAmOpenedDetails {\n hintId: string;\n}\n\nconst Hint: React.FC<IHintProps> = ({\n hint,\n side = 'right',\n className,\n hintContainer = DEFAULT_EMPTY_OBJ,\n label = '',\n variant = 'filled',\n handleOpenType = 'click',\n onClickCallback,\n onOpenChange = DEFAULT_VOID_FN,\n key,\n id,\n children,\n icon,\n isAccessability = false,\n testId = 'hint',\n isHoverableContent = false,\n isLoading,\n isCloseOnChildrenClick = false,\n}) => {\n const hintRef = useRef(null);\n const [hintId] = useState<string>(id ?? key ?? Math.random().toString(16).slice(2));\n const [iAmOpenedOptions] = useState<Record<string, any>>({ ...I_AM_OPENED_EVENT_OPTIONS, detail: { hintId } });\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [isStyleComputed, setIsStyleComputed] = useState<boolean>(false);\n\n // ? \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C handleScroll-\u0441\u0442\u0435\u0439\u0442, \u0447\u0442\u043E\u0431\u044B \u043D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043C\u0435\u043D\u044F\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0442\u0435\u043C \u0441\u0430\u043C\u044B\u043C \u0433\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0443\u044E \u0440\u0430\u0431\u043E\u0442\u0443 removeEventListener.\n // ? \u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0443\u0435\u043C \u0441\u0442\u0435\u0439\u0442 \u0432\u044B\u0437\u043E\u0432\u043E\u043C \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u0430 HandleScrollObj, \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u043C setIsOpen \u0434\u043B\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 \u043E\u0431\u044A\u0435\u043A\u0442.\n const [handleScroll] = useState(new (HandleScrollObj as any)(setIsOpen));\n // ? \u041F\u043E \u0430\u043D\u0430\u043B\u043E\u0433\u0438\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C handleClickOutside\n const [handleClickOutside] = useState(new (HandleClickOutsideObj as any)(hintId, setIsOpen));\n\n const isCallbackExist: boolean = typeof onClickCallback === 'function';\n\n const handle = {\n onMouseEnter: (): void => {\n const existing = hintTimeoutMap.get(hintId);\n if (existing) clearTimeout(existing);\n\n if (handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n setIsOpen(true);\n !isOpen && onClickCallback?.();\n\n // ? (FIN-10491) \u0418\u0434\u0435\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F:\n // ? \u041B\u044E\u0431\u043E\u0439 hint \u043A\u0430\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u043D \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \"\u0448\u0438\u0440\u043E\u043A\u043E\u0432\u0435\u0449\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u043E\u0440\u0451\u0442\" - \"\u044F \u043E\u0442\u043A\u0440\u044B\u0442!\"\n // ? \u0418, \u0432 \u0441\u0432\u043E\u044E \u043E\u0447\u0435\u0440\u0435\u0434\u044C, \u043B\u044E\u0431\u043E\u0439 hint \u0441\u043B\u0443\u0448\u0430\u0435\u0442 \"\u0448\u0438\u0440\u043E\u043A\u043E\u0432\u0435\u0449\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043E\u0440\" \u0438 \u043A\u0430\u043A \u0443\u0441\u043B\u044B\u0448\u0438\u0442 \"\u0434\u0443\u043C\u0430\u0435\u0442\" - \"\u0430 \u044D\u0442\u043E \u043D\u0435 \u044F \u043B\u0438 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E \u043E\u0442\u043A\u0440\u044B\u0442?\".\n // ? \u0415\u0441\u043B\u0438 \u041D\u0415 \u043E\u043D, \u0442\u043E \u0442\u043E\u0433\u0434\u0430 \u043E\u043D \u043F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\n\n // ? \u0412 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \"\u0448\u0438\u0440\u043E\u043A\u043E\u0432\u0435\u0449\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043E\u0440\u0430\" \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u0441\u0438\u0441\u0442\u0435\u043C\u0443:\n // ? - \u0434\u0438\u0441\u043F\u0430\u0442\u0447\u0438\u043C \u043D\u0430 \"\u0441\u0435\u0431\u0435\" \u0412\u0421\u041F\u041B\u042B\u0412\u0410\u042E\u0429\u0418\u0419 \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0439 \u0438\u0432\u0435\u043D\u0442\n // ? - \u043D\u043E \u0447\u0442\u043E\u0431\u044B \"\u0441\u043B\u044B\u0448\u0430\u0442\u044C \u0433\u043E\u043B\u043E\u0441\u0430\" \u0432\u0441\u0435\u0445 \u0445\u0438\u043D\u0442\u043E\u0432 \"\u0441\u043B\u0443\u0448\u0430\u0435\u043C\" \u043D\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435 \u0432\u0441\u043F\u043B\u044B\u0442\u0438\u044F (\u0442.\u0435. \u043D\u0430 document)\n // @ts-ignore\n hintRef.current?.dispatchEvent?.(new CustomEvent(I_AM_OPENED_EVENT_NAME, iAmOpenedOptions));\n }, 350);\n hintTimeoutMap.set(hintId, timer);\n }\n },\n onMouseLeave: (): void => {\n const existing = hintTimeoutMap.get(hintId);\n if (existing) clearTimeout(existing);\n\n if (!isHoverableContent && handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n setIsOpen(false);\n hintTimeoutMap.delete(hintId);\n }, 1000);\n hintTimeoutMap.set(hintId, timer);\n }\n else if (isHoverableContent && handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n if (!isContentHoveredOuter) {\n setIsOpen(false);\n }\n hintTimeoutMap.delete(hintId);\n }, 100);\n hintTimeoutMap.set(hintId, timer);\n }\n },\n onMouseLeaveHoverableContent: (): void => {\n const existing = hintTimeoutMap.get(hintId);\n if (existing) clearTimeout(existing);\n\n if (isHoverableContent && handleOpenType === 'hover') {\n const timer = setTimeout(() => {\n setIsOpen(false);\n isContentHoveredOuter = false;\n hintTimeoutMap.delete(hintId);\n }, 100);\n hintTimeoutMap.set(hintId, timer);\n }\n },\n onClick: isCloseOnChildrenClick ? (): void => setIsOpen(false) : (): void => {},\n };\n\n const getHintMarkUp = (className: string | undefined): ReactNode => {\n return (\n <div\n data-testid=\"test-hint-text\"\n className={cn('hint__text', `hint__text_${side}`, `hint--${className}__text`)}\n onMouseEnter={(): void => {\n if (isHoverableContent) isContentHoveredOuter = true;\n }}\n onMouseLeave={isHoverableContent ? handle.onMouseLeaveHoverableContent : undefined}\n onClick={handle.onClick}\n style={{ visibility: isStyleComputed ? 'visible' : 'hidden' }}\n >\n {isLoading && <Spinner size=\"small\" />}\n {hint}\n {children}\n </div>\n );\n };\n\n const setHintContainerStyles = (): void | boolean => {\n const hc = getHintContainer(hintId);\n\n if (!hc || !isOpen) return false;\n\n const { width = 0, top = 0, left = 0 } = hintRef?.current !== null ? (hintRef?.current as HTMLElement)?.getBoundingClientRect() : {};\n const { addWidth, addLeft, addTop } = hintContainer ?? {};\n const windowInnerWidth = document.documentElement.clientWidth;\n const windowInnerHeight = document.documentElement.clientHeight;\n\n const sw = hc.getElementsByClassName('hint__text')[0];\n const { width: swWidth, height: swHeight } = sw?.getBoundingClientRect() || {};\n\n hc.style.width = isOpen ? ((addWidth && !Number.isNaN(+addWidth) ? +addWidth : 0) + width)?.toString().concat('px') : '0';\n hc.style.left = isOpen ? ((addLeft && !Number.isNaN(+addLeft) ? +addLeft : 0) + left)?.toString().concat('px') : '0';\n hc.style.top = isOpen ? ((addTop && !Number.isNaN(+addTop) ? +addTop : 0) + top)?.toString().concat('px') : '0';\n hc.style.maxHeight = isOpen ? swHeight?.toString().concat('px') : '0';\n\n // ? \u0411\u0430\u0437\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u0433\u0440\u0435\u0448\u043D\u043E\u0441\u0442\u0438\n // ? \u0412 \u0440\u0430\u0437\u043D\u044B\u0445 \u0441\u0432\u0438\u0442\u0447-\u043A\u0435\u0439\u0441\u0430\u0445 \u043C\u043E\u0436\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u043E \u0440\u0430\u0437\u043D\u043E\u043C\u0443 (\u0432\u0441\u044F \u0438\u043B\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E). \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u043B \"\u043D\u0430 \u0433\u043B\u0430\u0437\u043E\u043A\"\n const INACCURACY = 20;\n switch (side) {\n case 'top':\n case 'centeredTop':\n if (top - swHeight - (INACCURACY / 2) < 0) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add(`hint__text_${side === 'top' ? 'bottom' : 'centeredBottom'}`);\n }\n break;\n\n case 'bottom':\n case 'centeredBottom':\n if (top + swHeight + INACCURACY > windowInnerHeight) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add(`hint__text_${side === 'bottom' ? 'top' : 'centeredTop'}`);\n }\n break;\n\n case 'left':\n if (left - swWidth - (INACCURACY / 2) < 0) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add('hint__text_right');\n }\n break;\n\n case 'right':\n default:\n if (left + width + swWidth + (INACCURACY / 2) > windowInnerWidth) {\n sw.classList.remove(`hint__text_${side}`);\n sw.classList.add('hint__text_left');\n }\n break;\n }\n\n setIsStyleComputed(true);\n };\n\n const renderHintContainer = (className: string | undefined): React.ReactPortal | null => {\n const hc = getHintContainer(hintId);\n if (!hc) return null;\n return createPortal(getHintMarkUp(className), hc);\n }\n\n useEffect(() => {\n initHintContainer(hintId, hintContainer);\n\n // ? useEffect \u043F\u043E \u043D\u0443\u043B\u0435\u0432\u043E\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F 1 \u0440\u0430\u0437, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0441\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u043A\u043E\u043B\u0431\u0435\u043A \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u0441\u044F\n const iAmOpenedCallback = (ev: Event): CustomEvent<IIAmOpenedDetails> => {\n const event = ev as CustomEvent<IIAmOpenedDetails>;\n if (event?.detail?.hintId !== hintId) {\n setIsOpen(false);\n const timer = hintTimeoutMap.get(hintId);\n if (timer) {\n clearTimeout(timer);\n hintTimeoutMap.delete(hintId);\n }\n }\n return event;\n };\n\n if (hintRef.current) {\n // ? \u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u043F\u0440\u043E\u0441\u043B\u0443\u0448\u043A\u0443 \u043D\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435 \u0432\u0441\u043F\u043B\u044B\u0442\u0438\u044F\n document.addEventListener(I_AM_OPENED_EVENT_NAME, iAmOpenedCallback);\n }\n\n return () => {\n document.removeEventListener(I_AM_OPENED_EVENT_NAME, iAmOpenedCallback);\n const timer = hintTimeoutMap.get(hintId);\n if (timer) {\n clearTimeout(timer);\n hintTimeoutMap.delete(hintId);\n }\n };\n }, []);\n\n useEffect(() => {\n setIsStyleComputed(false);\n setHintContainerStyles();\n onOpenChange?.(isOpen);\n\n if (isOpen) {\n document.addEventListener('scroll', handleScroll, true);\n document.addEventListener('click', handleClickOutside, true);\n }\n else {\n document.removeEventListener('scroll', handleScroll, true);\n document.removeEventListener('click', handleClickOutside, true);\n }\n\n return () => {\n const timer = hintTimeoutMap.get(hintId);\n if (timer) {\n clearTimeout(timer);\n hintTimeoutMap.delete(hintId);\n }\n };\n }, [isOpen]);\n\n return (\n <div data-testid={testId} className={cn('hint', className)} ref={hintRef}>\n <button\n tabIndex={isAccessability ? 0 : -1}\n data-testid={typeof label === 'string' && label.length ? label.replace?.(/\\s/g, '-') : `${testId}--button`}\n aria-label={isAccessability && typeof label === 'string' ? label : ''}\n onClick={() =>\n handleOpenType === 'click'\n && (isCallbackExist ? onClickCallback?.() : setIsOpen(!isOpen))}\n onMouseEnter={handle.onMouseEnter}\n onMouseLeave={handle.onMouseLeave}\n className={cn('hint__button', { hint__button_active: isOpen })}\n >\n {icon || icon === null || (\n <>\n {variant === 'outlined' && <HelpCircle width={16} height={16} className=\"hint__icon outlined\" />}\n {variant === 'filled' && <HelpCircleFilled className=\"hint__icon filled\" />}\n {variant === 'warning' && (\n <AlertTriangle className=\"hint__icon\" color=\"#F06D8D\" width={16} height={16} />\n )}\n </>\n )}\n\n {label && (\n <span className={cn('hint__label', { 'color--primary': isOpen })}>\n {typeof label === 'string' ? capitalized(label) : label}\n </span>\n )}\n </button>\n\n {isOpen && renderHintContainer(className)}\n </div>\n );\n}\n\nexport default Hint;\n", "import { useEffect } from \"react\";\n\nimport moment from \"moment-timezone\";\n\nimport { DEFAULT_COLORS, OS } from \"../Constants/index.constants\";\n\nexport const uuid = () => Date.now().toString(36) + Math.random().toString(36).substring(2);\n\nexport const getIsOnlyAnObject = (input) => {\n return (\n typeof input === \"object\" && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u043F\u0440\u0438\u043C\u0438\u0442\u0438\u0432\u044B \u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438\n input instanceof Object && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" null\n !Array.isArray(input) && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u043C\u0430\u0441\u0441\u0438\u0432\u044B\n !(input instanceof Set) && // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u0441\u0435\u0442\u044B\n !(input instanceof Map) // \"\u043E\u0442\u0431\u0438\u0432\u0430\u0435\u0442\" \u043C\u0430\u043F\u044B\n );\n};\n\n/* eslint-disable guard-for-in, no-unused-vars */\nexport const handleObjectChange =\n (updateObject, updateFunction) =>\n (data, prop = \"\", isNumber) => {\n let value;\n if (data?.target) {\n value =\n data.target.type === \"checkbox\"\n ? data.target.checked\n : data.target.value;\n } else value = data;\n\n value = isNumber ? Number(value) : value;\n\n const props = prop.split(\".\");\n const currentObject = props.reduce((res, chapter, index) => {\n if (props.length !== index + 1) res = res[chapter];\n return res;\n }, updateObject);\n\n currentObject[props.pop()] = value;\n updateFunction();\n };\n\nexport const useOutsideToggle = (ref, setOut, open) => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setOut(open);\n }\n }\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleClickOutside);\n return () => {\n // Unbind the event listener on clean up\n document.removeEventListener(\"mouseup\", handleClickOutside);\n };\n }, [ref]);\n};\n\n// export const clone = obj => {\n// const data = obj instanceof Array ? [] : {};\n// for (const i in obj) data[i] = typeof obj[i] === 'object' && obj[i] != null ? clone(obj[i]) : obj[i];\n// return data;\n// };\n// ! \u042D\u0442\u043E\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435\u0435\nexport const clone = (input) => {\n if (input === null || typeof input !== \"object\") return input;\n const data = input instanceof Array ? [] : {};\n for (const i in input) data[i] = clone(input[i]);\n return data;\n};\n\nexport const getResponseClone = async (res) =>\n await (typeof res?.clone === \"function\" ? res.clone() : clone(res));\n\n//TimeUtils\nexport function transformUTCTimeToLocal(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n const utcDate = moment.utc(date).toDate();\n return moment(utcDate, format).local().format(format);\n}\nexport function transformLocalTimeToUTC(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n return moment(date, format).utc().format(format);\n}\nexport function transformUTCHoursToLocal(time, format = \"HH:mm:ss\") {\n if (!time) return;\n const splitedTime = time.split(\":\");\n const offset = moment().utcOffset();\n let HH = Number(splitedTime[0]);\n let mm = Number(splitedTime[1]);\n const ss = splitedTime[2];\n mm = mm + offset;\n while (mm > 59) {\n mm -= 60;\n HH += 1;\n }\n if (HH > 23) HH -= 24;\n while (mm < 0) {\n mm += 60;\n HH -= 1;\n }\n if (HH < 0) HH += 24;\n return `${HH}:${mm}:${ss}`;\n}\n\n//? \u041D\u0430\u043C\u0435\u0440\u044F\u043D\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u044E \u0441\u0430\u043C\u044B\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0439 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\nexport function transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n const { parseFormat, isReturnAsMomentInstance } = getIsOnlyAnObject(\n additional,\n )\n ? additional\n : {};\n\n if (typeof data !== \"string\" && typeof data !== \"number\") {\n return isReturnAsMomentInstance ? moment(\"error\") : ERROR_MESSGE;\n }\n\n //? \u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C parseFormat, \u0435\u0441\u043B\u0438 data \u043F\u0440\u0438\u0448\u043B\u0430 \u043A\u0430\u043A timestamp \u0438\u043B\u0438 \u0435\u0441\u043B\u0438 parseFormat \u043D\u0435 \u0441\u0442\u0440\u043E\u043A\u0430\n const momentArgs = [\n data,\n ...(!Number.isNaN(Number(data)) || typeof parseFormat === \"string\"\n ? []\n : [parseFormat]),\n ];\n\n //? \u0417\u0430\u0434\u0430\u0447\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C moment-\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440, \u0432\u0430\u043B\u0438\u0434\u043D\u044B\u0439 \u043B\u0438\u0431\u043E \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u044B\u0439\n const momentInstance = (() => {\n let instance = moment(...momentArgs);\n\n //? \u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u043C \u0432\u0430\u043B\u0438\u0434\u043D\u043E\u0441\u0442\u044C moment-\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440-\u0430 \u043F\u0443\u0442\u0435\u043C \u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043E \u043A \u0432\u044B\u0445\u043E\u0434\u043D\u043E\u043C\u0443 \u0444\u043E\u0440\u043C\u0430\u0442\u0443\n //? \u041F\u043E\u043F\u0430\u0434\u0435\u043C \u0432 \u044D\u0442\u043E\u0442 \u043A\u0435\u0439\u0441 \u0435\u0441\u043B\u0438\n //? - data \u044D\u0442\u043E timestamp\n //? - data \u044D\u0442\u043E \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 date-time\n //? - data \u044D\u0442\u043E \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 date (\u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F 00:00:00)\n if (instance.format(outputFormat) !== ERROR_VALUE) return instance;\n //? \u0415\u0441\u043B\u0438 \u0436\u0435 \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0442\u043E \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u0435\u043C, \u0447\u0442\u043E data \u043F\u0440\u0438\u0448\u043B\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 time\n //? \u0412 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0441\u043E\u0437\u0434\u0430\u0434\u0438\u043C \u043E\u0431\u044A\u0435\u043A\u0442 \u043E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044B, \u0440\u0430\u0441\u043F\u0430\u0440\u0441\u0438\u043C data \u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043C \u0432\u0440\u0435\u043C\u044F\n //? \u041A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442\u0441\u044F \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u044B: 'HH*mm', 'HH*mm*ss', 'HH*mm*ss*\u043B\u044E\u0431\u043E\u0435_\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E_ms', \u0433\u0434\u0435 * - \u043B\u044E\u0431\u043E\u0439 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\n else if (/^\\d\\d.\\d\\d/.test(data)) {\n instance = moment();\n const symbols = data.split(\"\");\n\n const timeArr = symbols\n .reduce(\n (acc, symbol, idx) => {\n if (Number.isNaN(Number(symbol))) {\n if (acc.group) acc.result.push(acc.group);\n acc.group = \"\";\n } else acc.group = `${acc.group}${symbol}`;\n if (idx === symbols.length - 1 && acc.group)\n acc.result.push(acc.group);\n return acc;\n },\n { result: [], group: \"\" },\n )\n //? reverse \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0442\u043E\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0441\u043B\u0435 \u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0442\u043E\u0434 pop, \u0430 \u043D\u0435 shift,\n //? \u0442.\u043A. \u043C\u0435\u0442\u043E\u0434\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F/\u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u044F \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043A\u043E\u043D\u0446\u0430 \u043C\u0430\u0441\u0441\u0438\u0432\u0430 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0431\u044B\u0441\u0442\u0440\u0435\u0435,\n //? \u0447\u0435\u043C \u0430\u043D\u0430\u043B\u043E\u0433\u0438\u0447\u043D\u044B\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u043C\u0430\u0441\u0441\u0438\u0432\u0430\n .result.reverse();\n\n instance.hours(Number(timeArr.pop()));\n instance.minutes(Number(timeArr.pop()));\n instance.seconds(timeArr.length ? Number(timeArr.pop()) : 0);\n instance.milliseconds(timeArr.length ? Number(timeArr.pop()) : 0);\n } else instance = moment(\"error\"); //? \u0418\u043D\u0430\u0447\u0435 \u0441\u043E\u0437\u0434\u0430\u0435\u043C \u0437\u0430\u0432\u0435\u0434\u043E\u043C\u043E \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u044B\u0439 moment-\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\n\n return instance;\n })();\n\n if (isReturnAsMomentInstance) return momentInstance;\n\n const output = momentInstance.format(outputFormat);\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//? \u041D\u0430\u043C\u0435\u0440\u044F\u043D\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u044E \u0441\u0430\u043C\u044B\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0439 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\nexport function transformDateOrTimeOrTogetherToFormattedLocal(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n\n if (additional && !getIsOnlyAnObject(additional)) {\n throw new Error(\n \"Bad additional [transformDateOrTimeOrTogetherToFormattedLocal]\",\n );\n }\n\n const compositeAdditional = {\n ...(additional || {}),\n isReturnAsMomentInstance: true,\n };\n const date = transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat,\n compositeAdditional,\n );\n\n const dateWithLocale = date.add(moment().utcOffset(), \"minutes\");\n const output = dateWithLocale.format(outputFormat);\n\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//\u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 \u043E\u0431\u044C\u0435\u043A\u0442 \u0438 \u043C\u0430\u0441\u0441\u0438\u0432 \u043A\u043B\u044E\u0447\u0435\u0439 \u043E\u0431\u044C\u0435\u043A\u0442\u0430\n//\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u044C\u0435\u043A\u0442 \u0441 \u0442\u0435\u043C\u0438 \u043F\u043E\u043B\u044F\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u043D\u0435\u0442 \u0432 \u043C\u0430\u0441\u0441\u0438\u0432\u0435 \u043A\u043B\u044E\u0447\u0435\u0439\nexport const omitKeys = (obj = {}, keys = []) =>\n keys.reduce((acc, key) => {\n const { [key]: omit, ...rest } = acc;\n return rest;\n }, obj);\n\nexport const logout = () => {\n window.localStorage.removeItem(\"accessToken\");\n window.localStorage.removeItem(\"tokenExpires\");\n window.location.reload();\n};\n\nexport const getStyles = (el, prop) => {\n if (!el) return null;\n if (!prop) return window.getComputedStyle(el);\n return window.getComputedStyle(el).getPropertyValue(prop);\n};\n\nexport const getColorById = (id, colors) => {\n if (!id) return \"#FF7D00\";\n\n const idToArr = Array.from(id);\n const colorsArr = colors && colors.length > 0 ? colors : DEFAULT_COLORS;\n\n let number = idToArr.reduce((acc, item) => {\n if (Number(item)) {\n return acc + Number(item);\n }\n return acc;\n }, 0);\n\n while (number >= colorsArr.length) {\n number -= colorsArr.length;\n }\n\n return colorsArr[number];\n};\n\nexport const debounce = (fn, ms) => {\n let id = null;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => {\n clearTimeout(id);\n fn(...args);\n }, ms);\n };\n};\n\nexport const throttle = (fn, ms) => {\n let id = null;\n return (...args) => {\n if (id) return;\n fn(...args);\n id = setTimeout(() => {\n clearTimeout(id);\n id = null;\n }, ms);\n };\n};\n\nexport const addBitDepthPoints = (value, step = 3) => {\n //\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043B\u0438 value \u0442\u043E\u0447\u043A\u0443\n const isFraction = value?.includes(\".\");\n\n //\u0432\u0437\u044F\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043E \u0442\u043E\u0447\u043A\u0438\n const valueBeforeDot = isFraction\n ? value?.slice(0, value?.indexOf(\".\"))\n : value;\n\n //\u0440\u0430\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430 \u0437\u0430\u043F\u044F\u0442\u044B\u0445 \u043F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0439 3\u0439 \u0446\u0438\u0444\u0440\u044B \u0441 \u043A\u043E\u043D\u0446\u0430\n const intPart = valueBeforeDot\n .split(\"\")\n .reverse()\n .reduce(\n (acc, item, idx) =>\n idx % step === 0 && idx !== 0 ? [...acc, \",\", item] : [...acc, item],\n [],\n )\n .reverse()\n .join(\"\");\n\n return isFraction ? intPart + value?.slice(value?.indexOf(\".\")) : intPart;\n};\n\nexport const changeMeta = (key, items = []) => {\n const defaultMeta = items.find((i) => i.key === \"default\");\n\n if (key) {\n const item = items.find((i) => i.key === key);\n document.title = item?.title ?? defaultMeta?.title;\n document\n .querySelector('meta[name=\"description\"]')\n .setAttribute(\"content\", item?.description ?? defaultMeta?.description);\n }\n};\n\nexport const firstLetterCapital = (str) =>\n typeof str === \"string\"\n ? `${str.charAt(0).toUpperCase()}${str.slice(1)}`\n : str;\nexport const capitalized = firstLetterCapital;\n\nexport const checkedRef = (ref) =>\n ref ? (typeof ref === \"function\" ? (node) => ref(node) : ref) : null;\n\nexport function downloadEmulation(data, filename, type = \"image/*\") {\n const file = new Blob([data], { type });\n if (window.navigator.msSaveOrOpenBlob)\n // IE10+\n window.navigator.msSaveOrOpenBlob(file, filename);\n else {\n // Others\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(() => {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n}\n\nexport const downloadFile = async ({ url, name, type = null }) => {\n const response = await fetch(url).then(async (res) => ({\n data: await res.blob(),\n type: type ?? res.headers.get(\"content-type\"),\n }));\n downloadEmulation(response.data, name, response.type);\n};\n\nexport const compare = (first, second, keys = []) => {\n //? \u0415\u0441\u043B\u0438 \u0442\u0438\u043F\u044B \u041D\u0415 \u0440\u0430\u0432\u043D\u044B - \u043D\u0435 \u0440\u0430\u0432\u043D\u044B \u0430\u043F\u0440\u0438\u043E\u0440\u0438\n if (typeof first !== typeof second) return false;\n //? \u0415\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442\u044B \u043D\u0430 \u0432\u043E\u043F\u0440\u043E\u0441 \"\u043C\u0430\u0441\u0441\u0438\u0432 \u043B\u0438?\" \u043D\u0435 \u0440\u0430\u0432\u043D\u044B, \u0442\u043E \u043D\u0435 \u0440\u0430\u0432\u043D\u044B \u0438 \u0442\u0438\u043F\u044B, \u0437\u043D\u0430\u0447\u0438\u0442 \u0442\u043E\u0436\u0435 \u043D\u0435 \u0440\u0430\u0432\u043D\u044B \u0430\u043F\u0440\u0438\u043E\u0440\u0438\n if (Array.isArray(first) !== Array.isArray(second)) return false;\n //? \u0415\u0441\u043B\u0438 \u043F\u0440\u043E\u0448\u043B\u0438 if-\u043A\u0443 - \u0442\u0438\u043F\u044B \u0443\u0441\u043B\u043E\u0432\u043D\u043E \u0440\u0430\u0432\u043D\u044B, \u043C\u043E\u0436\u0435\u043C \u043E\u0446\u0435\u043D\u0438\u0432\u0430\u0442\u044C \u0442\u0438\u043F \u043B\u0438\u0448\u044C \u043E\u0434\u043D\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430, \u044D\u0442\u043E \u0431\u0443\u0434\u0435\u0442 \u0441\u043F\u0440\u0430\u0432\u0435\u0434\u043B\u0438\u0432\u043E \u0438 \u0434\u043B\u044F \u0432\u0442\u043E\u0440\u043E\u0433\u043E\n\n //? \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043C\u0438\u0442\u0438\u0432\u044B - \u043F\u0440\u043E\u0441\u0442\u043E \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u043C. \u041A\u0435\u0439\u0441 \u0441 null \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D \u0442\u0443\u0442.\n if (!(first instanceof Object)) return first === second;\n\n //? \u0415\u0441\u043B\u0438 \u041D\u0415 \u043F\u0440\u0438\u043C\u0435\u0442\u0438\u0432\u044B - \u043D\u0435 \u0432\u0430\u0436\u043D\u043E \u043C\u0430\u0441\u0441\u0438\u0432 \u0438\u043B\u0438 \u043D\u0435\u0442, \u043C\u0435\u0442\u043E\u0434\u044B \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u0434\u043B\u044F \u043C\u0430\u0441\u0441\u0438\u0432\u0430 \u0442\u043E\u0436\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\n\n const getComparationStructure = (data) => {\n if (typeof data === 'function') return data.toString();\n if (!(data instanceof Object)) return data;\n\n return Object.entries(data)\n .sort((a, b) => (a[0]).localeCompare(b[0]))\n .map(([key, value]) => ([key, getComparationStructure(data[key])]));\n };\n\n //? \u041F\u043E\u043B\u0443\u0447\u0430\u0435\u043C \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u044B \u0434\u043B\u044F \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F (\u0441 \u0443\u0447\u0435\u0442\u043E\u043C \u0433\u043B\u0443\u0431\u0438\u043D\u044B) - \u043C\u0430\u0441\u0441\u0438\u0432\u044B \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432, \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u043C \u043F\u043E \u043A\u043B\u044E\u0447\u0430\u043C,\n const structureForComparingOfFirst = getComparationStructure(first);\n const structureForComparingOfSecond = getComparationStructure(second);\n\n return (JSON.stringify(structureForComparingOfFirst) === JSON.stringify(structureForComparingOfSecond));\n};\n\n// Set Carret to the End of Input\nexport const setCarretToEnd = (input) => {\n setTimeout(() => {\n const tmp = input.value;\n input.value = \"\";\n input.value = tmp;\n }, 10);\n};\n\nexport const compareAlphabetical = (a, b, key = \"label\") => {\n let item1 = a?.[key];\n let item2 = b?.[key];\n\n if (typeof item1 !== \"string\" || typeof item2 !== \"string\") return 0;\n\n item1 = item1?.toLowerCase();\n item2 = item2?.toLowerCase();\n\n if (item1 < item2) {\n return -1;\n }\n if (item1 > item2) {\n return 1;\n }\n return 0;\n};\n\nexport const getBase64 = (file) => {\n if (file) {\n return new Promise(function (resolve, reject) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(\"Error: \", error);\n });\n }\n};\n\nexport const renderFileSize = (bytes, decimals = 2) => {\n if (!Number(bytes)) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n};\n\nexport const getUniqueFileExtensions = (extListString) => {\n // Split the extensions list into an array\n const extArray = extListString\n ?.split(\",\")\n .map((ext) => ext.trim().toUpperCase());\n\n // Remove duplicates using a Set\n const uniqueExts = [...new Set(extArray)];\n\n // Join the unique extensions into a string\n return uniqueExts.join(\", \");\n};\n\nexport const getOS = () => {\n let userAgent = window.navigator.userAgent,\n platform =\n window.navigator?.userAgentData?.platform || window.navigator.platform,\n macosPlatforms = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"],\n windowsPlatforms = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"],\n iosPlatforms = [\"iPhone\", \"iPad\", \"iPod\"],\n os = OS.Unknown;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = OS.MacOS;\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = OS.iOS;\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = OS.Windows;\n } else if (/Android/.test(userAgent)) {\n os = OS.Android;\n } else if (/Linux/.test(platform)) {\n os = OS.Linux;\n }\n\n return os;\n};\n\n\nString.prototype.longerThan = function (compareWith) {\n return this?.length > compareWith?.length;\n};\nString.prototype.lastIndexEqualsTo = function (index) {\n return this?.length - 1 === index;\n};\n\nexport const getCorrectTestId = ({ testId = \"\", withTier = true }) =>\n testId && testId !== undefined ? `${withTier ? \"-\" : \"\"}${testId}` : \"\";\n\n\n", "import type { ReactElement, SVGProps } from 'react';\n\nexport function HelpCircleFilled(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"#9AA0B9\"\n d=\"M8 14.667A6.667 6.667 0 1 0 8 1.333a6.667 6.667 0 0 0 0 13.334Z\"\n />\n <path\n stroke=\"#fff\"\n d=\"M6.06 6a2 2 0 0 1 3.887.667c0 1.333-2 2-2 2M8 11.333h.006\"\n />\n </svg>\n )\n}\n", "import type { ISpinnerProps } from './Spinner.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport './Spinner.scss';\n\nconst CN = 'loader-box';\n\nconst Spinner: React.FC<ISpinnerProps> = ({ size = null, className, testId = CN }) => {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n data-testid={testId}\n className={cn(\n CN,\n {\n j5: size !== 'small',\n j8: size === 'small',\n },\n className,\n )}\n >\n <div className={cn('lds-ring', { [`lds-ring_${size}`]: size })}>\n <div />\n <div />\n <div />\n <div />\n </div>\n </div>\n );\n};\n\nexport default Spinner;\n", "export const I_AM_OPENED_EVENT_NAME = 'hint:i-am-open';\nexport const I_AM_OPENED_EVENT_OPTIONS = {\n bubbles: true,\n cancelable: true,\n composed: false,\n};\n", "export const getHintContainerId = (hintId: string | number): string => `hint-container-for-hint--id-${hintId}`;\n\nexport function getHintContainer(hintId: string | number): HTMLElement | null {\n return document.getElementById(getHintContainerId(hintId));\n}\n\nexport function getParentNode(): HTMLElement | null {\n return (\n document.querySelector('div#root')\n ?? document.querySelector('div#app')\n ?? document.body\n );\n}\n\nexport function initHintContainer(hintId: string | number, hintContainerSettings: any): void {\n const { className } = hintContainerSettings;\n const hintContainer = document.createElement('div');\n\n hintContainer.setAttribute('id', getHintContainerId(hintId));\n hintContainer.classList.add('hint__container');\n if (className) hintContainer.classList.add(className);\n\n getParentNode()?.append(hintContainer);\n}\n\n// ? addEventListener \u043C\u043E\u0436\u043D\u043E \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0432\u0443\u043C\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u0430\u043C\u0438\n// ? - \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u043F\u0440\u044F\u043C\u043E\u0439 \u043A\u043E\u043B\u0431\u044D\u043A (\u0444-\u044E)\n// ? - \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u043E\u0431\u044A\u0435\u043A\u0442 \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0435\u0441\u0442\u044C \u043C\u0435\u0442\u043E\u0434 handleEvent (\u043F\u043E\u043C\u0438\u043C\u043E handleEvent \u043C\u043E\u0436\u043D\u043E \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432 this \u043F\u0440\u043E\u0447\u0438\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F)\n// ? \u041F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u0441\u044F \u0432\u0442\u043E\u0440\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 (\u0432\u043E\u043E\u0431\u0449\u0435 \u043C\u043E\u0436\u043D\u043E \u043D\u0435 \u043F\u0438\u0441\u0430\u0442\u044C, \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0438 \u043F\u0440\u043E\u0441\u0442\u043E \u043E\u0442 \u0437\u0430\u043C\u044B\u043A\u0430\u043D\u0438\u044F, \u043D\u043E \u0434\u0435\u043B\u0430\u0435\u043C \u043F\u043E \"\u0434\u0437\u0435\u043D\u0443\")\n// ! \u041C\u0435\u0442\u043E\u0434 \u043D\u0430\u043F\u0438\u0441\u0430\u043D \u0441 \u0440\u0430\u0441\u0447\u0435\u0442\u043E\u043C \u043D\u0430 \u0442\u043E, \u0447\u0442\u043E \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u0422\u041E\u041B\u042C\u041A\u041E \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C \u0442\u0443\u043B\u0442\u0438\u043F\u043E\u043C\nexport function HandleScrollObj(this: any, setIsOpen: (isOpen: boolean) => void): void {\n this.setIsOpen = setIsOpen;\n this.handleEvent = function () {\n this.setIsOpen(false);\n };\n}\n\nexport function HandleClickOutsideObj(this: any, id: string | number, setIsOpen: (isOpen: boolean) => void): void {\n this.id = id;\n this.setIsOpen = setIsOpen;\n this.handleEvent = function (event: Event) {\n if (getHintContainer(this.id)) {\n if (!(getHintContainer(this.id) as HTMLElement).contains(event?.target as Node)) {\n this.setIsOpen(false);\n }\n }\n };\n}\n", "import Spinner from './Spinner';\n\nexport default Spinner;\nexport type { ISpinnerProps } from './Spinner.interface';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Spinner_default", "import_classnames", "import_react", "import_react_feather", "import_classnames", "import_react", "import_jsx_runtime", "cn", "import_jsx_runtime", "className", "cn", "import_jsx_runtime", "cn", "Spinner_default"]
|
|
7
7
|
}
|
package/dist/layout.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* IntelicoKit — Public subpath: "intelicoreact/layout"
|
|
3
|
-
* Layout components: Header,
|
|
3
|
+
* Layout components: Header, Spinner
|
|
4
|
+
*
|
|
5
|
+
* MainMenu зависит от react-router-dom (NavLink) и живёт в
|
|
6
|
+
* "intelicoreact/router-ui" — этот entry обязан оставаться свободным
|
|
7
|
+
* от роутера (см. router-ui.ts).
|
|
4
8
|
*/
|
|
5
9
|
export { default as Header } from './Atomic/Layout/Header/Header';
|
|
6
|
-
export { default as MainMenu } from './Atomic/Layout/MainMenu/MainMenu';
|
|
7
10
|
export { default as Spinner } from './Atomic/Layout/Spinner/index';
|
|
8
11
|
export type { ISpinnerProps } from './Atomic/Layout/Spinner/index';
|