@arc-core-components/amp-document-boilerplate
Advanced tools
Comparing version 0.2.6-beta.1 to 0.2.7-beta.0
@@ -21,6 +21,13 @@ "use strict"; | ||
/** | ||
* @func Style | ||
* @desc Create AMP styles | ||
* @param {String|Object} children - styles to inject | ||
* @param {Object[]} props - any other props | ||
* @return {Object} styles for AMP | ||
*/ | ||
function Style(_ref) { | ||
var children = _ref.children, | ||
props = (0, _objectWithoutProperties2.default)(_ref, ["children"]); | ||
return _react.default.createElement("style", (0, _extends2.default)({}, props, { | ||
props = (0, _objectWithoutProperties2["default"])(_ref, ["children"]); | ||
return _react["default"].createElement("style", (0, _extends2["default"])({}, props, { | ||
dangerouslySetInnerHTML: { | ||
@@ -35,35 +42,74 @@ __html: children | ||
}; | ||
/** | ||
* @func AmpBoilerplateStyle | ||
* @desc Create AMP styles boilerplate | ||
* @return {Object} styles required for AMP code base | ||
*/ | ||
function AmpBoilerplateStyle() { | ||
return _react.default.createElement(Style, { | ||
return _react["default"].createElement(Style, { | ||
"amp-boilerplate": "" | ||
}, "body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}"); | ||
} | ||
/** | ||
* @func AmpNoScript | ||
* @desc Create AMP styles boilerplate when javascript is disabled | ||
* @return {Object} styles that remove all amp boilerplate and animations | ||
*/ | ||
function AmpNoScript() { | ||
return _react.default.createElement("noscript", null, _react.default.createElement(Style, { | ||
return _react["default"].createElement("noscript", null, _react["default"].createElement(Style, { | ||
"amp-boilerplate": "" | ||
}, "body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}")); | ||
} | ||
/** | ||
* @func Html | ||
* @desc Returns an html tag with all props passed to it | ||
* @param {Object} props - the properties to pass to the HTML tag | ||
* @return {Object} decorated html tag | ||
*/ | ||
function Html(props) { | ||
return _react.default.createElement("html", (0, _extends2.default)({ | ||
var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "en"; | ||
var filteredProps = props; | ||
var language = lang; | ||
if (filteredProps.lang) { | ||
language = filteredProps.lang; | ||
delete filteredProps.lang; | ||
} | ||
return _react["default"].createElement("html", (0, _extends2["default"])({ | ||
amp: "" | ||
}, props)); | ||
}, filteredProps, { | ||
lang: language | ||
})); | ||
} | ||
Html.propType = { | ||
lang: _propTypes.string | ||
}; | ||
/** | ||
* @func BaseMarkup | ||
* @desc Create the basic AMP markup | ||
* @param {String} canonicalUrl - the canonicalURL for the defaut meta data | ||
* @return {Object} default metadata including canonical URL and AMP base markup | ||
*/ | ||
function BaseMarkup(_ref2) { | ||
var canonicalUrl = _ref2.canonicalUrl; | ||
return _react.default.createElement(_react.Fragment, null, _react.default.createElement("meta", { | ||
return _react["default"].createElement(_react.Fragment, null, _react["default"].createElement("meta", { | ||
charSet: "utf-8" | ||
}), _react.default.createElement("meta", { | ||
}), _react["default"].createElement("meta", { | ||
name: "viewport", | ||
content: "width=device-width,minimum-scale=1,initial-scale=1" | ||
}), _react.default.createElement("script", { | ||
}), _react["default"].createElement("script", { | ||
async: true, | ||
src: "https://cdn.ampproject.org/v0.js" | ||
}), _react.default.createElement("link", { | ||
}), _react["default"].createElement("link", { | ||
rel: "canonical", | ||
href: canonicalUrl | ||
}), _react.default.createElement(AmpBoilerplateStyle, null), _react.default.createElement(AmpNoScript, null)); | ||
}), _react["default"].createElement(AmpBoilerplateStyle, null), _react["default"].createElement(AmpNoScript, null)); | ||
} | ||
@@ -74,2 +120,2 @@ | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVua25vd24iXSwibmFtZXMiOlsiU3R5bGUiLCJjaGlsZHJlbiIsInByb3BzIiwiX19odG1sIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIkFtcEJvaWxlcnBsYXRlU3R5bGUiLCJBbXBOb1NjcmlwdCIsIkh0bWwiLCJCYXNlTWFya3VwIiwiY2Fub25pY2FsVXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsU0FBU0EsS0FBVCxPQUF1QztBQUFBLE1BQXRCQyxRQUFzQixRQUF0QkEsUUFBc0I7QUFBQSxNQUFUQyxLQUFTO0FBQ3JDLFNBQU8saUVBQVdBLEtBQVg7QUFBa0IsSUFBQSx1QkFBdUIsRUFBRTtBQUFFQyxNQUFBQSxNQUFNLEVBQUVGO0FBQVY7QUFBM0MsS0FBUDtBQUNEOztBQUVERCxLQUFLLENBQUNJLFNBQU4sR0FBa0I7QUFDaEJILEVBQUFBLFFBQVEsRUFBRUksa0JBQU9DO0FBREQsQ0FBbEI7O0FBSUEsU0FBU0MsbUJBQVQsR0FBK0I7QUFDN0IsU0FDRSw2QkFBQyxLQUFEO0FBQU8sdUJBQWdCO0FBQXZCLEtBRUksd2xCQUZKLENBREY7QUFPRDs7QUFFRCxTQUFTQyxXQUFULEdBQXVCO0FBQ3JCLFNBQ0UsK0NBQ0UsNkJBQUMsS0FBRDtBQUFPLHVCQUFnQjtBQUF2QixLQUVJLG9GQUZKLENBREYsQ0FERjtBQVNEOztBQUVNLFNBQVNDLElBQVQsQ0FBY1AsS0FBZCxFQUFxQjtBQUMxQixTQUFPO0FBQU0sSUFBQSxHQUFHLEVBQUM7QUFBVixLQUFpQkEsS0FBakIsRUFBUDtBQUNEOztBQUVNLFNBQVNRLFVBQVQsUUFBc0M7QUFBQSxNQUFoQkMsWUFBZ0IsU0FBaEJBLFlBQWdCO0FBQzNDLFNBQ0UsNkJBQUMsZUFBRCxRQUNFO0FBQU0sSUFBQSxPQUFPLEVBQUM7QUFBZCxJQURGLEVBRUU7QUFDRSxJQUFBLElBQUksRUFBQyxVQURQO0FBRUUsSUFBQSxPQUFPLEVBQUM7QUFGVixJQUZGLEVBTUU7QUFBUSxJQUFBLEtBQUssTUFBYjtBQUFjLElBQUEsR0FBRyxFQUFDO0FBQWxCLElBTkYsRUFPRTtBQUFNLElBQUEsR0FBRyxFQUFDLFdBQVY7QUFBc0IsSUFBQSxJQUFJLEVBQUVBO0FBQTVCLElBUEYsRUFRRSw2QkFBQyxtQkFBRCxPQVJGLEVBU0UsNkJBQUMsV0FBRCxPQVRGLENBREY7QUFhRDs7QUFFREQsVUFBVSxDQUFDTixTQUFYLEdBQXVCO0FBQ3JCTyxFQUFBQSxZQUFZLEVBQUVOLGtCQUFPQztBQURBLENBQXZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5mdW5jdGlvbiBTdHlsZSh7IGNoaWxkcmVuLCAuLi5wcm9wcyB9KSB7XG4gIHJldHVybiA8c3R5bGUgey4uLnByb3BzfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGNoaWxkcmVuIH19IC8+O1xufVxuXG5TdHlsZS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBzdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuZnVuY3Rpb24gQW1wQm9pbGVycGxhdGVTdHlsZSgpIHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGUgYW1wLWJvaWxlcnBsYXRlPVwiXCI+XG4gICAgICB7XG4gICAgICAgIFwiYm9keXstd2Via2l0LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tb3otYW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGg7LW1zLWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoO2FuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RofUAtd2Via2l0LWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1ALW1vei1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tcy1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1vLWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1Aa2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fVwiXG4gICAgICB9XG4gICAgPC9TdHlsZT5cbiAgKTtcbn1cblxuZnVuY3Rpb24gQW1wTm9TY3JpcHQoKSB7XG4gIHJldHVybiAoXG4gICAgPG5vc2NyaXB0PlxuICAgICAgPFN0eWxlIGFtcC1ib2lsZXJwbGF0ZT1cIlwiPlxuICAgICAgICB7XG4gICAgICAgICAgXCJib2R5ey13ZWJraXQtYW5pbWF0aW9uOm5vbmU7LW1vei1hbmltYXRpb246bm9uZTstbXMtYW5pbWF0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9XCJcbiAgICAgICAgfVxuICAgICAgPC9TdHlsZT5cbiAgICA8L25vc2NyaXB0PlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSHRtbChwcm9wcykge1xuICByZXR1cm4gPGh0bWwgYW1wPVwiXCIgey4uLnByb3BzfSAvPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJhc2VNYXJrdXAoeyBjYW5vbmljYWxVcmwgfSkge1xuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIDxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICA8bWV0YVxuICAgICAgICBuYW1lPVwidmlld3BvcnRcIlxuICAgICAgICBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTFcIlxuICAgICAgLz5cbiAgICAgIDxzY3JpcHQgYXN5bmMgc3JjPVwiaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAuanNcIiAvPlxuICAgICAgPGxpbmsgcmVsPVwiY2Fub25pY2FsXCIgaHJlZj17Y2Fub25pY2FsVXJsfSAvPlxuICAgICAgPEFtcEJvaWxlcnBsYXRlU3R5bGUgLz5cbiAgICAgIDxBbXBOb1NjcmlwdCAvPlxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG5cbkJhc2VNYXJrdXAucHJvcFR5cGVzID0ge1xuICBjYW5vbmljYWxVcmw6IHN0cmluZy5pc1JlcXVpcmVkXG59O1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVua25vd24iXSwibmFtZXMiOlsiU3R5bGUiLCJjaGlsZHJlbiIsInByb3BzIiwiX19odG1sIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIkFtcEJvaWxlcnBsYXRlU3R5bGUiLCJBbXBOb1NjcmlwdCIsIkh0bWwiLCJsYW5nIiwiZmlsdGVyZWRQcm9wcyIsImxhbmd1YWdlIiwicHJvcFR5cGUiLCJCYXNlTWFya3VwIiwiY2Fub25pY2FsVXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7Ozs7Ozs7QUFPQSxTQUFTQSxLQUFULE9BQXVDO0FBQUEsTUFBdEJDLFFBQXNCLFFBQXRCQSxRQUFzQjtBQUFBLE1BQVRDLEtBQVM7QUFDckMsU0FBTyx1RUFBV0EsS0FBWDtBQUFrQixJQUFBLHVCQUF1QixFQUFFO0FBQUVDLE1BQUFBLE1BQU0sRUFBRUY7QUFBVjtBQUEzQyxLQUFQO0FBQ0Q7O0FBRURELEtBQUssQ0FBQ0ksU0FBTixHQUFrQjtBQUNoQkgsRUFBQUEsUUFBUSxFQUFFSSxrQkFBT0M7QUFERCxDQUFsQjtBQUlBOzs7Ozs7QUFLQSxTQUFTQyxtQkFBVCxHQUErQjtBQUM3QixTQUNFLGdDQUFDLEtBQUQ7QUFBTyx1QkFBZ0I7QUFBdkIsS0FFSSx3bEJBRkosQ0FERjtBQU9EO0FBRUQ7Ozs7Ozs7QUFLQSxTQUFTQyxXQUFULEdBQXVCO0FBQ3JCLFNBQ0Usa0RBQ0UsZ0NBQUMsS0FBRDtBQUFPLHVCQUFnQjtBQUF2QixLQUVJLG9GQUZKLENBREYsQ0FERjtBQVNEO0FBRUQ7Ozs7Ozs7O0FBTU8sU0FBU0MsSUFBVCxDQUFjUCxLQUFkLEVBQWtDO0FBQUEsTUFBYlEsSUFBYSx1RUFBTixJQUFNO0FBQ3ZDLE1BQU1DLGFBQWEsR0FBR1QsS0FBdEI7QUFDQSxNQUFJVSxRQUFRLEdBQUdGLElBQWY7O0FBRUEsTUFBSUMsYUFBYSxDQUFDRCxJQUFsQixFQUF3QjtBQUN0QkUsSUFBQUEsUUFBUSxHQUFHRCxhQUFhLENBQUNELElBQXpCO0FBQ0EsV0FBT0MsYUFBYSxDQUFDRCxJQUFyQjtBQUNEOztBQUVELFNBQU87QUFBTSxJQUFBLEdBQUcsRUFBQztBQUFWLEtBQWlCQyxhQUFqQjtBQUFnQyxJQUFBLElBQUksRUFBRUM7QUFBdEMsS0FBUDtBQUNEOztBQUVESCxJQUFJLENBQUNJLFFBQUwsR0FBZ0I7QUFDZEgsRUFBQUEsSUFBSSxFQUFFTDtBQURRLENBQWhCO0FBSUE7Ozs7Ozs7QUFNTyxTQUFTUyxVQUFULFFBQXNDO0FBQUEsTUFBaEJDLFlBQWdCLFNBQWhCQSxZQUFnQjtBQUMzQyxTQUNFLGdDQUFDLGVBQUQsUUFDRTtBQUFNLElBQUEsT0FBTyxFQUFDO0FBQWQsSUFERixFQUVFO0FBQ0UsSUFBQSxJQUFJLEVBQUMsVUFEUDtBQUVFLElBQUEsT0FBTyxFQUFDO0FBRlYsSUFGRixFQU1FO0FBQVEsSUFBQSxLQUFLLE1BQWI7QUFBYyxJQUFBLEdBQUcsRUFBQztBQUFsQixJQU5GLEVBT0U7QUFBTSxJQUFBLEdBQUcsRUFBQyxXQUFWO0FBQXNCLElBQUEsSUFBSSxFQUFFQTtBQUE1QixJQVBGLEVBUUUsZ0NBQUMsbUJBQUQsT0FSRixFQVNFLGdDQUFDLFdBQUQsT0FURixDQURGO0FBYUQ7O0FBRURELFVBQVUsQ0FBQ1YsU0FBWCxHQUF1QjtBQUNyQlcsRUFBQUEsWUFBWSxFQUFFVixrQkFBT0M7QUFEQSxDQUF2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc3RyaW5nIH0gZnJvbSBcInByb3AtdHlwZXNcIjtcblxuLyoqXG4qIEBmdW5jIFN0eWxlXG4qIEBkZXNjIENyZWF0ZSBBTVAgc3R5bGVzXG4qIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gY2hpbGRyZW4gLSBzdHlsZXMgdG8gaW5qZWN0XG4qIEBwYXJhbSB7T2JqZWN0W119IHByb3BzIC0gYW55IG90aGVyIHByb3BzXG4qIEByZXR1cm4ge09iamVjdH0gc3R5bGVzIGZvciBBTVBcbiovXG5mdW5jdGlvbiBTdHlsZSh7IGNoaWxkcmVuLCAuLi5wcm9wcyB9KSB7XG4gIHJldHVybiA8c3R5bGUgey4uLnByb3BzfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGNoaWxkcmVuIH19IC8+O1xufVxuXG5TdHlsZS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBzdHJpbmcuaXNSZXF1aXJlZCxcbn07XG5cbi8qKlxuKiBAZnVuYyBBbXBCb2lsZXJwbGF0ZVN0eWxlXG4qIEBkZXNjIENyZWF0ZSBBTVAgc3R5bGVzIGJvaWxlcnBsYXRlXG4qIEByZXR1cm4ge09iamVjdH0gc3R5bGVzIHJlcXVpcmVkIGZvciBBTVAgY29kZSBiYXNlXG4qL1xuZnVuY3Rpb24gQW1wQm9pbGVycGxhdGVTdHlsZSgpIHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGUgYW1wLWJvaWxlcnBsYXRlPVwiXCI+XG4gICAgICB7XG4gICAgICAgIFwiYm9keXstd2Via2l0LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tb3otYW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGg7LW1zLWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoO2FuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RofUAtd2Via2l0LWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1ALW1vei1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tcy1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1vLWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1Aa2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fVwiXG4gICAgICB9XG4gICAgPC9TdHlsZT5cbiAgKTtcbn1cblxuLyoqXG4qIEBmdW5jIEFtcE5vU2NyaXB0XG4qIEBkZXNjIENyZWF0ZSBBTVAgc3R5bGVzIGJvaWxlcnBsYXRlIHdoZW4gamF2YXNjcmlwdCBpcyBkaXNhYmxlZFxuKiBAcmV0dXJuIHtPYmplY3R9IHN0eWxlcyB0aGF0IHJlbW92ZSBhbGwgYW1wIGJvaWxlcnBsYXRlIGFuZCBhbmltYXRpb25zXG4qL1xuZnVuY3Rpb24gQW1wTm9TY3JpcHQoKSB7XG4gIHJldHVybiAoXG4gICAgPG5vc2NyaXB0PlxuICAgICAgPFN0eWxlIGFtcC1ib2lsZXJwbGF0ZT1cIlwiPlxuICAgICAgICB7XG4gICAgICAgICAgXCJib2R5ey13ZWJraXQtYW5pbWF0aW9uOm5vbmU7LW1vei1hbmltYXRpb246bm9uZTstbXMtYW5pbWF0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9XCJcbiAgICAgICAgfVxuICAgICAgPC9TdHlsZT5cbiAgICA8L25vc2NyaXB0PlxuICApO1xufVxuXG4vKipcbiogQGZ1bmMgSHRtbFxuKiBAZGVzYyBSZXR1cm5zIGFuIGh0bWwgdGFnIHdpdGggYWxsIHByb3BzIHBhc3NlZCB0byBpdFxuKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSB0aGUgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBIVE1MIHRhZ1xuKiBAcmV0dXJuIHtPYmplY3R9IGRlY29yYXRlZCBodG1sIHRhZ1xuKi9cbmV4cG9ydCBmdW5jdGlvbiBIdG1sKHByb3BzLCBsYW5nID0gXCJlblwiKSB7XG4gIGNvbnN0IGZpbHRlcmVkUHJvcHMgPSBwcm9wcztcbiAgbGV0IGxhbmd1YWdlID0gbGFuZztcblxuICBpZiAoZmlsdGVyZWRQcm9wcy5sYW5nKSB7XG4gICAgbGFuZ3VhZ2UgPSBmaWx0ZXJlZFByb3BzLmxhbmc7XG4gICAgZGVsZXRlIGZpbHRlcmVkUHJvcHMubGFuZztcbiAgfVxuXG4gIHJldHVybiA8aHRtbCBhbXA9XCJcIiB7Li4uZmlsdGVyZWRQcm9wc30gbGFuZz17bGFuZ3VhZ2V9IC8+O1xufVxuXG5IdG1sLnByb3BUeXBlID0ge1xuICBsYW5nOiBzdHJpbmcsXG59O1xuXG4vKipcbiogQGZ1bmMgQmFzZU1hcmt1cFxuKiBAZGVzYyBDcmVhdGUgdGhlIGJhc2ljIEFNUCBtYXJrdXBcbiogQHBhcmFtIHtTdHJpbmd9IGNhbm9uaWNhbFVybCAtIHRoZSBjYW5vbmljYWxVUkwgZm9yIHRoZSBkZWZhdXQgbWV0YSBkYXRhXG4qIEByZXR1cm4ge09iamVjdH0gZGVmYXVsdCBtZXRhZGF0YSBpbmNsdWRpbmcgY2Fub25pY2FsIFVSTCBhbmQgQU1QIGJhc2UgbWFya3VwXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIEJhc2VNYXJrdXAoeyBjYW5vbmljYWxVcmwgfSkge1xuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIDxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICA8bWV0YVxuICAgICAgICBuYW1lPVwidmlld3BvcnRcIlxuICAgICAgICBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTFcIlxuICAgICAgLz5cbiAgICAgIDxzY3JpcHQgYXN5bmMgc3JjPVwiaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAuanNcIiAvPlxuICAgICAgPGxpbmsgcmVsPVwiY2Fub25pY2FsXCIgaHJlZj17Y2Fub25pY2FsVXJsfSAvPlxuICAgICAgPEFtcEJvaWxlcnBsYXRlU3R5bGUgLz5cbiAgICAgIDxBbXBOb1NjcmlwdCAvPlxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG5cbkJhc2VNYXJrdXAucHJvcFR5cGVzID0ge1xuICBjYW5vbmljYWxVcmw6IHN0cmluZy5pc1JlcXVpcmVkLFxufTtcbiJdfQ== |
{ | ||
"name": "@arc-core-components/amp-document-boilerplate", | ||
"version": "0.2.6-beta.1", | ||
"version": "0.2.7-beta.0", | ||
"description": "AMP document boilerplate components", | ||
@@ -13,4 +13,4 @@ "main": "build/index.js", | ||
"peerDependencies": { | ||
"prop-types": "^15.6.2", | ||
"react": "^16.6.3" | ||
"prop-types": ">=15", | ||
"react": ">=16.2" | ||
}, | ||
@@ -23,3 +23,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "0d213faaa0515cd4e1a01b78c31cb7ea7e1064e0" | ||
"gitHead": "81a47fc866eca96ac1a20025c5570f4d03d567af" | ||
} |
import React, { Fragment } from "react"; | ||
import { string } from "prop-types"; | ||
/** | ||
* @func Style | ||
* @desc Create AMP styles | ||
* @param {String|Object} children - styles to inject | ||
* @param {Object[]} props - any other props | ||
* @return {Object} styles for AMP | ||
*/ | ||
function Style({ children, ...props }) { | ||
@@ -9,5 +16,10 @@ return <style {...props} dangerouslySetInnerHTML={{ __html: children }} />; | ||
Style.propTypes = { | ||
children: string.isRequired | ||
children: string.isRequired, | ||
}; | ||
/** | ||
* @func AmpBoilerplateStyle | ||
* @desc Create AMP styles boilerplate | ||
* @return {Object} styles required for AMP code base | ||
*/ | ||
function AmpBoilerplateStyle() { | ||
@@ -23,2 +35,7 @@ return ( | ||
/** | ||
* @func AmpNoScript | ||
* @desc Create AMP styles boilerplate when javascript is disabled | ||
* @return {Object} styles that remove all amp boilerplate and animations | ||
*/ | ||
function AmpNoScript() { | ||
@@ -36,6 +53,30 @@ return ( | ||
export function Html(props) { | ||
return <html amp="" {...props} />; | ||
/** | ||
* @func Html | ||
* @desc Returns an html tag with all props passed to it | ||
* @param {Object} props - the properties to pass to the HTML tag | ||
* @return {Object} decorated html tag | ||
*/ | ||
export function Html(props, lang = "en") { | ||
const filteredProps = props; | ||
let language = lang; | ||
if (filteredProps.lang) { | ||
language = filteredProps.lang; | ||
delete filteredProps.lang; | ||
} | ||
return <html amp="" {...filteredProps} lang={language} />; | ||
} | ||
Html.propType = { | ||
lang: string, | ||
}; | ||
/** | ||
* @func BaseMarkup | ||
* @desc Create the basic AMP markup | ||
* @param {String} canonicalUrl - the canonicalURL for the defaut meta data | ||
* @return {Object} default metadata including canonical URL and AMP base markup | ||
*/ | ||
export function BaseMarkup({ canonicalUrl }) { | ||
@@ -58,3 +99,3 @@ return ( | ||
BaseMarkup.propTypes = { | ||
canonicalUrl: string.isRequired | ||
canonicalUrl: string.isRequired, | ||
}; |
@@ -17,3 +17,3 @@ import React from "react"; | ||
expect( | ||
TestRenderer.create(<BaseMarkup canonicalUrl="/" />).toJSON() | ||
TestRenderer.create(<BaseMarkup canonicalUrl="/" />).toJSON(), | ||
).toMatchSnapshot(); | ||
@@ -32,3 +32,3 @@ }); | ||
<body /> | ||
</Html> | ||
</Html>, | ||
); | ||
@@ -38,6 +38,6 @@ expect( | ||
`<!doctype html> | ||
${renderedDocument}` | ||
).status | ||
${renderedDocument}`, | ||
).status, | ||
).toBe("PASS"); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
225
2
17433
7
1