construct-hub-webapp 0.1.371 → 0.1.375

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.gitattributes +21 -20
  2. package/build/asset-manifest.json +36 -36
  3. package/build/index.html +1 -1
  4. package/build/static/js/{0.8e185e41.chunk.js → 0.1511b94c.chunk.js} +1 -1
  5. package/build/static/js/{0.8e185e41.chunk.js.map → 0.1511b94c.chunk.js.map} +1 -1
  6. package/build/static/js/{1.0bc0f9ef.chunk.js → 1.7f05dc1b.chunk.js} +1 -1
  7. package/build/static/js/{1.0bc0f9ef.chunk.js.map → 1.7f05dc1b.chunk.js.map} +1 -1
  8. package/build/static/js/{10.cb0a0ad5.chunk.js → 10.2f5864a2.chunk.js} +1 -1
  9. package/build/static/js/{10.cb0a0ad5.chunk.js.map → 10.2f5864a2.chunk.js.map} +1 -1
  10. package/build/static/js/{11.5c18c5b8.chunk.js → 11.dc2f1de7.chunk.js} +1 -1
  11. package/build/static/js/{11.5c18c5b8.chunk.js.map → 11.dc2f1de7.chunk.js.map} +1 -1
  12. package/build/static/js/{12.6e403af3.chunk.js → 12.288fe983.chunk.js} +1 -1
  13. package/build/static/js/{12.6e403af3.chunk.js.map → 12.288fe983.chunk.js.map} +1 -1
  14. package/build/static/js/{13.a62ee528.chunk.js → 13.2ec99b1d.chunk.js} +2 -2
  15. package/build/static/js/{13.a62ee528.chunk.js.LICENSE.txt → 13.2ec99b1d.chunk.js.LICENSE.txt} +0 -0
  16. package/build/static/js/{13.a62ee528.chunk.js.map → 13.2ec99b1d.chunk.js.map} +1 -1
  17. package/build/static/js/{14.ab599924.chunk.js → 14.6308c024.chunk.js} +1 -1
  18. package/build/static/js/{14.ab599924.chunk.js.map → 14.6308c024.chunk.js.map} +1 -1
  19. package/build/static/js/{4.b0942e16.chunk.js → 4.85b3922a.chunk.js} +2 -2
  20. package/build/static/js/{4.b0942e16.chunk.js.LICENSE.txt → 4.85b3922a.chunk.js.LICENSE.txt} +0 -0
  21. package/build/static/js/{4.b0942e16.chunk.js.map → 4.85b3922a.chunk.js.map} +1 -1
  22. package/build/static/js/5.8ebb41a9.chunk.js +3 -0
  23. package/build/static/js/{5.63dc612f.chunk.js.LICENSE.txt → 5.8ebb41a9.chunk.js.LICENSE.txt} +0 -0
  24. package/build/static/js/5.8ebb41a9.chunk.js.map +1 -0
  25. package/build/static/js/{6.c84cea8e.chunk.js → 6.a2d54ede.chunk.js} +2 -2
  26. package/build/static/js/6.a2d54ede.chunk.js.map +1 -0
  27. package/build/static/js/{7.b1387400.chunk.js → 7.f4b14571.chunk.js} +2 -2
  28. package/build/static/js/7.f4b14571.chunk.js.map +1 -0
  29. package/build/static/js/{8.49001644.chunk.js → 8.90bc7c73.chunk.js} +2 -2
  30. package/build/static/js/8.90bc7c73.chunk.js.map +1 -0
  31. package/build/static/js/{9.be60d9a6.chunk.js → 9.4830c70a.chunk.js} +1 -1
  32. package/build/static/js/{9.be60d9a6.chunk.js.map → 9.4830c70a.chunk.js.map} +1 -1
  33. package/build/static/js/{main.d9f8442b.chunk.js → main.090a0a75.chunk.js} +2 -2
  34. package/build/static/js/main.090a0a75.chunk.js.map +1 -0
  35. package/build/static/js/{runtime-main.500a853b.js → runtime-main.240313c1.js} +2 -2
  36. package/build/static/js/{runtime-main.500a853b.js.map → runtime-main.240313c1.js.map} +1 -1
  37. package/package.json +10 -10
  38. package/build/static/js/5.63dc612f.chunk.js +0 -3
  39. package/build/static/js/5.63dc612f.chunk.js.map +0 -1
  40. package/build/static/js/6.c84cea8e.chunk.js.map +0 -1
  41. package/build/static/js/7.b1387400.chunk.js.map +0 -1
  42. package/build/static/js/8.49001644.chunk.js.map +0 -1
  43. package/build/static/js/main.d9f8442b.chunk.js.map +0 -1
