{"version":3,"file":"static/js/4120.a3bf9bb6.chunk.js","mappings":"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","sources":["../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/src/observe.ts","../node_modules/src/InView.tsx","../node_modules/src/useInView.tsx","../node_modules/react-vertical-timeline-component/dist-es6/VerticalTimeline.js","../node_modules/react-vertical-timeline-component/dist-es6/VerticalTimelineElement.js","../node_modules/react-vertical-timeline-component/dist-es6/index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import { ObserverInstanceCallback } from './index';\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map<Element, Array<ObserverInstanceCallback>>;\n }\n>();\n\nconst RootIds: WeakMap<Element | Document, string> = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit['root']) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter((key) => options[key] !== undefined)\n .map((key) => {\n return `${key}_${\n key === 'root' ? getRootId(options.root) : options[key]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n let id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map<Element, Array<ObserverInstanceCallback>>();\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === 'undefined' &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === 'number' ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n let callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n","import * as React from 'react';\nimport { IntersectionObserverProps, PlainChildrenProps } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== 'function';\n}\n\n/**\n ## Render props\n\n To use the `<InView>` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n <InView>\n {({ inView, ref, entry }) => (\n <div ref={ref}>\n <h2>{`Header inside viewport ${inView}.`}</h2>\n </div>\n )}\n </InView>\n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the `<InView />`, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `<InView>` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n <InView as=\"div\" onChange={(inView, entry) => console.log('Inview:', inView)}>\n <h2>Plain children are always rendered. Use onChange to monitor state.</h2>\n </InView>\n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n static displayName = 'InView';\n static defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false,\n };\n\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n this.node = null;\n }\n\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n if (!isPlainChildren(this.props)) {\n const { inView, entry } = this.state;\n return this.props.children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n children,\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n\n return React.createElement(\n as || 'div',\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n","import * as React from 'react';\nimport { InViewHookResponse, IntersectionOptions } from './index';\nimport { useEffect } from 'react';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\n/**\n * React Hooks make it easy to monitor the `inView` state of your components. Call\n * the `useInView` hook with the (optional) [options](#options) you need. It will\n * return an array containing a `ref`, the `inView` status and the current\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\n * report the status.\n *\n * @example\n * ```jsx\n * import React from 'react';\n * import { useInView } from 'react-intersection-observer';\n *\n * const Component = () => {\n * const { ref, inView, entry } = useInView({\n * threshold: 0,\n * });\n *\n * return (\n * <div ref={ref}>\n * <h2>{`Header inside viewport ${inView}.`}</h2>\n * </div>\n * );\n * };\n * ```\n */\nexport function useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n}: IntersectionOptions = {}): InViewHookResponse {\n const unobserve = React.useRef<Function>();\n const [state, setState] = React.useState<State>({\n inView: !!initialInView,\n });\n const setRef = React.useCallback(\n (node: Element | null) => {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n // Skip creating the observer\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(\n node,\n (inView, entry) => {\n setState({ inView, entry });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay,\n ],\n );\n\n /* eslint-disable-next-line */\n useEffect(() => {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView,\n });\n }\n });\n\n const result = [setRef, state.inView, state.entry] as InViewHookResponse;\n\n // Support object destructuring, by adding the specific values.\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n\n return result;\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst VerticalTimeline = ({\n animate = true,\n className = '',\n layout = '2-columns',\n lineColor = '#FFF',\n children\n}) => {\n if (typeof window === 'object') {\n document.documentElement.style.setProperty('--line-color', lineColor);\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(className, 'vertical-timeline', {\n 'vertical-timeline--animate': animate,\n 'vertical-timeline--two-columns': layout === '2-columns',\n 'vertical-timeline--one-column-left': layout === '1-column' || layout === '1-column-left',\n 'vertical-timeline--one-column-right': layout === '1-column-right'\n })\n }, children);\n};\n\nVerticalTimeline.propTypes = {\n children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node]).isRequired,\n className: _propTypes.default.string,\n animate: _propTypes.default.bool,\n layout: _propTypes.default.oneOf(['1-column-left', '1-column', '2-columns', '1-column-right']),\n lineColor: _propTypes.default.string\n};\nvar _default = VerticalTimeline;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactIntersectionObserver = require(\"react-intersection-observer\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst VerticalTimelineElement = ({\n children = '',\n className = '',\n contentArrowStyle = null,\n contentStyle = null,\n date = '',\n dateClassName = '',\n icon = null,\n iconClassName = '',\n iconOnClick = null,\n onTimelineElementClick = null,\n iconStyle = null,\n id = '',\n position = '',\n style = null,\n textClassName = '',\n intersectionObserverProps = {\n rootMargin: '0px 0px -40px 0px',\n triggerOnce: true\n },\n visible = false\n}) => /*#__PURE__*/_react.default.createElement(_reactIntersectionObserver.InView, intersectionObserverProps, ({\n inView,\n ref\n}) => /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: ref,\n id: id,\n className: (0, _classnames.default)(className, 'vertical-timeline-element', {\n 'vertical-timeline-element--left': position === 'left',\n 'vertical-timeline-element--right': position === 'right',\n 'vertical-timeline-element--no-children': children === ''\n }),\n style: style\n}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"span\", {\n // eslint-disable-line jsx-a11y/no-static-element-interactions\n style: iconStyle,\n onClick: iconOnClick,\n className: (0, _classnames.default)(iconClassName, 'vertical-timeline-element-icon', {\n 'bounce-in': inView || visible,\n 'is-hidden': !(inView || visible)\n })\n}, icon), /*#__PURE__*/_react.default.createElement(\"div\", {\n style: contentStyle,\n onClick: onTimelineElementClick,\n className: (0, _classnames.default)(textClassName, 'vertical-timeline-element-content', {\n 'bounce-in': inView || visible,\n 'is-hidden': !(inView || visible)\n })\n}, /*#__PURE__*/_react.default.createElement(\"div\", {\n style: contentArrowStyle,\n className: \"vertical-timeline-element-content-arrow\"\n}), children, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames.default)(dateClassName, 'vertical-timeline-element-date')\n}, date)))));\n\nVerticalTimelineElement.propTypes = {\n children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node]),\n className: _propTypes.default.string,\n contentArrowStyle: _propTypes.default.shape({}),\n contentStyle: _propTypes.default.shape({}),\n date: _propTypes.default.node,\n dateClassName: _propTypes.default.string,\n icon: _propTypes.default.element,\n iconClassName: _propTypes.default.string,\n iconStyle: _propTypes.default.shape({}),\n iconOnClick: _propTypes.default.func,\n onTimelineElementClick: _propTypes.default.func,\n id: _propTypes.default.string,\n position: _propTypes.default.string,\n style: _propTypes.default.shape({}),\n textClassName: _propTypes.default.string,\n visible: _propTypes.default.bool,\n intersectionObserverProps: _propTypes.default.shape({\n root: _propTypes.default.object,\n rootMargin: _propTypes.default.string,\n threshold: _propTypes.default.number,\n triggerOnce: _propTypes.default.bool\n })\n};\nvar _default = VerticalTimelineElement;\nexports.default = _default;","\"use strict\";\n\n// this should be the entry point to your library\nmodule.exports = {\n VerticalTimeline: require('./VerticalTimeline').default,\n // eslint-disable-line global-require\n VerticalTimelineElement: require('./VerticalTimelineElement').default // eslint-disable-line global-require\n\n};"],"names":["ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","observerMap","Map","RootIds","WeakMap","rootId","unsupportedValue","undefined","defaultFallbackInView","inView","optionsToId","options","Object","keys","sort","filter","key","map","root","has","set","toString","get","observe","callback","fallbackInView","window","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","target","intersectionRatio","threshold","time","boundingClientRect","intersectionRect","rootBounds","_createObserver","id","instance","thresholds","elements","observer","entries","forEach","entry","_elements$get","some","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","push","splice","indexOf","length","unobserve","size","disconnect","isPlainChildren","children","InView","_React$Component","_this","call","_unobserveCb","handleNode","triggerOnce","skip","setState","initialInView","observeNode","handleChange","onChange","state","_proto","prototype","componentDidUpdate","prevProps","rootMargin","this","delay","componentWillUnmount","_this$props","render","_this$state","ref","_this$props2","as","_objectWithoutPropertiesLoose","_excluded","React","_extends","useInView","_temp","_ref","_React$useState","setRef","current","useEffect","result","displayName","defaultProps","_react","_interopRequireDefault","_propTypes","_classnames","obj","__esModule","default","VerticalTimeline","animate","className","layout","lineColor","document","documentElement","style","setProperty","createElement","propTypes","_default","_reactIntersectionObserver","VerticalTimelineElement","contentArrowStyle","contentStyle","date","dateClassName","icon","iconClassName","iconOnClick","onTimelineElementClick","iconStyle","position","textClassName","intersectionObserverProps","visible","_ref2","Fragment","onClick"],"sourceRoot":""}