{"version":3,"file":"component---src-pages-what-we-do-lending-js-e6b48b8d6d703d0ade13.js","mappings":"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","sources":["webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://imf-2021/./node_modules/@babel/runtime/regenerator/index.js","webpack://imf-2021/./node_modules/d3-selection/src/array.js","webpack://imf-2021/./node_modules/d3-selection/src/creator.js","webpack://imf-2021/./node_modules/d3-selection/src/create.js","webpack://imf-2021/./node_modules/d3-selection/src/local.js","webpack://imf-2021/./node_modules/d3-selection/src/pointers.js","webpack://imf-2021/./node_modules/d3-selection/src/selectAll.js","webpack://imf-2021/./node_modules/d3-selection/src/matcher.js","webpack://imf-2021/./node_modules/d3-selection/src/namespace.js","webpack://imf-2021/./node_modules/d3-selection/src/namespaces.js","webpack://imf-2021/./node_modules/d3-selection/src/pointer.js","webpack://imf-2021/./node_modules/d3-selection/src/select.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/selectChild.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/sparse.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/enter.js","webpack://imf-2021/./node_modules/d3-selection/src/constant.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/data.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/sort.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/size.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/attr.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/property.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/classed.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/text.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/html.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/raise.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/lower.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/insert.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/remove.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/clone.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/on.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/dispatch.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/iterator.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/index.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/select.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/selectAll.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/filter.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/exit.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/join.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/merge.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/order.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/call.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/nodes.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/node.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/empty.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/each.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/append.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/datum.js","webpack://imf-2021/./node_modules/d3-selection/src/selection/style.js","webpack://imf-2021/./node_modules/d3-selection/src/selector.js","webpack://imf-2021/./node_modules/d3-selection/src/selectorAll.js","webpack://imf-2021/./node_modules/d3-selection/src/sourceEvent.js","webpack://imf-2021/./node_modules/d3-selection/src/window.js","webpack://imf-2021/./node_modules/d3-dispatch/src/dispatch.js","webpack://imf-2021/./node_modules/d3-drag/src/noevent.js","webpack://imf-2021/./node_modules/d3-drag/src/nodrag.js","webpack://imf-2021/./node_modules/d3-interpolate/src/zoom.js","webpack://imf-2021/./node_modules/d3-timer/src/timer.js","webpack://imf-2021/./node_modules/d3-timer/src/timeout.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/schedule.js","webpack://imf-2021/./node_modules/d3-transition/src/interrupt.js","webpack://imf-2021/./node_modules/d3-interpolate/src/number.js","webpack://imf-2021/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://imf-2021/./node_modules/d3-interpolate/src/transform/parse.js","webpack://imf-2021/./node_modules/d3-interpolate/src/transform/index.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/tween.js","webpack://imf-2021/./node_modules/d3-color/src/define.js","webpack://imf-2021/./node_modules/d3-color/src/color.js","webpack://imf-2021/./node_modules/d3-interpolate/src/basis.js","webpack://imf-2021/./node_modules/d3-interpolate/src/constant.js","webpack://imf-2021/./node_modules/d3-interpolate/src/color.js","webpack://imf-2021/./node_modules/d3-interpolate/src/rgb.js","webpack://imf-2021/./node_modules/d3-interpolate/src/basisClosed.js","webpack://imf-2021/./node_modules/d3-interpolate/src/string.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/interpolate.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/attr.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/attrTween.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/delay.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/duration.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/ease.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/on.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/selection.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/style.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/styleTween.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/textTween.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/index.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/select.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/selectAll.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/filter.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/merge.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/transition.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/text.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/remove.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/easeVarying.js","webpack://imf-2021/./node_modules/d3-transition/src/transition/end.js","webpack://imf-2021/./node_modules/d3-transition/src/selection/transition.js","webpack://imf-2021/./node_modules/d3-ease/src/cubic.js","webpack://imf-2021/./node_modules/d3-transition/src/selection/index.js","webpack://imf-2021/./node_modules/d3-transition/src/selection/interrupt.js","webpack://imf-2021/./node_modules/d3-zoom/src/constant.js","webpack://imf-2021/./node_modules/d3-zoom/src/event.js","webpack://imf-2021/./node_modules/d3-zoom/src/transform.js","webpack://imf-2021/./node_modules/d3-zoom/src/noevent.js","webpack://imf-2021/./node_modules/d3-zoom/src/zoom.js","webpack://imf-2021/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://imf-2021/./node_modules/react-is/cjs/react-is.production.min.js","webpack://imf-2021/./node_modules/react-is/index.js","webpack://imf-2021/./node_modules/react-simple-maps/dist/index.umd.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-array/src/fsum.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/math.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/noop.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/stream.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/area.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/bounds.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/cartesian.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/centroid.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/constant.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/compose.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/rotation.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/circle.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/buffer.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/pointEqual.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/rejoin.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/polygonContains.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-array/src/merge.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/index.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/antimeridian.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/circle.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/rectangle.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/length.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/line.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/clip/extent.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/distance.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/contains.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-array/src/range.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/graticule.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/interpolate.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/identity.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/area.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/bounds.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/centroid.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/context.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/measure.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/string.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/path/index.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/transform.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/fit.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/resample.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/index.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/conic.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/conicEqualArea.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/albers.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/albersUsa.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/azimuthal.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/mercator.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/conicConformal.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/equirectangular.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/conicEquidistant.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/equalEarth.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/gnomonic.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/identity.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/orthographic.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/stereographic.js","webpack://imf-2021/./node_modules/react-simple-maps/node_modules/d3-geo/src/projection/transverseMercator.js","webpack://imf-2021/./node_modules/topojson-client/src/identity.js","webpack://imf-2021/./node_modules/topojson-client/src/transform.js","webpack://imf-2021/./node_modules/topojson-client/src/bbox.js","webpack://imf-2021/./node_modules/topojson-client/src/feature.js","webpack://imf-2021/./node_modules/topojson-client/src/reverse.js","webpack://imf-2021/./node_modules/topojson-client/src/stitch.js","webpack://imf-2021/./node_modules/topojson-client/src/mesh.js","webpack://imf-2021/./node_modules/topojson-client/src/merge.js","webpack://imf-2021/./node_modules/topojson-client/src/bisect.js","webpack://imf-2021/./node_modules/topojson-client/src/neighbors.js","webpack://imf-2021/./node_modules/topojson-client/src/untransform.js","webpack://imf-2021/./node_modules/topojson-client/src/quantize.js","webpack://imf-2021/./node_modules/core-js/internals/an-object.js","webpack://imf-2021/./node_modules/core-js/internals/array-includes.js","webpack://imf-2021/./node_modules/core-js/internals/classof-raw.js","webpack://imf-2021/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://imf-2021/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://imf-2021/./node_modules/core-js/internals/create-property-descriptor.js","webpack://imf-2021/./node_modules/core-js/internals/descriptors.js","webpack://imf-2021/./node_modules/core-js/internals/document-create-element.js","webpack://imf-2021/./node_modules/core-js/internals/enum-bug-keys.js","webpack://imf-2021/./node_modules/core-js/internals/export.js","webpack://imf-2021/./node_modules/core-js/internals/fails.js","webpack://imf-2021/./node_modules/core-js/internals/get-built-in.js","webpack://imf-2021/./node_modules/core-js/internals/global.js","webpack://imf-2021/./node_modules/core-js/internals/has.js","webpack://imf-2021/./node_modules/core-js/internals/hidden-keys.js","webpack://imf-2021/./node_modules/core-js/internals/ie8-dom-define.js","webpack://imf-2021/./node_modules/core-js/internals/indexed-object.js","webpack://imf-2021/./node_modules/core-js/internals/inspect-source.js","webpack://imf-2021/./node_modules/core-js/internals/internal-state.js","webpack://imf-2021/./node_modules/core-js/internals/is-forced.js","webpack://imf-2021/./node_modules/core-js/internals/is-object.js","webpack://imf-2021/./node_modules/core-js/internals/is-pure.js","webpack://imf-2021/./node_modules/core-js/internals/native-weak-map.js","webpack://imf-2021/./node_modules/core-js/internals/object-define-property.js","webpack://imf-2021/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://imf-2021/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://imf-2021/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://imf-2021/./node_modules/core-js/internals/object-keys-internal.js","webpack://imf-2021/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://imf-2021/./node_modules/core-js/internals/own-keys.js","webpack://imf-2021/./node_modules/core-js/internals/path.js","webpack://imf-2021/./node_modules/core-js/internals/redefine.js","webpack://imf-2021/./node_modules/core-js/internals/require-object-coercible.js","webpack://imf-2021/./node_modules/core-js/internals/set-global.js","webpack://imf-2021/./node_modules/core-js/internals/shared-key.js","webpack://imf-2021/./node_modules/core-js/internals/shared-store.js","webpack://imf-2021/./node_modules/core-js/internals/shared.js","webpack://imf-2021/./node_modules/core-js/internals/to-absolute-index.js","webpack://imf-2021/./node_modules/core-js/internals/to-indexed-object.js","webpack://imf-2021/./node_modules/core-js/internals/to-integer.js","webpack://imf-2021/./node_modules/core-js/internals/to-length.js","webpack://imf-2021/./node_modules/core-js/internals/to-object.js","webpack://imf-2021/./node_modules/core-js/internals/to-primitive.js","webpack://imf-2021/./node_modules/core-js/internals/uid.js","webpack://imf-2021/./node_modules/core-js/modules/es.math.hypot.js","webpack://imf-2021/./src/components/read-next.js","webpack://imf-2021/./src/hooks/useWindowSize.js","webpack://imf-2021/./node_modules/d3-geo/src/noop.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/buffer.js","webpack://imf-2021/./node_modules/d3-geo/src/math.js","webpack://imf-2021/./node_modules/d3-geo/src/pointEqual.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/rejoin.js","webpack://imf-2021/./node_modules/d3-geo/src/adder.js","webpack://imf-2021/./node_modules/d3-geo/src/cartesian.js","webpack://imf-2021/./node_modules/d3-geo/src/polygonContains.js","webpack://imf-2021/./node_modules/d3-array/src/ascending.js","webpack://imf-2021/./node_modules/d3-array/src/bisector.js","webpack://imf-2021/./node_modules/d3-array/src/bisect.js","webpack://imf-2021/./node_modules/d3-array/src/array.js","webpack://imf-2021/./node_modules/d3-array/src/ticks.js","webpack://imf-2021/./node_modules/d3-array/src/merge.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/index.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/antimeridian.js","webpack://imf-2021/./node_modules/d3-geo/src/circle.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/circle.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/rectangle.js","webpack://imf-2021/./node_modules/d3-geo/src/clip/line.js","webpack://imf-2021/./node_modules/d3-geo/src/compose.js","webpack://imf-2021/./node_modules/d3-geo/src/identity.js","webpack://imf-2021/./node_modules/d3-geo/src/rotation.js","webpack://imf-2021/./node_modules/d3-geo/src/transform.js","webpack://imf-2021/./node_modules/d3-geo/src/stream.js","webpack://imf-2021/./node_modules/d3-geo/src/path/bounds.js","webpack://imf-2021/./node_modules/d3-geo/src/projection/fit.js","webpack://imf-2021/./node_modules/d3-geo/src/projection/resample.js","webpack://imf-2021/./node_modules/d3-geo/src/projection/index.js","webpack://imf-2021/./node_modules/d3-geo-projection/src/math.js","webpack://imf-2021/./node_modules/d3-geo-projection/src/miller.js","webpack://imf-2021/./src/components/lending-map-patterns.js","webpack://imf-2021/./src/helpers/numbers.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://imf-2021/./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FormControl/formControlState.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js","webpack://imf-2021/./node_modules/is-in-browser/dist/module.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://imf-2021/./node_modules/jss/dist/jss.esm.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/useTheme/useTheme.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","webpack://imf-2021/./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","webpack://imf-2021/./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","webpack://imf-2021/./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","webpack://imf-2021/./node_modules/hyphenate-style-name/index.js","webpack://imf-2021/./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","webpack://imf-2021/./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","webpack://imf-2021/./node_modules/css-vendor/dist/css-vendor.esm.js","webpack://imf-2021/./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","webpack://imf-2021/./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://imf-2021/./node_modules/@material-ui/utils/esm/deepmerge.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","webpack://imf-2021/./node_modules/@material-ui/styles/esm/withStyles/withStyles.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/createBreakpoints.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/createMixins.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/common.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/grey.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/indigo.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/pink.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/red.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/orange.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/blue.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/colors/green.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/colorManipulator.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/createPalette.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/createTypography.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/shadows.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/shape.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://imf-2021/./node_modules/@material-ui/system/esm/breakpoints.js","webpack://imf-2021/./node_modules/@material-ui/system/esm/merge.js","webpack://imf-2021/./node_modules/@material-ui/system/esm/spacing.js","webpack://imf-2021/./node_modules/@material-ui/system/esm/memoize.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/createSpacing.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/transitions.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/zIndex.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/createTheme.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/defaultTheme.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/withStyles.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/capitalize.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/setRef.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/useForkRef.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/debounce.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/InputBase/utils.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/InputBase/InputBase.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Input/Input.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/styles/useTheme.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FormControl/useFormControl.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/isMuiElement.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FormControl/FormControl.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/ownerDocument.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/ownerWindow.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/createChainedFunction.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Portal/Portal.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/useEventCallback.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Modal/ModalManager.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Modal/Modal.js","webpack://imf-2021/./node_modules/@material-ui/core/node_modules/react-transition-group/esm/config.js","webpack://imf-2021/./node_modules/@material-ui/core/node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://imf-2021/./node_modules/@material-ui/core/node_modules/react-transition-group/esm/Transition.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/transitions/utils.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Grow/Grow.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Paper/Paper.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Popover/Popover.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/List/ListContext.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/List/List.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/MenuList/MenuList.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Menu/Menu.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/useControlled.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Select/SelectInput.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/createSvgIcon.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Select/Select.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/TextField/TextField.js","webpack://imf-2021/./node_modules/popper.js/dist/esm/popper.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Popper/Popper.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","webpack://imf-2021/./node_modules/@material-ui/core/node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://imf-2021/./node_modules/@material-ui/core/node_modules/react-transition-group/esm/TransitionGroup.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/IconButton/IconButton.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/Chip/Chip.js","webpack://imf-2021/./node_modules/@material-ui/lab/esm/internal/svg-icons/Close.js","webpack://imf-2021/./node_modules/@material-ui/lab/esm/internal/svg-icons/ArrowDropDown.js","webpack://imf-2021/./node_modules/@material-ui/lab/esm/useAutocomplete/useAutocomplete.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/utils/unstable_useId.js","webpack://imf-2021/./node_modules/@material-ui/lab/esm/Autocomplete/Autocomplete.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/ListItem/ListItem.js","webpack://imf-2021/./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","webpack://imf-2021/./src/components/lending-map.js","webpack://imf-2021/./src/pages/what-we-do/lending.js","webpack://imf-2021/./node_modules/regenerator-runtime/runtime.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _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, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","module.exports = require(\"regenerator-runtime\");\n","export default function (x) {\n return typeof x === \"object\" && \"length\" in x ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}","import namespace from \"./namespace.js\";\nimport { xhtml } from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import creator from \"./creator.js\";\nimport select from \"./select.js\";\nexport default function (name) {\n return select(creator(name).call(document.documentElement));\n}","var nextId = 0;\nexport default function local() {\n return new Local();\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function get(node) {\n var id = this._;\n\n while (!(id in node)) {\n if (!(node = node.parentNode)) return;\n }\n\n return node[id];\n },\n set: function set(node, value) {\n return node[this._] = value;\n },\n remove: function remove(node) {\n return this._ in node && delete node[this._];\n },\n toString: function toString() {\n return this._;\n }\n};","import pointer from \"./pointer.js\";\nimport sourceEvent from \"./sourceEvent.js\";\nexport default function (events, node) {\n if (events.target) {\n // i.e., instanceof Event, not TouchList or iterable\n events = sourceEvent(events);\n if (node === undefined) node = events.currentTarget;\n events = events.touches || [events];\n }\n\n return Array.from(events, function (event) {\n return pointer(event, node);\n });\n}","import array from \"./array.js\";\nimport { Selection, root } from \"./selection/index.js\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([selector == null ? [] : array(selector)], root);\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}\nexport function childMatcher(selector) {\n return function (node) {\n return node.matches(selector);\n };\n}","import namespaces from \"./namespaces.js\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name; // eslint-disable-line no-prototype-builtins\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import sourceEvent from \"./sourceEvent.js\";\nexport default function (event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n\n if (node) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n\n return [event.pageX, event.pageY];\n}","import { Selection, root } from \"./selection/index.js\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);\n}","import { childMatcher } from \"../matcher.js\";\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function () {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function (match) {\n return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}","import { childMatcher } from \"../matcher.js\";\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function () {\n return filter.call(this.children, match);\n };\n}\n\nexport default function (match) {\n return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse.js\";\nimport { Selection } from \"./index.js\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","export default function (x) {\n return function () {\n return x;\n };\n}","import { Selection } from \"./index.js\";\nimport { EnterNode } from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map(),\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function (value, key) {\n if (!arguments.length) return Array.from(this, datum);\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import { Selection } from \"./index.js\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function () {\n var size = 0;\n\n var _iterator = _createForOfIteratorHelper(this),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var node = _step.value;\n ++size;\n } // eslint-disable-line no-unused-vars\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return size;\n}","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","function contextListener(listener) {\n return function (event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function () {\n var on = this.__on,\n o,\n listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n options: options\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, options) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, options));\n }\n\n return this;\n}","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import _regeneratorRuntime from \"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/regenerator\";\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(_callee);\n\nexport default function _callee() {\n var groups, j, m, group, i, n, node;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n groups = this._groups, j = 0, m = groups.length;\n\n case 1:\n if (!(j < m)) {\n _context.next = 13;\n break;\n }\n\n group = groups[j], i = 0, n = group.length;\n\n case 3:\n if (!(i < n)) {\n _context.next = 10;\n break;\n }\n\n if (!(node = group[i])) {\n _context.next = 7;\n break;\n }\n\n _context.next = 7;\n return node;\n\n case 7:\n ++i;\n _context.next = 3;\n break;\n\n case 10:\n ++j;\n _context.next = 1;\n break;\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, this);\n}","import _defineProperty from \"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = _defineProperty({\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n}, Symbol.iterator, selection_iterator);\nexport default selection;","import { Selection } from \"./index.js\";\nimport selector from \"../selector.js\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function () {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function (select) {\n if (typeof select === \"function\") select = arrayAll(select);else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index.js\";\nimport matcher from \"../matcher.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import sparse from \"./sparse.js\";\nimport { Selection } from \"./index.js\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index.js\";\nexport default function (selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export default function () {\n return Array.from(this);\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator.js\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","export default function (event) {\n var sourceEvent;\n\n while (sourceEvent = event.sourceEvent) {\n event = sourceEvent;\n }\n\n return event;\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","var noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\nexport default function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import { select } from \"d3-selection\";\nimport noevent from \"./noevent.js\";\nexport default function (view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function () {\n selection.on(\"click.drag\", null);\n }, 0);\n }\n\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\n };\n } // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n return i;\n }\n\n zoom.rho = function (_) {\n var _1 = Math.max(1e-3, +_),\n _2 = _1 * _1,\n _4 = _2 * _2;\n\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);","var frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween; // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time); // If the elapsed delay is less than our first sleep, start immediately.\n\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start.\n\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue; // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n\n if (o.state === STARTED) return timeout(start); // Interrupt the active transition, if any.\n\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n } // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n\n\n timeout(function () {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n }); // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n\n self.state = STARTED; // Initialize the tween, deleting null tween.\n\n tween = new Array(n = self.tween.length);\n\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n } // Dispatch the end event.\n\n\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n\n for (var i in schedules) {\n return;\n } // eslint-disable-line no-unused-vars\n\n\n delete node.__transition;\n }\n}","import { STARTING, ENDING, ENDED } from \"./transition/schedule.js\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import decompose, { identity } from \"./decompose.js\";\nvar svgNode;\n/* eslint-disable no-undef */\n\nexport function parseCss(value) {\n var m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","import { get, set } from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error();\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function (name, value) {\n var id = this._id;\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default (function (x) {\n return function () {\n return x;\n };\n});","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}","import { interpolateTransformSvg as interpolateTransform } from \"d3-interpolate\";\nimport { namespace } from \"d3-selection\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}","import { namespace } from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function (t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function (t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}","import { get, init } from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function () {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function () {\n init(this, id).delay = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\n}","import { get, set } from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function () {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function () {\n set(this, id).duration = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\n}","import { get, set } from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error();\n return function () {\n set(this, id).ease = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\n}","import { get, set, init } from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function (t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\n}","import { interpolateTransformCss as interpolateTransform } from \"d3-interpolate\";\nimport { style } from \"d3-selection\";\nimport { set } from \"./schedule.js\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = style(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0,\n on1,\n listener0,\n key = \"style.\" + name,\n event = \"end.\" + key,\n remove;\n return function () {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}","function styleInterpolate(name, i, priority) {\n return function (t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}","function textInterpolate(i) {\n return function (t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, textTween(value));\n}","import _defineProperty from \"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport { selection } from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = _defineProperty({\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end\n}, Symbol.iterator, selection_prototype[Symbol.iterator]);","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}","import { Transition } from \"./index.js\";\nexport default function (transition) {\n if (transition._id !== this._id) throw new Error();\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}","import { Transition, newId } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function () {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}","import { tweenValue } from \"./tween.js\";\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function (value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n\n for (var i in this.__transition) {\n if (+i !== id) return;\n }\n\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { set } from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error();\n set(this, id).ease = v;\n };\n}\n\nexport default function (value) {\n if (typeof value !== \"function\") throw new Error();\n return this.each(easeVarying(this._id, value));\n}","import { set } from \"./schedule.js\";\nexport default function () {\n var on0,\n on1,\n that = this,\n id = that._id,\n size = that.size();\n return new Promise(function (resolve, reject) {\n var cancel = {\n value: reject\n },\n end = {\n value: function value() {\n if (--size === 0) resolve();\n }\n };\n that.each(function () {\n var schedule = set(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) {\n on1 = (on0 = on).copy();\n\n on1._.cancel.push(cancel);\n\n on1._.interrupt.push(cancel);\n\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n }); // The selection was empty, resolve end immediately\n\n if (size === 0) resolve();\n });\n}","import { Transition, newId } from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport { easeCubicInOut } from \"d3-ease\";\nimport { now } from \"d3-timer\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(\"transition \".concat(id, \" not found\"));\n }\n }\n\n return timing;\n}\n\nexport default function (name) {\n var id, timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","import interrupt from \"../interrupt.js\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","export default (function (x) {\n return function () {\n return x;\n };\n});","export default function ZoomEvent(type, _ref) {\n var sourceEvent = _ref.sourceEvent,\n target = _ref.target,\n transform = _ref.transform,\n dispatch = _ref.dispatch;\n Object.defineProperties(this, {\n type: {\n value: type,\n enumerable: true,\n configurable: true\n },\n sourceEvent: {\n value: sourceEvent,\n enumerable: true,\n configurable: true\n },\n target: {\n value: target,\n enumerable: true,\n configurable: true\n },\n transform: {\n value: transform,\n enumerable: true,\n configurable: true\n },\n _: {\n value: dispatch\n }\n });\n}","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function scale(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function translate(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function apply(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function applyX(x) {\n return x * this.k + this.x;\n },\n applyY: function applyY(y) {\n return y * this.k + this.y;\n },\n invert: function invert(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function invertX(x) {\n return (x - this.x) / this.k;\n },\n invertY: function invertY(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function rescaleX(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function rescaleY(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function toString() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nexport var identity = new Transform(1, 0, 0);\ntransform.prototype = Transform.prototype;\nexport default function transform(node) {\n while (!node.__zoom) {\n if (!(node = node.parentNode)) return identity;\n }\n\n return node.__zoom;\n}","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\nexport default function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import \"core-js/modules/es.math.hypot.js\";\nimport { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolateZoom } from \"d3-interpolate\";\nimport { select, pointer } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport { Transform, identity } from \"./transform.js\";\nimport noevent, { nopropagation } from \"./noevent.js\"; // Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\n\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1));\n}\n\nexport default function () {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection.property(\"__zoom\", defaultTransform).on(\"wheel.zoom\", wheeled).on(\"mousedown.zoom\", mousedowned).on(\"dblclick.zoom\", dblclicked).filter(touchable).on(\"touchstart.zoom\", touchstarted).on(\"touchmove.zoom\", touchmoved).on(\"touchend.zoom touchcancel.zoom\", touchended).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function (collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function () {\n gesture(this, arguments).event(event).start().zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform).end();\n });\n }\n };\n\n zoom.scaleBy = function (selection, k, p, event) {\n zoom.scaleTo(selection, function () {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function (selection, k, p, event) {\n zoom.transform(selection, function () {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function (selection, x, y, event) {\n zoom.transform(selection, function () {\n return constrain(this.__zoom.translate(typeof x === \"function\" ? x.apply(this, arguments) : x, typeof y === \"function\" ? y.apply(this, arguments) : y), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function (selection, x, y, p, event) {\n zoom.transform(selection, function () {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(typeof x === \"function\" ? -x.apply(this, arguments) : -x, typeof y === \"function\" ? -y.apply(this, arguments) : -y), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k,\n y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition.on(\"start.zoom\", function () {\n gesture(this, arguments).event(event).start();\n }).on(\"interrupt.zoom end.zoom\", function () {\n gesture(this, arguments).event(event).end();\n }).tween(\"zoom\", function () {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function (t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else {\n var l = i(t),\n k = w / l[2];\n t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);\n }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return !clean && that.__zooming || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function event(_event) {\n if (_event) this.sourceEvent = _event;\n return this;\n },\n start: function start() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n\n return this;\n },\n zoom: function zoom(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function end() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n\n return this;\n },\n emit: function emit(type) {\n var d = select(this.that).datum();\n listeners.call(type, this.that, new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type: type,\n transform: this.that.__zoom,\n dispatch: listeners\n }), d);\n }\n };\n\n function wheeled(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event); // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n\n clearTimeout(g.wheel);\n } // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return; // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n\n if (!g.moved) {\n var dx = event.clientX - x0,\n dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n\n g.event(event).zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started,\n i,\n t,\n p;\n nopropagation(event);\n\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function () {\n touchstarting = null;\n }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event) {\n if (!this.__zooming) return;\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length,\n i,\n t,\n p,\n l;\n noevent(event);\n\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n\n t = g.that.__zoom;\n\n if (g.touch1) {\n var p0 = g.touch0[0],\n l0 = g.touch0[1],\n p1 = g.touch1[0],\n l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n } else if (g.touch0) p = g.touch0[0], l = g.touch0[1];else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length,\n i,\n t;\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, touchDelay);\n\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);else {\n g.end(); // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n\n if (g.taps === 2) {\n t = pointer(t, this);\n\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function (_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function (_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function (_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function (_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function (_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function (_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function (_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function (_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function (_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","!function (e, o) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? o(exports, require(\"react\"), require(\"prop-types\"), require(\"d3-geo\"), require(\"topojson-client\"), require(\"d3-zoom\"), require(\"d3-selection\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"react\", \"prop-types\", \"d3-geo\", \"topojson-client\", \"d3-zoom\", \"d3-selection\"], o) : o((e = e || self).reactSimpleMaps = e.reactSimpleMaps || {}, e.React, e.PropTypes, e.d3, e.topojson, e.d3, e.d3);\n}(this, function (e, o, t, r, n, a, s) {\n \"use strict\";\n\n var i = \"default\" in o ? o.default : o;\n t = t && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n\n var c = Object.assign || function (e) {\n for (var o = 1; o < arguments.length; o++) {\n var t = arguments[o];\n\n for (var r in t) {\n Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);\n }\n }\n\n return e;\n },\n u = function u(e, o) {\n var t = {};\n\n for (var r in e) {\n o.indexOf(r) >= 0 || Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);\n }\n\n return t;\n },\n l = function l(e, o) {\n if (Array.isArray(e)) return e;\n if (Symbol.iterator in Object(e)) return function (e, o) {\n var t = [],\n r = !0,\n n = !1,\n a = void 0;\n\n try {\n for (var s, i = e[Symbol.iterator](); !(r = (s = i.next()).done) && (t.push(s.value), !o || t.length !== o); r = !0) {\n ;\n }\n } catch (e) {\n n = !0, a = e;\n } finally {\n try {\n !r && i.return && i.return();\n } finally {\n if (n) throw a;\n }\n }\n\n return t;\n }(e, o);\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n },\n p = r.geoPath,\n f = u(r, [\"geoPath\"]),\n d = o.createContext(),\n m = function m(e) {\n var t = e.width,\n r = e.height,\n n = e.projection,\n a = e.projectionConfig,\n s = u(e, [\"width\", \"height\", \"projection\", \"projectionConfig\"]),\n m = a.center || [],\n h = l(m, 2),\n v = h[0],\n g = h[1],\n y = a.rotate || [],\n M = l(y, 3),\n b = M[0],\n E = M[1],\n j = M[2],\n k = a.parallels || [],\n x = l(k, 2),\n N = x[0],\n w = x[1],\n C = a.scale || null,\n O = o.useMemo(function () {\n return function (e) {\n var o = e.projectionConfig,\n t = void 0 === o ? {} : o,\n r = e.projection,\n n = void 0 === r ? \"geoEqualEarth\" : r,\n a = e.width,\n s = void 0 === a ? 800 : a,\n i = e.height,\n c = void 0 === i ? 600 : i;\n if (\"function\" == typeof n) return n;\n var u = f[n]().translate([s / 2, c / 2]);\n return [u.center ? \"center\" : null, u.rotate ? \"rotate\" : null, u.scale ? \"scale\" : null, u.parallels ? \"parallels\" : null].forEach(function (e) {\n e && (u = u[e](t[e] || u[e]()));\n }), u;\n }({\n projectionConfig: {\n center: v || 0 === v || g || 0 === g ? [v, g] : null,\n rotate: b || 0 === b || E || 0 === E ? [b, E, j] : null,\n parallels: N || 0 === N || w || 0 === w ? [N, w] : null,\n scale: C\n },\n projection: n,\n width: t,\n height: r\n });\n }, [t, r, n, v, g, b, E, j, N, w, C]),\n T = o.useCallback(O, [O]),\n S = o.useMemo(function () {\n return {\n width: t,\n height: r,\n projection: T,\n path: p().projection(T)\n };\n }, [t, r, T]);\n return i.createElement(d.Provider, c({\n value: S\n }, s));\n };\n\n m.propTypes = {\n width: t.number,\n height: t.number,\n projection: t.oneOfType([t.string, t.func]),\n projectionConfig: t.object\n };\n\n var h = function h(e) {\n var o = e.width,\n t = void 0 === o ? 800 : o,\n r = e.height,\n n = void 0 === r ? 600 : r,\n a = e.projection,\n s = void 0 === a ? \"geoEqualEarth\" : a,\n l = e.projectionConfig,\n p = void 0 === l ? {} : l,\n f = e.className,\n d = void 0 === f ? \"\" : f,\n h = u(e, [\"width\", \"height\", \"projection\", \"projectionConfig\", \"className\"]);\n return i.createElement(m, {\n width: t,\n height: n,\n projection: s,\n projectionConfig: p\n }, i.createElement(\"svg\", c({\n viewBox: \"0 0 \" + t + \" \" + n,\n className: \"rsm-svg \" + d\n }, h)));\n };\n\n function v(e, o, t) {\n var r = (e * t.k - e) / 2,\n n = (o * t.k - o) / 2;\n return [e / 2 - (r + t.x) / t.k, o / 2 - (n + t.y) / t.k];\n }\n\n function g(e, o) {\n if (!(\"Topology\" === e.type)) return o ? o(e.features || e) : e.features || e;\n var t = n.feature(e, e.objects[Object.keys(e.objects)[0]]).features;\n return o ? o(t) : t;\n }\n\n function y(e) {\n return \"Topology\" === e.type ? {\n outline: n.mesh(e, e.objects[Object.keys(e.objects)[0]], function (e, o) {\n return e === o;\n }),\n borders: n.mesh(e, e.objects[Object.keys(e.objects)[0]], function (e, o) {\n return e !== o;\n })\n } : null;\n }\n\n function M(e, o) {\n return e ? e.map(function (e, t) {\n return c({}, e, {\n rsmKey: \"geo-\" + t,\n svgPath: o(e)\n });\n }) : [];\n }\n\n function b(e) {\n var t = e.geography,\n r = e.parseGeographies,\n n = o.useContext(d).path,\n a = o.useState({}),\n s = l(a, 2),\n i = s[0],\n u = s[1];\n o.useEffect(function () {\n var e;\n \"undefined\" != typeof window && t && (\"string\" == typeof t ? (e = t, fetch(e).then(function (e) {\n if (!e.ok) throw Error(e.statusText);\n return e.json();\n }).catch(function (e) {\n console.log(\"There was a problem when fetching the data: \", e);\n })).then(function (e) {\n e && u({\n geographies: g(e, r),\n mesh: y(e)\n });\n }) : u({\n geographies: g(t, r),\n mesh: y(t)\n }));\n }, [t, r]);\n var p = o.useMemo(function () {\n var e = i.mesh || {},\n o = function (e, o, t) {\n return e && o ? {\n outline: c({}, e, {\n rsmKey: \"outline\",\n svgPath: t(e)\n }),\n borders: c({}, o, {\n rsmKey: \"borders\",\n svgPath: t(o)\n })\n } : {};\n }(e.outline, e.borders, n);\n\n return {\n geographies: M(i.geographies, n),\n outline: o.outline,\n borders: o.borders\n };\n }, [i, n]);\n return {\n geographies: p.geographies,\n outline: p.outline,\n borders: p.borders\n };\n }\n\n h.propTypes = {\n width: t.number,\n height: t.number,\n projection: t.oneOfType([t.string, t.func]),\n projectionConfig: t.object,\n className: t.string\n };\n\n var E = function E(e) {\n var t = e.geography,\n r = e.children,\n n = e.parseGeographies,\n a = e.className,\n s = void 0 === a ? \"\" : a,\n l = u(e, [\"geography\", \"children\", \"parseGeographies\", \"className\"]),\n p = o.useContext(d),\n f = p.path,\n m = p.projection,\n h = b({\n geography: t,\n parseGeographies: n\n }),\n v = h.geographies,\n g = h.outline,\n y = h.borders;\n return i.createElement(\"g\", c({\n className: \"rsm-geographies \" + s\n }, l), v && v.length > 0 && r({\n geographies: v,\n outline: g,\n borders: y,\n path: f,\n projection: m\n }));\n };\n\n E.propTypes = {\n geography: t.oneOfType([t.string, t.object, t.array]),\n children: t.func,\n parseGeographies: t.func,\n className: t.string\n };\n\n var j = function j(e) {\n var t = e.geography,\n r = e.onMouseEnter,\n n = e.onMouseLeave,\n a = e.onMouseDown,\n s = e.onMouseUp,\n p = e.onFocus,\n f = e.onBlur,\n d = e.style,\n m = void 0 === d ? {} : d,\n h = e.className,\n v = void 0 === h ? \"\" : h,\n g = u(e, [\"geography\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"style\", \"className\"]),\n y = o.useState(!1),\n M = l(y, 2),\n b = M[0],\n E = M[1],\n j = o.useState(!1),\n k = l(j, 2),\n x = k[0],\n N = k[1];\n return i.createElement(\"path\", c({\n tabIndex: \"0\",\n className: \"rsm-geography \" + v,\n d: t.svgPath,\n onMouseEnter: function onMouseEnter(e) {\n N(!0), r && r(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n N(!1), b && E(!1), n && n(e);\n },\n onFocus: function onFocus(e) {\n N(!0), p && p(e);\n },\n onBlur: function onBlur(e) {\n N(!1), b && E(!1), f && f(e);\n },\n onMouseDown: function onMouseDown(e) {\n E(!0), a && a(e);\n },\n onMouseUp: function onMouseUp(e) {\n E(!1), s && s(e);\n },\n style: m[b || x ? b ? \"pressed\" : \"hover\" : \"default\"]\n }, g));\n };\n\n j.propTypes = {\n geography: t.object,\n onMouseEnter: t.func,\n onMouseLeave: t.func,\n onMouseDown: t.func,\n onMouseUp: t.func,\n onFocus: t.func,\n onBlur: t.func,\n style: t.object,\n className: t.string\n };\n\n var k = o.memo(j),\n x = function x(e) {\n var t = e.fill,\n n = void 0 === t ? \"transparent\" : t,\n a = e.stroke,\n s = void 0 === a ? \"currentcolor\" : a,\n l = e.step,\n p = void 0 === l ? [10, 10] : l,\n f = e.className,\n m = void 0 === f ? \"\" : f,\n h = u(e, [\"fill\", \"stroke\", \"step\", \"className\"]),\n v = o.useContext(d).path;\n return i.createElement(\"path\", c({\n d: v(r.geoGraticule().step(p)()),\n fill: n,\n stroke: s,\n className: \"rsm-graticule \" + m\n }, h));\n };\n\n x.propTypes = {\n fill: t.string,\n stroke: t.string,\n step: t.array,\n className: t.string\n };\n var N = o.memo(x);\n\n function w(e) {\n var t = e.center,\n r = e.filterZoomEvent,\n n = e.onMoveStart,\n i = e.onMoveEnd,\n c = e.onMove,\n u = e.translateExtent,\n p = void 0 === u ? [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]] : u,\n f = e.scaleExtent,\n m = void 0 === f ? [1, 8] : f,\n h = e.zoom,\n g = void 0 === h ? 1 : h,\n y = o.useContext(d),\n M = y.width,\n b = y.height,\n E = y.projection,\n j = l(t, 2),\n k = j[0],\n x = j[1],\n N = o.useState({\n x: 0,\n y: 0,\n k: 1\n }),\n w = l(N, 2),\n C = w[0],\n O = w[1],\n T = o.useRef({\n x: 0,\n y: 0,\n k: 1\n }),\n S = o.useRef(),\n P = o.useRef(),\n z = o.useRef(!1),\n Z = l(p, 2),\n G = Z[0],\n L = Z[1],\n B = l(G, 2),\n F = B[0],\n q = B[1],\n D = l(L, 2),\n U = D[0],\n W = D[1],\n R = l(m, 2),\n A = R[0],\n K = R[1];\n return o.useEffect(function () {\n var e = s.select(S.current);\n var o = a.zoom().filter(function (e) {\n return r ? r(e) : !!e && !e.ctrlKey && !e.button;\n }).scaleExtent([A, K]).translateExtent([[F, q], [U, W]]).on(\"start\", function (e) {\n n && !z.current && n({\n coordinates: E.invert(v(M, b, e.transform)),\n zoom: e.transform.k\n }, e);\n }).on(\"zoom\", function (e) {\n if (!z.current) {\n var o = e.transform,\n t = e.sourceEvent;\n O({\n x: o.x,\n y: o.y,\n k: o.k,\n dragging: t\n }), c && c({\n x: o.x,\n y: o.y,\n k: o.k,\n dragging: t\n }, e);\n }\n }).on(\"end\", function (e) {\n if (z.current) z.current = !1;else {\n var o = E.invert(v(M, b, e.transform)),\n t = l(o, 2),\n r = t[0],\n n = t[1];\n T.current = {\n x: r,\n y: n,\n k: e.transform.k\n }, i && i({\n coordinates: [r, n],\n zoom: e.transform.k\n }, e);\n }\n });\n P.current = o, e.call(o);\n }, [M, b, F, q, U, W, A, K, E, n, c, i, r]), o.useEffect(function () {\n if (k !== T.current.x || x !== T.current.y || g !== T.current.k) {\n var e = E([k, x]),\n o = e[0] * g,\n t = e[1] * g,\n r = s.select(S.current);\n z.current = !0, r.call(P.current.transform, a.zoomIdentity.translate(M / 2 - o, b / 2 - t).scale(g)), O({\n x: M / 2 - o,\n y: b / 2 - t,\n k: g\n }), T.current = {\n x: k,\n y: x,\n k: g\n };\n }\n }, [k, x, g, M, b, E]), {\n mapRef: S,\n position: C,\n transformString: \"translate(\" + C.x + \" \" + C.y + \") scale(\" + C.k + \")\"\n };\n }\n\n var C = function C(e) {\n var t = e.center,\n r = void 0 === t ? [0, 0] : t,\n n = e.zoom,\n a = void 0 === n ? 1 : n,\n s = e.minZoom,\n l = void 0 === s ? 1 : s,\n p = e.maxZoom,\n f = void 0 === p ? 8 : p,\n m = e.translateExtent,\n h = e.filterZoomEvent,\n v = e.onMoveStart,\n g = e.onMove,\n y = e.onMoveEnd,\n M = e.className,\n b = u(e, [\"center\", \"zoom\", \"minZoom\", \"maxZoom\", \"translateExtent\", \"filterZoomEvent\", \"onMoveStart\", \"onMove\", \"onMoveEnd\", \"className\"]),\n E = o.useContext(d),\n j = E.width,\n k = E.height,\n x = w({\n center: r,\n filterZoomEvent: h,\n onMoveStart: v,\n onMove: g,\n onMoveEnd: y,\n scaleExtent: [l, f],\n translateExtent: m,\n zoom: a\n }),\n N = x.mapRef,\n C = x.transformString;\n return i.createElement(\"g\", {\n ref: N\n }, i.createElement(\"rect\", {\n width: j,\n height: k,\n fill: \"transparent\"\n }), i.createElement(\"g\", c({\n transform: C,\n className: \"rsm-zoomable-group \" + M\n }, b)));\n };\n\n C.propTypes = {\n center: t.array,\n zoom: t.number,\n minZoom: t.number,\n maxZoom: t.number,\n translateExtent: t.arrayOf(t.array),\n onMoveStart: t.func,\n onMove: t.func,\n onMoveEnd: t.func,\n className: t.string\n };\n\n var O = function O(e) {\n var t = e.id,\n r = void 0 === t ? \"rsm-sphere\" : t,\n n = e.fill,\n a = void 0 === n ? \"transparent\" : n,\n s = e.stroke,\n l = void 0 === s ? \"currentcolor\" : s,\n p = e.strokeWidth,\n f = void 0 === p ? .5 : p,\n m = e.className,\n h = void 0 === m ? \"\" : m,\n v = u(e, [\"id\", \"fill\", \"stroke\", \"strokeWidth\", \"className\"]),\n g = o.useContext(d).path,\n y = o.useMemo(function () {\n return g({\n type: \"Sphere\"\n });\n }, [g]);\n return i.createElement(o.Fragment, null, i.createElement(\"defs\", null, i.createElement(\"clipPath\", {\n id: r\n }, i.createElement(\"path\", {\n d: y\n }))), i.createElement(\"path\", c({\n d: y,\n fill: a,\n stroke: l,\n strokeWidth: f,\n style: {\n pointerEvents: \"none\"\n },\n className: \"rsm-sphere \" + h\n }, v)));\n };\n\n O.propTypes = {\n id: t.string,\n fill: t.string,\n stroke: t.string,\n strokeWidth: t.number,\n className: t.string\n };\n\n var T = o.memo(O),\n S = function S(e) {\n var t = e.coordinates,\n r = e.children,\n n = e.onMouseEnter,\n a = e.onMouseLeave,\n s = e.onMouseDown,\n p = e.onMouseUp,\n f = e.onFocus,\n m = e.onBlur,\n h = e.style,\n v = void 0 === h ? {} : h,\n g = e.className,\n y = void 0 === g ? \"\" : g,\n M = u(e, [\"coordinates\", \"children\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"style\", \"className\"]),\n b = o.useContext(d).projection,\n E = o.useState(!1),\n j = l(E, 2),\n k = j[0],\n x = j[1],\n N = o.useState(!1),\n w = l(N, 2),\n C = w[0],\n O = w[1],\n T = b(t),\n S = l(T, 2),\n P = S[0],\n z = S[1];\n return i.createElement(\"g\", c({\n transform: \"translate(\" + P + \", \" + z + \")\",\n className: \"rsm-marker \" + y,\n onMouseEnter: function onMouseEnter(e) {\n O(!0), n && n(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n O(!1), k && x(!1), a && a(e);\n },\n onFocus: function onFocus(e) {\n O(!0), f && f(e);\n },\n onBlur: function onBlur(e) {\n O(!1), k && x(!1), m && m(e);\n },\n onMouseDown: function onMouseDown(e) {\n x(!0), s && s(e);\n },\n onMouseUp: function onMouseUp(e) {\n x(!1), p && p(e);\n },\n style: v[k || C ? k ? \"pressed\" : \"hover\" : \"default\"]\n }, M), r);\n };\n\n S.propTypes = {\n coordinates: t.array,\n children: t.oneOfType([t.node, t.arrayOf(t.node)]),\n onMouseEnter: t.func,\n onMouseLeave: t.func,\n onMouseDown: t.func,\n onMouseUp: t.func,\n onFocus: t.func,\n onBlur: t.func,\n style: t.object,\n className: t.string\n };\n\n var P = function P(e) {\n var t = e.from,\n r = void 0 === t ? [0, 0] : t,\n n = e.to,\n a = void 0 === n ? [0, 0] : n,\n s = e.coordinates,\n l = e.stroke,\n p = void 0 === l ? \"currentcolor\" : l,\n f = e.strokeWidth,\n m = void 0 === f ? 3 : f,\n h = e.fill,\n v = void 0 === h ? \"transparent\" : h,\n g = e.className,\n y = void 0 === g ? \"\" : g,\n M = u(e, [\"from\", \"to\", \"coordinates\", \"stroke\", \"strokeWidth\", \"fill\", \"className\"]),\n b = o.useContext(d).path,\n E = {\n type: \"LineString\",\n coordinates: s || [r, a]\n };\n return i.createElement(\"path\", c({\n d: b(E),\n className: \"rsm-line \" + y,\n stroke: p,\n strokeWidth: m,\n fill: v\n }, M));\n };\n\n P.propTypes = {\n from: t.array,\n to: t.array,\n coordinates: t.array,\n stroke: t.string,\n strokeWidth: t.number,\n fill: t.string,\n className: t.string\n };\n\n var z = function z(e) {\n var t = e.subject,\n r = e.children,\n n = e.connectorProps,\n a = e.dx,\n s = void 0 === a ? 30 : a,\n p = e.dy,\n f = void 0 === p ? 30 : p,\n m = e.curve,\n h = void 0 === m ? 0 : m,\n v = e.className,\n g = void 0 === v ? \"\" : v,\n y = u(e, [\"subject\", \"children\", \"connectorProps\", \"dx\", \"dy\", \"curve\", \"className\"]),\n M = (0, o.useContext(d).projection)(t),\n b = l(M, 2),\n E = b[0],\n j = b[1],\n k = function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 30,\n o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 30,\n t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : .5,\n r = Array.isArray(t) ? t : [t, t],\n n = e / 2 * r[0],\n a = o / 2 * r[1];\n return \"M0,0 Q\" + (-e / 2 - n) + \",\" + (-o / 2 + a) + \" \" + -e + \",\" + -o;\n }(s, f, h);\n\n return i.createElement(\"g\", c({\n transform: \"translate(\" + (E + s) + \", \" + (j + f) + \")\",\n className: \"rsm-annotation \" + g\n }, y), i.createElement(\"path\", c({\n d: k,\n fill: \"transparent\",\n stroke: \"#000\"\n }, n)), r);\n };\n\n z.propTypes = {\n subject: t.array,\n children: t.oneOfType([t.node, t.arrayOf(t.node)]),\n dx: t.number,\n dy: t.number,\n curve: t.number,\n connectorProps: t.object,\n className: t.string\n }, e.Annotation = z, e.ComposableMap = h, e.Geographies = E, e.Geography = k, e.Graticule = N, e.Line = P, e.MapContext = d, e.MapProvider = m, e.Marker = S, e.Sphere = T, e.ZoomableGroup = C, e.useGeographies = b, e.useZoomPan = w, Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n});","import _classCallCheck from \"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport var Adder = /*#__PURE__*/function () {\n function Adder() {\n _classCallCheck(this, Adder);\n\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n\n _createClass(Adder, [{\n key: \"add\",\n value: function add(x) {\n var p = this._partials;\n var i = 0;\n\n for (var j = 0; j < this._n && j < 32; j++) {\n var y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n }, {\n key: \"valueOf\",\n value: function valueOf() {\n var p = this._partials;\n var n = this._n,\n x,\n y,\n lo,\n hi = 0;\n\n if (n > 0) {\n hi = p[--n];\n\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n\n if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n\n return hi;\n }\n }]);\n\n return Adder;\n}();\nexport function fsum(values, valueof) {\n var adder = new Adder();\n\n if (valueof === undefined) {\n var _iterator = _createForOfIteratorHelper(values),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n\n if (value = +value) {\n adder.add(value);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n var index = -1;\n\n var _iterator2 = _createForOfIteratorHelper(values),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _value = _step2.value;\n\n if (_value = +valueof(_value, ++index, values)) {\n adder.add(_value);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n return +adder;\n}\nexport function fcumsum(values, valueof) {\n var adder = new Adder();\n var index = -1;\n return Float64Array.from(values, valueof === undefined ? function (v) {\n return adder.add(+v || 0);\n } : function (v) {\n return adder.add(+valueof(v, ++index, values) || 0);\n });\n}","import \"core-js/modules/es.math.hypot.js\";\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}","export default function noop() {}","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function Feature(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function FeatureCollection(object, stream) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n streamGeometry(features[i].geometry, stream);\n }\n }\n};\nvar streamGeometryType = {\n Sphere: function Sphere(object, stream) {\n stream.sphere();\n },\n Point: function Point(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function MultiPoint(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n object = coordinates[i], stream.point(object[0], object[1], object[2]);\n }\n },\n LineString: function LineString(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function MultiLineString(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 0);\n }\n },\n Polygon: function Polygon(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function MultiPolygon(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamPolygon(coordinates[i], stream);\n }\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n streamGeometry(geometries[i], stream);\n }\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n\n while (++i < n) {\n coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n }\n\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 1);\n }\n\n stream.polygonEnd();\n}\n\nexport default function (object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}","import { Adder } from \"d3-array\";\nimport { atan2, cos, quarterPi, radians, sin, tau } from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\nexport var areaRingSum = new Adder(); // hello?\n\nvar areaSum = new Adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaRingSum = new Adder();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function sphere() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u)); // Advance the previous points.\n\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function (object) {\n areaSum = new Adder();\n stream(object, areaStream);\n return areaSum * 2;\n}","import { Adder } from \"d3-array\";\nimport { areaStream, areaRingSum } from \"./area.js\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace, spherical } from \"./cartesian.js\";\nimport { abs, degrees, epsilon, radians } from \"./math.js\";\nimport stream from \"./stream.js\";\nvar lambda0, phi0, lambda1, phi1, // bounds\nlambda2, // previous lambda-coordinate\nlambda00, phi00, // first point\np0, // previous 3D point\ndeltaSum, ranges, range;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function polygonStart() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum = new Adder();\n areaStream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);else if (deltaSum > epsilon) phi1 = 90;else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function sphere() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n} // Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\n\n\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function (feature) {\n var i, n, a, b, merged, deltaMax, delta;\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream); // First, sort ranges by their minimum longitudes.\n\n if (n = ranges.length) {\n ranges.sort(rangeCompare); // Then, merge any ranges that overlap.\n\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n } // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n\n\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n return lambda0 === Infinity || phi0 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0, phi0], [lambda1, phi1]];\n}","import { asin, atan2, cos, sin, sqrt } from \"./math.js\";\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\nexport function cartesian(spherical) {\n var lambda = spherical[0],\n phi = spherical[1],\n cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n} // TODO return a\n\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n} // TODO return d\n\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}","import { Adder } from \"d3-array\";\nimport { asin, atan2, cos, degrees, epsilon, epsilon2, hypot, radians, sin, sqrt } from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\nvar W0, W1, X0, Y0, Z0, X1, Y1, Z1, X2, Y2, Z2, lambda00, phi00, // first point\nx0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n}; // Arithmetic mean of Cartesian vectors.\n\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n} // See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\n\n\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = hypot(cx, cy, cz),\n w = asin(m),\n // line weight = angle\n v = m && -w / m; // area weight multiplier\n\n X2.add(v * cx);\n Y2.add(v * cy);\n Z2.add(v * cz);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function (object) {\n W0 = W1 = X0 = Y0 = Z0 = X1 = Y1 = Z1 = 0;\n X2 = new Adder();\n Y2 = new Adder();\n Z2 = new Adder();\n stream(object, centroidStream);\n var x = +X2,\n y = +Y2,\n z = +Z2,\n m = hypot(x, y, z); // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1; // If the feature has zero length, fall back to arithmetic mean of point vectors.\n\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = hypot(x, y, z); // If the feature still has an undefined ccentroid, then return.\n\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / m) * degrees];\n}","export default function (x) {\n return function () {\n return x;\n };\n}","export default function (a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function (x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n}","import compose from \"./compose.js\";\nimport { abs, asin, atan2, cos, degrees, pi, radians, sin, tau } from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function (lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), asin(k * cosDeltaGamma + y * sinDeltaGamma)];\n }\n\n rotation.invert = function (lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), asin(k * cosDeltaPhi - x * sinDeltaPhi)];\n };\n\n return rotation;\n}\n\nexport default function (rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function (coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}","import { cartesian, cartesianNormalizeInPlace, spherical } from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport { acos, cos, degrees, epsilon, radians, sin, tau } from \"./math.js\";\nimport { rotateRadians } from \"./rotation.js\"; // Generates a circle centered at [0°, 0°], with a given radius and precision.\n\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n} // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\n\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function () {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {\n point: point\n };\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {\n type: \"Polygon\",\n coordinates: [ring]\n };\n ring = rotate = null;\n return c;\n }\n\n circle.center = function (_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function (_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function (_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}","import noop from \"../noop.js\";\nexport default function () {\n var lines = [],\n line;\n return {\n point: function point(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function lineStart() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function rejoin() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function result() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}","import { abs, epsilon } from \"./math.js\";\nexport default function (a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}","import pointEqual from \"../pointEqual.js\";\nimport { epsilon } from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n\n this.e = entry; // is an entry?\n\n this.v = false; // visited\n\n this.n = this.p = null; // next & previous\n} // A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\n\n\nexport default function (segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n segments.forEach(function (segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n,\n p0 = segment[0],\n p1 = segment[n],\n x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n\n for (i = 0; i < n; ++i) {\n stream.point((p0 = segment[i])[0], p0[1]);\n }\n\n stream.lineEnd();\n return;\n } // handle degenerate cases by moving the point\n\n\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n\n while (current.v) {\n if ((current = current.n) === start) return;\n }\n\n points = current.z;\n stream.lineStart();\n\n do {\n current.v = current.o.v = true;\n\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n\n for (i = points.length - 1; i >= 0; --i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n\n current = current.p;\n }\n\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n\n a.n = b = array[0];\n b.p = a;\n}","import { Adder } from \"d3-array\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace } from \"./cartesian.js\";\nimport { abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau } from \"./math.js\";\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi) return point[0];else return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function (polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n var sum = new Adder();\n if (sinPhi === 1) phi = halfPi + epsilon;else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta; // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n } // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ winding & 1;\n}","import _regeneratorRuntime from \"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/regenerator\";\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(flatten);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction flatten(arrays) {\n var _iterator, _step, array;\n\n return _regeneratorRuntime.wrap(function flatten$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _iterator = _createForOfIteratorHelper(arrays);\n _context.prev = 1;\n\n _iterator.s();\n\n case 3:\n if ((_step = _iterator.n()).done) {\n _context.next = 8;\n break;\n }\n\n array = _step.value;\n return _context.delegateYield(array, \"t0\", 6);\n\n case 6:\n _context.next = 3;\n break;\n\n case 8:\n _context.next = 13;\n break;\n\n case 10:\n _context.prev = 10;\n _context.t1 = _context[\"catch\"](1);\n\n _iterator.e(_context.t1);\n\n case 13:\n _context.prev = 13;\n\n _iterator.f();\n\n return _context.finish(13);\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, null, [[1, 10, 13, 16]]);\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport { epsilon, halfPi } from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport { merge } from \"d3-array\";\nexport default function (pointVisible, clipLine, interpolate, start) {\n return function (sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function polygonEnd() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function sphere() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i,\n n = ringSegments.length,\n m,\n segment,\n point;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return; // No intersections.\n\n if (clean & 1) {\n segment = ringSegments[0];\n\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n\n for (i = 0; i < m; ++i) {\n sink.point((point = segment[i])[0], point[1]);\n }\n\n sink.lineEnd();\n }\n\n return;\n } // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n\n\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n} // Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\n\n\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}","import clip from \"./index.js\";\nimport { abs, atan, cos, epsilon, halfPi, pi, sin } from \"../math.js\";\nexport default clip(function () {\n return true;\n}, clipAntimeridianLine, clipAntimeridianInterpolate, [-pi, -halfPi]); // Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\n\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n stream.lineStart();\n _clean = 1;\n },\n point: function point(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n\n if (abs(delta - pi) < epsilon) {\n // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n _clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n _clean = 0;\n }\n\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function lineEnd() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function clean() {\n return 2 - _clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1) - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0)) / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}","import { cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical } from \"../cartesian.js\";\nimport { circleStream } from \"../circle.js\";\nimport { abs, cos, epsilon, pi, radians, sqrt } from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\nexport default function (radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n } // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n\n\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n v00 = v0 = false;\n _clean = 1;\n },\n point: function point(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius ? v ? 0 : code(lambda, phi) : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) point1[2] = 1;\n }\n\n if (v !== v0) {\n _clean = 0;\n\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t; // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n _clean = 0;\n\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function lineEnd() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function clean() {\n return _clean | (v00 && v0) << 1;\n }\n };\n } // Intersects the great circle between a and b with the clip circle.\n\n\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b); // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n\n var n1 = [1, 0, 0],\n // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0],\n // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2; // Two polar points.\n\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B); // Solve |p(t)|^2 = 1.\n\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n if (!two) return q; // Two intersection points.\n\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; // Check that the first point is between a and b.\n\n if (meridian ? polar ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1) : phi0 <= q[1] && q[1] <= phi1 : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n } // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n\n\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}","import { abs, epsilon } from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport { merge } from \"d3-array\";\nvar clipMax = 1e9,\n clipMin = -clipMax; // TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0,\n a1 = 0;\n\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoint(from, to) < 0 ^ direction > 0) {\n do {\n stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n\n return function (stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__,\n y__,\n v__,\n // first point\n x_,\n y_,\n v_,\n // previous point\n first,\n clean;\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n\n if (a1 <= y1) {\n if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding;\n } else {\n if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding;\n }\n }\n }\n\n return winding;\n } // Buffer geometry within a polygon and then clip it en masse.\n\n\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n\n if (cleanInside || visible) {\n stream.polygonStart();\n\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n\n stream.polygonEnd();\n }\n\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n } // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n\n\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}","import { Adder } from \"d3-array\";\nimport { abs, atan2, cos, radians, sin, sqrt } from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\nvar lengthSum, lambda0, sinPhi0, cosPhi0;\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function (object) {\n lengthSum = new Adder();\n stream(object, lengthStream);\n return +lengthSum;\n}","export default function (a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}","import clipRectangle from \"./rectangle.js\";\nexport default function () {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n return clip = {\n stream: function stream(_stream) {\n return cache && cacheStream === _stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = _stream);\n },\n extent: function extent(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}","import length from \"./length.js\";\nvar coordinates = [null, null],\n object = {\n type: \"LineString\",\n coordinates: coordinates\n};\nexport default function (a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}","import { default as polygonContains } from \"./polygonContains.js\";\nimport { default as distance } from \"./distance.js\";\nimport { epsilon2, radians } from \"./math.js\";\nvar containsObjectType = {\n Feature: function Feature(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function FeatureCollection(object, point) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n if (containsGeometry(features[i].geometry, point)) return true;\n }\n\n return false;\n }\n};\nvar containsGeometryType = {\n Sphere: function Sphere() {\n return true;\n },\n Point: function Point(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function MultiPoint(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsPoint(coordinates[i], point)) return true;\n }\n\n return false;\n },\n LineString: function LineString(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function MultiLineString(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsLine(coordinates[i], point)) return true;\n }\n\n return false;\n },\n Polygon: function Polygon(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function MultiPolygon(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsPolygon(coordinates[i], point)) return true;\n }\n\n return false;\n },\n GeometryCollection: function GeometryCollection(object, point) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n if (containsGeometry(geometries[i], point)) return true;\n }\n\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type) ? containsGeometryType[geometry.type](geometry, point) : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (ab > 0 && ao <= ab && bo <= ab && (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab) return true;\n }\n\n ao = bo;\n }\n\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function (object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type) ? containsObjectType[object.type] : containsGeometry)(object, point);\n}","export default function (start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}","import { range } from \"d3-array\";\nimport { abs, ceil, epsilon } from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function (x) {\n return y.map(function (y) {\n return [x, y];\n });\n };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function (y) {\n return x.map(function (x) {\n return [x, y];\n });\n };\n}\n\nexport default function graticule() {\n var x1,\n x0,\n X1,\n X0,\n y1,\n y0,\n Y1,\n Y0,\n dx = 10,\n dy = dx,\n DX = 90,\n DY = 360,\n x,\n y,\n X,\n Y,\n precision = 2.5;\n\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X).concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function (x) {\n return abs(x % DX) > epsilon;\n }).map(x)).concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function (y) {\n return abs(y % DY) > epsilon;\n }).map(y));\n }\n\n graticule.lines = function () {\n return lines().map(function (coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n\n graticule.outline = function () {\n return {\n type: \"Polygon\",\n coordinates: [X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1))]\n };\n };\n\n graticule.extent = function (_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function (_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function (_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function (_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function (_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function (_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function (_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule.extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]]).extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\nexport function graticule10() {\n return graticule()();\n}","import { asin, atan2, cos, degrees, haversin, radians, sin, sqrt } from \"./math.js\";\nexport default function (a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n var interpolate = d ? function (t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [atan2(y, x) * degrees, atan2(z, sqrt(x * x + y * y)) * degrees];\n } : function () {\n return [x0 * degrees, y0 * degrees];\n };\n interpolate.distance = d;\n return interpolate;\n}","export default (function (x) {\n return x;\n});","import { Adder } from \"d3-array\";\nimport { abs } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function result() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;","import noop from \"../noop.js\";\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function result() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;","import { sqrt } from \"../math.js\"; // TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function result() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2] : Z1 ? [X1 / Z1, Y1 / Z1] : Z0 ? [X0 / Z0, Y0 / Z0] : [NaN, NaN];\n X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;","import { tau } from \"../math.js\";\nimport noop from \"../noop.js\";\nexport default function PathContext(context) {\n this._context = context;\n}\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function pointRadius(_) {\n return this._radius = _, this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._context.moveTo(x, y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._context.lineTo(x, y);\n\n break;\n }\n\n default:\n {\n this._context.moveTo(x + this._radius, y);\n\n this._context.arc(x, y, this._radius, 0, tau);\n\n break;\n }\n }\n },\n result: noop\n};","import { Adder } from \"d3-array\";\nimport { sqrt } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\nvar lengthStream = {\n point: noop,\n lineStart: function lineStart() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function lineEnd() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function polygonStart() {\n lengthRing = true;\n },\n polygonEnd: function polygonEnd() {\n lengthRing = null;\n },\n result: function result() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;","export default function PathString() {\n this._string = [];\n}\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function pointRadius(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._string.push(\"M\", x, \",\", y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n\n break;\n }\n\n default:\n {\n if (this._circle == null) this._circle = circle(this._radius);\n\n this._string.push(\"M\", x, \",\", y, this._circle);\n\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n}","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\nexport default function (projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n\n return contextStream.result();\n }\n\n path.area = function (object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function (object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function (object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function (object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function (_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function (_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function (_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}","export default function (methods) {\n return {\n stream: transformer(methods)\n };\n}\nexport function transformer(methods) {\n return function (stream) {\n var s = new TransformStream();\n\n for (var key in methods) {\n s[key] = methods[key];\n }\n\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function point(x, y) {\n this.stream.point(x, y);\n },\n sphere: function sphere() {\n this.stream.sphere();\n },\n lineStart: function lineStart() {\n this.stream.lineStart();\n },\n lineEnd: function lineEnd() {\n this.stream.lineEnd();\n },\n polygonStart: function polygonStart() {\n this.stream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n this.stream.polygonEnd();\n }\n};","import { default as geoStream } from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function (b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\nexport function fitWidth(projection, width, object) {\n return fit(projection, function (b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\nexport function fitHeight(projection, height, object) {\n return fit(projection, function (b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}","import { cartesian } from \"../cartesian.js\";\nimport { abs, asin, atan2, cos, epsilon, radians, sqrt } from \"../math.js\";\nimport { transformer } from \"../transform.js\";\nvar maxDepth = 16,\n // maximum depth of subdivision\ncosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function (project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function point(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n\n return function (stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function polygonEnd() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]),\n p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport { cos, degrees, radians, sin, sqrt } from \"../math.js\";\nimport { rotateRadians } from \"../rotation.js\";\nimport { transformer } from \"../transform.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\";\nimport resample from \"./resample.js\";\nvar transformRadians = transformer({\n point: function point(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function point(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [dx + k * x, dy - k * y];\n }\n\n transform.invert = function (x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n\n transform.invert = function (x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function () {\n return project;\n })();\n}\nexport function projectionMutator(projectAt) {\n var project,\n k = 150,\n // scale\n x = 480,\n y = 250,\n // translate\n lambda = 0,\n phi = 0,\n // center\n deltaLambda = 0,\n deltaPhi = 0,\n deltaGamma = 0,\n rotate,\n // pre-rotate\n alpha = 0,\n // post-rotate angle\n sx = 1,\n // reflectX\n sy = 1,\n // reflectX\n theta = null,\n preclip = clipAntimeridian,\n // pre-clip angle\n x0 = null,\n y0,\n x1,\n y1,\n postclip = identity,\n // post-clip extent\n delta2 = 0.5,\n // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function (_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function (_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function (_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function (_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function (_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function () {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}","import { degrees, pi, radians } from \"../math.js\";\nimport { projectionMutator } from \"./index.js\";\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function (_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}","import { abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt } from \"../math.js\";\nimport { conicProjection } from \"./conic.js\";\nimport { cylindricalEqualAreaRaw } from \"./cylindricalEqualArea.js\";\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0),\n n = (sy0 + sin(y1)) / 2; // Are the parallels symmetrical around the Equator?\n\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n var c = 1 + sy0 * (2 * n - sy0),\n r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function (x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0) l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\nexport default function () {\n return conicProjection(conicEqualAreaRaw).scale(155.424).center([0, 33.6442]);\n}","import { asin, cos, sin } from \"../math.js\";\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function (x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}","import conicEqualArea from \"./conicEqualArea.js\";\nexport default function () {\n return conicEqualArea().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-0.6, 38.7]);\n}","import { epsilon } from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\"; // The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\n\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function point(x, y) {\n var i = -1;\n\n while (++i < n) {\n streams[i].point(x, y);\n }\n },\n sphere: function sphere() {\n var i = -1;\n\n while (++i < n) {\n streams[i].sphere();\n }\n },\n lineStart: function lineStart() {\n var i = -1;\n\n while (++i < n) {\n streams[i].lineStart();\n }\n },\n lineEnd: function lineEnd() {\n var i = -1;\n\n while (++i < n) {\n streams[i].lineEnd();\n }\n },\n polygonStart: function polygonStart() {\n var i = -1;\n\n while (++i < n) {\n streams[i].polygonStart();\n }\n },\n polygonEnd: function polygonEnd() {\n var i = -1;\n\n while (++i < n) {\n streams[i].polygonEnd();\n }\n }\n };\n} // A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\n\n\nexport default function () {\n var cache,\n cacheStream,\n lower48 = albers(),\n lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),\n alaskaPoint,\n // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),\n hawaiiPoint,\n // ESRI:102007\n _point,\n pointStream = {\n point: function point(x, y) {\n _point = [x, y];\n }\n };\n\n function albersUsa(coordinates) {\n var x = coordinates[0],\n y = coordinates[1];\n return _point = null, (lower48Point.point(x, y), _point) || (alaskaPoint.point(x, y), _point) || (hawaiiPoint.point(x, y), _point);\n }\n\n albersUsa.invert = function (coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function (_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function (_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function (_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(),\n x = +_[0],\n y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]).stream(pointStream);\n alaskaPoint = alaska.translate([x - 0.307 * k, y + 0.201 * k]).clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n hawaiiPoint = hawaii.translate([x - 0.205 * k, y + 0.212 * k]).clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n return reset();\n };\n\n albersUsa.fitExtent = function (extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function (size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function (width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function (height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}","import { asin, atan2, cos, sin, sqrt } from \"../math.js\";\nexport function azimuthalRaw(scale) {\n return function (x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n if (k === Infinity) return [2, 0];\n return [k * cy * sin(x), k * sin(y)];\n };\n}\nexport function azimuthalInvert(angle) {\n return function (x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [atan2(x * sc, z * cc), asin(z && y * sc / z)];\n };\n}","import { asin, sqrt } from \"../math.js\";\nimport { azimuthalRaw, azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function (cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function (z) {\n return 2 * asin(z / 2);\n});\nexport default function () {\n return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180 - 1e-3);\n}","import { acos, sin } from \"../math.js\";\nimport { azimuthalRaw, azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport var azimuthalEquidistantRaw = azimuthalRaw(function (c) {\n return (c = acos(c)) && c / sin(c);\n});\nazimuthalEquidistantRaw.invert = azimuthalInvert(function (z) {\n return z;\n});\nexport default function () {\n return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180 - 1e-3);\n}","import { atan, exp, halfPi, log, pi, tan, tau } from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function (x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function () {\n return mercatorProjection(mercatorRaw).scale(961 / tau);\n}\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null,\n y0,\n x1,\n y1; // clip extent\n\n m.scale = function (_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function (_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function (_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function (_) {\n return arguments.length ? (_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}","import { abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan } from \"../math.js\";\nimport { conicProjection } from \"./conic.js\";\nimport { mercatorRaw } from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) {\n if (y < -halfPi + epsilon) y = -halfPi + epsilon;\n } else {\n if (y > halfPi - epsilon) y = halfPi - epsilon;\n }\n\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function (x, y) {\n var fy = f - y,\n r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0) l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\nexport default function () {\n return conicProjection(conicConformalRaw).scale(109.5).parallels([30, 30]);\n}","import projection from \"./index.js\";\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\nequirectangularRaw.invert = equirectangularRaw;\nexport default function () {\n return projection(equirectangularRaw).scale(152.63);\n}","import { abs, atan2, cos, epsilon, pi, sign, sin, sqrt } from \"../math.js\";\nimport { conicProjection } from \"./conic.js\";\nimport { equirectangularRaw } from \"./equirectangular.js\";\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y,\n nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function (x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0) l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\nexport default function () {\n return conicProjection(conicEquidistantRaw).scale(131.154).center([0, 13.9389]);\n}","import projection from \"./index.js\";\nimport { abs, asin, cos, epsilon2, sin, sqrt } from \"../math.js\";\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)),\n l2 = l * l,\n l6 = l2 * l2 * l2;\n return [lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))];\n}\n\nequalEarthRaw.invert = function (x, y) {\n var l = y,\n l2 = l * l,\n l6 = l2 * l2 * l2;\n\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n\n return [M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l), asin(sin(l) / M)];\n};\n\nexport default function () {\n return projection(equalEarthRaw).scale(177.158);\n}","import { atan, cos, sin } from \"../math.js\";\nimport { azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport function gnomonicRaw(x, y) {\n var cy = cos(y),\n k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\ngnomonicRaw.invert = azimuthalInvert(atan);\nexport default function () {\n return projection(gnomonicRaw).scale(144.049).clipAngle(60);\n}","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport { transformer } from \"../transform.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\";\nimport { cos, degrees, radians, sin } from \"../math.js\";\nexport default function () {\n var k = 1,\n tx = 0,\n ty = 0,\n sx = 1,\n sy = 1,\n // scale, translate and reflect\n alpha = 0,\n ca,\n sa,\n // angle\n x0 = null,\n y0,\n x1,\n y1,\n // clip extent\n kx = 1,\n ky = 1,\n transform = transformer({\n point: function point(x, y) {\n var p = projection([x, y]);\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection(p) {\n var x = p[0] * kx,\n y = p[1] * ky;\n\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n }\n\n return [x + tx, y + ty];\n }\n\n projection.invert = function (p) {\n var x = p[0] - tx,\n y = p[1] - ty;\n\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n\n return [x / kx, y / ky];\n };\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}","import projection from \"./index.js\";\nimport { abs, epsilon } from \"../math.js\";\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n return [lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))];\n}\n\nnaturalEarth1Raw.invert = function (x, y) {\n var phi = y,\n i = 25,\n delta;\n\n do {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n\n return [x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), phi];\n};\n\nexport default function () {\n return projection(naturalEarth1Raw).scale(175.295);\n}","import { asin, cos, epsilon, sin } from \"../math.js\";\nimport { azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\northographicRaw.invert = azimuthalInvert(asin);\nexport default function () {\n return projection(orthographicRaw).scale(249.5).clipAngle(90 + epsilon);\n}","import { atan, cos, sin } from \"../math.js\";\nimport { azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport function stereographicRaw(x, y) {\n var cy = cos(y),\n k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\nstereographicRaw.invert = azimuthalInvert(function (z) {\n return 2 * atan(z);\n});\nexport default function () {\n return projection(stereographicRaw).scale(250).clipAngle(142);\n}","import { atan, exp, halfPi, log, tan } from \"../math.js\";\nimport { mercatorProjection } from \"./mercator.js\";\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function (x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function () {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function (_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function (_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90]).scale(159.155);\n}","export default function (x) {\n return x;\n}","import identity from \"./identity.js\";\nexport default function (transform) {\n if (transform == null) return identity;\n var x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function (input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2,\n n = input.length,\n output = new Array(n);\n output[0] = (x0 += input[0]) * kx + dx;\n output[1] = (y0 += input[1]) * ky + dy;\n\n while (j < n) {\n output[j] = input[j], ++j;\n }\n\n return output;\n };\n}","import transform from \"./transform.js\";\nexport default function (topology) {\n var t = transform(topology.transform),\n key,\n x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = -x0;\n\n function bboxPoint(p) {\n p = t(p);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n\n function bboxGeometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(bboxGeometry);\n break;\n\n case \"Point\":\n bboxPoint(o.coordinates);\n break;\n\n case \"MultiPoint\":\n o.coordinates.forEach(bboxPoint);\n break;\n }\n }\n\n topology.arcs.forEach(function (arc) {\n var i = -1,\n n = arc.length,\n p;\n\n while (++i < n) {\n p = t(arc[i], i);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n });\n\n for (key in topology.objects) {\n bboxGeometry(topology.objects[key]);\n }\n\n return [x0, y0, x1, y1];\n}","import reverse from \"./reverse.js\";\nimport transform from \"./transform.js\";\nexport default function (topology, o) {\n if (typeof o === \"string\") o = topology.objects[o];\n return o.type === \"GeometryCollection\" ? {\n type: \"FeatureCollection\",\n features: o.geometries.map(function (o) {\n return feature(topology, o);\n })\n } : feature(topology, o);\n}\n\nfunction feature(topology, o) {\n var id = o.id,\n bbox = o.bbox,\n properties = o.properties == null ? {} : o.properties,\n geometry = object(topology, o);\n return id == null && bbox == null ? {\n type: \"Feature\",\n properties: properties,\n geometry: geometry\n } : bbox == null ? {\n type: \"Feature\",\n id: id,\n properties: properties,\n geometry: geometry\n } : {\n type: \"Feature\",\n id: id,\n bbox: bbox,\n properties: properties,\n geometry: geometry\n };\n}\n\nexport function object(topology, o) {\n var transformPoint = transform(topology.transform),\n arcs = topology.arcs;\n\n function arc(i, points) {\n if (points.length) points.pop();\n\n for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {\n points.push(transformPoint(a[k], k));\n }\n\n if (i < 0) reverse(points, n);\n }\n\n function point(p) {\n return transformPoint(p);\n }\n\n function line(arcs) {\n var points = [];\n\n for (var i = 0, n = arcs.length; i < n; ++i) {\n arc(arcs[i], points);\n }\n\n if (points.length < 2) points.push(points[0]); // This should never happen per the specification.\n\n return points;\n }\n\n function ring(arcs) {\n var points = line(arcs);\n\n while (points.length < 4) {\n points.push(points[0]);\n } // This may happen if an arc has only two points.\n\n\n return points;\n }\n\n function polygon(arcs) {\n return arcs.map(ring);\n }\n\n function geometry(o) {\n var type = o.type,\n coordinates;\n\n switch (type) {\n case \"GeometryCollection\":\n return {\n type: type,\n geometries: o.geometries.map(geometry)\n };\n\n case \"Point\":\n coordinates = point(o.coordinates);\n break;\n\n case \"MultiPoint\":\n coordinates = o.coordinates.map(point);\n break;\n\n case \"LineString\":\n coordinates = line(o.arcs);\n break;\n\n case \"MultiLineString\":\n coordinates = o.arcs.map(line);\n break;\n\n case \"Polygon\":\n coordinates = polygon(o.arcs);\n break;\n\n case \"MultiPolygon\":\n coordinates = o.arcs.map(polygon);\n break;\n\n default:\n return null;\n }\n\n return {\n type: type,\n coordinates: coordinates\n };\n }\n\n return geometry(o);\n}","export default function (array, n) {\n var t,\n j = array.length,\n i = j - n;\n\n while (i < --j) {\n t = array[i], array[i++] = array[j], array[j] = t;\n }\n}","export default function (topology, arcs) {\n var stitchedArcs = {},\n fragmentByStart = {},\n fragmentByEnd = {},\n fragments = [],\n emptyIndex = -1; // Stitch empty arcs first, since they may be subsumed by other arcs.\n\n arcs.forEach(function (i, j) {\n var arc = topology.arcs[i < 0 ? ~i : i],\n t;\n\n if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n }\n });\n arcs.forEach(function (i) {\n var e = ends(i),\n start = e[0],\n end = e[1],\n f,\n g;\n\n if (f = fragmentByEnd[start]) {\n delete fragmentByEnd[f.end];\n f.push(i);\n f.end = end;\n\n if (g = fragmentByStart[end]) {\n delete fragmentByStart[g.start];\n var fg = g === f ? f : f.concat(g);\n fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else if (f = fragmentByStart[end]) {\n delete fragmentByStart[f.start];\n f.unshift(i);\n f.start = start;\n\n if (g = fragmentByEnd[start]) {\n delete fragmentByEnd[g.end];\n var gf = g === f ? f : g.concat(f);\n fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else {\n f = [i];\n fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n }\n });\n\n function ends(i) {\n var arc = topology.arcs[i < 0 ? ~i : i],\n p0 = arc[0],\n p1;\n if (topology.transform) p1 = [0, 0], arc.forEach(function (dp) {\n p1[0] += dp[0], p1[1] += dp[1];\n });else p1 = arc[arc.length - 1];\n return i < 0 ? [p1, p0] : [p0, p1];\n }\n\n function flush(fragmentByEnd, fragmentByStart) {\n for (var k in fragmentByEnd) {\n var f = fragmentByEnd[k];\n delete fragmentByStart[f.start];\n delete f.start;\n delete f.end;\n f.forEach(function (i) {\n stitchedArcs[i < 0 ? ~i : i] = 1;\n });\n fragments.push(f);\n }\n }\n\n flush(fragmentByEnd, fragmentByStart);\n flush(fragmentByStart, fragmentByEnd);\n arcs.forEach(function (i) {\n if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]);\n });\n return fragments;\n}","import { object } from \"./feature.js\";\nimport stitch from \"./stitch.js\";\nexport default function (topology) {\n return object(topology, meshArcs.apply(this, arguments));\n}\nexport function meshArcs(topology, object, filter) {\n var arcs, i, n;\n if (arguments.length > 1) arcs = extractArcs(topology, object, filter);else for (i = 0, arcs = new Array(n = topology.arcs.length); i < n; ++i) {\n arcs[i] = i;\n }\n return {\n type: \"MultiLineString\",\n arcs: stitch(topology, arcs)\n };\n}\n\nfunction extractArcs(topology, object, filter) {\n var arcs = [],\n geomsByArc = [],\n geom;\n\n function extract0(i) {\n var j = i < 0 ? ~i : i;\n (geomsByArc[j] || (geomsByArc[j] = [])).push({\n i: i,\n g: geom\n });\n }\n\n function extract1(arcs) {\n arcs.forEach(extract0);\n }\n\n function extract2(arcs) {\n arcs.forEach(extract1);\n }\n\n function extract3(arcs) {\n arcs.forEach(extract2);\n }\n\n function geometry(o) {\n switch (geom = o, o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n\n case \"LineString\":\n extract1(o.arcs);\n break;\n\n case \"MultiLineString\":\n case \"Polygon\":\n extract2(o.arcs);\n break;\n\n case \"MultiPolygon\":\n extract3(o.arcs);\n break;\n }\n }\n\n geometry(object);\n geomsByArc.forEach(filter == null ? function (geoms) {\n arcs.push(geoms[0].i);\n } : function (geoms) {\n if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i);\n });\n return arcs;\n}","import { object } from \"./feature.js\";\nimport stitch from \"./stitch.js\";\n\nfunction planarRingArea(ring) {\n var i = -1,\n n = ring.length,\n a,\n b = ring[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b, b = ring[i], area += a[0] * b[1] - a[1] * b[0];\n }\n\n return Math.abs(area); // Note: doubled area!\n}\n\nexport default function (topology) {\n return object(topology, mergeArcs.apply(this, arguments));\n}\nexport function mergeArcs(topology, objects) {\n var polygonsByArc = {},\n polygons = [],\n groups = [];\n objects.forEach(geometry);\n\n function geometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n\n case \"Polygon\":\n extract(o.arcs);\n break;\n\n case \"MultiPolygon\":\n o.arcs.forEach(extract);\n break;\n }\n }\n\n function extract(polygon) {\n polygon.forEach(function (ring) {\n ring.forEach(function (arc) {\n (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);\n });\n });\n polygons.push(polygon);\n }\n\n function area(ring) {\n return planarRingArea(object(topology, {\n type: \"Polygon\",\n arcs: [ring]\n }).coordinates[0]);\n }\n\n polygons.forEach(function (polygon) {\n if (!polygon._) {\n var group = [],\n neighbors = [polygon];\n polygon._ = 1;\n groups.push(group);\n\n while (polygon = neighbors.pop()) {\n group.push(polygon);\n polygon.forEach(function (ring) {\n ring.forEach(function (arc) {\n polygonsByArc[arc < 0 ? ~arc : arc].forEach(function (polygon) {\n if (!polygon._) {\n polygon._ = 1;\n neighbors.push(polygon);\n }\n });\n });\n });\n }\n }\n });\n polygons.forEach(function (polygon) {\n delete polygon._;\n });\n return {\n type: \"MultiPolygon\",\n arcs: groups.map(function (polygons) {\n var arcs = [],\n n; // Extract the exterior (unique) arcs.\n\n polygons.forEach(function (polygon) {\n polygon.forEach(function (ring) {\n ring.forEach(function (arc) {\n if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {\n arcs.push(arc);\n }\n });\n });\n }); // Stitch the arcs into one or more rings.\n\n arcs = stitch(topology, arcs); // If more than one ring is returned,\n // at most one of these rings can be the exterior;\n // choose the one with the greatest absolute area.\n\n if ((n = arcs.length) > 1) {\n for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {\n if ((ki = area(arcs[i])) > k) {\n t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;\n }\n }\n }\n\n return arcs;\n }).filter(function (arcs) {\n return arcs.length > 0;\n })\n };\n}","export default function (a, x) {\n var lo = 0,\n hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (a[mid] < x) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n}","import bisect from \"./bisect.js\";\nexport default function (objects) {\n var indexesByArc = {},\n // arc index -> array of object indexes\n neighbors = objects.map(function () {\n return [];\n });\n\n function line(arcs, i) {\n arcs.forEach(function (a) {\n if (a < 0) a = ~a;\n var o = indexesByArc[a];\n if (o) o.push(i);else indexesByArc[a] = [i];\n });\n }\n\n function polygon(arcs, i) {\n arcs.forEach(function (arc) {\n line(arc, i);\n });\n }\n\n function geometry(o, i) {\n if (o.type === \"GeometryCollection\") o.geometries.forEach(function (o) {\n geometry(o, i);\n });else if (o.type in geometryType) geometryType[o.type](o.arcs, i);\n }\n\n var geometryType = {\n LineString: line,\n MultiLineString: polygon,\n Polygon: polygon,\n MultiPolygon: function MultiPolygon(arcs, i) {\n arcs.forEach(function (arc) {\n polygon(arc, i);\n });\n }\n };\n objects.forEach(geometry);\n\n for (var i in indexesByArc) {\n for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {\n for (var k = j + 1; k < m; ++k) {\n var ij = indexes[j],\n ik = indexes[k],\n n;\n if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik);\n if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij);\n }\n }\n }\n\n return neighbors;\n}","import identity from \"./identity.js\";\nexport default function (transform) {\n if (transform == null) return identity;\n var x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function (input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2,\n n = input.length,\n output = new Array(n),\n x1 = Math.round((input[0] - dx) / kx),\n y1 = Math.round((input[1] - dy) / ky);\n output[0] = x1 - x0, x0 = x1;\n output[1] = y1 - y0, y0 = y1;\n\n while (j < n) {\n output[j] = input[j], ++j;\n }\n\n return output;\n };\n}","import bbox from \"./bbox.js\";\nimport untransform from \"./untransform.js\";\nexport default function (topology, transform) {\n if (topology.transform) throw new Error(\"already quantized\");\n\n if (!transform || !transform.scale) {\n if (!((n = Math.floor(transform)) >= 2)) throw new Error(\"n must be ≥2\");\n box = topology.bbox || bbox(topology);\n var x0 = box[0],\n y0 = box[1],\n x1 = box[2],\n y1 = box[3],\n n;\n transform = {\n scale: [x1 - x0 ? (x1 - x0) / (n - 1) : 1, y1 - y0 ? (y1 - y0) / (n - 1) : 1],\n translate: [x0, y0]\n };\n } else {\n box = topology.bbox;\n }\n\n var t = untransform(transform),\n box,\n key,\n inputs = topology.objects,\n outputs = {};\n\n function quantizePoint(point) {\n return t(point);\n }\n\n function quantizeGeometry(input) {\n var output;\n\n switch (input.type) {\n case \"GeometryCollection\":\n output = {\n type: \"GeometryCollection\",\n geometries: input.geometries.map(quantizeGeometry)\n };\n break;\n\n case \"Point\":\n output = {\n type: \"Point\",\n coordinates: quantizePoint(input.coordinates)\n };\n break;\n\n case \"MultiPoint\":\n output = {\n type: \"MultiPoint\",\n coordinates: input.coordinates.map(quantizePoint)\n };\n break;\n\n default:\n return input;\n }\n\n if (input.id != null) output.id = input.id;\n if (input.bbox != null) output.bbox = input.bbox;\n if (input.properties != null) output.properties = input.properties;\n return output;\n }\n\n function quantizeArc(input) {\n var i = 0,\n j = 1,\n n = input.length,\n p,\n output = new Array(n); // pessimistic\n\n output[0] = t(input[0], 0);\n\n while (++i < n) {\n if ((p = t(input[i], i))[0] || p[1]) output[j++] = p;\n } // non-coincident points\n\n\n if (j === 1) output[j++] = [0, 0]; // an arc must have at least two points\n\n output.length = j;\n return output;\n }\n\n for (key in inputs) {\n outputs[key] = quantizeGeometry(inputs[key]);\n }\n\n return {\n type: \"Topology\",\n bbox: box,\n transform: transform,\n objects: outputs,\n arcs: topology.arcs.map(quantizeArc)\n };\n}","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.15.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","import React, { useState } from \"react\"\nimport Image from \"../components/image\"\nimport menuData from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Link } from \"gatsby\"\nimport VisibilitySensor from \"react-visibility-sensor\"\n\nexport default function ReadNext({ sectionID, pageID }) {\n const [loaded, setLoaded] = useState(false)\n const onChange = isVisible => {\n isVisible ? setLoaded(true) : setLoaded(false)\n }\n\n const menu = findObject(menuData, \"id\", sectionID)\n const content =\n menu && pageID ? findObject(menu.children, \"id\", pageID) : menu\n\n return (\n
\n \n \n
Read Next
\n
\n {content.thumbnail && (\n \n )}\n
\n

{content.name}

\n {content.deck && (\n

{content.deck}

\n )}\n
\n
\n \n \n
\n )\n}\n","// https://usehooks.com/useWindowSize/\nimport { useState, useEffect } from \"react\"\n\nexport const useWindowSize = () => {\n const [windowSize, setWindowSize] = useState({\n width: undefined,\n height: undefined,\n })\n const handleResize = () => {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n\n useEffect(() => {\n handleResize()\n window.addEventListener(\"resize\", handleResize)\n return () => window.removeEventListener(\"resize\", handleResize)\n }, [])\n\n return windowSize\n}\n","export default function noop() {}","import noop from \"../noop.js\";\nexport default function () {\n var lines = [],\n line;\n return {\n point: function point(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function lineStart() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function rejoin() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function result() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}","import { abs, epsilon } from \"./math.js\";\nexport default function (a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}","import pointEqual from \"../pointEqual.js\";\nimport { epsilon } from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n\n this.e = entry; // is an entry?\n\n this.v = false; // visited\n\n this.n = this.p = null; // next & previous\n} // A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\n\n\nexport default function (segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n segments.forEach(function (segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n,\n p0 = segment[0],\n p1 = segment[n],\n x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n\n for (i = 0; i < n; ++i) {\n stream.point((p0 = segment[i])[0], p0[1]);\n }\n\n stream.lineEnd();\n return;\n } // handle degenerate cases by moving the point\n\n\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n\n while (current.v) {\n if ((current = current.n) === start) return;\n }\n\n points = current.z;\n stream.lineStart();\n\n do {\n current.v = current.o.v = true;\n\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n\n for (i = points.length - 1; i >= 0; --i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n\n current = current.p;\n }\n\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n\n a.n = b = array[0];\n b.p = a;\n}","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\nexport default function () {\n return new Adder();\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function reset() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function add(y) {\n _add(temp, y, this.t);\n\n _add(this, temp.s, this.s);\n\n if (this.s) this.t += temp.t;else this.s = temp.t;\n },\n valueOf: function valueOf() {\n return this.s;\n }\n};\nvar temp = new Adder();\n\nfunction _add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = a - av + (b - bv);\n}","import { asin, atan2, cos, sin, sqrt } from \"./math.js\";\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\nexport function cartesian(spherical) {\n var lambda = spherical[0],\n phi = spherical[1],\n cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n} // TODO return a\n\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n} // TODO return d\n\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}","import adder from \"./adder.js\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace } from \"./cartesian.js\";\nimport { abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau } from \"./math.js\";\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi) return point[0];else return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function (polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n sum.reset();\n if (sinPhi === 1) phi = halfPi + epsilon;else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta; // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n } // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ winding & 1;\n}","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","var array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","export default function (arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) {\n j += arrays[i].length;\n }\n\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport { epsilon, halfPi } from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport { merge } from \"d3-array\";\nexport default function (pointVisible, clipLine, interpolate, start) {\n return function (sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function polygonEnd() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function sphere() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i,\n n = ringSegments.length,\n m,\n segment,\n point;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return; // No intersections.\n\n if (clean & 1) {\n segment = ringSegments[0];\n\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n\n for (i = 0; i < m; ++i) {\n sink.point((point = segment[i])[0], point[1]);\n }\n\n sink.lineEnd();\n }\n\n return;\n } // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n\n\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n} // Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\n\n\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}","import clip from \"./index.js\";\nimport { abs, atan, cos, epsilon, halfPi, pi, sin } from \"../math.js\";\nexport default clip(function () {\n return true;\n}, clipAntimeridianLine, clipAntimeridianInterpolate, [-pi, -halfPi]); // Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\n\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n stream.lineStart();\n _clean = 1;\n },\n point: function point(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n\n if (abs(delta - pi) < epsilon) {\n // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n _clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n _clean = 0;\n }\n\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function lineEnd() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function clean() {\n return 2 - _clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1) - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0)) / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}","import { cartesian, cartesianNormalizeInPlace, spherical } from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport { acos, cos, degrees, epsilon, radians, sin, tau } from \"./math.js\";\nimport { rotateRadians } from \"./rotation.js\"; // Generates a circle centered at [0°, 0°], with a given radius and precision.\n\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n} // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\n\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function () {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {\n point: point\n };\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {\n type: \"Polygon\",\n coordinates: [ring]\n };\n ring = rotate = null;\n return c;\n }\n\n circle.center = function (_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function (_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function (_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}","import { cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical } from \"../cartesian.js\";\nimport { circleStream } from \"../circle.js\";\nimport { abs, cos, epsilon, pi, radians, sqrt } from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\nexport default function (radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n } // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n\n\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n v00 = v0 = false;\n _clean = 1;\n },\n point: function point(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius ? v ? 0 : code(lambda, phi) : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) point1[2] = 1;\n }\n\n if (v !== v0) {\n _clean = 0;\n\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t; // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n _clean = 0;\n\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function lineEnd() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function clean() {\n return _clean | (v00 && v0) << 1;\n }\n };\n } // Intersects the great circle between a and b with the clip circle.\n\n\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b); // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n\n var n1 = [1, 0, 0],\n // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0],\n // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2; // Two polar points.\n\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B); // Solve |p(t)|^2 = 1.\n\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n if (!two) return q; // Two intersection points.\n\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; // Check that the first point is between a and b.\n\n if (meridian ? polar ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1) : phi0 <= q[1] && q[1] <= phi1 : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n } // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n\n\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}","import { abs, epsilon } from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport { merge } from \"d3-array\";\nvar clipMax = 1e9,\n clipMin = -clipMax; // TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0,\n a1 = 0;\n\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoint(from, to) < 0 ^ direction > 0) {\n do {\n stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n\n return function (stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__,\n y__,\n v__,\n // first point\n x_,\n y_,\n v_,\n // previous point\n first,\n clean;\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n\n if (a1 <= y1) {\n if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding;\n } else {\n if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding;\n }\n }\n }\n\n return winding;\n } // Buffer geometry within a polygon and then clip it en masse.\n\n\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n\n if (cleanInside || visible) {\n stream.polygonStart();\n\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n\n stream.polygonEnd();\n }\n\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n } // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n\n\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}","export default function (a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}","export default function (a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function (x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n}","export default function (x) {\n return x;\n}","import compose from \"./compose.js\";\nimport { abs, asin, atan2, cos, degrees, pi, radians, sin, tau } from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function (lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), asin(k * cosDeltaGamma + y * sinDeltaGamma)];\n }\n\n rotation.invert = function (lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), asin(k * cosDeltaPhi - x * sinDeltaPhi)];\n };\n\n return rotation;\n}\n\nexport default function (rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function (coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}","export default function (methods) {\n return {\n stream: transformer(methods)\n };\n}\nexport function transformer(methods) {\n return function (stream) {\n var s = new TransformStream();\n\n for (var key in methods) {\n s[key] = methods[key];\n }\n\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function point(x, y) {\n this.stream.point(x, y);\n },\n sphere: function sphere() {\n this.stream.sphere();\n },\n lineStart: function lineStart() {\n this.stream.lineStart();\n },\n lineEnd: function lineEnd() {\n this.stream.lineEnd();\n },\n polygonStart: function polygonStart() {\n this.stream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n this.stream.polygonEnd();\n }\n};","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function Feature(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function FeatureCollection(object, stream) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n streamGeometry(features[i].geometry, stream);\n }\n }\n};\nvar streamGeometryType = {\n Sphere: function Sphere(object, stream) {\n stream.sphere();\n },\n Point: function Point(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function MultiPoint(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n object = coordinates[i], stream.point(object[0], object[1], object[2]);\n }\n },\n LineString: function LineString(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function MultiLineString(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 0);\n }\n },\n Polygon: function Polygon(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function MultiPolygon(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamPolygon(coordinates[i], stream);\n }\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n streamGeometry(geometries[i], stream);\n }\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n\n while (++i < n) {\n coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n }\n\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 1);\n }\n\n stream.polygonEnd();\n}\n\nexport default function (object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}","import noop from \"../noop.js\";\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function result() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;","import { default as geoStream } from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function (b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\nexport function fitWidth(projection, width, object) {\n return fit(projection, function (b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\nexport function fitHeight(projection, height, object) {\n return fit(projection, function (b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}","import { cartesian } from \"../cartesian.js\";\nimport { abs, asin, atan2, cos, epsilon, radians, sqrt } from \"../math.js\";\nimport { transformer } from \"../transform.js\";\nvar maxDepth = 16,\n // maximum depth of subdivision\ncosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function (project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function point(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n\n return function (stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function polygonEnd() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]),\n p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport { cos, degrees, radians, sin, sqrt } from \"../math.js\";\nimport { rotateRadians } from \"../rotation.js\";\nimport { transformer } from \"../transform.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\";\nimport resample from \"./resample.js\";\nvar transformRadians = transformer({\n point: function point(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function point(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [dx + k * x, dy - k * y];\n }\n\n transform.invert = function (x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n\n transform.invert = function (x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function () {\n return project;\n })();\n}\nexport function projectionMutator(projectAt) {\n var project,\n k = 150,\n // scale\n x = 480,\n y = 250,\n // translate\n lambda = 0,\n phi = 0,\n // center\n deltaLambda = 0,\n deltaPhi = 0,\n deltaGamma = 0,\n rotate,\n // pre-rotate\n alpha = 0,\n // post-rotate angle\n sx = 1,\n // reflectX\n sy = 1,\n // reflectX\n theta = null,\n preclip = clipAntimeridian,\n // pre-clip angle\n x0 = null,\n y0,\n x1,\n y1,\n postclip = identity,\n // post-clip extent\n delta2 = 0.5,\n // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function (_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function (_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function (_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function (_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function (_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function () {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}","export var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var ceil = Math.ceil;\nexport var cos = Math.cos;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var pow = Math.pow;\nexport var round = Math.round;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sin = Math.sin;\nexport var tan = Math.tan;\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var sqrt1_2 = Math.SQRT1_2;\nexport var sqrt2 = sqrt(2);\nexport var sqrtPi = sqrt(pi);\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function sqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n}\nexport function tanh(x) {\n x = exp(2 * x);\n return (x - 1) / (x + 1);\n}\nexport function sinh(x) {\n return (exp(x) - exp(-x)) / 2;\n}\nexport function cosh(x) {\n return (exp(x) + exp(-x)) / 2;\n}\nexport function arsinh(x) {\n return log(x + sqrt(x * x + 1));\n}\nexport function arcosh(x) {\n return log(x + sqrt(x * x - 1));\n}","import { geoProjection as projection } from \"d3-geo\";\nimport { atan, exp, log, quarterPi, pi, tan } from \"./math.js\";\nexport function millerRaw(lambda, phi) {\n return [lambda, 1.25 * log(tan(quarterPi + 0.4 * phi))];\n}\n\nmillerRaw.invert = function (x, y) {\n return [x, 2.5 * atan(exp(0.8 * y)) - 0.625 * pi];\n};\n\nexport default function () {\n return projection(millerRaw).scale(108.318);\n}","import React from \"react\"\nimport lendingMapData from \"../data/lending-map-data.json\"\nimport { getColors } from \"./lending-map\"\nimport findObject from \"../helpers/find-object\"\n\n// Creates an svg element that contains all patterns required for the lending map\nfunction LendingMapPatterns() {\n var patterns = [] // Initialize patterns array\n\n // Iterate through the countries that have agreements\n lendingMapData.forEach(dataItem => {\n if (dataItem.agreements.length > 1) {\n // Get the color names and values that apply to the data item\n var { colorNames, colorValues } = getColors(dataItem)\n\n let patternID = `pattern-stripe-${colorNames.sort().join(\"-\")}`, // Sort colorNames to ensure predictable ids to check against\n patternExists = findObject(patterns, \"id\", patternID) // Check if the pattern id already exists\n\n // Ignore duplicate patterns\n if (patternExists) {\n return\n }\n\n // Push new patterns to array\n patterns.push({\n id: patternID,\n colors: colorValues,\n })\n }\n })\n\n return (\n \n \n {patterns.map(pattern => {\n return (\n \n )\n })}\n \n \n )\n}\n\n// Creates a single pattern for the LendingMapPatterns() svg\nfunction LendingMapPattern({ id, colors }) {\n const stopsNumber = colors.length,\n patternScale = \"2.5\", // px value relative to base SVG size\n patternSize = `${colors.length * patternScale}px`\n\n var stops = [] // Initialize stops array\n\n // Iterate through the colors\n colors.forEach((color, index) => {\n // Push data to stops array\n // Due to linearGradient behavior, must push a 0% offset stop before each desired stop\n stops.push(\n {\n offset: \"0%\",\n color: color,\n },\n {\n offset: `${((index + 1) / stopsNumber) * 100}%`,\n color: color,\n }\n )\n })\n\n return (\n \n {stops.map((stop, index) => {\n return (\n \n )\n })}\n \n )\n}\n\nexport default LendingMapPatterns\n","// Adds commas to every thousands place of a number string\n// H/T for regex https://blog.abelotech.com/posts/number-currency-formatting-javascript/\nfunction addCommas(numberString) {\n return numberString.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")\n}\n\n// Returns a number string with commas for every thousands place\n// Example: formatNumber(1000.1) returns '1,000.1'\nfunction formatNumber(number) {\n number = number.toString()\n\n if (number.includes(\".\")) {\n let split = number.split(\".\")\n\n split[0] = addCommas(split[0])\n\n return split.join(\".\")\n }\n\n return addCommas(number)\n}\n\n// Returns a number converted to a given value\n// Example: roundNumber(1999985000, 'millions') returns '1999.985'\n// Structure H/T https://www.react-simple-maps.io/examples/map-chart-with-tooltip/\nfunction convertNumber(number, convertTo) {\n if (convertTo === \"trillions\") {\n number = number / 1000000000000\n } else if (convertTo === \"billions\") {\n number = number / 1000000000\n } else if (convertTo === \"millions\") {\n number = number / 1000000\n } else if (convertTo === \"thousands\") {\n number = number / 1000\n }\n\n return number\n}\n\n// Returns a formatted number string rounded to a given value, adding as many decimals as specified\n// Example: roundNumber(1999985000, 'millions', 2) returns '1,999.99'\nfunction roundNumber(number, convertTo, decimals = 0) {\n number = convertNumber(number, convertTo)\n\n if (decimals === \"all\") {\n return formatNumber(number)\n }\n\n // Decimals rounding H/T https://www.jacklmoore.com/notes/rounding-in-javascript/\n return formatNumber(\n Number(Math.round(number + \"e\" + decimals) + \"e-\" + decimals)\n )\n}\n\nexport { roundNumber }\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://material-ui.com/production-error/?code=' + code;\n\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","export default function formControlState(_ref) {\n var props = _ref.props,\n states = _ref.states,\n muiFormControl = _ref.muiFormControl;\n return states.reduce(function (acc, state) {\n acc[state] = props[state];\n\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n\n return acc;\n }, {});\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar FormControlContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\n\nexport function useFormControl() {\n return React.useContext(FormControlContext);\n}\nexport default FormControlContext;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\nexport default isBrowser;","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\n return self;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nvar plainObjectConstrurctor = {}.constructor;\n\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n/**\n * Create a rule instance.\n */\n\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += '\\n';\n result += indentStr(prop + \": \" + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += '\\n';\n result += indentStr(_prop + \": \" + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += '\\n';\n result += indentStr(_prop2 + \": \" + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\\n\" + result + \"\\n\";\n return indentStr(selector + \" {\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\n\nvar escape = function escape(str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n};\n\nvar BaseStyleRule = /*#__PURE__*/function () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.key = void 0;\n this.isProcessed = false;\n this.style = void 0;\n this.renderer = void 0;\n this.renderable = void 0;\n this.options = void 0;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = (name in this.style); // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\n\nvar StyleRule = /*#__PURE__*/function (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n _this.selectorText = void 0;\n _this.id = void 0;\n _this.renderable = void 0;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n /**\n * Apply rule to an element inline.\n */\n\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\n\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(name, style, options) {\n if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(name, style, options);\n }\n};\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule = /*#__PURE__*/function () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.at = void 0;\n this.key = void 0;\n this.query = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\\n\" + children + \"\\n}\" : '';\n };\n\n return ConditionalRule;\n}();\n\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule = /*#__PURE__*/function () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.key = void 0;\n this.name = void 0;\n this.id = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\\n\" + children + \"\\n\";\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\n\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar plugin = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule = /*#__PURE__*/function (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n var _this;\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 = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n _this.renderable = void 0;\n return _this;\n }\n\n var _proto = KeyframeRule.prototype;\n /**\n * Generates a CSS string.\n */\n\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\n\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule = /*#__PURE__*/function () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\n\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule = /*#__PURE__*/function () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\n\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule = /*#__PURE__*/function () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.key = void 0;\n this.value = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\n\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\nvar plugins = [pluginStyleRule, pluginConditionalRule, plugin, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList = /*#__PURE__*/function () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var styleRule = rule;\n var style = styleRule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n for (var prop in styleRule.style) {\n var nextValue = styleRule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n styleRule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = styleRule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n styleRule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += '\\n';\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(styles, options) {\n this.options = void 0;\n this.deployed = void 0;\n this.attached = void 0;\n this.rules = void 0;\n this.renderer = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.queue = void 0;\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry = /*#__PURE__*/function () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = void 0;\n }\n\n var _proto = PluginsRegistry.prototype;\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n // $FlowFixMe[prop-missing]\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n/**\n * Sheets registry to access them all at one place.\n */\n\n\nvar SheetsRegistry = /*#__PURE__*/function () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n /**\n * Register a Style Sheet.\n */\n\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += '\\n';\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\n\nvar registry = new SheetsRegistry();\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\n\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n/**\n * Cache the value from the first time a function is called.\n */\n\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry$1 = registry.registry;\n\n if (registry$1.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry$1, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry$1, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n var c = container;\n c.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n var _c = container;\n\n _c.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer = /*#__PURE__*/function () {\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.element = void 0;\n this.sheet = void 0;\n this.hasInsertedRules = false;\n this.cssRules = []; // There is no sheet when the renderer is used from a standalone StyleRule.\n\n if (sheet) registry.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules[index] = cssRule;\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss = /*#__PURE__*/function () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.7.1\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = registry.index === 0 ? 0 : registry.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n registry.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n } // Enable rule without name for inline styles.\n\n\n if (typeof name === 'object') {\n // $FlowFixMe[incompatible-call]\n return this.createRule(undefined, name, style);\n } // $FlowFixMe[incompatible-type]\n\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n var rule = createRule(name, style, ruleOptions);\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n/**\n * Extracts a styles object with only props that contain function values.\n */\n\n\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\n\n\nvar SheetsManager = /*#__PURE__*/function () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\n\n\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n/**\n * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\n\nvar jss = create();\nexport default jss;\nexport { RuleList, SheetsManager, SheetsRegistry, create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, registry as sheets, toCssValue };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = _extends({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n } // $FlowFixMe[prop-missing]\n\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule; // $FlowFixMe[prop-missing]\n\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n } // $FlowFixMe[prop-missing]\n\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule = /*#__PURE__*/function () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.rules = void 0;\n this.options = void 0;\n this.key = void 0;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString() {\n return this.rules.toString();\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule = /*#__PURE__*/function () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.options = void 0;\n this.rule = void 0;\n this.isProcessed = false;\n this.key = void 0;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1 // $FlowFixMe[prop-missing]\n\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","import hyphenate from 'hyphenate-style-name';\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;","import { hasCSSTOMSupport } from 'jss';\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n *\n * @type object\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var _key in obj) {\n newObj[_key] = obj[_key];\n newObj[_key.replace(regExp, replace)] = obj[_key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray'; // Export javascript style and css style vendor prefixes.\n\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n} // https://caniuse.com/#search=appearance\n\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n}; // https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n} // but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n}; // https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n}; // https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n}; // See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n}; // Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n}; // https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n}; // plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n } // For server-side rendering.\n\n\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = React.useContext(StylesContext);\n\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n}","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = _extends({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n\n return classes;\n };\n\n return useStyles;\n}","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\"; // Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\n\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\n\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://material-ui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8; // Already transformed.\n\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\"; // Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\n\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\"; // It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\n\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // eslint-disable-next-line consistent-this\n\n\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport deprecatedPropType from '../utils/deprecatedPropType';\n\nfunction getStyleValue(computedStyle, property) {\n return parseInt(computedStyle[property], 10) || 0;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar styles = {\n /* Styles applied to the shadow textarea element. */\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nvar TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, ref) {\n var onChange = props.onChange,\n rows = props.rows,\n rowsMax = props.rowsMax,\n rowsMinProp = props.rowsMin,\n maxRowsProp = props.maxRows,\n _props$minRows = props.minRows,\n minRowsProp = _props$minRows === void 0 ? 1 : _props$minRows,\n style = props.style,\n value = props.value,\n other = _objectWithoutProperties(props, [\"onChange\", \"rows\", \"rowsMax\", \"rowsMin\", \"maxRows\", \"minRows\", \"style\", \"value\"]);\n\n var maxRows = maxRowsProp || rowsMax;\n var minRows = rows || rowsMinProp || minRowsProp;\n\n var _React$useRef = React.useRef(value != null),\n isControlled = _React$useRef.current;\n\n var inputRef = React.useRef(null);\n var handleRef = useForkRef(ref, inputRef);\n var shadowRef = React.useRef(null);\n var renders = React.useRef(0);\n\n var _React$useState = React.useState({}),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var syncHeight = React.useCallback(function () {\n var input = inputRef.current;\n var computedStyle = window.getComputedStyle(input);\n var inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n\n var boxSizing = computedStyle['box-sizing'];\n var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');\n var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content\n\n var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row\n\n inputShallow.value = 'x';\n var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content\n\n var outerHeight = innerHeight;\n\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n\n outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n var overflow = Math.abs(outerHeight - innerHeight) <= 1;\n setState(function (prevState) {\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow: overflow,\n outerHeightStyle: outerHeightStyle\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (renders.current === 20) {\n console.error(['Material-UI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n }\n }\n\n return prevState;\n });\n }, [maxRows, minRows, props.placeholder]);\n React.useEffect(function () {\n var handleResize = debounce(function () {\n renders.current = 0;\n syncHeight();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [syncHeight]);\n useEnhancedEffect(function () {\n syncHeight();\n });\n React.useEffect(function () {\n renders.current = 0;\n }, [value]);\n\n var handleChange = function handleChange(event) {\n renders.current = 0;\n\n if (!isControlled) {\n syncHeight();\n }\n\n if (onChange) {\n onChange(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: _extends({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? 'hidden' : null\n }, style)\n }, other)), /*#__PURE__*/React.createElement(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default TextareaAutosize;","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\n\nexport function isFilled(obj) {\n var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\n\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport formControlState from '../FormControl/formControlState';\nimport FormControlContext, { useFormControl } from '../FormControl/FormControlContext';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport TextareaAutosize from '../TextareaAutosize';\nimport { isFilled } from './utils';\nexport var styles = function styles(theme) {\n var light = theme.palette.type === 'light';\n var placeholder = {\n color: 'currentColor',\n opacity: light ? 0.42 : 0.5,\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n };\n var placeholderHidden = {\n opacity: '0 !important'\n };\n var placeholderVisible = {\n opacity: light ? 0.42 : 0.5\n };\n return {\n '@global': {\n '@keyframes mui-auto-fill': {},\n '@keyframes mui-auto-fill-cancel': {}\n },\n\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body1, {\n color: theme.palette.text.primary,\n lineHeight: '1.1876em',\n // Reset (19px), match the native input line-height\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n '&$disabled': {\n color: theme.palette.text.disabled,\n cursor: 'default'\n }\n }),\n\n /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n formControl: {},\n\n /* Styles applied to the root element if the component is focused. */\n focused: {},\n\n /* Styles applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `startAdornment` is provided. */\n adornedStart: {},\n\n /* Styles applied to the root element if `endAdornment` is provided. */\n adornedEnd: {},\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n marginDense: {},\n\n /* Styles applied to the root element if `multiline={true}`. */\n multiline: {\n padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n '&$marginDense': {\n paddingTop: 4 - 1\n }\n },\n\n /* Styles applied to the root element if the color is secondary. */\n colorSecondary: {},\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n },\n\n /* Styles applied to the `input` element. */\n input: {\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.1876em',\n // Reset (19px), match the native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n // Fix IE 11 width issue\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholder,\n // IE 11\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n '-webkit-appearance': 'none'\n },\n // Show and hide the placeholder logic\n 'label[data-shrink=false] + $formControl &': {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholderHidden,\n // IE 11\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus:-ms-input-placeholder': placeholderVisible,\n // IE 11\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n\n },\n '&$disabled': {\n opacity: 1 // Reset iOS opacity\n\n },\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n },\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n inputMarginDense: {\n paddingTop: 4 - 1\n },\n\n /* Styles applied to the `input` element if `multiline={true}`. */\n inputMultiline: {\n height: 'auto',\n resize: 'none',\n padding: 0\n },\n\n /* Styles applied to the `input` element if `type=\"search\"`. */\n inputTypeSearch: {\n // Improve type search style.\n '-moz-appearance': 'textfield',\n '-webkit-appearance': 'textfield'\n },\n\n /* Styles applied to the `input` element if `startAdornment` is provided. */\n inputAdornedStart: {},\n\n /* Styles applied to the `input` element if `endAdornment` is provided. */\n inputAdornedEnd: {},\n\n /* Styles applied to the `input` element if `hiddenLabel={true}`. */\n inputHiddenLabel: {}\n };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\n\nvar InputBase = /*#__PURE__*/React.forwardRef(function InputBase(props, ref) {\n var ariaDescribedby = props['aria-describedby'],\n autoComplete = props.autoComplete,\n autoFocus = props.autoFocus,\n classes = props.classes,\n className = props.className,\n color = props.color,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n endAdornment = props.endAdornment,\n error = props.error,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n id = props.id,\n _props$inputComponent = props.inputComponent,\n inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n _props$inputProps = props.inputProps,\n inputPropsProp = _props$inputProps === void 0 ? {} : _props$inputProps,\n inputRefProp = props.inputRef,\n margin = props.margin,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n name = props.name,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n placeholder = props.placeholder,\n readOnly = props.readOnly,\n renderSuffix = props.renderSuffix,\n rows = props.rows,\n rowsMax = props.rowsMax,\n rowsMin = props.rowsMin,\n maxRows = props.maxRows,\n minRows = props.minRows,\n startAdornment = props.startAdornment,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n valueProp = props.value,\n other = _objectWithoutProperties(props, [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"classes\", \"className\", \"color\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"rowsMax\", \"rowsMin\", \"maxRows\", \"minRows\", \"startAdornment\", \"type\", \"value\"]);\n\n var value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n\n var _React$useRef = React.useRef(value != null),\n isControlled = _React$useRef.current;\n\n var inputRef = React.useRef();\n var handleInputRefWarning = React.useCallback(function (instance) {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['Material-UI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `inputRef` prop.', 'Make sure the `inputRef` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n var handleInputPropsRefProp = useForkRef(inputPropsProp.ref, handleInputRefWarning);\n var handleInputRefProp = useForkRef(inputRefProp, handleInputPropsRefProp);\n var handleInputRef = useForkRef(inputRef, handleInputRefProp);\n\n var _React$useState = React.useState(false),\n focused = _React$useState[0],\n setFocused = _React$useState[1];\n\n var muiFormControl = useFormControl();\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(function () {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n\n return undefined;\n }, [muiFormControl]);\n }\n\n var fcs = formControlState({\n props: props,\n muiFormControl: muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'margin', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused; // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n\n React.useEffect(function () {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n var onFilled = muiFormControl && muiFormControl.onFilled;\n var onEmpty = muiFormControl && muiFormControl.onEmpty;\n var checkDirty = React.useCallback(function (obj) {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(function () {\n if (isControlled) {\n checkDirty({\n value: value\n });\n }\n }, [value, checkDirty, isControlled]);\n\n var handleFocus = function handleFocus(event) {\n // Fix a bug with IE 11 where the focus/blur events are triggered\n // while the input is disabled.\n if (fcs.disabled) {\n event.stopPropagation();\n return;\n }\n\n if (onFocus) {\n onFocus(event);\n }\n\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n\n var handleBlur = function handleBlur(event) {\n if (onBlur) {\n onBlur(event);\n }\n\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n\n var handleChange = function handleChange(event) {\n if (!isControlled) {\n var element = event.target || inputRef.current;\n\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://material-ui.com/r/input-component-ref-interface for more info.\" : _formatMuiErrorMessage(1));\n }\n\n checkDirty({\n value: element.value\n });\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange.apply(inputPropsProp, [event].concat(args));\n } // Perform in the willUpdate\n\n\n if (onChange) {\n onChange.apply(void 0, [event].concat(args));\n }\n }; // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n\n\n React.useEffect(function () {\n checkDirty(inputRef.current);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n var handleClick = function handleClick(event) {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n var InputComponent = inputComponent;\n\n var inputProps = _extends({}, inputPropsProp, {\n ref: handleInputRef\n });\n\n if (typeof InputComponent !== 'string') {\n inputProps = _extends({\n // Rename ref to inputRef as we don't know the\n // provided `inputComponent` structure.\n inputRef: handleInputRef,\n type: type\n }, inputProps, {\n ref: null\n });\n } else if (multiline) {\n if (rows && !maxRows && !minRows && !rowsMax && !rowsMin) {\n InputComponent = 'textarea';\n } else {\n inputProps = _extends({\n minRows: rows || minRows,\n rowsMax: rowsMax,\n maxRows: maxRows\n }, inputProps);\n InputComponent = TextareaAutosize;\n }\n } else {\n inputProps = _extends({\n type: type\n }, inputProps);\n }\n\n var handleAutoFill = function handleAutoFill(event) {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n\n React.useEffect(function () {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, classes[\"color\".concat(capitalize(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fullWidth && classes.fullWidth, fcs.focused && classes.focused, muiFormControl && classes.formControl, multiline && classes.multiline, startAdornment && classes.adornedStart, endAdornment && classes.adornedEnd, fcs.margin === 'dense' && classes.marginDense),\n onClick: handleClick,\n ref: ref\n }, other), startAdornment, /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(InputComponent, _extends({\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n }, inputProps, {\n className: clsx(classes.input, inputPropsProp.className, fcs.disabled && classes.disabled, multiline && classes.inputMultiline, fcs.hiddenLabel && classes.inputHiddenLabel, startAdornment && classes.inputAdornedStart, endAdornment && classes.inputAdornedEnd, type === 'search' && classes.inputTypeSearch, fcs.margin === 'dense' && classes.inputMarginDense),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n }))), endAdornment, renderSuffix ? renderSuffix(_extends({}, fcs, {\n startAdornment: startAdornment\n })) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiInputBase'\n})(InputBase);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport InputBase from '../InputBase';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var light = theme.palette.type === 'light';\n var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative'\n },\n\n /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n formControl: {\n 'label + &': {\n marginTop: 16\n }\n },\n\n /* Styles applied to the root element if the component is focused. */\n focused: {},\n\n /* Styles applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if color secondary. */\n colorSecondary: {\n '&$underline:after': {\n borderBottomColor: theme.palette.secondary.main\n }\n },\n\n /* Styles applied to the root element if `disableUnderline={false}`. */\n underline: {\n '&:after': {\n borderBottom: \"2px solid \".concat(theme.palette.primary.main),\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n '&$focused:after': {\n transform: 'scaleX(1)'\n },\n '&$error:after': {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)' // error is always underlined in red\n\n },\n '&:before': {\n borderBottom: \"1px solid \".concat(bottomLineColor),\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n '&:hover:not($disabled):before': {\n borderBottom: \"2px solid \".concat(theme.palette.text.primary),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: \"1px solid \".concat(bottomLineColor)\n }\n },\n '&$disabled:before': {\n borderBottomStyle: 'dotted'\n }\n },\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n marginDense: {},\n\n /* Styles applied to the root element if `multiline={true}`. */\n multiline: {},\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {},\n\n /* Styles applied to the `input` element. */\n input: {},\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n inputMarginDense: {},\n\n /* Styles applied to the `input` element if `multiline={true}`. */\n inputMultiline: {},\n\n /* Styles applied to the `input` element if `type=\"search\"`. */\n inputTypeSearch: {}\n };\n};\nvar Input = /*#__PURE__*/React.forwardRef(function Input(props, ref) {\n var disableUnderline = props.disableUnderline,\n classes = props.classes,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$inputComponent = props.inputComponent,\n inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n other = _objectWithoutProperties(props, [\"disableUnderline\", \"classes\", \"fullWidth\", \"inputComponent\", \"multiline\", \"type\"]);\n\n return /*#__PURE__*/React.createElement(InputBase, _extends({\n classes: _extends({}, classes, {\n root: clsx(classes.root, !disableUnderline && classes.underline),\n underline: null\n }),\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nInput.muiName = 'Input';\nexport default withStyles(styles, {\n name: 'MuiInput'\n})(Input);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport InputBase from '../InputBase';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var light = theme.palette.type === 'light';\n var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n var backgroundColor = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)';\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative',\n backgroundColor: backgroundColor,\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n '&:hover': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.13)' : 'rgba(255, 255, 255, 0.13)',\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: backgroundColor\n }\n },\n '&$focused': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)'\n },\n '&$disabled': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)'\n }\n },\n\n /* Styles applied to the root element if color secondary. */\n colorSecondary: {\n '&$underline:after': {\n borderBottomColor: theme.palette.secondary.main\n }\n },\n\n /* Styles applied to the root element if `disableUnderline={false}`. */\n underline: {\n '&:after': {\n borderBottom: \"2px solid \".concat(theme.palette.primary.main),\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n '&$focused:after': {\n transform: 'scaleX(1)'\n },\n '&$error:after': {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)' // error is always underlined in red\n\n },\n '&:before': {\n borderBottom: \"1px solid \".concat(bottomLineColor),\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n '&:hover:before': {\n borderBottom: \"1px solid \".concat(theme.palette.text.primary)\n },\n '&$disabled:before': {\n borderBottomStyle: 'dotted'\n }\n },\n\n /* Pseudo-class applied to the root element if the component is focused. */\n focused: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `startAdornment` is provided. */\n adornedStart: {\n paddingLeft: 12\n },\n\n /* Styles applied to the root element if `endAdornment` is provided. */\n adornedEnd: {\n paddingRight: 12\n },\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n marginDense: {},\n\n /* Styles applied to the root element if `multiline={true}`. */\n multiline: {\n padding: '27px 12px 10px',\n '&$marginDense': {\n paddingTop: 23,\n paddingBottom: 6\n }\n },\n\n /* Styles applied to the `input` element. */\n input: {\n padding: '27px 12px 10px',\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',\n caretColor: theme.palette.type === 'light' ? null : '#fff',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit'\n }\n },\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n inputMarginDense: {\n paddingTop: 23,\n paddingBottom: 6\n },\n\n /* Styles applied to the `input` if in ``. */\n inputHiddenLabel: {\n paddingTop: 18,\n paddingBottom: 19,\n '&$inputMarginDense': {\n paddingTop: 10,\n paddingBottom: 11\n }\n },\n\n /* Styles applied to the `input` element if `multiline={true}`. */\n inputMultiline: {\n padding: 0\n },\n\n /* Styles applied to the `input` element if `startAdornment` is provided. */\n inputAdornedStart: {\n paddingLeft: 0\n },\n\n /* Styles applied to the `input` element if `endAdornment` is provided. */\n inputAdornedEnd: {\n paddingRight: 0\n }\n };\n};\nvar FilledInput = /*#__PURE__*/React.forwardRef(function FilledInput(props, ref) {\n var disableUnderline = props.disableUnderline,\n classes = props.classes,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$inputComponent = props.inputComponent,\n inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n other = _objectWithoutProperties(props, [\"disableUnderline\", \"classes\", \"fullWidth\", \"inputComponent\", \"multiline\", \"type\"]);\n\n return /*#__PURE__*/React.createElement(InputBase, _extends({\n classes: _extends({}, classes, {\n root: clsx(classes.root, !disableUnderline && classes.underline),\n underline: null\n }),\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nFilledInput.muiName = 'Input';\nexport default withStyles(styles, {\n name: 'MuiFilledInput'\n})(FilledInput);","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport useTheme from '../styles/useTheme';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'absolute',\n bottom: 0,\n right: 0,\n top: -5,\n left: 0,\n margin: 0,\n padding: '0 8px',\n pointerEvents: 'none',\n borderRadius: 'inherit',\n borderStyle: 'solid',\n borderWidth: 1,\n overflow: 'hidden'\n },\n\n /* Styles applied to the legend element when `labelWidth` is provided. */\n legend: {\n textAlign: 'left',\n padding: 0,\n lineHeight: '11px',\n // sync with `height` in `legend` styles\n transition: theme.transitions.create('width', {\n duration: 150,\n easing: theme.transitions.easing.easeOut\n })\n },\n\n /* Styles applied to the legend element. */\n legendLabelled: {\n display: 'block',\n width: 'auto',\n textAlign: 'left',\n padding: 0,\n height: 11,\n // sync with `lineHeight` in `legend` styles\n fontSize: '0.75em',\n visibility: 'hidden',\n maxWidth: 0.01,\n transition: theme.transitions.create('max-width', {\n duration: 50,\n easing: theme.transitions.easing.easeOut\n }),\n '& > span': {\n paddingLeft: 5,\n paddingRight: 5,\n display: 'inline-block'\n }\n },\n\n /* Styles applied to the legend element is notched. */\n legendNotched: {\n maxWidth: 1000,\n transition: theme.transitions.create('max-width', {\n duration: 100,\n easing: theme.transitions.easing.easeOut,\n delay: 50\n })\n }\n };\n};\n/**\n * @ignore - internal component.\n */\n\nvar NotchedOutline = /*#__PURE__*/React.forwardRef(function NotchedOutline(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n label = props.label,\n labelWidthProp = props.labelWidth,\n notched = props.notched,\n style = props.style,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"label\", \"labelWidth\", \"notched\", \"style\"]);\n\n var theme = useTheme();\n var align = theme.direction === 'rtl' ? 'right' : 'left';\n\n if (label !== undefined) {\n return /*#__PURE__*/React.createElement(\"fieldset\", _extends({\n \"aria-hidden\": true,\n className: clsx(classes.root, className),\n ref: ref,\n style: style\n }, other), /*#__PURE__*/React.createElement(\"legend\", {\n className: clsx(classes.legendLabelled, notched && classes.legendNotched)\n }, label ? /*#__PURE__*/React.createElement(\"span\", null, label) : /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: '​'\n }\n })));\n }\n\n var labelWidth = labelWidthProp > 0 ? labelWidthProp * 0.75 + 8 : 0.01;\n return /*#__PURE__*/React.createElement(\"fieldset\", _extends({\n \"aria-hidden\": true,\n style: _extends(_defineProperty({}, \"padding\".concat(capitalize(align)), 8), style),\n className: clsx(classes.root, className),\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"legend\", {\n className: classes.legend,\n style: {\n // IE 11: fieldset with legend does not render\n // a border radius. This maintains consistency\n // by always having a legend rendered\n width: notched ? labelWidth : 0.01\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: '​'\n }\n })));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'PrivateNotchedOutline'\n})(NotchedOutline);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport InputBase from '../InputBase';\nimport NotchedOutline from './NotchedOutline';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var borderColor = theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n '&:hover $notchedOutline': {\n borderColor: theme.palette.text.primary\n },\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n '&:hover $notchedOutline': {\n borderColor: borderColor\n }\n },\n '&$focused $notchedOutline': {\n borderColor: theme.palette.primary.main,\n borderWidth: 2\n },\n '&$error $notchedOutline': {\n borderColor: theme.palette.error.main\n },\n '&$disabled $notchedOutline': {\n borderColor: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if the color is secondary. */\n colorSecondary: {\n '&$focused $notchedOutline': {\n borderColor: theme.palette.secondary.main\n }\n },\n\n /* Styles applied to the root element if the component is focused. */\n focused: {},\n\n /* Styles applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `startAdornment` is provided. */\n adornedStart: {\n paddingLeft: 14\n },\n\n /* Styles applied to the root element if `endAdornment` is provided. */\n adornedEnd: {\n paddingRight: 14\n },\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n marginDense: {},\n\n /* Styles applied to the root element if `multiline={true}`. */\n multiline: {\n padding: '18.5px 14px',\n '&$marginDense': {\n paddingTop: 10.5,\n paddingBottom: 10.5\n }\n },\n\n /* Styles applied to the `NotchedOutline` element. */\n notchedOutline: {\n borderColor: borderColor\n },\n\n /* Styles applied to the `input` element. */\n input: {\n padding: '18.5px 14px',\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',\n caretColor: theme.palette.type === 'light' ? null : '#fff',\n borderRadius: 'inherit'\n }\n },\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n inputMarginDense: {\n paddingTop: 10.5,\n paddingBottom: 10.5\n },\n\n /* Styles applied to the `input` element if `multiline={true}`. */\n inputMultiline: {\n padding: 0\n },\n\n /* Styles applied to the `input` element if `startAdornment` is provided. */\n inputAdornedStart: {\n paddingLeft: 0\n },\n\n /* Styles applied to the `input` element if `endAdornment` is provided. */\n inputAdornedEnd: {\n paddingRight: 0\n }\n };\n};\nvar OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(props, ref) {\n var classes = props.classes,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$inputComponent = props.inputComponent,\n inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n label = props.label,\n _props$labelWidth = props.labelWidth,\n labelWidth = _props$labelWidth === void 0 ? 0 : _props$labelWidth,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n notched = props.notched,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n other = _objectWithoutProperties(props, [\"classes\", \"fullWidth\", \"inputComponent\", \"label\", \"labelWidth\", \"multiline\", \"notched\", \"type\"]);\n\n return /*#__PURE__*/React.createElement(InputBase, _extends({\n renderSuffix: function renderSuffix(state) {\n return /*#__PURE__*/React.createElement(NotchedOutline, {\n className: classes.notchedOutline,\n label: label,\n labelWidth: labelWidth,\n notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)\n });\n },\n classes: _extends({}, classes, {\n root: clsx(classes.root, classes.underline),\n notchedOutline: null\n }),\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nOutlinedInput.muiName = 'Input';\nexport default withStyles(styles, {\n name: 'MuiOutlinedInput'\n})(OutlinedInput);","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport capitalize from '../utils/capitalize';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({\n color: theme.palette.text.secondary\n }, theme.typography.body1, {\n lineHeight: 1,\n padding: 0,\n '&$focused': {\n color: theme.palette.primary.main\n },\n '&$disabled': {\n color: theme.palette.text.disabled\n },\n '&$error': {\n color: theme.palette.error.main\n }\n }),\n\n /* Styles applied to the root element if the color is secondary. */\n colorSecondary: {\n '&$focused': {\n color: theme.palette.secondary.main\n }\n },\n\n /* Pseudo-class applied to the root element if `focused={true}`. */\n focused: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Pseudo-class applied to the root element if `filled={true}`. */\n filled: {},\n\n /* Pseudo-class applied to the root element if `required={true}`. */\n required: {},\n\n /* Styles applied to the asterisk element. */\n asterisk: {\n '&$error': {\n color: theme.palette.error.main\n }\n }\n };\n};\nvar FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n color = props.color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'label' : _props$component,\n disabled = props.disabled,\n error = props.error,\n filled = props.filled,\n focused = props.focused,\n required = props.required,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"]);\n\n var muiFormControl = useFormControl();\n var fcs = formControlState({\n props: props,\n muiFormControl: muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, classes[\"color\".concat(capitalize(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required),\n ref: ref\n }, other), children, fcs.required && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n className: clsx(classes.asterisk, fcs.error && classes.error)\n }, \"\\u2009\", '*'));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiFormLabel'\n})(FormLabel);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport withStyles from '../styles/withStyles';\nimport FormLabel from '../FormLabel';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n transformOrigin: 'top left'\n },\n\n /* Pseudo-class applied to the root element if `focused={true}`. */\n focused: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Pseudo-class applied to the root element if `required={true}`. */\n required: {},\n\n /* Pseudo-class applied to the asterisk element. */\n asterisk: {},\n\n /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n formControl: {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 24px) scale(1)'\n },\n\n /* Styles applied to the root element if `margin=\"dense\"`. */\n marginDense: {\n // Compensation for the `Input.inputDense` style.\n transform: 'translate(0, 21px) scale(1)'\n },\n\n /* Styles applied to the `input` element if `shrink={true}`. */\n shrink: {\n transform: 'translate(0, 1.5px) scale(0.75)',\n transformOrigin: 'top left'\n },\n\n /* Styles applied to the `input` element if `disableAnimation={false}`. */\n animated: {\n transition: theme.transitions.create(['color', 'transform'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n },\n\n /* Styles applied to the root element if `variant=\"filled\"`. */\n filled: {\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 20px) scale(1)',\n '&$marginDense': {\n transform: 'translate(12px, 17px) scale(1)'\n },\n '&$shrink': {\n transform: 'translate(12px, 10px) scale(0.75)',\n '&$marginDense': {\n transform: 'translate(12px, 7px) scale(0.75)'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 20px) scale(1)',\n '&$marginDense': {\n transform: 'translate(14px, 12px) scale(1)'\n },\n '&$shrink': {\n transform: 'translate(14px, -6px) scale(0.75)'\n }\n }\n };\n};\nvar InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$disableAnimati = props.disableAnimation,\n disableAnimation = _props$disableAnimati === void 0 ? false : _props$disableAnimati,\n margin = props.margin,\n shrinkProp = props.shrink,\n variant = props.variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"disableAnimation\", \"margin\", \"shrink\", \"variant\"]);\n\n var muiFormControl = useFormControl();\n var shrink = shrinkProp;\n\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n\n var fcs = formControlState({\n props: props,\n muiFormControl: muiFormControl,\n states: ['margin', 'variant']\n });\n return /*#__PURE__*/React.createElement(FormLabel, _extends({\n \"data-shrink\": shrink,\n className: clsx(classes.root, className, muiFormControl && classes.formControl, !disableAnimation && classes.animated, shrink && classes.shrink, fcs.margin === 'dense' && classes.marginDense, {\n 'filled': classes.filled,\n 'outlined': classes.outlined\n }[fcs.variant]),\n classes: {\n focused: classes.focused,\n disabled: classes.disabled,\n error: classes.error,\n required: classes.required,\n asterisk: classes.asterisk\n },\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiInputLabel'\n})(InputLabel);","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { isFilled, isAdornedStart } from '../InputBase/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport FormControlContext from './FormControlContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top' // Fix alignment issue on Safari.\n\n },\n\n /* Styles applied to the root element if `margin=\"normal\"`. */\n marginNormal: {\n marginTop: 16,\n marginBottom: 8\n },\n\n /* Styles applied to the root element if `margin=\"dense\"`. */\n marginDense: {\n marginTop: 8,\n marginBottom: 4\n },\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n }\n};\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/components/text-fields/#components).\n *\n * ```jsx\n * \n * Email address\n * \n * We'll never share your email.\n * \n * ```\n *\n * ⚠️Only one input can be used within a FormControl.\n */\n\nvar FormControl = /*#__PURE__*/React.forwardRef(function FormControl(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$error = props.error,\n error = _props$error === void 0 ? false : _props$error,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n visuallyFocused = props.focused,\n _props$hiddenLabel = props.hiddenLabel,\n hiddenLabel = _props$hiddenLabel === void 0 ? false : _props$hiddenLabel,\n _props$margin = props.margin,\n margin = _props$margin === void 0 ? 'none' : _props$margin,\n _props$required = props.required,\n required = _props$required === void 0 ? false : _props$required,\n size = props.size,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"fullWidth\", \"focused\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"]);\n\n var _React$useState = React.useState(function () {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n var initialAdornedStart = false;\n\n if (children) {\n React.Children.forEach(children, function (child) {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n var input = isMuiElement(child, ['Select']) ? child.props.input : child;\n\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n\n return initialAdornedStart;\n }),\n adornedStart = _React$useState[0],\n setAdornedStart = _React$useState[1];\n\n var _React$useState2 = React.useState(function () {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n var initialFilled = false;\n\n if (children) {\n React.Children.forEach(children, function (child) {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n if (isFilled(child.props, true)) {\n initialFilled = true;\n }\n });\n }\n\n return initialFilled;\n }),\n filled = _React$useState2[0],\n setFilled = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _focused = _React$useState3[0],\n setFocused = _React$useState3[1];\n\n var focused = visuallyFocused !== undefined ? visuallyFocused : _focused;\n\n if (disabled && focused) {\n setFocused(false);\n }\n\n var registerEffect;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var registeredInput = React.useRef(false);\n\n registerEffect = function registerEffect() {\n if (registeredInput.current) {\n console.error(['Material-UI: There are multiple InputBase components inside a FormControl.', 'This is not supported. It might cause infinite rendering loops.', 'Only use one InputBase.'].join('\\n'));\n }\n\n registeredInput.current = true;\n return function () {\n registeredInput.current = false;\n };\n };\n }\n\n var onFilled = React.useCallback(function () {\n setFilled(true);\n }, []);\n var onEmpty = React.useCallback(function () {\n setFilled(false);\n }, []);\n var childContext = {\n adornedStart: adornedStart,\n setAdornedStart: setAdornedStart,\n color: color,\n disabled: disabled,\n error: error,\n filled: filled,\n focused: focused,\n fullWidth: fullWidth,\n hiddenLabel: hiddenLabel,\n margin: (size === 'small' ? 'dense' : undefined) || margin,\n onBlur: function onBlur() {\n setFocused(false);\n },\n onEmpty: onEmpty,\n onFilled: onFilled,\n onFocus: function onFocus() {\n setFocused(true);\n },\n registerEffect: registerEffect,\n required: required,\n variant: variant\n };\n return /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, margin !== 'none' && classes[\"margin\".concat(capitalize(margin))], fullWidth && classes.fullWidth),\n ref: ref\n }, other), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiFormControl'\n})(FormControl);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({\n color: theme.palette.text.secondary\n }, theme.typography.caption, {\n textAlign: 'left',\n marginTop: 3,\n margin: 0,\n '&$disabled': {\n color: theme.palette.text.disabled\n },\n '&$error': {\n color: theme.palette.error.main\n }\n }),\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `margin=\"dense\"`. */\n marginDense: {\n marginTop: 4\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` or `variant=\"outlined\"`. */\n contained: {\n marginLeft: 14,\n marginRight: 14\n },\n\n /* Pseudo-class applied to the root element if `focused={true}`. */\n focused: {},\n\n /* Pseudo-class applied to the root element if `filled={true}`. */\n filled: {},\n\n /* Pseudo-class applied to the root element if `required={true}`. */\n required: {}\n };\n};\nvar FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'p' : _props$component,\n disabled = props.disabled,\n error = props.error,\n filled = props.filled,\n focused = props.focused,\n margin = props.margin,\n required = props.required,\n variant = props.variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"margin\", \"required\", \"variant\"]);\n\n var muiFormControl = useFormControl();\n var fcs = formControlState({\n props: props,\n muiFormControl: muiFormControl,\n states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, (fcs.variant === 'filled' || fcs.variant === 'outlined') && classes.contained, className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required, fcs.margin === 'dense' && classes.marginDense),\n ref: ref\n }, other), children === ' ' ?\n /*#__PURE__*/\n // eslint-disable-next-line react/no-danger\n React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: '​'\n }\n }) : children);\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiFormHelperText'\n})(FormHelperText);","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { exactProp, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport setRef from '../utils/setRef';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container; // #StrictMode ready\n\n return ReactDOM.findDOMNode(container);\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\nvar Portal = /*#__PURE__*/React.forwardRef(function Portal(props, ref) {\n var children = props.children,\n container = props.container,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n onRendered = props.onRendered;\n\n var _React$useState = React.useState(null),\n mountNode = _React$useState[0],\n setMountNode = _React$useState[1];\n\n var handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, ref);\n useEnhancedEffect(function () {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(function () {\n if (mountNode && !disablePortal) {\n setRef(ref, mountNode);\n return function () {\n setRef(ref, null);\n };\n }\n\n return undefined;\n }, [ref, mountNode, disablePortal]);\n useEnhancedEffect(function () {\n if (onRendered && (mountNode || disablePortal)) {\n onRendered();\n }\n }, [onRendered, mountNode, disablePortal]);\n\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n });\n }\n\n return children;\n }\n\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\n\nexport default Portal;","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519\nexport default function getScrollbarSize() {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.width = '99px';\n scrollDiv.style.height = '99px';\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarSize;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow'; // Is a vertical scrollbar displayed?\n\nfunction isOverflowing(container) {\n var doc = ownerDocument(container);\n\n if (doc.body === container) {\n return ownerWindow(doc).innerWidth > doc.documentElement.clientWidth;\n }\n\n return container.scrollHeight > container.clientHeight;\n}\n\nexport function ariaHidden(node, show) {\n if (show) {\n node.setAttribute('aria-hidden', 'true');\n } else {\n node.removeAttribute('aria-hidden');\n }\n}\n\nfunction getPaddingRight(node) {\n return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;\n}\n\nfunction ariaHiddenSiblings(container, mountNode, currentNode) {\n var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n var show = arguments.length > 4 ? arguments[4] : undefined;\n var blacklist = [mountNode, currentNode].concat(_toConsumableArray(nodesToExclude));\n var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];\n [].forEach.call(container.children, function (node) {\n if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {\n ariaHidden(node, show);\n }\n });\n}\n\nfunction findIndexOf(containerInfo, callback) {\n var idx = -1;\n containerInfo.some(function (item, index) {\n if (callback(item)) {\n idx = index;\n return true;\n }\n\n return false;\n });\n return idx;\n}\n\nfunction handleContainer(containerInfo, props) {\n var restoreStyle = [];\n var restorePaddings = [];\n var container = containerInfo.container;\n var fixedNodes;\n\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n var scrollbarSize = getScrollbarSize();\n restoreStyle.push({\n value: container.style.paddingRight,\n key: 'padding-right',\n el: container\n }); // Use computed style, here to get the real padding to add our scrollbar width.\n\n container.style['padding-right'] = \"\".concat(getPaddingRight(container) + scrollbarSize, \"px\"); // .mui-fixed is a global helper.\n\n fixedNodes = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedNodes, function (node) {\n restorePaddings.push(node.style.paddingRight);\n node.style.paddingRight = \"\".concat(getPaddingRight(node) + scrollbarSize, \"px\");\n });\n } // Improve Gatsby support\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n\n\n var parent = container.parentElement;\n var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n key: 'overflow',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n\n var restore = function restore() {\n if (fixedNodes) {\n [].forEach.call(fixedNodes, function (node, i) {\n if (restorePaddings[i]) {\n node.style.paddingRight = restorePaddings[i];\n } else {\n node.style.removeProperty('padding-right');\n }\n });\n }\n\n restoreStyle.forEach(function (_ref) {\n var value = _ref.value,\n el = _ref.el,\n key = _ref.key;\n\n if (value) {\n el.style.setProperty(key, value);\n } else {\n el.style.removeProperty(key);\n }\n });\n };\n\n return restore;\n}\n\nfunction getHiddenSiblings(container) {\n var hiddenSiblings = [];\n [].forEach.call(container.children, function (node) {\n if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(node);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\n\n\nvar ModalManager = /*#__PURE__*/function () {\n function ModalManager() {\n _classCallCheck(this, ModalManager); // this.modals[modalIndex] = modal\n\n\n this.modals = []; // this.containers[containerIndex] = {\n // modals: [],\n // container,\n // restore: null,\n // }\n\n this.containers = [];\n }\n\n _createClass(ModalManager, [{\n key: \"add\",\n value: function add(modal, container) {\n var modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex !== -1) {\n return modalIndex;\n }\n\n modalIndex = this.modals.length;\n this.modals.push(modal); // If the modal we are adding is already in the DOM.\n\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n\n var hiddenSiblingNodes = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.container === container;\n });\n\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n\n this.containers.push({\n modals: [modal],\n container: container,\n restore: null,\n hiddenSiblingNodes: hiddenSiblingNodes\n });\n return modalIndex;\n }\n }, {\n key: \"mount\",\n value: function mount(modal, props) {\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.modals.indexOf(modal) !== -1;\n });\n var containerInfo = this.containers[containerIndex];\n\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(modal) {\n var modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex === -1) {\n return modalIndex;\n }\n\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.modals.indexOf(modal) !== -1;\n });\n var containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.\n\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, true);\n }\n\n ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n\n return modalIndex;\n }\n }, {\n key: \"isTopModal\",\n value: function isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n }]);\n\n return ModalManager;\n}();\n\nexport { ModalManager as default };","/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport { exactProp } from '@material-ui/utils';\n/**\n * Utility component that locks focus inside the component.\n */\n\nfunction Unstable_TrapFocus(props) {\n var children = props.children,\n _props$disableAutoFoc = props.disableAutoFocus,\n disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$disableEnforce = props.disableEnforceFocus,\n disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n _props$disableRestore = props.disableRestoreFocus,\n disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n getDoc = props.getDoc,\n isEnabled = props.isEnabled,\n open = props.open;\n var ignoreNextEnforceFocus = React.useRef();\n var sentinelStart = React.useRef(null);\n var sentinelEnd = React.useRef(null);\n var nodeToRestore = React.useRef();\n var rootRef = React.useRef(null); // can be removed once we drop support for non ref forwarding class components\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n rootRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(children.ref, handleOwnRef);\n var prevOpenRef = React.useRef();\n React.useEffect(function () {\n prevOpenRef.current = open;\n }, [open]);\n\n if (!prevOpenRef.current && open && typeof window !== 'undefined') {\n // WARNING: Potentially unsafe in concurrent mode.\n // The way the read on `nodeToRestore` is setup could make this actually safe.\n // Say we render `open={false}` -> `open={true}` but never commit.\n // We have now written a state that wasn't committed. But no committed effect\n // will read this wrong value. We only read from `nodeToRestore` in effects\n // that were committed on `open={true}`\n // WARNING: Prevents the instance from being garbage collected. Should only\n // hold a weak ref.\n nodeToRestore.current = getDoc().activeElement;\n }\n\n React.useEffect(function () {\n if (!open) {\n return;\n }\n\n var doc = ownerDocument(rootRef.current); // We might render an empty child.\n\n if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n if (!rootRef.current.hasAttribute('tabIndex')) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['Material-UI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n }\n\n rootRef.current.setAttribute('tabIndex', -1);\n }\n\n rootRef.current.focus();\n }\n\n var contain = function contain() {\n var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.\n // Contain can be called between the component being unmounted and its cleanup function being run.\n\n if (rootElement === null) {\n return;\n }\n\n if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {\n ignoreNextEnforceFocus.current = false;\n return;\n }\n\n if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n rootRef.current.focus();\n }\n };\n\n var loopFocus = function loopFocus(event) {\n // 9 = Tab\n if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {\n return;\n } // Make sure the next tab starts from the right place.\n\n\n if (doc.activeElement === rootRef.current) {\n // We need to ignore the next contain as\n // it will try to move the focus back to the rootRef element.\n ignoreNextEnforceFocus.current = true;\n\n if (event.shiftKey) {\n sentinelEnd.current.focus();\n } else {\n sentinelStart.current.focus();\n }\n }\n };\n\n doc.addEventListener('focus', contain, true);\n doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area\n // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n //\n // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n\n var interval = setInterval(function () {\n contain();\n }, 50);\n return function () {\n clearInterval(interval);\n doc.removeEventListener('focus', contain, true);\n doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()\n\n if (!disableRestoreFocus) {\n // In IE 11 it is possible for document.activeElement to be null resulting\n // in nodeToRestore.current being null.\n // Not all elements in IE 11 have a focus method.\n // Once IE 11 support is dropped the focus() call can be unconditional.\n if (nodeToRestore.current && nodeToRestore.current.focus) {\n nodeToRestore.current.focus();\n }\n\n nodeToRestore.current = null;\n }\n };\n }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStart,\n \"data-test\": \"sentinelStart\"\n }), /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n }), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEnd,\n \"data-test\": \"sentinelEnd\"\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Unstable_TrapFocus['propTypes' + ''] = exactProp(Unstable_TrapFocus.propTypes);\n}\n\nexport default Unstable_TrapFocus;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n zIndex: -1,\n position: 'fixed',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SimpleBackdrop = /*#__PURE__*/React.forwardRef(function SimpleBackdrop(props, ref) {\n var _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n other = _objectWithoutProperties(props, [\"invisible\", \"open\"]);\n\n return open ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-hidden\": true,\n ref: ref\n }, other, {\n style: _extends({}, styles.root, invisible ? styles.invisible : {}, other.style)\n })) : null;\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default SimpleBackdrop;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nimport { elementAcceptingRef, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport ownerDocument from '../utils/ownerDocument';\nimport Portal from '../Portal';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport zIndex from '../styles/zIndex';\nimport ModalManager, { ariaHidden } from './ModalManager';\nimport TrapFocus from '../Unstable_TrapFocus';\nimport SimpleBackdrop from './SimpleBackdrop';\n\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container;\n return ReactDOM.findDOMNode(container);\n}\n\nfunction getHasTransition(props) {\n return props.children ? props.children.props.hasOwnProperty('in') : false;\n} // A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\n\n\nvar defaultManager = new ModalManager();\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'fixed',\n zIndex: theme.zIndex.modal,\n right: 0,\n bottom: 0,\n top: 0,\n left: 0\n },\n\n /* Styles applied to the root element if the `Modal` has exited. */\n hidden: {\n visibility: 'hidden'\n }\n };\n};\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/api/dialog/)\n * - [Drawer](/api/drawer/)\n * - [Menu](/api/menu/)\n * - [Popover](/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\n\nvar Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {\n var theme = useTheme();\n var props = getThemeProps({\n name: 'MuiModal',\n props: _extends({}, inProps),\n theme: theme\n });\n\n var _props$BackdropCompon = props.BackdropComponent,\n BackdropComponent = _props$BackdropCompon === void 0 ? SimpleBackdrop : _props$BackdropCompon,\n BackdropProps = props.BackdropProps,\n children = props.children,\n _props$closeAfterTran = props.closeAfterTransition,\n closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,\n container = props.container,\n _props$disableAutoFoc = props.disableAutoFocus,\n disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEnforce = props.disableEnforceFocus,\n disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n _props$disableRestore = props.disableRestoreFocus,\n disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n _props$disableScrollL = props.disableScrollLock,\n disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,\n _props$hideBackdrop = props.hideBackdrop,\n hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,\n _props$keepMounted = props.keepMounted,\n keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,\n _props$manager = props.manager,\n manager = _props$manager === void 0 ? defaultManager : _props$manager,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onRendered = props.onRendered,\n open = props.open,\n other = _objectWithoutProperties(props, [\"BackdropComponent\", \"BackdropProps\", \"children\", \"closeAfterTransition\", \"container\", \"disableAutoFocus\", \"disableBackdropClick\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"manager\", \"onBackdropClick\", \"onClose\", \"onEscapeKeyDown\", \"onRendered\", \"open\"]);\n\n var _React$useState = React.useState(true),\n exited = _React$useState[0],\n setExited = _React$useState[1];\n\n var modal = React.useRef({});\n var mountNodeRef = React.useRef(null);\n var modalRef = React.useRef(null);\n var handleRef = useForkRef(modalRef, ref);\n var hasTransition = getHasTransition(props);\n\n var getDoc = function getDoc() {\n return ownerDocument(mountNodeRef.current);\n };\n\n var getModal = function getModal() {\n modal.current.modalRef = modalRef.current;\n modal.current.mountNode = mountNodeRef.current;\n return modal.current;\n };\n\n var handleMounted = function handleMounted() {\n manager.mount(getModal(), {\n disableScrollLock: disableScrollLock\n }); // Fix a bug on Chrome where the scroll isn't initially 0.\n\n modalRef.current.scrollTop = 0;\n };\n\n var handleOpen = useEventCallback(function () {\n var resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer); // The element was already mounted.\n\n if (modalRef.current) {\n handleMounted();\n }\n });\n var isTopModal = React.useCallback(function () {\n return manager.isTopModal(getModal());\n }, [manager]);\n var handlePortalRef = useEventCallback(function (node) {\n mountNodeRef.current = node;\n\n if (!node) {\n return;\n }\n\n if (onRendered) {\n onRendered();\n }\n\n if (open && isTopModal()) {\n handleMounted();\n } else {\n ariaHidden(modalRef.current, true);\n }\n });\n var handleClose = React.useCallback(function () {\n manager.remove(getModal());\n }, [manager]);\n React.useEffect(function () {\n return function () {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(function () {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n\n var handleEnter = function handleEnter() {\n setExited(false);\n };\n\n var handleExited = function handleExited() {\n setExited(true);\n\n if (closeAfterTransition) {\n handleClose();\n }\n };\n\n var handleBackdropClick = function handleBackdropClick(event) {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviours like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || !isTopModal()) {\n return;\n }\n\n if (onEscapeKeyDown) {\n onEscapeKeyDown(event);\n }\n\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n\n var inlineStyle = styles(theme || {\n zIndex: zIndex\n });\n var childProps = {};\n\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = children.props.tabIndex || '-1';\n } // It's a Transition like component\n\n\n if (hasTransition) {\n childProps.onEnter = createChainedFunction(handleEnter, children.props.onEnter);\n childProps.onExited = createChainedFunction(handleExited, children.props.onExited);\n }\n\n return /*#__PURE__*/React.createElement(Portal, {\n ref: handlePortalRef,\n container: container,\n disablePortal: disablePortal\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: handleRef,\n onKeyDown: handleKeyDown,\n role: \"presentation\"\n }, other, {\n style: _extends({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)\n }), hideBackdrop ? null : /*#__PURE__*/React.createElement(BackdropComponent, _extends({\n open: open,\n onClick: handleBackdropClick\n }, BackdropProps)), /*#__PURE__*/React.createElement(TrapFocus, {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n getDoc: getDoc,\n isEnabled: isTopModal,\n open: open\n }, /*#__PURE__*/React.cloneElement(children, childProps))));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default Modal;","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\n\n// Name the function so it is clearer in the documentation\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getScale(value) {\n return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var timer = React.useRef();\n var autoTimeout = React.useRef();\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration,\n delay = _getTransitionProps.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration,\n delay = _getTransitionProps2.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay || duration * 0.333\n })].join(',');\n node.style.opacity = '0';\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n };\n\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { chainPropTypes, elementTypeAcceptingRef, refType, HTMLElementType } from '@material-ui/utils';\nimport debounce from '../utils/debounce';\nimport clsx from 'clsx';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport Modal from '../Modal';\nimport Grow from '../Grow';\nimport Paper from '../Paper';\nexport function getOffsetTop(rect, vertical) {\n var offset = 0;\n\n if (typeof vertical === 'number') {\n offset = vertical;\n } else if (vertical === 'center') {\n offset = rect.height / 2;\n } else if (vertical === 'bottom') {\n offset = rect.height;\n }\n\n return offset;\n}\nexport function getOffsetLeft(rect, horizontal) {\n var offset = 0;\n\n if (typeof horizontal === 'number') {\n offset = horizontal;\n } else if (horizontal === 'center') {\n offset = rect.width / 2;\n } else if (horizontal === 'right') {\n offset = rect.width;\n }\n\n return offset;\n}\n\nfunction getTransformOriginValue(transformOrigin) {\n return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {\n return typeof n === 'number' ? \"\".concat(n, \"px\") : n;\n }).join(' ');\n} // Sum the scrollTop between two elements.\n\n\nfunction getScrollParent(parent, child) {\n var element = child;\n var scrollTop = 0;\n\n while (element && element !== parent) {\n element = element.parentElement;\n scrollTop += element.scrollTop;\n }\n\n return scrollTop;\n}\n\nfunction getAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nexport var styles = {\n /* Styles applied to the root element. */\n root: {},\n\n /* Styles applied to the `Paper` component. */\n paper: {\n position: 'absolute',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n // It's most likely on issue on userland.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n }\n};\nvar Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {\n var action = props.action,\n anchorEl = props.anchorEl,\n _props$anchorOrigin = props.anchorOrigin,\n anchorOrigin = _props$anchorOrigin === void 0 ? {\n vertical: 'top',\n horizontal: 'left'\n } : _props$anchorOrigin,\n anchorPosition = props.anchorPosition,\n _props$anchorReferenc = props.anchorReference,\n anchorReference = _props$anchorReferenc === void 0 ? 'anchorEl' : _props$anchorReferenc,\n children = props.children,\n classes = props.classes,\n className = props.className,\n containerProp = props.container,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 8 : _props$elevation,\n getContentAnchorEl = props.getContentAnchorEl,\n _props$marginThreshol = props.marginThreshold,\n marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$transformOrigi = props.transformOrigin,\n transformOrigin = _props$transformOrigi === void 0 ? {\n vertical: 'top',\n horizontal: 'left'\n } : _props$transformOrigi,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Grow : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n _props$TransitionProp = props.TransitionProps,\n TransitionProps = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,\n other = _objectWithoutProperties(props, [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"classes\", \"className\", \"container\", \"elevation\", \"getContentAnchorEl\", \"marginThreshold\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperProps\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n var paperRef = React.useRef(); // Returns the top/left offset of the position\n // to attach to on the anchor element (or body if none is provided)\n\n var getAnchorOffset = React.useCallback(function (contentAnchorOffset) {\n if (anchorReference === 'anchorPosition') {\n if (process.env.NODE_ENV !== 'production') {\n if (!anchorPosition) {\n console.error('Material-UI: You need to provide a `anchorPosition` prop when using ' + '.');\n }\n }\n\n return anchorPosition;\n }\n\n var resolvedAnchorEl = getAnchorEl(anchorEl); // If an anchor element wasn't provided, just use the parent body element of this Popover\n\n var anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument(paperRef.current).body;\n var anchorRect = anchorElement.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'production') {\n var box = anchorElement.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n\n var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';\n return {\n top: anchorRect.top + getOffsetTop(anchorRect, anchorVertical),\n left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n };\n }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]); // Returns the vertical offset of inner content to anchor the transform on if provided\n\n var getContentAnchorOffset = React.useCallback(function (element) {\n var contentAnchorOffset = 0;\n\n if (getContentAnchorEl && anchorReference === 'anchorEl') {\n var contentAnchorEl = getContentAnchorEl(element);\n\n if (contentAnchorEl && element.contains(contentAnchorEl)) {\n var scrollTop = getScrollParent(element, contentAnchorEl);\n contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;\n } // != the default value\n\n\n if (process.env.NODE_ENV !== 'production') {\n if (anchorOrigin.vertical !== 'top') {\n console.error(['Material-UI: You can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` prop to the popover component.', 'Only use one of the two props.', 'Set `getContentAnchorEl` to `null | undefined`' + ' or leave `anchorOrigin.vertical` unchanged.'].join('\\n'));\n }\n }\n }\n\n return contentAnchorOffset;\n }, [anchorOrigin.vertical, anchorReference, getContentAnchorEl]); // Return the base transform origin using the element\n // and taking the content anchor offset into account if in use\n\n var getTransformOrigin = React.useCallback(function (elemRect) {\n var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return {\n vertical: getOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,\n horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n };\n }, [transformOrigin.horizontal, transformOrigin.vertical]);\n var getPositioningStyle = React.useCallback(function (element) {\n // Check if the parent has requested anchoring on an inner content node\n var contentAnchorOffset = getContentAnchorOffset(element);\n var elemRect = {\n width: element.offsetWidth,\n height: element.offsetHeight\n }; // Get the transform origin point on the element itself\n\n var elemTransformOrigin = getTransformOrigin(elemRect, contentAnchorOffset);\n\n if (anchorReference === 'none') {\n return {\n top: null,\n left: null,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n } // Get the offset of of the anchoring element\n\n\n var anchorOffset = getAnchorOffset(contentAnchorOffset); // Calculate element positioning\n\n var top = anchorOffset.top - elemTransformOrigin.vertical;\n var left = anchorOffset.left - elemTransformOrigin.horizontal;\n var bottom = top + elemRect.height;\n var right = left + elemRect.width; // Use the parent window of the anchorEl if provided\n\n var containerWindow = ownerWindow(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account\n\n var heightThreshold = containerWindow.innerHeight - marginThreshold;\n var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting\n\n if (top < marginThreshold) {\n var diff = top - marginThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n } else if (bottom > heightThreshold) {\n var _diff = bottom - heightThreshold;\n\n top -= _diff;\n elemTransformOrigin.vertical += _diff;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n console.error(['Material-UI: The popover component is too tall.', \"Some part of it can not be seen on the screen (\".concat(elemRect.height - heightThreshold, \"px).\"), 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n }\n } // Check if the horizontal axis needs shifting\n\n\n if (left < marginThreshold) {\n var _diff2 = left - marginThreshold;\n\n left -= _diff2;\n elemTransformOrigin.horizontal += _diff2;\n } else if (right > widthThreshold) {\n var _diff3 = right - widthThreshold;\n\n left -= _diff3;\n elemTransformOrigin.horizontal += _diff3;\n }\n\n return {\n top: \"\".concat(Math.round(top), \"px\"),\n left: \"\".concat(Math.round(left), \"px\"),\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }, [anchorEl, anchorReference, getAnchorOffset, getContentAnchorOffset, getTransformOrigin, marginThreshold]);\n var setPositioningStyles = React.useCallback(function () {\n var element = paperRef.current;\n\n if (!element) {\n return;\n }\n\n var positioning = getPositioningStyle(element);\n\n if (positioning.top !== null) {\n element.style.top = positioning.top;\n }\n\n if (positioning.left !== null) {\n element.style.left = positioning.left;\n }\n\n element.style.transformOrigin = positioning.transformOrigin;\n }, [getPositioningStyle]);\n\n var handleEntering = function handleEntering(element, isAppearing) {\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n\n setPositioningStyles();\n };\n\n var handlePaperRef = React.useCallback(function (instance) {\n // #StrictMode ready\n paperRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n React.useEffect(function () {\n if (open) {\n setPositioningStyles();\n }\n });\n React.useImperativeHandle(action, function () {\n return open ? {\n updatePosition: function updatePosition() {\n setPositioningStyles();\n }\n } : null;\n }, [open, setPositioningStyles]);\n React.useEffect(function () {\n if (!open) {\n return undefined;\n }\n\n var handleResize = debounce(function () {\n setPositioningStyles();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [open, setPositioningStyles]);\n var transitionDuration = transitionDurationProp;\n\n if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n transitionDuration = undefined;\n } // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n\n\n var container = containerProp || (anchorEl ? ownerDocument(getAnchorEl(anchorEl)).body : undefined);\n return /*#__PURE__*/React.createElement(Modal, _extends({\n container: container,\n open: open,\n ref: ref,\n BackdropProps: {\n invisible: true\n },\n className: clsx(classes.root, className)\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: onExit,\n onExited: onExited,\n onExiting: onExiting,\n timeout: transitionDuration\n }, TransitionProps, {\n onEntering: createChainedFunction(handleEntering, TransitionProps.onEntering)\n }), /*#__PURE__*/React.createElement(Paper, _extends({\n elevation: elevation,\n ref: handlePaperRef\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className)\n }), children)));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiPopover'\n})(Popover);","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar ListContext = React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\n\nexport default ListContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ListContext from './ListContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n },\n\n /* Styles applied to the root element if `disablePadding={false}`. */\n padding: {\n paddingTop: 8,\n paddingBottom: 8\n },\n\n /* Styles applied to the root element if dense. */\n dense: {},\n\n /* Styles applied to the root element if a `subheader` is provided. */\n subheader: {\n paddingTop: 0\n }\n};\nvar List = /*#__PURE__*/React.forwardRef(function List(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'ul' : _props$component,\n _props$dense = props.dense,\n dense = _props$dense === void 0 ? false : _props$dense,\n _props$disablePadding = props.disablePadding,\n disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding,\n subheader = props.subheader,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"]);\n\n var context = React.useMemo(function () {\n return {\n dense: dense\n };\n }, [dense]);\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),\n ref: ref\n }, other), subheader, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiList'\n})(List);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\n\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n\n return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n\n return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n\n var text = nextFocus.innerText;\n\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n\n text = text.trim().toLowerCase();\n\n if (text.length === 0) {\n return false;\n }\n\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n var wrappedOnce = false;\n var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n\n wrappedOnce = true;\n } // Same logic as useAutocomplete.js\n\n\n var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return;\n }\n }\n}\n\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\nvar MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n var actions = props.actions,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n _props$autoFocusItem = props.autoFocusItem,\n autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,\n children = props.children,\n className = props.className,\n _props$disabledItemsF = props.disabledItemsFocusable,\n disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,\n _props$disableListWra = props.disableListWrap,\n disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,\n onKeyDown = props.onKeyDown,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n other = _objectWithoutProperties(props, [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"]);\n\n var listRef = React.useRef(null);\n var textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(function () {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, function () {\n return {\n adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n var noExplicitWidth = !listRef.current.style.width;\n\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n var scrollbarSize = \"\".concat(getScrollbarSize(true), \"px\");\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = \"calc(100% + \".concat(scrollbarSize, \")\");\n }\n\n return listRef.current;\n }\n };\n }, []);\n\n var handleKeyDown = function handleKeyDown(event) {\n var list = listRef.current;\n var key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n\n var currentFocus = ownerDocument(list).activeElement;\n\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n var criteria = textCriteriaRef.current;\n var lowerKey = key.toLowerCase();\n var currTime = performance.now();\n\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n listRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(handleOwnRef, ref);\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.forEach(children, function (child, index) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n var items = React.Children.map(children, function (child, index) {\n if (index === activeItemIndex) {\n var newChildProps = {};\n\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n\n return child;\n });\n return /*#__PURE__*/React.createElement(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other), items);\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default MenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport clsx from 'clsx';\nimport { HTMLElementType } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport Popover from '../Popover';\nimport MenuList from '../MenuList';\nimport * as ReactDOM from 'react-dom';\nimport setRef from '../utils/setRef';\nimport useTheme from '../styles/useTheme';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nvar RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nvar LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nexport var styles = {\n /* Styles applied to the `Paper` component. */\n paper: {\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tapable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling.\n WebkitOverflowScrolling: 'touch'\n },\n\n /* Styles applied to the `List` component via `MenuList`. */\n list: {\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n }\n};\nvar Menu = /*#__PURE__*/React.forwardRef(function Menu(props, ref) {\n var _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n children = props.children,\n classes = props.classes,\n _props$disableAutoFoc = props.disableAutoFocusItem,\n disableAutoFocusItem = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$MenuListProps = props.MenuListProps,\n MenuListProps = _props$MenuListProps === void 0 ? {} : _props$MenuListProps,\n onClose = props.onClose,\n onEnteringProp = props.onEntering,\n open = props.open,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n PopoverClasses = props.PopoverClasses,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n _props$TransitionProp = props.TransitionProps;\n _props$TransitionProp = _props$TransitionProp === void 0 ? {} : _props$TransitionProp;\n\n var onEntering = _props$TransitionProp.onEntering,\n TransitionProps = _objectWithoutProperties(_props$TransitionProp, [\"onEntering\"]),\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n other = _objectWithoutProperties(props, [\"autoFocus\", \"children\", \"classes\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"onEntering\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"TransitionProps\", \"variant\"]);\n\n var theme = useTheme();\n var autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n var menuListActionsRef = React.useRef(null);\n var contentAnchorRef = React.useRef(null);\n\n var getContentAnchorEl = function getContentAnchorEl() {\n return contentAnchorRef.current;\n };\n\n var handleEntering = function handleEntering(element, isAppearing) {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n }\n\n if (onEnteringProp) {\n onEnteringProp(element, isAppearing);\n }\n\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n\n var handleListKeyDown = function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n\n var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.map(children, function (child, index) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant !== \"menu\" && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n var items = React.Children.map(children, function (child, index) {\n if (index === activeItemIndex) {\n return /*#__PURE__*/React.cloneElement(child, {\n ref: function ref(instance) {\n // #StrictMode ready\n contentAnchorRef.current = ReactDOM.findDOMNode(instance);\n setRef(child.ref, instance);\n }\n });\n }\n\n return child;\n });\n return /*#__PURE__*/React.createElement(Popover, _extends({\n getContentAnchorEl: getContentAnchorEl,\n classes: PopoverClasses,\n onClose: onClose,\n TransitionProps: _extends({\n onEntering: handleEntering\n }, TransitionProps),\n anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n PaperProps: _extends({}, PaperProps, {\n classes: _extends({}, PaperProps.classes, {\n root: classes.paper\n })\n }),\n open: open,\n ref: ref,\n transitionDuration: transitionDuration\n }, other), /*#__PURE__*/React.createElement(MenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className)\n }), items));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiMenu'\n})(Menu);","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport clsx from 'clsx';\nimport ownerDocument from '../utils/ownerDocument';\nimport capitalize from '../utils/capitalize';\nimport { refType } from '@material-ui/utils';\nimport Menu from '../Menu/Menu';\nimport { isFilled } from '../InputBase/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\n\nfunction areEqualValues(a, b) {\n if (_typeof(b) === 'object' && b !== null) {\n return a === b;\n }\n\n return String(a) === String(b);\n}\n\nfunction isEmpty(display) {\n return display == null || typeof display === 'string' && !display.trim();\n}\n/**\n * @ignore - internal component.\n */\n\n\nvar SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, ref) {\n var ariaLabel = props['aria-label'],\n autoFocus = props.autoFocus,\n autoWidth = props.autoWidth,\n children = props.children,\n classes = props.classes,\n className = props.className,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n displayEmpty = props.displayEmpty,\n IconComponent = props.IconComponent,\n inputRefProp = props.inputRef,\n labelId = props.labelId,\n _props$MenuProps = props.MenuProps,\n MenuProps = _props$MenuProps === void 0 ? {} : _props$MenuProps,\n multiple = props.multiple,\n name = props.name,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onClose = props.onClose,\n onFocus = props.onFocus,\n onOpen = props.onOpen,\n openProp = props.open,\n readOnly = props.readOnly,\n renderValue = props.renderValue,\n _props$SelectDisplayP = props.SelectDisplayProps,\n SelectDisplayProps = _props$SelectDisplayP === void 0 ? {} : _props$SelectDisplayP,\n tabIndexProp = props.tabIndex,\n type = props.type,\n valueProp = props.value,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"aria-label\", \"autoFocus\", \"autoWidth\", \"children\", \"classes\", \"className\", \"defaultValue\", \"disabled\", \"displayEmpty\", \"IconComponent\", \"inputRef\", \"labelId\", \"MenuProps\", \"multiple\", \"name\", \"onBlur\", \"onChange\", \"onClose\", \"onFocus\", \"onOpen\", \"open\", \"readOnly\", \"renderValue\", \"SelectDisplayProps\", \"tabIndex\", \"type\", \"value\", \"variant\"]);\n\n var _useControlled = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'Select'\n }),\n _useControlled2 = _slicedToArray(_useControlled, 2),\n value = _useControlled2[0],\n setValue = _useControlled2[1];\n\n var inputRef = React.useRef(null);\n\n var _React$useState = React.useState(null),\n displayNode = _React$useState[0],\n setDisplayNode = _React$useState[1];\n\n var _React$useRef = React.useRef(openProp != null),\n isOpenControlled = _React$useRef.current;\n\n var _React$useState2 = React.useState(),\n menuMinWidthState = _React$useState2[0],\n setMenuMinWidthState = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n openState = _React$useState3[0],\n setOpenState = _React$useState3[1];\n\n var handleRef = useForkRef(ref, inputRefProp);\n React.useImperativeHandle(handleRef, function () {\n return {\n focus: function focus() {\n displayNode.focus();\n },\n node: inputRef.current,\n value: value\n };\n }, [displayNode, value]);\n React.useEffect(function () {\n if (autoFocus && displayNode) {\n displayNode.focus();\n }\n }, [autoFocus, displayNode]);\n React.useEffect(function () {\n if (displayNode) {\n var label = ownerDocument(displayNode).getElementById(labelId);\n\n if (label) {\n var handler = function handler() {\n if (getSelection().isCollapsed) {\n displayNode.focus();\n }\n };\n\n label.addEventListener('click', handler);\n return function () {\n label.removeEventListener('click', handler);\n };\n }\n }\n\n return undefined;\n }, [labelId, displayNode]);\n\n var update = function update(open, event) {\n if (open) {\n if (onOpen) {\n onOpen(event);\n }\n } else if (onClose) {\n onClose(event);\n }\n\n if (!isOpenControlled) {\n setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);\n setOpenState(open);\n }\n };\n\n var handleMouseDown = function handleMouseDown(event) {\n // Ignore everything but left-click\n if (event.button !== 0) {\n return;\n } // Hijack the default focus behavior.\n\n\n event.preventDefault();\n displayNode.focus();\n update(true, event);\n };\n\n var handleClose = function handleClose(event) {\n update(false, event);\n };\n\n var childrenArray = React.Children.toArray(children); // Support autofill.\n\n var handleChange = function handleChange(event) {\n var index = childrenArray.map(function (child) {\n return child.props.value;\n }).indexOf(event.target.value);\n\n if (index === -1) {\n return;\n }\n\n var child = childrenArray[index];\n setValue(child.props.value);\n\n if (onChange) {\n onChange(event, child);\n }\n };\n\n var handleItemClick = function handleItemClick(child) {\n return function (event) {\n if (!multiple) {\n update(false, event);\n }\n\n var newValue;\n\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n var itemIndex = value.indexOf(child.props.value);\n\n if (itemIndex === -1) {\n newValue.push(child.props.value);\n } else {\n newValue.splice(itemIndex, 1);\n }\n } else {\n newValue = child.props.value;\n }\n\n if (child.props.onClick) {\n child.props.onClick(event);\n }\n\n if (value === newValue) {\n return;\n }\n\n setValue(newValue);\n\n if (onChange) {\n event.persist(); // Preact support, target is read only property on a native event.\n\n Object.defineProperty(event, 'target', {\n writable: true,\n value: {\n value: newValue,\n name: name\n }\n });\n onChange(event, child);\n }\n };\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n if (!readOnly) {\n var validKeys = [' ', 'ArrowUp', 'ArrowDown', // The native select doesn't respond to enter on MacOS, but it's recommended by\n // https://www.w3.org/TR/wai-aria-practices/examples/listbox/listbox-collapsible.html\n 'Enter'];\n\n if (validKeys.indexOf(event.key) !== -1) {\n event.preventDefault();\n update(true, event);\n }\n }\n };\n\n var open = displayNode !== null && (isOpenControlled ? openProp : openState);\n\n var handleBlur = function handleBlur(event) {\n // if open event.stopImmediatePropagation\n if (!open && onBlur) {\n event.persist(); // Preact support, target is read only property on a native event.\n\n Object.defineProperty(event, 'target', {\n writable: true,\n value: {\n value: value,\n name: name\n }\n });\n onBlur(event);\n }\n };\n\n delete other['aria-invalid'];\n var display;\n var displaySingle;\n var displayMultiple = [];\n var computeDisplay = false;\n var foundMatch = false; // No need to display any value if the field is empty.\n\n if (isFilled({\n value: value\n }) || displayEmpty) {\n if (renderValue) {\n display = renderValue(value);\n } else {\n computeDisplay = true;\n }\n }\n\n var items = childrenArray.map(function (child) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Select component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n var selected;\n\n if (multiple) {\n if (!Array.isArray(value)) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The `value` prop must be an array when using the `Select` component with `multiple`.\" : _formatMuiErrorMessage(2));\n }\n\n selected = value.some(function (v) {\n return areEqualValues(v, child.props.value);\n });\n\n if (selected && computeDisplay) {\n displayMultiple.push(child.props.children);\n }\n } else {\n selected = areEqualValues(value, child.props.value);\n\n if (selected && computeDisplay) {\n displaySingle = child.props.children;\n }\n }\n\n if (selected) {\n foundMatch = true;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n 'aria-selected': selected ? 'true' : undefined,\n onClick: handleItemClick(child),\n onKeyUp: function onKeyUp(event) {\n if (event.key === ' ') {\n // otherwise our MenuItems dispatches a click event\n // it's not behavior of the native
\n ) : (\n option.abbreviation === agreementsFilter\n )\n : null\n }\n options={lendingMapAgreements}\n getOptionLabel={option => option.type}\n renderInput={params => (\n \n )}\n aria-label=\"Filter the lending map agreements\"\n aria-controls=\"lending-map\"\n onChange={(event, value, reason) => {\n setAgreementsFilter(value && value.abbreviation)\n }}\n />\n )}\n \n\n
\n option.name}\n renderInput={params => (\n \n )}\n aria-label=\"Filter the lending map countries\"\n aria-controls=\"lending-map\"\n onChange={(event, value, reason) => {\n setCountriesFilter(value && value.iso_a2)\n }}\n />\n
\n \n\n \n {filteredData.length === 0 ? (\n <>\n

\n No countries match the filter combination.\n

\n setAgreementsFilter()}\n >\n Clear Agreement Type filter to see results\n \n \n ) : (\n
    \n {filteredData.map((country, index) => {\n return (\n toggleTooltip(null, country)}\n onMouseLeave={() => toggleTooltip()}\n onFocus={() => toggleTooltip(null, country)}\n onBlur={() => toggleTooltip()}\n tabIndex=\"0\"\n >\n
    \n {country.name}\n
    \n
      \n {country.agreements.map((agreement, index) => {\n return (\n \n \n \n {agreement.type}\n \n {agreement.amount === 0\n ? \"* (See Agreement Overlay)\"\n : `${roundNumber(\n agreement.amount,\n \"millions\",\n \"all\"\n )}M\n SDR`}\n {agreement.augmented &&\n ` (Aug. of ${agreement.abbreviation})`}\n \n )\n })}\n
    \n \n )\n })}\n
\n )}\n \n \n )\n}\n\n// Creates the lending map tooltip, containing the information of the country passed to it\nfunction LendingMapTooltip({\n data,\n tooltipCountry,\n tooltipPosition,\n tooltipActive,\n}) {\n let country = findObject(data, \"iso_a2\", tooltipCountry)\n\n return (\n \n {country && (\n
\n
\n {country.name}\n
\n
    \n {country.agreements.map((countryAgreement, index) => {\n let agreement = findObject(\n lendingMapAgreements,\n \"abbreviation\",\n countryAgreement.abbreviation\n )\n\n return (\n \n
    \n {countryAgreement.amount === 0\n ? \"* (See Agreement Overlay)\"\n : `${roundNumber(\n countryAgreement.amount,\n \"millions\",\n \"all\"\n )}M SDR`}\n
    \n

    \n \n {countryAgreement.augmented && \"Aug. of \"}\n {countryAgreement.type}\n

    \n

    \n Approved on {countryAgreement.approval_date}\n

    \n \n )\n })}\n
\n
\n )}\n \n )\n}\n\n// Creates the lending map agreements list with numbers for the data passed to it\nfunction LendingMapAgreementsList({\n data,\n toggleMapOverlay,\n overlayAgreement,\n}) {\n return (\n
\n

