UNPKG

@nexusui/components

Version:

These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.

2 lines (1 loc) 3.75 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@mui/material/Stack"),r=require("react"),i=require("@mui/icons-material/AddOutlined"),a=require("@mui/icons-material/PeopleOutlineOutlined"),n=require("@mui/material/Button"),l=require("@mui/material/IconButton"),s=require("@mui/material/styles"),o=require("@mui/material/useMediaQuery"),c=require("@mui/icons-material/Sort"),u=require("@mui/icons-material/Menu"),d=require("../locales/index.js"),m=require("./locale.json.js"),h=require("../ActionGroup/ActionGroup.container.js"),g=require("../SearchBar/SearchBar.component.js"),p=require("../common/Filter/MultiSelectFilter.js"),j=require("../common/Filter/SingleSelectFilter.js"),x=require("../GridHeader/GridHeader.container.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var S=f(t),F=f(i),q=f(a),C=f(n),$=f(l),y=f(o),T=f(c),O=f(u);const B="NexusProjectGridHeader";exports.ProjectGridHeaderComponent=({title:t,description:i,actions:a,actionsComponent:n,disableCreateButton:l,createButtonProps:o,projectTypeFilterLabel:c,projectTypeOptions:u,ownershipOptions:f,sortOptions:b,defaultProjectTypes:M=[],defaultOwnership:w,defaultSortBy:N,onProjectTypeFilterChange:v,onOwnershipFilterChange:G,onSortFilterChange:I,onSearch:P,onShare:k,onCreate:A,onMenuToggle:H,children:z,...D})=>{const _=d.useTranslate(m.default),L=s.useTheme(),Q=y.default(L.breakpoints.down("md")),[V,W]=r.useState([...M]),[E,J]=r.useState(w),[K,R]=r.useState(N),U=V.length>0&&V.length===u?.length,X=r.useMemo((()=>{let e="";return 0===V.length||U?e=_("allTypes"):1===V.length?e=u?.find((e=>e.value===V[0]))?.name||"":V.length>1&&(e=_("TypeSelectedCount",{0:V.length})),e}),[U,u,V,_]),Y=n||(a?e.jsx(h.ActionGroup,{actions:a,max:1}):e.jsx(e.Fragment,{})),Z=e.jsx(g.SearchBar,{"data-testid":`${B}-search`,className:`${B}-search`,buttonVariant:"text",placeholder:`${_("Search by keyword")}...`,onChange:P,onClear:()=>P(""),sx:{mr:{xs:0,md:4},maxWidth:{xs:"unset",md:.5},height:48}}),ee=e.jsx(C.default,{variant:"contained",disabled:l,startIcon:e.jsx(F.default,{}),onClick:e=>{e.preventDefault(),e.target.blur(),A&&A()},"data-testid":`${B}-create`,className:`${B}-create`,...o,children:o?.title||_("Create Document")}),te=u&&u.length?e.jsx(p.MultiSelectFilter,{"data-testid":`${B}-projectFilter`,className:`${B}-projectFilter`,toggleMode:Q?"iconToggle":"textToggle",text:X,initialSelected:V,filterOptions:u,onFilterChanged:e=>{W(e),v&&v(e)}}):e.jsx(e.Fragment,{}),re=f&&f.length?e.jsx(j.SingleSelectFilter,{"data-testid":`${B}-ownershipFilter`,className:`${B}-ownershipFilter`,toggleMode:Q?"iconToggle":"textToggle",icon:e.jsx(q.default,{}),text:f.find((e=>e.value===E))?.name||"",initialSelected:E,filterOptions:f,onFilterChanged:e=>{J(e),G&&G(e)}}):e.jsx(e.Fragment,{}),ie=b&&b.length?e.jsx(j.SingleSelectFilter,{"data-testid":`${B}-sortFilter`,className:`${B}-sortFilter`,initialSelected:K,icon:e.jsx(T.default,{}),filterOptions:b,onFilterChanged:e=>{R(e),I&&I(e)}}):e.jsx(e.Fragment,{});return e.jsxs(x.GridHeader,{icon:Q&&H&&e.jsx($.default,{size:"small",onClick:H,className:`${B}-menuIcon`,"data-testid":`${B}-menuIcon`,"aria-label":"Menu Button",children:e.jsx(O.default,{})}),title:t,description:i,titleActions:e.jsxs(S.default,{direction:"row",sx:{alignItems:"center"},children:[k&&e.jsx(C.default,{onClick:k,variant:"text",size:"small",className:`${B}-shareButton`,"data-testid":`${B}-shareButton`,startIcon:Q?e.jsx(e.Fragment,{}):e.jsx(q.default,{}),children:_("Share")}),Y]}),primaryAction:ee,search:Z,className:`${B}-root`,...D,children:[z,e.jsxs(S.default,{direction:"row",justifyContent:"flex-end",alignItems:"center",spacing:4,children:[te,re,ie]})]})},exports.prefix=B;