@@ -1,2 +1,2 @@
1
- (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[8],{244:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(0),c=n(257),r={home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},i=n(123),o=n(1),s=function(e){var t=e.children,n=e.meta,s=e.pageName,l=Object(i.b)(r[s]);Object(a.useEffect)((function(){l()}),[l]);var u=n.suffix,d=void 0===u||u,j=n.title,b=n.description,O=d?"".concat(j," - Construct Hub"):j;return Object(o.jsxs)(o.Fragment,{children:[Object(o.jsxs)(c.a,{children:[!1,Object(o.jsx)("meta",{content:"width=device-width, initial-scale=1",name:"viewport"}),Object(o.jsx)("meta",{charSet:"utf-8"}),Object(o.jsx)("title",{children:O}),Object(o.jsx)("meta",{content:O,property:"og:title"}),Object(o.jsx)("meta",{content:O,name:"twitter:title"}),Object(o.jsx)("meta",{content:"summary",name:"twitter:card"}),Object(o.jsx)("meta",{content:b,name:"description"}),Object(o.jsx)("meta",{content:b,property:"og:description"}),Object(o.jsx)("meta",{content:b,name:"twitter:description"})]}),t]})}},254:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0),c=n(22),r=function(){var e=Object(c.h)().search;return Object(a.useMemo)((function(){return new URLSearchParams(e)}),[e])}},260:function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var a=n(5),c=n(0),r=n(22),i=n(122),o=n(14),s=n(254),l=i.d.TypeScript,u="preferred-language",d=function(e){return null!=e&&i.e.has(e)},j=function(e){if(d(e))return e;try{var t,n=null!==(t=localStorage.getItem(u))&&void 0!==t?t:"";if(d(n))return n}catch(a){}return l},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.updateUrl,n=e.updateSaved,i=Object(r.h)(),l=i.pathname,b=i.hash,O=Object(r.g)(),f=O.replace,h=Object(s.a)(),g=h.get(o.b.LANGUAGE),m=Object(c.useState)((function(){return j(g)})),v=Object(a.a)(m,2),x=v[0],p=v[1];Object(c.useEffect)((function(){d(g)&&g!==x&&p(g)}),[g]),Object(c.useEffect)((function(){g!==x&&t&&(h.set(o.b.LANGUAGE,x),f({pathname:l,hash:b,search:h.toString()}))}),[x,t]);var y=Object(c.useCallback)((function(e){if(p(e),n)try{localStorage.setItem(u,e)}catch(t){}}),[n]);return Object(c.useMemo)((function(){return[x,y]}),[x,y])}},261:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var a=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.map((function(e){return'"'.concat(e.map((function(e){return null!==e&&void 0!==e?e:"."})).join(" "),'"')})).join(" ")}},271:function(e,t,n){"use strict";var a;n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return Y})),function(e){e.Wide="wide"}(a||(a={}));var c=n(0),r=n(6),i=n(16),o=n(359),s=n(153),l=n(235),u=n(215),d=n(261),j=n(30),b=n(230),O=n(207),f=n(88),h=n(87),g=n(72),m=n(273),v=n(60),x=Object(v.a)("packageCard",["author","description","downloads","languages","published","title","version","comment","wideContainer"]),p=n(1),y=function(e){var t=e["data-testid"],n=e.icon,a=e.label,c=e.tooltip,r=e.value;return Object(p.jsx)(b.a,{hasArrow:!0,isDisabled:!c,label:c,placement:"auto",children:Object(p.jsxs)(O.a,{"data-testid":t,fontSize:"xs",zIndex:1,children:[n,n?" ":"",Object(p.jsx)("strong",{children:a})," ",r]})})},w=function(){var e,t,n,a=J(),c=a.author,r=a.metadata.date,i=a.version,o=a.name,s=Object(f.b)().data,l=null===s||void 0===s||null===(e=s.packages)||void 0===e||null===(t=e[o])||void 0===t||null===(n=t.downloads)||void 0===n?void 0:n.npm,u="string"===typeof c?c:c.name;return Object(p.jsxs)(p.Fragment,{children:[void 0!==l&&l>=10?Object(p.jsx)(y,{"data-testid":x.downloads,icon:Object(p.jsx)(j.i,{}),label:l.toLocaleString(),tooltip:"Download numbers are periodically sourced from the NPM registry",value:"Weekly downloads"}):Object(p.jsx)(y,{"data-testid":x.version,label:"Version",value:i}),Object(p.jsx)(y,{"data-testid":x.published,label:"Published",value:Object(p.jsx)(m.a,{date:new Date(r),fontSize:"xs",format:"MMM dd, yyyy"})}),Object(p.jsx)(y,{"data-testid":x.author,label:"Author",value:Object(p.jsx)(g.a,{color:"blue.500",to:Object(h.c)({query:u}),children:u})})]})},k=n(5),C=n(213),S=n(222),A=n(36),D=n(260),P=n(126),T=function(){var e=Object(D.a)(),t=Object(k.a)(e,1)[0],n=J(),a=n.comment,c=n.description,r=n.metadata.constructFramework,i=n.name,s=n.version,l=null===r||void 0===r?void 0:r.name,u=null===r||void 0===r?void 0:r.majorVersion;return Object(p.jsxs)(p.Fragment,{children:[Object(p.jsx)(o.b,{as:A.b,to:Object(h.a)({name:i,version:s,language:t}),children:Object(p.jsxs)(C.a,{align:"center",children:[l&&Object(p.jsx)(b.a,{hasArrow:!0,label:Object(p.jsx)(P.b,{majorVersion:u,name:l}),placement:"top",children:Object(p.jsx)(P.a,{mr:2,name:l,zIndex:1})}),Object(p.jsx)(S.a,{as:"h3",color:"blue.800","data-testid":x.title,fontSize:"md",fontWeight:"bold",wordBreak:"break-all",children:i})]})}),Object(p.jsx)(O.a,{color:"blue.800","data-testid":x.description,fontSize:"md",lineHeight:"tall",noOfLines:4,children:c||"No description available."}),a&&Object(p.jsxs)(O.a,{"data-testid":x.comment,fontSize:"md",lineHeight:"tall",noOfLines:4,children:[Object(p.jsxs)(O.a,{as:"span",color:"blue.500",fontSize:"md",fontWeight:"bold",lineHeight:"tall",children:["Editor's note:"," "]}),a]})]})},I=n(234),F=function(e){var t=e.label,n=e.color,a=e.icon;return Object(p.jsxs)(l.a,{align:"center",direction:"row",spacing:2,children:[Object(p.jsx)(I.a,{alt:"".concat(t," icon"),src:a,w:4}),Object(p.jsx)(O.a,{color:n,fontWeight:"bold",children:t})]})},K=n(122),R=n(275),L={sm:5,md:6,lg:8},E=function(e){var t=e.isRounded,n=void 0!==t&&t,a=e.languages,c=e.name,r=e.size,i=void 0===r?"md":r,o=e.version,s=Object.keys(null!==a&&void 0!==a?a:{});return Object(p.jsx)(p.Fragment,{children:Object.entries(K.c).sort((function(e,t){var n=Object(k.a)(e,1)[0],a=Object(k.a)(t,1)[0];return K.a.indexOf(n)-K.a.indexOf(a)})).map((function(e){var t=Object(k.a)(e,2),a=t[0],r=t[1],l=a,u=l===K.d.TypeScript||s.includes(l),d=l===K.d.TypeScript||K.e.has(l);if(!u)return null;var j=r.name,b=r.icon,O=Object(p.jsx)(b,{"aria-label":"Supports ".concat(j),borderRadius:n?"50%":0,h:L[i],opacity:d?1:.2,w:L[i]});return Object(p.jsx)(R.a,{language:l,children:d?Object(p.jsx)(A.b,{"aria-label":"View package docs for ".concat(l),to:Object(h.a)({name:c,version:o,language:l}),children:O}):O},l)}))})},z=function(){var e=J();return Object(p.jsx)(E,Object(r.a)(Object(r.a)({},e),{},{size:"sm"}))},M=n(110),W=n(274),V=function(){var e=J(),t=e.keywords,n=void 0===t?[]:t,a=e.metadata.packageTags,c=void 0===a?[]:a,o=[].concat(Object(i.a)(c.filter((function(e){return Boolean(e.keyword)})).map((function(e){return Object(r.a)(Object(r.a)({},e),{},{isKeyword:!1})}))),Object(i.a)(n.filter((function(e){return Boolean(e)&&!M.a.has(e)})).map((function(e){return{id:e,isKeyword:!0,keyword:{label:e}}}))));return Object(p.jsx)(p.Fragment,{children:o.slice(0,3).map((function(e){var t=e.id,n=e.isKeyword,a=e.keyword,c=(a=void 0===a?{}:a).label,r=a.color;return Object(p.jsx)(W.a,{isKeyword:n,value:t,variant:r,children:c},t)}))})},N="details",U="languages",H="tags",q="heading",B=Object(d.a)([q,q,N],[q,q,N],[H,H,U]),G=Object(d.a)([q],[U],[N]),Q=function(){var e,t,n,a,c=null!==(e=null===(t=J())||void 0===t||null===(n=t.metadata)||void 0===n||null===(a=n.packageTags)||void 0===a?void 0:a.reduce((function(e,t){return t.highlight?[].concat(Object(i.a)(e),[t.highlight]):e}),[]))&&void 0!==e?e:[];return Object(p.jsx)(o.a,{_hover:{"> article":{bg:"gray.50"}},children:Object(p.jsxs)(s.a,{as:"article",autoColumns:"1fr",autoRows:"auto",bg:"white",border:"base",borderRadius:"sm",boxShadow:"base",color:"gray.600","data-testid":x.wideContainer,gap:5,h:"100%",p:5,templateAreas:{base:G,md:B},w:"100%",children:[Object(p.jsx)(l.a,{gridArea:q,spacing:2,children:Object(p.jsx)(T,{})}),Object(p.jsx)(l.a,{direction:"row",display:{base:"none",md:"initial"},gridArea:H,maxH:6,overflow:"hidden",spacing:2,children:Object(p.jsx)(V,{})}),Object(p.jsxs)(s.a,{alignItems:"start",alignSelf:"center",autoColumns:{base:"initial",md:"1fr"},autoRows:{base:"initial",md:"auto"},fontSize:"xs",gap:{base:0,md:1},gridArea:N,templateColumns:{base:"1fr 1fr",md:"initial"},templateRows:{base:"1fr 1fr",md:"initial"},children:[c.map((function(e){return Object(p.jsx)(F,Object(r.a)({},e),e.label)})),Object(p.jsx)(w,{})]}),Object(p.jsxs)(l.a,{gridArea:U,spacing:{base:4,md:0},children:[Object(p.jsx)(u.a,{display:{md:"none"}}),Object(p.jsx)(l.a,{"data-testid":x.languages,direction:"row",spacing:2,children:Object(p.jsx)(z,{})})]})]})})},_=Object(c.createContext)(null),J=function(){return Object(c.useContext)(_)},Y=function(e){var t=e.pkg,n=e.variant,c=void 0===n?a.Wide:n;return Object(p.jsx)(_.Provider,{value:t,children:c===a.Wide&&Object(p.jsx)(Q,{})})}},272:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(89),c=function(e){var t=Object(a.b)().data;return(null!==t&&void 0!==t?t:{})[e]}},273:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(6),c=n(25),r=n(19),i=n(203),o=n(582),s=n(1),l=["date","format"],u=Object(r.a)((function(e,t){var n=e.date,r=e.format,u=Object(c.a)(e,l);return Object(s.jsx)(i.a,Object(a.a)(Object(a.a)({as:"time",dateTime:n.toISOString(),ref:t},u),{},{children:Object(o.a)(n,r)}))}));u.displayName="Time"},274:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(6),c=n(4),r=n(25),i=n(575),o=n(87),s=n(72),l=n(1),u=["children","isKeyword","value","label","zIndex"],d=function(e){var t=e.children,n=e.isKeyword,d=void 0!==n&&n,j=e.value,b=e.label,O=void 0===b?j:b,f=e.zIndex,h=Object(r.a)(e,u),g=d?"keywords":"tags";return Object(l.jsx)(s.a,{"aria-label":"Tag: ".concat(O),to:Object(o.c)(Object(c.a)({},g,[j])),zIndex:f,children:Object(l.jsx)(i.a,Object(a.a)(Object(a.a)({_hover:{textDecoration:"underline"}},h),{},{children:Object(l.jsx)(i.b,{children:t})}))})}},275:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(230),c=n(122),r=n(1),i=function(e){var t=e.children,n=e.language,i=c.e.has(n),o=c.b[n],s=i?"Click to view documentation in ".concat(o):"Documentation support for ".concat(o," is coming soon!");return Object(r.jsx)(a.a,{hasArrow:!0,label:s,placement:"top-start",children:Object(r.jsx)("span",{children:t})})}},583:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return Ce}));var a,c=n(153),r=n(244),i=n(235),o=n(222),s=n(93),l=n(16),u=n(4),d=n(6),j=n(5),b=n(0),O=n(64),f=n(90),h=n(357),g=n(588),m=n(207),v=n(30),x=n(213),p=n(585),y=n(1),w=function(e){var t=e.name,n=e.hint;return Object(y.jsxs)(x.a,{align:"center",mb:1,children:[Object(y.jsx)(o.a,{as:"h4",size:"sm",w:"max-content",children:t}),n?Object(y.jsxs)(p.a,{colorScheme:"dark",placement:"right",strategy:"fixed",children:[Object(y.jsx)(p.e,{children:Object(y.jsx)(x.a,{"aria-label":"Hint: ".concat(t),as:"button",ml:2,children:Object(y.jsx)(v.n,{h:3.5,w:3.5})})}),Object(y.jsxs)(p.d,{bg:"gray.700",borderRadius:"base",color:"white",fontSize:"sm",shadow:"whiteAlpha.300",children:[Object(y.jsx)(p.b,{bg:"gray.700"}),Object(y.jsx)(p.c,{children:Object(y.jsx)(m.a,{children:n})})]})]}):null]})},k=n(60),C=Object(k.a)("searchRedesign",["page","searchDetails","nextPage","prevPage","goToPage","sortButton","sortDropdown","sortItem","filtersPanel","cdkTypeFilter","cdkVersionFilter","filterItem","languagesFilter"]),S=function(e){var t=e["data-testid"],n=e.value,a=e.onValueChange,c=e.options,r=e.name,o=e.hint;return Object(y.jsxs)(i.a,{"data-testid":t,spacing:1,children:[Object(y.jsx)(w,{hint:o,name:r}),Object(y.jsx)(h.a,{onChange:a,value:n,children:Object(y.jsx)(i.a,{spacing:1,children:c.map((function(e){var t=e.display,n=e.value;return Object(y.jsx)(g.a,{value:n,children:Object(y.jsx)(m.a,{color:"gray.600","data-testid":C.filterItem,"data-value":n,isTruncated:!0,children:t})},n)}))})})]})},A=n(14),D=n(94),P=n(254),T=n(55),I=(a={},Object(u.a)(a,T.a.NameAsc,"A-Z"),Object(u.a)(a,T.a.NameDesc,"Z-A"),Object(u.a)(a,T.a.PublishDateAsc,"Oldest first"),Object(u.a)(a,T.a.PublishDateDesc,"Newest first"),Object(u.a)(a,T.a.DownloadsDesc,"Most downloads"),Object(u.a)(a,T.a.DownloadsAsc,"Least downloads"),a),F=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t},K=function(e){return e?decodeURIComponent(e).split(","):[]},R=Object(b.createContext)(void 0),L=function(){var e=Object(b.useContext)(R);if(!e)throw new Error("This hook must be called in a child of <SearchStateProvider />");return e},E=function(e){var t,n,a,c,r=e.children,i=Object(P.a)(),o=F(null!==(t=i.get(A.b.OFFSET))&&void 0!==t?t:"0"),s=decodeURIComponent(null!==(n=i.get(A.b.SEARCH_QUERY))&&void 0!==n?n:""),l=K(i.get(A.b.LANGUAGES)),u=i.get(A.b.TAGS),d=Object(b.useMemo)((function(){return K(u)}),[u]),j=i.get(A.b.KEYWORDS),O=Object(b.useMemo)((function(){return K(j)}),[j]),f=null!==(a=i.get(A.b.SORT))&&void 0!==a?a:void 0,h=null!==(c=i.get(A.b.CDK_TYPE))&&void 0!==c?c:void 0,g=i.get(A.b.CDK_MAJOR),m=g?F(g):void 0,v=Object(D.a)({defaultCdkMajor:m,defaultCdkType:h,defaultKeywords:O,defaultLanguages:l,defaultQuery:s,defaultSort:f,defaultTags:d});return Object(b.useEffect)((function(){s!==v.query&&v.setQuery(s)}),[s]),Object(b.useEffect)((function(){O.some((function(e){return!v.keywords.includes(e)}))&&v.setKeywords(O)}),[O]),Object(b.useEffect)((function(){d.some((function(e){return!v.tags.includes(e)}))&&v.setTags(d)}),[d]),Object(y.jsx)(R.Provider,{value:{limit:25,offset:o,query:s,searchAPI:v},children:r})},z=function(){var e,t=L().searchAPI,n=t.cdkType,a=t.setCdkType,c=t.cdkMajor,r=t.setCdkMajor,i=Object(f.b)(),o=Object(b.useMemo)((function(){var e=i.constructFrameworks,t=Object.entries(e).reduce((function(e,t){var n=Object(j.a)(t,2),a=n[0],c=n[1];return c.pkgCount<1?e:Object(d.a)(Object(d.a)({},e),{},Object(u.a)({},a,Object(d.a)({display:O.a[a],value:a},c)))}),{});return Object.keys(t).length?t:void 0}),[i]),s=Object(b.useMemo)((function(){var e;if(o&&n){var t=null===(e=o[n])||void 0===e?void 0:e.majorVersions;if(t)return Object(l.a)(t).sort((function(e,t){return e-t})).map((function(e){return{value:e.toString(),display:"".concat(O.a[n]," v").concat(e)}}))}}),[o,n]);if(!o)return null;return Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(S,{"data-testid":C.cdkTypeFilter,hint:"Choose the right CDK for your IaC technology: AWS CDK for AWS CloudFormation, CDKtf for Terraform, or CDK8s for Kubernetes.",name:"CDK Type",onValueChange:function(e){var t=e;r(void 0),a(e?t:void 0)},options:[{display:"Any CDK Type",value:""}].concat(Object(l.a)(Object.values(o))),value:null!==n&&void 0!==n?n:""}),!!(s&&s.length>1)&&Object(y.jsx)(S,{"data-testid":C.cdkVersionFilter,hint:"Choose the major version of the CDK you're using to see only constructs that will work with that version.",name:"CDK Major Version",onValueChange:function(e){if(e){var t=parseInt(e,10);r(t)}else r(void 0)},options:[{display:"Any Major Version",value:""}].concat(Object(l.a)(s)),value:null!==(e=null===c||void 0===c?void 0:c.toString())&&void 0!==e?e:""})]})},M=n(228),W=n(230),V=n(209),N=n(211),U=n(158),H=function(e){var t=e.display,n=e.value,a=e.isDisabled,c=e.disabledHint,r=e.isChecked,i=e.onChange;return Object(y.jsx)(M.a,{isChecked:r,isDisabled:a,onChange:i,children:Object(y.jsx)(W.a,{hasArrow:!0,isDisabled:!a&&!c,label:c,placement:"right",children:Object(y.jsx)(m.a,{color:"gray.600","data-testid":C.filterItem,"data-value":n,isTruncated:!0,children:t})})},n)},q=function(e){var t=e["data-testid"],n=e.initialItemCount,a=e.hint,c=e.name,r=e.options,o=e.values,s=e.onValueChange,l=Object(V.a)(),u=function(e){return function(){s(e)}},j=r,O=[];n&&(j=r.slice(0,n),O=r.slice(n,r.length));var f=O.length>0;return Object(y.jsxs)(x.a,{"data-testid":t,direction:"column",children:[Object(y.jsx)(w,{hint:a,name:c}),Object(y.jsxs)(i.a,{mt:1,spacing:1,children:[j.map((function(e){return Object(b.createElement)(H,Object(d.a)(Object(d.a)({},e),{},{isChecked:o.includes(e.value),key:e.value,onChange:u(e.value)}))})),f&&Object(y.jsx)(N.a,{animateOpacity:!0,in:l.isOpen,unmountOnExit:!0,children:Object(y.jsx)(i.a,{spacing:1,children:O.map((function(e){return Object(b.createElement)(H,Object(d.a)(Object(d.a)({},e),{},{isChecked:o.includes(e.value),key:e.value,onChange:u(e.value)}))}))})})]}),f&&Object(y.jsx)(x.a,{align:"start",mt:1,children:Object(y.jsx)(U.a,{color:"gray.600",fontWeight:"normal",leftIcon:l.isOpen?Object(y.jsx)(v.f,{}):Object(y.jsx)(v.c,{}),onClick:l.onToggle,size:"sm",textAlign:"left",variant:"link",w:"auto",children:l.isOpen?"Show fewer options (".concat(j.length,")"):"Show more options (".concat(O.length,")")})})]})},B=function(){var e=L().searchAPI,t=e.keywords,n=e.setKeywords,a=Object(f.b)().keywords,c=Object(b.useMemo)((function(){var e=Object(l.a)(a.entries()).sort((function(e,t){return Object(j.a)(e,2)[1]<Object(j.a)(t,2)[1]?1:-1})).map((function(e){var t=Object(j.a)(e,1)[0];return{display:t,value:t}})).slice(0,25),n=t.filter((function(t){return!e.some((function(e){return e.value===t}))}));return[].concat(Object(l.a)(n.map((function(e){return{display:e,value:e}}))),Object(l.a)(e))}),[a,t]);return Object(y.jsx)(q,{"data-testid":C.languagesFilter,hint:"Focus the results by choosing one or more keywords reflecting the kind of construct you're looking for. Keywords are provided by construct authors.",initialItemCount:5,name:"Keywords",onValueChange:function(e){n(t.includes(e)?t.filter((function(t){return t!==e})):[].concat(Object(l.a)(t),[e]))},options:c,values:t})},G=n(122),Q=Object.entries(G.b).map((function(e){var t=Object(j.a)(e,2),n=t[0],a=t[1];return Object(d.a)({display:a,value:n},G.e.has(n)?{isDisabled:!1}:{isDisabled:!0,disabledHint:"".concat(G.b[n]," support is coming soon!")})})).sort((function(e,t){return e.isDisabled>t.isDisabled?1:-1})),_=function(){var e=L().searchAPI,t=e.languages,n=e.setLanguages;return Object(y.jsx)(q,{"data-testid":C.languagesFilter,hint:"Choose one or more languages. Results include constructs for use with at least one of the selected languages.",name:"Programming Language",onValueChange:function(e){var a=e;n(t.includes(a)?t.filter((function(e){return e!==a})):[].concat(Object(l.a)(t),[a]))},options:Q,values:t})},J=n(272),Y=function(){var e,t,n=(null!==(e=null===(t=Object(J.a)("packageTags"))||void 0===t?void 0:t.filter((function(e){return Boolean(e.searchFilter)})))&&void 0!==e?e:[]).reduce((function(e,t){var n,a,c=null===(n=t.searchFilter)||void 0===n?void 0:n.groupBy;return c?Object(d.a)(Object(d.a)({},e),{},Object(u.a)({},c,[].concat(Object(l.a)(null!==(a=e[c])&&void 0!==a?a:[]),[t]))):e}),{}),a=L().searchAPI,c=a.tags,r=a.setTags,i=function(e){r(c.includes(e)?c.filter((function(t){return t!==e})):[].concat(Object(l.a)(c),[e]))};return Object(y.jsx)(y.Fragment,{children:Object.entries(n).map((function(e){var t=Object(j.a)(e,2),n=t[0],a=t[1];return Object(y.jsx)(q,{name:n,onValueChange:i,options:a.map((function(e){return{display:e.searchFilter.display,value:e.id}})),values:c},n)}))})},Z="5.75rem",X=function(){return Object(y.jsx)(s.a,{borderRadius:"none",boxShadow:"none","data-testid":C.filtersPanel,display:{base:"none",md:"flex"},maxH:"calc(100vh - ".concat(Z," - 1.25rem)"),maxW:"23rem",minW:"100%",overflow:"hidden auto",p:4,pos:"sticky",top:Z,zIndex:"docked",children:Object(y.jsxs)(i.a,{color:"blue.800",h:"max-content",spacing:4,top:4,children:[Object(y.jsx)(o.a,{as:"h3",size:"sm",children:"Filters"}),Object(y.jsx)(z,{}),Object(y.jsx)(_,{}),Object(y.jsx)(Y,{}),Object(y.jsx)(B,{})]})})},$=n(203),ee=n(22),te=n(220),ne=n(208),ae=n(271),ce=Object(u.a)({},ae.b.Wide,(function(e){var t=e.items;return Object(y.jsx)(i.a,{spacing:4,children:t.map((function(e){return Object(y.jsx)(ae.a,{pkg:e,variant:ae.b.Wide},"".concat(e.name,"-").concat(e.version))}))})})),re=Object(b.memo)((function(e){var t=e.cardView,n=void 0===t?ae.b.Wide:t,a=e.items;if(e.loading||!a)return Object(y.jsx)(te.a,{children:Object(y.jsx)(ne.a,{size:"xl"})});var c=ce[n];return Object(y.jsx)(c,{items:a})}));re.displayName="PackageList";var ie=n(74),oe=n(125),se=n(87),le=n(212),ue=n(36),de=function(e){var t=e["data-testid"],n=e.icon,a=e.offset,c=e.getPageUrl,r={"aria-label":"Page ".concat(a," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue","data-testid":t,icon:Object(y.jsx)(n,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==a?Object(y.jsx)(le.a,Object(d.a)(Object(d.a)({},r),{},{as:ue.b,to:c({offset:a})})):Object(y.jsx)(le.a,Object(d.a)(Object(d.a)({},r),{},{disabled:!0}))},je=n(233),be=function(e){var t=e["data-testid"],n=e.pageLimit,a=e.offset,c=e.getPageUrl,r=Object(b.useState)((a+1).toString()),i=Object(j.a)(r,2),o=i[0],s=i[1],l=Object(ee.g)().push;Object(b.useEffect)((function(){s((a+1).toString())}),[a]);return Object(y.jsxs)(x.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),l(c({offset:parseInt(o)-1}))},children:[Object(y.jsx)(je.a,{colorScheme:"blue","data-testid":t,h:10,max:n+1,min:1,name:"page",onChange:function(e){e.preventDefault(),s(e.target.value)},p:0,textAlign:"center",type:"number",value:o,w:10}),Object(y.jsxs)(m.a,{ml:2,w:"max-content",children:["of ",n+1]})]})},Oe=function(e){var t=e.offset,n=e.getPageUrl,a=e.pageLimit,c=t<a?t+1:void 0,r=t>0?t-1:void 0;return Object(y.jsxs)(i.a,{align:"center",direction:"row",justify:"space-between",maxW:"18rem",mx:"auto",spacing:4,w:"full",children:[Object(y.jsx)(de,{"data-testid":C.prevPage,getPageUrl:n,icon:v.d,offset:r}),Object(y.jsx)(be,{"data-testid":C.goToPage,getPageUrl:n,offset:t,pageLimit:a}),Object(y.jsx)(de,{"data-testid":C.nextPage,getPageUrl:n,icon:v.e,offset:c})]})},fe=function(e){var t=e.children;return Object(y.jsx)(m.a,{as:"strong",color:"gray.700",children:t})},he=function(e){var t=e.first,n=e.count,a=e.last;return!t&&a>=n?Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(fe,{children:n})," of ",Object(y.jsx)(fe,{children:n})]}):Object(y.jsxs)(y.Fragment,{children:[Object(y.jsxs)(fe,{children:[n?t+1:n," - ",a>n?n:a]})," ","of ",Object(y.jsx)(fe,{children:n})]})},ge=function(e){var t=e.limit,n=e.offset,a=e.count,c=e.filtered,r=e.query,i=t*n,o=i+t,s=a>0;return Object(y.jsxs)(m.a,{"data-testid":C.searchDetails,children:[s?Object(y.jsxs)(y.Fragment,{children:["Displaying ",Object(y.jsx)(he,{count:a,first:i,last:o})," ",c?"search results":"constructs"]}):Object(y.jsx)(y.Fragment,{children:c?"There were no search results":"No constructs found"}),r&&Object(y.jsxs)(y.Fragment,{children:[" for ",Object(y.jsx)(fe,{children:r})]}),".",!s&&c&&Object(y.jsx)(y.Fragment,{children:" Try a different term."})]})},me=n(237),ve=n(49),xe=function(){var e=L().searchAPI,t=e.sort,n=e.setSort;return Object(y.jsx)(S,{hint:"Sets the order of search results",name:"Sorted By",onValueChange:function(e){n(e||void 0)},options:[{display:"Relevance",value:""}].concat(Object(l.a)(Object.entries(I).map((function(e){var t=Object(j.a)(e,2),n=t[0];return{display:t[1],value:n}})))),value:null!==t&&void 0!==t?t:""})},pe=function(){var e=Object(V.a)();return Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(U.a,{colorScheme:"blue",display:{md:"none"},onClick:e.onOpen,rightIcon:Object(y.jsx)(v.c,{}),variant:"link",children:"Sorting and Filters"}),Object(y.jsxs)(me.a,Object(d.a)(Object(d.a)({},e),{},{placement:"bottom",children:[Object(y.jsx)(ve.h,{}),Object(y.jsxs)(me.b,{color:"blue.800",children:[Object(y.jsx)(ve.g,{children:"Sorting and Filters"}),Object(y.jsx)(ve.c,{}),Object(y.jsx)(ve.b,{children:Object(y.jsxs)(i.a,{color:"blue.800",pb:4,spacing:4,children:[Object(y.jsx)(xe,{}),Object(y.jsx)(z,{}),Object(y.jsx)(_,{}),Object(y.jsx)(Y,{}),Object(y.jsx)(B,{})]})})]})]}))]})},ye=n(229),we=function(){var e=L().searchAPI,t=e.sort,n=e.setSort,a=t?I[t]:"Relevance";return Object(y.jsxs)(x.a,{align:"center",children:[Object(y.jsx)(m.a,{children:"Sorted by"}),Object(y.jsxs)(ye.a,{children:[Object(y.jsx)(ye.b,{as:U.a,color:"blue.500","data-testid":C.sortButton,ml:2,pl:2,pr:2,py:1,rightIcon:Object(y.jsx)(v.c,{}),variant:"link",children:a}),Object(y.jsxs)(ye.f,{"data-testid":C.sortDropdown,minW:"180",zIndex:"sticky",children:[Object(y.jsx)(ye.e,{"data-testid":C.sortItem,"data-value":"",onClick:function(){return n(void 0)},children:"Relevance"},"Relevance"),Object.entries(I).map((function(e){var t=Object(j.a)(e,2),a=t[0],c=t[1];return Object(y.jsx)(ye.e,{"data-testid":C.sortItem,"data-value":a,onClick:function(){return n(a)},children:c},a)}))]})]})]})},ke=function(){var e=Object(b.useRef)(!0),t=Object(ee.g)().push,n=L(),a=n.query,c=n.searchAPI,o=n.offset,s=n.limit,l=c.keywords,u=c.languages,d=c.sort,j=c.cdkType,O=c.cdkMajor,f=c.onSearch,h=c.tags,g=Object(oe.a)({offset:o,limit:s,query:a,keywords:l,languages:u,cdkMajor:O,cdkType:j,sort:d,tags:h}),m=g.page,v=g.pageLimit,x=g.results,p=function(e){var t,n;return Object(se.c)({cdkMajor:O,cdkType:j,keywords:l,query:null!==(t=e.q)&&void 0!==t?t:a,languages:u,sort:d,offset:null!==(n=e.offset)&&void 0!==n?n:o,tags:h})};return Object(b.useEffect)((function(){x.length&&(o<0||o>v)&&t(p(o<0?{offset:0}:{offset:v}))}),[x,o,v]),Object(b.useEffect)((function(){e.current?e.current=!1:f({replace:!0})}),[d,l,u,j,O,h]),Object(b.useEffect)((function(){window.scrollTo(0,0)}),[m]),Object(y.jsx)(r.a,{meta:{title:a||"Search",description:a?"".concat(x.length," results for ").concat(a," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(y.jsxs)(i.a,{direction:"column",maxW:"100vw",pb:4,px:4,spacing:4,children:[Object(y.jsx)(ie.a,{bg:"white",onChange:c.onQueryChange,onSubmit:c.onSubmit,value:c.query}),Object(y.jsxs)(i.a,{align:{base:"start",lg:"center"},direction:{base:"column-reverse",lg:"row"},justify:{base:"initial",lg:"space-between"},spacing:4,children:[Object(y.jsx)(ge,{count:x.length,filtered:!!a,limit:s,offset:o,query:a}),Object(y.jsx)($.a,{display:{base:"none",md:"initial"},children:Object(y.jsx)(we,{})}),Object(y.jsx)($.a,{display:{md:"none"},children:Object(y.jsx)(pe,{})})]}),Object(y.jsx)(re,{items:m}),Object(y.jsx)($.a,{w:"full",children:Object(y.jsx)(Oe,{getPageUrl:p,offset:o,pageLimit:v})})]})})},Ce=function(){return Object(y.jsx)(E,{children:Object(y.jsx)(r.a,{meta:{title:"Search - Construct Hub",description:"Search Construct Libraries for AWS CDK, CDK8s, and CDKtf"},pageName:"search",children:Object(y.jsxs)(c.a,{"data-testid":C.page,gap:4,h:"full",maxW:"100%",px:{base:0,md:6},py:6,templateColumns:{base:"1fr",md:"auto 1fr"},templateRows:"1fr",children:[Object(y.jsx)(X,{}),Object(y.jsx)(ke,{})]})})})}}}]);
2
- //# sourceMappingURL=8.49001644.chunk.js.map
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[8],{244:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(0),c=n(257),r={home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},i=n(123),o=n(1),s=function(e){var t=e.children,n=e.meta,s=e.pageName,l=Object(i.b)(r[s]);Object(a.useEffect)((function(){l()}),[l]);var u=n.suffix,d=void 0===u||u,j=n.title,b=n.description,O=d?"".concat(j," - Construct Hub"):j;return Object(o.jsxs)(o.Fragment,{children:[Object(o.jsxs)(c.a,{children:[!1,Object(o.jsx)("meta",{content:"width=device-width, initial-scale=1",name:"viewport"}),Object(o.jsx)("meta",{charSet:"utf-8"}),Object(o.jsx)("title",{children:O}),Object(o.jsx)("meta",{content:O,property:"og:title"}),Object(o.jsx)("meta",{content:O,name:"twitter:title"}),Object(o.jsx)("meta",{content:"summary",name:"twitter:card"}),Object(o.jsx)("meta",{content:b,name:"description"}),Object(o.jsx)("meta",{content:b,property:"og:description"}),Object(o.jsx)("meta",{content:b,name:"twitter:description"})]}),t]})}},254:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0),c=n(22),r=function(){var e=Object(c.h)().search;return Object(a.useMemo)((function(){return new URLSearchParams(e)}),[e])}},260:function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var a=n(5),c=n(0),r=n(22),i=n(122),o=n(14),s=n(254),l=i.d.TypeScript,u="preferred-language",d=function(e){return null!=e&&i.e.has(e)},j=function(e){if(d(e))return e;try{var t,n=null!==(t=localStorage.getItem(u))&&void 0!==t?t:"";if(d(n))return n}catch(a){}return l},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.updateUrl,n=e.updateSaved,i=Object(r.h)(),l=i.pathname,b=i.hash,O=Object(r.g)(),f=O.replace,h=Object(s.a)(),g=h.get(o.b.LANGUAGE),m=Object(c.useState)((function(){return j(g)})),v=Object(a.a)(m,2),x=v[0],p=v[1];Object(c.useEffect)((function(){d(g)&&g!==x&&p(g)}),[g]),Object(c.useEffect)((function(){g!==x&&t&&(h.set(o.b.LANGUAGE,x),f({pathname:l,hash:b,search:h.toString()}))}),[x,t]);var y=Object(c.useCallback)((function(e){if(p(e),n)try{localStorage.setItem(u,e)}catch(t){}}),[n]);return Object(c.useMemo)((function(){return[x,y]}),[x,y])}},261:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var a=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.map((function(e){return'"'.concat(e.map((function(e){return null!==e&&void 0!==e?e:"."})).join(" "),'"')})).join(" ")}},271:function(e,t,n){"use strict";var a;n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return Y})),function(e){e.Wide="wide"}(a||(a={}));var c=n(0),r=n(6),i=n(16),o=n(359),s=n(153),l=n(235),u=n(215),d=n(261),j=n(30),b=n(230),O=n(207),f=n(88),h=n(87),g=n(72),m=n(273),v=n(60),x=Object(v.a)("packageCard",["author","description","downloads","languages","published","title","version","comment","wideContainer"]),p=n(1),y=function(e){var t=e["data-testid"],n=e.icon,a=e.label,c=e.tooltip,r=e.value;return Object(p.jsx)(b.a,{hasArrow:!0,isDisabled:!c,label:c,placement:"auto",children:Object(p.jsxs)(O.a,{"data-testid":t,fontSize:"xs",zIndex:1,children:[n,n?" ":"",Object(p.jsx)("strong",{children:a})," ",r]})})},w=function(){var e,t,n,a=J(),c=a.author,r=a.metadata.date,i=a.version,o=a.name,s=Object(f.b)().data,l=null===s||void 0===s||null===(e=s.packages)||void 0===e||null===(t=e[o])||void 0===t||null===(n=t.downloads)||void 0===n?void 0:n.npm,u="string"===typeof c?c:c.name;return Object(p.jsxs)(p.Fragment,{children:[void 0!==l&&l>=10?Object(p.jsx)(y,{"data-testid":x.downloads,icon:Object(p.jsx)(j.i,{}),label:l.toLocaleString(),tooltip:"Download numbers are periodically sourced from the NPM registry",value:"Weekly downloads"}):Object(p.jsx)(y,{"data-testid":x.version,label:"Version",value:i}),Object(p.jsx)(y,{"data-testid":x.published,label:"Published",value:Object(p.jsx)(m.a,{date:new Date(r),fontSize:"xs",format:"MMM dd, yyyy"})}),Object(p.jsx)(y,{"data-testid":x.author,label:"Author",value:Object(p.jsx)(g.a,{color:"blue.500",to:Object(h.c)({query:u}),children:u})})]})},k=n(5),C=n(213),S=n(222),A=n(36),D=n(260),P=n(126),T=function(){var e=Object(D.a)(),t=Object(k.a)(e,1)[0],n=J(),a=n.comment,c=n.description,r=n.metadata.constructFramework,i=n.name,s=n.version,l=null===r||void 0===r?void 0:r.name,u=null===r||void 0===r?void 0:r.majorVersion;return Object(p.jsxs)(p.Fragment,{children:[Object(p.jsx)(o.b,{as:A.b,to:Object(h.a)({name:i,version:s,language:t}),children:Object(p.jsxs)(C.a,{align:"center",children:[l&&Object(p.jsx)(b.a,{hasArrow:!0,label:Object(p.jsx)(P.b,{majorVersion:u,name:l}),placement:"top",children:Object(p.jsx)(P.a,{mr:2,name:l,zIndex:1})}),Object(p.jsx)(S.a,{as:"h3",color:"blue.800","data-testid":x.title,fontSize:"md",fontWeight:"bold",wordBreak:"break-all",children:i})]})}),Object(p.jsx)(O.a,{color:"blue.800","data-testid":x.description,fontSize:"md",lineHeight:"tall",noOfLines:4,children:c||"No description available."}),a&&Object(p.jsxs)(O.a,{"data-testid":x.comment,fontSize:"md",lineHeight:"tall",noOfLines:4,children:[Object(p.jsxs)(O.a,{as:"span",color:"blue.500",fontSize:"md",fontWeight:"bold",lineHeight:"tall",children:["Editor's note:"," "]}),a]})]})},I=n(234),F=function(e){var t=e.label,n=e.color,a=e.icon;return Object(p.jsxs)(l.a,{align:"center",direction:"row",spacing:2,children:[Object(p.jsx)(I.a,{alt:"".concat(t," icon"),src:a,w:4}),Object(p.jsx)(O.a,{color:n,fontWeight:"bold",children:t})]})},K=n(122),R=n(275),L={sm:5,md:6,lg:8},E=function(e){var t=e.isRounded,n=void 0!==t&&t,a=e.languages,c=e.name,r=e.size,i=void 0===r?"md":r,o=e.version,s=Object.keys(null!==a&&void 0!==a?a:{});return Object(p.jsx)(p.Fragment,{children:Object.entries(K.c).sort((function(e,t){var n=Object(k.a)(e,1)[0],a=Object(k.a)(t,1)[0];return K.a.indexOf(n)-K.a.indexOf(a)})).map((function(e){var t=Object(k.a)(e,2),a=t[0],r=t[1],l=a,u=l===K.d.TypeScript||s.includes(l),d=l===K.d.TypeScript||K.e.has(l);if(!u)return null;var j=r.name,b=r.icon,O=Object(p.jsx)(b,{"aria-label":"Supports ".concat(j),borderRadius:n?"50%":0,h:L[i],opacity:d?1:.2,w:L[i]});return Object(p.jsx)(R.a,{language:l,children:d?Object(p.jsx)(A.b,{"aria-label":"View package docs for ".concat(l),to:Object(h.a)({name:c,version:o,language:l}),children:O}):O},l)}))})},z=function(){var e=J();return Object(p.jsx)(E,Object(r.a)(Object(r.a)({},e),{},{size:"sm"}))},M=n(110),W=n(274),V=function(){var e=J(),t=e.keywords,n=void 0===t?[]:t,a=e.metadata.packageTags,c=void 0===a?[]:a,o=[].concat(Object(i.a)(c.filter((function(e){return Boolean(e.keyword)})).map((function(e){return Object(r.a)(Object(r.a)({},e),{},{isKeyword:!1})}))),Object(i.a)(n.filter((function(e){return Boolean(e)&&!M.a.has(e)})).map((function(e){return{id:e,isKeyword:!0,keyword:{label:e}}}))));return Object(p.jsx)(p.Fragment,{children:o.slice(0,3).map((function(e){var t=e.id,n=e.isKeyword,a=e.keyword,c=(a=void 0===a?{}:a).label,r=a.color;return Object(p.jsx)(W.a,{isKeyword:n,value:t,variant:r,children:c},t)}))})},N="details",U="languages",H="tags",q="heading",B=Object(d.a)([q,q,N],[q,q,N],[H,H,U]),G=Object(d.a)([q],[U],[N]),Q=function(){var e,t,n,a,c=null!==(e=null===(t=J())||void 0===t||null===(n=t.metadata)||void 0===n||null===(a=n.packageTags)||void 0===a?void 0:a.reduce((function(e,t){return t.highlight?[].concat(Object(i.a)(e),[t.highlight]):e}),[]))&&void 0!==e?e:[];return Object(p.jsx)(o.a,{_hover:{"> article":{bg:"gray.50"}},children:Object(p.jsxs)(s.a,{as:"article",autoColumns:"1fr",autoRows:"auto",bg:"white",border:"base",borderRadius:"sm",boxShadow:"base",color:"gray.600","data-testid":x.wideContainer,gap:5,h:"100%",p:5,templateAreas:{base:G,md:B},w:"100%",children:[Object(p.jsx)(l.a,{gridArea:q,spacing:2,children:Object(p.jsx)(T,{})}),Object(p.jsx)(l.a,{direction:"row",display:{base:"none",md:"initial"},gridArea:H,maxH:6,overflow:"hidden",spacing:2,children:Object(p.jsx)(V,{})}),Object(p.jsxs)(s.a,{alignItems:"start",alignSelf:"center",autoColumns:{base:"initial",md:"1fr"},autoRows:{base:"initial",md:"auto"},fontSize:"xs",gap:{base:0,md:1},gridArea:N,templateColumns:{base:"1fr 1fr",md:"initial"},templateRows:{base:"1fr 1fr",md:"initial"},children:[c.map((function(e){return Object(p.jsx)(F,Object(r.a)({},e),e.label)})),Object(p.jsx)(w,{})]}),Object(p.jsxs)(l.a,{gridArea:U,spacing:{base:4,md:0},children:[Object(p.jsx)(u.a,{display:{md:"none"}}),Object(p.jsx)(l.a,{"data-testid":x.languages,direction:"row",spacing:2,children:Object(p.jsx)(z,{})})]})]})})},_=Object(c.createContext)(null),J=function(){return Object(c.useContext)(_)},Y=function(e){var t=e.pkg,n=e.variant,c=void 0===n?a.Wide:n;return Object(p.jsx)(_.Provider,{value:t,children:c===a.Wide&&Object(p.jsx)(Q,{})})}},272:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(89),c=function(e){var t=Object(a.b)().data;return(null!==t&&void 0!==t?t:{})[e]}},273:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(6),c=n(25),r=n(19),i=n(203),o=n(582),s=n(1),l=["date","format"],u=Object(r.a)((function(e,t){var n=e.date,r=e.format,u=Object(c.a)(e,l);return Object(s.jsx)(i.a,Object(a.a)(Object(a.a)({as:"time",dateTime:n.toISOString(),ref:t},u),{},{children:Object(o.a)(n,r)}))}));u.displayName="Time"},274:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(6),c=n(4),r=n(25),i=n(575),o=n(87),s=n(72),l=n(1),u=["children","isKeyword","value","label","zIndex"],d=function(e){var t=e.children,n=e.isKeyword,d=void 0!==n&&n,j=e.value,b=e.label,O=void 0===b?j:b,f=e.zIndex,h=Object(r.a)(e,u),g=d?"keywords":"tags";return Object(l.jsx)(s.a,{"aria-label":"Tag: ".concat(O),to:Object(o.c)(Object(c.a)({},g,[j])),zIndex:f,children:Object(l.jsx)(i.a,Object(a.a)(Object(a.a)({_hover:{textDecoration:"underline"}},h),{},{children:Object(l.jsx)(i.b,{children:t})}))})}},275:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(230),c=n(122),r=n(1),i=function(e){var t=e.children,n=e.language,i=c.e.has(n),o=c.b[n],s=i?"Click to view documentation in ".concat(o):"Documentation support for ".concat(o," is coming soon!");return Object(r.jsx)(a.a,{hasArrow:!0,label:s,placement:"top-start",children:Object(r.jsx)("span",{children:t})})}},583:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return Ce}));var a,c=n(153),r=n(244),i=n(235),o=n(222),s=n(93),l=n(16),u=n(4),d=n(6),j=n(5),b=n(0),O=n(64),f=n(90),h=n(357),g=n(588),m=n(207),v=n(30),x=n(213),p=n(585),y=n(1),w=function(e){var t=e.name,n=e.hint;return Object(y.jsxs)(x.a,{align:"center",mb:1,children:[Object(y.jsx)(o.a,{as:"h4",size:"sm",w:"max-content",children:t}),n?Object(y.jsxs)(p.a,{colorScheme:"dark",placement:"right",strategy:"fixed",children:[Object(y.jsx)(p.e,{children:Object(y.jsx)(x.a,{"aria-label":"Hint: ".concat(t),as:"button",ml:2,children:Object(y.jsx)(v.n,{h:3.5,w:3.5})})}),Object(y.jsxs)(p.d,{bg:"gray.700",borderRadius:"base",color:"white",fontSize:"sm",shadow:"whiteAlpha.300",children:[Object(y.jsx)(p.b,{bg:"gray.700"}),Object(y.jsx)(p.c,{children:Object(y.jsx)(m.a,{children:n})})]})]}):null]})},k=n(60),C=Object(k.a)("searchRedesign",["page","searchDetails","nextPage","prevPage","goToPage","sortButton","sortDropdown","sortItem","filtersPanel","cdkTypeFilter","cdkVersionFilter","filterItem","languagesFilter"]),S=function(e){var t=e["data-testid"],n=e.value,a=e.onValueChange,c=e.options,r=e.name,o=e.hint;return Object(y.jsxs)(i.a,{"data-testid":t,spacing:1,children:[Object(y.jsx)(w,{hint:o,name:r}),Object(y.jsx)(h.a,{onChange:a,value:n,children:Object(y.jsx)(i.a,{spacing:1,children:c.map((function(e){var t=e.display,n=e.value;return Object(y.jsx)(g.a,{value:n,children:Object(y.jsx)(m.a,{color:"gray.600","data-testid":C.filterItem,"data-value":n,isTruncated:!0,children:t})},n)}))})})]})},A=n(14),D=n(94),P=n(254),T=n(55),I=(a={},Object(u.a)(a,T.a.NameAsc,"A-Z"),Object(u.a)(a,T.a.NameDesc,"Z-A"),Object(u.a)(a,T.a.PublishDateAsc,"Oldest first"),Object(u.a)(a,T.a.PublishDateDesc,"Newest first"),Object(u.a)(a,T.a.DownloadsDesc,"Most downloads"),Object(u.a)(a,T.a.DownloadsAsc,"Least downloads"),a),F=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t},K=function(e){return e?decodeURIComponent(e).split(","):[]},R=Object(b.createContext)(void 0),L=function(){var e=Object(b.useContext)(R);if(!e)throw new Error("This hook must be called in a child of <SearchStateProvider />");return e},E=function(e){var t,n,a,c,r=e.children,i=Object(P.a)(),o=F(null!==(t=i.get(A.b.OFFSET))&&void 0!==t?t:"0"),s=decodeURIComponent(null!==(n=i.get(A.b.SEARCH_QUERY))&&void 0!==n?n:""),l=K(i.get(A.b.LANGUAGES)),u=i.get(A.b.TAGS),d=Object(b.useMemo)((function(){return K(u)}),[u]),j=i.get(A.b.KEYWORDS),O=Object(b.useMemo)((function(){return K(j)}),[j]),f=null!==(a=i.get(A.b.SORT))&&void 0!==a?a:void 0,h=null!==(c=i.get(A.b.CDK_TYPE))&&void 0!==c?c:void 0,g=i.get(A.b.CDK_MAJOR),m=g?F(g):void 0,v=Object(D.a)({defaultCdkMajor:m,defaultCdkType:h,defaultKeywords:O,defaultLanguages:l,defaultQuery:s,defaultSort:f,defaultTags:d});return Object(b.useEffect)((function(){s!==v.query&&v.setQuery(s)}),[s]),Object(b.useEffect)((function(){O.some((function(e){return!v.keywords.includes(e)}))&&v.setKeywords(O)}),[O]),Object(b.useEffect)((function(){d.some((function(e){return!v.tags.includes(e)}))&&v.setTags(d)}),[d]),Object(y.jsx)(R.Provider,{value:{limit:25,offset:o,query:s,searchAPI:v},children:r})},z=function(){var e,t=L().searchAPI,n=t.cdkType,a=t.setCdkType,c=t.cdkMajor,r=t.setCdkMajor,i=Object(f.b)(),o=Object(b.useMemo)((function(){var e=i.constructFrameworks,t=Object.entries(e).reduce((function(e,t){var n=Object(j.a)(t,2),a=n[0],c=n[1];return c.pkgCount<1?e:Object(d.a)(Object(d.a)({},e),{},Object(u.a)({},a,Object(d.a)({display:O.a[a],value:a},c)))}),{});return Object.keys(t).length?t:void 0}),[i]),s=Object(b.useMemo)((function(){var e;if(o&&n){var t=null===(e=o[n])||void 0===e?void 0:e.majorVersions;if(t)return Object(l.a)(t).sort((function(e,t){return e-t})).map((function(e){return{value:e.toString(),display:"".concat(O.a[n]," v").concat(e)}}))}}),[o,n]);if(!o)return null;return Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(S,{"data-testid":C.cdkTypeFilter,hint:"Choose the right CDK for your IaC technology: AWS CDK for AWS CloudFormation, CDKtf for Terraform, or CDK8s for Kubernetes.",name:"CDK Type",onValueChange:function(e){var t=e;r(void 0),a(e?t:void 0)},options:[{display:"Any CDK Type",value:""}].concat(Object(l.a)(Object.values(o))),value:null!==n&&void 0!==n?n:""}),!!(s&&s.length>1)&&Object(y.jsx)(S,{"data-testid":C.cdkVersionFilter,hint:"Choose the major version of the CDK you're using to see only constructs that will work with that version.",name:"CDK Major Version",onValueChange:function(e){if(e){var t=parseInt(e,10);r(t)}else r(void 0)},options:[{display:"Any Major Version",value:""}].concat(Object(l.a)(s)),value:null!==(e=null===c||void 0===c?void 0:c.toString())&&void 0!==e?e:""})]})},M=n(228),W=n(230),V=n(209),N=n(211),U=n(158),H=function(e){var t=e.display,n=e.value,a=e.isDisabled,c=e.disabledHint,r=e.isChecked,i=e.onChange;return Object(y.jsx)(M.a,{isChecked:r,isDisabled:a,onChange:i,children:Object(y.jsx)(W.a,{hasArrow:!0,isDisabled:!a&&!c,label:c,placement:"right",children:Object(y.jsx)(m.a,{color:"gray.600","data-testid":C.filterItem,"data-value":n,isTruncated:!0,children:t})})},n)},q=function(e){var t=e["data-testid"],n=e.initialItemCount,a=e.hint,c=e.name,r=e.options,o=e.values,s=e.onValueChange,l=Object(V.a)(),u=function(e){return function(){s(e)}},j=r,O=[];n&&(j=r.slice(0,n),O=r.slice(n,r.length));var f=O.length>0;return Object(y.jsxs)(x.a,{"data-testid":t,direction:"column",children:[Object(y.jsx)(w,{hint:a,name:c}),Object(y.jsxs)(i.a,{mt:1,spacing:1,children:[j.map((function(e){return Object(b.createElement)(H,Object(d.a)(Object(d.a)({},e),{},{isChecked:o.includes(e.value),key:e.value,onChange:u(e.value)}))})),f&&Object(y.jsx)(N.a,{animateOpacity:!0,in:l.isOpen,unmountOnExit:!0,children:Object(y.jsx)(i.a,{spacing:1,children:O.map((function(e){return Object(b.createElement)(H,Object(d.a)(Object(d.a)({},e),{},{isChecked:o.includes(e.value),key:e.value,onChange:u(e.value)}))}))})})]}),f&&Object(y.jsx)(x.a,{align:"start",mt:1,children:Object(y.jsx)(U.a,{color:"gray.600",fontWeight:"normal",leftIcon:l.isOpen?Object(y.jsx)(v.f,{}):Object(y.jsx)(v.c,{}),onClick:l.onToggle,size:"sm",textAlign:"left",variant:"link",w:"auto",children:l.isOpen?"Show fewer options (".concat(j.length,")"):"Show more options (".concat(O.length,")")})})]})},B=function(){var e=L().searchAPI,t=e.keywords,n=e.setKeywords,a=Object(f.b)().keywords,c=Object(b.useMemo)((function(){var e=Object(l.a)(a.entries()).sort((function(e,t){return Object(j.a)(e,2)[1]<Object(j.a)(t,2)[1]?1:-1})).map((function(e){var t=Object(j.a)(e,1)[0];return{display:t,value:t}})).slice(0,25),n=t.filter((function(t){return!e.some((function(e){return e.value===t}))}));return[].concat(Object(l.a)(n.map((function(e){return{display:e,value:e}}))),Object(l.a)(e))}),[a,t]);return Object(y.jsx)(q,{"data-testid":C.languagesFilter,hint:"Focus the results by choosing one or more keywords reflecting the kind of construct you're looking for. Keywords are provided by construct authors.",initialItemCount:5,name:"Keywords",onValueChange:function(e){n(t.includes(e)?t.filter((function(t){return t!==e})):[].concat(Object(l.a)(t),[e]))},options:c,values:t})},G=n(122),Q=Object.entries(G.b).map((function(e){var t=Object(j.a)(e,2),n=t[0],a=t[1];return Object(d.a)({display:a,value:n},G.e.has(n)?{isDisabled:!1}:{isDisabled:!0,disabledHint:"".concat(G.b[n]," support is coming soon!")})})).sort((function(e,t){return e.isDisabled>t.isDisabled?1:-1})),_=function(){var e=L().searchAPI,t=e.languages,n=e.setLanguages;return Object(y.jsx)(q,{"data-testid":C.languagesFilter,hint:"Choose one or more languages. Results include constructs for use with at least one of the selected languages.",name:"Programming Language",onValueChange:function(e){var a=e;n(t.includes(a)?t.filter((function(e){return e!==a})):[].concat(Object(l.a)(t),[a]))},options:Q,values:t})},J=n(272),Y=function(){var e,t,n=(null!==(e=null===(t=Object(J.a)("packageTags"))||void 0===t?void 0:t.filter((function(e){return Boolean(e.searchFilter)})))&&void 0!==e?e:[]).reduce((function(e,t){var n,a,c=null===(n=t.searchFilter)||void 0===n?void 0:n.groupBy;return c?Object(d.a)(Object(d.a)({},e),{},Object(u.a)({},c,[].concat(Object(l.a)(null!==(a=e[c])&&void 0!==a?a:[]),[t]))):e}),{}),a=L().searchAPI,c=a.tags,r=a.setTags,i=function(e){r(c.includes(e)?c.filter((function(t){return t!==e})):[].concat(Object(l.a)(c),[e]))};return Object(y.jsx)(y.Fragment,{children:Object.entries(n).map((function(e){var t=Object(j.a)(e,2),n=t[0],a=t[1];return Object(y.jsx)(q,{name:n,onValueChange:i,options:a.map((function(e){return{display:e.searchFilter.display,value:e.id}})),values:c},n)}))})},Z="5.75rem",X=function(){return Object(y.jsx)(s.a,{borderRadius:"none",boxShadow:"none","data-testid":C.filtersPanel,display:{base:"none",md:"flex"},maxH:"calc(100vh - ".concat(Z," - 1.25rem)"),maxW:"23rem",minW:"100%",overflow:"hidden auto",p:4,pos:"sticky",top:Z,zIndex:"docked",children:Object(y.jsxs)(i.a,{color:"blue.800",h:"max-content",spacing:4,top:4,children:[Object(y.jsx)(o.a,{as:"h3",size:"sm",children:"Filters"}),Object(y.jsx)(z,{}),Object(y.jsx)(_,{}),Object(y.jsx)(Y,{}),Object(y.jsx)(B,{})]})})},$=n(203),ee=n(22),te=n(220),ne=n(208),ae=n(271),ce=Object(u.a)({},ae.b.Wide,(function(e){var t=e.items;return Object(y.jsx)(i.a,{spacing:4,children:t.map((function(e){return Object(y.jsx)(ae.a,{pkg:e,variant:ae.b.Wide},"".concat(e.name,"-").concat(e.version))}))})})),re=Object(b.memo)((function(e){var t=e.cardView,n=void 0===t?ae.b.Wide:t,a=e.items;if(e.loading||!a)return Object(y.jsx)(te.a,{children:Object(y.jsx)(ne.a,{size:"xl"})});var c=ce[n];return Object(y.jsx)(c,{items:a})}));re.displayName="PackageList";var ie=n(74),oe=n(125),se=n(87),le=n(212),ue=n(36),de=function(e){var t=e["data-testid"],n=e.icon,a=e.offset,c=e.getPageUrl,r={"aria-label":"Page ".concat(a," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue","data-testid":t,icon:Object(y.jsx)(n,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==a?Object(y.jsx)(le.a,Object(d.a)(Object(d.a)({},r),{},{as:ue.b,to:c({offset:a})})):Object(y.jsx)(le.a,Object(d.a)(Object(d.a)({},r),{},{disabled:!0}))},je=n(233),be=function(e){var t=e["data-testid"],n=e.pageLimit,a=e.offset,c=e.getPageUrl,r=Object(b.useState)((a+1).toString()),i=Object(j.a)(r,2),o=i[0],s=i[1],l=Object(ee.g)().push;Object(b.useEffect)((function(){s((a+1).toString())}),[a]);return Object(y.jsxs)(x.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),l(c({offset:parseInt(o)-1}))},children:[Object(y.jsx)(je.a,{colorScheme:"blue","data-testid":t,h:10,max:n+1,min:1,name:"page",onChange:function(e){e.preventDefault(),s(e.target.value)},p:0,textAlign:"center",type:"number",value:o,w:10}),Object(y.jsxs)(m.a,{ml:2,w:"max-content",children:["of ",n+1]})]})},Oe=function(e){var t=e.offset,n=e.getPageUrl,a=e.pageLimit,c=t<a?t+1:void 0,r=t>0?t-1:void 0;return Object(y.jsxs)(i.a,{align:"center",direction:"row",justify:"space-between",maxW:"18rem",mx:"auto",spacing:4,w:"full",children:[Object(y.jsx)(de,{"data-testid":C.prevPage,getPageUrl:n,icon:v.d,offset:r}),Object(y.jsx)(be,{"data-testid":C.goToPage,getPageUrl:n,offset:t,pageLimit:a}),Object(y.jsx)(de,{"data-testid":C.nextPage,getPageUrl:n,icon:v.e,offset:c})]})},fe=function(e){var t=e.children;return Object(y.jsx)(m.a,{as:"strong",color:"gray.700",children:t})},he=function(e){var t=e.first,n=e.count,a=e.last;return!t&&a>=n?Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(fe,{children:n})," of ",Object(y.jsx)(fe,{children:n})]}):Object(y.jsxs)(y.Fragment,{children:[Object(y.jsxs)(fe,{children:[n?t+1:n," - ",a>n?n:a]})," ","of ",Object(y.jsx)(fe,{children:n})]})},ge=function(e){var t=e.limit,n=e.offset,a=e.count,c=e.filtered,r=e.query,i=t*n,o=i+t,s=a>0;return Object(y.jsxs)(m.a,{"data-testid":C.searchDetails,children:[s?Object(y.jsxs)(y.Fragment,{children:["Displaying ",Object(y.jsx)(he,{count:a,first:i,last:o})," ",c?"search results":"constructs"]}):Object(y.jsx)(y.Fragment,{children:c?"There were no search results":"No constructs found"}),r&&Object(y.jsxs)(y.Fragment,{children:[" for ",Object(y.jsx)(fe,{children:r})]}),".",!s&&c&&Object(y.jsx)(y.Fragment,{children:" Try a different term."})]})},me=n(237),ve=n(49),xe=function(){var e=L().searchAPI,t=e.sort,n=e.setSort;return Object(y.jsx)(S,{hint:"Sets the order of search results",name:"Sorted By",onValueChange:function(e){n(e||void 0)},options:[{display:"Relevance",value:""}].concat(Object(l.a)(Object.entries(I).map((function(e){var t=Object(j.a)(e,2),n=t[0];return{display:t[1],value:n}})))),value:null!==t&&void 0!==t?t:""})},pe=function(){var e=Object(V.a)();return Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(U.a,{colorScheme:"blue",display:{md:"none"},onClick:e.onOpen,rightIcon:Object(y.jsx)(v.c,{}),variant:"link",children:"Sorting and Filters"}),Object(y.jsxs)(me.a,Object(d.a)(Object(d.a)({},e),{},{placement:"bottom",children:[Object(y.jsx)(ve.h,{}),Object(y.jsxs)(me.b,{color:"blue.800",children:[Object(y.jsx)(ve.g,{children:"Sorting and Filters"}),Object(y.jsx)(ve.c,{}),Object(y.jsx)(ve.b,{children:Object(y.jsxs)(i.a,{color:"blue.800",pb:4,spacing:4,children:[Object(y.jsx)(xe,{}),Object(y.jsx)(z,{}),Object(y.jsx)(_,{}),Object(y.jsx)(Y,{}),Object(y.jsx)(B,{})]})})]})]}))]})},ye=n(229),we=function(){var e=L().searchAPI,t=e.sort,n=e.setSort,a=t?I[t]:"Relevance";return Object(y.jsxs)(x.a,{align:"center",children:[Object(y.jsx)(m.a,{children:"Sorted by"}),Object(y.jsxs)(ye.a,{children:[Object(y.jsx)(ye.b,{as:U.a,color:"blue.500","data-testid":C.sortButton,ml:2,pl:2,pr:2,py:1,rightIcon:Object(y.jsx)(v.c,{}),variant:"link",children:a}),Object(y.jsxs)(ye.f,{"data-testid":C.sortDropdown,minW:"180",zIndex:"sticky",children:[Object(y.jsx)(ye.e,{"data-testid":C.sortItem,"data-value":"",onClick:function(){return n(void 0)},children:"Relevance"},"Relevance"),Object.entries(I).map((function(e){var t=Object(j.a)(e,2),a=t[0],c=t[1];return Object(y.jsx)(ye.e,{"data-testid":C.sortItem,"data-value":a,onClick:function(){return n(a)},children:c},a)}))]})]})]})},ke=function(){var e=Object(b.useRef)(!0),t=Object(ee.g)().push,n=L(),a=n.query,c=n.searchAPI,o=n.offset,s=n.limit,l=c.keywords,u=c.languages,d=c.sort,j=c.cdkType,O=c.cdkMajor,f=c.onSearch,h=c.tags,g=Object(oe.a)({offset:o,limit:s,query:a,keywords:l,languages:u,cdkMajor:O,cdkType:j,sort:d,tags:h}),m=g.page,v=g.pageLimit,x=g.results,p=function(e){var t,n;return Object(se.c)({cdkMajor:O,cdkType:j,keywords:l,query:null!==(t=e.q)&&void 0!==t?t:a,languages:u,sort:d,offset:null!==(n=e.offset)&&void 0!==n?n:o,tags:h})};return Object(b.useEffect)((function(){x.length&&(o<0||o>v)&&t(p(o<0?{offset:0}:{offset:v}))}),[x,o,v]),Object(b.useEffect)((function(){e.current?e.current=!1:f({replace:!0})}),[d,l,u,j,O,h]),Object(b.useEffect)((function(){window.scrollTo(0,0)}),[m]),Object(y.jsx)(r.a,{meta:{title:a||"Search",description:a?"".concat(x.length," results for ").concat(a," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(y.jsxs)(i.a,{direction:"column",maxW:"100vw",pb:4,px:4,spacing:4,children:[Object(y.jsx)(ie.a,{bg:"white",onChange:c.onQueryChange,onSubmit:function(e){c.setSort(void 0),c.onSubmit(e)},value:c.query}),Object(y.jsxs)(i.a,{align:{base:"start",lg:"center"},direction:{base:"column-reverse",lg:"row"},justify:{base:"initial",lg:"space-between"},spacing:4,children:[Object(y.jsx)(ge,{count:x.length,filtered:!!a,limit:s,offset:o,query:a}),Object(y.jsx)($.a,{display:{base:"none",md:"initial"},children:Object(y.jsx)(we,{})}),Object(y.jsx)($.a,{display:{md:"none"},children:Object(y.jsx)(pe,{})})]}),Object(y.jsx)(re,{items:m}),Object(y.jsx)($.a,{w:"full",children:Object(y.jsx)(Oe,{getPageUrl:p,offset:o,pageLimit:v})})]})})},Ce=function(){return Object(y.jsx)(E,{children:Object(y.jsx)(r.a,{meta:{title:"Search - Construct Hub",description:"Search Construct Libraries for AWS CDK, CDK8s, and CDKtf"},pageName:"search",children:Object(y.jsxs)(c.a,{"data-testid":C.page,gap:4,h:"full",maxW:"100%",px:{base:0,md:6},py:6,templateColumns:{base:"1fr",md:"auto 1fr"},templateRows:"1fr",children:[Object(y.jsx)(X,{}),Object(y.jsx)(ke,{})]})})})}}}]);
2
+ //# sourceMappingURL=8.90bc7c73.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["constants/pageInfo.ts","components/Page/Page.tsx","hooks/useQueryParams/useQueryParams.ts","hooks/useLanguage/useLanguage.ts","util/css.ts","components/PackageCard/constants.ts","components/PackageCard/testIds.ts","components/PackageCard/Details.tsx","components/PackageCard/Heading.tsx","components/PackageCard/Highlight.tsx","components/PackageLanguages/PackageLanguages.tsx","components/PackageCard/Languages.tsx","components/PackageCard/Tags.tsx","components/PackageCard/WideCard.tsx","components/PackageCard/PackageCard.tsx","hooks/useConfigValue/useConfigValue.ts","components/Time/Time.tsx","components/PackageTag/PackageTag.tsx","components/LanguageSupportTooltip/LanguageSupportTooltip.tsx","views/SearchRedesign/FilterHeading.tsx","views/SearchRedesign/testIds.ts","views/SearchRedesign/RadioFilter.tsx","views/SearchRedesign/constants.ts","views/SearchRedesign/util.ts","views/SearchRedesign/SearchState.tsx","views/SearchRedesign/CDKFilter.tsx","views/SearchRedesign/CheckboxFilter.tsx","views/SearchRedesign/KeywordsFilter.tsx","views/SearchRedesign/LanguageFilter.tsx","views/SearchRedesign/TagFilter.tsx","views/SearchRedesign/FilterPanel.tsx","components/PackageList/PackageList.tsx","components/PackageList/WideCardList.tsx","views/SearchRedesign/ArrowButton.tsx","views/SearchRedesign/GoToPage.tsx","views/SearchRedesign/PageControls.tsx","views/SearchRedesign/SearchDetails.tsx","views/SearchRedesign/SortFilter.tsx","views/SearchRedesign/SortAndFilterDrawer.tsx","views/SearchRedesign/SortedBy.tsx","views/SearchRedesign/SearchResults.tsx","views/SearchRedesign/SearchRedesign.tsx"],"names":["pageInfo","home","event","name","faq","packageProfile","search","siteTerms","notFound","page","pageType","Page","children","meta","pageName","trackPageView","usePageView","useEffect","suffix","title","description","formattedTitle","Helmet","process","content","charSet","property","useQueryParams","useLocation","useMemo","URLSearchParams","defaultLang","Language","TypeScript","LOCAL_KEY","isValidLang","lang","TEMP_SUPPORTED_LANGUAGES","has","getInitialLang","langFromParams","storedLang","localStorage","getItem","useLanguage","options","updateUrl","updateSaved","pathname","hash","useHistory","replace","params","get","QUERY_PARAMS","LANGUAGE","useState","language","setLanguage","set","toString","update","useCallback","val","setItem","makeGridAreas","rows","map","row","col","join","PackageCardType","testIds","createTestIds","Detail","dataTestid","icon","label","tooltip","value","hasArrow","isDisabled","placement","fontSize","zIndex","Details","usePackageCard","author","date","metadata","version","data","useStats","downloads","packages","npm","authorName","undefined","toLocaleString","published","Time","Date","format","NavLink","color","to","getSearchPath","query","Heading","currentLanguage","comment","constructFramework","cdkType","cdkVersion","majorVersion","as","Link","getPackagePath","align","CDKType","mr","fontWeight","wordBreak","lineHeight","noOfLines","Highlight","direction","spacing","alt","src","w","sizes","sm","md","lg","PackageLanguages","isRounded","languages","packageName","size","targets","Object","keys","entries","LANGUAGE_RENDER_MAP","sort","left","right","LANGUAGES","indexOf","info","isSupportedByLibrary","includes","isSupportedByConstructHub","Icon","borderRadius","h","opacity","LanguageSupportTooltip","Languages","pkg","Tags","keywords","packageTags","tags","filter","tag","Boolean","keyword","t","isKeyword","KEYWORD_IGNORE_LIST","id","slice","PackageTag","variant","GRID_AREA","gridAreasMd","gridAreasMobile","WideCard","highlights","reduce","accum","highlight","_hover","bg","autoColumns","autoRows","border","boxShadow","wideContainer","gap","p","templateAreas","base","gridArea","display","maxH","overflow","alignItems","alignSelf","templateColumns","templateRows","PackageCardContext","createContext","useContext","PackageCard","Wide","Provider","useConfigValue","key","useConfig","forwardRef","ref","formatString","boxProps","dateTime","toISOString","displayName","tagProps","prop","textDecoration","isSupported","langName","LANGUAGE_NAME_MAP","message","FilterHeading","hint","mb","colorScheme","strategy","ml","shadow","RadioFilter","checkedValue","onValueChange","onChange","filterItem","isTruncated","SORT_RENDER_MAP","CatalogSearchSort","NameAsc","NameDesc","PublishDateAsc","PublishDateDesc","DownloadsDesc","DownloadsAsc","toNum","result","parseInt","parseQueryArray","queryString","decodeURIComponent","split","SearchStateContext","useSearchState","state","Error","SearchStateProvider","queryParams","offset","OFFSET","SEARCH_QUERY","tagQuery","TAGS","keywordQuery","KEYWORDS","SORT","CDK_TYPE","cdkMajorParam","CDK_MAJOR","cdkMajor","searchAPI","useCatalogSearch","defaultCdkMajor","defaultCdkType","defaultKeywords","defaultLanguages","defaultQuery","defaultSort","defaultTags","setQuery","some","k","setKeywords","setTags","limit","CDKFilter","setCdkType","setCdkMajor","useSearchContext","cdkOptions","cdkTypes","constructFrameworks","opts","pkgCount","CDKTYPE_NAME_MAP","length","majorsOptions","majorVersions","a","b","cdkTypeFilter","type","cdk","values","cdkVersionFilter","major","majorNum","CheckboxItem","disabledHint","isChecked","CheckboxFilter","initialItemCount","checkedValues","collapse","useDisclosure","getOnChange","alwaysShow","showWhenExpanded","isExpandible","mt","item","animateOpacity","in","isOpen","unmountOnExit","leftIcon","onClick","onToggle","textAlign","KeywordsFilter","keywordMap","keywordOptions","baseOptions","keywordsNotInOptions","opt","languagesFilter","languageOptions","l1","l2","LanguageFilter","setLanguages","l","TagFilter","tagFilterGroups","searchFilter","groupName","groupBy","onTagsChange","tagItems","TOP_OFFSET","FilterPanel","Card","filtersPanel","maxW","minW","pos","top","listViews","items","PackageList","memo","cardView","loading","View","ArrowButton","getPageUrl","props","borderColor","mx","disabled","GoToPage","pageLimit","inputValue","setInputValue","push","onSubmit","e","preventDefault","max","min","target","PageControls","nextOffset","prevOffset","justify","prevPage","ChevronLeftIcon","goToPage","nextPage","ChevronRightIcon","Em","Count","first","count","last","SearchDetails","filtered","hasResults","searchDetails","SortFilter","setSort","newSort","SortAndFilterDrawer","drawer","onOpen","rightIcon","pb","SortedBy","selected","Button","sortButton","pl","pr","py","sortDropdown","sortItem","SearchResults","isFirstRender","useRef","onSearch","useCatalogResults","results","getUrl","q","current","window","scrollTo","px","SearchBar","onQueryChange","SearchRedesign"],"mappings":"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","file":"static/js/8.90bc7c73.chunk.js","sourcesContent":["export const pageInfo = {\n home: {\n event: {\n name: \"Home Load\",\n },\n },\n faq: {\n event: {\n name: \"Frequently Asked Questions Load\",\n },\n },\n packageProfile: {\n event: {\n name: \"Package Profile Load\",\n },\n },\n search: {\n event: {\n name: \"Search Load\",\n },\n },\n siteTerms: {\n event: {\n name: \"Site Terms Load\",\n },\n },\n notFound: {\n page: {\n pageType: \"errorPage\",\n },\n event: {\n name: \"404 Page Load\",\n },\n },\n} as const;\n","import { FunctionComponent, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { pageInfo } from \"../../constants/pageInfo\";\nimport { usePageView } from \"../../contexts/Analytics\";\n\nexport interface PageProps {\n pageName: keyof typeof pageInfo;\n meta: {\n suffix?: boolean;\n title: string;\n description: string;\n };\n}\n\nexport const Page: FunctionComponent<PageProps> = ({\n children,\n meta,\n pageName,\n}) => {\n const trackPageView = usePageView(pageInfo[pageName]);\n\n useEffect(() => {\n trackPageView();\n }, [trackPageView]);\n\n const { suffix = true, title, description } = meta;\n const formattedTitle = suffix ? `${title} - Construct Hub` : title;\n\n return (\n <>\n <Helmet>\n {process.env.NODE_ENV === \"development\" && (\n <meta\n content=\"default-src 'self' 'unsafe-inline' https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; connect-src 'self' https://*.shortbread.aws.dev ws://localhost:3000 https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; frame-src 'none'; img-src 'self' https://* http://*.omtrdc.net; object-src 'none'; style-src 'self' 'unsafe-inline';\"\n httpEquiv=\"Content-Security-Policy\"\n />\n )}\n\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n <meta charSet=\"utf-8\" />\n\n <title>{formattedTitle}</title>\n <meta content={formattedTitle} property=\"og:title\" />\n <meta content={formattedTitle} name=\"twitter:title\" />\n <meta content=\"summary\" name=\"twitter:card\" />\n\n <meta content={description} name=\"description\" />\n <meta content={description} property=\"og:description\" />\n <meta content={description} name=\"twitter:description\" />\n </Helmet>\n {children}\n </>\n );\n};\n","import { useMemo } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport const useQueryParams = () => {\n const { search } = useLocation();\n\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocation, useHistory } from \"react-router-dom\";\nimport { Language, TEMP_SUPPORTED_LANGUAGES } from \"../../constants/languages\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\n\n// Only supported language atm\nconst defaultLang = Language.TypeScript;\n\nconst LOCAL_KEY = \"preferred-language\";\n\nconst isValidLang = (lang?: string | Language): lang is Language =>\n lang != null && TEMP_SUPPORTED_LANGUAGES.has(lang as Language);\n\nconst getInitialLang = (langFromParams: string | Language): Language => {\n // First, use language from query params in url\n if (isValidLang(langFromParams)) {\n return langFromParams;\n }\n\n // Next check for one stored in localStorage\n try {\n const storedLang = (localStorage.getItem(LOCAL_KEY) ?? \"\") as Language;\n if (isValidLang(storedLang)) return storedLang;\n } catch {\n // Do nothing, we just don't want to crash if localStorage access is blocked.\n }\n\n // Otherwise fallback to a default\n return defaultLang;\n};\n\nexport interface UseLanguageOptions {\n /**\n * Syncs the preferred language to a query param in URL\n */\n updateUrl?: boolean;\n /**\n * Saves the selected language to localStorage on select\n */\n updateSaved?: boolean;\n}\n\nexport const useLanguage = (options: UseLanguageOptions = {}) => {\n const { updateUrl, updateSaved } = options;\n const { pathname, hash } = useLocation();\n const { replace } = useHistory();\n const params = useQueryParams();\n const langFromParams = params.get(QUERY_PARAMS.LANGUAGE) as Language;\n\n // Passed as function to guarantee it runs on hook mount\n const [language, setLanguage] = useState<Language>(() =>\n getInitialLang(langFromParams)\n );\n\n // State subscribes to query param changes\n useEffect(() => {\n if (isValidLang(langFromParams) && langFromParams !== language) {\n setLanguage(langFromParams);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [langFromParams]);\n\n // Syncs language changes to URL if updateUrl = true\n useEffect(() => {\n if (langFromParams !== language && updateUrl) {\n params.set(QUERY_PARAMS.LANGUAGE, language);\n replace({ pathname, hash, search: params.toString() });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [language, updateUrl]);\n\n const update = useCallback(\n (val: Language) => {\n setLanguage(val);\n\n if (updateSaved) {\n try {\n localStorage.setItem(LOCAL_KEY, val);\n } catch {\n // OK to fail silently\n }\n }\n },\n [updateSaved]\n );\n\n return useMemo(() => [language, update] as const, [language, update]);\n};\n","/**\n * @fileoverview CSS Related Utils\n */\n\n/**\n * Translates a series of grid row definitions into a grid area string\n * ```ts\n * const gridAreas = makeGridAreas(\n * [\"header\", \"header\", \"header\"],\n * [\"aside\", \"main\", \"main\"],\n * [\"aside\", \"footer\", \"footer\"]\n * ); // `\"header header header\" \"aside main main\" \"aside footer footer\"`\n *\n * const withBlank = makeGridAreas(\n * [\"header\", null, \"main\"]\n * ); // `\"header . main\"`\n * ```\n */\nexport const makeGridAreas = (...rows: (string | null)[][]): string => {\n return rows\n .map((row) => `\"${row.map((col) => col ?? \".\").join(\" \")}\"`)\n .join(\" \");\n};\n","export enum PackageCardType {\n Wide = \"wide\",\n}\n","import { createTestIds } from \"../../util/createTestIds\";\n\nconst testIds = createTestIds(\"packageCard\", [\n \"author\",\n \"description\",\n \"downloads\",\n \"languages\",\n \"published\",\n \"title\",\n \"version\",\n \"comment\",\n \"wideContainer\",\n] as const);\n\nexport default testIds;\n","import { DownloadIcon } from \"@chakra-ui/icons\";\nimport { Text, Tooltip } from \"@chakra-ui/react\";\nimport { FunctionComponent, ReactChild } from \"react\";\nimport { useStats } from \"../../contexts/Stats\";\nimport { getSearchPath } from \"../../util/url\";\nimport { NavLink } from \"../NavLink\";\nimport { Time } from \"../Time\";\nimport { usePackageCard } from \"./PackageCard\";\nimport testIds from \"./testIds\";\n\ninterface DetailProps {\n \"data-testid\": string;\n icon?: ReactChild;\n tooltip?: string;\n label: string;\n value: ReactChild;\n}\n\nconst Detail: FunctionComponent<DetailProps> = ({\n \"data-testid\": dataTestid,\n icon,\n label,\n tooltip,\n value,\n}) => (\n <Tooltip hasArrow isDisabled={!tooltip} label={tooltip} placement=\"auto\">\n {/* zIndex required to allow tooltip to display due to card link overlay */}\n <Text data-testid={dataTestid} fontSize=\"xs\" zIndex={1}>\n {icon}\n {icon ? \" \" : \"\"}\n <strong>{label}</strong> {value}\n </Text>\n </Tooltip>\n);\n\nexport const Details: FunctionComponent = () => {\n const {\n author,\n metadata: { date },\n version,\n name,\n } = usePackageCard();\n\n const { data } = useStats();\n const downloads: number | undefined = data?.packages?.[name]?.downloads?.npm;\n\n const authorName = typeof author === \"string\" ? author : author.name;\n\n return (\n <>\n {downloads !== undefined && downloads >= 10 ? (\n <Detail\n data-testid={testIds.downloads}\n icon={<DownloadIcon />}\n label={downloads.toLocaleString()}\n tooltip=\"Download numbers are periodically sourced from the NPM registry\"\n value={\"Weekly downloads\"}\n />\n ) : (\n <Detail data-testid={testIds.version} label=\"Version\" value={version} />\n )}\n <Detail\n data-testid={testIds.published}\n label=\"Published\"\n value={\n <Time date={new Date(date)} fontSize=\"xs\" format=\"MMM dd, yyyy\" />\n }\n />\n <Detail\n data-testid={testIds.author}\n label=\"Author\"\n value={\n <NavLink\n color=\"blue.500\"\n to={getSearchPath({\n query: authorName,\n })}\n >\n {authorName}\n </NavLink>\n }\n />\n </>\n );\n};\n","import {\n Flex,\n Heading as ChakraHeading,\n LinkOverlay,\n Text,\n Tooltip,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLanguage\";\nimport { getPackagePath } from \"../../util/url\";\nimport { CDKTypeIcon, CDKTypeText } from \"../CDKType\";\nimport { usePackageCard } from \"./PackageCard\";\nimport testIds from \"./testIds\";\n\nexport const Heading: FunctionComponent = () => {\n const [currentLanguage] = useLanguage();\n const {\n comment,\n description,\n metadata: { constructFramework },\n name,\n version,\n } = usePackageCard();\n\n const cdkType = constructFramework?.name;\n const cdkVersion = constructFramework?.majorVersion;\n\n return (\n <>\n <LinkOverlay\n as={Link}\n to={getPackagePath({\n name,\n version,\n language: currentLanguage,\n })}\n >\n <Flex align=\"center\">\n {cdkType && (\n <Tooltip\n hasArrow\n label={<CDKTypeText majorVersion={cdkVersion} name={cdkType} />}\n placement=\"top\"\n >\n <CDKTypeIcon mr={2} name={cdkType} zIndex={1} />\n </Tooltip>\n )}\n <ChakraHeading\n as=\"h3\"\n color=\"blue.800\"\n data-testid={testIds.title}\n fontSize=\"md\"\n fontWeight=\"bold\"\n wordBreak=\"break-all\"\n >\n {name}\n </ChakraHeading>\n </Flex>\n </LinkOverlay>\n <Text\n color=\"blue.800\"\n data-testid={testIds.description}\n fontSize=\"md\"\n lineHeight=\"tall\"\n noOfLines={4}\n >\n {description || \"No description available.\"}\n </Text>\n {comment && (\n <Text\n data-testid={testIds.comment}\n fontSize=\"md\"\n lineHeight=\"tall\"\n noOfLines={4}\n >\n <Text\n as=\"span\"\n color=\"blue.500\"\n fontSize=\"md\"\n fontWeight=\"bold\"\n lineHeight=\"tall\"\n >\n Editor&apos;s note:{\" \"}\n </Text>\n {comment}\n </Text>\n )}\n </>\n );\n};\n","import { Stack, Image, Text } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\ninterface HighlightProps {\n label: string;\n color?: string;\n icon?: string;\n}\n\nexport const Highlight: FunctionComponent<HighlightProps> = ({\n label,\n color,\n icon,\n}: HighlightProps) => {\n return (\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Image alt={`${label} icon`} src={icon} w={4} />\n <Text color={color} fontWeight=\"bold\">\n {label}\n </Text>\n </Stack>\n );\n};\n","import type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport {\n Language,\n LANGUAGES,\n LANGUAGE_RENDER_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\nimport { getPackagePath } from \"../../util/url\";\nimport { LanguageSupportTooltip } from \"../LanguageSupportTooltip\";\n\nconst sizes = {\n sm: 5,\n md: 6,\n lg: 8,\n};\n\nexport interface PackageLanguagesProps {\n isRounded?: boolean;\n languages?: Partial<Record<Language, unknown>>;\n name: string;\n size?: \"sm\" | \"md\" | \"lg\";\n version: string;\n}\n\nexport const PackageLanguages: FunctionComponent<PackageLanguagesProps> = ({\n isRounded = false,\n languages,\n name: packageName,\n size = \"md\",\n version,\n}) => {\n const targets = Object.keys(languages ?? {}) as Language[];\n return (\n <>\n {Object.entries(LANGUAGE_RENDER_MAP)\n // Ensure entries are always sorted in a stable way\n .sort(\n ([left], [right]) =>\n LANGUAGES.indexOf(left as Language) -\n LANGUAGES.indexOf(right as Language)\n )\n .map(([lang, info]) => {\n const language = lang as Language;\n\n const isSupportedByLibrary =\n language === Language.TypeScript || targets.includes(language);\n\n const isSupportedByConstructHub =\n language === Language.TypeScript || // TypeScript is always supported\n // Otherwise, the language must be supported by ConstructHub\n TEMP_SUPPORTED_LANGUAGES.has(language);\n\n if (!isSupportedByLibrary) return null;\n\n const { name, icon: Icon } = info;\n\n const icon = (\n <Icon\n aria-label={`Supports ${name}`}\n borderRadius={isRounded ? \"50%\" : 0}\n h={sizes[size]}\n opacity={isSupportedByConstructHub ? 1 : 0.2}\n w={sizes[size]}\n />\n );\n\n return (\n <LanguageSupportTooltip key={language} language={language}>\n {isSupportedByConstructHub ? (\n <Link\n aria-label={`View package docs for ${language}`}\n to={getPackagePath({ name: packageName, version, language })}\n >\n {icon}\n </Link>\n ) : (\n icon\n )}\n </LanguageSupportTooltip>\n );\n })}\n </>\n );\n};\n","import type { FunctionComponent } from \"react\";\nimport { PackageLanguages } from \"../PackageLanguages\";\nimport { usePackageCard } from \"./PackageCard\";\n\nexport const Languages: FunctionComponent = () => {\n const pkg = usePackageCard();\n return <PackageLanguages {...pkg} size=\"sm\" />;\n};\n","import { FunctionComponent } from \"react\";\nimport { PackageTagConfig } from \"../../api/config\";\nimport { KEYWORD_IGNORE_LIST } from \"../../constants/keywords\";\nimport { PackageTag } from \"../PackageTag\";\nimport { usePackageCard } from \"./PackageCard\";\n\ninterface TagObject extends PackageTagConfig {\n isKeyword?: boolean;\n}\n\nexport const Tags: FunctionComponent = () => {\n const {\n keywords = [],\n metadata: { packageTags = [] },\n } = usePackageCard();\n\n const tags: TagObject[] = [\n ...packageTags\n .filter((tag) => Boolean(tag.keyword))\n .map((t) => ({ ...t, isKeyword: false })),\n\n ...keywords\n .filter((label) => Boolean(label) && !KEYWORD_IGNORE_LIST.has(label))\n .map((label) => ({\n id: label,\n isKeyword: true,\n keyword: {\n label,\n },\n })),\n ];\n return (\n <>\n {tags\n .slice(0, 3)\n .map(({ id, isKeyword, keyword: { label, color } = {} }) => (\n <PackageTag isKeyword={isKeyword} key={id} value={id} variant={color}>\n {label}\n </PackageTag>\n ))}\n </>\n );\n};\n","import { Grid, Stack, LinkBox, Divider } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { PackageTagConfig, PackageHighlight } from \"../../api/config\";\nimport { makeGridAreas } from \"../../util/css\";\nimport { Details } from \"./Details\";\nimport { Heading } from \"./Heading\";\nimport { Highlight } from \"./Highlight\";\nimport { Languages } from \"./Languages\";\nimport { usePackageCard } from \"./PackageCard\";\nimport { Tags } from \"./Tags\";\nimport testIds from \"./testIds\";\n\nconst GRID_AREA = {\n DETAILS: \"details\",\n LANGUAGES: \"languages\",\n TAGS: \"tags\",\n HEADING: \"heading\",\n};\n\nconst gridAreasMd = makeGridAreas(\n [GRID_AREA.HEADING, GRID_AREA.HEADING, GRID_AREA.DETAILS],\n [GRID_AREA.HEADING, GRID_AREA.HEADING, GRID_AREA.DETAILS],\n [GRID_AREA.TAGS, GRID_AREA.TAGS, GRID_AREA.LANGUAGES]\n);\n\nconst gridAreasMobile = makeGridAreas(\n [GRID_AREA.HEADING],\n [GRID_AREA.LANGUAGES],\n [GRID_AREA.DETAILS]\n);\n\nexport const WideCard: FunctionComponent = () => {\n const highlights =\n usePackageCard()?.metadata?.packageTags?.reduce(\n (\n accum: PackageHighlight[],\n tag: PackageTagConfig\n ): PackageHighlight[] => {\n if (tag.highlight) {\n return [...accum, tag.highlight];\n }\n return accum;\n },\n []\n ) ?? [];\n\n return (\n <LinkBox\n _hover={{\n \"> article\": {\n bg: \"gray.50\",\n },\n }}\n >\n <Grid\n as=\"article\"\n autoColumns=\"1fr\"\n autoRows=\"auto\"\n bg=\"white\"\n border=\"base\"\n borderRadius=\"sm\"\n boxShadow=\"base\"\n color=\"gray.600\"\n data-testid={testIds.wideContainer}\n gap={5}\n h=\"100%\"\n p={5}\n templateAreas={{ base: gridAreasMobile, md: gridAreasMd }}\n w=\"100%\"\n >\n {/* Name + Desc */}\n <Stack gridArea={GRID_AREA.HEADING} spacing={2}>\n <Heading />\n </Stack>\n\n <Stack\n direction=\"row\"\n display={{ base: \"none\", md: \"initial\" }}\n gridArea={GRID_AREA.TAGS}\n maxH={6}\n overflow=\"hidden\"\n spacing={2}\n >\n <Tags />\n </Stack>\n\n <Grid\n alignItems=\"start\"\n alignSelf=\"center\"\n autoColumns={{ base: \"initial\", md: \"1fr\" }}\n autoRows={{ base: \"initial\", md: \"auto\" }}\n fontSize=\"xs\"\n gap={{ base: 0, md: 1 }}\n gridArea={GRID_AREA.DETAILS}\n templateColumns={{ base: \"1fr 1fr\", md: \"initial\" }}\n templateRows={{ base: \"1fr 1fr\", md: \"initial\" }}\n >\n {highlights.map((highlight) => (\n <Highlight key={highlight.label} {...highlight} />\n ))}\n <Details />\n </Grid>\n\n <Stack gridArea={GRID_AREA.LANGUAGES} spacing={{ base: 4, md: 0 }}>\n <Divider display={{ md: \"none\" }} />\n <Stack data-testid={testIds.languages} direction=\"row\" spacing={2}>\n <Languages />\n </Stack>\n </Stack>\n </Grid>\n </LinkBox>\n );\n};\n","import { createContext, FunctionComponent, useContext } from \"react\";\nimport { CatalogPackage } from \"../../api/package/packages\";\nimport { PackageCardType } from \"./constants\";\nimport { WideCard } from \"./WideCard\";\n\nexport interface PackageCardProps {\n pkg: CatalogPackage;\n variant?: PackageCardType;\n}\n\nconst PackageCardContext = createContext<\n (CatalogPackage & { comment?: string }) | null\n>(null);\n\nexport const usePackageCard = () => useContext(PackageCardContext)!;\n\nexport const PackageCard: FunctionComponent<PackageCardProps> = ({\n pkg,\n variant = PackageCardType.Wide,\n}) => {\n return (\n <PackageCardContext.Provider value={pkg}>\n {variant === PackageCardType.Wide && <WideCard />}\n </PackageCardContext.Provider>\n );\n};\n","import type { Config } from \"../../api/config\";\nimport { useConfig } from \"../../contexts/Config\";\n\nexport const useConfigValue = <T extends keyof Config>(key: T) => {\n const { data } = useConfig();\n return (data ?? {})[key];\n};\n","import { Box, BoxProps, forwardRef } from \"@chakra-ui/react\";\nimport { format } from \"date-fns\";\n\nexport interface TimeOptions {\n date: Date;\n format: string;\n}\n\nexport interface TimeProps extends BoxProps, TimeOptions {}\n\nexport const Time = forwardRef<TimeProps, \"time\">(\n ({ date, format: formatString, ...boxProps }, ref) => {\n return (\n <Box as=\"time\" dateTime={date.toISOString()} ref={ref} {...boxProps}>\n {format(date, formatString)}\n </Box>\n );\n }\n);\n\nTime.displayName = \"Time\";\n","import { Tag, TagLabel, TagProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { getSearchPath } from \"../../util/url\";\nimport { NavLink } from \"../NavLink\";\n\nexport interface PackageTagProps extends TagProps {\n isKeyword?: boolean;\n value: string;\n label?: string;\n zIndex?: string | number;\n}\n\nexport const PackageTag: FunctionComponent<PackageTagProps> = ({\n children,\n isKeyword = false,\n value,\n label = value,\n zIndex,\n ...tagProps\n}) => {\n const prop = isKeyword ? \"keywords\" : \"tags\";\n\n return (\n <NavLink\n aria-label={`Tag: ${label}`}\n to={getSearchPath({ [prop]: [value] })}\n zIndex={zIndex}\n >\n <Tag\n _hover={{\n textDecoration: \"underline\",\n }}\n {...tagProps}\n >\n <TagLabel>{children}</TagLabel>\n </Tag>\n </NavLink>\n );\n};\n","import { Tooltip } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport {\n Language,\n LANGUAGE_NAME_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\n\nexport interface LanguageSupportTooltipProps {\n language: Language;\n}\n\nexport const LanguageSupportTooltip: FunctionComponent<LanguageSupportTooltipProps> =\n ({ children, language }) => {\n const isSupported = TEMP_SUPPORTED_LANGUAGES.has(language);\n const langName = LANGUAGE_NAME_MAP[language];\n\n const message = isSupported\n ? `Click to view documentation in ${langName}`\n : `Documentation support for ${langName} is coming soon!`;\n\n return (\n <Tooltip hasArrow label={message} placement=\"top-start\">\n <span>{children}</span>\n </Tooltip>\n );\n };\n","import { QuestionIcon } from \"@chakra-ui/icons\";\nimport {\n Flex,\n Heading,\n Text,\n Popover,\n PopoverTrigger,\n PopoverBody,\n PopoverArrow,\n PopoverContent,\n} from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\n\nexport interface FilterHeadingProps {\n name: string;\n hint?: string;\n}\n\nexport const FilterHeading: FunctionComponent<FilterHeadingProps> = ({\n name,\n hint,\n}) => {\n return (\n <Flex align=\"center\" mb={1}>\n <Heading as=\"h4\" size=\"sm\" w=\"max-content\">\n {name}\n </Heading>\n {hint ? (\n <Popover colorScheme=\"dark\" placement=\"right\" strategy=\"fixed\">\n <PopoverTrigger>\n <Flex aria-label={`Hint: ${name}`} as=\"button\" ml={2}>\n <QuestionIcon h={3.5} w={3.5} />\n </Flex>\n </PopoverTrigger>\n <PopoverContent\n bg=\"gray.700\"\n borderRadius=\"base\"\n color=\"white\"\n fontSize=\"sm\"\n shadow=\"whiteAlpha.300\"\n >\n <PopoverArrow bg=\"gray.700\" />\n <PopoverBody>\n <Text>{hint}</Text>\n </PopoverBody>\n </PopoverContent>\n </Popover>\n ) : null}\n </Flex>\n );\n};\n","import { createTestIds } from \"../../util/createTestIds\";\n\nexport default createTestIds(\"searchRedesign\", [\n \"page\",\n // Results\n \"searchDetails\",\n \"nextPage\",\n \"prevPage\",\n \"goToPage\",\n // Sorting\n \"sortButton\",\n \"sortDropdown\",\n \"sortItem\",\n // Filters Panel\n \"filtersPanel\",\n \"cdkTypeFilter\",\n \"cdkVersionFilter\",\n \"filterItem\",\n \"languagesFilter\",\n] as const);\n","import { Radio, RadioGroup, Stack, Text } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { FilterHeading, FilterHeadingProps } from \"./FilterHeading\";\nimport testIds from \"./testIds\";\n\nexport interface RadioFilterProps extends FilterHeadingProps {\n \"data-testid\"?: string;\n value?: string;\n onValueChange: (value: string) => void;\n options: {\n display: string;\n value: string;\n }[];\n}\n\nexport const RadioFilter: FunctionComponent<RadioFilterProps> = ({\n \"data-testid\": dataTestid,\n value: checkedValue,\n onValueChange,\n options,\n name,\n hint,\n}) => {\n return (\n <Stack data-testid={dataTestid} spacing={1}>\n <FilterHeading hint={hint} name={name} />\n <RadioGroup onChange={onValueChange} value={checkedValue}>\n <Stack spacing={1}>\n {options.map(({ display, value }) => (\n <Radio key={value} value={value}>\n <Text\n color=\"gray.600\"\n data-testid={testIds.filterItem}\n data-value={value}\n isTruncated\n >\n {display}\n </Text>\n </Radio>\n ))}\n </Stack>\n </RadioGroup>\n </Stack>\n );\n};\n","import { CatalogSearchSort } from \"../../api/catalog-search/constants\";\nimport type { QueryParamKey } from \"../../constants/url\";\n\nconst LIMITS = [25, 50, 75, 100];\nexport const LIMIT = LIMITS[0];\n\nexport type SearchQueryParam = Extract<QueryParamKey, \"offset\" | \"q\">;\n\nexport const SORT_RENDER_MAP = {\n [CatalogSearchSort.NameAsc]: \"A-Z\",\n [CatalogSearchSort.NameDesc]: \"Z-A\",\n [CatalogSearchSort.PublishDateAsc]: \"Oldest first\",\n [CatalogSearchSort.PublishDateDesc]: \"Newest first\",\n [CatalogSearchSort.DownloadsDesc]: \"Most downloads\",\n [CatalogSearchSort.DownloadsAsc]: \"Least downloads\",\n};\n","export const toNum = (val: string) => {\n const result = parseInt(val);\n\n if (`${result}` === \"NaN\") {\n return 0;\n }\n\n return result;\n};\n\nexport const parseQueryArray = <T extends string>(\n queryString: string | null\n) => {\n if (!queryString) return [];\n\n return decodeURIComponent(queryString).split(\",\") as T[];\n};\n","/**\n * @fileoverview Exposes page-level state and setters to all components in the new SearchResults View.\n */\nimport {\n createContext,\n FunctionComponent,\n useContext,\n useEffect,\n useMemo,\n} from \"react\";\nimport { CatalogSearchSort } from \"../../api/catalog-search/constants\";\nimport { CDKType } from \"../../constants/constructs\";\nimport { Language } from \"../../constants/languages\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport {\n UseCatalogSearchReturn,\n useCatalogSearch,\n} from \"../../hooks/useCatalogSearch\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\nimport { LIMIT } from \"../SearchRedesign/constants\";\nimport { parseQueryArray, toNum } from \"./util\";\n\nexport interface SearchState {\n limit: number;\n offset: number;\n query: string;\n searchAPI: UseCatalogSearchReturn;\n}\n\nconst SearchStateContext = createContext<SearchState | undefined>(undefined);\n\n/**\n * A hook to access Search Page specific state. This can only be in descendants of the new Search Page\n * and will otherwise throw an error.\n */\nexport const useSearchState = () => {\n const state = useContext(SearchStateContext);\n\n if (!state) {\n throw new Error(\n `This hook must be called in a child of <SearchStateProvider />`\n );\n }\n\n return state;\n};\n\nexport const SearchStateProvider: FunctionComponent = ({ children }) => {\n const queryParams = useQueryParams();\n\n const offset = toNum(queryParams.get(QUERY_PARAMS.OFFSET) ?? \"0\");\n\n const query = decodeURIComponent(\n queryParams.get(QUERY_PARAMS.SEARCH_QUERY) ?? \"\"\n );\n\n const languages: Language[] = parseQueryArray(\n queryParams.get(QUERY_PARAMS.LANGUAGES)\n );\n const tagQuery = queryParams.get(QUERY_PARAMS.TAGS);\n const tags = useMemo(() => parseQueryArray(tagQuery), [tagQuery]);\n\n const keywordQuery = queryParams.get(QUERY_PARAMS.KEYWORDS);\n const keywords = useMemo(() => parseQueryArray(keywordQuery), [keywordQuery]);\n\n const sort = (queryParams.get(QUERY_PARAMS.SORT) ?? undefined) as\n | CatalogSearchSort\n | undefined;\n\n const cdkType =\n (queryParams.get(QUERY_PARAMS.CDK_TYPE) as CDKType) ?? undefined;\n\n const cdkMajorParam = queryParams.get(QUERY_PARAMS.CDK_MAJOR);\n const cdkMajor = cdkMajorParam ? toNum(cdkMajorParam) : undefined;\n\n const searchAPI = useCatalogSearch({\n defaultCdkMajor: cdkMajor,\n defaultCdkType: cdkType,\n defaultKeywords: keywords,\n defaultLanguages: languages,\n defaultQuery: query,\n defaultSort: sort,\n defaultTags: tags,\n });\n\n useEffect(() => {\n if (query !== searchAPI.query) {\n searchAPI.setQuery(query);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query]);\n\n useEffect(() => {\n if (keywords.some((k) => !searchAPI.keywords.includes(k))) {\n searchAPI.setKeywords(keywords);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [keywords]);\n\n useEffect(() => {\n if (tags.some((t) => !searchAPI.tags.includes(t))) {\n searchAPI.setTags(tags);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tags]);\n\n return (\n <SearchStateContext.Provider\n value={{\n limit: LIMIT,\n offset,\n query,\n searchAPI,\n }}\n >\n {children}\n </SearchStateContext.Provider>\n );\n};\n","import { FunctionComponent, useMemo } from \"react\";\nimport { CatalogConstructFrameworkMeta } from \"../../api/catalog-search\";\nimport { CDKType, CDKTYPE_NAME_MAP } from \"../../constants/constructs\";\nimport { useSearchContext } from \"../../contexts/Search\";\nimport { RadioFilter } from \"./RadioFilter\";\nimport { useSearchState } from \"./SearchState\";\nimport testIds from \"./testIds\";\n\ntype CDKOptions = Partial<{\n [key in CDKType]: CatalogConstructFrameworkMeta & {\n display: string;\n value: key;\n };\n}>;\n\nexport const CDKFilter: FunctionComponent = () => {\n const { cdkType, setCdkType, cdkMajor, setCdkMajor } =\n useSearchState().searchAPI;\n const searchAPI = useSearchContext()!;\n\n // Options with less than one package will be omitted\n const cdkOptions = useMemo(() => {\n const cdkTypes = searchAPI.constructFrameworks;\n const options = Object.entries(cdkTypes).reduce((opts, [name, meta]) => {\n if (meta.pkgCount < 1) {\n return opts;\n }\n\n return {\n ...opts,\n [name]: {\n display: CDKTYPE_NAME_MAP[name as CDKType],\n value: name,\n ...meta,\n },\n };\n }, {});\n\n return Object.keys(options).length ? (options as CDKOptions) : undefined;\n }, [searchAPI]);\n\n const majorsOptions = useMemo(() => {\n if (!cdkOptions || !cdkType) return undefined;\n const majorVersions = cdkOptions[cdkType]?.majorVersions;\n\n if (!majorVersions) return undefined;\n\n return [...majorVersions]\n .sort((a, b) => a - b)\n .map((value) => ({\n value: value.toString(),\n display: `${CDKTYPE_NAME_MAP[cdkType]} v${value}`,\n }));\n }, [cdkOptions, cdkType]);\n\n if (!cdkOptions) {\n return null;\n }\n\n const onCdkTypeChange = (type: string) => {\n const cdk = type as CDKType;\n setCdkMajor(undefined);\n setCdkType(type ? cdk : undefined);\n };\n\n const onCdkMajorChange = (major: string) => {\n if (!major) {\n setCdkMajor(undefined);\n return;\n }\n\n const majorNum = parseInt(major, 10);\n\n setCdkMajor(majorNum);\n };\n\n return (\n <>\n <RadioFilter\n data-testid={testIds.cdkTypeFilter}\n hint=\"Choose the right CDK for your IaC technology: AWS CDK for AWS CloudFormation, CDKtf for Terraform, or CDK8s for Kubernetes.\"\n name=\"CDK Type\"\n onValueChange={onCdkTypeChange}\n options={[\n { display: \"Any CDK Type\", value: \"\" },\n ...Object.values(cdkOptions),\n ]}\n value={cdkType ?? \"\"}\n />\n {/* No point in showing major versions if only a single one is available */}\n {!!(majorsOptions && majorsOptions.length > 1) && (\n <RadioFilter\n data-testid={testIds.cdkVersionFilter}\n hint=\"Choose the major version of the CDK you're using to see only constructs that will work with that version.\"\n name=\"CDK Major Version\"\n onValueChange={onCdkMajorChange}\n options={[\n { display: \"Any Major Version\", value: \"\" },\n ...majorsOptions,\n ]}\n value={cdkMajor?.toString() ?? \"\"}\n />\n )}\n </>\n );\n};\n","import { ChevronDownIcon, ChevronUpIcon } from \"@chakra-ui/icons\";\nimport {\n Flex,\n Button,\n Collapse,\n Checkbox,\n Stack,\n Text,\n Tooltip,\n useDisclosure,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { FilterHeading, FilterHeadingProps } from \"./FilterHeading\";\nimport testIds from \"./testIds\";\n\ninterface CheckboxOption {\n display: string;\n value: string;\n isDisabled?: boolean;\n disabledHint?: string;\n}\n\ninterface CheckboxItemProps extends CheckboxOption {\n onChange: () => void;\n isChecked: boolean;\n}\n\nexport interface CheckboxFilterProps extends FilterHeadingProps {\n /**\n * Test ID to select checkbox in tests\n */\n \"data-testid\"?: string;\n /**\n * Number of items that can be initially shown\n */\n initialItemCount?: number;\n /**\n * Defines checkbox items\n */\n options: CheckboxOption[];\n /**\n * Selected values\n */\n values: string[];\n /**\n * Callback triggered when an item is clicked\n */\n onValueChange: (value: string) => void;\n}\n\nconst CheckboxItem: FunctionComponent<CheckboxItemProps> = ({\n display,\n value,\n isDisabled,\n disabledHint,\n isChecked,\n onChange,\n}) => (\n <Checkbox\n isChecked={isChecked}\n isDisabled={isDisabled}\n key={value}\n onChange={onChange}\n >\n <Tooltip\n hasArrow\n isDisabled={!isDisabled && !disabledHint}\n label={disabledHint}\n placement=\"right\"\n >\n <Text\n color=\"gray.600\"\n data-testid={testIds.filterItem}\n data-value={value}\n isTruncated\n >\n {display}\n </Text>\n </Tooltip>\n </Checkbox>\n);\n\nexport const CheckboxFilter: FunctionComponent<CheckboxFilterProps> = ({\n \"data-testid\": dataTestid,\n initialItemCount,\n hint,\n name,\n options,\n values: checkedValues,\n onValueChange,\n}) => {\n const collapse = useDisclosure();\n\n const getOnChange = (value: string) => () => {\n onValueChange(value);\n };\n\n let alwaysShow: typeof options = options;\n let showWhenExpanded: typeof options = [];\n\n if (initialItemCount) {\n alwaysShow = options.slice(0, initialItemCount);\n showWhenExpanded = options.slice(initialItemCount, options.length);\n }\n\n const isExpandible = showWhenExpanded.length > 0;\n\n return (\n <Flex data-testid={dataTestid} direction=\"column\">\n <FilterHeading hint={hint} name={name} />\n <Stack mt={1} spacing={1}>\n {alwaysShow.map((item) => (\n <CheckboxItem\n {...item}\n isChecked={checkedValues.includes(item.value)}\n key={item.value}\n onChange={getOnChange(item.value)}\n />\n ))}\n {isExpandible && (\n <Collapse animateOpacity in={collapse.isOpen} unmountOnExit>\n <Stack spacing={1}>\n {showWhenExpanded.map((item) => (\n <CheckboxItem\n {...item}\n isChecked={checkedValues.includes(item.value)}\n key={item.value}\n onChange={getOnChange(item.value)}\n />\n ))}\n </Stack>\n </Collapse>\n )}\n </Stack>\n {isExpandible && (\n <Flex align=\"start\" mt={1}>\n <Button\n color=\"gray.600\"\n fontWeight=\"normal\"\n leftIcon={collapse.isOpen ? <ChevronUpIcon /> : <ChevronDownIcon />}\n onClick={collapse.onToggle}\n size=\"sm\"\n textAlign=\"left\"\n variant=\"link\"\n w=\"auto\"\n >\n {collapse.isOpen\n ? `Show fewer options (${alwaysShow.length})`\n : `Show more options (${showWhenExpanded.length})`}\n </Button>\n </Flex>\n )}\n </Flex>\n );\n};\n","import { FunctionComponent, useMemo } from \"react\";\nimport { useSearchContext } from \"../../contexts/Search\";\nimport { CheckboxFilter } from \"./CheckboxFilter\";\nimport { useSearchState } from \"./SearchState\";\nimport testIds from \"./testIds\";\n\nexport const KeywordsFilter: FunctionComponent = () => {\n const { keywords, setKeywords } = useSearchState().searchAPI;\n const keywordMap = useSearchContext()!.keywords;\n\n const onKeywordChange = (keyword: string) => {\n setKeywords(\n keywords.includes(keyword)\n ? keywords.filter((k) => k !== keyword)\n : [...keywords, keyword]\n );\n };\n\n const keywordOptions = useMemo(() => {\n const baseOptions = [...keywordMap.entries()]\n .sort(([, count1], [, count2]) => {\n return count1 < count2 ? 1 : -1;\n })\n .map(([keyword]) => ({\n display: keyword,\n value: keyword,\n }))\n .slice(0, 25);\n\n const keywordsNotInOptions = keywords.filter(\n (k) => !baseOptions.some((opt) => opt.value === k)\n );\n\n return [\n ...keywordsNotInOptions.map((k) => ({ display: k, value: k })),\n ...baseOptions,\n ];\n }, [keywordMap, keywords]);\n\n return (\n <CheckboxFilter\n data-testid={testIds.languagesFilter}\n hint=\"Focus the results by choosing one or more keywords reflecting the kind of construct you're looking for. Keywords are provided by construct authors.\"\n initialItemCount={5}\n name=\"Keywords\"\n onValueChange={onKeywordChange}\n options={keywordOptions}\n values={keywords}\n />\n );\n};\n","import { FunctionComponent } from \"react\";\nimport {\n Language,\n LANGUAGE_NAME_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\nimport { CheckboxFilter } from \"./CheckboxFilter\";\nimport { useSearchState } from \"./SearchState\";\nimport testIds from \"./testIds\";\n\nconst languageOptions = Object.entries(LANGUAGE_NAME_MAP)\n .map(([key, value]) => ({\n display: value,\n value: key,\n ...(TEMP_SUPPORTED_LANGUAGES.has(key as Language)\n ? { isDisabled: false }\n : {\n isDisabled: true,\n disabledHint: `${\n LANGUAGE_NAME_MAP[key as Language]\n } support is coming soon!`,\n }),\n }))\n .sort((l1, l2) => {\n // Push disabled languages to back of list\n return l1.isDisabled > l2.isDisabled ? 1 : -1;\n });\n\nexport const LanguageFilter: FunctionComponent = () => {\n const { languages, setLanguages } = useSearchState().searchAPI;\n\n const onLanguagesChange = (lang: string) => {\n const language = lang as Language;\n\n setLanguages(\n languages.includes(language)\n ? languages.filter((l) => l !== language)\n : [...languages, language]\n );\n };\n\n return (\n <CheckboxFilter\n data-testid={testIds.languagesFilter}\n hint=\"Choose one or more languages. Results include constructs for use with at least one of the selected languages.\"\n name=\"Programming Language\"\n onValueChange={onLanguagesChange}\n options={languageOptions}\n values={languages}\n />\n );\n};\n","import { FunctionComponent } from \"react\";\nimport { PackageTagConfig } from \"../../api/config\";\nimport { useConfigValue } from \"../../hooks/useConfigValue\";\nimport { CheckboxFilter } from \"./CheckboxFilter\";\nimport { useSearchState } from \"./SearchState\";\n\ninterface FilterGroups {\n [group: string]: PackageTagConfig[];\n}\n\nexport const TagFilter: FunctionComponent = () => {\n const filterableTags =\n useConfigValue(\"packageTags\")?.filter((tag) => Boolean(tag.searchFilter)) ??\n [];\n\n const tagFilterGroups: FilterGroups = filterableTags.reduce(\n (accum: FilterGroups, tag: PackageTagConfig): FilterGroups => {\n const groupName = tag.searchFilter?.groupBy;\n if (groupName) {\n return {\n ...accum,\n [groupName]: [...(accum[groupName] ?? []), tag],\n };\n }\n return accum;\n },\n {}\n );\n\n const { tags, setTags } = useSearchState().searchAPI;\n\n const onTagsChange = (tag: string) => {\n setTags(\n tags.includes(tag) ? tags.filter((t) => t !== tag) : [...tags, tag]\n );\n };\n\n return (\n <>\n {Object.entries(tagFilterGroups).map(([title, tagItems]) => {\n return (\n <CheckboxFilter\n key={title}\n name={title}\n onValueChange={onTagsChange}\n options={tagItems.map((tag) => {\n return {\n display: tag.searchFilter!.display,\n value: tag.id,\n };\n })}\n values={tags}\n />\n );\n })}\n </>\n );\n};\n","import { Heading, Stack } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { Card } from \"../../components/Card\";\nimport { CDKFilter } from \"./CDKFilter\";\nimport { KeywordsFilter } from \"./KeywordsFilter\";\nimport { LanguageFilter } from \"./LanguageFilter\";\nimport { TagFilter } from \"./TagFilter\";\nimport testIds from \"./testIds\";\n\nexport interface FilterPanelProps {}\n\n// Header height + section padding\nconst TOP_OFFSET = \"5.75rem\";\n\n/**\n * The desktop Resolution Filter Panel\n */\nexport const FilterPanel: FunctionComponent<FilterPanelProps> = () => {\n return (\n <Card\n borderRadius=\"none\"\n boxShadow=\"none\"\n data-testid={testIds.filtersPanel}\n display={{ base: \"none\", md: \"flex\" }}\n maxH={`calc(100vh - ${TOP_OFFSET} - 1.25rem)`}\n maxW=\"23rem\"\n minW=\"100%\"\n overflow=\"hidden auto\"\n p={4}\n pos=\"sticky\"\n top={TOP_OFFSET}\n zIndex=\"docked\"\n >\n <Stack color=\"blue.800\" h=\"max-content\" spacing={4} top={4}>\n <Heading as=\"h3\" size=\"sm\">\n Filters\n </Heading>\n\n <CDKFilter />\n\n <LanguageFilter />\n\n <TagFilter />\n\n <KeywordsFilter />\n </Stack>\n </Card>\n );\n};\n","import { Center, Spinner } from \"@chakra-ui/react\";\nimport { FunctionComponent, memo } from \"react\";\nimport { CatalogPackage } from \"../../api/package/packages\";\nimport { PackageCardType } from \"../PackageCard\";\nimport { WideCardList } from \"./WideCardList\";\n\nconst listViews = {\n [PackageCardType.Wide]: WideCardList,\n};\n\nexport interface PackageListViewProps {\n items: CatalogPackage[];\n}\n\nexport interface PackageListProps extends Partial<PackageListViewProps> {\n cardView?: PackageCardType;\n loading?: boolean;\n title?: string;\n}\n\nexport const PackageList: FunctionComponent<PackageListProps> = memo(\n ({\n cardView = PackageCardType.Wide,\n items,\n loading,\n // title,\n }) => {\n if (loading || !items) {\n return (\n <Center>\n <Spinner size=\"xl\" />\n </Center>\n );\n }\n\n const View = listViews[cardView];\n\n return <View items={items} />;\n }\n);\n\nPackageList.displayName = \"PackageList\";\n","import { Stack } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { PackageCard, PackageCardType } from \"../PackageCard\";\nimport { PackageListViewProps } from \"./PackageList\";\n\nexport const WideCardList: FunctionComponent<PackageListViewProps> = ({\n items,\n}) => {\n return (\n <Stack spacing={4}>\n {items.map((pkg) => (\n <PackageCard\n key={`${pkg.name}-${pkg.version}`}\n pkg={pkg}\n variant={PackageCardType.Wide}\n />\n ))}\n </Stack>\n );\n};\n","import { IconButton, IconProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface ArrowButtonProps {\n \"data-testid\"?: string;\n icon: FunctionComponent<IconProps>;\n offset?: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const ArrowButton: FunctionComponent<ArrowButtonProps> = ({\n \"data-testid\": dataTestid,\n icon: Icon,\n offset,\n getPageUrl,\n}) => {\n const label = `Page ${offset} link`;\n\n const props = {\n \"aria-label\": label,\n borderRadius: \"md\",\n borderColor: \"blue.500\",\n colorScheme: \"blue\",\n \"data-testid\": dataTestid,\n icon: <Icon color=\"blue.500\" h={5} w={5} />,\n mx: 2,\n h: 10,\n w: 10,\n variant: \"outline\",\n };\n\n if (offset !== undefined) {\n return <IconButton {...props} as={Link} to={getPageUrl({ offset })} />;\n }\n\n return <IconButton {...props} disabled />;\n};\n","import { Flex, Input, Text } from \"@chakra-ui/react\";\nimport {\n FormEventHandler,\n FunctionComponent,\n SyntheticEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nexport interface GoToPageProps {\n \"data-testid\"?: string;\n pageLimit: number;\n offset: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const GoToPage: FunctionComponent<GoToPageProps> = ({\n \"data-testid\": dataTestid,\n pageLimit,\n offset,\n getPageUrl,\n}) => {\n const [inputValue, setInputValue] = useState((offset + 1).toString());\n const { push } = useHistory();\n\n useEffect(() => {\n setInputValue((offset + 1).toString());\n }, [offset]);\n\n const onInputChange = (e: SyntheticEvent<HTMLInputElement>) => {\n e.preventDefault();\n setInputValue((e.target as HTMLInputElement).value);\n };\n\n const onSubmit: FormEventHandler<HTMLInputElement> = (e) => {\n e.preventDefault();\n push(getPageUrl({ offset: parseInt(inputValue) - 1 }));\n };\n\n return (\n <Flex align=\"center\" as=\"form\" mx={2} onSubmit={onSubmit}>\n <Input\n colorScheme=\"blue\"\n data-testid={dataTestid}\n h={10}\n max={pageLimit + 1}\n min={1}\n name=\"page\"\n onChange={onInputChange}\n p={0}\n textAlign=\"center\"\n type=\"number\"\n value={inputValue}\n w={10}\n />\n <Text ml={2} w=\"max-content\">\n of {pageLimit + 1}\n </Text>\n </Flex>\n );\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"@chakra-ui/icons\";\nimport { Stack } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { ArrowButton } from \"./ArrowButton\";\nimport { GoToPage } from \"./GoToPage\";\nimport testIds from \"./testIds\";\n\nexport interface PageControlsProps {\n offset: number;\n pageLimit: number;\n getPageUrl: (params: { offset?: number }) => string;\n}\n\nexport const PageControls: FunctionComponent<PageControlsProps> = ({\n offset,\n getPageUrl,\n pageLimit,\n}) => {\n const nextOffset = offset < pageLimit ? offset + 1 : undefined;\n const prevOffset = offset > 0 ? offset - 1 : undefined;\n\n return (\n <Stack\n align=\"center\"\n direction=\"row\"\n justify=\"space-between\"\n maxW=\"18rem\"\n mx=\"auto\"\n spacing={4}\n w=\"full\"\n >\n <ArrowButton\n data-testid={testIds.prevPage}\n getPageUrl={getPageUrl}\n icon={ChevronLeftIcon}\n offset={prevOffset}\n />\n <GoToPage\n data-testid={testIds.goToPage}\n getPageUrl={getPageUrl}\n offset={offset}\n pageLimit={pageLimit}\n />\n <ArrowButton\n data-testid={testIds.nextPage}\n getPageUrl={getPageUrl}\n icon={ChevronRightIcon}\n offset={nextOffset}\n />\n </Stack>\n );\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport testIds from \"./testIds\";\n\nexport interface SearchDetailsProps {\n limit: number;\n offset: number;\n count: number;\n filtered: boolean;\n query?: string;\n}\n\nconst Em: FunctionComponent = ({ children }) => (\n <Text as=\"strong\" color=\"gray.700\">\n {children}\n </Text>\n);\n\nconst Count: FunctionComponent<{ first: number; count: number; last: number }> =\n ({ first, count, last }) => {\n if (!first && last >= count) {\n return (\n <>\n <Em>{count}</Em> of <Em>{count}</Em>\n </>\n );\n }\n\n return (\n <>\n <Em>\n {count ? first + 1 : count} - {last > count ? count : last}\n </Em>{\" \"}\n of <Em>{count}</Em>\n </>\n );\n };\n\nexport const SearchDetails: FunctionComponent<SearchDetailsProps> = ({\n limit,\n offset,\n count,\n filtered,\n query,\n}) => {\n const first = limit * offset;\n const last = first + limit;\n const hasResults = count > 0;\n\n return (\n <Text data-testid={testIds.searchDetails}>\n {hasResults ? (\n <>\n Displaying <Count count={count} first={first} last={last} />{\" \"}\n {filtered ? \"search results\" : \"constructs\"}\n </>\n ) : (\n <>{filtered ? \"There were no search results\" : \"No constructs found\"}</>\n )}\n {query && (\n <>\n {\" for \"}\n <Em>{query}</Em>\n </>\n )}\n .{!hasResults && filtered && <> Try a different term.</>}\n </Text>\n );\n};\n","import { FunctionComponent } from \"react\";\nimport { CatalogSearchSort } from \"../../api/catalog-search/constants\";\nimport { SORT_RENDER_MAP } from \"./constants\";\nimport { RadioFilter } from \"./RadioFilter\";\nimport { useSearchState } from \"./SearchState\";\n\nexport const SortFilter: FunctionComponent = () => {\n const { sort, setSort } = useSearchState().searchAPI;\n\n const onSortChange = (newSort: string) => {\n setSort(newSort ? (newSort as CatalogSearchSort) : undefined);\n };\n\n return (\n <RadioFilter\n hint=\"Sets the order of search results\"\n name=\"Sorted By\"\n onValueChange={onSortChange}\n options={[\n { display: \"Relevance\", value: \"\" },\n ...Object.entries(SORT_RENDER_MAP).map(([value, display]) => ({\n display,\n value,\n })),\n ]}\n value={sort ?? \"\"}\n />\n );\n};\n","import { ChevronDownIcon } from \"@chakra-ui/icons\";\nimport {\n Button,\n Drawer,\n Stack,\n DrawerBody,\n DrawerHeader,\n DrawerOverlay,\n DrawerContent,\n DrawerCloseButton,\n useDisclosure,\n} from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { CDKFilter } from \"./CDKFilter\";\nimport { KeywordsFilter } from \"./KeywordsFilter\";\nimport { LanguageFilter } from \"./LanguageFilter\";\nimport { SortFilter } from \"./SortFilter\";\nimport { TagFilter } from \"./TagFilter\";\n\n/**\n * The mobile filter Drawer (Bottomsheet in iOS terminology)\n */\nexport const SortAndFilterDrawer: FunctionComponent = () => {\n const drawer = useDisclosure();\n return (\n <>\n <Button\n colorScheme=\"blue\"\n display={{ md: \"none\" }}\n onClick={drawer.onOpen}\n rightIcon={<ChevronDownIcon />}\n variant=\"link\"\n >\n Sorting and Filters\n </Button>\n <Drawer {...drawer} placement=\"bottom\">\n <DrawerOverlay />\n\n <DrawerContent color=\"blue.800\">\n <DrawerHeader>Sorting and Filters</DrawerHeader>\n\n <DrawerCloseButton />\n\n <DrawerBody>\n <Stack color=\"blue.800\" pb={4} spacing={4}>\n <SortFilter />\n\n <CDKFilter />\n\n <LanguageFilter />\n\n <TagFilter />\n\n <KeywordsFilter />\n </Stack>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </>\n );\n};\n","import { ChevronDownIcon } from \"@chakra-ui/icons\";\nimport {\n Flex,\n Text,\n Menu,\n MenuButton,\n MenuList,\n MenuItem,\n Button,\n} from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { CatalogSearchSort } from \"../../api/catalog-search/constants\";\nimport { SORT_RENDER_MAP } from \"./constants\";\nimport { useSearchState } from \"./SearchState\";\nimport testIds from \"./testIds\";\n\nexport const SortedBy: FunctionComponent = () => {\n const { searchAPI } = useSearchState();\n const { sort, setSort } = searchAPI;\n\n const selected = sort ? SORT_RENDER_MAP[sort] : \"Relevance\";\n\n return (\n <Flex align=\"center\">\n <Text>Sorted by</Text>\n <Menu>\n <MenuButton\n as={Button}\n color=\"blue.500\"\n data-testid={testIds.sortButton}\n ml={2}\n pl={2} // For some reason, the px shorthand doesn't work on this Button\n pr={2}\n py={1}\n rightIcon={<ChevronDownIcon />}\n variant=\"link\"\n >\n {selected}\n </MenuButton>\n <MenuList data-testid={testIds.sortDropdown} minW=\"180\" zIndex=\"sticky\">\n <MenuItem\n data-testid={testIds.sortItem}\n data-value=\"\"\n key=\"Relevance\"\n onClick={() => setSort(undefined)}\n >\n Relevance\n </MenuItem>\n {Object.entries(SORT_RENDER_MAP).map(([value, display]) => (\n <MenuItem\n data-testid={testIds.sortItem}\n data-value={value}\n key={value}\n onClick={() => setSort(value as CatalogSearchSort)}\n >\n {display}\n </MenuItem>\n ))}\n </MenuList>\n </Menu>\n </Flex>\n );\n};\n","import { Box, Stack } from \"@chakra-ui/react\";\nimport { FunctionComponent, useEffect, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { PackageList } from \"../../components/PackageList\";\nimport { Page } from \"../../components/Page\";\nimport { SearchBar } from \"../../components/SearchBar\";\nimport { useCatalogResults } from \"../../hooks/useCatalogResults\";\nimport { getSearchPath } from \"../../util/url\";\nimport { SearchQueryParam } from \"../SearchRedesign/constants\";\nimport { PageControls } from \"./PageControls\";\nimport { SearchDetails } from \"./SearchDetails\";\nimport { useSearchState } from \"./SearchState\";\nimport { SortAndFilterDrawer } from \"./SortAndFilterDrawer\";\nimport { SortedBy } from \"./SortedBy\";\n\nexport const SearchResults: FunctionComponent = () => {\n const isFirstRender = useRef(true);\n const { push } = useHistory();\n\n const { query, searchAPI, offset, limit } = useSearchState();\n const { keywords, languages, sort, cdkType, cdkMajor, onSearch, tags } =\n searchAPI;\n\n const { page, pageLimit, results } = useCatalogResults({\n offset,\n limit,\n query,\n keywords,\n languages,\n cdkMajor,\n cdkType,\n sort,\n tags,\n });\n\n const getUrl = (\n params: Partial<{ [key in SearchQueryParam]: number | string }>\n ) => {\n return getSearchPath({\n cdkMajor,\n cdkType,\n keywords,\n query: (params.q ?? query) as string,\n languages,\n sort,\n offset: params.offset ?? offset,\n tags,\n });\n };\n\n // Resets the page number to 1 if query param offset is below 0, or to the last page if offset is higher than page count\n useEffect(() => {\n // If the query has results but the page has nothing to show...\n if (results.length && (offset < 0 || offset > pageLimit)) {\n // Handle an out of bounds offset\n if (offset < 0) {\n push(getUrl({ offset: 0 }));\n } else {\n // Offset is too large, just take last page\n push(getUrl({ offset: pageLimit }));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [results, offset, pageLimit]);\n\n // Reset offset and update url when query, filters, or sort change\n // We want to avoid doing this on first render / when a user directly navigates to a search URL\n // so we keep a ref to prevent this\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n // Trigger a history replace rather than push to avoid bloating browser history\n onSearch({ replace: true });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sort, keywords, languages, cdkType, cdkMajor, tags]);\n\n // Scroll to top on page change\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [page]);\n\n return (\n <Page\n meta={{\n title: query || \"Search\",\n description: query\n ? `${results.length} results for ${query} at Construct Hub`\n : \"Search reusable components for your cloud application\",\n }}\n pageName=\"search\"\n >\n <Stack direction=\"column\" maxW=\"100vw\" pb={4} px={4} spacing={4}>\n <SearchBar\n bg=\"white\"\n onChange={searchAPI.onQueryChange}\n onSubmit={(e) => {\n searchAPI.setSort(undefined);\n searchAPI.onSubmit(e);\n }}\n value={searchAPI.query}\n />\n\n <Stack\n align={{ base: \"start\", lg: \"center\" }}\n direction={{ base: \"column-reverse\", lg: \"row\" }}\n justify={{ base: \"initial\", lg: \"space-between\" }}\n spacing={4}\n >\n <SearchDetails\n count={results.length}\n filtered={!!query}\n limit={limit}\n offset={offset}\n query={query}\n />\n\n <Box display={{ base: \"none\", md: \"initial\" }}>\n <SortedBy />\n </Box>\n\n <Box display={{ md: \"none\" }}>\n <SortAndFilterDrawer />\n </Box>\n </Stack>\n\n <PackageList items={page} />\n\n <Box w=\"full\">\n <PageControls\n getPageUrl={getUrl}\n offset={offset}\n pageLimit={pageLimit}\n />\n </Box>\n </Stack>\n </Page>\n );\n};\n","import { Grid } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { Page } from \"../../components/Page\";\nimport { FilterPanel } from \"./FilterPanel\";\nimport { SearchResults } from \"./SearchResults\";\nimport { SearchStateProvider } from \"./SearchState\";\nimport testIds from \"./testIds\";\n\nexport const SearchRedesign: FunctionComponent = () => {\n return (\n <SearchStateProvider>\n <Page\n meta={{\n title: \"Search - Construct Hub\",\n description:\n \"Search Construct Libraries for AWS CDK, CDK8s, and CDKtf\",\n }}\n pageName=\"search\"\n >\n <Grid\n data-testid={testIds.page}\n gap={4}\n h=\"full\"\n maxW=\"100%\"\n px={{ base: 0, md: 6 }}\n py={6}\n templateColumns={{ base: \"1fr\", md: \"auto 1fr\" }}\n templateRows=\"1fr\"\n >\n {/* Filter Panel Desktop */}\n <FilterPanel />\n\n {/* Results, Info, and Controls */}\n <SearchResults />\n </Grid>\n </Page>\n </SearchStateProvider>\n );\n};\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[9],{12:function(e,t,n){"use strict";var r=n(63);n.o(r,"layoutPropNames")&&n.d(t,"layoutPropNames",(function(){return r.layoutPropNames}));var o=n(356);n.o(o,"layoutPropNames")&&n.d(t,"layoutPropNames",(function(){return o.layoutPropNames}))},356:function(e,t){},357:function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return y}));var r=n(5),o=n(19),a=n(21),i=n(15),c=n(8),u=n(120),l=n(0),s=n(4),d=n(151),b=n(117),v=n(162);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e){void 0===e&&(e={});var t=e,n=t.onChange,o=t.value,a=t.defaultValue,i=t.name,u=t.isDisabled,f=t.isFocusable,O=t.isNative,j=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,["onChange","value","defaultValue","name","isDisabled","isFocusable","isNative"]),h=l.useState(a||""),g=Object(r.a)(h,2),m=g[0],y=g[1],k=Object(d.a)(o,m),P=Object(r.a)(k,2),w=P[0],C=P[1],_=l.useRef(null),N=l.useCallback((function(){var e=_.current;if(e){var t="input:not(:disabled):checked",n=e.querySelector(t);if(n)n.focus();else{t="input:not(:disabled)";var r=e.querySelector(t);null==r||r.focus()}}}),[]),E=Object(b.b)(void 0,"radio"),x=i||E,S=l.useCallback((function(e){var t=Object(c.f)(e)?e.target.value:e;w||y(t),null==n||n(String(t))}),[n,w]),R=l.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),p({},e,{ref:Object(v.a)(t,_),role:"radiogroup"})}),[]),D=l.useCallback((function(e,t){var n;void 0===e&&(e={}),void 0===t&&(t=null);var r=O?"checked":"isChecked";return p({},e,(n={ref:t,name:x},Object(s.a)(n,r,null!=C?e.value===C:void 0),Object(s.a)(n,"onChange",S),Object(s.a)(n,"data-radiogroup",!0),n))}),[O,x,S,C]);return{getRootProps:R,getRadioProps:D,name:x,ref:_,focus:N,setValue:y,value:C,onChange:S,isDisabled:u,isFocusable:f,htmlProps:j}}function O(){return O=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},O.apply(this,arguments)}var j=Object(u.a)({name:"RadioGroupContext",strict:!1}),h=Object(r.a)(j,2),g=h[0],m=h[1],y=Object(o.a)((function(e,t){var n=e.colorScheme,r=e.size,o=e.variant,c=e.children,u=e.className,s=e.isDisabled,d=e.isFocusable,b=f(function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,["colorScheme","size","variant","children","className","isDisabled","isFocusable"])),v=b.value,p=b.onChange,j=b.getRootProps,h=b.name,m=b.htmlProps,y=l.useMemo((function(){return{name:h,size:r,onChange:p,colorScheme:n,value:v,variant:o,isDisabled:s,isFocusable:d}}),[h,r,p,n,v,o,s,d]),k=j(m,t),P=Object(i.d)("chakra-radio-group",u);return l.createElement(g,{value:y},l.createElement(a.a.div,O({},k,{className:P}),c))}));c.a&&(y.displayName="RadioGroup")},359:function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return s}));var r=n(19),o=n(21),a=n(15),i=n(0);function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var l=Object(r.a)((function(e,t){var n=e.isExternal,r=e.target,l=e.rel,s=e.className,d=u(e,["isExternal","target","rel","className"]);return i.createElement(o.a.a,c({},d,{ref:t,className:Object(a.d)("chakra-linkbox__overlay",s),rel:n?"noopener noreferrer":l,target:n?"_blank":r,__css:{position:"static","&::before":{content:"''",cursor:"inherit",display:"block",position:"absolute",top:0,left:0,zIndex:0,width:"100%",height:"100%"}}}))})),s=Object(r.a)((function(e,t){var n=e.className,r=u(e,["className"]);return i.createElement(o.a.div,c({ref:t,position:"relative"},r,{className:Object(a.d)("chakra-linkbox",n),__css:{"a[href]:not(.chakra-linkbox__overlay), abbr[title]":{position:"relative",zIndex:1}}}))}))},585:function(e,t,n){"use strict";n.d(t,"a",(function(){return re})),n.d(t,"e",(function(){return oe})),n.d(t,"d",(function(){return ae})),n.d(t,"c",(function(){return ce})),n.d(t,"b",(function(){return ue}));n(206);var r=n(58),o=n(37),a=n(51),i=n(19),c=n(21),u=n(32),l=n(8),s=n(15),d=n(0),b=n.n(d),v=n(5),p=n(120),f=Object(p.a)({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"}),O=Object(v.a)(f,2),j=O[0],h=O[1],g=n(187),m=n(31),y=n.n(m);function k(){return k=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},k.apply(this,arguments)}var P=function(e){if(e)return y()(e,{enter:{visibility:"visible"},exit:{transitionEnd:{visibility:"hidden"}}})},w=Object(g.a)(c.a.section),C=b.a.forwardRef((function(e,t){var n=h().isOpen;return b.a.createElement(w,k({ref:t,variants:P(e.variants)},e,{initial:!1,animate:n?"enter":"exit"}))}));C.defaultProps={variants:{exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}}};var _=n(4),N=n(209),E=n(117);var x=n(41),S=n(184);function R(e){return!!e.touches}var D={pageX:0,pageY:0};function F(e,t){void 0===t&&(t="page");var n=e.touches[0]||e.changedTouches[0]||D;return{x:n[t+"X"],y:n[t+"Y"]}}function M(e,t){return void 0===t&&(t="page"),{x:e[t+"X"],y:e[t+"Y"]}}function I(e,t){return void 0===t&&(t="page"),{point:R(e)?F(e,t):M(e,t)}}var B=function(e,t){void 0===t&&(t=!1);var n,r=function(t){return e(t,I(t))};return t?(n=r,function(e){var t=e instanceof Object(s.g)(e).MouseEvent;(!t||t&&0===e.button)&&n(e)}):r},T={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},z={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function A(e){return s.j&&null===window.onpointerdown?e:s.j&&null===window.ontouchstart?z[e]:s.j&&null===window.onmousedown?T[e]:e}var L=n(190);function K(e){var t,n,r,o,a,i=e.ref,c=e.elements,u=e.enabled,d=(t="Safari",!!s.j&&function(e){var t=e.userAgent,n=e.vendor,r=/(android)/i.test(t);switch(!0){case/CriOS/.test(t):return"Chrome for iOS";case/Edg\//.test(t):return"Edge";case r&&/Silk\//.test(t):return"Silk";case/Chrome/.test(t)&&/Google Inc/.test(n):return"Chrome";case/Firefox\/\d+\.\d+$/.test(t):return"Firefox";case r:return"AOSP";case/MSIE|Trident/.test(t):return"IE";case/Safari/.test(e.userAgent)&&/Apple Computer/.test(t):return"Safari";case/AppleWebKit/.test(t):return"WebKit";default:return null}}(window.navigator)===t);n=function(){return Object(s.h)(i.current)},r="pointerdown",o=function(e){if(d&&u){var t=e.target,n=(null!=c?c:[i]).some((function(e){var n=Object(l.j)(e)?e.current:e;return Object(s.c)(n,t)}));!Object(x.a)(t)&&n&&(e.preventDefault(),Object(S.a)(t))}},Object(L.a)(A(r),B(o,"pointerdown"===r),n,a)}var q=n(216),U=n(205),H=n(140),W={preventScroll:!0,shouldFocus:!1};var G=n(226),V=n(27),X=n(162),Y=n(217),J=n(204);function $(){return $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$.apply(this,arguments)}var Q="click",Z="hover";function ee(e){void 0===e&&(e={});var t=e,n=t.closeOnBlur,r=void 0===n||n,o=t.closeOnEsc,a=void 0===o||o,i=t.initialFocusRef,c=t.id,b=t.returnFocusOnClose,p=void 0===b||b,f=t.autoFocus,O=void 0===f||f,j=t.arrowSize,h=t.arrowShadowColor,g=t.trigger,m=void 0===g?Q:g,y=t.openDelay,k=void 0===y?200:y,P=t.closeDelay,w=void 0===P?200:P,C=t.isLazy,x=t.lazyBehavior,R=void 0===x?"unmount":x,D=t.computePositionOnMount,F=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,["closeOnBlur","closeOnEsc","initialFocusRef","id","returnFocusOnClose","autoFocus","arrowSize","arrowShadowColor","trigger","openDelay","closeDelay","isLazy","lazyBehavior","computePositionOnMount"]),M=Object(N.a)(e),I=M.isOpen,B=M.onClose,T=M.onOpen,z=M.onToggle,A=Object(d.useRef)(null),ee=Object(d.useRef)(null),te=Object(d.useRef)(!1),ne=Object(d.useRef)(!1);I&&(ne.current=!0);var re=Object(d.useState)(!1),oe=Object(v.a)(re,2),ae=oe[0],ie=oe[1],ce=Object(d.useState)(!1),ue=Object(v.a)(ce,2),le=ue[0],se=ue[1],de=Object(E.c)(c,"popover-trigger","popover-content","popover-header","popover-body"),be=Object(v.a)(de,4),ve=be[0],pe=be[1],fe=be[2],Oe=be[3],je=Object(G.a)($({},F,{enabled:I||!!D})),he=je.referenceRef,ge=je.getArrowProps,me=je.getPopperProps,ye=je.getArrowInnerProps,ke=je.forceUpdate;K({enabled:I,ref:A}),Object(q.a)(ee,{focusRef:A,visible:I,shouldFocus:p&&m===Q}),function(e,t){void 0===t&&(t=W);var n=t,r=n.focusRef,o=n.preventScroll,a=n.shouldFocus,i=n.visible,c=Object(l.j)(e)?e.current:e,u=a&&i,b=Object(d.useCallback)((function(){if(c&&u&&!Object(s.c)(c,document.activeElement))if(null!=r&&r.current)Object(S.a)(r.current,{preventScroll:o,nextTick:!0});else{var e=Object(U.a)(c);e.length>0&&Object(S.a)(e[0],{preventScroll:o,nextTick:!0})}}),[u,o,c,r]);Object(H.a)((function(){b()}),[b]),Object(L.a)("transitionend",b,c)}(ee,{focusRef:i,visible:I,shouldFocus:O&&m===Q});var Pe=Object(Y.a)({hasBeenSelected:ne.current,isLazy:C,lazyBehavior:R,isSelected:I}),we=Object(d.useCallback)((function(e,t){var n;void 0===e&&(e={}),void 0===t&&(t=null);var o=$({},e,{style:$({},e.style,(n={transformOrigin:V.a.transformOrigin.varRef},Object(_.a)(n,V.a.arrowSize.var,j?Object(J.b)(j):void 0),Object(_.a)(n,V.a.arrowShadowColor.var,h),n)),ref:Object(X.a)(ee,t),children:Pe?e.children:null,id:pe,tabIndex:-1,role:"dialog",onKeyDown:Object(u.b)(e.onKeyDown,(function(e){a&&"Escape"===e.key&&B()})),onBlur:Object(u.b)(e.onBlur,(function(e){var t=Object(s.i)(e),n=Object(s.c)(ee.current,t),o=Object(s.c)(A.current,t);I&&r&&(!n&&!o)&&B()})),"aria-labelledby":ae?fe:void 0,"aria-describedby":le?Oe:void 0});return m===Z&&(o.role="tooltip",o.onMouseEnter=Object(u.b)(e.onMouseEnter,(function(){te.current=!0})),o.onMouseLeave=Object(u.b)(e.onMouseLeave,(function(){te.current=!1,setTimeout(B,w)}))),o}),[Pe,pe,ae,fe,le,Oe,m,a,B,I,r,w,h,j]),Ce=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),me($({},e,{style:$({visibility:I?"visible":"hidden"},e.style)}),t)}),[I,me]),_e=Object(d.useRef)(),Ne=Object(d.useRef)(),Ee=Object(d.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var n=$({},e,{ref:Object(X.a)(A,t,he),id:ve,"aria-haspopup":"dialog","aria-expanded":I,"aria-controls":pe});return m===Q&&(n.onClick=Object(u.b)(e.onClick,z)),m===Z&&(n.onFocus=Object(u.b)(e.onFocus,T),n.onBlur=Object(u.b)(e.onBlur,B),n.onKeyDown=Object(u.b)(e.onKeyDown,(function(e){"Escape"===e.key&&B()})),n.onMouseEnter=Object(u.b)(e.onMouseEnter,(function(){te.current=!0,_e.current=window.setTimeout(T,k)})),n.onMouseLeave=Object(u.b)(e.onMouseLeave,(function(){te.current=!1,_e.current&&(clearTimeout(_e.current),_e.current=void 0),Ne.current=window.setTimeout((function(){!1===te.current&&B()}),w)}))),n}),[ve,I,pe,m,he,z,T,B,k,w]);Object(d.useEffect)((function(){return function(){_e.current&&clearTimeout(_e.current),Ne.current&&clearTimeout(Ne.current)}}),[]);var xe=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),$({},e,{id:fe,ref:Object(X.a)(t,(function(e){ie(!!e)}))})}),[fe]),Se=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),$({},e,{id:Oe,ref:Object(X.a)(t,(function(e){se(!!e)}))})}),[Oe]);return{forceUpdate:ke,isOpen:I,onClose:B,getArrowProps:ge,getArrowInnerProps:ye,getPopoverPositionerProps:Ce,getPopoverProps:we,getTriggerProps:Ee,getHeaderProps:xe,getBodyProps:Se}}function te(){return te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},te.apply(this,arguments)}function ne(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var re=function(e){var t=Object(r.a)("Popover",e),n=Object(o.b)(e),i=n.children,c=ee(te({},ne(n,["children"]),{direction:Object(a.e)().direction}));return d.createElement(j,{value:c},d.createElement(a.b,{value:t},Object(u.e)(i,{isOpen:c.isOpen,onClose:c.onClose,forceUpdate:c.forceUpdate})))};l.a&&(re.displayName="Popover");var oe=function(e){var t=d.Children.only(e.children),n=h().getTriggerProps;return d.cloneElement(t,n(t.props,t.ref))};l.a&&(oe.displayName="PopoverTrigger");var ae=Object(i.a)((function(e,t){var n=e.rootProps,r=ne(e,["rootProps"]),o=h(),i=o.getPopoverProps,u=o.getPopoverPositionerProps,l=Object(a.d)(),b=te({position:"relative",display:"flex",flexDirection:"column"},l.content);return d.createElement(c.a.div,te({},u(n),{__css:l.popper,className:"chakra-popover__popper"}),d.createElement(C,te({},i(r,t),{className:Object(s.d)("chakra-popover__content",e.className),__css:b})))}));l.a&&(ae.displayName="PopoverContent");var ie=Object(i.a)((function(e,t){var n=h().getHeaderProps,r=Object(a.d)();return d.createElement(c.a.header,te({},n(e,t),{className:Object(s.d)("chakra-popover__header",e.className),__css:r.header}))}));l.a&&(ie.displayName="PopoverHeader");var ce=Object(i.a)((function(e,t){var n=h().getBodyProps,r=Object(a.d)();return d.createElement(c.a.div,te({},n(e,t),{className:Object(s.d)("chakra-popover__body",e.className),__css:r.body}))}));l.a&&(ce.displayName="PopoverBody");l.a;l.a;var ue=function(e){var t,n=e.bg,r=e.bgColor,o=e.backgroundColor,i=h(),u=i.getArrowProps,l=i.getArrowInnerProps,b=Object(a.d)(),v=null!=(t=null!=n?n:r)?t:o;return d.createElement(c.a.div,te({},u(),{className:"chakra-popover__arrow-positioner"}),d.createElement(c.a.div,te({className:Object(s.d)("chakra-popover__arrow",e.className)},l(e),{__css:te({},b.arrow,{"--popper-arrow-bg":v?"colors."+v+", "+v:void 0})})))};l.a&&(ue.displayName="PopoverArrow")},588:function(e,t,n){"use strict";n.d(t,"a",(function(){return C}));var r=n(5),o=n(19),a=n(58),i=n(37),c=n(12),u=n(21),l=n(32),s=n(29),d=n(8),b=n(0),v=n(357),p=n(154),f=n(117),O=n(185),j=n(151),h=n(162),g=n(15),m=n(186);function y(){return y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}function k(e){void 0===e&&(e={});var t=e,n=t.defaultIsChecked,o=t.defaultChecked,a=void 0===o?n:o,i=t.isChecked,c=t.isFocusable,u=t.isDisabled,s=t.isReadOnly,d=t.isRequired,k=t.onChange,w=t.isInvalid,C=t.name,_=t.value,N=t.id,E=t["data-radiogroup"],x=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,["defaultIsChecked","defaultChecked","isChecked","isFocusable","isDisabled","isReadOnly","isRequired","onChange","isInvalid","name","value","id","data-radiogroup"]),S=Object(f.b)(void 0,"radio"),R=Object(p.a)(),D=Object(v.b)(),F=!!R&&!(!!D||!!E)?R.id:S;F=null!=N?N:F;var M=null!=u?u:null==R?void 0:R.isDisabled,I=null!=s?s:null==R?void 0:R.isReadOnly,B=null!=d?d:null==R?void 0:R.isRequired,T=null!=w?w:null==R?void 0:R.isInvalid,z=Object(O.a)(),A=Object(r.a)(z,2),L=A[0],K=A[1],q=Object(O.a)(),U=Object(r.a)(q,2),H=U[0],W=U[1],G=Object(O.a)(),V=Object(r.a)(G,2),X=V[0],Y=V[1],J=Object(b.useRef)(null),$=Object(b.useState)(Boolean(a)),Q=Object(r.a)($,2),Z=Q[0],ee=Q[1],te=Object(j.a)(i,Z),ne=Object(r.a)(te,2),re=ne[0],oe=ne[1];Object(l.f)({condition:!!n,message:'The "defaultIsChecked" prop has been deprecated and will be removed in a future version. Please use the "defaultChecked" prop instead, which mirrors default React checkbox behavior.'});var ae=Object(b.useCallback)((function(e){I||M?e.preventDefault():(re||ee(e.target.checked),null==k||k(e))}),[re,M,I,k]),ie=Object(b.useCallback)((function(e){" "===e.key&&Y.on()}),[Y]),ce=Object(b.useCallback)((function(e){" "===e.key&&Y.off()}),[Y]),ue=Object(b.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),y({},e,{ref:t,"data-active":Object(g.e)(X),"data-hover":Object(g.e)(H),"data-disabled":Object(g.e)(M),"data-invalid":Object(g.e)(T),"data-checked":Object(g.e)(oe),"data-focus":Object(g.e)(L),"data-readonly":Object(g.e)(I),"aria-hidden":!0,onMouseDown:Object(l.b)(e.onMouseDown,Y.on),onMouseUp:Object(l.b)(e.onMouseUp,Y.off),onMouseEnter:Object(l.b)(e.onMouseEnter,W.on),onMouseLeave:Object(l.b)(e.onMouseLeave,W.off)})}),[X,H,M,T,oe,L,I,Y.on,Y.off,W.on,W.off]),le=null!=R?R:{},se=le.onFocus,de=le.onBlur,be=Object(b.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var n=M&&!c;return y({},e,{id:F,ref:Object(h.a)(t,J),type:"radio",name:C,value:_,onChange:Object(l.b)(e.onChange,ae),onBlur:Object(l.b)(de,e.onBlur,K.off),onFocus:Object(l.b)(se,e.onFocus,K.on),onKeyDown:Object(l.b)(e.onKeyDown,ie),onKeyUp:Object(l.b)(e.onKeyUp,ce),checked:oe,disabled:n,readOnly:I,required:B,"aria-invalid":Object(g.b)(T),"aria-disabled":Object(g.b)(n),"aria-readonly":Object(g.b)(I),"aria-required":Object(g.b)(B),style:m.b})}),[M,c,F,C,_,ae,de,K,se,ie,ce,oe,I,B,T]);return{state:{isInvalid:T,isFocused:L,isChecked:oe,isActive:X,isHovered:H,isDisabled:M,isReadOnly:I,isRequired:B},getCheckboxProps:ue,getInputProps:be,getLabelProps:function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),y({},e,{ref:t,onMouseDown:Object(l.b)(e.onMouseDown,P),onTouchStart:Object(l.b)(e.onTouchStart,P),"data-disabled":Object(g.e)(M),"data-checked":Object(g.e)(oe),"data-invalid":Object(g.e)(T)})},getRootProps:function(t,n){return void 0===n&&(n=null),y({},e,{ref:n,"data-disabled":Object(g.e)(M),"data-checked":Object(g.e)(oe),"data-invalid":Object(g.e)(T)})},htmlProps:x}}function P(e){e.preventDefault(),e.stopPropagation()}function w(){return w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},w.apply(this,arguments)}var C=Object(o.a)((function(e,t){var n,o=Object(v.b)(),d=e.onChange,p=e.value,f=Object(a.a)("Radio",w({},o,e)),O=Object(i.b)(e),j=O.spacing,h=void 0===j?"0.5rem":j,g=O.children,m=O.isFullWidth,y=O.isDisabled,P=void 0===y?null==o?void 0:o.isDisabled:y,C=O.isFocusable,_=void 0===C?null==o?void 0:o.isFocusable:C,N=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(O,["spacing","children","isFullWidth","isDisabled","isFocusable"]),E=e.isChecked;null!=(null==o?void 0:o.value)&&null!=p&&(E=o.value===p);var x=d;null!=o&&o.onChange&&null!=p&&(x=Object(l.a)(o.onChange,d));var S=k(w({},N,{isChecked:E,isFocusable:_,isDisabled:P,onChange:x,name:null!=(n=null==e?void 0:e.name)?n:null==o?void 0:o.name})),R=S.getInputProps,D=S.getCheckboxProps,F=S.getLabelProps,M=S.getRootProps,I=S.htmlProps,B=Object(s.i)(I,c.layoutPropNames),T=Object(r.a)(B,2),z=T[0],A=D(T[1]),L=R({},t),K=F(),q=Object.assign(z,M()),U=w({width:m?"full":void 0,display:"inline-flex",alignItems:"center",verticalAlign:"top"},f.container),H=w({display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},f.control),W=w({userSelect:"none",marginStart:h},f.label);return b.createElement(u.a.label,w({className:"chakra-radio"},q,{__css:U}),b.createElement("input",w({className:"chakra-radio__input"},L)),b.createElement(u.a.span,w({className:"chakra-radio__control"},A,{__css:H})),g&&b.createElement(u.a.span,w({className:"chakra-radio__label"},K,{__css:W}),g))}));d.a&&(C.displayName="Radio")}}]);
2
- //# sourceMappingURL=9.be60d9a6.chunk.js.map
2
+ //# sourceMappingURL=9.4830c70a.chunk.js.map