-
Notifications
You must be signed in to change notification settings - Fork 2
/
component---src-pages-index-js-ab1daa1720e455cfc27f.js.map
1 lines (1 loc) · 90.9 KB
/
component---src-pages-index-js-ab1daa1720e455cfc27f.js.map
1
{"version":3,"file":"component---src-pages-index-js-ab1daa1720e455cfc27f.js","mappings":"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","sources":["webpack://gatsby-starter-resume/./node_modules/classnames/index.js","webpack://gatsby-starter-resume/./node_modules/react-scrollspy/lib/scrollspy.js","webpack://gatsby-starter-resume/./node_modules/react-scrollspy/lib/throttle.js","webpack://gatsby-starter-resume/./node_modules/smoothscroll-polyfill/dist/smoothscroll.js","webpack://gatsby-starter-resume/./config.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://gatsby-starter-resume/./src/components/Scroll.js","webpack://gatsby-starter-resume/./src/assets/images/avatar.jpg","webpack://gatsby-starter-resume/./src/components/OffClickWrapper.js","webpack://gatsby-starter-resume/./src/components/Sidebar.js","webpack://gatsby-starter-resume/./src/assets/images/logo.png","webpack://gatsby-starter-resume/./src/pages/index.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/createClass.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/extends.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/inherits.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/typeof.js","webpack://gatsby-starter-resume/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.join(' ');\n }\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _throttle = _interopRequireDefault(require(\"./throttle\"));\nfunction isEqualArray(a, b) {\n return a.length === b.length && a.every(function (item, index) {\n return item === b[index];\n });\n}\nvar Scrollspy = /*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(Scrollspy, _React$Component);\n (0, _createClass2.default)(Scrollspy, null, [{\n key: \"propTypes\",\n get: function get() {\n return {\n items: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,\n currentClassName: _propTypes.default.string.isRequired,\n scrolledPastClassName: _propTypes.default.string,\n style: _propTypes.default.object,\n componentTag: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.elementType]),\n offset: _propTypes.default.number,\n rootEl: _propTypes.default.string,\n onUpdate: _propTypes.default.func\n };\n }\n }, {\n key: \"defaultProps\",\n get: function get() {\n return {\n items: [],\n currentClassName: '',\n style: {},\n componentTag: 'ul',\n offset: 0,\n onUpdate: function onUpdate() {}\n };\n }\n }]);\n function Scrollspy(props) {\n var _this;\n (0, _classCallCheck2.default)(this, Scrollspy);\n _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Scrollspy).call(this, props));\n _this.state = {\n targetItems: [],\n inViewState: [],\n isScrolledPast: [] // manually bind as ES6 does not apply this\n // auto binding as React.createClass does\n };\n\n _this._handleSpy = _this._handleSpy.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n (0, _createClass2.default)(Scrollspy, [{\n key: \"_initSpyTarget\",\n value: function _initSpyTarget(items) {\n var targetItems = items.map(function (item) {\n return document.getElementById(item);\n });\n return targetItems;\n } // https://github.com/makotot/react-scrollspy/pull/45\n }, {\n key: \"_fillArray\",\n value: function _fillArray(array, val) {\n var newArray = [];\n for (var i = 0, max = array.length; i < max; i++) {\n newArray[i] = val;\n }\n return newArray;\n }\n }, {\n key: \"_isScrolled\",\n value: function _isScrolled() {\n return this._getScrollDimension().scrollTop > 0;\n }\n }, {\n key: \"_getScrollDimension\",\n value: function _getScrollDimension() {\n var doc = document;\n var rootEl = this.props.rootEl;\n var scrollTop = rootEl ? doc.querySelector(rootEl).scrollTop : doc.documentElement.scrollTop || doc.body.parentNode.scrollTop || doc.body.scrollTop;\n var scrollHeight = rootEl ? doc.querySelector(rootEl).scrollHeight : doc.documentElement.scrollHeight || doc.body.parentNode.scrollHeight || doc.body.scrollHeight;\n return {\n scrollTop: scrollTop,\n scrollHeight: scrollHeight\n };\n }\n }, {\n key: \"_getElemsViewState\",\n value: function _getElemsViewState(targets) {\n var elemsInView = [];\n var elemsOutView = [];\n var viewStatusList = [];\n var targetItems = targets ? targets : this.state.targetItems;\n var hasInViewAlready = false;\n for (var i = 0, max = targetItems.length; i < max; i++) {\n var currentContent = targetItems[i];\n var isInView = hasInViewAlready ? false : this._isInView(currentContent);\n if (isInView) {\n hasInViewAlready = true;\n elemsInView.push(currentContent);\n } else {\n elemsOutView.push(currentContent);\n }\n var isLastItem = i === max - 1;\n var isScrolled = this._isScrolled(); // https://github.com/makotot/react-scrollspy/pull/26#issue-167413769\n\n var isLastShortItemAtBottom = this._isAtBottom() && this._isInView(currentContent) && !isInView && isLastItem && isScrolled;\n if (isLastShortItemAtBottom) {\n elemsOutView.pop();\n elemsOutView.push.apply(elemsOutView, (0, _toConsumableArray2.default)(elemsInView));\n elemsInView = [currentContent];\n viewStatusList = this._fillArray(viewStatusList, false);\n isInView = true;\n }\n viewStatusList.push(isInView);\n }\n return {\n inView: elemsInView,\n outView: elemsOutView,\n viewStatusList: viewStatusList,\n scrolledPast: this.props.scrolledPastClassName && this._getScrolledPast(viewStatusList)\n };\n }\n }, {\n key: \"_isInView\",\n value: function _isInView(el) {\n if (!el) {\n return false;\n }\n var _this$props = this.props,\n rootEl = _this$props.rootEl,\n offset = _this$props.offset;\n var rootRect;\n if (rootEl) {\n rootRect = document.querySelector(rootEl).getBoundingClientRect();\n }\n var rect = el.getBoundingClientRect();\n var winH = rootEl ? rootRect.height : window.innerHeight;\n var _this$_getScrollDimen = this._getScrollDimension(),\n scrollTop = _this$_getScrollDimen.scrollTop;\n var scrollBottom = scrollTop + winH;\n var elTop = rootEl ? rect.top + scrollTop - rootRect.top + offset : rect.top + scrollTop + offset;\n var elBottom = elTop + el.offsetHeight;\n return elTop < scrollBottom && elBottom > scrollTop;\n }\n }, {\n key: \"_isAtBottom\",\n value: function _isAtBottom() {\n var rootEl = this.props.rootEl;\n var _this$_getScrollDimen2 = this._getScrollDimension(),\n scrollTop = _this$_getScrollDimen2.scrollTop,\n scrollHeight = _this$_getScrollDimen2.scrollHeight;\n var winH = rootEl ? document.querySelector(rootEl).getBoundingClientRect().height : window.innerHeight;\n var scrolledToBottom = scrollTop + winH >= scrollHeight;\n return scrolledToBottom;\n }\n }, {\n key: \"_getScrolledPast\",\n value: function _getScrolledPast(viewStatusList) {\n if (!viewStatusList.some(function (item) {\n return item;\n })) {\n return viewStatusList;\n }\n var hasFoundInView = false;\n var scrolledPastItems = viewStatusList.map(function (item) {\n if (item && !hasFoundInView) {\n hasFoundInView = true;\n return false;\n }\n return !hasFoundInView;\n });\n return scrolledPastItems;\n }\n }, {\n key: \"_spy\",\n value: function _spy(targets) {\n var _this2 = this;\n var elemensViewState = this._getElemsViewState(targets);\n var currentStatuses = this.state.inViewState;\n this.setState({\n inViewState: elemensViewState.viewStatusList,\n isScrolledPast: elemensViewState.scrolledPast\n }, function () {\n _this2._update(currentStatuses);\n });\n }\n }, {\n key: \"_update\",\n value: function _update(prevStatuses) {\n if (isEqualArray(this.state.inViewState, prevStatuses)) {\n return;\n }\n this.props.onUpdate(this.state.targetItems[this.state.inViewState.indexOf(true)]);\n }\n }, {\n key: \"_handleSpy\",\n value: function _handleSpy() {\n (0, _throttle.default)(this._spy(), 100);\n }\n }, {\n key: \"_initFromProps\",\n value: function _initFromProps() {\n var targetItems = this._initSpyTarget(this.props.items);\n this.setState({\n targetItems: targetItems\n });\n this._spy(targetItems);\n }\n }, {\n key: \"offEvent\",\n value: function offEvent() {\n var el = this.props.rootEl ? document.querySelector(this.props.rootEl) : window;\n el.removeEventListener('scroll', this._handleSpy);\n }\n }, {\n key: \"onEvent\",\n value: function onEvent() {\n var el = this.props.rootEl ? document.querySelector(this.props.rootEl) : window;\n el.addEventListener('scroll', this._handleSpy);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._initFromProps();\n this.onEvent();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.offEvent();\n }\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps() {\n this._initFromProps();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var Tag = this.props.componentTag;\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n scrolledPastClassName = _this$props2.scrolledPastClassName,\n style = _this$props2.style;\n var counter = 0;\n var items = _react.default.Children.map(children, function (child, idx) {\n var _classNames;\n if (!child) {\n return null;\n }\n var ChildTag = child.type;\n var isScrolledPast = scrolledPastClassName && _this3.state.isScrolledPast[idx];\n var childClass = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(child.props.className), child.props.className), (0, _defineProperty2.default)(_classNames, \"\".concat(_this3.props.currentClassName), _this3.state.inViewState[idx]), (0, _defineProperty2.default)(_classNames, \"\".concat(_this3.props.scrolledPastClassName), isScrolledPast), _classNames));\n return _react.default.createElement(ChildTag, (0, _extends2.default)({}, child.props, {\n className: childClass,\n key: counter++\n }), child.props.children);\n });\n var itemClass = (0, _classnames.default)((0, _defineProperty2.default)({}, \"\".concat(className), className));\n return _react.default.createElement(Tag, {\n className: itemClass,\n style: style\n }, items);\n }\n }]);\n return Scrollspy;\n}(_react.default.Component);\nexports.default = Scrollspy;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar throttle = function throttle(fn) {\n var threshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n var last;\n var timer;\n return function () {\n var now = +new Date();\n var timePassed = !!last && now < last + threshold;\n if (timePassed) {\n clearTimeout(timer);\n timer = setTimeout(function () {\n last = now;\n fn();\n }, threshold);\n } else {\n last = now;\n fn();\n }\n };\n};\nvar _default = throttle;\nexports.default = _default;","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if ('scrollBehavior' in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== 'object' || firstArg.behavior === undefined || firstArg.behavior === 'auto' || firstArg.behavior === 'instant') {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError('behavior member of ScrollOptions ' + firstArg.behavior + ' is not a valid value for enumeration ScrollBehavior.');\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : w.scrollY || w.pageYOffset);\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(w, d.body, arguments[0].left !== undefined ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? ~~arguments[0].top : w.scrollY || w.pageYOffset);\n };\n\n // w.scrollBy\n w.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : 0, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : 0);\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n original.elementScroll.call(this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined ? ~~arguments[0].left : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined ? ~~arguments[0].top : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop);\n return;\n }\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(this, arguments[0].left !== undefined ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop);\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function () {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top);\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = {\n polyfill: polyfill\n };\n } else {\n // global\n polyfill();\n }\n})();","module.exports = {\n siteTitle: 'Mifta Sintaha', // <title>\n manifestName: 'Resume',\n manifestShortName: 'Landing', // max 12 characters\n manifestStartUrl: '/',\n manifestBackgroundColor: '#d63354',\n manifestThemeColor: '#d63354',\n manifestDisplay: 'standalone',\n manifestIcon: 'src/assets/img/icon.jpeg',\n // pathPrefix: `/msintaha.github.io`, // This path is subpath of your hosting https://domain/portfolio\n firstName: 'Mifta',\n lastName: 'Sintaha',\n // social\n socialLinks: [\n {\n icon: 'fa-github',\n name: 'Github',\n url: 'https://github.com/msintaha',\n },\n {\n icon: 'fa-youtube',\n name: 'YouTube',\n url: 'https://www.youtube.com/c/MiftaSintahaCS',\n },\n {\n icon: 'fa-linkedin-in',\n name: 'Linkedin',\n url: 'https://www.linkedin.com/in/mifta-sintaha-574319b1/',\n },\n {\n icon: 'fa-twitter',\n name: 'Twitter',\n url: 'https://twitter.com/MiftaSintaha',\n },\n {\n icon: 'fa-facebook-f',\n name: 'Facebook',\n url: 'https://facebook.com/mifta.sintaha.7',\n },\n ],\n email: 'msintaha94@gmail.com',\n address: 'Vancouver, British Columbia, Canada',\n newscredExperience: [\n 'Designed and implemented a \"Support dashboard\" integrated with various in-house microservice APIs to automate repetitive client on-boarding tasks with a UI for support team. Dockerized the build and deployment of this service and integrated it into CI/CD pipeline.',\n 'Integrated third party APIs for showing SEO data and Content Scoring with a caching layer to avoid API rate limits.',\n 'Lowered costs ($3.59 per month) and increased user click-through-rate by 30% through a serverless Recommended Articles Widget. This is an article recommender system using ElasticSearch MLT by taking a user\\'s journey to compare with regular tags and categories grouping algorithm and did A/B testing to compare click through rates. Set up a CDN for serving a script (Javascript) for Recommended Articles Widget used in WordPress sites and used aggregation service like AWS Athena to query user activity. Used design patterns to implement the service.',\n 'Tracked usage activity to understand latency and DAU by creating Periscope Dashboards for visualizing data.',\n 'Took ownership of services and its maintenance, wrote tech specs and presented in company-wide architecture meetings.',\n 'Created a Content Scoring system (frontend and backend) from scratch using Yoast’s SEO analysis and SEMrush’s keywords data mining to score content based on most used words in Google’s top 20 search results.',\n 'Built a Design Library with the company’s brand design using React and created both representational and smart components for effective code reuse. Introduced css design patterns and code conventions for said design library. Showcased the design on a DSM (Design system manager) like Storybook with specs.',\n 'Built a resource planner module with AG-grid to show a calendar view and enable complex drag/drop operations to show time allocation. Fetched data from microservice written in Flask which supports the logic for calculating the resources based on days and hours.',\n 'Created a Kanban board that makes multiple network calls to change status. Used a state machine library (DFA) to avoid multiple branching for calling the APIs and improve code readability for future extension.',\n 'Created a form builder that allows customizable fields (backend and frontend) with advanced UI drag/drop and form validations to submit work requests from the work request module. This feature increased the DAU by 40%.',\n 'Created the first chat application within the platform for real-time conversations using websockets. Added content reference tagging within the conversation window using ‘@’ and ‘#’.',\n 'Created an inline commenting tool (threaded comments) similar to Confluence.',\n 'Improved and consistently met quarterly feature Performance SLA by analyzing Google Stackdriver to identify N+1 API calls and optimized those services.'\n ],\n youtubeExperience: [\n 'Created video tutorials on theoretical topics of Computer Science e.g. Algorithms, Compiler Design, Automata & Computability, Database Systems, Computer Architecture, Graphics, Networking Systems, Java programming simulations, Operating Systems, DC Circuits',\n 'Created tutorials on Javascript Web frameworks e.g. MEAN stack, React basics'\n ]\n};\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import smoothscroll from 'smoothscroll-polyfill';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Element = props => {\n return props.children;\n};\n\nclass Scroll extends React.Component {\n static propTypes = {\n type: PropTypes.string,\n element: PropTypes.string,\n offset: PropTypes.number,\n timeout: PropTypes.number,\n children: PropTypes.node.isRequired,\n };\n constructor() {\n super();\n this.handleClick = this.handleClick.bind(this);\n }\n componentDidMount() {\n smoothscroll.polyfill();\n }\n handleClick(e) {\n e.preventDefault();\n let elem = 0;\n let scroll = true;\n const { type, element, offset, timeout } = this.props;\n if (type && element) {\n switch (type) {\n case 'class':\n elem = document.getElementsByClassName(element)[0];\n scroll = elem ? true : false;\n break;\n case 'id':\n elem = document.getElementById(element);\n scroll = elem ? true : false;\n break;\n default:\n }\n }\n scroll\n ? this.scrollTo(elem, offset, timeout)\n : console.log(`Element not found: ${element}`); // eslint-disable-line\n }\n scrollTo(element, offSet = 0, timeout = null) {\n const elemPos = element\n ? element.getBoundingClientRect().top + window.pageYOffset\n : 0;\n if (timeout) {\n setTimeout(() => {\n window.scroll({ top: elemPos + offSet, left: 0, behavior: 'smooth' });\n }, timeout);\n } else {\n window.scroll({ top: elemPos + offSet, left: 0, behavior: 'smooth' });\n }\n }\n render() {\n return (\n <Element>\n {typeof this.props.children === 'object' ? (\n React.cloneElement(this.props.children, { onClick: this.handleClick })\n ) : (\n <span onClick={this.handleClick}>{this.props.children}</span>\n )}\n </Element>\n );\n }\n}\n\nexport default Scroll;\n","export default __webpack_public_path__ + \"static/avatar-081d1393a975abb75b0588e4fc1766fd.jpg\";","import React from 'react';\n\nexport default class OffClickWrapper extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleInsideClick = this.handleInsideClick.bind(this);\n this.handleKeyup = this.handleKeyup.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleClick);\n document.addEventListener('keyup', this.handleKeyup);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('keyup', this.handleKeyup);\n }\n\n handleClick() {\n const { onOffClick } = this.props;\n\n if (this.isInsideClick) {\n this.isInsideClick = false;\n } else {\n onOffClick();\n }\n }\n\n handleInsideClick() {\n this.isInsideClick = true;\n }\n\n handleKeyup(event) {\n const { onOffClick } = this.props;\n\n if (event.key === 'Escape') {\n onOffClick();\n }\n }\n\n render() {\n const { children } = this.props;\n const child = React.Children.only(children);\n return React.cloneElement(child, { onClickCapture: this.handleInsideClick });\n }\n}\n","import React, { Component } from 'react';\nimport Scrollspy from 'react-scrollspy';\nimport Scroll from './Scroll';\n\nimport avatar from '../assets/images/avatar.jpg';\nimport config from '../../config';\nimport OffClickWrapper from './OffClickWrapper';\n\nexport class Sidebar extends Component {\n constructor(props) {\n super(props);\n this.state = {\n tabs: [\n { content: 'About', href: 'about' },\n { content: 'Experience', href: 'experience' },\n { content: 'Education', href: 'education' },\n { content: 'Skills', href: 'skills' },\n { content: 'Interests', href: 'interests' },\n { content: 'Awards', href: 'awards' },\n { content: 'Publications', href: 'publications' },\n ],\n showNav: true\n };\n\n this.toggleNav = this.toggleNav.bind(this);\n this.hideNav = this.hideNav.bind(this);\n this.onResize = this.onResize.bind(this);\n }\n\n componentDidMount() {\n this.onResize();\n window.addEventListener('resize', this.onResize, false);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, false)\n }\n\n onResize() {\n if (window.innerWidth <= 995) {\n this.hideNav();\n } else {\n this.setState({ showNav: true });\n }\n }\n\n toggleNav() {\n this.setState(prevState => ({ showNav: !prevState.showNav }));\n }\n\n hideNav() {\n this.setState({ showNav: false });\n }\n\n render() {\n const { showNav, tabs } = this.state;\n return (\n <nav\n className=\"navbar navbar-expand-lg navbar-dark bg-primary fixed-top\"\n id=\"sideNav\"\n >\n <a className=\"navbar-brand\" href=\"#page-top\">\n <span className=\"d-block d-lg-none\">\n {config.firstName} {config.lastName}\n </span>\n <span className=\"d-none d-lg-block\">\n <img\n className=\"img-fluid img-profile rounded-circle mx-auto mb-2\"\n src={avatar}\n alt=\"\"\n />\n </span>\n </a>\n <button\n className=\"navbar-toggler\"\n type=\"button\"\n data-target=\"#navbarSupportedContent\"\n aria-controls=\"navbarSupportedContent\"\n aria-expanded=\"false\"\n aria-label=\"Toggle navigation\"\n onClick={this.toggleNav}\n >\n <span className=\"navbar-toggler-icon\"></span>\n </button>\n {showNav &&\n <div className=\"navbar-collapse\" id=\"navbarSupportedContent\">\n <OffClickWrapper onOffClick={this.onResize}>\n <Scrollspy\n items={tabs.map(s => s.href)}\n currentClassName=\"active\"\n offset={-300}\n className=\"navbar-nav\"\n >\n {tabs.map((tab, i) => {\n const { href, content } = tab;\n return (\n <li className=\"nav-item\" key={href}>\n <Scroll type=\"id\" element={href}>\n <a className=\"nav-link\" href={`#${href}`}>\n {content}\n </a>\n </Scroll>\n </li>\n );\n })}\n </Scrollspy>\n </OffClickWrapper>\n </div>\n }\n </nav>\n );\n }\n}\n\nexport default Sidebar;\n","export default __webpack_public_path__ + \"static/logo-ab8bb8868232d7a7356cddef740be93a.png\";","\nimport React from 'react';\n\nimport Layout from '../components/Layout';\n\nimport Sidebar from '../components/Sidebar';\nimport config from '../../config';\nimport logo from '../assets/images/logo.png';\n\nconst IndexPage = () => (\n <Layout>\n <Sidebar />\n <div className=\"container-fluid p-0\">\n <section\n className=\"resume-section p-3 p-lg-5 d-flex align-items-center\"\n id=\"about\"\n >\n <div className=\"w-100\">\n <img src={logo} width=\"80\" alt=\"Mifta Sintaha\" />\n <br />\n <h2 className=\"mb-0\">\n {config.firstName}\n <span className=\"text-primary\">{config.lastName}</span>\n </h2>\n <div className=\"subheading mb-5 withBorder main\">\n {config.address} · \n <a href={`mailto:${config.email}`}>{config.email}</a>\n </div>\n <p className=\"lead mb-5\">\n Mifta is a Full Stack Software Engineer and a YouTube Content Creator, currently working at <a href=\"https://www.clio.com\">Clio</a>. She pursued her Master's Degree in Software Engineering at the University of British Columbia. \n She previously worked as a Software Engineer for 4.5 years at Welcome (now Optimizely).\n Having an Engineering degree, Mifta also composes instructional tutorials for an international audience of Computer Science students on YouTube, hoping to aid them in their studies.\n She is eager to start asking questions - to observe and solve the next puzzle. <i className=\"fa fa-puzzle-piece\"></i> <br/>\n Her ultimate mission is to master the art of software engineering and aims to build something worth remembering that will aid in making peoples' lives easier.\n Mifta is a team player and her specialty is her ability to take ownership, manage her team and workflow while maintaining punctuality in getting shit <i className=\"fa fa-tasks\"></i> done!\n </p>\n <div className=\"social-icons\">\n {config.socialLinks.map(social => {\n const { icon, url } = social;\n return (\n <a key={url} href={url}>\n <i className={`fab ${icon}`}></i>\n </a>\n );\n })}\n </div>\n </div>\n </section>\n\n <hr className=\"m-0\" />\n\n <section\n className=\"resume-section p-3 p-lg-5 d-flex justify-content-center\"\n id=\"experience\"\n >\n <div className=\"w-100\">\n <h3 className=\"mb-5\">Experience</h3>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Software Developer</h4>\n <div className=\"subheading mb-3 withBorder\">Clio</div>\n <p>\n Tech stack: Ruby on Rails, ReactJS, AlpineJS, AngularJS.\n <ul>\n <li>Maintenance of the microsoft/gmail integrations in the Clio Manage App</li>\n <li>Enhancing the features of the contacts section in Clio Manage App</li>\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">January 2023 - Present</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Graduate Research & Teaching Assistant</h4>\n <div className=\"subheading mb-3 withBorder\">University of British Columbia</div>\n <p>\n <ul>\n <li>Research Assistant at SALT (Software Analysis and Testing) Lab where I worked collaboratively with peers and solved research problems to publish them in top conferences/journals. Relevant Technologies: PyTorch, OpenAI Codex, Huggingface GPT models, Understand by SciTools.</li>\n <li>Teaching Assistant for the Course CPEN 322 (Software Construction II) in Winter Term 1, 2022. I was responsible for grading assignments, lab hours and coming up with exam test cases.</li>\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">January 2021 - December 2022</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Software Engineer</h4>\n <div className=\"subheading mb-3 withBorder\">Optimizely (previously NewsCred)</div>\n <p>\n Enhanced the experience and built features for the SaaS <a href=\"https://www.optimizely.com/products/content-marketing/\">platform</a> <br />\n <ul>\n {config.newscredExperience.map(e => <li>{e}</li>)}\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">November 2016 - May 2021</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Content Creator</h4>\n <div className=\"subheading mb-3 withBorder\">YouTube</div>\n <p>\n <ul>\n {config.youtubeExperience.map(e => <li>{e}</li>)}\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">August 2014 - Present</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Software Engineer (Freelance)</h4>\n <div className=\"subheading mb-3 withBorder\">EduHive</div>\n <p>\n <ul>\n <li><a href=\"https://eduhive.com.bd\"><strong>EduHive (Web)</strong></a>: Created features for the web platform EduHive - a Learning Management System which included - enabling online mock admission tests, generating mark-sheets along with answer sheets, implemented an exam question builder, integrated KaTex math equation rich text area and authentication middleware.\n</li>\n <li><a href=\"https://play.google.com/store/apps/details?id=com.techhive.eduhive\"><strong>EduHive (Mobile)</strong></a>: Built and published an android react native mobile app - implemented the logic using REST API, integrated payment system and authentication for google and facebook.</li>\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">March 2019 - September 2019</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Author</h4>\n <div className=\"subheading mb-3 withBorder\">Packt Publishing</div>\n <p>\n Published video course on the basics of \n <a href=\"https://www.packtpub.com/application-development/learning-react-native-development-videos\">\n \"Learning React Native Development\"</a>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">May 2018 - September 2018</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Web Developer (Part time)</h4>\n <div className=\"subheading mb-3 withBorder\">WebAble Digital</div>\n <p>\n <ul>\n <li>Created dynamic websites with AngularJS, ExpressJS & MeteorJS</li>\n <li>Worked with Facebook API and D3JS for collecting page Analytics and visualization</li>\n <li>Created and customised Wordpress themes</li>\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">August 2014 - September 2016</span>\n </div>\n </div>\n\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">Teaching Assistant (Undergraduate)</h4>\n <div className=\"subheading mb-3 withBorder\">BRAC University</div>\n <p>\n <ul>\n <li><strong>CSE221: Algorithms Course Student Tutor</strong> <br />\n Graded test papers, assignments and helped students during Tutoring time in understanding/solving lab assignments and algorithm simulations as well as Big O complexities. Gave practise problems with small variations for understanding the concepts further.\n </li>\n <li><strong>CSE111: Programming Language II Course Student Tutor</strong> <br />\n Created video tutorials (Tracing programs playlist) for solving JAVA program tracing which helped students in understanding Object oriented principles. Also graded test papers and assignments.</li>\n </ul>\n </p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">August 2014 - September 2016</span>\n </div>\n </div>\n </div>\n </section>\n\n <hr className=\"m-0\" />\n\n <section\n className=\"resume-section p-3 p-lg-5 d-flex align-items-center\"\n id=\"education\"\n >\n <div className=\"w-100\">\n <h3 className=\"mb-5\">Education</h3>\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">The University of British Columbia (UBC)</h4>\n <div className=\"subheading mb-3 withBorder\">Master of Applied Science</div>\n <div>Computer Engineering</div>\n <p>Grade: 90.2/100 (A+)</p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">January 2021 - December 2022</span>\n </div>\n </div>\n <div className=\"resume-item d-flex flex-column flex-md-row justify-content-between mb-5\">\n <div className=\"resume-content\">\n <h4 className=\"mb-0\">BRAC University</h4>\n <div className=\"subheading mb-3 withBorder\">Bachelor of Science</div>\n <div>Computer Science & Engineering</div>\n <p>GPA: 3.87 (Highest Distinction)</p>\n </div>\n <div className=\"resume-date text-md-right\">\n <span className=\"text-primary\">January 2013 - August 2016</span>\n </div>\n </div>\n </div>\n </section>\n\n <hr className=\"m-0\" />\n\n <section\n className=\"resume-section p-3 p-lg-5 d-flex align-items-center\"\n id=\"skills\"\n >\n <div className=\"w-100\">\n <h3 className=\"mb-5\">Skills</h3>\n\n <div className=\"subheading mb-3\">\n Programming Languages & Tools\n </div>\n <ul className=\"list-inline dev-icons\">\n <li className=\"list-inline-item\" title=\"Python\">\n <i className=\"fab fa-python\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"JavaScript\">\n <i className=\"fab fa-js-square\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"Java\">\n <i className=\"fab fa-java\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"ReactJS\">\n <i className=\"fab fa-react\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"AngularJS\">\n <i className=\"fab fa-angular\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"NodeJS\">\n <i className=\"fab fa-node-js\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"Sass\">\n <i className=\"fab fa-sass\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"PHP\">\n <i className=\"fab fa-php\"></i>\n </li>\n <li className=\"list-inline-item\" title=\"WordPress\">\n <i className=\"fab fa-wordpress\"></i>\n </li>\n </ul>\n\n <div className=\"subheading mb-3\">I want to work with</div>\n <ul className=\"fa-ul mb-0\">\n <li>\n <i className=\"fa-li fa fa-check\"></i>\n ReactJS/NodeJS\n </li>\n <li>\n <i className=\"fa-li fa fa-check\"></i>\n Flask/Django/Ruby on Rails\n </li>\n <li>\n <i className=\"fa-li fa fa-check\"></i>\n MongoDB/MySQL\n </li>\n <li>\n <i className=\"fa-li fa fa-check\"></i>\n AWS Services\n </li>\n </ul>\n </div>\n </section>\n\n <hr className=\"m-0\" />\n\n <section\n className=\"resume-section p-3 p-lg-5 d-flex align-items-center\"\n id=\"interests\"\n >\n <div className=\"w-100\">\n <h3 className=\"mb-5\">Interests</h3>\n <p>\n Apart from being a software engineer, I enjoy traveling, vlogging, coffee and cafe hopping, going to the beach, watching animes and tv shows, reading fantasy novels.\n <br /> I also <i className=\"fa fa-heart\"></i> hackathons and creating YouTube tutorials.\n </p>\n </div>\n </section>\n\n <hr className=\"m-0\" />\n\n <section\n className=\"resume-section p-3 p-lg-5 d-flex align-items-center\"\n id=\"awards\"\n >\n <div className=\"w-100\">\n <h3 className=\"mb-5\">Awards & Certifications</h3>\n <ul className=\"fa-ul mb-0\">\n <li>\n <i className=\"fa-li fa fa-trophy text-warning\"></i>\n <a href=\"https://ieeexplore.ieee.org/document/8631958\"><strong>Best Paper Award</strong></a> - ICCIT, 2018 for the Paper <br />\n <em>\n M. Sintaha and M. Mostakim, \"An Empirical Study and Analysis of the Machine Learning\n Algorithms Used in Detecting Cyberbullying in Social Media,\" 2018 21st International\n Conference of Computer and Information Technology (ICCIT), Dhaka, Bangladesh, 2018, pp.1-6. \n </em>\n </li>\n <li>\n <i className=\"fa-li fa fa-trophy text-warning\"></i>2<sup>nd</sup>\n place winner at Inter-office Hackathon 2018 at April for building a messaging platform for NewsCred’s Content Marketing Platform.\n </li>\n <li>\n <i className=\"fa-li fa fa-trophy text-warning\"></i>1<sup>st</sup>\n place winner in Inter-office Hackathon 2018 at October for building a Content Optimizer system - a system that tells you how SEO optimized your content is.\n </li>\n <li>\n <i className=\"fa-li fa fa-trophy text-warning\"></i>1<sup>st</sup>\n place and 3<sup>rd</sup> place winner in Inter-office Hackathon 2019 at November for integrating a pdf/doc annotator and making our company platform mobile responsive.\n </li>\n <li>\n <i className=\"fa-li fa fa-trophy text-warning\"></i>People's\n choice winner in Inter-office Hackathon 2020 on September for building a kanban board as well as quick task creation within the kanban board.\n </li>\n </ul>\n </div>\n </section>\n\n <section\n className=\"resume-section p-3 p-lg-5 d-flex align-items-center\"\n id=\"publications\"\n >\n <div className=\"w-100\">\n <h3 className=\"mb-5\">Publications</h3>\n <ul className=\"fa-ul mb-0\">\n <li>\n <i className=\"fa-li fa fa-book text-success\"></i>\n <a href=\"https://dl.acm.org/doi/10.1145/3579640\"><strong>Katana: Dual Slicing-Based Context for Learning Bug Fixes</strong></a> - TOSEM, 2023<br />\n <em>\n Mifta Sintaha, Noor Nashid, and Ali Mesbah. 2023. Katana: Dual Slicing-Based Context for Learning Bug Fixes. ACM Trans. Softw. Eng. Methodol. Just Accepted (February 2023). https://doi.org/10.1145/3579640\n </em>\n </li>\n <li>\n <i className=\"fa-li fa fa-book text-success\"></i>\n <a href=\"https://ieeexplore.ieee.org/document/8631958\"><strong>An Empirical Study and Analysis of the Machine Learning\n Algorithms Used in Detecting Cyberbullying in Social Media</strong></a> - ICCIT, 2018 <br />\n <em>\n M. Sintaha and M. Mostakim, \"An Empirical Study and Analysis of the Machine Learning\n Algorithms Used in Detecting Cyberbullying in Social Media,\" 2018 21st International\n Conference of Computer and Information Technology (ICCIT), Dhaka, Bangladesh, 2018, pp.1-6. \n </em>\n </li>\n </ul>\n </div>\n </section>\n\n </div>\n </Layout>\n);\n\nexport default IndexPage;\n\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","module","exports","default","_interopRequireDefault","_extends2","_defineProperty2","_toConsumableArray2","_classCallCheck2","_possibleConstructorReturn2","_getPrototypeOf2","_assertThisInitialized2","_createClass2","_inherits2","_propTypes","_react","_classnames","_throttle","Scrollspy","_React$Component","props","_this","this","state","targetItems","inViewState","isScrolledPast","_handleSpy","bind","get","items","arrayOf","string","isRequired","currentClassName","scrolledPastClassName","style","object","componentTag","oneOfType","elementType","offset","number","rootEl","onUpdate","func","value","map","item","document","getElementById","array","val","newArray","max","_getScrollDimension","scrollTop","doc","querySelector","documentElement","body","parentNode","scrollHeight","targets","elemsInView","elemsOutView","viewStatusList","hasInViewAlready","currentContent","isInView","_isInView","isLastItem","isScrolled","_isScrolled","_isAtBottom","pop","_fillArray","inView","outView","scrolledPast","_getScrolledPast","el","rootRect","_this$props","getBoundingClientRect","rect","winH","height","window","innerHeight","scrollBottom","elTop","top","elBottom","offsetHeight","_this$_getScrollDimen2","some","hasFoundInView","_this2","elemensViewState","_getElemsViewState","currentStatuses","setState","_update","prevStatuses","a","b","every","index","indexOf","_spy","_initSpyTarget","removeEventListener","addEventListener","_initFromProps","onEvent","offEvent","_this3","Tag","_this$props2","children","className","counter","Children","child","idx","_classNames","ChildTag","type","childClass","concat","createElement","itemClass","Component","Object","defineProperty","_default","fn","last","timer","threshold","undefined","now","Date","clearTimeout","setTimeout","polyfill","w","d","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","SCROLL_TIME","original","scroll","scrollTo","scrollBy","elementScroll","prototype","scrollElement","scrollIntoView","performance","ROUNDING_TOLERANCE","navigator","RegExp","test","shouldBailOut","smoothScroll","left","scrollX","pageXOffset","scrollY","pageYOffset","scrollLeft","SyntaxError","behavior","scrollableParent","isScrollable","host","findScrollableParent","parentRects","clientRects","getComputedStyle","position","x","y","firstArg","TypeError","hasScrollableSpace","axis","clientHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","step","context","currentX","currentY","k","elapsed","startTime","Math","cos","PI","startX","startY","method","scrollable","requestAnimationFrame","siteTitle","manifestName","manifestShortName","manifestStartUrl","manifestBackgroundColor","manifestThemeColor","manifestDisplay","manifestIcon","firstName","lastName","socialLinks","icon","name","url","email","address","newscredExperience","youtubeExperience","_assertThisInitialized","self","ReferenceError","handleClick","componentDidMount","smoothscroll","e","preventDefault","elem","element","timeout","getElementsByClassName","console","log","offSet","elemPos","render","React","onClick","OffClickWrapper","handleInsideClick","handleKeyup","componentWillUnmount","onOffClick","isInsideClick","event","onClickCapture","tabs","content","href","showNav","toggleNav","hideNav","onResize","innerWidth","prevState","id","config","src","avatar","alt","s","tab","Layout","logo","width","social","title","arr","len","arr2","__esModule","arrayLikeToArray","instance","Constructor","toPropertyKey","_defineProperties","target","descriptor","enumerable","configurable","writable","protoProps","staticProps","obj","_extends","assign","source","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","iter","Symbol","iterator","from","_typeof","assertThisInitialized","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","input","hint","prim","toPrimitive","res","String","Number","minLen","n","toString","slice"],"sourceRoot":""}