"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var PropTypes=_interopDefault(require("prop-types")),withSideEffect=_interopDefault(require("react-side-effect")),isEqual=_interopDefault(require("react-fast-compare")),React=_interopDefault(require("react")),objectAssign=_interopDefault(require("object-assign")),ATTRIBUTE_NAMES={BODY:"bodyAttributes",HTML:"htmlAttributes",TITLE:"titleAttributes"},TAG_NAMES={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},VALID_TAG_NAMES=Object.keys(TAG_NAMES).map(function(e){return TAG_NAMES[e]}),TAG_PROPERTIES={CHARSET:"charset",CSS_TEXT:"cssText",HREF:"href",HTTPEQUIV:"http-equiv",INNER_HTML:"innerHTML",ITEM_PROP:"itemprop",NAME:"name",PROPERTY:"property",REL:"rel",SRC:"src",TARGET:"target"},REACT_TAG_MAP={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},HELMET_PROPS={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate"},HTML_TAG_MAP=Object.keys(REACT_TAG_MAP).reduce(function(e,t){return e[REACT_TAG_MAP[t]]=t,e},{}),SELF_CLOSING_TAGS=[TAG_NAMES.NOSCRIPT,TAG_NAMES.SCRIPT,TAG_NAMES.STYLE],HELMET_ATTRIBUTE="data-react-helmet",_typeof="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},classCallCheck=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},createClass=function(){function n(e,t){for(var r=0;r/g,">").replace(/"/g,""").replace(/'/g,"'")},getTitleFromPropsList=function(e){var t=getInnermostProperty(e,TAG_NAMES.TITLE),r=getInnermostProperty(e,HELMET_PROPS.TITLE_TEMPLATE);if(r&&t)return r.replace(/%s/g,function(){return Array.isArray(t)?t.join(""):t});var n=getInnermostProperty(e,HELMET_PROPS.DEFAULT_TITLE);return t||n||void 0},getOnChangeClientState=function(e){return getInnermostProperty(e,HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},getAttributesFromPropsList=function(t,e){return e.filter(function(e){return void 0!==e[t]}).map(function(e){return e[t]}).reduce(function(e,t){return _extends({},e,t)},{})},getBaseTagFromPropsList=function(i,e){return e.filter(function(e){return void 0!==e[TAG_NAMES.BASE]}).map(function(e){return e[TAG_NAMES.BASE]}).reverse().reduce(function(e,t){if(!e.length)for(var r=Object.keys(t),n=0;n"+encodeSpecialCharacters(i,n)+""+e+">":"<"+e+" "+HELMET_ATTRIBUTE+'="true">'+encodeSpecialCharacters(i,n)+""+e+">"},generateTagsAsString=function(i,e,a){return e.reduce(function(e,n){var t=Object.keys(n).filter(function(e){return!(e===TAG_PROPERTIES.INNER_HTML||e===TAG_PROPERTIES.CSS_TEXT)}).reduce(function(e,t){var r=void 0===n[t]?t:t+'="'+encodeSpecialCharacters(n[t],a)+'"';return e?e+" "+r:r},""),r=n.innerHTML||n.cssText||"",o=-1===SELF_CLOSING_TAGS.indexOf(i);return e+"<"+i+" "+HELMET_ATTRIBUTE+'="true" '+t+(o?"/>":">"+r+""+i+">")},"")},convertElementAttributestoReactProps=function(r,e){var t=1 elements are self-closing and can not contain children. Refer to our API for more information.")},n.prototype.flattenArrayTypeChildren=function(e){var t,r=e.child,n=e.arrayTypeChildren,o=e.newChildProps,i=e.nestedChildren;return _extends({},n,((t={})[r.type]=[].concat(n[r.type]||[],[_extends({},o,this.mapNestedChildrenToProps(r,i))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,r,n=e.child,o=e.newProps,i=e.newChildProps,a=e.nestedChildren;switch(n.type){case TAG_NAMES.TITLE:return _extends({},o,((t={})[n.type]=a,t.titleAttributes=_extends({},i),t));case TAG_NAMES.BODY:return _extends({},o,{bodyAttributes:_extends({},i)});case TAG_NAMES.HTML:return _extends({},o,{htmlAttributes:_extends({},i)})}return _extends({},o,((r={})[n.type]=_extends({},i),r))},n.prototype.mapArrayTypeChildrenToProps=function(r,e){var n=_extends({},e);return Object.keys(r).forEach(function(e){var t;n=_extends({},n,((t={})[e]=r[e],t))}),n},n.prototype.warnOnInvalidChildren=function(t,e){if("production"!==process.env.NODE_ENV){if(!VALID_TAG_NAMES.some(function(e){return t.type===e}))return"function"==typeof t.type?warn("You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information."):warn("Only elements types "+VALID_TAG_NAMES.join(", ")+" are allowed. Helmet does not support rendering <"+t.type+"> elements. Refer to our API for more information.");if(e&&"string"!=typeof e&&(!Array.isArray(e)||e.some(function(e){return"string"!=typeof e})))throw new Error("Helmet expects a string as a child of <"+t.type+">. Did you forget to wrap your children in braces? ( <"+t.type+">{``}"+t.type+"> ) Refer to our API for more information.")}return!0},n.prototype.mapChildrenToProps=function(e,i){var a=this,s={};return React.Children.forEach(e,function(e){if(e&&e.props){var t=e.props,r=t.children,n=objectWithoutProperties(t,["children"]),o=convertReactPropstoHtmlAttributes(n);switch(a.warnOnInvalidChildren(e,r),e.type){case TAG_NAMES.LINK:case TAG_NAMES.META:case TAG_NAMES.NOSCRIPT:case TAG_NAMES.SCRIPT:case TAG_NAMES.STYLE:s=a.flattenArrayTypeChildren({child:e,arrayTypeChildren:s,newChildProps:o,nestedChildren:r});break;default:i=a.mapObjectTypeChildren({child:e,newProps:i,newChildProps:o,nestedChildren:r})}}}),i=this.mapArrayTypeChildrenToProps(s,i)},n.prototype.render=function(){var e=this.props,t=e.children,r=objectWithoutProperties(e,["children"]),n=_extends({},r);return t&&(n=this.mapChildrenToProps(t,n)),React.createElement(o,n)},createClass(n,null,[{key:"canUseDOM",set:function(e){o.canUseDOM=e}}]),t=e=n,e.propTypes={base:PropTypes.object,bodyAttributes:PropTypes.object,children:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node),PropTypes.node]),defaultTitle:PropTypes.string,defer:PropTypes.bool,encodeSpecialCharacters:PropTypes.bool,htmlAttributes:PropTypes.object,link:PropTypes.arrayOf(PropTypes.object),meta:PropTypes.arrayOf(PropTypes.object),noscript:PropTypes.arrayOf(PropTypes.object),onChangeClientState:PropTypes.func,script:PropTypes.arrayOf(PropTypes.object),style:PropTypes.arrayOf(PropTypes.object),title:PropTypes.string,titleAttributes:PropTypes.object,titleTemplate:PropTypes.string},e.defaultProps={defer:!0,encodeSpecialCharacters:!0},e.peek=o.peek,e.rewind=function(){var e=o.rewind();return e=e||mapStateOnServer({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})},t;function n(){return classCallCheck(this,n),possibleConstructorReturn(this,r.apply(this,arguments))}},NullComponent=function(){return null},HelmetSideEffects=withSideEffect(reducePropsToState,handleClientStateChange,mapStateOnServer)(NullComponent),HelmetExport=Helmet(HelmetSideEffects);HelmetExport.renderStatic=HelmetExport.rewind,exports.Helmet=HelmetExport;