{"version":3,"file":"30084.bdf5a18e.es5.js","mappings":"iMAGIA,EAAsB,0BAC1B,EAAQ,OAER,IAAIC,EAAS,SAAUC,GACnB,IAAIC,EAAYD,EAAGC,UAAWC,EAAaF,EAAGE,WAC9C,OAAQ,gBAAoB,MAAO,CAAED,UAAW,IAAGH,EAAkBG,GAAY,eAAgBC,GAC7F,gBAAoB,MAAO,MAC3B,gBAAoB,MAAO,MAC3B,gBAAoB,MAAO,S,sKCE5B,SAASC,EAAiBC,GAC7B,OAAOC,QACa,iBAATD,GACM,OAATA,GACoC,mBAAnCA,EAAsBE,MAAMC,IAC5BH,EAAsBE,MAAME,MAQlC,SAASC,EAA+BC,GAC3C,OAAOC,EAAAA,SAAAA,QAAuBD,GAAUE,QACpC,SAACC,EAAqCT,GAClC,GAAKD,EAAiBC,IAEf,GAAwB,aAApBA,EAAKE,MAAME,KAAqB,OACvC,OAAO,OAAP,UACOK,IADP,MAEKT,EAAKE,MAAME,MAAOJ,EAAKE,MAAMI,SAFlC,UAFAG,EAAMH,SAASI,KAAKV,GAQxB,OAAOS,IAEX,CAAEH,SAAU,KAQb,SAASK,EAAmBL,GAC/B,OAAOC,EAAAA,SAAAA,QAAuBD,GAAUE,QAAO,SAACC,EAAyBT,GACzC,MAA5B,OAAID,EAAiBC,GACV,OAAP,UACOS,IADP,MAEKT,EAAKE,MAAME,MAAOJ,EAAKE,MAAMI,SAFlC,IAMGG,IACR,IAGA,SAASG,EAA+BN,GAC3C,OAAOO,EAAAA,EAAAA,UAAQ,kBAAMR,EAA+BC,KAAW,CAACA,IAG7D,SAASQ,EAAmBR,GAC/B,OAAOO,EAAAA,EAAAA,UAAQ,kBAAMF,EAAmBL,KAAW,CAACA,M,0DCmDpDS,EAuIAC,E,qDAtIJ,SAASC,EAAcC,GACD,QAAdA,EAAMC,MACNJ,EAAkB,YAG1B,SAASK,IACLL,EAAkB,QAEtB,SAASM,IACLN,EAAkB,QAMtB,SAASO,IACLC,SAASC,iBAAiB,UAAWP,GACrCM,SAASC,iBAAiB,YAAaJ,GACvCG,SAASC,iBAAiB,aAAcH,IAqH5C,SAAWL,GACPA,EAAgB,OAAa,SAC7BA,EAAgB,QAAc,UAC9BA,EAAgB,MAAY,QAHhC,CAIGA,IAAqBA,EAAmB,KA+D3C,I,WC5SIS,EAAW,WAUX,OATAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GAENJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACxCN,EAAEM,GAAKL,EAAEK,IAErB,OAAON,GAEJH,EAASa,MAAMC,KAAMP,YAEhC,SAASQ,EAAOX,EAAGY,GACf,IAAIb,EAAI,GACR,IAAK,IAAIM,KAAKL,EACNH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,IAAMO,EAAEC,QAAQR,GAAK,IAC7DN,EAAEM,GAAKL,EAAEK,IACjB,GAAS,MAALL,GAAqD,mBAAjCH,OAAOiB,sBACtB,KAAIb,EAAI,EAAb,IAAgBI,EAAIR,OAAOiB,sBAAsBd,GAAIC,EAAII,EAAED,OAAQH,IAC3DW,EAAEC,QAAQR,EAAEJ,IAAM,GAAKJ,OAAOS,UAAUS,qBAAqBP,KAAKR,EAAGK,EAAEJ,MACvEF,EAAEM,EAAEJ,IAAMD,EAAEK,EAAEJ,KAE1B,OAAOF,EAGX,IAAIlC,EAAS,CAAC,UAAY,0BAA0B,QAAU,wBAAwB,QAAU,wBAAwB,KAAO,qBAAqB,OAAS,uBAAuB,YAAc,4BAA4B,OAAS,uBAAuB,IAAM,oBAAoB,SAAW,yBAAyB,GAAK,mBAAmB,EAAI,kBAAkB,EAAI,kBAAkB,EAAI,kBAAkB,GAAK,mBAAmB,gBAAkB,gCAAgC,MAAQ,sBAAsB,eAAiB,+BAA+B,KAAO,qBAAqB,MAAQ,sBAAsB,OAAS,wBACjnBmD,EAAQ,OAGRA,EAAQ,OAGRA,EAAQ,OAER,IAAIC,EAAc,CACdC,QAPgB,CAAC,QAAU,wBAAwB,UAAY,0BAA0B,SAAW,yBAAyB,SAAW,yBAAyB,OAAS,uBAAuB,YAAc,4BAA4B,KAAO,qBAAqB,MAAQ,sBAAsB,UAAY,0BAA0B,QAAU,yBAQrVC,SALiB,CAAC,QAAU,wBAAwB,UAAY,0BAA0B,SAAW,yBAAyB,SAAW,yBAAyB,OAAS,uBAAuB,YAAc,4BAA4B,KAAO,qBAAqB,MAAQ,sBAAsB,UAAY,0BAA0B,QAAU,0BA4BtVC,EAAS1C,EAAAA,YAAiB,SAAUX,EAAIsD,GACxC,IAAIC,EAAIC,EAAIC,EACR/C,EAAWV,EAAGU,SAAUgD,EAAK1D,EAAG2D,KAAMA,OAAc,IAAPD,EAAgB,YAAcA,EAAIE,EAAa5D,EAAG4D,WAAYC,EAAc7D,EAAG6D,YAAaC,EAAK9D,EAAG+D,KAAMA,OAAc,IAAPD,EAAgB,IAAMA,EAAIE,EAAKhE,EAAGiE,MAAOA,OAAe,IAAPD,GAAwBA,EAAI/D,EAAYD,EAAGC,UAAWC,EAAaF,EAAGE,WAAYgE,EAAOlE,EAAGkE,KAAMC,EAAKnE,EAAGoE,QAASA,OAAiB,IAAPD,GAAwBA,EAAIE,EAAKrE,EAAGsE,OAAQA,OAAgB,IAAPD,GAAwBA,EAAIE,EAAKvE,EAAGwE,OAAQA,OAAgB,IAAPD,EAAgB,UAAYA,EAAIE,EAAKzE,EAAG0E,UAAWA,OAAmB,IAAPD,EAAgBP,EAAO,IAAM,SAAWO,EAAIE,EAAY/B,EAAO5C,EAAI,CAAC,WAAY,OAAQ,aAAc,cAAe,OAAQ,QAAS,YAAa,aAAc,OAAQ,UAAW,SAAU,SAAU,cAC7rB,CAAC,WAAY,SAAU,eAAe4E,SAASjB,GAGnD,IAAIkB,GAAYC,EAAAA,EAAAA,QAAO,MACnBC,ED0DR,SAAkBzB,EAAK0B,GACnB,IAAIhF,EAAKW,EAAAA,UAAe,GAAQsE,EAAQjF,EAAG,GAAIkF,EAAWlF,EAAG,GACzDmF,EAAcxE,EAAAA,aAAkB,WAC3BqE,GAAeA,IAAgB7D,GAChC+D,GAAS,KAEd,CAACF,IACAI,EAAazE,EAAAA,aAAkB,WAC/BuE,GAAS,KACV,IAeH,OAdAvE,EAAAA,WAAgB,WACZ,IAAIP,EAAOkD,EAAI+B,QAKf,OAJIjF,IACAA,EAAKwB,iBAAiB,UAAWuD,GACjC/E,EAAKwB,iBAAiB,WAAYwD,IAE/B,WACChF,IACAA,EAAKkF,oBAAoB,UAAWH,GACpC/E,EAAKkF,oBAAoB,WAAYF,OAG9C,CAACA,EAAYD,EAAa7B,IAC7B3C,EAAAA,UAAgBe,EAAoB,IAC7B,CAACuD,GClFMM,CAASV,EAAW,YAAY,GAC1CW,GAAKC,EAAAA,EAAAA,WAAS,GAAOC,EAAmBF,EAAG,GAAIG,EAAsBH,EAAG,GACxEI,GAAUd,EAAAA,EAAAA,QAAO,GACjBe,EAAazB,IAAYsB,EACzBI,GAAYpF,EACZqF,EAAiB,CACjB9F,UAAW+F,IAAGlG,EAAOmG,UAAWnG,EAAO6D,GAAO7D,EAAOiE,GAAOb,EAAYsB,GAAQyB,UAAW/C,EAAYsB,GAAQb,IAAQJ,EAAK,GACxHA,EAAGzD,EAAOiF,SAAWA,EACrBxB,EAAGzD,EAAOmE,OAASA,EACnBV,EAAGzD,EAAOgG,UAAYA,EACtBvC,EAAGzD,EAAOsE,SAAWyB,EACrBtC,EAAGzD,EAAOoG,iBAAmB7F,QAAQwD,KAAiBiC,EACtDvC,EAAGzD,EAAOqG,gBAAkB9F,QAAQuD,KAAgBkC,EACpDvC,EAAGL,EAAYsB,GAAQJ,SAAWyB,EAClCtC,GAAKtD,GACT,eAAgBC,GAAc,MAE9BkG,EAAkBzF,EAAAA,cAAoBA,EAAAA,SAAgB,KACtDiD,GAAcjD,EAAAA,cAAoB,OAAQ,CAAEV,UAAWH,EAAOuG,QAAUzC,GACxElD,GAAaC,EAAAA,cAAoB,OAAQ,CAAEV,UAAW+F,IAAGlG,EAAOwG,MAAO9C,EAAK,GACpEA,EAAG1D,EAAOwE,QAAUA,EACpBd,EAAG1D,EAAOyG,eAAiB3C,GAAcC,GACzCL,KAAQ9C,GAChBmF,GAAclF,EAAAA,cAAoBZ,EAAAA,EAAQ,CAAEE,UAAWH,EAAO0G,SAC9D3C,GAAelD,EAAAA,cAAoB,OAAQ,CAAEV,UAAWH,EAAOuG,QAAUxC,IAc7E,IAbA4C,EAAAA,EAAAA,YAAU,WACFrC,IACAuB,GAAoB,GACpBC,EAAQP,QAAUqB,OAAOC,YAAW,WAChChB,GAAoB,KArDF,QAwD3B,CAACvB,KACJqC,EAAAA,EAAAA,YAAU,WACN,OAAO,WACHC,OAAOE,aAAahB,EAAQP,YAEjC,IACCnB,EAAM,CACN,IAAI2C,EAASlC,EAAUkC,OAEnBC,IAAarD,EAAK,IAA4B,iBAAdiB,EAAyB,OAAS,MAAQR,EAAMT,GACpF,OAAQ9C,EAAAA,cAAoB+D,EAAW7C,EAAS,CAAEkF,IAAgB,WAAXF,EAAsB,2BAAwBG,GAAajB,EAAgBpB,EAAWmC,EAAW,CAAExD,KAAK2D,EAAAA,EAAAA,SAAU,CAACpC,EAAWvB,MAAU8C,GAEnM,IAAIc,EAAKvC,EAAWwC,EAAWD,EAAGC,SAAUC,EAAKF,EAAGG,KAAMA,OAAc,IAAPD,EAAgB,SAAWA,EAAIE,EAAkB1E,EAAOsE,EAAI,CAAC,WAAY,SAC1I,OAAQvG,EAAAA,cAAoB+D,EAAW7C,EAAS,GAAIkE,EAAgBuB,EAAiB,CAAED,KAAMA,EAAMF,SAAUA,GAAYtB,EAAYvC,KAAK2D,EAAAA,EAAAA,SAAU,CAACpC,EAAWvB,MAAU8C,MAK9K/C,EAAOkE,aAAe,CAClB5D,KAAM,YACNI,KAAM,IACNE,OAAO,EACPG,SAAS,EACTE,QAAQ,GC5IZ,I,oCCgBqB,CACjB,UACA,SACA,cACA,YACA,WACA,WACA,OACA,SAEgCkD,QAChC,SAAA7D,GAAI,OAAK,CAAC,SAAU,WAAY,eAAeiB,SAASjB,M,4KCrB/CN,GAASoE,EAAAA,EAAAA,GAClB,CAAEC,WAAAA,EAAY5H,OFPlB,CAAgB,kCAAkC,QAAQ,gCAAgC,QAAQ,SAAW,QAAQ,uBAAyB,QAAQ,aAAe,QAAQ,UAAY,UEQrL,CAAE6H,gBAAgB,GAFAF,ECIqC,SAAC,GAiBtD,QAhBFC,EAgBE,EAhBFA,WAgBE,IAfFzD,MAAAA,OAeE,aAdF2D,aAAAA,OAcE,MFxB8B,EEwB9B,EAbFlH,EAaE,EAbFA,SACAT,EAYE,EAZFA,UAYE,IAXFuE,OAAAA,OAWE,MAXO,UAWP,MAVFqD,aAAAA,OAUE,SATFC,EASE,EATFA,eASE,IARF1D,QAAAA,OAQE,aAPFE,OAAAA,OAOE,aANFP,KAAAA,OAME,MANK,IAML,EALFjE,EAKE,EALFA,OAKE,IAJF6D,KAAAA,OAIE,MAJK,YAIL,EAHFC,EAGE,EAHFA,WACAC,EAEE,EAFFA,YACGc,GACD,YACF,GAII3D,EAAAA,EAAAA,IAA+BN,GAHrBqH,EADd,EACIrH,SACYsH,EAFhB,EAEIpE,WACaqE,EAHjB,EAGIpE,YAGEqE,EACF,gBAACR,GAAD,QACIzD,MAAOA,EACPhE,UAAW+F,IACPlG,EAAOqI,UADE,OAMJrI,EAAOsI,wBF3CY,IE2CaR,EAN5B,EAOJ9H,EAAO+H,cAAeA,EAPlB,GASTC,GAEJtD,OAAQA,EACRZ,WAAYoE,GAAkBpE,EAC9BQ,QAASA,EACTE,OAAQA,EACRT,YAAaoE,GAAmBpE,EAChCE,KAAMA,EACNJ,KAAMA,GACFgB,GAGHoD,EAAc1F,OAAS,GAAK0F,GAIrC,OAAO9H,EACH,uBAAKA,UAAW+F,KAAE,OAAIlG,EAAOuI,YAAapE,EAAxB,GAAiChE,IAAaiI,GAEhEA,K,sBCzDKI,GAAkBb,EAAAA,EAAAA,GAAmE,CAC9F3H,OCTJ,CAAgB,kCAAkC,QAAQ,gCAAgC,QAAQ,MAAQ,QAAQ,eAAiB,QAAQ,KAAO,QAAQ,oBAAsB,QAAQ,OAAS,QAAQ,OAAS,QAAQ,YAAc,QAAQ,UAAY,QAAQ,QAAU,QAAQ,YAAc,QAAQ,WAAa,QAAQ,SAAW,QAAQ,aAAe,QAAQ,MAAQ,QAAQ,SAAW,SDUlYyI,IAAAA,EAAAA,EACAlF,OAAAA,GAH2BoE,CAI5B/C,EAAAA,I","sources":["webpack://assr-alfaleasing/./node_modules/@alfalab/core-components-loader/esm/Component.js","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-named-container/src/named-container/utils.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/node_modules/@alfalab/hooks/dist/esm/index.js","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/node_modules/@alfalab/core-components-button/esm/Component.js","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/node_modules/@alfa-bank/site-button-v2/src/styles/styles.css?322e","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/node_modules/@alfa-bank/site-button-v2/src/config.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/node_modules/@alfa-bank/site-button-v2/src/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/node_modules/@alfa-bank/site-button-v2/src/button.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/src/search-bar/desktop/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-yandex-search/src/search-bar/desktop/desktop.css?b855"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\n\nvar styles = {\"component\":\"loader__component_tyagz\",\"blink\":\"loader__blink_tyagz\"};\nrequire('./index.css')\n\nvar Loader = function (_a) {\n var className = _a.className, dataTestId = _a.dataTestId;\n return (React.createElement(\"div\", { className: cn(styles.component, className), \"data-test-id\": dataTestId },\n React.createElement(\"div\", null),\n React.createElement(\"div\", null),\n React.createElement(\"div\", null)));\n};\n\nexport { Loader };\n","import type { ReactElement, ReactNode } from 'react';\nimport React, { useMemo } from 'react';\n\nimport type { INamedContainerProps } from '../models';\n\nexport interface INamedContainers {\n [key: string]: ReactNode;\n}\n\ninterface INamedContainersWithChildren extends INamedContainers {\n children: ReactNode[];\n}\n\nexport function isNamedContainer(node: ReactNode): node is ReactElement {\n return Boolean(\n typeof node === 'object' &&\n node !== null &&\n (node as ReactElement).props.is === 'NamedContainer' &&\n (node as ReactElement).props.name\n );\n}\n\n/**\n * Функция собирает из children слоты и оставляет отфильтрованный список детей\n * @param children\n */\nexport function getNamedContainersWithChildren(children: ReactNode) {\n return React.Children.toArray(children).reduce(\n (nodes: INamedContainersWithChildren, node) => {\n if (!isNamedContainer(node)) {\n nodes.children.push(node);\n } else if (node.props.name !== 'children') {\n return {\n ...nodes,\n [node.props.name]: node.props.children,\n };\n }\n\n return nodes;\n },\n { children: [] }\n );\n}\n\n/**\n * Функция собирает из children только слоты\n * @param children\n */\nexport function getNamedContainers(children: ReactNode) {\n return React.Children.toArray(children).reduce((nodes: INamedContainers, node) => {\n if (isNamedContainer(node)) {\n return {\n ...nodes,\n [node.props.name]: node.props.children,\n };\n }\n\n return nodes;\n }, {});\n}\n\nexport function useNamedContainersWithChildren(children: ReactNode): INamedContainersWithChildren {\n return useMemo(() => getNamedContainersWithChildren(children), [children]);\n}\n\nexport function useNamedContainers(children: ReactNode) {\n return useMemo(() => getNamedContainers(children), [children]);\n}\n","import React, { useRef, useState, useCallback, useEffect, useLayoutEffect } from 'react';\nimport { hasScrolledToBottomOfPage } from '@alfalab/utils';\n\nfunction useClickOutside(ref, cb) {\n React.useEffect(function () {\n var handler = function (event) {\n var checkClickedElement = function (el) {\n return !el.current || el.current.contains(event.target);\n };\n if ((Array.isArray(ref) && ref.find(checkClickedElement)) ||\n (!Array.isArray(ref) && checkClickedElement(ref))) {\n return;\n }\n cb(event);\n };\n document.addEventListener('mousedown', handler);\n document.addEventListener('touchstart', handler);\n return function () {\n document.removeEventListener('mousedown', handler);\n document.removeEventListener('touchstart', handler);\n };\n }, [ref, cb]);\n}\n\n/**\n * Хук обратного отсчёта времени.\n * Возвращает оставшееся количество секунд до определённой даты.\n *\n * @param params.endDate - Дата окончания\n * @param params.onStart - Функция, которая будет вызвана при запуске счётчика\n * @param params.onEnd - Функция, которая будет вызвана при окончании счётчика\n */\nfunction useCountdown(_a) {\n var endDate = _a.endDate, onStart = _a.onStart, onEnd = _a.onEnd;\n var intervalId = useRef(null);\n var _b = useState(differenceInSeconds(endDate, new Date())), seconds = _b[0], setSeconds = _b[1];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var clear = useCallback(function () { return clearInterval(intervalId.current); }, []);\n useEffect(function () {\n if (onStart) {\n onStart();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(function () {\n intervalId.current = setInterval(function () {\n setSeconds(function (sec) { return sec - 1; });\n }, 1000);\n return clear;\n }, [clear]);\n useEffect(function () {\n if (seconds <= 0) {\n clear();\n if (onEnd) {\n onEnd();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [seconds]);\n return [seconds];\n}\nfunction differenceInSeconds(dateLeft, dateRight) {\n var diff = (dateLeft.getTime() - dateRight.getTime()) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}\n\nfunction getDimensionObject(node) {\n return node.getBoundingClientRect();\n}\nfunction useDimensions(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.liveMeasure, liveMeasure = _c === void 0 ? true : _c;\n var _d = useState(), dimensions = _d[0], setDimensions = _d[1];\n var _e = useState(), node = _e[0], setNode = _e[1];\n var ref = useCallback(function (_node) {\n setNode(_node);\n }, []);\n useLayoutEffect(function () {\n if (node) {\n var measure_1 = function () {\n return window.requestAnimationFrame(function () { return setDimensions(getDimensionObject(node)); });\n };\n measure_1();\n if (liveMeasure) {\n window.addEventListener('resize', measure_1);\n window.addEventListener('scroll', measure_1);\n return function () {\n window.removeEventListener('resize', measure_1);\n window.removeEventListener('scroll', measure_1);\n };\n }\n }\n return function () { return undefined; };\n }, [node, liveMeasure]);\n return [ref, dimensions, node];\n}\n\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\nfunction useEventCallback(fn) {\n var ref = React.useRef(fn);\n React.useEffect(function () {\n ref.current = fn;\n });\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return React.useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (ref.current).apply(void 0, args);\n }, []);\n}\n\nvar prevInputMethod;\nfunction handleKeyDown(event) {\n if (event.key === 'Tab') {\n prevInputMethod = 'keyboard';\n }\n}\nfunction handleMouseDown() {\n prevInputMethod = 'mouse';\n}\nfunction handleTouchStart() {\n prevInputMethod = 'mouse';\n}\n/**\n * Навешивает несколько глобальных обработчиков и отслеживает метод ввода - мышь или клавиатура.\n * Note: Повторный вызов функции не дублирует обработчики\n */\nfunction addGlobalListeners() {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('mousedown', handleMouseDown);\n document.addEventListener('touchstart', handleTouchStart);\n}\n/**\n * Хук устанавливает обработчик события на focusin и focusout\n * по конкретному типу события\n * @param node Элемент на котором установится обработчик (default = document)\n * @param inputMethod Если параметр не задан, установит обработчик по любому событию фокуса\n */\nfunction useFocus(ref, inputMethod) {\n var _a = React.useState(false), focus = _a[0], setFocus = _a[1];\n var handleFocus = React.useCallback(function () {\n if (!inputMethod || inputMethod === prevInputMethod) {\n setFocus(true);\n }\n }, [inputMethod]);\n var handleBlur = React.useCallback(function () {\n setFocus(false);\n }, []);\n React.useEffect(function () {\n var node = ref.current;\n if (node) {\n node.addEventListener('focusin', handleFocus);\n node.addEventListener('focusout', handleBlur);\n }\n return function () {\n if (node) {\n node.removeEventListener('focusin', handleFocus);\n node.removeEventListener('focusout', handleBlur);\n }\n };\n }, [handleBlur, handleFocus, ref]);\n React.useEffect(addGlobalListeners, []);\n return [focus];\n}\n\nfunction useKeydownOutside(ref, cb) {\n React.useEffect(function () {\n var handler = function (event) {\n if (!ref.current || (event.target instanceof Node && ref.current.contains(event.target))) {\n return;\n }\n cb(event);\n };\n document.addEventListener('keydown', handler);\n return function () {\n document.removeEventListener('keydown', handler);\n };\n }, [ref, cb]);\n}\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nfunction getValue(list) {\n return list.map(\n // eslint-disable-next-line no-confusing-arrow\n function (_a) {\n var value = _a[0], query = _a[1];\n return query.matches ? value : null;\n }).filter(Boolean);\n}\nfunction useMedia(list, defaultValue) {\n var _a = React.useState([defaultValue]), value = _a[0], setValue = _a[1];\n var _b = React.useState([]), mediaQueryList = _b[0], setMediaQueryList = _b[1];\n var isClient = typeof window !== 'undefined';\n React.useEffect(function () {\n if (isClient && window.matchMedia) {\n var queryList = list.map(function (_a) {\n var x = _a[0], y = _a[1];\n return [x, window.matchMedia(y)];\n });\n setMediaQueryList(queryList);\n setValue(getValue(queryList));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isClient]);\n React.useEffect(function () {\n var handler = function () {\n setValue(getValue(mediaQueryList));\n };\n mediaQueryList.forEach(function (_a) {\n _a[0]; var mediaQuery = _a[1];\n return mediaQuery.addListener(handler);\n });\n return function () {\n mediaQueryList\n .forEach(function (_a) {\n _a[0]; var mediaQuery = _a[1];\n return mediaQuery.removeListener(handler);\n });\n };\n }, [value, mediaQueryList]);\n return value;\n}\n\nfunction usePrevious(value) {\n var ref = React.useRef();\n React.useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n\nfunction useDidUpdateEffect(effect, deps) {\n var didMountRef = React.useRef(false);\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (didMountRef.current) {\n var cleanup_1 = effect();\n if (cleanup_1) {\n return function () { return cleanup_1(); };\n }\n }\n didMountRef.current = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\nvar UseLoadingStates;\n(function (UseLoadingStates) {\n UseLoadingStates[\"LOADED\"] = \"loaded\";\n UseLoadingStates[\"LOADING\"] = \"loading\";\n UseLoadingStates[\"ERROR\"] = \"error\";\n})(UseLoadingStates || (UseLoadingStates = {}));\n\n/**\n * Возвращает результат загрузки изображения\n * @param params.src url изображения\n * @return результат загрузки (loading | loaded | error)\n */\nfunction useImageLoadingState(_a) {\n var src = _a.src;\n var _b = useState(UseLoadingStates.LOADING), loadingState = _b[0], setLoadingState = _b[1];\n useEffect(function () {\n var active = true;\n setLoadingState(UseLoadingStates.LOADING);\n var image = new Image();\n image.onload = function () {\n if (!active) {\n return;\n }\n setLoadingState(UseLoadingStates.LOADED);\n };\n image.onerror = function () {\n if (!active) {\n return;\n }\n setLoadingState(UseLoadingStates.ERROR);\n };\n image.srcset = src;\n return function () {\n active = false;\n };\n }, [src]);\n return loadingState;\n}\n\nfunction useScrolledToBottomOfPage(cb, once) {\n if (once === void 0) { once = true; }\n React.useEffect(function () {\n var handler = function () {\n if (hasScrolledToBottomOfPage()) {\n cb();\n if (once) {\n document.removeEventListener('scroll', handler);\n }\n }\n };\n document.addEventListener('scroll', handler);\n return function () {\n document.removeEventListener('scroll', handler);\n };\n }, [cb]);\n}\n\nfunction useForceUpdate() {\n var _a = useState(Object.create(null)), dispatch = _a[1];\n var memoizedDispatch = useCallback(function () {\n dispatch(Object.create(null));\n }, [dispatch]);\n return memoizedDispatch;\n}\n\n/**\n * Хук получения состояния доступности компонента.\n */\nvar useIsMounted = function () {\n var isMounted = useRef(true);\n useEffect(function () { return function () {\n isMounted.current = false;\n }; }, []);\n return useCallback(function () { return isMounted.current; }, []);\n};\n\nexport { useClickOutside, useCountdown, useDidUpdateEffect, useDimensions, useEventCallback, useFocus, useForceUpdate, useImageLoadingState, useIsMounted, useKeydownOutside, useMedia, usePrevious, useScrolledToBottomOfPage };\n","import React, { useRef, useState, useEffect } from 'react';\nimport cn from 'classnames';\nimport mergeRefs from 'react-merge-refs';\nimport { useFocus } from '@alfalab/hooks';\nimport { Loader } from '@alfalab/core-components-loader/esm';\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar styles = {\"component\":\"button__component_1mgd7\",\"focused\":\"button__focused_1mgd7\",\"loading\":\"button__loading_1mgd7\",\"text\":\"button__text_1mgd7\",\"addons\":\"button__addons_1mgd7\",\"stretchText\":\"button__stretchText_1mgd7\",\"loader\":\"button__loader_1mgd7\",\"xxs\":\"button__xxs_1mgd7\",\"iconOnly\":\"button__iconOnly_1mgd7\",\"xs\":\"button__xs_1mgd7\",\"s\":\"button__s_1mgd7\",\"m\":\"button__m_1mgd7\",\"l\":\"button__l_1mgd7\",\"xl\":\"button__xl_1mgd7\",\"withRightAddons\":\"button__withRightAddons_1mgd7\",\"ghost\":\"button__ghost_1mgd7\",\"withLeftAddons\":\"button__withLeftAddons_1mgd7\",\"link\":\"button__link_1mgd7\",\"block\":\"button__block_1mgd7\",\"nowrap\":\"button__nowrap_1mgd7\"};\nrequire('./index.css')\n\nvar defaultColors = {\"primary\":\"button__primary_zsrtz\",\"secondary\":\"button__secondary_zsrtz\",\"outlined\":\"button__outlined_zsrtz\",\"tertiary\":\"button__tertiary_zsrtz\",\"filled\":\"button__filled_zsrtz\",\"transparent\":\"button__transparent_zsrtz\",\"link\":\"button__link_zsrtz\",\"ghost\":\"button__ghost_zsrtz\",\"component\":\"button__component_zsrtz\",\"loading\":\"button__loading_zsrtz\"};\nrequire('./default.css')\n\nvar invertedColors = {\"primary\":\"button__primary_oiqbk\",\"secondary\":\"button__secondary_oiqbk\",\"outlined\":\"button__outlined_oiqbk\",\"tertiary\":\"button__tertiary_oiqbk\",\"filled\":\"button__filled_oiqbk\",\"transparent\":\"button__transparent_oiqbk\",\"link\":\"button__link_oiqbk\",\"ghost\":\"button__ghost_oiqbk\",\"component\":\"button__component_oiqbk\",\"loading\":\"button__loading_oiqbk\"};\nrequire('./inverted.css')\n\nvar colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n};\n/**\n * Минимальное время отображения лоадера - 500мс,\n * чтобы при быстрых ответах от сервера кнопка не «моргала».\n */\nvar LOADER_MIN_DISPLAY_INTERVAL = 500;\nvar logWarning = function (view) {\n if (process.env.NODE_ENV !== 'development') {\n return;\n }\n var viewsMap = {\n filled: 'secondary',\n transparent: 'secondary',\n outlined: 'tertiary',\n };\n // eslint-disable-next-line no-console\n console.warn(\n // eslint-disable-next-line prefer-template\n \"@alfalab/core-components/button: view='\" + view + \"' \\u0431\\u0443\\u0434\\u0435\\u0442 \\u0443\\u0434\\u0430\\u043B\\u0435\\u043D \\u0432 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043C\\u0430\\u0436\\u043E\\u0440\\u043D\\u044B\\u0445 \\u0432\\u0435\\u0440\\u0441\\u0438\\u044F\\u0445. \" +\n (\"\\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0439\\u0442\\u0435 view='\" + viewsMap[view] + \"'. \\u0427\\u0442\\u043E\\u0431\\u044B \\u043F\\u043E\\u043C\\u0435\\u043D\\u044F\\u0442\\u044C \\u0432\\u0441\\u0435 \\u043A\\u043D\\u043E\\u043F\\u043A\\u0438 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0435\\u043A\\u0442\\u0435 \\u0440\\u0430\\u0437\\u043E\\u043C, \\u043C\\u043E\\u0436\\u043D\\u043E \\u0432\\u043E\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u044C\\u0441\\u044F codemod: \") +\n 'npx @alfalab/core-components-codemod --transformers=button-views src/**/*.tsx');\n};\nvar Button = React.forwardRef(function (_a, ref) {\n var _b, _c, _d;\n var children = _a.children, _e = _a.view, view = _e === void 0 ? 'secondary' : _e, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, _f = _a.size, size = _f === void 0 ? 'm' : _f, _g = _a.block, block = _g === void 0 ? false : _g, className = _a.className, dataTestId = _a.dataTestId, href = _a.href, _h = _a.loading, loading = _h === void 0 ? false : _h, _j = _a.nowrap, nowrap = _j === void 0 ? false : _j, _k = _a.colors, colors = _k === void 0 ? 'default' : _k, _l = _a.Component, Component = _l === void 0 ? href ? 'a' : 'button' : _l, restProps = __rest(_a, [\"children\", \"view\", \"leftAddons\", \"rightAddons\", \"size\", \"block\", \"className\", \"dataTestId\", \"href\", \"loading\", \"nowrap\", \"colors\", \"Component\"]);\n if (['outlined', 'filled', 'transparent'].includes(view)) {\n logWarning(view);\n }\n var buttonRef = useRef(null);\n var focused = useFocus(buttonRef, 'keyboard')[0];\n var _m = useState(true), loaderTimePassed = _m[0], setLoaderTimePassed = _m[1];\n var timerId = useRef(0);\n var showLoader = loading || !loaderTimePassed;\n var iconOnly = !children;\n var componentProps = {\n className: cn(styles.component, styles[view], styles[size], colorStyles[colors].component, colorStyles[colors][view], (_b = {},\n _b[styles.focused] = focused,\n _b[styles.block] = block,\n _b[styles.iconOnly] = iconOnly,\n _b[styles.loading] = showLoader,\n _b[styles.withRightAddons] = Boolean(rightAddons) && !iconOnly,\n _b[styles.withLeftAddons] = Boolean(leftAddons) && !iconOnly,\n _b[colorStyles[colors].loading] = showLoader,\n _b), className),\n 'data-test-id': dataTestId || null,\n };\n var buttonChildren = (React.createElement(React.Fragment, null,\n leftAddons && React.createElement(\"span\", { className: styles.addons }, leftAddons),\n children && (React.createElement(\"span\", { className: cn(styles.text, (_c = {},\n _c[styles.nowrap] = nowrap,\n _c[styles.stretchText] = !(leftAddons || rightAddons),\n _c)) }, children)),\n showLoader && React.createElement(Loader, { className: styles.loader }),\n rightAddons && React.createElement(\"span\", { className: styles.addons }, rightAddons)));\n useEffect(function () {\n if (loading) {\n setLoaderTimePassed(false);\n timerId.current = window.setTimeout(function () {\n setLoaderTimePassed(true);\n }, LOADER_MIN_DISPLAY_INTERVAL);\n }\n }, [loading]);\n useEffect(function () {\n return function () {\n window.clearTimeout(timerId.current);\n };\n }, []);\n if (href) {\n var target = restProps.target;\n // Для совместимости с react-router-dom, меняем href на to\n var hrefProps = (_d = {}, _d[typeof Component === 'string' ? 'href' : 'to'] = href, _d);\n return (React.createElement(Component, __assign({ rel: target === '_blank' ? 'noreferrer noopener' : undefined }, componentProps, restProps, hrefProps, { ref: mergeRefs([buttonRef, ref]) }), buttonChildren));\n }\n var _o = restProps, disabled = _o.disabled, _p = _o.type, type = _p === void 0 ? 'button' : _p, restButtonProps = __rest(_o, [\"disabled\", \"type\"]);\n return (React.createElement(Component, __assign({}, componentProps, restButtonProps, { type: type, disabled: disabled || showLoader, ref: mergeRefs([buttonRef, ref]) }), buttonChildren));\n});\n/**\n * Для отображения в сторибуке\n */\nButton.defaultProps = {\n view: 'secondary',\n size: 'm',\n block: false,\n loading: false,\n nowrap: false,\n};\n\nexport { Button, LOADER_MIN_DISPLAY_INTERVAL };\n","// extracted by mini-css-extract-plugin\nexport default {\"background-$(backgroundColorBg)\":\"a3pvS\",\"background-$(backgroundColor)\":\"b3pvS\",\"external\":\"c3pvS\",\"deprecatedBorderRadius\":\"d3pvS\",\"hasAnimation\":\"e3pvS\",\"container\":\"f3pvS\"};","/** Устаревшее значение радиуса скругления кнопки */\nexport const DEPRECATED_BORDER_RADIUS = 4;\n\n/** По дизайну у всех кнопок должен быть border-radius: 8px */\nexport const DESIGN_BORDER_RADIUS = 8;\n\n/** По дизайну у всех кнопок должна быть анимация клика */\nexport const DESIGN_CLICK_ANIMATION = true;\n\nexport const BORDER_RADIUSES = [4, 8] as const;\n\n/**\n * TODO: Удалить лишние варианты\n * view='outlined' будет удален в следующих мажорных версиях. Используйте view='tertiary'\n * view='filled' будет удален в следующих мажорных версиях. Используйте view='secondary'\n * view='transparent' будет удален в следующих мажорных версиях. Используйте view='secondary'\n */\nexport const VIEWS = [\n 'primary',\n 'filled',\n 'transparent',\n 'secondary',\n 'outlined',\n 'tertiary',\n 'link',\n 'ghost',\n] as const;\nexport const FILTERED_VIEWS = VIEWS.filter(\n view => !['filled', 'outlined', 'transparent'].includes(view)\n);\n\nexport const SIZES = ['xxs', 'xs', 's', 'm', 'l'] as const;\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { Button as CoreButton } from '@alfalab/core-components-button';\n\nimport styles from './styles/styles.css';\nimport type { TProps, IDeps } from './models';\nimport { Button as Component } from './button';\n\nexport const Button = createWidget(\n { CoreButton, styles },\n { priorityStyler: true }\n)(Component);\n","import cn from 'classnames';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useNamedContainersWithChildren } from '@alfa-bank/site-named-container/utils';\n\n// TODO: при обновление core-components-button кнопка может стать черной, так как обновились токены\n// вместе с кнопкой нужно апнуть пакет \"@alfalab/core-components-themes\": ~12.1.0 тогда кнопка остается красной при view=primary\n\nimport type { TProps } from './models';\nimport { DEPRECATED_BORDER_RADIUS, DESIGN_BORDER_RADIUS, DESIGN_CLICK_ANIMATION } from './config';\n\nexport const Button: FC> = ({\n CoreButton,\n block = false,\n borderRadius = DESIGN_BORDER_RADIUS,\n children,\n className,\n colors = 'default',\n hasAnimation = DESIGN_CLICK_ANIMATION,\n innerClassName,\n loading = false,\n nowrap = false,\n size = 'm',\n styles,\n view = 'secondary',\n leftAddons,\n rightAddons,\n ...restProps\n}) => {\n const {\n children: otherChildren,\n leftAddons: leftAddonsSlot,\n rightAddons: rightAddonsSlot,\n } = useNamedContainersWithChildren(children);\n\n const button = (\n \n {/* Проверка необходима для поддержки iconOnly режима. useNamedContainersWithChildren трансформирует children в массив, а iconOnly режим активируется если значение children falsy */}\n {otherChildren.length > 0 && otherChildren}\n \n );\n\n return className ? (\n
{button}
\n ) : (\n button\n );\n};\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { Button } from '@alfa-bank/site-button-v2';\nimport { ImgV2 as Img } from '@alfa-bank/site-img-v2';\n\nimport type { IYandexSearchBarDesktopDeps, TYandexSearchBarDesktop } from '../../models';\nimport { YandexSearchBar as Component } from '../components/yandex-search-bar';\n\nimport styles from './desktop.css';\n\nexport const YandexSearchBar = createWidget({\n styles,\n Img,\n Button,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"background-$(backgroundColorBg)\":\"a3fJW\",\"background-$(backgroundColor)\":\"b3fJW\",\"yaBar\":\"c3fJW\",\"lightSecondary\":\"d3fJW\",\"form\":\"e3fJW\",\"secondaryDeleteIcon\":\"f3fJW\",\"hidden\":\"g3fJW\",\"search\":\"h3fJW\",\"suggestList\":\"i3fJW\",\"isFocused\":\"j3fJW\",\"suggest\":\"k3fJW\",\"suggestLink\":\"l3fJW\",\"submitIcon\":\"m3fJW\",\"external\":\"n3fJW\",\"submitButton\":\"o3fJW\",\"light\":\"p3fJW\",\"inverted\":\"q3fJW\"};"],"names":["styles","Loader","_a","className","dataTestId","isNamedContainer","node","Boolean","props","is","name","getNamedContainersWithChildren","children","React","reduce","nodes","push","getNamedContainers","useNamedContainersWithChildren","useMemo","useNamedContainers","prevInputMethod","UseLoadingStates","handleKeyDown","event","key","handleMouseDown","handleTouchStart","addGlobalListeners","document","addEventListener","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","require","colorStyles","default","inverted","Button","ref","_b","_c","_d","_e","view","leftAddons","rightAddons","_f","size","_g","block","href","_h","loading","_j","nowrap","_k","colors","_l","Component","restProps","includes","buttonRef","useRef","focused","inputMethod","focus","setFocus","handleFocus","handleBlur","current","removeEventListener","useFocus","_m","useState","loaderTimePassed","setLoaderTimePassed","timerId","showLoader","iconOnly","componentProps","cn","component","withRightAddons","withLeftAddons","buttonChildren","addons","text","stretchText","loader","useEffect","window","setTimeout","clearTimeout","target","hrefProps","rel","undefined","mergeRefs","_o","disabled","_p","type","restButtonProps","defaultProps","filter","createWidget","CoreButton","priorityStyler","borderRadius","hasAnimation","innerClassName","otherChildren","leftAddonsSlot","rightAddonsSlot","button","external","deprecatedBorderRadius","container","YandexSearchBar","Img"],"sourceRoot":""}