@lanaco/lnc-react-ui
Version:
React component library
64 lines (56 loc) • 2.41 kB
JavaScript
;const e=require("react/jsx-runtime"),d=require("react"),a=require("./emotion-styled.browser.esm-DwHBgTPn.cjs"),s=require("./breakpoints-CcVm-gVm.cjs"),j=require("./index-RrqW9QBJ.cjs"),v=a.styled.div`
display: flex;
flex-direction: column;
padding: 1.25rem;
gap: 1.25rem;
background-color: var(--white, #fff);
box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1),
0px 1px 2px 0px rgba(0, 0, 0, 0.06);
border: 1px solid var(--gray-95008, #14161a14);
border-radius: 0.75rem;
& .wrapper-title {
font-weight: 600;
font-size: 1rem;
}
@media ${s.down("S")} {
padding: 0;
border-radius: 0;
box-shadow: none;
border: none;
}
`,S=a.styled.div`
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1.5rem;
@media ${s.down("M")} {
grid-template-columns: repeat(2, 1fr);
}
@media ${s.down("S")} {
gap: 0.5rem;
}
@media ${s.down("XS")} {
grid-template-columns: 1fr;
}
`,N=a.styled.div`
display: flex;
flex-direction: column;
gap: 0.75rem;
font-weight: 500;
font-size: 0.875rem;
& .group-items {
padding: 0 0.75rem;
display: flex;
flex-direction: column;
gap: 0.5rem;
font-size: 0.75rem;
font-weight: 400;
& .count-txt {
color: var(--gray-600, #676e79);
}
}
& .region,
.city {
cursor: pointer;
transition: var(--transition);
}
`,q=d.forwardRef((c,p)=>{const{title:m,items:i,options:o,selectedOption:g=[],onSelectRegion:u=()=>{},onSelectCity:x=()=>{},onSelectOption:f=()=>{},onSelectAll:h=()=>{},productsToolbarName:w="All"}=c;return e.jsxs(v,{ref:p,className:"lp-section lp-location-search-section",children:[e.jsx("div",{className:"wrapper-title",children:m}),(o==null?void 0:o.length)>0&&e.jsx(j.SelectBar,{items:o,selectedIds:g,onSelect:(r,t)=>{f(r,t)},onSelectAll:h,labelKey:"name",valueKey:"code",noMargin:!0,productsToolbarName:w}),e.jsx(S,{children:i==null?void 0:i.map((r,t)=>{var l;return e.jsxs(N,{children:[e.jsx("div",{className:"region",onClick:()=>u(r),children:r==null?void 0:r.name}),e.jsx("div",{className:"group-items",children:(l=r==null?void 0:r.cities)==null?void 0:l.map((n,b)=>e.jsx(d.Fragment,{children:e.jsxs("div",{className:"city",onClick:()=>x(n),children:[e.jsx("span",{children:n==null?void 0:n.name}),e.jsxs("span",{className:"count-txt",children:["(",n==null?void 0:n.count,")"]})]})},t+b))})]},t)})})]})});module.exports=q;