\n Click on a Lending Agreement to See More Info\n

\n
\n {lendingMapAgreements.map((agreement, index) => {\n let agreementTotal = roundNumber(\n getAgreementTotal(data, agreement.abbreviation),\n \"millions\"\n )\n\n return (\n {\n toggleMapOverlay(agreement.abbreviation)\n }}\n >\n
\n {agreementTotal}\n Million SDR\n
\n

\n \n {agreement.type}\n

\n \n )\n })}\n
\n
\n )\n}\n\n// Creates the lending map overlay, containing the information of the agreement passed to it\nfunction LendingMapOverlay({\n data,\n toggleMapOverlay,\n overlayActive,\n overlayAgreement,\n overlayAgreementsHeight,\n windowSize,\n}) {\n let agreement = findObject(\n lendingMapAgreements,\n \"abbreviation\",\n overlayAgreement\n )\n\n return (\n \n {agreement && (\n \n
\n
\n

\n \n {agreement.type}\n \n ({agreement.abbreviation})\n \n

\n

\n {agreement.adopted !== \"\"\n ? `(adopted in ${agreement.adopted})`\n : null}\n

\n

\n {roundNumber(\n getAgreementTotal(data, agreement.abbreviation),\n \"millions\"\n )}\n Milllion SDR\n

\n
\n toggleMapOverlay()}\n >\n
\n
\n
\n {agreement.details.length === 1 ? (\n \n ) : (\n
\n {agreement.details.map(detail => (\n \n ))}\n
\n )}\n {agreement.footnotes && (\n \n )}\n
\n
\n \n {agreement.footnotes && (\n \n )}\n
\n
\n \n )}\n\n
\n {windowSize.width < 1440 ? (\n \n \n Current Lending Agreement\n \n {\n toggleMapOverlay(event.target.value)\n }}\n >\n {lendingMapAgreements.map(option => (\n \n {option.type}\n \n ))}\n \n \n ) : (\n \n )}\n
\n \n )\n}\n\n// Overlay subcomponent\nfunction LendingMapOverlaySection({ title, content }) {\n return (\n
\n

