1 | "use strict";exports.__esModule=true;exports.defaultHead=defaultHead;exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _sideEffect=_interopRequireDefault(require("./side-effect"));var _ampContext=require("./amp-context");var _headManagerContext=require("./head-manager-context");var _amp=require("./amp");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function defaultHead(inAmpMode=false){const head=[_react.default.createElement("meta",{charSet:"utf-8"})];if(!inAmpMode){head.push(_react.default.createElement("meta",{name:"viewport",content:"width=device-width"}));}return head;}function onlyReactElement(list,child){
|
2 | if(typeof child==='string'||typeof child==='number'){return list;}
|
3 | if(child.type===_react.default.Fragment){return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList,fragmentChild)=>{if(typeof fragmentChild==='string'||typeof fragmentChild==='number'){return fragmentList;}return fragmentList.concat(fragmentChild);},[]));}return list.concat(child);}const METATYPES=['name','httpEquiv','charSet','itemProp']; |
4 |
|
5 |
|
6 |
|
7 | function unique(){const keys=new Set();const tags=new Set();const metaTypes=new Set();const metaCategories={};return h=>{let isUnique=true;let hasKey=false;if(h.key&&typeof h.key!=='number'&&h.key.indexOf('$')>0){hasKey=true;const key=h.key.slice(h.key.indexOf('$')+1);if(keys.has(key)){isUnique=false;}else{keys.add(key);}}
|
8 | switch(h.type){case'title':case'base':if(tags.has(h.type)){isUnique=false;}else{tags.add(h.type);}break;case'meta':for(let i=0,len=METATYPES.length;i<len;i++){const metatype=METATYPES[i];if(!h.props.hasOwnProperty(metatype))continue;if(metatype==='charSet'){if(metaTypes.has(metatype)){isUnique=false;}else{metaTypes.add(metatype);}}else{const category=h.props[metatype];const categories=metaCategories[metatype]||new Set();if((metatype!=='name'||!hasKey)&&categories.has(category)){isUnique=false;}else{categories.add(category);metaCategories[metatype]=categories;}}}break;}return isUnique;};} |
9 |
|
10 |
|
11 | function reduceComponents(headElements,props){return headElements.reduce((list,headElement)=>{const headElementChildren=_react.default.Children.toArray(headElement.props.children);return list.concat(headElementChildren);},[]).reduce(onlyReactElement,[]).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map((c,i)=>{const key=c.key||i;if(process.env.NODE_ENV!=='development'&&process.env.__NEXT_OPTIMIZE_FONTS&&!props.inAmpMode){if(c.type==='link'&&c.props['href']&&
|
12 | ['https://fonts.googleapis.com/css','https://use.typekit.net/'].some(url=>c.props['href'].startsWith(url))){const newProps={...(c.props||{})};newProps['data-href']=newProps['href'];newProps['href']=undefined;
|
13 | newProps['data-optimized-fonts']=true;return_react.default.cloneElement(c,newProps);}}return_react.default.cloneElement(c,{key});});} |
14 |
|
15 |
|
16 | function Head({children}){const ampState=(0,_react.useContext)(_ampContext.AmpStateContext);const headManager=(0,_react.useContext)(_headManagerContext.HeadManagerContext);return_react.default.createElement(_sideEffect.default,{reduceComponentsToState:reduceComponents,headManager:headManager,inAmpMode:(0,_amp.isInAmpMode)(ampState)},children);}var _default=Head;exports.default=_default;
|
17 |
|
\ | No newline at end of file |