{"version":3,"file":"scripts/chunks/_app_app_components_molecules_Select_Select_tsx.610bf8c6bda5c0348551.mjs","mappings":"oPAOA,MAAMA,E,MAAKC,GA0BLC,EAASC,IAUwB,IAVvB,SACdC,EAAQ,QACRC,EAAO,cACPC,EAAa,cACbC,EAAa,QACbC,GAAU,EAAK,MACfC,EAAK,QACLC,EAAO,gBACPC,EAAe,gBACfC,GACYT,EACZ,MAAMU,GAAgBC,EAAAA,EAAAA,UAAQ,KAC5B,GAAIP,GAAiBF,EAAQU,OAAS,EAAG,CACvC,MAAMC,EAAoBX,EAAQY,MAAMC,GAAWA,EAAOC,KAAOZ,KAAgBE,MACjF,GAAIO,EACF,OAAOA,EAGT,MAAMI,EAAuBf,EAC1BgB,KAAKH,GAAWA,EAAOI,UAAY,KACnCC,OACAN,MAAMO,GAAYA,GAASL,KAAOZ,KAAgBE,MAErD,GAAIW,EACF,OAAOA,CAEX,CAEA,OAAqB,MAAjBd,GAAyBD,IAAUC,IAAgBG,MAC9CJ,EAAQC,GAAeG,MAG5BC,GAlCe,KAkCJH,EACNG,EAGFH,CAAa,GACnB,CAACD,EAAeD,EAASK,EAASH,IAE/BkB,GAAMC,EAAAA,EAAAA,QAAuB,OAC5BC,EAAQC,IAAaC,EAAAA,EAAAA,WAAS,GAC/BC,GAAcC,EAAAA,EAAAA,GAAW1B,IAE/B2B,EAAAA,EAAAA,YAAU,KACR,MAAMC,EAAsBC,IACtBT,EAAIU,UAAYV,EAAIU,QAAQC,SAASF,EAAMG,SAC7CT,GAAU,EACZ,EAKF,OAFAU,OAAOC,iBAAiB,YAAaN,GACrCK,OAAOC,iBAAiB,WAAYN,GAC7B,KACLK,OAAOE,oBAAoB,YAAaP,GACxCK,OAAOE,oBAAoB,WAAYP,EAAmB,CAC3D,GACA,IAEH,MAAMQ,EAAgBC,IAYhB,IAZiB,MACrBR,EAAK,OACLhB,EAAM,YACNyB,EAAW,aACXC,GAQDF,EACCR,EAAMW,kBACNX,EAAMY,iBACN1C,EAASc,EAAQyB,EAAaC,GAC9BhB,GAAWmB,IAAgBA,GAAW,EAGlCC,EAAYC,IAUZ,IAVa,MACjBf,EAAK,OACLhB,EAAM,YACNyB,EAAW,aACXC,GAMDK,EACmB,UAAdf,EAAMgB,KACVT,EAAc,CAAEP,QAAOhB,SAAQyB,cAAaC,gBAAe,EAGvDO,EAAeA,CAACjC,EAAgByB,EAAqBS,EAAqBR,IAC9ES,EAAAA,cAAA,OACEC,KAAK,SACLC,SAAUZ,EACV,gBAAeS,EACfJ,UAAYd,IACVc,EAAU,CAAEd,QAAOhB,SAAQyB,cAAaC,gBAAe,EAEzDY,QAAUtB,GAAUO,EAAc,CAAEP,QAAOhB,SAAQyB,cAAaC,iBAChEa,UAAWC,EAAAA,CAAO,kBAAkBN,EAAa,cAAgB,MAAMzB,EAAS,UAAY,KAC5FuB,IAAK,GAAGhC,EAAOC,OAAOwB,KAErBzB,EAAOT,OAASS,EAAOyC,OAItBC,EAAiBC,IAQjB,IARkB,YACtBlB,EAAW,OACXzB,GAMD2C,EACC,MAAMC,EACJvD,IAAkBW,EAAOC,IAAMD,EAAOI,SAASD,KAAK0C,GAASA,EAAK5C,KAAI6C,SAASzD,GAEjF,OACE8C,EAAAA,cAAA,OACEE,SAAUZ,EACV,gBAAepC,IAAkBW,EAAOC,GACxCsC,UAAWzD,EAAG,mBAAoB,CAChC,cAAeO,IAAkBW,EAAOC,GACxC,UAAW2C,IAEbZ,IAAK,IAAIhC,EAAO+C,OAAO/C,EAAOT,QAC9BuC,UAAYd,IACVc,EAAU,CAAEd,QAAOhB,SAAQyB,eAAc,EAE3Ca,QAAUtB,GAAUO,EAAc,CAAEP,QAAOhB,SAAQyB,iBAElDzB,EAAOT,MACPS,EAAOI,UAAUP,OAAS,GACzBG,EAAOI,SAASD,KAAI,CAACG,EAASoB,IAC5BO,EAAa3B,EAASmB,EAAapC,IAAkBiB,EAAQL,GAAIyB,KAEjE,EAIJsB,GAAgBpD,EAAAA,EAAAA,UAAQ,IACxBN,EACKsB,GAAaT,KAAI,CAACH,EAAQyB,IAC/BzB,EAAOI,SAASP,OAAS,EACrB6C,EAAe,CAAEjB,cAAazB,WAC9BiC,EAAajC,EAAQyB,EAAapC,IAAkBW,EAAOC,MAI5DW,EAAYT,KAAI,CAACH,EAAQyB,IAAgBQ,EAAajC,EAAQyB,EAAarC,IAAkBqC,MACnG,CAACQ,EAAcrB,EAAatB,EAASF,EAAeC,EAAeqD,IAEhEO,EAAaA,KACjBvC,GAAWD,EAAO,EAGpB,OACE0B,EAAAA,cAAA,OAAK5B,IAAKA,EAAKgC,UAAWC,EAAAA,CAAO,yBAAyB/C,KAAmBC,KAC1EH,GAAS4C,EAAAA,cAAA,KAAGI,UAAU,iBAAiBhD,GACxC4C,EAAAA,cAAA,OAAKI,UAAU,gBACbJ,EAAAA,cAAA,OAAKI,UAAU,sBACbJ,EAAAA,cAAA,OAAKI,UAAWC,EAAAA,CAAO,kCAAkC/B,EAAS,UAAY,MAC5E0B,EAAAA,cAAA,QACEC,KAAK,SACLE,QAASA,IAAMW,IACfnB,UAAYd,GAAwB,UAAdA,EAAMgB,KAAmBiB,IAC/CV,UAAU,iBACV,mBACAF,UAAW,EACX,gBAAc,gBAEdF,EAAAA,cAAA,QAAMM,MAAO9C,GAAgBA,IAE/BwC,EAAAA,cAAA,OAAKI,UAAU,gBAAgBH,KAAK,WACjC5C,GAAWyC,EAAa,CAAEhC,GAnLlB,GAmLsCV,MAAOC,IAAY,EAnLzD,KAmL4DH,GACpE2D,MAKTb,EAAAA,cAAA,QAAMI,UAAU,+BACdJ,EAAAA,cAACe,EAAAA,GAAkB,OAEjB,C,iVClNH,MAAMrC,EAAa,WAGrB,IAFHsC,EAAKC,UAAAvD,OAAA,QAAAwD,IAAAD,UAAA,GAAAA,UAAA,GAAgB,GACrBE,EAAWF,UAAAvD,OAAA,QAAAwD,IAAAD,UAAA,GAAAA,UAAA,GAAgB,GAE3B,MAAMG,GAAY3D,EAAAA,EAAAA,UAChB,IACE,IAAIuD,KAAUG,GAAanD,KAAKqD,G,qWAAKC,CAAA,CACnCV,KAAKW,EAAAA,EAAAA,MACFF,MAEP,CAACL,EAAOG,IAGV,OAAOC,CACT,C,qdCpBO,MAAMI,EAAuDC,GAClEzB,EAAAA,cAAA,QAAMI,UAAW,+BAA8BqB,EAAMC,QAAU,YAAc,KAC3E1B,EAAAA,cAAA,OAAK2B,MAAM,8BAA8BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACtE9B,EAAAA,cAAA,QAAM+B,SAAS,UAAUC,EAAE,iEAIjCR,EAAUS,aAAe,CAAEP,SAAS,GAE7B,MAAMQ,EAAeA,IAC1BlC,EAAAA,cAAA,OAAK4B,MAAM,IAAIC,OAAO,KAAKC,QAAQ,YACjC9B,EAAAA,cAAA,QACEmC,KAAK,OACLJ,SAAS,UACTC,EAAE,4LAKKI,EAAeA,IAC1BpC,EAAAA,cAAA,OAAK4B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAClC9B,EAAAA,cAAA,QACEmC,KAAK,OACLJ,SAAS,UACTC,EAAE,qgBAKKK,EAAcA,IACzBrC,EAAAA,cAAA,OAAK4B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAClC9B,EAAAA,cAAA,QACEmC,KAAK,OACLJ,SAAS,UACTC,EAAE,+LAKKM,EAAaA,IACxBtC,EAAAA,cAAA,OAAK4B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAClC9B,EAAAA,cAAA,QACEmC,KAAK,UACLJ,SAAS,UACTC,EAAE,oZAKKO,EAAeA,IAC1BvC,EAAAA,cAAA,OAAKwC,SAAS,WAAWV,QAAQ,gBAAgBW,EAAE,MAAMC,EAAE,MAAMC,QAAQ,MAAMf,MAAM,KAAKC,OAAO,MAC/F7B,EAAAA,cAAA,QAAMgC,EAAE,8VAICY,EAASA,IACpB5C,EAAAA,cAAA,OAAK4B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAClC9B,EAAAA,cAAA,QACEmC,KAAK,OACLJ,SAAS,UACTC,EAAE,4bAKKa,EAAgBA,IAC3B7C,EAAAA,cAAA,OACE2C,QAAQ,MACRG,WAAW,gCACXJ,EAAE,MACFD,EAAE,MACFX,QAAQ,sBACRU,SAAS,WACTZ,MAAM,KACNC,OAAO,MAEP7B,EAAAA,cAAA,SACEA,EAAAA,cAAA,SACEA,EAAAA,cAAA,QAAMgC,EAAE,o0BAGZhC,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,UACAA,EAAAA,cAAA,WAIS+C,EAAiBA,IAC5B/C,EAAAA,cAAA,OAAK2B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACrE9B,EAAAA,cAAA,QACEmC,KAAK,UACLJ,SAAS,UACTC,EAAE,gGAKKgB,EAAgBA,IAC3BhD,EAAAA,cAAA,OAAK2B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACrE9B,EAAAA,cAAA,QACEmC,KAAK,UACLJ,SAAS,UACTC,EAAE,8FAKKjB,EAAqBA,IAChCf,EAAAA,cAAA,OAAK2B,MAAM,8BAA8BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACtE9B,EAAAA,cAAA,QAAMmC,KAAK,UAAUJ,SAAS,UAAUC,EAAE,gEAIjCiB,EAAmBA,IAC9BjD,EAAAA,cAAA,OAAK2B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACrE9B,EAAAA,cAAA,QAAMmC,KAAK,UAAUJ,SAAS,UAAUC,EAAE,sEAIjCkB,EAAmBC,GAE5B,gbACiBC,QAAQ,cAAeD,GAG/BE,EAA2BA,IACtCrD,EAAAA,cAAA,OAAK2B,MAAM,6BAA6BE,OAAO,KAAKC,QAAQ,aAC1D9B,EAAAA,cAAA,KAAGlC,GAAG,8BACJkC,EAAAA,cAAA,QACEgC,EAAE,uGACFG,KAAK,SAEPnC,EAAAA,cAAA,QACEgC,EAAE,yGACFG,KAAK,YAEPnC,EAAAA,cAAA,QACEgC,EAAE,qnBACFG,KAAK,cAMAmB,EAAcA,IACzBtD,EAAAA,cAAA,OAAK4B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAY,cAAY,QAC1D9B,EAAAA,cAAA,KAAGlC,GAAG,WACJkC,EAAAA,cAAA,QAAMgC,EAAE,qMACRhC,EAAAA,cAAA,UAAQrD,GAAG,KAAK4G,GAAG,KAAKC,EAAE,MAC1BxD,EAAAA,cAAA,QAAMgC,EAAE,iIAKDyB,EAAqBA,IAChCzD,EAAAA,cAAA,OAAK4B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYK,KAAK,OAAOR,MAAM,8BAChE3B,EAAAA,cAAA,QACEgC,EAAE,yMACF0B,OAAO,QACPC,YAAY,IACZC,cAAc,UAEhB5D,EAAAA,cAAA,QAAM0C,EAAE,OAAOD,EAAE,IAAIb,MAAM,IAAIC,OAAO,IAAIgC,GAAG,MAAM1B,KAAK,aAI/C2B,EAAiBA,IAC5B9D,EAAAA,cAAA,OAAK6B,OAAO,OAAOD,MAAM,OAAOE,QAAQ,YAAYK,KAAK,OAAOR,MAAM,8BACpE3B,EAAAA,cAAA,QACE+B,SAAS,UACTgC,SAAS,UACT/B,EAAE,0JACFG,KAAK,YAEPnC,EAAAA,cAAA,QACE+B,SAAS,UACTgC,SAAS,UACT/B,EAAE,4JACFG,KAAK,Y,oFC/LJ,MAAMZ,EAAgB,WAAwB,IAAvB7D,EAAcuD,UAAAvD,OAAA,QAAAwD,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE7C,OADc+C,EAAAA,EAAAA,KAAOC,MAAM,EAAGvG,EAEhC,C,oECCO,MAAM2C,EAAU,SAAC6D,GAAwD,QAAAC,EAAAlD,UAAAvD,OAAtB0G,EAAM,IAAAC,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANF,EAAME,EAAA,GAAArD,UAAAqD,GAY5D,OAXoBJ,EAAQlG,KAAKuG,IAC7B,MAAMC,EAAMJ,EAAOK,QAEnB,OAAID,QACOD,EAGJ,GAAGA,IAAMC,GAAK,IACtBE,KAAK,IAEsBtB,QAAQ,UAAW,KAAKuB,MAE1D,C,qEClBA,OACEC,WAFmC,oBAAXC,QAA0BA,OAAOD,YAAcC,OAAOD,WAAWE,KAAKD,SCGhG,IAAIE,EACJ,MAAMC,EAAQ,IAAIC,WAAW,IACd,SAASC,IAEtB,IAAKH,IAEHA,EAAoC,oBAAXF,QAA0BA,OAAOE,iBAAmBF,OAAOE,gBAAgBD,KAAKD,SAEpGE,GACH,MAAM,IAAII,MAAM,4GAIpB,OAAOJ,EAAgBC,EACzB,CCXA,MAAMI,EAAY,GAElB,IAAK,IAAIC,EAAI,EAAGA,EAAI,MAAOA,EACzBD,EAAUE,MAAMD,EAAI,KAAOE,SAAS,IAAItB,MAAM,IAGzC,SAASuB,EAAgBC,EAAKC,EAAS,GAG5C,OAAQN,EAAUK,EAAIC,EAAS,IAAMN,EAAUK,EAAIC,EAAS,IAAMN,EAAUK,EAAIC,EAAS,IAAMN,EAAUK,EAAIC,EAAS,IAAM,IAAMN,EAAUK,EAAIC,EAAS,IAAMN,EAAUK,EAAIC,EAAS,IAAM,IAAMN,EAAUK,EAAIC,EAAS,IAAMN,EAAUK,EAAIC,EAAS,IAAM,IAAMN,EAAUK,EAAIC,EAAS,IAAMN,EAAUK,EAAIC,EAAS,IAAM,IAAMN,EAAUK,EAAIC,EAAS,KAAON,EAAUK,EAAIC,EAAS,KAAON,EAAUK,EAAIC,EAAS,KAAON,EAAUK,EAAIC,EAAS,KAAON,EAAUK,EAAIC,EAAS,KAAON,EAAUK,EAAIC,EAAS,MAAMC,aACvf,CCYA,MAxBA,SAAY3I,EAAS4I,EAAKF,GACxB,GAAI,EAAOd,aAAegB,IAAQ5I,EAChC,OAAO,EAAO4H,aAIhB,MAAMiB,GADN7I,EAAUA,GAAW,CAAC,GACD8I,SAAW9I,EAAQkI,KAAOA,KAK/C,GAHAW,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBD,EAAK,CACPF,EAASA,GAAU,EAEnB,IAAK,IAAIL,EAAI,EAAGA,EAAI,KAAMA,EACxBO,EAAIF,EAASL,GAAKQ,EAAKR,GAGzB,OAAOO,CACT,CAEA,OAAOJ,EAAgBK,EACzB,C,sBC1BA;;;;;GAOC,WACA,aAEA,IAAIE,EAAS,CAAC,EAAEC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELb,EAAI,EAAGA,EAAIpE,UAAUvD,OAAQ2H,IAAK,CAC1C,IAAIc,EAAMlF,UAAUoE,GAChBc,IACHD,EAAUE,EAAYF,EAASG,EAAWC,KAAKC,KAAMJ,IAEvD,CAEA,OAAOD,CACR,CAEA,SAASG,EAAYF,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOI,MAAQA,KAAKJ,IAAQA,EAG7B,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAI9B,MAAMmC,QAAQL,GACjB,OAAOF,EAAWQ,MAAMF,KAAMJ,GAG/B,GAAIA,EAAIZ,WAAamB,OAAOC,UAAUpB,WAAaY,EAAIZ,SAASA,WAAW5E,SAAS,iBACnF,OAAOwF,EAAIZ,WAGZ,IAAIW,EAAU,GAEd,IAAK,IAAIrG,KAAOsG,EACXJ,EAAOO,KAAKH,EAAKtG,IAAQsG,EAAItG,KAChCqG,EAAUE,EAAYF,EAASK,MAAQA,KAAK1G,IAAQA,IAItD,OAAOqG,CACR,CAEA,SAASE,EAAaQ,EAAOC,GAC5B,OAAKA,EAIDD,EACIA,EAAQ,IAAMC,EAGfD,EAAQC,EAPPD,CAQT,CAEqCE,EAAOC,SAC3Cd,EAAWe,QAAUf,EACrBa,EAAOC,QAAUd,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CArEA,E","sources":["webpack://rockworld/./app/components/molecules/Select/Select.tsx","webpack://rockworld/./app/hooks/useIdArray.ts","webpack://rockworld/./app/scripts/core/views/react/molecules/svg/svgElements.tsx","webpack://rockworld/./app/utils/random.ts","webpack://rockworld/./app/utils/tidy-str.ts","webpack://rockworld/./node_modules/uuid/dist/esm-browser/native.js","webpack://rockworld/./node_modules/uuid/dist/esm-browser/rng.js","webpack://rockworld/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://rockworld/./node_modules/uuid/dist/esm-browser/v4.js","webpack://rockworld/./node_modules/classnames/bind.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { tidyStr } from '@utils/tidy-str';\r\nimport { SmallArrowDownIcon } from 'app/scripts/core/views/react/molecules/svg/svgElements';\r\nimport { useIdArray } from '@hooks/useIdArray';\r\nimport classnames from 'classnames/bind';\r\n\r\nconst cx = classnames;\r\n\r\nexport type Option = {\r\n label: string;\r\n id?: string | number;\r\n title?: string;\r\n subItems?: {\r\n label: string;\r\n id?: string | number;\r\n }[];\r\n};\r\n\r\ninterface SelectProps {\r\n selectedIndex?: number;\r\n selectedValue?: string;\r\n options: Option[];\r\n onChange: (e: Option, optionIndex: number, subItemIndex?: number) => void;\r\n isGroup?: boolean;\r\n label?: string;\r\n allText?: string;\r\n isDisabledClass?: string;\r\n isRequiredClass?: string;\r\n}\r\n\r\nconst allOptionValue = '';\r\n\r\nconst Select = ({\r\n onChange,\r\n options,\r\n selectedIndex,\r\n selectedValue,\r\n isGroup = false,\r\n label,\r\n allText,\r\n isDisabledClass,\r\n isRequiredClass,\r\n}: SelectProps): React.ReactElement => {\r\n const selectedLabel = useMemo(() => {\r\n if (selectedValue && options.length > 0) {\r\n const selectedItemLabel = options.find((option) => option.id === selectedValue)?.label;\r\n if (selectedItemLabel) {\r\n return selectedItemLabel;\r\n }\r\n\r\n const selectedSubItemLabel = options\r\n .map((option) => option.subItems ?? [])\r\n .flat()\r\n .find((subItem) => subItem?.id === selectedValue)?.label;\r\n\r\n if (selectedSubItemLabel) {\r\n return selectedSubItemLabel;\r\n }\r\n }\r\n\r\n if (selectedIndex != null && options?.[selectedIndex]?.label) {\r\n return options[selectedIndex].label;\r\n }\r\n\r\n if (allText && selectedValue === allOptionValue) {\r\n return allText;\r\n }\r\n\r\n return selectedValue;\r\n }, [selectedIndex, options, allText, selectedValue]);\r\n\r\n const ref = useRef(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const prepOptions = useIdArray(options);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\r\n if (ref.current && !ref.current.contains(event.target as HTMLElement)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n window.addEventListener('mousedown', handleClickOutside);\r\n window.addEventListener('touchend', handleClickOutside);\r\n return () => {\r\n window.removeEventListener('mousedown', handleClickOutside);\r\n window.removeEventListener('touchend', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n const onClickOption = ({\r\n event,\r\n option,\r\n optionIndex,\r\n subItemIndex,\r\n }: {\r\n event:\r\n | React.MouseEvent\r\n | React.KeyboardEvent;\r\n option: Option;\r\n optionIndex: number;\r\n subItemIndex?: number;\r\n }) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n onChange(option, optionIndex, subItemIndex);\r\n setIsOpen((prevIsOpen) => !prevIsOpen);\r\n };\r\n\r\n const onKeyDown = ({\r\n event,\r\n option,\r\n optionIndex,\r\n subItemIndex,\r\n }: {\r\n event: React.KeyboardEvent;\r\n option: Option;\r\n optionIndex: number;\r\n subItemIndex?: number;\r\n }) => {\r\n if (event.key !== 'Enter') return;\r\n onClickOption({ event, option, optionIndex, subItemIndex });\r\n };\r\n\r\n const renderOption = (option: Option, optionIndex: number, isSelected: boolean, subItemIndex?: number) => (\r\n {\r\n onKeyDown({ event, option, optionIndex, subItemIndex });\r\n }}\r\n onClick={(event) => onClickOption({ event, option, optionIndex, subItemIndex })}\r\n className={tidyStr`select__option ${isSelected ? 'is-selected' : ''} ${isOpen ? 'is-open' : ''}`}\r\n key={`${option.id}- ${optionIndex}`}\r\n >\r\n {option.label || option.title}\r\n \r\n );\r\n\r\n const renderOptGroup = ({\r\n optionIndex,\r\n option,\r\n }: {\r\n optionIndex: number;\r\n option: {\r\n _id: string;\r\n } & Option;\r\n }) => {\r\n const hasIsOpenClass =\r\n selectedValue === option.id || option.subItems.map((item) => item.id).includes(selectedValue);\r\n\r\n return (\r\n {\r\n onKeyDown({ event, option, optionIndex });\r\n }}\r\n onClick={(event) => onClickOption({ event, option, optionIndex })}\r\n >\r\n {option.label}\r\n {option.subItems?.length > 0 &&\r\n option.subItems.map((subItem, subItemIndex) =>\r\n renderOption(subItem, optionIndex, selectedValue === subItem.id, subItemIndex)\r\n )}\r\n \r\n );\r\n };\r\n\r\n const selectOptions = useMemo(() => {\r\n if (isGroup) {\r\n return prepOptions?.map((option, optionIndex) =>\r\n option.subItems.length > 0\r\n ? renderOptGroup({ optionIndex, option })\r\n : renderOption(option, optionIndex, selectedValue === option.id)\r\n );\r\n }\r\n\r\n return prepOptions.map((option, optionIndex) => renderOption(option, optionIndex, selectedIndex === optionIndex));\r\n }, [renderOption, prepOptions, isGroup, selectedIndex, selectedValue, renderOptGroup]);\r\n\r\n const toggleOpen = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n return (\r\n
\r\n {label &&

{label}

}\r\n
\r\n
\r\n
\r\n toggleOpen()}\r\n onKeyDown={(event) => event.key === 'Enter' && toggleOpen()}\r\n className=\"select__opener\"\r\n aria-expanded\r\n tabIndex={-1}\r\n aria-controls=\"select__elem\"\r\n >\r\n {selectedLabel}\r\n \r\n
\r\n {allText && renderOption({ id: allOptionValue, label: allText }, -1, selectedValue === allOptionValue)}\r\n {selectOptions}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Select, SelectProps };\r\n","import { getRandomHash } from '@utils/random';\r\nimport { useMemo } from 'react';\r\n\r\n/**\r\n * Takes arrays containing objects and extends them with id values\r\n * @param array - Array with objects\r\n * @param concatArray - Array with objects\r\n * @returns Array with objects extended with id random memoized value\r\n */\r\nexport const useIdArray = (\r\n array = [],\r\n concatArray = []\r\n) => {\r\n const prepArray = useMemo(\r\n () =>\r\n [...array, ...concatArray].map((entry) => ({\r\n _id: getRandomHash(),\r\n ...entry,\r\n })),\r\n [array, concatArray]\r\n );\r\n\r\n return prepArray;\r\n};\r\n","import React from 'react';\r\nimport type { FunctionComponent } from 'react';\r\n\r\nexport const ArrowDown: FunctionComponent<{ isWhite?: boolean }> = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\nArrowDown.defaultProps = { isWhite: false };\r\n\r\nexport const FacebookIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const LinkedInIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const TwitterIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const GoogleIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const TelegramIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const VkIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const PinterestIcon = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowRightIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowLeftIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const SmallArrowDownIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const SmallArrowUpIcon = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const MapItemTemplate = (brandColor: string) => {\r\n const svgTemplate =\r\n '';\r\n return svgTemplate.replace('{{ color }}', brandColor);\r\n};\r\n\r\nexport const IconYoutubeSquareSurface = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const ZendeskIcon = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const ZendeskRockfonIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const IconCloseCross = () => (\r\n \r\n \r\n \r\n \r\n);\r\n","import { v4 as uuid } from 'uuid';\r\n\r\nexport const getRandomHash = (length: number = 6) => {\r\n const value = uuid().slice(0, length);\r\n return value;\r\n};\r\n","/**\r\n * ```\r\n * Strip string template literal values from undefined / null values and double whitespaces\r\n * Example: tidyStr` lorem ${1} ipsum ${2} dolor set ${4} ${5} amet... ` => 'lorem 1 ipsum 2 dolor set 4 5 amet...'\r\n * ```\r\n */\r\nexport const tidyStr = (strings: TemplateStringsArray, ...values: unknown[]) => {\r\n const filteredStr = strings.map((str) => {\r\n const val = values.shift();\r\n\r\n if (val === undefined || val === null) {\r\n return str;\r\n }\r\n\r\n return `${str}${val}`;\r\n }).join('');\r\n\r\n const outputStr = filteredStr.replace(/\\s{2,}/g, ' ').trim();\r\n return outputStr;\r\n}\r\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":["cx","classnames","Select","_ref","onChange","options","selectedIndex","selectedValue","isGroup","label","allText","isDisabledClass","isRequiredClass","selectedLabel","useMemo","length","selectedItemLabel","find","option","id","selectedSubItemLabel","map","subItems","flat","subItem","ref","useRef","isOpen","setIsOpen","useState","prepOptions","useIdArray","useEffect","handleClickOutside","event","current","contains","target","window","addEventListener","removeEventListener","onClickOption","_ref2","optionIndex","subItemIndex","stopPropagation","preventDefault","prevIsOpen","onKeyDown","_ref3","key","renderOption","isSelected","React","role","tabIndex","onClick","className","tidyStr","title","renderOptGroup","_ref4","hasIsOpenClass","item","includes","_id","selectOptions","toggleOpen","SmallArrowDownIcon","array","arguments","undefined","concatArray","prepArray","entry","_objectSpread","getRandomHash","ArrowDown","props","isWhite","xmlns","width","height","viewBox","fillRule","d","defaultProps","FacebookIcon","fill","LinkedInIcon","TwitterIcon","GoogleIcon","TelegramIcon","xmlSpace","y","x","version","VkIcon","PinterestIcon","xmlnsXlink","ArrowRightIcon","ArrowLeftIcon","SmallArrowUpIcon","MapItemTemplate","brandColor","replace","IconYoutubeSquareSurface","ZendeskIcon","cy","r","ZendeskRockfonIcon","stroke","strokeWidth","strokeLinecap","rx","IconCloseCross","clipRule","uuid","slice","strings","_len","values","Array","_key","str","val","shift","join","trim","randomUUID","crypto","bind","getRandomValues","rnds8","Uint8Array","rng","Error","byteToHex","i","push","toString","unsafeStringify","arr","offset","toLowerCase","buf","rnds","random","hasOwn","hasOwnProperty","classNames","classes","arg","appendClass","parseValue","call","this","isArray","apply","Object","prototype","value","newClass","module","exports","default"],"sourceRoot":""}