{"version":3,"file":"product-list-filter.0xM_h1de52.js","sources":["../../../../src/molecules/filter-list/ProductListFilter.tsx"],"sourcesContent":["import Icon from '@atoms/icons/Icon';\nimport RequireJs from '@helpers/RequireJs';\nimport { ProductListFilterModel } from '@_types/organisms';\nimport { Fragment, useEffect, useRef, useState } from 'react';\nimport { getModifiers } from '@helpers/functions';\nimport { FilterItemModel } from '@_types/molecules';\n\ninterface Props extends ProductListFilterModel {\n onChange?: (value: string, filterUrl?: string, isDefault?: boolean) => any;\n disableActiveOption?: boolean;\n}\n\nconst ProductListFilter = (model: Props) => {\n const styleModifier = getModifiers(model, 'arjo-m-filter-product-list');\n const { filterId, options, onChange, disableActiveOption } = model;\n const [expanded, setExpanded] = useState(false);\n const [selectedOption, setSelectedOption] = useState();\n const ref = useRef(null);\n\n useEffect(() => {\n const defaultOption = options.find((o) => o.isDefault) ?? options.find((o) => !o.value || o.value === '0');\n setSelectedOption(defaultOption);\n }, [model]);\n\n useEffect(() => {\n window.addEventListener('click', collapse, true);\n\n return () => {\n window.removeEventListener('click', collapse, true);\n };\n });\n\n const collapse = (e: MouseEvent) => {\n if (!ref.current || !e.target || !ref.current.contains(e.target as Node)) {\n setExpanded(false);\n }\n };\n\n const handleChange = (e: React.MouseEvent, opt: FilterItemModel) => {\n e.preventDefault();\n setExpanded(false);\n\n if (onChange) {\n onChange(opt.value, opt.filterUrl, opt.isDefault);\n }\n };\n\n const handleExpandClick = () => {\n setExpanded(!expanded);\n };\n\n return (\n \n
\n \n\t\t\t\t\t{selectedOption?.label}\n \n
\n
\n {options.map((opt, index) => {\n const isActive = selectedOption?.value === opt.value;\n return (\n \n {\n if (isActive && disableActiveOption) return;\n handleChange(e, opt);\n }}\n className={`arjo-m-filter-product-list__input-label${isActive ?\n ' active' : ''} ${disableActiveOption && isActive ?\n 'disabled' : ''}`}\n >\n {opt.label}\n \n \n );\n })}\n
\n \n \n
\n );\n};\n\nexport default ProductListFilter;\n"],"names":["ProductListFilter","model","styleModifier","getModifiers","filterId","options","onChange","disableActiveOption","expanded","setExpanded","useState","selectedOption","setSelectedOption","ref","useRef","useEffect","defaultOption","o","collapse","handleChange","opt","handleExpandClick","Fragment","jsxs","jsx","Icon","index","isActive","e","RequireJs"],"mappings":"6LAYM,MAAAA,EAAqBC,GAAiB,CACpC,MAAAC,EAAgBC,EAAaF,EAAO,4BAA4B,EAChE,CAAE,SAAAG,EAAU,QAAAC,EAAS,SAAAC,EAAU,oBAAAC,GAAwBN,EACvD,CAACO,EAAUC,CAAW,EAAIC,WAAS,EAAK,EACxC,CAACC,EAAgBC,CAAiB,EAAIF,EAA0B,SAAA,EAChEG,EAAMC,SAAuB,IAAI,EAEvCC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAgBX,EAAQ,KAAMY,GAAMA,EAAE,SAAS,GAAKZ,EAAQ,KAAMY,GAAM,CAACA,EAAE,OAASA,EAAE,QAAU,GAAG,EACzGL,EAAkBI,CAAa,CAAA,EAC9B,CAACf,CAAK,CAAC,EAEVc,EAAAA,UAAU,KACD,OAAA,iBAAiB,QAASG,EAAU,EAAI,EAExC,IAAM,CACJ,OAAA,oBAAoB,QAASA,EAAU,EAAI,CAAA,EAErD,EAEK,MAAAA,EAAY,GAAkB,EAC9B,CAACL,EAAI,SAAW,CAAC,EAAE,QAAU,CAACA,EAAI,QAAQ,SAAS,EAAE,MAAc,IACrEJ,EAAY,EAAK,CACnB,EAGIU,EAAe,CAAC,EAAoDC,IAAyB,CACjG,EAAE,eAAe,EACjBX,EAAY,EAAK,EAEbH,GACFA,EAASc,EAAI,MAAOA,EAAI,UAAWA,EAAI,SAAS,CAClD,EAGIC,EAAoB,IAAM,CAC9BZ,EAAY,CAACD,CAAQ,CAAA,EAGvB,cACGc,WACC,CAAA,SAAA,CAAAC,OAAC,MAAI,CAAA,UAAWrB,EAAe,iBAAgBE,EAAU,IAAAS,EACvD,SAAA,CAAAU,EAAA,KAAC,MAAA,CACC,UAAU,uCACV,QAASF,EACT,gBAAeb,EAAW,GAAK,OAEpC,SAAA,CAAAgB,EAAA,IAAC,OAAA,CACM,UAAU,4CACV,SAAgBb,GAAA,YAAAA,EAAA,KAAA,CAAM,EACxBa,EAAA,IAACC,EAAA,CACC,SAAS,yDAAA,CACX,CAAA,CAAA,CACF,EACAD,MAAC,OAAI,UAAU,sCACZ,WAAQ,IAAI,CAACJ,EAAKM,IAAU,CACrB,MAAAC,GAAWhB,GAAA,YAAAA,EAAgB,SAAUS,EAAI,MAC/C,aACGE,EAAAA,SACC,CAAA,SAAAE,EAAA,IAAC,IAAA,CACC,KAAMJ,EAAI,IACV,QAAUQ,GAAM,CACVD,GAAYpB,GAChBY,EAAaS,EAAGR,CAAG,CACrB,EACA,UAAW,0CAA0CO,EACnD,UAAY,EAAE,IAAIpB,GAAuBoB,EACzC,WAAa,EAAE,GAEhB,SAAIP,EAAA,KAAA,CAAA,GAXMM,CAaf,CAEH,CAAA,EACH,CAAA,EACF,EACCF,EAAA,IAAAK,EAAA,CAAU,KAAK,sBAAsB,MAAK,GAAC,CAC9C,CAAA,CAAA,CAEJ"}