{"version":3,"sources":["webpack:///./node_modules/lodash/map.js","webpack:///./src/lib/constants.ts","webpack:///./src/pages/for-fun.tsx","webpack:///./node_modules/semantic-ui-react/dist/es/elements/Button/ButtonContent.js","webpack:///./node_modules/semantic-ui-react/dist/es/elements/Button/ButtonGroup.js","webpack:///./node_modules/semantic-ui-react/dist/es/elements/Button/ButtonOr.js","webpack:///./node_modules/semantic-ui-react/dist/es/elements/Button/Button.js","webpack:///./src/components/button.tsx","webpack:///./node_modules/lodash/_baseMap.js"],"names":["arrayMap","baseIteratee","baseMap","isArray","module","exports","collection","iteratee","HOME_SECTIONS","sectionTitle","buttons","title","href","subtitle","VIDEOS_IPHONE","url","PREVIOUS_BOOKS_SECTIONS","ForFunPage","className","stackable","columns","Column","width","style","fontSize","map","video","i","key","ButtonContent","props","children","content","hidden","visible","classes","rest","getUnhandledProps","ElementType","getElementType","createElement","isNil","handledProps","ButtonGroup","attached","basic","color","compact","floated","fluid","icon","inverted","labeled","negative","positive","primary","secondary","size","toggle","vertical","widths","button","create","ButtonOr","text","_Component","Button","_getPrototypeOf2","_this","this","_len","arguments","length","args","Array","_key","call","apply","concat","_this$props","label","_this$props2","disabled","tabIndex","ref","current","e","preventDefault","_this$props3","labelPosition","value","role","_this$props4","active","animated","circular","loading","baseClasses","hasIconClass","labeledClasses","wrapperClasses","computeElementType","computeTabIndex","buttonClasses","containerClasses","labelElement","Label","defaultProps","pointing","autoGenerateKey","onClick","handleClick","Ref","innerRef","undefined","Icon","hasChildren","computeButtonAriaRole","as","bold","target","baseEach","isArrayLike","index","result"],"mappings":"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","file":"component---src-pages-for-fun-tsx-2b9346a917b0545eafa8.js","sourcesContent":["var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","import { ButtonSection, Video } from \"../lib/types\"\n\nexport const HOME_SECTIONS: ButtonSection[] = [\n {\n sectionTitle: \"\",\n buttons: [\n {\n title: \"Book Features\",\n href: \"../../book/Pedroni_VHDL_3E_Book_features.pdf\",\n },\n {\n title: \"Table of Contents\",\n href: \"../../book/Pedroni_VHDL_3E_Table_of_contents.pdf\",\n },\n {\n title: \"List of examples and exercises\",\n href: \"../../book/Pedroni_VHDL_3E_List_examples_and_exercises.pdf\",\n },\n {\n title: \"VHDL code\",\n href: \"../../book/Circuit Design with VHDL - VHDL codes.docx\",\n },\n {\n title: \"Errata and Clarifications\",\n href: \"../../book/Errata_and_clarifications_rev3.pdf\",\n },\n ],\n },\n {\n sectionTitle: \"Sample Chapters:\",\n buttons: [\n {\n title: \"Chapter 4: Review of FPGAs\",\n href: \"../../book/Pedroni_VHDL_3E_Chapter4.pdf\",\n },\n {\n title: \"Chapter 10: Concurrent Code\",\n href: \"../../book/Pedroni_VHDL_3E_Chapter10.pdf\",\n },\n {\n title: \"Chapter 11: Concurrent Code Practice\",\n href: \"../../book/Pedroni_VHDL_3E_Chapter11.pdf\",\n },\n {\n title: \"Video: Quick course on FPGAs\",\n href: \"https://youtu.be/JA2MlGELd3E\",\n },\n ],\n },\n {\n sectionTitle: \"Sample Appendices:\",\n buttons: [\n {\n title: \"A: Vivado Tutorial\",\n href: \"../../book/Pedroni_VHDL_3E_AppendixA.pdf\",\n },\n {\n title: \"B: Quartus Prime Tutorial\",\n href: \"../../book/Pedroni_VHDL_3E_AppendixB.pdf\",\n },\n {\n title: \"G: I2C Communication Interface\",\n href: \"../../book/Pedroni_VHDL_3E_AppendixG.pdf\",\n },\n {\n title: \"I: VGA Video Interface\",\n href: \"../../book/Pedroni_VHDL_3E_AppendixI.pdf\",\n },\n {\n title: \"L: Using PLLs with VHDL\",\n href: \"../../book/Pedroni_VHDL_3E_AppendixL.pdf\",\n },\n ],\n },\n {\n sectionTitle: \"For Professors and Instructors:\",\n buttons: [\n {\n title: \"Request Book Copy\",\n href: \"../../book/MIT_Press_contact.pdf\",\n },\n {\n title: \"Request VHDL Course Slides\",\n subtitle: \"(Rev.2)\",\n href: \"../../book/MIT_Press_contact.pdf\",\n },\n {\n title: \"Request Solutions Manual\",\n subtitle: \"(Rev.3)\",\n href: \"../../book/MIT_Press_contact.pdf\",\n },\n ],\n },\n]\n\nexport const VIDEOS_IPHONE: Video[] = [\n { title: \"Introduction\", url: \"https://youtu.be/dOyIm6G8u3Q\" },\n { title: \"Energy and main board\", url: \"https://youtu.be/F5A0CXgvQ7c\" },\n { title: \"Access\", url: \"https://youtu.be/kcikbrs8ChQ\" },\n { title: \"Display and touchscreen\", url: \"https://youtu.be/rQxXZPCi9c8\" },\n { title: \"Radios and antennas\", url: \"https://youtu.be/ZXuCkFsAy_g\" },\n { title: \"Movement and location\", url: \"https://youtu.be/eX_cyOIrnAI\" },\n]\n\nexport const PREVIOUS_BOOKS_SECTIONS: ButtonSection[] = [\n {\n sectionTitle: \"\",\n buttons: [\n {\n title: \"Table of Contents\",\n href: \"../../book/Pedroni_FSMs_Table_of_contents.pdf\",\n },\n {\n title: \"List of machines in the book\",\n href: \"../../book/Pedroni_FSMs_List_state_machines.pdf\",\n },\n { title: \"Errata\", href: \"../../book/Pedroni_FSMs_Errata.pdf\" },\n ],\n },\n {\n sectionTitle: \"Sample Chapters:\",\n buttons: [\n {\n title: \"5: Regular State Machines\",\n href: \"../../book/Pedroni_FSMs_Chapter5.pdf\",\n },\n {\n title: \"6: VHDL for Regular State Machines\",\n href: \"../../book/Pedroni_FSMs_Chapter6.pdf\",\n },\n ],\n },\n {\n sectionTitle: \"For Professors and Instructors:\",\n buttons: [\n { title: \"Request book copy\", href: \"../../book/MIT_Press_contact.pdf\" },\n {\n title: \"Request solutions manual\",\n href: \"../../book/MIT_Press_contact.pdf\",\n },\n ],\n },\n]\n","import React from 'react'\nimport { VIDEOS_IPHONE } from '../lib/constants'\n\nimport { Grid, Divider } from 'semantic-ui-react'\nimport SEO from '../components/seo'\nimport Layout from '../components/layout'\nimport Button from '../components/button'\n\nimport './for-fun.css'\n\nconst ForFunPage = () => (\n \n \n\n \n\n \n

For fun...

\n \n {VIDEOS_IPHONE.map((video, i) => (\n \n ))}\n
\n\n
\n\n
\n)\n\nexport default ForFunPage\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport cx from 'classnames';\nimport React from 'react';\nimport { childrenUtils, customPropTypes, getElementType, getUnhandledProps, useKeyOnly } from '../../lib';\n/**\n * Used in some Button types, such as `animated`.\n */\n\nfunction ButtonContent(props) {\n var children = props.children,\n className = props.className,\n content = props.content,\n hidden = props.hidden,\n visible = props.visible;\n var classes = cx(useKeyOnly(visible, 'visible'), useKeyOnly(hidden, 'hidden'), 'content', className);\n var rest = getUnhandledProps(ButtonContent, props);\n var ElementType = getElementType(ButtonContent, props);\n return React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\n\nButtonContent.handledProps = [\"as\", \"children\", \"className\", \"content\", \"hidden\", \"visible\"];\nexport default ButtonContent;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _map from \"lodash/map\";\nimport _isNil from \"lodash/isNil\";\nimport cx from 'classnames';\nimport React from 'react';\nimport { childrenUtils, customPropTypes, getElementType, getUnhandledProps, SUI, useKeyOnly, useKeyOrValueAndKey, useValueAndKey, useWidthProp } from '../../lib';\nimport Button from './Button';\n/**\n * Buttons can be grouped.\n */\n\nfunction ButtonGroup(props) {\n var attached = props.attached,\n basic = props.basic,\n buttons = props.buttons,\n children = props.children,\n className = props.className,\n color = props.color,\n compact = props.compact,\n content = props.content,\n floated = props.floated,\n fluid = props.fluid,\n icon = props.icon,\n inverted = props.inverted,\n labeled = props.labeled,\n negative = props.negative,\n positive = props.positive,\n primary = props.primary,\n secondary = props.secondary,\n size = props.size,\n toggle = props.toggle,\n vertical = props.vertical,\n widths = props.widths;\n var classes = cx('ui', color, size, useKeyOnly(basic, 'basic'), useKeyOnly(compact, 'compact'), useKeyOnly(fluid, 'fluid'), useKeyOnly(icon, 'icon'), useKeyOnly(inverted, 'inverted'), useKeyOnly(labeled, 'labeled'), useKeyOnly(negative, 'negative'), useKeyOnly(positive, 'positive'), useKeyOnly(primary, 'primary'), useKeyOnly(secondary, 'secondary'), useKeyOnly(toggle, 'toggle'), useKeyOnly(vertical, 'vertical'), useKeyOrValueAndKey(attached, 'attached'), useValueAndKey(floated, 'floated'), useWidthProp(widths), 'buttons', className);\n var rest = getUnhandledProps(ButtonGroup, props);\n var ElementType = getElementType(ButtonGroup, props);\n\n if (_isNil(buttons)) {\n return React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n }\n\n return React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), _map(buttons, function (button) {\n return Button.create(button);\n }));\n}\n\nButtonGroup.handledProps = [\"as\", \"attached\", \"basic\", \"buttons\", \"children\", \"className\", \"color\", \"compact\", \"content\", \"floated\", \"fluid\", \"icon\", \"inverted\", \"labeled\", \"negative\", \"positive\", \"primary\", \"secondary\", \"size\", \"toggle\", \"vertical\", \"widths\"];\nexport default ButtonGroup;","import _extends from \"@babel/runtime/helpers/extends\";\nimport cx from 'classnames';\nimport React from 'react';\nimport { getElementType, getUnhandledProps } from '../../lib';\n/**\n * Button groups can contain conditionals.\n */\n\nfunction ButtonOr(props) {\n var className = props.className,\n text = props.text;\n var classes = cx('or', className);\n var rest = getUnhandledProps(ButtonOr, props);\n var ElementType = getElementType(ButtonOr, props);\n return React.createElement(ElementType, _extends({}, rest, {\n className: classes,\n \"data-text\": text\n }));\n}\n\nButtonOr.handledProps = [\"as\", \"className\", \"text\"];\nexport default ButtonOr;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _invoke from \"lodash/invoke\";\nimport _isNil from \"lodash/isNil\";\nimport { Ref } from '@stardust-ui/react-component-ref';\nimport cx from 'classnames';\nimport React, { Component, createRef } from 'react';\nimport { childrenUtils, customPropTypes, createShorthandFactory, getElementType, getUnhandledProps, SUI, useKeyOnly, useKeyOrValueAndKey, useValueAndKey } from '../../lib';\nimport Icon from '../Icon/Icon';\nimport Label from '../Label/Label';\nimport ButtonContent from './ButtonContent';\nimport ButtonGroup from './ButtonGroup';\nimport ButtonOr from './ButtonOr';\n/**\n * A Button indicates a possible user action.\n * @see Form\n * @see Icon\n * @see Label\n */\n\nvar Button = /*#__PURE__*/function (_Component) {\n _inherits(Button, _Component);\n\n function Button() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Button);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Button)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"computeElementType\", function () {\n var _this$props = _this.props,\n attached = _this$props.attached,\n label = _this$props.label;\n if (!_isNil(attached) || !_isNil(label)) return 'div';\n });\n\n _defineProperty(_assertThisInitialized(_this), \"computeTabIndex\", function (ElementType) {\n var _this$props2 = _this.props,\n disabled = _this$props2.disabled,\n tabIndex = _this$props2.tabIndex;\n if (!_isNil(tabIndex)) return tabIndex;\n if (disabled) return -1;\n if (ElementType === 'div') return 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n return _invoke(_this.ref.current, 'focus');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var disabled = _this.props.disabled;\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n _invoke(_this.props, 'onClick', e, _this.props);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"hasIconClass\", function () {\n var _this$props3 = _this.props,\n labelPosition = _this$props3.labelPosition,\n children = _this$props3.children,\n content = _this$props3.content,\n icon = _this$props3.icon;\n if (icon === true) return true;\n return icon && (labelPosition || childrenUtils.isNil(children) && _isNil(content));\n });\n\n return _this;\n }\n\n _createClass(Button, [{\n key: \"computeButtonAriaRole\",\n value: function computeButtonAriaRole(ElementType) {\n var role = this.props.role;\n if (!_isNil(role)) return role;\n if (ElementType !== 'button') return 'button';\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n active = _this$props4.active,\n animated = _this$props4.animated,\n attached = _this$props4.attached,\n basic = _this$props4.basic,\n children = _this$props4.children,\n circular = _this$props4.circular,\n className = _this$props4.className,\n color = _this$props4.color,\n compact = _this$props4.compact,\n content = _this$props4.content,\n disabled = _this$props4.disabled,\n floated = _this$props4.floated,\n fluid = _this$props4.fluid,\n icon = _this$props4.icon,\n inverted = _this$props4.inverted,\n label = _this$props4.label,\n labelPosition = _this$props4.labelPosition,\n loading = _this$props4.loading,\n negative = _this$props4.negative,\n positive = _this$props4.positive,\n primary = _this$props4.primary,\n secondary = _this$props4.secondary,\n size = _this$props4.size,\n toggle = _this$props4.toggle;\n var baseClasses = cx(color, size, useKeyOnly(active, 'active'), useKeyOnly(basic, 'basic'), useKeyOnly(circular, 'circular'), useKeyOnly(compact, 'compact'), useKeyOnly(fluid, 'fluid'), useKeyOnly(this.hasIconClass(), 'icon'), useKeyOnly(inverted, 'inverted'), useKeyOnly(loading, 'loading'), useKeyOnly(negative, 'negative'), useKeyOnly(positive, 'positive'), useKeyOnly(primary, 'primary'), useKeyOnly(secondary, 'secondary'), useKeyOnly(toggle, 'toggle'), useKeyOrValueAndKey(animated, 'animated'), useKeyOrValueAndKey(attached, 'attached'));\n var labeledClasses = cx(useKeyOrValueAndKey(labelPosition || !!label, 'labeled'));\n var wrapperClasses = cx(useKeyOnly(disabled, 'disabled'), useValueAndKey(floated, 'floated'));\n var rest = getUnhandledProps(Button, this.props);\n var ElementType = getElementType(Button, this.props, this.computeElementType);\n var tabIndex = this.computeTabIndex(ElementType);\n\n if (!_isNil(label)) {\n var buttonClasses = cx('ui', baseClasses, 'button', className);\n var containerClasses = cx('ui', labeledClasses, 'button', className, wrapperClasses);\n var labelElement = Label.create(label, {\n defaultProps: {\n basic: true,\n pointing: labelPosition === 'left' ? 'right' : 'left'\n },\n autoGenerateKey: false\n });\n return React.createElement(ElementType, _extends({}, rest, {\n className: containerClasses,\n onClick: this.handleClick\n }), labelPosition === 'left' && labelElement, React.createElement(Ref, {\n innerRef: this.ref\n }, React.createElement(\"button\", {\n className: buttonClasses,\n \"aria-pressed\": toggle ? !!active : undefined,\n disabled: disabled,\n tabIndex: tabIndex\n }, Icon.create(icon, {\n autoGenerateKey: false\n }), \" \", content)), (labelPosition === 'right' || !labelPosition) && labelElement);\n }\n\n var classes = cx('ui', baseClasses, wrapperClasses, labeledClasses, 'button', className);\n var hasChildren = !childrenUtils.isNil(children);\n var role = this.computeButtonAriaRole(ElementType);\n return React.createElement(Ref, {\n innerRef: this.ref\n }, React.createElement(ElementType, _extends({}, rest, {\n className: classes,\n \"aria-pressed\": toggle ? !!active : undefined,\n disabled: disabled && ElementType === 'button' || undefined,\n onClick: this.handleClick,\n role: role,\n tabIndex: tabIndex\n }), hasChildren && children, !hasChildren && Icon.create(icon, {\n autoGenerateKey: false\n }), !hasChildren && content));\n }\n }]);\n\n return Button;\n}(Component);\n\n_defineProperty(Button, \"defaultProps\", {\n as: 'button'\n});\n\n_defineProperty(Button, \"Content\", ButtonContent);\n\n_defineProperty(Button, \"Group\", ButtonGroup);\n\n_defineProperty(Button, \"Or\", ButtonOr);\n\n_defineProperty(Button, \"handledProps\", [\"active\", \"animated\", \"as\", \"attached\", \"basic\", \"children\", \"circular\", \"className\", \"color\", \"compact\", \"content\", \"disabled\", \"floated\", \"fluid\", \"icon\", \"inverted\", \"label\", \"labelPosition\", \"loading\", \"negative\", \"onClick\", \"positive\", \"primary\", \"role\", \"secondary\", \"size\", \"tabIndex\", \"toggle\"]);\n\nButton.create = createShorthandFactory(Button, function (value) {\n return {\n content: value\n };\n});\nexport default Button;","import React from 'react'\n\nimport { Button as B } from 'semantic-ui-react'\n\nimport './button.css'\n\ninterface Props {\n children: any\n href: string\n bold?: boolean\n}\n\nconst Button: React.FC = ({ children, href, bold = false }) => {\n return (\n \n {children}\n \n )\n}\n\nexport default Button","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n"],"sourceRoot":""}