construct-hub-webapp 0.1.249 → 0.1.253

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 (65) hide show
  1. package/build/asset-manifest.json +43 -39
  2. package/build/index.html +1 -1
  3. package/build/service-worker.js +1 -1
  4. package/build/service-worker.js.map +1 -1
  5. package/build/static/js/{0.3c441159.chunk.js → 0.5ad19331.chunk.js} +2 -2
  6. package/build/static/js/{0.3c441159.chunk.js.map → 0.5ad19331.chunk.js.map} +1 -1
  7. package/build/static/js/1.70e091c8.chunk.js +2 -0
  8. package/build/static/js/1.70e091c8.chunk.js.map +1 -0
  9. package/build/static/js/10.ea2b219a.chunk.js +3 -0
  10. package/build/static/js/{11.3e7ab347.chunk.js.LICENSE.txt → 10.ea2b219a.chunk.js.LICENSE.txt} +0 -0
  11. package/build/static/js/10.ea2b219a.chunk.js.map +1 -0
  12. package/build/static/js/{10.5038f4e4.chunk.js → 11.aeb3d166.chunk.js} +2 -2
  13. package/build/static/js/{10.5038f4e4.chunk.js.map → 11.aeb3d166.chunk.js.map} +1 -1
  14. package/build/static/js/12.02a3d0a7.chunk.js +2 -0
  15. package/build/static/js/12.02a3d0a7.chunk.js.map +1 -0
  16. package/build/static/js/13.ac190679.chunk.js +2 -0
  17. package/build/static/js/13.ac190679.chunk.js.map +1 -0
  18. package/build/static/js/{12.180c2643.chunk.js → 14.8e810438.chunk.js} +2 -2
  19. package/build/static/js/{12.180c2643.chunk.js.map → 14.8e810438.chunk.js.map} +1 -1
  20. package/build/static/js/{13.51138a32.chunk.js → 15.6688232e.chunk.js} +2 -2
  21. package/build/static/js/{13.51138a32.chunk.js.map → 15.6688232e.chunk.js.map} +1 -1
  22. package/build/static/js/{14.04d06b74.chunk.js → 16.210e0dab.chunk.js} +3 -3
  23. package/build/static/js/{14.04d06b74.chunk.js.LICENSE.txt → 16.210e0dab.chunk.js.LICENSE.txt} +0 -0
  24. package/build/static/js/{14.04d06b74.chunk.js.map → 16.210e0dab.chunk.js.map} +1 -1
  25. package/build/static/js/{15.a6d03254.chunk.js → 17.2638b83f.chunk.js} +2 -2
  26. package/build/static/js/{15.a6d03254.chunk.js.map → 17.2638b83f.chunk.js.map} +1 -1
  27. package/build/static/js/2.e24744b9.chunk.js +2 -0
  28. package/build/static/js/2.e24744b9.chunk.js.map +1 -0
  29. package/build/static/js/5.2724fff8.chunk.js +3 -0
  30. package/build/static/js/{3.c48117e3.chunk.js.LICENSE.txt → 5.2724fff8.chunk.js.LICENSE.txt} +0 -0
  31. package/build/static/js/{3.c48117e3.chunk.js.map → 5.2724fff8.chunk.js.map} +1 -1
  32. package/build/static/js/6.9a3e7114.chunk.js +3 -0
  33. package/build/static/js/{4.07f80d65.chunk.js.LICENSE.txt → 6.9a3e7114.chunk.js.LICENSE.txt} +0 -0
  34. package/build/static/js/6.9a3e7114.chunk.js.map +1 -0
  35. package/build/static/js/7.1c9ccb21.chunk.js +2 -0
  36. package/build/static/js/7.1c9ccb21.chunk.js.map +1 -0
  37. package/build/static/js/8.fbb8172d.chunk.js +2 -0
  38. package/build/static/js/8.fbb8172d.chunk.js.map +1 -0
  39. package/build/static/js/9.f72a1066.chunk.js +2 -0
  40. package/build/static/js/9.f72a1066.chunk.js.map +1 -0
  41. package/build/static/js/main.f194ce06.chunk.js +2 -0
  42. package/build/static/js/main.f194ce06.chunk.js.map +1 -0
  43. package/build/static/js/runtime-main.c2e7c59e.js +2 -0
  44. package/build/static/js/runtime-main.c2e7c59e.js.map +1 -0
  45. package/cypress/integration/search.spec.ts +0 -20
  46. package/package.json +4 -4
  47. package/build/static/js/11.3e7ab347.chunk.js +0 -3
  48. package/build/static/js/11.3e7ab347.chunk.js.map +0 -1
  49. package/build/static/js/3.c48117e3.chunk.js +0 -3
  50. package/build/static/js/4.07f80d65.chunk.js +0 -3
  51. package/build/static/js/4.07f80d65.chunk.js.map +0 -1
  52. package/build/static/js/5.8a1668dc.chunk.js +0 -2
  53. package/build/static/js/5.8a1668dc.chunk.js.map +0 -1
  54. package/build/static/js/6.11aee62c.chunk.js +0 -2
  55. package/build/static/js/6.11aee62c.chunk.js.map +0 -1
  56. package/build/static/js/7.c53ed1ae.chunk.js +0 -2
  57. package/build/static/js/7.c53ed1ae.chunk.js.map +0 -1
  58. package/build/static/js/8.0c7361ec.chunk.js +0 -2
  59. package/build/static/js/8.0c7361ec.chunk.js.map +0 -1
  60. package/build/static/js/9.6620eb5b.chunk.js +0 -2
  61. package/build/static/js/9.6620eb5b.chunk.js.map +0 -1
  62. package/build/static/js/main.809e79d6.chunk.js +0 -2
  63. package/build/static/js/main.809e79d6.chunk.js.map +0 -1
  64. package/build/static/js/runtime-main.1cbbf81f.js +0 -2
  65. package/build/static/js/runtime-main.1cbbf81f.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[9],{225:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),c=a(238),r={home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},i=a(111),s=a(1),o=function(e){var t=e.children,a=e.meta,o=e.pageName,u=Object(i.b)(r[o]);Object(n.useEffect)((function(){u()}),[u]);var l=a.suffix,j=void 0===l||l,b=a.title,d=a.description,f=j?"".concat(b," - Construct Hub"):b;return Object(s.jsxs)(s.Fragment,{children:[Object(s.jsxs)(c.a,{children:[!1,Object(s.jsx)("meta",{content:"width=device-width, initial-scale=1",name:"viewport"}),Object(s.jsx)("meta",{charSet:"utf-8"}),Object(s.jsx)("title",{children:f}),Object(s.jsx)("meta",{content:f,property:"og:title"}),Object(s.jsx)("meta",{content:f,name:"twitter:title"}),Object(s.jsx)("meta",{content:"summary",name:"twitter:card"}),Object(s.jsx)("meta",{content:d,name:"description"}),Object(s.jsx)("meta",{content:d,property:"og:description"}),Object(s.jsx)("meta",{content:d,name:"twitter:description"})]}),t]})}},242:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(216),c=a(53),r=a(1),i=function(e){var t=e.children,a=e.language;return c.e.has(a)?Object(r.jsx)(r.Fragment,{children:t}):Object(r.jsx)(n.a,{hasArrow:!0,label:"Documentation support for ".concat(c.b[a]," is coming soon!"),placement:"top-start",children:Object(r.jsx)("span",{children:t})})}},243:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(6),c=a(22),r=a(21),i=a(185),s=a(589),o=a(1),u=["date","format"],l=Object(r.a)((function(e,t){var a=e.date,r=e.format,l=Object(c.a)(e,u);return Object(o.jsx)(i.a,Object(n.a)(Object(n.a)({as:"time",dateTime:a.toISOString(),ref:t},l),{},{children:Object(s.a)(a,r)}))}));l.displayName="Time"},288:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(190),c=a(1),r=function(e){var t=e.children;return Object(c.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,s=e.filtered,o=t*a,u=o+t;return Object(c.jsxs)(n.a,{children:["Displaying"," ",Object(c.jsxs)(r,{children:[i?o+1:i," - ",u>i?i:u]})," ","of ",Object(c.jsx)(r,{children:i})," ",s?"search results":"constructs","."]})}},289:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n=25},290:function(e,t,a){"use strict";a.d(t,"a",(function(){return z}));var n,c=a(5),r=a(210),i=a(192),s=a(0);!function(e){e.Wide="wide"}(n||(n={}));var o=a(294),u=a(141),l=a(222),j=a(4),b=a(190),d=a(110),f=a(109),O=a(79),m=a(243),h=a(56),v=Object(h.a)("packageCard",["author","description","languages","published","title","version","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(d.a)(),t=Object(j.a)(e,1)[0],a=T(),n=a.author,c=a.metadata.date,r=a.version,i="string"===typeof n?n:n.name;return Object(p.jsxs)(p.Fragment,{children:[Object(p.jsx)(g,{"data-testid":v.version,label:"Version",value:r}),Object(p.jsx)(g,{"data-testid":v.published,label:"Published",value:Object(p.jsx)(m.a,{date:new Date(c),fontSize:"xs",format:"MMM dd, yyyy"})}),Object(p.jsx)(g,{"data-testid":v.author,label:"Author",value:Object(p.jsx)(O.a,{to:Object(f.c)({query:'"'.concat(i,'"'),language:t}),children:i})})]})},y=a(206),w=a(29),S=function(){var e=Object(d.a)(),t=Object(j.a)(e,1)[0],a=T(),n=a.name,c=a.description,r=a.version;return Object(p.jsxs)(p.Fragment,{children:[Object(p.jsx)(o.b,{as:w.b,to:Object(f.a)({name:n,version:r,language:t}),children:Object(p.jsx)(y.a,{as:"h3",color:"blue.800","data-testid":v.title,fontSize:"md",fontWeight:"bold",children:n})}),Object(p.jsx)(b.a,{"data-testid":v.description,fontSize:"md",lineHeight:"tall",noOfLines:4,children:c||"No description available."})]})},C=a(6),P=a(53),k=a(242),D={sm:5,md:6,lg:8},N=function(e){var t=e.isRounded,a=void 0!==t&&t,n=e.languages,c=e.name,r=e.size,i=void 0===r?"md":r,s=e.version,o=Object.keys(null!==n&&void 0!==n?n:{});return Object(p.jsx)(p.Fragment,{children:Object.entries(P.c).sort((function(e,t){var a=Object(j.a)(e,1)[0],n=Object(j.a)(t,1)[0];return P.a.indexOf(a)-P.a.indexOf(n)})).map((function(e){var t=Object(j.a)(e,2),n=t[0],r=t[1],u=n,l=u===P.d.TypeScript||o.includes(u),b=u===P.d.TypeScript||P.e.has(u);if(!l)return null;var d=r.name,O=r.icon,m=Object(p.jsx)(O,{"aria-label":"Supports ".concat(d),borderRadius:a?"50%":0,h:D[i],opacity:b?1:.2,w:D[i]});return Object(p.jsx)(k.a,{language:u,children:b?Object(p.jsx)(w.b,{"aria-label":"View package docs for ".concat(u),to:Object(f.a)({name:c,version:s,language:u}),children:m}):m},u)}))})},L=function(){var e=T();return Object(p.jsx)(N,Object(C.a)(Object(C.a)({},e),{},{size:"sm"}))},A=function(){return Object(p.jsx)(o.a,{_hover:{"> article":{bg:"gray.50"}},children:Object(p.jsxs)(u.a,{as:"article",bg:"white",border:"base",borderRadius:"sm",color:"gray.600","data-testid":v.wideContainer,gap:5,p:5,templateColumns:{base:"1fr",md:"2fr 1fr"},templateRows:{base:"auto",md:"1fr"},w:"100%",children:[Object(p.jsxs)(l.a,{spacing:2,children:[Object(p.jsx)(S,{}),Object(p.jsx)(l.a,{direction:"row",spacing:1,children:Object(p.jsx)(L,{})})]}),Object(p.jsx)(l.a,{alignSelf:"center","data-testid":v.languages,fontSize:"xs",spacing:1,children:Object(p.jsx)(x,{})})]})})},E=Object(s.createContext)(null),T=function(){return Object(s.useContext)(E)},R=function(e){var t=e.pkg,a=e.variant,c=void 0===a?n.Wide:a;return Object(p.jsx)(E.Provider,{value:t,children:c===n.Wide&&Object(p.jsx)(A,{})})},U=Object(c.a)({},n.Wide,(function(e){var t=e.items;return Object(p.jsx)(l.a,{spacing:4,children:t.map((function(e){return Object(p.jsx)(R,{pkg:e,variant:n.Wide},"".concat(e.name,"-").concat(e.version))}))})})),z=Object(s.memo)((function(e){var t=e.cardView,a=void 0===t?n.Wide:t,c=e.items;if(e.loading||!c)return Object(p.jsx)(r.a,{children:Object(p.jsx)(i.a,{size:"xl"})});var s=U[a];return Object(p.jsx)(s,{items:c})}));z.displayName="PackageList"},291:function(e,t,a){"use strict";a.d(t,"a",(function(){return y}));var n=a(349),c=a(295),r=a(141),i=a(200),s=a(6),o=a(198),u=a(29),l=a(1),j=function(e){var t=e.icon,a=e.offset,n=e.getPageUrl,c={"aria-label":"Page ".concat(a," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue",icon:Object(l.jsx)(t,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==a?Object(l.jsx)(o.a,Object(s.a)(Object(s.a)({},c),{},{as:u.b,to:n({offset:a})})):Object(l.jsx)(o.a,Object(s.a)(Object(s.a)({},c),{},{disabled:!0}))},b=a(4),d=a(217),f=a(190),O=a(0),m=a(18),h=function(e){var t=e.pageLimit,a=e.offset,n=e.getPageUrl,c=Object(O.useState)((a+1).toString()),r=Object(b.a)(c,2),s=r[0],o=r[1],u=Object(m.g)().push;Object(O.useEffect)((function(){o((a+1).toString())}),[a]);return Object(l.jsxs)(i.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),u(n({offset:parseInt(s)-1}))},children:[Object(l.jsx)(d.a,{colorScheme:"blue",h:10,max:t+1,min:1,name:"page",onChange:function(e){e.preventDefault(),o(e.target.value)},p:0,textAlign:"center",type:"number",value:s,w:10}),Object(l.jsxs)(f.a,{ml:2,w:"max-content",children:["of ",t+1]})]})},v=a(348),p=a(145),g={children:"Next Page",colorScheme:"blue",rightIcon:Object(l.jsx)(v.a,{color:"white"})},x=function(e){var t=e.nextPageUrl;return t?Object(l.jsx)(p.a,Object(s.a)(Object(s.a)({},g),{},{as:u.b,to:t})):Object(l.jsx)(p.a,Object(s.a)(Object(s.a)({},g),{},{disabled:!0}))},y=function(e){var t=e.offset,a=e.pageLimit,s=e.getPageUrl,o=t<a?t+1:void 0,u=t>0?t-1:void 0;return Object(l.jsxs)(r.a,{alignItems:"center",pt:4,templateColumns:"repeat(3, 1fr)",templateRows:"1fr",children:[Object(l.jsx)(r.b,{colStart:2,justifySelf:"center",children:Object(l.jsx)(x,{nextPageUrl:o?s({offset:o}):void 0})}),Object(l.jsx)(r.b,{colStart:3,justifySelf:"end",children:Object(l.jsxs)(i.a,{align:"center",justify:"center",py:4,children:[Object(l.jsx)(h,{getPageUrl:s,offset:t,pageLimit:a}),Object(l.jsx)(j,{getPageUrl:s,icon:n.a,offset:u}),Object(l.jsx)(j,{getPageUrl:s,icon:c.a,offset:o})]})})]})}},590:function(e,t,a){"use strict";a.r(t),a.d(t,"SearchRedesign",(function(){return _})),a.d(t,"default",(function(){return _}));var n,c=a(141),r=a(225),i=a(4),s=a(222),o=a(206),u=a(0),l=a(113),j=a(53),b=a(214),d=a(190),f=a(1),O=function(e){var t=e.name,a=e.options,n=e.value,c=e.onValueChange;return Object(f.jsxs)(s.a,{spacing:2,children:[Object(f.jsx)(o.a,{as:"h4",size:"sm",children:t}),a.map((function(e){var t,a=e.display,r=e.value;return Object(f.jsx)(b.a,{isChecked:r===n,onChange:(t=r,function(){c(t===n?void 0:t)}),children:Object(f.jsx)(d.a,{color:"gray.600",fontSize:"sm",isTruncated:!0,children:a})},r)}))]})},m=Object.entries(j.b).filter((function(e){var t=Object(i.a)(e,1)[0];return j.e.has(t)})).map((function(e){var t=Object(i.a)(e,2),a=t[0];return{display:t[1],value:a}})),h=function(){var e=Object(u.useState)(),t=Object(i.a)(e,2),a=t[0],n=t[1],c=Object(u.useState)(),r=Object(i.a)(c,2),j=r[0],b=r[1],d=Object(u.useState)(),h=Object(i.a)(d,2),v=h[0],p=h[1];return Object(f.jsx)(l.a,{borderRadius:"none",boxShadow:"none",p:4,children:Object(f.jsxs)(s.a,{color:"blue.800",spacing:6,children:[Object(f.jsx)(o.a,{as:"h3",size:"sm",children:"Filters"}),Object(f.jsx)(O,{name:"CDK Type",onValueChange:n,options:[{display:"AWS CDK",value:"awscdk"},{display:"CDK for Terraform",value:"cdktf"},{display:"CDK for Kubernetes",value:"cdk8s"}],value:a}),Object(f.jsx)(O,{name:"Programming Language",onValueChange:b,options:m,value:j}),Object(f.jsx)(O,{name:"Author",onValueChange:p,options:[{display:"Community",value:"community"},{display:"AWS",value:"aws"}],value:v})]})})},v=a(17),p=a(6),g=a(67),x=a(84),y=a(573),w=a.n(y);!function(e){e.NameAsc="NameAsc",e.NameDesc="NameDesc",e.PublishDateAsc="PublishDateAsc",e.PublishDateDesc="PublishDateDesc"}(n||(n={}));var S,C=a(5),P=function(e){return function(t,a){var n=new Date(t.metadata.date),c=new Date(a.metadata.date);return n===c?0:e?c<n?1:-1:n<c?1:-1}},k=function(e){return function(t,a){return t.name.localeCompare(a.name)*(e?1:-1)}},D=(S={},Object(C.a)(S,n.NameAsc,k(!0)),Object(C.a)(S,n.NameDesc,k(!1)),Object(C.a)(S,n.PublishDateAsc,P(!0)),Object(C.a)(S,n.PublishDateDesc,P(!1)),S),N=function(){function e(t){Object(g.a)(this,e),this.map=void 0,this.index=void 0;var a=t.reduce((function(e,t){var a=[t.name,t.version].join("@");return e.set(a,Object(p.a)(Object(p.a)({},t),{},{id:a})),e}),new Map);this.map=this.sort(a,n.PublishDateDesc),this.index=w()((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(v.a)(a.values()).forEach((function(t){var a=t.author,n=t.name.split("/"),c=Object(i.a)(n,2),r=c[0],s=c[1];r&&s&&(t.scope=r,t.packageName=s),"string"===typeof a&&(t.authorName=a),(null===a||void 0===a?void 0:a.name)&&(t.authorName=a.name),(null===a||void 0===a?void 0:a.email)&&(t.authorEmail=a.email),e.add(t)}))}))}return Object(x.a)(e,[{key:"search",value:function(e){var t=null!==e&&void 0!==e?e:{},a=t.query,n=t.filters,c=t.sort,r=a?this.query(a):new Map(this.map);return n&&(r=this.filter(r,n)),c&&(r=this.sort(r,c)),r}},{key:"query",value:function(e){var t=this,a=[];try{a=this.index.search(e)}catch(n){console.error(n)}return a.reduce((function(e,a){var n=a.ref,c=t.map.get(n);return c&&e.set(n,c),e}),new Map)}},{key:"filter",value:function(e,t){var a=t.language,n=new Map(e);return n.forEach((function(e){a&&a!==j.d.TypeScript&&void 0===e.languages[a]&&n.delete(e.id)})),n}},{key:"sort",value:function(e,t){return t?new Map(Object(v.a)(e.entries()).sort((function(e,a){var n=Object(i.a)(e,2)[1],c=Object(i.a)(a,2)[1];return D[t](n,c)}))):e}}]),e}(),L=a(86),A=a(80),E=Object(u.createContext)(void 0),T=function(e){var t=e.children,a=Object(A.b)(),n=a.data,c=a.loading,r=Object(u.useState)([]),s=Object(i.a)(r,2),o=s[0],l=s[1],j=Object(u.useMemo)((function(){if(void 0!==(null===n||void 0===n?void 0:n.packages)&&!c){var e=new N(n.packages);return l(Object(v.a)(e.search().values())),e}}),[n,c]),b=Object(u.useCallback)((function(e){if(j){var t=j.search(e);l(Object(v.a)(t.values()))}}),[j]);return j?Object(f.jsx)(E.Provider,{value:{results:o,search:b},children:t}):Object(f.jsx)(L.a,{})},R=a(200),U=a(185),z=a(202),M=a(115),W=a(290),q=a(13),F=a(117),V=function(e,t){var a=t.limit,n=t.offset,c=t.pageLimit,r=(n>c?c:n)*a,i=r+a;return e.slice(r,i)},H=a(114),I=a(109),K=a(291),Q=a(288),G=a(289),J=function(){var e,t,a=Object(H.a)(),n=Object(u.useContext)(E),c=n.results,s=n.search,o=decodeURIComponent(null!==(e=a.get(q.b.SEARCH_QUERY))&&void 0!==e?e:""),l=a.get(q.b.LANGUAGE),j=Object(F.a)({defaultQuery:o,defaultLanguage:l}),b=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t}(null!==(t=a.get(q.b.OFFSET))&&void 0!==t?t:"0"),d=function(e,t){var a=null!==t&&void 0!==t?t:{},n=a.limit,c=void 0===n?25:n,r=a.offset,s=void 0===r?0:r,o=e?Math.floor(e.length/c):0,l=Object(u.useState)(V(e,{limit:c,offset:s,pageLimit:o})),j=Object(i.a)(l,2),b=j[0],d=j[1];return Object(u.useEffect)((function(){d(V(e,{limit:c,offset:s,pageLimit:o}))}),[c,s,e]),Object(u.useMemo)((function(){return{page:b,pageLimit:o}}),[b,o])}(c,{offset:b,limit:G.a}),O=d.page,m=d.pageLimit;return Object(u.useEffect)((function(){s({query:o,filters:{language:null!==l&&void 0!==l?l:void 0}})}),[l,o]),Object(u.useEffect)((function(){o!==j.query&&j.setQuery(o)}),[o]),Object(f.jsx)(r.a,{meta:{title:o||"Search",description:o?"".concat(c.length," results for ").concat(o," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(f.jsxs)(R.a,{direction:"column",maxW:"100vw",children:[Object(f.jsx)(U.a,{p:4,children:Object(f.jsx)(M.a,Object(p.a)({},j))}),Object(f.jsx)(z.a,{}),Object(f.jsxs)(U.a,{p:4,children:[Object(f.jsx)(R.a,{justify:"space-between",pb:4,children:Object(f.jsx)(Q.a,{count:c.length,filtered:!!o,limit:G.a,offset:b})}),Object(f.jsx)(W.a,{items:O}),Object(f.jsx)(K.a,{getPageUrl:function(e){var t,a;return Object(I.c)({query:null!==(t=e.q)&&void 0!==t?t:o,language:l,offset:null!==(a=e.offset)&&void 0!==a?a:b})},limit:G.a,offset:b,pageLimit:m})]})]})})},_=function(){return Object(f.jsx)(r.a,{meta:{title:"Search - Construct Hub",description:"This is a placeholder"},pageName:"search",children:Object(f.jsx)(T,{children:Object(f.jsxs)(c.a,{gap:4,p:6,templateColumns:"1fr 3fr",templateRows:"1fr",children:[Object(f.jsx)(h,{}),Object(f.jsx)(J,{})]})})})}}}]);
