construct-hub-webapp 0.1.248 → 0.1.252
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.
- package/build/asset-manifest.json +41 -39
- package/build/index.html +1 -1
- package/build/service-worker.js +1 -1
- package/build/service-worker.js.map +1 -1
- package/build/static/js/{0.3c441159.chunk.js → 0.eac96593.chunk.js} +2 -2
- package/build/static/js/{0.3c441159.chunk.js.map → 0.eac96593.chunk.js.map} +1 -1
- package/build/static/js/1.f1cf5c72.chunk.js +2 -0
- package/build/static/js/1.f1cf5c72.chunk.js.map +1 -0
- package/build/static/js/10.67470f34.chunk.js +2 -0
- package/build/static/js/10.67470f34.chunk.js.map +1 -0
- package/build/static/js/{11.3e7ab347.chunk.js → 11.7a407d94.chunk.js} +3 -3
- package/build/static/js/{11.3e7ab347.chunk.js.LICENSE.txt → 11.7a407d94.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{11.3e7ab347.chunk.js.map → 11.7a407d94.chunk.js.map} +1 -1
- package/build/static/js/12.6ec7141c.chunk.js +2 -0
- package/build/static/js/12.6ec7141c.chunk.js.map +1 -0
- package/build/static/js/{12.180c2643.chunk.js → 13.6a8b9e20.chunk.js} +2 -2
- package/build/static/js/{12.180c2643.chunk.js.map → 13.6a8b9e20.chunk.js.map} +1 -1
- package/build/static/js/{13.51138a32.chunk.js → 14.024c1a38.chunk.js} +2 -2
- package/build/static/js/{13.51138a32.chunk.js.map → 14.024c1a38.chunk.js.map} +1 -1
- package/build/static/js/{14.04d06b74.chunk.js → 15.ed72dbe0.chunk.js} +3 -3
- package/build/static/js/{14.04d06b74.chunk.js.LICENSE.txt → 15.ed72dbe0.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{14.04d06b74.chunk.js.map → 15.ed72dbe0.chunk.js.map} +1 -1
- package/build/static/js/{15.a6d03254.chunk.js → 16.5f5aad89.chunk.js} +2 -2
- package/build/static/js/{15.a6d03254.chunk.js.map → 16.5f5aad89.chunk.js.map} +1 -1
- package/build/static/js/{3.c48117e3.chunk.js → 4.33ed4462.chunk.js} +3 -3
- package/build/static/js/{3.c48117e3.chunk.js.LICENSE.txt → 4.33ed4462.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{3.c48117e3.chunk.js.map → 4.33ed4462.chunk.js.map} +1 -1
- package/build/static/js/{4.07f80d65.chunk.js → 5.31f776a0.chunk.js} +3 -3
- package/build/static/js/{4.07f80d65.chunk.js.LICENSE.txt → 5.31f776a0.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/5.31f776a0.chunk.js.map +1 -0
- package/build/static/js/6.cb540adf.chunk.js +2 -0
- package/build/static/js/6.cb540adf.chunk.js.map +1 -0
- package/build/static/js/{8.0c7361ec.chunk.js → 7.415d3d06.chunk.js} +2 -2
- package/build/static/js/{8.0c7361ec.chunk.js.map → 7.415d3d06.chunk.js.map} +1 -1
- package/build/static/js/{9.6620eb5b.chunk.js → 8.24ecd2ff.chunk.js} +2 -2
- package/build/static/js/{9.6620eb5b.chunk.js.map → 8.24ecd2ff.chunk.js.map} +1 -1
- package/build/static/js/9.214e3382.chunk.js +2 -0
- package/build/static/js/9.214e3382.chunk.js.map +1 -0
- package/build/static/js/main.e071d0b6.chunk.js +2 -0
- package/build/static/js/{main.809e79d6.chunk.js.map → main.e071d0b6.chunk.js.map} +1 -1
- package/build/static/js/runtime-main.0ec50908.js +2 -0
- package/build/static/js/runtime-main.0ec50908.js.map +1 -0
- package/package.json +4 -4
- package/build/static/js/10.5038f4e4.chunk.js +0 -2
- package/build/static/js/10.5038f4e4.chunk.js.map +0 -1
- package/build/static/js/4.07f80d65.chunk.js.map +0 -1
- package/build/static/js/5.8a1668dc.chunk.js +0 -2
- package/build/static/js/5.8a1668dc.chunk.js.map +0 -1
- package/build/static/js/6.11aee62c.chunk.js +0 -2
- package/build/static/js/6.11aee62c.chunk.js.map +0 -1
- package/build/static/js/7.c53ed1ae.chunk.js +0 -2
- package/build/static/js/7.c53ed1ae.chunk.js.map +0 -1
- package/build/static/js/main.809e79d6.chunk.js +0 -2
- package/build/static/js/runtime-main.1cbbf81f.js +0 -2
- package/build/static/js/runtime-main.1cbbf81f.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[0],{241:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return fe}));var r=n(58),o=n.n(r),i=n(352),a=n.n(i),u=n(86),c=n.n(u),s=n(0),l=n.n(s),f=n(105),p=n.n(f),d="bodyAttributes",y="htmlAttributes",h="titleAttributes",b={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},m=(Object.keys(b).map((function(e){return b[e]})),"charset"),T="cssText",v="href",w="http-equiv",g="innerHTML",A="itemprop",C="name",O="property",E="rel",S="src",j="target",P={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k="defaultTitle",L="defer",I="encodeSpecialCharacters",x="onChangeClientState",M="titleTemplate",N=Object.keys(P).reduce((function(e,t){return e[P[t]]=t,e}),{}),R=[b.NOSCRIPT,b.SCRIPT,b.STYLE],D="data-react-helmet",H="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},q=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Y=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},F=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},B=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},U=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},K=function(e){var t=Q(e,b.TITLE),n=Q(e,M);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var r=Q(e,k);return t||r||void 0},W=function(e){return Q(e,x)||function(){}},z=function(e,t){return t.filter((function(t){return"undefined"!==typeof t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return _({},e,t)}),{})},J=function(e,t){return t.filter((function(e){return"undefined"!==typeof e[b.BASE]})).map((function(e){return e[b.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o++){var i=r[o].toLowerCase();if(-1!==e.indexOf(i)&&n[i])return t.concat(n)}return t}),[])},G=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||("undefined"!==typeof t[e]&&ee("Helmet: "+e+' should be of type "Array". Instead found type "'+H(t[e])+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n=void 0,i=Object.keys(e),a=0;a<i.length;a++){var u=i[a],c=u.toLowerCase();-1===t.indexOf(c)||n===E&&"canonical"===e[n].toLowerCase()||c===E&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(u)||u!==g&&u!==T&&u!==A||(n=u)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][s]&&(o[n][s]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var i=Object.keys(o),a=0;a<i.length;a++){var u=i[a],c=p()({},r[u],o[u]);r[u]=c}return e}),[]).reverse()},Q=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},V=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout((function(){V(t)}),0)}}(),X=function(e){return clearTimeout(e)},Z="undefined"!==typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||V:e.requestAnimationFrame||V,$="undefined"!==typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||X:e.cancelAnimationFrame||X,ee=function(e){return console&&"function"===typeof console.warn&&console.warn(e)},te=null,ne=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,c=e.onChangeClientState,s=e.scriptTags,l=e.styleTags,f=e.title,p=e.titleAttributes;ie(b.BODY,r),ie(b.HTML,o),oe(f,p);var d={baseTag:ae(b.BASE,n),linkTags:ae(b.LINK,i),metaTags:ae(b.META,a),noscriptTags:ae(b.NOSCRIPT,u),scriptTags:ae(b.SCRIPT,s),styleTags:ae(b.STYLE,l)},y={},h={};Object.keys(d).forEach((function(e){var t=d[e],n=t.newTags,r=t.oldTags;n.length&&(y[e]=n),r.length&&(h[e]=d[e].oldTags)})),t&&t(),c(e,y,h)},re=function(e){return Array.isArray(e)?e.join(""):e},oe=function(e,t){"undefined"!==typeof e&&document.title!==e&&(document.title=re(e)),ie(b.TITLE,t)},ie=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(D),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(t),u=0;u<a.length;u++){var c=a[u],s=t[c]||"";n.getAttribute(c)!==s&&n.setAttribute(c,s),-1===o.indexOf(c)&&o.push(c);var l=i.indexOf(c);-1!==l&&i.splice(l,1)}for(var f=i.length-1;f>=0;f--)n.removeAttribute(i[f]);o.length===i.length?n.removeAttribute(D):n.getAttribute(D)!==a.join(",")&&n.setAttribute(D,a.join(","))}},ae=function(e,t){var n=document.head||document.querySelector(b.HEAD),r=n.querySelectorAll(e+"["+"data-react-helmet]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===g)n.innerHTML=t.innerHTML;else if(r===T)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var u="undefined"===typeof t[r]?"":t[r];n.setAttribute(r,u)}n.setAttribute(D,"true"),o.some((function(e,t){return a=t,n.isEqualNode(e)}))?o.splice(a,1):i.push(n)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return n.appendChild(e)})),{oldTags:o,newTags:i}},ue=function(e){return Object.keys(e).reduce((function(t,n){var r="undefined"!==typeof e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[P[n]||n]=e[n],t}),t)},se=function(e,t,n){switch(e){case b.TITLE:return{toComponent:function(){return function(e,t,n){var r,o=((r={key:t})[D]=!0,r),i=ce(n,o);return[l.a.createElement(b.TITLE,i,t)]}(0,t.title,t.titleAttributes)},toString:function(){return function(e,t,n,r){var o=ue(n),i=re(t);return o?"<"+e+' data-react-helmet="true" '+o+">"+U(i,r)+"</"+e+">":"<"+e+' data-react-helmet="true">'+U(i,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case d:case y:return{toComponent:function(){return ce(t)},toString:function(){return ue(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var r,o=((r={key:n})[D]=!0,r);return Object.keys(t).forEach((function(e){var n=P[e]||e;if(n===g||n===T){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]})),l.a.createElement(e,o)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!(e===g||e===T)})).reduce((function(e,t){var o="undefined"===typeof r[t]?t:t+'="'+U(r[t],n)+'"';return e?e+" "+o:o}),""),i=r.innerHTML||r.cssText||"",a=-1===R.indexOf(e);return t+"<"+e+' data-react-helmet="true" '+o+(a?"/>":">"+i+"</"+e+">")}),"")}(e,t,n)}}}},le=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,c=e.scriptTags,s=e.styleTags,l=e.title,f=void 0===l?"":l,p=e.titleAttributes;return{base:se(b.BASE,t,r),bodyAttributes:se(d,n,r),htmlAttributes:se(y,o,r),link:se(b.LINK,i,r),meta:se(b.META,a,r),noscript:se(b.NOSCRIPT,u,r),script:se(b.SCRIPT,c,r),style:se(b.STYLE,s,r),title:se(b.TITLE,{title:f,titleAttributes:p},r)}},fe=function(e){var t,n;return n=t=function(t){function n(){return q(this,n),B(this,t.apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,t),n.prototype.shouldComponentUpdate=function(e){return!c()(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case b.SCRIPT:case b.NOSCRIPT:return{innerHTML:t};case b.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},n.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,o=e.newChildProps,i=e.nestedChildren;return _({},r,((t={})[n.type]=[].concat(r[n.type]||[],[_({},o,this.mapNestedChildrenToProps(n,i))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,i=e.newChildProps,a=e.nestedChildren;switch(r.type){case b.TITLE:return _({},o,((t={})[r.type]=a,t.titleAttributes=_({},i),t));case b.BODY:return _({},o,{bodyAttributes:_({},i)});case b.HTML:return _({},o,{htmlAttributes:_({},i)})}return _({},o,((n={})[r.type]=_({},i),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=_({},t);return Object.keys(e).forEach((function(t){var r;n=_({},n,((r={})[t]=e[t],r))})),n},n.prototype.warnOnInvalidChildren=function(e,t){return!0},n.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return l.a.Children.forEach(e,(function(e){if(e&&e.props){var o=e.props,i=o.children,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[N[n]||n]=e[n],t}),t)}(F(o,["children"]));switch(n.warnOnInvalidChildren(e,i),e.type){case b.LINK:case b.META:case b.NOSCRIPT:case b.SCRIPT:case b.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:a,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:a,nestedChildren:i})}}})),t=this.mapArrayTypeChildrenToProps(r,t)},n.prototype.render=function(){var t=this.props,n=t.children,r=F(t,["children"]),o=_({},r);return n&&(o=this.mapChildrenToProps(n,o)),l.a.createElement(e,o)},Y(n,null,[{key:"canUseDOM",set:function(t){e.canUseDOM=t}}]),n}(l.a.Component),t.propTypes={base:o.a.object,bodyAttributes:o.a.object,children:o.a.oneOfType([o.a.arrayOf(o.a.node),o.a.node]),defaultTitle:o.a.string,defer:o.a.bool,encodeSpecialCharacters:o.a.bool,htmlAttributes:o.a.object,link:o.a.arrayOf(o.a.object),meta:o.a.arrayOf(o.a.object),noscript:o.a.arrayOf(o.a.object),onChangeClientState:o.a.func,script:o.a.arrayOf(o.a.object),style:o.a.arrayOf(o.a.object),title:o.a.string,titleAttributes:o.a.object,titleTemplate:o.a.string},t.defaultProps={defer:!0,encodeSpecialCharacters:!0},t.peek=e.peek,t.rewind=function(){var t=e.rewind();return t||(t=le({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),t},n}(a()((function(e){return{baseTag:J([v,j],e),bodyAttributes:z(d,e),defer:Q(e,L),encode:Q(e,I),htmlAttributes:z(y,e),linkTags:G(b.LINK,[E,v],e),metaTags:G(b.META,[C,m,w,O,A],e),noscriptTags:G(b.NOSCRIPT,[g],e),onChangeClientState:W(e),scriptTags:G(b.SCRIPT,[S,g],e),styleTags:G(b.STYLE,[T],e),title:K(e),titleAttributes:z(h,e)}}),(function(e){te&&$(te),e.defer?te=Z((function(){ne(e,(function(){te=null}))})):(ne(e),te=null)}),le)((function(){return null})));fe.renderStatic=fe.rewind}).call(this,n(114))},352:function(e,t,n){"use strict";var r,o=n(0),i=(r=o)&&"object"===typeof r&&"default"in r?r.default:r;function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=!("undefined"===typeof window||!window.document||!window.document.createElement);e.exports=function(e,t,n){if("function"!==typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!==typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if("undefined"!==typeof n&&"function"!==typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!==typeof r)throw new Error("Expected WrappedComponent to be a React component.");var c,s=[];function l(){c=e(s.map((function(e){return e.props}))),f.canUseDOM?t(c):n&&(c=n(c))}var f=function(e){var t,n;function o(){return e.apply(this,arguments)||this}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o.peek=function(){return c},o.rewind=function(){if(o.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=c;return c=void 0,s=[],e};var a=o.prototype;return a.UNSAFE_componentWillMount=function(){s.push(this),l()},a.componentDidUpdate=function(){l()},a.componentWillUnmount=function(){var e=s.indexOf(this);s.splice(e,1),l()},a.render=function(){return i.createElement(r,this.props)},o}(o.PureComponent);return a(f,"displayName","SideEffect("+function(e){return e.displayName||e.name||"Component"}(r)+")"),a(f,"canUseDOM",u),f}}}}]);
|
|
2
|
-
//# sourceMappingURL=0.
|
|
1
|
+
(this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[0],{245:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return fe}));var r=n(58),o=n.n(r),i=n(349),a=n.n(i),u=n(86),c=n.n(u),s=n(0),l=n.n(s),f=n(105),p=n.n(f),d="bodyAttributes",y="htmlAttributes",h="titleAttributes",b={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},m=(Object.keys(b).map((function(e){return b[e]})),"charset"),T="cssText",v="href",w="http-equiv",g="innerHTML",A="itemprop",C="name",O="property",E="rel",S="src",j="target",P={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k="defaultTitle",L="defer",I="encodeSpecialCharacters",x="onChangeClientState",M="titleTemplate",N=Object.keys(P).reduce((function(e,t){return e[P[t]]=t,e}),{}),R=[b.NOSCRIPT,b.SCRIPT,b.STYLE],D="data-react-helmet",H="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},q=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Y=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},F=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},B=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},U=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},K=function(e){var t=Q(e,b.TITLE),n=Q(e,M);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var r=Q(e,k);return t||r||void 0},W=function(e){return Q(e,x)||function(){}},z=function(e,t){return t.filter((function(t){return"undefined"!==typeof t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return _({},e,t)}),{})},J=function(e,t){return t.filter((function(e){return"undefined"!==typeof e[b.BASE]})).map((function(e){return e[b.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o++){var i=r[o].toLowerCase();if(-1!==e.indexOf(i)&&n[i])return t.concat(n)}return t}),[])},G=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||("undefined"!==typeof t[e]&&ee("Helmet: "+e+' should be of type "Array". Instead found type "'+H(t[e])+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n=void 0,i=Object.keys(e),a=0;a<i.length;a++){var u=i[a],c=u.toLowerCase();-1===t.indexOf(c)||n===E&&"canonical"===e[n].toLowerCase()||c===E&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(u)||u!==g&&u!==T&&u!==A||(n=u)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][s]&&(o[n][s]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var i=Object.keys(o),a=0;a<i.length;a++){var u=i[a],c=p()({},r[u],o[u]);r[u]=c}return e}),[]).reverse()},Q=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},V=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout((function(){V(t)}),0)}}(),X=function(e){return clearTimeout(e)},Z="undefined"!==typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||V:e.requestAnimationFrame||V,$="undefined"!==typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||X:e.cancelAnimationFrame||X,ee=function(e){return console&&"function"===typeof console.warn&&console.warn(e)},te=null,ne=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,c=e.onChangeClientState,s=e.scriptTags,l=e.styleTags,f=e.title,p=e.titleAttributes;ie(b.BODY,r),ie(b.HTML,o),oe(f,p);var d={baseTag:ae(b.BASE,n),linkTags:ae(b.LINK,i),metaTags:ae(b.META,a),noscriptTags:ae(b.NOSCRIPT,u),scriptTags:ae(b.SCRIPT,s),styleTags:ae(b.STYLE,l)},y={},h={};Object.keys(d).forEach((function(e){var t=d[e],n=t.newTags,r=t.oldTags;n.length&&(y[e]=n),r.length&&(h[e]=d[e].oldTags)})),t&&t(),c(e,y,h)},re=function(e){return Array.isArray(e)?e.join(""):e},oe=function(e,t){"undefined"!==typeof e&&document.title!==e&&(document.title=re(e)),ie(b.TITLE,t)},ie=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(D),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(t),u=0;u<a.length;u++){var c=a[u],s=t[c]||"";n.getAttribute(c)!==s&&n.setAttribute(c,s),-1===o.indexOf(c)&&o.push(c);var l=i.indexOf(c);-1!==l&&i.splice(l,1)}for(var f=i.length-1;f>=0;f--)n.removeAttribute(i[f]);o.length===i.length?n.removeAttribute(D):n.getAttribute(D)!==a.join(",")&&n.setAttribute(D,a.join(","))}},ae=function(e,t){var n=document.head||document.querySelector(b.HEAD),r=n.querySelectorAll(e+"["+"data-react-helmet]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===g)n.innerHTML=t.innerHTML;else if(r===T)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var u="undefined"===typeof t[r]?"":t[r];n.setAttribute(r,u)}n.setAttribute(D,"true"),o.some((function(e,t){return a=t,n.isEqualNode(e)}))?o.splice(a,1):i.push(n)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return n.appendChild(e)})),{oldTags:o,newTags:i}},ue=function(e){return Object.keys(e).reduce((function(t,n){var r="undefined"!==typeof e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[P[n]||n]=e[n],t}),t)},se=function(e,t,n){switch(e){case b.TITLE:return{toComponent:function(){return function(e,t,n){var r,o=((r={key:t})[D]=!0,r),i=ce(n,o);return[l.a.createElement(b.TITLE,i,t)]}(0,t.title,t.titleAttributes)},toString:function(){return function(e,t,n,r){var o=ue(n),i=re(t);return o?"<"+e+' data-react-helmet="true" '+o+">"+U(i,r)+"</"+e+">":"<"+e+' data-react-helmet="true">'+U(i,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case d:case y:return{toComponent:function(){return ce(t)},toString:function(){return ue(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var r,o=((r={key:n})[D]=!0,r);return Object.keys(t).forEach((function(e){var n=P[e]||e;if(n===g||n===T){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]})),l.a.createElement(e,o)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!(e===g||e===T)})).reduce((function(e,t){var o="undefined"===typeof r[t]?t:t+'="'+U(r[t],n)+'"';return e?e+" "+o:o}),""),i=r.innerHTML||r.cssText||"",a=-1===R.indexOf(e);return t+"<"+e+' data-react-helmet="true" '+o+(a?"/>":">"+i+"</"+e+">")}),"")}(e,t,n)}}}},le=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,c=e.scriptTags,s=e.styleTags,l=e.title,f=void 0===l?"":l,p=e.titleAttributes;return{base:se(b.BASE,t,r),bodyAttributes:se(d,n,r),htmlAttributes:se(y,o,r),link:se(b.LINK,i,r),meta:se(b.META,a,r),noscript:se(b.NOSCRIPT,u,r),script:se(b.SCRIPT,c,r),style:se(b.STYLE,s,r),title:se(b.TITLE,{title:f,titleAttributes:p},r)}},fe=function(e){var t,n;return n=t=function(t){function n(){return q(this,n),B(this,t.apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,t),n.prototype.shouldComponentUpdate=function(e){return!c()(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case b.SCRIPT:case b.NOSCRIPT:return{innerHTML:t};case b.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},n.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,o=e.newChildProps,i=e.nestedChildren;return _({},r,((t={})[n.type]=[].concat(r[n.type]||[],[_({},o,this.mapNestedChildrenToProps(n,i))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,i=e.newChildProps,a=e.nestedChildren;switch(r.type){case b.TITLE:return _({},o,((t={})[r.type]=a,t.titleAttributes=_({},i),t));case b.BODY:return _({},o,{bodyAttributes:_({},i)});case b.HTML:return _({},o,{htmlAttributes:_({},i)})}return _({},o,((n={})[r.type]=_({},i),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=_({},t);return Object.keys(e).forEach((function(t){var r;n=_({},n,((r={})[t]=e[t],r))})),n},n.prototype.warnOnInvalidChildren=function(e,t){return!0},n.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return l.a.Children.forEach(e,(function(e){if(e&&e.props){var o=e.props,i=o.children,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[N[n]||n]=e[n],t}),t)}(F(o,["children"]));switch(n.warnOnInvalidChildren(e,i),e.type){case b.LINK:case b.META:case b.NOSCRIPT:case b.SCRIPT:case b.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:a,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:a,nestedChildren:i})}}})),t=this.mapArrayTypeChildrenToProps(r,t)},n.prototype.render=function(){var t=this.props,n=t.children,r=F(t,["children"]),o=_({},r);return n&&(o=this.mapChildrenToProps(n,o)),l.a.createElement(e,o)},Y(n,null,[{key:"canUseDOM",set:function(t){e.canUseDOM=t}}]),n}(l.a.Component),t.propTypes={base:o.a.object,bodyAttributes:o.a.object,children:o.a.oneOfType([o.a.arrayOf(o.a.node),o.a.node]),defaultTitle:o.a.string,defer:o.a.bool,encodeSpecialCharacters:o.a.bool,htmlAttributes:o.a.object,link:o.a.arrayOf(o.a.object),meta:o.a.arrayOf(o.a.object),noscript:o.a.arrayOf(o.a.object),onChangeClientState:o.a.func,script:o.a.arrayOf(o.a.object),style:o.a.arrayOf(o.a.object),title:o.a.string,titleAttributes:o.a.object,titleTemplate:o.a.string},t.defaultProps={defer:!0,encodeSpecialCharacters:!0},t.peek=e.peek,t.rewind=function(){var t=e.rewind();return t||(t=le({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),t},n}(a()((function(e){return{baseTag:J([v,j],e),bodyAttributes:z(d,e),defer:Q(e,L),encode:Q(e,I),htmlAttributes:z(y,e),linkTags:G(b.LINK,[E,v],e),metaTags:G(b.META,[C,m,w,O,A],e),noscriptTags:G(b.NOSCRIPT,[g],e),onChangeClientState:W(e),scriptTags:G(b.SCRIPT,[S,g],e),styleTags:G(b.STYLE,[T],e),title:K(e),titleAttributes:z(h,e)}}),(function(e){te&&$(te),e.defer?te=Z((function(){ne(e,(function(){te=null}))})):(ne(e),te=null)}),le)((function(){return null})));fe.renderStatic=fe.rewind}).call(this,n(113))},349:function(e,t,n){"use strict";var r,o=n(0),i=(r=o)&&"object"===typeof r&&"default"in r?r.default:r;function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=!("undefined"===typeof window||!window.document||!window.document.createElement);e.exports=function(e,t,n){if("function"!==typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!==typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if("undefined"!==typeof n&&"function"!==typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!==typeof r)throw new Error("Expected WrappedComponent to be a React component.");var c,s=[];function l(){c=e(s.map((function(e){return e.props}))),f.canUseDOM?t(c):n&&(c=n(c))}var f=function(e){var t,n;function o(){return e.apply(this,arguments)||this}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o.peek=function(){return c},o.rewind=function(){if(o.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=c;return c=void 0,s=[],e};var a=o.prototype;return a.UNSAFE_componentWillMount=function(){s.push(this),l()},a.componentDidUpdate=function(){l()},a.componentWillUnmount=function(){var e=s.indexOf(this);s.splice(e,1),l()},a.render=function(){return i.createElement(r,this.props)},o}(o.PureComponent);return a(f,"displayName","SideEffect("+function(e){return e.displayName||e.name||"Component"}(r)+")"),a(f,"canUseDOM",u),f}}}}]);
|
|
2
|
+
//# sourceMappingURL=0.eac96593.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/react-helmet/es/Helmet.js","../node_modules/react-side-effect/lib/index.js"],"names":["ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","Object","keys","map","name","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","key","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","constructor","prototype","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","assign","arguments","source","hasOwnProperty","call","objectWithoutProperties","indexOf","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","str","encode","undefined","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","Array","isArray","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","concat","getTagsFromPropsList","tagName","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","value","forEach","push","tagUnion","objectAssign","property","rafPolyfill","clock","Date","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","requestAnimationFrame","window","bind","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","document","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","type","tags","headElement","head","querySelector","tagNodes","querySelectorAll","slice","indexToDelete","newElement","createElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","React","generateTitleAsReactComponent","toString","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","style","HelmetExport","Component","_class","_temp","_React$Component","HelmetWrapper","this","apply","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","isEqual","mapNestedChildrenToProps","child","nestedChildren","Error","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","children","_this2","Children","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","set","canUseDOM","propTypes","PropTypes","object","oneOfType","arrayOf","node","defaultTitle","defer","bool","func","titleTemplate","defaultProps","peek","rewind","mappedState","Helmet","withSideEffect","renderStatic","ex","require","React__default","_defineProperty","module","exports","reducePropsToState","handleStateChangeOnClient","WrappedComponent","state","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName"],"mappings":"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","file":"static/js/0.3c441159.chunk.js","sourcesContent":["import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../node_modules/react-helmet/es/Helmet.js","../node_modules/react-side-effect/lib/index.js"],"names":["ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","Object","keys","map","name","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","key","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","constructor","prototype","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","assign","arguments","source","hasOwnProperty","call","objectWithoutProperties","indexOf","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","str","encode","undefined","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","Array","isArray","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","concat","getTagsFromPropsList","tagName","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","value","forEach","push","tagUnion","objectAssign","property","rafPolyfill","clock","Date","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","requestAnimationFrame","window","bind","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","document","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","type","tags","headElement","head","querySelector","tagNodes","querySelectorAll","slice","indexToDelete","newElement","createElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","React","generateTitleAsReactComponent","toString","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","style","HelmetExport","Component","_class","_temp","_React$Component","HelmetWrapper","this","apply","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","isEqual","mapNestedChildrenToProps","child","nestedChildren","Error","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","children","_this2","Children","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","set","canUseDOM","propTypes","PropTypes","object","oneOfType","arrayOf","node","defaultTitle","defer","bool","func","titleTemplate","defaultProps","peek","rewind","mappedState","Helmet","withSideEffect","renderStatic","ex","require","React__default","_defineProperty","module","exports","reducePropsToState","handleStateChangeOnClient","WrappedComponent","state","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName"],"mappings":"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","file":"static/js/0.eac96593.chunk.js","sourcesContent":["import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[1],{232:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a(245),c={home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},i=a(112),s=a(1),o=function(e){var t=e.children,a=e.meta,o=e.pageName,l=Object(i.b)(c[o]);Object(n.useEffect)((function(){l()}),[l]);var d=a.suffix,u=void 0===d||d,j=a.title,b=a.description,f=u?"".concat(j," - Construct Hub"):j;return Object(s.jsxs)(s.Fragment,{children:[Object(s.jsxs)(r.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:b,name:"description"}),Object(s.jsx)("meta",{content:b,property:"og:description"}),Object(s.jsx)("meta",{content:b,name:"twitter:description"})]}),t]})}},272:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n=new Set(["aws","aws-cdk","awscdk","cdk"])},297:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(6),r=a(22),c=a(350),i=a(56),s=a(69),o=a(1),l=["children","language","value","label","zIndex"],d=function(e){var t=e.children,a=e.language,d=e.value,u=e.label,j=void 0===u?d:u,b=e.zIndex,f=Object(r.a)(e,l);return Object(o.jsx)(s.a,{"aria-label":"Tag: ".concat(j),to:Object(i.c)({query:"".concat(d),language:a}),zIndex:b,children:Object(o.jsx)(c.a,Object(n.a)(Object(n.a)({_hover:{textDecoration:"underline"}},f),{},{children:Object(o.jsx)(c.b,{children:t})}))})}},298:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(76),r=Object(n.a)({d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z",displayName:"ChevronRightIcon"})},348:function(e,t,a){"use strict";a.d(t,"a",(function(){return A}));var n=a(0),r=a(4),c=a(19),i=a(6),s=a(229),o=a(216),l=a(195),d=a(205),u=a(190),j=a(207),b=a(200),f=a(24),O=a(272),h=a(25),m=a(56),p=a(123),v=a(297),x=a(122),g=a(145),w=a(114),y=a(37),k=Object(y.a)("catalogCard",["container","name","version","tags","description","date","author","languages"]),L=a(1),S=function(e){var t=e.children;return Object(L.jsx)(w.a,{h:64,p:0,w:"100%",children:Object(L.jsx)(g.a,{as:"article",h:"100%",overflow:"hidden",templateColumns:"1fr",templateRows:"2fr 1fr",children:t})})},T=function(e){var t=e.children;return e.isLink?Object(L.jsx)(o.a,{_hover:{"> :first-child":{bg:"gray.50"}},"data-testid":k.container,children:Object(L.jsx)(S,{children:t})}):Object(L.jsx)(S,{children:t})},E=a(595),I=function(){return Object(L.jsxs)(L.Fragment,{children:[Object(L.jsxs)(s.a,{p:4,spacing:4,children:[Object(L.jsx)(E.a,{h:5,w:"50%"}),Object(L.jsxs)(s.a,{align:"center",direction:"row",spacing:2,children:[Object(L.jsx)(E.a,{h:5,w:10}),Object(L.jsx)(E.a,{h:5,w:10}),Object(L.jsx)(E.a,{h:5,w:10})]}),Object(L.jsx)(E.a,{h:3,w:"75%"}),Object(L.jsx)(E.a,{h:3,w:"50%"})]}),Object(L.jsxs)(u.a,{children:[Object(L.jsx)(j.a,{}),Object(L.jsxs)(s.a,{px:4,py:2,spacing:2,children:[Object(L.jsx)(E.a,{h:5,w:"25%"}),Object(L.jsxs)(s.a,{align:"center",direction:"row",spacing:2,children:[Object(L.jsx)(E.a,{h:5,w:10}),Object(L.jsx)(E.a,{h:5,w:10}),Object(L.jsx)(E.a,{h:5,w:10}),Object(L.jsx)(E.a,{h:5,w:10})]})]})]})]})},N=function(e){var t,a,n,g=e.language,w=e.pkg;if(!w)return Object(L.jsx)(T,{children:Object(L.jsx)(I,{})});var y=(null===(t=w.metadata)||void 0===t?void 0:t.date)?Object(L.jsx)(x.a,{date:new Date(w.metadata.date),fontSize:"sm",format:"MMMM dd, yyyy"}):null,S=null!==(a=w.author)&&void 0!==a?a:{},E=null!==(n=w.languages)&&void 0!==n?n:{},N=Object.keys(E),z=function(e){return Object(m.a)(Object(i.a)({name:w.name,version:w.version,language:g},e))},C="string"===typeof S?S:S.name;return Object(L.jsxs)(T,{isLink:!0,children:[Object(L.jsxs)(s.a,{maxH:"100%",maxW:"100%",overflow:"hidden",p:4,spacing:0,children:[Object(L.jsx)(o.b,{as:f.b,to:z(),children:Object(L.jsxs)(l.a,{color:"blue.800","data-testid":k.name,fontWeight:"semibold",isTruncated:!0,children:[w.name,Object(L.jsx)(l.a,{as:"span",color:"blue.500","data-testid":k.version,fontSize:"xs",ml:2,children:w.version})]})}),Object(L.jsx)(o.a,{as:d.a,"data-testid":k.tags,flexWrap:"wrap",maxH:6,overflow:"hidden",children:[w.name.startsWith("@aws-cdk/")?Object(L.jsx)(v.a,{label:"official",language:g,mr:1,value:"@aws-cdk",variant:"official",children:"Official"},"official"):null].concat(Object(c.a)(w.keywords.filter((function(e){return Boolean(e)&&!O.a.has(e)})).slice(0,3).map((function(e){return Object(L.jsx)(v.a,{language:g,mr:1,value:'"'.concat(e,'"'),zIndex:"0 !important",children:e},e)}))))}),Object(L.jsx)(l.a,{"data-testid":k.description,fontSize:"sm",noOfLines:2,children:w.description})]}),Object(L.jsxs)(u.a,{children:[Object(L.jsx)(j.a,{}),Object(L.jsxs)(s.a,{maxW:"100%",overflow:"hidden",px:4,py:2,spacing:2,children:[Object(L.jsx)(l.a,{"data-testid":k.date,fontSize:"sm",isTruncated:!0,children:y}),Object(L.jsx)(b.a,{as:f.b,color:"blue.500","data-testid":k.author,fontSize:"sm",to:Object(m.c)({query:C}),children:C}),Object(L.jsx)(o.a,{align:"center",as:s.a,"data-testid":k.languages,direction:"row",children:Object.entries(h.c).sort((function(e,t){var a=Object(r.a)(e,1)[0],n=Object(r.a)(t,1)[0];return h.a.indexOf(a)-h.a.indexOf(n)})).map((function(e){var t=Object(r.a)(e,2),a=t[0],n=t[1],c=a,i=c===h.d.TypeScript||N.includes(c),s=c===h.d.TypeScript||h.e.has(c);if(!i)return null;var o=n.name,l=n.icon,d=Object(L.jsx)(l,{"aria-label":"Supports ".concat(o),h:6,opacity:s?1:.2,w:6});return Object(L.jsx)(p.a,{language:c,children:s?Object(L.jsx)(f.b,{"aria-label":"View package docs for ".concat(c),to:z({language:c}),children:d}):d},c)}))})]})]})]})},z=a(206),C=function(e){var t=e.children;return Object(L.jsx)(z.a,{columns:{base:1,sm:2,md:3,lg:4,xl:5,"2xl":6},spacing:6,children:t})},_=function(e){for(var t=e.noOfItems,a=[],n=0;n<t;n+=1)a.push(Object(L.jsx)(N,{},n));return Object(L.jsx)(C,{children:a})},M=Object(n.memo)(_),P=function(e){var t=e.language,a=e.results,n=e.skeleton;return(null===n||void 0===n?void 0:n.loading)?Object(L.jsx)(M,{noOfItems:n.noOfItems}):Object(L.jsx)(C,{children:a.map((function(e,a){return Object(L.jsx)(N,{language:t,pkg:e},"".concat(e.name,"-").concat(a))}))})},A=Object(n.memo)(P)},350:function(e,t,a){"use strict";a.d(t,"a",(function(){return j})),a.d(t,"b",(function(){return b}));var n=a(103),r=a(18),c=a(66),i=a(44),s=a(75),o=a(23),l=a(8),d=a(0);function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u.apply(this,arguments)}var j=Object(r.a)((function(e,t){var a=Object(c.a)("Tag",e),n=Object(i.b)(e),r=u({display:"inline-flex",verticalAlign:"top",alignItems:"center",maxWidth:"100%"},a.container);return d.createElement(s.b,{value:a},d.createElement(o.a.span,u({ref:t},n,{__css:r})))}));l.a&&(j.displayName="Tag");var b=Object(r.a)((function(e,t){var a=Object(s.d)();return d.createElement(o.a.span,u({ref:t,isTruncated:!0},e,{__css:a.label}))}));l.a&&(b.displayName="TagLabel");var f=Object(r.a)((function(e,t){return d.createElement(n.a,u({ref:t,verticalAlign:"top",marginEnd:"0.5rem"},e))}));l.a&&(f.displayName="TagLeftIcon");var O=Object(r.a)((function(e,t){return d.createElement(n.a,u({ref:t,verticalAlign:"top",marginStart:"0.5rem"},e))}));l.a&&(O.displayName="TagRightIcon");var h=function(e){return d.createElement(n.a,u({verticalAlign:"inherit",viewBox:"0 0 512 512"},e),d.createElement("path",{fill:"currentColor",d:"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z"}))};l.a&&(h.displayName="TagCloseIcon");l.a},351:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(76),r=Object(n.a)({d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z",displayName:"ArrowForwardIcon"})},352:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(76),r=Object(n.a)({d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z",displayName:"ChevronLeftIcon"})},595:function(e,t,a){"use strict";a.d(t,"a",(function(){return O}));a(4),a(75);var n=a(8);a(28),a(111);a(226);var r=a(0);var c=a(23),i=a(60),s=a(18),o=a(66),l=a(44);var d=a(17);function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u.apply(this,arguments)}function j(e,t){if(null==e)return{};var a,n,r={},c=Object.keys(e);for(n=0;n<c.length;n++)a=c[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}var b=Object(c.a)("div",{baseStyle:{boxShadow:"none",backgroundClip:"padding-box",cursor:"default",color:"transparent",pointerEvents:"none",userSelect:"none","&::before, &::after, *":{visibility:"hidden"}}}),f=Object(i.b)({from:{opacity:0},to:{opacity:1}}),O=Object(s.a)((function(e,t){var a=Object(o.b)("Skeleton",e),n=function(){var e=r.useRef(!0);return r.useEffect((function(){e.current=!1}),[]),e.current}(),i=Object(l.b)(e),s=i.isLoaded,O=i.fadeDuration,h=i.className,m=j(i,["startColor","endColor","isLoaded","fadeDuration","speed","className"]),p=function(e){var t=Object(r.useRef)();return Object(r.useEffect)((function(){t.current=e}),[e]),t.current}(s),v=Object(d.d)("chakra-skeleton",h);if(s){var x=n||p?"none":f+" "+O+"s";return r.createElement(c.a.div,u({ref:t,className:v,__css:{animation:x}},m))}return r.createElement(b,u({ref:t,className:v},m,{__css:a}))}));O.defaultProps={fadeDuration:.4,speed:.8},n.a&&(O.displayName="Skeleton");n.a;n.a}}]);
|
|
2
|
+
//# sourceMappingURL=1.f1cf5c72.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["constants/pageInfo.ts","components/Page/Page.tsx","constants/keywords.ts","components/PackageTag/PackageTag.tsx","../../../src/ChevronRight.tsx","components/CatalogCard/testIds.ts","components/CatalogCard/CatalogCardContainer.tsx","components/CatalogCard/CatalogCardSkeleton.tsx","components/CatalogCard/CatalogCard.tsx","components/Results/ResultsGrid.tsx","components/Results/ResultsSkeleton.tsx","components/Results/Results.tsx","../../../src/tag.tsx","../../../src/ArrowForward.tsx","../../../src/ChevronLeft.tsx","../../../src/skeleton.tsx","../../../src/use-previous.ts"],"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","KEYWORD_IGNORE_LIST","Set","PackageTag","language","value","label","zIndex","tagProps","NavLink","to","getSearchPath","query","_hover","textDecoration","ChevronRightIcon","createIcon","d","displayName","testIds","createTestIds","CardContainer","Card","h","p","w","as","overflow","templateColumns","templateRows","CatalogCardContainer","isLink","bg","container","CatalogCardSkeleton","spacing","align","direction","px","py","CatalogCard","currentLanguage","pkg","publishDate","metadata","date","Time","Date","fontSize","format","author","languages","targets","Object","keys","getUrl","params","getPackagePath","version","authorName","maxH","maxW","Link","color","fontWeight","isTruncated","ml","Flex","tags","flexWrap","startsWith","mr","variant","keywords","filter","v","Boolean","has","slice","map","tag","noOfLines","Stack","entries","LANGUAGE_RENDER_MAP","sort","left","right","LANGUAGES","indexOf","lang","info","isSupportedByLibrary","Language","TypeScript","includes","isSupportedByConstructHub","TEMP_SUPPORTED_LANGUAGES","Icon","icon","opacity","LanguageSupportTooltip","ResultsGrid","columns","base","sm","md","lg","xl","ResultsSkeletonComponent","noOfItems","skeletons","i","push","ResultsSkeleton","memo","ResultsComponent","results","skeleton","loading","idx","Results","Tag","forwardRef","styles","useMultiStyleConfig","ownProps","omitThemingProps","containerStyles","display","verticalAlign","alignItems","maxWidth","ref","__css","TagLabel","useStyles","TagLeftIcon","marginEnd","TagRightIcon","marginStart","TagCloseIcon","props","viewBox","fill","ArrowForwardIcon","ChevronLeftIcon","StyledSkeleton","chakra","baseStyle","boxShadow","backgroundClip","cursor","pointerEvents","userSelect","visibility","fade","keyframes","from","Skeleton","useStyleConfig","isFirstRender","React","useIsFirstRender","className","wasPreviouslyLoaded","useRef","usePrevious","_className","cx","animation","fadeDuration","speed"],"mappings":"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","file":"static/js/1.f1cf5c72.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","export const KEYWORD_IGNORE_LIST = new Set([\"aws\", \"aws-cdk\", \"awscdk\", \"cdk\"]);\n","import { Tag, TagLabel, TagProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Language } from \"../../constants/languages\";\nimport { getSearchPath } from \"../../util/url\";\nimport { NavLink } from \"../NavLink\";\n\nexport interface PackageTagProps extends TagProps {\n language?: Language;\n value: string;\n label?: string;\n zIndex?: string | number;\n}\n\nexport const PackageTag: FunctionComponent<PackageTagProps> = ({\n children,\n language,\n value,\n label = value,\n zIndex,\n ...tagProps\n}) => {\n return (\n <NavLink\n aria-label={`Tag: ${label}`}\n to={getSearchPath({ query: `${value}`, language })}\n zIndex={zIndex}\n >\n <Tag\n _hover={{\n textDecoration: \"underline\",\n }}\n {...tagProps}\n >\n <TagLabel>{children}</TagLabel>\n </Tag>\n </NavLink>\n );\n};\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ChevronRightIcon = createIcon({\n d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\",\n displayName: \"ChevronRightIcon\",\n})\n","import { createTestIds } from \"../../util/createTestIds\";\n\nconst testIds = createTestIds(\"catalogCard\", [\n \"container\",\n \"name\",\n \"version\",\n \"tags\",\n \"description\",\n \"date\",\n \"author\",\n \"languages\",\n] as const);\n\nexport default testIds;\n","import { Grid, LinkBox } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Card } from \"../Card\";\nimport testIds from \"./testIds\";\n\nconst CardContainer: FunctionComponent = ({ children }) => (\n <Card h={64} p={0} w=\"100%\">\n <Grid\n as=\"article\"\n h=\"100%\"\n overflow=\"hidden\"\n templateColumns=\"1fr\"\n templateRows=\"2fr 1fr\"\n >\n {children}\n </Grid>\n </Card>\n);\n\nexport const CatalogCardContainer: FunctionComponent<{ isLink?: boolean }> = ({\n children,\n isLink,\n}) => {\n return isLink ? (\n <LinkBox\n _hover={{\n \"> :first-child\": {\n bg: \"gray.50\",\n },\n }}\n data-testid={testIds.container}\n >\n <CardContainer>{children}</CardContainer>\n </LinkBox>\n ) : (\n <CardContainer>{children}</CardContainer>\n );\n};\n","import { Box, Divider, Skeleton, Stack } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const CatalogCardSkeleton: FunctionComponent = () => (\n <>\n <Stack p={4} spacing={4}>\n <Skeleton h={5} w=\"50%\" />\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n </Stack>\n <Skeleton h={3} w=\"75%\" />\n <Skeleton h={3} w=\"50%\" />\n </Stack>\n <Box>\n <Divider />\n <Stack px={4} py={2} spacing={2}>\n <Skeleton h={5} w=\"25%\" />\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n </Stack>\n </Stack>\n </Box>\n </>\n);\n","import {\n Box,\n Divider,\n Flex,\n LinkBox,\n Link as UILink,\n LinkOverlay,\n Stack,\n Text,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CatalogPackage } from \"../../api/package/packages\";\nimport { KEYWORD_IGNORE_LIST } from \"../../constants/keywords\";\nimport {\n Language,\n LANGUAGES,\n LANGUAGE_RENDER_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\nimport { getPackagePath, getSearchPath } from \"../../util/url\";\nimport { LanguageSupportTooltip } from \"../LanguageSupportTooltip\";\nimport { PackageTag } from \"../PackageTag\";\nimport { Time } from \"../Time\";\nimport { CatalogCardContainer } from \"./CatalogCardContainer\";\nimport { CatalogCardSkeleton } from \"./CatalogCardSkeleton\";\nimport testIds from \"./testIds\";\n\nexport interface CatalogCardProps {\n /**\n * Specifies the language to link to by default\n */\n language?: Language;\n /**\n * If undefined, will render a skeleton\n */\n pkg?: CatalogPackage;\n}\n\nexport const CatalogCard: FunctionComponent<CatalogCardProps> = ({\n language: currentLanguage,\n pkg,\n}) => {\n if (!pkg) {\n return (\n <CatalogCardContainer>\n <CatalogCardSkeleton />\n </CatalogCardContainer>\n );\n }\n\n const publishDate = pkg.metadata?.date ? (\n <Time\n date={new Date(pkg.metadata.date)}\n fontSize=\"sm\"\n format=\"MMMM dd, yyyy\"\n />\n ) : null;\n\n const author = pkg.author ?? {};\n const languages = pkg.languages ?? {};\n const targets = Object.keys(languages) as Language[];\n\n const getUrl = (params?: Partial<Parameters<typeof getPackagePath>[0]>) =>\n getPackagePath({\n name: pkg.name,\n version: pkg.version,\n language: currentLanguage,\n ...params,\n });\n\n const authorName = typeof author === \"string\" ? author : author.name;\n\n return (\n <CatalogCardContainer isLink>\n <Stack maxH=\"100%\" maxW=\"100%\" overflow=\"hidden\" p={4} spacing={0}>\n {/* Name & Version */}\n <LinkOverlay as={Link} to={getUrl()}>\n <Text\n color=\"blue.800\"\n data-testid={testIds.name}\n fontWeight=\"semibold\"\n isTruncated\n >\n {pkg.name}\n\n <Text\n as=\"span\"\n color=\"blue.500\"\n data-testid={testIds.version}\n fontSize=\"xs\"\n ml={2}\n >\n {pkg.version}\n </Text>\n </Text>\n </LinkOverlay>\n\n {/* Tags */}\n <LinkBox\n as={Flex}\n data-testid={testIds.tags}\n flexWrap=\"wrap\"\n maxH={6}\n overflow=\"hidden\"\n >\n {[\n pkg.name.startsWith(\"@aws-cdk/\") ? (\n <PackageTag\n key=\"official\"\n label=\"official\"\n language={currentLanguage}\n mr={1}\n value=\"@aws-cdk\"\n variant=\"official\"\n >\n Official\n </PackageTag>\n ) : null,\n ...pkg.keywords\n .filter((v) => Boolean(v) && !KEYWORD_IGNORE_LIST.has(v))\n .slice(0, 3)\n .map((tag) => {\n return (\n <PackageTag\n key={tag}\n language={currentLanguage}\n mr={1}\n value={`\"${tag}\"`}\n zIndex=\"0 !important\"\n >\n {tag}\n </PackageTag>\n );\n }),\n ]}\n </LinkBox>\n <Text data-testid={testIds.description} fontSize=\"sm\" noOfLines={2}>\n {pkg.description}\n </Text>\n </Stack>\n\n {/* Bottom Details */}\n <Box>\n <Divider />\n <Stack maxW=\"100%\" overflow=\"hidden\" px={4} py={2} spacing={2}>\n <Text data-testid={testIds.date} fontSize=\"sm\" isTruncated>\n {publishDate}\n </Text>\n\n <UILink\n as={Link}\n color=\"blue.500\"\n data-testid={testIds.author}\n fontSize=\"sm\"\n to={getSearchPath({ query: authorName })}\n >\n {authorName}\n </UILink>\n\n {/* Language Support Icons */}\n <LinkBox\n align=\"center\"\n as={Stack}\n data-testid={testIds.languages}\n direction=\"row\"\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 ||\n 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 h={6}\n opacity={isSupportedByConstructHub ? 1 : 0.2}\n w={6}\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={getUrl({ language })}\n >\n {icon}\n </Link>\n ) : (\n icon\n )}\n </LanguageSupportTooltip>\n );\n })}\n </LinkBox>\n </Stack>\n </Box>\n </CatalogCardContainer>\n );\n};\n","import { SimpleGrid } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const ResultsGrid: FunctionComponent = ({ children }) => (\n <SimpleGrid\n columns={{\n base: 1,\n sm: 2,\n md: 3,\n lg: 4,\n xl: 5,\n \"2xl\": 6,\n }}\n spacing={6}\n >\n {children}\n </SimpleGrid>\n);\n","import { FunctionComponent, memo } from \"react\";\nimport { CatalogCard } from \"../CatalogCard\";\nimport { ResultsGrid } from \"./ResultsGrid\";\n\nexport interface ResultsSkeletonProps {\n noOfItems: number;\n}\n\nconst ResultsSkeletonComponent: FunctionComponent<ResultsSkeletonProps> = ({\n noOfItems,\n}) => {\n const skeletons = [];\n\n for (let i = 0; i < noOfItems; i += 1) {\n skeletons.push(<CatalogCard key={i} />);\n }\n\n return <ResultsGrid>{skeletons}</ResultsGrid>;\n};\n\nexport const ResultsSkeleton = memo(\n ResultsSkeletonComponent\n) as typeof ResultsSkeletonComponent;\n","import { FunctionComponent, memo } from \"react\";\nimport { Packages } from \"../../api/package/packages\";\nimport { Language } from \"../../constants/languages\";\nimport { CatalogCard } from \"../CatalogCard\";\nimport { ResultsGrid } from \"./ResultsGrid\";\nimport { ResultsSkeleton } from \"./ResultsSkeleton\";\n\nexport interface ResultsProps {\n language?: Language;\n results: Packages[\"packages\"];\n skeleton?: {\n loading: boolean;\n noOfItems: number;\n };\n}\n\nconst ResultsComponent: FunctionComponent<ResultsProps> = ({\n language,\n results,\n skeleton,\n}) => {\n if (skeleton?.loading) {\n return <ResultsSkeleton noOfItems={skeleton.noOfItems} />;\n }\n\n return (\n <ResultsGrid>\n {results.map((pkg, idx) => (\n <CatalogCard key={`${pkg.name}-${idx}`} language={language} pkg={pkg} />\n ))}\n </ResultsGrid>\n );\n};\n\nexport const Results = memo(ResultsComponent) as typeof ResultsComponent;\n","import { Icon, IconProps } from \"@chakra-ui/icon\"\nimport {\n chakra,\n forwardRef,\n omitThemingProps,\n StylesProvider,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n useStyles,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface TagProps\n extends HTMLChakraProps<\"span\">,\n ThemingProps<\"Tag\"> {}\n\n/**\n * The tag component is used to label or categorize UI elements.\n * To style the tag globally, change the styles in `theme.components.Tag`\n * @see Docs https://chakra-ui.com/tag\n */\nexport const Tag = forwardRef<TagProps, \"span\">((props, ref) => {\n const styles = useMultiStyleConfig(\"Tag\", props)\n const ownProps = omitThemingProps(props)\n\n const containerStyles: SystemStyleObject = {\n display: \"inline-flex\",\n verticalAlign: \"top\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n ...styles.container,\n }\n\n return (\n <StylesProvider value={styles}>\n <chakra.span ref={ref} {...ownProps} __css={containerStyles} />\n </StylesProvider>\n )\n})\n\nif (__DEV__) {\n Tag.displayName = \"Tag\"\n}\n\nexport interface TagLabelProps extends HTMLChakraProps<\"span\"> {}\n\nexport const TagLabel = forwardRef<TagLabelProps, \"span\">((props, ref) => {\n const styles = useStyles()\n return <chakra.span ref={ref} isTruncated {...props} __css={styles.label} />\n})\n\nif (__DEV__) {\n TagLabel.displayName = \"TagLabel\"\n}\n\nexport const TagLeftIcon = forwardRef<IconProps, \"svg\">((props, ref) => (\n <Icon ref={ref} verticalAlign=\"top\" marginEnd=\"0.5rem\" {...props} />\n))\n\nif (__DEV__) {\n TagLeftIcon.displayName = \"TagLeftIcon\"\n}\n\nexport const TagRightIcon = forwardRef<IconProps, \"svg\">((props, ref) => (\n <Icon ref={ref} verticalAlign=\"top\" marginStart=\"0.5rem\" {...props} />\n))\n\nif (__DEV__) {\n TagRightIcon.displayName = \"TagRightIcon\"\n}\n\nconst TagCloseIcon: React.FC<IconProps> = (props) => (\n <Icon verticalAlign=\"inherit\" viewBox=\"0 0 512 512\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z\"\n />\n </Icon>\n)\n\nif (__DEV__) {\n TagCloseIcon.displayName = \"TagCloseIcon\"\n}\n\nexport interface TagCloseButtonProps\n extends Omit<HTMLChakraProps<\"button\">, \"disabled\"> {\n isDisabled?: boolean\n}\n\n/**\n * TagCloseButton is used to close \"remove\" the tag\n * @see Docs https://chakra-ui.com/tag\n */\nexport const TagCloseButton: React.FC<TagCloseButtonProps> = (props) => {\n const { isDisabled, children, ...rest } = props\n\n const styles = useStyles()\n\n const btnStyles: SystemStyleObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n outline: \"0\",\n ...styles.closeButton,\n }\n\n return (\n <chakra.button\n {...rest}\n type=\"button\"\n aria-label=\"close\"\n disabled={isDisabled}\n __css={btnStyles}\n >\n {children || <TagCloseIcon />}\n </chakra.button>\n )\n}\n\nif (__DEV__) {\n TagCloseButton.displayName = \"TagCloseButton\"\n}\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ArrowForwardIcon = createIcon({\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\n displayName: \"ArrowForwardIcon\",\n})\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ChevronLeftIcon = createIcon({\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\",\n displayName: \"ChevronLeftIcon\",\n})\n","import { useBreakpointValue } from \"@chakra-ui/media-query\"\nimport {\n chakra,\n forwardRef,\n keyframes,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { usePrevious } from \"@chakra-ui/hooks\"\nimport { cx, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface SkeletonOptions {\n /**\n * The color at the animation start\n */\n startColor?: string\n /**\n * The color at the animation end\n */\n endColor?: string\n /**\n * If `true`, it'll render its children with a nice fade transition\n */\n isLoaded?: boolean\n /**\n * The animation speed in seconds\n * @default\n * 0.8\n */\n speed?: number\n /**\n * The fadeIn duration in seconds\n *\n * @default\n * 0.4\n */\n fadeDuration?: number\n}\n\nconst StyledSkeleton = chakra(\"div\", {\n baseStyle: {\n boxShadow: \"none\",\n backgroundClip: \"padding-box\",\n cursor: \"default\",\n color: \"transparent\",\n pointerEvents: \"none\",\n userSelect: \"none\",\n \"&::before, &::after, *\": {\n visibility: \"hidden\",\n },\n },\n})\n\nexport type ISkeleton = SkeletonOptions\n\nexport interface SkeletonProps\n extends HTMLChakraProps<\"div\">,\n SkeletonOptions,\n ThemingProps<\"Skeleton\"> {}\n\nconst fade = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n})\n\nconst useIsFirstRender = () => {\n const isFirstRender = React.useRef(true)\n\n React.useEffect(() => {\n isFirstRender.current = false\n }, [])\n\n return isFirstRender.current\n}\n\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n const styles = useStyleConfig(\"Skeleton\", props)\n const isFirstRender = useIsFirstRender()\n\n const {\n startColor,\n endColor,\n isLoaded,\n fadeDuration,\n speed,\n className,\n ...rest\n } = omitThemingProps(props)\n\n const wasPreviouslyLoaded = usePrevious(isLoaded)\n\n const _className = cx(\"chakra-skeleton\", className)\n\n if (isLoaded) {\n const animation =\n isFirstRender || wasPreviouslyLoaded ? \"none\" : `${fade} ${fadeDuration}s`\n\n return (\n <chakra.div\n ref={ref}\n className={_className}\n __css={{ animation }}\n {...rest}\n />\n )\n }\n\n return (\n <StyledSkeleton ref={ref} className={_className} {...rest} __css={styles} />\n )\n})\n\nSkeleton.defaultProps = {\n fadeDuration: 0.4,\n speed: 0.8,\n}\n\nif (__DEV__) {\n Skeleton.displayName = \"Skeleton\"\n}\n\nfunction range(count: number) {\n return Array(count)\n .fill(1)\n .map((_, index) => index + 1)\n}\n\nexport interface SkeletonTextProps extends SkeletonProps {\n spacing?: SkeletonProps[\"margin\"]\n skeletonHeight?: SkeletonProps[\"height\"]\n startColor?: SkeletonProps[\"startColor\"]\n endColor?: SkeletonProps[\"endColor\"]\n isLoaded?: SkeletonProps[\"isLoaded\"]\n}\n\nconst defaultNoOfLines = 3\n\nexport const SkeletonText: React.FC<SkeletonTextProps> = (props) => {\n const {\n noOfLines = defaultNoOfLines,\n spacing = \"0.5rem\",\n skeletonHeight = \"0.5rem\",\n className,\n startColor,\n endColor,\n isLoaded,\n fadeDuration,\n speed,\n children,\n ...rest\n } = props\n\n const noOfLinesValue =\n useBreakpointValue(\n typeof noOfLines === \"number\" ? [noOfLines] : noOfLines,\n ) || defaultNoOfLines\n const numbers = range(noOfLinesValue)\n\n const getWidth = (index: number) => {\n if (noOfLinesValue > 1) {\n return index === numbers.length ? \"80%\" : \"100%\"\n }\n return \"100%\"\n }\n\n const _className = cx(\"chakra-skeleton__group\", className)\n\n return (\n <chakra.div className={_className} {...rest}>\n {numbers.map((number, index) => {\n if (isLoaded && index > 0) {\n // skip other lines\n return null\n }\n\n const sizeProps = isLoaded\n ? null\n : {\n mb: number === numbers.length ? \"0\" : spacing,\n width: getWidth(number),\n height: skeletonHeight,\n }\n\n return (\n <Skeleton\n key={numbers.length.toString() + number}\n startColor={startColor}\n endColor={endColor}\n isLoaded={isLoaded}\n fadeDuration={fadeDuration}\n speed={speed}\n {...sizeProps}\n >\n {\n // allows animating the children\n index === 0 ? children : undefined\n }\n </Skeleton>\n )\n })}\n </chakra.div>\n )\n}\n\nif (__DEV__) {\n SkeletonText.displayName = \"SkeletonText\"\n}\n\nexport const SkeletonCircle: React.FC<SkeletonProps> = ({\n size = \"2rem\",\n ...rest\n}) => <Skeleton borderRadius=\"full\" boxSize={size} {...rest} />\n\nif (__DEV__) {\n SkeletonCircle.displayName = \"SkeletonCircle\"\n}\n","import { useRef, useEffect } from \"react\"\n\nexport function usePrevious<T>(value: T) {\n const ref = useRef<T | undefined>()\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current as T\n}\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[10],{292:function(e,t,c){"use strict";c.d(t,"a",(function(){return o}));var n=c(195),a=c(1),r=function(e){var t=e.children;return Object(a.jsx)(n.a,{as:"em",color:"blue.500",fontWeight:"bold",children:t})},o=function(e){var t=e.limit,c=e.offset,o=e.count,s=e.filtered,i=t*c,l=i+t;return Object(a.jsxs)(n.a,{children:["Displaying"," ",Object(a.jsxs)(r,{children:[o?i+1:o," - ",l>o?o:l]})," ","of ",Object(a.jsx)(r,{children:o})," ",s?"search results":"constructs","."]})}},293:function(e,t,c){"use strict";c.d(t,"a",(function(){return n}));var n=25},295:function(e,t,c){"use strict";c.d(t,"a",(function(){return S}));var n=c(352),a=c(298),r=c(145),o=c(205),s=c(6),i=c(203),l=c(24),u=c(1),j=function(e){var t=e.icon,c=e.offset,n=e.getPageUrl,a={"aria-label":"Page ".concat(c," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue",icon:Object(u.jsx)(t,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==c?Object(u.jsx)(i.a,Object(s.a)(Object(s.a)({},a),{},{as:l.b,to:n({offset:c})})):Object(u.jsx)(i.a,Object(s.a)(Object(s.a)({},a),{},{disabled:!0}))},f=c(4),b=c(224),d=c(195),g=c(0),O=c(20),h=function(e){var t=e.pageLimit,c=e.offset,n=e.getPageUrl,a=Object(g.useState)((c+1).toString()),r=Object(f.a)(a,2),s=r[0],i=r[1],l=Object(O.g)().push;Object(g.useEffect)((function(){i((c+1).toString())}),[c]);return Object(u.jsxs)(o.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),l(n({offset:parseInt(s)-1}))},children:[Object(u.jsx)(b.a,{colorScheme:"blue",h:10,max:t+1,min:1,name:"page",onChange:function(e){e.preventDefault(),i(e.target.value)},p:0,textAlign:"center",type:"number",value:s,w:10}),Object(u.jsxs)(d.a,{ml:2,w:"max-content",children:["of ",t+1]})]})},p=c(351),x=c(149),m={children:"Next Page",colorScheme:"blue",rightIcon:Object(u.jsx)(p.a,{color:"white"})},v=function(e){var t=e.nextPageUrl;return t?Object(u.jsx)(x.a,Object(s.a)(Object(s.a)({},m),{},{as:l.b,to:t})):Object(u.jsx)(x.a,Object(s.a)(Object(s.a)({},m),{},{disabled:!0}))},S=function(e){var t=e.offset,c=e.pageLimit,s=e.getPageUrl,i=t<c?t+1:void 0,l=t>0?t-1:void 0;return Object(u.jsxs)(r.a,{alignItems:"center",pt:4,templateColumns:"repeat(3, 1fr)",templateRows:"1fr",children:[Object(u.jsx)(r.b,{colStart:2,justifySelf:"center",children:Object(u.jsx)(v,{nextPageUrl:i?s({offset:i}):void 0})}),Object(u.jsx)(r.b,{colStart:3,justifySelf:"end",children:Object(u.jsxs)(o.a,{align:"center",justify:"center",py:4,children:[Object(u.jsx)(h,{getPageUrl:s,offset:t,pageLimit:c}),Object(u.jsx)(j,{getPageUrl:s,icon:n.a,offset:l}),Object(u.jsx)(j,{getPageUrl:s,icon:a.a,offset:i})]})})]})}},598:function(e,t,c){"use strict";c.r(t),c.d(t,"SearchResults",(function(){return v})),c.d(t,"default",(function(){return v}));var n=c(6),a=c(205),r=c(190),o=c(207),s=c(0),i=c(20),l=c(116),u=c(232),j=c(348),f=c(13),b=c(117),d=c(118),g=c(115),O=c(56),h=c(295),p=c(292),x=c(293),m=c(1),v=function(){var e,t,c=Object(g.a)(),v=decodeURIComponent(null!==(e=c.get(f.b.SEARCH_QUERY))&&void 0!==e?e:""),S=c.get(f.b.LANGUAGE),w=Object(d.a)({defaultQuery:v,defaultLanguage:S}),y=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t}(null!==(t=c.get(f.b.OFFSET))&&void 0!==t?t:"0"),U=Object(i.g)().push,P=Object(b.a)({query:v,offset:y,limit:x.a,language:S}),E=P.results,L=P.displayable,C=P.loading,I=P.pageLimit,R=function(e){var t,c;return Object(O.c)({query:null!==(t=e.q)&&void 0!==t?t:v,language:S,offset:null!==(c=e.offset)&&void 0!==c?c:y})};return Object(s.useEffect)((function(){!C&&E.length&&(y<0||y>I)&&U(R(y<0?{offset:0}:{offset:I}))}),[C,E,I,y]),Object(s.useEffect)((function(){v!==w.query&&w.setQuery(v)}),[v]),Object(m.jsx)(u.a,{meta:{title:v||"Search",description:v?"".concat(E.length," results for ").concat(v," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(m.jsxs)(a.a,{direction:"column",maxW:"100vw",children:[Object(m.jsx)(r.a,{p:4,children:Object(m.jsx)(l.a,Object(n.a)({},w))}),Object(m.jsx)(o.a,{}),Object(m.jsxs)(r.a,{p:4,children:[Object(m.jsx)(a.a,{align:"center",justify:"space-between",pb:4,wrap:"wrap",children:Object(m.jsx)(p.a,{count:E.length,filtered:!!v,limit:x.a,offset:y})}),Object(m.jsx)(j.a,{language:null!==S&&void 0!==S?S:void 0,results:L,skeleton:{loading:C,noOfItems:x.a}}),Object(m.jsx)(h.a,{getPageUrl:R,limit:x.a,offset:y,pageLimit:I})]})]})})}}}]);
|
|
2
|
+
//# sourceMappingURL=10.67470f34.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["views/SearchResults/components/ShowingDetails.tsx","views/SearchResults/constants.ts","views/SearchResults/components/ArrowButton.tsx","views/SearchResults/components/GoToPage.tsx","views/SearchResults/components/NextPage.tsx","views/SearchResults/components/PageControls.tsx","views/SearchResults/SearchResults.tsx"],"names":["Em","children","as","color","fontWeight","ShowingDetails","limit","offset","count","filtered","first","last","LIMIT","ArrowButton","Icon","icon","getPageUrl","props","borderRadius","borderColor","colorScheme","h","w","mx","variant","undefined","Link","to","disabled","GoToPage","pageLimit","useState","toString","inputValue","setInputValue","push","useHistory","useEffect","align","onSubmit","e","preventDefault","parseInt","max","min","name","onChange","target","value","p","textAlign","type","ml","btnProps","rightIcon","ArrowForward","NextPage","nextPageUrl","PageControls","nextOffset","prevOffset","alignItems","pt","templateColumns","templateRows","colStart","justifySelf","justify","py","ChevronLeftIcon","ChevronRightIcon","SearchResults","queryParams","useQueryParams","searchQuery","decodeURIComponent","get","QUERY_PARAMS","SEARCH_QUERY","languageQuery","LANGUAGE","searchAPI","useCatalogSearch","defaultQuery","defaultLanguage","val","result","toNum","OFFSET","useCatalogResults","query","language","results","displayable","loading","getUrl","params","getSearchPath","q","length","setQuery","Page","meta","title","description","pageName","direction","maxW","CatalogSearch","pb","wrap","Results","skeleton","noOfItems"],"mappings":"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","file":"static/js/10.67470f34.chunk.js","sourcesContent":["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","import { IconButton, IconProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface ArrowButtonProps {\n icon: FunctionComponent<IconProps>;\n offset?: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const ArrowButton: FunctionComponent<ArrowButtonProps> = ({\n icon: Icon,\n offset,\n getPageUrl,\n}) => {\n const label = `Page ${offset} link`;\n\n const props = {\n \"aria-label\": label,\n borderRadius: \"md\",\n borderColor: \"blue.500\",\n colorScheme: \"blue\",\n icon: <Icon color=\"blue.500\" h={5} w={5} />,\n mx: 2,\n h: 10,\n w: 10,\n variant: \"outline\",\n };\n\n if (offset !== undefined) {\n return <IconButton {...props} as={Link} to={getPageUrl({ offset })} />;\n }\n\n return <IconButton {...props} disabled />;\n};\n","import { Flex, Input, Text } from \"@chakra-ui/react\";\nimport {\n FormEventHandler,\n FunctionComponent,\n SyntheticEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nexport interface GoToPageProps {\n pageLimit: number;\n offset: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const GoToPage: FunctionComponent<GoToPageProps> = ({\n pageLimit,\n offset,\n getPageUrl,\n}) => {\n const [inputValue, setInputValue] = useState((offset + 1).toString());\n const { push } = useHistory();\n\n useEffect(() => {\n setInputValue((offset + 1).toString());\n }, [offset]);\n\n const onInputChange = (e: SyntheticEvent<HTMLInputElement>) => {\n e.preventDefault();\n setInputValue((e.target as HTMLInputElement).value);\n };\n\n const onSubmit: FormEventHandler<HTMLInputElement> = (e) => {\n e.preventDefault();\n push(getPageUrl({ offset: parseInt(inputValue) - 1 }));\n };\n\n return (\n <Flex align=\"center\" as=\"form\" mx={2} onSubmit={onSubmit}>\n <Input\n colorScheme=\"blue\"\n h={10}\n max={pageLimit + 1}\n min={1}\n name=\"page\"\n onChange={onInputChange}\n p={0}\n textAlign=\"center\"\n type=\"number\"\n value={inputValue}\n w={10}\n />\n <Text ml={2} w=\"max-content\">\n of {pageLimit + 1}\n </Text>\n </Flex>\n );\n};\n","import { ArrowForwardIcon } from \"@chakra-ui/icons\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface NextPageProps {\n nextPageUrl?: string;\n}\n\nconst btnProps = {\n children: \"Next Page\",\n colorScheme: \"blue\",\n rightIcon: <ArrowForwardIcon color=\"white\" />,\n};\n\nexport const NextPage: FunctionComponent<NextPageProps> = ({ nextPageUrl }) => {\n if (!nextPageUrl) {\n return <Button {...btnProps} disabled />;\n }\n\n return <Button {...btnProps} as={Link} to={nextPageUrl} />;\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"@chakra-ui/icons\";\nimport { Flex, Grid, GridItem } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { ArrowButton } from \"./ArrowButton\";\nimport { GoToPage } from \"./GoToPage\";\nimport { NextPage } from \"./NextPage\";\n\nexport interface PageControlsProps {\n limit: number;\n offset: number;\n pageLimit: number;\n getPageUrl: (params: { offset?: number }) => string;\n}\n\nexport const PageControls: FunctionComponent<PageControlsProps> = ({\n offset,\n pageLimit,\n getPageUrl,\n}) => {\n const nextOffset = offset < pageLimit ? offset + 1 : undefined;\n const prevOffset = offset > 0 ? offset - 1 : undefined;\n\n return (\n <Grid\n alignItems=\"center\"\n pt={4}\n templateColumns=\"repeat(3, 1fr)\"\n templateRows=\"1fr\"\n >\n <GridItem colStart={2} justifySelf=\"center\">\n <NextPage\n nextPageUrl={\n nextOffset ? getPageUrl({ offset: nextOffset }) : undefined\n }\n />\n </GridItem>\n <GridItem colStart={3} justifySelf=\"end\">\n <Flex align=\"center\" justify=\"center\" py={4}>\n <GoToPage\n getPageUrl={getPageUrl}\n offset={offset}\n pageLimit={pageLimit}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronLeftIcon}\n offset={prevOffset}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronRightIcon}\n offset={nextOffset}\n />\n </Flex>\n </GridItem>\n </Grid>\n );\n};\n","import { Box, Divider, Flex } from \"@chakra-ui/react\";\nimport { FunctionComponent, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { CatalogSearch } from \"../../components/CatalogSearch\";\nimport { Page } from \"../../components/Page\";\nimport { Results } from \"../../components/Results\";\nimport { Language } from \"../../constants/languages\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport { useCatalogResults } from \"../../hooks/useCatalogResults\";\nimport { useCatalogSearch } from \"../../hooks/useCatalogSearch\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\nimport { getSearchPath } from \"../../util/url\";\nimport { PageControls } from \"./components/PageControls\";\nimport { ShowingDetails } from \"./components/ShowingDetails\";\nimport { LIMIT, SearchQueryParam } from \"./constants\";\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\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 { push } = useHistory();\n\n const { results, displayable, loading, pageLimit } = useCatalogResults({\n query: searchQuery,\n offset,\n limit: LIMIT,\n language: languageQuery,\n });\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 // If the query has results but the page has nothing to show...\n if (!loading && results.length && (offset < 0 || offset > pageLimit)) {\n // Handle an out of bounds offset\n if (offset < 0) {\n push(getUrl({ offset: 0 }));\n } else {\n // Offset is too large, just take last page\n push(getUrl({ offset: pageLimit }));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, results, pageLimit, offset]);\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 align=\"center\" justify=\"space-between\" pb={4} wrap=\"wrap\">\n <ShowingDetails\n count={results.length}\n filtered={!!searchQuery}\n limit={LIMIT}\n offset={offset}\n />\n </Flex>\n <Results\n language={languageQuery ?? undefined}\n results={displayable}\n skeleton={{ loading, noOfItems: LIMIT }}\n />\n <PageControls\n getPageUrl={getUrl}\n limit={LIMIT}\n offset={offset}\n pageLimit={pageLimit}\n />\n </Box>\n </Flex>\n </Page>\n );\n};\n"],"sourceRoot":""}
|