construct-hub-webapp 0.1.273 → 0.1.277

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 (52) hide show
  1. package/build/asset-manifest.json +42 -42
  2. package/build/index.html +1 -1
  3. package/build/service-worker.js +1 -1
  4. package/build/static/js/{0.ef7efb94.chunk.js → 0.01076643.chunk.js} +2 -2
  5. package/build/static/js/{0.ef7efb94.chunk.js.map → 0.01076643.chunk.js.map} +1 -1
  6. package/build/static/js/{1.dde8e10e.chunk.js → 1.7efe2b06.chunk.js} +2 -2
  7. package/build/static/js/{1.dde8e10e.chunk.js.map → 1.7efe2b06.chunk.js.map} +1 -1
  8. package/build/static/js/10.e14dabc8.chunk.js +2 -0
  9. package/build/static/js/10.e14dabc8.chunk.js.map +1 -0
  10. package/build/static/js/{11.f85e5735.chunk.js → 11.4fa20ae6.chunk.js} +2 -2
  11. package/build/static/js/{11.f85e5735.chunk.js.map → 11.4fa20ae6.chunk.js.map} +1 -1
  12. package/build/static/js/{12.b2a97d43.chunk.js → 12.1f0d32c6.chunk.js} +2 -2
  13. package/build/static/js/{12.b2a97d43.chunk.js.map → 12.1f0d32c6.chunk.js.map} +1 -1
  14. package/build/static/js/{13.0f1dd29b.chunk.js → 13.a1af9f29.chunk.js} +2 -2
  15. package/build/static/js/{13.0f1dd29b.chunk.js.map → 13.a1af9f29.chunk.js.map} +1 -1
  16. package/build/static/js/{14.41ee632d.chunk.js → 14.a40917a3.chunk.js} +2 -2
  17. package/build/static/js/{14.41ee632d.chunk.js.map → 14.a40917a3.chunk.js.map} +1 -1
  18. package/build/static/js/{15.1b55dcee.chunk.js → 15.f6946442.chunk.js} +2 -2
  19. package/build/static/js/{15.1b55dcee.chunk.js.map → 15.f6946442.chunk.js.map} +1 -1
  20. package/build/static/js/{16.ae6e9b0c.chunk.js → 16.ad041986.chunk.js} +3 -3
  21. package/build/static/js/{16.ae6e9b0c.chunk.js.LICENSE.txt → 16.ad041986.chunk.js.LICENSE.txt} +0 -0
  22. package/build/static/js/{16.ae6e9b0c.chunk.js.map → 16.ad041986.chunk.js.map} +1 -1
  23. package/build/static/js/{17.818b672f.chunk.js → 17.cf0c8971.chunk.js} +2 -2
  24. package/build/static/js/{17.818b672f.chunk.js.map → 17.cf0c8971.chunk.js.map} +1 -1
  25. package/build/static/js/{2.99a11206.chunk.js → 2.b57d6cff.chunk.js} +2 -2
  26. package/build/static/js/{2.99a11206.chunk.js.map → 2.b57d6cff.chunk.js.map} +1 -1
  27. package/build/static/js/{3.a206d785.chunk.js → 3.2a95eb1f.chunk.js} +2 -2
  28. package/build/static/js/{3.a206d785.chunk.js.map → 3.2a95eb1f.chunk.js.map} +1 -1
  29. package/build/static/js/6.f20d821e.chunk.js +3 -0
  30. package/build/static/js/{6.0778b462.chunk.js.LICENSE.txt → 6.f20d821e.chunk.js.LICENSE.txt} +0 -0
  31. package/build/static/js/{6.0778b462.chunk.js.map → 6.f20d821e.chunk.js.map} +1 -1
  32. package/build/static/js/7.3ec0b9d4.chunk.js +3 -0
  33. package/build/static/js/{7.a2a41136.chunk.js.LICENSE.txt → 7.3ec0b9d4.chunk.js.LICENSE.txt} +0 -0
  34. package/build/static/js/7.3ec0b9d4.chunk.js.map +1 -0
  35. package/build/static/js/{8.d6dd5a26.chunk.js → 8.39dec1af.chunk.js} +2 -2
  36. package/build/static/js/{8.d6dd5a26.chunk.js.map → 8.39dec1af.chunk.js.map} +1 -1
  37. package/build/static/js/9.a5bd98cc.chunk.js +2 -0
  38. package/build/static/js/9.a5bd98cc.chunk.js.map +1 -0
  39. package/build/static/js/{main.5e31651c.chunk.js → main.a9b1d223.chunk.js} +2 -2
  40. package/build/static/js/main.a9b1d223.chunk.js.map +1 -0
  41. package/build/static/js/runtime-main.94050b24.js +2 -0
  42. package/build/static/js/{runtime-main.5c3bc050.js.map → runtime-main.94050b24.js.map} +1 -1
  43. package/package.json +5 -5
  44. package/build/static/js/10.850a3972.chunk.js +0 -2
  45. package/build/static/js/10.850a3972.chunk.js.map +0 -1
  46. package/build/static/js/6.0778b462.chunk.js +0 -3
  47. package/build/static/js/7.a2a41136.chunk.js +0 -3
  48. package/build/static/js/7.a2a41136.chunk.js.map +0 -1
  49. package/build/static/js/9.440de16a.chunk.js +0 -2
  50. package/build/static/js/9.440de16a.chunk.js.map +0 -1
  51. package/build/static/js/main.5e31651c.chunk.js.map +0 -1
  52. package/build/static/js/runtime-main.5c3bc050.js +0 -2
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[9],{12:function(e,t,a){"use strict";var n=a(59);a.o(n,"layoutPropNames")&&a.d(t,"layoutPropNames",(function(){return n.layoutPropNames}));var r=a(353);a.o(r,"layoutPropNames")&&a.d(t,"layoutPropNames",(function(){return r.layoutPropNames}))},233:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(246),c={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=a(118),o=a(1),s=function(e){var t=e.children,a=e.meta,s=e.pageName,l=Object(i.b)(c[s]);Object(n.useEffect)((function(){l()}),[l]);var u=a.suffix,d=void 0===u||u,b=a.title,j=a.description,f=d?"".concat(b," - Construct Hub"):b;return Object(o.jsxs)(o.Fragment,{children:[Object(o.jsxs)(r.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:f}),Object(o.jsx)("meta",{content:f,property:"og:title"}),Object(o.jsx)("meta",{content:f,name:"twitter:title"}),Object(o.jsx)("meta",{content:"summary",name:"twitter:card"}),Object(o.jsx)("meta",{content:j,name:"description"}),Object(o.jsx)("meta",{content:j,property:"og:description"}),Object(o.jsx)("meta",{content:j,name:"twitter:description"})]}),t]})}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(224),r=a(47),c=a(1),i=function(e){var t=e.children,a=e.language;return r.e.has(a)?Object(c.jsx)(c.Fragment,{children:t}):Object(c.jsx)(n.a,{hasArrow:!0,label:"Documentation support for ".concat(r.b[a]," is coming soon!"),placement:"top-start",children:Object(c.jsx)("span",{children:t})})}},252:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(6),r=a(23),c=a(19),i=a(195),o=a(598),s=a(1),l=["date","format"],u=Object(c.a)((function(e,t){var a=e.date,c=e.format,u=Object(r.a)(e,l);return Object(s.jsx)(i.a,Object(n.a)(Object(n.a)({as:"time",dateTime:a.toISOString(),ref:t},u),{},{children:Object(o.a)(a,c)}))}));u.displayName="Time"},297:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(199),r=a(1),c=function(e){var t=e.children;return Object(r.jsx)(n.a,{as:"em",color:"blue.500",fontWeight:"bold",children:t})},i=function(e){var t=e.limit,a=e.offset,i=e.count,o=e.filtered,s=t*a,l=s+t;return Object(r.jsxs)(n.a,{children:["Displaying"," ",Object(r.jsxs)(c,{children:[i?s+1:i," - ",l>i?i:l]})," ","of ",Object(r.jsx)(c,{children:i})," ",o?"search results":"constructs","."]})}},298:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n=25},299:function(e,t,a){"use strict";a.d(t,"a",(function(){return q}));var n,r=a(4),c=a(216),i=a(200),o=a(0);!function(e){e.Wide="wide"}(n||(n={}));var s=a(303),l=a(148),u=a(229),d=a(5),b=a(199),j=a(117),f=a(116),O=a(83),h=a(252),v=a(56),m=Object(v.a)("packageCard",["author","description","languages","published","title","version","comment","wideContainer"]),p=a(1),g=function(e){var t=e["data-testid"],a=e.label,n=e.value;return Object(p.jsxs)(b.a,{"data-testid":t,fontSize:"xs",children:[Object(p.jsx)("strong",{children:a})," ",n]})},x=function(){var e=Object(j.a)(),t=Object(d.a)(e,1)[0],a=z(),n=a.author,r=a.metadata.date,c=a.version,i="string"===typeof n?n:n.name;return Object(p.jsxs)(p.Fragment,{children:[Object(p.jsx)(g,{"data-testid":m.version,label:"Version",value:c}),Object(p.jsx)(g,{"data-testid":m.published,label:"Published",value:Object(p.jsx)(h.a,{date:new Date(r),fontSize:"xs",format:"MMM dd, yyyy"})}),Object(p.jsx)(g,{"data-testid":m.author,label:"Author",value:Object(p.jsx)(O.a,{to:Object(f.c)({query:'"'.concat(i,'"'),language:t}),children:i})})]})},y=a(208),C=a(224),k=a(301),S=a(214),w=a(29),P=a(84),D=function(){var e=Object(j.a)(),t=Object(d.a)(e,1)[0],a=z(),n=a.comment,r=a.description,c=a.metadata.constructFramework,i=a.name,o=a.version,l=null===c||void 0===c?void 0:c.name,u=null===c||void 0===c?void 0:c.majorVersion;return Object(p.jsxs)(p.Fragment,{children:[Object(p.jsx)(s.b,{as:w.b,to:Object(f.a)({name:i,version:o,language:t}),children:Object(p.jsxs)(y.a,{align:"center",children:[l&&Object(p.jsx)(C.a,{hasArrow:!0,label:P.b[l].name+(u?" v".concat(u):""),placement:"top",children:Object(p.jsx)(k.a,{alt:"".concat(P.b[l].name," icon"),h:5,mr:2,src:P.b[l].imgsrc,w:5,zIndex:1})}),Object(p.jsx)(S.a,{as:"h3",color:"blue.800","data-testid":m.title,fontSize:"md",fontWeight:"bold",children:i})]})}),Object(p.jsx)(b.a,{"data-testid":m.description,fontSize:"md",lineHeight:"tall",noOfLines:4,children:r||"No description available."}),n&&Object(p.jsxs)(b.a,{"data-testid":m.comment,fontSize:"md",lineHeight:"tall",noOfLines:4,children:[Object(p.jsxs)(b.a,{as:"span",color:"blue.500",fontSize:"md",fontWeight:"bold",lineHeight:"tall",children:["Editor's note:"," "]}),n]})]})},N=a(6),R=a(47),I=a(251),F={sm:5,md:6,lg:8},A=function(e){var t=e.isRounded,a=void 0!==t&&t,n=e.languages,r=e.name,c=e.size,i=void 0===c?"md":c,o=e.version,s=Object.keys(null!==n&&void 0!==n?n:{});return Object(p.jsx)(p.Fragment,{children:Object.entries(R.c).sort((function(e,t){var a=Object(d.a)(e,1)[0],n=Object(d.a)(t,1)[0];return R.a.indexOf(a)-R.a.indexOf(n)})).map((function(e){var t=Object(d.a)(e,2),n=t[0],c=t[1],l=n,u=l===R.d.TypeScript||s.includes(l),b=l===R.d.TypeScript||R.e.has(l);if(!u)return null;var j=c.name,O=c.icon,h=Object(p.jsx)(O,{"aria-label":"Supports ".concat(j),borderRadius:a?"50%":0,h:F[i],opacity:b?1:.2,w:F[i]});return Object(p.jsx)(I.a,{language:l,children:b?Object(p.jsx)(w.b,{"aria-label":"View package docs for ".concat(l),to:Object(f.a)({name:r,version:o,language:l}),children:h}):h},l)}))})},T=function(){var e=z();return Object(p.jsx)(A,Object(N.a)(Object(N.a)({},e),{},{size:"sm"}))},L=function(){return Object(p.jsx)(s.a,{_hover:{"> article":{bg:"gray.50"}},children:Object(p.jsxs)(l.a,{as:"article",bg:"white",border:"base",borderRadius:"sm",color:"gray.600","data-testid":m.wideContainer,gap:5,p:5,templateColumns:{base:"1fr",md:"2fr 1fr"},templateRows:{base:"auto",md:"1fr"},w:"100%",children:[Object(p.jsxs)(u.a,{spacing:2,children:[Object(p.jsx)(D,{}),Object(p.jsx)(u.a,{direction:"row",spacing:1,children:Object(p.jsx)(T,{})})]}),Object(p.jsx)(u.a,{alignSelf:"center","data-testid":m.languages,fontSize:"xs",spacing:1,children:Object(p.jsx)(x,{})})]})})},M=Object(o.createContext)(null),z=function(){return Object(o.useContext)(M)},_=function(e){var t=e.pkg,a=e.variant,r=void 0===a?n.Wide:a;return Object(p.jsx)(M.Provider,{value:t,children:r===n.Wide&&Object(p.jsx)(L,{})})},E=Object(r.a)({},n.Wide,(function(e){var t=e.items;return Object(p.jsx)(u.a,{spacing:4,children:t.map((function(e){return Object(p.jsx)(_,{pkg:e,variant:n.Wide},"".concat(e.name,"-").concat(e.version))}))})})),q=Object(o.memo)((function(e){var t=e.cardView,a=void 0===t?n.Wide:t,r=e.items;if(e.loading||!r)return Object(p.jsx)(c.a,{children:Object(p.jsx)(i.a,{size:"xl"})});var o=E[a];return Object(p.jsx)(o,{items:r})}));q.displayName="PackageList"},300:function(e,t,a){"use strict";a.d(t,"a",(function(){return y}));var n=a(358),r=a(359),c=a(148),i=a(208),o=a(6),s=a(206),l=a(29),u=a(1),d=function(e){var t=e.icon,a=e.offset,n=e.getPageUrl,r={"aria-label":"Page ".concat(a," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue",icon:Object(u.jsx)(t,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==a?Object(u.jsx)(s.a,Object(o.a)(Object(o.a)({},r),{},{as:l.b,to:n({offset:a})})):Object(u.jsx)(s.a,Object(o.a)(Object(o.a)({},r),{},{disabled:!0}))},b=a(5),j=a(230),f=a(199),O=a(0),h=a(20),v=function(e){var t=e.pageLimit,a=e.offset,n=e.getPageUrl,r=Object(O.useState)((a+1).toString()),c=Object(b.a)(r,2),o=c[0],s=c[1],l=Object(h.g)().push;Object(O.useEffect)((function(){s((a+1).toString())}),[a]);return Object(u.jsxs)(i.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),l(n({offset:parseInt(o)-1}))},children:[Object(u.jsx)(j.a,{colorScheme:"blue",h:10,max:t+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(u.jsxs)(f.a,{ml:2,w:"max-content",children:["of ",t+1]})]})},m=a(357),p=a(154),g={children:"Next Page",colorScheme:"blue",rightIcon:Object(u.jsx)(m.a,{color:"white"})},x=function(e){var t=e.nextPageUrl;return t?Object(u.jsx)(p.a,Object(o.a)(Object(o.a)({},g),{},{as:l.b,to:t})):Object(u.jsx)(p.a,Object(o.a)(Object(o.a)({},g),{},{disabled:!0}))},y=function(e){var t=e.offset,a=e.pageLimit,o=e.getPageUrl,s=t<a?t+1:void 0,l=t>0?t-1:void 0;return Object(u.jsxs)(c.a,{alignItems:"center",pt:4,templateColumns:"repeat(3, 1fr)",templateRows:"1fr",children:[Object(u.jsx)(c.b,{colStart:2,justifySelf:"center",children:Object(u.jsx)(x,{nextPageUrl:s?o({offset:s}):void 0})}),Object(u.jsx)(c.b,{colStart:3,justifySelf:"end",children:Object(u.jsxs)(i.a,{align:"center",justify:"center",py:4,children:[Object(u.jsx)(v,{getPageUrl:o,offset:t,pageLimit:a}),Object(u.jsx)(d,{getPageUrl:o,icon:n.a,offset:l}),Object(u.jsx)(d,{getPageUrl:o,icon:r.a,offset:s})]})})]})}},303:function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return u}));var n=a(19),r=a(22),c=a(16),i=a(0);function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},o.apply(this,arguments)}function s(e,t){if(null==e)return{};var a,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)a=c[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}var l=Object(n.a)((function(e,t){var a=e.isExternal,n=e.target,l=e.rel,u=e.className,d=s(e,["isExternal","target","rel","className"]);return i.createElement(r.a.a,o({},d,{ref:t,className:Object(c.d)("chakra-linkbox__overlay",u),rel:a?"noopener noreferrer":l,target:a?"_blank":n,__css:{position:"static","&::before":{content:"''",cursor:"inherit",display:"block",position:"absolute",top:0,left:0,zIndex:0,width:"100%",height:"100%"}}}))})),u=Object(n.a)((function(e,t){var a=e.className,n=s(e,["className"]);return i.createElement(r.a.div,o({ref:t,position:"relative"},n,{className:Object(c.d)("chakra-linkbox",a),__css:{"a[href]:not(.chakra-linkbox__overlay), abbr[title]":{position:"relative",zIndex:1}}}))}))},353:function(e,t){},357:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(76),r=Object(n.a)({d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z",displayName:"ArrowForwardIcon"})},358:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(76),r=Object(n.a)({d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z",displayName:"ChevronLeftIcon"})},599:function(e,t,a){"use strict";a.r(t),a.d(t,"SearchRedesign",(function(){return Fe})),a.d(t,"default",(function(){return Fe}));var n=a(148),r=a(233),c=a(229),i=a(214),o=a(120),s=a(17),l=a(5),u=a(0),d=a(222),b=a(199),j=a(76),f=Object(j.a)({d:"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm0,19a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,12,19Zm1.6-6.08a1,1,0,0,0-.6.917,1,1,0,1,1-2,0,3,3,0,0,1,1.8-2.75A2,2,0,1,0,10,9.255a1,1,0,1,1-2,0,4,4,0,1,1,5.6,3.666Z",displayName:"QuestionIcon"}),O=a(208),h=a(600),v=a(206),m=a(1),p=function(e){var t=e.name,a=e.hint;return Object(m.jsxs)(O.a,{align:"center",children:[Object(m.jsx)(i.a,{as:"h4",size:"sm",w:"max-content",children:t}),a?Object(m.jsxs)(h.a,{placement:"top-end",children:[Object(m.jsx)(h.g,{children:Object(m.jsx)(v.a,{"aria-label":"Hint: ".concat(t),icon:Object(m.jsx)(f,{h:4,w:4}),ml:2,px:0,py:0,size:"sm",variant:"ghost"})}),Object(m.jsxs)(h.e,{fontSize:"sm",children:[Object(m.jsx)(h.b,{}),Object(m.jsx)(h.d,{}),Object(m.jsxs)(h.f,{children:["Hint: ",t]}),Object(m.jsx)(h.c,{children:Object(m.jsx)(b.a,{children:a})})]})]}):null]})},g=function(e){var t=e.hint,a=e.name,n=e.options,r=e.values,i=e.onValueChange,o=function(e){return function(){i(e)}};return Object(m.jsxs)(c.a,{spacing:2,children:[Object(m.jsx)(p,{hint:t,name:a}),n.map((function(e){var t=e.display,a=e.value;return Object(m.jsx)(d.a,{isChecked:r.includes(a),onChange:o(a),children:Object(m.jsx)(b.a,{color:"gray.600",fontSize:"sm",isTruncated:!0,children:t})},a)}))]})},x=function(){var e=Object(u.useState)([]),t=Object(l.a)(e,2),a=t[0],n=t[1];return Object(m.jsx)(g,{name:"Author",onValueChange:function(e){n(a.includes(e)?a.filter((function(t){return t!==e})):[].concat(Object(s.a)(a),[e]))},options:[{display:"Community",value:"community"},{display:"AWS",value:"aws"}],values:a})},y=a(4),C=a(6),k=a(84),S=a(90),w=a(19),P=a(22),D=a(16),N=a(8),R=a(114),I=a(146),F=a(112),A=a(155);function T(){return T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},T.apply(this,arguments)}function L(e){void 0===e&&(e={});var t=e,a=t.onChange,n=t.value,r=t.defaultValue,c=t.name,i=t.isDisabled,o=t.isFocusable,s=t.isNative,d=function(e,t){if(null==e)return{};var a,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)a=c[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,["onChange","value","defaultValue","name","isDisabled","isFocusable","isNative"]),b=u.useState(r||""),j=Object(l.a)(b,2),f=j[0],O=j[1],h=Object(I.a)(n,f),v=Object(l.a)(h,2),m=v[0],p=v[1],g=u.useRef(null),x=u.useCallback((function(){var e=g.current;if(e){var t="input:not(:disabled):checked",a=e.querySelector(t);if(a)a.focus();else{t="input:not(:disabled)";var n=e.querySelector(t);null==n||n.focus()}}}),[]),C=Object(F.b)(void 0,"radio"),k=c||C,S=u.useCallback((function(e){var t=Object(N.f)(e)?e.target.value:e;m||O(t),null==a||a(String(t))}),[a,m]),w=u.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),T({},e,{ref:Object(A.a)(t,g),role:"radiogroup"})}),[]),P=u.useCallback((function(e,t){var a;void 0===e&&(e={}),void 0===t&&(t=null);var n=s?"checked":"isChecked";return T({},e,(a={ref:t,name:k},Object(y.a)(a,n,null!=p?e.value===p:void 0),Object(y.a)(a,"onChange",S),Object(y.a)(a,"data-radiogroup",!0),a))}),[s,k,S,p]);return{getRootProps:w,getRadioProps:P,name:k,ref:g,focus:x,setValue:O,value:p,onChange:S,isDisabled:i,isFocusable:o,htmlProps:d}}function M(){return M=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},M.apply(this,arguments)}var z=Object(R.a)({name:"RadioGroupContext",strict:!1}),_=Object(l.a)(z,2),E=_[0],q=_[1],U=Object(w.a)((function(e,t){var a=e.colorScheme,n=e.size,r=e.variant,c=e.children,i=e.className,o=e.isDisabled,s=e.isFocusable,l=L(function(e,t){if(null==e)return{};var a,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)a=c[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,["colorScheme","size","variant","children","className","isDisabled","isFocusable"])),d=l.value,b=l.onChange,j=l.getRootProps,f=l.name,O=l.htmlProps,h=u.useMemo((function(){return{name:f,size:n,onChange:b,colorScheme:a,value:d,variant:r,isDisabled:o,isFocusable:s}}),[f,n,b,a,d,r,o,s]),v=j(O,t),m=Object(D.d)("chakra-radio-group",i);return u.createElement(E,{value:h},u.createElement(P.a.div,M({},v,{className:m}),c))}));N.a&&(U.displayName="RadioGroup");var W=a(63),V=a(36),H=a(12),K=a(28),Q=a(26),Z=a(150),B=a(177),G=a(178);function J(){return J=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},J.apply(this,arguments)}function Y(e){void 0===e&&(e={});var t=e,a=t.defaultIsChecked,n=t.defaultChecked,r=void 0===n?a:n,c=t.isChecked,i=t.isFocusable,o=t.isDisabled,s=t.isReadOnly,d=t.isRequired,b=t.onChange,j=t.isInvalid,f=t.name,O=t.value,h=t.id,v=t["data-radiogroup"],m=function(e,t){if(null==e)return{};var a,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)a=c[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,["defaultIsChecked","defaultChecked","isChecked","isFocusable","isDisabled","isReadOnly","isRequired","onChange","isInvalid","name","value","id","data-radiogroup"]),p=Object(F.b)(void 0,"radio"),g=Object(Z.a)(),x=q(),y=!!g&&!(!!x||!!v)?g.id:p;y=null!=h?h:y;var C=null!=o?o:null==g?void 0:g.isDisabled,k=null!=s?s:null==g?void 0:g.isReadOnly,S=null!=d?d:null==g?void 0:g.isRequired,w=null!=j?j:null==g?void 0:g.isInvalid,P=Object(B.a)(),N=Object(l.a)(P,2),R=N[0],T=N[1],L=Object(B.a)(),M=Object(l.a)(L,2),z=M[0],_=M[1],E=Object(B.a)(),U=Object(l.a)(E,2),W=U[0],V=U[1],H=Object(u.useRef)(null),Q=Object(u.useState)(Boolean(r)),Y=Object(l.a)(Q,2),$=Y[0],ee=Y[1],te=Object(I.a)(c,$),ae=Object(l.a)(te,2),ne=ae[0],re=ae[1];Object(K.f)({condition:!!a,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 ce=Object(u.useCallback)((function(e){k||C?e.preventDefault():(ne||ee(e.target.checked),null==b||b(e))}),[ne,C,k,b]),ie=Object(u.useCallback)((function(e){" "===e.key&&V.on()}),[V]),oe=Object(u.useCallback)((function(e){" "===e.key&&V.off()}),[V]),se=Object(u.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),J({},e,{ref:t,"data-active":Object(D.e)(W),"data-hover":Object(D.e)(z),"data-disabled":Object(D.e)(C),"data-invalid":Object(D.e)(w),"data-checked":Object(D.e)(re),"data-focus":Object(D.e)(R),"data-readonly":Object(D.e)(k),"aria-hidden":!0,onMouseDown:Object(K.b)(e.onMouseDown,V.on),onMouseUp:Object(K.b)(e.onMouseUp,V.off),onMouseEnter:Object(K.b)(e.onMouseEnter,_.on),onMouseLeave:Object(K.b)(e.onMouseLeave,_.off)})}),[W,z,C,w,re,R,k,V.on,V.off,_.on,_.off]),le=null!=g?g:{},ue=le.onFocus,de=le.onBlur,be=Object(u.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var a=C&&!i;return J({},e,{id:y,ref:Object(A.a)(t,H),type:"radio",name:f,value:O,onChange:Object(K.b)(e.onChange,ce),onBlur:Object(K.b)(de,e.onBlur,T.off),onFocus:Object(K.b)(ue,e.onFocus,T.on),onKeyDown:Object(K.b)(e.onKeyDown,ie),onKeyUp:Object(K.b)(e.onKeyUp,oe),checked:re,disabled:a,readOnly:k,required:S,"aria-invalid":Object(D.b)(w),"aria-disabled":Object(D.b)(a),"aria-readonly":Object(D.b)(k),"aria-required":Object(D.b)(S),style:G.b})}),[C,i,y,f,O,ce,de,T,ue,ie,oe,re,k,S,w]);return{state:{isInvalid:w,isFocused:R,isChecked:re,isActive:W,isHovered:z,isDisabled:C,isReadOnly:k,isRequired:S},getCheckboxProps:se,getInputProps:be,getLabelProps:function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),J({},e,{ref:t,onMouseDown:Object(K.b)(e.onMouseDown,X),onTouchStart:Object(K.b)(e.onTouchStart,X),"data-disabled":Object(D.e)(C),"data-checked":Object(D.e)(re),"data-invalid":Object(D.e)(w)})},htmlProps:m}}function X(e){e.preventDefault(),e.stopPropagation()}function $(){return $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},$.apply(this,arguments)}var ee=Object(w.a)((function(e,t){var a,n=q(),r=e.onChange,c=e.value,i=Object(W.a)("Radio",$({},n,e)),o=Object(V.b)(e),s=o.spacing,d=void 0===s?"0.5rem":s,b=o.children,j=o.isFullWidth,f=o.isDisabled,O=void 0===f?null==n?void 0:n.isDisabled:f,h=o.isFocusable,v=void 0===h?null==n?void 0:n.isFocusable:h,m=function(e,t){if(null==e)return{};var a,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)a=c[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(o,["spacing","children","isFullWidth","isDisabled","isFocusable"]),p=e.isChecked;null!=(null==n?void 0:n.value)&&null!=c&&(p=n.value===c);var g=r;null!=n&&n.onChange&&null!=c&&(g=Object(K.a)(n.onChange,r));var x=Y($({},m,{isChecked:p,isFocusable:v,isDisabled:O,onChange:g,name:null!=(a=null==e?void 0:e.name)?a:null==n?void 0:n.name})),y=x.getInputProps,C=x.getCheckboxProps,k=x.getLabelProps,S=x.htmlProps,w=Object(Q.i)(S,H.layoutPropNames),D=Object(l.a)(w,2),N=D[0],R=C(D[1]),I=y({},t),F=k(),A=$({width:j?"full":void 0,display:"inline-flex",alignItems:"center",verticalAlign:"top"},i.container),T=$({display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},i.control),L=$({userSelect:"none",marginStart:d},i.label);return u.createElement(P.a.label,$({className:"chakra-radio"},N,{__css:A}),u.createElement("input",$({className:"chakra-radio__input"},I)),u.createElement(P.a.span,$({className:"chakra-radio__control"},R,{__css:T})),b&&u.createElement(P.a.span,$({className:"chakra-radio__label"},F,{__css:L}),b))}));N.a&&(ee.displayName="Radio");var te,ae=function(e){var t=e.value,a=e.onValueChange,n=e.options,r=e.name,i=e.hint;return Object(m.jsxs)(c.a,{spacing:2,children:[Object(m.jsx)(p,{hint:i,name:r}),Object(m.jsx)(U,{onChange:a,value:t,children:Object(m.jsx)(c.a,{children:n.map((function(e){var t=e.display,a=e.value;return Object(m.jsx)(ee,{value:a,children:Object(m.jsx)(b.a,{color:"gray.600",fontSize:"sm",isTruncated:!0,children:t})},a)}))})})]})},ne=a(10),re=a(124),ce=a(121),ie=a(298),oe=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t},se=Object(u.createContext)(void 0),le=function(){var e=Object(u.useContext)(se);if(!e)throw new Error("This hook must be called in a child of <SearchStateProvider />");return e},ue=function(e){var t,a,n,r,c,i=e.children,o=Object(ce.a)(),s=oe(null!==(t=o.get(ne.b.OFFSET))&&void 0!==t?t:"0"),l=decodeURIComponent(null!==(a=o.get(ne.b.SEARCH_QUERY))&&void 0!==a?a:""),d=(c=o.get(ne.b.LANGUAGES))?decodeURIComponent(c).split(","):[],b=null!==(n=o.get(ne.b.SORT))&&void 0!==n?n:void 0,j=null!==(r=o.get(ne.b.CDK_TYPE))&&void 0!==r?r:void 0,f=o.get(ne.b.CDK_MAJOR),O=f?oe(f):void 0,h=Object(re.a)({defaultCdkMajor:O,defaultCdkType:j,defaultLanguages:d,defaultQuery:l,defaultSort:b});return Object(u.useEffect)((function(){l!==h.query&&h.setQuery(l)}),[l]),Object(m.jsx)(se.Provider,{value:{limit:ie.a,offset:s,query:l,searchAPI:h},children:i})},de=function(){var e=le().searchAPI,t=e.cdkType,a=e.setCdkType,n=e.cdkMajor,r=e.setCdkMajor,c=Object(S.b)(),i=Object(u.useMemo)((function(){var e=c.constructFrameworks,t=Object.entries(e).reduce((function(e,t){var a=Object(l.a)(t,2),n=a[0],r=a[1];return r.pkgCount<1?e:Object(C.a)(Object(C.a)({},e),{},Object(y.a)({},n,Object(C.a)({display:k.a[n],value:n},r)))}),{});return Object.keys(t).length?t:void 0}),[c]),o=Object(u.useMemo)((function(){var e;if(i&&t){var a=null===(e=i[t])||void 0===e?void 0:e.majorVersions;if(a)return Object(s.a)(a).sort((function(e,t){return e-t})).map((function(e){return{value:e.toString(),display:"".concat(k.a[t]," v").concat(e)}}))}}),[i,t]);if(!i)return null;return Object(m.jsxs)(m.Fragment,{children:[Object(m.jsx)(ae,{hint:"Constructs support distinct output types: AWS CDK libraries output Cloudformation Templates, CDK8s libraries output Kubernetes manifests, and CDKtf libraries output Terraform Configuration. The Construct Hub attempts to detect the output type of each library, but results are not guaranteed to be completely accurate.",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(s.a)(Object.values(i))),value:null!==t&&void 0!==t?t:""}),!!(o&&o.length>1)&&Object(m.jsx)(g,{hint:"Allows you to filter by a major version of your selected CDK Type: (".concat(k.a[t],")"),name:"CDK Major Version",onValueChange:function(e){var t=parseInt(e,10);r(t===n?void 0:t)},options:o,values:n?[n.toString()]:[]})]})},be=a(47),je=Object.entries(be.b).filter((function(e){var t=Object(l.a)(e,1)[0];return be.e.has(t)})).map((function(e){var t=Object(l.a)(e,2),a=t[0];return{display:t[1],value:a}})),fe=function(){var e=le().searchAPI,t=e.languages,a=e.setLanguages;return Object(m.jsx)(g,{hint:"Select one or more programming languages to filter by. Results will match at least one of the selected languages. If no languages are selected, results will not be filtered by langauges.",name:"Programming Language",onValueChange:function(e){var n=e;a(t.includes(n)?t.filter((function(e){return e!==n})):[].concat(Object(s.a)(t),[n]))},options:je,values:t})},Oe=function(){return Object(m.jsx)(o.a,{borderRadius:"none",boxShadow:"none",maxH:"full",maxW:"368px",minW:"100%",overflow:"hidden auto",p:4,children:Object(m.jsxs)(c.a,{color:"blue.800",spacing:6,children:[Object(m.jsx)(i.a,{as:"h3",size:"sm",children:"Filters"}),Object(m.jsx)(de,{}),Object(m.jsx)(fe,{}),Object(m.jsx)(x,{})]})})},he=a(195),ve=a(210),me=a(20),pe=a(123),ge=a(299),xe=a(122),ye=a(116),Ce=a(300),ke=a(297),Se=a(213),we=a(221),Pe=a(154),De=a(66),Ne=(te={},Object(y.a)(te,De.a.NameAsc,"A-Z"),Object(y.a)(te,De.a.NameDesc,"Z-A"),Object(y.a)(te,De.a.PublishDateAsc,"Oldest first"),Object(y.a)(te,De.a.PublishDateDesc,"Newest first"),te),Re=function(){var e=le().searchAPI,t=e.sort,a=e.setSort,n=t?Ne[t]:"Relevance";return Object(m.jsxs)(O.a,{align:"center",children:[Object(m.jsx)(b.a,{children:"Sorted by"}),Object(m.jsxs)(we.a,{children:[Object(m.jsx)(we.b,{as:Pe.a,color:"blue.500",ml:2,pl:2,pr:2,py:1,rightIcon:Object(m.jsx)(Se.a,{}),variant:"link",children:n}),Object(m.jsxs)(we.f,{zIndex:"sticky",children:[Object(m.jsx)(we.e,{onClick:function(){return a(void 0)},children:"Relevance"},"Relevance"),Object.entries(Ne).map((function(e){var t=Object(l.a)(e,2),n=t[0],r=t[1];return Object(m.jsx)(we.e,{onClick:function(){return a(n)},children:r},n)}))]})]})]})},Ie=function(){var e=Object(u.useRef)(!0),t=Object(me.g)().push,a=le(),n=a.query,c=a.searchAPI,i=a.offset,o=a.limit,s=c.languages,l=c.sort,d=c.cdkType,b=c.cdkMajor,j=c.onSearch,f=Object(xe.a)({offset:i,limit:o,query:n,languages:s,cdkMajor:b,cdkType:d,sort:l}),h=f.page,v=f.pageLimit,p=f.results,g=function(e){var t,a;return Object(ye.c)({cdkMajor:b,cdkType:d,query:null!==(t=e.q)&&void 0!==t?t:n,languages:s,sort:l,offset:null!==(a=e.offset)&&void 0!==a?a:i})};return Object(u.useEffect)((function(){p.length&&(i<0||i>v)&&t(g(i<0?{offset:0}:{offset:v}))}),[p,i,v]),Object(u.useEffect)((function(){e.current?e.current=!1:j()}),[l,s,d,b]),Object(m.jsx)(r.a,{meta:{title:n||"Search",description:n?"".concat(p.length," results for ").concat(n," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(m.jsxs)(O.a,{direction:"column",maxW:"100%",children:[Object(m.jsxs)(he.a,{px:4,children:[Object(m.jsx)(pe.a,Object(C.a)({},c)),Object(m.jsx)(ve.a,{mt:4})]}),Object(m.jsxs)(he.a,{p:4,children:[Object(m.jsxs)(O.a,{justify:"space-between",pb:4,children:[Object(m.jsx)(ke.a,{count:p.length,filtered:!!n,limit:o,offset:i}),Object(m.jsx)(Re,{})]}),Object(m.jsx)(ge.a,{items:h}),Object(m.jsx)(Ce.a,{getPageUrl:g,limit:o,offset:i,pageLimit:v})]})]})})},Fe=function(){return Object(m.jsx)(ue,{children:Object(m.jsx)(r.a,{meta:{title:"Search - Construct Hub",description:"This is a placeholder"},pageName:"search",children:Object(m.jsxs)(n.a,{gap:4,h:"full",maxW:"100%",p:6,templateColumns:"auto 1fr",templateRows:"1fr",children:[Object(m.jsx)(Oe,{}),Object(m.jsx)(Ie,{})]})})})}}}]);
2
+ //# sourceMappingURL=9.a5bd98cc.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/index.ts","constants/pageInfo.ts","components/Page/Page.tsx","components/LanguageSupportTooltip/LanguageSupportTooltip.tsx","components/Time/Time.tsx","views/SearchResults/components/ShowingDetails.tsx","views/SearchResults/constants.ts","components/PackageCard/constants.ts","components/PackageCard/testIds.ts","components/PackageCard/Details.tsx","components/PackageCard/Heading.tsx","components/PackageLanguages/PackageLanguages.tsx","components/PackageCard/Languages.tsx","components/PackageCard/WideCard.tsx","components/PackageCard/PackageCard.tsx","components/PackageList/PackageList.tsx","components/PackageList/WideCardList.tsx","views/SearchResults/components/ArrowButton.tsx","views/SearchResults/components/GoToPage.tsx","views/SearchResults/components/NextPage.tsx","views/SearchResults/components/PageControls.tsx","../../../src/link-box.tsx","../../../src/ArrowForward.tsx","../../../src/ChevronLeft.tsx","../../../src/Question.tsx","views/SearchRedesign/FilterHeading.tsx","views/SearchRedesign/CheckboxFilter.tsx","views/SearchRedesign/AuthorFilter.tsx","../../../src/use-radio-group.ts","../../../src/radio-group.tsx","../../../src/use-radio.ts","../../../src/radio.tsx","views/SearchRedesign/RadioFilter.tsx","views/SearchRedesign/util.ts","views/SearchRedesign/SearchState.tsx","views/SearchRedesign/CDKFilter.tsx","views/SearchRedesign/LanguageFilter.tsx","views/SearchRedesign/FilterPanel.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","LanguageSupportTooltip","language","TEMP_SUPPORTED_LANGUAGES","has","hasArrow","label","LANGUAGE_NAME_MAP","placement","Time","forwardRef","ref","date","formatString","format","boxProps","as","dateTime","toISOString","displayName","Em","color","fontWeight","ShowingDetails","limit","offset","count","filtered","first","last","LIMIT","PackageCardType","testIds","createTestIds","Detail","dataTestid","value","fontSize","Details","useLanguage","currentLanguage","usePackageCard","author","metadata","version","authorName","published","Date","NavLink","to","getSearchPath","query","Heading","comment","constructFramework","cdkType","cdkVersion","majorVersion","Link","getPackagePath","align","CDKTYPE_RENDER_MAP","alt","h","mr","src","imgsrc","w","zIndex","lineHeight","noOfLines","sizes","sm","md","lg","PackageLanguages","isRounded","languages","packageName","size","targets","Object","keys","entries","LANGUAGE_RENDER_MAP","sort","left","right","LANGUAGES","indexOf","map","lang","info","isSupportedByLibrary","Language","TypeScript","includes","isSupportedByConstructHub","Icon","icon","borderRadius","opacity","Languages","pkg","WideCard","_hover","bg","border","wideContainer","gap","p","templateColumns","base","templateRows","spacing","direction","alignSelf","PackageCardContext","createContext","useContext","PackageCard","variant","Wide","Provider","listViews","items","PackageList","memo","cardView","loading","View","ArrowButton","getPageUrl","props","borderColor","colorScheme","mx","undefined","disabled","GoToPage","pageLimit","useState","toString","inputValue","setInputValue","push","useHistory","onSubmit","e","preventDefault","parseInt","max","min","onChange","target","textAlign","type","ml","btnProps","rightIcon","ArrowForward","NextPage","nextPageUrl","PageControls","nextOffset","prevOffset","alignItems","pt","colStart","justifySelf","justify","py","ChevronLeftIcon","ChevronRightIcon","LinkOverlay","className","cx","rel","isExternal","__css","position","cursor","display","top","width","height","LinkBox","ArrowForwardIcon","createIcon","d","QuestionIcon","FilterHeading","hint","px","CheckboxFilter","options","checkedValues","values","onValueChange","getOnChange","isChecked","isTruncated","AuthorFilter","authors","setAuthors","filter","a","useRadioGroup","isNative","React","defaultValue","useControllableProp","valueProp","focus","rootNode","firstEnabledAndCheckedInput","firstEnabledInput","fallbackName","useId","nameProp","eventOrValue","nextValue","isInputEvent","setValue","onChangeProp","String","getRootProps","forwardedRef","mergeRefs","role","getRadioProps","checkedKey","isDisabled","isFocusable","htmlProps","strict","RadioGroup","group","groupProps","_className","useRadio","defaultChecked","isReadOnly","isRequired","isInvalid","id","dataRadioGroup","uuid","formControl","useFormControlContext","useRadioGroupContext","isWithinFormControl","idProp","isDisabledProp","isReadOnlyProp","isRequiredProp","isInvalidProp","useBoolean","useRef","Boolean","warn","condition","message","handleChange","useCallback","setChecked","isControlled","onKeyDown","setActive","onKeyUp","getCheckboxProps","dataAttr","onMouseDown","callAllHandlers","onMouseUp","onMouseEnter","setHovering","onMouseLeave","onBlur","getInputProps","trulyDisabled","setFocused","onFocus","checked","readOnly","required","ariaAttr","style","visuallyHiddenStyle","state","isFocused","isActive","isHovered","getLabelProps","onTouchStart","stop","Radio","styles","useMultiStyleConfig","ownProps","omitThemingProps","callAll","split","checkboxProps","inputProps","labelProps","rootStyles","isFullWidth","verticalAlign","checkboxStyles","justifyContent","flexShrink","labelStyles","userSelect","marginStart","RadioFilter","checkedValue","toNum","val","result","SearchStateContext","useSearchState","Error","SearchStateProvider","langQuery","queryParams","useQueryParams","get","QUERY_PARAMS","OFFSET","decodeURIComponent","SEARCH_QUERY","SORT","CDK_TYPE","cdkMajorParam","CDK_MAJOR","cdkMajor","searchAPI","useCatalogSearch","defaultCdkMajor","defaultCdkType","defaultLanguages","defaultQuery","defaultSort","setQuery","CDKFilter","setCdkType","setCdkMajor","useSearchContext","cdkOptions","useMemo","cdkTypes","constructFrameworks","reduce","opts","pkgCount","CDKTYPE_NAME_MAP","length","majorsOptions","majorVersions","b","cdk","major","majorNum","languageOptions","key","LanguageFilter","setLanguages","l","FilterPanel","Card","boxShadow","maxH","maxW","minW","overflow","SORT_RENDER_MAP","CatalogSearchSort","NameAsc","NameDesc","PublishDateAsc","PublishDateDesc","SortedBy","setSort","selected","Button","pl","pr","ChevronDown","onClick","SearchResults","isFirstRender","onSearch","useCatalogResults","results","getUrl","params","q","current","CatalogSearch","mt","pb","SearchRedesign"],"mappings":"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","file":"static/js/9.a5bd98cc.chunk.js","sourcesContent":["export * from \"@chakra-ui/color-mode\"\nexport * from \"@chakra-ui/styled-system\"\nexport { keyframes } from \"@emotion/react\"\nexport type { Interpolation } from \"@emotion/react\"\nexport * from \"./hooks\"\nexport * from \"./system.types\"\nexport * from \"./providers\"\nexport { omitThemingProps } from \"./system.utils\"\nexport * from \"./system\"\nexport * from \"./forward-ref\"\nexport * from \"./use-style-config\"\nexport { shouldForwardProp } from \"./should-forward-prop\"\n","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 { 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\n if (isSupported) {\n return <>{children}</>;\n }\n\n return (\n <Tooltip\n hasArrow\n label={`Documentation support for ${LANGUAGE_NAME_MAP[language]} is coming soon!`}\n placement=\"top-start\"\n >\n <span>{children}</span>\n </Tooltip>\n );\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 { Text } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\n\nexport interface ShowingDetailsProps {\n limit: number;\n offset: number;\n count: number;\n filtered: boolean;\n}\n\nconst Em: FunctionComponent = ({ children }) => (\n <Text as=\"em\" color=\"blue.500\" fontWeight=\"bold\">\n {children}\n </Text>\n);\n\nexport const ShowingDetails: FunctionComponent<ShowingDetailsProps> = ({\n limit,\n offset,\n count,\n filtered,\n}) => {\n const first = limit * offset;\n const last = first + limit;\n return (\n <Text>\n Displaying{\" \"}\n <Em>\n {count ? first + 1 : count} - {last > count ? count : last}\n </Em>{\" \"}\n of <Em>{count}</Em> {filtered ? \"search results\" : \"constructs\"}.\n </Text>\n );\n};\n","import type { QueryParamKey } from \"../../constants/url\";\n\nexport const LIMITS = [25, 50, 75, 100];\nexport const LIMIT = LIMITS[0];\n\nexport type SearchQueryParam = Extract<QueryParamKey, \"offset\" | \"q\">;\n","export enum PackageCardType {\n Wide = \"wide\",\n}\n","import { createTestIds } from \"../../util/createTestIds\";\n\nconst testIds = createTestIds(\"packageCard\", [\n \"author\",\n \"description\",\n \"languages\",\n \"published\",\n \"title\",\n \"version\",\n \"comment\",\n \"wideContainer\",\n] as const);\n\nexport default testIds;\n","import { Text } from \"@chakra-ui/react\";\nimport type { FunctionComponent, ReactChild } from \"react\";\nimport { useLanguage } from \"../../hooks/useLanguage\";\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 label: string;\n value: ReactChild;\n}\n\nconst Detail: FunctionComponent<DetailProps> = ({\n \"data-testid\": dataTestid,\n label,\n value,\n}) => (\n <Text data-testid={dataTestid} fontSize=\"xs\">\n <strong>{label}</strong> {value}\n </Text>\n);\n\nexport const Details: FunctionComponent = () => {\n const [currentLanguage] = useLanguage();\n\n const {\n author,\n metadata: { date },\n version,\n } = usePackageCard();\n\n const authorName = typeof author === \"string\" ? author : author.name;\n\n return (\n <>\n <Detail data-testid={testIds.version} label=\"Version\" value={version} />\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 to={getSearchPath({\n query: `\"${authorName}\"`,\n language: currentLanguage,\n })}\n >\n {authorName}\n </NavLink>\n }\n />\n </>\n );\n};\n","import {\n Flex,\n Image,\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 { CDKTYPE_RENDER_MAP } from \"../../constants/constructs\";\nimport { useLanguage } from \"../../hooks/useLanguage\";\nimport { getPackagePath } from \"../../util/url\";\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={\n CDKTYPE_RENDER_MAP[cdkType].name +\n (cdkVersion ? ` v${cdkVersion}` : \"\")\n }\n placement=\"top\"\n >\n <Image\n alt={`${CDKTYPE_RENDER_MAP[cdkType].name} icon`}\n h={5}\n mr={2}\n src={CDKTYPE_RENDER_MAP[cdkType].imgsrc}\n w={5}\n zIndex={1}\n />\n </Tooltip>\n )}\n <ChakraHeading\n as=\"h3\"\n color=\"blue.800\"\n data-testid={testIds.title}\n fontSize=\"md\"\n fontWeight=\"bold\"\n >\n {name}\n </ChakraHeading>\n </Flex>\n </LinkOverlay>\n <Text\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 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 { Grid, Stack, LinkBox } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { Details } from \"./Details\";\nimport { Heading } from \"./Heading\";\nimport { Languages } from \"./Languages\";\nimport testIds from \"./testIds\";\n\nexport const WideCard: FunctionComponent = () => {\n return (\n <LinkBox\n _hover={{\n \"> article\": {\n bg: \"gray.50\",\n },\n }}\n >\n <Grid\n as=\"article\"\n bg=\"white\"\n border=\"base\"\n borderRadius=\"sm\"\n color=\"gray.600\"\n data-testid={testIds.wideContainer}\n gap={5}\n p={5}\n templateColumns={{ base: \"1fr\", md: \"2fr 1fr\" }}\n templateRows={{ base: \"auto\", md: \"1fr\" }}\n w=\"100%\"\n >\n {/* Name + Desc */}\n <Stack spacing={2}>\n <Heading />\n\n <Stack direction=\"row\" spacing={1}>\n <Languages />\n </Stack>\n </Stack>\n\n <Stack\n alignSelf=\"center\"\n data-testid={testIds.languages}\n fontSize=\"xs\"\n spacing={1}\n >\n <Details />\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 { 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 icon: FunctionComponent<IconProps>;\n offset?: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const ArrowButton: FunctionComponent<ArrowButtonProps> = ({\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 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 pageLimit: number;\n offset: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const GoToPage: FunctionComponent<GoToPageProps> = ({\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 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 { ArrowForwardIcon } from \"@chakra-ui/icons\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface NextPageProps {\n nextPageUrl?: string;\n}\n\nconst btnProps = {\n children: \"Next Page\",\n colorScheme: \"blue\",\n rightIcon: <ArrowForwardIcon color=\"white\" />,\n};\n\nexport const NextPage: FunctionComponent<NextPageProps> = ({ nextPageUrl }) => {\n if (!nextPageUrl) {\n return <Button {...btnProps} disabled />;\n }\n\n return <Button {...btnProps} as={Link} to={nextPageUrl} />;\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"@chakra-ui/icons\";\nimport { Flex, Grid, GridItem } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { ArrowButton } from \"./ArrowButton\";\nimport { GoToPage } from \"./GoToPage\";\nimport { NextPage } from \"./NextPage\";\n\nexport interface PageControlsProps {\n limit: number;\n offset: number;\n pageLimit: number;\n getPageUrl: (params: { offset?: number }) => string;\n}\n\nexport const PageControls: FunctionComponent<PageControlsProps> = ({\n offset,\n pageLimit,\n getPageUrl,\n}) => {\n const nextOffset = offset < pageLimit ? offset + 1 : undefined;\n const prevOffset = offset > 0 ? offset - 1 : undefined;\n\n return (\n <Grid\n alignItems=\"center\"\n pt={4}\n templateColumns=\"repeat(3, 1fr)\"\n templateRows=\"1fr\"\n >\n <GridItem colStart={2} justifySelf=\"center\">\n <NextPage\n nextPageUrl={\n nextOffset ? getPageUrl({ offset: nextOffset }) : undefined\n }\n />\n </GridItem>\n <GridItem colStart={3} justifySelf=\"end\">\n <Flex align=\"center\" justify=\"center\" py={4}>\n <GoToPage\n getPageUrl={getPageUrl}\n offset={offset}\n pageLimit={pageLimit}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronLeftIcon}\n offset={prevOffset}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronRightIcon}\n offset={nextOffset}\n />\n </Flex>\n </GridItem>\n </Grid>\n );\n};\n","import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface LinkOverlayProps extends HTMLChakraProps<\"a\"> {\n /**\n * If `true`, the link will open in new tab\n */\n isExternal?: boolean\n}\n\nexport const LinkOverlay = forwardRef<LinkOverlayProps, \"a\">((props, ref) => {\n const { isExternal, target, rel, className, ...rest } = props\n return (\n <chakra.a\n {...rest}\n ref={ref}\n className={cx(\"chakra-linkbox__overlay\", className)}\n rel={isExternal ? \"noopener noreferrer\" : rel}\n target={isExternal ? \"_blank\" : target}\n __css={{\n position: \"static\",\n \"&::before\": {\n content: \"''\",\n cursor: \"inherit\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n left: 0,\n zIndex: 0,\n width: \"100%\",\n height: \"100%\",\n },\n }}\n />\n )\n})\n\nexport interface LinkBoxProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * `LinkBox` is used to wrap content areas within a link while ensuring semantic html\n *\n * @see Docs https://chakra-ui.com/docs/navigation/link-overlay\n * @see Resources https://www.sarasoueidan.com/blog/nested-links\n */\nexport const LinkBox = forwardRef<LinkBoxProps, \"div\">((props, ref) => {\n const { className, ...rest } = props\n\n return (\n <chakra.div\n ref={ref}\n position=\"relative\"\n {...rest}\n className={cx(\"chakra-linkbox\", className)}\n __css={{\n /* Elevate the links and abbreviations up */\n \"a[href]:not(.chakra-linkbox__overlay), abbr[title]\": {\n position: \"relative\",\n zIndex: 1,\n },\n }}\n />\n )\n})\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ArrowForwardIcon = createIcon({\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\n displayName: \"ArrowForwardIcon\",\n})\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ChevronLeftIcon = createIcon({\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\",\n displayName: \"ChevronLeftIcon\",\n})\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const QuestionIcon = createIcon({\n d:\n \"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm0,19a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,12,19Zm1.6-6.08a1,1,0,0,0-.6.917,1,1,0,1,1-2,0,3,3,0,0,1,1.8-2.75A2,2,0,1,0,10,9.255a1,1,0,1,1-2,0,4,4,0,1,1,5.6,3.666Z\",\n displayName: \"QuestionIcon\",\n})\n","import { QuestionIcon } from \"@chakra-ui/icons\";\nimport {\n Flex,\n Heading,\n Text,\n Popover,\n IconButton,\n PopoverHeader,\n PopoverTrigger,\n PopoverBody,\n PopoverCloseButton,\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\">\n <Heading as=\"h4\" size=\"sm\" w=\"max-content\">\n {name}\n </Heading>\n {hint ? (\n <Popover placement=\"top-end\">\n <PopoverTrigger>\n <IconButton\n aria-label={`Hint: ${name}`}\n icon={<QuestionIcon h={4} w={4} />}\n ml={2}\n px={0}\n py={0}\n size=\"sm\"\n variant=\"ghost\"\n />\n </PopoverTrigger>\n <PopoverContent fontSize=\"sm\">\n <PopoverArrow />\n <PopoverCloseButton />\n <PopoverHeader>Hint: {name}</PopoverHeader>\n <PopoverBody>\n <Text>{hint}</Text>\n </PopoverBody>\n </PopoverContent>\n </Popover>\n ) : null}\n </Flex>\n );\n};\n","import { Checkbox, Stack, Text } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { FilterHeading, FilterHeadingProps } from \"./FilterHeading\";\n\nexport interface CheckboxFilterProps extends FilterHeadingProps {\n options: {\n display: string;\n value: string;\n }[];\n values: string[];\n onValueChange: (value: string) => void;\n}\n\nexport const CheckboxFilter: FunctionComponent<CheckboxFilterProps> = ({\n hint,\n name,\n options,\n values: checkedValues,\n onValueChange,\n}) => {\n const getOnChange = (value: string) => () => {\n onValueChange(value);\n };\n\n return (\n <Stack spacing={2}>\n <FilterHeading hint={hint} name={name} />\n {options.map(({ display, value }) => (\n <Checkbox\n isChecked={checkedValues.includes(value)}\n key={value}\n onChange={getOnChange(value)}\n >\n <Text color=\"gray.600\" fontSize=\"sm\" isTruncated>\n {display}\n </Text>\n </Checkbox>\n ))}\n </Stack>\n );\n};\n","import { FunctionComponent, useState } from \"react\";\nimport { CheckboxFilter } from \"./CheckboxFilter\";\n\n// TODO: This filter is currently non-functional\nexport const AuthorFilter: FunctionComponent = () => {\n const [authors, setAuthors] = useState<string[]>([]);\n\n const onAuthorsChange = (author: string) => {\n setAuthors(\n authors.includes(author)\n ? authors.filter((a) => a !== author)\n : [...authors, author]\n );\n };\n\n return (\n <CheckboxFilter\n name=\"Author\"\n onValueChange={onAuthorsChange}\n options={[\n {\n display: \"Community\",\n value: \"community\",\n },\n {\n display: \"AWS\",\n value: \"aws\",\n },\n ]}\n values={authors}\n />\n );\n};\n","import { useControllableProp, useId } from \"@chakra-ui/hooks\"\nimport { StringOrNumber, isInputEvent } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\n\ntype EventOrValue = React.ChangeEvent<HTMLInputElement> | StringOrNumber\n\nexport interface UseRadioGroupProps {\n /**\n * The value of the radio to be `checked`\n * (in controlled mode)\n */\n value?: StringOrNumber\n /**\n * The value of the radio to be `checked`\n * initially (in uncontrolled mode)\n */\n defaultValue?: StringOrNumber\n /**\n * Function called once a radio is checked\n * @param nextValue the value of the checked radio\n */\n onChange?(nextValue: string): void\n /**\n * If `true`, all wrapped radio inputs will be disabled\n */\n isDisabled?: boolean\n\n /**\n * If `true` and `isDisabled` is true, all wrapped radio inputs will remain\n * focusable but not interactive.\n */\n isFocusable?: boolean\n /**\n * The `name` attribute forwarded to each `radio` element\n */\n name?: string\n /**\n * If `true`, input elements will receive\n * `checked` attribute instead of `isChecked`.\n *\n * This assumes, you're using native radio inputs\n */\n isNative?: boolean\n}\n\ntype RadioPropGetter = PropGetter<\n HTMLInputElement,\n { onChange?: (e: EventOrValue) => void; value?: StringOrNumber } & Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"size\" | \"value\"\n >\n>\n\n/**\n * React hook to manage a group of radio inputs\n */\nexport function useRadioGroup(props: UseRadioGroupProps = {}) {\n const {\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n name: nameProp,\n isDisabled,\n isFocusable,\n isNative,\n ...htmlProps\n } = props\n\n const [valueState, setValue] = React.useState<StringOrNumber>(\n defaultValue || \"\",\n )\n const [isControlled, value] = useControllableProp(valueProp, valueState)\n\n const ref = React.useRef<any>(null)\n\n const focus = React.useCallback(() => {\n const rootNode = ref.current\n if (!rootNode) return\n\n let query = `input:not(:disabled):checked`\n\n const firstEnabledAndCheckedInput = rootNode.querySelector(\n query,\n ) as HTMLElement\n\n if (firstEnabledAndCheckedInput) {\n firstEnabledAndCheckedInput.focus()\n return\n }\n\n query = `input:not(:disabled)`\n\n const firstEnabledInput = rootNode.querySelector(query) as HTMLElement\n firstEnabledInput?.focus()\n }, [])\n\n /**\n * All radio options must use the same name\n */\n const fallbackName = useId(undefined, `radio`)\n const name = nameProp || fallbackName\n\n const onChange = React.useCallback(\n (eventOrValue: EventOrValue) => {\n const nextValue = isInputEvent(eventOrValue)\n ? eventOrValue.target.value\n : eventOrValue\n\n if (!isControlled) {\n setValue(nextValue)\n }\n\n onChangeProp?.(String(nextValue))\n },\n [onChangeProp, isControlled],\n )\n\n const getRootProps: PropGetter = React.useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: mergeRefs(forwardedRef, ref),\n role: \"radiogroup\",\n }),\n [],\n )\n\n const getRadioProps: RadioPropGetter = React.useCallback(\n (props = {}, ref = null) => {\n const checkedKey = isNative ? \"checked\" : \"isChecked\"\n return {\n ...props,\n ref,\n name,\n [checkedKey]: value != null ? props.value === value : undefined,\n onChange,\n \"data-radiogroup\": true,\n }\n },\n [isNative, name, onChange, value],\n )\n\n return {\n getRootProps,\n getRadioProps,\n name,\n ref,\n focus,\n setValue,\n value,\n onChange,\n isDisabled,\n isFocusable,\n htmlProps,\n }\n}\n\nexport type UseRadioGroupReturn = ReturnType<typeof useRadioGroup>\n","import {\n chakra,\n forwardRef,\n ThemingProps,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx, __DEV__ } from \"@chakra-ui/utils\"\nimport { createContext } from \"@chakra-ui/react-utils\"\nimport * as React from \"react\"\nimport {\n useRadioGroup,\n UseRadioGroupProps,\n UseRadioGroupReturn,\n} from \"./use-radio-group\"\n\nexport interface RadioGroupContext\n extends Pick<\n UseRadioGroupReturn,\n \"onChange\" | \"value\" | \"name\" | \"isDisabled\" | \"isFocusable\"\n >,\n Omit<ThemingProps<\"Radio\">, \"orientation\"> {}\n\nconst [\n RadioGroupProvider,\n useRadioGroupContext,\n] = createContext<RadioGroupContext>({\n name: \"RadioGroupContext\",\n strict: false,\n})\n\nexport { useRadioGroupContext }\n\ntype Omitted =\n | \"onChange\"\n | \"value\"\n | \"defaultValue\"\n | \"defaultChecked\"\n | \"children\"\nexport interface RadioGroupProps\n extends UseRadioGroupProps,\n Omit<HTMLChakraProps<\"div\">, Omitted>,\n Omit<ThemingProps<\"Radio\">, \"orientation\"> {\n children: React.ReactNode\n}\n\n/**\n * Used for multiple radios which are bound in one group,\n * and it indicates which option is selected.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nexport const RadioGroup = forwardRef<RadioGroupProps, \"div\">((props, ref) => {\n const {\n colorScheme,\n size,\n variant,\n children,\n className,\n isDisabled,\n isFocusable,\n ...rest\n } = props\n\n const { value, onChange, getRootProps, name, htmlProps } = useRadioGroup(rest)\n\n const group = React.useMemo(\n () => ({\n name,\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n isFocusable,\n }),\n [\n name,\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n isFocusable,\n ],\n )\n\n const groupProps = getRootProps(htmlProps, ref)\n const _className = cx(\"chakra-radio-group\", className)\n\n return (\n <RadioGroupProvider value={group}>\n <chakra.div {...groupProps} className={_className}>\n {children}\n </chakra.div>\n </RadioGroupProvider>\n )\n})\n\nif (__DEV__) {\n RadioGroup.displayName = \"RadioGroup\"\n}\n","import { useFormControlContext } from \"@chakra-ui/form-control\"\nimport { useBoolean, useControllableProp, useId } from \"@chakra-ui/hooks\"\nimport { mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\nimport { ariaAttr, callAllHandlers, dataAttr, warn } from \"@chakra-ui/utils\"\nimport { visuallyHiddenStyle } from \"@chakra-ui/visually-hidden\"\nimport {\n ChangeEvent,\n SyntheticEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\n\n/**\n * @todo use the `useClickable` hook here\n * to manage the isFocusable & isDisabled props\n */\nexport interface UseRadioProps {\n /**\n * id assigned to input\n */\n id?: string\n /**\n * The name of the input field in a radio\n * (Useful for form submission).\n */\n name?: string\n /**\n * The value to be used in the radio button.\n * This is the value that will be returned on form submission.\n */\n value?: string | number\n /**\n * If `true`, the radio will be checked.\n * You'll need to pass `onChange` to update its value (since it is now controlled)\n */\n isChecked?: boolean\n /**\n * If `true`, the radio will be initially checked.\n *\n * @deprecated Please use `defaultChecked` which mirrors the default prop\n * name for radio elements.\n */\n defaultIsChecked?: boolean\n /**\n * If `true`, the radio will be initially checked.\n */\n defaultChecked?: boolean\n /**\n * If `true`, the radio will be disabled\n */\n isDisabled?: boolean\n /**\n * If `true` and `isDisabled` is true, the radio will remain\n * focusable but not interactive.\n */\n isFocusable?: boolean\n /**\n * If `true`, the radio will be read-only\n */\n isReadOnly?: boolean\n /**\n * If `true`, the radio button will be invalid. This also sets `aria-invalid` to `true`.\n */\n isInvalid?: boolean\n /**\n * If `true`, the radio button will be required. This also sets `aria-required` to `true`.\n */\n isRequired?: boolean\n /**\n * Function called when checked state of the `input` changes\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void\n /**\n * @internal\n */\n \"data-radiogroup\"?: any\n}\n\nexport function useRadio(props: UseRadioProps = {}) {\n const {\n defaultIsChecked,\n defaultChecked = defaultIsChecked,\n isChecked: isCheckedProp,\n isFocusable,\n isDisabled: isDisabledProp,\n isReadOnly: isReadOnlyProp,\n isRequired: isRequiredProp,\n onChange,\n isInvalid: isInvalidProp,\n name,\n value,\n id: idProp,\n \"data-radiogroup\": dataRadioGroup,\n ...htmlProps\n } = props\n\n const uuid = useId(undefined, \"radio\")\n\n const formControl = useFormControlContext()\n const group = useRadioGroupContext()\n\n const isWithinRadioGroup = !!group || !!dataRadioGroup\n const isWithinFormControl = !!formControl\n\n let id = isWithinFormControl && !isWithinRadioGroup ? formControl.id : uuid\n id = idProp ?? id\n\n const isDisabled = isDisabledProp ?? formControl?.isDisabled\n const isReadOnly = isReadOnlyProp ?? formControl?.isReadOnly\n const isRequired = isRequiredProp ?? formControl?.isRequired\n const isInvalid = isInvalidProp ?? formControl?.isInvalid\n\n const [isFocused, setFocused] = useBoolean()\n const [isHovered, setHovering] = useBoolean()\n const [isActive, setActive] = useBoolean()\n\n const ref = useRef<HTMLInputElement>(null)\n\n const [isCheckedState, setChecked] = useState(Boolean(defaultChecked))\n\n const [isControlled, isChecked] = useControllableProp(\n isCheckedProp,\n isCheckedState,\n )\n\n warn({\n condition: !!defaultIsChecked,\n message:\n 'The \"defaultIsChecked\" prop has been deprecated and will be removed in a future version. ' +\n 'Please use the \"defaultChecked\" prop instead, which mirrors default React checkbox behavior.',\n })\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (isReadOnly || isDisabled) {\n event.preventDefault()\n return\n }\n\n if (!isControlled) {\n setChecked(event.target.checked)\n }\n\n onChange?.(event)\n },\n [isControlled, isDisabled, isReadOnly, onChange],\n )\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive.on()\n }\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive.off()\n }\n },\n [setActive],\n )\n\n const getCheckboxProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-checked\": dataAttr(isChecked),\n \"data-focus\": dataAttr(isFocused),\n \"data-readonly\": dataAttr(isReadOnly),\n \"aria-hidden\": true,\n onMouseDown: callAllHandlers(props.onMouseDown, setActive.on),\n onMouseUp: callAllHandlers(props.onMouseUp, setActive.off),\n onMouseEnter: callAllHandlers(props.onMouseEnter, setHovering.on),\n onMouseLeave: callAllHandlers(props.onMouseLeave, setHovering.off),\n }),\n [\n isActive,\n isHovered,\n isDisabled,\n isInvalid,\n isChecked,\n isFocused,\n isReadOnly,\n setActive.on,\n setActive.off,\n setHovering.on,\n setHovering.off,\n ],\n )\n\n const { onFocus, onBlur } = formControl ?? {}\n\n const getInputProps: PropGetter<HTMLInputElement> = useCallback(\n (props = {}, forwardedRef = null) => {\n const trulyDisabled = isDisabled && !isFocusable\n\n return {\n ...props,\n id,\n ref: mergeRefs(forwardedRef, ref),\n type: \"radio\",\n name,\n value,\n onChange: callAllHandlers(props.onChange, handleChange),\n onBlur: callAllHandlers(onBlur, props.onBlur, setFocused.off),\n onFocus: callAllHandlers(onFocus, props.onFocus, setFocused.on),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: callAllHandlers(props.onKeyUp, onKeyUp),\n checked: isChecked,\n disabled: trulyDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(isReadOnly),\n \"aria-required\": ariaAttr(isRequired),\n style: visuallyHiddenStyle,\n }\n },\n [\n isDisabled,\n isFocusable,\n id,\n name,\n value,\n handleChange,\n onBlur,\n setFocused,\n onFocus,\n onKeyDown,\n onKeyUp,\n isChecked,\n isReadOnly,\n isRequired,\n isInvalid,\n ],\n )\n\n const getLabelProps: PropGetter = (props = {}, ref = null) => ({\n ...props,\n ref,\n onMouseDown: callAllHandlers(props.onMouseDown, stop),\n onTouchStart: callAllHandlers(props.onTouchStart, stop),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n })\n\n return {\n state: {\n isInvalid,\n isFocused,\n isChecked,\n isActive,\n isHovered,\n isDisabled,\n isReadOnly,\n isRequired,\n },\n getCheckboxProps,\n getInputProps,\n getLabelProps,\n htmlProps,\n }\n}\n\n/**\n * Prevent `onBlur` being fired when the checkbox label is touched\n */\nfunction stop(event: SyntheticEvent) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nexport type UseRadioReturn = ReturnType<typeof useRadio>\n","import {\n chakra,\n forwardRef,\n layoutPropNames,\n omitThemingProps,\n SystemProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { callAll, split, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\nimport { useRadio, UseRadioProps } from \"./use-radio\"\n\ntype Omitted = \"onChange\" | \"defaultChecked\" | \"checked\"\ninterface BaseControlProps extends Omit<HTMLChakraProps<\"div\">, Omitted> {}\n\nexport interface RadioProps\n extends UseRadioProps,\n ThemingProps<\"Radio\">,\n BaseControlProps {\n /**\n * The spacing between the checkbox and its label text\n * @default 0.5rem\n * @type SystemProps[\"marginLeft\"]\n */\n spacing?: SystemProps[\"marginLeft\"]\n /**\n * If `true`, the radio will occupy the full width of its parent container\n *\n * @deprecated\n * This component defaults to 100% width,\n * please use the props `maxWidth` or `width` to configure\n */\n isFullWidth?: boolean\n}\n\n/**\n * Radio component is used in forms when a user needs to select a single value from\n * several options.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nexport const Radio = forwardRef<RadioProps, \"input\">((props, ref) => {\n const group = useRadioGroupContext()\n const { onChange: onChangeProp, value: valueProp } = props\n\n const styles = useMultiStyleConfig(\"Radio\", { ...group, ...props })\n\n const ownProps = omitThemingProps(props)\n\n const {\n spacing = \"0.5rem\",\n children,\n isFullWidth,\n isDisabled = group?.isDisabled,\n isFocusable = group?.isFocusable,\n ...rest\n } = ownProps\n\n let isChecked = props.isChecked\n if (group?.value != null && valueProp != null) {\n isChecked = group.value === valueProp\n }\n\n let onChange = onChangeProp\n if (group?.onChange && valueProp != null) {\n onChange = callAll(group.onChange, onChangeProp)\n }\n\n const name = props?.name ?? group?.name\n\n const {\n getInputProps,\n getCheckboxProps,\n getLabelProps,\n htmlProps,\n } = useRadio({\n ...rest,\n isChecked,\n isFocusable,\n isDisabled,\n onChange,\n name,\n })\n\n const [layoutProps, otherProps] = split(htmlProps, layoutPropNames as any)\n\n const checkboxProps = getCheckboxProps(otherProps)\n const inputProps = getInputProps({}, ref)\n const labelProps = getLabelProps()\n\n const rootStyles = {\n width: isFullWidth ? \"full\" : undefined,\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n ...styles.container,\n }\n\n const checkboxStyles = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n ...styles.control,\n }\n\n const labelStyles: SystemStyleObject = {\n userSelect: \"none\",\n marginStart: spacing,\n ...styles.label,\n }\n\n return (\n <chakra.label className=\"chakra-radio\" {...layoutProps} __css={rootStyles}>\n <input className=\"chakra-radio__input\" {...inputProps} />\n <chakra.span\n className=\"chakra-radio__control\"\n {...checkboxProps}\n __css={checkboxStyles}\n />\n {children && (\n <chakra.span\n className=\"chakra-radio__label\"\n {...labelProps}\n __css={labelStyles}\n >\n {children}\n </chakra.span>\n )}\n </chakra.label>\n )\n})\n\nif (__DEV__) {\n Radio.displayName = \"Radio\"\n}\n","import { Radio, RadioGroup, Stack, Text } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { FilterHeading, FilterHeadingProps } from \"./FilterHeading\";\n\nexport interface RadioFilterProps extends FilterHeadingProps {\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 value: checkedValue,\n onValueChange,\n options,\n name,\n hint,\n}) => {\n return (\n <Stack spacing={2}>\n <FilterHeading hint={hint} name={name} />\n <RadioGroup onChange={onValueChange} value={checkedValue}>\n <Stack>\n {options.map(({ display, value }) => (\n <Radio key={value} value={value}>\n <Text color=\"gray.600\" fontSize=\"sm\" isTruncated>\n {display}\n </Text>\n </Radio>\n ))}\n </Stack>\n </RadioGroup>\n </Stack>\n );\n};\n","import { Language } from \"../../constants/languages\";\n\nexport 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 parseLangs = (langQuery: string | null) => {\n if (!langQuery) return [];\n\n const langs = decodeURIComponent(langQuery).split(\",\");\n return langs as Language[];\n};\n","/**\n * @fileoverview Exposes page-level state and setters to all components in the new SearchResults View.\n */\nimport { createContext, FunctionComponent, useContext, useEffect } from \"react\";\nimport { CatalogSearchSort } from \"../../api/catalog-search/constants\";\nimport { CDKType } from \"../../constants/constructs\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport {\n UseCatalogSearchReturn,\n useCatalogSearch,\n} from \"../../hooks/useCatalogSearch\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\nimport { LIMIT } from \"../SearchResults/constants\";\nimport { parseLangs, 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 = parseLangs(queryParams.get(QUERY_PARAMS.LANGUAGES));\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 defaultLanguages: languages,\n defaultQuery: query,\n defaultSort: sort,\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 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 { CheckboxFilter } from \"./CheckboxFilter\";\nimport { RadioFilter } from \"./RadioFilter\";\nimport { useSearchState } from \"./SearchState\";\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 const majorNum = parseInt(major, 10);\n\n setCdkMajor(majorNum === cdkMajor ? undefined : majorNum);\n };\n\n return (\n <>\n <RadioFilter\n hint=\"Constructs support distinct output types: AWS CDK libraries output Cloudformation Templates, CDK8s libraries output Kubernetes manifests, and CDKtf libraries output Terraform Configuration. The Construct Hub attempts to detect the output type of each library, but results are not guaranteed to be completely accurate.\"\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 <CheckboxFilter\n hint={`Allows you to filter by a major version of your selected CDK Type: (${\n CDKTYPE_NAME_MAP[cdkType!]\n })`}\n name=\"CDK Major Version\"\n onValueChange={onCdkMajorChange}\n options={majorsOptions}\n values={cdkMajor ? [cdkMajor.toString()] : []}\n />\n )}\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\";\n\nconst languageOptions = Object.entries(LANGUAGE_NAME_MAP)\n .filter(([key]) => TEMP_SUPPORTED_LANGUAGES.has(key as Language))\n .map(([key, value]) => ({\n display: value,\n value: key,\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 hint=\"Select one or more programming languages to filter by. Results will match at least one of the selected languages. If no languages are selected, results will not be filtered by langauges.\"\n name=\"Programming Language\"\n onValueChange={onLanguagesChange}\n options={languageOptions}\n values={languages}\n />\n );\n};\n","import { Heading, Stack } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\nimport { Card } from \"../../components/Card\";\nimport { AuthorFilter } from \"./AuthorFilter\";\nimport { CDKFilter } from \"./CDKFilter\";\nimport { LanguageFilter } from \"./LanguageFilter\";\n\nexport interface FilterPanelProps {}\n\nexport const FilterPanel: FunctionComponent<FilterPanelProps> = () => {\n return (\n <Card\n borderRadius=\"none\"\n boxShadow=\"none\"\n maxH=\"full\"\n maxW=\"368px\"\n minW=\"100%\"\n overflow=\"hidden auto\"\n p={4}\n >\n <Stack color=\"blue.800\" spacing={6}>\n <Heading as=\"h3\" size=\"sm\">\n Filters\n </Heading>\n <CDKFilter />\n <LanguageFilter />\n <AuthorFilter />\n </Stack>\n </Card>\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 { useSearchState } from \"./SearchState\";\n\nconst SORT_RENDER_MAP = {\n [CatalogSearchSort.NameAsc]: \"A-Z\",\n [CatalogSearchSort.NameDesc]: \"Z-A\",\n [CatalogSearchSort.PublishDateAsc]: \"Oldest first\",\n [CatalogSearchSort.PublishDateDesc]: \"Newest first\",\n};\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 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 zIndex=\"sticky\">\n <MenuItem key=\"Relevance\" onClick={() => setSort(undefined)}>\n Relevance\n </MenuItem>\n {Object.entries(SORT_RENDER_MAP).map(([value, display]) => (\n <MenuItem\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, Divider, Flex } from \"@chakra-ui/react\";\nimport { FunctionComponent, useEffect, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { CatalogSearch } from \"../../components/CatalogSearch\";\nimport { PackageList } from \"../../components/PackageList\";\nimport { Page } from \"../../components/Page\";\nimport { useCatalogResults } from \"../../hooks/useCatalogResults\";\nimport { getSearchPath } from \"../../util/url\";\nimport { PageControls } from \"../SearchResults/components/PageControls\";\nimport { ShowingDetails } from \"../SearchResults/components/ShowingDetails\";\nimport { SearchQueryParam } from \"../SearchResults/constants\";\nimport { useSearchState } from \"./SearchState\";\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 { languages, sort, cdkType, cdkMajor, onSearch } = searchAPI;\n\n const { page, pageLimit, results } = useCatalogResults({\n offset,\n limit,\n query,\n languages,\n cdkMajor,\n cdkType,\n sort,\n });\n\n const getUrl = (\n params: Partial<{ [key in SearchQueryParam]: number | string }>\n ) => {\n return getSearchPath({\n cdkMajor,\n cdkType,\n query: (params.q ?? query) as string,\n languages,\n sort,\n offset: params.offset ?? offset,\n });\n };\n\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 filters & 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 onSearch();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sort, languages, cdkType, cdkMajor]);\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 <Flex direction=\"column\" maxW=\"100%\">\n <Box px={4}>\n <CatalogSearch {...searchAPI} />\n <Divider mt={4} />\n </Box>\n <Box p={4}>\n <Flex justify=\"space-between\" pb={4}>\n <ShowingDetails\n count={results.length}\n filtered={!!query}\n limit={limit}\n offset={offset}\n />\n <SortedBy />\n </Flex>\n <PackageList items={page} />\n <PageControls\n getPageUrl={getUrl}\n limit={limit}\n offset={offset}\n pageLimit={pageLimit}\n />\n </Box>\n </Flex>\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\";\n\nexport const SearchRedesign: FunctionComponent = () => {\n return (\n <SearchStateProvider>\n <Page\n meta={{\n title: \"Search - Construct Hub\",\n description: \"This is a placeholder\",\n }}\n pageName=\"search\"\n >\n <Grid\n gap={4}\n h=\"full\"\n maxW=\"100%\"\n p={6}\n templateColumns=\"auto 1fr\"\n templateRows=\"1fr\"\n >\n {/* Filter Panel */}\n <FilterPanel />\n {/* Results, Info, and Controls */}\n\n <SearchResults />\n </Grid>\n </Page>\n </SearchStateProvider>\n );\n};\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[4],{10:function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return c}));var a={PACKAGES_PREFIX:"/data",CATALOG_SUFFIX:"/catalog.json",ASSEMBLY_SUFFIX:"/assembly.json",METADATA_SUFFIX:"/metadata.json",CONFIG:"/config.json"},r={CDK_TYPE:"cdk",LANGUAGE:"lang",LANGUAGES:"langs",OFFSET:"offset",SEARCH_QUERY:"q",SORT:"sort",SUBMODULE:"submodule",CDK_MAJOR:"cdkver"},c={FAQ:"/faq",HOME:"/",PACKAGES:"/packages",SEARCH:"/search",SITE_TERMS:"/terms"}},103:function(e,t,n){"use strict";n.d(t,"b",(function(){return v})),n.d(t,"a",(function(){return g}));var a=n(6),r=n(5),c=n(199),i=n(0),o="prefersWarnOnExternalLinkClick",s=n(200),u=n(43),l=n(196),d=n(220),b=n(151),j=n(222),f=n(55),h=n(1),O=function(e){var t=e.href,n=e.isOpen,a=e.onClick,c=e.onClose,O=e.setShouldWarn,p=Object(i.useState)(!0),v=Object(r.a)(p,2),g=v[0],m=v[1];return Object(h.jsx)(u.a,{closeOnOverlayClick:!1,isOpen:n,onClose:c,children:Object(h.jsx)(u.h,{children:Object(h.jsxs)(u.d,{color:"blue.800",children:[Object(h.jsx)(u.g,{children:"Confirm"}),Object(h.jsxs)(u.b,{children:[Object(h.jsx)(l.a,{fontSize:"lg",mb:2,children:"This link is taking you to an external site"}),Object(h.jsx)(l.a,{bg:"gray.100",borderRadius:"sm",color:"blue.500",fontSize:"sm",mb:4,p:1,children:t}),Object(h.jsx)(d.a,{onChange:function(e){var t=!e.target.checked;m(t)},children:"Do not show this warning again."})]}),Object(h.jsxs)(u.f,{children:[Object(h.jsx)(b.a,{onClick:function(){m(!0),c()},variant:"ghost",children:"Cancel"}),Object(h.jsx)(j.a,{hasArrow:!0,label:t,placement:"top",children:Object(h.jsx)(f.a,{hasIcon:!1,hasWarning:!1,href:t,noFollow:!0,onClick:function(e){if(!g){O(g);try{localStorage.setItem(o,JSON.stringify(g))}catch(t){}}null===a||void 0===a||a(e),c()},children:Object(h.jsx)(b.a,{colorScheme:"blue",ml:4,rightIcon:Object(h.jsx)(s.a,{}),tabIndex:0,variant:"ghost",children:"Proceed"})})})]})]})})})},p=Object(i.createContext)((function(e){return e.onClick})),v=function(){return Object(i.useContext)(p)},g=function(e){var t=e.children,n=Object(i.useState)(null),s=Object(r.a)(n,2),u=s[0],l=s[1],d=Object(c.a)({onClose:function(){l(null)}}),b=d.isOpen,j=d.onOpen,f=d.onClose,v=Object(i.useState)((function(){try{var e,t=null!==(e=localStorage.getItem(o))&&void 0!==e?e:"true";return JSON.parse(t)}catch(n){return!0}})),g=Object(r.a)(v,2),m=g[0],x=g[1],k=Object(i.useCallback)((function(e){var t=e.href,n=e.onClick;if(!m)return n;return function(e){l({href:t,onClick:n}),e.preventDefault(),j()}}),[j,m]);return Object(h.jsxs)(p.Provider,{value:k,children:[t,Object(h.jsx)(O,Object(a.a)({isOpen:b,onClose:f,setShouldWarn:x},u))]})}},111:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(5),r=n(0),c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(r.useState)(e),c=Object(a.a)(n,2),i=c[0],o=c[1],s=t.delay,u=void 0===s?250:s,l=t.onChange;return Object(r.useEffect)((function(){var t=setTimeout((function(){o(e),null===l||void 0===l||l(e)}),u);return function(){clearTimeout(t)}}),[e,u,l]),i}},114:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return u})),n.d(t,"a",(function(){return l}));var a=n(4),r=n(5),c=n(10),i=new RegExp(/git@github\.com:([a-zA-Z-]+)+\/?([a-zA-Z-]+)*(\.git)?/),o=function(e){try{var t=e,n=e.match(i);if(n){var a=Object(r.a)(n,3),c=a[1],o=a[2];t="https://github.com/".concat(c,"/").concat(o)}return{hostname:new URL(t).hostname,url:t}}catch(s){return}},s=function(e,t){var n=e;if(t){var a=function(e,t){var n=new URLSearchParams(t);return Object.entries(e).filter((function(e){return null!=Object(r.a)(e,2)[1]})).forEach((function(e){var t=Object(r.a)(e,2),a=t[0],c=t[1];n.set(a,"".concat(c))})),n.toString()}(t);a&&(n+="?".concat(a))}return n},u=function(e){var t,n=e.cdkMajor,r=e.cdkType,i=e.query,o=e.offset,u=e.language,l=e.languages,d=e.sort;return s(c.c.SEARCH,(t={},Object(a.a)(t,c.b.SEARCH_QUERY,i),Object(a.a)(t,c.b.CDK_TYPE,r),Object(a.a)(t,c.b.CDK_MAJOR,n),Object(a.a)(t,c.b.LANGUAGE,u),Object(a.a)(t,c.b.LANGUAGES,(null===l||void 0===l?void 0:l.length)?l.join(","):null),Object(a.a)(t,c.b.SORT,d),Object(a.a)(t,c.b.OFFSET,null!==o&&void 0!==o?o:0),t))},l=function(e){var t,n=e.name,r=e.version,i=e.language,o=e.submodule;return s("".concat(c.c.PACKAGES,"/").concat(n,"/v/").concat(r),(t={},Object(a.a)(t,c.b.SUBMODULE,o),Object(a.a)(t,c.b.LANGUAGE,i),t))}},115:function(e,t,n){"use strict";n.d(t,"a",(function(){return j}));var a=n(5),r=n(0),c=n(18),i=n(47),o=n(10),s=n(119),u=i.d.TypeScript,l="preferred-language",d=function(e){return null!=e&&i.e.has(e)},b=function(e){if(d(e))return e;try{var t,n=null!==(t=localStorage.getItem(l))&&void 0!==t?t:"";if(d(n))return n}catch(a){}return u},j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.updateUrl,n=e.updateSaved,i=Object(c.h)(),u=i.pathname,j=i.hash,f=Object(c.g)(),h=f.replace,O=Object(s.a)(),p=O.get(o.b.LANGUAGE),v=Object(r.useState)((function(){return b(p)})),g=Object(a.a)(v,2),m=g[0],x=g[1];Object(r.useEffect)((function(){d(p)&&p!==m&&x(p)}),[p]),Object(r.useEffect)((function(){p!==m&&t&&(O.set(o.b.LANGUAGE,m),h({pathname:u,hash:j,search:O.toString()}))}),[m,t]);var k=Object(r.useCallback)((function(e){if(x(e),n)try{localStorage.setItem(l,e)}catch(t){}}),[n]);return Object(r.useMemo)((function(){return[m,k]}),[m,k])}},116:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return u}));var a=n(0),r=n(18),c=n(1),i=Object(a.createContext)({trackPageView:function(){}}),o=function(e){var t=e.children,n=Object(r.h)().pathname,o=Object(a.useRef)(null),s=Object(a.useCallback)((function(e){var t,a,r;o.current!==n&&(null===(t=window)||void 0===t||null===(a=t.AWSMA)||void 0===a||null===(r=a.ready)||void 0===r||r.call(a,(function(){document.dispatchEvent(new CustomEvent(window.AWSMA.TRIGGER_EVENT,{detail:e})),o.current=n})))}),[n]);return Object(c.jsx)(i.Provider,{value:{trackPageView:s},children:t})},s=n(6),u=function(e){var t=Object(a.useContext)(i).trackPageView,n=Object(r.h)().pathname,c=Object(a.useMemo)((function(){return{page:Object(s.a)({pageURL:window.location.href.replace("://localhost:3000","://constructs.local.dev")},e.page),event:{type:"pageview",name:e.event.name,description:e.event.description}}}),[n,e]);return Object(a.useCallback)((function(){return t(c)}),[t,c])}},118:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(6),r=n(21),c=n(191),i=n(1),o=Object(r.a)((function(e,t){return Object(i.jsx)(c.a,Object(a.a)({bg:"white",border:"base",borderRadius:"card",boxShadow:"base",p:2,ref:t},e))}));o.displayName="Card"},119:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(0),r=n(18),c=function(){var e=Object(r.h)().search;return Object(a.useMemo)((function(){return new URLSearchParams(e)}),[e])}},120:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(0),r=function(e,t){var n=t.limit,a=t.offset*n,r=a+n;return e.slice(a,r)},c=n(16),i=n(90),o=function(e){var t=e.cdkMajor,n=e.cdkType,o=e.limit,s=e.offset,u=void 0===s?0:s,l=e.query,d=void 0===l?"":l,b=e.language,j=void 0===b?null:b,f=e.languages,h=e.sort,O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.query,n=e.filters,r=e.sort,o=Object(i.b)();if(!o)throw new Error("This hook can only be called within a descendant of a <SearchProvider />");return Object(a.useMemo)((function(){return Object(c.a)(o.search({query:t,filters:n,sort:r}).values())}),[o,t,n,r])}({filters:Object(a.useMemo)((function(){return{cdkMajor:t,cdkType:n,language:null!==j&&void 0!==j?j:void 0,languages:f}}),[t,n,j,f]),query:d,sort:h}),p=function(e,t){var n=null!==t&&void 0!==t?t:{},c=n.limit,i=void 0===c?25:c,o=n.offset,s=void 0===o?0:o,u=e?Math.floor(e.length/i):0;return Object(a.useMemo)((function(){return{page:r(e,{limit:i,offset:s>u?u:s}),pageLimit:u}}),[e,i,s,u])}(O,{offset:u,limit:o}),v=p.page,g=p.pageLimit;return Object(a.useMemo)((function(){return{results:O,page:v,pageLimit:g}}),[v,g,O])}},121:function(e,t,n){"use strict";n.d(t,"a",(function(){return k})),n.d(t,"b",(function(){return m}));var a=n(6),r=n(22),c=n(146),i=n(87),o=n(5),s=n(21),u=n(223),l=n(151),d=n(47),b=n(211),j=n(219),f=n(196),h=n(1),O=n(56),p=Object(O.a)("catalogSearch",["form","input","languageDropdown","languageDropdownMenu","languageDropdownValue","languageItem","submit"]),v=Object.fromEntries(Object.entries(d.b).filter((function(e){var t=Object(o.a)(e,1)[0];return d.e.has(t)}))),g=function(e){var t=e.placeholder,n=e.items,a=e.onSelect,r=e.selected,c=e.testIds,i=r?n[r]:t,s=Object.entries(n);return Object(h.jsxs)(j.a,{strategy:"fixed",children:[Object(h.jsx)(j.b,{as:l.a,bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":c.trigger,rightIcon:Object(h.jsx)(b.a,{color:"blue.500"}),variant:"outline",children:Object(h.jsx)(f.a,{"data-testid":c.value,children:i})}),Object(h.jsxs)(j.f,{"data-testid":c.menu,children:[Object(h.jsx)(j.e,{"data-testid":c.item,onClick:function(){return a()},children:"Any"}),s.map((function(e){var t=Object(o.a)(e,2),n=t[0],r=t[1];return Object(h.jsx)(j.e,{"data-testid":c.item,onClick:function(){return a(n)},children:r},n)}))]})]})},m=Object(s.a)((function(e,t){var n=e.query,a=e.onQueryChange,r=e.language,c=e.onLanguageChange;return Object(h.jsxs)(h.Fragment,{children:[Object(h.jsx)(u.a,{bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":p.input,name:"query",onChange:a,placeholder:"Search Constructs...",ref:t,value:n}),Object(h.jsx)(g,{items:v,onSelect:c,placeholder:"Language...",selected:r,testIds:{item:p.languageItem,menu:p.languageDropdownMenu,trigger:p.languageDropdown,value:p.languageDropdownValue}}),Object(h.jsx)(l.a,{boxShadow:"base",colorScheme:"blue","data-testid":p.submit,type:"submit",children:"Search"})]})})),x=["onSubmit"],k=function(e){var t=e.onSubmit,n=Object(r.a)(e,x);return Object(h.jsx)(i.a,{"data-testid":p.form,onSubmit:t,children:Object(h.jsx)(c.a,{autoRows:"1fr",gap:4,templateColumns:{sm:"1fr",md:"3fr 1fr 1fr"},width:"full",children:Object(h.jsx)(m,Object(a.a)({},n))})})}},122:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(5),r=n(0),c=n(18),i=n(114),o=function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=Object(r.useState)(null!==(e=n.defaultQuery)&&void 0!==e?e:""),s=Object(a.a)(o,2),u=s[0],l=s[1],d=Object(r.useState)(n.defaultCdkType),b=Object(a.a)(d,2),j=b[0],f=b[1],h=Object(r.useState)(n.defaultCdkMajor),O=Object(a.a)(h,2),p=O[0],v=O[1],g=Object(r.useState)(null!==(t=n.defaultLanguages)&&void 0!==t?t:[]),m=Object(a.a)(g,2),x=m[0],k=m[1],y=Object(r.useState)(n.defaultLanguage),w=Object(a.a)(y,2),S=w[0],C=w[1],E=Object(r.useState)(n.defaultSort),A=Object(a.a)(E,2),M=A[0],T=A[1],F=Object(c.g)(),I=F.push,P=function(e){e.preventDefault(),l(e.target.value)},z=Object(r.useCallback)((function(){I(Object(i.c)({cdkMajor:p,cdkType:j,language:S,languages:x,query:u,sort:M}))}),[j,p,S,x,I,u,M]),R=Object(r.useCallback)((function(e){null===e||void 0===e||e.preventDefault(),z()}),[z]);return Object(r.useMemo)((function(){return{cdkMajor:p,cdkType:j,language:S,languages:x,onLanguageChange:C,onQueryChange:P,onSearch:z,onSubmit:R,query:u,setCdkMajor:v,setCdkType:f,setLanguage:C,setLanguages:k,setQuery:l,setSort:T,sort:M}}),[p,j,S,x,z,R,u,M])}},135:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return u}));var a=n(32),r=n.n(a),c=n(49),i=n(10),o={sections:[{name:"Recently updated",showLastUpdated:10}]},s={featureFlags:{homeRedesign:!1,searchRedesign:!1},packageLinks:[],featuredPackages:o},u=function(){var e=Object(c.a)(r.a.mark((function e(){var t;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!window.configOverride){e.next=2;break}return e.abrupt("return",window.configOverride);case 2:return e.next=4,fetch(i.a.CONFIG);case 4:if((t=e.sent).ok){e.next=8;break}return console.log("Failed to fetch application config, using default values"),e.abrupt("return",s);case 8:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.log("Invalid config response, using default values"),s})));case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},138:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(6),r=n(22),c=n(21),i=n(215),o=n(1),s=["name","onClick"],u=Object(c.a)((function(e,t){var n=e.name,c=e.onClick,u=Object(r.a)(e,s);return Object(o.jsx)(i.a,Object(a.a)(Object(a.a)({alignItems:"center",display:"flex",fontSize:"lg",h:12,lineHeight:"base",listStyleType:"none",onClick:c,onKeyDown:function(e){"Enter"===e.key&&c()},px:4,ref:t,role:"option",sx:{":hover, :focus":{bg:"gray.100"}},tabIndex:0},u),{},{children:n}))}));u.displayName="SearchItem"},164:function(e,t,n){},171:function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"initialize",(function(){return R})),n.d(a,"access",(function(){return G})),n.d(a,"checkForCookieConsent",(function(){return L})),n.d(a,"customizeCookies",(function(){return N})),n.d(a,"getConsentCookie",(function(){return W})),n.d(a,"hasConsent",(function(){return U}));var r,c,i=n(0),o=n.n(i),s=n(80),u=n.n(s),l=n(29),d=(n(164),n(146)),b=n(18),j=n(203),f=n(205),h=n(199),O=n(191),p=n(202),v=n(196),g=n(204),m=n(118),x=n(55),k=n(1),y="showing-dev-preview-banner",w=function(){var e,t=Object(h.a)({defaultIsOpen:JSON.parse(null!==(e=window.sessionStorage.getItem(y))&&void 0!==e?e:"true"),onClose:function(){return window.sessionStorage.setItem(y,"false")}}),n=t.isOpen,a=t.onClose;return Object(k.jsx)(O.a,{h:"max-content",children:Object(k.jsx)(p.a,{in:n,children:Object(k.jsxs)(m.a,{"aria-label":"Preview Banner",bg:"blue.500",border:"none",boxShadow:"none",color:"white",mt:4,mx:4,p:4,position:"relative",role:"alertdialog",children:[Object(k.jsx)(j.a,{h:5,left:4,position:"absolute",top:4,w:5}),Object(k.jsxs)(v.a,{fontSize:"md",mx:8,textAlign:"center",children:["This application is in Dev Preview. Some features may change. If you find any issues, please report them"," ",Object(k.jsx)(x.a,{color:"inherit",hasWarning:!1,href:"https://github.com/cdklabs/construct-hub-webapp/issues",textDecoration:"underline",children:"here"})]}),Object(k.jsx)(g.a,{"aria-label":"Dismiss banner",colorScheme:"white",icon:Object(k.jsx)(f.a,{}),onClick:a,position:"absolute",right:4,size:"xs",top:3,variant:"ghost"})]})})})},S=n(5),C=n(206),E=n(207),A=n(208),M=n(151),T=n(22),F=n(32),I=n.n(F),P=n(49),z=function(){new URLSearchParams(window.location.search).get("sb")},R=function(){var e=Object(P.a)(I.a.mark((function e(){return I.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,t){window.addEventListener("load",Object(P.a)(I.a.mark((function a(){var c,i,o;return I.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,c={domain:window.location.hostname,language:navigator.language,__storeWriter:z()},a.next=4,n.e(16).then(n.t.bind(null,592,7));case 4:i=a.sent,o=i.AWSCShortbread,r=o(c),e(),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(0),t(a.t0);case 13:case"end":return a.stop()}}),a,null,[[0,10]])}))))})));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),D=function(e){return function(){var t;if(!r)throw new Error("shortbread has not been initialized");return(t=r)[e].apply(t,arguments)}},G=D("access"),L=D("checkForCookieConsent"),N=D("customizeCookies"),W=D("getConsentCookie"),U=D("hasConsent"),H=R,V=Object(T.a)(a,["initialize"]),_=Object(i.createContext)({}),q=function(e){var t=e.children,n=Object(i.useState)(!1),a=Object(S.a)(n,2),r=a[0],c=a[1];return Object(i.useEffect)((function(){var e=!1;return H().then((function(){e||(V.checkForCookieConsent(),c(!0))})).catch((function(t){console.error(t),e||c(!1)})),function(){e=!0,c(!1)}}),[]),Object(k.jsx)(_.Provider,{value:r?V:{},children:t})},B=n(83),K=n(10),J={SERVICE_TERMS:{display:"AWS Service Terms",url:"https://aws.amazon.com/service-terms/",testId:"service-terms"},PRIVACY:{display:"Privacy",url:"https://aws.amazon.com/privacy/",testId:"privacy"},SITE_TERMS:{display:"Construct Hub Site Terms",url:K.c.SITE_TERMS,testId:"site-terms",isExternal:!1},LEGAL:{display:"Legal",url:"https://aws.amazon.com/legal/",testId:"legal"}},Q=n(16),Y=n(56),X=Object(Y.a)("footer",["container","links","disclaimer","manageCookies"].concat(Object(Q.a)(Object.values(J).map((function(e){return e.testId}))))),Z=function(){var e=Object(i.useContext)(_).customizeCookies;return Object(k.jsxs)(C.a,{align:"center",as:"footer",bg:"blue.800",color:"white","data-testid":X.container,direction:"column",justify:"center",py:4,children:[Object(k.jsx)(E.a,{columnGap:6,columns:[1,2,4],"data-testid":X.links,children:Object.entries(J).map((function(e,t){var n=Object(S.a)(e,2),a=n[0],r=n[1],c=r.display,i=r.isExternal,o=void 0===i||i,s=r.testId,u=r.url;return Object(k.jsxs)(C.a,{align:"center",direction:{base:"column",md:"row"},children:[Object(k.jsx)(O.a,{display:{base:"none",md:0!==t?"initial":"none"},h:5,children:Object(k.jsx)(A.a,{borderColor:"white",mr:6,orientation:"vertical"})}),o?Object(k.jsx)(x.a,{color:"currentcolor","data-testid":X[s],hasWarning:!1,href:u,lineHeight:10,mx:"auto",children:c}):Object(k.jsx)(B.a,{color:"currentcolor","data-testid":X[s],lineHeight:10,mx:"auto",to:u,children:c}),Object(k.jsx)(O.a,{display:{base:"none",sm:t<2?"initial":"none",md:"none"},w:"100%",children:Object(k.jsx)(A.a,{borderColor:"white"})})]},a)}))}),Object(k.jsx)(v.a,{"data-testid":X.disclaimer,fontSize:"xs",mt:4,children:"2021 Amazon Web Services, Inc. All rights reserved."}),Object(k.jsx)(M.a,{color:"white","data-testid":X.manageCookies,fontSize:"xs",fontWeight:"normal",mt:4,onClick:e,variant:"link",children:"Manage Cookies"})]})},$=n(6),ee=[{display:"FAQ",isNavLink:!0,url:"/faq"},{display:"Construct Hub on GitHub",url:"https://github.com/cdklabs/construct-hub"},{display:"Issues on GitHub",url:"https://github.com/cdklabs/construct-hub/issues"}],te=[{display:"AWS CDK",links:[{display:"Home",url:"https://aws.amazon.com/cdk/"},{display:"Getting Started",url:"https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html"},{display:"Workshop",url:"https://cdkworkshop.com/"},{display:"Best Practices",url:"https://aws.amazon.com/blogs/devops/best-practices-for-developing-cloud-applications-with-aws-cdk"}]},{display:"CDK for Terraform",links:[{display:"Getting Started",url:"https://learn.hashicorp.com/tutorials/terraform/cdktf"},{display:"Tutorials",url:"https://learn.hashicorp.com/collections/terraform/cdktf"}]},{display:"CDK for Kubernetes",links:[{display:"Home",url:"https://cdk8s.io"},{display:"Getting Started",url:"https://cdk8s.io/docs/latest/getting-started"},{display:"Documentation",url:"https://cdk8s.io/docs/latest"},{display:"API Reference",url:"https://cdk8s.io/docs/latest/reference/index.html"}]},{display:"Community",links:[{display:"Slack",url:"https://join.slack.com/t/cdk-dev/shared_invite/zt-mso6p56d-qJp7SOTBvMaQuDrx7R2wHg"},{display:"Community Hub",url:"https://cdk.dev"}]}],ne=n(219),ae=["children"],re=function(e){var t=e.children,n=Object(T.a)(e,ae);return Object(k.jsx)(ne.a,Object($.a)(Object($.a)({colorScheme:"blue.800",strategy:"fixed"},n),{},{children:t}))},ce=n(21),ie=["items"],oe=function(e){var t=e.display,n=e.isNavLink,a=e.url;return n?Object(k.jsx)(B.a,{color:"blue.500",to:a,children:t}):Object(k.jsx)(x.a,{alignItems:"center",display:"flex",hasWarning:!1,href:a,justifyContent:"space-between",w:"100%",children:t})},se=Object(ce.a)((function(e,t){var n=e.items,a=Object(T.a)(e,ie);return Object(k.jsx)(ne.f,Object($.a)(Object($.a)({},a),{},{ref:t,children:n.map((function(e,t){return"links"in e?Object(k.jsxs)(i.Fragment,{children:[Object(k.jsx)(ne.d,{align:"left",title:e.display,children:e.links.map((function(e,t){return Object(k.jsx)(ne.e,{children:Object(k.jsx)(oe,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}),t!==n.length-1&&Object(k.jsx)(ne.c,{})]},"".concat(e.display,"-").concat(t)):Object(k.jsx)(ne.e,{children:Object(k.jsx)(oe,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}))})),ue=n(211),le=["children"],de=Object(ce.a)((function(e,t){var n=e.children,a=Object(T.a)(e,le);return Object(k.jsx)(ne.b,Object($.a)(Object($.a)({as:M.a,color:"blue.800",fontWeight:"500",ref:t,rightIcon:Object(k.jsx)(ue.a,{h:6,w:6}),size:"md",variant:"link"},a),{},{children:n}))})),be=Object(Y.a)("header",["container","title","gettingStartedTrigger","gettingStartedMenu","resourcesTrigger","resourcesMenu","navOpen","navClose","searchButton","searchIcon","mobileNav"]),je=function(){return Object(k.jsxs)(re,{children:[Object(k.jsx)(de,{"data-testid":be.gettingStartedTrigger,children:"Getting Started"}),Object(k.jsx)(se,{"data-testid":be.gettingStartedMenu,items:ee})]})},fe=n(213),he=n(226),Oe=n(227),pe=n(43),ve=n(228),ge=function(){return Object(k.jsxs)(re,{children:[Object(k.jsx)(de,{"data-testid":be.resourcesTrigger,children:"Resources"}),Object(k.jsx)(se,{"data-testid":be.resourcesMenu,items:te})]})},me=n(212),xe=function(){return Object(k.jsx)(me.a,{as:"h1",color:"blue.800","data-testid":be.title,size:"lg",children:Object(k.jsxs)(l.b,{to:"/",children:[Object(k.jsx)(O.a,{as:"span",color:"blue.500",children:"Construct"})," ","Hub"]})})},ke=function(e){var t=e.isOpen,n=e.onClose;return Object(k.jsx)(he.a,{children:Object(k.jsxs)(Oe.a,{isOpen:t,onClose:n,placement:"left",size:"xs",children:[Object(k.jsx)(pe.h,{}),Object(k.jsxs)(Oe.b,{"data-testid":be.mobileNav,children:[Object(k.jsx)(pe.c,{}),Object(k.jsx)(pe.g,{display:"flex",justifyContent:"center",children:Object(k.jsx)(xe,{})}),Object(k.jsx)(pe.b,{children:Object(k.jsxs)(ve.a,{align:"start",justify:"start",spacing:4,children:[Object(k.jsx)(je,{}),Object(k.jsx)(ge,{})]})})]})]})})},ye=function(){var e=Object(h.a)();return Object(k.jsxs)(k.Fragment,{children:[Object(k.jsx)(g.a,{"aria-label":"Navigation Menu",borderRadius:"md","data-testid":be.navOpen,display:{md:"none"},icon:Object(k.jsx)(fe.a,{}),onClick:e.onOpen,variant:"ghost"}),Object(k.jsx)(ke,Object($.a)({},e))]})},we=n(216),Se=n(215),Ce=n(120),Ee=n(122),Ae=n(111),Me=n(115),Te=n(121),Fe=n(87),Ie=n(138),Pe=Object(Y.a)("searchModal",["container"]),ze=["onSubmit"],Re=function(e){var t=e.isOpen,n=e.onClose,a=Object(b.g)().push,r=Object(Me.a)(),c=Object(S.a)(r,1)[0],o=Object(Ee.a)(),s=o.onSubmit,u=Object(T.a)(o,ze),l=Object(Ae.a)(u.query),d=Object(Ae.a)(u.language),j=Object(Ce.a)({limit:5,offset:0,query:l,language:d}).page,f=(l||d)&&j.length>0,h=Object(i.useRef)(null);return Object(k.jsx)(he.a,{children:Object(k.jsx)(pe.a,{initialFocusRef:h,isOpen:t,onClose:n,children:Object(k.jsx)(pe.h,{children:Object(k.jsxs)(pe.d,{"data-testid":Pe.container,children:[Object(k.jsx)(pe.c,{}),Object(k.jsx)(pe.g,{children:"Search modules or providers"}),Object(k.jsxs)(pe.b,{children:[Object(k.jsx)(Fe.a,{onSubmit:function(e){n(),s(e)},pb:4,children:Object(k.jsx)(ve.a,{spacing:4,children:Object(k.jsx)(Te.b,Object($.a)({ref:h},u))})}),f&&Object(k.jsxs)(k.Fragment,{children:[Object(k.jsx)(A.a,{}),Object(k.jsx)(me.a,{fontSize:"md",my:4,textAlign:"center",children:"Suggestions"}),Object(k.jsx)(Se.c,{children:j.map((function(e){return Object(k.jsx)(Ie.a,{name:e.name,onClick:function(){return t="".concat(K.c.PACKAGES,"/").concat(e.name,"/v/").concat(e.version,"?").concat(K.b.LANGUAGE,"=").concat(null!==d&&void 0!==d?d:c),n(),void a(t);var t}},e.id)}))})]})]})]})})})})},De=function(){var e=Object(h.a)(),t=Object(b.h)().pathname;return[K.c.HOME,K.c.SEARCH].some((function(e){return e===t}))?null:Object(k.jsxs)(k.Fragment,{children:[Object(k.jsx)(M.a,{align:"center",color:"gray.600",colorScheme:"gray","data-testid":be.searchButton,display:{base:"none",md:"flex"},fontWeight:"medium",justifyContent:"space-between",m:"0 auto",maxW:"500px",onClick:e.onOpen,rightIcon:Object(k.jsx)(we.a,{color:"gray.600",ml:4}),variant:"outline",w:"100%",children:"Search Constructs..."}),Object(k.jsx)(g.a,{"aria-label":"Search Icon",borderRadius:"md","data-testid":be.searchIcon,display:{base:"initial",md:"none"},icon:Object(k.jsx)(we.a,{color:"gray.600"}),onClick:e.onOpen,variant:"ghost"}),Object(k.jsx)(Re,Object($.a)({},e))]})},Ge=function(e){return Object(k.jsx)(d.b,Object($.a)({align:"center",justify:"center",rowStart:1},e))},Le=function(){return Object(k.jsxs)(d.a,{alignItems:"center",as:"header",bg:"white",boxShadow:"base","data-testid":be.container,gap:4,gridTemplateColumns:{base:"1fr 3fr 1fr",md:"minmax(200px, 2fr) minmax(200px, 3fr) 2fr"},gridTemplateRows:"1fr",maxW:"100vw",position:"sticky",px:4,py:4,top:0,w:"100%",zIndex:"sticky",children:[Object(k.jsx)(Ge,{colStart:{base:2,md:1},justifySelf:{base:"center",md:"start"},children:Object(k.jsx)(xe,{})}),Object(k.jsx)(Ge,{colStart:{base:3,md:2},justifySelf:{base:"end",md:"stretch"},children:Object(k.jsx)(De,{})}),Object(k.jsxs)(Ge,{colStart:{base:1,md:3},justifySelf:{base:"start",md:"end"},children:[Object(k.jsxs)(d.a,{display:{base:"none",md:"grid"},gap:4,gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr",placeItems:"center",w:"100%",children:[Object(k.jsx)(O.a,{children:Object(k.jsx)(je,{})}),Object(k.jsx)(O.a,{children:Object(k.jsx)(ge,{})})]}),Object(k.jsx)(ye,{})]})]})},Ne=n(73),We=["component"],Ue=function(e){var t=e.component,n=Object(T.a)(e,We);return Object(k.jsx)(b.b,Object($.a)(Object($.a)({},n),{},{children:Object(k.jsx)(i.Suspense,{fallback:Object(k.jsx)(Ne.a,{}),children:Object(k.jsx)(t,{})})}))},He=n(86),Ve=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(14)]).then(n.bind(null,599))})),_e=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(13)]).then(n.bind(null,601))})),qe=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(9)]).then(n.bind(null,598))})),Be=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,273))})),Ke=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(3),n.e(6),n.e(8)]).then(n.bind(null,594))})),Je=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(12)]).then(n.bind(null,602))})),Qe=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(3),n.e(10)]).then(n.bind(null,596))})),Ye=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(15)]).then(n.bind(null,603))})),Xe=function(){var e,t=Object(He.b)(),n=t.data,a=t.loading,r=null!==(e=null===n||void 0===n?void 0:n.featureFlags)&&void 0!==e?e:{},c=(null===r||void 0===r?void 0:r.homeRedesign)||(null===r||void 0===r?void 0:r.searchRedesign);return Object(k.jsxs)(d.a,{as:"main",bg:"bgPrimary",gridTemplateColumns:"1fr",gridTemplateRows:"auto auto 1fr auto",h:"100%",inset:0,maxW:"100vw",overflow:"hidden auto",position:"fixed",children:[Object(k.jsx)(Le,{}),a||c?Object(k.jsx)("div",{}):Object(k.jsx)(w,{}),a?Object(k.jsx)(Ne.a,{}):Object(k.jsxs)(b.d,{children:[Object(k.jsx)(Ue,{component:Ve,exact:!0,path:K.c.FAQ}),Object(k.jsx)(Ue,{component:(null===r||void 0===r?void 0:r.homeRedesign)?qe:_e,exact:!0,path:K.c.HOME}),Object(k.jsx)(Ue,{component:Ye,exact:!0,path:K.c.SITE_TERMS}),Object(k.jsx)(Ue,{component:Ke,path:K.c.PACKAGES}),Object(k.jsx)(Ue,{component:(null===r||void 0===r?void 0:r.searchRedesign)?Qe:Je,exact:!0,path:K.c.SEARCH}),Object(k.jsx)(Ue,{component:Be,path:"*"})]}),Object(k.jsx)(Z,{})]})},Ze=n(116),$e=n(85),et=n(103),tt=n(90),nt=n(221),at=n(217),rt=n(99),ct=rt.theme.components.Code,it=Object($.a)(Object($.a)({},ct),{},{variants:Object($.a)(Object($.a)({},ct.variants),{},{"code-block":Object($.a)(Object($.a)({},ct.variants.subtle),{},{display:"block",whiteSpace:"pre"})})}),ot=function(e,t){return function(n){var a="function"===typeof e?e(n):e;return Object($.a)(Object($.a)({},a),{},{container:Object($.a)(Object($.a)({},a.container),t)})}},st=rt.theme.components.Tag,ut=Object($.a)(Object($.a)({},st),{},{baseStyle:{container:{fontWeight:"normal"}},variants:Object($.a)(Object($.a)({},st.variants),{},{subtle:ot(st.variants.subtle,{background:"#F2F2F2",color:"blue.800"}),official:ot(st.variants.subtle,{background:"rgba(33, 150, 83, 0.1)",color:"#219653"})})}),lt=Object($.a)(Object($.a)({},rt.theme.components),{},{Code:it,Divider:{defaultProps:{borderColor:"rgba(0, 124, 253, 0.15)"}},Tag:ut}),dt={borders:{base:"1px solid rgba(0, 124, 253, 0.15)"},colors:Object($.a)(Object($.a)({},rt.theme.colors),{},{blue:{50:"#dcf3ff",100:"#aed9ff",200:"#7dbeff",300:"#4aa4ff",400:"#1a8aff",500:"#0070e6",600:"#0057b4",700:"#003e82",800:"#002551",900:"#000d21"},bgPrimary:"#F8F8F8"}),radii:{card:"0.75rem"},sizes:{container:{"2xl":"1920px"}},shadows:{base:"0px 4px 15px rgba(40, 132, 178, 0.15)"}},bt=Object(at.a)(Object($.a)(Object($.a)({},dt),{},{components:lt})),jt=function(e){var t=e.children;return Object(k.jsx)(nt.a,{resetCSS:!0,theme:bt,children:t})},ft=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),ht=function(e,t){navigator.serviceWorker.register(e).then((function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://cra.link/PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))};u.a.render(Object(k.jsx)(o.a.StrictMode,{children:Object(k.jsx)(l.a,{children:Object(k.jsx)(q,{children:Object(k.jsx)(Ze.a,{children:Object(k.jsx)(He.a,{children:Object(k.jsx)($e.a,{children:Object(k.jsx)(tt.a,{children:Object(k.jsx)(jt,{children:Object(k.jsx)(et.a,{children:Object(k.jsx)(Xe,{})})})})})})})})})}),document.getElementById("root")),c&&c instanceof Function&&n.e(17).then(n.bind(null,593)).then((function(e){var t=e.getCLS,n=e.getFID,a=e.getFCP,r=e.getLCP,i=e.getTTFB;t(c),n(c),a(c),r(c),i(c)}),(function(){})),function(e){if("serviceWorker"in navigator){if(new URL("",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",(function(){var t="".concat("","/service-worker.js");ft?(!function(e,t){fetch(e,{headers:{"Service-Worker":"script"}}).then((function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):ht(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(t,e),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://cra.link/PWA")}))):ht(t,e)}))}}()},47:function(e,t,n){"use strict";n.d(t,"d",(function(){return c})),n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return d})),n.d(t,"e",(function(){return b})),n.d(t,"c",(function(){return j}));var a,r,c,i=n(4),o=n(6),s=n(104),u=n(1);!function(e){e.DotNet="dotnet",e.TypeScript="typescript",e.Python="python",e.Go="golang",e.Java="java"}(c||(c={}));var l=[c.TypeScript,c.Python,c.Java,c.Go,c.DotNet],d=(a={},Object(i.a)(a,c.TypeScript,"TypeScript"),Object(i.a)(a,c.Python,"Python"),Object(i.a)(a,c.Java,"Java"),Object(i.a)(a,c.Go,"Go"),Object(i.a)(a,c.DotNet,".NET"),a),b=new Set([c.Python,c.TypeScript,c.Java]),j=(r={},Object(i.a)(r,c.TypeScript,{name:d.typescript,icon:function(e){return Object(u.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 256",children:[Object(u.jsx)("path",{d:"M0 128v128h256V0H0z",fill:"#007ACC"}),Object(u.jsx)("path",{d:"M56.611 128.85l-.081 10.483h33.32v94.68h23.57v-94.68h33.32v-10.28c0-5.69-.122-10.444-.284-10.566-.122-.162-20.399-.244-44.983-.203l-44.739.122-.122 10.443zM206.567 118.108c6.501 1.626 11.459 4.51 16.01 9.224 2.357 2.52 5.851 7.112 6.136 8.209.08.325-11.053 7.802-17.798 11.987-.244.163-1.22-.894-2.317-2.52-3.291-4.794-6.745-6.867-12.028-7.232-7.76-.529-12.759 3.535-12.718 10.32 0 1.992.284 3.17 1.097 4.796 1.707 3.535 4.876 5.648 14.832 9.955 18.326 7.884 26.168 13.085 31.045 20.48 5.445 8.25 6.664 21.415 2.966 31.208-4.063 10.646-14.14 17.88-28.323 20.277-4.388.772-14.79.65-19.504-.203-10.28-1.829-20.033-6.908-26.047-13.572-2.357-2.601-6.949-9.387-6.664-9.875.122-.162 1.178-.812 2.356-1.503 1.138-.65 5.446-3.13 9.509-5.486l7.355-4.267 1.544 2.276c2.154 3.291 6.867 7.802 9.712 9.305 8.167 4.308 19.383 3.698 24.909-1.26 2.357-2.153 3.332-4.388 3.332-7.68 0-2.966-.366-4.266-1.91-6.5-1.99-2.845-6.054-5.243-17.595-10.24-13.206-5.69-18.895-9.225-24.096-14.833-3.007-3.25-5.852-8.452-7.03-12.8-.975-3.616-1.22-12.678-.447-16.335 2.723-12.76 12.353-21.658 26.25-24.3 4.51-.853 14.994-.528 19.424.57z",fill:"#FFF"})]}))}}),Object(i.a)(r,c.Python,{name:d.python,icon:function(e){return Object(u.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{version:"1.0",viewBox:"0 0 110.421 109.846",children:[Object(u.jsxs)("defs",{children:[Object(u.jsxs)("linearGradient",{id:"a",children:[Object(u.jsx)("stop",{offset:"0",stopColor:"#ffe052"}),Object(u.jsx)("stop",{offset:"1",stopColor:"#ffc331"})]}),Object(u.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"d",x1:"89.137",x2:"147.777",xlinkHref:"#a",y1:"111.921",y2:"168.101"}),Object(u.jsxs)("linearGradient",{id:"b",children:[Object(u.jsx)("stop",{offset:"0",stopColor:"#387eb8"}),Object(u.jsx)("stop",{offset:"1",stopColor:"#366994"})]}),Object(u.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"c",x1:"55.549",x2:"110.149",xlinkHref:"#b",y1:"77.07",y2:"131.853"})]}),Object(u.jsxs)("g",{color:"#000",children:[Object(u.jsx)("path",{d:"M99.75 67.469c-28.032 0-26.281 12.156-26.281 12.156l.031 12.594h26.75V96H62.875s-17.938-2.034-17.938 26.25 15.657 27.281 15.657 27.281h9.343v-13.125s-.503-15.656 15.407-15.656h26.531s14.906.241 14.906-14.406V82.125s2.263-14.656-27.031-14.656zM85 75.938a4.808 4.808 0 014.813 4.812A4.808 4.808 0 0185 85.563a4.808 4.808 0 01-4.813-4.813A4.808 4.808 0 0185 75.937z",fill:"url(#c)",overflow:"visible",style:{marker:"none"},transform:"translate(-44.938 -67.469)"}),Object(u.jsx)("path",{d:"M100.546 177.315c28.032 0 26.281-12.156 26.281-12.156l-.03-12.594h-26.75v-3.781h37.374s17.938 2.034 17.938-26.25c0-28.285-15.657-27.282-15.657-27.282h-9.343v13.125s.503 15.657-15.407 15.657h-26.53s-14.907-.241-14.907 14.406v24.219s-2.263 14.656 27.031 14.656zm14.75-8.469a4.808 4.808 0 01-4.812-4.812 4.808 4.808 0 014.812-4.813 4.808 4.808 0 014.813 4.813 4.808 4.808 0 01-4.813 4.812z",fill:"url(#d)",overflow:"visible",style:{marker:"none"},transform:"translate(-44.938 -67.469)"})]})]}))}}),Object(i.a)(r,c.Java,{name:d.java,icon:function(e){return Object(u.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 346",children:[Object(u.jsx)("path",{d:"M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034 0 0 7.93 4.972 19.003 9.279-67.611 28.977-153.019-1.679-99.913-16.517M74.292 229.659s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43 0 0 5.526 5.602 14.215 8.666-81.747 23.904-172.798 1.885-114.296-17.532",fill:"#5382A1"}),Object(u.jsx)("path",{d:"M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858 0 0-118.238 29.53-61.765 94.6",fill:"#E76F00"}),Object(u.jsx)("path",{d:"M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471-12.323-5.36 10.787-12.8 18.056-14.362 7.581-1.644 11.914-1.337 11.914-1.337-13.705-9.655-88.583 18.957-38.034 27.15 137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89 25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183 29.981-14.492 54.358-12.848 54.358-12.848M201.506 253.422c64.8-33.672 34.839-66.03 13.927-61.67-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647 0 .001 1.003-.895 1.302-1.697",fill:"#5382A1"}),Object(u.jsx)("path",{d:"M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37",fill:"#E76F00"}),Object(u.jsx)("path",{d:"M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64 0 0-4.348 11.158-51.404 20.018-53.088 9.99-118.564 8.824-157.399 2.421.001 0 7.95 6.58 48.83 9.201",fill:"#5382A1"})]}))}}),Object(i.a)(r,c.Go,{name:d.golang,icon:function(e){return Object(u.jsx)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 512 192",children:Object(u.jsx)("path",{d:"M292.533 13.295l1.124.75c13.212 8.725 22.685 20.691 28.917 35.15 1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74-16.952 10.968-25.677 27.172-25.428 47.364.25 19.942 13.96 36.395 33.654 39.137 16.951 2.244 31.16-3.739 42.378-16.452 2.244-2.743 4.238-5.734 6.73-9.224h-48.11c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407 18.198-23.931 40.135-36.396 69.8-41.63 25.427-4.488 49.359-1.995 71.046 12.713 19.694 13.461 31.909 31.66 35.15 55.59 4.237 33.654-5.485 61.075-28.668 84.508-16.453 16.702-36.645 27.172-59.829 31.908-6.73 1.247-13.461 1.496-19.942 2.244-22.685-.499-43.376-6.98-60.826-21.937-12.273-10.61-20.727-23.648-24.928-38.828a104.937 104.937 0 01-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38-24.43 3.24-47.115-1.497-67.058-16.454-18.447-13.96-28.917-32.407-31.66-55.34-3.24-27.173 4.737-51.603 21.19-73.041 17.7-23.184 41.132-37.891 69.8-43.126 22.999-4.16 45.037-1.595 64.936 11.464zM411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375-4.488 19.444 4.985 39.138 22.934 47.115 13.71 5.983 27.421 5.235 40.633-1.496 19.694-10.22 30.413-26.175 31.66-47.613-.25-3.24-.25-5.734-.749-8.227-4.436-24.401-26.664-38.324-50.056-33.332zM116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496h49.857zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247H121.9zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247h88.995z",fill:"#00ACD7"})}))}}),Object(i.a)(r,c.DotNet,{name:d.dotnet,icon:function(e){return Object(u.jsx)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 32 32",children:Object(u.jsx)("path",{d:"M4.224 10.089v11.667h1.365v-8.438a12.58 12.58 0 00-.068-1.599h.052c.099.255.224.5.37.729l6 9.302h1.672V10.089h-1.359v8.203c-.016.573.016 1.146.083 1.714h-.031a13.986 13.986 0 00-.474-.781L5.995 10.09zm12.417 0v11.667h6.203l.005-1.281h-4.813v-4.047h4.214v-1.229h-4.214v-3.875h4.521V10.09zm7.25 0v1.234h3.354v10.432h1.365V11.323h3.391v-1.234zm-23.021 10a.86.86 0 00-.609.276.91.91 0 00-.26.641.901.901 0 001.542.641c.172-.167.271-.401.271-.641s-.099-.474-.271-.641a.876.876 0 00-.641-.276H.871z",fill:"#626262"})}))}}),r)},55:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(6),r=n(22),c=n(200),i=n(21),o=n(201),s=n(103),u=n(1),l=["children","hasIcon","hasWarning","href","onClick","noFollow"],d=Object(i.a)((function(e,t){var n=e.children,i=e.hasIcon,d=void 0===i||i,b=e.hasWarning,j=void 0===b||b,f=e.href,h=e.onClick,O=e.noFollow,p=Object(r.a)(e,l),v=Object(s.b)(),g="noopener noreferrer";return(j||O)&&(g+=" nofollow"),Object(u.jsxs)(o.a,Object(a.a)(Object(a.a)({color:"blue.500",href:f,isExternal:!0,onClick:j?v({href:f,onClick:h}):h,ref:t,rel:g},p),{},{children:[n," ",d&&Object(u.jsx)(c.a,{mb:1,ml:2})]}))}));d.displayName="ExternalLink"},56:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var a=function(e,t){return t.reduce((function(t,n){return t[n]="".concat(e,"-").concat(n),t}),{})}},64:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.NameAsc="asc",e.NameDesc="desc",e.PublishDateAsc="oldest",e.PublishDateDesc="newest"}(a||(a={}))},73:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(214),r=n(198),c=n(1),i=function(){return Object(c.jsx)(a.a,{children:Object(c.jsx)(r.a,{size:"xl"})})}},74:function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return l}));var a,r=n(4),c=n(47),i=n(64),o=function(e){return function(t,n){var a=new Date(t.metadata.date),r=new Date(n.metadata.date);return a===r?0:e?r<a?1:-1:a<r?1:-1}},s=function(e){return function(t,n){return t.name.localeCompare(n.name)*(e?1:-1)}},u=(a={},Object(r.a)(a,i.a.NameAsc,s(!0)),Object(r.a)(a,i.a.NameDesc,s(!1)),Object(r.a)(a,i.a.PublishDateAsc,o(!0)),Object(r.a)(a,i.a.PublishDateDesc,o(!1)),a),l={cdkType:function(e){if(e)return function(t){var n,a;return(null===(n=t.metadata)||void 0===n||null===(a=n.constructFramework)||void 0===a?void 0:a.name)===e}},cdkMajor:function(e){if(e)return function(t){var n,a;return(null===(n=t.metadata)||void 0===n||null===(a=n.constructFramework)||void 0===a?void 0:a.majorVersion)===e}},language:function(e){if(e&&e!==c.d.TypeScript)return function(t){return void 0!==t.languages[e]}},languages:function(e){var t,n=(null!==(t=null===e||void 0===e?void 0:e.length)&&void 0!==t?t:0)>0?new Set(e):void 0;if(n&&!n.has(c.d.TypeScript))return function(e){return Object.keys(e.languages).some((function(e){return n.has(e)}))}}}},83:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(6),r=n(201),c=n(29),i=n(1),o=function(e){return Object(i.jsx)(r.a,Object(a.a)({as:c.b},e))}},84:function(e,t,n){"use strict";n.d(t,"c",(function(){return c})),n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s}));var a,r,c,i=n(4);!function(e){e.awscdk="aws-cdk",e.cdktf="cdktf",e.cdk8s="cdk8s"}(c||(c={}));var o=(a={},Object(i.a)(a,c.awscdk,"AWS CDK"),Object(i.a)(a,c.cdktf,"CDKtf"),Object(i.a)(a,c.cdk8s,"CDK8s"),a),s=(r={},Object(i.a)(r,c.awscdk,{name:o[c.awscdk],imgsrc:"/assets/awscdk-icon.png"}),Object(i.a)(r,c.cdk8s,{name:o[c.cdk8s],imgsrc:"/assets/cdk8s-icon.png"}),Object(i.a)(r,c.cdktf,{name:o[c.cdktf],imgsrc:"/assets/cdktf-icon.png"}),r)},85:function(e,t,n){"use strict";n.d(t,"b",(function(){return j})),n.d(t,"a",(function(){return f}));var a=n(5),r=n(0),c=n(32),i=n.n(c),o=n(49),s=n(10),u=function(){var e=Object(o.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(s.a.CATALOG_SUFFIX);case 2:if((t=e.sent).ok){e.next=6;break}throw console.error(t.statusText),new Error("Failed fetching packages index: ".concat(t.statusText));case 6:return e.abrupt("return",t.json());case 7:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),l=n(91),d=n(1),b=Object(r.createContext)({loading:!1,data:void 0,error:void 0}),j=function(){return Object(r.useContext)(b)},f=function(e){var t=e.children,n=Object(l.a)(u),c=Object(a.a)(n,2),i=c[0],o=c[1];return Object(r.useEffect)((function(){i()}),[i]),Object(d.jsx)(b.Provider,{value:o,children:t})}},86:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return d}));var a=n(6),r=n(5),c=n(0),i=n(135),o=n(91),s=n(1),u=Object(c.createContext)({loading:!1,data:void 0,error:void 0}),l="construct-hub-config",d=function(){return Object(c.useContext)(u)},b=function(e){var t=e.children,n=Object(c.useState)((function(){try{var e=localStorage.getItem(l);return e?JSON.parse(e):void 0}catch(t){console.error(t)}})),d=Object(r.a)(n,2),b=d[0],j=d[1],f=Object(o.a)(i.b,{onSuccess:function(e){j(e);try{localStorage.setItem(l,JSON.stringify(e))}catch(t){console.error(t)}}}),h=Object(r.a)(f,2),O=h[0],p=h[1];return Object(c.useEffect)((function(){O()}),[]),Object(s.jsx)(u.Provider,{value:Object(a.a)(Object(a.a)({},p),{},{data:b}),children:t})}},87:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(6),r=n(21),c=n(25),i=n(1),o=Object(r.a)((function(e,t){return Object(i.jsx)(c.a.form,Object(a.a)(Object(a.a)({},e),{},{ref:t}))}));o.displayName="Form"},90:function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return x}));var a=n(0),r=n(4),c=n(5),i=n(16),o=n(6),s=n(60),u=n(69),l=n(147),d=n.n(l),b=n(84),j=n(64),f=n(74),h=function(){function e(t){Object(s.a)(this,e),this.map=void 0,this.index=void 0,this.constructFrameworks=void 0;var n=t.reduce((function(e,t){var n=[t.name,t.version].join("@");return e.set(n,Object(o.a)(Object(o.a)({},t),{},{id:n})),e}),new Map);this.map=this.sort(n,j.a.PublishDateDesc),this.constructFrameworks=this.detectConstructFrameworks(),this.index=d()((function(){var e=this;this.ref("id"),this.field("name"),this.field("scope"),this.field("packageName"),this.field("description"),this.field("authorName"),this.field("authorEmail"),Object(i.a)(n.values()).forEach((function(t){var n=t.author,a=t.name.split("/"),r=Object(c.a)(a,2),i=r[0],o=r[1];i&&o&&(t.scope=i,t.packageName=o),"string"===typeof n&&(t.authorName=n),(null===n||void 0===n?void 0:n.name)&&(t.authorName=n.name),(null===n||void 0===n?void 0:n.email)&&(t.authorEmail=n.email),e.add(t)}))}))}return Object(u.a)(e,[{key:"search",value:function(e){var t=null!==e&&void 0!==e?e:{},n=t.query,a=t.filters,r=t.sort,c=n?this.query(n):new Map(this.map);return a&&(c=this.filter(c,a)),r&&(c=this.sort(c,r)),c}},{key:"query",value:function(e){var t=this,n=[];try{n=this.index.search(e)}catch(a){console.error(a)}return n.reduce((function(e,n){var a=n.ref,r=t.map.get(a);return r&&e.set(a,r),e}),new Map)}},{key:"filter",value:function(e,t){var n=t.cdkType,a=t.cdkMajor,r=t.language,c=t.languages,i=new Map(e),o=[f.a.cdkType(n),f.a.cdkMajor(n?a:void 0),f.a.language(r),f.a.languages(c)].filter(Boolean);return i.forEach((function(e){var t=!1;o.forEach((function(n){t||n(e)||(t=!0)})),t&&i.delete(e.id)})),i}},{key:"sort",value:function(e,t){return t?new Map(Object(i.a)(e.entries()).sort((function(e,n){var a=Object(c.a)(e,2)[1],r=Object(c.a)(n,2)[1];return f.b[t](a,r)}))):e}},{key:"detectConstructFrameworks",value:function(){var e;return Object(i.a)(this.map.values()).reduce((function(e,t){var n,a,r=t.metadata,c=null===r||void 0===r||null===(n=r.constructFramework)||void 0===n?void 0:n.name,i=null===r||void 0===r||null===(a=r.constructFramework)||void 0===a?void 0:a.majorVersion;if(c){var o=e[c];i&&!o.majorVersions.includes(i)&&o.majorVersions.push(i),o.pkgCount+=1}return e}),(e={},Object(r.a)(e,b.c.awscdk,{majorVersions:[],pkgCount:0}),Object(r.a)(e,b.c.cdk8s,{majorVersions:[],pkgCount:0}),Object(r.a)(e,b.c.cdktf,{majorVersions:[],pkgCount:0}),e))}}]),e}(),O=n(73),p=n(85),v=n(1),g=Object(a.createContext)(void 0),m=function(){return Object(a.useContext)(g)},x=function(e){var t=e.children,n=Object(p.b)(),r=n.data,c=n.loading,i=Object(a.useMemo)((function(){if(void 0!==(null===r||void 0===r?void 0:r.packages)&&!c)return new h(r.packages)}),[r,c]);return i?Object(v.jsx)(g.Provider,{value:i,children:t}):Object(v.jsx)(O.a,{})}},91:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(32),r=n.n(a),c=n(49),i=n(5),o=n(0),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initialValue,a=t.onSuccess,s=t.onError,u=Object(o.useState)(!1),l=Object(i.a)(u,2),d=l[0],b=l[1],j=Object(o.useState)(n),f=Object(i.a)(j,2),h=f[0],O=f[1],p=Object(o.useState)(),v=Object(i.a)(p,2),g=v[0],m=v[1],x=Object(o.useRef)(!1);Object(o.useEffect)((function(){return x.current=!0,function(){x.current=!1}}),[]);var k=Object(o.useCallback)(Object(c.a)(r.a.mark((function t(){var c,i=arguments;return r.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(x.current){t.next=2;break}return t.abrupt("return");case 2:return b(!0),m(void 0),t.prev=4,t.next=7,e.apply(void 0,i);case 7:c=t.sent,null===a||void 0===a||a(c),x.current&&(O(c),b(!1)),t.next=17;break;case 12:t.prev=12,t.t0=t.catch(4),console.error(t.t0),null===s||void 0===s||s(t.t0),x.current&&(O(n),m(t.t0),b(!1));case 17:case"end":return t.stop()}}),t,null,[[4,12]])}))),[s,a]);return Object(o.useMemo)((function(){return[k,{data:h,loading:d,error:g}]}),[k,h,d,g])}}},[[171,5,7]]]);
2
- //# sourceMappingURL=main.5e31651c.chunk.js.map
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[4],{10:function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return c}));var a={PACKAGES_PREFIX:"/data",CATALOG_SUFFIX:"/catalog.json",ASSEMBLY_SUFFIX:"/assembly.json",METADATA_SUFFIX:"/metadata.json",CONFIG:"/config.json"},r={CDK_TYPE:"cdk",LANGUAGE:"lang",LANGUAGES:"langs",OFFSET:"offset",SEARCH_QUERY:"q",SORT:"sort",SUBMODULE:"submodule",CDK_MAJOR:"cdkver"},c={FAQ:"/faq",HOME:"/",PACKAGES:"/packages",SEARCH:"/search",SITE_TERMS:"/terms"}},103:function(e,t,n){"use strict";n.d(t,"b",(function(){return p})),n.d(t,"a",(function(){return g}));var a=n(6),r=n(5),c=n(201),i=n(0),o="prefersWarnOnExternalLinkClick",s=n(202),u=n(43),l=n(199),d=n(222),b=n(154),j=n(224),f=n(55),h=n(1),O=function(e){var t=e.href,n=e.isOpen,a=e.onClick,c=e.onClose,O=e.setShouldWarn,v=Object(i.useState)(!0),p=Object(r.a)(v,2),g=p[0],m=p[1];return Object(h.jsx)(u.a,{closeOnOverlayClick:!1,isOpen:n,onClose:c,children:Object(h.jsx)(u.h,{children:Object(h.jsxs)(u.d,{color:"blue.800",children:[Object(h.jsx)(u.g,{children:"Confirm"}),Object(h.jsxs)(u.b,{children:[Object(h.jsx)(l.a,{fontSize:"lg",mb:2,children:"This link is taking you to an external site"}),Object(h.jsx)(l.a,{bg:"gray.100",borderRadius:"sm",color:"blue.500",fontSize:"sm",mb:4,p:1,children:t}),Object(h.jsx)(d.a,{onChange:function(e){var t=!e.target.checked;m(t)},children:"Do not show this warning again."})]}),Object(h.jsxs)(u.f,{children:[Object(h.jsx)(b.a,{onClick:function(){m(!0),c()},variant:"ghost",children:"Cancel"}),Object(h.jsx)(j.a,{hasArrow:!0,label:t,placement:"top",children:Object(h.jsx)(f.a,{hasIcon:!1,hasWarning:!1,href:t,noFollow:!0,onClick:function(e){if(!g){O(g);try{localStorage.setItem(o,JSON.stringify(g))}catch(t){}}null===a||void 0===a||a(e),c()},children:Object(h.jsx)(b.a,{colorScheme:"blue",ml:4,rightIcon:Object(h.jsx)(s.a,{}),tabIndex:0,variant:"ghost",children:"Proceed"})})})]})]})})})},v=Object(i.createContext)((function(e){return e.onClick})),p=function(){return Object(i.useContext)(v)},g=function(e){var t=e.children,n=Object(i.useState)(null),s=Object(r.a)(n,2),u=s[0],l=s[1],d=Object(c.a)({onClose:function(){l(null)}}),b=d.isOpen,j=d.onOpen,f=d.onClose,p=Object(i.useState)((function(){try{var e,t=null!==(e=localStorage.getItem(o))&&void 0!==e?e:"true";return JSON.parse(t)}catch(n){return!0}})),g=Object(r.a)(p,2),m=g[0],x=g[1],k=Object(i.useCallback)((function(e){var t=e.href,n=e.onClick;if(!m)return n;return function(e){l({href:t,onClick:n}),e.preventDefault(),j()}}),[j,m]);return Object(h.jsxs)(v.Provider,{value:k,children:[t,Object(h.jsx)(O,Object(a.a)({isOpen:b,onClose:f,setShouldWarn:x},u))]})}},111:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(5),r=n(0),c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(r.useState)(e),c=Object(a.a)(n,2),i=c[0],o=c[1],s=t.delay,u=void 0===s?250:s,l=t.onChange;return Object(r.useEffect)((function(){var t=setTimeout((function(){o(e),null===l||void 0===l||l(e)}),u);return function(){clearTimeout(t)}}),[e,u,l]),i}},116:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return u})),n.d(t,"a",(function(){return l}));var a=n(4),r=n(5),c=n(10),i=new RegExp(/git@github\.com:([a-zA-Z-]+)+\/?([a-zA-Z-]+)*(\.git)?/),o=function(e){try{var t=e,n=e.match(i);if(n){var a=Object(r.a)(n,3),c=a[1],o=a[2];t="https://github.com/".concat(c,"/").concat(o)}return{hostname:new URL(t).hostname,url:t}}catch(s){return}},s=function(e,t){var n=e;if(t){var a=function(e,t){var n=new URLSearchParams(t);return Object.entries(e).filter((function(e){return null!=Object(r.a)(e,2)[1]})).forEach((function(e){var t=Object(r.a)(e,2),a=t[0],c=t[1];n.set(a,"".concat(c))})),n.toString()}(t);a&&(n+="?".concat(a))}return n},u=function(e){var t,n=e.cdkMajor,r=e.cdkType,i=e.query,o=e.offset,u=e.language,l=e.languages,d=e.sort;return s(c.c.SEARCH,(t={},Object(a.a)(t,c.b.SEARCH_QUERY,i),Object(a.a)(t,c.b.CDK_TYPE,r),Object(a.a)(t,c.b.CDK_MAJOR,n),Object(a.a)(t,c.b.LANGUAGE,u),Object(a.a)(t,c.b.LANGUAGES,(null===l||void 0===l?void 0:l.length)?l.join(","):null),Object(a.a)(t,c.b.SORT,d),Object(a.a)(t,c.b.OFFSET,null!==o&&void 0!==o?o:0),t))},l=function(e){var t,n=e.name,r=e.version,i=e.language,o=e.submodule;return s("".concat(c.c.PACKAGES,"/").concat(n,"/v/").concat(r),(t={},Object(a.a)(t,c.b.SUBMODULE,o),Object(a.a)(t,c.b.LANGUAGE,i),t))}},117:function(e,t,n){"use strict";n.d(t,"a",(function(){return j}));var a=n(5),r=n(0),c=n(20),i=n(47),o=n(10),s=n(121),u=i.d.TypeScript,l="preferred-language",d=function(e){return null!=e&&i.e.has(e)},b=function(e){if(d(e))return e;try{var t,n=null!==(t=localStorage.getItem(l))&&void 0!==t?t:"";if(d(n))return n}catch(a){}return u},j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.updateUrl,n=e.updateSaved,i=Object(c.h)(),u=i.pathname,j=i.hash,f=Object(c.g)(),h=f.replace,O=Object(s.a)(),v=O.get(o.b.LANGUAGE),p=Object(r.useState)((function(){return b(v)})),g=Object(a.a)(p,2),m=g[0],x=g[1];Object(r.useEffect)((function(){d(v)&&v!==m&&x(v)}),[v]),Object(r.useEffect)((function(){v!==m&&t&&(O.set(o.b.LANGUAGE,m),h({pathname:u,hash:j,search:O.toString()}))}),[m,t]);var k=Object(r.useCallback)((function(e){if(x(e),n)try{localStorage.setItem(l,e)}catch(t){}}),[n]);return Object(r.useMemo)((function(){return[m,k]}),[m,k])}},118:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return u}));var a=n(0),r=n(20),c=n(1),i=Object(a.createContext)({trackPageView:function(){}}),o=function(e){var t=e.children,n=Object(r.h)().pathname,o=Object(a.useRef)(null),s=Object(a.useCallback)((function(e){var t,a,r;o.current!==n&&(null===(t=window)||void 0===t||null===(a=t.AWSMA)||void 0===a||null===(r=a.ready)||void 0===r||r.call(a,(function(){document.dispatchEvent(new CustomEvent(window.AWSMA.TRIGGER_EVENT,{detail:e})),o.current=n})))}),[n]);return Object(c.jsx)(i.Provider,{value:{trackPageView:s},children:t})},s=n(6),u=function(e){var t=Object(a.useContext)(i).trackPageView,n=Object(r.h)().pathname,c=Object(a.useMemo)((function(){return{page:Object(s.a)({pageURL:window.location.href.replace("://localhost:3000","://constructs.local.dev")},e.page),event:{type:"pageview",name:e.event.name,description:e.event.description}}}),[n,e]);return Object(a.useCallback)((function(){return t(c)}),[t,c])}},120:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(6),r=n(19),c=n(195),i=n(1),o=Object(r.a)((function(e,t){return Object(i.jsx)(c.a,Object(a.a)({bg:"white",border:"base",borderRadius:"card",boxShadow:"base",p:2,ref:t},e))}));o.displayName="Card"},121:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(0),r=n(20),c=function(){var e=Object(r.h)().search;return Object(a.useMemo)((function(){return new URLSearchParams(e)}),[e])}},122:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(0),r=function(e,t){var n=t.limit,a=t.offset*n,r=a+n;return e.slice(a,r)},c=n(17),i=n(90),o=function(e){var t=e.cdkMajor,n=e.cdkType,o=e.limit,s=e.offset,u=void 0===s?0:s,l=e.query,d=void 0===l?"":l,b=e.language,j=void 0===b?null:b,f=e.languages,h=e.sort,O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.query,n=e.filters,r=e.sort,o=Object(i.b)();if(!o)throw new Error("This hook can only be called within a descendant of a <SearchProvider />");return Object(a.useMemo)((function(){return Object(c.a)(o.search({query:t,filters:n,sort:r}).values())}),[o,t,n,r])}({filters:Object(a.useMemo)((function(){return{cdkMajor:t,cdkType:n,language:null!==j&&void 0!==j?j:void 0,languages:f}}),[t,n,j,f]),query:d,sort:h}),v=function(e,t){var n=null!==t&&void 0!==t?t:{},c=n.limit,i=void 0===c?25:c,o=n.offset,s=void 0===o?0:o,u=e?Math.floor(e.length/i):0;return Object(a.useMemo)((function(){return{page:r(e,{limit:i,offset:s>u?u:s}),pageLimit:u}}),[e,i,s,u])}(O,{offset:u,limit:o}),p=v.page,g=v.pageLimit;return Object(a.useMemo)((function(){return{results:O,page:p,pageLimit:g}}),[p,g,O])}},123:function(e,t,n){"use strict";n.d(t,"a",(function(){return k})),n.d(t,"b",(function(){return m}));var a=n(6),r=n(23),c=n(148),i=n(87),o=n(5),s=n(19),u=n(230),l=n(154),d=n(47),b=n(213),j=n(221),f=n(199),h=n(1),O=n(56),v=Object(O.a)("catalogSearch",["form","input","languageDropdown","languageDropdownMenu","languageDropdownValue","languageItem","submit"]),p=Object.fromEntries(Object.entries(d.b).filter((function(e){var t=Object(o.a)(e,1)[0];return d.e.has(t)}))),g=function(e){var t=e.placeholder,n=e.items,a=e.onSelect,r=e.selected,c=e.testIds,i=r?n[r]:t,s=Object.entries(n);return Object(h.jsxs)(j.a,{strategy:"fixed",children:[Object(h.jsx)(j.b,{as:l.a,bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":c.trigger,rightIcon:Object(h.jsx)(b.a,{color:"blue.500"}),variant:"outline",children:Object(h.jsx)(f.a,{"data-testid":c.value,children:i})}),Object(h.jsxs)(j.f,{"data-testid":c.menu,children:[Object(h.jsx)(j.e,{"data-testid":c.item,onClick:function(){return a()},children:"Any"}),s.map((function(e){var t=Object(o.a)(e,2),n=t[0],r=t[1];return Object(h.jsx)(j.e,{"data-testid":c.item,onClick:function(){return a(n)},children:r},n)}))]})]})},m=Object(s.a)((function(e,t){var n=e.query,a=e.onQueryChange,r=e.language,c=e.onLanguageChange;return Object(h.jsxs)(h.Fragment,{children:[Object(h.jsx)(u.a,{bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":v.input,name:"query",onChange:a,placeholder:"Search Constructs...",ref:t,value:n}),Object(h.jsx)(g,{items:p,onSelect:c,placeholder:"Language...",selected:r,testIds:{item:v.languageItem,menu:v.languageDropdownMenu,trigger:v.languageDropdown,value:v.languageDropdownValue}}),Object(h.jsx)(l.a,{boxShadow:"base",colorScheme:"blue","data-testid":v.submit,type:"submit",children:"Search"})]})})),x=["onSubmit"],k=function(e){var t=e.onSubmit,n=Object(r.a)(e,x);return Object(h.jsx)(i.a,{"data-testid":v.form,onSubmit:t,children:Object(h.jsx)(c.a,{autoRows:"1fr",gap:4,templateColumns:{sm:"1fr",md:"3fr 1fr 1fr"},width:"full",children:Object(h.jsx)(m,Object(a.a)({},n))})})}},124:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(5),r=n(0),c=n(20),i=n(116),o=function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=Object(r.useState)(null!==(e=n.defaultQuery)&&void 0!==e?e:""),s=Object(a.a)(o,2),u=s[0],l=s[1],d=Object(r.useState)(n.defaultCdkType),b=Object(a.a)(d,2),j=b[0],f=b[1],h=Object(r.useState)(n.defaultCdkMajor),O=Object(a.a)(h,2),v=O[0],p=O[1],g=Object(r.useState)(null!==(t=n.defaultLanguages)&&void 0!==t?t:[]),m=Object(a.a)(g,2),x=m[0],k=m[1],y=Object(r.useState)(n.defaultLanguage),w=Object(a.a)(y,2),S=w[0],C=w[1],E=Object(r.useState)(n.defaultSort),A=Object(a.a)(E,2),M=A[0],T=A[1],F=Object(c.g)(),I=F.push,P=function(e){e.preventDefault(),l(e.target.value)},z=Object(r.useCallback)((function(){I(Object(i.c)({cdkMajor:v,cdkType:j,language:S,languages:x,query:u,sort:M}))}),[j,v,S,x,I,u,M]),R=Object(r.useCallback)((function(e){null===e||void 0===e||e.preventDefault(),z()}),[z]);return Object(r.useMemo)((function(){return{cdkMajor:v,cdkType:j,language:S,languages:x,onLanguageChange:C,onQueryChange:P,onSearch:z,onSubmit:R,query:u,setCdkMajor:p,setCdkType:f,setLanguage:C,setLanguages:k,setQuery:l,setSort:T,sort:M}}),[v,j,S,x,z,R,u,M])}},139:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return u}));var a=n(32),r=n.n(a),c=n(49),i=n(10),o={sections:[{name:"Recently updated",showLastUpdated:10}]},s={featureFlags:{homeRedesign:!1,searchRedesign:!1},packageLinks:[],featuredPackages:o},u=function(){var e=Object(c.a)(r.a.mark((function e(){var t;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!window.configOverride){e.next=2;break}return e.abrupt("return",window.configOverride);case 2:return e.next=4,fetch(i.a.CONFIG);case 4:if((t=e.sent).ok){e.next=8;break}return console.log("Failed to fetch application config, using default values"),e.abrupt("return",s);case 8:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.log("Invalid config response, using default values"),s})));case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(6),r=n(23),c=n(19),i=n(217),o=n(1),s=["name","onClick"],u=Object(c.a)((function(e,t){var n=e.name,c=e.onClick,u=Object(r.a)(e,s);return Object(o.jsx)(i.a,Object(a.a)(Object(a.a)({alignItems:"center",display:"flex",fontSize:"lg",h:12,lineHeight:"base",listStyleType:"none",onClick:c,onKeyDown:function(e){"Enter"===e.key&&c()},px:4,ref:t,role:"option",sx:{":hover, :focus":{bg:"gray.100"}},tabIndex:0},u),{},{children:n}))}));u.displayName="SearchItem"},167:function(e,t,n){},174:function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"initialize",(function(){return R})),n.d(a,"access",(function(){return G})),n.d(a,"checkForCookieConsent",(function(){return L})),n.d(a,"customizeCookies",(function(){return N})),n.d(a,"getConsentCookie",(function(){return W})),n.d(a,"hasConsent",(function(){return U}));var r,c,i=n(0),o=n.n(i),s=n(80),u=n.n(s),l=n(29),d=(n(167),n(148)),b=n(20),j=n(205),f=n(207),h=n(201),O=n(195),v=n(204),p=n(199),g=n(206),m=n(120),x=n(55),k=n(1),y="showing-dev-preview-banner",w=function(){var e,t=Object(h.a)({defaultIsOpen:JSON.parse(null!==(e=window.sessionStorage.getItem(y))&&void 0!==e?e:"true"),onClose:function(){return window.sessionStorage.setItem(y,"false")}}),n=t.isOpen,a=t.onClose;return Object(k.jsx)(O.a,{h:"max-content",children:Object(k.jsx)(v.a,{in:n,children:Object(k.jsxs)(m.a,{"aria-label":"Preview Banner",bg:"blue.500",border:"none",boxShadow:"none",color:"white",mt:4,mx:4,p:4,position:"relative",role:"alertdialog",children:[Object(k.jsx)(j.a,{h:5,left:4,position:"absolute",top:4,w:5}),Object(k.jsxs)(p.a,{fontSize:"md",mx:8,textAlign:"center",children:["This application is in Dev Preview. Some features may change. If you find any issues, please report them"," ",Object(k.jsx)(x.a,{color:"inherit",hasWarning:!1,href:"https://github.com/cdklabs/construct-hub-webapp/issues",textDecoration:"underline",children:"here"})]}),Object(k.jsx)(g.a,{"aria-label":"Dismiss banner",colorScheme:"white",icon:Object(k.jsx)(f.a,{}),onClick:a,position:"absolute",right:4,size:"xs",top:3,variant:"ghost"})]})})})},S=n(5),C=n(208),E=n(209),A=n(210),M=n(154),T=n(23),F=n(32),I=n.n(F),P=n(49),z=function(){new URLSearchParams(window.location.search).get("sb")},R=function(){var e=Object(P.a)(I.a.mark((function e(){return I.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,t){window.addEventListener("load",Object(P.a)(I.a.mark((function a(){var c,i,o;return I.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,c={domain:window.location.hostname,language:navigator.language,__storeWriter:z()},a.next=4,n.e(16).then(n.t.bind(null,595,7));case 4:i=a.sent,o=i.AWSCShortbread,r=o(c),e(),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(0),t(a.t0);case 13:case"end":return a.stop()}}),a,null,[[0,10]])}))))})));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),D=function(e){return function(){var t;if(!r)throw new Error("shortbread has not been initialized");return(t=r)[e].apply(t,arguments)}},G=D("access"),L=D("checkForCookieConsent"),N=D("customizeCookies"),W=D("getConsentCookie"),U=D("hasConsent"),H=R,V=Object(T.a)(a,["initialize"]),_=Object(i.createContext)({}),q=function(e){var t=e.children,n=Object(i.useState)(!1),a=Object(S.a)(n,2),r=a[0],c=a[1];return Object(i.useEffect)((function(){var e=!1;return H().then((function(){e||(V.checkForCookieConsent(),c(!0))})).catch((function(t){console.error(t),e||c(!1)})),function(){e=!0,c(!1)}}),[]),Object(k.jsx)(_.Provider,{value:r?V:{},children:t})},B=n(83),K=n(10),J={SERVICE_TERMS:{display:"AWS Service Terms",url:"https://aws.amazon.com/service-terms/",testId:"service-terms"},PRIVACY:{display:"Privacy",url:"https://aws.amazon.com/privacy/",testId:"privacy"},SITE_TERMS:{display:"Construct Hub Site Terms",url:K.c.SITE_TERMS,testId:"site-terms",isExternal:!1},LEGAL:{display:"Legal",url:"https://aws.amazon.com/legal/",testId:"legal"}},Q=n(17),Y=n(56),X=Object(Y.a)("footer",["container","links","disclaimer","manageCookies"].concat(Object(Q.a)(Object.values(J).map((function(e){return e.testId}))))),Z=function(){var e=Object(i.useContext)(_).customizeCookies;return Object(k.jsxs)(C.a,{align:"center",as:"footer",bg:"blue.800",color:"white","data-testid":X.container,direction:"column",justify:"center",py:4,children:[Object(k.jsx)(E.a,{columnGap:6,columns:[1,2,4],"data-testid":X.links,children:Object.entries(J).map((function(e,t){var n=Object(S.a)(e,2),a=n[0],r=n[1],c=r.display,i=r.isExternal,o=void 0===i||i,s=r.testId,u=r.url;return Object(k.jsxs)(C.a,{align:"center",direction:{base:"column",md:"row"},children:[Object(k.jsx)(O.a,{display:{base:"none",md:0!==t?"initial":"none"},h:5,children:Object(k.jsx)(A.a,{borderColor:"white",mr:6,orientation:"vertical"})}),o?Object(k.jsx)(x.a,{color:"currentcolor","data-testid":X[s],hasWarning:!1,href:u,lineHeight:10,mx:"auto",children:c}):Object(k.jsx)(B.a,{color:"currentcolor","data-testid":X[s],lineHeight:10,mx:"auto",to:u,children:c}),Object(k.jsx)(O.a,{display:{base:"none",sm:t<2?"initial":"none",md:"none"},w:"100%",children:Object(k.jsx)(A.a,{borderColor:"white"})})]},a)}))}),Object(k.jsx)(p.a,{"data-testid":X.disclaimer,fontSize:"xs",mt:4,children:"2021 Amazon Web Services, Inc. All rights reserved."}),Object(k.jsx)(M.a,{color:"white","data-testid":X.manageCookies,fontSize:"xs",fontWeight:"normal",mt:4,onClick:e,variant:"link",children:"Manage Cookies"})]})},$=n(6),ee=[{display:"FAQ",isNavLink:!0,url:"/faq"},{display:"Construct Hub on GitHub",url:"https://github.com/cdklabs/construct-hub"},{display:"Issues on GitHub",url:"https://github.com/cdklabs/construct-hub/issues"}],te=[{display:"AWS CDK",links:[{display:"Home",url:"https://aws.amazon.com/cdk/"},{display:"Getting Started",url:"https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html"},{display:"Workshop",url:"https://cdkworkshop.com/"},{display:"Best Practices",url:"https://aws.amazon.com/blogs/devops/best-practices-for-developing-cloud-applications-with-aws-cdk"}]},{display:"CDK for Terraform",links:[{display:"Getting Started",url:"https://learn.hashicorp.com/tutorials/terraform/cdktf"},{display:"Tutorials",url:"https://learn.hashicorp.com/collections/terraform/cdktf"}]},{display:"CDK for Kubernetes",links:[{display:"Home",url:"https://cdk8s.io"},{display:"Getting Started",url:"https://cdk8s.io/docs/latest/getting-started"},{display:"Documentation",url:"https://cdk8s.io/docs/latest"},{display:"API Reference",url:"https://cdk8s.io/docs/latest/reference/index.html"}]},{display:"Community",links:[{display:"Slack",url:"https://join.slack.com/t/cdk-dev/shared_invite/zt-mso6p56d-qJp7SOTBvMaQuDrx7R2wHg"},{display:"Community Hub",url:"https://cdk.dev"}]}],ne=n(221),ae=["children"],re=function(e){var t=e.children,n=Object(T.a)(e,ae);return Object(k.jsx)(ne.a,Object($.a)(Object($.a)({colorScheme:"blue.800",strategy:"fixed"},n),{},{children:t}))},ce=n(19),ie=["items"],oe=function(e){var t=e.display,n=e.isNavLink,a=e.url;return n?Object(k.jsx)(B.a,{color:"blue.500",to:a,children:t}):Object(k.jsx)(x.a,{alignItems:"center",display:"flex",hasWarning:!1,href:a,justifyContent:"space-between",w:"100%",children:t})},se=Object(ce.a)((function(e,t){var n=e.items,a=Object(T.a)(e,ie);return Object(k.jsx)(ne.f,Object($.a)(Object($.a)({},a),{},{ref:t,children:n.map((function(e,t){return"links"in e?Object(k.jsxs)(i.Fragment,{children:[Object(k.jsx)(ne.d,{align:"left",title:e.display,children:e.links.map((function(e,t){return Object(k.jsx)(ne.e,{children:Object(k.jsx)(oe,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}),t!==n.length-1&&Object(k.jsx)(ne.c,{})]},"".concat(e.display,"-").concat(t)):Object(k.jsx)(ne.e,{children:Object(k.jsx)(oe,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}))})),ue=n(213),le=["children"],de=Object(ce.a)((function(e,t){var n=e.children,a=Object(T.a)(e,le);return Object(k.jsx)(ne.b,Object($.a)(Object($.a)({as:M.a,color:"blue.800",fontWeight:"500",ref:t,rightIcon:Object(k.jsx)(ue.a,{h:6,w:6}),size:"md",variant:"link"},a),{},{children:n}))})),be=Object(Y.a)("header",["container","title","gettingStartedTrigger","gettingStartedMenu","resourcesTrigger","resourcesMenu","navOpen","navClose","searchButton","searchIcon","mobileNav"]),je=function(){return Object(k.jsxs)(re,{children:[Object(k.jsx)(de,{"data-testid":be.gettingStartedTrigger,children:"Getting Started"}),Object(k.jsx)(se,{"data-testid":be.gettingStartedMenu,items:ee})]})},fe=n(215),he=n(227),Oe=n(228),ve=n(43),pe=n(229),ge=function(){return Object(k.jsxs)(re,{children:[Object(k.jsx)(de,{"data-testid":be.resourcesTrigger,children:"Resources"}),Object(k.jsx)(se,{"data-testid":be.resourcesMenu,items:te})]})},me=n(214),xe=function(){return Object(k.jsx)(me.a,{as:"h1",color:"blue.800","data-testid":be.title,size:"lg",children:Object(k.jsxs)(l.b,{to:"/",children:[Object(k.jsx)(O.a,{as:"span",color:"blue.500",children:"Construct"})," ","Hub"]})})},ke=function(e){var t=e.isOpen,n=e.onClose;return Object(k.jsx)(he.a,{children:Object(k.jsxs)(Oe.a,{isOpen:t,onClose:n,placement:"left",size:"xs",children:[Object(k.jsx)(ve.h,{}),Object(k.jsxs)(Oe.b,{"data-testid":be.mobileNav,children:[Object(k.jsx)(ve.c,{}),Object(k.jsx)(ve.g,{display:"flex",justifyContent:"center",children:Object(k.jsx)(xe,{})}),Object(k.jsx)(ve.b,{children:Object(k.jsxs)(pe.a,{align:"start",justify:"start",spacing:4,children:[Object(k.jsx)(je,{}),Object(k.jsx)(ge,{})]})})]})]})})},ye=function(){var e=Object(h.a)();return Object(k.jsxs)(k.Fragment,{children:[Object(k.jsx)(g.a,{"aria-label":"Navigation Menu",borderRadius:"md","data-testid":be.navOpen,display:{md:"none"},icon:Object(k.jsx)(fe.a,{}),onClick:e.onOpen,variant:"ghost"}),Object(k.jsx)(ke,Object($.a)({},e))]})},we=n(218),Se=n(217),Ce=n(122),Ee=n(124),Ae=n(111),Me=n(117),Te=n(123),Fe=n(87),Ie=n(142),Pe=Object(Y.a)("searchModal",["container"]),ze=["onSubmit"],Re=function(e){var t=e.isOpen,n=e.onClose,a=Object(b.g)().push,r=Object(Me.a)(),c=Object(S.a)(r,1)[0],o=Object(Ee.a)(),s=o.onSubmit,u=Object(T.a)(o,ze),l=Object(Ae.a)(u.query),d=Object(Ae.a)(u.language),j=Object(Ce.a)({limit:5,offset:0,query:l,language:d}).page,f=(l||d)&&j.length>0,h=Object(i.useRef)(null);return Object(k.jsx)(he.a,{children:Object(k.jsx)(ve.a,{initialFocusRef:h,isOpen:t,onClose:n,children:Object(k.jsx)(ve.h,{children:Object(k.jsxs)(ve.d,{"data-testid":Pe.container,children:[Object(k.jsx)(ve.c,{}),Object(k.jsx)(ve.g,{children:"Search modules or providers"}),Object(k.jsxs)(ve.b,{children:[Object(k.jsx)(Fe.a,{onSubmit:function(e){n(),s(e)},pb:4,children:Object(k.jsx)(pe.a,{spacing:4,children:Object(k.jsx)(Te.b,Object($.a)({ref:h},u))})}),f&&Object(k.jsxs)(k.Fragment,{children:[Object(k.jsx)(A.a,{}),Object(k.jsx)(me.a,{fontSize:"md",my:4,textAlign:"center",children:"Suggestions"}),Object(k.jsx)(Se.c,{children:j.map((function(e){return Object(k.jsx)(Ie.a,{name:e.name,onClick:function(){return t="".concat(K.c.PACKAGES,"/").concat(e.name,"/v/").concat(e.version,"?").concat(K.b.LANGUAGE,"=").concat(null!==d&&void 0!==d?d:c),n(),void a(t);var t}},e.id)}))})]})]})]})})})})},De=function(){var e=Object(h.a)(),t=Object(b.h)().pathname;return[K.c.HOME,K.c.SEARCH].some((function(e){return e===t}))?null:Object(k.jsxs)(k.Fragment,{children:[Object(k.jsx)(M.a,{align:"center",color:"gray.600",colorScheme:"gray","data-testid":be.searchButton,display:{base:"none",md:"flex"},fontWeight:"medium",justifyContent:"space-between",m:"0 auto",maxW:"500px",onClick:e.onOpen,rightIcon:Object(k.jsx)(we.a,{color:"gray.600",ml:4}),variant:"outline",w:"100%",children:"Search Constructs..."}),Object(k.jsx)(g.a,{"aria-label":"Search Icon",borderRadius:"md","data-testid":be.searchIcon,display:{base:"initial",md:"none"},icon:Object(k.jsx)(we.a,{color:"gray.600"}),onClick:e.onOpen,variant:"ghost"}),Object(k.jsx)(Re,Object($.a)({},e))]})},Ge=function(e){return Object(k.jsx)(d.b,Object($.a)({align:"center",justify:"center",rowStart:1},e))},Le=function(){return Object(k.jsxs)(d.a,{alignItems:"center",as:"header",bg:"white",boxShadow:"base","data-testid":be.container,gap:4,gridTemplateColumns:{base:"1fr 3fr 1fr",md:"minmax(200px, 2fr) minmax(200px, 3fr) 2fr"},gridTemplateRows:"1fr",maxW:"100vw",position:"sticky",px:4,py:4,top:0,w:"100%",zIndex:"sticky",children:[Object(k.jsx)(Ge,{colStart:{base:2,md:1},justifySelf:{base:"center",md:"start"},children:Object(k.jsx)(xe,{})}),Object(k.jsx)(Ge,{colStart:{base:3,md:2},justifySelf:{base:"end",md:"stretch"},children:Object(k.jsx)(De,{})}),Object(k.jsxs)(Ge,{colStart:{base:1,md:3},justifySelf:{base:"start",md:"end"},children:[Object(k.jsxs)(d.a,{display:{base:"none",md:"grid"},gap:4,gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr",placeItems:"center",w:"100%",children:[Object(k.jsx)(O.a,{children:Object(k.jsx)(je,{})}),Object(k.jsx)(O.a,{children:Object(k.jsx)(ge,{})})]}),Object(k.jsx)(ye,{})]})]})},Ne=n(74),We=["component"],Ue=function(e){var t=e.component,n=Object(T.a)(e,We);return Object(k.jsx)(b.b,Object($.a)(Object($.a)({},n),{},{children:Object(k.jsx)(i.Suspense,{fallback:Object(k.jsx)(Ne.a,{}),children:Object(k.jsx)(t,{})})}))},He=n(86),Ve=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(14)]).then(n.bind(null,602))})),_e=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(13)]).then(n.bind(null,604))})),qe=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(10)]).then(n.bind(null,601))})),Be=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,275))})),Ke=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(3),n.e(6),n.e(8)]).then(n.bind(null,597))})),Je=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(12)]).then(n.bind(null,605))})),Qe=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(3),n.e(9)]).then(n.bind(null,599))})),Ye=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(15)]).then(n.bind(null,606))})),Xe=function(){var e,t=Object(He.b)(),n=t.data,a=t.loading,r=null!==(e=null===n||void 0===n?void 0:n.featureFlags)&&void 0!==e?e:{},c=(null===r||void 0===r?void 0:r.homeRedesign)||(null===r||void 0===r?void 0:r.searchRedesign);return Object(k.jsxs)(d.a,{as:"main",bg:"bgPrimary",gridTemplateColumns:"1fr",gridTemplateRows:"auto auto 1fr auto",h:"100%",inset:0,maxW:"100vw",overflow:"hidden auto",position:"fixed",children:[Object(k.jsx)(Le,{}),a||c?Object(k.jsx)("div",{}):Object(k.jsx)(w,{}),a?Object(k.jsx)(Ne.a,{}):Object(k.jsxs)(b.d,{children:[Object(k.jsx)(Ue,{component:Ve,exact:!0,path:K.c.FAQ}),Object(k.jsx)(Ue,{component:(null===r||void 0===r?void 0:r.homeRedesign)?qe:_e,exact:!0,path:K.c.HOME}),Object(k.jsx)(Ue,{component:Ye,exact:!0,path:K.c.SITE_TERMS}),Object(k.jsx)(Ue,{component:Ke,path:K.c.PACKAGES}),Object(k.jsx)(Ue,{component:(null===r||void 0===r?void 0:r.searchRedesign)?Qe:Je,exact:!0,path:K.c.SEARCH}),Object(k.jsx)(Ue,{component:Be,path:"*"})]}),Object(k.jsx)(Z,{})]})},Ze=n(118),$e=n(85),et=n(103),tt=n(90),nt=n(223),at=n(219),rt=n(99),ct=rt.theme.components.Code,it=Object($.a)(Object($.a)({},ct),{},{variants:Object($.a)(Object($.a)({},ct.variants),{},{"code-block":Object($.a)(Object($.a)({},ct.variants.subtle),{},{display:"block",whiteSpace:"pre"})})}),ot=function(e,t){return function(n){var a="function"===typeof e?e(n):e;return Object($.a)(Object($.a)({},a),{},{container:Object($.a)(Object($.a)({},a.container),t)})}},st=rt.theme.components.Tag,ut=Object($.a)(Object($.a)({},st),{},{baseStyle:{container:{fontWeight:"normal"}},variants:Object($.a)(Object($.a)({},st.variants),{},{subtle:ot(st.variants.subtle,{background:"#F2F2F2",color:"blue.800"}),official:ot(st.variants.subtle,{background:"rgba(33, 150, 83, 0.1)",color:"#219653"})})}),lt=Object($.a)(Object($.a)({},rt.theme.components),{},{Code:it,Divider:{defaultProps:{borderColor:"rgba(0, 124, 253, 0.15)"}},Tag:ut}),dt={borders:{base:"1px solid rgba(0, 124, 253, 0.15)"},colors:Object($.a)(Object($.a)({},rt.theme.colors),{},{blue:{50:"#dcf3ff",100:"#aed9ff",200:"#7dbeff",300:"#4aa4ff",400:"#1a8aff",500:"#0070e6",600:"#0057b4",700:"#003e82",800:"#002551",900:"#000d21"},bgPrimary:"#F8F8F8"}),radii:{card:"0.75rem"},sizes:{container:{"2xl":"1920px"}},shadows:{base:"0px 4px 15px rgba(40, 132, 178, 0.15)"}},bt=Object(at.a)(Object($.a)(Object($.a)({},dt),{},{components:lt})),jt=function(e){var t=e.children;return Object(k.jsx)(nt.a,{resetCSS:!0,theme:bt,children:t})},ft=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),ht=function(e,t){navigator.serviceWorker.register(e).then((function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://cra.link/PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))};u.a.render(Object(k.jsx)(o.a.StrictMode,{children:Object(k.jsx)(l.a,{children:Object(k.jsx)(q,{children:Object(k.jsx)(Ze.a,{children:Object(k.jsx)(He.a,{children:Object(k.jsx)($e.a,{children:Object(k.jsx)(tt.a,{children:Object(k.jsx)(jt,{children:Object(k.jsx)(et.a,{children:Object(k.jsx)(Xe,{})})})})})})})})})}),document.getElementById("root")),c&&c instanceof Function&&n.e(17).then(n.bind(null,596)).then((function(e){var t=e.getCLS,n=e.getFID,a=e.getFCP,r=e.getLCP,i=e.getTTFB;t(c),n(c),a(c),r(c),i(c)}),(function(){})),function(e){if("serviceWorker"in navigator){if(new URL("",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",(function(){var t="".concat("","/service-worker.js");ft?(!function(e,t){fetch(e,{headers:{"Service-Worker":"script"}}).then((function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):ht(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(t,e),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://cra.link/PWA")}))):ht(t,e)}))}}()},47:function(e,t,n){"use strict";n.d(t,"d",(function(){return c})),n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return d})),n.d(t,"e",(function(){return b})),n.d(t,"c",(function(){return j}));var a,r,c,i=n(4),o=n(6),s=n(104),u=n(1);!function(e){e.DotNet="dotnet",e.TypeScript="typescript",e.Python="python",e.Go="golang",e.Java="java"}(c||(c={}));var l=[c.TypeScript,c.Python,c.Java,c.Go,c.DotNet],d=(a={},Object(i.a)(a,c.TypeScript,"TypeScript"),Object(i.a)(a,c.Python,"Python"),Object(i.a)(a,c.Java,"Java"),Object(i.a)(a,c.Go,"Go"),Object(i.a)(a,c.DotNet,".NET"),a),b=new Set([c.Python,c.TypeScript,c.Java]),j=(r={},Object(i.a)(r,c.TypeScript,{name:d.typescript,icon:function(e){return Object(u.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 256",children:[Object(u.jsx)("path",{d:"M0 128v128h256V0H0z",fill:"#007ACC"}),Object(u.jsx)("path",{d:"M56.611 128.85l-.081 10.483h33.32v94.68h23.57v-94.68h33.32v-10.28c0-5.69-.122-10.444-.284-10.566-.122-.162-20.399-.244-44.983-.203l-44.739.122-.122 10.443zM206.567 118.108c6.501 1.626 11.459 4.51 16.01 9.224 2.357 2.52 5.851 7.112 6.136 8.209.08.325-11.053 7.802-17.798 11.987-.244.163-1.22-.894-2.317-2.52-3.291-4.794-6.745-6.867-12.028-7.232-7.76-.529-12.759 3.535-12.718 10.32 0 1.992.284 3.17 1.097 4.796 1.707 3.535 4.876 5.648 14.832 9.955 18.326 7.884 26.168 13.085 31.045 20.48 5.445 8.25 6.664 21.415 2.966 31.208-4.063 10.646-14.14 17.88-28.323 20.277-4.388.772-14.79.65-19.504-.203-10.28-1.829-20.033-6.908-26.047-13.572-2.357-2.601-6.949-9.387-6.664-9.875.122-.162 1.178-.812 2.356-1.503 1.138-.65 5.446-3.13 9.509-5.486l7.355-4.267 1.544 2.276c2.154 3.291 6.867 7.802 9.712 9.305 8.167 4.308 19.383 3.698 24.909-1.26 2.357-2.153 3.332-4.388 3.332-7.68 0-2.966-.366-4.266-1.91-6.5-1.99-2.845-6.054-5.243-17.595-10.24-13.206-5.69-18.895-9.225-24.096-14.833-3.007-3.25-5.852-8.452-7.03-12.8-.975-3.616-1.22-12.678-.447-16.335 2.723-12.76 12.353-21.658 26.25-24.3 4.51-.853 14.994-.528 19.424.57z",fill:"#FFF"})]}))}}),Object(i.a)(r,c.Python,{name:d.python,icon:function(e){return Object(u.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{version:"1.0",viewBox:"0 0 110.421 109.846",children:[Object(u.jsxs)("defs",{children:[Object(u.jsxs)("linearGradient",{id:"a",children:[Object(u.jsx)("stop",{offset:"0",stopColor:"#ffe052"}),Object(u.jsx)("stop",{offset:"1",stopColor:"#ffc331"})]}),Object(u.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"d",x1:"89.137",x2:"147.777",xlinkHref:"#a",y1:"111.921",y2:"168.101"}),Object(u.jsxs)("linearGradient",{id:"b",children:[Object(u.jsx)("stop",{offset:"0",stopColor:"#387eb8"}),Object(u.jsx)("stop",{offset:"1",stopColor:"#366994"})]}),Object(u.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"c",x1:"55.549",x2:"110.149",xlinkHref:"#b",y1:"77.07",y2:"131.853"})]}),Object(u.jsxs)("g",{color:"#000",children:[Object(u.jsx)("path",{d:"M99.75 67.469c-28.032 0-26.281 12.156-26.281 12.156l.031 12.594h26.75V96H62.875s-17.938-2.034-17.938 26.25 15.657 27.281 15.657 27.281h9.343v-13.125s-.503-15.656 15.407-15.656h26.531s14.906.241 14.906-14.406V82.125s2.263-14.656-27.031-14.656zM85 75.938a4.808 4.808 0 014.813 4.812A4.808 4.808 0 0185 85.563a4.808 4.808 0 01-4.813-4.813A4.808 4.808 0 0185 75.937z",fill:"url(#c)",overflow:"visible",style:{marker:"none"},transform:"translate(-44.938 -67.469)"}),Object(u.jsx)("path",{d:"M100.546 177.315c28.032 0 26.281-12.156 26.281-12.156l-.03-12.594h-26.75v-3.781h37.374s17.938 2.034 17.938-26.25c0-28.285-15.657-27.282-15.657-27.282h-9.343v13.125s.503 15.657-15.407 15.657h-26.53s-14.907-.241-14.907 14.406v24.219s-2.263 14.656 27.031 14.656zm14.75-8.469a4.808 4.808 0 01-4.812-4.812 4.808 4.808 0 014.812-4.813 4.808 4.808 0 014.813 4.813 4.808 4.808 0 01-4.813 4.812z",fill:"url(#d)",overflow:"visible",style:{marker:"none"},transform:"translate(-44.938 -67.469)"})]})]}))}}),Object(i.a)(r,c.Java,{name:d.java,icon:function(e){return Object(u.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 346",children:[Object(u.jsx)("path",{d:"M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034 0 0 7.93 4.972 19.003 9.279-67.611 28.977-153.019-1.679-99.913-16.517M74.292 229.659s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43 0 0 5.526 5.602 14.215 8.666-81.747 23.904-172.798 1.885-114.296-17.532",fill:"#5382A1"}),Object(u.jsx)("path",{d:"M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858 0 0-118.238 29.53-61.765 94.6",fill:"#E76F00"}),Object(u.jsx)("path",{d:"M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471-12.323-5.36 10.787-12.8 18.056-14.362 7.581-1.644 11.914-1.337 11.914-1.337-13.705-9.655-88.583 18.957-38.034 27.15 137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89 25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183 29.981-14.492 54.358-12.848 54.358-12.848M201.506 253.422c64.8-33.672 34.839-66.03 13.927-61.67-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647 0 .001 1.003-.895 1.302-1.697",fill:"#5382A1"}),Object(u.jsx)("path",{d:"M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37",fill:"#E76F00"}),Object(u.jsx)("path",{d:"M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64 0 0-4.348 11.158-51.404 20.018-53.088 9.99-118.564 8.824-157.399 2.421.001 0 7.95 6.58 48.83 9.201",fill:"#5382A1"})]}))}}),Object(i.a)(r,c.Go,{name:d.golang,icon:function(e){return Object(u.jsx)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 512 192",children:Object(u.jsx)("path",{d:"M292.533 13.295l1.124.75c13.212 8.725 22.685 20.691 28.917 35.15 1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74-16.952 10.968-25.677 27.172-25.428 47.364.25 19.942 13.96 36.395 33.654 39.137 16.951 2.244 31.16-3.739 42.378-16.452 2.244-2.743 4.238-5.734 6.73-9.224h-48.11c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407 18.198-23.931 40.135-36.396 69.8-41.63 25.427-4.488 49.359-1.995 71.046 12.713 19.694 13.461 31.909 31.66 35.15 55.59 4.237 33.654-5.485 61.075-28.668 84.508-16.453 16.702-36.645 27.172-59.829 31.908-6.73 1.247-13.461 1.496-19.942 2.244-22.685-.499-43.376-6.98-60.826-21.937-12.273-10.61-20.727-23.648-24.928-38.828a104.937 104.937 0 01-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38-24.43 3.24-47.115-1.497-67.058-16.454-18.447-13.96-28.917-32.407-31.66-55.34-3.24-27.173 4.737-51.603 21.19-73.041 17.7-23.184 41.132-37.891 69.8-43.126 22.999-4.16 45.037-1.595 64.936 11.464zM411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375-4.488 19.444 4.985 39.138 22.934 47.115 13.71 5.983 27.421 5.235 40.633-1.496 19.694-10.22 30.413-26.175 31.66-47.613-.25-3.24-.25-5.734-.749-8.227-4.436-24.401-26.664-38.324-50.056-33.332zM116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496h49.857zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247H121.9zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247h88.995z",fill:"#00ACD7"})}))}}),Object(i.a)(r,c.DotNet,{name:d.dotnet,icon:function(e){return Object(u.jsx)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 32 32",children:Object(u.jsx)("path",{d:"M4.224 10.089v11.667h1.365v-8.438a12.58 12.58 0 00-.068-1.599h.052c.099.255.224.5.37.729l6 9.302h1.672V10.089h-1.359v8.203c-.016.573.016 1.146.083 1.714h-.031a13.986 13.986 0 00-.474-.781L5.995 10.09zm12.417 0v11.667h6.203l.005-1.281h-4.813v-4.047h4.214v-1.229h-4.214v-3.875h4.521V10.09zm7.25 0v1.234h3.354v10.432h1.365V11.323h3.391v-1.234zm-23.021 10a.86.86 0 00-.609.276.91.91 0 00-.26.641.901.901 0 001.542.641c.172-.167.271-.401.271-.641s-.099-.474-.271-.641a.876.876 0 00-.641-.276H.871z",fill:"#626262"})}))}}),r)},55:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(6),r=n(23),c=n(202),i=n(19),o=n(203),s=n(103),u=n(1),l=["children","hasIcon","hasWarning","href","onClick","noFollow"],d=Object(i.a)((function(e,t){var n=e.children,i=e.hasIcon,d=void 0===i||i,b=e.hasWarning,j=void 0===b||b,f=e.href,h=e.onClick,O=e.noFollow,v=Object(r.a)(e,l),p=Object(s.b)(),g="noopener noreferrer";return(j||O)&&(g+=" nofollow"),Object(u.jsxs)(o.a,Object(a.a)(Object(a.a)({color:"blue.500",href:f,isExternal:!0,onClick:j?p({href:f,onClick:h}):h,ref:t,rel:g},v),{},{children:[n," ",d&&Object(u.jsx)(c.a,{mb:1,ml:2})]}))}));d.displayName="ExternalLink"},56:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var a=function(e,t){return t.reduce((function(t,n){return t[n]="".concat(e,"-").concat(n),t}),{})}},66:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.NameAsc="asc",e.NameDesc="desc",e.PublishDateAsc="oldest",e.PublishDateDesc="newest"}(a||(a={}))},74:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(216),r=n(200),c=n(1),i=function(){return Object(c.jsx)(a.a,{children:Object(c.jsx)(r.a,{size:"xl"})})}},75:function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return l}));var a,r=n(4),c=n(47),i=n(66),o=function(e){return function(t,n){var a=new Date(t.metadata.date),r=new Date(n.metadata.date);return a===r?0:e?r<a?1:-1:a<r?1:-1}},s=function(e){return function(t,n){return t.name.localeCompare(n.name)*(e?1:-1)}},u=(a={},Object(r.a)(a,i.a.NameAsc,s(!0)),Object(r.a)(a,i.a.NameDesc,s(!1)),Object(r.a)(a,i.a.PublishDateAsc,o(!0)),Object(r.a)(a,i.a.PublishDateDesc,o(!1)),a),l={cdkType:function(e){if(e)return function(t){var n,a;return(null===(n=t.metadata)||void 0===n||null===(a=n.constructFramework)||void 0===a?void 0:a.name)===e}},cdkMajor:function(e){if(e)return function(t){var n,a;return(null===(n=t.metadata)||void 0===n||null===(a=n.constructFramework)||void 0===a?void 0:a.majorVersion)===e}},language:function(e){if(e&&e!==c.d.TypeScript)return function(t){var n;return void 0!==(null===(n=t.languages)||void 0===n?void 0:n[e])}},languages:function(e){var t,n=(null!==(t=null===e||void 0===e?void 0:e.length)&&void 0!==t?t:0)>0?new Set(e):void 0;if(n&&!n.has(c.d.TypeScript))return function(e){var t;return Object.keys(null!==(t=e.languages)&&void 0!==t?t:{}).some((function(e){return n.has(e)}))}}}},83:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(6),r=n(203),c=n(29),i=n(1),o=function(e){return Object(i.jsx)(r.a,Object(a.a)({as:c.b},e))}},84:function(e,t,n){"use strict";n.d(t,"c",(function(){return c})),n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s}));var a,r,c,i=n(4);!function(e){e.awscdk="aws-cdk",e.cdktf="cdktf",e.cdk8s="cdk8s"}(c||(c={}));var o=(a={},Object(i.a)(a,c.awscdk,"AWS CDK"),Object(i.a)(a,c.cdktf,"CDKtf"),Object(i.a)(a,c.cdk8s,"CDK8s"),a),s=(r={},Object(i.a)(r,c.awscdk,{name:o[c.awscdk],imgsrc:"/assets/awscdk-icon.png"}),Object(i.a)(r,c.cdk8s,{name:o[c.cdk8s],imgsrc:"/assets/cdk8s-icon.png"}),Object(i.a)(r,c.cdktf,{name:o[c.cdktf],imgsrc:"/assets/cdktf-icon.png"}),r)},85:function(e,t,n){"use strict";n.d(t,"b",(function(){return j})),n.d(t,"a",(function(){return f}));var a=n(5),r=n(0),c=n(32),i=n.n(c),o=n(49),s=n(10),u=function(){var e=Object(o.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(s.a.CATALOG_SUFFIX);case 2:if((t=e.sent).ok){e.next=6;break}throw console.error(t.statusText),new Error("Failed fetching packages index: ".concat(t.statusText));case 6:return e.abrupt("return",t.json());case 7:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),l=n(91),d=n(1),b=Object(r.createContext)({loading:!1,data:void 0,error:void 0}),j=function(){return Object(r.useContext)(b)},f=function(e){var t=e.children,n=Object(l.a)(u),c=Object(a.a)(n,2),i=c[0],o=c[1];return Object(r.useEffect)((function(){i()}),[i]),Object(d.jsx)(b.Provider,{value:o,children:t})}},86:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return d}));var a=n(6),r=n(5),c=n(0),i=n(139),o=n(91),s=n(1),u=Object(c.createContext)({loading:!1,data:void 0,error:void 0}),l="construct-hub-config",d=function(){return Object(c.useContext)(u)},b=function(e){var t=e.children,n=Object(c.useState)((function(){try{var e=localStorage.getItem(l);return e?JSON.parse(e):void 0}catch(t){console.error(t)}})),d=Object(r.a)(n,2),b=d[0],j=d[1],f=Object(o.a)(i.b,{onSuccess:function(e){j(e);try{localStorage.setItem(l,JSON.stringify(e))}catch(t){console.error(t)}}}),h=Object(r.a)(f,2),O=h[0],v=h[1];return Object(c.useEffect)((function(){O()}),[]),Object(s.jsx)(u.Provider,{value:Object(a.a)(Object(a.a)({},v),{},{data:b}),children:t})}},87:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(6),r=n(19),c=n(22),i=n(1),o=Object(r.a)((function(e,t){return Object(i.jsx)(c.a.form,Object(a.a)(Object(a.a)({},e),{},{ref:t}))}));o.displayName="Form"},90:function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return x}));var a=n(0),r=n(4),c=n(5),i=n(17),o=n(6),s=n(61),u=n(70),l=n(149),d=n.n(l),b=n(84),j=n(66),f=n(75),h=function(){function e(t){Object(s.a)(this,e),this.map=void 0,this.index=void 0,this.constructFrameworks=void 0;var n=t.reduce((function(e,t){var n=[t.name,t.version].join("@");return e.set(n,Object(o.a)(Object(o.a)({},t),{},{id:n})),e}),new Map);this.map=this.sort(n,j.a.PublishDateDesc),this.constructFrameworks=this.detectConstructFrameworks(),this.index=d()((function(){var e=this;this.ref("id"),this.field("name"),this.field("scope"),this.field("packageName"),this.field("description"),this.field("authorName"),this.field("authorEmail"),Object(i.a)(n.values()).forEach((function(t){var n=t.author,a=t.name.split("/"),r=Object(c.a)(a,2),i=r[0],o=r[1];i&&o&&(t.scope=i,t.packageName=o),"string"===typeof n&&(t.authorName=n),(null===n||void 0===n?void 0:n.name)&&(t.authorName=n.name),(null===n||void 0===n?void 0:n.email)&&(t.authorEmail=n.email),e.add(t)}))}))}return Object(u.a)(e,[{key:"search",value:function(e){var t=null!==e&&void 0!==e?e:{},n=t.query,a=t.filters,r=t.sort,c=n?this.query(n):new Map(this.map);return a&&(c=this.filter(c,a)),r&&(c=this.sort(c,r)),c}},{key:"query",value:function(e){var t=this,n=[];try{n=this.index.search(e)}catch(a){console.error(a)}return n.reduce((function(e,n){var a=n.ref,r=t.map.get(a);return r&&e.set(a,r),e}),new Map)}},{key:"filter",value:function(e,t){var n=t.cdkType,a=t.cdkMajor,r=t.language,c=t.languages,i=new Map(e),o=[f.a.cdkType(n),f.a.cdkMajor(n?a:void 0),f.a.language(r),f.a.languages(c)].filter(Boolean);return i.forEach((function(e){var t=!1;o.forEach((function(n){t||n(e)||(t=!0)})),t&&i.delete(e.id)})),i}},{key:"sort",value:function(e,t){return t?new Map(Object(i.a)(e.entries()).sort((function(e,n){var a=Object(c.a)(e,2)[1],r=Object(c.a)(n,2)[1];return f.b[t](a,r)}))):e}},{key:"detectConstructFrameworks",value:function(){var e;return Object(i.a)(this.map.values()).reduce((function(e,t){var n,a,r=t.metadata,c=null===r||void 0===r||null===(n=r.constructFramework)||void 0===n?void 0:n.name,i=null===r||void 0===r||null===(a=r.constructFramework)||void 0===a?void 0:a.majorVersion;if(c){var o=e[c];i&&!o.majorVersions.includes(i)&&o.majorVersions.push(i),o.pkgCount+=1}return e}),(e={},Object(r.a)(e,b.c.awscdk,{majorVersions:[],pkgCount:0}),Object(r.a)(e,b.c.cdk8s,{majorVersions:[],pkgCount:0}),Object(r.a)(e,b.c.cdktf,{majorVersions:[],pkgCount:0}),e))}}]),e}(),O=n(74),v=n(85),p=n(1),g=Object(a.createContext)(void 0),m=function(){return Object(a.useContext)(g)},x=function(e){var t=e.children,n=Object(v.b)(),r=n.data,c=n.loading,i=Object(a.useMemo)((function(){if(void 0!==(null===r||void 0===r?void 0:r.packages)&&!c)return new h(r.packages)}),[r,c]);return i?Object(p.jsx)(g.Provider,{value:i,children:t}):Object(p.jsx)(O.a,{})}},91:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(32),r=n.n(a),c=n(49),i=n(5),o=n(0),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initialValue,a=t.onSuccess,s=t.onError,u=Object(o.useState)(!1),l=Object(i.a)(u,2),d=l[0],b=l[1],j=Object(o.useState)(n),f=Object(i.a)(j,2),h=f[0],O=f[1],v=Object(o.useState)(),p=Object(i.a)(v,2),g=p[0],m=p[1],x=Object(o.useRef)(!1);Object(o.useEffect)((function(){return x.current=!0,function(){x.current=!1}}),[]);var k=Object(o.useCallback)(Object(c.a)(r.a.mark((function t(){var c,i=arguments;return r.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(x.current){t.next=2;break}return t.abrupt("return");case 2:return b(!0),m(void 0),t.prev=4,t.next=7,e.apply(void 0,i);case 7:c=t.sent,null===a||void 0===a||a(c),x.current&&(O(c),b(!1)),t.next=17;break;case 12:t.prev=12,t.t0=t.catch(4),console.error(t.t0),null===s||void 0===s||s(t.t0),x.current&&(O(n),m(t.t0),b(!1));case 17:case"end":return t.stop()}}),t,null,[[4,12]])}))),[s,a]);return Object(o.useMemo)((function(){return[k,{data:h,loading:d,error:g}]}),[k,h,d,g])}}},[[174,5,7]]]);
2
+ //# sourceMappingURL=main.a9b1d223.chunk.js.map