2
+ //# sourceMappingURL=9.f72a1066.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["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","api/catalog-search/constants.ts","views/SearchRedesign/Filter.tsx","views/SearchRedesign/FilterPanel.tsx","api/catalog-search/util.ts","api/catalog-search/catalog-search.ts","views/SearchRedesign/SearchAPI.tsx","hooks/usePagination/usePagination.ts","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","Link","getPackagePath","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","h","opacity","w","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","align","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","CatalogSearchSort","Filter","options","checkedValue","onValueChange","v","display","isChecked","isTruncated","languageOptions","filter","key","FilterPanel","cdkType","setCdkType","setLanguage","setAuthor","Card","boxShadow","getDateSort","isAscending","p1","p2","d1","d2","getStrSort","localeCompare","SORT_FUNCTIONS","NameAsc","NameDesc","PublishDateAsc","PublishDateDesc","CatalogSearchAPI","catalogData","index","catalogMap","reduce","id","join","set","Map","this","lunr","field","values","forEach","split","scope","email","authorEmail","add","params","filters","results","refs","console","error","packages","get","copiedResults","result","delete","strategy","SearchAPIContext","SearchAPIProvider","useCatalog","data","setResults","searchAPI","useMemo","instance","useCallback","res","PageLoader","takePage","opts","start","stop","slice","SearchResults","queryParams","useQueryParams","searchQuery","decodeURIComponent","QUERY_PARAMS","SEARCH_QUERY","languageQuery","LANGUAGE","useCatalogSearch","defaultQuery","defaultLanguage","val","toNum","OFFSET","Math","floor","length","setPage","usePagination","setQuery","maxW","CatalogSearch","pb","q","SearchRedesign"],"mappings":"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","file":"static/js/9.f72a1066.chunk.js","sourcesContent":["export const pageInfo = {\n home: {\n event: {\n name: \"Home Load\",\n },\n },\n faq: {\n event: {\n name: \"Frequently Asked Questions Load\",\n },\n },\n packageProfile: {\n event: {\n name: \"Package Profile Load\",\n },\n },\n search: {\n event: {\n name: \"Search Load\",\n },\n },\n siteTerms: {\n event: {\n name: \"Site Terms Load\",\n },\n },\n notFound: {\n page: {\n pageType: \"errorPage\",\n },\n event: {\n name: \"404 Page Load\",\n },\n },\n} as const;\n","import { FunctionComponent, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { pageInfo } from \"../../constants/pageInfo\";\nimport { usePageView } from \"../../contexts/Analytics\";\n\nexport interface PageProps {\n pageName: keyof typeof pageInfo;\n meta: {\n suffix?: boolean;\n title: string;\n description: string;\n };\n}\n\nexport const Page: FunctionComponent<PageProps> = ({\n children,\n meta,\n pageName,\n}) => {\n const trackPageView = usePageView(pageInfo[pageName]);\n\n useEffect(() => {\n trackPageView();\n }, [trackPageView]);\n\n const { suffix = true, title, description } = meta;\n const formattedTitle = suffix ? `${title} - Construct Hub` : title;\n\n return (\n <>\n <Helmet>\n {process.env.NODE_ENV === \"development\" && (\n <meta\n content=\"default-src 'self' 'unsafe-inline' https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; connect-src 'self' https://*.shortbread.aws.dev ws://localhost:3000 https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; frame-src 'none'; img-src 'self' https://* http://*.omtrdc.net; object-src 'none'; style-src 'self' 'unsafe-inline';\"\n httpEquiv=\"Content-Security-Policy\"\n />\n )}\n\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n <meta charSet=\"utf-8\" />\n\n <title>{formattedTitle}</title>\n <meta content={formattedTitle} property=\"og:title\" />\n <meta content={formattedTitle} name=\"twitter:title\" />\n <meta content=\"summary\" name=\"twitter:card\" />\n\n <meta content={description} name=\"description\" />\n <meta content={description} property=\"og:description\" />\n <meta content={description} name=\"twitter:description\" />\n </Helmet>\n {children}\n </>\n );\n};\n","import { 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 \"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 { Heading as ChakraHeading, LinkOverlay, Text } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLanguage\";\nimport { getPackagePath } from \"../../util/url\";\nimport { usePackageCard } from \"./PackageCard\";\nimport testIds from \"./testIds\";\n\nexport const Heading: FunctionComponent = () => {\n const [currentLanguage] = useLanguage();\n const { name, description, version } = usePackageCard();\n\n return (\n <>\n <LinkOverlay\n as={Link}\n to={getPackagePath({\n name,\n version,\n language: currentLanguage,\n })}\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 </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 </>\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<CatalogPackage | null>(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","export enum CatalogSearchSort {\n NameAsc = \"NameAsc\",\n NameDesc = \"NameDesc\",\n PublishDateAsc = \"PublishDateAsc\",\n PublishDateDesc = \"PublishDateDesc\",\n}\n","import { Checkbox, Heading, Stack, Text } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport interface FilterProps {\n name: string;\n options: {\n display: string;\n value: string;\n }[];\n value: string | undefined;\n onValueChange: (value: string | undefined) => void;\n}\n\nexport const Filter: FunctionComponent<FilterProps> = ({\n name,\n options,\n value: checkedValue,\n onValueChange,\n}) => {\n const getOnChange = (v: string) => () => {\n onValueChange(v === checkedValue ? undefined : v);\n };\n\n return (\n <Stack spacing={2}>\n <Heading as=\"h4\" size=\"sm\">\n {name}\n </Heading>\n {options.map(({ display, value }) => (\n <Checkbox\n isChecked={value === checkedValue}\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 { Heading, Stack } from \"@chakra-ui/react\";\nimport { FunctionComponent, useState } from \"react\";\nimport { Card } from \"../../components/Card\";\nimport {\n Language,\n LANGUAGE_NAME_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\nimport { Filter } from \"./Filter\";\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 interface FilterPanelProps {}\n\nexport const FilterPanel: FunctionComponent<FilterPanelProps> = () => {\n const [cdkType, setCdkType] = useState<string | undefined>();\n const [language, setLanguage] = useState<string | undefined>();\n const [author, setAuthor] = useState<string | undefined>();\n\n return (\n <Card borderRadius=\"none\" boxShadow=\"none\" p={4}>\n <Stack color=\"blue.800\" spacing={6}>\n <Heading as=\"h3\" size=\"sm\">\n Filters\n </Heading>\n <Filter\n name=\"CDK Type\"\n onValueChange={setCdkType}\n options={[\n {\n display: \"AWS CDK\",\n value: \"awscdk\",\n },\n {\n display: \"CDK for Terraform\",\n value: \"cdktf\",\n },\n {\n display: \"CDK for Kubernetes\",\n value: \"cdk8s\",\n },\n ]}\n value={cdkType}\n />\n <Filter\n name=\"Programming Language\"\n onValueChange={setLanguage}\n options={languageOptions}\n value={language}\n />\n <Filter\n name=\"Author\"\n onValueChange={setAuthor}\n options={[\n {\n display: \"Community\",\n value: \"community\",\n },\n {\n display: \"AWS\",\n value: \"aws\",\n },\n ]}\n value={author}\n />\n </Stack>\n </Card>\n );\n};\n","import { CatalogPackage } from \"../package/packages\";\nimport { CatalogSearchSort } from \"./constants\";\n\ntype SortFunction = (p1: CatalogPackage, p2: CatalogPackage) => number;\n\nconst getDateSort =\n (isAscending: boolean): SortFunction =>\n (p1, p2) => {\n const d1 = new Date(p1.metadata.date);\n const d2 = new Date(p2.metadata.date);\n if (d1 === d2) {\n return 0;\n }\n\n if (isAscending) {\n return d2 < d1 ? 1 : -1;\n }\n\n return d1 < d2 ? 1 : -1;\n };\n\nconst getStrSort = (isAscending: boolean): SortFunction => {\n return (p1, p2) => p1.name.localeCompare(p2.name) * (isAscending ? 1 : -1);\n};\n\nexport const SORT_FUNCTIONS: Record<CatalogSearchSort, SortFunction> = {\n [CatalogSearchSort.NameAsc]: getStrSort(true),\n [CatalogSearchSort.NameDesc]: getStrSort(false),\n [CatalogSearchSort.PublishDateAsc]: getDateSort(true),\n [CatalogSearchSort.PublishDateDesc]: getDateSort(false),\n};\n","import lunr from \"lunr\";\nimport { Language } from \"../../constants/languages\";\nimport { CatalogPackage } from \"../package/packages\";\nimport { CatalogSearchSort } from \"./constants\";\nimport { SORT_FUNCTIONS } from \"./util\";\n\nexport interface CatalogPackageWithId extends CatalogPackage {\n id: string;\n}\n\nexport interface CatalogSearchFilters {\n // TODO: CDK Type & Tag filters\n language?: Language;\n}\n\nexport type CatalogSearchResults = Map<string, CatalogPackageWithId>;\n\nexport class CatalogSearchAPI {\n private readonly map: CatalogSearchResults;\n private index: lunr.Index;\n\n constructor(catalogData: CatalogPackage[]) {\n const catalogMap = catalogData.reduce((map, pkg) => {\n const { name, version } = pkg;\n const id = [name, version].join(\"@\");\n\n map.set(id, {\n ...pkg,\n id,\n });\n\n return map;\n }, new Map());\n\n this.map = this.sort(catalogMap, CatalogSearchSort.PublishDateDesc);\n\n this.index = lunr(function () {\n this.ref(\"id\");\n this.field(\"name\");\n this.field(\"scope\");\n this.field(\"packageName\");\n this.field(\"description\");\n this.field(\"authorName\");\n this.field(\"authorEmail\");\n\n [...catalogMap.values()].forEach((pkg) => {\n const { author, name } = pkg;\n\n const [scope, packageName] = name.split(\"/\");\n\n if (scope && packageName) {\n pkg.scope = scope;\n pkg.packageName = packageName;\n }\n\n if (typeof author === \"string\") {\n pkg.authorName = author;\n }\n\n if (author?.name) {\n pkg.authorName = author.name;\n }\n\n if (author?.email) {\n pkg.authorEmail = author.email;\n }\n\n this.add(pkg);\n });\n });\n }\n\n /**\n * Performs a Search against the catalog and returns a Map with results ordered\n * by search score / relevance\n */\n public search(params?: {\n query?: string;\n filters?: CatalogSearchFilters;\n sort?: CatalogSearchSort;\n }): CatalogSearchResults {\n const { query, filters, sort } = params ?? {};\n\n let results = query ? this.query(query) : new Map(this.map);\n\n if (filters) {\n results = this.filter(results, filters);\n }\n\n if (sort) {\n results = this.sort(results, sort);\n }\n\n return results;\n }\n\n /**\n * This calls the index search method and returns a map of results ordered by relevance.\n */\n private query(query: string): CatalogSearchResults {\n let refs: lunr.Index.Result[] = [];\n\n try {\n refs = this.index.search(query);\n } catch (e) {\n console.error(e);\n }\n\n return refs.reduce((packages, { ref }) => {\n const pkg = this.map.get(ref);\n\n if (pkg) {\n packages.set(ref, pkg);\n }\n\n return packages;\n }, new Map() as CatalogSearchResults);\n }\n\n /**\n * Filters query results. Mutates the passed-in map\n */\n private filter(\n results: CatalogSearchResults,\n filters: CatalogSearchFilters\n ): CatalogSearchResults {\n const { language } = filters;\n const copiedResults = new Map(results);\n\n copiedResults.forEach((result) => {\n if (language && language !== Language.TypeScript) {\n if (result.languages[language] === undefined) {\n copiedResults.delete(result.id);\n return;\n }\n }\n });\n\n return copiedResults;\n }\n\n /**\n * Sort filtered results\n */\n private sort(\n results: CatalogSearchResults,\n strategy: CatalogSearchSort\n ): CatalogSearchResults {\n if (strategy) {\n return new Map(\n [...results.entries()].sort(([, p1], [, p2]) =>\n SORT_FUNCTIONS[strategy](p1, p2)\n )\n );\n } else {\n return results;\n }\n }\n}\n","import {\n createContext,\n FunctionComponent,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport {\n CatalogPackageWithId,\n CatalogSearchAPI,\n} from \"../../api/catalog-search\";\nimport { PageLoader } from \"../../components/PageLoader\";\nimport { useCatalog } from \"../../contexts/Catalog\";\n\ntype SearchFn = (params: Parameters<CatalogSearchAPI[\"search\"]>[0]) => void;\n\ninterface SearchAPI {\n search: SearchFn;\n results: CatalogPackageWithId[];\n}\n\nconst SearchAPIContext = createContext<SearchAPI | undefined>(undefined);\n\nexport const useSearchAPI = () => useContext(SearchAPIContext)!;\n\nexport const SearchAPIProvider: FunctionComponent = ({ children }) => {\n const { data, loading } = useCatalog();\n const [results, setResults] = useState<SearchAPI[\"results\"]>([]);\n\n const searchAPI = useMemo(() => {\n if (data?.packages === undefined || loading) return;\n\n const instance = new CatalogSearchAPI(data.packages);\n setResults([...instance.search().values()]);\n return instance;\n }, [data, loading]);\n\n const search: SearchAPI[\"search\"] = useCallback(\n (params) => {\n if (!searchAPI) {\n return;\n }\n\n const res = searchAPI.search(params);\n setResults([...res.values()]);\n },\n [searchAPI]\n );\n\n if (!searchAPI) {\n return <PageLoader />;\n }\n\n return (\n <SearchAPIContext.Provider value={{ results, search }}>\n {children}\n </SearchAPIContext.Provider>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\n\nexport interface UsePaginationOptions {\n limit?: number;\n offset?: number;\n}\n\nconst takePage = <T extends any[]>(\n items: T,\n opts: Required<UsePaginationOptions & { pageLimit: number }>\n) => {\n const { limit, offset, pageLimit } = opts;\n const start = (offset > pageLimit ? pageLimit : offset) * limit;\n const stop = start + limit;\n return items.slice(start, stop);\n};\n\nexport const usePagination = <T extends any[]>(\n data: T,\n options?: UsePaginationOptions\n) => {\n const { limit = 25, offset = 0 } = options ?? {};\n const pageLimit = data ? Math.floor(data.length / limit) : 0;\n\n const [page, setPage] = useState(\n takePage(data, { limit, offset, pageLimit })\n );\n\n useEffect(() => {\n setPage(takePage(data, { limit, offset, pageLimit }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [limit, offset, data]);\n\n return useMemo(() => ({ page, pageLimit }), [page, pageLimit]);\n};\n","import { Box, Divider, Flex } from \"@chakra-ui/react\";\nimport { FunctionComponent, useEffect } from \"react\";\nimport { CatalogSearch } from \"../../components/CatalogSearch\";\nimport { PackageList } from \"../../components/PackageList\";\nimport { Page } from \"../../components/Page\";\nimport { Language } from \"../../constants/languages\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport { useCatalogSearch } from \"../../hooks/useCatalogSearch\";\nimport { usePagination } from \"../../hooks/usePagination\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\nimport { getSearchPath } from \"../../util/url\";\nimport { PageControls } from \"../SearchResults/components/PageControls\";\nimport { ShowingDetails } from \"../SearchResults/components/ShowingDetails\";\nimport { LIMIT, SearchQueryParam } from \"../SearchResults/constants\";\nimport { useSearchAPI } from \"./SearchAPI\";\n\nconst 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 SearchResults: FunctionComponent = () => {\n const queryParams = useQueryParams();\n const { results, search } = useSearchAPI();\n\n const searchQuery = decodeURIComponent(\n queryParams.get(QUERY_PARAMS.SEARCH_QUERY) ?? \"\"\n );\n\n const languageQuery = queryParams.get(\n QUERY_PARAMS.LANGUAGE\n ) as Language | null;\n\n const searchAPI = useCatalogSearch({\n defaultQuery: searchQuery,\n defaultLanguage: languageQuery,\n });\n\n const offset = toNum(queryParams.get(QUERY_PARAMS.OFFSET) ?? \"0\");\n\n const { page, pageLimit } = usePagination(results, { offset, limit: LIMIT });\n\n const getUrl = (\n params: Partial<{ [key in SearchQueryParam]: number | string }>\n ) => {\n return getSearchPath({\n query: (params.q ?? searchQuery) as string,\n language: languageQuery,\n offset: params.offset ?? offset,\n });\n };\n\n useEffect(() => {\n search({\n query: searchQuery,\n filters: { language: languageQuery ?? undefined },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [languageQuery, searchQuery]);\n\n useEffect(() => {\n // Reflect changes to queryParam to search input (specifically for tag clicks)\n if (searchQuery !== searchAPI.query) {\n searchAPI.setQuery(searchQuery);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery]);\n\n return (\n <Page\n meta={{\n title: searchQuery || \"Search\",\n description: searchQuery\n ? `${results.length} results for ${searchQuery} at Construct Hub`\n : \"Search reusable components for your cloud application\",\n }}\n pageName=\"search\"\n >\n <Flex direction=\"column\" maxW=\"100vw\">\n <Box p={4}>\n <CatalogSearch {...searchAPI} />\n </Box>\n <Divider />\n <Box p={4}>\n <Flex justify=\"space-between\" pb={4}>\n <ShowingDetails\n count={results.length}\n filtered={!!searchQuery}\n limit={LIMIT}\n offset={offset}\n />\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 { SearchAPIProvider } from \"./SearchAPI\";\nimport { SearchResults } from \"./SearchResults\";\n\nexport const SearchRedesign: FunctionComponent = () => {\n return (\n <Page\n meta={{\n title: \"Search - Construct Hub\",\n description: \"This is a placeholder\",\n }}\n pageName=\"search\"\n >\n <SearchAPIProvider>\n <Grid gap={4} p={6} templateColumns=\"1fr 3fr\" templateRows=\"1fr\">\n {/* Filter Panel */}\n <FilterPanel />\n {/* Results, Info, and Controls */}\n\n <SearchResults />\n </Grid>\n </SearchAPIProvider>\n </Page>\n );\n};\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[3],{109:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return l})),n.d(t,"a",(function(){return u}));var r=n(5),c=n(4),a=n(13),o=new RegExp(/git@github\.com:([a-zA-Z-]+)+\/?([a-zA-Z-]+)*(\.git)?/),i=function(e){try{var t=e,n=e.match(o);if(n){var r=Object(c.a)(n,3),a=r[1],i=r[2];t="https://github.com/".concat(a,"/").concat(i)}return{hostname:new URL(t).hostname,url:t}}catch(s){return}},s=function(e,t){var n=e;if(t){var r=function(e,t){var n=new URLSearchParams(t);return Object.entries(e).filter((function(e){return null!=Object(c.a)(e,2)[1]})).forEach((function(e){var t=Object(c.a)(e,2),r=t[0],a=t[1];n.set(r,"".concat(a))})),n.toString()}(t);r&&(n+="?".concat(r))}return n},l=function(e){var t,n=e.query,c=e.offset,o=e.language;return s(a.c.SEARCH,(t={},Object(r.a)(t,a.b.SEARCH_QUERY,n),Object(r.a)(t,a.b.LANGUAGE,o),Object(r.a)(t,a.b.OFFSET,null!==c&&void 0!==c?c:0),t))},u=function(e){var t,n=e.name,c=e.version,o=e.language,i=e.submodule;return s("".concat(a.c.PACKAGES,"/").concat(n,"/v/").concat(c),(t={},Object(r.a)(t,a.b.SUBMODULE,i),Object(r.a)(t,a.b.LANGUAGE,o),t))}},110:function(e,t,n){"use strict";n.d(t,"a",(function(){return j}));var r=n(4),c=n(0),a=n(18),o=n(53),i=n(13),s=n(114),l=o.d.TypeScript,u="preferred-language",d=function(e){return null!=e&&o.e.has(e)},b=function(e){if(d(e))return e;try{var t,n=null!==(t=localStorage.getItem(u))&&void 0!==t?t:"";if(d(n))return n}catch(r){}return l},j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.updateUrl,n=e.updateSaved,o=Object(a.h)(),l=o.pathname,j=o.hash,f=Object(a.g)(),h=f.replace,O=Object(s.a)(),p=O.get(i.b.LANGUAGE),g=Object(c.useState)((function(){return b(p)})),v=Object(r.a)(g,2),m=v[0],x=v[1];Object(c.useEffect)((function(){d(p)&&p!==m&&x(p)}),[p]),Object(c.useEffect)((function(){p!==m&&t&&(O.set(i.b.LANGUAGE,m),h({pathname:l,hash:j,search:O.toString()}))}),[m,t]);var y=Object(c.useCallback)((function(e){if(x(e),n)try{localStorage.setItem(u,e)}catch(t){}}),[n]);return Object(c.useMemo)((function(){return[m,y]}),[m,y])}},111:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return l}));var r=n(0),c=n(18),a=n(1),o=Object(r.createContext)({trackPageView:function(){}}),i=function(e){var t=e.children,n=Object(c.h)().pathname,i=Object(r.useRef)(null),s=Object(r.useCallback)((function(e){var t,r,c;i.current!==n&&(null===(t=window)||void 0===t||null===(r=t.AWSMA)||void 0===r||null===(c=r.ready)||void 0===c||c.call(r,(function(){document.dispatchEvent(new CustomEvent(window.AWSMA.TRIGGER_EVENT,{detail:e})),i.current=n})))}),[n]);return Object(a.jsx)(o.Provider,{value:{trackPageView:s},children:t})},s=n(6),l=function(e){var t=Object(r.useContext)(o).trackPageView,n=Object(c.h)().pathname,a=Object(r.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(r.useCallback)((function(){return t(a)}),[t,a])}},113:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(6),c=n(21),a=n(185),o=n(1),i=Object(c.a)((function(e,t){return Object(o.jsx)(a.a,Object(r.a)({bg:"white",border:"base",borderRadius:"card",boxShadow:"base",p:2,ref:t},e))}));i.displayName="Card"},114:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),c=n(18),a=function(){var e=Object(c.h)().search;return Object(r.useMemo)((function(){return new URLSearchParams(e)}),[e])}},115:function(e,t,n){"use strict";n.d(t,"a",(function(){return y})),n.d(t,"b",(function(){return m}));var r=n(6),c=n(22),a=n(141),o=n(81),i=n(4),s=n(21),l=n(217),u=n(145),d=n(53),b=n(205),j=n(213),f=n(190),h=n(1),O=n(56),p=Object(O.a)("catalogSearch",["form","input","languageDropdown","languageDropdownMenu","languageDropdownValue","languageItem","submit"]),g=Object.fromEntries(Object.entries(d.b).filter((function(e){var t=Object(i.a)(e,1)[0];return d.e.has(t)}))),v=function(e){var t=e.placeholder,n=e.items,r=e.onSelect,c=e.selected,a=e.testIds,o=c?n[c]:t,s=Object.entries(n);return Object(h.jsxs)(j.a,{strategy:"fixed",children:[Object(h.jsx)(j.b,{as:u.a,bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":a.trigger,rightIcon:Object(h.jsx)(b.a,{color:"blue.500"}),variant:"outline",children:Object(h.jsx)(f.a,{"data-testid":a.value,children:o})}),Object(h.jsxs)(j.f,{"data-testid":a.menu,children:[Object(h.jsx)(j.e,{"data-testid":a.item,onClick:function(){return r(null)},children:"Any"}),s.map((function(e){var t=Object(i.a)(e,2),n=t[0],c=t[1];return Object(h.jsx)(j.e,{"data-testid":a.item,onClick:function(){return r(n)},children:c},n)}))]})]})},m=Object(s.a)((function(e,t){var n=e.query,r=e.onQueryChange,c=e.language,a=e.onLanguageChange;return Object(h.jsxs)(h.Fragment,{children:[Object(h.jsx)(l.a,{bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":p.input,name:"query",onChange:r,placeholder:"Search Constructs...",ref:t,value:n}),Object(h.jsx)(v,{items:g,onSelect:a,placeholder:"Language...",selected:c,testIds:{item:p.languageItem,menu:p.languageDropdownMenu,trigger:p.languageDropdown,value:p.languageDropdownValue}}),Object(h.jsx)(u.a,{boxShadow:"base",colorScheme:"blue","data-testid":p.submit,type:"submit",children:"Search"})]})})),x=["onSubmit"],y=function(e){var t=e.onSubmit,n=Object(c.a)(e,x);return Object(h.jsx)(o.a,{"data-testid":p.form,onSubmit:t,children:Object(h.jsx)(a.a,{autoRows:"1fr",gap:4,templateColumns:{sm:"1fr",md:"3fr 1fr 1fr"},width:"full",children:Object(h.jsx)(m,Object(r.a)({},n))})})}},116:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(17),c=n(0),a=n(53),o=n(80),i=function(e){var t=e.limit,n=e.offset,i=void 0===n?0:n,s=e.query,l=void 0===s?"":s,u=e.language,d=void 0===u?null:u,b=Object(o.b)(),j=b.data,f=b.loading,h=b.error,O=Object(c.useMemo)((function(){if(f||h||!(null===j||void 0===j?void 0:j.packages))return[];var e=j.packages.filter((function(e){if(d&&d!==a.d.TypeScript&&!Object.keys(e.languages).includes(d))return!1;if(l.length){var t=JSON.stringify(e).toLowerCase(),n=l.toLowerCase();if(!t.includes(n))return!1}return!0}));return Object(r.a)(e).sort((function(e,t){var n=new Date(e.metadata.date),r=new Date(t.metadata.date);return n===r?0:n<r?1:-1}))}),[null===j||void 0===j?void 0:j.packages,h,d,f,l]),p=O?Math.floor(O.length/t):0,g=Object(c.useMemo)((function(){var e=(i>p?p:i)*t,n=e+t;return O.slice(e,n)}),[t,i,p,O]);return Object(c.useMemo)((function(){return{loading:f,results:O,error:h,displayable:g,pageLimit:p}}),[g,h,f,p,O])}},117:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(4),c=n(0),a=n(18),o=n(109),i=function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=Object(c.useState)(null!==(e=n.defaultQuery)&&void 0!==e?e:""),s=Object(r.a)(i,2),l=s[0],u=s[1],d=Object(c.useState)(null!==(t=n.defaultLanguage)&&void 0!==t?t:null),b=Object(r.a)(d,2),j=b[0],f=b[1],h=Object(a.g)(),O=h.push,p=function(e){e.preventDefault(),u(e.target.value)},g=Object(c.useCallback)((function(){O(Object(o.c)({language:j,query:l}))}),[j,O,l]),v=Object(c.useCallback)((function(e){null===e||void 0===e||e.preventDefault(),g()}),[g]);return Object(c.useMemo)((function(){return{language:j,onLanguageChange:f,onQueryChange:p,onSearch:g,onSubmit:v,query:l,setLanguage:f,setQuery:u}}),[j,g,v,l])}},13:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a}));var r={PACKAGES_PREFIX:"/data",CATALOG_SUFFIX:"/catalog.json",ASSEMBLY_SUFFIX:"/assembly.json",METADATA_SUFFIX:"/metadata.json",CONFIG:"/config.json"},c={LANGUAGE:"lang",OFFSET:"offset",SEARCH_QUERY:"q",SUBMODULE:"submodule"},a={FAQ:"/faq",HOME:"/",PACKAGES:"/packages",SEARCH:"/search",SITE_TERMS:"/terms"}},132:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(4),c=n(0),a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(c.useState)(e),a=Object(r.a)(n,2),o=a[0],i=a[1],s=t.delay,l=void 0===s?250:s,u=t.onChange;return Object(c.useEffect)((function(){var t=setTimeout((function(){i(e),null===u||void 0===u||u(e)}),l);return function(){clearTimeout(t)}}),[e,l,u]),o}},133:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(6),c=n(22),a=n(21),o=n(208),i=n(1),s=["name","onClick"],l=Object(a.a)((function(e,t){var n=e.name,a=e.onClick,l=Object(c.a)(e,s);return Object(i.jsx)(o.a,Object(r.a)(Object(r.a)({alignItems:"center",display:"flex",fontSize:"lg",h:12,lineHeight:"base",listStyleType:"none",onClick:a,onKeyDown:function(e){"Enter"===e.key&&a()},px:4,ref:t,role:"option",sx:{":hover, :focus":{bg:"gray.100"}},tabIndex:0},l),{},{children:n}))}));l.displayName="SearchItem"},158:function(e,t,n){},165:function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"initialize",(function(){return R})),n.d(r,"access",(function(){return L})),n.d(r,"checkForCookieConsent",(function(){return W})),n.d(r,"customizeCookies",(function(){return D})),n.d(r,"getConsentCookie",(function(){return N})),n.d(r,"hasConsent",(function(){return U}));var c,a,o=n(0),i=n.n(o),s=n(76),l=n.n(s),u=n(29),d=(n(158),n(141)),b=n(18),j=n(197),f=n(199),h=n(193),O=n(185),p=n(196),g=n(190),v=n(198),m=n(113),x=n(55),y=n(1),S="showing-dev-preview-banner",w=function(){var e,t=Object(h.a)({defaultIsOpen:JSON.parse(null!==(e=window.sessionStorage.getItem(S))&&void 0!==e?e:"true"),onClose:function(){return window.sessionStorage.setItem(S,"false")}}),n=t.isOpen,r=t.onClose;return Object(y.jsx)(O.a,{h:"max-content",children:Object(y.jsx)(p.a,{in:n,children:Object(y.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(y.jsx)(j.a,{h:5,left:4,position:"absolute",top:4,w:5}),Object(y.jsxs)(g.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(y.jsx)(x.a,{color:"inherit",hasWarning:!1,href:"https://github.com/cdklabs/construct-hub-webapp/issues",textDecoration:"underline",children:"here"})]}),Object(y.jsx)(v.a,{"aria-label":"Dismiss banner",colorScheme:"white",icon:Object(y.jsx)(f.a,{}),onClick:r,position:"absolute",right:4,size:"xs",top:3,variant:"ghost"})]})})})},C=n(4),k=n(200),E=n(201),A=n(202),I=n(145),z=n(22),T=n(32),M=n.n(T),F=n(48),P=function(){new URLSearchParams(window.location.search).get("sb")},R=function(){var e=Object(F.a)(M.a.mark((function e(){return M.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(F.a)(M.a.mark((function r(){var a,o,i;return M.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,a={domain:window.location.hostname,language:navigator.language,__storeWriter:P()},r.next=4,n.e(16).then(n.t.bind(null,586,7));case 4:o=r.sent,i=o.AWSCShortbread,c=i(a),e(),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(0),t(r.t0);case 13:case"end":return r.stop()}}),r,null,[[0,10]])}))))})));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),G=function(e){return function(){var t;if(!c)throw new Error("shortbread has not been initialized");return(t=c)[e].apply(t,arguments)}},L=G("access"),W=G("checkForCookieConsent"),D=G("customizeCookies"),N=G("getConsentCookie"),U=G("hasConsent"),H=R,_=Object(z.a)(r,["initialize"]),B=Object(o.createContext)({}),J=function(e){var t=e.children,n=Object(o.useState)(!1),r=Object(C.a)(n,2),c=r[0],a=r[1];return Object(o.useEffect)((function(){var e=!1;return H().then((function(){e||(_.checkForCookieConsent(),a(!0))})).catch((function(t){console.error(t),e||a(!1)})),function(){e=!0,a(!1)}}),[]),Object(y.jsx)(B.Provider,{value:c?_:{},children:t})},V=n(79),q=n(13),K={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:"Site Terms",url:q.c.SITE_TERMS,testId:"site-terms",isExternal:!1},LEGAL:{display:"Legal",url:"https://aws.amazon.com/legal/",testId:"legal"}},Q=n(17),X=n(56),Y=Object(X.a)("footer",["container","links","disclaimer","manageCookies"].concat(Object(Q.a)(Object.values(K).map((function(e){return e.testId}))))),Z=function(){var e=Object(o.useContext)(B).customizeCookies;return Object(y.jsxs)(k.a,{align:"center",as:"footer",bg:"blue.800",color:"white","data-testid":Y.container,direction:"column",justify:"center",py:4,children:[Object(y.jsx)(E.a,{columnGap:6,columns:[1,2,4],"data-testid":Y.links,children:Object.entries(K).map((function(e,t){var n=Object(C.a)(e,2),r=n[0],c=n[1],a=c.display,o=c.isExternal,i=void 0===o||o,s=c.testId,l=c.url;return Object(y.jsxs)(k.a,{align:"center",direction:{base:"column",md:"row"},children:[Object(y.jsx)(O.a,{display:{base:"none",md:0!==t?"initial":"none"},h:5,children:Object(y.jsx)(A.a,{borderColor:"white",mr:6,orientation:"vertical"})}),i?Object(y.jsx)(x.a,{color:"currentcolor","data-testid":Y[s],hasWarning:!1,href:l,lineHeight:10,mx:"auto",children:a}):Object(y.jsx)(V.a,{color:"currentcolor","data-testid":Y[s],lineHeight:10,mx:"auto",to:l,children:a}),Object(y.jsx)(O.a,{display:{base:"none",sm:t<2?"initial":"none",md:"none"},w:"100%",children:Object(y.jsx)(A.a,{borderColor:"white"})})]},r)}))}),Object(y.jsx)(g.a,{"data-testid":Y.disclaimer,fontSize:"xs",mt:4,children:"2021 Amazon Web Services, Inc. All rights reserved."}),Object(y.jsx)(I.a,{color:"white","data-testid":Y.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(213),re=["children"],ce=function(e){var t=e.children,n=Object(z.a)(e,re);return Object(y.jsx)(ne.a,Object($.a)(Object($.a)({colorScheme:"blue.800",strategy:"fixed"},n),{},{children:t}))},ae=n(21),oe=["items"],ie=function(e){var t=e.display,n=e.isNavLink,r=e.url;return n?Object(y.jsx)(V.a,{color:"blue.500",to:r,children:t}):Object(y.jsx)(x.a,{alignItems:"center",display:"flex",hasWarning:!1,href:r,justifyContent:"space-between",w:"100%",children:t})},se=Object(ae.a)((function(e,t){var n=e.items,r=Object(z.a)(e,oe);return Object(y.jsx)(ne.f,Object($.a)(Object($.a)({},r),{},{ref:t,children:n.map((function(e,t){return"links"in e?Object(y.jsxs)(o.Fragment,{children:[Object(y.jsx)(ne.d,{align:"left",title:e.display,children:e.links.map((function(e,t){return Object(y.jsx)(ne.e,{children:Object(y.jsx)(ie,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}),t!==n.length-1&&Object(y.jsx)(ne.c,{})]},"".concat(e.display,"-").concat(t)):Object(y.jsx)(ne.e,{children:Object(y.jsx)(ie,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}))})),le=n(205),ue=["children"],de=Object(ae.a)((function(e,t){var n=e.children,r=Object(z.a)(e,ue);return Object(y.jsx)(ne.b,Object($.a)(Object($.a)({as:I.a,color:"blue.800",fontWeight:"500",ref:t,rightIcon:Object(y.jsx)(le.a,{h:6,w:6}),size:"md",variant:"link"},r),{},{children:n}))})),be=Object(X.a)("header",["container","title","gettingStartedTrigger","gettingStartedMenu","resourcesTrigger","resourcesMenu","navOpen","navClose","searchButton","searchIcon","mobileNav"]),je=function(){return Object(y.jsxs)(ce,{children:[Object(y.jsx)(de,{"data-testid":be.gettingStartedTrigger,children:"Getting Started"}),Object(y.jsx)(se,{"data-testid":be.gettingStartedMenu,items:ee})]})},fe=n(207),he=n(220),Oe=n(221),pe=n(43),ge=n(222),ve=function(){return Object(y.jsxs)(ce,{children:[Object(y.jsx)(de,{"data-testid":be.resourcesTrigger,children:"Resources"}),Object(y.jsx)(se,{"data-testid":be.resourcesMenu,items:te})]})},me=n(206),xe=function(){return Object(y.jsx)(me.a,{as:"h1",color:"blue.800","data-testid":be.title,size:"lg",children:Object(y.jsxs)(u.b,{to:"/",children:[Object(y.jsx)(O.a,{as:"span",color:"blue.500",children:"Construct"})," ","Hub"]})})},ye=function(e){var t=e.isOpen,n=e.onClose;return Object(y.jsx)(he.a,{children:Object(y.jsxs)(Oe.a,{isOpen:t,onClose:n,placement:"left",size:"xs",children:[Object(y.jsx)(pe.h,{}),Object(y.jsxs)(Oe.b,{"data-testid":be.mobileNav,children:[Object(y.jsx)(pe.c,{}),Object(y.jsx)(pe.g,{display:"flex",justifyContent:"center",children:Object(y.jsx)(xe,{})}),Object(y.jsx)(pe.b,{children:Object(y.jsxs)(ge.a,{align:"start",justify:"start",spacing:4,children:[Object(y.jsx)(je,{}),Object(y.jsx)(ve,{})]})})]})]})})},Se=function(){var e=Object(h.a)();return Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(v.a,{"aria-label":"Navigation Menu",borderRadius:"md","data-testid":be.navOpen,display:{md:"none"},icon:Object(y.jsx)(fe.a,{}),onClick:e.onOpen,variant:"ghost"}),Object(y.jsx)(ye,Object($.a)({},e))]})},we=n(209),Ce=n(208),ke=n(116),Ee=n(117),Ae=n(132),Ie=n(110),ze=n(115),Te=n(81),Me=n(133),Fe=Object(X.a)("searchModal",["container"]),Pe=["onSubmit"],Re=function(e){var t=e.isOpen,n=e.onClose,r=Object(b.g)().push,c=Object(Ie.a)(),a=Object(C.a)(c,1)[0],i=Object(Ee.a)(),s=i.onSubmit,l=Object(z.a)(i,Pe),u=Object(Ae.a)({query:l.query,language:l.language}),d=u.query,j=u.language,f=Object(ke.a)({limit:5,offset:0,query:d,language:j}).displayable,h=(d||j)&&f.length>0,O=Object(o.useRef)(null);return Object(y.jsx)(he.a,{children:Object(y.jsx)(pe.a,{initialFocusRef:O,isOpen:t,onClose:n,children:Object(y.jsx)(pe.h,{children:Object(y.jsxs)(pe.d,{"data-testid":Fe.container,children:[Object(y.jsx)(pe.c,{}),Object(y.jsx)(pe.g,{children:"Search modules or providers"}),Object(y.jsxs)(pe.b,{children:[Object(y.jsx)(Te.a,{onSubmit:function(e){n(),s(e)},pb:4,children:Object(y.jsx)(ge.a,{spacing:4,children:Object(y.jsx)(ze.b,Object($.a)({ref:O},l))})}),h&&Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(A.a,{}),Object(y.jsx)(me.a,{fontSize:"md",my:4,textAlign:"center",children:"Suggestions"}),Object(y.jsx)(Ce.c,{children:f.map((function(e){return Object(y.jsx)(Me.a,{name:e.name,onClick:function(){return t="".concat(q.c.PACKAGES,"/").concat(e.name,"/v/").concat(e.version,"?").concat(q.b.LANGUAGE,"=").concat(null!==j&&void 0!==j?j:a),n(),void r(t);var t}},e.name)}))})]})]})]})})})})},Ge=function(){var e=Object(h.a)(),t=Object(b.h)().pathname;return[q.c.HOME,q.c.SEARCH].some((function(e){return e===t}))?null:Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(I.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(y.jsx)(we.a,{color:"gray.600",ml:4}),variant:"outline",w:"100%",children:"Search Constructs..."}),Object(y.jsx)(v.a,{"aria-label":"Search Icon",borderRadius:"md","data-testid":be.searchIcon,display:{base:"initial",md:"none"},icon:Object(y.jsx)(we.a,{color:"gray.600"}),onClick:e.onOpen,variant:"ghost"}),Object(y.jsx)(Re,Object($.a)({},e))]})},Le=function(e){return Object(y.jsx)(d.b,Object($.a)({align:"center",justify:"center",rowStart:1},e))},We=function(){return Object(y.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(y.jsx)(Le,{colStart:{base:2,md:1},justifySelf:{base:"center",md:"start"},children:Object(y.jsx)(xe,{})}),Object(y.jsx)(Le,{colStart:{base:3,md:2},justifySelf:{base:"end",md:"stretch"},children:Object(y.jsx)(Ge,{})}),Object(y.jsxs)(Le,{colStart:{base:1,md:3},justifySelf:{base:"start",md:"end"},children:[Object(y.jsxs)(d.a,{display:{base:"none",md:"grid"},gap:4,gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr",placeItems:"center",w:"100%",children:[Object(y.jsx)(O.a,{children:Object(y.jsx)(je,{})}),Object(y.jsx)(O.a,{children:Object(y.jsx)(ve,{})})]}),Object(y.jsx)(Se,{})]})]})},De=n(86),Ne=["component"],Ue=function(e){var t=e.component,n=Object(z.a)(e,Ne);return Object(y.jsx)(b.b,Object($.a)(Object($.a)({},n),{},{children:Object(y.jsx)(o.Suspense,{fallback:Object(y.jsx)(De.a,{}),children:Object(y.jsx)(t,{})})}))},He=n(85),_e=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(14)]).then(n.bind(null,592))})),Be=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(13)]).then(n.bind(null,595))})),Je=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(8)]).then(n.bind(null,594))})),Ve=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,266))})),qe=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(5),n.e(7)]).then(n.bind(null,588))})),Ke=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(12)]).then(n.bind(null,596))})),Qe=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(10),n.e(9)]).then(n.bind(null,590))})),Xe=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(15)]).then(n.bind(null,597))})),Ye=function(){var e,t=Object(He.b)(),n=t.data,r=t.loading,c=null!==(e=null===n||void 0===n?void 0:n.featureFlags)&&void 0!==e?e:{},a=(null===c||void 0===c?void 0:c.homeRedesign)||(null===c||void 0===c?void 0:c.searchRedesign);return Object(y.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(y.jsx)(We,{}),r||a?Object(y.jsx)("div",{}):Object(y.jsx)(w,{}),r?Object(y.jsx)(De.a,{}):Object(y.jsxs)(b.d,{children:[Object(y.jsx)(Ue,{component:_e,exact:!0,path:q.c.FAQ}),Object(y.jsx)(Ue,{component:(null===c||void 0===c?void 0:c.homeRedesign)?Je:Be,exact:!0,path:q.c.HOME}),Object(y.jsx)(Ue,{component:Xe,exact:!0,path:q.c.SITE_TERMS}),Object(y.jsx)(Ue,{component:qe,path:q.c.PACKAGES}),Object(y.jsx)(Ue,{component:(null===c||void 0===c?void 0:c.searchRedesign)?Qe:Ke,exact:!0,path:q.c.SEARCH}),Object(y.jsx)(Ue,{component:Ve,path:"*"})]}),Object(y.jsx)(Z,{})]})},Ze=n(111),$e=n(80),et=n(99),tt=n(215),nt=n(211),rt=n(95),ct=rt.theme.components.Code,at=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 r="function"===typeof e?e(n):e;return Object($.a)(Object($.a)({},r),{},{container:Object($.a)(Object($.a)({},r.container),t)})}},it=rt.theme.components.Tag,st=Object($.a)(Object($.a)({},it),{},{baseStyle:{container:{fontWeight:"normal"}},variants:Object($.a)(Object($.a)({},it.variants),{},{subtle:ot(it.variants.subtle,{background:"#F2F2F2",color:"blue.800"}),official:ot(it.variants.subtle,{background:"rgba(33, 150, 83, 0.1)",color:"#219653"})})}),lt=Object($.a)(Object($.a)({},rt.theme.components),{},{Code:at,Divider:{defaultProps:{borderColor:"rgba(0, 124, 253, 0.15)"}},Tag:st}),ut={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)"}},dt=Object(nt.a)(Object($.a)(Object($.a)({},ut),{},{components:lt})),bt=function(e){var t=e.children;return Object(y.jsx)(tt.a,{resetCSS:!0,theme:dt,children:t})},jt=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}$/)),ft=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)}))};l.a.render(Object(y.jsx)(i.a.StrictMode,{children:Object(y.jsx)(u.a,{children:Object(y.jsx)(J,{children:Object(y.jsx)(Ze.a,{children:Object(y.jsx)(He.a,{children:Object(y.jsx)($e.a,{children:Object(y.jsx)(bt,{children:Object(y.jsx)(et.a,{children:Object(y.jsx)(Ye,{})})})})})})})})}),document.getElementById("root")),a&&a instanceof Function&&n.e(17).then(n.bind(null,587)).then((function(e){var t=e.getCLS,n=e.getFID,r=e.getFCP,c=e.getLCP,o=e.getTTFB;t(a),n(a),r(a),c(a),o(a)}),(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");jt?(!function(e,t){fetch(e,{headers:{"Service-Worker":"script"}}).then((function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):ft(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")}))):ft(t,e)}))}}()},53:function(e,t,n){"use strict";n.d(t,"d",(function(){return a})),n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d})),n.d(t,"e",(function(){return b})),n.d(t,"c",(function(){return j}));var r,c,a,o=n(5),i=n(6),s=n(100),l=n(1);!function(e){e.DotNet="dotnet",e.TypeScript="typescript",e.Python="python",e.Go="golang",e.Java="java"}(a||(a={}));var u=[a.TypeScript,a.Python,a.Java,a.Go,a.DotNet],d=(r={},Object(o.a)(r,a.TypeScript,"TypeScript"),Object(o.a)(r,a.Python,"Python"),Object(o.a)(r,a.Java,"Java"),Object(o.a)(r,a.Go,"Go"),Object(o.a)(r,a.DotNet,".NET"),r),b=new Set([a.Python,a.TypeScript,a.Java]),j=(c={},Object(o.a)(c,a.TypeScript,{name:d.typescript,icon:function(e){return Object(l.jsxs)(s.a,Object(i.a)(Object(i.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 256",children:[Object(l.jsx)("path",{d:"M0 128v128h256V0H0z",fill:"#007ACC"}),Object(l.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(o.a)(c,a.Python,{name:d.python,icon:function(e){return Object(l.jsxs)(s.a,Object(i.a)(Object(i.a)({},e),{},{version:"1.0",viewBox:"0 0 110.421 109.846",children:[Object(l.jsxs)("defs",{children:[Object(l.jsxs)("linearGradient",{id:"a",children:[Object(l.jsx)("stop",{offset:"0",stopColor:"#ffe052"}),Object(l.jsx)("stop",{offset:"1",stopColor:"#ffc331"})]}),Object(l.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"d",x1:"89.137",x2:"147.777",xlinkHref:"#a",y1:"111.921",y2:"168.101"}),Object(l.jsxs)("linearGradient",{id:"b",children:[Object(l.jsx)("stop",{offset:"0",stopColor:"#387eb8"}),Object(l.jsx)("stop",{offset:"1",stopColor:"#366994"})]}),Object(l.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"c",x1:"55.549",x2:"110.149",xlinkHref:"#b",y1:"77.07",y2:"131.853"})]}),Object(l.jsxs)("g",{color:"#000",children:[Object(l.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(l.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(o.a)(c,a.Java,{name:d.java,icon:function(e){return Object(l.jsxs)(s.a,Object(i.a)(Object(i.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 346",children:[Object(l.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(l.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(l.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(l.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(l.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(o.a)(c,a.Go,{name:d.golang,icon:function(e){return Object(l.jsx)(s.a,Object(i.a)(Object(i.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 512 192",children:Object(l.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(o.a)(c,a.DotNet,{name:d.dotnet,icon:function(e){return Object(l.jsx)(s.a,Object(i.a)(Object(i.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 32 32",children:Object(l.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"})}))}}),c)},55:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(6),c=n(22),a=n(194),o=n(21),i=n(195),s=n(99),l=n(1),u=["children","hasIcon","hasWarning","href","onClick","noFollow"],d=Object(o.a)((function(e,t){var n=e.children,o=e.hasIcon,d=void 0===o||o,b=e.hasWarning,j=void 0===b||b,f=e.href,h=e.onClick,O=e.noFollow,p=Object(c.a)(e,u),g=Object(s.b)(),v="noopener noreferrer";return(j||O)&&(v+=" nofollow"),Object(l.jsxs)(i.a,Object(r.a)(Object(r.a)({color:"blue.500",href:f,isExternal:!0,onClick:j?g({href:f,onClick:h}):h,ref:t,rel:v},p),{},{children:[n," ",d&&Object(l.jsx)(a.a,{mb:1,ml:2})]}))}));d.displayName="ExternalLink"},56:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(e,t){return t.reduce((function(t,n){return t[n]="".concat(e,"-").concat(n),t}),{})}},79:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(6),c=n(195),a=n(29),o=n(1),i=function(e){return Object(o.jsx)(c.a,Object(r.a)({as:a.b},e))}},80:function(e,t,n){"use strict";n.d(t,"b",(function(){return j})),n.d(t,"a",(function(){return f}));var r=n(4),c=n(0),a=n(32),o=n.n(a),i=n(48),s=n(13),l=function(){var e=Object(i.a)(o.a.mark((function e(){var t;return o.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)}}(),u=n(87),d=n(1),b=Object(c.createContext)({loading:!1,data:void 0,error:void 0}),j=function(){return Object(c.useContext)(b)},f=function(e){var t=e.children,n=Object(u.a)(l),a=Object(r.a)(n,2),o=a[0],i=a[1];return Object(c.useEffect)((function(){o()}),[o]),Object(d.jsx)(b.Provider,{value:i,children:t})}},81:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(6),c=n(21),a=n(25),o=n(1),i=Object(c.a)((function(e,t){return Object(o.jsx)(a.a.form,Object(r.a)(Object(r.a)({},e),{},{ref:t}))}));i.displayName="Form"},85:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return O}));var r=n(6),c=n(4),a=n(0),o=n(32),i=n.n(o),s=n(48),l=n(13),u={},d=function(){var e=Object(s.a)(i.a.mark((function e(){var t;return i.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(l.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",u);case 8:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.log("Invalid config response, using default values"),u})));case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),b=n(87),j=n(1),f=Object(a.createContext)({loading:!1,data:void 0,error:void 0}),h="construct-hub-config",O=function(){return Object(a.useContext)(f)},p=function(e){var t=e.children,n=Object(a.useState)((function(){try{var e=localStorage.getItem(h);return e?JSON.parse(e):void 0}catch(t){console.error(t)}})),o=Object(c.a)(n,2),i=o[0],s=o[1],l=Object(b.a)(d,{onSuccess:function(e){s(e);try{localStorage.setItem(h,JSON.stringify(e))}catch(t){console.error(t)}}}),u=Object(c.a)(l,2),O=u[0],p=u[1];return Object(a.useEffect)((function(){O()}),[]),Object(j.jsx)(f.Provider,{value:Object(r.a)(Object(r.a)({},p),{},{data:i}),children:t})}},86:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(210),c=n(192),a=n(1),o=function(){return Object(a.jsx)(r.a,{children:Object(a.jsx)(c.a,{size:"xl"})})}},87:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(32),c=n.n(r),a=n(48),o=n(4),i=n(0),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initialValue,r=t.onSuccess,s=t.onError,l=Object(i.useState)(!1),u=Object(o.a)(l,2),d=u[0],b=u[1],j=Object(i.useState)(n),f=Object(o.a)(j,2),h=f[0],O=f[1],p=Object(i.useState)(),g=Object(o.a)(p,2),v=g[0],m=g[1],x=Object(i.useRef)(!1);Object(i.useEffect)((function(){return x.current=!0,function(){x.current=!1}}),[]);var y=Object(i.useCallback)(Object(a.a)(c.a.mark((function t(){var a,o=arguments;return c.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,o);case 7:a=t.sent,null===r||void 0===r||r(a),x.current&&(O(a),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,r]);return Object(i.useMemo)((function(){return[y,{data:h,loading:d,error:v}]}),[y,h,d,v])}},99:function(e,t,n){"use strict";n.d(t,"b",(function(){return g})),n.d(t,"a",(function(){return v}));var r=n(6),c=n(4),a=n(193),o=n(0),i="prefersWarnOnExternalLinkClick",s=n(194),l=n(43),u=n(190),d=n(214),b=n(145),j=n(216),f=n(55),h=n(1),O=function(e){var t=e.href,n=e.isOpen,r=e.onClick,a=e.onClose,O=e.setShouldWarn,p=Object(o.useState)(!0),g=Object(c.a)(p,2),v=g[0],m=g[1];return Object(h.jsx)(l.a,{closeOnOverlayClick:!1,isOpen:n,onClose:a,children:Object(h.jsx)(l.h,{children:Object(h.jsxs)(l.d,{color:"blue.800",children:[Object(h.jsx)(l.g,{children:"Confirm"}),Object(h.jsxs)(l.b,{children:[Object(h.jsx)(u.a,{fontSize:"lg",mb:2,children:"This link is taking you to an external site"}),Object(h.jsx)(u.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)(l.f,{children:[Object(h.jsx)(b.a,{onClick:function(){m(!0),a()},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(!v){O(v);try{localStorage.setItem(i,JSON.stringify(v))}catch(t){}}null===r||void 0===r||r(e),a()},children:Object(h.jsx)(b.a,{colorScheme:"blue",ml:4,rightIcon:Object(h.jsx)(s.a,{}),tabIndex:0,variant:"ghost",children:"Proceed"})})})]})]})})})},p=Object(o.createContext)((function(e){return e.onClick})),g=function(){return Object(o.useContext)(p)},v=function(e){var t=e.children,n=Object(o.useState)(null),s=Object(c.a)(n,2),l=s[0],u=s[1],d=Object(a.a)({onClose:function(){u(null)}}),b=d.isOpen,j=d.onOpen,f=d.onClose,g=Object(o.useState)((function(){try{var e,t=null!==(e=localStorage.getItem(i))&&void 0!==e?e:"true";return JSON.parse(t)}catch(n){return!0}})),v=Object(c.a)(g,2),m=v[0],x=v[1],y=Object(o.useCallback)((function(e){var t=e.href,n=e.onClick;if(!m)return n;return function(e){u({href:t,onClick:n}),e.preventDefault(),j()}}),[j,m]);return Object(h.jsxs)(p.Provider,{value:y,children:[t,Object(h.jsx)(O,Object(r.a)({isOpen:b,onClose:f,setShouldWarn:x},l))]})}}},[[165,4,6]]]);
2
+ //# sourceMappingURL=main.f194ce06.chunk.js.map