{"version":3,"file":"not_found_index-c-47af561483.js","mappings":"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","sources":["webpack://canvas-lms/./node_modules/@instructure/ui-prop-types/es/childrenOrValue.js","webpack://canvas-lms/./node_modules/@instructure/ui-heading/es/Heading/theme.js","webpack://canvas-lms/./node_modules/@instructure/ui-heading/es/Heading/themeAdapter.js","webpack://canvas-lms/./node_modules/@instructure/ui-heading/es/Heading/index.js","webpack://canvas-lms/./node_modules/@instructure/ui-text/es/Text/theme.js","webpack://canvas-lms/./node_modules/@instructure/ui-text/es/Text/index.js","webpack://canvas-lms/./ui/features/not_found_index/react/frogger/characters.js","webpack://canvas-lms/./ui/features/not_found_index/react/frogger/OfficialNotFoundGame.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/gameObject.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/spawners.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/explodingParticle.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/input.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/playerShip.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/SpaceInvaders.js","webpack://canvas-lms/./ui/features/not_found_index/react/gameEntry.js","webpack://canvas-lms/./ui/features/not_found_index/react/NotFoundArtwork.js","webpack://canvas-lms/./ui/features/not_found_index/index.js","webpack://canvas-lms/./ui/shared/svg-wrapper/react/index.js","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/coronavirus.png","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/ship.png","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/syringe.png","webpack://canvas-lms/./ui/features/not_found_index/react/space_invaders/tp.png"],"sourcesContent":["/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/**\n * ---\n * category: utilities/PropTypes\n * ---\n * Verify that either value is provided as a prop if as=\"input\", and children\n * if provided otherwise\n *\n * ```js\n * import { childrenOrValue } from '@instructure/ui-prop-types'\n *\n * class Foo extends Component {\n * static propTypes = {\n * children: childrenOrValue,\n * value: childrenOrValue\n * }\n * ...\n * ```\n */\nfunction childrenOrValue(props, propName, componentName) {\n if (props.as === 'input') {\n if (propName === 'children' && props.children || props.value == void 0) {\n return new Error(\"Prop `value` and not `children` must be supplied if `\".concat(componentName, \" as=\\\"input\\\"`\"));\n }\n } else {\n if (propName === 'value' && props.value != void 0) {\n return new Error(\"Prop `children` and not `value` must be supplied unless `\".concat(componentName, \" as=\\\"input\\\"`\"));\n } else if (!props.children) {\n return new Error(\"Prop `children` should be supplied unless `\".concat(componentName, \" as=\\\"input\\\"`.\"));\n }\n }\n\n return;\n}\n\nexport default childrenOrValue;\nexport { childrenOrValue };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport default function generator(_ref) {\n var borders = _ref.borders,\n colors = _ref.colors,\n spacing = _ref.spacing,\n typography = _ref.typography;\n return {\n lineHeight: typography.lineHeightFit,\n h1FontSize: typography.fontSizeXXLarge,\n h1FontWeight: typography.fontWeightLight,\n h1FontFamily: typography.fontFamily,\n h2FontSize: typography.fontSizeXLarge,\n h2FontWeight: typography.fontWeightNormal,\n h2FontFamily: typography.fontFamily,\n h3FontSize: typography.fontSizeLarge,\n h3FontWeight: typography.fontWeightBold,\n h3FontFamily: typography.fontFamily,\n h4FontSize: typography.fontSizeMedium,\n h4FontWeight: typography.fontWeightBold,\n h4FontFamily: typography.fontFamily,\n h5FontSize: typography.fontSizeSmall,\n h5FontWeight: typography.fontWeightNormal,\n h5FontFamily: typography.fontFamily,\n primaryInverseColor: colors.textLightest,\n primaryColor: colors.textDarkest,\n secondaryColor: colors.textDark,\n secondaryInverseColor: colors.textLight,\n borderPadding: spacing.xxxSmall,\n borderColor: colors.borderMedium,\n borderWidth: borders.widthSmall,\n borderStyle: borders.style\n };\n}\n\ngenerator.canvas = function (variables) {\n return {\n primaryColor: variables['ic-brand-font-color-dark']\n };\n};\n\ngenerator['instructure'] = function (_ref2) {\n var typography = _ref2.typography;\n return {\n h1FontFamily: typography.fontFamilyHeading,\n h2FontFamily: typography.fontFamilyHeading,\n h3FontWeight: typography.fontWeightBold,\n h3FontSize: '2.125rem',\n h4FontWeight: typography.fontWeightBold,\n h4FontSize: typography.fontSizeLarge,\n h5FontWeight: typography.fontWeightBold,\n h5FontSize: typography.fontSizeMedium\n };\n};","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { createThemeAdapter } from '@instructure/ui-themeable';\nvar map = {\n fontFamily: ['h1FontFamily', 'h2FontFamily', 'h3FontFamily', 'h4FontFamily', 'h5FontFamily']\n};\nexport var themeAdapter = createThemeAdapter({\n map: map,\n version: '8.0.0'\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar _dec, _dec2, _dec3, _class, _class2, _temp;\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { View } from '@instructure/ui-view';\nimport { themeable, ThemeablePropTypes } from '@instructure/ui-themeable';\nimport { childrenOrValue } from '@instructure/ui-prop-types';\nimport { deprecated, getElementType, passthroughProps } from '@instructure/ui-react-utils';\nimport { testable } from '@instructure/ui-testable';\nvar styles = {\n componentId: 'blnAQ',\n template: function template(theme) {\n return \"\\n\\n.blnAQ_bGBk{line-height:\".concat(theme.lineHeight || 'inherit', \";margin:0}\\n\\ninput.blnAQ_bGBk[type]{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;color:inherit;display:block;height:auto;line-height:inherit;margin:-0.375rem 0 0 0;outline:0;padding:0;text-align:start;width:100%}\\n\\n[dir=ltr] input.blnAQ_bGBk[type]{text-align:left}\\n\\n[dir=rtl] input.blnAQ_bGBk[type]{text-align:right}\\n\\ninput.blnAQ_bGBk[type]:focus{outline:none}\\n\\n.blnAQ_fCtg{font-family:\").concat(theme.h1FontFamily || 'inherit', \";font-size:\").concat(theme.h1FontSize || 'inherit', \";font-weight:\").concat(theme.h1FontWeight || 'inherit', \"}\\n\\n.blnAQ_cVrl{font-family:\").concat(theme.h2FontFamily || 'inherit', \";font-size:\").concat(theme.h2FontSize || 'inherit', \";font-weight:\").concat(theme.h2FontWeight || 'inherit', \"}\\n\\n.blnAQ_dnfM{font-family:\").concat(theme.h3FontFamily || 'inherit', \";font-size:\").concat(theme.h3FontSize || 'inherit', \";font-weight:\").concat(theme.h3FontWeight || 'inherit', \"}\\n\\n.blnAQ_KGwv{font-family:\").concat(theme.h4FontFamily || 'inherit', \";font-size:\").concat(theme.h4FontSize || 'inherit', \";font-weight:\").concat(theme.h4FontWeight || 'inherit', \"}\\n\\n.blnAQ_eYKA{font-family:\").concat(theme.h5FontFamily || 'inherit', \";font-size:\").concat(theme.h5FontSize || 'inherit', \";font-weight:\").concat(theme.h5FontWeight || 'inherit', \"}\\n\\n.blnAQ_dbSc{font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}\\n\\n.blnAQ_bACI{border-top:\").concat(theme.borderWidth || 'inherit', \" \").concat(theme.borderStyle || 'inherit', \" \").concat(theme.borderColor || 'inherit', \";padding-top:\").concat(theme.borderPadding || 'inherit', \"}\\n\\n.blnAQ_kWwi{border-bottom:\").concat(theme.borderWidth || 'inherit', \" \").concat(theme.borderStyle || 'inherit', \" \").concat(theme.borderColor || 'inherit', \";padding-bottom:\").concat(theme.borderPadding || 'inherit', \"}\\n\\n.blnAQ_drOs{color:inherit}\\n\\n.blnAQ_eCSh{color:\").concat(theme.primaryColor || 'inherit', \"}\\n\\n.blnAQ_buuG{color:\").concat(theme.secondaryColor || 'inherit', \"}\\n\\n.blnAQ_bFtJ{color:\").concat(theme.primaryInverseColor || 'inherit', \"}\\n\\n.blnAQ_dsSB{color:\").concat(theme.secondaryInverseColor || 'inherit', \"}\\n\\n.blnAQ_bOQC{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\");\n },\n 'root': 'blnAQ_bGBk',\n 'level--h1': 'blnAQ_fCtg',\n 'level--h2': 'blnAQ_cVrl',\n 'level--h3': 'blnAQ_dnfM',\n 'level--h4': 'blnAQ_KGwv',\n 'level--h5': 'blnAQ_eYKA',\n 'level--reset': 'blnAQ_dbSc',\n 'border--top': 'blnAQ_bACI',\n 'border--bottom': 'blnAQ_kWwi',\n 'color--inherit': 'blnAQ_drOs',\n 'color--primary': 'blnAQ_eCSh',\n 'color--secondary': 'blnAQ_buuG',\n 'color--primary-inverse': 'blnAQ_bFtJ',\n 'color--secondary-inverse': 'blnAQ_dsSB',\n 'ellipsis': 'blnAQ_bOQC'\n};\nimport theme from \"./theme.js\";\nimport { themeAdapter } from \"./themeAdapter.js\";\n/**\n---\ncategory: components\n---\n**/\n\nvar Heading = (_dec = deprecated('8.0.0', {\n ellipsis: ''\n}), _dec2 = testable(), _dec3 = themeable(theme, styles, themeAdapter), _dec(_class = _dec2(_class = _dec3(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {\n _inherits(Heading, _Component);\n\n var _super = _createSuper(Heading);\n\n function Heading() {\n _classCallCheck(this, Heading);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Heading, [{\n key: \"render\",\n value: function render() {\n var _classnames;\n\n var _this$props = this.props,\n border = _this$props.border,\n children = _this$props.children,\n color = _this$props.color,\n level = _this$props.level,\n margin = _this$props.margin,\n elementRef = _this$props.elementRef,\n ellipsis = _this$props.ellipsis,\n props = _objectWithoutProperties(_this$props, [\"border\", \"children\", \"color\", \"level\", \"margin\", \"elementRef\", \"ellipsis\"]);\n\n var ElementType = getElementType(Heading, this.props, function () {\n if (level === 'reset') {\n return 'span';\n } else {\n return level;\n }\n });\n return /*#__PURE__*/React.createElement(View, Object.assign({}, passthroughProps(props), {\n className: classnames((_classnames = {}, _defineProperty(_classnames, styles.root, true), _defineProperty(_classnames, styles[\"level--\".concat(level)], true), _defineProperty(_classnames, styles[\"color--\".concat(color)], color), _defineProperty(_classnames, styles[\"border--\".concat(border)], border !== 'none'), _defineProperty(_classnames, styles.ellipsis, ellipsis), _classnames)),\n as: ElementType,\n margin: margin,\n elementRef: elementRef\n }), children);\n }\n }]);\n\n Heading.displayName = \"Heading\";\n return Heading;\n}(Component), _class2.propTypes = {\n /**\n * Add a top- or bottom-border to the Heading\n */\n border: PropTypes.oneOf(['none', 'top', 'bottom']),\n\n /**\n * The text content of the Heading\n */\n children: childrenOrValue,\n\n /**\n * The font color to render\n */\n color: PropTypes.oneOf(['primary', 'secondary', 'primary-inverse', 'secondary-inverse', 'inherit']),\n\n /**\n * The *visual* appearance of the Heading: h1 is largest; h5 is smallest.\n */\n level: PropTypes.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'reset']),\n\n /**\n * Choose the element Heading should render as. Will default to the `level` prop\n * if not specified.\n */\n as: PropTypes.elementType,\n // eslint-disable-line react/require-default-props\n\n /**\n * Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,\n * `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via\n * familiar CSS-like shorthand. For example: `margin=\"small auto large\"`.\n */\n margin: ThemeablePropTypes.spacing,\n\n /**\n * Provides a ref to the underlying HTML element\n */\n elementRef: PropTypes.func,\n\n /* eslint-disable react/require-default-props */\n\n /**\n * __Deprecated - use ` instead`__\n */\n ellipsis: PropTypes.bool\n /* eslint-enable react/require-default-props */\n\n}, _class2.defaultProps = {\n children: null,\n margin: void 0,\n elementRef: void 0,\n border: 'none',\n color: 'inherit',\n level: 'h2'\n}, _temp)) || _class) || _class) || _class);\nexport default Heading;\nexport { Heading };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// TODO: delete error value once it has been removed in v8.0.0\nexport default function generator(_ref) {\n var typography = _ref.typography,\n colors = _ref.colors,\n spacing = _ref.spacing;\n return _objectSpread({}, typography, {\n primaryInverseColor: colors.textLightest,\n primaryColor: colors.textDarkest,\n secondaryColor: colors.textDark,\n secondaryInverseColor: colors.textLight,\n warningColor: colors.textWarning,\n brandColor: colors.textBrand,\n errorColor: colors.textDanger,\n dangerColor: colors.textDanger,\n successColor: colors.textSuccess,\n alertColor: colors.textAlert,\n paragraphMargin: \"\".concat(spacing.medium, \" 0\")\n });\n}\n\ngenerator.canvas = function (variables) {\n return {\n primaryColor: variables['ic-brand-font-color-dark'],\n brandColor: variables['ic-brand-primary']\n };\n};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar _dec, _class, _class2, _temp;\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// TODO: remove color comment description once the error color is removed\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { themeable } from '@instructure/ui-themeable';\nimport { passthroughProps, getElementType, deprecated } from '@instructure/ui-react-utils';\nvar styles = {\n componentId: 'enRcg',\n template: function template(theme) {\n return \"\\n\\n.enRcg_bGBk{font-family:\".concat(theme.fontFamily || 'inherit', \"}\\n\\n.enRcg_bGBk sub,.enRcg_bGBk sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}\\n\\n.enRcg_bGBk sup{top:-0.4em}\\n\\n.enRcg_bGBk sub{bottom:-0.4em}\\n\\n.enRcg_bGBk code,.enRcg_bGBk pre{all:initial;animation:none 0s ease 0s 1 normal none running;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:medium none currentColor;border-collapse:separate;border-image:none;border-radius:0;border-spacing:0;bottom:auto;box-shadow:none;box-sizing:content-box;caption-side:top;clear:none;clip:auto;color:#000;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-span:1;column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-family:\").concat(theme.fontFamilyMonospace || 'inherit', \";font-size:medium;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:400;height:auto;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:disc outside none;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;position:static;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;transform:none;transform-origin:50% 50% 0;transform-style:flat;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto}\\n\\n.enRcg_bGBk em,.enRcg_bGBk i{font-style:italic}\\n\\n.enRcg_bGBk b,.enRcg_bGBk strong{font-weight:\").concat(theme.fontWeightBold || 'inherit', \"}\\n\\n.enRcg_bGBk p{display:block;margin:\").concat(theme.paragraphMargin || 'inherit', \";padding:0}\\n\\ninput.enRcg_bGBk[type]{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;color:inherit;display:block;height:auto;line-height:inherit;margin:0;outline:0;padding:0;text-align:start;width:100%}\\n\\n[dir=ltr] input.enRcg_bGBk[type]{text-align:left}\\n\\n[dir=rtl] input.enRcg_bGBk[type]{text-align:right}\\n\\n.enRcg_bGBk:focus,input.enRcg_bGBk[type]:focus{outline:none}\\n\\n.enRcg_bGBk.enRcg_qFsi,input.enRcg_bGBk[type].enRcg_qFsi{color:\").concat(theme.primaryColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_bLsb,input.enRcg_bGBk[type].enRcg_bLsb{color:\").concat(theme.secondaryColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_ezBQ,input.enRcg_bGBk[type].enRcg_ezBQ{color:\").concat(theme.primaryInverseColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_dlnd,input.enRcg_bGBk[type].enRcg_dlnd{color:\").concat(theme.secondaryInverseColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_cJLh,input.enRcg_bGBk[type].enRcg_cJLh{color:\").concat(theme.successColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_fpfC,input.enRcg_bGBk[type].enRcg_fpfC{color:\").concat(theme.brandColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_eHcp,input.enRcg_bGBk[type].enRcg_eHcp{color:\").concat(theme.warningColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_dwua,input.enRcg_bGBk[type].enRcg_dwua{color:\").concat(theme.errorColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_NQMb,input.enRcg_bGBk[type].enRcg_NQMb{color:\").concat(theme.dangerColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_eZgl,input.enRcg_bGBk[type].enRcg_eZgl{color:\").concat(theme.alertColor || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_fbNi,input.enRcg_bGBk[type].enRcg_fbNi{-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;word-break:break-word}\\n\\n.enRcg_bGBk.enRcg_drST,input.enRcg_bGBk[type].enRcg_drST{font-weight:\").concat(theme.fontWeightNormal || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_pEgL,input.enRcg_bGBk[type].enRcg_pEgL{font-weight:\").concat(theme.fontWeightLight || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_bdMA,input.enRcg_bGBk[type].enRcg_bdMA{font-weight:\").concat(theme.fontWeightBold || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_ijuF,input.enRcg_bGBk[type].enRcg_ijuF{font-style:normal}\\n\\n.enRcg_bGBk.enRcg_fetN,input.enRcg_bGBk[type].enRcg_fetN{font-style:italic}\\n\\n.enRcg_bGBk.enRcg_dfBC,input.enRcg_bGBk[type].enRcg_dfBC{font-size:\").concat(theme.fontSizeXSmall || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_doqw,input.enRcg_bGBk[type].enRcg_doqw{font-size:\").concat(theme.fontSizeSmall || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_ycrn,input.enRcg_bGBk[type].enRcg_ycrn{font-size:\").concat(theme.fontSizeMedium || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_cMDj,input.enRcg_bGBk[type].enRcg_cMDj{font-size:\").concat(theme.fontSizeLarge || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_eoMd,input.enRcg_bGBk[type].enRcg_eoMd{font-size:\").concat(theme.fontSizeXLarge || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_fdca,input.enRcg_bGBk[type].enRcg_fdca{font-size:\").concat(theme.fontSizeXXLarge || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_fEWX,input.enRcg_bGBk[type].enRcg_fEWX{line-height:\").concat(theme.lineHeight || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_fNIu,input.enRcg_bGBk[type].enRcg_fNIu{line-height:\").concat(theme.lineHeightFit || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_dfDs,input.enRcg_bGBk[type].enRcg_dfDs{line-height:\").concat(theme.lineHeightCondensed || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_bDjL,input.enRcg_bGBk[type].enRcg_bDjL{line-height:\").concat(theme.lineHeightDouble || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_eQnG,input.enRcg_bGBk[type].enRcg_eQnG{letter-spacing:\").concat(theme.letterSpacingNormal || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_bbUA,input.enRcg_bGBk[type].enRcg_bbUA{letter-spacing:\").concat(theme.letterSpacingCondensed || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_bRWU,input.enRcg_bGBk[type].enRcg_bRWU{letter-spacing:\").concat(theme.letterSpacingExpanded || 'inherit', \"}\\n\\n.enRcg_bGBk.enRcg_wZsr,input.enRcg_bGBk[type].enRcg_wZsr{text-transform:none}\\n\\n.enRcg_bGBk.enRcg_fCZK,input.enRcg_bGBk[type].enRcg_fCZK{text-transform:capitalize}\\n\\n.enRcg_bGBk.enRcg_dsRi,input.enRcg_bGBk[type].enRcg_dsRi{text-transform:uppercase}\\n\\n.enRcg_bGBk.enRcg_bLtD,input.enRcg_bGBk[type].enRcg_bLtD{text-transform:lowercase}\");\n },\n 'root': 'enRcg_bGBk',\n 'color-primary': 'enRcg_qFsi',\n 'color-secondary': 'enRcg_bLsb',\n 'color-primary-inverse': 'enRcg_ezBQ',\n 'color-secondary-inverse': 'enRcg_dlnd',\n 'color-success': 'enRcg_cJLh',\n 'color-brand': 'enRcg_fpfC',\n 'color-warning': 'enRcg_eHcp',\n 'color-error': 'enRcg_dwua',\n 'color-danger': 'enRcg_NQMb',\n 'color-alert': 'enRcg_eZgl',\n 'wrap-break-word': 'enRcg_fbNi',\n 'weight-normal': 'enRcg_drST',\n 'weight-light': 'enRcg_pEgL',\n 'weight-bold': 'enRcg_bdMA',\n 'style-normal': 'enRcg_ijuF',\n 'style-italic': 'enRcg_fetN',\n 'x-small': 'enRcg_dfBC',\n 'small': 'enRcg_doqw',\n 'medium': 'enRcg_ycrn',\n 'large': 'enRcg_cMDj',\n 'x-large': 'enRcg_eoMd',\n 'xx-large': 'enRcg_fdca',\n 'lineHeight-default': 'enRcg_fEWX',\n 'lineHeight-fit': 'enRcg_fNIu',\n 'lineHeight-condensed': 'enRcg_dfDs',\n 'lineHeight-double': 'enRcg_bDjL',\n 'letterSpacing-normal': 'enRcg_eQnG',\n 'letterSpacing-condensed': 'enRcg_bbUA',\n 'letterSpacing-expanded': 'enRcg_bRWU',\n 'transform-none': 'enRcg_wZsr',\n 'transform-capitalize': 'enRcg_fCZK',\n 'transform-uppercase': 'enRcg_dsRi',\n 'transform-lowercase': 'enRcg_bLtD'\n};\nimport theme from \"./theme.js\";\n/**\n---\ncategory: components\n---\n**/\n\nvar Text = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n _classCallCheck(this, Text);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _classnames;\n\n var _this$props = this.props,\n wrap = _this$props.wrap,\n weight = _this$props.weight,\n fontStyle = _this$props.fontStyle,\n size = _this$props.size,\n lineHeight = _this$props.lineHeight,\n letterSpacing = _this$props.letterSpacing,\n transform = _this$props.transform,\n color = _this$props.color,\n children = _this$props.children;\n var ElementType = getElementType(Text, this.props);\n return /*#__PURE__*/React.createElement(ElementType, Object.assign({}, passthroughProps(this.props), {\n className: classnames((_classnames = {}, _defineProperty(_classnames, styles.root, true), _defineProperty(_classnames, styles[size], size), _defineProperty(_classnames, styles[\"wrap-\".concat(wrap)], wrap), _defineProperty(_classnames, styles[\"weight-\".concat(weight)], weight), _defineProperty(_classnames, styles[\"style-\".concat(fontStyle)], fontStyle), _defineProperty(_classnames, styles[\"transform-\".concat(transform)], transform), _defineProperty(_classnames, styles[\"lineHeight-\".concat(lineHeight)], lineHeight), _defineProperty(_classnames, styles[\"letterSpacing-\".concat(letterSpacing)], letterSpacing), _defineProperty(_classnames, styles[\"color-\".concat(color)], color), _classnames)),\n ref: this.props.elementRef\n }), children);\n }\n }]);\n\n Text.displayName = \"Text\";\n return Text;\n}(Component), _class2.propTypes = {\n /**\n * the element type to render as\n */\n as: PropTypes.elementType,\n children: PropTypes.node,\n\n /**\n * One of: primary, secondary, brand, success, warning, danger, alert, primary-inverse, secondary-inverse\n */\n color: deprecated.deprecatePropValues(PropTypes.oneOf(['primary', 'secondary', 'brand', 'success', 'warning', 'error', 'danger', 'alert', 'primary-inverse', 'secondary-inverse']), ['error'], 'It will be removed in version 8.0.0. Use `danger` instead.'),\n elementRef: PropTypes.func,\n fontStyle: PropTypes.oneOf(['italic', 'normal']),\n letterSpacing: PropTypes.oneOf(['normal', 'condensed', 'expanded']),\n lineHeight: PropTypes.oneOf(['default', 'fit', 'condensed', 'double']),\n size: PropTypes.oneOf(['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']),\n transform: PropTypes.oneOf(['none', 'capitalize', 'uppercase', 'lowercase']),\n weight: PropTypes.oneOf(['normal', 'light', 'bold']),\n wrap: PropTypes.oneOf(['normal', 'break-word'])\n}, _class2.defaultProps = {\n as: 'span',\n wrap: 'normal',\n size: 'medium',\n letterSpacing: 'normal',\n children: null,\n elementRef: void 0,\n color: void 0,\n transform: void 0,\n lineHeight: void 0,\n fontStyle: void 0,\n weight: void 0\n}, _temp)) || _class);\nexport default Text;\nexport { Text };","/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nexport class Character {\n constructor({width, height, x, y, speed}) {\n this.speed = speed || 256\n this.width = width\n this.height = height\n this.x = x || 0\n this.y = y || 0\n }\n\n getPosition() {\n return {\n x: this.x,\n y: this.y\n }\n }\n\n checkCollide(otherX, otherY, otherWidth, otherHeight) {\n const BUFFER = 6\n if (\n otherX < this.x + this.width - BUFFER &&\n otherX + otherWidth - BUFFER > this.x &&\n otherY < this.y + this.height - BUFFER &&\n otherHeight - BUFFER + otherY > this.y\n ) {\n return true\n } else {\n return false\n }\n }\n\n move = (dx, dy) => {\n this.x += dx\n this.y += dy\n }\n\n draw = ctx => {\n const gameCtx = ctx\n gameCtx.fillStyle = '#0374B5'\n gameCtx.fillRect(this.x, this.y, this.width, this.height)\n }\n}\n\nexport class Obstacle extends Character {\n constructor({x, y, width, height, speed, goingLeft}) {\n super({width, height, x, y, speed})\n this.goingLeft = goingLeft || false\n }\n\n draw = gameCtx => {\n const ctx = gameCtx\n ctx.fillStyle = '#6B7780'\n ctx.fillRect(this.x, this.y, this.width, this.height)\n }\n\n move = () => {\n if (this.goingLeft) {\n this.x -= this.speed\n } else {\n this.x += this.speed\n }\n }\n}\n\nexport class GoalObject extends Character {\n constructor({x, y, width, height, speed, goingLeft}) {\n super({width, height, x, y, speed})\n this.goingLeft = goingLeft || false\n }\n\n draw = gameCtx => {\n const ctx = gameCtx\n ctx.fillStyle = '#0B874B'\n ctx.fillRect(this.x, this.y, this.width, this.height)\n }\n\n move = () => {\n if (this.goingLeft) {\n this.x -= this.speed\n } else {\n this.x += this.speed\n }\n }\n}\n","/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport React from 'react'\nimport {Character, Obstacle, GoalObject} from './characters'\n\nconst CANVAS_WIDTH = 180\nconst CANVAS_HEIGHT = 720\nconst GOAL_REACHED_SCORE = 13146\nconst MAIN_CHAR_LENGTH = 32\n\nconst randomNumberBetween = (min, max) => Math.floor(Math.random() * (max - min + 1) + min)\n\nclass OfficialNotFoundGame extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n gameTimer: 0\n }\n\n this.gameStarted = false\n this.keysPressed = {}\n this.obstacles = []\n this.gameLoop = null\n this.goalObject = null\n\n document.body.addEventListener('keydown', event => {\n if (event.keyCode === 32 && !this.gameStarted) {\n this.startGame()\n }\n\n if (event.keyCode === 27 && this.gameStarted) {\n this.endGame(this.gameCanvas.getContext('2d'))\n }\n\n this.keysPressed[event.keyCode] = true\n\n // Prevent default\n if ([32, 37, 38, 39, 40].indexOf(event.keyCode) > -1) {\n event.preventDefault()\n }\n })\n\n document.body.addEventListener('keyup', event => {\n delete this.keysPressed[event.keyCode]\n })\n }\n\n componentDidMount() {\n if (!this.gameStarted) {\n this.startGame()\n }\n }\n\n setCanvasRef = el => {\n this.gameCanvas = el\n }\n\n restartGame = () => {\n this.startGame()\n }\n\n startGame = () => {\n this.gameStarted = true\n this.setState({gameTimer: 0})\n\n // This puts the positions\n this.resetCharacters()\n\n // Starts the event loop at 30 ms\n this.gameLoop = setInterval(this.eventGameFrameLoop, 30)\n }\n\n resetCharacters = () => {\n this.mainCharacter = new Character({\n width: MAIN_CHAR_LENGTH,\n height: MAIN_CHAR_LENGTH,\n x: CANVAS_WIDTH / 2 - MAIN_CHAR_LENGTH / 2,\n y: CANVAS_HEIGHT - MAIN_CHAR_LENGTH\n })\n\n const ctx = this.gameCanvas.getContext('2d')\n ctx.clearRect(0, 0, this.gameCanvas.width, this.gameCanvas.height)\n\n this.mainCharacter.draw(ctx)\n\n this.goalObject = new GoalObject({\n width: MAIN_CHAR_LENGTH,\n height: MAIN_CHAR_LENGTH,\n x: randomNumberBetween(0, CANVAS_WIDTH - MAIN_CHAR_LENGTH),\n y: 0\n })\n }\n\n goalReached = () => {\n this.setState({gameTimer: this.state.gameTimer + GOAL_REACHED_SCORE})\n this.resetCharacters()\n }\n\n createObstacle = () => {\n const obstacleWidth = 20\n const rightOrLeft = randomNumberBetween(0, 5)\n\n const placedY = randomNumberBetween(0, CANVAS_HEIGHT)\n let placedX = randomNumberBetween(0, CANVAS_WIDTH)\n\n if (rightOrLeft > 3) {\n placedX = CANVAS_WIDTH - obstacleWidth\n } else {\n placedX = 0\n }\n\n this.obstacles.push(\n new Obstacle({\n speed: randomNumberBetween(1, 9),\n width: obstacleWidth,\n height: obstacleWidth,\n x: placedX,\n y: placedY,\n goingLeft: rightOrLeft > 3\n })\n )\n }\n\n moveCharacter = (dx, dy) => {\n this.mainCharacter.move(dx, dy)\n }\n\n playerController = () => {\n const playerMovement = 8\n if (this.gameStarted) {\n if (this.keysPressed[37]) {\n if (this.mainCharacter.x >= 0) {\n this.moveCharacter(-playerMovement, 0)\n }\n }\n\n if (this.keysPressed[38]) {\n if (this.mainCharacter.y >= 0) {\n this.moveCharacter(0, -playerMovement)\n }\n }\n\n if (this.keysPressed[39]) {\n if (this.mainCharacter.x + MAIN_CHAR_LENGTH <= CANVAS_WIDTH) {\n this.moveCharacter(playerMovement, 0)\n }\n }\n\n if (this.keysPressed[40]) {\n if (this.mainCharacter.y + MAIN_CHAR_LENGTH <= CANVAS_HEIGHT) {\n this.moveCharacter(0, playerMovement)\n }\n }\n }\n }\n\n endGame = ctx => {\n clearInterval(this.gameLoop)\n this.gameStarted = false\n this.obstacles = []\n this.mainCharacter = null\n ctx.clearRect(0, 0, this.gameCanvas.width, this.gameCanvas.height)\n }\n\n eventGameFrameLoop = () => {\n if (!this.gameStarted) {\n return false\n }\n this.setState({gameTimer: this.state.gameTimer + 1})\n\n const ctx = this.gameCanvas.getContext('2d')\n ctx.clearRect(0, 0, this.gameCanvas.width, this.gameCanvas.height)\n\n // Controls Player Movement\n this.playerController()\n\n this.mainCharacter.draw(ctx)\n\n this.goalObject.draw(ctx)\n\n if (\n this.goalObject.checkCollide(\n this.mainCharacter.x,\n this.mainCharacter.y,\n MAIN_CHAR_LENGTH,\n MAIN_CHAR_LENGTH\n )\n ) {\n this.goalReached()\n }\n\n const shouldGenerateObstacle = randomNumberBetween(0, 26) > 20\n if (shouldGenerateObstacle) {\n this.createObstacle()\n }\n\n for (let i = 0; i < this.obstacles.length; i++) {\n const currentObs = this.obstacles[i]\n currentObs.move()\n if (\n currentObs.checkCollide(\n this.mainCharacter.x,\n this.mainCharacter.y,\n MAIN_CHAR_LENGTH,\n MAIN_CHAR_LENGTH\n )\n ) {\n this.endGame(ctx)\n return null\n }\n currentObs.draw(ctx)\n }\n\n return null\n }\n\n checkInArena(x, y) {\n const buffer = 100\n if (\n x > -buffer &&\n x < this.CANVAS_WIDTH + buffer &&\n y > -buffer &&\n y < this.CANVAS_HEIGHT + buffer\n ) {\n return true\n } else {\n return false\n }\n }\n\n render() {\n return (\n \n \n
{`Score: ${this.state.gameTimer}`}
\n \n \n \n )\n }\n}\n\nexport default OfficialNotFoundGame\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nexport default class MovingGameObject {\n constructor(gameImage, x, y, speed, points) {\n this.img = gameImage\n this.position = {\n x,\n y\n }\n this.speed = speed\n this.points = points\n }\n\n canCollide() {\n return this.position.y >= 0 - this.img.height / 2\n }\n\n getPoints() {\n return this.points\n }\n\n getBoundBox() {\n return {\n x: this.position.x,\n y: this.position.y,\n width: this.img.width,\n height: this.img.height\n }\n }\n\n update(ctx) {\n this.position.y += this.speed\n ctx.drawImage(this.img, this.position.x, this.position.y)\n }\n}\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\nimport MovingGameObject from './gameObject'\n\nclass MovingGameObjectSpawner {\n constructor(gameImage, gameWidth, gameHeight, speed, points) {\n this.gameImage = gameImage\n this.gameWidth = gameWidth\n this.gameHeight = gameHeight\n this.spawnedGameObjects = []\n this.gameObjectSpeed = speed\n this.gameObjectPoints = points\n }\n\n removeGameObjects(indices) {\n let points = 0\n this.spawnedGameObjects = this.spawnedGameObjects.filter((gameObject, i) => {\n if (indices.includes(i)) {\n points += gameObject.getPoints()\n return false\n } else {\n return true\n }\n })\n return points\n }\n\n spawnGameObject() {\n this.spawnedGameObjects.push(\n new MovingGameObject(\n this.gameImage,\n Math.random() * (this.gameWidth - this.gameImage.width),\n 0 - this.gameImage.height,\n this.gameObjectSpeed / 2 + Math.random() * this.gameObjectSpeed,\n this.gameObjectPoints\n )\n )\n }\n\n getSpawnedGameObjects() {\n return this.spawnedGameObjects\n }\n}\n\nexport class EnemySpawner extends MovingGameObjectSpawner {\n constructor(gameImage, gameWidth, gameHeight) {\n super(gameImage, gameWidth, gameHeight, 1, 100)\n this.spawnRate = 500\n }\n\n startSpawning = () => {\n this.spawnGameObject()\n this.spawnRate--\n if (this.spawnRate < 50) this.spawnRate = 50\n setTimeout(this.startSpawning, this.spawnRate)\n }\n}\n\nexport class PowerUpSpawner extends MovingGameObjectSpawner {\n constructor(gameImage, gameWidth, gameHeight) {\n super(gameImage, gameWidth, gameHeight, 0.5, 300)\n this.powerUpSpawnChance = 0.25\n this.interval = 2000\n }\n\n startSpawning = () => {\n setInterval(() => {\n const spawnChance = Math.random()\n if (spawnChance <= this.powerUpSpawnChance) {\n this.spawnGameObject()\n }\n }, this.interval)\n }\n}\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nclass ExplodingParticle {\n constructor(x, y) {\n this.animationDuration = 1000\n\n this.position = {\n x,\n y\n }\n\n this.speed = {\n x: -3 + Math.random() * 6,\n y: -3 + Math.random() * 6\n }\n\n this.radius = 3 + Math.random() * 3\n\n this.life = 30 + Math.random() * 10\n this.remainingLife = this.life\n this.startTime = Date.now()\n }\n\n getStartTime() {\n return this.startTime\n }\n\n doneAnimating() {\n const percent = (Date.now() - this.startTime) / this.animationDuration\n return percent > 1\n }\n\n draw(ctx) {\n if (this.remainingLife > 0 && this.radius > 0) {\n ctx.beginPath()\n ctx.arc(this.position.x, this.position.y, this.radius, 0, Math.PI * 2)\n ctx.fillStyle = 'rgb(255, 0, 0, 1)'\n ctx.fill()\n\n this.remainingLife--\n this.radius -= 0.25\n this.position.x += this.speed.x\n this.position.y += this.speed.y\n }\n }\n}\n\nexport default class ParticleFactory {\n constructor() {\n this.particles = []\n }\n\n createParticles(x, y, amount) {\n for (let i = 0; i < amount; i++) {\n const particle = new ExplodingParticle(x, y)\n this.particles.push(particle)\n }\n }\n\n updateParticles(ctx) {\n this.particles = this.particles.filter(particle => {\n particle.draw(ctx)\n return !particle.doneAnimating()\n })\n }\n}\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\n// Key codes\nconst LEFT_ARROW = 37\nconst UP_ARROW = 38\nconst RIGHT_ARROW = 39\nconst DOWN_ARROW = 40\nconst W = 87\nconst A = 65\nconst S = 83\nconst D = 68\nconst SPACE = 32\n\nexport default class InputHandler {\n constructor() {\n this.horizontal = 0\n this.vertical = 0\n this.fire = false\n\n document.addEventListener('keydown', event => {\n if ([LEFT_ARROW, UP_ARROW, RIGHT_ARROW, DOWN_ARROW, SPACE].includes(event.keyCode)) {\n event.preventDefault()\n }\n\n switch (event.keyCode) {\n case A:\n case LEFT_ARROW:\n this.horizontal = -1\n break\n case D:\n case RIGHT_ARROW:\n this.horizontal = 1\n break\n case W:\n case UP_ARROW:\n this.vertical = -1\n break\n case S:\n case DOWN_ARROW:\n this.vertical = 1\n break\n case SPACE:\n this.fire = true\n break\n }\n })\n\n document.addEventListener('keyup', event => {\n switch (event.keyCode) {\n case A:\n case LEFT_ARROW:\n if (this.horizontal < 0) this.horizontal = 0\n break\n case D:\n case RIGHT_ARROW:\n if (this.horizontal > 0) this.horizontal = 0\n break\n case W:\n case UP_ARROW:\n if (this.vertical < 0) this.vertical = 0\n break\n case S:\n case DOWN_ARROW:\n if (this.vertical > 0) this.vertical = 0\n break\n case SPACE:\n this.fire = false\n break\n }\n })\n }\n\n getFire() {\n return this.fire\n }\n\n getDirectionalInput() {\n return {\n x: this.horizontal,\n y: this.vertical\n }\n }\n}\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\nimport InputHandler from './input'\nimport MovingGameObject from './gameObject'\n\nexport default class PlayerShip {\n constructor(shipImage, projectileImage, gameWidth, gameHeight) {\n this.gameWidth = gameWidth\n this.gameHeight = gameHeight\n this.img = shipImage\n this.projectileImg = projectileImage\n\n this.inputHandler = new InputHandler()\n\n this.position = {\n x: gameWidth / 2 - this.img.width / 2,\n y: gameHeight - this.img.height - 10\n }\n this.speed = 2\n\n this.fireRate = 250\n this.fireIntervalId = null\n this.projectiles = []\n this.projectileSpeed = -5\n\n this.powerLevel = 1\n this.powerTimeoutId = null\n this.powerUpDuration = 10000\n }\n\n getBoundBox() {\n return {\n x: this.position.x,\n y: this.position.y,\n width: this.img.width,\n height: this.img.height\n }\n }\n\n move() {\n const direction = this.inputHandler.getDirectionalInput()\n this.position.x += direction.x * this.speed\n this.position.y += direction.y * this.speed\n\n if (this.position.x < 0) this.position.x = 0\n if (this.position.x + this.img.width > this.gameWidth)\n this.position.x = this.gameWidth - this.img.width\n if (this.position.y < 0) this.position.y = 0\n if (this.position.y + this.img.height > this.gameHeight)\n this.position.y = this.gameHeight - this.img.height\n }\n\n fire() {\n if (this.inputHandler.getFire() && this.fireIntervalId === null) {\n this.spawnProjectile()\n this.fireIntervalId = setInterval(() => {\n this.spawnProjectile()\n }, this.fireRate)\n } else if (!this.inputHandler.getFire() && this.fireIntervalId !== null) {\n clearInterval(this.fireIntervalId)\n this.fireIntervalId = null\n }\n }\n\n increasePowerLevel(power = 1) {\n this.powerLevel += power\n if (this.powerTimeoutId) clearTimeout(this.powerTimeoutId)\n this.powerTimeoutId = setTimeout(() => {\n this.powerLevel = 1\n }, this.powerUpDuration)\n }\n\n spawnProjectile() {\n switch (this.powerLevel) {\n case 1:\n this.spawnSingleProjectile(this.position.x, this.position.y)\n break\n case 2:\n this.spawnSingleProjectile(this.position.x - this.img.width / 2, this.position.y)\n this.spawnSingleProjectile(this.position.x + this.img.width / 2, this.position.y)\n break\n case 3:\n this.spawnSingleProjectile(this.position.x, this.position.y)\n this.spawnSingleProjectile(this.position.x - this.img.width / 2, this.position.y)\n this.spawnSingleProjectile(this.position.x + this.img.width / 2, this.position.y)\n break\n case 4:\n this.spawnSingleProjectile(this.position.x - this.img.width / 2, this.position.y)\n this.spawnSingleProjectile(this.position.x + this.img.width / 2, this.position.y)\n this.spawnSingleProjectile(this.position.x - this.img.width, this.position.y)\n this.spawnSingleProjectile(this.position.x + this.img.width, this.position.y)\n break\n default:\n this.spawnSingleProjectile(this.position.x, this.position.y)\n this.spawnSingleProjectile(this.position.x - this.img.width / 2, this.position.y)\n this.spawnSingleProjectile(this.position.x + this.img.width / 2, this.position.y)\n this.spawnSingleProjectile(this.position.x - this.img.width, this.position.y)\n this.spawnSingleProjectile(this.position.x + this.img.width, this.position.y)\n break\n }\n }\n\n spawnSingleProjectile(x, y) {\n this.projectiles.push(new MovingGameObject(this.projectileImg, x, y, this.projectileSpeed))\n }\n\n getSpawnedProjectiles() {\n return this.projectiles\n }\n\n removeProjectiles(projectileIndices) {\n this.projectiles = this.projectiles.filter((_, i) => {\n return !projectileIndices.includes(i)\n })\n }\n\n updateProjectiles(ctx) {\n this.projectiles = this.projectiles.filter(projectile => {\n projectile.update(ctx)\n return projectile.getBoundBox().y > 0 - this.img.height\n })\n }\n\n update(ctx) {\n this.move()\n this.fire()\n ctx.drawImage(this.img, this.position.x, this.position.y)\n\n this.updateProjectiles(ctx)\n }\n}\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\nimport coronavirusImage from './coronavirus.png'\nimport {EnemySpawner, PowerUpSpawner} from './spawners'\nimport {useScope as useI18nScope} from '@canvas/i18n'\nimport ParticleFactory from './explodingParticle'\nimport PlayerShip from './playerShip'\nimport React from 'react'\nimport shipImage from './ship.png'\nimport syringeImage from './syringe.png'\nimport tpImage from './tp.png'\n\nconst I18n = useI18nScope('not_found_page_space_invaders')\n\nconst CANVAS_WIDTH = 256\nconst CANVAS_HEIGHT = 307\n\nclass SpaceInvaders extends React.Component {\n state = {\n score: 0\n }\n\n async componentDidMount() {\n this.playerShipImg = await this.loadImage(shipImage)\n this.syringeImg = await this.loadImage(syringeImage)\n this.coronavirusImg = await this.loadImage(coronavirusImage)\n this.tpImg = await this.loadImage(tpImage)\n this.particleFactory = new ParticleFactory()\n\n this.startGame()\n }\n\n handleStartGameEvent = event => {\n if (event.keyCode === 32) {\n this.startGame()\n }\n }\n\n startGame() {\n document.removeEventListener('keydown', this.handleStartGameEvent)\n this.setState({score: 0})\n this.player = new PlayerShip(this.playerShipImg, this.syringeImg, CANVAS_WIDTH, CANVAS_HEIGHT)\n\n this.enemySpawner = new EnemySpawner(this.coronavirusImg, CANVAS_WIDTH, CANVAS_HEIGHT)\n this.enemySpawner.startSpawning()\n\n this.powerUpSpawner = new PowerUpSpawner(this.tpImg, CANVAS_WIDTH, CANVAS_HEIGHT)\n this.powerUpSpawner.startSpawning()\n\n this.gameLoop = setInterval(this.eventGameFrameLoop, 15)\n }\n\n endGame() {\n clearInterval(this.gameLoop)\n this.player = null\n this.enemySpawner = null\n this.powerUpSpawner = null\n\n const ctx = this.gameCanvas.getContext('2d')\n ctx.clearRect(0, 0, this.gameCanvas.width, this.gameCanvas.height)\n\n ctx.textAlign = 'center'\n this.drawText(\n ctx,\n I18n.t('GAME OVER'),\n 2,\n 'bold 32px sans-serif',\n CANVAS_WIDTH / 2,\n CANVAS_HEIGHT / 2 - 40\n )\n\n this.drawText(\n ctx,\n `Final Score: ${this.state.score}`,\n 1,\n '18px sans-serif',\n CANVAS_WIDTH / 2,\n CANVAS_HEIGHT / 2\n )\n\n this.drawText(\n ctx,\n I18n.t(\"Press 'space' to start over\"),\n 1,\n '18px sans-serif',\n CANVAS_WIDTH / 2,\n CANVAS_HEIGHT / 2 + 40\n )\n\n document.addEventListener('keydown', this.handleStartGameEvent)\n }\n\n drawText(ctx, text, shadowOffset, font, x, y) {\n ctx.font = font\n ctx.fillStyle = 'rgb(0, 0, 0, 0.75)'\n ctx.fillText(text, x - shadowOffset, y + shadowOffset)\n ctx.fillStyle = 'rgb(255, 50, 0)'\n ctx.fillText(text, x, y)\n }\n\n handleCollisions(playerObjects, spawnedObjects, callback, shouldSpawnParticles = false) {\n if (!playerObjects || !spawnedObjects) return\n if (!Array.isArray(playerObjects)) {\n playerObjects = [playerObjects]\n }\n const collidedPlayerObjectIndices = []\n const collidedSpawnedObjectIndices = []\n playerObjects.forEach((playerObject, i) => {\n spawnedObjects.forEach((spawnedObject, j) => {\n if (\n spawnedObject.canCollide() &&\n this.checkCollision(playerObject.getBoundBox(), spawnedObject.getBoundBox())\n ) {\n collidedPlayerObjectIndices.push(i)\n collidedSpawnedObjectIndices.push(j)\n if (shouldSpawnParticles) {\n this.particleFactory.createParticles(\n spawnedObject.position.x,\n spawnedObject.position.y,\n 10\n )\n }\n }\n })\n })\n callback(collidedPlayerObjectIndices, collidedSpawnedObjectIndices)\n }\n\n playerEnemyCollisionCallback = (playerIndices, enemyIndices) => {\n if (enemyIndices.length > 0) this.endGame()\n }\n\n playerPowerupCollisionCallback = (playerIndices, powerUpIndices) => {\n if (powerUpIndices.length > 0) {\n this.player.increasePowerLevel(powerUpIndices.length)\n const points = this.powerUpSpawner.removeGameObjects(powerUpIndices)\n this.setState(prevState => ({\n score: prevState.score + points\n }))\n }\n }\n\n projectileEnemyCollisionCallback = (projectileIndices, enemyIndices) => {\n this.player.removeProjectiles(projectileIndices)\n const points = this.enemySpawner.removeGameObjects(enemyIndices)\n this.setState(prevState => ({\n score: prevState.score + points\n }))\n }\n\n checkCollision(rect1, rect2) {\n return (\n rect1.x < rect2.x + rect2.width &&\n rect1.x + rect1.width > rect2.x &&\n rect1.y < rect2.y + rect2.height &&\n rect1.y + rect1.height > rect2.y\n )\n }\n\n loadImage(src) {\n return new Promise((resolve, reject) => {\n const img = new Image()\n img.src = src\n img.onload = () => resolve(img)\n img.onerror = reject\n })\n }\n\n eventGameFrameLoop = () => {\n const ctx = this.gameCanvas.getContext('2d')\n ctx.clearRect(0, 0, this.gameCanvas.width, this.gameCanvas.height)\n\n this.player?.update(ctx)\n\n if (this.enemySpawner) {\n const enemies = this.enemySpawner.getSpawnedGameObjects()\n let enemyReachedBackLine = false\n enemies.forEach(enemy => {\n enemy.update(ctx)\n if (enemy.position.y >= CANVAS_HEIGHT) {\n enemyReachedBackLine = true\n }\n })\n if (enemyReachedBackLine) this.endGame()\n }\n\n if (this.powerUpSpawner) {\n const powerUps = this.powerUpSpawner.getSpawnedGameObjects()\n const missedPowerUpIndices = []\n powerUps.forEach((powerUp, i) => {\n powerUp.update(ctx)\n if (powerUp.getBoundBox().y >= CANVAS_HEIGHT) {\n missedPowerUpIndices.push(i)\n }\n })\n this.powerUpSpawner.removeGameObjects(missedPowerUpIndices)\n }\n\n this.handleCollisions(\n this.player,\n this.enemySpawner?.getSpawnedGameObjects(),\n this.playerEnemyCollisionCallback\n )\n this.handleCollisions(\n this.player,\n this.powerUpSpawner?.getSpawnedGameObjects(),\n this.playerPowerupCollisionCallback\n )\n this.handleCollisions(\n this.player?.getSpawnedProjectiles(),\n this.enemySpawner?.getSpawnedGameObjects(),\n this.projectileEnemyCollisionCallback,\n true\n )\n this.particleFactory.updateParticles(ctx)\n }\n\n setCanvasRef = el => {\n this.gameCanvas = el\n }\n\n render() {\n return (\n \n \n
{`Score: ${this.state.score}`}
\n \n \n \n )\n }\n}\n\nexport default SpaceInvaders\n","/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport OfficialNotFoundGame from './frogger/OfficialNotFoundGame'\nimport SpaceInvaders from './space_invaders/SpaceInvaders'\n\nexport const renderGameApp = domElement => {\n const AppRootElement = document.getElementById(domElement)\n const rng = Math.random()\n if (rng < 0.25) {\n ReactDOM.render(, AppRootElement)\n } else {\n ReactDOM.render(, AppRootElement)\n }\n}\n\nexport const renderGameIntoDom = domElement => {\n renderGameApp(domElement)\n}\n","/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport {useScope as useI18nScope} from '@canvas/i18n'\nimport React from 'react'\n\nimport {View} from '@instructure/ui-view'\nimport {Heading} from '@instructure/ui-heading'\nimport {Text} from '@instructure/ui-text'\n\nimport SVGWrapper from '@canvas/svg-wrapper'\n\nconst I18n = useI18nScope('not_found_index')\n\nconst NotFoundArtwork = () => (\n
\n \n {/* maxWidth=\"small\" is being ignored in instui v6.27 */}\n \n \n \n \n {I18n.t('Whoops... Looks like nothing is here!')}\n \n \n \n {I18n.t(\"We couldn't find that page!\")}\n \n \n \n
\n)\n\nexport default NotFoundArtwork\n","/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport {renderGameIntoDom} from './react/gameEntry'\nimport NotFoundArtwork from './react/NotFoundArtwork'\n\nexport const renderNotFoundApp = domElementId => {\n const AppRootElement = document.getElementById(domElementId)\n ReactDOM.render(, AppRootElement)\n}\n\nexport const handleGameStartClick = event => {\n if (event.keyCode === 32) {\n document.body.removeEventListener('keydown', handleGameStartClick)\n renderGameIntoDom('not_found_root')\n\n // Trigger start command for game\n const startGameEvent = new KeyboardEvent('keydown', {\n keyCode: 32,\n bubbles: true,\n cancelable: true\n })\n document.dispatchEvent(startGameEvent)\n }\n}\n\nif (!ENV.KILL_JOY) {\n document.body.addEventListener('keydown', handleGameStartClick)\n}\n\nrenderNotFoundApp('not_found_root')\n","/*\n * Copyright (C) 2015 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport $ from 'jquery'\n\nconst DOCUMENT_NODE = 9\nconst ELEMENT_NODE = 1\n\nclass SVGWrapper extends React.Component {\n static propTypes = {\n url: PropTypes.string.isRequired,\n fillColor: PropTypes.string\n }\n\n componentDidMount() {\n this.fetchSVG()\n }\n\n componentWillReceiveProps(newProps) {\n if (newProps.url !== this.props.url) {\n this.fetchSVG()\n }\n }\n\n fetchSVG() {\n if (process.env.NODE_ENV === 'test') return\n $.ajax(this.props.url, {\n success: data => {\n this.svg = data\n\n if (data.nodeType === DOCUMENT_NODE) {\n this.svg = data.firstChild\n }\n\n if (this.svg.nodeType !== ELEMENT_NODE && this.svg.nodeName !== 'SVG') {\n throw new Error(\n `SVGWrapper: SVG Element must be returned by request to ${this.props.url}`\n )\n }\n\n if (this.props.fillColor) {\n this.svg.setAttribute('style', `fill:${this.props.fillColor}`)\n }\n\n this.svg.setAttribute('focusable', false)\n this.rootSpan.appendChild(this.svg)\n }\n })\n }\n\n render() {\n return (\n {\n this.rootSpan = c\n }}\n />\n )\n }\n}\n\nexport default SVGWrapper\n","module.exports = __webpack_public_path__ + \"9dfb536365f2959ccbe336562af4cbe8.png\";","module.exports = __webpack_public_path__ + \"331f64906b167e2e1b54021afc8be36f.png\";","module.exports = __webpack_public_path__ + \"81ca42dfc2a1236afd8c00161ccf5e43.png\";","module.exports = __webpack_public_path__ + \"1b0521b3e4f85a891384d0ed9e9a5c02.png\";"],"names":["childrenOrValue","props","propName","componentName","as","children","value","Error","concat","generator","_ref","borders","colors","spacing","typography","lineHeight","lineHeightFit","h1FontSize","fontSizeXXLarge","h1FontWeight","fontWeightLight","h1FontFamily","fontFamily","h2FontSize","fontSizeXLarge","h2FontWeight","fontWeightNormal","h2FontFamily","h3FontSize","fontSizeLarge","h3FontWeight","fontWeightBold","h3FontFamily","h4FontSize","fontSizeMedium","h4FontWeight","h4FontFamily","h5FontSize","fontSizeSmall","h5FontWeight","h5FontFamily","primaryInverseColor","textLightest","primaryColor","textDarkest","secondaryColor","textDark","secondaryInverseColor","textLight","borderPadding","xxxSmall","borderColor","borderMedium","borderWidth","widthSmall","borderStyle","style","canvas","variables","_ref2","fontFamilyHeading","map","themeAdapter","version","_dec","_dec2","_dec3","_class","_class2","_temp","styles","componentId","template","theme","Heading","deprecated","ellipsis","testable","_Component","_super","this","apply","arguments","key","_classnames","_this$props","border","color","level","margin","elementRef","ElementType","getElementType","View","Object","assign","passthroughProps","className","root","displayName","Component","propTypes","defaultProps","warningColor","textWarning","brandColor","textBrand","errorColor","textDanger","dangerColor","successColor","textSuccess","alertColor","textAlert","paragraphMargin","medium","fontFamilyMonospace","fontSizeXSmall","lineHeightCondensed","lineHeightDouble","letterSpacingNormal","letterSpacingCondensed","letterSpacingExpanded","Text","wrap","weight","fontStyle","size","letterSpacing","transform","ref","Character","constructor","width","height","x","y","speed","move","dx","dy","draw","ctx","gameCtx","fillStyle","fillRect","getPosition","checkCollide","otherX","otherY","otherWidth","otherHeight","BUFFER","Obstacle","goingLeft","super","GoalObject","_ref3","CANVAS_WIDTH","CANVAS_HEIGHT","GOAL_REACHED_SCORE","MAIN_CHAR_LENGTH","randomNumberBetween","min","max","Math","floor","random","OfficialNotFoundGame","React","setCanvasRef","el","gameCanvas","restartGame","startGame","gameStarted","setState","gameTimer","resetCharacters","gameLoop","setInterval","eventGameFrameLoop","mainCharacter","getContext","clearRect","goalObject","goalReached","state","createObstacle","obstacleWidth","rightOrLeft","placedY","placedX","obstacles","push","moveCharacter","playerController","playerMovement","keysPressed","endGame","clearInterval","shouldGenerateObstacle","i","length","currentObs","document","body","addEventListener","event","keyCode","indexOf","preventDefault","componentDidMount","checkInArena","buffer","render","_jsx","display","flexDirection","alignItems","justifyContent","fontSize","padding","MovingGameObject","gameImage","points","img","position","canCollide","getPoints","getBoundBox","update","drawImage","MovingGameObjectSpawner","gameWidth","gameHeight","spawnedGameObjects","gameObjectSpeed","gameObjectPoints","removeGameObjects","indices","filter","gameObject","_includesInstanceProperty","call","spawnGameObject","getSpawnedGameObjects","EnemySpawner","startSpawning","spawnRate","setTimeout","PowerUpSpawner","spawnChance","powerUpSpawnChance","interval","ExplodingParticle","animationDuration","radius","life","remainingLife","startTime","Date","now","getStartTime","doneAnimating","percent","beginPath","arc","PI","fill","ParticleFactory","particles","createParticles","amount","particle","updateParticles","LEFT_ARROW","UP_ARROW","RIGHT_ARROW","DOWN_ARROW","W","A","S","D","SPACE","InputHandler","horizontal","vertical","fire","_context","getFire","getDirectionalInput","PlayerShip","shipImage","projectileImage","projectileImg","inputHandler","fireRate","fireIntervalId","projectiles","projectileSpeed","powerLevel","powerTimeoutId","powerUpDuration","direction","spawnProjectile","increasePowerLevel","power","undefined","clearTimeout","spawnSingleProjectile","getSpawnedProjectiles","removeProjectiles","projectileIndices","_","updateProjectiles","projectile","I18n","useI18nScope","SpaceInvaders","score","handleStartGameEvent","playerEnemyCollisionCallback","playerIndices","enemyIndices","playerPowerupCollisionCallback","powerUpIndices","player","powerUpSpawner","prevState","projectileEnemyCollisionCallback","enemySpawner","_this$player","_this$enemySpawner","_this$powerUpSpawner","_this$player2","_this$enemySpawner2","enemies","enemyReachedBackLine","forEach","enemy","powerUps","missedPowerUpIndices","powerUp","handleCollisions","particleFactory","async","playerShipImg","loadImage","syringeImg","syringeImage","coronavirusImg","coronavirusImage","tpImg","tpImage","removeEventListener","textAlign","drawText","t","text","shadowOffset","font","fillText","playerObjects","spawnedObjects","callback","shouldSpawnParticles","Array","isArray","collidedPlayerObjectIndices","collidedSpawnedObjectIndices","playerObject","spawnedObject","j","checkCollision","rect1","rect2","src","Promise","resolve","reject","Image","onload","onerror","renderGameApp","domElement","AppRootElement","getElementById","rng","ReactDOM","_OfficialNotFoundGame","_SpaceInvaders","renderGameIntoDom","NotFoundArtwork","_View","maxWidth","SVGWrapper","url","renderNotFoundApp","domElementId","_NotFoundArtwork","handleGameStartClick","startGameEvent","KeyboardEvent","bubbles","cancelable","dispatchEvent","ENV","KILL_JOY","DOCUMENT_NODE","ELEMENT_NODE","fetchSVG","componentWillReceiveProps","newProps","process","$","success","data","svg","nodeType","firstChild","nodeName","fillColor","setAttribute","rootSpan","appendChild","c","module","exports"],"sourceRoot":""}