{title}

\n
\n
\n )\n}\n\n// Overlay subcomponent\nfunction LendingMapOverlaySectionTable({ title, data, agreementAbbreviation }) {\n let countries = filterDataByAgreement(data, agreementAbbreviation)\n\n return (\n
\n

{title}

\n \n \n \n \n \n \n \n \n \n \n {countries &&\n countries.map(country => {\n return (\n country.agreements &&\n country.agreements.map((agreement, index) => {\n let dateTimeArray = agreement.approval_date.split(\"/\")\n\n // Mutate the dateTimeArray to dateTime order\n dateTimeArray.unshift(dateTimeArray.pop())\n\n // Create and store valid dateTimeString\n let dateTimeString = dateTimeArray.join(\"-\")\n\n return (\n 0\n ? \" lending-map__overlay__table-row--secondary\"\n : \"\")\n }\n >\n \n \n \n \n \n )\n })\n )\n })}\n \n
CountryDate of ApprovalAmount (SDR)Press Release
\n {index > 0 ? (\n \n {country.name}\n \n ) : (\n country.name\n )}\n \n \n \n {agreement.amount === 0 ? (\n *\n ) : (\n \n {roundNumber(agreement.amount, \"millions\", \"all\")}\n million\n {agreement.augmented && (\n \n \n \n )}\n \n )}\n \n \n View \n \n
\n
\n )\n}\n\nfunction LendingMapAgreementDot({ color, spacingLarge }) {\n return (\n \n )\n}\n\n//\n// Utilities\n//\n\n// Returns an object containing arrays of the agreement color names and color values that match the given dataset\nfunction getColors(dataset) {\n // Initialize arrays\n let colorNames = [],\n colorValues = []\n\n dataset.agreements.forEach(datasetAgreement => {\n let agreement = findObject(\n lendingMapAgreements,\n \"abbreviation\",\n datasetAgreement.abbreviation\n )\n\n if (!colorNames.includes(agreement.color.name)) {\n colorNames.push(agreement.color.name) // Only push novel color names\n }\n\n if (!colorValues.includes(agreement.color.hex)) {\n colorValues.push(agreement.color.hex) // Only push novel color values\n }\n })\n\n return {\n colorNames,\n colorValues,\n }\n}\n\n// Returns the default fill, agreement fill, or agreement fill pattern string to be used as the fill for a country\nfunction getFill(country) {\n // Get the color names and values that apply to the country\n var { colorNames, colorValues } = getColors(country)\n\n // If there is more than one fill color, pass a predictable URL string for the fill, then generate a to inject into the svg \n if (colorNames.length > 1 && colorValues.length > 1) {\n let fillPatternString = `pattern-stripe-${colorNames.sort().join(\"-\")}`\n\n return `url('#${fillPatternString}')`\n }\n\n // If there is only one fill color, pass its value\n return colorValues[0]\n}\n\n// // Returns an array of only the countries with agreements (and only the agreements therein) that match the filter\n// // H/T https://stackoverflow.com/a/42167998\n// function filterDataByFilter(dataset, filter) {\n// return dataset.reduce(function (acc, country) {\n// const agreements = country.agreements.filter(\n// agreement => agreement[filter] === true\n// )\n// return !agreements.length\n// ? acc\n// : acc.concat(\n// Object.assign({}, country, {\n// agreements,\n// })\n// )\n// }, [])\n// }\n\n// Modified version of the above function to be consolidated later\n// Returns an array of only the countries with agreements (and only the agreements therein) that match the agreement type\nfunction filterDataByAgreement(dataset, agreementAbbreviation) {\n return dataset.reduce(function (acc, country) {\n const agreements = country.agreements.filter(\n agreement => agreement.abbreviation === agreementAbbreviation\n )\n return !agreements.length\n ? acc\n : acc.concat(\n Object.assign({}, country, {\n agreements,\n })\n )\n }, [])\n}\n\n// Returns the sum of all agreements of a given type across all countries of a dataset\nfunction getAgreementTotal(dataset, agreementAbbreviation) {\n let agreementTotal = 0 // Initialize value to avoid NaN errors\n\n dataset.forEach(item => {\n item.agreements.forEach(agreement => {\n if (agreementAbbreviation === agreement.abbreviation) {\n agreementTotal += parseInt(agreement.amount)\n }\n })\n })\n\n return agreementTotal\n}\n\n// // Returns the sum of all agreements across all countries of a dataset\n// function getAgreementsGrandTotal(dataset) {\n// let agreementsGrandTotal = 0 // Initialize the total at zero to avoid NaN errors\n//\n// dataset.forEach(item => {\n// item.agreements.forEach(agreement => {\n// agreementsGrandTotal += parseInt(agreement.amount)\n// })\n// })\n//\n// return agreementsGrandTotal\n// }\n\nexport { LendingMap as default, getColors }\n","import React from \"react\"\nimport Layout from \"../../components/layout\"\nimport { Link, withPrefix } from \"gatsby\"\nimport { AppendixWaypoint, Appendix } from \"../../components/appendix\"\nimport Hero from \"../../components/hero\"\nimport LendingMap from \"../../components/lending-map\"\nimport ReadNext from \"../../components/read-next\"\n\nconst PAGESLUG = \"lending\"\n\nexport default function Lending() {\n return (\n \n
\n \n\n
\n

\n IMF financing is meant to help member countries tackle\n balance of payments problems, stabilize their economies, and restore\n sustainable economic growth. Unlike development banks, the IMF does\n not lend for specific projects. IMF financing can also be provided\n in response to natural disasters or pandemics. Finally, the IMF also\n provides precautionary financing to countries with sound policies\n that may have some remaining vulnerabilities, to help prevent and\n insure against future crises, and it continues to enhance the tools\n available for crisis prevention.\n

\n

\n In broad terms, the IMF has two types of lending: loans provided at\n nonconcessional interest rates and loans provided to low-income\n countries on concessional terms. Concessional loans currently bear\n no interest.\n

\n
\n\n \n
\n \n
\n\n
\n

\n From the outset of the COVID-19 pandemic, the IMF has responded with\n unprecedented speed and magnitude, making use of its current lending\n capacity of about $1 trillion.¹\n

\n

\n This response has entailed provision of financial assistance to\n countries with urgent or potential balance of payments needs, with\n the aim of helping protect the lives and livelihoods of people,\n especially the most vulnerable. The Executive Board also temporarily\n streamlined internal processes early in the crisis to allow the IMF\n to respond more quickly to members’ requests for emergency\n assistance—and in many cases made emergency financing available\n within weeks of receiving a request.² In addition, the Executive\n Board temporarily suspended the application of existing high-access\n procedures for Rapid Credit Facility requests.³\n

\n

\n Policy safeguards were introduced in August 2020 to help mitigate\n financial risks from a member having combined high access to both\n PRGT and General Resources Account (GRA) lending facilities.\n Safeguards now apply to any IMF member with combined access to GRA\n and PRGT resources that exceeds quota-based thresholds set at the\n same level that triggers the exceptional access framework of the\n GRA.\n

\n

\n In addition, to accommodate high demand for IMF lending resulting\n from the crisis, the Executive Board temporarily increased (1) the\n annual access limit for the IMF’s GRA that triggers application of\n the exceptional access framework and (2) both the annual and\n cumulative access limits on concessional lending through the PRGT\n (see GRA and PRGT agreement details on Access Limits in the{\" \"}\n interactive lending map{\" \"}\n above).\n

\n \n

\n Demand for IMF emergency financing tapered off beginning in the\n third quarter of 2020, and some borrowers have moved toward\n multiyear upper-credit-tranche-quality arrangements. In addition,\n the IMF provided grants for debt service relief to its poorest and\n most vulnerable members affected by the COVID-19 pandemic.\n

\n

\n Between May 1, 2020, and April 30, 2021, the IMF’s financial\n assistance focused on the following areas:\n

\n
    \n
  1. \n
    Emergency financing under the RFI and RCF
    \n \n

    \n The IMF received a record number of requests for emergency\n financing—from 39 countries (about $17 billion, of which $6\n billion was disbursed to 26 low-income countries). The Executive\n Board temporarily doubled the access limits to the emergency\n financing facilities: the Rapid Credit Facility (RCF) and Rapid\n Financing Instrument (RFI) (see RCF and RFI agreement details on\n Access Limits in the{\" \"}\n interactive lending map{\" \"}\n above).\n

    \n
  2. \n
  3. \n
    Building on existing lending arrangements
    \n

    \n The IMF also augmented existing arrangements to accommodate\n urgent new needs arising from the pandemic within the context of\n the ongoing policy dialogue. Between May 1, 2020, and April 30,\n 2021, the Executive Board approved augmentation of arrangements\n with nine members.\n

    \n
  4. \n
  5. \n
    \n New lending arrangements, including precautionary arrangements:\n
    \n

    \n Between May 1, 2020 and April 30, 2021, the Executive Board\n approved eight new nonprecautionary IMF-supported arrangements\n with seven countries. In addition, four precautionary\n arrangements—three Flexible Credit Lines and one Precautionary\n and Liquidity Line—were made available to members.\n

    \n
  6. \n
  7. \n
    Debt service relief
    \n \n

    \n The Catastrophe Containment and Relief Trust (CCRT) allows the\n IMF to provide grants for debt relief to the poorest and most\n vulnerable member countries hit by catastrophic natural or\n public health disasters. It was enhanced in March 2020 and was\n subsequently used to provide debt service relief on a grant\n basis to the IMF's poorest members affected by the COVID-19\n pandemic. In total, 29 eligible countries have received debt\n service relief of close to SDR 520 million in three tranches,\n which were approved by the Executive Board on April 13, 2020;\n October 2, 2020; and April 1, 2021 (see CCRT agreement details\n in{\" \"}\n \n this table\n \n ).\n

    \n
  8. \n
  9. \n
    Debt relief under the HIPC Initiative
    \n \n

    \n On March 25, 2020, following Somalia’s clearance of its arrears\n to the IMF, the Executive Board determined that Somalia was\n qualified for debt relief under the enhanced Heavily Indebted\n Poor Countries (HIPC) Initiative and that Somalia had reached\n its HIPC decision point. By the end of April 2021, the Executive\n Board had approved two interim assistance payments to Somalia in\n the total amount of SDR 1.791 million to cover its financial\n obligations falling due during the periods March 25, 2020–March\n 24, 2021, and March 25, 2021– March 24, 2022. On March 26, 2021,\n the Executive Board agreed that Sudan⁴ was eligible for debt\n relief assistance under the enhanced HIPC Initiative based on\n the preliminary assessment.was eligible for debt relief\n assistance under the enhanced HIPC Initiative based on the\n preliminary assessment.\n

    \n
  10. \n
\n
    \n
  1. \n Including prepandemic commitments, as of April 30, 2021, total\n undisbursed lending commitments and credit outstanding under the\n IMF’s General Resources Account were about SDR 184 billion; the\n corresponding total under the PRGT, which provides concessional\n lending to low-income countries, was about SDR 14.8 billion.\n
  2. \n
  3. These emergency pandemic procedures lapsed in October 2020.
  4. \n
  5. \n High-access procedures require an informal Executive Board session\n based on a short staff note that includes discussion of program\n strength, capacity to repay, and debt vulnerabilities. The\n high-access procedures are triggered when (1) a request for IMF\n financing brings total access to more than 180 percent of a\n country’s quota over a 36-month period or (2) total outstanding\n credit from the PRGT exceeds or is projected to exceed 225 percent\n of a country’s quota. In March 2021, these high-access thresholds\n were temporarily increased to 240 percent of quota for the “flow\n trigger” through the end of 2023 and 300 percent for the “stock\n trigger” for the period through the end of June 2021.\n
  6. \n
  7. \n The Executive Boards of the IMF and World Bank approved Sudan’s\n eligibility for debt relief under the enhanced Heavily Indebted\n Poor Countries Initiative on June 29, 2021 (after this report was\n finalized). For more information, visit{\" \"}\n www.imf.org/sudan.\n
  8. \n
\n
\n
\n \n \n
\n )\n}\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","module","exports","x","Array","from","creatorInherit","name","document","this","ownerDocument","uri","namespaceURI","documentElement","createElement","createElementNS","creatorFixed","fullname","space","local","creator","call","nextId","Local","_","toString","constructor","get","node","id","parentNode","set","value","remove","events","sourceEvent","undefined","currentTarget","touches","event","pointer","selector","querySelectorAll","array","matches","childMatcher","prefix","indexOf","slice","xhtml","svg","xlink","xml","xmlns","ownerSVGElement","createSVGPoint","point","clientX","y","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","left","clientLeft","top","clientTop","pageX","pageY","querySelector","find","childFirst","firstElementChild","filter","children","update","EnterNode","parent","datum","_next","_parent","__data__","bindIndex","group","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","delete","ascending","a","b","NaN","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","isArray","minLen","_arrayLikeToArray","n","test","_unsupportedIterableToArray","F","s","done","e","_e","f","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","appendChild","child","insertBefore","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","apply","arguments","attrFunctionNS","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","push","join","splice","contains","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","parseTypenames","typenames","map","t","type","onRemove","typename","on","__on","j","m","removeEventListener","listener","options","onAdd","contextListener","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","_marked","_callee","groups","_context","prev","_groups","stop","root","Selection","parents","_parents","selection","select","subgroups","subnode","subgroup","selectAll","arrayAll","selectorAll","selectChild","match","childFind","selectChildren","childrenFilter","matcher","bind","constant","enterGroup","updateGroup","exitGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","append","merge","order","Error","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","size","_step","_iterator","empty","each","attr","namespace","getAttributeNS","style","property","classed","text","html","create","insert","before","deep","dispatch","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","none","defaultView","noop","Dispatch","types","hasOwnProperty","c","concat","T","copy","that","args","preventDefault","stopImmediatePropagation","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","cosh","exp","taskHead","taskTail","zoomRho","rho","rho2","rho4","zoom","p0","p1","S","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","log","d1","sqrt","b0","b1","r0","r1","coshr0","u","sinh","duration","SQRT2","_1","max","_2","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","emptyOn","emptyTween","index","timing","schedules","__transition","self","tween","schedule","state","start","tick","ease","init","active","svgNode","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","d","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","q","xa","ya","xb","yb","number","translate","scale","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","transform","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","factory","extend","definition","Color","_darker","_brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","round","h","Hsl","hslConvert","hsl2rgb","m2","basis","v0","v1","v2","v3","t3","channels","assign","displayable","formatHsl","brighter","k","pow","darker","linear","gamma","nogamma","exponential","rgbGamma","end","rgbSpline","spline","colors","values","floor","reA","reB","source","am","bm","bs","bi","lastIndex","one","zero","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","removeFunction","easeVarying","Promise","resolve","reject","cancel","interrupt","defaultTiming","ZoomEvent","_ref","defineProperties","Transform","applyX","applyY","invert","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","defaultFilter","ctrlKey","button","defaultExtent","SVGElement","hasAttribute","viewBox","width","height","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","defaultTouchable","navigator","maxTouchPoints","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","touchstarting","touchfirst","touchending","constrain","wheelDelta","touchable","scaleExtent","listeners","touchDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","centroid","gesture","p","w","clean","__zooming","Gesture","taps","_len","_key","wheel","mouse","wheelidled","_len2","_key2","mousemoved","mouseupped","x0","y0","moved","_len3","_key3","changedTouches","k1","shiftKey","_len4","_key4","started","identifier","touch0","touch1","_len5","_key5","l0","l1","dp","dl","_len6","_key6","hypot","collection","scaleBy","scaleTo","k0","translateBy","translateTo","_event","emit","clickDistance","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","for","z","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","default","geoPath","createContext","projection","projectionConfig","center","M","E","parallels","N","C","O","useMemo","forEach","useCallback","path","Provider","oneOfType","func","object","className","features","feature","objects","outline","mesh","borders","rsmKey","svgPath","geography","parseGeographies","useContext","useState","useEffect","fetch","then","ok","statusText","json","catch","console","geographies","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","tabIndex","memo","fill","stroke","geoGraticule","filterZoomEvent","onMoveStart","onMoveEnd","onMove","useRef","P","Z","G","L","B","D","U","W","R","K","current","coordinates","dragging","zoomIdentity","mapRef","position","transformString","minZoom","maxZoom","ref","arrayOf","strokeWidth","pointerEvents","to","subject","connectorProps","curve","Annotation","ComposableMap","Geographies","Geography","Graticule","Line","MapContext","MapProvider","Marker","Sphere","ZoomableGroup","useGeographies","useZoomPan","Adder","_partials","Float64Array","_n","hi","lo","abs","epsilon","epsilon2","pi","halfPi","quarterPi","tau","radians","cos","ceil","sin","sign","acos","asin","haversin","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","sphere","Point","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","lambda00","phi00","lambda0","cosPhi0","sinPhi0","phi0","lambda1","phi1","lambda2","deltaSum","ranges","areaRingSum","areaSum","areaStream","areaRingStart","areaRingEnd","areaRing","areaPointFirst","areaPoint","lambda","phi","dLambda","sdLambda","adLambda","cosPhi","sinPhi","spherical","cartesian","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","W0","W1","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","z0","boundsStream","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","linePoint","normal","inflection","phii","delta","lambdai","antimeridian","angle","rangeCompare","rangeContains","merged","deltaMax","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","cx","cy","cz","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","forward","circleStream","radius","direction","cosRadius","sinRadius","circleRadius","ring","precision","circle","line","lines","rejoin","shift","result","Intersection","points","other","entry","segments","compareIntersection","startInside","clip","segment","pointEqual","isSubject","longitude","polygon","winding","sum","point0","sinPhi1","cosPhi1","point1","absDelta","arc","intersection","phiArc","flatten","arrays","delegateYield","finish","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","polygonContains","pointLine","ringSegments","validSegment","_clean","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","cr","smallRadius","notHemisphere","visible","intersect","two","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","polar","q1","code","c0","v00","point2","lengthSum","clipMax","clipMin","clipRectangle","x1","y1","a1","corner","comparePoint","ca","cb","x__","y__","v__","x_","y_","v_","first","activeStream","bufferStream","clipStream","a0","polygonInside","cleanInside","ax","ay","cache","cacheStream","_stream","lengthStream","lengthPointFirst","lengthLineEnd","lengthPoint","cosDelta","containsObjectType","containsGeometry","containsGeometryType","containsPoint","containsLine","containsPolygon","distance","ao","bo","ab","ringRadians","pointRadians","graticuleX","graticuleY","graticule","X","Y","DX","DY","reverse","extentMajor","extentMinor","stepMajor","stepMinor","graticule10","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","x00","y00","area","bounds","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","context","_radius","pointRadius","_line","_point","closePath","moveTo","lineTo","lengthRing","PathString","_string","projectionStream","contextStream","measure","methods","transformer","TransformStream","fit","fitBounds","clipExtent","fitExtent","fitSize","fitWidth","fitHeight","_circle","cosMinDistance","project","delta2","resampleLineTo","depth","phi2","x2","y2","dx2","dy2","dz","a00","b00","c00","resampleStream","ringPoint","resampleNone","transformRadians","scaleTranslateRotate","sx","sy","alpha","scaleTranslate","cosAlpha","sinAlpha","ai","ci","fi","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","theta","preclip","postclip","recenter","resample","reset","transformRotate","clipAngle","reflectX","reflectY","conicProjection","conicEqualAreaRaw","cylindricalEqualAreaRaw","r0y","conicEqualArea","lower48Point","alaskaPoint","hawaiiPoint","lower48","albers","alaska","hawaii","pointStream","albersUsa","streams","azimuthalRaw","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","fy","equirectangularRaw","conicEquidistantRaw","gy","nx","A1","A2","A3","A4","equalEarthRaw","l2","l6","gnomonicRaw","sa","tx","ty","kx","ky","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","input","output","topology","bboxPoint","bboxGeometry","arcs","bbox","properties","transformPoint","stitchedArcs","fragmentByStart","fragmentByEnd","fragments","emptyIndex","flush","ends","fg","unshift","gf","meshArcs","extractArcs","stitch","geom","geomsByArc","extract0","extract1","extract2","extract3","geoms","mergeArcs","polygonsByArc","polygons","extract","planarRingArea","neighbors","ki","mid","indexesByArc","geometryType","indexes","ij","ik","bisect","box","untransform","inputs","outputs","quantizePoint","quantizeGeometry","isObject","String","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","DESCRIPTORS","createPropertyDescriptor","bitmap","fails","global","EXISTS","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","error","aFunction","variable","method","check","globalThis","Function","toObject","hasOwn","classof","propertyIsEnumerable","store","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","replacement","detection","normalize","POLYFILL","NATIVE","replace","IE8_DOM_DEFINE","anObject","toPrimitive","$defineProperty","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","$propertyIsEnumerable","NASHORN_BUG","V","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","uid","SHARED","IS_PURE","version","mode","copyright","toInteger","integer","IndexedObject","requireObjectCoercible","argument","PREFERRED_STRING","fn","val","valueOf","postfix","random","$","$hypot","value2","arg","div","aLen","larg","ReadNext","sectionID","pageID","loaded","setLoaded","menu","findObject","menuData","content","onChange","isVisible","partialVisibility","offset","bottom","Link","href","thumbnail","alt","deck","useWindowSize","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","_add","temp","adder","bv","av","SQRT1_2","millerRaw","LendingMapPattern","stopsNumber","patternSize","stops","gradientUnits","spreadMethod","stopColor","patterns","lendingMapData","dataItem","agreements","getColors","colorNames","colorValues","patternID","pattern","addCommas","numberString","formatNumber","roundNumber","convertTo","decimals","convertNumber","Number","_objectWithoutPropertiesLoose","excluded","sourceKeys","sourceSymbolKeys","formatMuiErrorMessage","url","encodeURIComponent","formControlState","states","muiFormControl","reduce","acc","FormControlContext","_typeof","obj","nodeType","_assertThisInitialized","ReferenceError","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","by","toCssValue","ignoreImportant","cssValue","indentStr","str","indent","toCss","_options$indent","fallbacks","fallback","prop","_prop","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","BaseStyleRule","isProcessed","renderer","renderable","sheet","Renderer","force","newValue","process","onChangeValue","isEmpty","isDefined","attached","StyleRule","_BaseStyleRule","_this","selectorText","scoped","generateId","_proto2","applyTo","toJSON","opts","link","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","styles","at","query","rules","atMatch","RuleList","_proto","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","raw","counter","classes","ruleOptions","_this$options","register","unregister","updateOne","_this$options2","styleRule","onUpdate","nextValue","_nextValue","_prevValue","css","StyleSheet","deployed","queue","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","plugin","SheetsRegistry","_temp","globalThis$1","ns","moduleId","createGenerateId","ruleCounter","jssId","classNamePrefix","minify","memoize","cssRule","attributeStyleMap","getHead","findPrevNode","registry$1","insertionPoint","findHigherSheet","element","findHighestSheet","comment","head","childNodes","nodeValue","findCommentNode","getNonce","_insertRule","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","meta","createStyle","nonce","nextNode","insertionPointElement","insertStyle","Boolean","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","setup","createStyleSheet","removeStyleSheet","getDynamicStyles","extracted","hasCSSTOMSupport","mergeClasses","baseClasses","newClasses","Component","nextClasses","key1","key2","subCache","useTheme","pseudoClasses","fnValuesNs","fnRuleNs","fnValues","fnRule","atPrefix","GlobalContainerRule","GlobalPrefixedRule","substr","separatorRegExp","addScope","scope","parts","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","hName","convertCase","converted","hyphenatedProp","px","ms","percent","addCamelCasedVersion","regExp","toUpperCase","newObj","units","border","margin","padding","right","inset","motion","perspective","gap","grid","iterate","innerProp","_innerProp","unit","camelCasedOptions","js","vendor","browser","isTouch","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","mask","longhand","textOrientation","writingMode","userSelect","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","substring","overscrollBehavior","propMap","flex2012","propMap$1","flex","propKeys","prefixCss","multiple","propertyDetectors","computed","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p2","prefixedValue","supportedValue","cacheKey","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","prop0","prop1","defaultOptions","disableGeneration","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","getNextCounterId","styleSheet","theme","createGenerateClassName","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","increment","isPlainObject","item","deepmerge","getStylesCreator","stylesOrCreator","themingEnabled","overrides","stylesWithOverrides","getClasses","stylesOptions","cacheClasses","lastProp","lastJSS","generate","_ref2","stylesCreator","sheetManager","refs","staticSheet","dynamicStyles","flip","serverGenerateClassName","dynamicSheet","_ref3","_ref4","useSynchronousEffect","currentKey","makeStyles","classNamePrefixOption","_options$defaultTheme","defaultTheme","stylesOptions2","useStyles","shouldUpdate","getThemeProps","propName","_options$withTheme","withTheme","WithStyles","innerRef","more","createBreakpoints","breakpoints","_breakpoints$values","xs","sm","md","lg","xl","_breakpoints$unit","_breakpoints$step","up","between","endIndex","down","upperbound","only","createMixins","spacing","_toolbar","gutters","warn","paddingLeft","paddingRight","toolbar","minHeight","A100","A200","A400","A700","clamp","decomposeColor","charAt","re","hexToRgb","marker","parseFloat","recomposeColor","getLuminance","hslToRgb","toFixed","emphasize","coefficient","darken","lighten","light","primary","secondary","disabled","hint","divider","background","paper","action","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","createPalette","palette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","warning","_palette$info","info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","JSON","stringify","contrastText","common","roundWithDeprecationWarning","caseAllCaps","textTransform","defaultFontFamily","createTypography","typography","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","createShadow","borderRadius","_slicedToArray","_i","_s","_arr","_d","unsupportedIterableToArray","defaultBreakpoints","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split2","dir","spacingKeys","createUnarySpacing","themeSpacing","getStyleFromPropValue","cssProperties","propValue","cssProperty","transformed","getValue","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","filterProps","createSpacing","spacingInput","mui","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","createTheme","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","shadows","shape","transitions","zIndex","capitalize","setRef","useForkRef","refA","refB","refValue","debounce","wait","debounced","later","clear","getStyleValue","computedStyle","useEnhancedEffect","visibility","overflow","rows","rowsMax","rowsMinProp","rowsMin","maxRowsProp","maxRows","_props$minRows","minRows","minRowsProp","isControlled","inputRef","handleRef","shadowRef","renders","_React$useState","setState","syncHeight","inputShallow","placeholder","boxSizing","scrollHeight","singleRowHeight","outerHeight","outerHeightStyle","prevState","readOnly","hasValue","isFilled","SSR","defaultValue","InputBase","ariaDescribedby","autoComplete","autoFocus","endAdornment","_props$fullWidth","fullWidth","_props$inputComponent","inputComponent","_props$inputProps","inputProps","inputPropsProp","inputRefProp","_props$multiline","multiline","onClick","onKeyDown","onKeyUp","renderSuffix","startAdornment","_props$type","valueProp","handleInputRefWarning","handleInputPropsRefProp","handleInputRefProp","handleInputRef","focused","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","setAdornedStart","formControl","adornedStart","adornedEnd","marginDense","onAnimationStart","animationName","required","inputMultiline","hiddenLabel","inputHiddenLabel","inputAdornedStart","inputAdornedEnd","inputTypeSearch","inputMarginDense","stopPropagation","placeholderHidden","placeholderVisible","cursor","display","alignItems","paddingTop","colorSecondary","font","WebkitTapHighlightColor","minWidth","animationDuration","boxShadow","resize","Input","disableUnderline","underline","muiName","bottomLineColor","marginTop","borderBottomColor","borderBottom","borderBottomStyle","FilledInput","backgroundColor","borderTopLeftRadius","borderTopRightRadius","paddingBottom","WebkitBoxShadow","WebkitTextFillColor","caretColor","NotchedOutline","label","labelWidthProp","labelWidth","notched","align","legendLabelled","legendNotched","dangerouslySetInnerHTML","__html","legend","borderStyle","borderWidth","textAlign","maxWidth","OutlinedInput","_props$labelWidth","notchedOutline","filled","borderColor","FormLabel","_props$component","asterisk","InputLabel","_props$disableAnimati","disableAnimation","shrinkProp","shrink","variant","animated","outlined","transformOrigin","isMuiElement","muiNames","FormControl","_props$color","_props$disabled","_props$error","visuallyFocused","_props$hiddenLabel","_props$margin","_props$required","_props$variant","initialAdornedStart","_React$useState2","initialFilled","setFilled","_React$useState3","_focused","childContext","registerEffect","flexDirection","verticalAlign","marginNormal","marginBottom","FormHelperText","contained","marginLeft","marginRight","ownerWindow","createChainedFunction","funcs","_props$disablePortal","disablePortal","onRendered","mountNode","setMountNode","getContainer","body","useEventCallback","getScrollbarSize","scrollDiv","scrollbarSize","offsetWidth","ariaHidden","show","getPaddingRight","ariaHiddenSiblings","currentNode","nodesToExclude","blacklistTagNames","tagName","findIndexOf","containerInfo","idx","some","handleContainer","fixedNodes","restoreStyle","restorePaddings","disableScrollLock","doc","isOverflowing","parentElement","scrollContainer","nodeName","ModalManager","modals","containers","modalIndex","modalRef","hiddenSiblingNodes","hiddenSiblings","getHiddenSiblings","containerIndex","restore","nextTop","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","isEnabled","open","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","rootRef","handleOwnRef","prevOpenRef","activeElement","contain","hasFocus","loopFocus","keyCode","invisible","_props$invisible","defaultManager","inProps","_props$BackdropCompon","BackdropComponent","BackdropProps","_props$closeAfterTran","closeAfterTransition","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$disableScrollL","_props$hideBackdrop","hideBackdrop","_props$keepMounted","keepMounted","_props$manager","manager","onBackdropClick","onClose","onEscapeKeyDown","exited","setExited","mountNodeRef","hasTransition","getHasTransition","getModal","handleMounted","mount","scrollTop","handleOpen","resolvedContainer","isTopModal","handlePortalRef","handleClose","inlineStyle","hidden","childProps","onEnter","onExited","role","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","_this2","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEntering","onTransitionEnd","_this3","onExit","onExiting","nextState","setNextCallback","_this4","handler","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","_this$props","TransitionGroupContext","getTransitionProps","_props$style","transitionDuration","transitionDelay","getScale","entering","entered","Grow","_props$disableStrictM","disableStrictModeCompat","inProp","_props$timeout","_props$TransitionComp","TransitionComponent","autoTimeout","enableStrictModeCompat","unstable_strictMode","foreignRef","normalizedTransitionCallback","nodeOrAppearing","isAppearing","handleEntering","handleEnter","reflow","_getTransitionProps","handleEntered","handleExiting","handleExit","_getTransitionProps2","handleExited","nodeOrNext","maybeNext","muiSupportAuto","Paper","_props$square","square","_props$elevation","elevation","rounded","elevations","shadow","getOffsetTop","vertical","getOffsetLeft","horizontal","getTransformOriginValue","getAnchorEl","anchorEl","Popover","_props$anchorOrigin","anchorOrigin","anchorPosition","_props$anchorReferenc","anchorReference","containerProp","getContentAnchorEl","_props$marginThreshol","marginThreshold","_props$PaperProps","PaperProps","_props$transformOrigi","_props$transitionDura","transitionDurationProp","_props$TransitionProp","TransitionProps","paperRef","getAnchorOffset","contentAnchorOffset","resolvedAnchorEl","anchorRect","anchorVertical","getContentAnchorOffset","contentAnchorEl","getScrollParent","offsetTop","getTransformOrigin","elemRect","getPositioningStyle","offsetHeight","elemTransformOrigin","anchorOffset","containerWindow","heightThreshold","widthThreshold","diff","_diff","_diff2","_diff3","setPositioningStyles","positioning","handlePaperRef","updatePosition","overflowY","overflowX","maxHeight","List","_props$dense","dense","_props$disablePadding","disablePadding","subheader","listStyle","nextItem","disableListWrap","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","actions","_props$autoFocus","_props$autoFocusItem","autoFocusItem","_props$disabledItemsF","_props$disableListWra","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","activeItemIndex","items","newChildProps","criteria","lowerKey","currTime","keepFocusOnCurrent","RTL_ORIGIN","LTR_ORIGIN","Menu","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onEnteringProp","PopoverClasses","menuListActionsRef","contentAnchorRef","WebkitOverflowScrolling","useControlled","controlled","defaultProp","valueState","setValue","areEqualValues","ariaLabel","autoWidth","displayEmpty","IconComponent","labelId","_props$MenuProps","MenuProps","onOpen","openProp","renderValue","_props$SelectDisplayP","SelectDisplayProps","tabIndexProp","_useControlled2","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","openState","setOpenState","getElementById","getSelection","isCollapsed","displaySingle","childrenArray","handleItemClick","itemIndex","persist","displayMultiple","computeDisplay","menuMinWidth","buttonId","selectMenu","nativeInput","iconOpen","SvgIcon","_props$fontSize","htmlColor","titleAccess","_props$viewBox","focusable","flexShrink","colorPrimary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","createSvgIcon","textOverflow","whiteSpace","iconFilled","iconOutlined","defaultInput","NativeSelect","_props$IconComponent","ArrowDropDown","_props$input","Select","_props$autoWidth","_props$displayEmpty","_props$multiple","_props$native","native","variantProps","variantComponent","TextField","FormHelperTextProps","helperText","InputLabelProps","InputProps","_props$select","SelectProps","InputMore","_InputLabelProps$requ","displayRequired","helperTextId","inputLabelId","InputElement","htmlFor","timeoutDuration","longerTimeoutBrowsers","userAgent","called","scheduled","isFunction","functionToCheck","getStyleComputedProperty","getParentNode","host","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","getRoot","findCommonOffsetParent","element1","element2","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","getSize","getWindowSizes","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","findIndex","cur","enabled","isDestroyed","arrowStyles","attributes","flipped","positionFixed","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isNumeric","isFinite","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","BEHAVIORS","parseOffset","basePlacement","useHeight","frag","search","splitRegex","ops","op","mergeWithPrevious","toValue","index2","Defaults","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","escapeWithReference","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","jquery","Utils","PopperUtils","defaultPopperOptions","_props$placement","initialPlacement","_props$popperOptions","popperOptions","popperRefProp","popperRef","_props$transition","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","rtlPlacement","flipPlacement","setPlacement","handlePopperUpdate","ListSubheader","_props$disableGutters","disableGutters","_props$disableSticky","disableSticky","_props$inset","sticky","colorInherit","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","password","date","month","week","datetime","handleKeyDown","metaKey","altKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","isContentEditable","handleBlurVisible","useIsFocusVisible","onBlurVisible","getChildMapping","mapFn","Children","isValidElement","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","cloneElement","TransitionGroup","contextValue","firstRender","mounted","currentChildMapping","childFactory","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","_props$onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","TouchRipple","_props$center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","_options$pulsate","_options$center","_options$fakeElement","fakeElement","sizeX","sizeY","animation","ButtonBase","buttonRefProp","buttonRef","_props$centerRipple","centerRipple","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusRipple","focusVisibleClassName","onFocusVisible","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","_props$tabIndex","TouchRippleProps","rippleRef","focusVisible","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","handleUserRef","mountedState","setMountedState","enableTouchRipple","justifyContent","textDecoration","IconButton","_props$edge","edge","_props$disableFocusRi","disableFocusRipple","_props$size","edgeStart","edgeEnd","sizeSmall","isDeleteKeyboardEvent","keyboardEvent","Chip","avatarProp","avatar","clickableProp","clickable","deleteIconProp","deleteIcon","iconProp","onDelete","chipRef","handleDeleteIconClick","small","moreProps","customClasses","deleteIconSmall","Cancel","avatarSmall","iconSmall","outlinedPrimary","outlinedSecondary","deletable","blur","labelSmall","deleteIconColor","clickableColorPrimary","clickableColorSecondary","deletableColorPrimary","deletableColorSecondary","avatarColorPrimary","avatarColorSecondary","iconColorPrimary","iconColorSecondary","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","stripDiacritics","comp","defaultFilterOptions","_config$ignoreAccents","ignoreAccents","_config$ignoreCase","ignoreCase","limit","_config$matchFrom","matchFrom","_config$trim","inputValue","getOptionLabel","filteredOptions","option","candidate","createFilterOptions","useAutocomplete","_props$autoComplete","_props$autoHighlight","autoHighlight","_props$autoSelect","autoSelect","_props$blurOnSelect","blurOnSelect","_props$clearOnBlur","clearOnBlur","freeSolo","_props$clearOnEscape","clearOnEscape","_props$componentName","componentName","_props$debug","debug","_props$defaultValue","_props$disableClearab","disableClearable","_props$disableCloseOn","disableCloseOnSelect","_props$filterOptions","filterOptions","_props$filterSelected","filterSelectedOptions","_props$freeSolo","getOptionDisabled","_props$getOptionLabel","getOptionLabelProp","_props$getOptionSelec","getOptionSelected","groupBy","_props$handleHomeEndK","handleHomeEndKeys","idProp","_props$includeInputIn","includeInputInList","inputValueProp","onHighlightChange","onInputChange","_props$openOnFocus","openOnFocus","_props$selectOnFocus","selectOnFocus","idOverride","defaultId","setDefaultId","useId","ignoreFocus","firstFocus","listboxRef","setAnchorEl","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","_useControlled4","setInputValue","resetInputValue","newInputValue","optionLabel","_useControlled6","inputValueIsSelectedValue","popupOpen","focusTag","tagToFocus","setHighlightedIndex","_ref2$reason","reason","listboxNode","scrollBottom","elementBottom","changeHighlightedIndex","_ref3$direction","_ref3$reason","nextIndex","validOptionIndex","newIndex","getNextIndex","setSelectionRange","syncHighlightedIndex","valueItem","currentOption","optionItem","handleListboxRef","handleValue","details","selectNewValue","reasonProp","origin","handleFocusTag","nextTag","validTagIndex","handleClear","which","handleInputChange","handleOptionMouseOver","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleClick","selectionEnd","selectionStart","handleInputMouseDown","dirty","groupedOptions","getRootProps","getInputLabelProps","getInputProps","autoCapitalize","spellCheck","getClearProps","getPopupIndicatorProps","getTagProps","getListboxProps","getOptionProps","_ref5","onMouseOver","DisablePortal","Close","Autocomplete","ChipProps","_props$clearText","clearText","_props$closeIcon","closeIcon","_props$closeText","closeText","_props$forcePopupIcon","forcePopupIcon","_props$getLimitTagsTe","getLimitTagsText","_props$limitTags","limitTags","_props$ListboxCompone","ListboxComponent","ListboxProps","_props$loading","loading","_props$loadingText","loadingText","_props$noOptionsText","noOptionsText","_props$openText","openText","_props$PaperComponent","PaperComponent","_props$PopperComponen","PopperComponent","PopperComponentProp","_props$popupIcon","popupIcon","renderGroupProp","renderGroup","renderInput","renderOptionProp","renderOption","renderTags","_useAutocomplete","getCustomizedTagProps","tag","tagSizeSmall","groupLabel","groupUl","renderListOption","optionProps","hasClearIcon","hasPopupIcon","inputRoot","title","clearIndicator","clearIndicatorDirty","popupIndicator","popupIndicatorOpen","inputFocused","popperDisablePortal","noOptions","listbox","option2","_option","flexWrap","flexGrow","ListItem","_props$alignItems","_props$button","childrenProp","componentProp","_props$ContainerCompo","ContainerComponent","_props$ContainerProps","ContainerProps","ContainerClassName","_props$divider","_props$selected","listItemRef","hasSecondaryAction","componentProps","alignItemsFlexStart","secondaryAction","backgroundClip","MenuItem","ListItemClasses","_props$role","LendingMap","mapInnerWrapperRef","agreementsFilter","setAgreementsFilter","countriesFilter","setCountriesFilter","tooltipActive","setTooltipActive","tooltipCountry","setTooltipCountry","positionLeft","tooltipPosition","setTooltipPosition","overlayActive","setOverlayActive","overlayAgreement","setOverlayAgreement","overlayAgreementsHeight","setOverlayAgreementsHeight","customProjection","filteredData","filterDataByAgreement","toggleTooltip","country","countryRect","inAsiaOceania","iso_a2","continent","nullShape","toggleMapOverlay","agreementAbbreviation","overlay","getElementsByClassName","scrollTo","handleKeydown","overlayAgreements","LendingMapFilterBar","geo","CONTINENT","ISO_A2","activeCountry","getFill","lakes","LendingMapAgreementsList","LendingMapTooltip","LendingMapOverlay","lendingMapAgreements","abbreviation","agreement","LendingMapAgreementDot","amount","augmented","countryAgreement","approval_date","agreementTotal","getAgreementTotal","isOpen","overlayClassName","bodyOpenClassName","spacingLarge","adopted","LendingMapOverlaySection","footnotes","LendingMapOverlaySectionTable","countries","dateTimeArray","dateTimeString","dateTime","rel","dataset","datasetAgreement","PAGESLUG","Lending","image","page","withPrefix","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","regeneratorRuntime","accidentalStrictMode"],"sourceRoot":""}