Second frontend, written in Next.JS + Typescript.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
15 KiB

{"ast":null,"code":"\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = __importDefault(require(\"react\"));\n\nvar side_effect_1 = __importDefault(require(\"./side-effect\"));\n\nvar amp_context_1 = require(\"./amp-context\");\n\nvar head_manager_context_1 = require(\"./head-manager-context\");\n\nvar amp_1 = require(\"./amp\");\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [react_1[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push(react_1[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\n\nexports.defaultHead = defaultHead;\n\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n } // Adds support for React.Fragment\n\n\n if (child.type === react_1[\"default\"].Fragment) {\n return list.concat(react_1[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var unique = true;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n unique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n unique = false;\n } else {\n tags.add(h.type);\n }\n\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n unique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\n if (categories.has(category)) {\n unique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n\n break;\n }\n\n return unique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = react_1[\"default\"].Children.toArray(headElement.props.children);\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n return react_1[\"default\"].cloneElement(c, {\n key: key\n });\n });\n}\n\nvar Effect = side_effect_1[\"default\"]();\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\n\nfunction Head(_ref) {\n var children = _ref.children;\n return react_1[\"default\"].createElement(amp_context_1.AmpStateContext.Consumer, null, function (ampState) {\n return react_1[\"default\"].createElement(head_manager_context_1.HeadManagerContext.Consumer, null, function (updateHead) {\n return react_1[\"default\"].createElement(Effect, {\n reduceComponentsToState: reduceComponents,\n handleStateChange: updateHead,\n inAmpMode: amp_1.isInAmpMode(ampState)\n }, children);\n });\n });\n}\n\nHead.rewind = Effect.rewind;\nexports[\"default\"] = Head;","map":{"version":3,"sources":["/home/gisle/projects/react/rpdata-frontend2/node_modules/next/dist/next-server/lib/head.js"],"names":["__importDefault","mod","__esModule","Object","defineProperty","exports","value","react_1","require","side_effect_1","amp_context_1","head_manager_context_1","amp_1","defaultHead","inAmpMode","head","createElement","charSet","push","name","content","onlyReactElement","list","child","type","Fragment","concat","Children","toArray","props","children","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","Set","tags","metaTypes","metaCategories","h","key","indexOf","slice","has","add","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headElements","headElement","headElementChildren","reverse","filter","map","c","cloneElement","Effect","Head","AmpStateContext","Consumer","ampState","HeadManagerContext","updateHead","reduceComponentsToState","handleStateChange","isInAmpMode","rewind"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst side_effect_1 = __importDefault(require(\"./side-effect\"));\nconst amp_context_1 = require(\"./amp-context\");\nconst head_manager_context_1 = require(\"./head-manager-context\");\nconst amp_1 = require(\"./amp\");\nfunction defaultHead(inAmpMode = false) {\n const head = [react_1.default.createElement(\"meta\", { charSet: \"utf-8\" })];\n if (!inAmpMode) {\n head.push(react_1.default.createElement(\"meta\", { name: \"viewport\", content: \"width=device-width\" }));\n }\n return head;\n}\nexports.defaultHead = defaultHead;\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === react_1.default.Fragment) {\n return list.concat(react_1.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild) => {\n if (typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h) => {\n let unique = true;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n unique = false;\n }\n else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n unique = false;\n }\n else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype))\n continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n unique = false;\n }\n else {\n metaTypes.add(metatype);\n }\n }\n else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if (categories.has(category)) {\n unique = false;\n }\n else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return unique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\nfunction reduceComponents(headElements, props) {\n return headElements\n .reduce((list, headElement) => {\n const headElementChildren = react_1.default.Children.toArray(headElement.props.children);\n return list.concat(headElementChildren);\n }, [])\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(props.inAmpMode))\n .filter(unique())\n .reverse()\n .map((c, i) => {\n const key = c.key || i;\n return react_1.default.cloneElement(c, { key });\n });\n}\nconst Effect = side_effect_1.default();\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }) {\n return (react_1.default.createElement(amp_context_1.AmpStateContext.Consumer, null, ampState => (react_1.default.createElement(head_manager_context_1.HeadManagerContext.Consumer, null, updateHead => (react_1.default.createElement(Effect, { reduceComponentsToState: reduceComponents, handleStateChange: updateHead, inAmpMode: amp_1.isInAmpMode(ampState) }, children))))));\n}\nHead.rewind = Effect.rewind;\nexports.default = Head;\n"]},"metadata":{},"sourceType":"script"}