1 | {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/moment-timezone/index.js","webpack:///./node_modules/azure-maps-control/dist/atlas.min.js","webpack:///./src/packages/pikaday/pikaday.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/awesomplete/awesomplete.js","webpack:///./node_modules/moment-timezone/moment-timezone.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///(webpack)/buildin/global.js","webpack:///./src/UXClient/Constants/Enums.ts","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/descending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/blur.js","webpack:///./node_modules/d3-array/src/count.js","webpack:///./node_modules/d3-array/src/cross.js","webpack:///./node_modules/d3-array/src/cumsum.js","webpack:///./node_modules/d3-array/src/variance.js","webpack:///./node_modules/d3-array/src/deviation.js","webpack:///./node_modules/d3-array/src/extent.js","webpack:///./node_modules/d3-array/src/fsum.js","webpack:///./node_modules/internmap/src/index.js","webpack:///./node_modules/d3-array/src/identity.js","webpack:///./node_modules/d3-array/src/group.js","webpack:///./node_modules/d3-array/src/permute.js","webpack:///./node_modules/d3-array/src/sort.js","webpack:///./node_modules/d3-array/src/groupSort.js","webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/constant.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/nice.js","webpack:///./node_modules/d3-array/src/threshold/sturges.js","webpack:///./node_modules/d3-array/src/bin.js","webpack:///./node_modules/d3-array/src/max.js","webpack:///./node_modules/d3-array/src/maxIndex.js","webpack:///./node_modules/d3-array/src/min.js","webpack:///./node_modules/d3-array/src/minIndex.js","webpack:///./node_modules/d3-array/src/quickselect.js","webpack:///./node_modules/d3-array/src/greatest.js","webpack:///./node_modules/d3-array/src/quantile.js","webpack:///./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack:///./node_modules/d3-array/src/threshold/scott.js","webpack:///./node_modules/d3-array/src/mean.js","webpack:///./node_modules/d3-array/src/median.js","webpack:///./node_modules/d3-array/src/merge.js","webpack:///./node_modules/d3-array/src/mode.js","webpack:///./node_modules/d3-array/src/pairs.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/rank.js","webpack:///./node_modules/d3-array/src/least.js","webpack:///./node_modules/d3-array/src/leastIndex.js","webpack:///./node_modules/d3-array/src/greatestIndex.js","webpack:///./node_modules/d3-array/src/scan.js","webpack:///./node_modules/d3-array/src/shuffle.js","webpack:///./node_modules/d3-array/src/sum.js","webpack:///./node_modules/d3-array/src/transpose.js","webpack:///./node_modules/d3-array/src/zip.js","webpack:///./node_modules/d3-array/src/every.js","webpack:///./node_modules/d3-array/src/some.js","webpack:///./node_modules/d3-array/src/filter.js","webpack:///./node_modules/d3-array/src/map.js","webpack:///./node_modules/d3-array/src/reduce.js","webpack:///./node_modules/d3-array/src/reverse.js","webpack:///./node_modules/d3-array/src/difference.js","webpack:///./node_modules/d3-array/src/disjoint.js","webpack:///./node_modules/d3-array/src/intersection.js","webpack:///./node_modules/d3-array/src/superset.js","webpack:///./node_modules/d3-array/src/subset.js","webpack:///./node_modules/d3-array/src/union.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-drag/src/noevent.js","webpack:///./node_modules/d3-drag/src/nodrag.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-color/src/lab.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-interpolate/src/hsl.js","webpack:///./node_modules/d3-interpolate/src/hcl.js","webpack:///./node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-selection/src/pointer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-transition/src/active.js","webpack:///./node_modules/d3-brush/src/constant.js","webpack:///./node_modules/d3-brush/src/event.js","webpack:///./node_modules/d3-brush/src/noevent.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-chord/src/math.js","webpack:///./node_modules/d3-chord/src/chord.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-chord/src/array.js","webpack:///./node_modules/d3-chord/src/constant.js","webpack:///./node_modules/d3-chord/src/ribbon.js","webpack:///./node_modules/d3/node_modules/d3-color/src/define.js","webpack:///./node_modules/d3/node_modules/d3-color/src/color.js","webpack:///./node_modules/d3/node_modules/d3-color/src/math.js","webpack:///./node_modules/d3/node_modules/d3-color/src/lab.js","webpack:///./node_modules/d3/node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-contour/src/array.js","webpack:///./node_modules/d3-contour/src/ascending.js","webpack:///./node_modules/d3-contour/src/constant.js","webpack:///./node_modules/d3-contour/src/contains.js","webpack:///./node_modules/d3-contour/src/noop.js","webpack:///./node_modules/d3-contour/src/contours.js","webpack:///./node_modules/d3-contour/src/area.js","webpack:///./node_modules/d3-contour/src/density.js","webpack:///./node_modules/robust-predicates/esm/util.js","webpack:///./node_modules/robust-predicates/esm/orient2d.js","webpack:///./node_modules/robust-predicates/esm/orient3d.js","webpack:///./node_modules/robust-predicates/esm/incircle.js","webpack:///./node_modules/robust-predicates/esm/insphere.js","webpack:///./node_modules/delaunator/index.js","webpack:///./node_modules/d3-delaunay/src/path.js","webpack:///./node_modules/d3-delaunay/src/polygon.js","webpack:///./node_modules/d3-delaunay/src/voronoi.js","webpack:///./node_modules/d3-delaunay/src/delaunay.js","webpack:///./node_modules/d3-drag/src/constant.js","webpack:///./node_modules/d3-drag/src/event.js","webpack:///./node_modules/d3-drag/src/drag.js","webpack:///./node_modules/d3-dsv/src/dsv.js","webpack:///./node_modules/d3-dsv/src/csv.js","webpack:///./node_modules/d3-dsv/src/tsv.js","webpack:///./node_modules/d3-dsv/src/autoType.js","webpack:///./node_modules/d3-ease/src/linear.js","webpack:///./node_modules/d3-ease/src/quad.js","webpack:///./node_modules/d3-ease/src/poly.js","webpack:///./node_modules/d3-ease/src/sin.js","webpack:///./node_modules/d3-ease/src/math.js","webpack:///./node_modules/d3-ease/src/exp.js","webpack:///./node_modules/d3-ease/src/circle.js","webpack:///./node_modules/d3-ease/src/bounce.js","webpack:///./node_modules/d3-ease/src/back.js","webpack:///./node_modules/d3-ease/src/elastic.js","webpack:///./node_modules/d3-fetch/src/blob.js","webpack:///./node_modules/d3-fetch/src/buffer.js","webpack:///./node_modules/d3-fetch/src/text.js","webpack:///./node_modules/d3-fetch/src/dsv.js","webpack:///./node_modules/d3-fetch/src/image.js","webpack:///./node_modules/d3-fetch/src/json.js","webpack:///./node_modules/d3-fetch/src/xml.js","webpack:///./node_modules/d3-force/src/center.js","webpack:///./node_modules/d3-quadtree/src/add.js","webpack:///./node_modules/d3-quadtree/src/cover.js","webpack:///./node_modules/d3-quadtree/src/quad.js","webpack:///./node_modules/d3-quadtree/src/x.js","webpack:///./node_modules/d3-quadtree/src/y.js","webpack:///./node_modules/d3-quadtree/src/quadtree.js","webpack:///./node_modules/d3-quadtree/src/data.js","webpack:///./node_modules/d3-quadtree/src/extent.js","webpack:///./node_modules/d3-quadtree/src/find.js","webpack:///./node_modules/d3-quadtree/src/remove.js","webpack:///./node_modules/d3-quadtree/src/root.js","webpack:///./node_modules/d3-quadtree/src/size.js","webpack:///./node_modules/d3-quadtree/src/visit.js","webpack:///./node_modules/d3-quadtree/src/visitAfter.js","webpack:///./node_modules/d3-force/src/constant.js","webpack:///./node_modules/d3-force/src/jiggle.js","webpack:///./node_modules/d3-force/src/collide.js","webpack:///./node_modules/d3-force/src/link.js","webpack:///./node_modules/d3-force/src/lcg.js","webpack:///./node_modules/d3-force/src/simulation.js","webpack:///./node_modules/d3-force/src/manyBody.js","webpack:///./node_modules/d3-force/src/radial.js","webpack:///./node_modules/d3-force/src/x.js","webpack:///./node_modules/d3-force/src/y.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-geo/src/area.js","webpack:///./node_modules/d3-geo/src/bounds.js","webpack:///./node_modules/d3-geo/src/cartesian.js","webpack:///./node_modules/d3-geo/src/centroid.js","webpack:///./node_modules/d3-geo/src/constant.js","webpack:///./node_modules/d3-geo/src/compose.js","webpack:///./node_modules/d3-geo/src/rotation.js","webpack:///./node_modules/d3-geo/src/circle.js","webpack:///./node_modules/d3-geo/src/clip/buffer.js","webpack:///./node_modules/d3-geo/src/pointEqual.js","webpack:///./node_modules/d3-geo/src/clip/rejoin.js","webpack:///./node_modules/d3-geo/src/polygonContains.js","webpack:///./node_modules/d3-geo/src/clip/index.js","webpack:///./node_modules/d3-geo/src/clip/antimeridian.js","webpack:///./node_modules/d3-geo/src/clip/circle.js","webpack:///./node_modules/d3-geo/src/clip/rectangle.js","webpack:///./node_modules/d3-geo/src/clip/line.js","webpack:///./node_modules/d3-geo/src/clip/extent.js","webpack:///./node_modules/d3-geo/src/length.js","webpack:///./node_modules/d3-geo/src/distance.js","webpack:///./node_modules/d3-geo/src/contains.js","webpack:///./node_modules/d3-geo/src/graticule.js","webpack:///./node_modules/d3-geo/src/interpolate.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/d3-geo/src/transform.js","webpack:///./node_modules/d3-geo/src/projection/fit.js","webpack:///./node_modules/d3-geo/src/projection/resample.js","webpack:///./node_modules/d3-geo/src/projection/index.js","webpack:///./node_modules/d3-geo/src/projection/conic.js","webpack:///./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/albers.js","webpack:///./node_modules/d3-geo/src/projection/albersUsa.js","webpack:///./node_modules/d3-geo/src/projection/azimuthal.js","webpack:///./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack:///./node_modules/d3-geo/src/projection/mercator.js","webpack:///./node_modules/d3-geo/src/projection/conicConformal.js","webpack:///./node_modules/d3-geo/src/projection/equirectangular.js","webpack:///./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack:///./node_modules/d3-geo/src/projection/equalEarth.js","webpack:///./node_modules/d3-geo/src/projection/gnomonic.js","webpack:///./node_modules/d3-geo/src/projection/identity.js","webpack:///./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack:///./node_modules/d3-geo/src/projection/orthographic.js","webpack:///./node_modules/d3-geo/src/projection/stereographic.js","webpack:///./node_modules/d3-geo/src/projection/transverseMercator.js","webpack:///./node_modules/d3-hierarchy/src/cluster.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/d3-hierarchy/src/accessors.js","webpack:///./node_modules/d3-hierarchy/src/constant.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/find.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack:///./node_modules/d3-hierarchy/src/lcg.js","webpack:///./node_modules/d3-hierarchy/src/pack/enclose.js","webpack:///./node_modules/d3-hierarchy/src/array.js","webpack:///./node_modules/d3-hierarchy/src/pack/siblings.js","webpack:///./node_modules/d3-hierarchy/src/pack/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/round.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/d3-hierarchy/src/partition.js","webpack:///./node_modules/d3-hierarchy/src/stratify.js","webpack:///./node_modules/d3-hierarchy/src/tree.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/d3-hierarchy/src/treemap/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/discrete.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/hue.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/hsl.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/lab.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/hcl.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/piecewise.js","webpack:///./node_modules/d3/node_modules/d3-interpolate/src/quantize.js","webpack:///./node_modules/d3-polygon/src/area.js","webpack:///./node_modules/d3-polygon/src/centroid.js","webpack:///./node_modules/d3-polygon/src/hull.js","webpack:///./node_modules/d3-polygon/src/cross.js","webpack:///./node_modules/d3-polygon/src/contains.js","webpack:///./node_modules/d3-polygon/src/length.js","webpack:///./node_modules/d3-random/src/defaultSource.js","webpack:///./node_modules/d3-random/src/uniform.js","webpack:///./node_modules/d3-random/src/int.js","webpack:///./node_modules/d3-random/src/normal.js","webpack:///./node_modules/d3-random/src/logNormal.js","webpack:///./node_modules/d3-random/src/irwinHall.js","webpack:///./node_modules/d3-random/src/bates.js","webpack:///./node_modules/d3-random/src/exponential.js","webpack:///./node_modules/d3-random/src/pareto.js","webpack:///./node_modules/d3-random/src/bernoulli.js","webpack:///./node_modules/d3-random/src/geometric.js","webpack:///./node_modules/d3-random/src/gamma.js","webpack:///./node_modules/d3-random/src/beta.js","webpack:///./node_modules/d3-random/src/binomial.js","webpack:///./node_modules/d3-random/src/weibull.js","webpack:///./node_modules/d3-random/src/cauchy.js","webpack:///./node_modules/d3-random/src/logistic.js","webpack:///./node_modules/d3-random/src/poisson.js","webpack:///./node_modules/d3-random/src/lcg.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-scale/src/identity.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/d3-scale/src/symlog.js","webpack:///./node_modules/d3-scale/src/pow.js","webpack:///./node_modules/d3-scale/src/radial.js","webpack:///./node_modules/d3-scale/src/quantile.js","webpack:///./node_modules/d3-scale/src/quantize.js","webpack:///./node_modules/d3-scale/src/threshold.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time/src/ticks.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/d3-scale/src/sequential.js","webpack:///./node_modules/d3-scale/src/sequentialQuantile.js","webpack:///./node_modules/d3-scale/node_modules/d3-interpolate/src/piecewise.js","webpack:///./node_modules/d3-scale/src/diverging.js","webpack:///./node_modules/d3-scale-chromatic/src/colors.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack:///./node_modules/d3-scale-chromatic/src/ramp.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack:///./node_modules/d3-selection/src/create.js","webpack:///./node_modules/d3-selection/src/local.js","webpack:///./node_modules/d3-selection/src/pointers.js","webpack:///./node_modules/d3-selection/src/selectAll.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/area.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-shape/src/curve/radial.js","webpack:///./node_modules/d3-shape/src/lineRadial.js","webpack:///./node_modules/d3-shape/src/areaRadial.js","webpack:///./node_modules/d3-shape/src/pointRadial.js","webpack:///./node_modules/d3-shape/src/curve/bump.js","webpack:///./node_modules/d3-shape/src/link.js","webpack:///./node_modules/d3-shape/src/symbol/asterisk.js","webpack:///./node_modules/d3-shape/src/symbol/circle.js","webpack:///./node_modules/d3-shape/src/symbol/cross.js","webpack:///./node_modules/d3-shape/src/symbol/diamond.js","webpack:///./node_modules/d3-shape/src/symbol/diamond2.js","webpack:///./node_modules/d3-shape/src/symbol/plus.js","webpack:///./node_modules/d3-shape/src/symbol/square.js","webpack:///./node_modules/d3-shape/src/symbol/square2.js","webpack:///./node_modules/d3-shape/src/symbol/star.js","webpack:///./node_modules/d3-shape/src/symbol/triangle.js","webpack:///./node_modules/d3-shape/src/symbol/triangle2.js","webpack:///./node_modules/d3-shape/src/symbol/wye.js","webpack:///./node_modules/d3-shape/src/symbol/x.js","webpack:///./node_modules/d3-shape/src/symbol.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/diverging.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./node_modules/d3-shape/src/order/appearance.js","webpack:///./node_modules/d3-shape/src/order/ascending.js","webpack:///./node_modules/d3-shape/src/order/descending.js","webpack:///./node_modules/d3-shape/src/order/insideOut.js","webpack:///./node_modules/d3-shape/src/order/reverse.js","webpack:///./node_modules/d3-time-format/src/isoFormat.js","webpack:///./node_modules/d3-time-format/src/isoParse.js","webpack:///./node_modules/d3-timer/src/interval.js","webpack:///./node_modules/d3-zoom/src/constant.js","webpack:///./node_modules/d3-zoom/src/event.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/noevent.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./src/UXClient/Constants/Constants.ts","webpack:///./src/UXClient/Utils/index.ts","webpack:///./src/UXClient/Utils/Utils.ts","webpack:///./src/ServerClient/ServerClient.ts","webpack:///./node_modules/d3-voronoi/src/constant.js","webpack:///./node_modules/d3-voronoi/src/point.js","webpack:///./node_modules/d3-voronoi/src/RedBlackTree.js","webpack:///./node_modules/d3-voronoi/src/Edge.js","webpack:///./node_modules/d3-voronoi/src/Cell.js","webpack:///./node_modules/d3-voronoi/src/Circle.js","webpack:///./node_modules/d3-voronoi/src/Beach.js","webpack:///./node_modules/d3-voronoi/src/Diagram.js","webpack:///./node_modules/d3-voronoi/src/voronoi.js","webpack:///./src/UXClient/Components/Legend/Legend.ts","webpack:///./src/UXClient/Models/Strings.ts","webpack:///./src/UXClient/Models/ChartOptions.ts","webpack:///./src/UXClient/Interfaces/Component.ts","webpack:///./src/UXClient/Models/ChartComponentData.ts","webpack:///./src/UXClient/Components/EllipsisMenu/EllipsisMenu.ts","webpack:///./node_modules/split.js/dist/split.es.js","webpack:///./src/UXClient/Components/Grid/Grid.ts","webpack:///./src/UXClient/Interfaces/ChartComponent.ts","webpack:///./src/UXClient/Models/ChartDataOptions.ts","webpack:///./src/UXClient/Interfaces/ChartVisualizationComponent.ts","webpack:///./src/UXClient/Interfaces/TemporalXAxisComponent.ts","webpack:///./src/UXClient/Models/LineChartData.ts","webpack:///./src/UXClient/Components/ContextMenu/ContextMenu.ts","webpack:///./src/UXClient/Components/Tooltip/Tooltip.ts","webpack:///./node_modules/d3-interpolate-path/build/d3-interpolate-path.mjs","webpack:///./src/UXClient/Components/HierarchyNavigation/HierarchyNavigation.ts","webpack:///./src/UXClient/Interfaces/Plot.ts","webpack:///./src/UXClient/Components/LinePlot/LinePlot.ts","webpack:///./src/UXClient/Components/CategoricalPlot/CategoricalPlot.ts","webpack:///./src/UXClient/Components/EventsPlot/EventsPlot.ts","webpack:///./src/UXClient/Models/AxisState.ts","webpack:///./src/UXClient/Components/Marker/Marker.ts","webpack:///./src/UXClient/Components/LineChart/LineChart.ts","webpack:///./src/UXClient/Components/TimezonePicker/TimezonePicker.ts","webpack:///./src/UXClient/Components/DateTimePicker/DateTimePicker.ts","webpack:///./src/UXClient/Interfaces/DateTimeButton.ts","webpack:///./src/UXClient/Components/DateTimeButtonRange/DateTimeButtonRange.ts","webpack:///./src/UXClient/Components/AvailabilityChart/AvailabilityChart.ts","webpack:///./src/UXClient/Models/GroupedBarChartData.ts","webpack:///./src/UXClient/Models/PieChartData.ts","webpack:///./src/UXClient/Components/Slider/Slider.ts","webpack:///./src/UXClient/Components/PieChart/PieChart.ts","webpack:///./src/UXClient/Models/ScatterPlotData.ts","webpack:///./src/UXClient/Components/ScatterPlot/ScatterPlot.ts","webpack:///./src/UXClient/Components/GroupedBarChart/GroupedBarChart.ts","webpack:///./src/UXClient/Models/HierarchyNode.ts","webpack:///./src/UXClient/Components/Hierarchy/Hierarchy.ts","webpack:///./src/UXClient/Models/AggregateExpression.ts","webpack:///./src/UXClient/Models/HeatmapData.ts","webpack:///./src/UXClient/Components/HeatmapCanvas/HeatmapCanvas.ts","webpack:///./src/UXClient/Components/Heatmap/Heatmap.ts","webpack:///./src/UXClient/Models/TimeSeriesEventCell.ts","webpack:///./src/UXClient/Models/TimeSeriesEvent.ts","webpack:///./src/UXClient/Models/EventsTableData.ts","webpack:///./src/UXClient/Components/EventsTable/EventsTable.ts","webpack:///./src/UXClient/Components/ModelAutocomplete/ModelAutocomplete.ts","webpack:///./src/UXClient/Components/ModelSearch/ModelSearch.ts","webpack:///./src/UXClient/Models/TsqExpression.ts","webpack:///./src/UXClient/Components/SingleDateTimePicker/SingleDateTimePicker.ts","webpack:///./src/UXClient/Components/DateTimeButtonSingle/DateTimeButtonSingle.ts","webpack:///./src/UXClient/Components/PlaybackControls/PlaybackControls.ts","webpack:///./src/UXClient/Models/TsqRange.ts","webpack:///./src/UXClient/Components/HistoryPlayback/HistoryPlayback.ts","webpack:///./src/UXClient/Components/ProcessGraphic/ProcessGraphic.ts","webpack:///./src/UXClient/Components/ColorPicker/ColorPicker.ts","webpack:///./src/UXClient/Components/GeoProcessGraphic/GeoProcessGraphic.ts","webpack:///./src/UXClient/Utils/Transformers.ts","webpack:///./src/UXClient/UXClient.ts","webpack:///./src/TsiClient.ts"],"names":["root","factory","exports","module","define","amd","a","i","window","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","hookCallback","some","hooks","apply","arguments","setHookCallback","callback","isArray","input","Array","toString","isObject","hasOwnProp","b","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","h","hh","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","tz","load","globalThis","global","self","workerUrl","URL","createObjectURL","Blob","type","cx","bx","ax","cy","by","ay","p1x","p1y","p2x","p2y","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","solve","ct","_add","sub","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","_mult","div","_div","rotate","_rotate","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","mag","sqrt","equals","dist","distSqr","angle","atan2","angleTo","angleWith","angleWithSep","cos","sin","convert","f","random","g","v","_","pt","WorkerGlobalScope","S","T","navigator","userAgent","safari","I","setItem","removeItem","C","A","P","performance","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","D","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","O","frame","cancel","getImageData","document","createElement","getContext","width","height","drawImage","resolveURL","href","hardwareConcurrency","devicePixelRatio","matchMedia","z","API_URL","FEEDBACK_URL","REQUIRE_ACCESS_TOKEN","ACCESS_TOKEN","MAX_PARALLEL_IMAGE_REQUESTS","R","supported","testSupport","N","B","F","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","isContextLost","deleteTexture","U","_transformRequestFn","_customAccessToken","_createSkuToken","onload","onerror","src","q","tokenExpiresAt","_skuToken","_skuTokenExpiresAt","_isSkuTokenExpired","transformRequest","url","normalizeStyleURL","H","path","_makeAPIURL","normalizeGlyphsURL","normalizeSourceURL","authority","params","normalizeSpriteURL","K","normalizeTileURL","canonicalizeTileURL","canonicalizeTileset","tiles","G","protocol","V","Z","JSON","parse","decodeURIComponent","atob","charCodeAt","X","anonId","eventData","queue","pendingRequest","getStorageKey","btoa","encodeURIComponent","fromCharCode","Number","fetchEventData","localStorage","getItem","saveEventData","stringify","processRequests","postEvent","EVENTS_URL","event","created","sdkIdentifier","sdkVersion","skuId","userId","headers","body","At","queueRequest","Y","J","Q","$","tt","ht","__proto__","constructor","postMapLoadEvent","skuToken","id","timestamp","success","et","ut","postTurnstileEvent","lastSuccess","tokenU","it","rt","nt","ot","at","st","lt","dt","caches","open","ft","mt","gt","yt","OffscreenCanvas","createImageBitmap","vt","Unknown","Style","Source","Tile","Glyphs","SpriteImage","SpriteJSON","Image","freeze","_t","xt","wt","message","status","bt","worker","referrer","location","parent","St","AbortController","Request","method","credentials","signal","fetch","then","ok","statusText","catch","code","arrayBuffer","json","text","Headers","toUTCString","Response","ReadableStream","blob","put","delete","abort","Tt","actor","send","XMLHttpRequest","responseType","setRequestHeader","withCredentials","response","getResponseHeader","Et","It","Ct","kt","accept","requestParameters","cancelled","Uint8Array","revokeObjectURL","cacheControl","expires","byteLength","Pt","Mt","splice","Lt","Dt","Ot","zt","Rt","error","on","_listeners","off","_oneTimeListeners","once","fire","listens","target","_eventedParent","_eventedParentData","Nt","$version","$root","required","metadata","center","zoom","bearing","default","pitch","light","sources","sprite","glyphs","transition","layers","source_vector","vector","bounds","scheme","xyz","tms","minzoom","maxzoom","attribution","promoteId","source_raster","raster","tileSize","source_raster_dem","encoding","terrarium","mapbox","source_geojson","geojson","buffer","maximum","minimum","tolerance","cluster","setEventedParent","clusterRadius","clusterMaxZoom","clusterProperties","lineMetrics","generateId","source_video","video","urls","coordinates","source_image","image","layer","fill","line","symbol","circle","heatmap","hillshade","background","layout","paint","layout_background","visibility","visible","none","layout_fill","expression","interpolated","parameters","layout_circle","layout_heatmap","layout_line","butt","square","bevel","miter","requires","layout_symbol","point","auto","viewport","both","left","right","top","bottom","horizontal","vertical","uppercase","layout_raster","layout_hillshade","filter_operator","in","all","any","has","geometry_type","Point","LineString","Polygon","function","stops","identity","exponential","interval","categorical","colorSpace","rgb","lab","hcl","function_stop","expression_name","let","group","var","literal","case","coalesce","step","interpolate","ln2","pi","typeof","boolean","collator","rgba","accumulated","log10","ln","log2","tan","asin","acos","atan","upcase","downcase","position","color","intensity","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","linear","nearest","paint_hillshade","paint_background","delay","constant","Bt","identifier","__line__","Ft","Ut","jt","Boolean","qt","Vt","bindings","Gt","Zt","Ht","Kt","kind","Wt","Xt","Yt","Jt","Qt","$t","te","ee","ie","re","itemType","ne","oe","ae","se","transparent","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","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","parseCSSColor","pop","le","ue","sensitivity","Intl","Collator","usage","ce","scale","fontStack","textColor","compare","resolvedLocale","resolvedOptions","pe","sections","fromString","isEmpty","serialize","he","available","de","fe","me","ge","expectedType","evaluate","eachChild","possibleOutputs","ye","ve","_e","xe","be","we","font","content","availableImages","Se","Te","globals","feature","featureState","formattedSection","_parseColorCache","parseColor","Ee","geometryType","Ie","_evaluate","Ce","caseSensitive","diacriticSensitive","Ae","ke","Pe","Me","boundExpression","definitions","overloads","Le","registry","scope","checkSubtype","errors","register","De","_parse","typeAnnotation","Oe","labels","outputs","ze","Re","Ne","Be","Fe","Ue","je","PI","qe","Ve","Ge","Ze","He","Ke","alpha","We","Xe","forward","reverse","Ye","Je","Qe","operator","interpolation","$e","interpolationFactor","controlPoints","ti","ei","ri","needle","haystack","ni","inputType","cases","otherwise","oi","branches","ai","si","li","lhs","rhs","hasUntypedArgument","ui","currency","minFractionDigits","maxFractionDigits","MAX_SAFE_INTEGER","outputIndex$1","ci","hi","di","fi","mi","gi","NumberFormat","style","minimumFractionDigits","maximumFractionDigits","yi","vi","xi","bi","wi","Si","Ti","Ei","Ii","Ci","Ai","ki","Pi","Mi","Li","Di","Oi","heatmapDensity","lineProgress","LN2","log","LN10","isSupportedScript","zi","_warningHistory","_evaluator","_defaultValue","_enumValues","Ri","Ni","enum","formatted","resolvedImage","evaluateWithoutErrorHandling","Bi","_styleExpression","isStateDependent","Fi","zoomStops","interpolationType","Ui","ji","_parameters","_specification","qi","valueSpec","objectElementValidators","styleSpec","dr","objectKey","Vi","arrayElementValidator","arrayIndex","Gi","Zi","Hi","expressionContext","propertyKey","propertyType","Ki","Wi","deserialize","Xi","Yi","Qi","Ji","$i","ir","tr","er","rr","nr","layerType","or","ar","sr","ref","lr","ur","cr","pr","hr","constants","fr","mr","gr","yr","paintProperty","layoutProperty","vr","_r","xr","br","wr","Sr","Er","Tr","cells","ArrayBuffer","Int32Array","subarray","bboxes","insert","_insertReadonly","extent","padding","uid","_forEachCell","_insertCell","query","_queryCell","_convertToCellCoord","_convertFromCellCoord","toArrayBuffer","Ir","ImageData","Cr","ImageBitmap","Ar","kr","writeable","klass","omit","shallow","Pr","_classRegistryKey","Mr","Lr","Dr","isView","$name","Or","zr","first","update","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","Rr","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","Nr","Br","Fr","Ur","jr","qr","Hr","Vr","Gr","Zr","Kr","Wr","Xr","$r","pluginStatus","pluginURL","Yr","Jr","Qr","fadeDuration","zoomHistory","tn","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","isLoading","setState","isParsed","getPluginURL","en","specification","rn","nn","_properties","_values","defaultTransitionablePropertyValues","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","isDataDriven","possiblyEvaluate","transitioned","untransitioned","getValue","setValue","getTransition","setTransition","an","begin","end","prior","defaultTransitioningPropertyValues","sn","defaultPropertyValues","un","hasTransition","isConstant","constantOr","defaultPossiblyEvaluatedValues","cn","pn","overrides","hn","dn","mn","_calculate","gn","yn","overridableProperties","vn","_structArray","_pos1","size","_pos2","_pos4","_pos8","_n","isTransferred","capacity","resize","xn","bn","Sn","_crossfadeParameters","getLayoutProperty","_unevaluatedLayout","setLayoutProperty","_validate","getPaintProperty","_transitionablePaint","setPaintProperty","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","isHidden","updateTransitions","_transitioningPaint","recalculate","sourceLayer","validate","is3D","isTileClipped","hasOffscreenPass","wn","Int8","Int8Array","Uint8","Int16","Int16Array","Uint16","Uint16Array","Int32","Uint32","Uint32Array","Float32","Float32Array","_featureFilter","Tn","members","BYTES_PER_ELEMENT","En","components","alignment","_trim","bytesPerElement","_refreshViews","clear","reserve","uint8","In","Cn","An","int16","emplaceBack","emplace","kn","Pn","Mn","Ln","Dn","On","zn","Rn","Nn","Bn","Fn","Un","uint16","jn","qn","Vn","Gn","Zn","Hn","float32","Kn","Wn","Xn","uint32","Yn","Jn","Qn","$n","eo","io","ro","no","oo","ao","so","lo","uo","co","po","ho","fo","mo","go","yo","vo","_o","xo","bo","wo","So","To","Eo","Io","Co","Ao","ko","Po","Mo","Lo","Do","Oo","zo","Ro","anchorPointX","configurable","anchorPointY","x1","y1","x2","y2","featureIndex","sourceLayerIndex","bucketIndex","radius","signedDistanceFromAnchor","anchorPoint","defineProperties","No","Bo","Fo","Uo","anchorX","anchorY","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","segment","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","hidden","crossTileID","associatedIconIndex","jo","qo","Vo","Go","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","placedIconSymbolIndex","verticalPlacedIconSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","verticalIconBoxStartIndex","verticalIconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","numVerticalIconVertices","textBoxScale","textOffset0","textOffset1","Zo","Ho","Ko","Wo","offsetX","Xo","Yo","Jo","getoffsetX","Qo","tileUnitDistanceFromAnchor","$o","ta","ea","getx","gety","gettileUnitDistanceFromAnchor","ia","ra","na","oa","aa","segments","sa","la","prepareSegment","MAX_VERTEX_ARRAY_LENGTH","vertexLength","sortKey","vertexOffset","primitiveOffset","primitiveLength","destroy","vaos","simpleSegment","ua","ca","pa","ha","da","fa","ids","positions","indexed","murmur3","murmur2","ga","getPositions","start","Float64Array","ya","ma","va","gl","xa","ba","wa","Sa","Ta","Ea","Ia","Ua","current","uniform1i","Ca","Fa","uniform1f","Aa","Ba","uniform2f","ka","Na","uniform3f","Pa","Ra","uniform4f","Ma","za","La","Da","Oa","uniformMatrix4fv","ja","qa","uniformNames","Va","patternFrom","patternTo","Ga","maxValue","paintVertexAttributes","paintVertexArray","Za","useIntegerZoom","Ha","layerId","zoomInPaintVertexArray","zoomOutPaintVertexArray","Ka","binders","layoutAttributes","_buffers","Xa","cacheKey","Wa","programConfigurations","needsUpload","_featureMap","_bufferOffset","composite","setUniform","getBinding","setConstantPatternPositions","tlbr","populatePaintArray","_setPaintValue","updatePaintArray","upload","paintVertexBuffer","updateData","createVertexBuffer","_setPaintValues","patterns","mid","tl","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","getMaxValue","populatePaintArrays","updatePaintArrays","defines","getPaintVertexBuffers","getUniforms","binding","setUniforms","updatePaintBuffers","Ya","Ja","Qa","loadGeometry","$a","ts","overscaling","layerIds","hasPattern","layoutVertexArray","indexArray","stateDependentLayerIds","es","ls","is","rs","os","us","cs","ps","hs","populate","geometry","addFeature","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","ds","fs","gs","ys","vs","hypot","_s","xs","bs","createBucket","queryRadius","queryIntersectsFeature","Ss","cameraToCenterDistance","Ts","Es","Is","Cs","Uint8ClampedArray","RangeError","As","ks","Ps","Ms","copy","Ls","Ds","Os","zs","Rs","Vs","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","Ns","Bs","qs","Fs","Us","Gs","js","Zs","prev","steiner","el","Qs","$s","Hs","Ks","dl","cl","nl","pl","rl","prevZ","nextZ","Xs","Ws","Ys","Js","il","ol","ll","ul","sl","al","hl","fl","ml","area","yl","exp","vl","patternDependencies","xl","patternFeatures","indexArray2","segments2","deviation","flatten","vertices","holes","dimensions","addFeatures","indexBuffer2","bl","wl","Sl","Tl","Cl","El","Il","Al","_pbf","_geometry","_keys","readFields","kl","readVarint","Pl","types","readSVarint","bbox","toGeoJSON","Ml","Ll","_features","Dl","readString","readFloat","readDouble","readVarint64","readBoolean","Ol","zl","VectorTile","VectorTileFeature","VectorTileLayer","Rl","Nl","Bl","Fl","features","every","Ul","jl","ql","Vl","Zl","Gl","Hl","Kl","Wl","Xl","Yl","addLine","distance","scaledDistance","totalDistance","clipStart","mapbox_clip_start","clipEnd","mapbox_clip_end","updateScaledDistance","e1","e2","updateDistance","addCurrentVertex","addHalfVertex","Jl","Ql","$l","tu","eu","iu","ru","nu","_updateGradient","gradient","gradientTexture","ou","au","su","lu","uu","cu","pu","toLocaleUpperCase","hu","du","fu","mu","gu","yu","buf","Varint","Fixed64","Bytes","Fixed32","vu","TextDecoder","_u","xu","bu","realloc","wu","writeVarint","Su","writeSVarint","Tu","writeFloat","Eu","writeDouble","Iu","writeBoolean","Cu","writeFixed32","Au","writeSFixed32","ku","writeFixed64","Pu","writeSFixed64","Mu","Lu","Du","skip","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","decode","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","finish","writeString","writeBytes","writeRawMessage","writeMessage","writePackedVarint","writePackedSVarint","writePackedBoolean","writePackedFloat","writePackedDouble","writePackedFixed32","writePackedSFixed32","writePackedFixed64","writePackedSFixed64","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","Ou","zu","Ru","Nu","bitmap","advance","metrics","Bu","Fu","Uu","pixelRatio","stretchX","stretchY","paddedRect","ju","qu","displaySize","Vu","haveRenderCallbacks","addImages","iconPositions","patternPositions","Gu","imageName","hasRenderCallback","patchUpdatedImages","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","getImage","Zu","horizontalOnly","Hu","Ku","sectionIndex","imageSectionID","Wu","fromFeature","verticalizePunctuation","tc","substring","positionedLines","iconsInText","verticalizable","trim","getMaxScale","positionedGlyphs","lineOffset","getSection","getSectionIndex","getCharCode","Xu","rect","glyph","ic","ec","horizontalAlign","verticalAlign","forText","forImage","addImageSection","addTextSection","reduce","getNextImageSectionCharCode","9","10","11","12","13","32","Yu","Ju","Qu","$u","badness","priorBreak","rc","collisionPadding","nc","oc","ac","sc","lc","layoutSize","minZoom","maxZoom","minSize","maxSize","uc","uSize","uSizeT","cc","pc","getSizeData","evaluateSizeForFeature","evaluateSizeForZoom","SIZE_PACK_FACTOR","hc","angleDelta","dc","fc","mc","gc","yc","vc","_c","bc","stretch","wc","fixed","tex","glyphOffset","pixelOffsetTL","pixelOffsetBR","minFontScaleX","minFontScaleY","isSDF","xc","Sc","boxStartIndex","_addLineCollisionCircles","boxEndIndex","Tc","Ec","_down","Ic","Cc","Ac","SQRT2","_up","peek","kc","POSITIVE_INFINITY","Pc","Mc","Lc","Dc","Oc","sdf","allowVerticalPlacement","textSizeData","compositeTextSizes","addSymbols","placedSymbolArray","zc","Rc","compareText","Nc","Bc","Fc","Uc","jc","qc","dynamicLayoutVertexArray","opacityVertexArray","Vc","collisionVertexArray","Gc","collisionBoxArray","hasRTLText","sortKeyRanges","iconSizeData","sortFeaturesByKey","sortFeaturesByY","writingModes","sourceID","Zc","runtimeType","defaultValue","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","collisionVertexBuffer","createArrays","icon","glyphOffsetArray","lineVertexArray","symbolInstances","calculateGlyphDependencies","iconDependencies","glyphDependencies","getValueAndResolveTokens","hasDebugData","textCollisionBox","iconCollisionBox","textCollisionCircle","iconCollisionCircle","destroyDebugData","addToLineVertexArray","_addCollisionDebugVertex","addCollisionDebugVertices","addDebugCollisionBoxes","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textBox","textFeatureIndex","textCircles","verticalTextBox","verticalTextFeatureIndex","iconBox","iconFeatureIndex","verticalIconBox","verticalIconFeatureIndex","deserializeCollisionBoxes","collisionArrays","hasTextData","hasIconData","hasTextCollisionBoxData","hasIconCollisionBoxData","hasTextCollisionCircleData","hasIconCollisionCircleData","addIndicesForPlacedSymbol","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","addToSortKeyRanges","symbolInstanceEnd","symbolInstanceStart","sortFeatures","featureSortOrder","MAX_GLYPHS","addDynamicAttributes","Hc","Kc","getOverride","hasOverride","Wc","Xc","Yc","Jc","np","_setPaintOverrides","hasPaintOverride","_interpolationType","Qc","$c","rp","tp","ep","ip","op","ap","lp","implementation","renderingMode","prerender","onAdd","painter","context","onRemove","sp","up","texture","cp","HTMLImageElement","pp","HTMLCanvasElement","hp","HTMLVideoElement","dp","fp","mp","_callback","_triggered","MessageChannel","_channel","port2","onmessage","gp","mapId","callbacks","tasks","taskQueue","cancelCallbacks","invoker","process","addEventListener","receive","globalScope","yp","vp","setSouthWest","setNorthEast","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","texSubImage2D","isSizePowerOfTwo","generateMipmap","LINEAR_MIPMAP_NEAREST","LINEAR","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","wrap","TEXTURE_WRAP_S","TEXTURE_WRAP_T","trigger","port1","postMessage","setTimeout","remove","hasCallback","targetMapId","mustQueue","sourceMapId","processTask","getWorkerSource","removeEventListener","_ne","_p","lng","lat","_sw","getCenter","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","contains","distanceTo","toBounds","lon","xp","bp","wp","Sp","Tp","Ep","Ip","Cp","Pp","Ap","canonical","kp","overscaledZ","Mp","stride","dim","_idx","Lp","_stringToNumber","_numberToString","Dp","_vectorTileFeature","_z","_x","_y","fromLngLat","toLngLat","toAltitude","meterInMercatorCoordinateUnits","getTilePoint","scaledTo","calculateScaledKey","isChildOf","children","isLessThan","wrapped","unwrapTo","overscaleFactor","toUnwrapped","_unpackTerrarium","_unpackMapbox","getUnpackVector","getPixels","backfillBorder","encode","Op","zp","state","stateChanges","deletedStates","Rp","tileID","grid","grid3D","featureIndexArray","Np","minX","minY","maxX","maxY","Bp","Fp","uses","buckets","expirationTime","queryPadding","hasSymbolBuckets","dependencies","expiredRequestCount","Up","_marks","measure","jp","mark","updateState","removeFeatureState","getState","initializeTileState","setFeatureState","coalesceChanges","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","queryGeometry","cameraQueryGeometry","loadMatchingFeature","transform","pixelPosMatrix","bucketLayerIDs","getId","intersectionZ","lookupSymbolFeatures","hasLayer","registerFadeDuration","timeAdded","fadeEndTime","wasRequested","loadVectorData","hasData","unloadVectorData","latestFeatureIndex","latestRawTileData","getLayer","justReloaded","imageAtlas","glyphAtlasImage","imageAtlasTexture","glyphAtlasTexture","getBucket","ALPHA","prepare","queryRenderedFeatures","querySourceFeatures","_geojsonTileLayer","tile","patternsLoaded","setExpiryData","getExpiryTimeout","holdingForFade","symbolFadeHoldUntil","symbolFadeFinished","clearFadeHold","setHoldDuration","setDependencies","hasDependency","getEntriesByName","clearMarks","clearMeasures","Actor","AlphaImage","CanonicalTileID","CollisionBoxArray","Color","DEMData","DataConstantProperty","DictionaryCoder","EXTENT","ErrorEvent","EvaluationParameters","Event","Evented","FeatureIndex","FillBucket","FillExtrusionBucket","ImageAtlas","ImagePosition","LineBucket","LngLat","LngLatBounds","MercatorCoordinate","ONE_EM","OverscaledTileID","Point$1","Properties","Protobuf","RGBAImage","RequestManager","RequestPerformance","ResourceType","SegmentVector","SourceFeatureState","StructArrayLayout1ui2","StructArrayLayout2i4","StructArrayLayout2ui4","StructArrayLayout3ui6","StructArrayLayout4i8","SymbolBucket","Texture","Transitionable","Uniform1f","Uniform1i","Uniform2f","Uniform3f","Uniform4f","UniformColor","UniformMatrix4f","UnwrappedTileID","ValidationError","WritingMode","ZoomHistory","asyncAll","bezier","bindAll","browser","cacheEntryPossiblyAdded","getActor","clamp","clearTileCache","clone$2","create$1","create$2","createCommonjsModule","createExpression","createLayout","createStyleLayer","cross","deepEqual","dot","dot$1","ease","emitValidationErrors","endsWith","enforceCacheSizeLimit","evaluateVariableOffset","evented","featureFilter","filterObject","fromRotation","getAnchorAlignment","getAnchorJustification","getArrayBuffer","getJSON","getRTLTextPluginStatus","getReferrer","getVideo","muted","onloadstart","host","crossOrigin","appendChild","invert","isChar","isMapboxURL","keysDifference","makeRequest","mapObject","mercatorXfromLng","mercatorYfromLat","mercatorZfromAltitude","multiply","mvt","normalize","offscreenCanvasSupported","ortho","parseGlyphPBF","pbf","performSymbolLayout","tilePixelRatio","iconsNeedLinear","compositeIconSizes","layoutTextSize","layoutIconSize","textMaxSize","sdfIcons","perspective","pick","plugin","polygonIntersectsPolygon","potpack","refProperties","registerForPluginStateChange","rotateX","rotateZ","scale$1","scale$2","setCacheLimits","setRTLTextPlugin","sphericalToCartesian","sqrLen","symbolSize","transformMat3","transformMat4","translate","triggerPluginCompletionEvent","uniqueId","validateCustomStyleLayer","render","validateLight","validateStyle","vectorTile","warnOnce","webpSupported","keyCache","showCollisionBoxes","collectResourceTiming","returnDependencies","request","rawData","layerIndex","loading","loaded","_layerConfigs","_layers","familiesBySource","stacks","icons","glyphMap","iconMap","glyphPositions","loadTile","resourceTiming","reloadTile","reloadCallback","abortTile","removeTile","rawImageData","offscreenCanvas","offscreenCanvasContext","clearRect","RADIUS","FLATTENING","POLAR_RADIUS","geometries","ring","_feature","tags","options","rawGeometry","keycache","valuecache","nodeSize","points","coords","trees","fromVectorTileJs","fromGeojsonVt","GeoJSONWrapper","range","within","numPoints","cluster_id","point_count","point_count_abbreviated","transformed","numSimplified","numFeatures","debug","tileCoords","timeEnd","indexMaxZoom","indexMaxPoints","stats","splitTile","_geoJSONIndex","getTile","byteOffset","parentId","_cluster","getClusters","_limitZoom","getChildren","_getOriginId","_getOriginZoom","getLeaves","_appendLeaves","_addTileFeatures","getClusterExpansionZoom","_map","loadData","_pendingCallback","abandoned","_pendingLoadDataParams","_state","_loadData","loadGeoJSON","superclusterOptions","geojsonVtOptions","removeSource","clusterId","getClusterChildren","getClusterLeaves","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","registerRTLTextPlugin","setReferrer","setImages","setLayers","getLayerIndex","updateLayers","removedIds","loadDEMTile","getDEMWorkerSource","removeDEMTile","loadWorkerSource","importScripts","syncRTLPluginState","getAvailableImages","lastIndexOf","reduceRight","getPrototypeOf","isSealed","isExtensible","getOwnPropertyDescriptor","seal","preventExtensions","Worker","terminate","failIfMajorPerformanceCaveat","webGLContextAttributes","probablySupportsContext","supportsContext","mapboxgl","antialias","stencil","depth","className","createNS","createElementNS","documentElement","disableDrag","enableDrag","setTransform","capture","preventDefault","stopPropagation","suppressClick","mousePos","getBoundingClientRect","TouchEvent","touches","clientX","clientLeft","clientY","clientTop","touchPos","changedTouches","mouseButton","InstallTrigger","button","ctrlKey","platform","parentNode","removeChild","setLoaded","requestors","_notify","images","addImage","_validateStretch","_validateContent","updateImage","removeImage","userImage","listImages","getImages","getPixelSize","atlasImage","getPattern","bin","_updatePatternAtlas","atlasTexture","dirty","CLAMP_TO_EDGE","beginFrame","callbackDispatchedThisFrame","fontSize","cutoff","fontFamily","fontWeight","canvas","ctx","textBaseline","fillStyle","gridOuter","gridInner","middle","requestManager","localIdeographFontFamily","entries","nextRow","dashEntry","draw","fillText","setURL","getGlyphs","requests","_tinySDF","loadGlyphRange","_doesCharSupportLocalGlyph","tinySDF","TinySDF","getLight","_transitionable","setLight","_transitioning","workerPool","actors","currentActor","acquire","vector_layers","vectorLayers","vectorLayerIds","validateBounds","getDash","addDash","getDashRanges","isDash","zeroLength","addRoundDash","addRegularDash","REPEAT","broadcast","release","_loaded","dataType","_tileJSONRequest","_options","_requestManager","tileBounds","_getMapId","sourceDataType","hasTile","aborted","_refreshExpiredTiles","dispatcher","_collectResourceTiming","unloadTile","getTileTexture","extTextureFilterAnisotropic","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","extTextureFilterAnisotropicMax","saveTileTexture","coord","dem","needsHillshadePrepare","neighboringTiles","_getNeighboringTiles","backfilled","demTexture","fbo","_updateWorkerData","_resourceTiming","setData","workerOptions","_removed","_finishLoading","setCoordinates","_boundsArray","boundsBuffer","boundsSegments","reparseOverscaled","roundZoom","loop","triggerRepaint","play","pause","seek","seekable","currentTime","readyState","paused","getElementById","_hasInvalidDimensions","_playing","getCanvas","animate","maxPitchScaleFactor","tilesIn","wrappedTileID","queryResults","calculatePosMatrix","getFeatureState","reset","createBuffer","dynamicDraw","unbindVAO","bindElementBuffer","bufferData","ELEMENT_ARRAY_BUFFER","DYNAMIC_DRAW","STATIC_DRAW","attributes","bindVertexBuffer","ARRAY_BUFFER","timeout","clearTimeout","order","_getAndRemoveByKey","getAndRemove","getByKey","setMaxSize","bufferSubData","deleteBuffer","getDefault","framebuffer","createFramebuffer","colorAttachment","depthAttachment","enableAttributes","enableVertexAttribArray","setVertexAttribPointers","vertexAttribPointer","setDefault","clearColor","clearDepth","clearStencil","colorMask","depthMask","stencilMask","ALWAYS","mask","stencilFunc","KEEP","stencilOp","enable","STENCIL_TEST","disable","depthRange","DEPTH_TEST","LESS","depthFunc","BLEND","ONE","ZERO","blendFunc","blendColor","FUNC_ADD","blendEquation","CULL_FACE","BACK","cullFace","CCW","frontFace","useProgram","TEXTURE0","activeTexture","drawingBufferWidth","drawingBufferHeight","bindFramebuffer","FRAMEBUFFER","bindRenderbuffer","RENDERBUFFER","bindBuffer","vao","bindVertexArrayOES","pixelStorei","UNPACK_ALIGNMENT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","setDirty","framebufferTexture2D","COLOR_ATTACHMENT0","framebufferRenderbuffer","DEPTH_ATTACHMENT","extVertexArrayObject","deleteRenderbuffer","deleteFramebuffer","ReadOnly","ReadWrite","disabled","fail","depthFail","pass","blendFunction","Replace","unblended","alphaBlended","getExtension","stencilTest","depthTest","blend","cullFaceSide","program","getParameter","MAX_TEXTURE_MAX_ANISOTROPY_EXT","extTextureHalfFloat","extTimerQuery","backCCW","createRenderbuffer","renderbufferStorage","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","setCullFace","setDepthMode","setStencilMode","setColorMode","_maxTileCacheSize","_source","_sourceErrored","_sourceLoaded","_tiles","getSource","_paused","resume","_shouldReloadOnResume","reload","_loadTile","_unloadTile","_abortTile","imageManager","getIds","getRenderableIds","_isIdRenderable","hasRenderableParent","findLoadedParent","_coveredTiles","_cache","_reloadTile","_tileLoaded","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","getTileByID","_retainLoadedChildren","_loadedParentTiles","_getLoadedTile","updateCacheSize","handleWrapJump","_prevLng","_timers","used","getVisibleUnwrappedCoordinates","coveringTiles","coveringZoomLevel","maxOverzooming","maxUnderzooming","_updateRetainedTiles","_addTile","_fadeDuration","_removeTile","_updateLoadedParentTileCache","releaseSymbolFadeTiles","_cacheTimers","clearTiles","getCameraQueryGeometry","pointCoordinate","getVisibleCoordinates","posMatrix","reloadTilesForDependencies","active","workers","workerCount","setStyle","addLayer","removeLayer","setFilter","addSource","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setCenter","setZoom","setBearing","setPitch","setSprite","setGlyphs","command","boxCells","circleCells","xCellCount","yCellCount","circleKeys","boxKeys","circles","xScale","yScale","boxUid","circleUid","labelPlaneMatrix","glCoordMatrix","signedDistanceFromCamera","useVertical","notEnoughRoom","needsFlipping","last","tileDistance","prevTileDistance","lastSegmentViewportDistance","keysLength","_insertBoxCell","insertCircle","_insertCircleCell","_query","hitTest","seenUids","box","_queryCircle","_queryCellCircle","hitTestCircle","_circleAndRectCollide","_circlesCollide","_convertToXCellCoord","_convertToYCellCoord","ignoredGrid","pitchfactor","_pitch","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","opacity","placed","skipFade","bucketInstanceId","crossSourceCollisions","maxGroupID","collisionGroups","collisionIndex","placements","opacities","variableOffsets","stale","commitTime","retainedQueryData","prevPlacement","placedOrientations","placeCollisionBox","projectAndGetPerspectiveRatio","perspectiveRatio","isInsideGrid","offscreen","isOffscreen","approximateTileDistance","placeCollisionCircles","projectAnchor","cameraDistance","projectPoint","queryRenderedSymbols","insertCollisionBox","collisionGroupID","insertCollisionCircles","ID","predicate","getBucketParts","bucket","textLabelPlaneMatrix","textPixelRatio","partiallyEvaluatedTextSize","collisionGroup","attemptAnchorPlacement","textOffset","prevAnchor","markUsedJustification","markUsedOrientation","placedGlyphBoxes","placeLayerBucketPart","unshift","commit","zoomAtLastRecencyCheck","prevZoomAdjustment","zoomAdjustment","symbolFadeChange","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","hasTransitions","stillRecent","setStale","_sortAcrossTiles","_currentTileIndex","_currentPartIndex","_seenCrossTileIDs","_bucketParts","placement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","indexedSymbolInstances","getScaledCoordinates","continuePlacement","isDone","_inProgressLayer","maxCrossTileID","indexes","usedCrossTileIDs","crossTileIDs","maxBucketInstanceId","bucketsInCurrentPlacement","findMatches","generate","addBucket","removeBucketCrossTileIDs","removeStaleBuckets","pruneUnusedLayers","loadURL","accessToken","_request","_load","loadJSON","loadEmpty","stylesheet","_loadSprite","glyphManager","_order","_serializeLayers","_spriteRequest","_validateLayer","sourceCaches","_updatedSources","_checkLoaded","_changed","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updateTilesForChangedImages","_updatedPaintProps","_resetUpdates","_changedImages","isSourceLoaded","sourceId","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","addSourceType","getSourceType","setSourceType","workerSourceURL","_remove","_rtlTextPluginCallback","_updateSources","_generateCollisionBoxes","_updatePlacement","crossTileSymbolIndex","pauseablePlacement","_releaseSymbolFadeTiles","getResource","lineAtlas","fragmentSource","vertexSource","boundProgram","boundLayoutVertexBuffer","boundPaintVertexBuffers","boundIndexBuffer","boundVertexOffset","boundDynamicVertexBuffer","prelude","backgroundPattern","clippingMask","heatmapTexture","collisionBox","collisionCircle","fillOutline","fillOutlinePattern","fillPattern","fillExtrusion","fillExtrusionPattern","hillshadePrepare","lineGradient","linePattern","lineSDF","symbolIcon","symbolSDF","symbolTextAndIcon","createProgram","createShader","FRAGMENT_SHADER","failedToCreate","shaderSource","compileShader","attachShader","VERTEX_SHADER","bindAttribLocation","linkProgram","numAttributes","getProgramParameter","ACTIVE_ATTRIBUTES","getActiveAttrib","getAttribLocation","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","fixedUniforms","binderUniforms","tileZoom","u_image","u_texsize","u_scale","u_fade","u_pixel_coord_upper","u_pixel_coord_lower","u_matrix","u_lightpos","u_lightintensity","u_lightcolor","u_vertical_gradient","u_opacity","pixelsToGLUnits","u_camera_to_center_distance","u_scale_with_map","translatePosMatrix","u_pitch_with_map","u_device_pixel_ratio","u_extrude_scale","u_pixels_to_tile_units","u_overscale_factor","boundDynamicVertexBuffer2","freshBind","createVertexArrayOES","currentNumAttributes","disableVertexAttribArray","deleteVertexArrayOES","LINES","TRIANGLES","LINE_STRIP","drawElements","UNSIGNED_SHORT","u_color","moving","u_latrange","u_light","u_shadow","u_highlight","u_accent","u_dimension","u_zoom","u_maxzoom","u_unpack","u_ratio","u_units_to_pixels","u_tl_parent","u_scale_parent","u_buffer_scale","u_fade_t","mix","u_image0","u_image1","u_brightness_low","u_brightness_high","u_saturation_factor","u_contrast_factor","u_spin_weights","u_is_size_zoom_constant","u_is_size_feature_constant","u_size_t","u_size","u_pitch","u_rotate_symbol","u_aspect_ratio","u_fade_change","u_label_plane_matrix","u_coord_matrix","u_is_text","u_texture","u_gamma_scale","u_is_halo","u_height_factor","u_world","u_intensity","u_color_ramp","u_patternscale_a","u_patternscale_b","u_sdfgamma","u_tex_y_a","u_tex_y_b","u_mix","u_texsize_icon","u_texture_icon","u_pattern_tl_a","u_pattern_br_a","u_pattern_tl_b","u_pattern_br_b","u_pattern_size_a","u_pattern_size_b","u_scale_a","u_scale_b","u_tile_units_to_pixels","colorModeForRenderPass","shiftedAnchor","depthModeForSublayer","rotating","zooming","NEAREST","buffers","uniformValues","atlasTextureIcon","atlasInterpolation","atlasInterpolationIcon","hasHalo","TEXTURE1","stencilModeForClipping","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","debugBuffer","tileBorderIndexBuffer","debugSegments","_tileTextures","setup","numSublayers","depthEpsilon","depthRboNeedsClear","gpuTimers","0","1","2","3","4","5","6","7","8","renderPass","programConfiguration","HALF_FLOAT_OES","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","viewportBuffer","viewportSegments","opaquePassEnabledForLayer","LEQUAL","depthRangeFor3D","stencilModeFor3D","stencilConfigForOverlap","isPatternMissing","tileExtentBuffer","tileExtentSegments","custom","setCustomLayerDefaults","customLayerMatrix","setBaseState","planes","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","_minPitch","_maxPitch","setMaxBounds","_center","_fov","_unmodified","_posMatrixCache","_alignedPosMatrixCache","depthRbo","stencilClearMode","nextStencilID","currentStencilSource","_renderTileClippingMasks","_tileClippingMaskIDs","REPLACE","NOTEQUAL","EQUAL","GEQUAL","_showOverdrawInspector","CONSTANT_COLOR","currentLayer","opaquePassCutoff","renderLayer","showOverdrawInspector","showTileBoundaries","setupOffscreenDepthRenderbuffer","DEPTH_COMPONENT16","gpuTimingStart","gpuTimingEnd","gpuTiming","calls","cpuTime","createQueryEXT","beginQueryEXT","TIME_ELAPSED_EXT","endQueryEXT","collectGpuTimers","queryGpuTimers","getQueryObjectEXT","QUERY_RESULT_EXT","deleteQueryEXT","cache","fromInvProjectionMatrix","quadrant","distanceX","distanceY","intersects","MAX_VALUE","minPitch","maxPitch","renderWorldCopies","worldSize","centerPoint","fov","unmodified","_hashName","_updateHash","_updateHashUnthrottled","_el","getCanvasContainer","_delta","_defaultZoomRate","_wheelZoomRate","latRange","_calcMatrices","rotationMatrix","_zoom","zoomScale","zoomFraction","_constrain","scaleZoom","invProjMatrix","aabb","fullyVisible","distanceSq","project","unproject","setLocationAtPoint","locationCoordinate","coordinateLocation","locationPoint","coordinatePoint","pointLocation","pixelMatrixInverse","pixelMatrix","getBounds","getMaxBounds","lngRange","alignedProjMatrix","projMatrix","mercatorMatrix","_constraining","getCameraPoint","addTo","_onHashChange","getHashString","getZoom","getBearing","getPitch","hash","_getCurrentHash","dragRotate","isEnabled","touchZoomRotate","jumpTo","history","replaceState","lngLat","originalEvent","_defaultPrevented","defaultPrevented","lngLats","_container","getContainer","_clickTolerance","clickTolerance","element","_button","_bearingSnap","bearingSnap","_pitchWithRotate","pitchWithRotate","setZoomRate","setWheelZoomRate","_enabled","isActive","_active","isZooming","_zooming","_aroundCenter","around","onWheel","deltaMode","WheelEvent","DOM_DELTA_LINE","deltaY","_lastWheelEventTime","_type","_lastValue","_timeout","_onTimeout","shiftKey","_lastWheelEvent","_start","_frameId","_cancelRenderFrame","_finishTimeout","_around","_aroundPoint","_requestRenderFrame","_onScrollFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","_prevEase","easing","onMouseDown","_onMouseMove","_onKeyDown","_onMouseUp","_startPos","_lastPos","_box","classList","_fireEvent","_finish","fitScreenCoordinates","keyCode","_inertiaOptions","_unbind","_deactivate","_startTime","_eventButton","altKey","metaKey","_onBlur","_inertia","_prevPos","_lastMoveEvent","_onDragFrame","_drainInertiaBuffer","_normalizeBearing","click","_inertialRotate","resetNorth","noMoveStart","rotateTo","linearity","maxSpeed","deceleration","_onMove","onTouchStart","passive","_onTouchEnd","_mouseDownPos","_startTouch","_lastTouch","_touchesMatch","_shouldStart","_abort","_inertialPan","panBy","delayEndEvents","easeTo","_tapped","_tappedPoint","_resetTapped","onDblClick","_onZoomEnd","zoomTo","disableRotation","_rotationDisabled","enableRotation","_gestureIntent","onStart","_startVec","_startAround","_onEnd","_getTouchEventData","vec","_lastTouchEvent","_onTouchFrame","_startScale","_startBearing","snapToNorth","scrollZoom","boxZoom","dragPan","keyboard","doubleClickZoom","panTo","zoomIn","zoomOut","resetNorthPitch","cameraForBounds","_cameraForBoxAndBearing","fitBounds","_fitInternal","flyTo","stop","essential","prefersReducedMotion","_normalizeCenter","_rotating","_pitching","_prepareEase","_easeEndTimeoutID","_ease","_fireMoveEvents","_afterEase","_moving","speed","curve","screenSpeed","maxDuration","isEasing","_easeFrameId","_onEaseFrame","_onEaseEnd","_easeStart","_easeOptions","_renderFrameCallback","_queue","_id","_cleared","_currentlyRunning","getDefaultPosition","compact","_innerContainer","_updateAttributions","_updateEditLink","_updateData","_updateCompact","_attribHTML","_editLink","querySelector","styleOwner","styleId","_hash","rel","customAttribution","owner","innerHTML","offsetWidth","setAttribute","_getUIString","display","_updateLogo","_logoRequired","mapbox_logo","run","HTMLElement","interactive","attributionControl","preserveDrawingBuffer","trackResize","refreshExpiredTiles","maxTileCacheSize","_interactive","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_renderTaskQueue","_controls","_mapId","container","maxBounds","_setupContainer","_setupPainter","_update","_onWindowOnline","_onWindowResize","fitBoundsOptions","_localIdeographFontFamily","addControl","logoPosition","repaint","_controlPositions","insertBefore","firstChild","removeControl","_containerDimensions","_resizeCanvas","setMinZoom","getMinZoom","setMaxZoom","getMaxZoom","setMinPitch","getMinPitch","setMaxPitch","getMaxPitch","getRenderWorldCopies","setRenderWorldCopies","isMoving","isRotating","_createDelegatedListener","listener","delegates","mousemove","mouseout","_delegatedListeners","_diffStyle","_updateStyle","_lazyInitEmptyStyle","_updateDiff","getStyle","isStyleLoaded","areTilesLoaded","hasImage","loadImage","_canvasContainer","_canvas","clientWidth","clientHeight","_detectMissingCSS","getComputedStyle","_missingCSSCanary","getPropertyValue","_contextLost","_contextRestored","_controlContainer","_frame","_styleDirty","_sourcesDirty","_render","_placementDirty","gpuTime","layerTimes","_repaint","_fullyLoaded","loseContext","_showTileBoundaries","_vertices","_setCacheLimits","showZoom","_zoomInButton","_createButton","_zoomOutButton","showCompass","_compass","visualizePitch","_compassIcon","_updateZoomButtons","_rotateCompassArrow","_setButtonTitle","_handler","title","_element","setDraggable","_draggable","_onMapClick","_addDragHandler","_onUp","_popup","getLngLat","_lngLat","setLngLat","_pos","getElement","setPopup","_onKeyPress","_originalTabIndex","removeAttribute","_defaultMarker","getAttribute","charCode","togglePopup","getPopup","isOpen","_rotationAlignment","_rotation","_pitchAlignment","_anchor","getOffset","setOffset","_positionDelta","pointerEvents","isDraggable","setRotation","getRotation","setRotationAlignment","getRotationAlignment","setPitchAlignment","getPitchAlignment","positionOptions","enableHighAccuracy","maximumAge","trackUserLocation","showAccuracyCircle","showUserLocation","_color","draggable","rotation","rotationAlignment","pitchAlignment","setAttributeNS","rx","ry","scrollTop","scrollLeft","_setupUI","permissions","geolocation","_geolocationWatchID","clearWatch","_userLocationDotMarker","_accuracyCircleMarker","_onZoom","_isOutOfMapMaxBounds","longitude","latitude","_setErrorState","_watchState","_geolocateButton","_onSuccess","_updateMarker","_lastKnownPosition","_updateCamera","_dotElement","accuracy","geolocateSource","_accuracy","_updateCircleRadius","_circleElement","_onError","_clearWatch","_timeoutId","_setup","watchPosition","getCurrentPosition","maxWidth","_fullscreen","_fullscreenchange","setUnit","_checkFullscreenSupport","_changeIcon","fullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenEnabled","_fullscreenButton","_updateTitle","_onClickFullscreen","_getTitle","_isFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","toggle","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","closeButton","closeOnClick","_onClose","closeOnMove","_trackPointer","_content","trackPointer","setText","setDOMContent","createTextNode","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","_createContent","addClassName","removeClassName","toggleClassName","_closeButton","_tip","offsetHeight","Map","NavigationControl","GeolocateControl","AttributionControl","ScaleControl","FullscreenControl","Popup","Marker","clearStorage","setPrototypeOf","Promise","throw","done","label","sent","trys","ops","return","iterator","TypeError","merge","domain","queryParams","subdomain","protoRegEx","getFullVersion","getEndpointVersion","ControlPosition","TopLeft","TopRight","BottomLeft","BottomRight","NonFixed","hsl","hwb","hex","percent","keyword","channels","hsv","cmyk","lch","ansi16","ansi256","hcg","apple","conversion","raw","valpha","percentString","unitArray","unitObject","hue","saturationl","lightness","saturationv","chroma","wblack","rgbNumber","luminosity","contrast","level","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","grayscale","fade","opaquer","ControlStyle","dark","events","_onStyleChange","_observer","disconnect","_theme","buildContainer","styles","initialize","_setTheme","activateClickDelay","startsWith","_onBackgroundChange","MutationObserver","observe","getMapContainer","attributeFilter","getTheme","backgroundColor","rotationDegreesDelta","constructRotationButton","constructRotationGrid","lastActiveTime","timeStamp","hasMouse","hasFocus","relatedTarget","Node","InvertOrderPositions","includes","constructRightRotationButton","constructLeftRotationButton","setCamera","DefaultRotation","getCamera","RotationDuration","pitchDegreesDelta","constructPitchButton","constructPitchGrid","INVERT_ORDER_POSITIONS","constructPitchIncrementButton","constructPitchDecrementButton","DEFAULT_PITCH","PITCH_DURATION_MS","__data__","IE_PROTO","writable","propertyIsEnumerable","nodeType","Buffer","isBuffer","require","isTypedArray","allocUnsafe","getOwnPropertySymbols","resolve","isMap","isSet","keysIn","mapStyles","buildStyleOpsGrid","buildCurrStyleBtn","Css","inUse","onStyleChange","buildSelectStyleBtn","mapToFriendlyStyleName","alt","currentStyle","currStyleImage","styleOptions","getDef","iconPath","styleIcons","StyleNamesMap","road","satellite","satellite_road_labels","grayscale_dark","grayscale_light","night","road_shaded_relief","blank","blank_accessible","high_contrast_dark","zoomDelta","flexDirection","constructZoomInButton","constructZoomOutButton","ZOOM_DURATION_MS","PitchControl","CompassControl","ZoomControl","StyleControl","BUFFER_SIZE","getRandomValues","randomBytes","crypto","msCrypto","TYPE","fromData","Set","getX","getY","getDestination","getDistance","getHeading","feet","kilometers","miles","nauticalMiles","yards","meters","milesPerSecondSquared","kilometersPerSecondSquared","knotsPerSecond","standardGravity","feetPerSecondSquared","yardsPerSecondSquared","milesPerHourSecond","kilometersPerHourSecond","metersPerSecondSquared","acres","hectares","squareFeet","squareYards","squareKilometers","squareMiles","squareMeters","feetPerSecond","milesPerHour","knots","mach","kilometersPerHour","metersPerSecond","_isCircle","_getCirclePositions","toJson","getType","getCoordinates","heading","fromPosition","areEqual","fromLatLng","fromLatLngs","_getDimensions","_addEventListener","listeners","_removeEventListener","_invokeEvent","EventEmitter","toTarget","transformArray","toSource","inverseM","_calculateAffineTransform","_gaussJordanElimination","AffineTransform","_precision","boundingBoxToPolygon","convertDistance","getCardinalSpline","getDistanceTo","getEarthRadius","getGeodesicPath","getLengthOfPath","getPositionAlongPath","getRegularPolygonPath","normalizeLatitude","normalizeLongitude","rotatePositions","getPixelHeading","mercatorPixelsToPositions","mercatorPositionsToPixels","convertAcceleration","convertArea","convertSpeed","convertTimespan","getAcceleration","getAccelerationFromSpeeds","getAccelerationFromFeatures","getArea","getSpeed","getSpeedFromFeatures","getTimespan","getTravelDistance","parseTimestamp","getConvexHull","getPosition","getPositionsAlongPath","getPointWithHeadingAlongPath","getPointsWithHeadingsAlongPath","getClosestPointOnGeometry","addProperty","_handleCircle","dataSource","_updateSource","circlePolygon","fromPositions","getCircleCoordinates","getProperties","isCircle","isRectangle","_isRectangle","setProperties","_shapeIdPropName","_toJson","_setDataSource","subType","fromBoundingBox","fromDimensions","fromEdges","containsPosition","getHeight","getWidth","crossesAntimeridian","intersect","splitOnAntimeridian","Feature","FeatureCollection","Position","BoundingBox","MultiLineString","MultiPoint","MultiPolygon","GeometryCollection","_setMap","invoke","_addNoUpdate","_clearNoUpdate","dispose","shapes","shapesMap","_getMap","_mapFeaturesToShapes","getOptions","getShapes","importDataFromUrl","getShapeById","_removeByIndex","_removeById","removeById","setOptions","_rebuildStyle","setShapes","_buildSource","_addToSources","requestId","_updateMboxSource","_updateShapesMap","isTMS","getShape","DataSource","VectorTileSource","getMap","_isMBoxEvent","LayerEvents","_updateBaseProperties","_updateFilter","_updateZoomRange","_updateLayoutProperty","_updatePaintProperty","layeradded","layerremoved","_cloneCustomizer","blur","strokeColor","strokeOpacity","strokeWidth","_buildLayers","_getLayerIds","_getSourceIds","weight","hueRotation","maxBrightness","minBrightness","saturation","_getSourceId","reloadImage","updateTransform","getCoordinatesFromRefPoints","getCoordinatesFromEdges","img","onabort","lineCap","lineJoin","strokeDashArray","strokeGradient","translateAnchor","fillColor","fillOpacity","verticalGradient","allowOverlap","ignorePlacement","optional","textField","haloBlur","haloColor","haloWidth","iconOptions","textOptions","lineSpacing","minSourceZoom","maxSourceZoom","subdomains","tileUrl","_setOptionsNoUpdate","BubbleLayer","Layer","LineLayer","PolygonExtrusionLayer","PolygonLayer","SymbolLayer","TileLayer","HeatMapLayer","ImageLayer","convertHtmlString","pixelOffset","showPointer","setPopupOptions","htmlContent","_createHtmlContent","contentDiv","prepend","_setDraggable","closeBtn","_createCloseButton","arrowDiv","_createArrowDiv","containerDiv","borderColor","marker","autoAnchor","_replaceMarker","getPopupOptions","_dragToPixel","dragging","dragOffset","pixelsToPositions","_createContainerDiv","focus","close","_createContentDiv","arrow","_createMarker","_getAutoAnchor","positionsToPixels","nextElementSibling","popups","_getCollectionDiv","_onDown","_onDragStart","attach","_addDraggedPopup","popup","secondaryColor","_getSubbedHtmlString","hiddenClass","_buildMarker","_getCollectionContainer","_addToMap","_removeFromMap","_getId","containerClass","_onDrag","_onDragEnd","_bubbleElementEvent","collectionContainerClass","_onEleDragStart","language","region","localizationsPath","sensitiveUserRegions","defaultLanguage","defaultRegion","strings","bg","mx","nb","sk","sv","zh","Accident","Fog","Danger","Rain","Ice","Jam","LaneClosed","RoadClosed","RoadWorks","Wind","Flood","Detour","getCode","getLocaleData","getStrings","getEdgeOrIEVersion","isEdgeOrIE","isIE","AuthenticationType","subscriptionKey","aad","anonymous","setSubscriptionKey","authType","setAadProperties","authContext","aadInstance","clientId","aadAppId","aadTenant","setTokenCallbackFunction","getToken","pin","flag","triangle","hexagon","car","checker","dots","getHighContrastMode","LocalStorage","SessionStorage","Default","Required","Hidden","AI","AI_AND_W3C","W3C","isNullOrUndefined","disableCookies","_canUseCookies","newGuid","addNotificationListener","removeNotificationListener","eventsSent","eventsDiscarded","CRITICAL","WARNING","sanitizeDiagnosticText","AiNonUserActionablePrefix","AiUserActionablePrefix","messageId","throwInternal","enableDebugExceptions","_messageLogged","consoleLoggingLevel","warnToConsole","logInternalMessage","resetInternalMessageCount","_messageCount","_areInternalMessagesThrottled","AIInternalMessagePrefix","telemetryLoggingLevel","maxInternalMessageLimit","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","processTelemetry","channelQueue","isCookieUseDisabled","setNextPlugin","_isInitialized","instrumentationKey","_notificationManager","extensions","extensionConfig","NotificationManager","logger","_extensions","_channelController","getTransmissionControls","ChannelControls","track","_notifyInvalidEvent","iKey","ver","_validateTelmetryItem","pollInternalLogs","diagnosticLogInterval","setInterval","baseType","baseData","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","sanitizeKeyAndAddUniqueness","sanitizeKey","MAX_NAME_LENGTH","padNumber","sanitizeString","MAX_STRING_LENGTH","sanitizeUrl","sanitizeInput","MAX_URL_LENGTH","sanitizeMessage","MAX_MESSAGE_LENGTH","sanitizeException","MAX_EXCEPTION_LENGTH","exception","sanitizeProperties","MAX_PROPERTY_LENGTH","sanitizeMeasurements","sanitizeId","MAX_ID_LENGTH","createDomEvent","createEvent","initEvent","disableStorage","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","canUseLocalStorage","_getVerifiedStorageObject","sessionStorage","isInternalApplicationInsightsEndpoint","_internalEndpoints","getStorage","getExceptionName","dump","setStorage","removeStorage","_getSessionStorageObject","canUseSessionStorage","getSessionStorageKeys","getSessionStorage","setSessionStorage","removeSessionStorage","canUseCookies","cookie","setCookie","stringToBoolOrDefault","getCookie","deleteCookie","newId","random32","generateW3CId","isError","toISOStringForIE8","getUTCHours","getUTCSeconds","getUTCMilliseconds","getIEVersion","msToTimeSpan","isCrossOriginError","addEventHandler","attachEvent","IsBeaconApiSupported","sendBeacon","NotSpecified","parseUrl","htmlAnchorElement","parseHost","getAbsoluteUrl","getPathName","pathname","getCompleteUrl","canIncludeCorrelationHeader","disableCorrelationHeaders","enableCorsCorrelation","correlationHeaderDomains","correlationHeaderExcludedDomains","getCorrelationContext","getCorrelationContextValue","correlationIdPrefix","ParseDependencyPath","Now","timing","navigationStart","GetDuration","sampleRate","aiDataContract","measurements","envelopeType","exceptions","hasFullStack","parsedStack","CreateFromInterface","toInterface","severityLevel","problemGroup","isManual","CreateSimpleException","typeName","outerId","parseStack","sizeInBytes","assembly","fileName","baseSize","Measurement","Aggregation","count","stdDev","qp","Vp","Gp","Zp","Hp","resultCode","dependencyKind","dependencySource","commandName","dependencyTypeName","Kp","Wp","Xp","Yp","Jp","Qp","$p","eh","ih","rh","nh","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","oh","ah","sh","lh","uh","Verbose","Information","Warning","Critical","ch","ph","getConfig","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","dh","fh","ext","mh","gh","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","yh","vh","_h","xh","bh","trackPageView","uri","_pageViewPerformanceManager","isPerformanceTimingSupported","appInsights","sendPageViewInternal","flush","_logger","getPerformanceTiming","shouldCollectDuration","overridePageViewDuration","isPerformanceTimingDataReady","clearInterval","populatePageViewPerformanceEvent","durationMs","pageViewPerformanceSent","sendPageViewPerformanceInternal","wh","Sh","trackPreviousPageVisit","restartPageVisitTimer","pageVisitTimeTrackingHandler","pageName","pageUrl","pageVisitTime","stopPageVisitTimer","startPageVisitTimer","prevPageVisitDataKeyName","Th","pageVisitStartTime","Eh","Ih","loadEventEnd","connectEnd","requestStart","responseStart","responseEnd","network","dom","domainLookupStart","domLoading","MAX_DURATION_ALLOWED","Ch","Ah","kh","getDefaultConfig","sessionRenewalMs","sessionExpirationMs","disableExceptionTracking","autoTrackPageVisitTime","samplingPercentage","isStorageUseDisabled","isBrowserLinkTrackingEnabled","enableAutoRouteTracking","namePrefix","_telemetryInitializers","_nextPlugin","trackEvent","core","startTrackEvent","_eventTracking","stopTrackEvent","trackTrace","trackMetric","_pageViewManager","_pageVisitTimeManager","refUri","_trackAjaxAttempts","trackPageViewPerformance","startTrackPage","_pageTracking","stopTrackPage","sendExceptionInternal","trackException","_onerror","lineNumber","columnNumber","_sendCORSException","errorString","addTelemetryInitializer","_initialize","_globalconfig","endpointUrl","accountId","cookieDomain","sdkExtension","appId","trackPageVisitTime","_addDefaultTelemetryInitializers","Ph","action","autoExceptionInstrumented","pushState","dispatchEvent","telemetryTrace","traceID","_currUri","_prevUri","autoRoutePVDelay","PageName","PageUrl","average","sampleCount","_addTelemetryInitializer","Version","Mh","_events","_name","Lh","Dh","enqueue","_buffer","getItems","batchPayloads","emitLineDelimitedJson","markAsSent","clearSent","Oh","MAX_BUFFER_SIZE","_bufferFullMessageSent","setBuffer","BUFFER_KEY","SENT_BUFFER_KEY","removePayloadsFromBuffer","getBuffer","Rh","Nh","extractProperties","extractPropsAndMeasurements","createEnvelope","extractPartAExtensions","user","authId","localId","app","sesId","device","deviceClass","web","browserLang","browserVer","screenRes","userConsent","trace","parentID","Bh","Fh","Uh","Create","responseCode","correlationContext","DependencyEnvelopeCreator","jh","qh","Vh","baseTypeSource","EventEnvelopeCreator","Gh","Zh","Hh","ExceptionEnvelopeCreator","Kh","Wh","Xh","MetricEnvelopeCreator","Yh","Jh","Qh","pageType","isLoggedIn","PageViewEnvelopeCreator","$h","td","ed","PageViewPerformanceEnvelopeCreator","rd","nd","TraceEnvelopeCreator","od","ad","_serializeObject","_serializeStringMap","_serializeArray","sd","_onlineStatus","isListening","_setOnline","_setOffline","ononline","onoffline","ld","isOnline","onLine","isOffline","Offline","ud","cd","getHashCodeScore","getHashCode","INT_MAX_VALUE","MIN_INPUT_LENGTH","pd","hd","getSamplingScore","hashCodeGeneragor","fd","isSampledIn","samplingScoreGenerator","samplingRate","md","gd","triggerSend","onunloadFlush","onunloadDisableBeacon","isBeaconApiDisabled","_beaconSender","teardown","_serializer","_consecutiveErrors","_retryAt","_lastSend","_sender","_getDefaultAppInsightsChannelConfig","_getEmptyAppInsightsChannelConfig","enableSessionStorageBuffer","_sample","_xhrSender","_XMLHttpRequestSupported","XDomainRequest","_xdrSender","disableTelemetry","_isSampledIn","SampleRate","constructEnvelope","maxBatchSizeInBytes","_setupTimer","_xhrReadyStateChange","_appId","_parseResponse","responseText","isRetryDisabled","_isRetriable","_resendPayload","_formatErrorMessageXhr","_onPartialSuccess","_timeoutHandle","statusCode","itemsAccepted","itemsReceived","_xdrOnLoad","_formatErrorMessageXdr","maxBatchInterval","onreadystatechange","_setRetryTime","yd","vd","automaticSession","initializeAutomaticSession","acquisitionDate","renewalDate","renew","cookieUpdatedTimestamp","cookieUpdateInterval","backup","_storageNamePrefix","initializeAutomaticSessionWithData","acquisitionSpan","renewalSpan","cookieNameConst","xd","bd","wd","Sd","Td","setAuthenticatedUserContext","validateUserInput","authenticatedId","cookieSeparator","authUserCookieName","encodeURI","clearAuthenticatedUserContext","userCookieName","accountAcquisitionDate","decodeURI","Ed","Id","Cd","Ad","applySessionContext","session","sessionManager","applyOperatingSystemContxt","applyApplicationContext","application","build","applyDeviceContext","applyInternalContext","internal","agentVersion","applyLocationContext","applyOperationContext","applyWebContext","applyUserContext","cleanUp","kd","Pd","_extensionConfig","_breezeChannel","_processTelemetryInternal","Md","openDone","setRequestHeaderDone","sendDone","abortDone","onreadystatechangeCallbackAttached","Ld","Dd","requestUrl","completed","requestHeadersSize","requestHeaders","ttfb","responseReceivingDuration","callbackDuration","ajaxTotalDuration","requestSize","requestSentTime","responseStartedTime","responseFinishedTime","callbackFinishedTime","endTime","originalOnreadystatechage","xhrMonitoringState","clientFailure","CalculateMetrics","spanID","Od","zd","AttachEvent","DetachEvent","detachEvent","Rd","Nd","isValidTraceId","isValidSpanId","traceId","spanId","traceFlag","DEFAULT_TRACE_FLAG","DEFAULT_VERSION","Bd","Fd","isMonitoredInstance","_fetchInitialized","initialized","ajaxData","supportsAjaxMonitoring","instrumentOpen","openHandler","_core","ajaxDiagnosticsMessage","getFailedAjaxDiagnosticsMessage","_context","attachToOnReadyStateChange","instrumentSend","sendHandler","includeCorrelationHeaders","instrumentAbort","instrumentSetRequestHeader","enableRequestHeaderTracking","onAjaxComplete","getAjaxCorrelationContext","enableResponseHeaderTracking","getAllResponseHeaders","responseHeaders","trackDependencyDataInternal","maxAjaxCallsPerView","trackDependencyData","instrumentFetch","supportsFetch","isFetchInstrumented","createFetchRecord","getFailedFetchDiagnosticsMessage","onFetchComplete","onFetchFailed","currentWindowHost","_isUsingAIHeaders","_isUsingW3CHeaders","fetchDiagnosticsMessage","HttpMethod","getFetchCorrelationContext","instrumentXhr","disableAjaxTracking","disableFetchTracking","distributedTracingMode","getEmptyConfig","Ud","jd","loadAppInsights","emptyQueue","addHousekeepingBeforeUnload","updateSnippetDefinitions","snippet","disableFlushOnBeforeUnload","_sessionManager","getSKUDefaults","qd","Vd","Gd","Zd","Hd","Kd","Wd","copyrightMessage","showFeedbackLink","Xd","Yd","Jd","copyrightDiv","buildCopyrightDiv","feedbackLink","buildFeedbackLink","innerText","textContent","Qd","$d","throwOnError","ig","tryCatch","tryFinally","tf","ef","getServiceOptions","view","authentication","signRequest","rf","nf","_labelIdx","labelType","_labelCache","getNearestLabel","_preloadCache","_preloadedCache","polygonSources","of","af","_disposed","_onMoveEnd","_onStyleData","_onRotate","_onPointerDown","_shortcutListener","_getEventPos","pageX","pageY","offsetY","_checkThresholds","_checkZoomThreshold","_checkPitchThreshold","_checkLocThreshold","_checkHeadingThreshold","_pitchThreshold","_moveThreshold","_headingThreshold","_getLocDesc","_polygonStyleLayer","_lableConfig","_getClosestLabel","_processRoads","_processLocInfo","_restFallback","_getHeadingDesc","_baseVectorTileSourceId","_roadLayers","country","country_code","countryDis","country_subdivision","stateDis","_roadPixelRadius","_minRoadDistance","_minIntersectionPixelDistance","secondRoad","secondRoadDis","_getActionDesc","_lastCam","_getCanonicalZoom","water","majorPoi","poi","neighbourhood","city","_reverseGeocodeDescription","_returnDetailedDescriptions","_reverseSearch","addresses","address","countrySubdivision","municipality","streetNameAndNumber","street","_lastHeadingTime","_actionQueue","_pointerUpdateDelay","_camUpdateDelay","_headUpdateLimit","_controlEventDelay","_descCallback","_rotateTimeout","_updateHeading","_moveTimeout","_controlTimeout","fromControl","_updateCam","_lastPointerPos","_pointerTimeout","_onPointerUp","_onPointerMove","_lastHead","_lastLang","_lastStyle","addOnce","sf","lf","addToMap","initializeMapLiveStateInfo","initializeMapStyleInfo","createMapKeyBindingInfo","removeFromMap","mapViewDesc","atlasMapKeyBindings","atlasMapLiveStateInfo","atlasMapStyleInfo","updateMapStyle","updateMapState","uf","callCounter","listenerEnabled","flowComponent","flowPath","_isReady","getTraffic","getFlowPath","getFlowComponent","getLayers","findIndex","cf","pf","hf","df","projection","boundingbox","boundingzoom","trafficmodelid","ff","mf","gf","yf","vf","getIncidentTypeName","getIncidentTypeIconName","getSeverityColorName","getSeverityColorHexCode","ty","incidentType","description","DELAY","LENGTH","FROM","TO","xf","createInfoSection","bf","wf","incidentLayerName","addPins","cursorToPointer","cursorToDefault","openIncidentPopup","updateIncidents","updateLanguage","removeLayers","cleanUpPopups","incidentLanguage","_getLocalizedStrings","incidentService","expandCluster","originalPosition","incidents","tm","openPopupId","cpoi","overwrite","cursor","Sf","Tf","scrollZoomInteraction","boxZoomInteraction","dragRotateInteraction","dragPanInteraction","keyboardInteraction","dblClickZoomInteraction","touchInteraction","wheelZoomRate","Ef","If","Cf","Af","_onTouchStart","_onTouchMove","_onTouchCancel","minDiffX","maxDiffY","minDiff","dpPoint","dpPitch","startTiming","startDistance","startEventData","kf","Pf","_onGestureStart","_onGestureChange","hasTouch","initZoom","Mf","Lf","added","_setInteractions","focusShortcut","mobilePitch","pinchZoom","Df","REQUEST_TYPE","LOGIN","RENEW_TOKEN","UNKNOWN","RESPONSE_TYPE","ID_TOKEN_TOKEN","TOKEN","CONSTANTS","EXPIRES_IN","ID_TOKEN","ERROR_DESCRIPTION","SESSION_STATE","ERROR","STORAGE","TOKEN_KEYS","ACCESS_TOKEN_KEY","EXPIRATION_KEY","STATE_LOGIN","STATE_RENEW","NONCE_IDTOKEN","USERNAME","IDTOKEN","LOGIN_REQUEST","LOGIN_ERROR","RENEW_STATUS","ANGULAR_LOGIN_REQUEST","RESOURCE_DELIMETER","CACHE_DELIMETER","LOADFRAME_TIMEOUT","TOKEN_RENEW_STATUS_CANCELED","TOKEN_RENEW_STATUS_COMPLETED","TOKEN_RENEW_STATUS_IN_PROGRESS","LOGGING_LEVEL","WARN","INFO","VERBOSE","LEVEL_STRING_MAP","POPUP_WIDTH","POPUP_HEIGHT","_singletonInstance","instance","popUp","isAngular","_user","_activeRenewals","_loginInProgress","_acquireTokenInProgress","_renewStates","_callBackMappedToRenewStates","_callBacksMappedToRenewStates","_openedWindows","_requestType","_adalInstance","displayCall","_cloneConfig","navigateToLoginRequestUrl","loginResource","redirectUri","postLogoutRedirectUri","anonymousEndpoints","loadFrameTimeout","Logging","piiLoggingEnabled","login","info","_guid","_idTokenNonce","_getItem","_saveItem","verbose","_getNavigateUrl","registerCallback","_loginPopup","promptUser","_openPopup","screenLeft","screenX","screenTop","screenY","innerWidth","innerHeight","_handlePopupError","closed","_broadcast","handleWindowCallback","bubbles","cancelable","detail","initCustomEvent","CustomEvent","loginInProgress","_hasResource","_isEmpty","getCachedToken","expireOffsetSeconds","_now","getCachedUser","_createUser","_renewToken","_addAdalFrame","_urlRemoveQueryStringParameter","_addHintParameters","verbosePii","_loadFrameTimeout","_renewIdToken","_urlContainsQueryStringParameter","_loadFrame","acquireToken","extraQueryParameter","acquireTokenPopup","acquireTokenRedirect","infoPii","clearCache","clearCacheForResource","logOut","logOutUri","tenant","getUser","profile","sid","upn","_extractIdToken","aud","userName","email","_getHash","isCallback","_deserialize","getLoginError","getRequestInfo","valid","stateMatch","stateResponse","requestType","_matchState","_matchNonce","nonce","_getResourceFromState","saveTokenFromHash","error_description","_expiresIn","getResourceForEndpoint","endpoints","_getHostFromUri","opener","_serialize","_addLibMetadata","_decodeJwt","JWSPayload","_base64DecodeStringUrlSafe","escape","_decode","header","JWSSig","_convertUrlSafeToRegularBase64EncodedString","correlationId","_decimalToHex","opera","borderWidth","getElementsByTagName","insertAdjacentHTML","frames","cacheLocation","_supportsLocalStorage","_supportsSessionStorage","_libVersion","errorPii","warnPii","inject","Of","zf","Rf","Nf","Bf","InvalidTokenError","Ff","Uf","initPromise","getDefaultAuthContext","_loginAndAcquire","_triggerTokenFetch","defaultAuthContext","preferredCacheLocation","tokenAcquired","getAuthType","getClientId","storage","accessTokenKey","_getTokenExpiry","tokenExpired","_getCurrentTime","_storeAccessToken","testStorageKey","tokenExpiresIn","tokenRefreshClockSkew","tokenTimeOutHandle","authOptions","jf","qf","getControls","controls","controlContainer","getElementsByClassName","Vf","Gf","addCallback","coordinate","getById","_removeListener","getRenderedShapes","pixel","pixels","removeCallback","getModifiedCallback","getLayerCallbacks","getEventCallbacks","Zf","Hf","_addGlobalListener","_addLayerListener","_addLegacy","getLayerById","mapCallbackHandler","_isLoaded","_invokeListeners","_removeLegacy","_enableLayerEvents","_disableLayerEvents","Kf","Wf","_addMarker","markers","getMarkers","_removeMarker","Xf","Yf","userImages","_sendRequest","imageLoadTimeout","getImageIds","createFromTemplate","_restoreImages","Jf","Qf","_addLayer","layersById","_removeMapboxLayers","_addMapboxLayers","_getMapboxBefore","move","_moveMapboxLayers","_removeLayer","$f","getPopups","collection","draggedPopups","em","im","_addSource","_buildSources","getSources","_removeSource","rm","nm","om","am","sm","lm","um","cm","pm","dm","fm","centerOffset","gm","ym","before","defer","vm","_m","xm","outlineColor","outlineWidth","bm","wm","Sm","cap","Tm","Em","Im","iconSize","fontColor","textFont","clusterIcon","Cm","Am","km","Pm","Mm","Lm","Dm","Om","zm","Rm","Nm","Bm","userRegion","autoResize","showBuildingModels","showLogo","Fm","Um","jm","flow","qm","Vm","Gm","enableAccessibility","Zm","Hm","Km","Wm","Xm","Ym","Jm","Qm","$m","_modifySource","tg","eg","getStyleComponents","lookUp","layerGroups","layerPath","buildComponent","getCopyrightCaption","copyright","getSprite","spritePath","glyphsPath","flowPaths","theme","defaultStyle","rg","serviceOptions","setServiceOptions","accessibleMapDelegate","_generateSafeBounds","setCameraBounds","_setAutoResize","localizedStringsPromise","copyrightControl","logoControl","_setStyleComponents","addIcon","imageSprite","addCircles","addLinestrings","addPolygons","addRaster","addHtml","removeHtml","setUserInteraction","userInteractionDelegate","getUserInteraction","setTraffic","trafficOptions","incidentDelegate","flowDelegate","removed","styleBuilder","ready","_windowResizeCallback","styleLayerIds","styleSourceIds","_updateGlobalDefaults","_detectHighContrast","hcLight","hcDark","canvasContainer","insights","supportedWithPerformance","ng","og","applyTemplate","template","singleDescription","sandboxContent","detectHyperlinks","parsePropertyPaths","_applyStringTemplate","_appendChild","propertyPath","_generateContent","_ignoreProperty","Snippet","_createSandboxedIframe","sandbox","scrollWidth","table","_cssUrl","srcdoc","_generatePropertyInfoTable","_generateDynamicTableHtml","_placeholderRx","_getPropertyValue","hyperlinkFormat","toLocaleString","numberFormat","_isUrlRx","_isImageUrlRx","_emailRx","isImage","hideLabel","HtmlMarker","Pixel","PopupTemplate","Shape","_getAssetDomain","_getDomain","_hasSetAuthenticationOptions","_hasSetDomain","_hasSetLanguage","_hasSetSessionId","_hasSetView","addImageTemplate","control","getAllImageTemplateNames","getAuthenticationOptions","getDomain","getImageTemplate","getLanguage","getSessionId","getSubscriptionKey","getUserRegion","getVersion","getView","isSupported","math","setAuthenticationOptions","setDomain","setLanguage","setSessionId","setUserRegion","setView","moment","hasMoment","hasEventListeners","sto","addEvent","removeEvent","str","hasClass","addClass","removeClass","isWeekend","setToStartOfDay","setHours","compareDates","hasProp","nodeName","fireEvent","eventName","ev","createEventObject","adjustCalendar","bound","reposition","defaultDate","setDefaultDate","firstDay","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","blurFieldOnSelect","i18n","previousMonth","nextMonth","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","renderDay","ariaSelected","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","renderWeek","onejan","renderRow","isRowSelected","renderBody","rows","renderHead","renderTitle","refYear","randId","monthHtml","yearHtml","isMinYear","isMaxYear","html","renderTable","Pikaday","_onMouseDown","_v","srcElement","prevMonth","setDate","hide","returnValue","_onChange","gotoMonth","gotoYear","_onKeyChange","isVisible","adjustDate","_onInputChange","firedBy","_onInputFocus","show","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","setMinDate","setMaxDate","fallback","toDateString","getMoment","setMoment","preventOnSelect","newCalendar","calendars","firstVisibleDate","lastVisibleDate","visibleDate","adjustCalendars","newDay","difference","gotoToday","setStartRange","setEndRange","force","adjustPosition","viewportWidth","viewportHeight","clientRect","pageYOffset","pageXOffset","offsetLeft","offsetTop","offsetParent","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","after","isWeekSelected","dayNumber","monthNumber","yearNumber","dayConfig","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","70","80","20","50","100","30","60","90","plural","word","num","forms","relativeTimeWithPlural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","longMonthsParse","shortMonthsParse","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","40","isUpper","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","translateSeconds","translateSingular","special","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","weekdaysCaseReplace","nominative","accusative","genitive","processHoursFunction","isOpened","initial","attrValue","configure","minChars","maxItems","autoFirst","DATA","FILTER_CONTAINS","SORT_BYLENGTH","ITEM","inside","role","reason","evt","opened","selected","select","form","hasAttribute","list","Suggestion","_list","items","goto","unbind","indexOfAwesomplete","previous","lis","suggestions","origin","siblingIndex","suggestion","regExpEscape","FILTER_STARTSWITH","expr","con","$$","querySelectorAll","init","tag","previousElementSibling","Document","Awesomplete","cachedGuess","zones","links","countries","guesses","logError","momentVersion","major","minor","charCodeToInt","unpackBase60","whole","fractional","multiplier","arrayToInt","mapIndices","indices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","low","high","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","DateTimeFormat","timeZone","normalizeName","zoneScore","change","startYear","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","caller","link","addLink","normal0","normal1","needsOffset","isUnixTimestamp","unpacked","_index","zone_name","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","dataVersion","_zones","_links","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","with_offset","old","abbrWrap","resetZoneWrap","defaultZone","webpackPolyfill","paths","webpackContext","req","webpackContextResolve","KeyCodes","InstancesSort","HierarchiesExpand","HierarchiesSort","MetadataPropertyTypes","ShiftTypes","InterpolationFunctions","ErrorCodes","YAxisStates","DataTypes","EventElementTypes","TooltipMeasureFormat","valueTypes","ascending","descending","bisector","compare1","compare2","delta","numbers","valueof","ascendingBisect","bisectRight","bisectLeft","bisectCenter","bisect","blurf","blur2","Blur2","blurImage","blurx","blury","blurh","blurv","radius0","sum","bluri","s0","s1","arrayify","reducer","lengths","product","cumsum","variance","mean","Adder","_partials","fsum","adder","fcumsum","InternMap","super","_intern","_key","intern_get","intern_set","intern_delete","InternSet","nest","groups","flatMap","flatGroup","flatRollup","rollups","rollup","unique","regroup","keyof","permute","ascendingDefined","compareDefined","groupSort","ak","av","bk","bv","e10","e5","ticks","tickIncrement","r0","r1","power","tickStep","step0","step1","nice","prestep","thresholdSturges","histogram","xz","x0","bins","maxIndex","minIndex","quickselect","swap","greatest","defined","quantile","i0","value0","quantileSorted","quantileIndex","thresholdFreedmanDiaconis","thresholdScott","cbrt","median","medianIndex","arrays","counts","modeValue","modeCount","pairs","pairof","pair","rank","compareIndex","least","minValue","leastIndex","greatestIndex","scan","shuffle","shuffler","i1","matrix","transpose","zip","mapper","others","disjoint","superset","intern","ivalue","subset","union","epsilon","translateX","translateY","bandwidth","entering","__axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","axis","spacing","range0","range1","selection","selectAll","tick","tickExit","exit","tickEnter","enter","append","attr","each","tickSize","axisTop","axisRight","axisBottom","axisLeft","noop","Dispatch","parseTypenames","typenames","typename","selector","childMatcher","node","find","childFirst","firstElementChild","EnterNode","datum","ownerDocument","namespaceURI","_next","_parent","child","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","arraylike","xhtml","svg","xlink","xml","xmlns","namespaces","space","attrRemove","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","defaultView","styleRemove","removeProperty","styleConstant","setProperty","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","previousSibling","creatorInherit","creatorFixed","namespace","constantNull","selection_cloneShallow","cloneNode","selection_cloneDeep","__on","contextListener","dispatchConstant","dispatchFunction","Selection","parents","_groups","_parents","subgroups","subnode","subgroup","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","enterGroup","updateGroup","exitGroup","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compareNode","sortgroups","sortgroup","nodes","getAttributeNS","classed","creator","deep","dispatch","nonpassive","nonpassivecapture","nopropagation","stopImmediatePropagation","noevent","__noselect","MozUserSelect","yesdrag","noclick","definition","darker","brighter","reI","reN","reP","reHex3","reHex6","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","Rgb","rgbn","hsla","rgbConvert","Hsl","hslConvert","hsl2rgb","m2","displayable","deg2rad","rad2deg","labConvert","Lab","Hcl","rgb2xyz","xyz2lab","lab2xyz","xyz2rgb","hclConvert","ED","EB","BC_DA","cubehelixConvert","Cubehelix","basis","t1","v0","v1","v2","v3","t2","t3","cosh","sinh","gamma","nogamma","rgbGamma","rgbSpline","spline","colors","rgbBasis","reA","reB","cssNode","cssRoot","cssView","svgNode","degrees","skewX","scaleX","scaleY","interpolateTransform","pxComma","pxParen","degParen","xb","yb","interpolateTransformCss","decompose","interpolateTransformSvg","baseVal","consolidate","rho","ux0","p0","uy0","w0","ux1","uy1","w1","dx","dy","d2","d1","b0","b1","coshr0","cubehelixGamma","cubehelix","taskHead","taskTail","cubehelixLong","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","matrixTransform","getScreenCTM","inverse","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","timer","restart","timerFlush","wake","t0","sleep","nap","poke","elapsed","emptyOn","emptyTween","schedules","__transition","tween","schedule","tweenRemove","tween0","tween1","tweenFunction","tweenValue","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationConstant","easeConstant","onFunction","on0","on1","sit","styleInterpolate","styleTween","textInterpolate","textTween","Transition","selection_prototype","cubicIn","cubicOut","cubicInOut","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","easeVarying","reject","interrupt","defaultTiming","BrushEvent","MODE_DRAG","MODE_SPACE","MODE_HANDLE","MODE_CENTER","number1","number2","handles","xy","XY","cursors","overlay","nw","sw","flipX","flipY","signsX","signsY","defaultFilter","defaultExtent","viewBox","defaultTouchable","maxTouchPoints","__brush","brushSelection","brushX","brushY","touchending","touchable","handleSize","brush","handle","redraw","started","touchmoved","touchended","emitter","clean","emit","Emitter","n0","n1","e0","lockX","lockY","signX","signY","shifting","pointer","point0","beforestart","pts","moved","ended","keydowned","keyupped","cur","selection0","selection1","starting","keyModifiers","halfPi","tau","compareValue","chordTranspose","chordDirected","directed","padAngle","sortGroups","sortSubgroups","sortChords","chord","groupSums","groupIndex","chords","subgroupIndex","startAngle","endAngle","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","arc","a0","a1","ccw","cw","defaultSource","defaultTarget","defaultRadius","defaultStartAngle","defaultEndAngle","defaultPadAngle","defaultArrowheadRadius","headRadius","sourceRadius","targetRadius","ribbon","argv","sa0","sa1","ta0","ta1","tr2","ta2","ribbonArrow","reHex","color_formatHex","formatHex","color_formatRgb","formatRgb","rgb_formatHex","rgb_formatRgb","clampa","clampi","clamph","clampt","formatHex8","formatHsl","radians","hcl2lab","rgb2lrgb","lrgb2rgb","hole","ringContains","pj","xj","yj","segmentContains","collinear","smooth","smoothLinear","contours","contour","polygons","fragmentByStart","fragmentByEnd","stitch","startIndex","endIndex","isorings","polygon","_0","_1","defaultX","defaultY","defaultWeight","pow2k","density","pow4k","MIN_VALUE","transformPolygon","transformRing","transformPoint","cellSize","splitter","resulterrbound","elen","flen","Qnew","bvirt","enow","fnow","eindex","findex","hindex","estimate","C1","C2","orient2d","detleft","detright","det","detsum","acxtail","acytail","bcxtail","bcytail","ahi","alo","bhi","blo","_j","u3","acx","bcx","acy","bcy","errbound","C1len","C2len","Dlen","orient2dadapt","EPSILON","EDGE_STACK","defaultGetX","defaultGetY","maxTriangles","_triangles","_halfedges","_hashSize","_hullPrev","_hullNext","_hullTri","_hullHash","_ids","_dists","hullPrev","hullNext","hullTri","hullHash","i2","minDist","i0x","i0y","i1x","i1y","minRadius","circumradius","i2x","i2y","quicksort","hull","d0","triangles","halfedges","ex","ey","circumcenter","_cx","_cy","_hullStart","hullSize","_hashKey","trianglesLen","_addTriangle","_legalize","pseudoAngle","inCircle","hbl","_link","px","py","fx","fy","dists","tempDist","delaunay","xmin","ymin","xmax","ymax","_circumcenters","vectors","_init","circumcenters","x3","y3","ab","inedges","tj","_renderSegment","h0","h1","_project","_clip","cell","cellPolygon","renderCell","c0","_regioncode","c1","_clipSegment","_step","neighbors","cj","aj","lj","_cell","_clipInfinite","_clipFinite","sx0","sy0","sx1","sy1","_edgecode","_edge","vx0","vy0","vxn","vyn","vx","vy","pointX","pointY","jitter","flatArray","flatIterable","_delaunator","_hullIndex","hullIndex","renderHull","trianglePolygon","renderTriangle","DragEvent","subject","defaultContainer","defaultSubject","mousedownx","mousedowny","mousemoving","gestures","clickDistance2","drag","mousedowned","touchstarted","gesture","mousemoved","mouseupped","nodrag","mouse","touch","clickDistance","EOL","EOF","objectConverter","columns","inferColumns","columnSet","column","pad","reFormat","delimiter","DELIMITER","parseRows","eof","eol","preformatBody","formatValue","formatRow","customConverter","formatBody","formatRows","csv","dsv","csvParse","csvParseRows","csvFormat","csvFormatBody","csvFormatRows","csvFormatRow","csvFormatValue","tsv","tsvParse","tsvParseRows","tsvFormat","tsvFormatBody","tsvFormatRows","tsvFormatRow","tsvFormatValue","autoType","fixtz","getHours","quadIn","quadOut","quadInOut","polyIn","exponent","polyOut","polyInOut","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","elasticIn","amplitude","elasticOut","elasticInOut","responseBlob","responseArrayBuffer","dsvParse","responseJson","parser","DOMParser","parseFromString","strength","sx","sy","tree","_root","leaf","quadtree","Quadtree","addAll","leaf_copy","treeProto","cover","yz","visit","quads","retainer","removeAll","visitAfter","radii","iterations","ri2","quad","rj","jiggle","_nodes","_random","nodeById","nodeId","strengths","distances","bias","initializeStrength","initializeDistance","initialAngle","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","lcg","initializeNodes","initializeForce","randomSource","closest","distanceMin2","distanceMax2","theta2","accumulate","distanceMin","distanceMax","theta","radiuses","formatDecimalParts","toExponential","coefficient","formatSpecifier","specifier","FormatSpecifier","align","zero","comma","precision","prefixExponent","toPrecision","formatRounded","prefixes","grouping","thousands","currencyPrefix","currencySuffix","decimal","numerals","formatNumerals","minus","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","formatPrefix","defaultLocale","quarterPi","haversin","streamGeometry","stream","streamGeometryType","streamObjectType","Sphere","sphere","streamLine","streamPolygon","lineStart","lineEnd","polygonStart","polygonEnd","phi00","areaRingSum","areaSum","areaStream","areaRingStart","areaRingEnd","areaRing","areaPointFirst","areaPoint","lambda","phi","dLambda","sdLambda","adLambda","cosPhi","sinPhi","deltaSum","ranges","cartesian","spherical","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","cartesianNormalizeInPlace","boundsStream","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","normal","inflection","phii","lambdai","antimeridian","lambda0","lambda1","rangeCompare","rangeContains","W0","W1","Z0","Z1","X2","Y2","Z2","z0","merged","deltaMax","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","cz","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","circleStream","cosRadius","sinRadius","circleRadius","lines","rejoin","Intersection","entry","clip","pointEqual","compareIntersection","startInside","isSubject","winding","phi0","sinPhi0","cosPhi0","sinPhi1","cosPhi1","point1","phi1","absDelta","intersection","phiArc","sink","clipLine","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","polygonContains","pointVisible","pointLine","ringSegments","validSegment","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","smallRadius","notHemisphere","two","n2","n2n2","n1n2","determinant","c2","n1xn2","polar","q1","v00","point2","clipMax","clipMin","clipRectangle","corner","comparePoint","cb","x__","y__","v__","x_","y_","v_","activeStream","bufferStream","clipStream","linePoint","polygonInside","cleanInside","lengthSum","cacheStream","lengthStream","lengthPointFirst","lengthLineEnd","lengthPoint","cosDelta","containsObjectType","containsGeometry","containsGeometryType","containsPoint","containsLine","containsPolygon","ringRadians","pointRadians","graticuleX","graticuleY","X1","X0","Y1","Y0","DX","DY","graticule","outline","extentMajor","extentMinor","stepMajor","stepMinor","graticule10","cy0","cy1","kx0","ky0","kx1","ky1","centroid","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_radius","pointRadius","_line","_point","lengthRing","PathString","_string","_circle","projectionStream","contextStream","transformer","methods","TransformStream","fit","clipExtent","fitExtent","fitSize","fitWidth","fitHeight","cosMinDistance","delta2","resampleLineTo","phi2","lambda2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","resampleNone","transformRadians","scaleTranslateRotate","scaleTranslate","cosAlpha","sinAlpha","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","preclip","postclip","recenter","resample","transformRotate","clipAngle","reflectX","reflectY","conicProjection","parallels","conicEqualAreaRaw","cylindricalEqualAreaRaw","r0y","conicEqualArea","lower48Point","alaskaPoint","hawaiiPoint","lower48","albers","alaska","hawaii","pointStream","albersUsa","streams","azimuthalRaw","azimuthalInvert","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","equirectangularRaw","conicEquidistantRaw","gy","nx","A1","A2","A3","A4","equalEarthRaw","l2","l6","gnomonicRaw","tx","kx","ky","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","defaultSeparation","meanXReduce","maxYReduce","separation","previousNode","eachAfter","meanX","leafLeft","leafRight","mapChildren","objectChildren","childs","eachBefore","computeHeight","copyData","constantZero","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","packEncloseRandom","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","r2","r21","r3","a2","a3","b2","b3","c3","d3","place","packSiblingsRandom","sj","pack","radiusLeaf","packChildrenRandom","translateChild","partition","positionNode","preroot","ambiguous","imputed","defaultId","defaultParentId","stratify","nodeKey","currentId","currentParentId","nodeByKey","slash","parentof","nextLeft","nextRight","moveSubtree","nextAncestor","vim","TreeNode","treeRoot","firstWalk","secondWalk","sizeNode","siblings","executeShifts","midpoint","vip","vop","vom","sip","sop","sim","som","apportion","squarifyRatio","ratio","nodeValue","sumValue","newRatio","minRatio","beta","dice","squarify","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","paddingOuter","sums","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","resquarify","_squarify","isNumberArray","DataView","numberArray","genericArray","DOMMatrix","WebKitCSSMatrix","isIdentity","rho4","rho2","_2","zoomRho","samples","interpolator","lexicographicOrder","computeUpperHullIndexes","sortedPoints","flippedPoints","upperIndexes","lowerIndexes","skipLeft","skipRight","perimeter","randomUniform","sourceRandomUniform","randomInt","sourceRandomInt","randomNormal","sigma","sourceRandomNormal","randomLogNormal","sourceRandomLogNormal","randomIrwinHall","sourceRandomIrwinHall","irwinHall","randomBates","sourceRandomBates","randomExponential","log1p","sourceRandomExponential","randomPareto","sourceRandomPareto","randomBernoulli","sourceRandomBernoulli","randomGeometric","sourceRandomGeometric","randomGamma","sourceRandomGamma","randomBeta","sourceRandomBeta","geometric","randomBinomial","acc","sourceRandomBinomial","randomWeibull","outerFunc","sourceRandomWeibull","randomCauchy","sourceRandomCauchy","randomLogistic","sourceRandomLogistic","binomial","randomPoisson","sourceRandomPoisson","eps","seed","initRange","initInterpolator","implicit","unknown","band","ordinalRange","rescale","rangeRound","pointish","bimap","polymap","untransform","piecewise","continuous","precisionPrefix","precisionRound","precisionFixed","linearish","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","logp","powp","transformSymlog","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","squared","invertExtent","quantiles","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","getMilliseconds","getSeconds","getMinutes","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","utcMinute","setUTCSeconds","utcMinutes","utcHour","utcHours","utcDay","setUTCHours","setUTCDate","utcDays","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","utcMonth","setUTCMonth","utcMonths","utcYear","utcYears","ticker","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","newDate","formatLocale","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLiteralPercent","pads","newParse","utcFormat","utcParse","timeParse","numberRe","percentRe","requoteRe","requote","dISO","UTCdISO","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","utcTime","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","ramp","warm","cool","pi_1_3","pi_2_3","magma","inferno","plasma","nextId","Local","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","arcEndAngle","arcPadAngle","x10","y10","x32","y32","cornerTangents","ox","oy","x11","y11","cx0","cx1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","a01","a11","a10","da0","da1","rc0","rc1","Linear","areaStart","areaEnd","defined0","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","sortValues","pie","arcs","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","Bump","pointRadial","bumpX","bumpY","bumpRadial","linkSource","linkTarget","linkHorizontal","linkVertical","linkRadial","sqrt3","tan30","tan30_2","symbolsFill","diamond","star","wye","symbolsStroke","plus","triangle2","asterisk","square2","diamond2","Basis","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","_basis","_beta","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","_t0","Step","stepBefore","stepAfter","series","stackValue","stackSeries","oz","sz","s2","sij0","s3","peaks","peak","vj","appearance","tops","bottoms","isoSpecifier","_restart","ZoomEvent","Transform","applyX","applyY","invertX","invertY","rescaleX","rescaleY","__zoom","SVGElement","defaultTransform","defaultWheelDelta","defaultConstrain","translateExtent","touchstarting","touchfirst","constrain","wheelDelta","scaleExtent","touchDelay","tapDistance","wheeled","dblclicked","__zooming","Gesture","taps","wheel","wheelidled","k1","touch0","touch1","l0","l1","scaleBy","scaleTo","k0","translateBy","translateTo","DefaultHierarchyNavigationOptions","instancesPageSize","hierarchiesPageSize","isInstancesRecursive","isInstancesHighlighted","instancesSort","DisplayName","hierarchiesExpand","OneLevel","hierarchiesSort","Name","nullTsidDisplayString","swimlaneLabelConstants","CharactersToEscapeForExactSearchInstance","LINECHARTTOPPADDING","GRIDCONTAINERCLASS","LINECHARTCHARTMARGINS","Utils","formatYAxisNumber","lastChar","getStackStates","parseTimeInput","getNumber","charsFromEnd","startAt","findClosestTime","prevMillis","timeMap","minDistance","closestValue","intervalCenterString","intervalCenter","getValueOfVisible","visibleMeasure","measures","isStartAt","startAtString","searchSpan","parseShift","shiftString","adjustStartMillisToAbsoluteZero","fromMillis","bucketSize","epochAdjustment","bucketSizeToTsqInterval","bucketSizeInMillis","numberAsString","padLeadingZeroes","createEntityKey","aggName","aggIndex","getColorForValue","chartDataOptions","valueMapping","rollUpContiguous","formatOffsetMinutes","getOffsetMinutes","millis","offsetUTC","getMinutesToUTC","millisInOffset","addOffsetGuess","timezoneName","timezoneAbbreviation","createTimezoneAbbreviation","timezone","parseTimezoneName","timezoneRaw","convertTimezoneToLabel","locdLocal","localPrefix","offsetPrefix","timezoneSuffix","rangeTimeFormat","rangeMillis","oneMinute","oneHour","oneDay","subDateTimeFormat","is24HourTime","usesSeconds","usesMillis","shiftMillis","_this","stringFormat","splitTimeLabel","splitLines","newFirstLine","newSecondLine","UTCTwelveHourFormat","getAgVisible","displayState","aggI","splitBy","splitBys","getAgVisibleMeasure","visibleType","createSeriesTypeIcon","seriesType","strip","stripForConcat","setSeriesLabelSubtitleText","subtitle","isInFocus","subtitleDatum","textAfterSplitByExists","timeShift","variableAlias","splitByString","appendFormattedElementsFromString","revertAllSubtitleText","markerValues","generateColors","numColors","includeColors","defaultColors","postDefaultColors","colorsIndex","convertFromLocal","adjustDateFromTimezoneOffset","dateCopy","offsetFromUTC","offsetMinutes","offsetToUTC","parseUserInputDateTime","timeText","dateTimeFormat","parsedDate","getBrighterColor","hclColor","createSplitByColors","aggKey","ignoreIsOnlyAgg","accum","currAgg","aggColor","interpolateColor","newColor","colorSplitBy","splitByIndex","clearSelection","sel","getSelection","removeAllRanges","regExp","guid","s4","createValueFilter","aggregateKey","currAggKey","currSplitBy","downloadCSV","csvString","csvName","blobURL","Double","Long","jsonifiedString","Dynamic","focusOnEllipsisButton","renderTarget","ellipsisContainer","createDownloadEllipsisOption","csvStringGenerator","downloadLabel","iconClass","createControlPanel","legendWidth","topChartMargin","chartOptions","controlPanelWidth","legend","escapeQuotesCommasAndNewlines","stringToEscape","escapedString","getNonNumericHeight","rawHeight","getControlPanelWidth","isLegendShown","getValueOrDefault","chartOptionsObj","propertyName","propertyValue","safeNotNullOrUndefined","valueLambda","err","getAggKeys","aggregateCounterMap","aggregate","roundToMillis","rawTo","mergeSeriesForScatterPlot","chartData","scatterMeasures","xMeasure","X_MEASURE","yMeasure","Y_MEASURE","rMeasure","R_MEASURE","measureNames","getScatterPlotMeasureNames","dataTitle","additionalFields","Variable","scatterData","measureTypes","X_MEASURE_TYPE","Y_MEASURE_TYPE","R_MEASURE_TYPE","normalizeTimestampKeys","newTS","oldTime","bucketShiftInMillis","uniqueNameMap","xMeasureName","yMeasureName","tempName","rMeasureName","getMinWarmTime","warmStoreFrom","retentionString","minWarmTime","retentionPeriod","standardizeTSStrings","convertedData","dG","dGName","dataGroup","convertedDataGroup","dataGroupKeyedObject","seriesName","rawTS","isoString","cullValuesOutOfRange","availabilityDistribution","minDateString","maxDateString","dateZero","minDateValue","maxDateValue","inRangeValues_1","outOfRangeValues_1","highestNotOverMaxString_1","highestNotOverMaxValue_1","lowestAboveMinValue_1","distribution","bucketKey","bucketValue","intervalSize","nowMillis","rangeToValue","toValue","rangeFromValue","fromValue","mergeAvailabilities","warmAvailability","coldAvailability","warmStoreRange","warmStoreToMillis","coldStoreToMillis","maxWarmTime","mergedAvailability","languageGuess","languages","memorySizeOf","bytes","sizeOf","objClass","guidForNullTSID","equalToEventTarget","isKeyDownAndNotEnter","which","getInstanceKey","instanceHasEmptyTSID","timeSeriesId","stripNullGuid","getTimeSeriesIdString","getTimeSeriesIdToDisplay","emptyDisplayString","getHighlightedTimeSeriesIdToDisplay","highlights","idx","targetElem","splitByNullGuid","isNull","splitByTag","splittedByHitClose","isHit","additionalClassName","inSvg","escapedTsidForExactSearch","tsid","escapedTsid","__assign","ServerClient","apiVersionUrlParam","oldTsmTsqApiVersion","tsmTsqApiVersion","referenceDataAPIVersion","maxRetryCount","retriableStatusCodes","onAjaxError","logObject","onAjaxRetry","onFallbackToOldApiVersion","retryBasedOnStatus","xhr","fallBackToOldApiVersion","setStandardHeaders","clientRequestId","mergeTsqEventsResults","tsqEvents","timestamps","tsqe","currentPropertiesValueLength","existingProperty","foundProperty","indexOfExistingProperty","getQueryApiResult","results","contentObject","messageProperty","onProgressChange","mergeAccumulatedResults","percentComplete","retryTimeout","continuationToken","retryCount","accumulator","progressFromMessage","progress","getEvents","take","eventCount","retryWithDelay","payload","__tsiError__","sendBatchDataPostRequestPromise","requestParams","batchParams","batch","batchObject","erroneousDataCount","resultErrorMessage","dataIndex","InvalidInput","completedDataCount","totalItemCount","createPostBatchPromise","responseTextFormat","batchSize","maxByteSize","batches","PartialSuccess","createPromiseFromXhrForBatchData","payloadObj","createPromiseFromXhr","Server","httpMethod","sendRequest","getCancellableTsqResults","tsqArray","storeType","getTsqResults","hasCancelTrigger","tsqResults","tsq","xhrs","storeTypeString","promise","getAggregates","tsxArray","aggregateResults","tsx","aggregates","getTimeseriesInstances","environmentFqdn","timeSeriesIds","getDataWithContinuationBatch","getTimeseriesTypes","typeIds","postTimeSeriesTypes","useOldApiVersion","updateSavedQuery","timeSeriesQuery","endpoint","getTimeseriesHierarchies","getTimeseriesModel","getTimeseriesInstancesPathSearch","instancesContinuationToken","hierarchiesContinuationToken","requestPayload","getTimeseriesInstancesSuggestions","searchString","getTimeseriesInstancesSearch","getReferenceDatasetRows","datasetId","postReferenceDatasetRows","datasetName","getReferenceDatasets","resourceId","deleteReferenceDataSet","putReferenceDataSet","dataSet","getGen1Environment","getEnvironments","getSampleEnvironments","getMetadata","minMillis","maxMillis","getEventSchema","getAvailability","apiVersion","hasWarm","uriBase","coldUri","coldResponse","warmUri","warmResponse","availability","retention","predicateObject","messageObject","builtInProperty","verb","propName","maxResults","retryNumber","retryDelay","RedBlackTree","RedBlackNode","RedBlackRotateLeft","RedBlackRotateRight","RedBlackFirst","grandpa","uncle","sibling","createEdge","edge","setEdgeEnd","createBorderEdge","vertex","clipEdge","connectEdge","fb","lx","ly","cellHalfedgeAngle","site","vb","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","attachCircle","lArc","rArc","lSite","cSite","rSite","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","disappearing","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","lfocx","lfocy","plby2","aby2","lexicographic","Diagram","sites","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","v01","v11","v10","clipCells","edges","_found","extendStatics","voronoi","Strings","stringValueDefaults","stringValues","mergeStrings","stringKeyValues","stringKey","getString","ChartOptions","stringsInstance","getInterpolationFunction","interpolationName","CurveLinear","CurveStep","CurveStepBefore","CurveStepAfter","CurveBasis","CurveCardinal","CurveMonotoneX","CurveCatmullRom","mergeValue","preserveAvailabilityState","persistDateTimeButtonRange","isCompact","keepBrush","isArea","noAnimate","updateInterval","minutesForTimeLabels","aggTopMargin","maxBuckets","yAxisHidden","focusHidden","singleLineXAxisLabel","tooltip","throttleSlider","snapBrush","minBrushWidth","keepSplitByColor","brushContextMenuActions","timeFrame","fromChart","stacked","scaledToCurrentTime","zeroYAxis","arcWidthRatio","bucketSizeMillis","brushClearable","brushMoveAction","brushMoveEndAction","yAxisState","xAxisHidden","suppressResizeListener","onMouseout","onMouseover","onSticky","onUnsticky","onKeydown","onInput","brushHandlesVisible","hideChartControlPanel","includeTimezones","availabilityLeftMargin","onInstanceClick","interpolationFunction","None","includeEnvelope","canDownload","withContextMenu","autoTriggerBrushContextMenu","includeDots","yExtent","ellipsisItems","onMarkersChange","spMeasures","scatterPlotRadius","spAxisLabels","isTemporal","xAxisTimeFormat","brushRangeVisible","dateLocale","defaultAvailabilityZoomRangeMillis","initialValue","dTPIsModal","defaultColor","numberOfColors","isColorValueHidden","onClick","swimLaneOptions","hierarchyOptions","labelSeriesWithMarker","onError","titleKey","messageKey","timeSeriesIdProperties","shouldSticky","Component","TRANSDURATION","teardropD","themify","targetElement","currentTheme","tooltipFormat","measureFormat","xyrMeasures","createTooltipSeriesInfo","cDO","aggregateName","isVariableAliasShownOnTooltip","__extends","__","_super","Legend","drawChart","renderSplitBys","aggSelection","noSplitBys","splitByLabelData","chartComponentData","timeArrays","firstSplitBy","firstSplitByType","showMoreSplitBys","curr","oldShownSplitBys","shownSplitBys","splitByContainer","splitByContainerEntered","splitByLabels","splitByLabelsEntered","legendState","toggleSplitByVisible","toggleSticky","labelMouseover","svgSelection","labelMouseout","Numeric","stickiedKey","colorKey","colorKeyEntered","createNonNumericColorKey","Categorical","Events","typeLabels","shouldShowMore","scrollHeight","stickySeriesAction","legendElement","labelMouseoutWrapper","newState","triggerSplitByFocus","labelData","indexOfSplitBy","splitByNode","prospectiveScrollTop","getHeightPerSplitBy","createGradient","gradientKey","catCount","category","currentStop","nextStop","isNonNumeric","createCategoricalColorKey","createEventsColorKey","categories","aggregateExpression","eventElementType","colorKeyWidth","colorKeyHeight","colorKeyUnitLength","Teardrop","labelMouseoutAction","seriesNames","seriesLabels","seriesLabelsEntered","usableLegendHeight","prospectiveAggregateHeight","contentHeight","heightPerSplitBy","seriesNameLabel","enteredSeriesNameLabel","agg","splitByContainerHeight","seriesNameLabelText","minSplitByForFlexGrow","ChartComponentData","visibleTSCount","visibleTAs","allValues","allNumericValues","toMillis","isFromHeatmap","getSwimlane","swimLane","getVisibleType","defaultType","prospectiveVisible","setAllTimestampsArray","allTimestamps","aeObj","timeseries","allTimestampsArray","getDataType","fillColors","aggregateExpressionOptions","colorlessCount","aEO","colorI","mergeDataToDisplayStateAndTimeArrays","newDisplayState","aggKeys","aggregateCopy","visibilityState","visibleSplitByCap","contextMenuActions","contextMenu","oldContextMenuActions","oldAggregateExpression","aggregateVisible","splitByI","shiftValue","convertAggregateToArray","rollupCategoricalValues","determineMeasureTypes","doesTimeArrayUseSeconds","doesTimeArrayUseMillis","timeArray","getTemporalShiftStringTuple","shifted","getTemporalShiftMillis","setAllValuesAndVisibleTAs","getAggVisible","getSplitByVisible","endValue","findLastTimestampWithValue","lastValue","getVisibleMeasure","findFirstBucket","possibleFirstKeys","firstPresentKey","firstMillis","getNumberOfPaddedBuckets","aggArray","isoStringAgg","dateString","jsISOString","createTimeValueObject","timeValueObject","firstBucket","firstBucketMillis","currTimeString","currMeasures","currTime","isSplitByVisible","isPossibleEnvelope","aggHasVisibleSplitBys","hasVisibleSplitBy","valueAtTS","splitByName","setFilteredAggregates","filteredAggregates","guessValueType","generateCSVString","endLine","headerString","rowMap","rowOrder","aggObj","splitByObject","rowKey","getVisibilityState","visibilityStateArray","aggDisplayState","visibleSplitBys","visibilityObject","EllipsisMenu","createIconPath","iconName","setMenuVisibility","menuIsVisible","containerElement","focusOnMenuItem","itemIndex","menuItems","menuElement","menuItemKeyHandler","buttonElement","setMenuItems","menuElementEntered","rawMenuItems","currMenuItem","HORIZONTAL","NOOP","isIE8","calc","cssText","elementOrSelector","ele","getOption","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","defaultElementStyleFn","gutSize","defaultGutterStyleFn","idsOption","dimension","clientAxis","positionEnd","clientSize","elements","parentStyle","parentFlexDirection","sizes","minSizes","expandToMin","snapOffset","dragInterval","gutter","elementStyle","gutterStyle","setElementSize","getSizes","getMousePosition","adjust","percentage","calculateSizes","aBounds","bBounds","trimToMin","sizesToTrim","parentSize","computedStyle","innerSize","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","newPixelSize","takenPixels","stopDragging","userSelect","webkitUserSelect","startDragging","adjustToMin","setSizes","newSizes","trimmed","newSize","preserveStyles","preserveGutter","gutterElement","setGutterSize","computedSize","collapse","Grid","rowLabelKey","aggIndexKey","cellClass","ridx","cidx","rowIdx","colIdx","gridComponent","getFormattedDate","hAsDate","setFilteredTimestamps","filteredTimestamps","currMillis","arrowNavigate","d3event","codeIndex","hideGrid","showGrid","renderFromAggregates","createGridEllipsisOption","labelText","dataAsJson","aeName","sbName","getRowData","rowData","sb","sbI","convertSeriesToGridData","allTimeStampMap","currSeries","dataPoint","addHeaderCells","headerCellData","headerCells","tableHeaderRow","headerCellsEntered","addValueCells","tsMap","seriesData","measuresData","headerCell","getRowHeaderText","col","cellsEntered","formattedValues","measureName","__spreadArray","ChartComponent","MINWIDTH","MINHEIGHT","CONTROLSWIDTH","GUTTERWIDTH","chartControlsPanel","ellipsisMenu","downloadAsCSV","isScatterPlot","gatedShowGrid","isGridVisible","drawEllipsisMenu","additionalEllipsisItems","removeControlPanel","removeEllipsisMenu","ellipsisItemsExist","getCDOFromAggKey","getFilteredMeasures","measureList","justVisibleMeasure","SingleValue","Scatter","isAvgMinMax_1","convertToTimeValueFormat","measuresObject","measureType","formatDate","titleGroup","endDate","tooltipAttrs","tooltipAttributes","shiftTuple","keyString","valueString","attrsGroup_1","attrTuple","timeShiftRow","formatValue_1","valueGroup_1","valueGroup_2","valueItem","measureTitle","getSVGWidth","chartWidth","chartMargins","getChartWidth","calcSVGWidth","setControlsPanelWidth","legendPostRenderProcess","chartElement","shouldSetControlsWidth","splitLegendOnDrag","splitLegendAndSVG","onDrag","svgWidth","legendObject","onDragEnd","onDragStart","svgLeftOffset","calcedLegendWidth","optionsObject","connectPoints","pointConnectionMeasure","onElementClick","Diamond","positionX","positionY","positionXVariableName","positionYVariableName","isRawData","horizontalMarkers","ChartVisualizationComponent","TemporalXAxisComponent","createOffsetXAxis","xCopy","rawStart","rawEnd","createXAxis","snapFirst","snapLast","getXTickNumber","smartTickFormat","createSmartTickFormat","labelFormatUsesSeconds","labelFormatUsesMillis","tickSpanSubMinute","isTickSpanGreaterThan","tickSpanSubSecond","updateXAxis","forceFirst","forceLast","xAxisEntered","updateAxisText","indexOfLast_1","self_1","momentTimeFormatString","indexOfLast_2","self_2","drawXAxis","yOffset","xAxis","isSameDate","getYear","spansMultipleDays","lessTicksThanDays","timeAndDate","LineChartData","_yExtents","setYExtents","resetYExtents","setTimeMap","currVal","ContextMenu","contextMenuVisible","contextMenuElement","launchSubMenu","subMenuActions","subLevel","enteredContainer","ACTIONELEMENTCONTAINERMAXHEIGHT","createActionElements","positionAEC","subMenuActionsCount","verticalPositionAEC","horizontalPositionAEC","shouldHorizontalFlip","rawLeft","shouldVerticalFlip","rawTop","elementCount","containerTop","totalHeight","getRelativeHorizontalPosition","isLeft","actionElementContainer","ACTIONELEMENTHEIGHT","leftPosition","rightPosition","oneLevelUp","getActionElementContainerTop","launchedFromActionNode","removeSubMenusAboveLevel","subMenuD","actions","actionElements","actionElementsEntered","isNested","subActions","subMenuFromActionIndex","subMenuFromSubLevel","startTime","mousePosition","actionContainerEntered","Tooltip","tooltipDiv","getSVGHeight","getLeftOffset","getTopOffset","isRightOffset","tooltipWidth","xPos","chartMarginLeft","isTopOffset","tooltipHeight","yPos","tooltipDivInner","addText","elementWidth","xOffset","isFromMarker","leftOffset","topOffset","ownKeys","enumerableOnly","symbols","sym","_typeof","_defineProperty","_extends","_arrayLikeToArray","_createForOfIteratorHelper","allowArrayLike","minLen","_unsupportedIterableToArray","normalCompletion","didErr","decasteljau","decasteljauRecurse","newPoints","pointsToCommand","splitCurve","commandStart","commandEnd","segmentCount","remainingCurve","tIncrement","splitCurveAsPoints","commandTokenRegex","typeMap","arrayOfLength","commandToString","commandsToExtend","referenceCommands","excludeSegment","numSegmentsToExtend","numReferenceSegments","segmentRatio","extended","insertIndex","addToPriorSegment","lastCommandCopies","copyCommand","splitSegment","pathCommandsFromString","commandArgs","commands","interpolatePathCommands","aCommandsInput","bCommandsInput","interpolateOptions","aCommands","bCommands","_ref","snapEndsToInput","addZ","interpolatedCommands","aCommand","bCommand","conversionMap","readFromBKeys","aConverted","bKey","bValue","aValue","convertToSameType","getOwnPropertyDescriptors","_objectSpread2","interpolatedCommand","_iterator","interpolatePath","_ref2","commandInterpolator","_step2","interpolatedString","_iterator2","HierarchySelectionValues","ViewType","State","Plot","backdropRect","getVisibleSeries","createGradientKey","addGradientStops","valueMap","sumOfMeasures","allMeasuresNumeric","currMeasure","numMeasures","currFraction","newFraction","createBackdropRect","aggregateGroup","getVisibleMeasures","LinePlot","plotDataType","getXPosition","createAreaPath","areaPath","chartHeight","visibleAggI","aggVisible","visibleAggCount","colorMap","previousAggregateData","yMap","defs","previousIncludeDots","yTopAndHeight","categoricalMouseover","categoricalMouseout","yAxisOnClick","aggY","aggLine","aggEnvelope","yAxisHasOnClick","positionInGroup","yTop","yRange","yOffsetPercentage","axisType","Overlap","yDomainMin","localY","yAxis","visibleYAxis","Shared","Stacked","label_1","splitByColors","splitByGroups","lineData","scannerI","durationFunction","previousUndefined","gapPath","inTransition","envelopeData","isEnvelope","envelope","svgId","lg","CategoricalPlot","rectWidth","visibleMeasures","hoverRect","createHoverRect","chartGroup","getSeriesEndDate","getBucketEndDate","splitBysGroup","gradientData","heightPerSeries","categoricalBuckets","xPos1","xPos2","categoricalBucketsEntered","gradients","EventsPlot","gradientArray","eventOnClick","colorFunction","createDateStringFunction","createEventElements","enteredEvents","discreteEvents","dateStringFn","eventHeight","retString_1","mKey","shouldDrawBackdrop","lane","collapseEvents","seriesNumber","seriesWidth","seriesTop","discreteEventsMouseover","hoverLine","discreteEventsMouseout","createHoverLine","setEventHeight","visibleSeriesCount","useableHeight","AxisState","tooltipMap","markerIsDragging","isSeriesLabels","ADDITIONALRIGHTSIDEOVERHANG","getGuid","setMillis","timestampMillis","getMillis","setLabelText","getLabelText","setSeriesLabelText","isSeriesLabelInFocus","labelDatum","enteredSubtitle","getLeft","marginLeft","isMarkerDragOccuring","bumpMarker","renderMarker","markerContainer","markerD","markerLabel","Enter","onChange","timeLabel","isDragging","newPosition","setPositionsAndLabels","getTooltipKey","findYatX","length_end","getTotalLength","length_start","getPointAtLength","bisection_iterations","positionToValue","bisectionInterpolateValue","yPosition","interpolatedValue","newDatum","createNewDatum","isInterpolated","getPath","selectedPaths","valueOfVisible","findGapPath","inBounds","filteredData","lowerBound","upperBound","getIntersectingPath","interpolateValue","getValuesAtTime","closestTime","valueArray","filteredValues","setValueLabels","valueLabels","calcTopOfValueLabel","tooltipKey","MARKERVALUENUMERICHEIGHT","tooltipTextElement","markerValueCaret","valueLabelsExit","getTimeFormat","setTimeLabel","firstValue","secondValue","markerLeft","timeLabelWidth","minLeftPosition","maxRightPosition","calculatedRightPosition","focusCloseButton","isMarkerInRange","destroyMarker","additionalMarkerFields","LineChart","nonFocusStrokeOpactiy","surpressBrushTimeSet","hasStackedButton","stackedButton","horizontalLabelOffset","seriesLabelsMarker","markerGuidMap","isDroppingMarker","brushStartPosition","brushEndPosition","hasBrush","isClearingBrush","my","focusedAggKey","focusedSplitby","plotComponents","isFirstMarkerDrop","swimlaneYExtents","swimLaneContents","resetValueElementsFocus","triggerLineFocus","focusOnlyHoveredSeries","shouldSetFocusedValues","selectedFilter","focusMarkerLabel","voronoiMouseover","xValue","yValue","setHorizontalValuePosAndText","getSVGLeftOffset","setVerticalValueAndPosition","barWidth","horizontalValueBar","Enveloped","yAxisAggKey","stickyOrUnstickySeries","unstickySeries","stickySeries","splitby","voronoiDiagram","getFilteredAndSticky","filteredSplitBy","filteredValueExist","addMarker","createMarkerInstructions","markerUID","createOnMarkerChange","activeMarker","destroyMarkerInstructions","nextStackedState","getBrushPositions","leftPos","rightPos","brushStartTime","brushEndTime","rawRight","hideFocusElements","verticalValueBox","horizontalValueBox","voronoiMouseout","getMouseoverFunction","chartType","getMouseoutFunction","mismatchingChartType","getYExtent","aggValues","getFilteredValues","flatValuesList","numericFiltered","getHandleHeight","setBrushStartTime","setBrushEndTime","setBrush","brushElem","rawLeftSide","rawRightSide","leftSide","rightSide","findClosestValidTime","rawMillis","currValue","getMarkerMarginLeft","exportMarkers","markerGuid","isDeleting","droppedMarker","shouldSort","visibleMarkers","focusOnEllipsis","sortMarkers","getAdditionalOffsetFromHorizontalMargin","isDropping","getAllLinesTransitionsComplete","checkAllLines","numberOfAttempts","allOutOfTransition","importMarkers","markerValueTuples","markerIndex","markerMillis","renderAllMarkers","createSeriesLabelsMarker","renderSeriesLabelsMarker","voronoiExists","getVisibleNumerics","voronoiMousemove","mouseEvent","rawTime","voronoiContextMenu","d3Event","sitePageCoords","eventSite","voronoiRegion","brushContextMenu","voronoiClick","brushBrush","handleHeight","newBrushStartPosition","newBrushEndPosition","brushEnd","transformCall","isZeroWidth","possibleTimesArray","rawXValue","closestDate","newBrushStartTime","newBrushEndTime","rightSide_1","boundingCRect","correctedMousePosition","filterFunction","drawBrushRange","updateBrushRange","rangeText","rangeTextContainer","calcedWidth","deleteBrushRange","getYExtents","yExtents","clearBrush","visibleGroups","visibleCDOs","getSwimlaneOffsets","linechartTopPadding","heightPerNumeric","swimLaneSet","cumulativeOffset","visibleGroupEndValues","swimLaneStr","swimlane","hasNumeric","aggGroup","swimLaneOffset","getEventsCollapsedSwimlaneHeight","currGroupsHeight_1","setSwimLaneYExtents","swimLanes","extents","aggKey_1","tallest","currGroup","createYOffsets","countNumericLanes","visibleCount","fixedEventsHeight","swimlaneKey","swimlaneHeight","heightNonNumeric","sumPrevious","stringLane","getGroupYExtent","getAggAxisType","yAxisType","adjustSwimLanes","horizontalMarkers_1","minimumPresentSwimLane_1","currMin","overwriteSwimLanes","originalSwimLanes","originalSwimLaneOptions","getHorizontalMarkersWithYScales","markerList","pushMarker","horizontalMarkerParams","swimlaneNumber","firstVisibleCDO","findFirstVisibleCDO","drawHorizontalMarkers","markerContainers","valueText","valueLine","createSwimlaneLabels","offsetsAndHeights","swimLaneLabels","useAggForLaneLabel","swimLaneLabelGroup","boldYAxisText","enabled","onClickPresentAndValid","labelRef","maxHeight","labelClientRect","truncateLabel","isFromResize","isLabelVisible","aggExpOpt","visibleAgg","fromAndTo","xExtent","xOffsetPercentage","xLowerBound","xUpperBound","startOfBuckets","endOfBuckets","allPossibleTimes","timeSet","xAxisBaseline","swimLaneCounts","aggregateGroups","visibleNumericI","g_1","createPlot","mouseoverFunction","mouseoutFunction","offsetImpact","axisState","svgGroup","TimezonePicker","timeZones","sortTimezones","filteredTimezones","aOffset","bOffset","onTimezoneSelect","defaultTimeZone","timezoneSelection","DateTimePicker","isSettingStartTime","quickTimeArray","onSaveOrCancel","getCurrentQuickTime","matchingQuickTime","quickTimeTuple","getQuickTimeText","quickTimeMillis","filteredQuickTime","convertToCalendarDate","roundDay","setNewOffset","oldOffset","oldOffsetMinutes","utcMillis","setFromMillis","setToMillis","updateDisplayedFromDateTime","updateDisplayedToDateTime","calendarPicker","rangeErrorCheck","rangeIsValid","setIsSaveable","isSaveable","displayRangeErrors","onSet","onCancel","offsetName","quickTimesPanel","buildQuickTimesPanel","dateTimeSelectionPanel","timeControls","createTimezonePicker","saveButtonContainer","createTimePicker","createCalendar","updateDisplayedDateTimes","fromOrTo","selectedDate","createTimeString","setFromQuickTimes","relativeMillis","firstQuickTime","currDate","updateFromAndTo","timezoneContainer","timezoneSelectionLabelID","timezoneSelectionID","timezonePickerContainer","timezonePicker","newOffset","setTimeRange","isFromSelect","anchorDate","setFromDate","setToDate","setTimeInputBox","i18nOptions","setSelectedQuickTimes","calendarDate","convertedFrom","convertedTo","adjustSecondsAndMillis","setUTCMilliseconds","rangeErrors","prospectiveFromMillis","prospectiveToMillis","accumulatedErrors","bothTimesValid","fromInput","checkDateTimeValidity","parsedFrom","parsedTo","toInput","utcDate","isFrom","timeInputContainer","startOrEnd","fromOrToContainer","inputLabelID","inputID","DateTimeButton","pickerIsVisible","buttonDateTimeFormat","dateTimeContainer","dateTimeButton","dateTimePickerContainer","DateTimeButtonRange","setButtonText","isRelative","quickTime","tzAbbr","quickTimeText","dateTimePicker","currentQuickTime","AvailabilityChart","minGhostWidth","margins","uxClient","getMinZoomedRange","maxZoomFactor","sparkLineChart","zoomedToMillis","zoomedFromMillis","percentile","leftImpact","rightImpact","offBy","setAvailabilityRange","timePickerLineChart","setChartOptions","dateTimePickerAction","setTicks","createDisplayBuckets","keysInRange","transformedAvailability","availabilityCount","inRangeObj","currTSMillis","nextTSMillis","rawBucketCount","bucketMultiplier","computedBucketSize","createKey","lastBucket","tsMillis","computedKey","setRangeVariables","rawAvailability","startBucket","endBucket","AggregateExpression","predicateString","setFromAndToTimes","drawGhost","buildCompactFromAndTo","timePickerContainer","timePickerChart","sparkLineContainer","timePickerTextContainer","buildFromAndToContainer","drawWarmRange","sparkLineOptions","createSparkLineOptions","visibileAvailability","selectedFromMillis","selectedToMillis","buildZoomButtons","buttonsDiv","setSelectedMillis","renderDateTimeButton","isFromButton","warmRect","outOfRange","warmStart","boundedWarmStart","warmEnd","boundedWarmEnd","brushPositions","leftTimeText","rightTimeText","rightSideOfLeft","leftSideOfRight","totalWidth","correction","leftWeight","rightWeight","dateTimeButtonContainer","aeWithNewTimeSpan","GroupedBarChartData","valuesOfVisibleType","globalMax","globalMin","stackMin","stackMax","setValuesAtTimestamp","setEntireRangeData","aggsSeries","currentTimeSeries","localSplitByNames","stackedAggregateObject","sAO","valuesAtTimestamp","aggSplitBys","getValueContainerData","PieChartData","visibleValuesSum","updateFlatValueArray","flatValueArray","Slider","sliderSVG","sliderTextDiv","setSelectedLabelAndGetLabelAction","useFirstValue","reduceFirstValue","selectedLabel","newSelectedLabel","getXPositionOfLabel","setSliderTextDivLabel","isAscendingTimePeriods","labelMillis","determineIfAscendingTimePeriods","isAscending","marginsTotal","sliderWidth","slider","moveLeft","moveRight","setStateFromLabel","centerDivOffset","newI","PieChart","usableHeight","arcEntered","drawArc","arcTween","_current","pathMouseout","pathMouseInteraction","drawTooltip","mouseOutArcOnContextMenuClick","pathElem","ScatterPlotData","extentsSet","setExtents","forceReset","updateExtents","visibleData","updateTemporalDataArray","temporalDataArray","updateTemporal","aggregateKeyI","ScatterPlot","activeDot","focusedSite","lowOpacity","standardOpacity","focusOpacity","standardStroke","lowStroke","setWidthAndHeight","voronoiGroup","xExtentRange","yExtentRange","rOffset","rExtentRange","checkExtentValidity","rScale","drawAxis","drawAxisLabels","drawConnectingLines","scatter","pointWrapper","cleanData","getClassHash","drawVoronoi","getSliderWidth","labelMouseOver","labelMouseOut","sliderWrapper","getVoronoiData","fromSlider","invalidMessage","controlsOffset","lineWrapper","hHoverG","vHoverG","connectedSeriesMap","getPointConnectionMeasure","pConMes","_loop_1","sortMeasure","connectedGroups","testExtent","voronoiData","voronoiMouseMove","voronoiMouseOut","highlightDot","unhighlightDot","highlightColor","idSelector","labelMouseMove","focusedSplitBy","oldFilter","lineSelectedFilter_1","mouse_x","mouse_y","textElemDimensions","valOk","xLabelData","yLabelData","truncateTextLength","textSelection","maxTextLengthPx","getComputedTextLength","textLength","xAxisLabel","tspanTextSelection","yAxisLabel","xyrMeasures_1","GroupedBarChart","isStacked","baseLine","aggLabelGroup","splitByLabelGroup","rePositionLabelGroupBoxes","calcSpacePerAgg","aggregateCount","spacePerAgg","truncateText","childrenSize","barGroups","spacePerAggregate","xPosMap","aggKeyI","barBase","filteredSplitBys","splitByCount","valueElements","labelGroup","labelGroupEntered","labelGroupText","calcYPos","calcHeight","dValue","splitByXPosMap","valueElementsEntered","valueElementMouseout","mouseOutValueElementOnContextMenuClick","yVal","i_1","prevSplitBy","HierarchyNode","isExpanded","isLeaf","childrenInFilter","selfInFilter","isLeafParent","markedName","filterText","isInFilter","traverse","condition","traversal","colorify","Hierarchy","expandCollapseList","isFromClick","closeContextMenu","clickedNode","hierarchyList","noTildeName","mouseWrapper_1","mouseElt_1","inputDebounceTimeout","buildTree","splitFilterText","nodesInFilter","navTabs","allTab","selectedTab","measureObject","colorOrOptionsObject","toTsx","roundFromTo","roundedFromMillis","roundedToMillis","aggregateObject","dimensionObject","dateHistogram","breaks","bucketsCeil","uniqueValues","and","not","eq","HeatmapData","visibleSBs","timeStamps","numRows","numCols","createTimeValues","adjustStartTime","timeValues","colI","rowI","valueObject","HeatmapCanvas","gradientWidth","focusedXIndex","focusedYIndex","renderScale","isOnlyAgg","colorLegend","colorScale","gradientGuid","percentileCalc","getColor","gradientRect","highlightedValueY","highlightedText","highlightedLine","minText","maxText","setHighlightedValueLineAndText","highlightedValue","highlightedTime","highlightedSplitBy","onCellFocus","getExtent","rawExtent","heatmapData","mouseCoords","indexesChanged","newXIndex","calcCellXIndex","newYIndex","calcCellYIndex","cellX","calcCellX","sortedDates","startDate","calcCellWidth","calcCellY","rawCellHeight","cellHeightMod","rawCellWidth","cellWidthMod","tsI","sBI","cellData","drawCell","xI","modOffset","calcCellHeight","outOfFocus","globalAlpha","fillRect","interpolatedColorLuminance","Heatmap","lineHeight","splitByLabelWidth","timeLabels","timeLabelsHeight","visibleAggs","mouseover","hoveredAggKey","hoveredSplitBy","heatmapCanvas","heatmapCanvasMap","renderTimeLabels","focusStartTime","focusEndTime","focusX1","focusX2","focusY","textBoxG","textDimensions","rawOffset","createControlsPanel","chartControlsExist","addTimeLabels","heatmapWrapper","aE","canvasWrapperHeightTotal","canvasWrappers","TimeSeriesEventCell","rawEvent","utcOffsetDate_1","cellObj","propId","EventsTableData","timestampColumnKey","maxVisibleToStart","offsetNameCache","createOffsetName","sortColumnKeys","columnKeys","existingTsidColumnKeys","offsetKey","lessTimestamps","columnKey","setEvents","rawEvents","fromTsx","newEventMap","currColName","constructColumns","sortEvents","sortType","aTop","bTop","bConverted","timeSeriesIdPropertyKeys","newColumns","cellKey","isTsid","visibleColumnCounter","includeAllColumns","lineString","EventsTable","maxVisibleIndex","timestampColumnName","sortColumn","allSelectedState","eventsTableData","renderFromEventsTsx","eventsFromTsx","tableLeftPanel","componentContainer","eventsTable","eventsLegend","renderLegend","buildTable","downloadButton","oldVisibleIndex","cIdx","setSelectAllState","selectAllColumns","getSelectAllState","setAllVisible","setLegendColumnStates","toggleableColumnLis","toggleableColumnLisEntered","typeIconCOntainer","selectAllState","getFilteredColumnKeys","buildHeaders","filteredColumnKeys","focusedHeader","columnHeaders","isOffsetDateTimeColumn","columnHeadersEntered","typeIconContainer","widthDictionary","columnHeader","adjustHeaderWidth","tableSelection","scrollBarWidthDiff","currentSortedCol","rowsData","rowsEntered","visibleCells","valueCells","cellWidth","timeFormatFunction","dateValue","ModelAutocomplete","server","wrapper","inputWrapper","noSuggest","searchText","justAwesompleted","liveAria","ModelSearch","usedContinuationTokens","currentResultIndex","stripHits","h2","clickedInstance","hierarchyData","modelAutocomplete","instanceResults","hierarchyElement","showMore","noResults","searchInstances","handleKeydown","instanceResultsWrapper","instances","hits","handleClick","elt","wrapperMousePos","eltMousePos","fromKeyboard","totalActionCount_1","cma","currentActionIndex_1","cmaGroupIdx","kIdx","kArray","localActionIndex","getInstanceHtml","mouseWrapper","mouseElt","resultsNodes","hierarchies","instanceFieldNames","ifn","instanceFieldValues","TsqExpression","instanceObject","variableObject","toTsq","getSeries","aggregateSeries","toStatsTsq","inlineVariables_1","avg","stDev","firstVariable_1","aggregation","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","__generator","HierarchyNavigation","isTarget","usedInstanceSearchContinuationTokens","envHierarchies","envTypes","selectedHierarchyName","All","viewType","Navigate","originalPathBeforeReverseLookup","renderHierarchySelection","Unparented","hierarchyListElem","Down","selectHierarchy","searchGloballyElem","hierarchySelectorElem","Esc","isHierarchySelectionActive","hierarchyListWrapperElem","switchToSearchView","applySearch","viewTypesElem","setModeAndRequestParamsForFilter","setModeAndRequestParamsForNavigate","hierarchyElem","pathSearchAndRenderResult","search","instanceListWrapperElem","setModeAndRequestParamsForSearch","instanceListElem","lastInstanceContinuationToken","showNoResultsForSearch","Search","filterPathElem","noResultsElem","childNodes","doExactSearchWithPossiblePaths","hNames","escapedTsidString","hName","prepareComponentForLookup","timeSeriesID","notFoundElem","instanceLookupLoadingElem","searchWrapperElem","getInstance","simulateExpand","hierarchyNamesFromParam","instanceIdentifier","isHierarchySelected","lastHierarchyNodeParent","ulToLook","nameSpan","this_1","instanceNode","newListContentElem","instanceCount","hitElem","instanceNodeIdentifier","hierarchyNodeToExpand","pathNodeName","hierarchyNode_1","hitCount","hierarchyNodeIdentifier","expand","bubbleUpReject","recursive","pathSearch","createHierarchyItemElem","lastChild","instanceNodeString","InstanceNode","typeId","hierarchyIds","prepareComponentForAfterLookup","removeCurrentHitsOfLastLookup","hitNodes","hitNode","spanElem","instanceNodeStringToDisplay","lastLookedupInstance","showNotFoundForReverseLookup","lookupGloballyElem","clearAndGetResults","renderInstances","instanceElem","createInstanceElem","clickInstance","prepareForContextMenu","_g","locInTarget","skipLevels","renderSearchResult","instancesData","hierarchyNodes","hitCountElem","fillDataRecursively","showMoreInstances_1","renderTree","Filter","instanceObj","contextMenuProps","drawContextMenu","contextMenuItems","contextMenuOptions","contextMenuList","itemList","renderList","option","isSelectionEnabled","elem","itemWrapperElem","itemElem","isFilterEnabled","searchBox","varObj","leftSpaceAtBottom","overflowAtBottom","contextMenuFirstElt","hasHits","clearAndHideFilterPath","pathName","selectedhierarchyId","pathText","resettingVariablesForEnvChange","hierarchyNavOptions","hierarchyNavWrapper","selectedHierarchyId","hierarchy","autocompleteOnInput","CumulativeInstanceCount","pageSize","hierarchySelectionWrapper","List","filterPath","noInstancesMessage","notFoundMessage","showInstance","timeSeriesIdForLookup","Rank","UntilChildren","instanceFieldValues_1","hId","instanceFields","currentHit","currentShowMore","newListElem","nodeNameToCheckIfExists","cumulativeInstanceCount","envFqdn","payloadForContinuation","expandNode","showMorehierarchy_1","hORi","isHierarchyNode","hierarchyItemElem","pathListElem","hitsExist_1","highlightDetails","hitTuples_1","firstLine","secondLine","hitTuples","parentPath","tsId","suppressDrawContextMenu","SingleDateTimePicker","saveButton","timeInput","updateDisplayedDateTime","offsetDate","setSelectedDate","convertToLocal","setIsValid","shouldOffset","adjustedMillis","displayErrors","parsedMillis","errorCheck","dateTimeIsValid","prospectiveMillis","firstDateTime","lastDateTime","DateTimeButtonSingle","sDTPOnSet","selectedMillis","closeSDTP","PlaybackControls","initialTimeStamp","handleRadius","minimumPlaybackInterval","playbackInterval","selectedTimeStamp","onSelectTimeStamp","playbackSettings","selectTimeStampCallback","timeFormatter","sliderContainer","sliderContainerWidth","sliderContainerHeight","trackXOffset","trackYOffset","trackWidth","timeStampToPosition","timeAxisContainer","gWrapper","handleElement","controlsContainer","playButton","handlePosition","updateSelection","playbackIntervalMs","intervalMillis","newValue","stepSizeMillis","clamped","wasPlayingWhenDragStarted","handlePositionX","TimeAxis","timeScale","TsqRange","setNeatBucketSizeByNumerOfBuckets","targetNumberOfBuckets","timeRangeMs","roughBucketsize","setNeatBucketSizeByRoughBucketSize","roughBucketSizeMillis","neatIntervalIndex","NeatIntervalsMs","bucketSizeMs","alignWithServerEpoch","fromMs","toMs","millisToLargestUnit","NeatIntervals","HistoryPlayback","numberOfBuckets","defaultPlaybackRate","fetchAvailabilityFrequency","playbackSliderHeight","previewApiFlag","serverClient","currentCancelTrigger","onGraphicLoaded","renderBase","getAuthToken","tsqExpressions","playbackRate","authToken","availabilityResponse","availabilityInterval","pollAvailability","parseAvailabilityResponse","updateAvailability","component","playbackControlsContainer","loadResources","playbackControls","onSelecTimestamp","pauseAvailabilityUpdates","queryWindow","calcQueryWindow","tsqExpression","cancelTrigger","getDataPoints","timelineOffset","queryToMillis","bucketSizeStr","drawBase","ProcessGraphic","graphicSrc","graphic","graphicOriginalWidth","graphicOriginalHeight","errorMessage","graphicContainerWidth","graphicContainerHeight","resizedImageDim","getResizedImageDimensions","containerWidth","containerHeight","imageWidth","imageHeight","widthFactor","heightFactor","resizeFactor","dataPoints","parseTsqResponse","sanitizeAttribute","updateDataMarkers","graphicValues","textElements","newElements","highlightCssClass","currentTimeStamp","sanitized","ColorPicker","componentId","getSelectedColorValue","selectedColor","showColorGrid","colorPickerElem","isColorGridVisible","hideColorGrid","withFocusBackToPickerButton","setSelectedColor","cStr","gridItem","getColorPickerElem","colorPickerButton","colorGridRowElem","Tab","GeoProcessGraphic","azureMapsSubscriptionKey","parsedResponse","dataPointArr","createTable","gpgTooltipDiv","gpgTooltipInnerDiv","gpgTooltipTitleDiv","gpgTooltipTable","spacer","gpgTooltipValueRow","gpgValueLabelCell","labelName","gpgValueCell","transformTsqResultsForVisualization","tsqr","transformedAggregate","aggregatesObject","UXClient","BarChart","transformTsxToEventsArray","eventSourceId","lts","strippedName","columnNameAndType","eventObject","timezoneOffset","eventSourceProperties","nameToStrippedPropName","valueToStrippedValueMap","propIdx","eventIdx","schema","rid","propertyNames","eventSourceName","schemaRid","otherProps_1","propNameRaw","strippedNameOP","toISONoMillis","transformAvailabilityForVisualization","availabilityTsx","rawBucketSize","firstKey","firstCount","formattedISO","transformAggregatesForVisualization","dateTimeToValueObject","transformTsqResultsToEventsArray","flattenedResults","ux","utils","TsiClient"],"mappings":"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,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAIx1B,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI0vF,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,KAAKC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK30C,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GA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","file":"tsiclient.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 176);\n","//! moment.js\n//! version : 2.27.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.27.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","/*\nMICROSOFT SOFTWARE LICENSE TERMS\nMICROSOFT AZURE MAPS WEB SDK\nThese license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft’s rights relating to pre-updated software or services). IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.\n1. INSTALLATION AND USE RIGHTS.\n a) General. You may install and use any number of copies of the software to develop and test your applications.\n b) User Region Parameters. The software will allow you to select from a View list to set the map view within your application for a given customer. By default the View parameter (also referred to as “user region parameter” is set to “Unified”. Countries/Regions that are not on the View list will default to the “Unified” View. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. The View parameter must be used in compliance with applicable laws, including those regarding mapping, of the country where maps, images and other data and third party content that You are authorized to access via the software is made available. \n c) Third Party Software. The software may include third party applications that Microsoft, not the third party, licenses to you under this agreement. Any included notices for third party applications are for your information only.\n d) Microsoft Online Subscription Agreement. Some features of the software provide access to, or rely on, Microsoft Azure Services. The use of those services (but not the software) is governed by the separate terms and privacy policies associated with your Microsoft Azure subscription. The services may not be available in all regions. For more information see https://go.microsoft.com/fwLink/?LinkID=522330&clcid=0x9.\n2. DISTRIBUTABLE CODE. The software is comprised of “Distributable Code”. “Distributable Code” is code that you are permitted to distribute in applications you develop if you comply with the terms below and otherwise set forth in these license terms. \n a) Distribution Rights. \n i. You may copy and distribute the object code form of the software.\n i. Third Party Distribution. You may permit distributors of your applications to copy and distribute any of this distributable code you elect to distribute with your applications.\n b) Distribution Requirements. For any code you distribute, you must:\n i. add significant primary functionality to it in your applications;\n ii. require distributors and external end users to agree to terms that protect it and Microsoft at least as much as this agreement; and\n iii. indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your applications, except to the extent that any claim is based solely on the unmodified distributable code.\n c) Distribution Restrictions. You may not:\n i. use Microsoft’s trademarks or trade dress in your application in any way that suggests your application comes from or is endorsed by Microsoft; or\n ii. modify or distribute the source code of any distributable code so that any part of it becomes subject to any license that requires that the distributable code, any other part of the software, or any of Microsoft’s other intellectual property be disclosed or distributed in source code form, or that others have the right to modify it.\n3. DATA COLLECTION. The software may collect information about you and your use of the software and send that to Microsoft. Microsoft may use this information to provide services and improve Microsoft’s products and services. Your opt-out rights, if any, are described in the product documentation. Some features in the software may enable collection of data from users of your applications that access or use the software. If you use these features to enable data collection in your applications, you must comply with applicable law, including getting any required user consent, and maintain a prominent privacy policy that accurately informs users about how you use, collect, and share their data. You can learn more about Microsoft’s data collection and use in the product documentation and the Microsoft Privacy Statement at https://go.microsoft.com/fwlink/?LinkId=512132. You agree to comply with all applicable provisions of the Microsoft Privacy Statement.\n4. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to):\n a) work around any technical limitations in the software that only allow you to use it in certain ways;\n b) reverse engineer, decompile, or disassemble the software, or attempt to do so, except and only to the extent permitted by licensing terms governing the use of open-source components that may be included with the software;\n c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software;\n d) use the software in any way that is against the law or to create or propagate malware; or\n e) share, publish, distribute, or lend the software (except for any distributable code, subject to the terms above), provide the software as a stand-alone hosted solution for others to use, or transfer the software or this agreement to any third party.\n5. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit http://aka.ms/exporting.\n6. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is “as is”, “with all faults”, and without warranty of any kind.\n7. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices.\n8. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software.\n9. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles. If you acquired the software in any other country, its laws apply. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court. If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court.\n10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:\n a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.\n b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software.\n c) Germany and Austria.\n i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software.\n ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law.\n Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called \"cardinal obligations\"). In other cases of slight negligence, Microsoft will not be liable for slight negligence.\n11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.\n12. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.\nThis limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law.\nIt also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.\nPlease note: As this software is distributed in Canada, some of the clauses in this agreement are provided below in French.\nRemarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.\nEXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.\nLIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.\nCette limitation concerne:\n• tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers; et\n• les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.\nElle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.\nEFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.\n---\ntitle: THIRD PARTY NOTICES FOR Azure Maps SDK\npreamble: |\n\tDo Not Translate or Localize\n\n\tThis file is based on or incorporates material from the projects listed below (Third Party IP).\n\tThe original copyright notice and the license under which Microsoft received such Third Party IP,\n\tare set forth below. Such licenses and notices are provided for informational purposes only.\n\tMicrosoft licenses the Third Party IP to you under the licensing terms for the Microsoft product.\n\tMicrosoft reserves all other rights not expressly granted under this agreement, whether by implication,\n\testoppel or otherwise.\n\n\nregistrations:\n\t- component:\n\t\tname: @mapbox/mapbox-gl-rtl-text\n\t\tversion: 0.2.3\n\t\tlicense: |\nmapbox-gl-rtl-text copyright (c) 2017 Mapbox.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nThis source code is derived from the International Components for Unicode (ICU) library, available from [http://site.icu-project.org/](). ICU C++ code original license as follows:\n\nCOPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)\n\nCopyright © 1991-2016 Unicode, Inc. All rights reserved.\nDistributed under the Terms of Use in http://www.unicode.org/copyright.html\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of the Unicode data files and any associated documentation\n(the \"Data Files\") or Unicode software and any associated documentation\n(the \"Software\") to deal in the Data Files or Software\nwithout restriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, and/or sell copies of\nthe Data Files or Software, and to permit persons to whom the Data Files\nor Software are furnished to do so, provided that either\n(a) this copyright and permission notice appear with all copies\nof the Data Files or Software, or\n(b) this copyright and permission notice appear in associated\nDocumentation.\n\nTHE DATA FILES AND SOFTWARE ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF\nANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT OF THIRD PARTY RIGHTS.\nIN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS\nNOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL\nDAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THE DATA FILES OR SOFTWARE.\n\nExcept as contained in this notice, the name of a copyright holder\nshall not be used in advertising or otherwise to promote the sale,\nuse or other dealings in these Data Files or Software without prior\nwritten authorization of the copyright holder.\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-web\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-analytics-js\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-common\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-core-js\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: tslib\n\t\tversion: 1.10.0\n\t\tlicense: |\nApache License\r\n\r\nVersion 2.0, January 2004\r\n\r\nhttp://www.apache.org/licenses/ \r\n\r\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r\n\r\n1. Definitions.\r\n\r\n\"License\" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\r\n\r\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.\r\n\r\n\"Legal Entity\" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, \"control\" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.\r\n\r\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising permissions granted by this License.\r\n\r\n\"Source\" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.\r\n\r\n\"Object\" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.\r\n\r\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).\r\n\r\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.\r\n\r\n\"Contribution\" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, \"submitted\" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as \"Not a Contribution.\"\r\n\r\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.\r\n\r\n2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.\r\n\r\n3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.\r\n\r\n4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:\r\n\r\nYou must give any other recipients of the Work or Derivative Works a copy of this License; and\r\n\r\nYou must cause any modified files to carry prominent notices stating that You changed the files; and\r\n\r\nYou must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and\r\n\r\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.\r\n\r\n5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.\r\n\r\n6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.\r\n\r\n7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.\r\n\r\n8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.\r\n\r\n9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.\r\n\r\nEND OF TERMS AND CONDITIONS\r\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-channel-js\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-dependencies-js\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @microsoft/applicationinsights-properties-js\n\t\tversion: 2.2.2\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @types/adal-angular\n\t\tversion: 1.0.1\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @types/color\n\t\tversion: 3.0.0\n\t\tlicense: |\n MIT License\n\n Copyright (c) Microsoft Corporation. All rights reserved.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE\n\n\n\t- component:\n\t\tname: @types/color-convert\n\t\tversion: 1.9.0\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @types/color-name\n\t\tversion: 1.1.1\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @types/jwt-decode\n\t\tversion: 2.2.1\n\t\tlicense: |\n MIT License\n\n Copyright (c) Microsoft Corporation. All rights reserved.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE\n\n\n\t- component:\n\t\tname: @types/lodash\n\t\tversion: 4.14.136\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @types/mapbox-gl\n\t\tversion: 1.7.0\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: @types/geojson\n\t\tversion: 7946.0.7\n\t\tlicense: |\n MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE\r\n\n\n\t- component:\n\t\tname: adal-angular\n\t\tversion: 1.0.17\n\t\tlicense: |\n Apache License\r\n Version 2.0, January 2004\r\n http://www.apache.org/licenses/\r\n\r\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r\n\r\n 1. Definitions.\r\n\r\n \"License\" shall mean the terms and conditions for use, reproduction,\r\n and distribution as defined by Sections 1 through 9 of this document.\r\n\r\n \"Licensor\" shall mean the copyright owner or entity authorized by\r\n the copyright owner that is granting the License.\r\n\r\n \"Legal Entity\" shall mean the union of the acting entity and all\r\n other entities that control, are controlled by, or are under common\r\n control with that entity. For the purposes of this definition,\r\n \"control\" means (i) the power, direct or indirect, to cause the\r\n direction or management of such entity, whether by contract or\r\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\r\n outstanding shares, or (iii) beneficial ownership of such entity.\r\n\r\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\r\n exercising permissions granted by this License.\r\n\r\n \"Source\" form shall mean the preferred form for making modifications,\r\n including but not limited to software source code, documentation\r\n source, and configuration files.\r\n\r\n \"Object\" form shall mean any form resulting from mechanical\r\n transformation or translation of a Source form, including but\r\n not limited to compiled object code, generated documentation,\r\n and conversions to other media types.\r\n\r\n \"Work\" shall mean the work of authorship, whether in Source or\r\n Object form, made available under the License, as indicated by a\r\n copyright notice that is included in or attached to the work\r\n (an example is provided in the Appendix below).\r\n\r\n \"Derivative Works\" shall mean any work, whether in Source or Object\r\n form, that is based on (or derived from) the Work and for which the\r\n editorial revisions, annotations, elaborations, or other modifications\r\n represent, as a whole, an original work of authorship. For the purposes\r\n of this License, Derivative Works shall not include works that remain\r\n separable from, or merely link (or bind by name) to the interfaces of,\r\n the Work and Derivative Works thereof.\r\n\r\n \"Contribution\" shall mean any work of authorship, including\r\n the original version of the Work and any modifications or additions\r\n to that Work or Derivative Works thereof, that is intentionally\r\n submitted to Licensor for inclusion in the Work by the copyright owner\r\n or by an individual or Legal Entity authorized to submit on behalf of\r\n the copyright owner. For the purposes of this definition, \"submitted\"\r\n means any form of electronic, verbal, or written communication sent\r\n to the Licensor or its representatives, including but not limited to\r\n communication on electronic mailing lists, source code control systems,\r\n and issue tracking systems that are managed by, or on behalf of, the\r\n Licensor for the purpose of discussing and improving the Work, but\r\n excluding communication that is conspicuously marked or otherwise\r\n designated in writing by the copyright owner as \"Not a Contribution.\"\r\n\r\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\r\n on behalf of whom a Contribution has been received by Licensor and\r\n subsequently incorporated within the Work.\r\n\r\n 2. Grant of Copyright License. Subject to the terms and conditions of\r\n this License, each Contributor hereby grants to You a perpetual,\r\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r\n copyright license to reproduce, prepare Derivative Works of,\r\n publicly display, publicly perform, sublicense, and distribute the\r\n Work and such Derivative Works in Source or Object form.\r\n\r\n 3. Grant of Patent License. Subject to the terms and conditions of\r\n this License, each Contributor hereby grants to You a perpetual,\r\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r\n (except as stated in this section) patent license to make, have made,\r\n use, offer to sell, sell, import, and otherwise transfer the Work,\r\n where such license applies only to those patent claims licensable\r\n by such Contributor that are necessarily infringed by their\r\n Contribution(s) alone or by combination of their Contribution(s)\r\n with the Work to which such Contribution(s) was submitted. If You\r\n institute patent litigation against any entity (including a\r\n cross-claim or counterclaim in a lawsuit) alleging that the Work\r\n or a Contribution incorporated within the Work constitutes direct\r\n or contributory patent infringement, then any patent licenses\r\n granted to You under this License for that Work shall terminate\r\n as of the date such litigation is filed.\r\n\r\n 4. Redistribution. You may reproduce and distribute copies of the\r\n Work or Derivative Works thereof in any medium, with or without\r\n modifications, and in Source or Object form, provided that You\r\n meet the following conditions:\r\n\r\n (a) You must give any other recipients of the Work or\r\n Derivative Works a copy of this License; and\r\n\r\n (b) You must cause any modified files to carry prominent notices\r\n stating that You changed the files; and\r\n\r\n (c) You must retain, in the Source form of any Derivative Works\r\n that You distribute, all copyright, patent, trademark, and\r\n attribution notices from the Source form of the Work,\r\n excluding those notices that do not pertain to any part of\r\n the Derivative Works; and\r\n\r\n (d) If the Work includes a \"NOTICE\" text file as part of its\r\n distribution, then any Derivative Works that You distribute must\r\n include a readable copy of the attribution notices contained\r\n within such NOTICE file, excluding those notices that do not\r\n pertain to any part of the Derivative Works, in at least one\r\n of the following places: within a NOTICE text file distributed\r\n as part of the Derivative Works; within the Source form or\r\n documentation, if provided along with the Derivative Works; or,\r\n within a display generated by the Derivative Works, if and\r\n wherever such third-party notices normally appear. The contents\r\n of the NOTICE file are for informational purposes only and\r\n do not modify the License. You may add Your own attribution\r\n notices within Derivative Works that You distribute, alongside\r\n or as an addendum to the NOTICE text from the Work, provided\r\n that such additional attribution notices cannot be construed\r\n as modifying the License.\r\n\r\n You may add Your own copyright statement to Your modifications and\r\n may provide additional or different license terms and conditions\r\n for use, reproduction, or distribution of Your modifications, or\r\n for any such Derivative Works as a whole, provided Your use,\r\n reproduction, and distribution of the Work otherwise complies with\r\n the conditions stated in this License.\r\n\r\n 5. Submission of Contributions. Unless You explicitly state otherwise,\r\n any Contribution intentionally submitted for inclusion in the Work\r\n by You to the Licensor shall be under the terms and conditions of\r\n this License, without any additional terms or conditions.\r\n Notwithstanding the above, nothing herein shall supersede or modify\r\n the terms of any separate license agreement you may have executed\r\n with Licensor regarding such Contributions.\r\n\r\n 6. Trademarks. This License does not grant permission to use the trade\r\n names, trademarks, service marks, or product names of the Licensor,\r\n except as required for reasonable and customary use in describing the\r\n origin of the Work and reproducing the content of the NOTICE file.\r\n\r\n 7. Disclaimer of Warranty. Unless required by applicable law or\r\n agreed to in writing, Licensor provides the Work (and each\r\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r\n implied, including, without limitation, any warranties or conditions\r\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\r\n PARTICULAR PURPOSE. You are solely responsible for determining the\r\n appropriateness of using or redistributing the Work and assume any\r\n risks associated with Your exercise of permissions under this License.\r\n\r\n 8. Limitation of Liability. In no event and under no legal theory,\r\n whether in tort (including negligence), contract, or otherwise,\r\n unless required by applicable law (such as deliberate and grossly\r\n negligent acts) or agreed to in writing, shall any Contributor be\r\n liable to You for damages, including any direct, indirect, special,\r\n incidental, or consequential damages of any character arising as a\r\n result of this License or out of the use or inability to use the\r\n Work (including but not limited to damages for loss of goodwill,\r\n work stoppage, computer failure or malfunction, or any and all\r\n other commercial damages or losses), even if such Contributor\r\n has been advised of the possibility of such damages.\r\n\r\n 9. Accepting Warranty or Additional Liability. While redistributing\r\n the Work or Derivative Works thereof, You may choose to offer,\r\n and charge a fee for, acceptance of support, warranty, indemnity,\r\n or other liability obligations and/or rights consistent with this\r\n License. However, in accepting such obligations, You may act only\r\n on Your own behalf and on Your sole responsibility, not on behalf\r\n of any other Contributor, and only if You agree to indemnify,\r\n defend, and hold each Contributor harmless for any liability\r\n incurred by, or claims asserted against, such Contributor by reason\r\n of your accepting any such warranty or additional liability.\r\n\r\n END OF TERMS AND CONDITIONS\r\n\r\n APPENDIX: How to apply the Apache License to your work.\r\n\r\n To apply the Apache License to your work, attach the following\r\n boilerplate notice, with the fields enclosed by brackets \"[]\"\r\n replaced with your own identifying information. (Don't include\r\n the brackets!) The text should be enclosed in the appropriate\r\n comment syntax for the file format. We also recommend that a\r\n file or class name and description of purpose be included on the\r\n same \"printed page\" as the copyright notice for easier\r\n identification within third-party archives.\r\n\r\n Copyright [yyyy] [name of copyright owner]\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n\n\n\t- component:\n\t\tname: color\n\t\tversion: 3.1.2\n\t\tlicense: |\nCopyright (c) 2012 Heather Arthur\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n\t- component:\n\t\tname: color-convert\n\t\tversion: 1.9.3\n\t\tlicense: |\nCopyright (c) 2011-2016 Heather Arthur <fayearthur@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n\t- component:\n\t\tname: color-name\n\t\tversion: 1.1.3\n\t\tlicense: |\nThe MIT License (MIT)\r\nCopyright (c) 2015 Dmitry Ivanov\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t- component:\n\t\tname: color-string\n\t\tversion: 1.5.3\n\t\tlicense: |\nCopyright (c) 2011 Heather Arthur <fayearthur@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n\t- component:\n\t\tname: simple-swizzle\n\t\tversion: 0.2.2\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) 2015 Josh Junon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n\t- component:\n\t\tname: is-arrayish\n\t\tversion: 0.3.2\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) 2015 JD Ballard\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n\t- component:\n\t\tname: jwt-decode\n\t\tversion: 2.2.0\n\t\tlicense: |\nThe MIT License (MIT)\n \nCopyright (c) 2015 Auth0, Inc. <support@auth0.com> (http://auth0.com)\n \nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n \nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n \nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n\t- component:\n\t\tname: lodash\n\t\tversion: 4.17.15\n\t\tlicense: |\nCopyright OpenJS Foundation and other contributors <https://openjsf.org/>\n\nBased on Underscore.js, copyright Jeremy Ashkenas,\nDocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>\n\nThis software consists of voluntary contributions made by many\nindividuals. For exact contribution history, see the revision history\navailable at https://github.com/lodash/lodash\n\nThe following license applies to all parts of this software except as\ndocumented below:\n\n====\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n====\n\nCopyright and related rights for sample code are waived via CC0. Sample\ncode is defined as all source code displayed within the prose of the\ndocumentation.\n\nCC0: http://creativecommons.org/publicdomain/zero/1.0/\n\n====\n\nFiles located in the node_modules and vendor directories are externally\nmaintained libraries used by this software which have their own\nlicenses; we recommend you read them, as their terms may differ from the\nterms above.\n\n\n\t- component:\n\t\tname: mapbox-gl\n\t\tversion: 1.8.1\n\t\tlicense: |\nCopyright (c) 2016, Mapbox\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n * Neither the name of Mapbox GL JS nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n-------------------------------------------------------------------------------\n\nContains Hershey Simplex Font: http://paulbourke.net/dataformats/hershey/\n\n-------------------------------------------------------------------------------\n\nContains code from glfx.js\n\nCopyright (C) 2011 by Evan Wallace\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n--------------------------------------------------------------------------------\n\nContains a portion of d3-color https://github.com/d3/d3-color\n\nCopyright 2010-2016 Mike Bostock\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the author nor the names of contributors may be used to\n endorse or promote products derived from this software without specific prior\n written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\t- component:\n\t\tname: @mapbox/geojson-rewind\n\t\tversion: 0.4.1\n\t\tlicense: |\nCopyright (c) {{ year }}, {{ organization }}\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n\n\n\t- component:\n\t\tname: @mapbox/geojson-area\n\t\tversion: 0.2.2\n\t\tlicense: |\nCopyright 2005-2013 OpenLayers Contributors. All rights reserved. See\nauthors.txt for full list.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation and/or\nother materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY OPENLAYERS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\nOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nThe views and conclusions contained in the software and documentation are those\nof the authors and should not be interpreted as representing official policies,\neither expressed or implied, of OpenLayers Contributors.\n\n\n\t- component:\n\t\tname: wgs84\n\t\tversion: 0.0.0\n\t\tlicense: |\nBSD 2-Clause License\n\nCopyright (c) 2017, Mapbox\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\t- component:\n\t\tname: minimist\n\t\tversion: 1.2.5\n\t\tlicense: |\nThis software is released under the MIT license:\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: minimist\n\t\tversion: 0.0.5\n\t\tlicense: |\nThis software is released under the MIT license:\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: minimist\n\t\tversion: 0.0.8\n\t\tlicense: |\nThis software is released under the MIT license:\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: concat-stream\n\t\tversion: 1.6.2\n\t\tlicense: |\nThe MIT License\n\nCopyright (c) 2013 Max Ogden\n\nPermission is hereby granted, free of charge, \nto any person obtaining a copy of this software and \nassociated documentation files (the \"Software\"), to \ndeal in the Software without restriction, including \nwithout limitation the rights to use, copy, modify, \nmerge, publish, distribute, sublicense, and/or sell \ncopies of the Software, and to permit persons to whom \nthe Software is furnished to do so, \nsubject to the following conditions:\n\nThe above copyright notice and this permission notice \nshall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, \nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. \nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR \nANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, \nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE \nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t- component:\n\t\tname: buffer-from\n\t\tversion: 1.1.1\n\t\tlicense: |\nMIT License\n\nCopyright (c) 2016, 2018 Linus Unnebäck\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\t- component:\n\t\tname: inherits\n\t\tversion: 2.0.4\n\t\tlicense: |\nThe ISC License\n\nCopyright (c) Isaac Z. Schlueter\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n\n\n\n\t- component:\n\t\tname: readable-stream\n\t\tversion: 2.3.6\n\t\tlicense: |\nNode.js is licensed for use as follows:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\n\n\t- component:\n\t\tname: core-util-is\n\t\tversion: 1.0.2\n\t\tlicense: |\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: isarray\n\t\tversion: 1.0.0\n\t\tlicense: |\n(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t- component:\n\t\tname: process-nextick-args\n\t\tversion: 2.0.1\n\t\tlicense: |\n# Copyright (c) 2015 Calvin Metcalf\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\n**THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.**\n\n\n\t- component:\n\t\tname: safe-buffer\n\t\tversion: 5.1.2\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) Feross Aboukhadijeh\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n\t- component:\n\t\tname: string_decoder\n\t\tversion: 1.1.1\n\t\tlicense: |\nNode.js is licensed for use as follows:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\n\n\n\t- component:\n\t\tname: util-deprecate\n\t\tversion: 1.0.2\n\t\tlicense: |\n(The MIT License)\n\nCopyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: typedarray\n\t\tversion: 0.0.6\n\t\tlicense: |\n Copyright (c) 2010, Linden Research, Inc.\n Copyright (c) 2012, Joshua Bell\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n $/LicenseInfo$\n\n// Original can be found at:\n// https://bitbucket.org/lindenlab/llsd\n// Modifications by Joshua Bell inexorabletash@gmail.com\n// https://github.com/inexorabletash/polyfill\n\n// ES3/ES5 implementation of the Krhonos Typed Array Specification\n// Ref: http://www.khronos.org/registry/typedarray/specs/latest/\n// Date: 2011-02-01\n//\n// Variations:\n// * Allows typed_array.get/set() as alias for subscripts (typed_array[])\n\n\t- component:\n\t\tname: sharkdown\n\t\tversion: 0.1.1\n\t\tlicense: |\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\nSubject to the terms and conditions of this license, each copyright holder and contributor hereby grants to those receiving rights under this license a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except for failure to satisfy the conditions of this license) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer this software, where such license applies only to those patent claims, already acquired or hereafter acquired, licensable by such copyright holder or contributor that are necessarily infringed by:\n\n(a) their Contribution(s) (the licensed copyrights of copyright holders and non-copyrightable additions of contributors, in source or binary form) alone; or\n(b) combination of their Contribution(s) with the work of authorship to which such Contribution(s) was added by such copyright holder or contributor, if, at the time the Contribution is added, such addition causes such combination to be necessarily infringed. The patent license shall not apply to any other combinations which include the Contribution.\nExcept as expressly stated above, no rights or licenses from any copyright holder or contributor is granted under this license, whether expressly, by implication, estoppel or otherwise.\n\nDISCLAIMER\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\t- component:\n\t\tname: cardinal\n\t\tversion: 0.4.4\n\t\tlicense: |\nCopyright 2012 Thorsten Lorenz. \nAll rights reserved.\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: ansicolors\n\t\tversion: 0.2.1\n\t\tlicense: |\nCopyright 2013 Thorsten Lorenz. \nAll rights reserved.\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: redeyed\n\t\tversion: 0.4.4\n\t\tlicense: |\nCopyright 2012 Thorsten Lorenz. \nAll rights reserved.\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: esprima\n\t\tversion: 1.0.4\n\t\tlicense: |\nCopyright JS Foundation and other contributors, https://js.foundation/\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\t- component:\n\t\tname: split\n\t\tversion: 0.2.10\n\t\tlicense: |\nCopyright (c) 2011 Dominic Tarr\n\nPermission is hereby granted, free of charge, \nto any person obtaining a copy of this software and \nassociated documentation files (the \"Software\"), to \ndeal in the Software without restriction, including \nwithout limitation the rights to use, copy, modify, \nmerge, publish, distribute, sublicense, and/or sell \ncopies of the Software, and to permit persons to whom \nthe Software is furnished to do so, \nsubject to the following conditions:\n\nThe above copyright notice and this permission notice \nshall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, \nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. \nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR \nANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, \nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE \nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t- component:\n\t\tname: through\n\t\tversion: 2.3.8\n\t\tlicense: |\nApache License, Version 2.0\n\nCopyright (c) 2011 Dominic Tarr\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\nThe MIT License\n\nCopyright (c) 2011 Dominic Tarr\n\nPermission is hereby granted, free of charge, \nto any person obtaining a copy of this software and \nassociated documentation files (the \"Software\"), to \ndeal in the Software without restriction, including \nwithout limitation the rights to use, copy, modify, \nmerge, publish, distribute, sublicense, and/or sell \ncopies of the Software, and to permit persons to whom \nthe Software is furnished to do so, \nsubject to the following conditions:\n\nThe above copyright notice and this permission notice \nshall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, \nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. \nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR \nANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, \nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE \nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\t- component:\n\t\tname: @mapbox/geojson-types\n\t\tversion: 1.0.2\n\t\tlicense: |\nMIT License\n\nCopyright (c) 2018 Mapbox\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n\t- component:\n\t\tname: @mapbox/jsonlint-lines-primitives\n\t\tversion: 2.0.2\n\t\tlicense: |\nNo license information found\n\n\t- component:\n\t\tname: @mapbox/mapbox-gl-supported\n\t\tversion: 1.5.0\n\t\tlicense: |\n\nBSD 3-Clause License\n\nCopyright (c) 2017, Mapbox\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\t- component:\n\t\tname: @mapbox/point-geometry\n\t\tversion: 0.1.0\n\t\tlicense: |\nCopyright (c) 2015, Mapbox <>\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n\n\t- component:\n\t\tname: @mapbox/tiny-sdf\n\t\tversion: 1.1.1\n\t\tlicense: |\nCopyright © 2016-2017 Mapbox, Inc.\nThis code available under the terms of the BSD 2-Clause license.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n© 2018 GitHub, Inc.\n\n\t- component:\n\t\tname: @mapbox/unitbezier\n\t\tversion: 0.0.0\n\t\tlicense: |\nBSD-2-Clause\n\nCopyright (C) 2008 Apple Inc. All Rights Reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\nOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nPorted from Webkit\nhttp://svn.webkit.org/repository/webkit/trunk/Source/WebCore/platform/graphics/UnitBezier.h\n\n\t- component:\n\t\tname: @mapbox/vector-tile\n\t\tversion: 1.3.1\n\t\tlicense: |\nCopyright (c) 2014, Mapbox\n\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n * Neither the name of Mapbox nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\t- component:\n\t\tname: @mapbox/whoots-js\n\t\tversion: 3.1.0\n\t\tlicense: |\nISC License\n\nCopyright (c) 2017, Mapbox\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: csscolorparser\n\t\tversion: 1.0.3\n\t\tlicense: |\n(c) Dean McNamee <dean@gmail.com>, 2012.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\n\t- component:\n\t\tname: earcut\n\t\tversion: 2.2.2\n\t\tlicense: |\nISC License\n\nCopyright (c) 2016, Mapbox\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: geojson-vt\n\t\tversion: 3.2.1\n\t\tlicense: |\nISC License\n\nCopyright (c) 2015, Mapbox\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: gl-matrix\n\t\tversion: 3.2.1\n\t\tlicense: |\nCopyright (c) 2015-2020, Brandon Jones, Colin MacKenzie IV.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\t- component:\n\t\tname: grid-index\n\t\tversion: 1.1.0\n\t\tlicense: |\nCopyright (c) 2016, Mapbox\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: murmurhash-js\n\t\tversion: 1.0.0\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) 2011 Gary Court\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t- component:\n\t\tname: pbf\n\t\tversion: 3.2.1\n\t\tlicense: |\nCopyright (c) 2017, Mapbox\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of pbf nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\t- component:\n\t\tname: ieee754\n\t\tversion: 1.1.13\n\t\tlicense: |\nCopyright 2008 Fair Oaks Labs, Inc.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\t- component:\n\t\tname: resolve-protobuf-schema\n\t\tversion: 2.1.0\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) 2014 Mathias Buus\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n\t- component:\n\t\tname: protocol-buffers-schema\n\t\tversion: 3.4.0\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) 2014 Mathias Buus\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\t- component:\n\t\tname: potpack\n\t\tversion: 1.0.1\n\t\tlicense: |\nISC License\n\nCopyright (c) 2018, Mapbox\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: quickselect\n\t\tversion: 2.0.0\n\t\tlicense: |\nISC License\n\nCopyright (c) 2018, Vladimir Agafonkin\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: rw\n\t\tversion: 1.3.3\n\t\tlicense: |\nCopyright (c) 2014-2016, Michael Bostock\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* The name Michael Bostock may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,\nINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\nOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\t- component:\n\t\tname: supercluster\n\t\tversion: 7.0.0\n\t\tlicense: |\nISC License\n\nCopyright (c) 2016, Mapbox\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: kdbush\n\t\tversion: 3.0.0\n\t\tlicense: |\nISC License\n\nCopyright (c) 2018, Vladimir Agafonkin\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\t- component:\n\t\tname: tinyqueue\n\t\tversion: 2.0.3\n\t\tlicense: |\nISC License\n\nCopyright (c) 2017, Vladimir Agafonkin\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n\n\n\t- component:\n\t\tname: vt-pbf\n\t\tversion: 3.1.1\n\t\tlicense: |\nThe MIT License (MIT)\n\nCopyright (c) 2015 Anand Thakker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n--------------------------------------------------------------------------------\n\nContains geojson_wrapper.js from https://github.com/mapbox/mapbox-gl-js\n\nCopyright (c) 2014, Mapbox\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n * Neither the name of Mapbox GL JS nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\n\t- component:\n\t\tname: typescript\n\t\tversion: 3.7.2\n\t\tlicense: |\nApache License\r\n\r\nVersion 2.0, January 2004\r\n\r\nhttp://www.apache.org/licenses/ \r\n\r\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r\n\r\n1. Definitions.\r\n\r\n\"License\" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\r\n\r\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.\r\n\r\n\"Legal Entity\" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, \"control\" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.\r\n\r\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising permissions granted by this License.\r\n\r\n\"Source\" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.\r\n\r\n\"Object\" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.\r\n\r\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).\r\n\r\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.\r\n\r\n\"Contribution\" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, \"submitted\" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as \"Not a Contribution.\"\r\n\r\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.\r\n\r\n2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.\r\n\r\n3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.\r\n\r\n4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:\r\n\r\nYou must give any other recipients of the Work or Derivative Works a copy of this License; and\r\n\r\nYou must cause any modified files to carry prominent notices stating that You changed the files; and\r\n\r\nYou must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and\r\n\r\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.\r\n\r\n5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.\r\n\r\n6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.\r\n\r\n7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.\r\n\r\n8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.\r\n\r\n9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.\r\n\r\nEND OF TERMS AND CONDITIONS\r\n\n\n\t- component:\n\t\tname: uuid-random\n\t\tversion: 1.0.9\n\t\tlicense: |\nCopyright (c) 2016-2019 Wes Roberts\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=t||self).atlas=t.atlas||{})}(this,function(p){\"use strict\";var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var h=e(function(t,e){function i(t,e){if(n)if(o){var i=\"var sharedChunk = {}; (\"+n+\")(sharedChunk); (\"+o+\")(sharedChunk);\",r={};n(r),(a=e(r)).workerUrl=window.URL.createObjectURL(new Blob([i],{type:\"text/javascript\"}))}else o=e;else n=e}var n,o,a;t.exports=(i(0,function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var a=i;function i(t,e,i,r){this.cx=3*t,this.bx=3*(i-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(r-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=i,this.p2y=r}i.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},i.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},i.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},i.prototype.solveCurveX=function(t,e){var i,r,n,o,a;for(void 0===e&&(e=1e-6),n=t,a=0;a<8;a++){if(o=this.sampleCurveX(n)-t,Math.abs(o)<e)return n;var s=this.sampleCurveDerivativeX(n);if(Math.abs(s)<1e-6)break;n-=o/s}if((n=t)<(i=0))return i;if(n>(r=1))return r;for(;i<r;){if(o=this.sampleCurveX(n),Math.abs(o-t)<e)return n;o<t?i=n:r=n,n=.5*(r-i)+i}return n},i.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var ct=r;function r(t,e){this.x=t,this.y=e}function n(t,e,i,r){var n=new a(t,e,i,r);return function(t){return n.solve(t)}}r.prototype={clone:function(){return new r(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,i=t.y-this.y;return e*e+i*i},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,i=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),i=Math.sin(t),r=e*this.x-i*this.y,n=i*this.x+e*this.y;return this.x=r,this.y=n,this},_rotateAround:function(t,e){var i=Math.cos(t),r=Math.sin(t),n=e.x+i*(this.x-e.x)-r*(this.y-e.y),o=e.y+r*(this.x-e.x)+i*(this.y-e.y);return this.x=n,this.y=o,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},r.convert=function(t){return t instanceof r||!Array.isArray(t)?t:new r(t[0],t[1])};var o=n(.25,.1,.25,1);function l(t,e,i){return Math.min(i,Math.max(e,t))}function s(t,e,i){var r=i-e,n=((t-e)%r+r)%r+e;return n===e?i:n}function f(t){for(var e=[],i=arguments.length-1;0<i--;)e[i]=arguments[i+1];for(var r=0,n=e;r<n.length;r+=1){var o=n[r];for(var a in o)t[a]=o[a]}return t}var u=1;function c(){return u++}function p(){return function t(e){return e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function h(t){return t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function d(t,e){t.forEach(function(t){e[t]&&(e[t]=e[t].bind(e))})}function m(t,e){return-1!==t.indexOf(e,t.length-e.length)}function g(t,e,i){var r={};for(var n in t)r[n]=e.call(i||this,t[n],n,t);return r}function y(t,e,i){var r={};for(var n in t)e.call(i||this,t[n],n,t)&&(r[n]=t[n]);return r}function v(t){return Array.isArray(t)?t.map(v):\"object\"==typeof t&&t?g(t,v):t}var _={};function pt(t){_[t]||(\"undefined\"!=typeof console&&console.warn(t),_[t]=!0)}function x(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}function b(t){for(var e=0,i=0,r=t.length,n=r-1,o=void 0,a=void 0;i<r;n=i++)o=t[i],e+=((a=t[n]).x-o.x)*(o.y+a.y);return e}function w(){return\"undefined\"!=typeof WorkerGlobalScope&&\"undefined\"!=typeof self&&self instanceof WorkerGlobalScope}function S(t){var o={};if(t.replace(/(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,function(t,e,i,r){var n=i||r;return o[e]=!n||n.toLowerCase(),\"\"}),o[\"max-age\"]){var e=parseInt(o[\"max-age\"],10);isNaN(e)?delete o[\"max-age\"]:o[\"max-age\"]=e}return o}var T=null;function E(t){if(null==T){var e=t.navigator?t.navigator.userAgent:null;T=!!t.safari||!(!e||!(/\\b(iPad|iPhone|iPod)\\b/.test(e)||e.match(\"Safari\")&&!e.match(\"Chrome\")))}return T}function I(t){try{var e=self[t];return e.setItem(\"_mapbox_test_\",1),e.removeItem(\"_mapbox_test_\"),!0}catch(t){return!1}}var C,A,k,P,M=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),L=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,D=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,O={now:M,frame:function(t){var e=L(t);return{cancel:function(){return D(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var i=self.document.createElement(\"canvas\"),r=i.getContext(\"2d\");if(!r)throw new Error(\"failed to create canvas 2d context\");return i.width=t.width,i.height=t.height,r.drawImage(t,0,0,t.width,t.height),r.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return(C=C||self.document.createElement(\"a\")).href=t,C.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==A&&(A=self.matchMedia(\"(prefers-reduced-motion: reduce)\")),A.matches)}},z={API_URL:\"https://api.mapbox.com\",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf(\"https://api.mapbox.cn\")?\"https://events.mapbox.cn/events/v2\":0===this.API_URL.indexOf(\"https://api.mapbox.com\")?\"https://events.mapbox.com/events/v2\":null:null},FEEDBACK_URL:\"https://apps.mapbox.com/feedback\",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},R={supported:!1,testSupport:function(t){!N&&P&&(B?F(t):k=t)}},N=!1,B=!1;function F(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,P),t.isContextLost())return;R.supported=!0}catch(t){}t.deleteTexture(e),N=!0}function U(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()}self.document&&((P=self.document.createElement(\"img\")).onload=function(){k&&F(k),B=!(k=null)},P.onerror=function(){N=!0,k=null},P.src=\"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\");var j=\"01\";function q(t){return 0===t.indexOf(\"mapbox:\")}U.prototype._createSkuToken=function(){var t=function(){for(var t=\"\",e=0;e<10;e++)t+=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"[Math.floor(62*Math.random())];return{token:[\"1\",j,t].join(\"\"),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},U.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},U.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},U.prototype.normalizeStyleURL=function(t,e){if(!q(t))return t;var i=H(t);return i.path=\"/styles/v1\"+i.path,this._makeAPIURL(i,this._customAccessToken||e)},U.prototype.normalizeGlyphsURL=function(t,e){if(!q(t))return t;var i=H(t);return i.path=\"/fonts/v1\"+i.path,this._makeAPIURL(i,this._customAccessToken||e)},U.prototype.normalizeSourceURL=function(t,e){if(!q(t))return t;var i=H(t);return i.path=\"/v4/\"+i.authority+\".json\",i.params.push(\"secure\"),this._makeAPIURL(i,this._customAccessToken||e)},U.prototype.normalizeSpriteURL=function(t,e,i,r){var n=H(t);return q(t)?(n.path=\"/styles/v1\"+n.path+\"/sprite\"+e+i,this._makeAPIURL(n,this._customAccessToken||r)):(n.path+=\"\"+e+i,K(n))},U.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!q(t))return t;var r=H(t),i=2<=O.devicePixelRatio||512===e?\"@2x\":\"\",n=R.supported?\".webp\":\"$1\";r.path=r.path.replace(/(\\.(png|jpg)\\d*)(?=$)/,i+n),r.path=r.path.replace(/^.+\\/v4\\//,\"/\"),r.path=\"/v4\"+r.path;var o=this._customAccessToken||function(){for(var t=0,e=r.params;t<e.length;t+=1){var i=e[t].match(/^access_token=(.*)$/);if(i)return i[1]}return null}()||z.ACCESS_TOKEN;return z.REQUIRE_ACCESS_TOKEN&&o&&this._skuToken&&r.params.push(\"sku=\"+this._skuToken),this._makeAPIURL(r,o)},U.prototype.canonicalizeTileURL=function(t,e){var i=H(t);if(!i.path.match(/(^\\/v4\\/)/)||!i.path.match(/\\.[\\w]+$/))return t;var r=\"mapbox://tiles/\";r+=i.path.replace(\"/v4/\",\"\");var n=i.params;return e&&(n=n.filter(function(t){return!t.match(/^access_token=/)})),n.length&&(r+=\"?\"+n.join(\"&\")),r},U.prototype.canonicalizeTileset=function(t,e){for(var i=!!e&&q(e),r=[],n=0,o=t.tiles||[];n<o.length;n+=1){var a=o[n];G(a)?r.push(this.canonicalizeTileURL(a,i)):r.push(a)}return r},U.prototype._makeAPIURL=function(t,e){var i=\"See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes\",r=H(z.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,\"/\"!==r.path&&(t.path=\"\"+r.path+t.path),!z.REQUIRE_ACCESS_TOKEN)return K(t);if(!(e=e||z.ACCESS_TOKEN))throw new Error(\"An API access token is required to use Mapbox GL. \"+i);if(\"s\"===e[0])throw new Error(\"Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). \"+i);return t.params=t.params.filter(function(t){return-1===t.indexOf(\"access_token\")}),t.params.push(\"access_token=\"+e),K(t)};var V=/^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/|\\?|$)/i;function G(t){return V.test(t)}var Z=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function H(t){var e=t.match(Z);if(!e)throw new Error(\"Unable to parse URL object\");return{protocol:e[1],authority:e[2],path:e[3]||\"/\",params:e[4]?e[4].split(\"&\"):[]}}function K(t){var e=t.params.length?\"?\"+t.params.join(\"&\"):\"\";return t.protocol+\"://\"+t.authority+t.path+e}function W(t){if(!t)return null;var e,i=t.split(\".\");if(!i||3!==i.length)return null;try{return JSON.parse((e=i[1],decodeURIComponent(self.atob(e).split(\"\").map(function(t){return\"%\"+(\"00\"+t.charCodeAt(0).toString(16)).slice(-2)}).join(\"\"))))}catch(t){return null}}function X(t){this.type=t,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}X.prototype.getStorageKey=function(t){var e,i=W(z.ACCESS_TOKEN),r=\"\";return r=i&&i.u?(e=i.u,self.btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(t,e){return String.fromCharCode(Number(\"0x\"+e))}))):z.ACCESS_TOKEN||\"\",t?\"mapbox.eventData.\"+t+\":\"+r:\"mapbox.eventData:\"+r},X.prototype.fetchEventData=function(){var t=I(\"localStorage\"),e=this.getStorageKey(),i=this.getStorageKey(\"uuid\");if(t)try{var r=self.localStorage.getItem(e);r&&(this.eventData=JSON.parse(r));var n=self.localStorage.getItem(i);n&&(this.anonId=n)}catch(t){pt(\"Unable to read from LocalStorage\")}},X.prototype.saveEventData=function(){var t=I(\"localStorage\"),e=this.getStorageKey(),i=this.getStorageKey(\"uuid\");if(t)try{self.localStorage.setItem(i,this.anonId),1<=Object.keys(this.eventData).length&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){pt(\"Unable to write to LocalStorage\")}},X.prototype.processRequests=function(t){},X.prototype.postEvent=function(t,e,i,r){var n=this;if(z.EVENTS_URL){var o=H(z.EVENTS_URL);o.params.push(\"access_token=\"+(r||z.ACCESS_TOKEN||\"\"));var a={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:\"mapbox-gl-js\",sdkVersion:\"1.8.1\",skuId:j,userId:this.anonId},s=e?f(a,e):a,l={url:K(o),headers:{\"Content-Type\":\"text/plain\"},body:JSON.stringify([s])};this.pendingRequest=At(l,function(t){n.pendingRequest=null,i(t),n.saveEventData(),n.processRequests(r)})}},X.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var Y,J,Q,$,tt=(ht.__proto__=$=X,((ht.prototype=Object.create($&&$.prototype)).constructor=ht).prototype.postMapLoadEvent=function(t,e,i,r){this.skuToken=i,(z.EVENTS_URL&&r||z.ACCESS_TOKEN&&Array.isArray(t)&&t.some(function(t){return q(t)||G(t)}))&&this.queueRequest({id:e,timestamp:Date.now()},r)},ht.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var i=this.queue.shift(),r=i.id,n=i.timestamp;r&&this.success[r]||(this.anonId||this.fetchEventData(),h(this.anonId)||(this.anonId=p()),this.postEvent(n,{skuToken:this.skuToken},function(t){t||r&&(e.success[r]=!0)},t))}},ht),et=(ut.__proto__=Q=X,((ut.prototype=Object.create(Q&&Q.prototype)).constructor=ut).prototype.postTurnstileEvent=function(t,e){z.EVENTS_URL&&z.ACCESS_TOKEN&&Array.isArray(t)&&t.some(function(t){return q(t)||G(t)})&&this.queueRequest(Date.now(),e)},ut.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var i=W(z.ACCESS_TOKEN),r=i?i.u:z.ACCESS_TOKEN,n=r!==this.eventData.tokenU;h(this.anonId)||(this.anonId=p(),n=!0);var o=this.queue.shift();if(this.eventData.lastSuccess){var a=new Date(this.eventData.lastSuccess),s=new Date(o),l=(o-this.eventData.lastSuccess)/864e5;n=n||1<=l||l<-1||a.getDate()!==s.getDate()}else n=!0;if(!n)return this.processRequests();this.postEvent(o,{\"enabled.telemetry\":!1},function(t){t||(e.eventData.lastSuccess=o,e.eventData.tokenU=r)},t)}},new ut),it=et.postTurnstileEvent.bind(et),rt=new tt,nt=rt.postMapLoadEvent.bind(rt),ot=\"mapbox-tiles\",at=500,st=50,lt=42e4;function ut(t){Q.call(this,\"appUserTurnstile\"),this._customAccessToken=t}function ht(){$.call(this,\"map.load\"),this.success={},this.skuToken=\"\"}function dt(){self.caches&&!Y&&(Y=self.caches.open(ot))}function ft(t){var e=t.indexOf(\"?\");return e<0?t:t.slice(0,e)}var mt,gt=1/0;function yt(){return null==mt&&(mt=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext(\"2d\")&&\"function\"==typeof self.createImageBitmap),mt}var vt={Unknown:\"Unknown\",Style:\"Style\",Source:\"Source\",Tile:\"Tile\",Glyphs:\"Glyphs\",SpriteImage:\"SpriteImage\",SpriteJSON:\"SpriteJSON\",Image:\"Image\"};\"function\"==typeof Object.freeze&&Object.freeze(vt);var _t,xt=((_t=Error)&&(wt.__proto__=_t),((wt.prototype=Object.create(_t&&_t.prototype)).constructor=wt).prototype.toString=function(){return this.name+\": \"+this.message+\" (\"+this.status+\"): \"+this.url},wt),bt=w()?function(){return self.worker&&self.worker.referrer}:function(){return(\"blob:\"===self.location.protocol?self.parent:self).location.href};function wt(t,e,i){401===e&&G(i)&&(t+=\": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes\"),_t.call(this,t),this.status=e,this.url=i,this.name=this.constructor.name,this.message=t}function St(n,o){var t,e=new self.AbortController,a=new self.Request(n.url,{method:n.method||\"GET\",body:n.body,credentials:n.credentials,headers:n.headers,referrer:bt(),signal:e.signal}),s=!1,l=!1,u=0<(t=a.url).indexOf(\"sku=\")&&G(t);function i(t,e,i){if(!l){if(t&&\"SecurityError\"!==t.message&&pt(t),e&&i)return c(e);var r=Date.now();self.fetch(a).then(function(t){if(t.ok){var e=u?t.clone():null;return c(t,e,r)}return o(new xt(t.statusText,t.status,n.url))}).catch(function(t){20!==t.code&&o(new Error(t.message))})}}\"json\"===n.type&&a.headers.set(\"Accept\",\"application/json\");var c=function(e,i,r){(\"arrayBuffer\"===n.type?e.arrayBuffer():\"json\"===n.type?e.json():e.text()).then(function(t){l||(i&&r&&function(i,t,e){if(dt(),Y){var r={status:t.status,statusText:t.statusText,headers:new self.Headers};t.headers.forEach(function(t,e){return r.headers.set(e,t)});var n=S(t.headers.get(\"Cache-Control\")||\"\");n[\"no-store\"]||(n[\"max-age\"]&&r.headers.set(\"Expires\",new Date(e+1e3*n[\"max-age\"]).toUTCString()),new Date(r.headers.get(\"Expires\")).getTime()-e<lt||function(t,e){if(void 0===J)try{new Response(new ReadableStream),J=!0}catch(t){J=!1}J?e(t.body):t.blob().then(e)}(t,function(t){var e=new self.Response(t,r);dt(),Y&&Y.then(function(t){return t.put(ft(i.url),e)}).catch(function(t){return pt(t.message)})}))}}(a,i,r),s=!0,o(null,t,e.headers.get(\"Cache-Control\"),e.headers.get(\"Expires\")))}).catch(function(t){l||o(new Error(t.message))})};return u?function(t,r){if(dt(),!Y)return r(null);var n=ft(t.url);Y.then(function(i){i.match(n).then(function(t){var e=function(t){if(!t)return!1;var e=new Date(t.headers.get(\"Expires\")||0),i=S(t.headers.get(\"Cache-Control\")||\"\");return e>Date.now()&&!i[\"no-cache\"]}(t);i.delete(n),e&&i.put(n,t.clone()),r(null,t,e)}).catch(r)}).catch(r)}(a,i):i(null,null),{cancel:function(){l=!0,s||e.abort()}}}function Tt(t,e){if(i=t.url,!(/^file:/.test(i)||/^file:/.test(bt())&&!/^\\w+:/.test(i))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty(\"signal\"))return St(t,e);if(w()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",t,e,void 0,!0)}var i;return function(e,i){var r=new self.XMLHttpRequest;for(var t in r.open(e.method||\"GET\",e.url,!0),\"arrayBuffer\"===e.type&&(r.responseType=\"arraybuffer\"),e.headers)r.setRequestHeader(t,e.headers[t]);return\"json\"===e.type&&(r.responseType=\"text\",r.setRequestHeader(\"Accept\",\"application/json\")),r.withCredentials=\"include\"===e.credentials,r.onerror=function(){i(new Error(r.statusText))},r.onload=function(){if((200<=r.status&&r.status<300||0===r.status)&&null!==r.response){var t=r.response;if(\"json\"===e.type)try{t=JSON.parse(r.response)}catch(t){return i(t)}i(null,t,r.getResponseHeader(\"Cache-Control\"),r.getResponseHeader(\"Expires\"))}else i(new xt(r.statusText,r.status,e.url))},r.send(e.body),{cancel:function(){return r.abort()}}}(t,e)}function Et(t,e){return Tt(f(t,{type:\"arrayBuffer\"}),e)}var It,Ct,At=function(t,e){return Tt(f(t,{method:\"POST\"}),e)};It=[],Ct=0;var kt=function(t,s){if(R.supported&&(t.headers||(t.headers={}),t.headers.accept=\"image/webp,*/*\"),Ct>=z.MAX_PARALLEL_IMAGE_REQUESTS){var e={requestParameters:t,callback:s,cancelled:!1,cancel:function(){this.cancelled=!0}};return It.push(e),e}function l(){if(!r)for(r=!0,Ct--;It.length&&Ct<z.MAX_PARALLEL_IMAGE_REQUESTS;){var t=It.shift(),e=t.requestParameters,i=t.callback;t.cancelled||(t.cancel=kt(e,i).cancel)}}Ct++;var r=!1,i=Et(t,function(t,e,i,r){var n,o,a;l(),t?s(t):e&&(yt()?(n=e,o=s,a=new self.Blob([new Uint8Array(n)],{type:\"image/png\"}),self.createImageBitmap(a).then(function(t){o(null,t)}).catch(function(t){o(new Error(\"Could not load image because of \"+t.message+\". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"))})):function(t,e,i,r){var n=new self.Image,o=self.URL;n.onload=function(){e(null,n),o.revokeObjectURL(n.src)},n.onerror=function(){return e(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"))};var a=new self.Blob([new Uint8Array(t)],{type:\"image/png\"});n.cacheControl=i,n.expires=r,n.src=t.byteLength?o.createObjectURL(a):\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\"}(e,s,i,r))});return{cancel:function(){i.cancel(),l()}}};function Pt(t,e,i){i[t]&&-1!==i[t].indexOf(e)||(i[t]=i[t]||[],i[t].push(e))}function Mt(t,e,i){if(i&&i[t]){var r=i[t].indexOf(e);-1!==r&&i[t].splice(r,1)}}function Lt(t,e){void 0===e&&(e={}),f(this,e),this.type=t}function Dt(){}var Ot,zt=(Rt.__proto__=Ot=Lt,(Rt.prototype=Object.create(Ot&&Ot.prototype)).constructor=Rt);function Rt(t,e){void 0===e&&(e={}),Ot.call(this,\"error\",f({error:t},e))}Dt.prototype.on=function(t,e){return this._listeners=this._listeners||{},Pt(t,e,this._listeners),this},Dt.prototype.off=function(t,e){return Mt(t,e,this._listeners),Mt(t,e,this._oneTimeListeners),this},Dt.prototype.once=function(t,e){return this._oneTimeListeners=this._oneTimeListeners||{},Pt(t,e,this._oneTimeListeners),this},Dt.prototype.fire=function(t,e){\"string\"==typeof t&&(t=new Lt(t,e||{}));var i=t.type;if(this.listens(i)){for(var r=0,n=(t.target=this)._listeners&&this._listeners[i]?this._listeners[i].slice():[];r<n.length;r+=1)n[r].call(this,t);for(var o=0,a=this._oneTimeListeners&&this._oneTimeListeners[i]?this._oneTimeListeners[i].slice():[];o<a.length;o+=1){var s=a[o];Mt(i,s,this._oneTimeListeners),s.call(this,t)}var l=this._eventedParent;l&&(f(t,\"function\"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),l.fire(t))}else t instanceof zt&&console.error(t.error);return this},Dt.prototype.listens=function(t){return this._listeners&&this._listeners[t]&&0<this._listeners[t].length||this._oneTimeListeners&&this._oneTimeListeners[t]&&0<this._oneTimeListeners[t].length||this._eventedParent&&this._eventedParent.listens(t)};var Nt={$version:8,$root:{version:{required:!0,type:\"enum\",values:[8]},name:{type:\"string\"},metadata:{type:\"*\"},center:{type:\"array\",value:\"number\"},zoom:{type:\"number\"},bearing:{type:\"number\",default:0,period:360,units:\"degrees\"},pitch:{type:\"number\",default:0,units:\"degrees\"},light:{type:\"light\"},sources:{required:!0,type:\"sources\"},sprite:{type:\"string\"},glyphs:{type:\"string\"},transition:{type:\"transition\"},layers:{required:!0,type:\"array\",value:\"layer\"}},sources:{\"*\":{type:\"source\"}},source:[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_geojson\",\"source_video\",\"source_image\"],source_vector:{type:{required:!0,type:\"enum\",values:{vector:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},attribution:{type:\"string\"},promoteId:{type:\"promoteId\"},\"*\":{type:\"*\"}},source_raster:{type:{required:!0,type:\"enum\",values:{raster:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},attribution:{type:\"string\"},\"*\":{type:\"*\"}},source_raster_dem:{type:{required:!0,type:\"enum\",values:{\"raster-dem\":{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},attribution:{type:\"string\"},encoding:{type:\"enum\",values:{terrarium:{},mapbox:{}},default:\"mapbox\"},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{type:\"*\"},maxzoom:{type:\"number\",default:18},attribution:{type:\"string\"},buffer:{type:\"number\",default:128,maximum:512,minimum:0},tolerance:{type:\"number\",default:.375},cluster:{type:\"boolean\",default:!(Dt.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this})},clusterRadius:{type:\"number\",default:50,minimum:0},clusterMaxZoom:{type:\"number\"},clusterProperties:{type:\"*\"},lineMetrics:{type:\"boolean\",default:!1},generateId:{type:\"boolean\",default:!1},promoteId:{type:\"promoteId\"}},source_video:{type:{required:!0,type:\"enum\",values:{video:{}}},urls:{required:!0,type:\"array\",value:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},source_image:{type:{required:!0,type:\"enum\",values:{image:{}}},url:{required:!0,type:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},layer:{id:{type:\"string\",required:!0},type:{type:\"enum\",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},\"fill-extrusion\":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:\"*\"},source:{type:\"string\"},\"source-layer\":{type:\"string\"},minzoom:{type:\"number\",minimum:0,maximum:24},maxzoom:{type:\"number\",minimum:0,maximum:24},filter:{type:\"filter\"},layout:{type:\"layout\"},paint:{type:\"paint\"}},layout:[\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_hillshade\",\"layout_background\"],layout_background:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_fill:{\"fill-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_circle:{\"circle-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_heatmap:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_line:{\"line-cap\":{type:\"enum\",values:{butt:{},round:{},square:{}},default:\"butt\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-join\":{type:\"enum\",values:{bevel:{},round:{},miter:{}},default:\"miter\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{type:\"number\",default:2,requires:[{\"line-join\":\"miter\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{type:\"number\",default:1.05,requires:[{\"line-join\":\"round\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_symbol:{\"symbol-placement\":{type:\"enum\",values:{point:{},line:{},\"line-center\":{}},default:\"point\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{type:\"number\",default:250,minimum:1,units:\"pixels\",requires:[{\"symbol-placement\":\"line\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{type:\"boolean\",default:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{type:\"enum\",values:{auto:{},\"viewport-y\":{},source:{}},default:\"auto\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{type:\"boolean\",default:!1,requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{type:\"number\",default:1,minimum:0,units:\"factor of the original icon size\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit\":{type:\"enum\",values:{none:{},width:{},height:{},both:{}},default:\"none\",requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-text-fit-padding\":{type:\"array\",value:\"number\",length:4,default:[0,0,0,0],units:\"pixels\",requires:[\"icon-image\",\"text-field\",{\"icon-text-fit\":[\"both\",\"width\",\"height\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image\":{type:\"resolvedImage\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-keep-upright\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"icon-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{type:\"array\",value:\"number\",length:2,default:[0,0],requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{type:\"formatted\",default:\"\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{type:\"array\",value:\"string\",default:[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{type:\"number\",default:16,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-width\":{type:\"number\",default:10,minimum:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{type:\"number\",default:1.2,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-letter-spacing\":{type:\"number\",default:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{type:\"enum\",values:{auto:{},left:{},center:{},right:{}},default:\"center\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{type:\"number\",units:\"ems\",default:0,requires:[\"text-field\"],\"property-type\":\"data-driven\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{type:\"array\",value:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"text-field\",{\"!\":\"text-variable-anchor\"}],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{type:\"number\",default:45,units:\"degrees\",requires:[\"text-field\",{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{type:\"array\",value:\"enum\",values:{horizontal:{},vertical:{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{type:\"boolean\",default:!0,requires:[\"text-field\",{\"text-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{type:\"enum\",values:{none:{},uppercase:{},lowercase:{}},default:\"none\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{type:\"array\",value:\"number\",units:\"ems\",length:2,default:[0,0],requires:[\"text-field\",{\"!\":\"text-radial-offset\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{type:\"boolean\",default:!1,requires:[\"text-field\",\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_raster:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_hillshade:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},filter:{type:\"array\",value:\"*\"},filter_operator:{type:\"enum\",values:{\"==\":{},\"!=\":{},\">\":{},\">=\":{},\"<\":{},\"<=\":{},in:{},\"!in\":{},all:{},any:{},none:{},has:{},\"!has\":{}}},geometry_type:{type:\"enum\",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:\"expression\"},stops:{type:\"array\",value:\"function_stop\"},base:{type:\"number\",default:1,minimum:0},property:{type:\"string\",default:\"$zoom\"},type:{type:\"enum\",values:{identity:{},exponential:{},interval:{},categorical:{}},default:\"exponential\"},colorSpace:{type:\"enum\",values:{rgb:{},lab:{},hcl:{}},default:\"rgb\"},default:{type:\"*\",required:!1}},function_stop:{type:\"array\",minimum:0,maximum:24,value:[\"number\",\"color\"],length:2},expression:{type:\"array\",value:\"*\",minimum:1},expression_name:{type:\"enum\",values:{let:{group:\"Variable binding\"},var:{group:\"Variable binding\"},literal:{group:\"Types\"},array:{group:\"Types\"},at:{group:\"Lookup\"},in:{group:\"Lookup\"},case:{group:\"Decision\"},match:{group:\"Decision\"},coalesce:{group:\"Decision\"},step:{group:\"Ramps, scales, curves\"},interpolate:{group:\"Ramps, scales, curves\"},\"interpolate-hcl\":{group:\"Ramps, scales, curves\"},\"interpolate-lab\":{group:\"Ramps, scales, curves\"},ln2:{group:\"Math\"},pi:{group:\"Math\"},e:{group:\"Math\"},typeof:{group:\"Types\"},string:{group:\"Types\"},number:{group:\"Types\"},boolean:{group:\"Types\"},object:{group:\"Types\"},collator:{group:\"Types\"},format:{group:\"Types\"},image:{group:\"Types\"},\"number-format\":{group:\"Types\"},\"to-string\":{group:\"Types\"},\"to-number\":{group:\"Types\"},\"to-boolean\":{group:\"Types\"},\"to-rgba\":{group:\"Color\"},\"to-color\":{group:\"Types\"},rgb:{group:\"Color\"},rgba:{group:\"Color\"},get:{group:\"Lookup\"},has:{group:\"Lookup\"},length:{group:\"Lookup\"},properties:{group:\"Feature data\"},\"feature-state\":{group:\"Feature data\"},\"geometry-type\":{group:\"Feature data\"},id:{group:\"Feature data\"},zoom:{group:\"Zoom\"},\"heatmap-density\":{group:\"Heatmap\"},\"line-progress\":{group:\"Feature data\"},accumulated:{group:\"Feature data\"},\"+\":{group:\"Math\"},\"*\":{group:\"Math\"},\"-\":{group:\"Math\"},\"/\":{group:\"Math\"},\"%\":{group:\"Math\"},\"^\":{group:\"Math\"},sqrt:{group:\"Math\"},log10:{group:\"Math\"},ln:{group:\"Math\"},log2:{group:\"Math\"},sin:{group:\"Math\"},cos:{group:\"Math\"},tan:{group:\"Math\"},asin:{group:\"Math\"},acos:{group:\"Math\"},atan:{group:\"Math\"},min:{group:\"Math\"},max:{group:\"Math\"},round:{group:\"Math\"},abs:{group:\"Math\"},ceil:{group:\"Math\"},floor:{group:\"Math\"},\"==\":{group:\"Decision\"},\"!=\":{group:\"Decision\"},\">\":{group:\"Decision\"},\"<\":{group:\"Decision\"},\">=\":{group:\"Decision\"},\"<=\":{group:\"Decision\"},all:{group:\"Decision\"},any:{group:\"Decision\"},\"!\":{group:\"Decision\"},\"is-supported-script\":{group:\"String\"},upcase:{group:\"String\"},downcase:{group:\"String\"},concat:{group:\"String\"},\"resolved-locale\":{group:\"String\"}}},light:{anchor:{type:\"enum\",default:\"viewport\",values:{map:{},viewport:{}},\"property-type\":\"data-constant\",transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]}},position:{type:\"array\",default:[1.15,210,30],length:3,value:\"number\",\"property-type\":\"data-constant\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]}},color:{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},intensity:{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},paint:[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_hillshade\",\"paint_background\"],paint_fill:{\"fill-antialias\":{type:\"boolean\",default:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{type:\"color\",transition:!0,requires:[{\"!\":\"fill-pattern\"},{\"fill-antialias\":!0}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-extrusion-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-extrusion-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"fill-extrusion-height\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,requires:[\"fill-extrusion-height\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-vertical-gradient\":{type:\"boolean\",default:!0,transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_line:{\"line-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"line-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{type:\"number\",default:1,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-offset\":{type:\"number\",default:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{type:\"array\",value:\"number\",minimum:0,transition:!0,units:\"line widths\",requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"line-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"line-gradient\":{type:\"color\",transition:!1,requires:[{\"!\":\"line-dasharray\"},{\"!\":\"line-pattern\"},{source:\"geojson\",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:[\"line-progress\"]},\"property-type\":\"color-ramp\"}},paint_circle:{\"circle-radius\":{type:\"number\",default:5,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{type:\"number\",default:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"circle-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"}},paint_heatmap:{\"heatmap-radius\":{type:\"number\",default:30,minimum:1,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{type:\"number\",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{type:\"number\",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{type:\"color\",default:[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],transition:!1,expression:{interpolated:!0,parameters:[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_symbol:{\"icon-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"icon-image\",\"icon-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-color\":{type:\"color\",default:\"#000000\",transition:!0,overridable:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"text-field\",\"text-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_raster:{\"raster-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-hue-rotate\":{type:\"number\",default:0,period:360,transition:!0,units:\"degrees\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{type:\"number\",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{type:\"enum\",values:{linear:{},nearest:{}},default:\"linear\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{type:\"number\",default:300,minimum:0,transition:!1,units:\"milliseconds\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_hillshade:{\"hillshade-illumination-direction\":{type:\"number\",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{type:\"number\",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{type:\"color\",default:\"#FFFFFF\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_background:{\"background-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"background-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"background-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},transition:{duration:{type:\"number\",default:300,minimum:0,units:\"milliseconds\"},delay:{type:\"number\",default:0,minimum:0,units:\"milliseconds\"}},\"property-type\":{\"data-driven\":{type:\"property-type\"},\"cross-faded\":{type:\"property-type\"},\"cross-faded-data-driven\":{type:\"property-type\"},\"color-ramp\":{type:\"property-type\"},\"data-constant\":{type:\"property-type\"},constant:{type:\"property-type\"}},promoteId:{\"*\":{type:\"string\"}}},Bt=function(t,e,i,r){this.message=(t?t+\": \":\"\")+i,r&&(this.identifier=r),null!=e&&e.__line__&&(this.line=e.__line__)};function Ft(t){var e=t.key,i=t.value;return i?[new Bt(e,i,\"constants have been deprecated as of v8\")]:[]}function Ut(t){for(var e=[],i=arguments.length-1;0<i--;)e[i]=arguments[i+1];for(var r=0,n=e;r<n.length;r+=1){var o=n[r];for(var a in o)t[a]=o[a]}return t}function jt(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function qt(t){if(Array.isArray(t))return t.map(qt);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){var e={};for(var i in t)e[i]=qt(t[i]);return e}return jt(t)}function Vt(t,e){void 0===e&&(e=[]),this.parent=t,this.bindings={};for(var i=0,r=e;i<r.length;i+=1){var n=r[i],o=n[0],a=n[1];this.bindings[o]=a}}var Gt,Zt=((Gt=Error)&&(Ht.__proto__=Gt),(Ht.prototype=Object.create(Gt&&Gt.prototype)).constructor=Ht);function Ht(t,e){Gt.call(this,e),this.message=e,this.key=t}Vt.prototype.concat=function(t){return new Vt(this,t)},Vt.prototype.get=function(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+\" not found in scope.\")},Vt.prototype.has=function(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)};var Kt={kind:\"null\"},Wt={kind:\"number\"},Xt={kind:\"string\"},Yt={kind:\"boolean\"},Jt={kind:\"color\"},Qt={kind:\"object\"},$t={kind:\"value\"},te={kind:\"collator\"},ee={kind:\"formatted\"},ie={kind:\"resolvedImage\"};function re(t,e){return{kind:\"array\",itemType:t,N:e}}function ne(t){if(\"array\"!==t.kind)return t.kind;var e=ne(t.itemType);return\"number\"==typeof t.N?\"array<\"+e+\", \"+t.N+\">\":\"value\"===t.itemType.kind?\"array\":\"array<\"+e+\">\"}var oe=[Kt,Wt,Xt,Yt,Jt,ee,Qt,re($t),ie];function ae(t,e){if(\"error\"===e.kind)return null;if(\"array\"===t.kind){if(\"array\"===e.kind&&(0===e.N&&\"value\"===e.itemType.kind||!ae(t.itemType,e.itemType))&&(\"number\"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if(\"value\"===t.kind)for(var i=0,r=oe;i<r.length;i+=1)if(!ae(r[i],e))return null}return\"Expected \"+ne(t)+\" but found \"+ne(e)+\" instead.\"}var se=e(function(t,e){var d={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function f(t){return(t=Math.round(t))<0?0:255<t?255:t}function i(t){return t<0?0:1<t?1:t}function m(t){return\"%\"===t[t.length-1]?f(parseFloat(t)/100*255):f(parseInt(t))}function g(t){return\"%\"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function y(t,e,i){return i<0?i+=1:1<i&&--i,6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,\"\").toLowerCase();if(i in d)return d[i].slice();if(\"#\"===i[0])return 4===i.length?0<=(e=parseInt(i.substr(1),16))&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&0<=(e=parseInt(i.substr(1),16))&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var r=i.indexOf(\"(\"),n=i.indexOf(\")\");if(-1!==r&&n+1===i.length){var o=i.substr(0,r),a=i.substr(r+1,n-(r+1)).split(\",\"),s=1;switch(o){case\"rgba\":if(4!==a.length)return null;s=g(a.pop());case\"rgb\":return 3!==a.length?null:[m(a[0]),m(a[1]),m(a[2]),s];case\"hsla\":if(4!==a.length)return null;s=g(a.pop());case\"hsl\":if(3!==a.length)return null;var l=(parseFloat(a[0])%360+360)%360/360,u=g(a[1]),c=g(a[2]),p=c<=.5?c*(u+1):c+u-c*u,h=2*c-p;return[f(255*y(h,p,l+1/3)),f(255*y(h,p,l)),f(255*y(h,p,l-1/3)),s];default:return null}}return null}}catch(t){}}).parseCSSColor,le=function(t,e,i,r){void 0===r&&(r=1),this.r=t,this.g=e,this.b=i,this.a=r};le.parse=function(t){if(t){if(t instanceof le)return t;if(\"string\"==typeof t){var e=se(t);if(e)return new le(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},le.prototype.toString=function(){var t=this.toArray(),e=t[0],i=t[1],r=t[2],n=t[3];return\"rgba(\"+Math.round(e)+\",\"+Math.round(i)+\",\"+Math.round(r)+\",\"+n+\")\"},le.prototype.toArray=function(){var t=this.r,e=this.g,i=this.b,r=this.a;return 0===r?[0,0,0,0]:[255*t/r,255*e/r,255*i/r,r]},le.black=new le(0,0,0,1),le.white=new le(1,1,1,1),le.transparent=new le(0,0,0,0),le.red=new le(1,0,0,1);var ue=function(t,e,i){this.sensitivity=t?e?\"variant\":\"case\":e?\"accent\":\"base\",this.locale=i,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"})};function ce(t,e,i,r,n){this.text=t,this.image=e,this.scale=i,this.fontStack=r,this.textColor=n}ue.prototype.compare=function(t,e){return this.collator.compare(t,e)},ue.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var pe=function(t){this.sections=t};pe.fromString=function(t){return new pe([new ce(t,null,null,null,null)])},pe.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some(function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length})},pe.factory=function(t){return t instanceof pe?t:pe.fromString(t)},pe.prototype.toString=function(){return 0===this.sections.length?\"\":this.sections.map(function(t){return t.text}).join(\"\")},pe.prototype.serialize=function(){for(var t=[\"format\"],e=0,i=this.sections;e<i.length;e+=1){var r=i[e];if(r.image)t.push([\"image\",r.image.name]);else{t.push(r.text);var n={};r.fontStack&&(n[\"text-font\"]=[\"literal\",r.fontStack.split(\",\")]),r.scale&&(n[\"font-scale\"]=r.scale),r.textColor&&(n[\"text-color\"]=[\"rgba\"].concat(r.textColor.toArray())),t.push(n)}}return t};var he=function(t){this.name=t.name,this.available=t.available};function de(t,e,i,r){return\"number\"==typeof t&&0<=t&&t<=255&&\"number\"==typeof e&&0<=e&&e<=255&&\"number\"==typeof i&&0<=i&&i<=255?void 0===r||\"number\"==typeof r&&0<=r&&r<=1?null:\"Invalid rgba value [\"+[t,e,i,r].join(\", \")+\"]: 'a' must be between 0 and 1.\":\"Invalid rgba value [\"+(\"number\"==typeof r?[t,e,i,r]:[t,e,i]).join(\", \")+\"]: 'r', 'g', and 'b' must be between 0 and 255.\"}function fe(t){if(null===t)return Kt;if(\"string\"==typeof t)return Xt;if(\"boolean\"==typeof t)return Yt;if(\"number\"==typeof t)return Wt;if(t instanceof le)return Jt;if(t instanceof ue)return te;if(t instanceof pe)return ee;if(t instanceof he)return ie;if(Array.isArray(t)){for(var e,i=t.length,r=0,n=t;r<n.length;r+=1){var o=fe(n[r]);if(e){if(e===o)continue;e=$t;break}e=o}return re(e||$t,i)}return Qt}function me(t){var e=typeof t;return null===t?\"\":\"string\"==e||\"number\"==e||\"boolean\"==e?String(t):t instanceof le||t instanceof pe||t instanceof he?t.toString():JSON.stringify(t)}function ge(t,e){this.type=t,this.value=e}he.prototype.toString=function(){return this.name},he.fromString=function(t){return new he({name:t,available:!1})},he.prototype.serialize=function(){return[\"image\",this.name]},ge.parse=function(t,e){if(2!==t.length)return e.error(\"'literal' expression requires exactly one argument, but found \"+(t.length-1)+\" instead.\");if(!function t(e){if(null===e)return 1;if(\"string\"==typeof e)return 1;if(\"boolean\"==typeof e)return 1;if(\"number\"==typeof e)return 1;if(e instanceof le)return 1;if(e instanceof ue)return 1;if(e instanceof pe)return 1;if(e instanceof he)return 1;if(Array.isArray(e)){for(var i=0,r=e;i<r.length;i+=1)if(!t(r[i]))return;return 1}if(\"object\"==typeof e){for(var n in e)if(!t(e[n]))return;return 1}}(t[1]))return e.error(\"invalid value\");var i=t[1],r=fe(i),n=e.expectedType;return\"array\"!==r.kind||0!==r.N||!n||\"array\"!==n.kind||\"number\"==typeof n.N&&0!==n.N||(r=n),new ge(r,i)},ge.prototype.evaluate=function(){return this.value},ge.prototype.eachChild=function(){},ge.prototype.possibleOutputs=function(){return[this.value]},ge.prototype.serialize=function(){return\"array\"===this.type.kind||\"object\"===this.type.kind?[\"literal\",this.value]:this.value instanceof le?[\"rgba\"].concat(this.value.toArray()):this.value instanceof pe?this.value.serialize():this.value};var ye=function(t){this.name=\"ExpressionEvaluationError\",this.message=t};function ve(t,e){this.type=t,this.args=e}ye.prototype.toJSON=function(){return this.message};var _e={string:Xt,number:Wt,boolean:Yt,object:Qt};function xe(t){this.type=ee,this.sections=t}function be(t){this.type=ie,this.input=t}function we(t,e){this.type=t,this.args=e}ve.parse=function(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");var i,r=1,n=t[0];if(\"array\"===n){var o,a;if(2<t.length){var s=t[1];if(\"string\"!=typeof s||!(s in _e)||\"object\"===s)return e.error('The item type argument of \"array\" must be one of string, number, boolean',1);o=_e[s],r++}else o=$t;if(3<t.length){if(null!==t[2]&&(\"number\"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to \"array\" must be a positive integer literal',2);a=t[2],r++}i=re(o,a)}else i=_e[n];for(var l=[];r<t.length;r++){var u=e.parse(t[r],r,$t);if(!u)return null;l.push(u)}return new ve(i,l)},ve.prototype.evaluate=function(t){for(var e=0;e<this.args.length;e++){var i=this.args[e].evaluate(t);if(!ae(this.type,fe(i)))return i;if(e===this.args.length-1)throw new ye(\"Expected value to be of type \"+ne(this.type)+\", but found \"+ne(fe(i))+\" instead.\")}return null},ve.prototype.eachChild=function(t){this.args.forEach(t)},ve.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}))},ve.prototype.serialize=function(){var t=this.type,e=[t.kind];if(\"array\"===t.kind){var i=t.itemType;if(\"string\"===i.kind||\"number\"===i.kind||\"boolean\"===i.kind){e.push(i.kind);var r=t.N;(\"number\"==typeof r||1<this.args.length)&&e.push(r)}}return e.concat(this.args.map(function(t){return t.serialize()}))},xe.parse=function(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");var i=t[1];if(!Array.isArray(i)&&\"object\"==typeof i)return e.error(\"First argument must be an image or text section.\");for(var r=[],n=!1,o=1;o<=t.length-1;++o){var a=t[o];if(n&&\"object\"==typeof a&&!Array.isArray(a)){n=!1;var s=null;if(a[\"font-scale\"]&&!(s=e.parse(a[\"font-scale\"],1,Wt)))return null;var l=null;if(a[\"text-font\"]&&!(l=e.parse(a[\"text-font\"],1,re(Xt))))return null;var u=null;if(a[\"text-color\"]&&!(u=e.parse(a[\"text-color\"],1,Jt)))return null;var c=r[r.length-1];c.scale=s,c.font=l,c.textColor=u}else{var p=e.parse(t[o],1,$t);if(!p)return null;var h=p.type.kind;if(\"string\"!==h&&\"value\"!==h&&\"null\"!==h&&\"resolvedImage\"!==h)return e.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");n=!0,r.push({content:p,scale:null,font:null,textColor:null})}}return new xe(r)},xe.prototype.evaluate=function(i){return new pe(this.sections.map(function(t){var e=t.content.evaluate(i);return fe(e)===ie?new ce(\"\",e,null,null,null):new ce(me(e),null,t.scale?t.scale.evaluate(i):null,t.font?t.font.evaluate(i).join(\",\"):null,t.textColor?t.textColor.evaluate(i):null)}))},xe.prototype.eachChild=function(t){for(var e=0,i=this.sections;e<i.length;e+=1){var r=i[e];t(r.content),r.scale&&t(r.scale),r.font&&t(r.font),r.textColor&&t(r.textColor)}},xe.prototype.possibleOutputs=function(){return[void 0]},xe.prototype.serialize=function(){for(var t=[\"format\"],e=0,i=this.sections;e<i.length;e+=1){var r=i[e];t.push(r.content.serialize());var n={};r.scale&&(n[\"font-scale\"]=r.scale.serialize()),r.font&&(n[\"text-font\"]=r.font.serialize()),r.textColor&&(n[\"text-color\"]=r.textColor.serialize()),t.push(n)}return t},be.parse=function(t,e){if(2!==t.length)return e.error(\"Expected two arguments.\");var i=e.parse(t[1],1,Xt);return i?new be(i):e.error(\"No image name provided.\")},be.prototype.evaluate=function(t){var e=this.input.evaluate(t),i=!1;return t.availableImages&&-1<t.availableImages.indexOf(e)&&(i=!0),new he({name:e,available:i})},be.prototype.eachChild=function(t){t(this.input)},be.prototype.possibleOutputs=function(){return[void 0]},be.prototype.serialize=function(){return[\"image\",this.input.serialize()]};var Se={\"to-boolean\":Yt,\"to-color\":Jt,\"to-number\":Wt,\"to-string\":Xt};function Te(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null}we.parse=function(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");var i=t[0];if((\"to-boolean\"===i||\"to-string\"===i)&&2!==t.length)return e.error(\"Expected one argument.\");for(var r=Se[i],n=[],o=1;o<t.length;o++){var a=e.parse(t[o],o,$t);if(!a)return null;n.push(a)}return new we(r,n)},we.prototype.evaluate=function(t){if(\"boolean\"===this.type.kind)return Boolean(this.args[0].evaluate(t));if(\"color\"===this.type.kind){for(var e,i,r=0,n=this.args;r<n.length;r+=1){if(i=null,(e=n[r].evaluate(t))instanceof le)return e;if(\"string\"==typeof e){var o=t.parseColor(e);if(o)return o}else if(Array.isArray(e)&&!(i=e.length<3||4<e.length?\"Invalid rbga value \"+JSON.stringify(e)+\": expected an array containing either three or four numeric values.\":de(e[0],e[1],e[2],e[3])))return new le(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ye(i||\"Could not parse color from value '\"+(\"string\"==typeof e?e:String(JSON.stringify(e)))+\"'\")}if(\"number\"!==this.type.kind)return\"formatted\"===this.type.kind?pe.fromString(me(this.args[0].evaluate(t))):\"resolvedImage\"===this.type.kind?he.fromString(me(this.args[0].evaluate(t))):me(this.args[0].evaluate(t));for(var a=null,s=0,l=this.args;s<l.length;s+=1){if(null===(a=l[s].evaluate(t)))return 0;var u=Number(a);if(!isNaN(u))return u}throw new ye(\"Could not convert \"+JSON.stringify(a)+\" to number.\")},we.prototype.eachChild=function(t){this.args.forEach(t)},we.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}))},we.prototype.serialize=function(){if(\"formatted\"===this.type.kind)return new xe([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(\"resolvedImage\"===this.type.kind)return new be(this.args[0]).serialize();var e=[\"to-\"+this.type.kind];return this.eachChild(function(t){e.push(t.serialize())}),e};var Ee=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];Te.prototype.id=function(){return this.feature&&\"id\"in this.feature?this.feature.id:null},Te.prototype.geometryType=function(){return this.feature?\"number\"==typeof this.feature.type?Ee[this.feature.type]:this.feature.type:null},Te.prototype.properties=function(){return this.feature&&this.feature.properties||{}},Te.prototype.parseColor=function(t){var e=this._parseColorCache[t];return e=e||(this._parseColorCache[t]=le.parse(t))};var Ie=function(t,e,i,r){this.name=t,this.type=e,this._evaluate=i,this.args=r};function Ce(t,e,i){this.type=te,this.locale=i,this.caseSensitive=t,this.diacriticSensitive=e}function Ae(t){if(t instanceof Ie){if(\"get\"===t.name&&1===t.args.length)return!1;if(\"feature-state\"===t.name)return!1;if(\"has\"===t.name&&1===t.args.length)return!1;if(\"properties\"===t.name||\"geometry-type\"===t.name||\"id\"===t.name)return!1;if(/^filter-/.test(t.name))return!1}var e=!0;return t.eachChild(function(t){e&&!Ae(t)&&(e=!1)}),e}function ke(t){if(!(t instanceof Ie&&\"feature-state\"===t.name)){var e=!0;return t.eachChild(function(t){e&&!ke(t)&&(e=!1)}),e}}function Pe(t,e){if(t instanceof Ie&&0<=e.indexOf(t.name))return!1;var i=!0;return t.eachChild(function(t){i&&!Pe(t,e)&&(i=!1)}),i}function Me(t,e){this.type=e.type,this.name=t,this.boundExpression=e}Ie.prototype.evaluate=function(t){return this._evaluate(t,this.args)},Ie.prototype.eachChild=function(t){this.args.forEach(t)},Ie.prototype.possibleOutputs=function(){return[void 0]},Ie.prototype.serialize=function(){return[this.name].concat(this.args.map(function(t){return t.serialize()}))},Ie.parse=function(i,t){var e,r=i[0],n=Ie.definitions[r];if(!n)return t.error('Unknown expression \"'+r+'\". If you wanted a literal array, use [\"literal\", [...]].',0);for(var o=Array.isArray(n)?n[0]:n.type,a=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,s=a.filter(function(t){var e=t[0];return!Array.isArray(e)||e.length===i.length-1}),l=null,u=0,c=s;u<c.length;u+=1){var p=c[u],h=p[0],d=p[1];l=new Le(t.registry,t.path,null,t.scope);for(var f=[],m=!1,g=1;g<i.length;g++){var y=i[g],v=Array.isArray(h)?h[g-1]:h.type,_=l.parse(y,1+f.length,v);if(!_){m=!0;break}f.push(_)}if(!m)if(Array.isArray(h)&&h.length!==f.length)l.error(\"Expected \"+h.length+\" arguments, but found \"+f.length+\" instead.\");else{for(var x=0;x<f.length;x++){var b=Array.isArray(h)?h[x]:h.type,w=f[x];l.concat(x+1).checkSubtype(b,w.type)}if(0===l.errors.length)return new Ie(r,o,d,f)}}if(1===s.length)(e=t.errors).push.apply(e,l.errors);else{for(var S=(s.length?s:a).map(function(t){var e;return e=t[0],Array.isArray(e)?\"(\"+e.map(ne).join(\", \")+\")\":\"(\"+ne(e.type)+\"...)\"}).join(\" | \"),T=[],E=1;E<i.length;E++){var I=t.parse(i[E],1+T.length);if(!I)return null;T.push(ne(I.type))}t.error(\"Expected arguments of type \"+S+\", but found (\"+T.join(\", \")+\") instead.\")}return null},Ie.register=function(t,e){for(var i in Ie.definitions=e)t[i]=Ie},Ce.parse=function(t,e){if(2!==t.length)return e.error(\"Expected one argument.\");var i=t[1];if(\"object\"!=typeof i||Array.isArray(i))return e.error(\"Collator options argument must be an object.\");var r=e.parse(void 0!==i[\"case-sensitive\"]&&i[\"case-sensitive\"],1,Yt);if(!r)return null;var n=e.parse(void 0!==i[\"diacritic-sensitive\"]&&i[\"diacritic-sensitive\"],1,Yt);if(!n)return null;var o=null;return i.locale&&!(o=e.parse(i.locale,1,Xt))?null:new Ce(r,n,o)},Ce.prototype.evaluate=function(t){return new ue(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)},Ce.prototype.eachChild=function(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)},Ce.prototype.possibleOutputs=function(){return[void 0]},Ce.prototype.serialize=function(){var t={};return t[\"case-sensitive\"]=this.caseSensitive.serialize(),t[\"diacritic-sensitive\"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),[\"collator\",t]},Me.parse=function(t,e){if(2!==t.length||\"string\"!=typeof t[1])return e.error(\"'var' expression requires exactly one string literal argument.\");var i=t[1];return e.scope.has(i)?new Me(i,e.scope.get(i)):e.error('Unknown variable \"'+i+'\". Make sure \"'+i+'\" has been bound in an enclosing \"let\" expression before using it.',1)},Me.prototype.evaluate=function(t){return this.boundExpression.evaluate(t)},Me.prototype.eachChild=function(){},Me.prototype.possibleOutputs=function(){return[void 0]},Me.prototype.serialize=function(){return[\"var\",this.name]};var Le=function(t,e,i,r,n){void 0===e&&(e=[]),void 0===r&&(r=new Vt),void 0===n&&(n=[]),this.registry=t,this.path=e,this.key=e.map(function(t){return\"[\"+t+\"]\"}).join(\"\"),this.scope=r,this.errors=n,this.expectedType=i};function De(t,e){for(var i,r,n=t.length-1,o=0,a=n,s=0;o<=a;)if(i=t[s=Math.floor((o+a)/2)],r=t[s+1],i<=e){if(s===n||e<r)return s;o=s+1}else{if(!(e<i))throw new ye(\"Input is not a number.\");a=s-1}return 0}Le.prototype.parse=function(t,e,i,r,n){return void 0===n&&(n={}),e?this.concat(e,i,r)._parse(t,n):this._parse(t,n)},Le.prototype._parse=function(t,e){function i(t,e,i){return\"assert\"===i?new ve(e,[t]):\"coerce\"===i?new we(e,[t]):t}if(null!==t&&\"string\"!=typeof t&&\"boolean\"!=typeof t&&\"number\"!=typeof t||(t=[\"literal\",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');var r=t[0];if(\"string\"!=typeof r)return this.error(\"Expression name must be a string, but found \"+typeof r+' instead. If you wanted a literal array, use [\"literal\", [...]].',0),null;var n=this.registry[r];if(n){var o=n.parse(t,this);if(!o)return null;if(this.expectedType){var a=this.expectedType,s=o.type;if(\"string\"!==a.kind&&\"number\"!==a.kind&&\"boolean\"!==a.kind&&\"object\"!==a.kind&&\"array\"!==a.kind||\"value\"!==s.kind)if(\"color\"!==a.kind&&\"formatted\"!==a.kind&&\"resolvedImage\"!==a.kind||\"value\"!==s.kind&&\"string\"!==s.kind){if(this.checkSubtype(a,s))return null}else o=i(o,a,e.typeAnnotation||\"coerce\");else o=i(o,a,e.typeAnnotation||\"assert\")}if(!(o instanceof ge)&&\"resolvedImage\"!==o.type.kind&&function e(t){if(t instanceof Me)return e(t.boundExpression);if(t instanceof Ie&&\"error\"===t.name)return!1;if(t instanceof Ce)return!1;var i=t instanceof we||t instanceof ve,r=!0;return t.eachChild(function(t){r=i?r&&e(t):r&&t instanceof ge}),!!r&&Ae(t)&&Pe(t,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}(o)){var l=new Te;try{o=new ge(o.type,o.evaluate(l))}catch(t){return this.error(t.message),null}}return o}return this.error('Unknown expression \"'+r+'\". If you wanted a literal array, use [\"literal\", [...]].',0)}return void 0===t?this.error(\"'undefined' value invalid. Use null instead.\"):\"object\"==typeof t?this.error('Bare objects invalid. Use [\"literal\", {...}] instead.'):this.error(\"Expected an array, but found \"+typeof t+\" instead.\")},Le.prototype.concat=function(t,e,i){var r=\"number\"==typeof t?this.path.concat(t):this.path,n=i?this.scope.concat(i):this.scope;return new Le(this.registry,r,e||null,n,this.errors)},Le.prototype.error=function(t){for(var e=[],i=arguments.length-1;0<i--;)e[i]=arguments[i+1];var r=\"\"+this.key+e.map(function(t){return\"[\"+t+\"]\"}).join(\"\");this.errors.push(new Zt(r,t))},Le.prototype.checkSubtype=function(t,e){var i=ae(t,e);return i&&this.error(i),i};var Oe=function(t,e,i){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var r=0,n=i;r<n.length;r+=1){var o=n[r],a=o[0],s=o[1];this.labels.push(a),this.outputs.push(s)}};function ze(t,e,i){return t*(1-i)+e*i}Oe.parse=function(t,e){if(t.length-1<4)return e.error(\"Expected at least 4 arguments, but found only \"+(t.length-1)+\".\");if((t.length-1)%2!=0)return e.error(\"Expected an even number of arguments.\");var i=e.parse(t[1],1,Wt);if(!i)return null;var r=[],n=null;e.expectedType&&\"value\"!==e.expectedType.kind&&(n=e.expectedType);for(var o=1;o<t.length;o+=2){var a=1===o?-1/0:t[o],s=t[o+1],l=o,u=o+1;if(\"number\"!=typeof a)return e.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',l);if(r.length&&r[r.length-1][0]>=a)return e.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',l);var c=e.parse(s,u,n);if(!c)return null;n=n||c.type,r.push([a,c])}return new Oe(n,i,r)},Oe.prototype.evaluate=function(t){var e=this.labels,i=this.outputs;if(1===e.length)return i[0].evaluate(t);var r=this.input.evaluate(t);if(r<=e[0])return i[0].evaluate(t);var n=e.length;return r>=e[n-1]?i[n-1].evaluate(t):i[De(e,r)].evaluate(t)},Oe.prototype.eachChild=function(t){t(this.input);for(var e=0,i=this.outputs;e<i.length;e+=1)t(i[e])},Oe.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()}))},Oe.prototype.serialize=function(){for(var t=[\"step\",this.input.serialize()],e=0;e<this.labels.length;e++)0<e&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Re=Object.freeze({__proto__:null,number:ze,color:function(t,e,i){return new le(ze(t.r,e.r,i),ze(t.g,e.g,i),ze(t.b,e.b,i),ze(t.a,e.a,i))},array:function(t,i,r){return t.map(function(t,e){return ze(t,i[e],r)})}}),Ne=4/29,Be=6/29,Fe=3*Be*Be,Ue=Be*Be*Be,je=Math.PI/180,qe=180/Math.PI;function Ve(t){return Ue<t?Math.pow(t,1/3):t/Fe+Ne}function Ge(t){return Be<t?t*t*t:Fe*(t-Ne)}function Ze(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function He(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ke(t){var e=He(t.r),i=He(t.g),r=He(t.b),n=Ve((.4124564*e+.3575761*i+.1804375*r)/.95047),o=Ve(.2126729*e+.7151522*i+.072175*r);return{l:116*o-16,a:500*(n-o),b:200*(o-Ve((.0193339*e+.119192*i+.9503041*r)/1.08883)),alpha:t.a}}function We(t){var e=(t.l+16)/116,i=isNaN(t.a)?e:e+t.a/500,r=isNaN(t.b)?e:e-t.b/200;return e=+Ge(e),i=.95047*Ge(i),r=1.08883*Ge(r),new le(Ze(3.2404542*i-1.5371385*e-.4985314*r),Ze(-.969266*i+1.8760108*e+.041556*r),Ze(.0556434*i-.2040259*e+1.0572252*r),t.alpha)}var Xe={forward:Ke,reverse:We,interpolate:function(t,e,i){return{l:ze(t.l,e.l,i),a:ze(t.a,e.a,i),b:ze(t.b,e.b,i),alpha:ze(t.alpha,e.alpha,i)}}},Ye={forward:function(t){var e=Ke(t),i=e.l,r=e.a,n=e.b,o=Math.atan2(n,r)*qe;return{h:o<0?360+o:o,c:Math.sqrt(r*r+n*n),l:i,alpha:t.a}},reverse:function(t){var e=t.h*je,i=t.c;return We({l:t.l,a:Math.cos(e)*i,b:Math.sin(e)*i,alpha:t.alpha})},interpolate:function(t,e,i){return{h:(r=t.h,n=e.h,r+i*(180<(o=n-r)||o<-180?o-360*Math.round(o/360):o)),c:ze(t.c,e.c,i),l:ze(t.l,e.l,i),alpha:ze(t.alpha,e.alpha,i)};var r,n,o}},Je=Object.freeze({__proto__:null,lab:Xe,hcl:Ye}),Qe=function(t,e,i,r,n){this.type=t,this.operator=e,this.interpolation=i,this.input=r,this.labels=[],this.outputs=[];for(var o=0,a=n;o<a.length;o+=1){var s=a[o],l=s[0],u=s[1];this.labels.push(l),this.outputs.push(u)}};function $e(t,e,i,r){var n=r-i,o=t-i;return 0==n?0:1===e?o/n:(Math.pow(e,o)-1)/(Math.pow(e,n)-1)}Qe.interpolationFactor=function(t,e,i,r){var n=0;if(\"exponential\"===t.name)n=$e(e,t.base,i,r);else if(\"linear\"===t.name)n=$e(e,1,i,r);else if(\"cubic-bezier\"===t.name){var o=t.controlPoints;n=new a(o[0],o[1],o[2],o[3]).solve($e(e,1,i,r))}return n},Qe.parse=function(t,e){var i=t[0],r=t[1],n=t[2],o=t.slice(3);if(!Array.isArray(r)||0===r.length)return e.error(\"Expected an interpolation type expression.\",1);if(\"linear\"===r[0])r={name:\"linear\"};else if(\"exponential\"===r[0]){var a=r[1];if(\"number\"!=typeof a)return e.error(\"Exponential interpolation requires a numeric base.\",1,1);r={name:\"exponential\",base:a}}else{if(\"cubic-bezier\"!==r[0])return e.error(\"Unknown interpolation type \"+String(r[0]),1,0);var s=r.slice(1);if(4!==s.length||s.some(function(t){return\"number\"!=typeof t||t<0||1<t}))return e.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);r={name:\"cubic-bezier\",controlPoints:s}}if(t.length-1<4)return e.error(\"Expected at least 4 arguments, but found only \"+(t.length-1)+\".\");if((t.length-1)%2!=0)return e.error(\"Expected an even number of arguments.\");if(!(n=e.parse(n,2,Wt)))return null;var l=[],u=null;\"interpolate-hcl\"===i||\"interpolate-lab\"===i?u=Jt:e.expectedType&&\"value\"!==e.expectedType.kind&&(u=e.expectedType);for(var c=0;c<o.length;c+=2){var p=o[c],h=o[c+1],d=c+3,f=c+4;if(\"number\"!=typeof p)return e.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',d);if(l.length&&l[l.length-1][0]>=p)return e.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',d);var m=e.parse(h,f,u);if(!m)return null;u=u||m.type,l.push([p,m])}return\"number\"===u.kind||\"color\"===u.kind||\"array\"===u.kind&&\"number\"===u.itemType.kind&&\"number\"==typeof u.N?new Qe(u,i,r,n,l):e.error(\"Type \"+ne(u)+\" is not interpolatable.\")},Qe.prototype.evaluate=function(t){var e=this.labels,i=this.outputs;if(1===e.length)return i[0].evaluate(t);var r=this.input.evaluate(t);if(r<=e[0])return i[0].evaluate(t);var n=e.length;if(r>=e[n-1])return i[n-1].evaluate(t);var o=De(e,r),a=e[o],s=e[o+1],l=Qe.interpolationFactor(this.interpolation,r,a,s),u=i[o].evaluate(t),c=i[o+1].evaluate(t);return\"interpolate\"===this.operator?Re[this.type.kind.toLowerCase()](u,c,l):\"interpolate-hcl\"===this.operator?Ye.reverse(Ye.interpolate(Ye.forward(u),Ye.forward(c),l)):Xe.reverse(Xe.interpolate(Xe.forward(u),Xe.forward(c),l))},Qe.prototype.eachChild=function(t){t(this.input);for(var e=0,i=this.outputs;e<i.length;e+=1)t(i[e])},Qe.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()}))},Qe.prototype.serialize=function(){var t;t=\"linear\"===this.interpolation.name?[\"linear\"]:\"exponential\"===this.interpolation.name?1===this.interpolation.base?[\"linear\"]:[\"exponential\",this.interpolation.base]:[\"cubic-bezier\"].concat(this.interpolation.controlPoints);for(var e=[this.operator,t,this.input.serialize()],i=0;i<this.labels.length;i++)e.push(this.labels[i],this.outputs[i].serialize());return e};var ti=function(t,e){this.type=t,this.args=e};ti.parse=function(t,e){if(t.length<2)return e.error(\"Expectected at least one argument.\");var i=null,r=e.expectedType;r&&\"value\"!==r.kind&&(i=r);for(var n=[],o=0,a=t.slice(1);o<a.length;o+=1){var s=a[o],l=e.parse(s,1+n.length,i,void 0,{typeAnnotation:\"omit\"});if(!l)return null;i=i||l.type,n.push(l)}var u=r&&n.some(function(t){return ae(r,t.type)});return new ti(u?$t:i,n)},ti.prototype.evaluate=function(t){for(var e,i=null,r=0,n=0,o=this.args;n<o.length&&(r++,(i=o[n].evaluate(t))&&i instanceof he&&!i.available&&(e=e||i.name,i=null,r===this.args.length&&(i=e)),null===i);n+=1);return i},ti.prototype.eachChild=function(t){this.args.forEach(t)},ti.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}))},ti.prototype.serialize=function(){var e=[\"coalesce\"];return this.eachChild(function(t){e.push(t.serialize())}),e};var ei=function(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e};function ii(t,e,i){this.type=t,this.index=e,this.input=i}function ri(t,e){this.type=Yt,this.needle=t,this.haystack=e}function ni(t,e,i,r,n,o){this.inputType=t,this.type=e,this.input=i,this.cases=r,this.outputs=n,this.otherwise=o}function oi(t,e,i){this.type=t,this.branches=e,this.otherwise=i}function ai(t,e){return\"==\"===t||\"!=\"===t?\"boolean\"===e.kind||\"string\"===e.kind||\"number\"===e.kind||\"null\"===e.kind||\"value\"===e.kind:\"string\"===e.kind||\"number\"===e.kind||\"value\"===e.kind}function si(t,e,i,r){return 0===r.compare(e,i)}function li(s,l,u){var c=\"==\"!==s&&\"!=\"!==s;return a.parse=function(t,e){if(3!==t.length&&4!==t.length)return e.error(\"Expected two or three arguments.\");var i=t[0],r=e.parse(t[1],1,$t);if(!r)return null;if(!ai(i,r.type))return e.concat(1).error('\"'+i+\"\\\" comparisons are not supported for type '\"+ne(r.type)+\"'.\");var n=e.parse(t[2],2,$t);if(!n)return null;if(!ai(i,n.type))return e.concat(2).error('\"'+i+\"\\\" comparisons are not supported for type '\"+ne(n.type)+\"'.\");if(r.type.kind!==n.type.kind&&\"value\"!==r.type.kind&&\"value\"!==n.type.kind)return e.error(\"Cannot compare types '\"+ne(r.type)+\"' and '\"+ne(n.type)+\"'.\");c&&(\"value\"===r.type.kind&&\"value\"!==n.type.kind?r=new ve(n.type,[r]):\"value\"!==r.type.kind&&\"value\"===n.type.kind&&(n=new ve(r.type,[n])));var o=null;if(4===t.length){if(\"string\"!==r.type.kind&&\"string\"!==n.type.kind&&\"value\"!==r.type.kind&&\"value\"!==n.type.kind)return e.error(\"Cannot use collator to compare non-string types.\");if(!(o=e.parse(t[3],3,te)))return null}return new a(r,n,o)},a.prototype.evaluate=function(t){var e=this.lhs.evaluate(t),i=this.rhs.evaluate(t);if(c&&this.hasUntypedArgument){var r=fe(e),n=fe(i);if(r.kind!==n.kind||\"string\"!==r.kind&&\"number\"!==r.kind)throw new ye('Expected arguments for \"'+s+'\" to be (string, string) or (number, number), but found ('+r.kind+\", \"+n.kind+\") instead.\")}if(this.collator&&!c&&this.hasUntypedArgument){var o=fe(e),a=fe(i);if(\"string\"!==o.kind||\"string\"!==a.kind)return l(t,e,i)}return this.collator?u(t,e,i,this.collator.evaluate(t)):l(t,e,i)},a.prototype.eachChild=function(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)},a.prototype.possibleOutputs=function(){return[!0,!1]},a.prototype.serialize=function(){var e=[s];return this.eachChild(function(t){e.push(t.serialize())}),e},a;function a(t,e,i){this.type=Yt,this.lhs=t,this.rhs=e,this.collator=i,this.hasUntypedArgument=\"value\"===t.type.kind||\"value\"===e.type.kind}}function ui(t,e,i,r,n){this.type=Xt,this.number=t,this.locale=e,this.currency=i,this.minFractionDigits=r,this.maxFractionDigits=n}ei.prototype.evaluate=function(t){return this.result.evaluate(t)},ei.prototype.eachChild=function(t){for(var e=0,i=this.bindings;e<i.length;e+=1)t(i[e][1]);t(this.result)},ei.parse=function(t,e){if(t.length<4)return e.error(\"Expected at least 3 arguments, but found \"+(t.length-1)+\" instead.\");for(var i=[],r=1;r<t.length-1;r+=2){var n=t[r];if(\"string\"!=typeof n)return e.error(\"Expected string, but found \"+typeof n+\" instead.\",r);if(/[^a-zA-Z0-9_]/.test(n))return e.error(\"Variable names must contain only alphanumeric characters or '_'.\",r);var o=e.parse(t[r+1],r+1);if(!o)return null;i.push([n,o])}var a=e.parse(t[t.length-1],t.length-1,e.expectedType,i);return a?new ei(i,a):null},ei.prototype.possibleOutputs=function(){return this.result.possibleOutputs()},ei.prototype.serialize=function(){for(var t=[\"let\"],e=0,i=this.bindings;e<i.length;e+=1){var r=i[e],n=r[0],o=r[1];t.push(n,o.serialize())}return t.push(this.result.serialize()),t},ii.parse=function(t,e){if(3!==t.length)return e.error(\"Expected 2 arguments, but found \"+(t.length-1)+\" instead.\");var i=e.parse(t[1],1,Wt),r=e.parse(t[2],2,re(e.expectedType||$t));if(!i||!r)return null;var n=r.type;return new ii(n.itemType,i,r)},ii.prototype.evaluate=function(t){var e=this.index.evaluate(t),i=this.input.evaluate(t);if(e<0)throw new ye(\"Array index out of bounds: \"+e+\" < 0.\");if(e>=i.length)throw new ye(\"Array index out of bounds: \"+e+\" > \"+(i.length-1)+\".\");if(e!==Math.floor(e))throw new ye(\"Array index must be an integer, but found \"+e+\" instead.\");return i[e]},ii.prototype.eachChild=function(t){t(this.index),t(this.input)},ii.prototype.possibleOutputs=function(){return[void 0]},ii.prototype.serialize=function(){return[\"at\",this.index.serialize(),this.input.serialize()]},ri.parse=function(t,e){if(3!==t.length)return e.error(\"Expected 2 arguments, but found \"+(t.length-1)+\" instead.\");var i,r=e.parse(t[1],1,$t),n=e.parse(t[2],2,$t);return r&&n?\"boolean\"!==(i=r.type).kind&&\"string\"!==i.kind&&\"number\"!==i.kind&&\"null\"!==i.kind&&\"value\"!==i.kind?e.error(\"Expected first argument to be of type boolean, string, number or null, but found \"+ne(r.type)+\" instead\"):new ri(r,n):null},ri.prototype.evaluate=function(t){var e,i=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!i||!r)return!1;if(\"boolean\"!=typeof i&&\"string\"!=typeof i&&\"number\"!=typeof i)throw new ye(\"Expected first argument to be of type boolean, string or number, but found \"+ne(fe(i))+\" instead.\");if(e=r,!Array.isArray(e)&&\"string\"!=typeof e)throw new ye(\"Expected second argument to be of type array or string, but found \"+ne(fe(r))+\" instead.\");return 0<=r.indexOf(i)},ri.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},ri.prototype.possibleOutputs=function(){return[!0,!1]},ri.prototype.serialize=function(){return[\"in\",this.needle.serialize(),this.haystack.serialize()]},ni.parse=function(t,e){if(t.length<5)return e.error(\"Expected at least 4 arguments, but found only \"+(t.length-1)+\".\");if(t.length%2!=1)return e.error(\"Expected an even number of arguments.\");var i,r;e.expectedType&&\"value\"!==e.expectedType.kind&&(r=e.expectedType);for(var n={},o=[],a=2;a<t.length-1;a+=2){var s=t[a],l=t[a+1];Array.isArray(s)||(s=[s]);var u=e.concat(a);if(0===s.length)return u.error(\"Expected at least one branch label.\");for(var c=0,p=s;c<p.length;c+=1){var h=p[c];if(\"number\"!=typeof h&&\"string\"!=typeof h)return u.error(\"Branch labels must be numbers or strings.\");if(\"number\"==typeof h&&Math.abs(h)>Number.MAX_SAFE_INTEGER)return u.error(\"Branch labels must be integers no larger than \"+Number.MAX_SAFE_INTEGER+\".\");if(\"number\"==typeof h&&Math.floor(h)!==h)return u.error(\"Numeric branch labels must be integer values.\");if(i){if(u.checkSubtype(i,fe(h)))return null}else i=fe(h);if(void 0!==n[String(h)])return u.error(\"Branch labels must be unique.\");n[String(h)]=o.length}var d=e.parse(l,a,r);if(!d)return null;r=r||d.type,o.push(d)}var f=e.parse(t[1],1,$t);if(!f)return null;var m=e.parse(t[t.length-1],t.length-1,r);return!m||\"value\"!==f.type.kind&&e.concat(1).checkSubtype(i,f.type)?null:new ni(i,r,f,n,o,m)},ni.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(fe(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},ni.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},ni.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()})).concat(this.otherwise.possibleOutputs())},ni.prototype.serialize=function(){for(var e=this,t=[\"match\",this.input.serialize()],i=[],r={},n=0,o=Object.keys(this.cases).sort();n<o.length;n+=1){var a=o[n];void 0===(p=r[this.cases[a]])?(r[this.cases[a]]=i.length,i.push([this.cases[a],[a]])):i[p][1].push(a)}for(var s=function(t){return\"number\"===e.inputType.kind?Number(t):t},l=0,u=i;l<u.length;l+=1){var c=u[l],p=c[0],h=c[1];1===h.length?t.push(s(h[0])):t.push(h.map(s)),t.push(this.outputs[outputIndex$1].serialize())}return t.push(this.otherwise.serialize()),t},oi.parse=function(t,e){if(t.length<4)return e.error(\"Expected at least 3 arguments, but found only \"+(t.length-1)+\".\");if(t.length%2!=0)return e.error(\"Expected an odd number of arguments.\");var i;e.expectedType&&\"value\"!==e.expectedType.kind&&(i=e.expectedType);for(var r=[],n=1;n<t.length-1;n+=2){var o=e.parse(t[n],n,Yt);if(!o)return null;var a=e.parse(t[n+1],n+1,i);if(!a)return null;r.push([o,a]),i=i||a.type}var s=e.parse(t[t.length-1],t.length-1,i);return s?new oi(i,r,s):null},oi.prototype.evaluate=function(t){for(var e=0,i=this.branches;e<i.length;e+=1){var r=i[e],n=r[0],o=r[1];if(n.evaluate(t))return o.evaluate(t)}return this.otherwise.evaluate(t)},oi.prototype.eachChild=function(t){for(var e=0,i=this.branches;e<i.length;e+=1){var r=i[e],n=r[0],o=r[1];t(n),t(o)}t(this.otherwise)},oi.prototype.possibleOutputs=function(){var t;return(t=[]).concat.apply(t,this.branches.map(function(t){return t[0],t[1].possibleOutputs()})).concat(this.otherwise.possibleOutputs())},oi.prototype.serialize=function(){var e=[\"case\"];return this.eachChild(function(t){e.push(t.serialize())}),e};var ci=li(\"==\",function(t,e,i){return e===i},si),pi=li(\"!=\",function(t,e,i){return e!==i},function(t,e,i,r){return!si(0,e,i,r)}),hi=li(\"<\",function(t,e,i){return e<i},function(t,e,i,r){return r.compare(e,i)<0}),di=li(\">\",function(t,e,i){return i<e},function(t,e,i,r){return 0<r.compare(e,i)}),fi=li(\"<=\",function(t,e,i){return e<=i},function(t,e,i,r){return r.compare(e,i)<=0}),mi=li(\">=\",function(t,e,i){return i<=e},function(t,e,i,r){return 0<=r.compare(e,i)});function gi(t){this.type=Wt,this.input=t}ui.parse=function(t,e){if(3!==t.length)return e.error(\"Expected two arguments.\");var i=e.parse(t[1],1,Wt);if(!i)return null;var r=t[2];if(\"object\"!=typeof r||Array.isArray(r))return e.error(\"NumberFormat options argument must be an object.\");var n=null;if(r.locale&&!(n=e.parse(r.locale,1,Xt)))return null;var o=null;if(r.currency&&!(o=e.parse(r.currency,1,Xt)))return null;var a=null;if(r[\"min-fraction-digits\"]&&!(a=e.parse(r[\"min-fraction-digits\"],1,Wt)))return null;var s=null;return r[\"max-fraction-digits\"]&&!(s=e.parse(r[\"max-fraction-digits\"],1,Wt))?null:new ui(i,n,o,a,s)},ui.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?\"currency\":\"decimal\",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},ui.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},ui.prototype.possibleOutputs=function(){return[void 0]},ui.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t[\"min-fraction-digits\"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t[\"max-fraction-digits\"]=this.maxFractionDigits.serialize()),[\"number-format\",this.number.serialize(),t]},gi.parse=function(t,e){if(2!==t.length)return e.error(\"Expected 1 argument, but found \"+(t.length-1)+\" instead.\");var i=e.parse(t[1],1);return i?\"array\"!==i.type.kind&&\"string\"!==i.type.kind&&\"value\"!==i.type.kind?e.error(\"Expected argument of type string or array, but found \"+ne(i.type)+\" instead.\"):new gi(i):null},gi.prototype.evaluate=function(t){var e=this.input.evaluate(t);if(\"string\"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ye(\"Expected value to be of type string or array, but found \"+ne(fe(e))+\" instead.\")},gi.prototype.eachChild=function(t){t(this.input)},gi.prototype.possibleOutputs=function(){return[void 0]},gi.prototype.serialize=function(){var e=[\"length\"];return this.eachChild(function(t){e.push(t.serialize())}),e};var yi={\"==\":ci,\"!=\":pi,\">\":di,\"<\":hi,\">=\":mi,\"<=\":fi,array:ve,at:ii,boolean:ve,case:oi,coalesce:ti,collator:Ce,format:xe,image:be,in:ri,interpolate:Qe,\"interpolate-hcl\":Qe,\"interpolate-lab\":Qe,length:gi,let:ei,literal:ge,match:ni,number:ve,\"number-format\":ui,object:ve,step:Oe,string:ve,\"to-boolean\":we,\"to-color\":we,\"to-number\":we,\"to-string\":we,var:Me};function vi(t,e){var i=e[0],r=e[1],n=e[2],o=e[3];i=i.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);var a=o?o.evaluate(t):1,s=de(i,r,n,a);if(s)throw new ye(s);return new le(i/255*a,r/255*a,n/255*a,a)}function _i(t,e){return t in e}function xi(t,e){var i=e[t];return void 0===i?null:i}function bi(t){return{type:t}}function wi(t){return{result:\"success\",value:t}}function Si(t){return{result:\"error\",value:t}}function Ti(t){return\"data-driven\"===t[\"property-type\"]||\"cross-faded-data-driven\"===t[\"property-type\"]}function Ei(t){return t.expression&&-1<t.expression.parameters.indexOf(\"zoom\")}function Ii(t){return t.expression&&t.expression.interpolated}function Ci(t){return t instanceof Number?\"number\":t instanceof String?\"string\":t instanceof Boolean?\"boolean\":Array.isArray(t)?\"array\":null===t?\"null\":typeof t}function Ai(t){return\"object\"==typeof t&&null!==t&&!Array.isArray(t)}function ki(t){return t}function Pi(t,e,i){return void 0!==t?t:void 0!==e?e:void 0!==i?i:void 0}function Mi(t,e,i,r,n){return Pi(typeof i===n?r[i]:void 0,t.default,e.default)}function Li(t,e,i){if(\"number\"!==Ci(i))return Pi(t.default,e.default);var r=t.stops.length;if(1===r)return t.stops[0][1];if(i<=t.stops[0][0])return t.stops[0][1];if(i>=t.stops[r-1][0])return t.stops[r-1][1];var n=De(t.stops.map(function(t){return t[0]}),i);return t.stops[n][1]}function Di(t,e,i){var r=void 0!==t.base?t.base:1;if(\"number\"!==Ci(i))return Pi(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(i<=t.stops[0][0])return t.stops[0][1];if(i>=t.stops[n-1][0])return t.stops[n-1][1];var o,a,s,l,u,c=De(t.stops.map(function(t){return t[0]}),i),p=(o=i,a=r,s=t.stops[c][0],l=t.stops[c+1][0]-s,u=o-s,0==l?0:1===a?u/l:(Math.pow(a,u)-1)/(Math.pow(a,l)-1)),h=t.stops[c][1],d=t.stops[c+1][1],f=Re[e.type]||ki;if(t.colorSpace&&\"rgb\"!==t.colorSpace){var m=Je[t.colorSpace];f=function(t,e){return m.reverse(m.interpolate(m.forward(t),m.forward(e),p))}}return\"function\"==typeof h.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var i=h.evaluate.apply(void 0,t),r=d.evaluate.apply(void 0,t);if(void 0!==i&&void 0!==r)return f(i,r,p)}}:f(h,d,p)}function Oi(t,e,i){return\"color\"===e.type?i=le.parse(i):\"formatted\"===e.type?i=pe.fromString(i.toString()):\"resolvedImage\"===e.type?i=he.fromString(i.toString()):Ci(i)===e.type||\"enum\"===e.type&&e.values[i]||(i=void 0),Pi(i,t.default,e.default)}Ie.register(yi,{error:[{kind:\"error\"},[Xt],function(t,e){var i=e[0];throw new ye(i.evaluate(t))}],typeof:[Xt,[$t],function(t,e){return ne(fe(e[0].evaluate(t)))}],\"to-rgba\":[re(Wt,4),[Jt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Jt,[Wt,Wt,Wt],vi],rgba:[Jt,[Wt,Wt,Wt,Wt],vi],has:{type:Yt,overloads:[[[Xt],function(t,e){return _i(e[0].evaluate(t),t.properties())}],[[Xt,Qt],function(t,e){var i=e[0],r=e[1];return _i(i.evaluate(t),r.evaluate(t))}]]},get:{type:$t,overloads:[[[Xt],function(t,e){return xi(e[0].evaluate(t),t.properties())}],[[Xt,Qt],function(t,e){var i=e[0],r=e[1];return xi(i.evaluate(t),r.evaluate(t))}]]},\"feature-state\":[$t,[Xt],function(t,e){return xi(e[0].evaluate(t),t.featureState||{})}],properties:[Qt,[],function(t){return t.properties()}],\"geometry-type\":[Xt,[],function(t){return t.geometryType()}],id:[$t,[],function(t){return t.id()}],zoom:[Wt,[],function(t){return t.globals.zoom}],\"heatmap-density\":[Wt,[],function(t){return t.globals.heatmapDensity||0}],\"line-progress\":[Wt,[],function(t){return t.globals.lineProgress||0}],accumulated:[$t,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],\"+\":[Wt,bi(Wt),function(t,e){for(var i=0,r=0,n=e;r<n.length;r+=1)i+=n[r].evaluate(t);return i}],\"*\":[Wt,bi(Wt),function(t,e){for(var i=1,r=0,n=e;r<n.length;r+=1)i*=n[r].evaluate(t);return i}],\"-\":{type:Wt,overloads:[[[Wt,Wt],function(t,e){var i=e[0],r=e[1];return i.evaluate(t)-r.evaluate(t)}],[[Wt],function(t,e){return-e[0].evaluate(t)}]]},\"/\":[Wt,[Wt,Wt],function(t,e){var i=e[0],r=e[1];return i.evaluate(t)/r.evaluate(t)}],\"%\":[Wt,[Wt,Wt],function(t,e){var i=e[0],r=e[1];return i.evaluate(t)%r.evaluate(t)}],ln2:[Wt,[],function(){return Math.LN2}],pi:[Wt,[],function(){return Math.PI}],e:[Wt,[],function(){return Math.E}],\"^\":[Wt,[Wt,Wt],function(t,e){var i=e[0],r=e[1];return Math.pow(i.evaluate(t),r.evaluate(t))}],sqrt:[Wt,[Wt],function(t,e){var i=e[0];return Math.sqrt(i.evaluate(t))}],log10:[Wt,[Wt],function(t,e){var i=e[0];return Math.log(i.evaluate(t))/Math.LN10}],ln:[Wt,[Wt],function(t,e){var i=e[0];return Math.log(i.evaluate(t))}],log2:[Wt,[Wt],function(t,e){var i=e[0];return Math.log(i.evaluate(t))/Math.LN2}],sin:[Wt,[Wt],function(t,e){var i=e[0];return Math.sin(i.evaluate(t))}],cos:[Wt,[Wt],function(t,e){var i=e[0];return Math.cos(i.evaluate(t))}],tan:[Wt,[Wt],function(t,e){var i=e[0];return Math.tan(i.evaluate(t))}],asin:[Wt,[Wt],function(t,e){var i=e[0];return Math.asin(i.evaluate(t))}],acos:[Wt,[Wt],function(t,e){var i=e[0];return Math.acos(i.evaluate(t))}],atan:[Wt,[Wt],function(t,e){var i=e[0];return Math.atan(i.evaluate(t))}],min:[Wt,bi(Wt),function(e,t){return Math.min.apply(Math,t.map(function(t){return t.evaluate(e)}))}],max:[Wt,bi(Wt),function(e,t){return Math.max.apply(Math,t.map(function(t){return t.evaluate(e)}))}],abs:[Wt,[Wt],function(t,e){var i=e[0];return Math.abs(i.evaluate(t))}],round:[Wt,[Wt],function(t,e){var i=e[0].evaluate(t);return i<0?-Math.round(-i):Math.round(i)}],floor:[Wt,[Wt],function(t,e){var i=e[0];return Math.floor(i.evaluate(t))}],ceil:[Wt,[Wt],function(t,e){var i=e[0];return Math.ceil(i.evaluate(t))}],\"filter-==\":[Yt,[Xt,$t],function(t,e){var i=e[0],r=e[1];return t.properties()[i.value]===r.value}],\"filter-id-==\":[Yt,[$t],function(t,e){var i=e[0];return t.id()===i.value}],\"filter-type-==\":[Yt,[Xt],function(t,e){var i=e[0];return t.geometryType()===i.value}],\"filter-<\":[Yt,[Xt,$t],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],o=r.value;return typeof n==typeof o&&n<o}],\"filter-id-<\":[Yt,[$t],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&r<n}],\"filter->\":[Yt,[Xt,$t],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],o=r.value;return typeof n==typeof o&&o<n}],\"filter-id->\":[Yt,[$t],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&n<r}],\"filter-<=\":[Yt,[Xt,$t],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],o=r.value;return typeof n==typeof o&&n<=o}],\"filter-id-<=\":[Yt,[$t],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&r<=n}],\"filter->=\":[Yt,[Xt,$t],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],o=r.value;return typeof n==typeof o&&o<=n}],\"filter-id->=\":[Yt,[$t],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&n<=r}],\"filter-has\":[Yt,[$t],function(t,e){return e[0].value in t.properties()}],\"filter-has-id\":[Yt,[],function(t){return null!==t.id()}],\"filter-type-in\":[Yt,[re(Xt)],function(t,e){return 0<=e[0].value.indexOf(t.geometryType())}],\"filter-id-in\":[Yt,[re($t)],function(t,e){return 0<=e[0].value.indexOf(t.id())}],\"filter-in-small\":[Yt,[Xt,re($t)],function(t,e){var i=e[0];return 0<=e[1].value.indexOf(t.properties()[i.value])}],\"filter-in-large\":[Yt,[Xt,re($t)],function(t,e){var i=e[0],r=e[1];return function(t,e,i,r){for(;i<=r;){var n=i+r>>1;if(e[n]===t)return!0;e[n]>t?r=n-1:i=1+n}return!1}(t.properties()[i.value],r.value,0,r.value.length-1)}],all:{type:Yt,overloads:[[[Yt,Yt],function(t,e){var i=e[0],r=e[1];return i.evaluate(t)&&r.evaluate(t)}],[bi(Yt),function(t,e){for(var i=0,r=e;i<r.length;i+=1)if(!r[i].evaluate(t))return!1;return!0}]]},any:{type:Yt,overloads:[[[Yt,Yt],function(t,e){var i=e[0],r=e[1];return i.evaluate(t)||r.evaluate(t)}],[bi(Yt),function(t,e){for(var i=0,r=e;i<r.length;i+=1)if(r[i].evaluate(t))return!0;return!1}]]},\"!\":[Yt,[Yt],function(t,e){return!e[0].evaluate(t)}],\"is-supported-script\":[Yt,[Xt],function(t,e){var i=e[0],r=t.globals&&t.globals.isSupportedScript;return!r||r(i.evaluate(t))}],upcase:[Xt,[Xt],function(t,e){return e[0].evaluate(t).toUpperCase()}],downcase:[Xt,[Xt],function(t,e){return e[0].evaluate(t).toLowerCase()}],concat:[Xt,bi($t),function(e,t){return t.map(function(t){return me(t.evaluate(e))}).join(\"\")}],\"resolved-locale\":[Xt,[te],function(t,e){return e[0].evaluate(t).resolvedLocale()}]});var zi=function(t,e){var i;this.expression=t,this._warningHistory={},this._evaluator=new Te,this._defaultValue=e?\"color\"===(i=e).type&&Ai(i.default)?new le(0,0,0,0):\"color\"===i.type?le.parse(i.default)||null:void 0===i.default?null:i.default:null,this._enumValues=e&&\"enum\"===e.type?e.values:null};function Ri(t){return Array.isArray(t)&&0<t.length&&\"string\"==typeof t[0]&&t[0]in yi}function Ni(t,e){var i,r=new Le(yi,[],e?(i={color:Jt,string:Xt,number:Wt,enum:Xt,boolean:Yt,formatted:ee,resolvedImage:ie},\"array\"===e.type?re(i[e.value]||$t,e.length):i[e.type]):void 0),n=r.parse(t,void 0,void 0,void 0,e&&\"string\"===e.type?{typeAnnotation:\"coerce\"}:void 0);return n?wi(new zi(n,e)):Si(r.errors)}zi.prototype.evaluateWithoutErrorHandling=function(t,e,i,r,n){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=i,this._evaluator.availableImages=r||null,this._evaluator.formattedSection=n,this.expression.evaluate(this._evaluator)},zi.prototype.evaluate=function(t,e,i,r,n){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=i||null,this._evaluator.availableImages=r||null,this._evaluator.formattedSection=n||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||\"number\"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new ye(\"Expected value to be one of \"+Object.keys(this._enumValues).map(function(t){return JSON.stringify(t)}).join(\", \")+\", but found \"+JSON.stringify(o)+\" instead.\");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,\"undefined\"!=typeof console&&console.warn(t.message)),this._defaultValue}};var Bi=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent=\"constant\"!==t&&!ke(e.expression)};Bi.prototype.evaluateWithoutErrorHandling=function(t,e,i,r,n){return this._styleExpression.evaluateWithoutErrorHandling(t,e,i,r,n)},Bi.prototype.evaluate=function(t,e,i,r,n){return this._styleExpression.evaluate(t,e,i,r,n)};var Fi=function(t,e,i,r){this.kind=t,this.zoomStops=i,this._styleExpression=e,this.isStateDependent=\"camera\"!==t&&!ke(e.expression),this.interpolationType=r};function Ui(t,e){if(\"error\"===(t=Ni(t,e)).result)return t;var i=t.value.expression,r=Ae(i);if(!r&&!Ti(e))return Si([new Zt(\"\",\"data expressions not supported\")]);var n=Pe(i,[\"zoom\"]);if(!n&&!Ei(e))return Si([new Zt(\"\",\"zoom expressions not supported\")]);var o=function i(t){var r=null;if(t instanceof ei)r=i(t.result);else if(t instanceof ti)for(var e=0,n=t.args;e<n.length;e+=1){var o=n[e];if(r=i(o))break}else(t instanceof Oe||t instanceof Qe)&&t.input instanceof Ie&&\"zoom\"===t.input.name&&(r=t);return r instanceof Zt||t.eachChild(function(t){var e=i(t);e instanceof Zt?r=e:!r&&e?r=new Zt(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):r&&e&&r!==e&&(r=new Zt(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'))}),r}(i);if(!o&&!n)return Si([new Zt(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')]);if(o instanceof Zt)return Si([o]);if(o instanceof Qe&&!Ii(e))return Si([new Zt(\"\",'\"interpolate\" expressions cannot be used with this property')]);if(!o)return wi(new Bi(r?\"constant\":\"source\",t.value));var a=o instanceof Qe?o.interpolation:void 0;return wi(new Fi(r?\"camera\":\"composite\",t.value,o.labels,a))}function ji(t,e){this._parameters=t,this._specification=e,Ut(this,function t(r,n){var o,a,s,e=\"color\"===n.type,i=r.stops&&\"object\"==typeof r.stops[0][0],l=i||void 0!==r.property,u=i||!l,c=r.type||(Ii(n)?\"exponential\":\"interval\");if(e&&((r=Ut({},r)).stops&&(r.stops=r.stops.map(function(t){return[t[0],le.parse(t[1])]})),r.default?r.default=le.parse(r.default):r.default=le.parse(n.default)),r.colorSpace&&\"rgb\"!==r.colorSpace&&!Je[r.colorSpace])throw new Error(\"Unknown color space: \"+r.colorSpace);if(\"exponential\"===c)o=Di;else if(\"interval\"===c)o=Li;else if(\"categorical\"===c){o=Mi,a=Object.create(null);for(var p=0,h=r.stops;p<h.length;p+=1){var d=h[p];a[d[0]]=d[1]}s=typeof r.stops[0][0]}else{if(\"identity\"!==c)throw new Error('Unknown function type \"'+c+'\"');o=Oi}if(i){for(var f={},m=[],g=0;g<r.stops.length;g++){var y=r.stops[g],v=y[0].zoom;void 0===f[v]&&(f[v]={zoom:v,type:r.type,property:r.property,default:r.default,stops:[]},m.push(v)),f[v].stops.push([y[0].value,y[1]])}for(var _=[],x=0,b=m;x<b.length;x+=1){var w=b[x];_.push([f[w].zoom,t(f[w],n)])}var S={name:\"linear\"};return{kind:\"composite\",interpolationType:S,interpolationFactor:Qe.interpolationFactor.bind(void 0,S),zoomStops:_.map(function(t){return t[0]}),evaluate:function(t,e){var i=t.zoom;return Di({stops:_,base:r.base},n,i).evaluate(i,e)}}}if(u){var T=\"exponential\"===c?{name:\"exponential\",base:void 0!==r.base?r.base:1}:null;return{kind:\"camera\",interpolationType:T,interpolationFactor:Qe.interpolationFactor.bind(void 0,T),zoomStops:r.stops.map(function(t){return t[0]}),evaluate:function(t){var e=t.zoom;return o(r,n,e,a,s)}}}return{kind:\"source\",evaluate:function(t,e){var i=e&&e.properties?e.properties[r.property]:void 0;return void 0===i?Pi(r.default,n.default):o(r,n,i,a,s)}}}(this._parameters,this._specification))}function qi(t){var e=t.key,i=t.value,r=t.valueSpec||{},n=t.objectElementValidators||{},o=t.style,a=t.styleSpec,s=[],l=Ci(i);if(\"object\"!==l)return[new Bt(e,i,\"object expected, \"+l+\" found\")];for(var u in i){var c=u.split(\".\")[0],p=r[c]||r[\"*\"],h=void 0;if(n[c])h=n[c];else if(r[c])h=dr;else if(n[\"*\"])h=n[\"*\"];else{if(!r[\"*\"]){s.push(new Bt(e,i[u],'unknown property \"'+u+'\"'));continue}h=dr}s=s.concat(h({key:(e?e+\".\":e)+u,value:i[u],valueSpec:p,style:o,styleSpec:a,object:i,objectKey:u},i))}for(var d in r)n[d]||r[d].required&&void 0===r[d].default&&void 0===i[d]&&s.push(new Bt(e,i,'missing required property \"'+d+'\"'));return s}function Vi(t){var e=t.value,i=t.valueSpec,r=t.style,n=t.styleSpec,o=t.key,a=t.arrayElementValidator||dr;if(\"array\"!==Ci(e))return[new Bt(o,e,\"array expected, \"+Ci(e)+\" found\")];if(i.length&&e.length!==i.length)return[new Bt(o,e,\"array length \"+i.length+\" expected, length \"+e.length+\" found\")];if(i[\"min-length\"]&&e.length<i[\"min-length\"])return[new Bt(o,e,\"array length at least \"+i[\"min-length\"]+\" expected, length \"+e.length+\" found\")];var s={type:i.value,values:i.values};n.$version<7&&(s.function=i.function),\"object\"===Ci(i.value)&&(s=i.value);for(var l=[],u=0;u<e.length;u++)l=l.concat(a({array:e,arrayIndex:u,value:e[u],valueSpec:s,style:r,styleSpec:n,key:o+\"[\"+u+\"]\"}));return l}function Gi(t){var e=t.key,i=t.value,r=t.valueSpec,n=Ci(i);return\"number\"===n&&i!=i&&(n=\"NaN\"),\"number\"!==n?[new Bt(e,i,\"number expected, \"+n+\" found\")]:\"minimum\"in r&&i<r.minimum?[new Bt(e,i,i+\" is less than the minimum value \"+r.minimum)]:\"maximum\"in r&&i>r.maximum?[new Bt(e,i,i+\" is greater than the maximum value \"+r.maximum)]:[]}function Zi(t){var a,s,n,l=t.valueSpec,u=jt(t.value.type),c={},e=\"categorical\"!==u&&void 0===t.value.property,i=!e,o=\"array\"===Ci(t.value.stops)&&\"array\"===Ci(t.value.stops[0])&&\"object\"===Ci(t.value.stops[0][0]),r=qi({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if(\"identity\"===u)return[new Bt(t.key,t.value,'identity function may not have a \"stops\" property')];var e=[],i=t.value;return e=e.concat(Vi({key:t.key,value:i,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:p})),\"array\"===Ci(i)&&0===i.length&&e.push(new Bt(t.key,i,\"array must have at least one stop\")),e},default:function(t){return dr({key:t.key,value:t.value,valueSpec:l,style:t.style,styleSpec:t.styleSpec})}}});return\"identity\"===u&&e&&r.push(new Bt(t.key,t.value,'missing required property \"property\"')),\"identity\"===u||t.value.stops||r.push(new Bt(t.key,t.value,'missing required property \"stops\"')),\"exponential\"===u&&t.valueSpec.expression&&!Ii(t.valueSpec)&&r.push(new Bt(t.key,t.value,\"exponential functions not supported\")),8<=t.styleSpec.$version&&(i&&!Ti(t.valueSpec)?r.push(new Bt(t.key,t.value,\"property functions not supported\")):e&&!Ei(t.valueSpec)&&r.push(new Bt(t.key,t.value,\"zoom functions not supported\"))),\"categorical\"!==u&&!o||void 0!==t.value.property||r.push(new Bt(t.key,t.value,'\"property\" property is required')),r;function p(t){var e=[],i=t.value,r=t.key;if(\"array\"!==Ci(i))return[new Bt(r,i,\"array expected, \"+Ci(i)+\" found\")];if(2!==i.length)return[new Bt(r,i,\"array length 2 expected, length \"+i.length+\" found\")];if(o){if(\"object\"!==Ci(i[0]))return[new Bt(r,i,\"object expected, \"+Ci(i[0])+\" found\")];if(void 0===i[0].zoom)return[new Bt(r,i,\"object stop key must have zoom\")];if(void 0===i[0].value)return[new Bt(r,i,\"object stop key must have value\")];if(n&&n>jt(i[0].zoom))return[new Bt(r,i[0].zoom,\"stop zoom values must appear in ascending order\")];jt(i[0].zoom)!==n&&(n=jt(i[0].zoom),s=void 0,c={}),e=e.concat(qi({key:r+\"[0]\",value:i[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Gi,value:h}}))}else e=e.concat(h({key:r+\"[0]\",value:i[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},i));return Ri(qt(i[1]))?e.concat([new Bt(r+\"[1]\",i[1],\"expressions are not allowed in function stops.\")]):e.concat(dr({key:r+\"[1]\",value:i[1],valueSpec:l,style:t.style,styleSpec:t.styleSpec}))}function h(t,e){var i=Ci(t.value),r=jt(t.value),n=null!==t.value?t.value:e;if(a){if(i!==a)return[new Bt(t.key,n,i+\" stop domain type must match previous stop domain type \"+a)]}else a=i;if(\"number\"!==i&&\"string\"!==i&&\"boolean\"!==i)return[new Bt(t.key,n,\"stop domain value must be a number, string, or boolean\")];if(\"number\"===i||\"categorical\"===u)return\"categorical\"!==u||\"number\"!==i||isFinite(r)&&Math.floor(r)===r?\"categorical\"!==u&&\"number\"===i&&void 0!==s&&r<s?[new Bt(t.key,n,\"stop domain values must appear in ascending order\")]:(s=r,\"categorical\"===u&&r in c?[new Bt(t.key,n,\"stop domain values must be unique\")]:(c[r]=!0,[])):[new Bt(t.key,n,\"integer expected, found \"+r)];var o=\"number expected, \"+i+\" found\";return Ti(l)&&void 0===u&&(o+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new Bt(t.key,n,o)]}}function Hi(e){var t=(\"property\"===e.expressionContext?Ui:Ni)(qt(e.value),e.valueSpec);if(\"error\"===t.result)return t.value.map(function(t){return new Bt(\"\"+e.key+t.key,e.value,t.message)});var i=t.value.expression||t.value._styleExpression.expression;if(\"property\"===e.expressionContext&&\"text-font\"===e.propertyKey&&-1!==i.possibleOutputs().indexOf(void 0))return[new Bt(e.key,e.value,'Invalid data expression for \"'+e.propertyKey+'\". Output values must be contained as literals within the expression.')];if(\"property\"===e.expressionContext&&\"layout\"===e.propertyType&&!ke(i))return[new Bt(e.key,e.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(\"filter\"===e.expressionContext&&!ke(i))return[new Bt(e.key,e.value,'\"feature-state\" data expressions are not supported with filters.')];if(e.expressionContext&&0===e.expressionContext.indexOf(\"cluster\")){if(!Pe(i,[\"zoom\",\"feature-state\"]))return[new Bt(e.key,e.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(\"cluster-initial\"===e.expressionContext&&!Ae(i))return[new Bt(e.key,e.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return[]}function Ki(t){var e=t.key,i=t.value,r=t.valueSpec,n=[];return Array.isArray(r.values)?-1===r.values.indexOf(jt(i))&&n.push(new Bt(e,i,\"expected one of [\"+r.values.join(\", \")+\"], \"+JSON.stringify(i)+\" found\")):-1===Object.keys(r.values).indexOf(jt(i))&&n.push(new Bt(e,i,\"expected one of [\"+Object.keys(r.values).join(\", \")+\"], \"+JSON.stringify(i)+\" found\")),n}function Wi(t){if(!0===t||!1===t)return 1;if(Array.isArray(t)&&0!==t.length)switch(t[0]){case\"has\":return 2<=t.length&&\"$id\"!==t[1]&&\"$type\"!==t[1];case\"in\":return 3<=t.length&&Array.isArray(t[2]);case\"!in\":case\"!has\":case\"none\":return;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case\"any\":case\"all\":for(var e=0,i=t.slice(1);e<i.length;e+=1){var r=i[e];if(!Wi(r)&&\"boolean\"!=typeof r)return}return 1;default:return 1}}Fi.prototype.evaluateWithoutErrorHandling=function(t,e,i,r,n){return this._styleExpression.evaluateWithoutErrorHandling(t,e,i,r,n)},Fi.prototype.evaluate=function(t,e,i,r,n){return this._styleExpression.evaluate(t,e,i,r,n)},Fi.prototype.interpolationFactor=function(t,e,i){return this.interpolationType?Qe.interpolationFactor(this.interpolationType,t,e,i):0},ji.deserialize=function(t){return new ji(t._parameters,t._specification)};var Xi={type:\"boolean\",default:!(ji.serialize=function(t){return{_parameters:t._parameters,_specification:t._specification}}),transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function Yi(t){if(null==t)return function(){return!0};Wi(t)||(t=Qi(t));var i=Ni(t,Xi);if(\"error\"===i.result)throw new Error(i.value.map(function(t){return t.key+\": \"+t.message}).join(\", \"));return function(t,e){return i.value.evaluate(t,e)}}function Ji(t,e){return t<e?-1:e<t?1:0}function Qi(t){if(!t)return!0;var e,i=t[0];return t.length<=1?\"any\"!==i:\"==\"===i?$i(t[1],t[2],\"==\"):\"!=\"===i?ir($i(t[1],t[2],\"==\")):\"<\"===i||\">\"===i||\"<=\"===i||\">=\"===i?$i(t[1],t[2],i):\"any\"===i?(e=t.slice(1),[\"any\"].concat(e.map(Qi))):\"all\"===i?[\"all\"].concat(t.slice(1).map(Qi)):\"none\"===i?[\"all\"].concat(t.slice(1).map(Qi).map(ir)):\"in\"===i?tr(t[1],t.slice(2)):\"!in\"===i?ir(tr(t[1],t.slice(2))):\"has\"===i?er(t[1]):\"!has\"!==i||ir(er(t[1]))}function $i(t,e,i){switch(t){case\"$type\":return[\"filter-type-\"+i,e];case\"$id\":return[\"filter-id-\"+i,e];default:return[\"filter-\"+i,t,e]}}function tr(t,e){if(0===e.length)return!1;switch(t){case\"$type\":return[\"filter-type-in\",[\"literal\",e]];case\"$id\":return[\"filter-id-in\",[\"literal\",e]];default:return 200<e.length&&!e.some(function(t){return typeof t!=typeof e[0]})?[\"filter-in-large\",t,[\"literal\",e.sort(Ji)]]:[\"filter-in-small\",t,[\"literal\",e]]}}function er(t){switch(t){case\"$type\":return!0;case\"$id\":return[\"filter-has-id\"];default:return[\"filter-has\",t]}}function ir(t){return[\"!\",t]}function rr(t){return Wi(qt(t.value))?Hi(Ut({},t,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):function t(e){var i=e.value,r=e.key;if(\"array\"!==Ci(i))return[new Bt(r,i,\"array expected, \"+Ci(i)+\" found\")];var n,o=e.styleSpec,a=[];if(i.length<1)return[new Bt(r,i,\"filter array must have at least 1 element\")];switch(a=a.concat(Ki({key:r+\"[0]\",value:i[0],valueSpec:o.filter_operator,style:e.style,styleSpec:e.styleSpec})),jt(i[0])){case\"<\":case\"<=\":case\">\":case\">=\":2<=i.length&&\"$type\"===jt(i[1])&&a.push(new Bt(r,i,'\"$type\" cannot be use with operator \"'+i[0]+'\"'));case\"==\":case\"!=\":3!==i.length&&a.push(new Bt(r,i,'filter array for operator \"'+i[0]+'\" must have 3 elements'));case\"in\":case\"!in\":2<=i.length&&\"string\"!==(n=Ci(i[1]))&&a.push(new Bt(r+\"[1]\",i[1],\"string expected, \"+n+\" found\"));for(var s=2;s<i.length;s++)n=Ci(i[s]),\"$type\"===jt(i[1])?a=a.concat(Ki({key:r+\"[\"+s+\"]\",value:i[s],valueSpec:o.geometry_type,style:e.style,styleSpec:e.styleSpec})):\"string\"!==n&&\"number\"!==n&&\"boolean\"!==n&&a.push(new Bt(r+\"[\"+s+\"]\",i[s],\"string, number, or boolean expected, \"+n+\" found\"));break;case\"any\":case\"all\":case\"none\":for(var l=1;l<i.length;l++)a=a.concat(t({key:r+\"[\"+l+\"]\",value:i[l],style:e.style,styleSpec:e.styleSpec}));break;case\"has\":case\"!has\":n=Ci(i[1]),2!==i.length?a.push(new Bt(r,i,'filter array for \"'+i[0]+'\" operator must have 2 elements')):\"string\"!==n&&a.push(new Bt(r+\"[1]\",i[1],\"string expected, \"+n+\" found\"))}return a}(t)}function nr(t,e){var i=t.key,r=t.style,n=t.styleSpec,o=t.value,a=t.objectKey,s=n[e+\"_\"+t.layerType];if(!s)return[];var l=a.match(/^(.*)-transition$/);if(\"paint\"===e&&l&&s[l[1]]&&s[l[1]].transition)return dr({key:i,value:o,valueSpec:n.transition,style:r,styleSpec:n});var u,c=t.valueSpec||s[a];if(!c)return[new Bt(i,o,'unknown property \"'+a+'\"')];if(\"string\"===Ci(o)&&Ti(c)&&!c.tokens&&(u=/^{([^}]+)}$/.exec(o)))return[new Bt(i,o,'\"'+a+'\" does not support interpolation syntax\\nUse an identity property function instead: `{ \"type\": \"identity\", \"property\": '+JSON.stringify(u[1])+\" }`.\")];var p=[];return\"symbol\"===t.layerType&&(\"text-field\"===a&&r&&!r.glyphs&&p.push(new Bt(i,o,'use of \"text-field\" requires a style \"glyphs\" property')),\"text-font\"===a&&Ai(qt(o))&&\"identity\"===jt(o.type)&&p.push(new Bt(i,o,'\"text-font\" does not support identity functions'))),p.concat(dr({key:t.key,value:o,valueSpec:c,style:r,styleSpec:n,expressionContext:\"property\",propertyType:e,propertyKey:a}))}function or(t){return nr(t,\"paint\")}function ar(t){return nr(t,\"layout\")}function sr(t){var e=[],i=t.value,r=t.key,n=t.style,o=t.styleSpec;i.type||i.ref||e.push(new Bt(r,i,'either \"type\" or \"ref\" is required'));var a,s=jt(i.type),l=jt(i.ref);if(i.id)for(var u=jt(i.id),c=0;c<t.arrayIndex;c++){var p=n.layers[c];jt(p.id)===u&&e.push(new Bt(r,i.id,'duplicate layer id \"'+i.id+'\", previously used at line '+p.id.__line__))}if(\"ref\"in i)[\"type\",\"source\",\"source-layer\",\"filter\",\"layout\"].forEach(function(t){t in i&&e.push(new Bt(r,i[t],'\"'+t+'\" is prohibited for ref layers'))}),n.layers.forEach(function(t){jt(t.id)===l&&(a=t)}),a?a.ref?e.push(new Bt(r,i.ref,\"ref cannot reference another ref layer\")):s=jt(a.type):e.push(new Bt(r,i.ref,'ref layer \"'+l+'\" not found'));else if(\"background\"!==s)if(i.source){var h=n.sources&&n.sources[i.source],d=h&&jt(h.type);h?\"vector\"===d&&\"raster\"===s?e.push(new Bt(r,i.source,'layer \"'+i.id+'\" requires a raster source')):\"raster\"===d&&\"raster\"!==s?e.push(new Bt(r,i.source,'layer \"'+i.id+'\" requires a vector source')):\"vector\"!==d||i[\"source-layer\"]?\"raster-dem\"===d&&\"hillshade\"!==s?e.push(new Bt(r,i.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):\"line\"!==s||!i.paint||!i.paint[\"line-gradient\"]||\"geojson\"===d&&h.lineMetrics||e.push(new Bt(r,i,'layer \"'+i.id+'\" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):e.push(new Bt(r,i,'layer \"'+i.id+'\" must specify a \"source-layer\"')):e.push(new Bt(r,i.source,'source \"'+i.source+'\" not found'))}else e.push(new Bt(r,i,'missing required property \"source\"'));return e=e.concat(qi({key:r,value:i,valueSpec:o.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":function(){return[]},type:function(){return dr({key:r+\".type\",value:i.type,valueSpec:o.layer.type,style:t.style,styleSpec:t.styleSpec,object:i,objectKey:\"type\"})},filter:rr,layout:function(t){return qi({layer:i,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":function(t){return ar(Ut({layerType:s},t))}}})},paint:function(t){return qi({layer:i,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":function(t){return or(Ut({layerType:s},t))}}})}}}))}function lr(t){var e=t.value,i=t.key,r=Ci(e);return\"string\"!==r?[new Bt(i,e,\"string expected, \"+r+\" found\")]:[]}var ur={promoteId:function(t){var e=t.key,i=t.value;if(\"string\"===Ci(i))return lr({key:e,value:i});var r=[];for(var n in i)r.push.apply(r,lr({key:e+\".\"+n,value:i[n]}));return r}};function cr(t){var e=t.value,i=t.key,r=t.styleSpec,n=t.style;if(!e.type)return[new Bt(i,e,'\"type\" is required')];var o,a=jt(e.type);switch(a){case\"vector\":case\"raster\":case\"raster-dem\":return qi({key:i,value:e,valueSpec:r[\"source_\"+a.replace(\"-\",\"_\")],style:t.style,styleSpec:r,objectElementValidators:ur});case\"geojson\":if(o=qi({key:i,value:e,valueSpec:r.source_geojson,style:n,styleSpec:r,objectElementValidators:ur}),e.cluster)for(var s in e.clusterProperties){var l=e.clusterProperties[s],u=l[0],c=l[1],p=\"string\"==typeof u?[u,[\"accumulated\"],[\"get\",s]]:u;o.push.apply(o,Hi({key:i+\".\"+s+\".map\",value:c,expressionContext:\"cluster-map\"})),o.push.apply(o,Hi({key:i+\".\"+s+\".reduce\",value:p,expressionContext:\"cluster-reduce\"}))}return o;case\"video\":return qi({key:i,value:e,valueSpec:r.source_video,style:n,styleSpec:r});case\"image\":return qi({key:i,value:e,valueSpec:r.source_image,style:n,styleSpec:r});case\"canvas\":return[new Bt(i,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Ki({key:i+\".type\",value:e.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:n,styleSpec:r})}}function pr(t){var e=t.value,i=t.styleSpec,r=i.light,n=t.style,o=[],a=Ci(e);if(void 0===e)return o;if(\"object\"!==a)return o.concat([new Bt(\"light\",e,\"object expected, \"+a+\" found\")]);for(var s in e){var l=s.match(/^(.*)-transition$/);o=l&&r[l[1]]&&r[l[1]].transition?o.concat(dr({key:s,value:e[s],valueSpec:i.transition,style:n,styleSpec:i})):r[s]?o.concat(dr({key:s,value:e[s],valueSpec:r[s],style:n,styleSpec:i})):o.concat([new Bt(s,e[s],'unknown property \"'+s+'\"')])}return o}var hr={\"*\":function(){return[]},array:Vi,boolean:function(t){var e=t.value,i=t.key,r=Ci(e);return\"boolean\"!==r?[new Bt(i,e,\"boolean expected, \"+r+\" found\")]:[]},number:Gi,color:function(t){var e=t.key,i=t.value,r=Ci(i);return\"string\"!==r?[new Bt(e,i,\"color expected, \"+r+\" found\")]:null===se(i)?[new Bt(e,i,'color expected, \"'+i+'\" found')]:[]},constants:Ft,enum:Ki,filter:rr,function:Zi,layer:sr,object:qi,source:cr,light:pr,string:lr,formatted:function(t){return 0===lr(t).length?[]:Hi(t)},resolvedImage:function(t){return 0===lr(t).length?[]:Hi(t)}};function dr(t){var e=t.value,i=t.valueSpec,r=t.styleSpec;return i.expression&&Ai(jt(e))?Zi(t):i.expression&&Ri(qt(e))?Hi(t):i.type&&hr[i.type]?hr[i.type](t):qi(Ut({},t,{valueSpec:i.type?r[i.type]:i}))}function fr(t){var e=t.value,i=t.key,r=lr(t);return r.length||(-1===e.indexOf(\"{fontstack}\")&&r.push(new Bt(i,e,'\"glyphs\" url must include a \"{fontstack}\" token')),-1===e.indexOf(\"{range}\")&&r.push(new Bt(i,e,'\"glyphs\" url must include a \"{range}\" token'))),r}function mr(t,e){void 0===e&&(e=Nt);var i=[];return i=i.concat(dr({key:\"\",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:fr,\"*\":function(){return[]}}})),t.constants&&(i=i.concat(Ft({key:\"constants\",value:t.constants,style:t,styleSpec:e}))),gr(i)}function gr(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function yr(i){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return gr(i.apply(this,t))}}mr.source=yr(cr),mr.light=yr(pr),mr.layer=yr(sr),mr.filter=yr(rr),mr.paintProperty=yr(or),mr.layoutProperty=yr(ar);var vr=mr,_r=vr.light,xr=vr.paintProperty,br=vr.layoutProperty;function wr(t,e){var i=!1;if(e&&e.length)for(var r=0,n=e;r<n.length;r+=1){var o=n[r];t.fire(new zt(new Error(o.message))),i=!0}return i}var Sr=Er,Tr=3;function Er(t,e,i){var r=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var n=new Int32Array(this.arrayBuffer);t=n[0],e=n[1],i=n[2],this.d=e+2*i;for(var o=0;o<this.d*this.d;o++){var a=n[Tr+o],s=n[Tr+o+1];r.push(a===s?null:n.subarray(a,s))}var l=n[Tr+r.length],u=n[Tr+r.length+1];this.keys=n.subarray(l,u),this.bboxes=n.subarray(u),this.insert=this._insertReadonly}else{this.d=e+2*i;for(var c=0;c<this.d*this.d;c++)r.push([]);this.keys=[],this.bboxes=[]}this.n=e,this.extent=t,this.padding=i,this.scale=e/t,this.uid=0;var p=i/e*t;this.min=-p,this.max=t+p}Er.prototype.insert=function(t,e,i,r,n){this._forEachCell(e,i,r,n,this._insertCell,this.uid++),this.keys.push(t),this.bboxes.push(e),this.bboxes.push(i),this.bboxes.push(r),this.bboxes.push(n)},Er.prototype._insertReadonly=function(){throw\"Cannot insert into a GridIndex created from an ArrayBuffer.\"},Er.prototype._insertCell=function(t,e,i,r,n,o){this.cells[n].push(o)},Er.prototype.query=function(t,e,i,r,n){var o=this.min,a=this.max;if(t<=o&&e<=o&&a<=i&&a<=r&&!n)return Array.prototype.slice.call(this.keys);var s=[];return this._forEachCell(t,e,i,r,this._queryCell,s,{},n),s},Er.prototype._queryCell=function(t,e,i,r,n,o,a,s){var l=this.cells[n];if(null!==l)for(var u=this.keys,c=this.bboxes,p=0;p<l.length;p++){var h=l[p];if(void 0===a[h]){var d=4*h;(s?s(c[0+d],c[1+d],c[2+d],c[3+d]):t<=c[2+d]&&e<=c[3+d]&&i>=c[0+d]&&r>=c[1+d])?(a[h]=!0,o.push(u[h])):a[h]=!1}}},Er.prototype._forEachCell=function(t,e,i,r,n,o,a,s){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(i),p=this._convertToCellCoord(r),h=l;h<=c;h++)for(var d=u;d<=p;d++){var f=this.d*d+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(d),this._convertFromCellCoord(h+1),this._convertFromCellCoord(d+1)))&&n.call(this,t,e,i,r,f,o,a,s))return}},Er.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},Er.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Er.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=Tr+this.cells.length+1+1,i=0,r=0;r<this.cells.length;r++)i+=this.cells[r].length;var n=new Int32Array(e+i+this.keys.length+this.bboxes.length);n[0]=this.extent,n[1]=this.n,n[2]=this.padding;for(var o=e,a=0;a<t.length;a++){var s=t[a];n[Tr+a]=o,n.set(s,o),o+=s.length}return n[Tr+t.length]=o,n.set(this.keys,o),o+=this.keys.length,n[Tr+t.length+1]=o,n.set(this.bboxes,o),o+=this.bboxes.length,n.buffer};var Ir=self.ImageData,Cr=self.ImageBitmap,Ar={};function kr(t,e,i){void 0===i&&(i={}),Object.defineProperty(e,\"_classRegistryKey\",{value:t,writeable:!1}),Ar[t]={klass:e,omit:i.omit||[],shallow:i.shallow||[]}}for(var Pr in kr(\"Object\",Object),Sr.serialize=function(t,e){var i=t.toArrayBuffer();return e&&e.push(i),{buffer:i}},Sr.deserialize=function(t){return new Sr(t.buffer)},kr(\"Grid\",Sr),kr(\"Color\",le),kr(\"Error\",Error),kr(\"ResolvedImage\",he),kr(\"StylePropertyFunction\",ji),kr(\"StyleExpression\",zi,{omit:[\"_evaluator\"]}),kr(\"ZoomDependentExpression\",Fi),kr(\"ZoomConstantExpression\",Bi),kr(\"CompoundExpression\",Ie,{omit:[\"_evaluate\"]}),yi)yi[Pr]._classRegistryKey||kr(\"Expression_\"+Pr,yi[Pr]);function Mr(t){return t&&\"undefined\"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&\"ArrayBuffer\"===t.constructor.name)}function Lr(t){return Cr&&t instanceof Cr}function Dr(t,e){if(null==t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp)return t;if(Mr(t)||Lr(t))return e&&e.push(t),t;if(ArrayBuffer.isView(t)){var i=t;return e&&e.push(i.buffer),i}if(t instanceof Ir)return e&&e.push(t.data.buffer),t;if(Array.isArray(t)){for(var r=[],n=0,o=t;n<o.length;n+=1){var a=o[n];r.push(Dr(a,e))}return r}if(\"object\"!=typeof t)throw new Error(\"can't serialize object of type \"+typeof t);var s=t.constructor,l=s._classRegistryKey;if(!l)throw new Error(\"can't serialize object of unregistered class\");var u=s.serialize?s.serialize(t,e):{};if(!s.serialize){for(var c in t)if(t.hasOwnProperty(c)&&!(0<=Ar[l].omit.indexOf(c))){var p=t[c];u[c]=0<=Ar[l].shallow.indexOf(c)?p:Dr(p,e)}t instanceof Error&&(u.message=t.message)}if(u.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return\"Object\"!==l&&(u.$name=l),u}function Or(t){if(null==t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Mr(t)||Lr(t)||ArrayBuffer.isView(t)||t instanceof Ir)return t;if(Array.isArray(t))return t.map(Or);if(\"object\"!=typeof t)throw new Error(\"can't deserialize object of type \"+typeof t);var e=t.$name||\"Object\",i=Ar[e].klass;if(!i)throw new Error(\"can't deserialize unregistered class \"+e);if(i.deserialize)return i.deserialize(t);for(var r=Object.create(i.prototype),n=0,o=Object.keys(t);n<o.length;n+=1){var a=o[n];if(\"$name\"!==a){var s=t[a];r[a]=0<=Ar[e].shallow.indexOf(a)?s:Or(s)}}return r}function zr(){this.first=!0}zr.prototype.update=function(t,e){var i=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=i,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=i,!0):(this.lastFloorZoom>i?(this.lastIntegerZoom=i+1,this.lastIntegerZoomTime=e):this.lastFloorZoom<i&&(this.lastIntegerZoom=i,this.lastIntegerZoomTime=e),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=i,!0))};var Rr={\"Latin-1 Supplement\":function(t){return 128<=t&&t<=255},Arabic:function(t){return 1536<=t&&t<=1791},\"Arabic Supplement\":function(t){return 1872<=t&&t<=1919},\"Arabic Extended-A\":function(t){return 2208<=t&&t<=2303},\"Hangul Jamo\":function(t){return 4352<=t&&t<=4607},\"Unified Canadian Aboriginal Syllabics\":function(t){return 5120<=t&&t<=5759},Khmer:function(t){return 6016<=t&&t<=6143},\"Unified Canadian Aboriginal Syllabics Extended\":function(t){return 6320<=t&&t<=6399},\"General Punctuation\":function(t){return 8192<=t&&t<=8303},\"Letterlike Symbols\":function(t){return 8448<=t&&t<=8527},\"Number Forms\":function(t){return 8528<=t&&t<=8591},\"Miscellaneous Technical\":function(t){return 8960<=t&&t<=9215},\"Control Pictures\":function(t){return 9216<=t&&t<=9279},\"Optical Character Recognition\":function(t){return 9280<=t&&t<=9311},\"Enclosed Alphanumerics\":function(t){return 9312<=t&&t<=9471},\"Geometric Shapes\":function(t){return 9632<=t&&t<=9727},\"Miscellaneous Symbols\":function(t){return 9728<=t&&t<=9983},\"Miscellaneous Symbols and Arrows\":function(t){return 11008<=t&&t<=11263},\"CJK Radicals Supplement\":function(t){return 11904<=t&&t<=12031},\"Kangxi Radicals\":function(t){return 12032<=t&&t<=12255},\"Ideographic Description Characters\":function(t){return 12272<=t&&t<=12287},\"CJK Symbols and Punctuation\":function(t){return 12288<=t&&t<=12351},Hiragana:function(t){return 12352<=t&&t<=12447},Katakana:function(t){return 12448<=t&&t<=12543},Bopomofo:function(t){return 12544<=t&&t<=12591},\"Hangul Compatibility Jamo\":function(t){return 12592<=t&&t<=12687},Kanbun:function(t){return 12688<=t&&t<=12703},\"Bopomofo Extended\":function(t){return 12704<=t&&t<=12735},\"CJK Strokes\":function(t){return 12736<=t&&t<=12783},\"Katakana Phonetic Extensions\":function(t){return 12784<=t&&t<=12799},\"Enclosed CJK Letters and Months\":function(t){return 12800<=t&&t<=13055},\"CJK Compatibility\":function(t){return 13056<=t&&t<=13311},\"CJK Unified Ideographs Extension A\":function(t){return 13312<=t&&t<=19903},\"Yijing Hexagram Symbols\":function(t){return 19904<=t&&t<=19967},\"CJK Unified Ideographs\":function(t){return 19968<=t&&t<=40959},\"Yi Syllables\":function(t){return 40960<=t&&t<=42127},\"Yi Radicals\":function(t){return 42128<=t&&t<=42191},\"Hangul Jamo Extended-A\":function(t){return 43360<=t&&t<=43391},\"Hangul Syllables\":function(t){return 44032<=t&&t<=55215},\"Hangul Jamo Extended-B\":function(t){return 55216<=t&&t<=55295},\"Private Use Area\":function(t){return 57344<=t&&t<=63743},\"CJK Compatibility Ideographs\":function(t){return 63744<=t&&t<=64255},\"Arabic Presentation Forms-A\":function(t){return 64336<=t&&t<=65023},\"Vertical Forms\":function(t){return 65040<=t&&t<=65055},\"CJK Compatibility Forms\":function(t){return 65072<=t&&t<=65103},\"Small Form Variants\":function(t){return 65104<=t&&t<=65135},\"Arabic Presentation Forms-B\":function(t){return 65136<=t&&t<=65279},\"Halfwidth and Fullwidth Forms\":function(t){return 65280<=t&&t<=65519}};function Nr(t){for(var e=0,i=t;e<i.length;e+=1)if(Br(i[e].charCodeAt(0)))return!0;return!1}function Br(t){return 746===t||747===t||!(t<4352)&&(Rr[\"Bopomofo Extended\"](t)||Rr.Bopomofo(t)||Rr[\"CJK Compatibility Forms\"](t)&&!(65097<=t&&t<=65103)||Rr[\"CJK Compatibility Ideographs\"](t)||Rr[\"CJK Compatibility\"](t)||Rr[\"CJK Radicals Supplement\"](t)||Rr[\"CJK Strokes\"](t)||!(!Rr[\"CJK Symbols and Punctuation\"](t)||12296<=t&&t<=12305||12308<=t&&t<=12319||12336===t)||Rr[\"CJK Unified Ideographs Extension A\"](t)||Rr[\"CJK Unified Ideographs\"](t)||Rr[\"Enclosed CJK Letters and Months\"](t)||Rr[\"Hangul Compatibility Jamo\"](t)||Rr[\"Hangul Jamo Extended-A\"](t)||Rr[\"Hangul Jamo Extended-B\"](t)||Rr[\"Hangul Jamo\"](t)||Rr[\"Hangul Syllables\"](t)||Rr.Hiragana(t)||Rr[\"Ideographic Description Characters\"](t)||Rr.Kanbun(t)||Rr[\"Kangxi Radicals\"](t)||Rr[\"Katakana Phonetic Extensions\"](t)||Rr.Katakana(t)&&12540!==t||!(!Rr[\"Halfwidth and Fullwidth Forms\"](t)||65288===t||65289===t||65293===t||65306<=t&&t<=65310||65339===t||65341===t||65343===t||65371<=t&&t<=65503||65507===t||65512<=t&&t<=65519)||!(!Rr[\"Small Form Variants\"](t)||65112<=t&&t<=65118||65123<=t&&t<=65126)||Rr[\"Unified Canadian Aboriginal Syllabics\"](t)||Rr[\"Unified Canadian Aboriginal Syllabics Extended\"](t)||Rr[\"Vertical Forms\"](t)||Rr[\"Yijing Hexagram Symbols\"](t)||Rr[\"Yi Syllables\"](t)||Rr[\"Yi Radicals\"](t))}function Fr(t){return!(Br(t)||(e=t,Rr[\"Latin-1 Supplement\"](e)&&(167===e||169===e||174===e||177===e||188===e||189===e||190===e||215===e||247===e)||Rr[\"General Punctuation\"](e)&&(8214===e||8224===e||8225===e||8240===e||8241===e||8251===e||8252===e||8258===e||8263===e||8264===e||8265===e||8273===e)||Rr[\"Letterlike Symbols\"](e)||Rr[\"Number Forms\"](e)||Rr[\"Miscellaneous Technical\"](e)&&(8960<=e&&e<=8967||8972<=e&&e<=8991||8996<=e&&e<=9e3||9003===e||9085<=e&&e<=9114||9150<=e&&e<=9165||9167===e||9169<=e&&e<=9179||9186<=e&&e<=9215)||Rr[\"Control Pictures\"](e)&&9251!==e||Rr[\"Optical Character Recognition\"](e)||Rr[\"Enclosed Alphanumerics\"](e)||Rr[\"Geometric Shapes\"](e)||Rr[\"Miscellaneous Symbols\"](e)&&!(9754<=e&&e<=9759)||Rr[\"Miscellaneous Symbols and Arrows\"](e)&&(11026<=e&&e<=11055||11088<=e&&e<=11097||11192<=e&&e<=11243)||Rr[\"CJK Symbols and Punctuation\"](e)||Rr.Katakana(e)||Rr[\"Private Use Area\"](e)||Rr[\"CJK Compatibility Forms\"](e)||Rr[\"Small Form Variants\"](e)||Rr[\"Halfwidth and Fullwidth Forms\"](e)||8734===e||8756===e||8757===e||9984<=e&&e<=10087||10102<=e&&e<=10131||65532===e||65533===e));var e}function Ur(t){return 1424<=t&&t<=2303||Rr[\"Arabic Presentation Forms-A\"](t)||Rr[\"Arabic Presentation Forms-B\"](t)}function jr(t){for(var e=0,i=t;e<i.length;e+=1)if(Ur(i[e].charCodeAt(0)))return 1}function qr(t){Hr&&Hr(t)}var Vr=\"deferred\",Gr=\"loading\",Zr=\"loaded\",Hr=null,Kr=\"unavailable\",Wr=null;function Xr(){$r.fire(new Lt(\"pluginStateChange\",{pluginStatus:Kr,pluginURL:Wr}))}function Yr(){return Kr}function Jr(){if(Kr!==Vr||!Wr)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");Kr=Gr,Xr(),Wr&&Et({url:Wr},function(t){t?qr(t):(Kr=Zr,Xr())})}function Qr(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new zr,this.transition={})}var $r=new Dt,tn={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return Kr===Zr||null!=tn.applyArabicShaping},isLoading:function(){return Kr===Gr},setState:function(t){Kr=t.pluginStatus,Wr=t.pluginURL},isParsed:function(){return null!=tn.applyArabicShaping&&null!=tn.processBidirectionalText&&null!=tn.processStyledBidirectionalText},getPluginURL:function(){return Wr}};function en(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Ai(t))return new ji(t,e);if(Ri(t)){var i=Ui(t,e);if(\"error\"===i.result)throw new Error(i.value.map(function(t){return t.key+\": \"+t.message}).join(\", \"));return i.value}var r=t;return\"string\"==typeof t&&\"color\"===e.type&&(r=le.parse(t)),{kind:\"constant\",evaluate:function(){return r}}}(void 0===e?t.specification.default:e,t.specification)}function rn(t){this.property=t,this.value=new en(t,void 0)}function nn(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}Qr.prototype.isSupportedScript=function(t){return function(t,e){for(var i=0,r=t;i<r.length;i+=1)if(n=r[i].charCodeAt(0),!e&&Ur(n)||2304<=n&&n<=3583||3840<=n&&n<=4255||Rr.Khmer(n))return!1;var n;return!0}(t,tn.isLoaded())},Qr.prototype.crossFadingFactor=function(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},Qr.prototype.getCrossfadeParameters=function(){var t=this.zoom,e=t-Math.floor(t),i=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*i}:{fromScale:.5,toScale:1,t:1-(1-i)*e}},en.prototype.isDataDriven=function(){return\"source\"===this.expression.kind||\"composite\"===this.expression.kind},en.prototype.possiblyEvaluate=function(t,e){return this.property.possiblyEvaluate(this,t,e)},rn.prototype.transitioned=function(t,e){return new on(this.property,this.value,e,f({},t.transition,this.transition),t.now)},rn.prototype.untransitioned=function(){return new on(this.property,this.value,null,{},0)},nn.prototype.getValue=function(t){return v(this._values[t].value.value)},nn.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new rn(this._values[t].property)),this._values[t].value=new en(this._values[t].property,null===e?void 0:v(e))},nn.prototype.getTransition=function(t){return v(this._values[t].transition)},nn.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new rn(this._values[t].property)),this._values[t].transition=v(e)||void 0},nn.prototype.serialize=function(){for(var t={},e=0,i=Object.keys(this._values);e<i.length;e+=1){var r=i[e],n=this.getValue(r);void 0!==n&&(t[r]=n);var o=this.getTransition(r);void 0!==o&&(t[r+\"-transition\"]=o)}return t},nn.prototype.transitioned=function(t,e){for(var i=new an(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var o=n[r];i._values[o]=this._values[o].transitioned(t,e._values[o])}return i},nn.prototype.untransitioned=function(){for(var t=new an(this._properties),e=0,i=Object.keys(this._values);e<i.length;e+=1){var r=i[e];t._values[r]=this._values[r].untransitioned()}return t};var on=function(t,e,i,r,n){this.property=t,this.value=e,this.begin=n+r.delay||0,this.end=this.begin+r.duration||0,t.specification.transition&&(r.delay||r.duration)&&(this.prior=i)};on.prototype.possiblyEvaluate=function(t,e){var i=t.now||0,r=this.value.possiblyEvaluate(t,e),n=this.prior;if(n){if(i>this.end)return this.prior=null,r;if(this.value.isDataDriven())return this.prior=null,r;if(i<this.begin)return n.possiblyEvaluate(t,e);var o=(i-this.begin)/(this.end-this.begin);return this.property.interpolate(n.possiblyEvaluate(t,e),r,function(){if(o<=0)return 0;if(1<=o)return 1;var t=o*o,e=t*o;return 4*(o<.5?e:3*(o-t)+e-.75)}())}return r};var an=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};function sn(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues)}function ln(t,e,i){this.property=t,this.value=e,this.parameters=i}an.prototype.possiblyEvaluate=function(t,e){for(var i=new un(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var o=n[r];i._values[o]=this._values[o].possiblyEvaluate(t,e)}return i},an.prototype.hasTransition=function(){for(var t=0,e=Object.keys(this._values);t<e.length;t+=1){var i=e[t];if(this._values[i].prior)return!0}return!1},sn.prototype.getValue=function(t){return v(this._values[t].value)},sn.prototype.setValue=function(t,e){this._values[t]=new en(this._values[t].property,null===e?void 0:v(e))},sn.prototype.serialize=function(){for(var t={},e=0,i=Object.keys(this._values);e<i.length;e+=1){var r=i[e],n=this.getValue(r);void 0!==n&&(t[r]=n)}return t},sn.prototype.possiblyEvaluate=function(t,e){for(var i=new un(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var o=n[r];i._values[o]=this._values[o].possiblyEvaluate(t,e)}return i},ln.prototype.isConstant=function(){return\"constant\"===this.value.kind},ln.prototype.constantOr=function(t){return\"constant\"===this.value.kind?this.value.value:t},ln.prototype.evaluate=function(t,e,i){return this.property.evaluate(this.value,this.parameters,t,e,i)};var un=function(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues)};function cn(t){this.specification=t}function pn(t,e){this.specification=t,this.overrides=e}function hn(t){this.specification=t}un.prototype.get=function(t){return this._values[t]},cn.prototype.possiblyEvaluate=function(t,e){return t.expression.evaluate(e)},cn.prototype.interpolate=function(t,e,i){var r=Re[this.specification.type];return r?r(t,e,i):t},pn.prototype.possiblyEvaluate=function(t,e,i){return\"constant\"===t.expression.kind||\"camera\"===t.expression.kind?new ln(this,{kind:\"constant\",value:t.expression.evaluate(e,null,{},i)},e):new ln(this,t.expression,e)},pn.prototype.interpolate=function(t,e,i){if(\"constant\"!==t.value.kind||\"constant\"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new ln(this,{kind:\"constant\",value:void 0},t.parameters);var r=Re[this.specification.type];return r?new ln(this,{kind:\"constant\",value:r(t.value.value,e.value.value,i)},t.parameters):t},pn.prototype.evaluate=function(t,e,i,r,n){return\"constant\"===t.kind?t.value:t.evaluate(e,i,r,n)};var dn,fn=(mn.__proto__=dn=pn,((mn.prototype=Object.create(dn&&dn.prototype)).constructor=mn).prototype.possiblyEvaluate=function(t,e,i){if(void 0===t.value)return new ln(this,{kind:\"constant\",value:void 0},e);if(\"constant\"===t.expression.kind){var r=t.expression.evaluate(e,null,{},i),n=\"resolvedImage\"===t.property.specification.type&&\"string\"!=typeof r?r.name:r,o=this._calculate(n,n,n,e);return new ln(this,{kind:\"constant\",value:o},e)}if(\"camera\"!==t.expression.kind)return new ln(this,t.expression,e);var a=this._calculate(t.expression.evaluate({zoom:e.zoom-1}),t.expression.evaluate({zoom:e.zoom}),t.expression.evaluate({zoom:e.zoom+1}),e);return new ln(this,{kind:\"constant\",value:a},e)},mn.prototype.evaluate=function(t,e,i,r,n){if(\"source\"!==t.kind)return\"composite\"===t.kind?this._calculate(t.evaluate({zoom:Math.floor(e.zoom)-1},i,r),t.evaluate({zoom:Math.floor(e.zoom)},i,r),t.evaluate({zoom:Math.floor(e.zoom)+1},i,r),e):t.value;var o=t.evaluate(e,i,r,n);return this._calculate(o,o,o,e)},mn.prototype._calculate=function(t,e,i,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:i,to:e}},mn.prototype.interpolate=function(t){return t},mn);function mn(){dn.apply(this,arguments)}function gn(t){this.specification=t}function yn(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var i=t[e];i.specification.overridable&&this.overridableProperties.push(e);var r=this.defaultPropertyValues[e]=new en(i,void 0),n=this.defaultTransitionablePropertyValues[e]=new rn(i);this.defaultTransitioningPropertyValues[e]=n.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=r.possiblyEvaluate({})}}function vn(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}function _n(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}hn.prototype.possiblyEvaluate=function(t,e,i){if(void 0!==t.value){if(\"constant\"!==t.expression.kind)return this._calculate(t.expression.evaluate(new Qr(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Qr(Math.floor(e.zoom),e)),t.expression.evaluate(new Qr(Math.floor(e.zoom+1),e)),e);var r=t.expression.evaluate(e,null,{},i);return this._calculate(r,r,r,e)}},hn.prototype._calculate=function(t,e,i,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:i,to:e}},hn.prototype.interpolate=function(t){return t},gn.prototype.possiblyEvaluate=function(t,e,i){return!!t.expression.evaluate(e,null,{},i)},gn.prototype.interpolate=function(){return!1},kr(\"DataDrivenProperty\",pn),kr(\"DataConstantProperty\",cn),kr(\"CrossFadedDataDrivenProperty\",fn),kr(\"CrossFadedProperty\",hn),kr(\"ColorRampProperty\",gn);var xn,bn=(Sn.__proto__=xn=Dt,((Sn.prototype=Object.create(xn&&xn.prototype)).constructor=Sn).prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},Sn.prototype.getLayoutProperty=function(t){return\"visibility\"===t?this.visibility:this._unevaluatedLayout.getValue(t)},Sn.prototype.setLayoutProperty=function(t,e,i){if(void 0===i&&(i={}),null!=e){var r=\"layers.\"+this.id+\".layout.\"+t;if(this._validate(br,r,t,e,i))return}\"visibility\"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e},Sn.prototype.getPaintProperty=function(t){return m(t,\"-transition\")?this._transitionablePaint.getTransition(t.slice(0,-\"-transition\".length)):this._transitionablePaint.getValue(t)},Sn.prototype.setPaintProperty=function(t,e,i){if(void 0===i&&(i={}),null!=e){var r=\"layers.\"+this.id+\".paint.\"+t;if(this._validate(xr,r,t,e,i))return!1}if(m(t,\"-transition\"))return this._transitionablePaint.setTransition(t.slice(0,-\"-transition\".length),e||void 0),!1;var n=this._transitionablePaint._values[t],o=\"cross-faded-data-driven\"===n.property.specification[\"property-type\"],a=n.value.isDataDriven(),s=n.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var l=this._transitionablePaint._values[t].value;return l.isDataDriven()||a||o||this._handleOverridablePaintPropertyUpdate(t,s,l)},Sn.prototype._handleSpecialPaintPropertyUpdate=function(t){},Sn.prototype._handleOverridablePaintPropertyUpdate=function(t,e,i){return!1},Sn.prototype.isHidden=function(t){return!!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||\"none\"===this.visibility},Sn.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},Sn.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},Sn.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,e)},Sn.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),y(t,function(t,e){return!(void 0===t||\"layout\"===e&&!Object.keys(t).length||\"paint\"===e&&!Object.keys(t).length)})},Sn.prototype._validate=function(t,e,i,r,n){return void 0===n&&(n={}),(!n||!1!==n.validate)&&wr(this,t.call(vr,{key:e,layerType:this.type,objectKey:i,value:r,styleSpec:Nt,style:{glyphs:!0,sprite:!0}}))},Sn.prototype.is3D=function(){return!1},Sn.prototype.isTileClipped=function(){return!1},Sn.prototype.hasOffscreenPass=function(){return!1},Sn.prototype.resize=function(){},Sn.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof ln&&Ti(e.property.specification)&&(\"source\"===e.value.kind||\"composite\"===e.value.kind)&&e.value.isStateDependent)return!0}return!1},Sn),wn={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};function Sn(t,e){if(xn.call(this),this.id=t.id,this.type=t.type,this._featureFilter=function(){return!0},\"custom\"!==t.type&&(t=t,this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,\"background\"!==t.type&&(this.source=t.source,this.sourceLayer=t[\"source-layer\"],this.filter=t.filter),e.layout&&(this._unevaluatedLayout=new sn(e.layout)),e.paint)){for(var i in this._transitionablePaint=new nn(e.paint),t.paint)this.setPaintProperty(i,t.paint[i],{validate:!1});for(var r in t.layout)this.setLayoutProperty(r,t.layout[r],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned()}}function Tn(t,o){void 0===o&&(o=1);var a=0,s=0;return{members:t.map(function(t){var e,i=(e=t.type,wn[e].BYTES_PER_ELEMENT),r=a=En(a,Math.max(o,i)),n=t.components||1;return s=Math.max(s,i),a+=i*n,{name:t.name,type:t.type,components:n,offset:r}}),size:En(a,Math.max(s,o)),alignment:o}}function En(t,e){return Math.ceil(t/e)*e}_n.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},_n.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},_n.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},_n.prototype.clear=function(){this.length=0},_n.prototype.resize=function(t){this.reserve(t),this.length=t},_n.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},_n.prototype._refreshViews=function(){throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\")};var In,Cn=(An.__proto__=In=_n,((An.prototype=Object.create(In&&In.prototype)).constructor=An).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},An.prototype.emplaceBack=function(t,e){var i=this.length;return this.resize(i+1),this.emplace(i,t,e)},An.prototype.emplace=function(t,e,i){var r=2*t;return this.int16[0+r]=e,this.int16[1+r]=i,t},An);function An(){In.apply(this,arguments)}Cn.prototype.bytesPerElement=4,kr(\"StructArrayLayout2i4\",Cn);var kn,Pn=(Mn.__proto__=kn=_n,((Mn.prototype=Object.create(kn&&kn.prototype)).constructor=Mn).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},Mn.prototype.emplaceBack=function(t,e,i,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,i,r)},Mn.prototype.emplace=function(t,e,i,r,n){var o=4*t;return this.int16[0+o]=e,this.int16[1+o]=i,this.int16[2+o]=r,this.int16[3+o]=n,t},Mn);function Mn(){kn.apply(this,arguments)}Pn.prototype.bytesPerElement=8,kr(\"StructArrayLayout4i8\",Pn);var Ln,Dn=(On.__proto__=Ln=_n,((On.prototype=Object.create(Ln&&Ln.prototype)).constructor=On).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},On.prototype.emplaceBack=function(t,e,i,r,n,o){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,i,r,n,o)},On.prototype.emplace=function(t,e,i,r,n,o,a){var s=6*t;return this.int16[0+s]=e,this.int16[1+s]=i,this.int16[2+s]=r,this.int16[3+s]=n,this.int16[4+s]=o,this.int16[5+s]=a,t},On);function On(){Ln.apply(this,arguments)}Dn.prototype.bytesPerElement=12,kr(\"StructArrayLayout2i4i12\",Dn);var zn,Rn=(Nn.__proto__=zn=_n,((Nn.prototype=Object.create(zn&&zn.prototype)).constructor=Nn).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},Nn.prototype.emplaceBack=function(t,e,i,r,n,o){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,i,r,n,o)},Nn.prototype.emplace=function(t,e,i,r,n,o,a){var s=4*t,l=8*t;return this.int16[0+s]=e,this.int16[1+s]=i,this.uint8[4+l]=r,this.uint8[5+l]=n,this.uint8[6+l]=o,this.uint8[7+l]=a,t},Nn);function Nn(){zn.apply(this,arguments)}Rn.prototype.bytesPerElement=8,kr(\"StructArrayLayout2i4ub8\",Rn);var Bn,Fn=(Un.__proto__=Bn=_n,((Un.prototype=Object.create(Bn&&Bn.prototype)).constructor=Un).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},Un.prototype.emplaceBack=function(t,e,i,r,n,o,a,s){var l=this.length;return this.resize(l+1),this.emplace(l,t,e,i,r,n,o,a,s)},Un.prototype.emplace=function(t,e,i,r,n,o,a,s,l){var u=8*t;return this.uint16[0+u]=e,this.uint16[1+u]=i,this.uint16[2+u]=r,this.uint16[3+u]=n,this.uint16[4+u]=o,this.uint16[5+u]=a,this.uint16[6+u]=s,this.uint16[7+u]=l,t},Un);function Un(){Bn.apply(this,arguments)}Fn.prototype.bytesPerElement=16,kr(\"StructArrayLayout8ui16\",Fn);var jn,qn=(Vn.__proto__=jn=_n,((Vn.prototype=Object.create(jn&&jn.prototype)).constructor=Vn).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},Vn.prototype.emplaceBack=function(t,e,i,r,n,o,a,s,l,u,c,p){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,i,r,n,o,a,s,l,u,c,p)},Vn.prototype.emplace=function(t,e,i,r,n,o,a,s,l,u,c,p,h){var d=12*t;return this.int16[0+d]=e,this.int16[1+d]=i,this.int16[2+d]=r,this.int16[3+d]=n,this.uint16[4+d]=o,this.uint16[5+d]=a,this.uint16[6+d]=s,this.uint16[7+d]=l,this.int16[8+d]=u,this.int16[9+d]=c,this.int16[10+d]=p,this.int16[11+d]=h,t},Vn);function Vn(){jn.apply(this,arguments)}qn.prototype.bytesPerElement=24,kr(\"StructArrayLayout4i4ui4i24\",qn);var Gn,Zn=(Hn.__proto__=Gn=_n,((Hn.prototype=Object.create(Gn&&Gn.prototype)).constructor=Hn).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},Hn.prototype.emplaceBack=function(t,e,i){var r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)},Hn.prototype.emplace=function(t,e,i,r){var n=3*t;return this.float32[0+n]=e,this.float32[1+n]=i,this.float32[2+n]=r,t},Hn);function Hn(){Gn.apply(this,arguments)}Zn.prototype.bytesPerElement=12,kr(\"StructArrayLayout3f12\",Zn);var Kn,Wn=(Xn.__proto__=Kn=_n,((Xn.prototype=Object.create(Kn&&Kn.prototype)).constructor=Xn).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},Xn.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},Xn.prototype.emplace=function(t,e){var i=+t;return this.uint32[0+i]=e,t},Xn);function Xn(){Kn.apply(this,arguments)}Wn.prototype.bytesPerElement=4,kr(\"StructArrayLayout1ul4\",Wn);var Yn,Jn=(Qn.__proto__=Yn=_n,((Qn.prototype=Object.create(Yn&&Yn.prototype)).constructor=Qn).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},Qn.prototype.emplaceBack=function(t,e,i,r,n,o,a,s,l,u,c){var p=this.length;return this.resize(p+1),this.emplace(p,t,e,i,r,n,o,a,s,l,u,c)},Qn.prototype.emplace=function(t,e,i,r,n,o,a,s,l,u,c,p){var h=12*t,d=6*t;return this.int16[0+h]=e,this.int16[1+h]=i,this.int16[2+h]=r,this.int16[3+h]=n,this.int16[4+h]=o,this.int16[5+h]=a,this.uint32[3+d]=s,this.uint16[8+h]=l,this.uint16[9+h]=u,this.int16[10+h]=c,this.int16[11+h]=p,t},Qn);function Qn(){Yn.apply(this,arguments)}Jn.prototype.bytesPerElement=24,kr(\"StructArrayLayout6i1ul2ui2i24\",Jn);var $n,to=(eo.__proto__=$n=_n,((eo.prototype=Object.create($n&&$n.prototype)).constructor=eo).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},eo.prototype.emplaceBack=function(t,e,i,r,n,o){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,i,r,n,o)},eo.prototype.emplace=function(t,e,i,r,n,o,a){var s=6*t;return this.int16[0+s]=e,this.int16[1+s]=i,this.int16[2+s]=r,this.int16[3+s]=n,this.int16[4+s]=o,this.int16[5+s]=a,t},eo);function eo(){$n.apply(this,arguments)}to.prototype.bytesPerElement=12,kr(\"StructArrayLayout2i2i2i12\",to);var io,ro=(no.__proto__=io=_n,((no.prototype=Object.create(io&&io.prototype)).constructor=no).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},no.prototype.emplaceBack=function(t,e,i,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,i,r)},no.prototype.emplace=function(t,e,i,r,n){var o=12*t,a=3*t;return this.uint8[0+o]=e,this.uint8[1+o]=i,this.float32[1+a]=r,this.float32[2+a]=n,t},no);function no(){io.apply(this,arguments)}ro.prototype.bytesPerElement=12,kr(\"StructArrayLayout2ub2f12\",ro);var oo,ao=(so.__proto__=oo=_n,((so.prototype=Object.create(oo&&oo.prototype)).constructor=so).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},so.prototype.emplaceBack=function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g){var y=this.length;return this.resize(y+1),this.emplace(y,t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g)},so.prototype.emplace=function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g,y){var v=24*t,_=12*t,x=48*t;return this.int16[0+v]=e,this.int16[1+v]=i,this.uint16[2+v]=r,this.uint16[3+v]=n,this.uint32[2+_]=o,this.uint32[3+_]=a,this.uint32[4+_]=s,this.uint16[10+v]=l,this.uint16[11+v]=u,this.uint16[12+v]=c,this.float32[7+_]=p,this.float32[8+_]=h,this.uint8[36+x]=d,this.uint8[37+x]=f,this.uint8[38+x]=m,this.uint32[10+_]=g,this.int16[22+v]=y,t},so);function so(){oo.apply(this,arguments)}ao.prototype.bytesPerElement=48,kr(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",ao);var lo,uo=(co.__proto__=lo=_n,((co.prototype=Object.create(lo&&lo.prototype)).constructor=co).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},co.prototype.emplaceBack=function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g,y,v,_,x,b,w,S,T,E){var I=this.length;return this.resize(I+1),this.emplace(I,t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g,y,v,_,x,b,w,S,T,E)},co.prototype.emplace=function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g,y,v,_,x,b,w,S,T,E,I){var C=30*t,A=15*t;return this.int16[0+C]=e,this.int16[1+C]=i,this.int16[2+C]=r,this.int16[3+C]=n,this.int16[4+C]=o,this.int16[5+C]=a,this.int16[6+C]=s,this.int16[7+C]=l,this.uint16[8+C]=u,this.uint16[9+C]=c,this.uint16[10+C]=p,this.uint16[11+C]=h,this.uint16[12+C]=d,this.uint16[13+C]=f,this.uint16[14+C]=m,this.uint16[15+C]=g,this.uint16[16+C]=y,this.uint16[17+C]=v,this.uint16[18+C]=_,this.uint16[19+C]=x,this.uint16[20+C]=b,this.uint16[21+C]=w,this.uint32[11+A]=S,this.float32[12+A]=T,this.float32[13+A]=E,this.float32[14+A]=I,t},co);function co(){lo.apply(this,arguments)}uo.prototype.bytesPerElement=60,kr(\"StructArrayLayout8i14ui1ul3f60\",uo);var po,ho=(fo.__proto__=po=_n,((fo.prototype=Object.create(po&&po.prototype)).constructor=fo).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},fo.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},fo.prototype.emplace=function(t,e){var i=+t;return this.float32[0+i]=e,t},fo);function fo(){po.apply(this,arguments)}ho.prototype.bytesPerElement=4,kr(\"StructArrayLayout1f4\",ho);var mo,go=(yo.__proto__=mo=_n,((yo.prototype=Object.create(mo&&mo.prototype)).constructor=yo).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},yo.prototype.emplaceBack=function(t,e,i){var r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)},yo.prototype.emplace=function(t,e,i,r){var n=3*t;return this.int16[0+n]=e,this.int16[1+n]=i,this.int16[2+n]=r,t},yo);function yo(){mo.apply(this,arguments)}go.prototype.bytesPerElement=6,kr(\"StructArrayLayout3i6\",go);var vo,_o=(xo.__proto__=vo=_n,((xo.prototype=Object.create(vo&&vo.prototype)).constructor=xo).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},xo.prototype.emplaceBack=function(t,e,i){var r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)},xo.prototype.emplace=function(t,e,i,r){var n=2*t,o=4*t;return this.uint32[0+n]=e,this.uint16[2+o]=i,this.uint16[3+o]=r,t},xo);function xo(){vo.apply(this,arguments)}_o.prototype.bytesPerElement=8,kr(\"StructArrayLayout1ul2ui8\",_o);var bo,wo=(So.__proto__=bo=_n,((So.prototype=Object.create(bo&&bo.prototype)).constructor=So).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},So.prototype.emplaceBack=function(t,e,i){var r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)},So.prototype.emplace=function(t,e,i,r){var n=3*t;return this.uint16[0+n]=e,this.uint16[1+n]=i,this.uint16[2+n]=r,t},So);function So(){bo.apply(this,arguments)}wo.prototype.bytesPerElement=6,kr(\"StructArrayLayout3ui6\",wo);var To,Eo=(Io.__proto__=To=_n,((Io.prototype=Object.create(To&&To.prototype)).constructor=Io).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},Io.prototype.emplaceBack=function(t,e){var i=this.length;return this.resize(i+1),this.emplace(i,t,e)},Io.prototype.emplace=function(t,e,i){var r=2*t;return this.uint16[0+r]=e,this.uint16[1+r]=i,t},Io);function Io(){To.apply(this,arguments)}Eo.prototype.bytesPerElement=4,kr(\"StructArrayLayout2ui4\",Eo);var Co,Ao=(ko.__proto__=Co=_n,((ko.prototype=Object.create(Co&&Co.prototype)).constructor=ko).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},ko.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},ko.prototype.emplace=function(t,e){var i=+t;return this.uint16[0+i]=e,t},ko);function ko(){Co.apply(this,arguments)}Ao.prototype.bytesPerElement=2,kr(\"StructArrayLayout1ui2\",Ao);var Po,Mo=(Lo.__proto__=Po=_n,((Lo.prototype=Object.create(Po&&Po.prototype)).constructor=Lo).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},Lo.prototype.emplaceBack=function(t,e){var i=this.length;return this.resize(i+1),this.emplace(i,t,e)},Lo.prototype.emplace=function(t,e,i){var r=2*t;return this.float32[0+r]=e,this.float32[1+r]=i,t},Lo);function Lo(){Po.apply(this,arguments)}Mo.prototype.bytesPerElement=8,kr(\"StructArrayLayout2f8\",Mo);var Do,Oo=(zo.__proto__=Do=_n,((zo.prototype=Object.create(Do&&Do.prototype)).constructor=zo).prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},zo.prototype.emplaceBack=function(t,e,i,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,i,r)},zo.prototype.emplace=function(t,e,i,r,n){var o=4*t;return this.float32[0+o]=e,this.float32[1+o]=i,this.float32[2+o]=r,this.float32[3+o]=n,t},zo);function zo(){Do.apply(this,arguments)}Oo.prototype.bytesPerElement=16,kr(\"StructArrayLayout4f16\",Oo);var Ro=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},radius:{configurable:!0},signedDistanceFromAnchor:{configurable:!0},anchorPoint:{configurable:!0}};return i.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},i.anchorPointX.set=function(t){this._structArray.int16[this._pos2+0]=t},i.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},i.anchorPointY.set=function(t){this._structArray.int16[this._pos2+1]=t},i.x1.get=function(){return this._structArray.int16[this._pos2+2]},i.x1.set=function(t){this._structArray.int16[this._pos2+2]=t},i.y1.get=function(){return this._structArray.int16[this._pos2+3]},i.y1.set=function(t){this._structArray.int16[this._pos2+3]=t},i.x2.get=function(){return this._structArray.int16[this._pos2+4]},i.x2.set=function(t){this._structArray.int16[this._pos2+4]=t},i.y2.get=function(){return this._structArray.int16[this._pos2+5]},i.y2.set=function(t){this._structArray.int16[this._pos2+5]=t},i.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},i.featureIndex.set=function(t){this._structArray.uint32[this._pos4+3]=t},i.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},i.sourceLayerIndex.set=function(t){this._structArray.uint16[this._pos2+8]=t},i.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},i.bucketIndex.set=function(t){this._structArray.uint16[this._pos2+9]=t},i.radius.get=function(){return this._structArray.int16[this._pos2+10]},i.radius.set=function(t){this._structArray.int16[this._pos2+10]=t},i.signedDistanceFromAnchor.get=function(){return this._structArray.int16[this._pos2+11]},i.signedDistanceFromAnchor.set=function(t){this._structArray.int16[this._pos2+11]=t},i.anchorPoint.get=function(){return new ct(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,i),e}(vn);Ro.prototype.size=24;var No,Bo=((No=Jn)&&(Fo.__proto__=No),((Fo.prototype=Object.create(No&&No.prototype)).constructor=Fo).prototype.get=function(t){return new Ro(this,t)},Fo);function Fo(){No.apply(this,arguments)}kr(\"CollisionBoxArray\",Bo);var Uo=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return i.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},i.anchorX.set=function(t){this._structArray.int16[this._pos2+0]=t},i.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},i.anchorY.set=function(t){this._structArray.int16[this._pos2+1]=t},i.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},i.glyphStartIndex.set=function(t){this._structArray.uint16[this._pos2+2]=t},i.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},i.numGlyphs.set=function(t){this._structArray.uint16[this._pos2+3]=t},i.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},i.vertexStartIndex.set=function(t){this._structArray.uint32[this._pos4+2]=t},i.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},i.lineStartIndex.set=function(t){this._structArray.uint32[this._pos4+3]=t},i.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},i.lineLength.set=function(t){this._structArray.uint32[this._pos4+4]=t},i.segment.get=function(){return this._structArray.uint16[this._pos2+10]},i.segment.set=function(t){this._structArray.uint16[this._pos2+10]=t},i.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},i.lowerSize.set=function(t){this._structArray.uint16[this._pos2+11]=t},i.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},i.upperSize.set=function(t){this._structArray.uint16[this._pos2+12]=t},i.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},i.lineOffsetX.set=function(t){this._structArray.float32[this._pos4+7]=t},i.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},i.lineOffsetY.set=function(t){this._structArray.float32[this._pos4+8]=t},i.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},i.writingMode.set=function(t){this._structArray.uint8[this._pos1+36]=t},i.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},i.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},i.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},i.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},i.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},i.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},i.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},i.associatedIconIndex.set=function(t){this._structArray.int16[this._pos2+22]=t},Object.defineProperties(e.prototype,i),e}(vn);Uo.prototype.size=48;var jo,qo=((jo=ao)&&(Vo.__proto__=jo),((Vo.prototype=Object.create(jo&&jo.prototype)).constructor=Vo).prototype.get=function(t){return new Uo(this,t)},Vo);function Vo(){jo.apply(this,arguments)}kr(\"PlacedSymbolArray\",qo);var Go=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0}};return i.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},i.anchorX.set=function(t){this._structArray.int16[this._pos2+0]=t},i.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},i.anchorY.set=function(t){this._structArray.int16[this._pos2+1]=t},i.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},i.rightJustifiedTextSymbolIndex.set=function(t){this._structArray.int16[this._pos2+2]=t},i.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},i.centerJustifiedTextSymbolIndex.set=function(t){this._structArray.int16[this._pos2+3]=t},i.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},i.leftJustifiedTextSymbolIndex.set=function(t){this._structArray.int16[this._pos2+4]=t},i.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},i.verticalPlacedTextSymbolIndex.set=function(t){this._structArray.int16[this._pos2+5]=t},i.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},i.placedIconSymbolIndex.set=function(t){this._structArray.int16[this._pos2+6]=t},i.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},i.verticalPlacedIconSymbolIndex.set=function(t){this._structArray.int16[this._pos2+7]=t},i.key.get=function(){return this._structArray.uint16[this._pos2+8]},i.key.set=function(t){this._structArray.uint16[this._pos2+8]=t},i.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},i.textBoxStartIndex.set=function(t){this._structArray.uint16[this._pos2+9]=t},i.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},i.textBoxEndIndex.set=function(t){this._structArray.uint16[this._pos2+10]=t},i.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},i.verticalTextBoxStartIndex.set=function(t){this._structArray.uint16[this._pos2+11]=t},i.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},i.verticalTextBoxEndIndex.set=function(t){this._structArray.uint16[this._pos2+12]=t},i.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},i.iconBoxStartIndex.set=function(t){this._structArray.uint16[this._pos2+13]=t},i.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},i.iconBoxEndIndex.set=function(t){this._structArray.uint16[this._pos2+14]=t},i.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},i.verticalIconBoxStartIndex.set=function(t){this._structArray.uint16[this._pos2+15]=t},i.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},i.verticalIconBoxEndIndex.set=function(t){this._structArray.uint16[this._pos2+16]=t},i.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},i.featureIndex.set=function(t){this._structArray.uint16[this._pos2+17]=t},i.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},i.numHorizontalGlyphVertices.set=function(t){this._structArray.uint16[this._pos2+18]=t},i.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},i.numVerticalGlyphVertices.set=function(t){this._structArray.uint16[this._pos2+19]=t},i.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},i.numIconVertices.set=function(t){this._structArray.uint16[this._pos2+20]=t},i.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},i.numVerticalIconVertices.set=function(t){this._structArray.uint16[this._pos2+21]=t},i.crossTileID.get=function(){return this._structArray.uint32[this._pos4+11]},i.crossTileID.set=function(t){this._structArray.uint32[this._pos4+11]=t},i.textBoxScale.get=function(){return this._structArray.float32[this._pos4+12]},i.textBoxScale.set=function(t){this._structArray.float32[this._pos4+12]=t},i.textOffset0.get=function(){return this._structArray.float32[this._pos4+13]},i.textOffset0.set=function(t){this._structArray.float32[this._pos4+13]=t},i.textOffset1.get=function(){return this._structArray.float32[this._pos4+14]},i.textOffset1.set=function(t){this._structArray.float32[this._pos4+14]=t},Object.defineProperties(e.prototype,i),e}(vn);Go.prototype.size=60;var Zo,Ho=((Zo=uo)&&(Ko.__proto__=Zo),((Ko.prototype=Object.create(Zo&&Zo.prototype)).constructor=Ko).prototype.get=function(t){return new Go(this,t)},Ko);function Ko(){Zo.apply(this,arguments)}kr(\"SymbolInstanceArray\",Ho);var Wo=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={offsetX:{configurable:!0}};return i.offsetX.get=function(){return this._structArray.float32[this._pos4+0]},i.offsetX.set=function(t){this._structArray.float32[this._pos4+0]=t},Object.defineProperties(e.prototype,i),e}(vn);Wo.prototype.size=4;var Xo,Yo=((Xo=ho)&&(Jo.__proto__=Xo),((Jo.prototype=Object.create(Xo&&Xo.prototype)).constructor=Jo).prototype.getoffsetX=function(t){return this.float32[+t+0]},Jo.prototype.get=function(t){return new Wo(this,t)},Jo);function Jo(){Xo.apply(this,arguments)}kr(\"GlyphOffsetArray\",Yo);var Qo=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={x:{configurable:!0},y:{configurable:!0},tileUnitDistanceFromAnchor:{configurable:!0}};return i.x.get=function(){return this._structArray.int16[this._pos2+0]},i.x.set=function(t){this._structArray.int16[this._pos2+0]=t},i.y.get=function(){return this._structArray.int16[this._pos2+1]},i.y.set=function(t){this._structArray.int16[this._pos2+1]=t},i.tileUnitDistanceFromAnchor.get=function(){return this._structArray.int16[this._pos2+2]},i.tileUnitDistanceFromAnchor.set=function(t){this._structArray.int16[this._pos2+2]=t},Object.defineProperties(e.prototype,i),e}(vn);Qo.prototype.size=6;var $o,ta=(($o=go)&&(ea.__proto__=$o),((ea.prototype=Object.create($o&&$o.prototype)).constructor=ea).prototype.getx=function(t){return this.int16[3*t+0]},ea.prototype.gety=function(t){return this.int16[3*t+1]},ea.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},ea.prototype.get=function(t){return new Qo(this,t)},ea);function ea(){$o.apply(this,arguments)}kr(\"SymbolLineVertexArray\",ta);var ia=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return i.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},i.featureIndex.set=function(t){this._structArray.uint32[this._pos4+0]=t},i.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},i.sourceLayerIndex.set=function(t){this._structArray.uint16[this._pos2+2]=t},i.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},i.bucketIndex.set=function(t){this._structArray.uint16[this._pos2+3]=t},Object.defineProperties(e.prototype,i),e}(vn);ia.prototype.size=8;var ra,na=((ra=_o)&&(oa.__proto__=ra),((oa.prototype=Object.create(ra&&ra.prototype)).constructor=oa).prototype.get=function(t){return new ia(this,t)},oa);function oa(){ra.apply(this,arguments)}function aa(t){void 0===t&&(t=[]),this.segments=t}kr(\"FeatureIndexArray\",na);var sa=Tn([{name:\"a_pos\",components:2,type:\"Int16\"}],4).members;function la(t,e){return 256*(t=l(Math.floor(t),0,255))+l(Math.floor(e),0,255)}aa.prototype.prepareSegment=function(t,e,i,r){var n=this.segments[this.segments.length-1];return aa.MAX_VERTEX_ARRAY_LENGTH<t&&pt(\"Max vertices per segment is \"+aa.MAX_VERTEX_ARRAY_LENGTH+\": bucket requested \"+t),(!n||n.vertexLength+t>aa.MAX_VERTEX_ARRAY_LENGTH||n.sortKey!==r)&&(n={vertexOffset:e.length,primitiveOffset:i.length,vertexLength:0,primitiveLength:0},void 0!==r&&(n.sortKey=r),this.segments.push(n)),n},aa.prototype.get=function(){return this.segments},aa.prototype.destroy=function(){for(var t=0,e=this.segments;t<e.length;t+=1){var i=e[t];for(var r in i.vaos)i.vaos[r].destroy()}},aa.simpleSegment=function(t,e,i,r){return new aa([{vertexOffset:t,primitiveOffset:e,vertexLength:i,primitiveLength:r,vaos:{},sortKey:0}])},aa.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,kr(\"SegmentVector\",aa);var ua=e(function(t){t.exports=function(t,e){var i,r,n,o,a,s,l,u;for(i=3&t.length,r=t.length-i,n=e,a=3432918353,s=461845907,u=0;u<r;)l=255&t.charCodeAt(u)|(255&t.charCodeAt(++u))<<8|(255&t.charCodeAt(++u))<<16|(255&t.charCodeAt(++u))<<24,++u,n=27492+(65535&(o=5*(65535&(n=(n^=l=(65535&(l=(l=(65535&l)*a+(((l>>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|n>>>19))+((5*(n>>>16)&65535)<<16)&4294967295))+((58964+(o>>>16)&65535)<<16);switch(l=0,i){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:n^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*a+(((l>>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return n^=t.length,n=2246822507*(65535&(n^=n>>>16))+((2246822507*(n>>>16)&65535)<<16)&4294967295,n=3266489909*(65535&(n^=n>>>13))+((3266489909*(n>>>16)&65535)<<16)&4294967295,(n^=n>>>16)>>>0}}),ca=e(function(t){t.exports=function(t,e){for(var i,r=t.length,n=e^r,o=0;4<=r;)i=1540483477*(65535&(i=255&t.charCodeAt(o)|(255&t.charCodeAt(++o))<<8|(255&t.charCodeAt(++o))<<16|(255&t.charCodeAt(++o))<<24))+((1540483477*(i>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(i=1540483477*(65535&(i^=i>>>24))+((1540483477*(i>>>16)&65535)<<16)),r-=4,++o;switch(r){case 3:n^=(255&t.charCodeAt(o+2))<<16;case 2:n^=(255&t.charCodeAt(o+1))<<8;case 1:n=1540483477*(65535&(n^=255&t.charCodeAt(o)))+((1540483477*(n>>>16)&65535)<<16)}return n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16),(n^=n>>>15)>>>0}}),pa=ua,ha=ua,da=ca;function fa(){this.ids=[],this.positions=[],this.indexed=!1}pa.murmur3=ha,pa.murmur2=da,fa.prototype.add=function(t,e,i,r){this.ids.push(ga(t)),this.positions.push(e,i,r)},fa.prototype.getPositions=function(t){for(var e=ga(t),i=0,r=this.ids.length-1;i<r;){var n=i+r>>1;this.ids[n]>=e?r=n:i=1+n}for(var o=[];this.ids[i]===e;){var a=this.positions[3*i],s=this.positions[3*i+1],l=this.positions[3*i+2];o.push({index:a,start:s,end:l}),i++}return o},fa.serialize=function(t,e){var i=new Float64Array(t.ids),r=new Uint32Array(t.positions);return function t(e,i,r,n){if(!(n<=r)){for(var o=e[r+n>>1],a=r-1,s=n+1;;){for(;e[++a]<o;);for(;e[--s]>o;);if(s<=a)break;ya(e,a,s),ya(i,3*a,3*s),ya(i,3*a+1,3*s+1),ya(i,3*a+2,3*s+2)}t(e,i,r,s),t(e,i,s+1,n)}}(i,r,0,i.length-1),e&&e.push(i.buffer,r.buffer),{ids:i,positions:r}},fa.deserialize=function(t){var e=new fa;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e};var ma=Math.pow(2,53)-1;function ga(t){var e=+t;return!isNaN(e)&&e<=ma?e:pa(String(t))}function ya(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function va(t,e){this.gl=t.gl,this.location=e}kr(\"FeaturePositionMap\",fa);var _a,xa,ba,wa,Sa,Ta,Ea,Ia=(Ua.__proto__=Ea=va,((Ua.prototype=Object.create(Ea&&Ea.prototype)).constructor=Ua).prototype.set=function(t){this.current!==t&&(this.current=t,this.gl.uniform1i(this.location,t))},Ua),Ca=(Fa.__proto__=Ta=va,((Fa.prototype=Object.create(Ta&&Ta.prototype)).constructor=Fa).prototype.set=function(t){this.current!==t&&(this.current=t,this.gl.uniform1f(this.location,t))},Fa),Aa=(Ba.__proto__=Sa=va,((Ba.prototype=Object.create(Sa&&Sa.prototype)).constructor=Ba).prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]||(this.current=t,this.gl.uniform2f(this.location,t[0],t[1]))},Ba),ka=(Na.__proto__=wa=va,((Na.prototype=Object.create(wa&&wa.prototype)).constructor=Na).prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]||(this.current=t,this.gl.uniform3f(this.location,t[0],t[1],t[2]))},Na),Pa=(Ra.__proto__=ba=va,((Ra.prototype=Object.create(ba&&ba.prototype)).constructor=Ra).prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]&&t[3]===this.current[3]||(this.current=t,this.gl.uniform4f(this.location,t[0],t[1],t[2],t[3]))},Ra),Ma=(za.__proto__=xa=va,((za.prototype=Object.create(xa&&xa.prototype)).constructor=za).prototype.set=function(t){t.r===this.current.r&&t.g===this.current.g&&t.b===this.current.b&&t.a===this.current.a||(this.current=t,this.gl.uniform4f(this.location,t.r,t.g,t.b,t.a))},za),La=new Float32Array(16),Da=(Oa.__proto__=_a=va,((Oa.prototype=Object.create(_a&&_a.prototype)).constructor=Oa).prototype.set=function(t){if(t[12]!==this.current[12]||t[0]!==this.current[0])return this.current=t,void this.gl.uniformMatrix4fv(this.location,!1,t);for(var e=1;e<16;e++)if(t[e]!==this.current[e]){this.current=t,this.gl.uniformMatrix4fv(this.location,!1,t);break}},Oa);function Oa(t,e){_a.call(this,t,e),this.current=La}function za(t,e){xa.call(this,t,e),this.current=le.transparent}function Ra(t,e){ba.call(this,t,e),this.current=[0,0,0,0]}function Na(t,e){wa.call(this,t,e),this.current=[0,0,0]}function Ba(t,e){Sa.call(this,t,e),this.current=[0,0]}function Fa(t,e){Ta.call(this,t,e),this.current=0}function Ua(t,e){Ea.call(this,t,e),this.current=0}function ja(t){return[la(255*t.r,255*t.g),la(255*t.b,255*t.a)]}function qa(t,e,i){this.value=t,this.uniformNames=e.map(function(t){return\"u_\"+t}),this.type=i}function Va(t,e){this.uniformNames=e.map(function(t){return\"u_\"+t}),this.patternFrom=null,this.patternTo=null}function Ga(t,e,i,r){this.expression=t,this.type=i,this.maxValue=0,this.paintVertexAttributes=e.map(function(t){return{name:\"a_\"+t,type:\"Float32\",components:\"color\"===i?2:1,offset:0}}),this.paintVertexArray=new r}function Za(t,e,i,r,n,o){this.expression=t,this.uniformNames=e.map(function(t){return\"u_\"+t+\"_t\"}),this.type=i,this.useIntegerZoom=r,this.zoom=n,this.maxValue=0,this.paintVertexAttributes=e.map(function(t){return{name:\"a_\"+t,type:\"Float32\",components:\"color\"===i?4:2,offset:0}}),this.paintVertexArray=new o}function Ha(t,e,i,r,n,o,a){this.expression=t,this.type=i,this.useIntegerZoom=r,this.zoom=n,this.layerId=a,this.paintVertexAttributes=e.map(function(t){return{name:\"a_\"+t,type:\"Uint16\",components:4,offset:0}}),this.zoomInPaintVertexArray=new o,this.zoomOutPaintVertexArray=new o}function Ka(t,e,i,r){this.binders={},this.layoutAttributes=r,this._buffers=[];var n,o,a=[];for(var s in t.paint._values)if(i(s)){var l=t.paint.get(s);if(l instanceof ln&&Ti(l.property.specification)){var u=(n=s,o=t.type,{\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern_to\",\"pattern_from\"],\"fill-pattern\":[\"pattern_to\",\"pattern_from\"],\"fill-extrusion-pattern\":[\"pattern_to\",\"pattern_from\"]}[n]||[n.replace(o+\"-\",\"\").replace(/-/g,\"_\")]),c=l.value,p=l.property.specification.type,h=l.property.useIntegerZoom,d=l.property.specification[\"property-type\"],f=\"cross-faded\"===d||\"cross-faded-data-driven\"===d;if(\"constant\"===c.kind)this.binders[s]=f?new Va(c.value,u):new qa(c.value,u,p),a.push(\"/u_\"+s);else if(\"source\"===c.kind||f){var m=Xa(s,p,\"source\");this.binders[s]=f?new Ha(c,u,p,h,e,m,t.id):new Ga(c,u,p,m),a.push(\"/a_\"+s)}else{var g=Xa(s,p,\"composite\");this.binders[s]=new Za(c,u,p,h,e,g),a.push(\"/z_\"+s)}}}this.cacheKey=a.sort().join(\"\")}function Wa(t,e,i,r){void 0===r&&(r=function(){return!0}),this.programConfigurations={};for(var n=0,o=e;n<o.length;n+=1){var a=o[n];this.programConfigurations[a.id]=new Ka(a,i,r,t)}this.needsUpload=!1,this._featureMap=new fa,this._bufferOffset=0}function Xa(t,e,i){var r={color:{source:Mo,composite:Oo},number:{source:ho,composite:Mo}},n={\"line-pattern\":{source:Fn,composite:Fn},\"fill-pattern\":{source:Fn,composite:Fn},\"fill-extrusion-pattern\":{source:Fn,composite:Fn}}[t];return n&&n[i]||r[e][i]}qa.prototype.setUniform=function(t,e,i){t.set(i.constantOr(this.value))},qa.prototype.getBinding=function(t,e){return new(\"color\"===this.type?Ma:Ca)(t,e)},Va.prototype.setConstantPatternPositions=function(t,e){this.patternTo=t.tlbr,this.patternFrom=e.tlbr},Va.prototype.setUniform=function(t,e,i,r){var n=\"u_pattern_to\"===r?this.patternTo:\"u_pattern_from\"===r?this.patternFrom:null;n&&t.set(n)},Va.prototype.getBinding=function(t,e){return new Pa(t,e)},Ga.prototype.populatePaintArray=function(t,e,i,r){var n=this.paintVertexArray.length,o=this.expression.evaluate(new Qr(0),e,{},[],r);this.paintVertexArray.resize(t),this._setPaintValue(n,t,o)},Ga.prototype.updatePaintArray=function(t,e,i,r){var n=this.expression.evaluate({zoom:0},i,r);this._setPaintValue(t,e,n)},Ga.prototype._setPaintValue=function(t,e,i){if(\"color\"===this.type)for(var r=ja(i),n=t;n<e;n++)this.paintVertexArray.emplace(n,r[0],r[1]);else{for(var o=t;o<e;o++)this.paintVertexArray.emplace(o,i);this.maxValue=Math.max(this.maxValue,Math.abs(i))}},Ga.prototype.upload=function(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Ga.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},Za.prototype.populatePaintArray=function(t,e,i,r){var n=this.expression.evaluate(new Qr(this.zoom),e,{},[],r),o=this.expression.evaluate(new Qr(this.zoom+1),e,{},[],r),a=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(a,t,n,o)},Za.prototype.updatePaintArray=function(t,e,i,r){var n=this.expression.evaluate({zoom:this.zoom},i,r),o=this.expression.evaluate({zoom:this.zoom+1},i,r);this._setPaintValue(t,e,n,o)},Za.prototype._setPaintValue=function(t,e,i,r){if(\"color\"===this.type)for(var n=ja(i),o=ja(r),a=t;a<e;a++)this.paintVertexArray.emplace(a,n[0],n[1],o[0],o[1]);else{for(var s=t;s<e;s++)this.paintVertexArray.emplace(s,i,r);this.maxValue=Math.max(this.maxValue,Math.abs(i),Math.abs(r))}},Za.prototype.upload=function(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Za.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},Za.prototype.setUniform=function(t,e){var i=this.useIntegerZoom?Math.floor(e.zoom):e.zoom,r=l(this.expression.interpolationFactor(i,this.zoom,this.zoom+1),0,1);t.set(r)},Za.prototype.getBinding=function(t,e){return new Ca(t,e)},Ha.prototype.populatePaintArray=function(t,e,i){var r=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(t),this.zoomOutPaintVertexArray.resize(t),this._setPaintValues(r,t,e.patterns&&e.patterns[this.layerId],i)},Ha.prototype.updatePaintArray=function(t,e,i,r,n){this._setPaintValues(t,e,i.patterns&&i.patterns[this.layerId],n)},Ha.prototype._setPaintValues=function(t,e,i,r){if(r&&i){var n=i.min,o=i.mid,a=i.max,s=r[n],l=r[o],u=r[a];if(s&&l&&u)for(var c=t;c<e;c++)this.zoomInPaintVertexArray.emplace(c,l.tl[0],l.tl[1],l.br[0],l.br[1],s.tl[0],s.tl[1],s.br[0],s.br[1]),this.zoomOutPaintVertexArray.emplace(c,l.tl[0],l.tl[1],l.br[0],l.br[1],u.tl[0],u.tl[1],u.br[0],u.br[1])}},Ha.prototype.upload=function(t){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=t.createVertexBuffer(this.zoomInPaintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=t.createVertexBuffer(this.zoomOutPaintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Ha.prototype.destroy=function(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()},Ka.prototype.getMaxValue=function(t){var e=this.binders[t];return e instanceof Ga||e instanceof Za?e.maxValue:0},Ka.prototype.populatePaintArrays=function(t,e,i,r){for(var n in this.binders){var o=this.binders[n];(o instanceof Ga||o instanceof Za||o instanceof Ha)&&o.populatePaintArray(t,e,i,r)}},Ka.prototype.setConstantPatternPositions=function(t,e){for(var i in this.binders){var r=this.binders[i];r instanceof Va&&r.setConstantPatternPositions(t,e)}},Ka.prototype.updatePaintArrays=function(t,e,i,r,n){var o=!1;for(var a in t)for(var s=0,l=e.getPositions(a);s<l.length;s+=1){var u=l[s],c=i.feature(u.index);for(var p in this.binders){var h=this.binders[p];if((h instanceof Ga||h instanceof Za||h instanceof Ha)&&!0===h.expression.isStateDependent){var d=r.paint.get(p);h.expression=d.value,h.updatePaintArray(u.start,u.end,c,t[a],n),o=!0}}}return o},Ka.prototype.defines=function(){var t=[];for(var e in this.binders){var i=this.binders[e];(i instanceof qa||i instanceof Va)&&t.push.apply(t,i.uniformNames.map(function(t){return\"#define HAS_UNIFORM_\"+t}))}return t},Ka.prototype.getPaintVertexBuffers=function(){return this._buffers},Ka.prototype.getUniforms=function(t,e){var i=[];for(var r in this.binders){var n=this.binders[r];if(n instanceof qa||n instanceof Va||n instanceof Za)for(var o=0,a=n.uniformNames;o<a.length;o+=1){var s=a[o];if(e[s]){var l=n.getBinding(t,e[s]);i.push({name:s,property:r,binding:l})}}}return i},Ka.prototype.setUniforms=function(t,e,i,r){for(var n=0,o=e;n<o.length;n+=1){var a=o[n],s=a.name,l=a.property,u=a.binding;this.binders[l].setUniform(u,r,i.get(l),s)}},Ka.prototype.updatePaintBuffers=function(t){for(var e in this._buffers=[],this.binders){var i=this.binders[e];if(t&&i instanceof Ha){var r=2===t.fromScale?i.zoomInPaintVertexBuffer:i.zoomOutPaintVertexBuffer;r&&this._buffers.push(r)}else(i instanceof Ga||i instanceof Za)&&i.paintVertexBuffer&&this._buffers.push(i.paintVertexBuffer)}},Ka.prototype.upload=function(t){for(var e in this.binders){var i=this.binders[e];(i instanceof Ga||i instanceof Za||i instanceof Ha)&&i.upload(t)}this.updatePaintBuffers()},Ka.prototype.destroy=function(){for(var t in this.binders){var e=this.binders[t];(e instanceof Ga||e instanceof Za||e instanceof Ha)&&e.destroy()}},Wa.prototype.populatePaintArrays=function(t,e,i,r,n){for(var o in this.programConfigurations)this.programConfigurations[o].populatePaintArrays(t,e,r,n);void 0!==e.id&&this._featureMap.add(e.id,i,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0},Wa.prototype.updatePaintArrays=function(t,e,i,r){for(var n=0,o=i;n<o.length;n+=1){var a=o[n];this.needsUpload=this.programConfigurations[a.id].updatePaintArrays(t,this._featureMap,e,a,r)||this.needsUpload}},Wa.prototype.get=function(t){return this.programConfigurations[t]},Wa.prototype.upload=function(t){if(this.needsUpload){for(var e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1}},Wa.prototype.destroy=function(){for(var t in this.programConfigurations)this.programConfigurations[t].destroy()},kr(\"ConstantBinder\",qa),kr(\"CrossFadedConstantBinder\",Va),kr(\"SourceExpressionBinder\",Ga),kr(\"CrossFadedCompositeBinder\",Ha),kr(\"CompositeExpressionBinder\",Za),kr(\"ProgramConfiguration\",Ka,{omit:[\"_buffers\"]}),kr(\"ProgramConfigurationSet\",Wa);var Ya=8192,Ja={min:-1*Math.pow(2,14),max:Math.pow(2,14)-1};function Qa(t){for(var e=Ya/t.extent,i=t.loadGeometry(),r=0;r<i.length;r++)for(var n=i[r],o=0;o<n.length;o++){var a=n[o];a.x=Math.round(a.x*e),a.y=Math.round(a.y*e),(a.x<Ja.min||a.x>Ja.max||a.y<Ja.min||a.y>Ja.max)&&(pt(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\"),a.x=l(a.x,Ja.min,Ja.max),a.y=l(a.y,Ja.min,Ja.max))}return i}function $a(t,e,i,r,n){t.emplaceBack(2*e+(r+1)/2,2*i+(n+1)/2)}function ts(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Cn,this.indexArray=new wo,this.segments=new aa,this.programConfigurations=new Wa(sa,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter(function(t){return t.isStateDependent()}).map(function(t){return t.id})}function es(t,e){for(var i=0;i<t.length;i++)if(ls(e,t[i]))return!0;for(var r=0;r<e.length;r++)if(ls(t,e[r]))return!0;return!!ns(t,e)}function is(t,e){if(1===t.length)return ss(e,t[0]);for(var i=0;i<e.length;i++)for(var r=e[i],n=0;n<r.length;n++)if(ls(t,r[n]))return!0;for(var o=0;o<t.length;o++)if(ss(e,t[o]))return!0;for(var a=0;a<e.length;a++)if(ns(t,e[a]))return!0;return!1}function rs(t,e,i){if(1<t.length){if(ns(t,e))return 1;for(var r=0;r<e.length;r++)if(os(e[r],t,i))return 1}for(var n=0;n<t.length;n++)if(os(t[n],e,i))return 1}function ns(t,e){var i,r,n,o;if(0!==t.length&&0!==e.length)for(var a=0;a<t.length-1;a++)for(var s=t[a],l=t[a+1],u=0;u<e.length-1;u++)if(i=s,r=l,n=e[u],o=e[u+1],x(i,n,o)!==x(r,n,o)&&x(i,r,n)!==x(i,r,o))return 1}function os(t,e,i){var r=i*i;if(1===e.length)return t.distSqr(e[0])<r;for(var n=1;n<e.length;n++)if(as(t,e[n-1],e[n])<r)return 1}function as(t,e,i){var r=e.distSqr(i);if(0===r)return t.distSqr(e);var n=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/r;return n<0?t.distSqr(e):1<n?t.distSqr(i):t.distSqr(i.sub(e)._mult(n)._add(e))}function ss(t,e){for(var i,r,n,o=!1,a=0;a<t.length;a++)for(var s=0,l=(i=t[a]).length-1;s<i.length;l=s++)r=i[s],n=i[l],r.y>e.y!=n.y>e.y&&e.x<(n.x-r.x)*(e.y-r.y)/(n.y-r.y)+r.x&&(o=!o);return o}function ls(t,e){for(var i=!1,r=0,n=t.length-1;r<t.length;n=r++){var o=t[r],a=t[n];o.y>e.y!=a.y>e.y&&e.x<(a.x-o.x)*(e.y-o.y)/(a.y-o.y)+o.x&&(i=!i)}return i}function us(t,e,i){var r=i[0],n=i[2];if(!(t.x<r.x&&e.x<r.x||t.x>n.x&&e.x>n.x||t.y<r.y&&e.y<r.y||t.y>n.y&&e.y>n.y)){var o=x(t,e,i[0]);return o!==x(t,e,i[1])||o!==x(t,e,i[2])||o!==x(t,e,i[3])}}function cs(t,e,i){var r=e.paint.get(t).value;return\"constant\"===r.kind?r.value:i.programConfigurations.get(e.id).getMaxValue(t)}function ps(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function hs(t,e,i,r,n){if(!e[0]&&!e[1])return t;var o=ct.convert(e)._mult(n);\"viewport\"===i&&o._rotate(-r);for(var a=[],s=0;s<t.length;s++){var l=t[s];a.push(l.sub(o))}return a}ts.prototype.populate=function(t,e){var i=this.layers[0],r=[],n=null;\"circle\"===i.type&&(n=i.layout.get(\"circle-sort-key\"));for(var o=0,a=t;o<a.length;o+=1){var s=a[o],l=s.feature,u=s.id,c=s.index,p=s.sourceLayerIndex;if(this.layers[0]._featureFilter(new Qr(this.zoom),l)){var h=Qa(l),d=n?n.evaluate(l,{}):void 0,f={id:u,properties:l.properties,type:l.type,sourceLayerIndex:p,index:c,geometry:h,patterns:{},sortKey:d};r.push(f)}}n&&r.sort(function(t,e){return t.sortKey-e.sortKey});for(var m=0,g=r;m<g.length;m+=1){var y=g[m],v=y.geometry,_=y.index,x=y.sourceLayerIndex,b=t[_].feature;this.addFeature(y,v,_),e.featureIndex.insert(b,v,_,x,this.index)}},ts.prototype.update=function(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)},ts.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ts.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},ts.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,sa),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0},ts.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ts.prototype.addFeature=function(t,e,i){for(var r=0,n=e;r<n.length;r+=1)for(var o=0,a=n[r];o<a.length;o+=1){var s=a[o],l=s.x,u=s.y;if(!(l<0||Ya<=l||u<0||Ya<=u)){var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),p=c.vertexLength;$a(this.layoutVertexArray,l,u,-1,-1),$a(this.layoutVertexArray,l,u,1,-1),$a(this.layoutVertexArray,l,u,1,1),$a(this.layoutVertexArray,l,u,-1,1),this.indexArray.emplaceBack(p,p+1,p+2),this.indexArray.emplaceBack(p,p+3,p+2),c.vertexLength+=4,c.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,i,{})},kr(\"CircleBucket\",ts,{omit:[\"layers\"]});var ds,fs,ms=new yn({\"circle-sort-key\":new pn(Nt.layout_circle[\"circle-sort-key\"])}),gs={paint:new yn({\"circle-radius\":new pn(Nt.paint_circle[\"circle-radius\"]),\"circle-color\":new pn(Nt.paint_circle[\"circle-color\"]),\"circle-blur\":new pn(Nt.paint_circle[\"circle-blur\"]),\"circle-opacity\":new pn(Nt.paint_circle[\"circle-opacity\"]),\"circle-translate\":new cn(Nt.paint_circle[\"circle-translate\"]),\"circle-translate-anchor\":new cn(Nt.paint_circle[\"circle-translate-anchor\"]),\"circle-pitch-scale\":new cn(Nt.paint_circle[\"circle-pitch-scale\"]),\"circle-pitch-alignment\":new cn(Nt.paint_circle[\"circle-pitch-alignment\"]),\"circle-stroke-width\":new pn(Nt.paint_circle[\"circle-stroke-width\"]),\"circle-stroke-color\":new pn(Nt.paint_circle[\"circle-stroke-color\"]),\"circle-stroke-opacity\":new pn(Nt.paint_circle[\"circle-stroke-opacity\"])}),layout:ms},ys=\"undefined\"!=typeof Float32Array?Float32Array:Array;function vs(t,e,i){var r=e[0],n=e[1],o=e[2],a=e[3];return t[0]=i[0]*r+i[4]*n+i[8]*o+i[12]*a,t[1]=i[1]*r+i[5]*n+i[9]*o+i[13]*a,t[2]=i[2]*r+i[6]*n+i[10]*o+i[14]*a,t[3]=i[3]*r+i[7]*n+i[11]*o+i[15]*a,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,i=arguments.length;i--;)e+=t[i]*t[i];return Math.sqrt(e)}),ds=new ys(3),ys!=Float32Array&&(ds[0]=0,ds[1]=0,ds[2]=0),fs=new ys(4),ys!=Float32Array&&(fs[0]=0,fs[1]=0,fs[2]=0,fs[3]=0);var _s,xs,bs=(xs=new ys(2),ys!=Float32Array&&(xs[0]=0,xs[1]=0),ws.__proto__=_s=bn,((ws.prototype=Object.create(_s&&_s.prototype)).constructor=ws).prototype.createBucket=function(t){return new ts(t)},ws.prototype.queryRadius=function(t){var e=t;return cs(\"circle-radius\",this,e)+cs(\"circle-stroke-width\",this,e)+ps(this.paint.get(\"circle-translate\"))},ws.prototype.queryIntersectsFeature=function(t,e,i,r,n,o,a,s){for(var l=hs(t,this.paint.get(\"circle-translate\"),this.paint.get(\"circle-translate-anchor\"),o.angle,a),u=this.paint.get(\"circle-radius\").evaluate(e,i)+this.paint.get(\"circle-stroke-width\").evaluate(e,i),c=\"map\"===this.paint.get(\"circle-pitch-alignment\"),p=c?l:function(e){return l.map(function(t){return Ss(t,e)})}(s),h=c?u*a:u,d=0,f=r;d<f.length;d+=1)for(var m=0,g=f[d];m<g.length;m+=1){var y=g[m],v=c?y:Ss(y,s),_=h,x=vs([],[y.x,y.y,0,1],s);if(\"viewport\"===this.paint.get(\"circle-pitch-scale\")&&\"map\"===this.paint.get(\"circle-pitch-alignment\")?_*=x[3]/o.cameraToCenterDistance:\"map\"===this.paint.get(\"circle-pitch-scale\")&&\"viewport\"===this.paint.get(\"circle-pitch-alignment\")&&(_*=o.cameraToCenterDistance/x[3]),S=_,ls(b=p,w=v)||os(w,b,S))return!0}var b,w,S;return!1},ws);function ws(t){_s.call(this,t,gs)}function Ss(t,e){var i=vs([],[t.x,t.y,0,1],e);return new ct(i[0]/i[3],i[1]/i[3])}var Ts,Es=(Is.__proto__=Ts=ts,(Is.prototype=Object.create(Ts&&Ts.prototype)).constructor=Is);function Is(){Ts.apply(this,arguments)}function Cs(t,e,i,r){var n=e.width,o=e.height;if(r){if(r instanceof Uint8ClampedArray)r=new Uint8Array(r.buffer);else if(r.length!==n*o*i)throw new RangeError(\"mismatched image size\")}else r=new Uint8Array(n*o*i);return t.width=n,t.height=o,t.data=r,t}function As(t,e,i){var r=e.width,n=e.height;if(r!==t.width||n!==t.height){var o=Cs({},{width:r,height:n},i);ks(t,o,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,r),height:Math.min(t.height,n)},i),t.width=r,t.height=n,t.data=o.data}}function ks(t,e,i,r,n,o){if(0===n.width||0===n.height)return e;if(n.width>t.width||n.height>t.height||i.x>t.width-n.width||i.y>t.height-n.height)throw new RangeError(\"out of range source coordinates for image copy\");if(n.width>e.width||n.height>e.height||r.x>e.width-n.width||r.y>e.height-n.height)throw new RangeError(\"out of range destination coordinates for image copy\");for(var a=t.data,s=e.data,l=0;l<n.height;l++)for(var u=((i.y+l)*t.width+i.x)*o,c=((r.y+l)*e.width+r.x)*o,p=0;p<n.width*o;p++)s[c+p]=a[u+p];return e}kr(\"HeatmapBucket\",Es,{omit:[\"layers\"]});var Ps=function(t,e){Cs(this,t,1,e)};function Ms(t,e){Cs(this,t,4,e)}Ps.prototype.resize=function(t){As(this,t,1)},Ps.prototype.clone=function(){return new Ps({width:this.width,height:this.height},new Uint8Array(this.data))},Ps.copy=function(t,e,i,r,n){ks(t,e,i,r,n,1)},Ms.prototype.resize=function(t){As(this,t,4)},Ms.prototype.replace=function(t,e){e?this.data.set(t):t instanceof Uint8ClampedArray?this.data=new Uint8Array(t.buffer):this.data=t},Ms.prototype.clone=function(){return new Ms({width:this.width,height:this.height},new Uint8Array(this.data))},Ms.copy=function(t,e,i,r,n){ks(t,e,i,r,n,4)},kr(\"AlphaImage\",Ps),kr(\"RGBAImage\",Ms);var Ls={paint:new yn({\"heatmap-radius\":new pn(Nt.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new pn(Nt.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new cn(Nt.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new gn(Nt.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new cn(Nt.paint_heatmap[\"heatmap-opacity\"])})};function Ds(t,e){for(var i=new Uint8Array(1024),r={},n=0,o=0;n<256;n++,o+=4){r[e]=n/255;var a=t.evaluate(r);i[o+0]=Math.floor(255*a.r/a.a),i[o+1]=Math.floor(255*a.g/a.a),i[o+2]=Math.floor(255*a.b/a.a),i[o+3]=Math.floor(255*a.a)}return new Ms({width:256,height:1},i)}var Os,zs,Rs=(Vs.__proto__=zs=bn,((Vs.prototype=Object.create(zs&&zs.prototype)).constructor=Vs).prototype.createBucket=function(t){return new Es(t)},Vs.prototype._handleSpecialPaintPropertyUpdate=function(t){\"heatmap-color\"===t&&this._updateColorRamp()},Vs.prototype._updateColorRamp=function(){var t=this._transitionablePaint._values[\"heatmap-color\"].value.expression;this.colorRamp=Ds(t,\"heatmapDensity\"),this.colorRampTexture=null},Vs.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)},Vs.prototype.queryRadius=function(){return 0},Vs.prototype.queryIntersectsFeature=function(){return!1},Vs.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\"heatmap-opacity\")&&\"none\"!==this.visibility},Vs),Ns={paint:new yn({\"hillshade-illumination-direction\":new cn(Nt.paint_hillshade[\"hillshade-illumination-direction\"]),\"hillshade-illumination-anchor\":new cn(Nt.paint_hillshade[\"hillshade-illumination-anchor\"]),\"hillshade-exaggeration\":new cn(Nt.paint_hillshade[\"hillshade-exaggeration\"]),\"hillshade-shadow-color\":new cn(Nt.paint_hillshade[\"hillshade-shadow-color\"]),\"hillshade-highlight-color\":new cn(Nt.paint_hillshade[\"hillshade-highlight-color\"]),\"hillshade-accent-color\":new cn(Nt.paint_hillshade[\"hillshade-accent-color\"])})},Bs=(qs.__proto__=Os=bn,((qs.prototype=Object.create(Os&&Os.prototype)).constructor=qs).prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\"hillshade-exaggeration\")&&\"none\"!==this.visibility},qs),Fs=Tn([{name:\"a_pos\",components:2,type:\"Int16\"}],4).members,Us=Gs,js=Gs;function qs(t){Os.call(this,t,Ns)}function Vs(t){zs.call(this,t,Ls),this._updateColorRamp()}function Gs(t,e,i){i=i||2;var r,n,o,a,s,l,u,c=e&&e.length,p=c?e[0]*i:t.length,h=Zs(t,0,p,i,!0),d=[];if(!h||h.next===h.prev)return d;if(c&&(h=function(t,e,i,r){var n,o,a,s=[];for(n=0,o=e.length;n<o;n++)(a=Zs(t,e[n]*r,n<o-1?e[n+1]*r:t.length,r,!1))===a.next&&(a.steiner=!0),s.push(el(a));for(s.sort(Qs),n=0;n<s.length;n++)$s(s[n],i),i=Hs(i,i.next);return i}(t,e,h,i)),t.length>80*i){r=o=t[0],n=a=t[1];for(var f=i;f<p;f+=i)(s=t[f])<r&&(r=s),(l=t[f+1])<n&&(n=l),o<s&&(o=s),a<l&&(a=l);u=0!==(u=Math.max(o-r,a-n))?1/u:0}return Ks(h,d,i,r,n,u),d}function Zs(t,e,i,r,n){var o,a;if(n===0<dl(t,e,i,r))for(o=e;o<i;o+=r)a=cl(o,t[o],t[o+1],a);else for(o=i-r;e<=o;o-=r)a=cl(o,t[o],t[o+1],a);return a&&nl(a,a.next)&&(pl(a),a=a.next),a}function Hs(t,e){if(!t)return t;e=e||t;var i,r=t;do{if(i=!1,r.steiner||!nl(r,r.next)&&0!==rl(r.prev,r,r.next))r=r.next;else{if(pl(r),(r=e=r.prev)===r.next)break;i=!0}}while(i||r!==e);return e}function Ks(t,e,i,r,n,o,a){if(t){!a&&o&&function(t,e,i,r){for(var n=t;null===n.z&&(n.z=tl(n.x,n.y,e,i,r)),n.prevZ=n.prev,n.nextZ=n.next,(n=n.next)!==t;);n.prevZ.nextZ=null,n.prevZ=null,function(t){var e,i,r,n,o,a,s,l,u=1;do{for(i=t,o=t=null,a=0;i;){for(a++,r=i,e=s=0;e<u&&(s++,r=r.nextZ);e++);for(l=u;0<s||0<l&&r;)0!==s&&(0===l||!r||i.z<=r.z)?(i=(n=i).nextZ,s--):(r=(n=r).nextZ,l--),o?o.nextZ=n:t=n,n.prevZ=o,o=n;i=r}o.nextZ=null,u*=2}while(1<a)}(n)}(t,r,n,o);for(var s,l,u=t;t.prev!==t.next;)if(s=t.prev,l=t.next,o?Xs(t,r,n,o):Ws(t))e.push(s.i/i),e.push(t.i/i),e.push(l.i/i),pl(t),t=l.next,u=l.next;else if((t=l)===u){a?1===a?Ks(t=Ys(Hs(t),e,i),e,i,r,n,o,2):2===a&&Js(t,e,i,r,n,o):Ks(Hs(t),e,i,r,n,o,1);break}}}function Ws(t){var e=t.prev,i=t,r=t.next;if(!(0<=rl(e,i,r))){for(var n=t.next.next;n!==t.prev;){if(il(e.x,e.y,i.x,i.y,r.x,r.y,n.x,n.y)&&0<=rl(n.prev,n,n.next))return;n=n.next}return 1}}function Xs(t,e,i,r){var n=t.prev,o=t,a=t.next;if(!(0<=rl(n,o,a))){for(var s=n.x<o.x?n.x<a.x?n.x:a.x:o.x<a.x?o.x:a.x,l=n.y<o.y?n.y<a.y?n.y:a.y:o.y<a.y?o.y:a.y,u=n.x>o.x?n.x>a.x?n.x:a.x:o.x>a.x?o.x:a.x,c=n.y>o.y?n.y>a.y?n.y:a.y:o.y>a.y?o.y:a.y,p=tl(s,l,e,i,r),h=tl(u,c,e,i,r),d=t.prevZ,f=t.nextZ;d&&d.z>=p&&f&&f.z<=h;){if(d!==t.prev&&d!==t.next&&il(n.x,n.y,o.x,o.y,a.x,a.y,d.x,d.y)&&0<=rl(d.prev,d,d.next))return;if(d=d.prevZ,f!==t.prev&&f!==t.next&&il(n.x,n.y,o.x,o.y,a.x,a.y,f.x,f.y)&&0<=rl(f.prev,f,f.next))return;f=f.nextZ}for(;d&&d.z>=p;){if(d!==t.prev&&d!==t.next&&il(n.x,n.y,o.x,o.y,a.x,a.y,d.x,d.y)&&0<=rl(d.prev,d,d.next))return;d=d.prevZ}for(;f&&f.z<=h;){if(f!==t.prev&&f!==t.next&&il(n.x,n.y,o.x,o.y,a.x,a.y,f.x,f.y)&&0<=rl(f.prev,f,f.next))return;f=f.nextZ}return 1}}function Ys(t,e,i){var r=t;do{var n=r.prev,o=r.next.next;!nl(n,o)&&ol(n,r,r.next,o)&&ll(n,o)&&ll(o,n)&&(e.push(n.i/i),e.push(r.i/i),e.push(o.i/i),pl(r),pl(r.next),r=t=o),r=r.next}while(r!==t);return Hs(r)}function Js(t,e,i,r,n,o){var a,s,l=t;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&(s=u,(a=l).next.i!==s.i&&a.prev.i!==s.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&ol(i,i.next,t,e))return 1;i=i.next}while(i!==t)}(a,s)&&(ll(a,s)&&ll(s,a)&&function(t,e){for(var i=t,r=!1,n=(t.x+e.x)/2,o=(t.y+e.y)/2;i.y>o!=i.next.y>o&&i.next.y!==i.y&&n<(i.next.x-i.x)*(o-i.y)/(i.next.y-i.y)+i.x&&(r=!r),(i=i.next)!==t;);return r}(a,s)&&(rl(a.prev,a,s.prev)||rl(a,s.prev,s))||nl(a,s)&&0<rl(a.prev,a,a.next)&&0<rl(s.prev,s,s.next)))){var c=ul(l,u);return l=Hs(l,l.next),c=Hs(c,c.next),Ks(l,e,i,r,n,o),void Ks(c,e,i,r,n,o)}u=u.next}l=l.next}while(l!==t)}function Qs(t,e){return t.x-e.x}function $s(t,e){if(e=function(t,e){var i,r=e,n=t.x,o=t.y,a=-1/0;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){var s=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=n&&a<s){if((a=s)===n){if(o===r.y)return r;if(o===r.next.y)return r.next}i=r.x<r.next.x?r:r.next}}r=r.next}while(r!==e);if(!i)return null;if(n===a)return i;var l,u,c,p=i,h=i.x,d=i.y,f=1/0;for(r=i;n>=r.x&&r.x>=h&&n!==r.x&&il(o<d?n:a,o,h,d,o<d?a:n,o,r.x,r.y)&&(l=Math.abs(o-r.y)/(n-r.x),ll(r,t)&&(l<f||l===f&&(r.x>i.x||r.x===i.x&&(c=r,rl((u=i).prev,u,c.prev)<0&&rl(c.next,u,u.next)<0)))&&(i=r,f=l)),(r=r.next)!==p;);return i}(t,e)){var i=ul(e,t);Hs(e,e.next),Hs(i,i.next)}}function tl(t,e,i,r,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)*n)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*n)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function el(t){for(var e=t,i=t;(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),(e=e.next)!==t;);return i}function il(t,e,i,r,n,o,a,s){return 0<=(n-a)*(e-s)-(t-a)*(o-s)&&0<=(t-a)*(r-s)-(i-a)*(e-s)&&0<=(i-a)*(o-s)-(n-a)*(r-s)}function rl(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function nl(t,e){return t.x===e.x&&t.y===e.y}function ol(t,e,i,r){var n=sl(rl(t,e,i)),o=sl(rl(t,e,r)),a=sl(rl(i,r,t)),s=sl(rl(i,r,e));return n!==o&&a!==s||0===n&&al(t,i,e)||0===o&&al(t,r,e)||0===a&&al(i,t,r)||0===s&&al(i,e,r)}function al(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function sl(t){return 0<t?1:t<0?-1:0}function ll(t,e){return rl(t.prev,t,t.next)<0?0<=rl(t,e,t.next)&&0<=rl(t,t.prev,e):rl(t,e,t.prev)<0||rl(t,t.next,e)<0}function ul(t,e){var i=new hl(t.i,t.x,t.y),r=new hl(e.i,e.x,e.y),n=t.next,o=e.prev;return(t.next=e).prev=t,(i.next=n).prev=i,(r.next=i).prev=r,(o.next=r).prev=o,r}function cl(t,e,i,r){var n=new hl(t,e,i);return r?(n.next=r.next,(n.prev=r).next.prev=n,r.next=n):(n.prev=n).next=n,n}function pl(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function hl(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function dl(t,e,i,r){for(var n=0,o=e,a=i-r;o<i;o+=r)n+=(t[a]-t[o])*(t[o+1]+t[a+1]),a=o;return n}function fl(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function ml(t,e){return t<e?-1:e<t?1:0}function gl(t,e){var i,r,n,o,a,s=t.length;if(s<=1)return[t];for(var l,u,c=[],p=0;p<s;p++){var h=b(t[p]);0!==h&&(t[p].area=Math.abs(h),void 0===u&&(u=h<0),u===h<0?(l&&c.push(l),l=[t[p]]):l.push(t[p]))}if(l&&c.push(l),1<e)for(var d=0;d<c.length;d++)c[d].length<=e||(i=c[d],r=e,n=1,o=c[d].length-1,a=yl,function t(e,i,r,n,o){for(;r<n;){if(600<n-r){var a=n-r+1,s=i-r+1,l=Math.log(a),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(a-u)/a)*(s-a/2<0?-1:1);t(e,i,Math.max(r,Math.floor(i-s*u/a+c)),Math.min(n,Math.floor(i+(a-s)*u/a+c)),o)}var p=e[i],h=r,d=n;for(fl(e,r,i),0<o(e[n],p)&&fl(e,r,n);h<d;){for(fl(e,h,d),h++,d--;o(e[h],p)<0;)h++;for(;0<o(e[d],p);)d--}0===o(e[r],p)?fl(e,r,d):fl(e,++d,n),d<=i&&(r=d+1),i<=d&&(n=d-1)}}(i,r,n||0,o||i.length-1,a||ml),c[d]=c[d].slice(0,e));return c}function yl(t,e){return e.area-t.area}function vl(t,e,i){for(var r=i.patternDependencies,n=!1,o=0,a=e;o<a.length;o+=1){var s=a[o].paint.get(t+\"-pattern\");s.isConstant()||(n=!0);var l=s.constantOr(null);l&&(n=!0,r[l.to]=!0,r[l.from]=!0)}return n}function _l(t,e,i,r,n){for(var o=n.patternDependencies,a=0,s=e;a<s.length;a+=1){var l=s[a],u=l.paint.get(t+\"-pattern\").value;if(\"constant\"!==u.kind){var c=u.evaluate({zoom:r-1},i,{},n.availableImages),p=u.evaluate({zoom:r},i,{},n.availableImages),h=u.evaluate({zoom:r+1},i,{},n.availableImages);c=c&&c.name?c.name:c,p=p&&p.name?p.name:p,h=h&&h.name?h.name:h,o[c]=!0,o[p]=!0,o[h]=!0,i.patterns[l.id]={min:c,mid:p,max:h}}}return i}function xl(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Cn,this.indexArray=new wo,this.indexArray2=new Eo,this.programConfigurations=new Wa(Fs,t.layers,t.zoom),this.segments=new aa,this.segments2=new aa,this.stateDependentLayerIds=this.layers.filter(function(t){return t.isStateDependent()}).map(function(t){return t.id})}Gs.deviation=function(t,e,i,r){var n=e&&e.length,o=n?e[0]*i:t.length,a=Math.abs(dl(t,0,o,i));if(n)for(var s=0,l=e.length;s<l;s++){var u=e[s]*i,c=s<l-1?e[s+1]*i:t.length;a-=Math.abs(dl(t,u,c,i))}var p=0;for(s=0;s<r.length;s+=3){var h=r[s]*i,d=r[s+1]*i,f=r[s+2]*i;p+=Math.abs((t[h]-t[f])*(t[1+d]-t[1+h])-(t[h]-t[d])*(t[1+f]-t[1+h]))}return 0===a&&0===p?0:Math.abs((p-a)/a)},Gs.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},r=0,n=0;n<t.length;n++){for(var o=0;o<t[n].length;o++)for(var a=0;a<e;a++)i.vertices.push(t[n][o][a]);0<n&&(r+=t[n-1].length,i.holes.push(r))}return i},Us.default=js,xl.prototype.populate=function(t,e){this.hasPattern=vl(\"fill\",this.layers,e);for(var i=this.layers[0].layout.get(\"fill-sort-key\"),r=[],n=0,o=t;n<o.length;n+=1){var a=o[n],s=a.feature,l=a.id,u=a.index,c=a.sourceLayerIndex;if(this.layers[0]._featureFilter(new Qr(this.zoom),s)){var p=Qa(s),h=i?i.evaluate(s,{},e.availableImages):void 0,d={id:l,properties:s.properties,type:s.type,sourceLayerIndex:c,index:u,geometry:p,patterns:{},sortKey:h};r.push(d)}}i&&r.sort(function(t,e){return t.sortKey-e.sortKey});for(var f=0,m=r;f<m.length;f+=1){var g=m[f],y=g.geometry,v=g.index,_=g.sourceLayerIndex;if(this.hasPattern){var x=_l(\"fill\",this.layers,g,this.zoom,e);this.patternFeatures.push(x)}else this.addFeature(g,y,v,{});var b=t[v].feature;e.featureIndex.insert(b,y,v,_,this.index)}},xl.prototype.update=function(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)},xl.prototype.addFeatures=function(t,e){for(var i=0,r=this.patternFeatures;i<r.length;i+=1){var n=r[i];this.addFeature(n,n.geometry,n.index,e)}},xl.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},xl.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},xl.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Fs),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0},xl.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())},xl.prototype.addFeature=function(t,e,i,r){for(var n=0,o=gl(e,500);n<o.length;n+=1){for(var a=o[n],s=0,l=0,u=a;l<u.length;l+=1)s+=u[l].length;for(var c=this.segments.prepareSegment(s,this.layoutVertexArray,this.indexArray),p=c.vertexLength,h=[],d=[],f=0,m=a;f<m.length;f+=1){var g=m[f];if(0!==g.length){g!==a[0]&&d.push(h.length/2);var y=this.segments2.prepareSegment(g.length,this.layoutVertexArray,this.indexArray2),v=y.vertexLength;this.layoutVertexArray.emplaceBack(g[0].x,g[0].y),this.indexArray2.emplaceBack(v+g.length-1,v),h.push(g[0].x),h.push(g[0].y);for(var _=1;_<g.length;_++)this.layoutVertexArray.emplaceBack(g[_].x,g[_].y),this.indexArray2.emplaceBack(v+_-1,v+_),h.push(g[_].x),h.push(g[_].y);y.vertexLength+=g.length,y.primitiveLength+=g.length}}for(var x=Us(h,d),b=0;b<x.length;b+=3)this.indexArray.emplaceBack(p+x[b],p+x[b+1],p+x[b+2]);c.vertexLength+=s,c.primitiveLength+=x.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,i,r)},kr(\"FillBucket\",xl,{omit:[\"layers\",\"patternFeatures\"]});var bl,wl=new yn({\"fill-sort-key\":new pn(Nt.layout_fill[\"fill-sort-key\"])}),Sl={paint:new yn({\"fill-antialias\":new cn(Nt.paint_fill[\"fill-antialias\"]),\"fill-opacity\":new pn(Nt.paint_fill[\"fill-opacity\"]),\"fill-color\":new pn(Nt.paint_fill[\"fill-color\"]),\"fill-outline-color\":new pn(Nt.paint_fill[\"fill-outline-color\"]),\"fill-translate\":new cn(Nt.paint_fill[\"fill-translate\"]),\"fill-translate-anchor\":new cn(Nt.paint_fill[\"fill-translate-anchor\"]),\"fill-pattern\":new fn(Nt.paint_fill[\"fill-pattern\"])}),layout:wl},Tl=(Cl.__proto__=bl=bn,((Cl.prototype=Object.create(bl&&bl.prototype)).constructor=Cl).prototype.recalculate=function(t,e){bl.prototype.recalculate.call(this,t,e);var i=this.paint._values[\"fill-outline-color\"];\"constant\"===i.value.kind&&void 0===i.value.value&&(this.paint._values[\"fill-outline-color\"]=this.paint._values[\"fill-color\"])},Cl.prototype.createBucket=function(t){return new xl(t)},Cl.prototype.queryRadius=function(){return ps(this.paint.get(\"fill-translate\"))},Cl.prototype.queryIntersectsFeature=function(t,e,i,r,n,o,a){return is(hs(t,this.paint.get(\"fill-translate\"),this.paint.get(\"fill-translate-anchor\"),o.angle,a),r)},Cl.prototype.isTileClipped=function(){return!0},Cl),El=Tn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_normal_ed\",components:4,type:\"Int16\"}],4).members,Il=Al;function Cl(t){bl.call(this,t,Sl)}function Al(t,e,i,r,n){this.properties={},this.extent=i,this.type=0,this._pbf=t,this._geometry=-1,this._keys=r,this._values=n,t.readFields(kl,this,e)}function kl(t,e,i){1==t?e.id=i.readVarint():2==t?function(t,e){for(var i=t.readVarint()+t.pos;t.pos<i;){var r=e._keys[t.readVarint()],n=e._values[t.readVarint()];e.properties[r]=n}}(i,e):3==t?e.type=i.readVarint():4==t&&(e._geometry=i.pos)}function Pl(t){for(var e,i,r=0,n=0,o=t.length,a=o-1;n<o;a=n++)e=t[n],r+=((i=t[a]).x-e.x)*(e.y+i.y);return r}Al.types=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"],Al.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,i=t.readVarint()+t.pos,r=1,n=0,o=0,a=0,s=[];t.pos<i;){if(n<=0){var l=t.readVarint();r=7&l,n=l>>3}if(n--,1===r||2===r)o+=t.readSVarint(),a+=t.readSVarint(),1===r&&(e&&s.push(e),e=[]),e.push(new ct(o,a));else{if(7!==r)throw new Error(\"unknown command \"+r);e&&e.push(e[0].clone())}}return e&&s.push(e),s},Al.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,i=1,r=0,n=0,o=0,a=1/0,s=-1/0,l=1/0,u=-1/0;t.pos<e;){if(r<=0){var c=t.readVarint();i=7&c,r=c>>3}if(r--,1===i||2===i)(n+=t.readSVarint())<a&&(a=n),s<n&&(s=n),(o+=t.readSVarint())<l&&(l=o),u<o&&(u=o);else if(7!==i)throw new Error(\"unknown command \"+i)}return[a,l,s,u]},Al.prototype.toGeoJSON=function(t,e,i){var r,n,o=this.extent*Math.pow(2,i),a=this.extent*t,s=this.extent*e,l=this.loadGeometry(),u=Al.types[this.type];function c(t){for(var e=0;e<t.length;e++){var i=t[e],r=180-360*(i.y+s)/o;t[e]=[360*(i.x+a)/o-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var p=[];for(r=0;r<l.length;r++)p[r]=l[r][0];c(l=p);break;case 2:for(r=0;r<l.length;r++)c(l[r]);break;case 3:for(l=function(t){var e=t.length;if(e<=1)return[t];for(var i,r,n=[],o=0;o<e;o++){var a=Pl(t[o]);0!==a&&(void 0===r&&(r=a<0),r===a<0?(i&&n.push(i),i=[t[o]]):i.push(t[o]))}return i&&n.push(i),n}(l),r=0;r<l.length;r++)for(n=0;n<l[r].length;n++)c(l[r][n])}1===l.length?l=l[0]:u=\"Multi\"+u;var h={type:\"Feature\",geometry:{type:u,coordinates:l},properties:this.properties};return\"id\"in this&&(h.id=this.id),h};var Ml=Ll;function Ll(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(Dl,this,e),this.length=this._features.length}function Dl(t,e,i){15===t?e.version=i.readVarint():1===t?e.name=i.readString():5===t?e.extent=i.readVarint():2===t?e._features.push(i.pos):3===t?e._keys.push(i.readString()):4===t&&e._values.push(function(t){for(var e=null,i=t.readVarint()+t.pos;t.pos<i;){var r=t.readVarint()>>3;e=1==r?t.readString():2==r?t.readFloat():3==r?t.readDouble():4==r?t.readVarint64():5==r?t.readVarint():6==r?t.readSVarint():7==r?t.readBoolean():null}return e}(i))}function Ol(t,e,i){if(3===t){var r=new Ml(i,i.readVarint()+i.pos);r.length&&(e[r.name]=r)}}Ll.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new Il(this._pbf,e,this.extent,this._keys,this._values)};var zl={VectorTile:function(t,e){this.layers=t.readFields(Ol,{},e)},VectorTileFeature:Il,VectorTileLayer:Ml},Rl=zl.VectorTileFeature.types,Nl=Math.pow(2,13);function Bl(t,e,i,r,n,o,a,s){t.emplaceBack(e,i,2*Math.floor(r*Nl)+a,n*Nl*2,o*Nl*2,Math.round(s))}function Fl(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Dn,this.indexArray=new wo,this.programConfigurations=new Wa(El,t.layers,t.zoom),this.segments=new aa,this.stateDependentLayerIds=this.layers.filter(function(t){return t.isStateDependent()}).map(function(t){return t.id})}Fl.prototype.populate=function(t,e){this.features=[],this.hasPattern=vl(\"fill-extrusion\",this.layers,e);for(var i=0,r=t;i<r.length;i+=1){var n=r[i],o=n.feature,a=n.id,s=n.index,l=n.sourceLayerIndex;if(this.layers[0]._featureFilter(new Qr(this.zoom),o)){var u=Qa(o),c={id:a,sourceLayerIndex:l,index:s,geometry:u,properties:o.properties,type:o.type,patterns:{}};void 0!==o.id&&(c.id=o.id),this.hasPattern?this.features.push(_l(\"fill-extrusion\",this.layers,c,this.zoom,e)):this.addFeature(c,u,s,{}),e.featureIndex.insert(o,u,s,l,this.index,!0)}}},Fl.prototype.addFeatures=function(t,e){for(var i=0,r=this.features;i<r.length;i+=1){var n=r[i],o=n.geometry;this.addFeature(n,o,n.index,e)}},Fl.prototype.update=function(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)},Fl.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Fl.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Fl.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,El),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0},Fl.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Fl.prototype.addFeature=function(t,e,i,r){for(var n=0,o=gl(e,500);n<o.length;n+=1){for(var a=o[n],s=0,l=0,u=a;l<u.length;l+=1)s+=u[l].length;for(var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),p=0,h=a;p<h.length;p+=1){var d=h[p];if(0!==d.length&&!((D=d).every(function(t){return t.x<0})||D.every(function(t){return t.x>Ya})||D.every(function(t){return t.y<0})||D.every(function(t){return t.y>Ya})))for(var f=0,m=0;m<d.length;m++){var g=d[m];if(1<=m){var y=d[m-1];if(L=y,!((M=g).x===L.x&&(M.x<0||M.x>Ya)||M.y===L.y&&(M.y<0||M.y>Ya))){c.vertexLength+4>aa.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var v=g.sub(y)._perp()._unit(),_=y.dist(g);32768<f+_&&(f=0),Bl(this.layoutVertexArray,g.x,g.y,v.x,v.y,0,0,f),Bl(this.layoutVertexArray,g.x,g.y,v.x,v.y,0,1,f),f+=_,Bl(this.layoutVertexArray,y.x,y.y,v.x,v.y,0,0,f),Bl(this.layoutVertexArray,y.x,y.y,v.x,v.y,0,1,f);var x=c.vertexLength;this.indexArray.emplaceBack(x,x+2,x+1),this.indexArray.emplaceBack(x+1,x+2,x+3),c.vertexLength+=4,c.primitiveLength+=2}}}}if(c.vertexLength+s>aa.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(s,this.layoutVertexArray,this.indexArray)),\"Polygon\"===Rl[t.type]){for(var b=[],w=[],S=c.vertexLength,T=0,E=a;T<E.length;T+=1){var I=E[T];if(0!==I.length){I!==a[0]&&w.push(b.length/2);for(var C=0;C<I.length;C++){var A=I[C];Bl(this.layoutVertexArray,A.x,A.y,0,0,1,1,0),b.push(A.x),b.push(A.y)}}}for(var k=Us(b,w),P=0;P<k.length;P+=3)this.indexArray.emplaceBack(S+k[P],S+k[P+2],S+k[P+1]);c.primitiveLength+=k.length/3,c.vertexLength+=s}}var M,L,D;this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,i,r)},kr(\"FillExtrusionBucket\",Fl,{omit:[\"layers\",\"features\"]});var Ul,jl={paint:new yn({\"fill-extrusion-opacity\":new cn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new pn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new cn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new cn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new fn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new pn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new pn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new cn(Nt[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})},ql=(Vl.__proto__=Ul=bn,((Vl.prototype=Object.create(Ul&&Ul.prototype)).constructor=Vl).prototype.createBucket=function(t){return new Fl(t)},Vl.prototype.queryRadius=function(){return ps(this.paint.get(\"fill-extrusion-translate\"))},Vl.prototype.is3D=function(){return!0},Vl.prototype.queryIntersectsFeature=function(t,e,i,r,n,o,a,s){var l=hs(t,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),o.angle,a),D=this.paint.get(\"fill-extrusion-height\").evaluate(e,i),O=this.paint.get(\"fill-extrusion-base\").evaluate(e,i),u=function(t){for(var e=[],i=0,r=l;i<r.length;i+=1){var n=r[i],o=[n.x,n.y,0,1];vs(o,o,t),e.push(new ct(o[0]/o[3],o[1]/o[3]))}return e}(s),c=function(t,e){for(var i=[],r=[],n=e[8]*O,o=e[9]*O,a=e[10]*O,s=e[11]*O,l=e[8]*D,u=e[9]*D,c=e[10]*D,p=e[11]*D,h=0,d=t;h<d.length;h+=1){for(var f=[],m=[],g=0,y=d[h];g<y.length;g+=1){var v=y[g],_=v.x,x=v.y,b=e[0]*_+e[4]*x+e[12],w=e[1]*_+e[5]*x+e[13],S=e[2]*_+e[6]*x+e[14],T=e[3]*_+e[7]*x+e[15],E=S+a,I=T+s,C=b+l,A=w+u,k=S+c,P=T+p,M=new ct((b+n)/I,(w+o)/I);M.z=E/I,f.push(M);var L=new ct(C/P,A/P);L.z=k/P,m.push(L)}i.push(f),r.push(m)}return[i,r]}(r,s);return function(t,e,i){var r=1/0;is(i,e)&&(r=Zl(i,e[0]));for(var n=0;n<e.length;n++)for(var o=e[n],a=t[n],s=0;s<o.length-1;s++){var l=o[s],u=o[s+1],c=a[s],p=[l,u,a[s+1],c,l];es(i,p)&&(r=Math.min(r,Zl(i,p)))}return r!==1/0&&r}(c[0],c[1],u)},Vl);function Vl(t){Ul.call(this,t,jl)}function Gl(t,e){return t.x*e.x+t.y*e.y}function Zl(t,e){if(1===t.length){for(var i,r,n=0,o=e[n++];!i||o.equals(i);)if(!(i=e[n++]))return 1/0;for(;!r||o.equals(r)||i.equals(r);)if(!(r=e[n++]))return 1/0;var a=t[0],s=i.sub(o),l=r.sub(o),u=a.sub(o),c=Gl(s,s),p=Gl(s,l),h=Gl(l,l),d=Gl(u,s),f=Gl(u,l),m=c*h-p*p,g=(h*d-p*f)/m,y=(c*f-p*d)/m,v=1-g-y;return o.z*v+i.z*g+r.z*y}for(var _=1/0,x=0,b=e;x<b.length;x+=1){var w=b[x];_=Math.min(_,w.z)}return _}function Hl(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Rn,this.indexArray=new wo,this.programConfigurations=new Wa(Kl,t.layers,t.zoom),this.segments=new aa,this.stateDependentLayerIds=this.layers.filter(function(t){return t.isStateDependent()}).map(function(t){return t.id})}var Kl=Tn([{name:\"a_pos_normal\",components:2,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint8\"}],4).members,Wl=zl.VectorTileFeature.types,Xl=Math.cos(Math.PI/180*37.5),Yl=Math.pow(2,14)/.5;Hl.prototype.populate=function(t,e){this.hasPattern=vl(\"line\",this.layers,e);for(var i=this.layers[0].layout.get(\"line-sort-key\"),r=[],n=0,o=t;n<o.length;n+=1){var a=o[n],s=a.feature,l=a.id,u=a.index,c=a.sourceLayerIndex;if(this.layers[0]._featureFilter(new Qr(this.zoom),s)){var p=Qa(s),h=i?i.evaluate(s,{}):void 0,d={id:l,properties:s.properties,type:s.type,sourceLayerIndex:c,index:u,geometry:p,patterns:{},sortKey:h};r.push(d)}}i&&r.sort(function(t,e){return t.sortKey-e.sortKey});for(var f=0,m=r;f<m.length;f+=1){var g=m[f],y=g.geometry,v=g.index,_=g.sourceLayerIndex;if(this.hasPattern){var x=_l(\"line\",this.layers,g,this.zoom,e);this.patternFeatures.push(x)}else this.addFeature(g,y,v,{});var b=t[v].feature;e.featureIndex.insert(b,y,v,_,this.index)}},Hl.prototype.update=function(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)},Hl.prototype.addFeatures=function(t,e){for(var i=0,r=this.patternFeatures;i<r.length;i+=1){var n=r[i];this.addFeature(n,n.geometry,n.index,e)}},Hl.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Hl.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Hl.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Kl),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0},Hl.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Hl.prototype.addFeature=function(t,e,i,r){for(var n=this.layers[0].layout,o=n.get(\"line-join\").evaluate(t,{}),a=n.get(\"line-cap\"),s=n.get(\"line-miter-limit\"),l=n.get(\"line-round-limit\"),u=0,c=e;u<c.length;u+=1){var p=c[u];this.addLine(p,t,o,a,s,l,i,r)}},Hl.prototype.addLine=function(t,e,i,r,n,o,a,s){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,e.properties&&e.properties.hasOwnProperty(\"mapbox_clip_start\")&&e.properties.hasOwnProperty(\"mapbox_clip_end\")){this.clipStart=+e.properties.mapbox_clip_start,this.clipEnd=+e.properties.mapbox_clip_end;for(var l=0;l<t.length-1;l++)this.totalDistance+=t[l].dist(t[l+1]);this.updateScaledDistance()}for(var u=\"Polygon\"===Wl[e.type],c=t.length;2<=c&&t[c-1].equals(t[c-2]);)c--;for(var p=0;p<c-1&&t[p].equals(t[p+1]);)p++;if(!(c<(u?3:2))){\"bevel\"===i&&(n=1.05);var h,d=this.overscaling<=16?15*Ya/(512*this.overscaling):0,f=this.segments.prepareSegment(10*c,this.layoutVertexArray,this.indexArray),m=void 0,g=void 0,y=void 0,v=void 0;this.e1=this.e2=-1,u&&(h=t[c-2],v=t[p].sub(h)._unit()._perp());for(var _=p;_<c;_++)if(!(g=_===c-1?u?t[p+1]:void 0:t[_+1])||!t[_].equals(g)){v&&(y=v),h&&(m=h),h=t[_],v=g?g.sub(h)._unit()._perp():y;var x=(y=y||v).add(v);0===x.x&&0===x.y||x._unit();var b=y.x*v.x+y.y*v.y,w=x.x*v.x+x.y*v.y,S=0!=w?1/w:1/0,T=2*Math.sqrt(2-2*w),E=w<Xl&&m&&g,I=0<y.x*v.y-y.y*v.x;if(E&&p<_){var C=h.dist(m);if(2*d<C){var A=h.sub(h.sub(m)._mult(d/C)._round());this.updateDistance(m,A),this.addCurrentVertex(A,y,0,0,f),m=A}}var k=m&&g,P=k?i:u?\"butt\":r;if(k&&\"round\"===P&&(S<o?P=\"miter\":S<=2&&(P=\"fakeround\")),\"miter\"===P&&n<S&&(P=\"bevel\"),\"bevel\"===P&&(2<S&&(P=\"flipbevel\"),S<n&&(P=\"miter\")),m&&this.updateDistance(m,h),\"miter\"===P)x._mult(S),this.addCurrentVertex(h,x,0,0,f);else if(\"flipbevel\"===P){if(100<S)x=v.mult(-1);else{var M=S*y.add(v).mag()/y.sub(v).mag();x._perp()._mult(M*(I?-1:1))}this.addCurrentVertex(h,x,0,0,f),this.addCurrentVertex(h,x.mult(-1),0,0,f)}else if(\"bevel\"===P||\"fakeround\"===P){var L=-Math.sqrt(S*S-1),D=I?L:0,O=I?0:L;if(m&&this.addCurrentVertex(h,y,D,O,f),\"fakeround\"===P)for(var z=Math.round(180*T/Math.PI/20),R=1;R<z;R++){var N=R/z;if(.5!==N){var B=N-.5;N+=N*B*(N-1)*((1.0904+b*(b*(3.55645-1.43519*b)-3.2452))*B*B+(.848013+b*(.215638*b-1.06021)))}var F=v.sub(y)._mult(N)._add(y)._unit()._mult(I?-1:1);this.addHalfVertex(h,F.x,F.y,!1,I,0,f)}g&&this.addCurrentVertex(h,v,-D,-O,f)}else if(\"butt\"===P)this.addCurrentVertex(h,x,0,0,f);else if(\"square\"===P){var U=m?1:-1;this.addCurrentVertex(h,x,U,U,f)}else\"round\"===P&&(m&&(this.addCurrentVertex(h,y,0,0,f),this.addCurrentVertex(h,y,1,1,f,!0)),g&&(this.addCurrentVertex(h,v,-1,-1,f,!0),this.addCurrentVertex(h,v,0,0,f)));if(E&&_<c-1){var j=h.dist(g);if(2*d<j){var q=h.add(g.sub(h)._mult(d/j)._round());this.updateDistance(h,q),this.addCurrentVertex(q,v,0,0,f),h=q}}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,s)}},Hl.prototype.addCurrentVertex=function(t,e,i,r,n,o){void 0===o&&(o=!1);var a=e.x+e.y*i,s=e.y-e.x*i,l=-e.x+e.y*r,u=-e.y-e.x*r;this.addHalfVertex(t,a,s,o,!1,i,n),this.addHalfVertex(t,l,u,o,!0,-r,n),this.distance>Yl/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,i,r,n,o))},Hl.prototype.addHalfVertex=function(t,e,i,r,n,o,a){var s=t.x,l=t.y,u=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((s<<1)+(r?1:0),(l<<1)+(n?1:0),Math.round(63*e)+128,Math.round(63*i)+128,1+(0===o?0:o<0?-1:1)|(63&u)<<2,u>>6);var c=a.vertexLength++;0<=this.e1&&0<=this.e2&&(this.indexArray.emplaceBack(this.e1,this.e2,c),a.primitiveLength++),n?this.e2=c:this.e1=c},Hl.prototype.updateScaledDistance=function(){this.scaledDistance=0<this.totalDistance?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Yl-1):this.distance},Hl.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},kr(\"LineBucket\",Hl,{omit:[\"layers\",\"patternFeatures\"]});var Jl,Ql=new yn({\"line-cap\":new cn(Nt.layout_line[\"line-cap\"]),\"line-join\":new pn(Nt.layout_line[\"line-join\"]),\"line-miter-limit\":new cn(Nt.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new cn(Nt.layout_line[\"line-round-limit\"]),\"line-sort-key\":new pn(Nt.layout_line[\"line-sort-key\"])}),$l={paint:new yn({\"line-opacity\":new pn(Nt.paint_line[\"line-opacity\"]),\"line-color\":new pn(Nt.paint_line[\"line-color\"]),\"line-translate\":new cn(Nt.paint_line[\"line-translate\"]),\"line-translate-anchor\":new cn(Nt.paint_line[\"line-translate-anchor\"]),\"line-width\":new pn(Nt.paint_line[\"line-width\"]),\"line-gap-width\":new pn(Nt.paint_line[\"line-gap-width\"]),\"line-offset\":new pn(Nt.paint_line[\"line-offset\"]),\"line-blur\":new pn(Nt.paint_line[\"line-blur\"]),\"line-dasharray\":new hn(Nt.paint_line[\"line-dasharray\"]),\"line-pattern\":new fn(Nt.paint_line[\"line-pattern\"]),\"line-gradient\":new gn(Nt.paint_line[\"line-gradient\"])}),layout:Ql},tu=(eu.__proto__=Jl=pn,((eu.prototype=Object.create(Jl&&Jl.prototype)).constructor=eu).prototype.possiblyEvaluate=function(t,e){return e=new Qr(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,zoomHistory:e.zoomHistory,transition:e.transition}),Jl.prototype.possiblyEvaluate.call(this,t,e)},eu.prototype.evaluate=function(t,e,i,r){return e=f({},e,{zoom:Math.floor(e.zoom)}),Jl.prototype.evaluate.call(this,t,e,i,r)},new eu($l.paint.properties[\"line-width\"].specification));function eu(){Jl.apply(this,arguments)}tu.useIntegerZoom=!0;var iu,ru=(nu.__proto__=iu=bn,((nu.prototype=Object.create(iu&&iu.prototype)).constructor=nu).prototype._handleSpecialPaintPropertyUpdate=function(t){\"line-gradient\"===t&&this._updateGradient()},nu.prototype._updateGradient=function(){var t=this._transitionablePaint._values[\"line-gradient\"].value.expression;this.gradient=Ds(t,\"lineProgress\"),this.gradientTexture=null},nu.prototype.recalculate=function(t,e){iu.prototype.recalculate.call(this,t,e),this.paint._values[\"line-floorwidth\"]=tu.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,t)},nu.prototype.createBucket=function(t){return new Hl(t)},nu.prototype.queryRadius=function(t){var e=t,i=ou(cs(\"line-width\",this,e),cs(\"line-gap-width\",this,e)),r=cs(\"line-offset\",this,e);return i/2+Math.abs(r)+ps(this.paint.get(\"line-translate\"))},nu.prototype.queryIntersectsFeature=function(t,e,i,r,n,o,a){var s=hs(t,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),o.angle,a),l=a/2*ou(this.paint.get(\"line-width\").evaluate(e,i),this.paint.get(\"line-gap-width\").evaluate(e,i)),u=this.paint.get(\"line-offset\").evaluate(e,i);return u&&(r=function(t,e){for(var i=[],r=new ct(0,0),n=0;n<t.length;n++){for(var o=t[n],a=[],s=0;s<o.length;s++){var l=o[s-1],u=o[s],c=o[s+1],p=0===s?r:u.sub(l)._unit()._perp(),h=s===o.length-1?r:c.sub(u)._unit()._perp(),d=p._add(h)._unit(),f=d.x*h.x+d.y*h.y;d._mult(1/f),a.push(d._mult(e)._add(u))}i.push(a)}return i}(r,u*a)),function(t,e,i){for(var r=0;r<e.length;r++){var n=e[r];if(3<=t.length)for(var o=0;o<n.length;o++)if(ls(t,n[o]))return!0;if(rs(t,n,i))return!0}return!1}(s,r,l)},nu.prototype.isTileClipped=function(){return!0},nu);function nu(t){iu.call(this,t,$l)}function ou(t,e){return 0<e?e+2*t:t}var au=Tn([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),su=Tn([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4),lu=(Tn([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4),Tn([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}])),uu=(Tn([{type:\"Int16\",name:\"anchorPointX\"},{type:\"Int16\",name:\"anchorPointY\"},{type:\"Int16\",name:\"x1\"},{type:\"Int16\",name:\"y1\"},{type:\"Int16\",name:\"x2\"},{type:\"Int16\",name:\"y2\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"},{type:\"Int16\",name:\"radius\"},{type:\"Int16\",name:\"signedDistanceFromAnchor\"}]),Tn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4)),cu=Tn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4);function pu(t,n,o){return t.sections.forEach(function(t){var e,i,r;t.text=(e=t.text,i=o,\"uppercase\"===(r=n.layout.get(\"text-transform\").evaluate(i,{}))?e=e.toLocaleUpperCase():\"lowercase\"===r&&(e=e.toLocaleLowerCase()),tn.applyArabicShaping&&(e=tn.applyArabicShaping(e)),e)}),t}function hu(t,e,i,r,n){var o,a,s=8*n-r-1,l=(1<<s)-1,u=l>>1,c=-7,p=i?n-1:0,h=i?-1:1,d=t[e+p];for(p+=h,o=d&(1<<-c)-1,d>>=-c,c+=s;0<c;o=256*o+t[e+p],p+=h,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;0<c;a=256*a+t[e+p],p+=h,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),o-=u}return(d?-1:1)*a*Math.pow(2,o-r)}function du(t,e,i,r,n,o){var a,s,l,u=8*o-n-1,c=(1<<u)-1,p=c>>1,h=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),2<=(e+=1<=a+p?h/l:h*Math.pow(2,1-p))*l&&(a++,l/=2),c<=a+p?(s=0,a=c):1<=a+p?(s=(e*l-1)*Math.pow(2,n),a+=p):(s=e*Math.pow(2,p-1)*Math.pow(2,n),a=0));8<=n;t[i+d]=255&s,d+=f,s/=256,n-=8);for(a=a<<n|s,u+=n;0<u;t[i+d]=255&a,d+=f,a/=256,u-=8);t[i+d-f]|=128*m}Tn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"}]),Tn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",name:\"textBoxScale\"},{type:\"Float32\",components:2,name:\"textOffset\"}]),Tn([{type:\"Float32\",name:\"offsetX\"}]),Tn([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]);var fu={\"!\":\"︕\",\"#\":\"#\",$:\"$\",\"%\":\"%\",\"&\":\"&\",\"(\":\"︵\",\")\":\"︶\",\"*\":\"*\",\"+\":\"+\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\"/\":\"/\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\"=\":\"=\",\">\":\"﹀\",\"?\":\"︖\",\"@\":\"@\",\"[\":\"﹇\",\"\\\\\":\"\\",\"]\":\"﹈\",\"^\":\"^\",_:\"︳\",\"`\":\"`\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"~\":\"~\",\"¢\":\"¢\",\"£\":\"£\",\"¥\":\"¥\",\"¦\":\"¦\",\"¬\":\"¬\",\"¯\":\" ̄\",\"–\":\"︲\",\"—\":\"︱\",\"‘\":\"﹃\",\"’\":\"﹄\",\"“\":\"﹁\",\"”\":\"﹂\",\"…\":\"︙\",\"‧\":\"・\",\"₩\":\"₩\",\"、\":\"︑\",\"。\":\"︒\",\"〈\":\"︿\",\"〉\":\"﹀\",\"《\":\"︽\",\"》\":\"︾\",\"「\":\"﹁\",\"」\":\"﹂\",\"『\":\"﹃\",\"』\":\"﹄\",\"【\":\"︻\",\"】\":\"︼\",\"〔\":\"︹\",\"〕\":\"︺\",\"〖\":\"︗\",\"〗\":\"︘\",\"!\":\"︕\",\"(\":\"︵\",\")\":\"︶\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\">\":\"﹀\",\"?\":\"︖\",\"[\":\"﹇\",\"]\":\"﹈\",\"_\":\"︳\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"⦅\":\"︵\",\"⦆\":\"︶\",\"。\":\"︒\",\"「\":\"﹁\",\"」\":\"﹂\"},mu=24,gu=yu;function yu(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}yu.Varint=0,yu.Fixed64=1,yu.Bytes=2,yu.Fixed32=5;var vu=\"undefined\"==typeof TextDecoder?null:new TextDecoder(\"utf8\");function _u(t){return t.type===yu.Bytes?t.readVarint()+t.pos:t.pos+1}function xu(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function bu(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;t<=n;n--)i.buf[n+r]=i.buf[n]}function wu(t,e){for(var i=0;i<t.length;i++)e.writeVarint(t[i])}function Su(t,e){for(var i=0;i<t.length;i++)e.writeSVarint(t[i])}function Tu(t,e){for(var i=0;i<t.length;i++)e.writeFloat(t[i])}function Eu(t,e){for(var i=0;i<t.length;i++)e.writeDouble(t[i])}function Iu(t,e){for(var i=0;i<t.length;i++)e.writeBoolean(t[i])}function Cu(t,e){for(var i=0;i<t.length;i++)e.writeFixed32(t[i])}function Au(t,e){for(var i=0;i<t.length;i++)e.writeSFixed32(t[i])}function ku(t,e){for(var i=0;i<t.length;i++)e.writeFixed64(t[i])}function Pu(t,e){for(var i=0;i<t.length;i++)e.writeSFixed64(t[i])}function Mu(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function Lu(t,e,i){t[i]=e,t[i+1]=e>>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function Du(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}yu.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos<i;){var r=this.readVarint(),n=r>>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=Mu(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Du(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Mu(this.buf,this.pos)+4294967296*Mu(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=Mu(this.buf,this.pos)+4294967296*Du(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=hu(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=hu(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(r=(112&(n=o[i.pos++]))>>4,n<128)return xu(t,r,e);if(r|=(127&(n=o[i.pos++]))<<3,n<128)return xu(t,r,e);if(r|=(127&(n=o[i.pos++]))<<10,n<128)return xu(t,r,e);if(r|=(127&(n=o[i.pos++]))<<17,n<128)return xu(t,r,e);if(r|=(127&(n=o[i.pos++]))<<24,n<128)return xu(t,r,e);if(r|=(1&(n=o[i.pos++]))<<31,n<128)return xu(t,r,e);throw new Error(\"Expected varint not more than 10 bytes\")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t,e,i,r=this.readVarint()+this.pos,c=this.pos;return 12<=(this.pos=r)-c&&vu?(t=this.buf,e=c,i=r,vu.decode(t.subarray(e,i))):function(t,e){for(var i=\"\",r=c;r<e;){var n,o,a,s=t[r],l=null,u=239<s?4:223<s?3:191<s?2:1;if(e<r+u)break;1===u?s<128&&(l=s):2===u?128==(192&(n=t[r+1]))&&(l=(31&s)<<6|63&n)<=127&&(l=null):3===u?(n=t[r+1],o=t[r+2],128==(192&n)&&128==(192&o)&&((l=(15&s)<<12|(63&n)<<6|63&o)<=2047||55296<=l&&l<=57343)&&(l=null)):4===u&&(n=t[r+1],o=t[r+2],a=t[r+3],128==(192&n)&&128==(192&o)&&128==(192&a)&&((l=(15&s)<<18|(63&n)<<12|(63&o)<<6|63&a)<=65535||1114112<=l)&&(l=null)),null===l?(l=65533,u=1):65535<l&&(l-=65536,i+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),i+=String.fromCharCode(l),r+=u}return i}(this.buf,r)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==yu.Bytes)return t.push(this.readVarint(e));var i=_u(this);for(t=t||[];this.pos<i;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==yu.Bytes)return t.push(this.readSVarint());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==yu.Bytes)return t.push(this.readBoolean());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==yu.Bytes)return t.push(this.readFloat());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==yu.Bytes)return t.push(this.readDouble());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==yu.Bytes)return t.push(this.readFixed32());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==yu.Bytes)return t.push(this.readSFixed32());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==yu.Bytes)return t.push(this.readFixed64());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==yu.Bytes)return t.push(this.readSFixed64());var e=_u(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===yu.Varint)for(;127<this.buf[this.pos++];);else if(e===yu.Bytes)this.pos=this.readVarint()+this.pos;else if(e===yu.Fixed32)this.pos+=4;else{if(e!==yu.Fixed64)throw new Error(\"Unimplemented type: \"+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var i=new Uint8Array(e);i.set(this.buf),this.buf=i,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),Lu(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),Lu(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),Lu(this.buf,-1&t,this.pos),Lu(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),Lu(this.buf,-1&t,this.pos),Lu(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(l){268435455<(l=+l||0)||l<0?function(t){var e,i,r,n,o,a,s;if(0<=l?(e=l%4294967296|0,i=l/4294967296|0):(i=~(-l/4294967296),4294967295^(e=~(-l%4294967296))?e=e+1|0:i=i+1|(e=0)),0x10000000000000000<=l||l<-0x10000000000000000)throw new Error(\"Given varint doesn't fit into 10 bytes\");t.realloc(10),a=e,(s=t).buf[s.pos++]=127&a|128,a>>>=7,s.buf[s.pos++]=127&a|128,a>>>=7,s.buf[s.pos++]=127&a|128,a>>>=7,s.buf[s.pos++]=127&a|128,a>>>=7,s.buf[s.pos]=127&a,o=(7&(r=i))<<4,(n=t).buf[n.pos++]|=o|((r>>>=3)?128:0),r&&(n.buf[n.pos++]=127&r|((r>>>=7)?128:0),r&&(n.buf[n.pos++]=127&r|((r>>>=7)?128:0),r&&(n.buf[n.pos++]=127&r|((r>>>=7)?128:0),r&&(n.buf[n.pos++]=127&r|((r>>>=7)?128:0),r&&(n.buf[n.pos++]=127&r)))))}(this):(this.realloc(4),this.buf[this.pos++]=127&l|(127<l?128:0),l<=127||(this.buf[this.pos++]=127&(l>>>=7)|(127<l?128:0),l<=127||(this.buf[this.pos++]=127&(l>>>=7)|(127<l?128:0),l<=127||(this.buf[this.pos++]=l>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o<e.length;o++){if(55295<(r=e.charCodeAt(o))&&r<57344){if(!n){56319<r||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;128<=i&&bu(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),du(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),du(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i<e;i++)this.buf[this.pos++]=t[i]},writeRawMessage:function(t,e){this.pos++;var i=this.pos;t(e,this);var r=this.pos-i;128<=r&&bu(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,yu.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,wu,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Su,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Iu,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Tu,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Eu,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Cu,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Au,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,ku,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Pu,e)},writeBytesField:function(t,e){this.writeTag(t,yu.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,yu.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,yu.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,yu.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,yu.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,yu.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,yu.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,yu.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,yu.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,yu.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var Ou=3;function zu(t,e,i){1===t&&i.readMessage(Ru,e)}function Ru(t,e,i){if(3===t){var r=i.readMessage(Nu,{}),n=r.id,o=r.bitmap,a=r.width,s=r.height,l=r.left,u=r.top,c=r.advance;e.push({id:n,bitmap:new Ps({width:a+2*Ou,height:s+2*Ou},o),metrics:{width:a,height:s,left:l,top:u,advance:c}})}}function Nu(t,e,i){1===t?e.id=i.readVarint():2===t?e.bitmap=i.readBytes():3===t?e.width=i.readVarint():4===t?e.height=i.readVarint():5===t?e.left=i.readSVarint():6===t?e.top=i.readSVarint():7===t&&(e.advance=i.readVarint())}var Bu=Ou;function Fu(t){for(var e=0,i=0,r=0,n=t;r<n.length;r+=1){var o=n[r];e+=o.w*o.h,i=Math.max(i,o.w)}t.sort(function(t,e){return e.h-t.h});for(var a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),i),h:1/0}],s=0,l=0,u=0,c=t;u<c.length;u+=1)for(var p=c[u],h=a.length-1;0<=h;h--){var d=a[h];if(!(p.w>d.w||p.h>d.h)){if(p.x=d.x,p.y=d.y,l=Math.max(l,p.y+p.h),s=Math.max(s,p.x+p.w),p.w===d.w&&p.h===d.h){var f=a.pop();h<a.length&&(a[h]=f)}else p.h===d.h?(d.x+=p.w,d.w-=p.w):(p.w===d.w||a.push({x:d.x+p.w,y:d.y,w:d.w-p.w,h:p.h}),d.y+=p.h,d.h-=p.h);break}}return{w:s,h:l,fill:e/(s*l)||0}}function Uu(t,e){var i=e.pixelRatio,r=e.version,n=e.stretchX,o=e.stretchY,a=e.content;this.paddedRect=t,this.pixelRatio=i,this.stretchX=n,this.stretchY=o,this.content=a,this.version=r}var ju=1,qu={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};function Vu(t,e){var i={},r={};this.haveRenderCallbacks=[];var n=[];this.addImages(t,i,n),this.addImages(e,r,n);var o=Fu(n),a=o.w,s=o.h,l=new Ms({width:a||1,height:s||1});for(var u in t){var c=t[u],p=i[u].paddedRect;Ms.copy(c.data,l,{x:0,y:0},{x:p.x+ju,y:p.y+ju},c.data)}for(var h in e){var d=e[h],f=r[h].paddedRect,m=f.x+ju,g=f.y+ju,y=d.data.width,v=d.data.height;Ms.copy(d.data,l,{x:0,y:0},{x:m,y:g},d.data),Ms.copy(d.data,l,{x:0,y:v-1},{x:m,y:g-1},{width:y,height:1}),Ms.copy(d.data,l,{x:0,y:0},{x:m,y:g+v},{width:y,height:1}),Ms.copy(d.data,l,{x:y-1,y:0},{x:m-1,y:g},{width:1,height:v}),Ms.copy(d.data,l,{x:0,y:0},{x:m+y,y:g},{width:1,height:v})}this.image=l,this.iconPositions=i,this.patternPositions=r}function Gu(){this.scale=1,this.fontStack=\"\",this.imageName=null}qu.tl.get=function(){return[this.paddedRect.x+ju,this.paddedRect.y+ju]},qu.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-ju,this.paddedRect.y+this.paddedRect.h-ju]},qu.tlbr.get=function(){return this.tl.concat(this.br)},qu.displaySize.get=function(){return[(this.paddedRect.w-2*ju)/this.pixelRatio,(this.paddedRect.h-2*ju)/this.pixelRatio]},Object.defineProperties(Uu.prototype,qu),Vu.prototype.addImages=function(t,e,i){for(var r in t){var n=t[r],o={x:0,y:0,w:n.data.width+2*ju,h:n.data.height+2*ju};i.push(o),e[r]=new Uu(o,n),n.hasRenderCallback&&this.haveRenderCallbacks.push(r)}},Vu.prototype.patchUpdatedImages=function(t,e){for(var i in t.dispatchRenderCallbacks(this.haveRenderCallbacks),t.updatedImages)this.patchUpdatedImage(this.iconPositions[i],t.getImage(i),e),this.patchUpdatedImage(this.patternPositions[i],t.getImage(i),e)},Vu.prototype.patchUpdatedImage=function(t,e,i){if(t&&e&&t.version!==e.version){t.version=e.version;var r=t.tl,n=r[0],o=r[1];i.update(e.data,void 0,{x:n,y:o})}},kr(\"ImagePosition\",Uu),kr(\"ImageAtlas\",Vu);var Zu={horizontal:1,vertical:2,horizontalOnly:3},Hu=-17;function Ku(){this.text=\"\",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}function Wu(t,e,i,r,n,o,a,s,X,l,u,c,p,h,d,f){var m,g=Ku.fromFeature(t,n);c===Zu.vertical&&g.verticalizePunctuation();var y=tn.processBidirectionalText,v=tn.processStyledBidirectionalText;if(y&&1===g.sections.length){m=[];for(var _=0,x=y(g.toString(),tc(g,l,o,e,r,h,d));_<x.length;_+=1){var b=x[_],w=new Ku;w.text=b,w.sections=g.sections;for(var S=0;S<b.length;S++)w.sectionIndex.push(0);m.push(w)}}else if(v){m=[];for(var T=0,E=v(g.text,g.sectionIndex,tc(g,l,o,e,r,h,d));T<E.length;T+=1){var I=E[T],C=new Ku;C.text=I[0],C.sectionIndex=I[1],C.sections=g.sections,m.push(C)}}else m=function(t,e){for(var i=[],r=t.text,n=0,o=0,a=e;o<a.length;o+=1){var s=a[o];i.push(t.substring(n,s)),n=s}return n<r.length&&i.push(t.substring(n,r.length)),i}(g,tc(g,l,o,e,r,h,d));var A=[],k={positionedLines:A,text:g.toString(),top:u[1],bottom:u[1],left:u[0],right:u[0],writingMode:c,iconsInText:!1,verticalizable:!1};return function(t,e,i,r,n,f,o,a,s,l,u){for(var c=0,p=Hu,h=0,d=0,m=\"right\"===X?1:\"left\"===X?0:.5,g=0,y=0,v=n;y<v.length;y+=1){var _=v[y];_.trim();var x=_.getMaxScale(),b=(x-1)*mu,w={positionedGlyphs:[],lineOffset:0},S=(t.positionedLines[g]=w).positionedGlyphs,T=0;if(_.length()){for(var E=0;E<_.length();E++){var I=_.getSection(E),C=_.getSectionIndex(E),A=_.getCharCode(E),k=0,P=null,M=null,L=null,D=mu,O=!(a===Zu.horizontal||!l&&!Br(A)||l&&(Xu[A]||(G=A,Rr.Arabic(G)||Rr[\"Arabic Supplement\"](G)||Rr[\"Arabic Extended-A\"](G)||Rr[\"Arabic Presentation Forms-A\"](G)||Rr[\"Arabic Presentation Forms-B\"](G))));if(I.imageName){var z=r[I.imageName];if(!z)continue;L=I.imageName,t.iconsInText=t.iconsInText||!0,M=z.paddedRect;var R=z.displaySize;I.scale=I.scale*mu/u,P={width:R[0],height:R[1],left:ju,top:-Bu,advance:O?R[1]:R[0]},k=b+(mu-R[1]*I.scale),D=P.advance;var N=O?R[0]*I.scale-mu*x:R[1]*I.scale-mu*x;0<N&&T<N&&(T=N)}else{var B=i[I.fontStack],F=B&&B[A];if(F&&F.rect)M=F.rect,P=F.metrics;else{var U=e[I.fontStack],j=U&&U[A];if(!j)continue;P=j.metrics}k=(x-I.scale)*mu}O?(t.verticalizable=!0,S.push({glyph:A,imageName:L,x:c,y:p+k,vertical:O,scale:I.scale,fontStack:I.fontStack,sectionIndex:C,metrics:P,rect:M}),c+=D*I.scale+s):(S.push({glyph:A,imageName:L,x:c,y:p+k,vertical:O,scale:I.scale,fontStack:I.fontStack,sectionIndex:C,metrics:P,rect:M}),c+=P.advance*I.scale+s)}if(0!==S.length){var q=c-s;h=Math.max(q,h),ic(S,0,S.length-1,m,T)}c=0;var V=f*x+T;w.lineOffset=Math.max(T,b),p+=V,d=Math.max(V,d),++g}else p+=f,++g}var G,Z=p-Hu,H=ec(o),K=H.horizontalAlign,W=H.verticalAlign;(function(t,e,i,r,n,o,a){var s,l=(e-i)*r;s=n!==f?-o*W-Hu:(-W*a+.5)*f;for(var u=0,c=t;u<c.length;u+=1)for(var p=0,h=c[u].positionedGlyphs;p<h.length;p+=1){var d=h[p];d.x+=l,d.y+=s}})(t.positionedLines,m,K,h,d,Z,n.length),t.top+=-W*Z,t.bottom=t.top+Z,t.left+=-K*h,t.right=t.left+h}(k,e,i,r,m,a,s,c,l,p,f),!function(){for(var t=0,e=A;t<e.length;t+=1)if(0!==e[t].positionedGlyphs.length)return;return 1}()&&k}Gu.forText=function(t,e){var i=new Gu;return i.scale=t||1,i.fontStack=e,i},Gu.forImage=function(t){var e=new Gu;return e.imageName=t,e},Ku.fromFeature=function(t,e){for(var i=new Ku,r=0;r<t.sections.length;r++){var n=t.sections[r];n.image?i.addImageSection(n):i.addTextSection(n,e)}return i},Ku.prototype.length=function(){return this.text.length},Ku.prototype.getSection=function(t){return this.sections[this.sectionIndex[t]]},Ku.prototype.getSectionIndex=function(t){return this.sectionIndex[t]},Ku.prototype.getCharCode=function(t){return this.text.charCodeAt(t)},Ku.prototype.verticalizePunctuation=function(){this.text=function(t){for(var e=\"\",i=0;i<t.length;i++){var r=t.charCodeAt(i+1)||null,n=t.charCodeAt(i-1)||null;r&&Fr(r)&&!fu[t[i+1]]||n&&Fr(n)&&!fu[t[i-1]]||!fu[t[i]]?e+=t[i]:e+=fu[t[i]]}return e}(this.text)},Ku.prototype.trim=function(){for(var t=0,e=0;e<this.text.length&&Xu[this.text.charCodeAt(e)];e++)t++;for(var i=this.text.length,r=this.text.length-1;0<=r&&t<=r&&Xu[this.text.charCodeAt(r)];r--)i--;this.text=this.text.substring(t,i),this.sectionIndex=this.sectionIndex.slice(t,i)},Ku.prototype.substring=function(t,e){var i=new Ku;return i.text=this.text.substring(t,e),i.sectionIndex=this.sectionIndex.slice(t,e),i.sections=this.sections,i},Ku.prototype.toString=function(){return this.text},Ku.prototype.getMaxScale=function(){var i=this;return this.sectionIndex.reduce(function(t,e){return Math.max(t,i.sections[e].scale)},0)},Ku.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(Gu.forText(t.scale,t.fontStack||e));for(var i=this.sections.length-1,r=0;r<t.text.length;++r)this.sectionIndex.push(i)},Ku.prototype.addImageSection=function(t){var e=t.image?t.image.name:\"\";if(0!==e.length){var i=this.getNextImageSectionCharCode();i?(this.text+=String.fromCharCode(i),this.sections.push(Gu.forImage(e)),this.sectionIndex.push(this.sections.length-1)):pt(\"Reached maximum number of images 6401\")}else pt(\"Can't add FormattedSection with an empty image.\")},Ku.prototype.getNextImageSectionCharCode=function(){return this.imageSectionID?63743<=this.imageSectionID?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var Xu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Yu={};function Ju(t,e,i,r,n,o){if(e.imageName){var a=r[e.imageName];return a?a.displaySize[0]*e.scale*mu/o+n:0}var s=i[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+n:0}function Qu(t,e,i,r){var n=Math.pow(t-e,2);return r?t<e?n/2:2*n:n+Math.abs(i)*i}function $u(t,e,i,r,n,o){for(var a=null,s=Qu(e,i,n,o),l=0,u=r;l<u.length;l+=1){var c=u[l],p=Qu(e-c.x,i,n,o)+c.badness;p<=s&&(a=c,s=p)}return{index:t,x:e,priorBreak:a,badness:s}}function tc(t,e,i,r,n,o,a){if(\"point\"!==o)return[];if(!t)return[];for(var s,l=[],u=function(t,e,i,r,n,o){for(var a=0,s=0;s<t.length();s++){var l=t.getSection(s);a+=Ju(t.getCharCode(s),l,r,n,e,o)}return a/Math.max(1,Math.ceil(a/i))}(t,e,i,r,n,a),c=0<=t.text.indexOf(\"\"),p=0,h=0;h<t.length();h++){var d=t.getSection(h),f=t.getCharCode(h);if(Xu[f]||(p+=Ju(f,d,r,n,e,a)),h<t.length()-1){var m=!((s=f)<11904||!(Rr[\"Bopomofo Extended\"](s)||Rr.Bopomofo(s)||Rr[\"CJK Compatibility Forms\"](s)||Rr[\"CJK Compatibility Ideographs\"](s)||Rr[\"CJK Compatibility\"](s)||Rr[\"CJK Radicals Supplement\"](s)||Rr[\"CJK Strokes\"](s)||Rr[\"CJK Symbols and Punctuation\"](s)||Rr[\"CJK Unified Ideographs Extension A\"](s)||Rr[\"CJK Unified Ideographs\"](s)||Rr[\"Enclosed CJK Letters and Months\"](s)||Rr[\"Halfwidth and Fullwidth Forms\"](s)||Rr.Hiragana(s)||Rr[\"Ideographic Description Characters\"](s)||Rr[\"Kangxi Radicals\"](s)||Rr[\"Katakana Phonetic Extensions\"](s)||Rr.Katakana(s)||Rr[\"Vertical Forms\"](s)||Rr[\"Yi Radicals\"](s)||Rr[\"Yi Syllables\"](s)));(Yu[f]||m||d.imageName)&&l.push($u(h+1,p,u,l,(g=f,y=t.getCharCode(h+1),v=void 0,v=0,10===g&&(v-=1e4),m&&c&&(v+=150),40!==g&&65288!==g||(v+=50),41!==y&&65289!==y||(v+=50),v),!1))}}var g,y,v;return function t(e){return e?t(e.priorBreak).concat(e.index):[]}($u(t.length(),p,u,l,0,!0))}function ec(t){var e=.5,i=.5;switch(t){case\"right\":case\"top-right\":case\"bottom-right\":e=1;break;case\"left\":case\"top-left\":case\"bottom-left\":e=0}switch(t){case\"bottom\":case\"bottom-right\":case\"bottom-left\":i=1;break;case\"top\":case\"top-right\":case\"top-left\":i=0}return{horizontalAlign:e,verticalAlign:i}}function ic(t,e,i,r,n){if(r||n)for(var o=t[i],a=o.metrics.advance*o.scale,s=(t[i].x+a)*r,l=e;l<=i;l++)t[l].x-=s,t[l].y+=n}function rc(t,e,i,r,n,o){var a,s=t.image;if(s.content){var l=s.content,u=s.pixelRatio||1;a=[l[0]/u,l[1]/u,s.displaySize[0]-l[2]/u,s.displaySize[1]-l[3]/u]}var c,p,h,d,f=e.left*o,m=e.right*o;p=\"width\"===i||\"both\"===i?(d=n[0]+f-r[3],n[0]+m+r[1]):(d=n[0]+(f+m-s.displaySize[0])/2)+s.displaySize[0];var g=e.top*o,y=e.bottom*o;return h=\"height\"===i||\"both\"===i?(c=n[1]+g-r[0],n[1]+y+r[2]):(c=n[1]+(g+y-s.displaySize[1])/2)+s.displaySize[1],{image:s,top:c,right:p,bottom:h,left:d,collisionPadding:a}}Yu[10]=!0,Yu[32]=!0,Yu[38]=!0,Yu[40]=!0,Yu[41]=!0,Yu[43]=!0,Yu[45]=!0,Yu[47]=!0,Yu[173]=!0,Yu[183]=!0,Yu[8203]=!0,Yu[8208]=!0,Yu[8211]=!0,Yu[8231]=!0;var nc,oc=((nc=ct)&&(ac.__proto__=nc),((ac.prototype=Object.create(nc&&nc.prototype)).constructor=ac).prototype.clone=function(){return new ac(this.x,this.y,this.angle,this.segment)},ac);function ac(t,e,i,r){nc.call(this,t,e),this.angle=i,void 0!==r&&(this.segment=r)}kr(\"Anchor\",oc);var sc=128;function lc(t,e){var i=e.expression;if(\"constant\"===i.kind)return{kind:\"constant\",layoutSize:i.evaluate(new Qr(t+1))};if(\"source\"===i.kind)return{kind:\"source\"};for(var r=i.zoomStops,n=i.interpolationType,o=0;o<r.length&&r[o]<=t;)o++;for(var a=o=Math.max(0,o-1);a<r.length&&r[a]<t+1;)a++;a=Math.min(r.length-1,a);var s=r[o],l=r[a];return\"composite\"===i.kind?{kind:\"composite\",minZoom:s,maxZoom:l,interpolationType:n}:{kind:\"camera\",minZoom:s,maxZoom:l,minSize:i.evaluate(new Qr(s)),maxSize:i.evaluate(new Qr(l)),interpolationType:n}}function uc(t,e,i){var r=e.uSize,n=e.uSizeT,o=i.lowerSize,a=i.upperSize;return\"source\"===t.kind?o/sc:\"composite\"===t.kind?ze(o/sc,a/sc,n):r}function cc(t,e){var i=0,r=0;if(\"constant\"===t.kind)r=t.layoutSize;else if(\"source\"!==t.kind){var n=t.interpolationType,o=t.minZoom,a=t.maxZoom,s=n?l(Qe.interpolationFactor(n,e,o,a),0,1):0;\"camera\"===t.kind?r=ze(t.minSize,t.maxSize,s):i=s}return{uSizeT:i,uSize:r}}var pc=Object.freeze({__proto__:null,getSizeData:lc,evaluateSizeForFeature:uc,evaluateSizeForZoom:cc,SIZE_PACK_FACTOR:sc});function hc(t,e,i,r,n){if(void 0===e.segment)return 1;for(var o=e,a=e.segment+1,s=0;-i/2<s;){if(--a<0)return;s-=t[a].dist(o),o=t[a]}s+=t[a].dist(t[a+1]),a++;for(var l=[],u=0;s<i/2;){var c=t[a-1],p=t[a],h=t[a+1];if(!h)return;var d=c.angleTo(p)-p.angleTo(h);for(d=Math.abs((d+3*Math.PI)%(2*Math.PI)-Math.PI),l.push({distance:s,angleDelta:d}),u+=d;s-l[0].distance>r;)u-=l.shift().angleDelta;if(n<u)return;a++,s+=p.dist(h)}return 1}function dc(t){for(var e=0,i=0;i<t.length-1;i++)e+=t[i].dist(t[i+1]);return e}function fc(t,e,i){return t?.6*e*i:0}function mc(t,e){return Math.max(t?t.right-t.left:0,e?e.right-e.left:0)}function gc(t,e,i,r,n,o){for(var a=fc(i,n,o),s=mc(i,r)*o,l=0,u=dc(t)/2,c=0;c<t.length-1;c++){var p=t[c],h=t[c+1],d=p.dist(h);if(u<l+d){var f=(u-l)/d,m=ze(p.x,h.x,f),g=ze(p.y,h.y,f),y=new oc(m,g,h.angleTo(p),c);return y._round(),!a||hc(t,y,s,a,e)?y:void 0}l+=d}}var yc=ju;function vc(I,C,A,t){function e(t,e){return t+e[1]-e[0]}var i=[],k=I.image,P=k.pixelRatio,r=k.paddedRect.w-2*yc,n=k.paddedRect.h-2*yc,M=I.right-I.left,L=I.bottom-I.top,o=k.stretchX||[[0,r]],a=k.stretchY||[[0,n]],D=o.reduce(e,0),O=a.reduce(e,0),s=r-D,l=n-O,z=0,R=D,N=0,B=O,F=0,U=s,j=0,q=l;if(k.content&&t){var u=k.content;z=_c(o,0,u[0]),N=_c(a,0,u[1]),R=_c(o,u[0],u[2]),B=_c(a,u[1],u[3]),F=u[0]-z,j=u[1]-N,U=u[2]-u[0]-R,q=u[3]-u[1]-B}function c(t,e,i,r){var n=bc(t.stretch-z,R,M,I.left),o=wc(t.fixed-F,U,t.stretch,D),a=bc(e.stretch-N,B,L,I.top),s=wc(e.fixed-j,q,e.stretch,O),l=bc(i.stretch-z,R,M,I.left),u=wc(i.fixed-F,U,i.stretch,D),c=bc(r.stretch-N,B,L,I.top),p=wc(r.fixed-j,q,r.stretch,O),h=new ct(n,a),d=new ct(l,a),f=new ct(l,c),m=new ct(n,c),g=new ct(o/P,s/P),y=new ct(u/P,p/P),v=C*Math.PI/180;if(v){var _=Math.sin(v),x=Math.cos(v),b=[x,-_,_,x];h._matMult(b),d._matMult(b),m._matMult(b),f._matMult(b)}var w=t.stretch+t.fixed,S=i.stretch+i.fixed,T=e.stretch+e.fixed,E=r.stretch+r.fixed;return{tl:h,tr:d,bl:m,br:f,tex:{x:k.paddedRect.x+yc+w,y:k.paddedRect.y+yc+T,w:S-w,h:E-T},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:g,pixelOffsetBR:y,minFontScaleX:U/P/M,minFontScaleY:q/P/L,isSDF:A}}if(t&&(k.stretchX||k.stretchY))for(var p=xc(o,s,D),h=xc(a,l,O),d=0;d<p.length-1;d++)for(var f=p[d],m=p[d+1],g=0;g<h.length-1;g++){var y=h[g],v=h[g+1];i.push(c(f,y,m,v))}else i.push(c({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:1+r},{fixed:0,stretch:1+n}));return i}function _c(t,e,i){for(var r=0,n=0,o=t;n<o.length;n+=1){var a=o[n];r+=Math.max(e,Math.min(i,a[1]))-Math.max(e,Math.min(i,a[0]))}return r}function xc(t,e,i){for(var r=[{fixed:-yc,stretch:0}],n=0,o=t;n<o.length;n+=1){var a=o[n],s=a[0],l=a[1],u=r[r.length-1];r.push({fixed:s-u.stretch,stretch:u.stretch}),r.push({fixed:s-u.stretch,stretch:u.stretch+(l-s)})}return r.push({fixed:e+yc,stretch:i}),r}function bc(t,e,i,r){return t/e*i+r}function wc(t,e,i,r){return t-e*i/r}function Sc(t,e,i,r,n,o,a,s,l,u,c,p){var h=a.top*s-l,d=a.bottom*s+l,f=a.left*s-l,m=a.right*s+l,g=a.collisionPadding;if(g&&(f-=g[0]*s,h-=g[1]*s,m+=g[2]*s,d+=g[3]*s),this.boxStartIndex=t.length,u){var y=d-h,v=m-f;0<y&&(y=Math.max(10*s,y),this._addLineCollisionCircles(t,e,i,i.segment,v,y,r,n,o,c))}else{if(p){var _=new ct(f,h),x=new ct(m,h),b=new ct(f,d),w=new ct(m,d),S=p*Math.PI/180;_._rotate(S),x._rotate(S),b._rotate(S),w._rotate(S),f=Math.min(_.x,x.x,b.x,w.x),m=Math.max(_.x,x.x,b.x,w.x),h=Math.min(_.y,x.y,b.y,w.y),d=Math.max(_.y,x.y,b.y,w.y)}t.emplaceBack(i.x,i.y,f,h,m,d,r,n,o,0,0)}this.boxEndIndex=t.length}Sc.prototype._addLineCollisionCircles=function(t,e,i,r,n,o,a,s,l,u){var c=o/2,p=Math.floor(n/c)||1,h=1+.4*Math.log(u)/Math.LN2,d=Math.floor(p*h/2),f=-o/2,m=i,g=r+1,y=f,v=-n/2,_=v-n/4;do{if(--g<0){if(v<y)return;g=0;break}y-=e[g].dist(m),m=e[g]}while(_<y);for(var x=e[g].dist(e[g+1]),b=-d;b<p+d;b++){var w=b*c,S=v+w;if(w<0&&(S+=w),n<w&&(S+=w-n),!(S<y)){for(;y+x<S;){if(y+=x,++g+1>=e.length)return;x=e[g].dist(e[g+1])}var T=S-y,E=e[g],I=e[g+1].sub(E)._unit()._mult(T)._add(E)._round(),C=Math.abs(S-f)<c?0:.8*(S-f);t.emplaceBack(I.x,I.y,-o/2,-o/2,o/2,o/2,a,s,l,o/2,C)}}};var Tc=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Ec),this.data=t,this.length=this.data.length,this.compare=e,0<this.length)for(var i=(this.length>>1)-1;0<=i;i--)this._down(i)};function Ec(t,e){return t<e?-1:e<t?1:0}function Ic(t,e,i){void 0===e&&(e=1),void 0===i&&(i=!1);for(var r=1/0,n=1/0,o=-1/0,a=-1/0,s=t[0],l=0;l<s.length;l++){var u=s[l];(!l||u.x<r)&&(r=u.x),(!l||u.y<n)&&(n=u.y),(!l||u.x>o)&&(o=u.x),(!l||u.y>a)&&(a=u.y)}var c=o-r,p=a-n,h=Math.min(c,p),d=h/2,f=new Tc([],Cc);if(0===h)return new ct(r,n);for(var m=r;m<o;m+=h)for(var g=n;g<a;g+=h)f.push(new Ac(m+d,g+d,d,t));for(var y=function(t){for(var e=0,i=0,r=0,n=t[0],o=0,a=n.length,s=a-1;o<a;s=o++){var l=n[o],u=n[s],c=l.x*u.y-u.x*l.y;i+=(l.x+u.x)*c,r+=(l.y+u.y)*c,e+=3*c}return new Ac(i/e,r/e,0,t)}(t),v=f.length;f.length;){var _=f.pop();(_.d>y.d||!y.d)&&(y=_,i&&console.log(\"found best %d after %d probes\",Math.round(1e4*_.d)/1e4,v)),_.max-y.d<=e||(d=_.h/2,f.push(new Ac(_.p.x-d,_.p.y-d,d,t)),f.push(new Ac(_.p.x+d,_.p.y-d,d,t)),f.push(new Ac(_.p.x-d,_.p.y+d,d,t)),f.push(new Ac(_.p.x+d,_.p.y+d,d,t)),v+=4)}return i&&(console.log(\"num probes: \"+v),console.log(\"best distance: \"+y.d)),y.p}function Cc(t,e){return e.max-t.max}function Ac(t,e,i,r){this.p=new ct(t,e),this.h=i,this.d=function(t,e){for(var i=!1,r=1/0,n=0;n<e.length;n++)for(var o=e[n],a=0,s=o.length,l=s-1;a<s;l=a++){var u=o[a],c=o[l];u.y>t.y!=c.y>t.y&&t.x<(c.x-u.x)*(t.y-u.y)/(c.y-u.y)+u.x&&(i=!i),r=Math.min(r,as(t,u,c))}return(i?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}Tc.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},Tc.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,0<this.length&&(this.data[0]=e,this._down(0)),t}},Tc.prototype.peek=function(){return this.data[0]},Tc.prototype._up=function(t){for(var e=this.data,i=this.compare,r=e[t];0<t;){var n=t-1>>1,o=e[n];if(0<=i(r,o))break;e[t]=o,t=n}e[t]=r},Tc.prototype._down=function(t){for(var e=this.data,i=this.compare,r=this.length>>1,n=e[t];t<r;){var o=1+(t<<1),a=e[o],s=o+1;if(s<this.length&&i(e[s],a)<0&&(a=e[o=s]),0<=i(a,n))break;e[t]=a,t=o}e[t]=n};var kc=Number.POSITIVE_INFINITY;function Pc(t,e){return e[1]!==kc?function(t,e,i){var r=0,n=0;switch(e=Math.abs(e),i=Math.abs(i),t){case\"top-right\":case\"top-left\":case\"top\":n=i-7;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":n=7-i}switch(t){case\"top-right\":case\"bottom-right\":case\"right\":r=-e;break;case\"top-left\":case\"bottom-left\":case\"left\":r=e}return[r,n]}(t,e[0],e[1]):function(t,e){var i=0,r=0;e<0&&(e=0);var n=e/Math.sqrt(2);switch(t){case\"top-right\":case\"top-left\":r=n-7;break;case\"bottom-right\":case\"bottom-left\":r=7-n;break;case\"bottom\":r=7-e;break;case\"top\":r=e-7}switch(t){case\"top-right\":case\"bottom-right\":i=-n;break;case\"top-left\":case\"bottom-left\":i=n;break;case\"left\":i=e;break;case\"right\":i=-e}return[i,r]}(t,e[0])}function Mc(t){switch(t){case\"right\":case\"top-right\":case\"bottom-right\":return\"right\";case\"left\":case\"top-left\":case\"bottom-left\":return\"left\"}return\"center\"}var Lc=255,Dc=Lc*sc;function Oc(t,e,i,r,n,o,a,s,l,u,c,p,h,d){var f=function(t,e,i,r,n,o,a){for(var s=i.layout.get(\"text-rotate\").evaluate(n,{})*Math.PI/180,l=[],u=0,c=t.positionedLines;u<c.length;u+=1)for(var p=c[u],h=0,d=p.positionedGlyphs;h<d.length;h+=1){var f=d[h];if(f.rect){var m=f.rect||{},g=Bu+1,y=!0,v=1,_=0,x=(r||a)&&f.vertical,b=f.metrics.advance*f.scale/2;if(a&&t.verticalizable){var w=(f.scale-1)*mu,S=(mu-f.metrics.width*f.scale)/2;_=p.lineOffset/2-(f.imageName?-S:w)}if(f.imageName){var T=o[f.imageName];y=T.sdf,v=T.pixelRatio,g=ju/v}var E=r?[f.x+b,f.y]:[0,0],I=r?[0,0]:[f.x+b+e[0],f.y+e[1]-_],C=[0,0];x&&(C=I,I=[0,0]);var A=(f.metrics.left-g)*f.scale-b+I[0],k=(-f.metrics.top-g)*f.scale+I[1],P=A+m.w*f.scale/v,M=k+m.h*f.scale/v,L=new ct(A,k),D=new ct(P,k),O=new ct(A,M),z=new ct(P,M);if(x){var R=new ct(-b,b-Hu),N=-Math.PI/2,B=mu/2-b,F=f.imageName?B:0,U=new ct(5-Hu-B,-F),j=new(Function.prototype.bind.apply(ct,[null].concat(C)));L._rotateAround(N,R)._add(U)._add(j),D._rotateAround(N,R)._add(U)._add(j),O._rotateAround(N,R)._add(U)._add(j),z._rotateAround(N,R)._add(U)._add(j)}if(s){var q=Math.sin(s),V=Math.cos(s),G=[V,-q,q,V];L._matMult(G),D._matMult(G),O._matMult(G),z._matMult(G)}var Z=new ct(0,0),H=new ct(0,0);l.push({tl:L,tr:D,bl:O,br:z,tex:m,writingMode:t.writingMode,glyphOffset:E,sectionIndex:f.sectionIndex,isSDF:y,pixelOffsetTL:Z,pixelOffsetBR:H,minFontScaleX:0,minFontScaleY:0})}}return l}(i,s,n,o,a,r,t.allowVerticalPlacement),m=t.textSizeData,g=null;\"source\"===m.kind?(g=[sc*n.layout.get(\"text-size\").evaluate(a,{})])[0]>Dc&&pt(t.layerIds[0]+': Value for \"text-size\" is >= '+Lc+'. Reduce your \"text-size\".'):\"composite\"===m.kind&&((g=[sc*d.compositeTextSizes[0].evaluate(a,{}),sc*d.compositeTextSizes[1].evaluate(a,{})])[0]>Dc||g[1]>Dc)&&pt(t.layerIds[0]+': Value for \"text-size\" is >= '+Lc+'. Reduce your \"text-size\".'),t.addSymbols(t.text,f,g,s,o,a,u,e,l.lineStartIndex,l.lineLength,h);for(var y=0,v=c;y<v.length;y+=1)p[v[y]]=t.text.placedSymbolArray.length-1;return 4*f.length}function zc(t){for(var e in t)return t[e];return null}function Rc(t,e,i,r){var n=t.compareText;if(e in n){for(var o=n[e],a=o.length-1;0<=a;a--)if(r.dist(o[a])<i)return 1}else n[e]=[];return n[e].push(r),0}var Nc=zl.VectorTileFeature.types,Bc=[{name:\"a_fade_opacity\",components:1,type:\"Uint8\",offset:0}];function Fc(t,e,i,r,n,o,a,s,l,u,c,p,h){var d=s?Math.min(Dc,Math.round(s[0])):0,f=s?Math.min(Dc,Math.round(s[1])):0;t.emplaceBack(e,i,Math.round(32*r),Math.round(32*n),o,a,(d<<1)+(l?1:0),f,16*u,16*c,256*p,256*h)}function Uc(t,e,i){t.emplaceBack(e.x,e.y,i),t.emplaceBack(e.x,e.y,i),t.emplaceBack(e.x,e.y,i),t.emplaceBack(e.x,e.y,i)}function jc(t){for(var e=0,i=t.sections;e<i.length;e+=1)if(jr(i[e].text))return 1}function qc(t){this.layoutVertexArray=new qn,this.indexArray=new wo,this.programConfigurations=t,this.segments=new aa,this.dynamicLayoutVertexArray=new Zn,this.opacityVertexArray=new Wn,this.placedSymbolArray=new qo}function Vc(t,e,i){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new i,this.segments=new aa,this.collisionVertexArray=new ro}function Gc(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[];var e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=lc(this.zoom,e[\"text-size\"]),this.iconSizeData=lc(this.zoom,e[\"icon-size\"]);var i=this.layers[0].layout,r=i.get(\"symbol-sort-key\"),n=i.get(\"symbol-z-order\");this.sortFeaturesByKey=\"viewport-y\"!==n&&void 0!==r.constantOr(1);var o=\"viewport-y\"===n||\"auto\"===n&&!this.sortFeaturesByKey;this.sortFeaturesByY=o&&(i.get(\"text-allow-overlap\")||i.get(\"icon-allow-overlap\")||i.get(\"text-ignore-placement\")||i.get(\"icon-ignore-placement\")),\"point\"===i.get(\"symbol-placement\")&&(this.writingModes=i.get(\"text-writing-mode\").map(function(t){return Zu[t]})),this.stateDependentLayerIds=this.layers.filter(function(t){return t.isStateDependent()}).map(function(t){return t.id}),this.sourceID=t.sourceID}function Zc(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Kt,this.defaultValue=t}qc.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length},qc.prototype.upload=function(t,e,i,r){this.isEmpty()||(i&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,au.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,su.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Bc,!0),this.opacityVertexBuffer.itemSize=1),(i||r)&&this.programConfigurations.upload(t))},qc.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},kr(\"SymbolBuffers\",qc),Vc.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,lu.members,!0)},Vc.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},kr(\"CollisionBuffers\",Vc),Gc.prototype.createArrays=function(){this.text=new qc(new Wa(au.members,this.layers,this.zoom,function(t){return/^text/.test(t)})),this.icon=new qc(new Wa(au.members,this.layers,this.zoom,function(t){return/^icon/.test(t)})),this.glyphOffsetArray=new Yo,this.lineVertexArray=new ta,this.symbolInstances=new Ho},Gc.prototype.calculateGlyphDependencies=function(t,e,i,r,n){for(var o=0;o<t.length;o++)if(e[t.charCodeAt(o)]=!0,(i||r)&&n){var a=fu[t.charAt(o)];a&&(e[a.charCodeAt(0)]=!0)}},Gc.prototype.populate=function(t,e){var i=this.layers[0],r=i.layout,n=r.get(\"text-font\"),o=r.get(\"text-field\"),a=r.get(\"icon-image\"),s=(\"constant\"!==o.value.kind||o.value.value instanceof pe&&!o.value.value.isEmpty()||0<o.value.value.toString().length)&&(\"constant\"!==n.value.kind||0<n.value.value.length),l=(\"constant\"!==a.value.kind||!!a.value.value)&&0<Object.keys(a.parameters).length,u=r.get(\"symbol-sort-key\");if(this.features=[],s||l){for(var c=e.iconDependencies,p=e.glyphDependencies,h=e.availableImages,d=new Qr(this.zoom),f=0,m=t;f<m.length;f+=1){var g=m[f],y=g.feature,v=g.id,_=g.index,x=g.sourceLayerIndex;if(i._featureFilter(d,y)){var b=void 0;if(s){var w=i.getValueAndResolveTokens(\"text-field\",y,h),S=pe.factory(w);jc(S)&&(this.hasRTLText=!0),(!this.hasRTLText||\"unavailable\"===Yr()||this.hasRTLText&&tn.isParsed())&&(b=pu(S,i,y))}var T=void 0;if(l){var E=i.getValueAndResolveTokens(\"icon-image\",y,h);T=E instanceof he?E:he.fromString(E)}if(b||T){var I=this.sortFeaturesByKey?u.evaluate(y,{}):void 0,C={id:v,text:b,icon:T,index:_,sourceLayerIndex:x,geometry:Qa(y),properties:y.properties,type:Nc[y.type],sortKey:I};if(this.features.push(C),T&&(c[T.name]=!0),b){var A=n.evaluate(y,{}).join(\",\"),k=\"map\"===r.get(\"text-rotation-alignment\")&&\"point\"!==r.get(\"symbol-placement\");this.allowVerticalPlacement=this.writingModes&&0<=this.writingModes.indexOf(Zu.vertical);for(var P=0,M=b.sections;P<M.length;P+=1){var L=M[P];if(L.image)c[L.image.name]=!0;else{var D=Nr(b.toString()),O=L.fontStack||A,z=p[O]=p[O]||{};this.calculateGlyphDependencies(L.text,z,k,this.allowVerticalPlacement,D)}}}}}}\"line\"===r.get(\"symbol-placement\")&&(this.features=function(e){var n={},o={},a=[],i=0;function t(t){a.push(e[t]),i++}function r(t,e,i){var r=o[t];return delete o[t],o[e]=r,a[r].geometry[0].pop(),a[r].geometry[0]=a[r].geometry[0].concat(i[0]),r}function s(t,e,i){var r=n[e];return delete n[e],n[t]=r,a[r].geometry[0].shift(),a[r].geometry[0]=i[0].concat(a[r].geometry[0]),r}function l(t,e,i){var r=i?e[0][e[0].length-1]:e[0][0];return t+\":\"+r.x+\":\"+r.y}for(var u=0;u<e.length;u++){var c=e[u],p=c.geometry,h=c.text?c.text.toString():null;if(h){var d=l(h,p),f=l(h,p,!0);if(d in o&&f in n&&o[d]!==n[f]){var m=s(d,f,p),g=r(d,f,a[m].geometry);delete n[d],delete o[f],o[l(h,a[g].geometry,!0)]=g,a[m].geometry=null}else d in o?r(d,f,p):f in n?s(d,f,p):(t(u),n[d]=i-1,o[f]=i-1)}else t(u)}return a.filter(function(t){return t.geometry})}(this.features)),this.sortFeaturesByKey&&this.features.sort(function(t,e){return t.sortKey-e.sortKey})}},Gc.prototype.update=function(t,e,i){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,i),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,i))},Gc.prototype.isEmpty=function(){return 0===this.symbolInstances.length&&!this.hasRTLText},Gc.prototype.uploadPending=function(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload},Gc.prototype.upload=function(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t),this.textCollisionCircle.upload(t),this.iconCollisionCircle.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0},Gc.prototype.destroyDebugData=function(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy(),this.textCollisionCircle.destroy(),this.iconCollisionCircle.destroy()},Gc.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()},Gc.prototype.addToLineVertexArray=function(t,e){var i=this.lineVertexArray.length;if(void 0!==t.segment){for(var r=t.dist(e[t.segment+1]),n=t.dist(e[t.segment]),o={},a=t.segment+1;a<e.length;a++)o[a]={x:e[a].x,y:e[a].y,tileUnitDistanceFromAnchor:r},a<e.length-1&&(r+=e[a+1].dist(e[a]));for(var s=t.segment||0;0<=s;s--)o[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:n},0<s&&(n+=e[s-1].dist(e[s]));for(var l=0;l<e.length;l++){var u=o[l];this.lineVertexArray.emplaceBack(u.x,u.y,u.tileUnitDistanceFromAnchor)}}return{lineStartIndex:i,lineLength:this.lineVertexArray.length-i}},Gc.prototype.addSymbols=function(t,e,i,r,n,o,a,s,l,u,c){for(var p=t.indexArray,h=t.layoutVertexArray,d=t.segments.prepareSegment(4*e.length,h,p,o.sortKey),f=this.glyphOffsetArray.length,m=d.vertexLength,g=this.allowVerticalPlacement&&a===Zu.vertical?Math.PI/2:0,y=o.text&&o.text.sections,v=0;v<e.length;v++){var _=e[v],x=_.tl,b=_.tr,w=_.bl,S=_.br,T=_.tex,E=_.pixelOffsetTL,I=_.pixelOffsetBR,C=_.minFontScaleX,A=_.minFontScaleY,k=_.glyphOffset,P=_.isSDF,M=_.sectionIndex,L=d.vertexLength,D=k[1];Fc(h,s.x,s.y,x.x,D+x.y,T.x,T.y,i,P,E.x,E.y,C,A),Fc(h,s.x,s.y,b.x,D+b.y,T.x+T.w,T.y,i,P,I.x,E.y,C,A),Fc(h,s.x,s.y,w.x,D+w.y,T.x,T.y+T.h,i,P,E.x,I.y,C,A),Fc(h,s.x,s.y,S.x,D+S.y,T.x+T.w,T.y+T.h,i,P,I.x,I.y,C,A),Uc(t.dynamicLayoutVertexArray,s,g),p.emplaceBack(L,L+1,L+2),p.emplaceBack(L+1,L+2,L+3),d.vertexLength+=4,d.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(k[0]),v!==e.length-1&&M===e[v+1].sectionIndex||t.programConfigurations.populatePaintArrays(h.length,o,o.index,{},y&&y[M])}t.placedSymbolArray.emplaceBack(s.x,s.y,f,this.glyphOffsetArray.length-f,m,l,u,s.segment,i?i[0]:0,i?i[1]:0,r[0],r[1],a,0,!1,0,c)},Gc.prototype._addCollisionDebugVertex=function(t,e,i,r,n,o){return e.emplaceBack(0,0),t.emplaceBack(i.x,i.y,r,n,Math.round(o.x),Math.round(o.y))},Gc.prototype.addCollisionDebugVertices=function(t,e,i,r,n,o,a,s){var l=n.segments.prepareSegment(4,n.layoutVertexArray,n.indexArray),u=l.vertexLength,c=n.layoutVertexArray,p=n.collisionVertexArray,h=a.anchorX,d=a.anchorY;if(this._addCollisionDebugVertex(c,p,o,h,d,new ct(t,e)),this._addCollisionDebugVertex(c,p,o,h,d,new ct(i,e)),this._addCollisionDebugVertex(c,p,o,h,d,new ct(i,r)),this._addCollisionDebugVertex(c,p,o,h,d,new ct(t,r)),l.vertexLength+=4,s){var f=n.indexArray;f.emplaceBack(u,u+1,u+2),f.emplaceBack(u,u+2,u+3),l.primitiveLength+=2}else{var m=n.indexArray;m.emplaceBack(u,u+1),m.emplaceBack(u+1,u+2),m.emplaceBack(u+2,u+3),m.emplaceBack(u+3,u),l.primitiveLength+=4}},Gc.prototype.addDebugCollisionBoxes=function(t,e,i,r){for(var n=t;n<e;n++){var o=this.collisionBoxArray.get(n),a=o.x1,s=o.y1,l=o.x2,u=o.y2,c=0<o.radius;this.addCollisionDebugVertices(a,s,l,u,c?r?this.textCollisionCircle:this.iconCollisionCircle:r?this.textCollisionBox:this.iconCollisionBox,o.anchorPoint,i,c)}},Gc.prototype.generateCollisionDebugBuffers=function(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Vc(to,uu.members,Eo),this.iconCollisionBox=new Vc(to,uu.members,Eo),this.textCollisionCircle=new Vc(to,cu.members,wo),this.iconCollisionCircle=new Vc(to,cu.members,wo);for(var t=0;t<this.symbolInstances.length;t++){var e=this.symbolInstances.get(t);this.addDebugCollisionBoxes(e.textBoxStartIndex,e.textBoxEndIndex,e,!0),this.addDebugCollisionBoxes(e.verticalTextBoxStartIndex,e.verticalTextBoxEndIndex,e,!0),this.addDebugCollisionBoxes(e.iconBoxStartIndex,e.iconBoxEndIndex,e,!1),this.addDebugCollisionBoxes(e.verticalIconBoxStartIndex,e.verticalIconBoxEndIndex,e,!1)}},Gc.prototype._deserializeCollisionBoxesForSymbol=function(t,e,i,r,n,o,a,s,l){for(var u={},c=e;c<i;c++){var p=t.get(c);if(0===p.radius){u.textBox={x1:p.x1,y1:p.y1,x2:p.x2,y2:p.y2,anchorPointX:p.anchorPointX,anchorPointY:p.anchorPointY},u.textFeatureIndex=p.featureIndex;break}u.textCircles||(u.textCircles=[],u.textFeatureIndex=p.featureIndex),u.textCircles.push(p.anchorPointX,p.anchorPointY,p.radius,p.signedDistanceFromAnchor,1)}for(var h=r;h<n;h++){var d=t.get(h);if(0===d.radius){u.verticalTextBox={x1:d.x1,y1:d.y1,x2:d.x2,y2:d.y2,anchorPointX:d.anchorPointX,anchorPointY:d.anchorPointY},u.verticalTextFeatureIndex=d.featureIndex;break}}for(var f=o;f<a;f++){var m=t.get(f);if(0===m.radius){u.iconBox={x1:m.x1,y1:m.y1,x2:m.x2,y2:m.y2,anchorPointX:m.anchorPointX,anchorPointY:m.anchorPointY},u.iconFeatureIndex=m.featureIndex;break}}for(var g=s;g<l;g++){var y=t.get(g);if(0===y.radius){u.verticalIconBox={x1:y.x1,y1:y.y1,x2:y.x2,y2:y.y2,anchorPointX:y.anchorPointX,anchorPointY:y.anchorPointY},u.verticalIconFeatureIndex=y.featureIndex;break}}return u},Gc.prototype.deserializeCollisionBoxes=function(t){this.collisionArrays=[];for(var e=0;e<this.symbolInstances.length;e++){var i=this.symbolInstances.get(e);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t,i.textBoxStartIndex,i.textBoxEndIndex,i.verticalTextBoxStartIndex,i.verticalTextBoxEndIndex,i.iconBoxStartIndex,i.iconBoxEndIndex,i.verticalIconBoxStartIndex,i.verticalIconBoxEndIndex))}},Gc.prototype.hasTextData=function(){return 0<this.text.segments.get().length},Gc.prototype.hasIconData=function(){return 0<this.icon.segments.get().length},Gc.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox&&this.textCollisionCircle&&this.iconCollisionCircle},Gc.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&0<this.textCollisionBox.segments.get().length},Gc.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&0<this.iconCollisionBox.segments.get().length},Gc.prototype.hasTextCollisionCircleData=function(){return this.hasDebugData()&&0<this.textCollisionCircle.segments.get().length},Gc.prototype.hasIconCollisionCircleData=function(){return this.hasDebugData()&&0<this.iconCollisionCircle.segments.get().length},Gc.prototype.addIndicesForPlacedSymbol=function(t,e){for(var i=t.placedSymbolArray.get(e),r=i.vertexStartIndex+4*i.numGlyphs,n=i.vertexStartIndex;n<r;n+=4)t.indexArray.emplaceBack(n,n+1,n+2),t.indexArray.emplaceBack(n+1,n+2,n+3)},Gc.prototype.getSortedSymbolIndexes=function(t){if(this.sortedAngle===t&&void 0!==this.symbolInstanceIndexes)return this.symbolInstanceIndexes;for(var e=Math.sin(t),i=Math.cos(t),r=[],n=[],o=[],a=0;a<this.symbolInstances.length;++a){o.push(a);var s=this.symbolInstances.get(a);r.push(0|Math.round(e*s.anchorX+i*s.anchorY)),n.push(s.featureIndex)}return o.sort(function(t,e){return r[t]-r[e]||n[e]-n[t]}),o},Gc.prototype.addToSortKeyRanges=function(t,e){var i=this.sortKeyRanges[this.sortKeyRanges.length-1];i&&i.sortKey===e?i.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1})},Gc.prototype.sortFeatures=function(t){var r=this;if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(1<this.text.segments.get().length||1<this.icon.segments.get().length)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var e=0,i=this.symbolInstanceIndexes;e<i.length;e+=1){var n=i[e],o=this.symbolInstances.get(n);this.featureSortOrder.push(o.featureIndex),[o.rightJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.leftJustifiedTextSymbolIndex].forEach(function(t,e,i){0<=t&&i.indexOf(t)===e&&r.addIndicesForPlacedSymbol(r.text,t)}),0<=o.verticalPlacedTextSymbolIndex&&this.addIndicesForPlacedSymbol(this.text,o.verticalPlacedTextSymbolIndex),0<=o.placedIconSymbolIndex&&this.addIndicesForPlacedSymbol(this.icon,o.placedIconSymbolIndex),0<=o.verticalPlacedIconSymbolIndex&&this.addIndicesForPlacedSymbol(this.icon,o.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},kr(\"SymbolBucket\",Gc,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),Gc.MAX_GLYPHS=65535,Gc.addDynamicAttributes=Uc;var Hc=new yn({\"symbol-placement\":new cn(Nt.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new cn(Nt.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new cn(Nt.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new pn(Nt.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new cn(Nt.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new cn(Nt.layout_symbol[\"icon-allow-overlap\"]),\"icon-ignore-placement\":new cn(Nt.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new cn(Nt.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new cn(Nt.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new pn(Nt.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new cn(Nt.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new cn(Nt.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new pn(Nt.layout_symbol[\"icon-image\"]),\"icon-rotate\":new pn(Nt.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new cn(Nt.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new cn(Nt.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new pn(Nt.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new pn(Nt.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new cn(Nt.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new cn(Nt.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new cn(Nt.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new pn(Nt.layout_symbol[\"text-field\"]),\"text-font\":new pn(Nt.layout_symbol[\"text-font\"]),\"text-size\":new pn(Nt.layout_symbol[\"text-size\"]),\"text-max-width\":new pn(Nt.layout_symbol[\"text-max-width\"]),\"text-line-height\":new cn(Nt.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new pn(Nt.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new pn(Nt.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new pn(Nt.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new cn(Nt.layout_symbol[\"text-variable-anchor\"]),\"text-anchor\":new pn(Nt.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new cn(Nt.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new cn(Nt.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new pn(Nt.layout_symbol[\"text-rotate\"]),\"text-padding\":new cn(Nt.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new cn(Nt.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new pn(Nt.layout_symbol[\"text-transform\"]),\"text-offset\":new pn(Nt.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new cn(Nt.layout_symbol[\"text-allow-overlap\"]),\"text-ignore-placement\":new cn(Nt.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new cn(Nt.layout_symbol[\"text-optional\"])}),Kc={paint:new yn({\"icon-opacity\":new pn(Nt.paint_symbol[\"icon-opacity\"]),\"icon-color\":new pn(Nt.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new pn(Nt.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new pn(Nt.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new pn(Nt.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new cn(Nt.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new cn(Nt.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new pn(Nt.paint_symbol[\"text-opacity\"]),\"text-color\":new pn(Nt.paint_symbol[\"text-color\"],{runtimeType:Jt,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),\"text-halo-color\":new pn(Nt.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new pn(Nt.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new pn(Nt.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new cn(Nt.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new cn(Nt.paint_symbol[\"text-translate-anchor\"])}),layout:Hc};Zc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},Zc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},Zc.prototype.possibleOutputs=function(){return[void 0]},Zc.prototype.serialize=function(){return null},kr(\"FormatSectionOverride\",Zc,{omit:[\"defaultValue\"]});var Wc,Xc,Yc,Jc=(np.__proto__=Yc=bn,((np.prototype=Object.create(Yc&&Yc.prototype)).constructor=np).prototype.recalculate=function(t,e){if(Yc.prototype.recalculate.call(this,t,e),\"auto\"===this.layout.get(\"icon-rotation-alignment\")&&(\"point\"!==this.layout.get(\"symbol-placement\")?this.layout._values[\"icon-rotation-alignment\"]=\"map\":this.layout._values[\"icon-rotation-alignment\"]=\"viewport\"),\"auto\"===this.layout.get(\"text-rotation-alignment\")&&(\"point\"!==this.layout.get(\"symbol-placement\")?this.layout._values[\"text-rotation-alignment\"]=\"map\":this.layout._values[\"text-rotation-alignment\"]=\"viewport\"),\"auto\"===this.layout.get(\"text-pitch-alignment\")&&(this.layout._values[\"text-pitch-alignment\"]=this.layout.get(\"text-rotation-alignment\")),\"auto\"===this.layout.get(\"icon-pitch-alignment\")&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\")),\"point\"===this.layout.get(\"symbol-placement\")){var i=this.layout.get(\"text-writing-mode\");if(i){for(var r=[],n=0,o=i;n<o.length;n+=1){var a=o[n];r.indexOf(a)<0&&r.push(a)}this.layout._values[\"text-writing-mode\"]=r}else this.layout._values[\"text-writing-mode\"]=[\"horizontal\"]}this._setPaintOverrides()},np.prototype.getValueAndResolveTokens=function(t,e,i){var r,n=this.layout.get(t).evaluate(e,{},i),o=this._unevaluatedLayout._values[t];return o.isDataDriven()||Ri(o.value)||!n?n:(r=e.properties,n.replace(/{([^{}]+)}/g,function(t,e){return e in r?String(r[e]):\"\"}))},np.prototype.createBucket=function(t){return new Gc(t)},np.prototype.queryRadius=function(){return 0},np.prototype.queryIntersectsFeature=function(){return!1},np.prototype._setPaintOverrides=function(){for(var t=0,e=Kc.paint.overridableProperties;t<e.length;t+=1){var i=e[t];if(np.hasPaintOverride(this.layout,i)){var r,n=this.paint.get(i),o=new Zc(n),a=new zi(o,n.property.specification);r=\"constant\"===n.value.kind||\"source\"===n.value.kind?new Bi(\"source\",a):new Fi(\"composite\",a,n.value.zoomStops,n.value._interpolationType),this.paint._values[i]=new ln(n.property,r,n.parameters)}}},np.prototype._handleOverridablePaintPropertyUpdate=function(t,e,i){return!(!this.layout||e.isDataDriven()||i.isDataDriven())&&np.hasPaintOverride(this.layout,t)},np.hasPaintOverride=function(t,e){function i(t){for(var e=0,i=t;e<i.length;e+=1){var r=i[e];if(n.overrides&&n.overrides.hasOverride(r))return o=!0,0}}var r=t.get(\"text-field\"),n=Kc.paint.properties[e],o=!1;if(\"constant\"===r.value.kind&&r.value.value instanceof pe)i(r.value.value.sections);else if(\"source\"===r.value.kind){var a=function(t){if(!o)if(t instanceof ge&&fe(t.value)===ee){var e=t.value;i(e.sections)}else t instanceof xe?i(t.sections):t.eachChild(a)},s=r.value;s._styleExpression&&a(s._styleExpression.expression)}return o},np),Qc={paint:new yn({\"background-color\":new cn(Nt.paint_background[\"background-color\"]),\"background-pattern\":new hn(Nt.paint_background[\"background-pattern\"]),\"background-opacity\":new cn(Nt.paint_background[\"background-opacity\"])})},$c=(rp.__proto__=Xc=bn,(rp.prototype=Object.create(Xc&&Xc.prototype)).constructor=rp),tp={paint:new yn({\"raster-opacity\":new cn(Nt.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new cn(Nt.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new cn(Nt.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new cn(Nt.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new cn(Nt.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new cn(Nt.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new cn(Nt.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new cn(Nt.paint_raster[\"raster-fade-duration\"])})},ep=(ip.__proto__=Wc=bn,(ip.prototype=Object.create(Wc&&Wc.prototype)).constructor=ip);function ip(t){Wc.call(this,t,tp)}function rp(t){Xc.call(this,t,Qc)}function np(t){Yc.call(this,t,Kc)}var op,ap=(lp.__proto__=op=bn,((lp.prototype=Object.create(op&&op.prototype)).constructor=lp).prototype.is3D=function(){return\"3d\"===this.implementation.renderingMode},lp.prototype.hasOffscreenPass=function(){return void 0!==this.implementation.prerender},lp.prototype.recalculate=function(){},lp.prototype.updateTransitions=function(){},lp.prototype.hasTransition=function(){},lp.prototype.serialize=function(){},lp.prototype.onAdd=function(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl)},lp.prototype.onRemove=function(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl)},lp),sp={circle:bs,heatmap:Rs,hillshade:Bs,fill:Tl,\"fill-extrusion\":ql,line:ru,symbol:Jc,background:$c,raster:ep};function lp(t){op.call(this,t,{}),this.implementation=t}function up(t,e,i,r){this.context=t,this.format=i,this.texture=t.gl.createTexture(),this.update(e,r)}var cp=self.HTMLImageElement,pp=self.HTMLCanvasElement,hp=self.HTMLVideoElement,dp=self.ImageData,fp=self.ImageBitmap;function mp(t){var e=this;this._callback=t,this._triggered=!1,\"undefined\"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=function(){e._triggered=!1,e._callback()})}function gp(t,e,i){this.target=t,this.parent=e,this.mapId=i,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},d([\"receive\",\"process\"],this),this.invoker=new mp(this.process),this.target.addEventListener(\"message\",this.receive,!1),this.globalScope=w()?t:self}function yp(t,e,i){var r=2*Math.PI*6378137/256/Math.pow(2,i);return[t*r-2*Math.PI*6378137/2,e*r-2*Math.PI*6378137/2]}function vp(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))}up.prototype.update=function(t,e,i){var r=t.width,n=t.height,o=!(this.size&&this.size[0]===r&&this.size[1]===n||i),a=this.context,s=a.gl;if(this.useMipmap=Boolean(e&&e.useMipmap),s.bindTexture(s.TEXTURE_2D,this.texture),a.pixelStoreUnpackFlipY.set(!1),a.pixelStoreUnpack.set(1),a.pixelStoreUnpackPremultiplyAlpha.set(this.format===s.RGBA&&(!e||!1!==e.premultiply)),o)this.size=[r,n],t instanceof cp||t instanceof pp||t instanceof hp||t instanceof dp||fp&&t instanceof fp?s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,s.UNSIGNED_BYTE,t):s.texImage2D(s.TEXTURE_2D,0,this.format,r,n,0,this.format,s.UNSIGNED_BYTE,t.data);else{var l=i||{x:0,y:0},u=l.x,c=l.y;t instanceof cp||t instanceof pp||t instanceof hp||t instanceof dp||fp&&t instanceof fp?s.texSubImage2D(s.TEXTURE_2D,0,u,c,s.RGBA,s.UNSIGNED_BYTE,t):s.texSubImage2D(s.TEXTURE_2D,0,u,c,r,n,s.RGBA,s.UNSIGNED_BYTE,t.data)}this.useMipmap&&this.isSizePowerOfTwo()&&s.generateMipmap(s.TEXTURE_2D)},up.prototype.bind=function(t,e,i){var r=this.context.gl;r.bindTexture(r.TEXTURE_2D,this.texture),i!==r.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(i=r.LINEAR),t!==this.filter&&(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,i||t),this.filter=t),e!==this.wrap&&(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,e),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,e),this.wrap=e)},up.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},up.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null},mp.prototype.trigger=function(){var t=this;this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(function(){t._triggered=!1,t._callback()},0))},mp.prototype.remove=function(){delete this._channel,this._callback=function(){}},gp.prototype.send=function(t,e,i,r,n){var o=this;void 0===n&&(n=!1);var a=Math.round(1e18*Math.random()).toString(36).substring(0,10);i&&(this.callbacks[a]=i);var s=E(this.globalScope)?void 0:[];return this.target.postMessage({id:a,type:t,hasCallback:!!i,targetMapId:r,mustQueue:n,sourceMapId:this.mapId,data:Dr(e,s)},s),{cancel:function(){i&&delete o.callbacks[a],o.target.postMessage({id:a,type:\"<cancel>\",targetMapId:r,sourceMapId:o.mapId})}}},gp.prototype.receive=function(t){var e=t.data,i=e.id;if(i&&(!e.targetMapId||this.mapId===e.targetMapId))if(\"<cancel>\"===e.type){delete this.tasks[i];var r=this.cancelCallbacks[i];delete this.cancelCallbacks[i],r&&r()}else w()||e.mustQueue?(this.tasks[i]=e,this.taskQueue.push(i),this.invoker.trigger()):this.processTask(i,e)},gp.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},gp.prototype.processTask=function(i,t){var r=this;if(\"<response>\"===t.type){var e=this.callbacks[i];delete this.callbacks[i],e&&(t.error?e(Or(t.error)):e(null,Or(t.data)))}else{var n=!1,o=E(this.globalScope)?void 0:[],a=t.hasCallback?function(t,e){n=!0,delete r.cancelCallbacks[i],r.target.postMessage({id:i,type:\"<response>\",sourceMapId:r.mapId,error:t?Dr(t):null,data:Dr(e,o)},o)}:function(t){n=!0},s=null,l=Or(t.data);if(this.parent[t.type])s=this.parent[t.type](t.sourceMapId,l,a);else if(this.parent.getWorkerSource){var u=t.type.split(\".\");s=this.parent.getWorkerSource(t.sourceMapId,u[0],l.source)[u[1]](l,a)}else a(new Error(\"Could not find function \"+t.type));!n&&s&&s.cancel&&(this.cancelCallbacks[i]=s.cancel)}},gp.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener(\"message\",this.receive,!1)},vp.prototype.setNorthEast=function(t){return this._ne=t instanceof _p?new _p(t.lng,t.lat):_p.convert(t),this},vp.prototype.setSouthWest=function(t){return this._sw=t instanceof _p?new _p(t.lng,t.lat):_p.convert(t),this},vp.prototype.extend=function(t){var e,i,r=this._sw,n=this._ne;if(t instanceof _p)i=e=t;else{if(!(t instanceof vp))return Array.isArray(t)?t.every(Array.isArray)?this.extend(vp.convert(t)):this.extend(_p.convert(t)):this;if(e=t._sw,i=t._ne,!e||!i)return this}return r||n?(r.lng=Math.min(e.lng,r.lng),r.lat=Math.min(e.lat,r.lat),n.lng=Math.max(i.lng,n.lng),n.lat=Math.max(i.lat,n.lat)):(this._sw=new _p(e.lng,e.lat),this._ne=new _p(i.lng,i.lat)),this},vp.prototype.getCenter=function(){return new _p((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},vp.prototype.getSouthWest=function(){return this._sw},vp.prototype.getNorthEast=function(){return this._ne},vp.prototype.getNorthWest=function(){return new _p(this.getWest(),this.getNorth())},vp.prototype.getSouthEast=function(){return new _p(this.getEast(),this.getSouth())},vp.prototype.getWest=function(){return this._sw.lng},vp.prototype.getSouth=function(){return this._sw.lat},vp.prototype.getEast=function(){return this._ne.lng},vp.prototype.getNorth=function(){return this._ne.lat},vp.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},vp.prototype.toString=function(){return\"LngLatBounds(\"+this._sw.toString()+\", \"+this._ne.toString()+\")\"},vp.prototype.isEmpty=function(){return!(this._sw&&this._ne)},vp.prototype.contains=function(t){var e=_p.convert(t),i=e.lng,r=e.lat,n=this._sw.lat<=r&&r<=this._ne.lat,o=this._sw.lng<=i&&i<=this._ne.lng;return this._sw.lng>this._ne.lng&&(o=this._sw.lng>=i&&i>=this._ne.lng),n&&o},vp.convert=function(t){return!t||t instanceof vp?t:new vp(t)};var _p=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid LngLat object: (\"+t+\", \"+e+\")\");if(this.lng=+t,this.lat=+e,90<this.lat||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")};_p.prototype.wrap=function(){return new _p(s(this.lng,-180,180),this.lat)},_p.prototype.toArray=function(){return[this.lng,this.lat]},_p.prototype.toString=function(){return\"LngLat(\"+this.lng+\", \"+this.lat+\")\"},_p.prototype.distanceTo=function(t){var e=Math.PI/180,i=this.lat*e,r=t.lat*e,n=Math.sin(i)*Math.sin(r)+Math.cos(i)*Math.cos(r)*Math.cos((t.lng-this.lng)*e);return 6371008.8*Math.acos(Math.min(n,1))},_p.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,i=e/Math.cos(Math.PI/180*this.lat);return new vp(new _p(this.lng-i,this.lat-e),new _p(this.lng+i,this.lat+e))},_p.convert=function(t){if(t instanceof _p)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new _p(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&\"object\"==typeof t&&null!==t)return new _p(Number(\"lng\"in t?t.lng:t.lon),Number(t.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]\")};var xp=2*Math.PI*6371008.8;function bp(t){return xp*Math.cos(t*Math.PI/180)}function wp(t){return(180+t)/360}function Sp(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Tp(t,e){return t/bp(e)}function Ep(t){var e=180-360*t;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90}function Ip(t,e,i){void 0===i&&(i=0),this.x=+t,this.y=+e,this.z=+i}function Cp(t,e,i){this.z=t,this.x=e,this.y=i,this.key=Pp(0,t,t,e,i)}function Ap(t,e){this.wrap=t,this.canonical=e,this.key=Pp(t,e.z,e.z,e.x,e.y)}function kp(t,e,i,r,n){this.overscaledZ=t,this.wrap=e,this.canonical=new Cp(i,+r,+n),this.key=Pp(e,t,i,r,n)}function Pp(t,e,i,r,n){(t*=2)<0&&(t=-1*t-1);var o=1<<i;return(o*o*t+o*n+r).toString(36)+i.toString(36)+e.toString(36)}function Mp(t,e,i){if(this.uid=t,e.height!==e.width)throw new RangeError(\"DEM tiles must be square\");if(i&&\"mapbox\"!==i&&\"terrarium\"!==i)return pt('\"'+i+'\" is not a valid encoding type. Valid types include \"mapbox\" and \"terrarium\".');this.stride=e.height;var r=this.dim=e.height-2;this.data=new Uint32Array(e.data.buffer),this.encoding=i||\"mapbox\";for(var n=0;n<r;n++)this.data[this._idx(-1,n)]=this.data[this._idx(0,n)],this.data[this._idx(r,n)]=this.data[this._idx(r-1,n)],this.data[this._idx(n,-1)]=this.data[this._idx(n,0)],this.data[this._idx(n,r)]=this.data[this._idx(n,r-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(r,-1)]=this.data[this._idx(r-1,0)],this.data[this._idx(-1,r)]=this.data[this._idx(0,r-1)],this.data[this._idx(r,r)]=this.data[this._idx(r-1,r-1)]}function Lp(t){this._stringToNumber={},this._numberToString=[];for(var e=0;e<t.length;e++){var i=t[e];this._stringToNumber[i]=e,this._numberToString[e]=i}}function Dp(t,e,i,r,n){this.type=\"Feature\",(this._vectorTileFeature=t)._z=e,t._x=i,t._y=r,this.properties=t.properties,this.id=n}Ip.fromLngLat=function(t,e){void 0===e&&(e=0);var i=_p.convert(t);return new Ip(wp(i.lng),Sp(i.lat),Tp(e,i.lat))},Ip.prototype.toLngLat=function(){return new _p(360*this.x-180,Ep(this.y))},Ip.prototype.toAltitude=function(){return this.z*bp(Ep(this.y))},Ip.prototype.meterInMercatorCoordinateUnits=function(){return 1/xp*(t=Ep(this.y),1/Math.cos(t*Math.PI/180));var t},Cp.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Cp.prototype.url=function(t,e){var i,r,n,o,a,s=(i=this.x,r=this.y,n=this.z,o=yp(256*i,256*(r=Math.pow(2,n)-r-1),n),a=yp(256*(i+1),256*(r+1),n),o[0]+\",\"+o[1]+\",\"+a[0]+\",\"+a[1]),l=function(t,e,i){for(var r,n=\"\",o=t;0<o;o--)n+=(e&(r=1<<o-1)?1:0)+(i&r?2:0);return n}(this.z,this.x,this.y);return t[(this.x+this.y)%t.length].replace(\"{prefix}\",(this.x%16).toString(16)+(this.y%16).toString(16)).replace(\"{z}\",String(this.z)).replace(\"{x}\",String(this.x)).replace(\"{y}\",String(\"tms\"===e?Math.pow(2,this.z)-this.y-1:this.y)).replace(\"{quadkey}\",l).replace(\"{bbox-epsg-3857}\",s)},Cp.prototype.getTilePoint=function(t){var e=Math.pow(2,this.z);return new ct((t.x*e-this.x)*Ya,(t.y*e-this.y)*Ya)},Cp.prototype.toString=function(){return this.z+\"/\"+this.x+\"/\"+this.y},kp.prototype.equals=function(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)},kp.prototype.scaledTo=function(t){var e=this.canonical.z-t;return t>this.canonical.z?new kp(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new kp(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},kp.prototype.calculateScaledKey=function(t,e){var i=this.canonical.z-t;return t>this.canonical.z?Pp(this.wrap*e,t,this.canonical.z,this.canonical.x,this.canonical.y):Pp(this.wrap*e,t,t,this.canonical.x>>i,this.canonical.y>>i)},kp.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>e&&t.canonical.y===this.canonical.y>>e},kp.prototype.children=function(t){if(this.overscaledZ>=t)return[new kp(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,i=2*this.canonical.x,r=2*this.canonical.y;return[new kp(e,this.wrap,e,i,r),new kp(e,this.wrap,e,1+i,r),new kp(e,this.wrap,e,i,1+r),new kp(e,this.wrap,e,1+i,1+r)]},kp.prototype.isLessThan=function(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))},kp.prototype.wrapped=function(){return new kp(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},kp.prototype.unwrapTo=function(t){return new kp(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)},kp.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},kp.prototype.toUnwrapped=function(){return new Ap(this.wrap,this.canonical)},kp.prototype.toString=function(){return this.overscaledZ+\"/\"+this.canonical.x+\"/\"+this.canonical.y},kp.prototype.getTilePoint=function(t){return this.canonical.getTilePoint(new Ip(t.x-this.wrap,t.y))},kr(\"CanonicalTileID\",Cp),kr(\"OverscaledTileID\",kp,{omit:[\"posMatrix\"]}),Mp.prototype.get=function(t,e){var i=new Uint8Array(this.data.buffer),r=4*this._idx(t,e);return(\"terrarium\"===this.encoding?this._unpackTerrarium:this._unpackMapbox)(i[r],i[1+r],i[2+r])},Mp.prototype.getUnpackVector=function(){return\"terrarium\"===this.encoding?[256,1,1/256,32768]:[6553.6,25.6,.1,1e4]},Mp.prototype._idx=function(t,e){if(t<-1||t>=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return(e+1)*this.stride+(t+1)},Mp.prototype._unpackMapbox=function(t,e,i){return(256*t*256+256*e+i)/10-1e4},Mp.prototype._unpackTerrarium=function(t,e,i){return 256*t+e+i/256-32768},Mp.prototype.getPixels=function(){return new Ms({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Mp.prototype.backfillBorder=function(t,e,i){if(this.dim!==t.dim)throw new Error(\"dem dimension mismatch\");var r=e*this.dim,n=e*this.dim+this.dim,o=i*this.dim,a=i*this.dim+this.dim;switch(e){case-1:r=n-1;break;case 1:n=r+1}switch(i){case-1:o=a-1;break;case 1:a=o+1}for(var s=-e*this.dim,l=-i*this.dim,u=o;u<a;u++)for(var c=r;c<n;c++)this.data[this._idx(c,u)]=t.data[this._idx(c+s,u+l)]},kr(\"DEMData\",Mp),Lp.prototype.encode=function(t){return this._stringToNumber[t]},Lp.prototype.decode=function(t){return this._numberToString[t]};var Op={geometry:{configurable:!0}};function zp(){this.state={},this.stateChanges={},this.deletedStates={}}function Rp(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Sr(Ya,16,0),this.grid3D=new Sr(Ya,16,0),this.featureIndexArray=new na,this.promoteId=e}function Np(t){for(var e=1/0,i=1/0,r=-1/0,n=-1/0,o=0,a=t;o<a.length;o+=1){var s=a[o];e=Math.min(e,s.x),i=Math.min(i,s.y),r=Math.max(r,s.x),n=Math.max(n,s.y)}return{minX:e,minY:i,maxX:r,maxY:n}}function Bp(t,e){return e-t}function Fp(t,e){this.tileID=t,this.uid=c(),this.uses=0,this.tileSize=e,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.expiredRequestCount=0,this.state=\"loading\"}function Up(t){this._marks={start:[t.url,\"start\"].join(\"#\"),end:[t.url,\"end\"].join(\"#\"),measure:t.url.toString()},jp.mark(this._marks.start)}Op.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},Op.geometry.set=function(t){this._geometry=t},Dp.prototype.toJSON=function(){var t={geometry:this.geometry};for(var e in this)\"_geometry\"!==e&&\"_vectorTileFeature\"!==e&&(t[e]=this[e]);return t},Object.defineProperties(Dp.prototype,Op),zp.prototype.updateState=function(t,e,i){var r=String(e);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][r]=this.stateChanges[t][r]||{},f(this.stateChanges[t][r],i),null===this.deletedStates[t])for(var n in this.deletedStates[t]={},this.state[t])n!==r&&(this.deletedStates[t][n]=null);else if(this.deletedStates[t]&&null===this.deletedStates[t][r])for(var o in this.deletedStates[t][r]={},this.state[t][r])i[o]||(this.deletedStates[t][r][o]=null);else for(var a in i)this.deletedStates[t]&&this.deletedStates[t][r]&&null===this.deletedStates[t][r][a]&&delete this.deletedStates[t][r][a]},zp.prototype.removeFeatureState=function(t,e,i){if(null!==this.deletedStates[t]){var r=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},i&&void 0!==e)null!==this.deletedStates[t][r]&&(this.deletedStates[t][r]=this.deletedStates[t][r]||{},this.deletedStates[t][r][i]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][r])for(i in this.deletedStates[t][r]={},this.stateChanges[t][r])this.deletedStates[t][r][i]=null;else this.deletedStates[t][r]=null;else this.deletedStates[t]=null}},zp.prototype.getState=function(t,e){var i=String(e),r=this.state[t]||{},n=this.stateChanges[t]||{},o=f({},r[i],n[i]);if(null===this.deletedStates[t])return{};if(this.deletedStates[t]){var a=this.deletedStates[t][e];if(null===a)return{};for(var s in a)delete o[s]}return o},zp.prototype.initializeTileState=function(t,e){t.setFeatureState(this.state,e)},zp.prototype.coalesceChanges=function(t,e){var i={};for(var r in this.stateChanges){this.state[r]=this.state[r]||{};var n={};for(var o in this.stateChanges[r])this.state[r][o]||(this.state[r][o]={}),f(this.state[r][o],this.stateChanges[r][o]),n[o]=this.state[r][o];i[r]=n}for(var a in this.deletedStates){this.state[a]=this.state[a]||{};var s={};if(null===this.deletedStates[a])for(var l in this.state[a])s[l]={},this.state[a][l]={};else for(var u in this.deletedStates[a]){if(null===this.deletedStates[a][u])this.state[a][u]={};else for(var c=0,p=Object.keys(this.deletedStates[a][u]);c<p.length;c+=1){var h=p[c];delete this.state[a][u][h]}s[u]=this.state[a][u]}i[a]=i[a]||{},f(i[a],s)}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(i).length)for(var d in t)t[d].setFeatureState(i,e)},Rp.prototype.insert=function(t,e,i,r,n,o){var a=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(i,r,n);for(var s=o?this.grid3D:this.grid,l=0;l<e.length;l++){for(var u=e[l],c=[1/0,1/0,-1/0,-1/0],p=0;p<u.length;p++){var h=u[p];c[0]=Math.min(c[0],h.x),c[1]=Math.min(c[1],h.y),c[2]=Math.max(c[2],h.x),c[3]=Math.max(c[3],h.y)}c[0]<Ya&&c[1]<Ya&&0<=c[2]&&0<=c[3]&&s.insert(a,c[0],c[1],c[2],c[3])}},Rp.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new zl.VectorTile(new gu(this.rawTileData)).layers,this.sourceLayerCoder=new Lp(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers},Rp.prototype.query=function(o,r,a){var s=this;this.loadVTLayers();for(var l=o.params||{},u=Ya/o.tileSize/o.scale,c=Yi(l.filter),p=o.queryGeometry,n=o.queryPadding*u,t=Np(p),h=this.grid.query(t.minX-n,t.minY-n,t.maxX+n,t.maxY+n),e=Np(o.cameraQueryGeometry),i=0,d=this.grid3D.query(e.minX-n,e.minY-n,e.maxX+n,e.maxY+n,function(t,e,i,r){return function(t,e,i,r,n){for(var o=0,a=t;o<a.length;o+=1){var s=a[o];if(e<=s.x&&i<=s.y&&r>=s.x&&n>=s.y)return!0}var l=[new ct(e,i),new ct(e,n),new ct(r,n),new ct(r,i)];if(2<t.length)for(var u=0,c=l;u<c.length;u+=1)if(ls(t,c[u]))return!0;for(var p=0;p<t.length-1;p++)if(us(t[p],t[p+1],l))return!0;return!1}(o.cameraQueryGeometry,t-n,e-n,i+n,r+n)});i<d.length;i+=1){var f=d[i];h.push(f)}h.sort(Bp);for(var m,g={},y=function(t){var e=h[t];if(e!==m){m=e;var i=s.featureIndexArray.get(e),n=null;s.loadMatchingFeature(g,i.bucketIndex,i.sourceLayerIndex,i.featureIndex,c,l.layers,r,function(t,e,i){n=n||Qa(t);var r={};return void 0!==i&&(r=a.getState(e.sourceLayer||\"_geojsonTileLayer\",i)),e.queryIntersectsFeature(p,t,r,n,s.z,o.transform,u,o.pixelPosMatrix)})}},v=0;v<h.length;v++)y(v);return g},Rp.prototype.loadMatchingFeature=function(t,e,i,r,n,o,a,s){var l=this.bucketLayerIDs[e];if(!o||function(t,e){for(var i=0;i<t.length;i++)if(0<=e.indexOf(t[i]))return 1}(o,l)){var u=this.sourceLayerCoder.decode(i),c=this.vtLayers[u].feature(r);if(n(new Qr(this.tileID.overscaledZ),c))for(var p=this.getId(c,u),h=0;h<l.length;h++){var d=l[h];if(!(o&&o.indexOf(d)<0)){var f=a[d];if(f){var m=!s||s(c,f,p);if(m){var g=new Dp(c,this.z,this.x,this.y,p);g.layer=f.serialize();var y=t[d];void 0===y&&(y=t[d]=[]),y.push({featureIndex:r,feature:g,intersectionZ:m})}}}}}},Rp.prototype.lookupSymbolFeatures=function(t,e,i,r,n,o){var a={};this.loadVTLayers();for(var s=Yi(r),l=0,u=t;l<u.length;l+=1){var c=u[l];this.loadMatchingFeature(a,e,i,c,s,n,o)}return a},Rp.prototype.hasLayer=function(t){for(var e=0,i=this.bucketLayerIDs;e<i.length;e+=1)for(var r=0,n=i[e];r<n.length;r+=1)if(t===n[r])return!0;return!1},Rp.prototype.getId=function(t,e){var i=t.id;if(this.promoteId){var r=\"string\"==typeof this.promoteId?this.promoteId:this.promoteId[e];\"boolean\"==typeof(i=t.properties[r])&&(i=Number(i))}return i},kr(\"FeatureIndex\",Rp,{omit:[\"rawTileData\",\"sourceLayerCoder\"]}),Fp.prototype.registerFadeDuration=function(t){var e=t+this.timeAdded;e<O.now()||this.fadeEndTime&&e<this.fadeEndTime||(this.fadeEndTime=e)},Fp.prototype.wasRequested=function(){return\"errored\"===this.state||\"loaded\"===this.state||\"reloading\"===this.state},Fp.prototype.loadVectorData=function(t,e,i){if(this.hasData()&&this.unloadVectorData(),this.state=\"loaded\",t){for(var r in t.featureIndex&&(this.latestFeatureIndex=t.featureIndex,t.rawTileData?(this.latestRawTileData=t.rawTileData,this.latestFeatureIndex.rawTileData=t.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=t.collisionBoxArray,this.buckets=function(t,o){var a={};if(!o)return a;for(var e=function(){var t=l[s],i=t.layerIds.map(function(t){return o.getLayer(t)}).filter(Boolean);if(0!==i.length){t.layers=i,t.stateDependentLayerIds&&(t.stateDependentLayers=t.stateDependentLayerIds.map(function(e){return i.filter(function(t){return t.id===e})[0]}));for(var e=0,r=i;e<r.length;e+=1){var n=r[e];a[n.id]=t}}},s=0,l=t;s<l.length;s+=1)e();return a}(t.buckets,e.style),this.hasSymbolBuckets=!1,this.buckets){var n=this.buckets[r];if(n instanceof Gc){if(this.hasSymbolBuckets=!0,!i)break;n.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(var o in this.buckets){var a=this.buckets[o];if(a instanceof Gc&&a.hasRTLText){this.hasRTLText=!0,tn.isLoading()||tn.isLoaded()||\"deferred\"!==Yr()||Jr();break}}for(var s in this.queryPadding=0,this.buckets){var l=this.buckets[s];this.queryPadding=Math.max(this.queryPadding,e.style.getLayer(s).queryRadius(l))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage)}else this.collisionBoxArray=new Bo},Fp.prototype.unloadVectorData=function(){for(var t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\"unloaded\"},Fp.prototype.getBucket=function(t){return this.buckets[t.id]},Fp.prototype.upload=function(t){for(var e in this.buckets){var i=this.buckets[e];i.uploadPending()&&i.upload(t)}var r=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new up(t,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new up(t,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null)},Fp.prototype.prepare=function(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)},Fp.prototype.queryRenderedFeatures=function(t,e,i,r,n,o,a,s,l){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:i,cameraQueryGeometry:r,scale:n,tileSize:this.tileSize,pixelPosMatrix:l,transform:a,params:o,queryPadding:this.queryPadding*s},t,e):{}},Fp.prototype.querySourceFeatures=function(t,e){var i=this.latestFeatureIndex;if(i&&i.rawTileData){var r=i.loadVTLayers(),n=e?e.sourceLayer:\"\",o=r._geojsonTileLayer||r[n];if(o)for(var a=Yi(e&&e.filter),s=this.tileID.canonical,l=s.z,u=s.x,c=s.y,p={z:l,x:u,y:c},h=0;h<o.length;h++){var d=o.feature(h);if(a(new Qr(this.tileID.overscaledZ),d)){var f=i.getId(d,n),m=new Dp(d,l,u,c,f);m.tile=p,t.push(m)}}}},Fp.prototype.hasData=function(){return\"loaded\"===this.state||\"reloading\"===this.state||\"expired\"===this.state},Fp.prototype.patternsLoaded=function(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length},Fp.prototype.setExpiryData=function(t){var e=this.expirationTime;if(t.cacheControl){var i=S(t.cacheControl);i[\"max-age\"]&&(this.expirationTime=Date.now()+1e3*i[\"max-age\"])}else t.expires&&(this.expirationTime=new Date(t.expires).getTime());if(this.expirationTime){var r=Date.now(),n=!1;if(this.expirationTime>r)n=!1;else if(e)if(this.expirationTime<e)n=!0;else{var o=this.expirationTime-e;o?this.expirationTime=r+Math.max(o,3e4):n=!0}else n=!0;n?(this.expiredRequestCount++,this.state=\"expired\"):this.expiredRequestCount=0}},Fp.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-(new Date).getTime(),Math.pow(2,31)-1)},Fp.prototype.setFeatureState=function(t,e){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData&&0!==Object.keys(t).length){var i=this.latestFeatureIndex.loadVTLayers();for(var r in this.buckets){var n=this.buckets[r],o=n.layers[0].sourceLayer||\"_geojsonTileLayer\",a=i[o],s=t[o];a&&s&&0!==Object.keys(s).length&&(n.update(s,a,this.imageAtlas&&this.imageAtlas.patternPositions||{}),e&&e.style&&(this.queryPadding=Math.max(this.queryPadding,e.style.getLayer(r).queryRadius(n))))}}},Fp.prototype.holdingForFade=function(){return void 0!==this.symbolFadeHoldUntil},Fp.prototype.symbolFadeFinished=function(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<O.now()},Fp.prototype.clearFadeHold=function(){this.symbolFadeHoldUntil=void 0},Fp.prototype.setHoldDuration=function(t){this.symbolFadeHoldUntil=O.now()+t},Fp.prototype.setDependencies=function(t,e){for(var i={},r=0,n=e;r<n.length;r+=1)i[n[r]]=!0;this.dependencies[t]=i},Fp.prototype.hasDependency=function(t,e){for(var i=0,r=t;i<r.length;i+=1){var n=r[i],o=this.dependencies[n];if(o)for(var a=0,s=e;a<s.length;a+=1)if(o[s[a]])return!0}return!1};var jp=self.performance;Up.prototype.finish=function(){jp.mark(this._marks.end);var t=jp.getEntriesByName(this._marks.measure);return 0===t.length&&(jp.measure(this._marks.measure,this._marks.start,this._marks.end),t=jp.getEntriesByName(this._marks.measure),jp.clearMarks(this._marks.start),jp.clearMarks(this._marks.end),jp.clearMeasures(this._marks.measure)),t},t.Actor=gp,t.AlphaImage=Ps,t.CanonicalTileID=Cp,t.CollisionBoxArray=Bo,t.Color=le,t.DEMData=Mp,t.DataConstantProperty=cn,t.DictionaryCoder=Lp,t.EXTENT=Ya,t.ErrorEvent=zt,t.EvaluationParameters=Qr,t.Event=Lt,t.Evented=Dt,t.FeatureIndex=Rp,t.FillBucket=xl,t.FillExtrusionBucket=Fl,t.ImageAtlas=Vu,t.ImagePosition=Uu,t.LineBucket=Hl,t.LngLat=_p,t.LngLatBounds=vp,t.MercatorCoordinate=Ip,t.ONE_EM=mu,t.OverscaledTileID=kp,t.Point=ct,t.Point$1=ct,t.Properties=yn,t.Protobuf=gu,t.RGBAImage=Ms,t.RequestManager=U,t.RequestPerformance=Up,t.ResourceType=vt,t.SegmentVector=aa,t.SourceFeatureState=zp,t.StructArrayLayout1ui2=Ao,t.StructArrayLayout2i4=Cn,t.StructArrayLayout2ui4=Eo,t.StructArrayLayout3ui6=wo,t.StructArrayLayout4i8=Pn,t.SymbolBucket=Gc,t.Texture=up,t.Tile=Fp,t.Transitionable=nn,t.Uniform1f=Ca,t.Uniform1i=Ia,t.Uniform2f=Aa,t.Uniform3f=ka,t.Uniform4f=Pa,t.UniformColor=Ma,t.UniformMatrix4f=Da,t.UnwrappedTileID=Ap,t.ValidationError=Bt,t.WritingMode=Zu,t.ZoomHistory=zr,t.add=function(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t},t.addDynamicAttributes=Uc,t.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,o=new Array(t.length),a=null;t.forEach(function(t,i){e(t,function(t,e){t&&(a=t),o[i]=e,0==--n&&r(a,o)})})},t.bezier=n,t.bindAll=d,t.browser=O,t.cacheEntryPossiblyAdded=function(t){++gt>st&&(t.getActor().send(\"enforceCacheSizeLimit\",at),gt=0)},t.clamp=l,t.clearTileCache=function(t){var e=self.caches.delete(ot);t&&e.catch(t).then(function(){return t()})},t.clone=function(t){var e=new ys(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=v,t.clone$2=function(t){var e=new ys(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.config=z,t.create=function(){var t=new ys(16);return ys!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new ys(9);return ys!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new ys(4);return ys!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=Ni,t.createLayout=Tn,t.createStyleLayer=function(t){return\"custom\"===t.type?new ap(t):new sp[t.type](t)},t.cross=function(t,e,i){var r=e[0],n=e[1],o=e[2],a=i[0],s=i[1],l=i[2];return t[0]=n*l-o*s,t[1]=o*a-r*l,t[2]=r*s-n*a,t},t.deepEqual=function t(e,i){if(Array.isArray(e)){if(!Array.isArray(i)||e.length!==i.length)return!1;for(var r=0;r<e.length;r++)if(!t(e[r],i[r]))return!1;return!0}if(\"object\"!=typeof e||null===e||null===i)return e===i;if(\"object\"!=typeof i)return!1;if(Object.keys(e).length!==Object.keys(i).length)return!1;for(var n in e)if(!t(e[n],i[n]))return!1;return!0},t.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},t.dot$1=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},t.ease=o,t.emitValidationErrors=wr,t.endsWith=m,t.enforceCacheSizeLimit=function(r){dt(),Y&&Y.then(function(i){i.keys().then(function(t){for(var e=0;e<t.length-r;e++)i.delete(t[e])})})},t.evaluateSizeForFeature=uc,t.evaluateSizeForZoom=cc,t.evaluateVariableOffset=Pc,t.evented=$r,t.extend=f,t.featureFilter=Yi,t.filterObject=y,t.fromRotation=function(t,e){var i=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},t.getAnchorAlignment=ec,t.getAnchorJustification=Mc,t.getArrayBuffer=Et,t.getImage=kt,t.getJSON=function(t,e){return Tt(f(t,{type:\"json\"}),e)},t.getRTLTextPluginStatus=Yr,t.getReferrer=bt,t.getVideo=function(t,e){var i,r,n=self.document.createElement(\"video\");n.muted=!0,n.onloadstart=function(){e(null,n)};for(var o=0;o<t.length;o++){var a=self.document.createElement(\"source\");i=t[o],r=void 0,(r=self.document.createElement(\"a\")).href=i,r.protocol===self.document.location.protocol&&r.host===self.document.location.host||(n.crossOrigin=\"Anonymous\"),a.src=t[o],n.appendChild(a)}return{cancel:function(){}}},t.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.invert=function(t,e){var i=e[0],r=e[1],n=e[2],o=e[3],a=e[4],s=e[5],l=e[6],u=e[7],c=e[8],p=e[9],h=e[10],d=e[11],f=e[12],m=e[13],g=e[14],y=e[15],v=i*s-r*a,_=i*l-n*a,x=i*u-o*a,b=r*l-n*s,w=r*u-o*s,S=n*u-o*l,T=c*m-p*f,E=c*g-h*f,I=c*y-d*f,C=p*g-h*m,A=p*y-d*m,k=h*y-d*g,P=v*k-_*A+x*C+b*I-w*E+S*T;return P?(P=1/P,t[0]=(s*k-l*A+u*C)*P,t[1]=(n*A-r*k-o*C)*P,t[2]=(m*S-g*w+y*b)*P,t[3]=(h*w-p*S-d*b)*P,t[4]=(l*I-a*k-u*E)*P,t[5]=(i*k-n*I+o*E)*P,t[6]=(g*x-f*S-y*_)*P,t[7]=(c*S-h*x+d*_)*P,t[8]=(a*A-s*I+u*T)*P,t[9]=(r*I-i*A-o*T)*P,t[10]=(f*w-m*x+y*v)*P,t[11]=(p*x-c*w-d*v)*P,t[12]=(s*E-a*C-l*T)*P,t[13]=(i*C-r*E+n*T)*P,t[14]=(m*_-f*b-g*v)*P,t[15]=(c*b-p*_+h*v)*P,t):null},t.isChar=Rr,t.isMapboxURL=q,t.keysDifference=function(t,e){var i=[];for(var r in t)r in e||i.push(r);return i},t.makeRequest=Tt,t.mapObject=g,t.mercatorXfromLng=wp,t.mercatorYfromLat=Sp,t.mercatorZfromAltitude=Tp,t.multiply=function(t,e,i){var r=e[0],n=e[1],o=e[2],a=e[3],s=e[4],l=e[5],u=e[6],c=e[7],p=e[8],h=e[9],d=e[10],f=e[11],m=e[12],g=e[13],y=e[14],v=e[15],_=i[0],x=i[1],b=i[2],w=i[3];return t[0]=_*r+x*s+b*p+w*m,t[1]=_*n+x*l+b*h+w*g,t[2]=_*o+x*u+b*d+w*y,t[3]=_*a+x*c+b*f+w*v,_=i[4],x=i[5],b=i[6],w=i[7],t[4]=_*r+x*s+b*p+w*m,t[5]=_*n+x*l+b*h+w*g,t[6]=_*o+x*u+b*d+w*y,t[7]=_*a+x*c+b*f+w*v,_=i[8],x=i[9],b=i[10],w=i[11],t[8]=_*r+x*s+b*p+w*m,t[9]=_*n+x*l+b*h+w*g,t[10]=_*o+x*u+b*d+w*y,t[11]=_*a+x*c+b*f+w*v,_=i[12],x=i[13],b=i[14],w=i[15],t[12]=_*r+x*s+b*p+w*m,t[13]=_*n+x*l+b*h+w*g,t[14]=_*o+x*u+b*d+w*y,t[15]=_*a+x*c+b*f+w*v,t},t.mvt=zl,t.normalize=function(t,e){var i=e[0],r=e[1],n=e[2],o=i*i+r*r+n*n;return 0<o&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t},t.number=ze,t.offscreenCanvasSupported=yt,t.ortho=function(t,e,i,r,n,o,a){var s=1/(e-i),l=1/(r-n),u=1/(o-a);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+i)*s,t[13]=(n+r)*l,t[14]=(a+o)*u,t[15]=1,t},t.parseGlyphPBF=function(t){return new gu(t).readFields(zu,[])},t.pbf=gu,t.performSymbolLayout=function(B,F,U,j,q,t){B.createArrays();var e=512*B.overscaling;B.tilePixelRatio=Ya/e,B.compareText={},B.iconsNeedLinear=!1;var V=B.layers[0].layout,i=B.layers[0]._unevaluatedLayout._values,G={};if(\"composite\"===B.textSizeData.kind){var r=B.textSizeData,n=r.minZoom,o=r.maxZoom;G.compositeTextSizes=[i[\"text-size\"].possiblyEvaluate(new Qr(n)),i[\"text-size\"].possiblyEvaluate(new Qr(o))]}if(\"composite\"===B.iconSizeData.kind){var a=B.iconSizeData,s=a.minZoom,l=a.maxZoom;G.compositeIconSizes=[i[\"icon-size\"].possiblyEvaluate(new Qr(s)),i[\"icon-size\"].possiblyEvaluate(new Qr(l))]}G.layoutTextSize=i[\"text-size\"].possiblyEvaluate(new Qr(B.zoom+1)),G.layoutIconSize=i[\"icon-size\"].possiblyEvaluate(new Qr(B.zoom+1)),G.textMaxSize=i[\"text-size\"].possiblyEvaluate(new Qr(18));for(var Z=V.get(\"text-line-height\")*mu,H=\"map\"===V.get(\"text-rotation-alignment\")&&\"point\"!==V.get(\"symbol-placement\"),K=V.get(\"text-keep-upright\"),W=V.get(\"text-size\"),u=function(){var t=Y[X],e=V.get(\"text-font\").evaluate(t,{}).join(\",\"),i=W.evaluate(t,{}),r=G.layoutTextSize.evaluate(t,{}),n=G.layoutIconSize.evaluate(t,{}),o={horizontal:{},vertical:void 0},a=t.text,s=[0,0];if(a){var l=a.toString(),u=V.get(\"text-letter-spacing\").evaluate(t,{})*mu,c=function(){for(var t=0,e=l;t<e.length;t+=1)if(i=e[t].charCodeAt(0),Rr.Arabic(i)||Rr[\"Arabic Supplement\"](i)||Rr[\"Arabic Extended-A\"](i)||Rr[\"Arabic Presentation Forms-A\"](i)||Rr[\"Arabic Presentation Forms-B\"](i))return;var i;return 1}()?u:0,p=V.get(\"text-anchor\").evaluate(t,{}),h=V.get(\"text-variable-anchor\");if(!h){var d=V.get(\"text-radial-offset\").evaluate(t,{});s=d?Pc(p,[d*mu,kc]):V.get(\"text-offset\").evaluate(t,{}).map(function(t){return t*mu})}var f=H?\"center\":V.get(\"text-justify\").evaluate(t,{}),m=V.get(\"symbol-placement\"),g=\"point\"===m?V.get(\"text-max-width\").evaluate(t,{})*mu:0,y=function(){B.allowVerticalPlacement&&Nr(l)&&(o.vertical=Wu(a,F,U,q,e,g,Z,p,\"left\",c,s,Zu.vertical,!0,m,r,i))};if(!H&&h){for(var v=\"auto\"===f?h.map(function(t){return Mc(t)}):[f],_=!1,x=0;x<v.length;x++){var b=v[x];if(!o.horizontal[b])if(_)o.horizontal[b]=o.horizontal[0];else{var w=Wu(a,F,U,q,e,g,Z,\"center\",b,c,s,Zu.horizontal,!1,m,r,i);w&&(_=1===(o.horizontal[b]=w).positionedLines.length)}}y()}else{\"auto\"===f&&(f=Mc(p));var S=Wu(a,F,U,q,e,g,Z,p,f,c,s,Zu.horizontal,!1,m,r,i);S&&(o.horizontal[f]=S),y(),Nr(l)&&H&&K&&(o.vertical=Wu(a,F,U,q,e,g,Z,p,f,c,s,Zu.vertical,!1,m,r,i))}}var T,E,I,C,A,k,P,M,L,D,O=void 0,z=!1;if(t.icon&&t.icon.name){var R=j[t.icon.name];R&&(T=q[t.icon.name],E=V.get(\"icon-offset\").evaluate(t,{}),I=ec(V.get(\"icon-anchor\").evaluate(t,{})),C=I.horizontalAlign,A=I.verticalAlign,k=E[0],P=E[1],M=k-T.displaySize[0]*C,L=M+T.displaySize[0],D=P-T.displaySize[1]*A,O={image:T,top:D,bottom:D+T.displaySize[1],left:M,right:L},z=R.sdf,void 0===B.sdfIcons?B.sdfIcons=R.sdf:B.sdfIcons!==R.sdf&&pt(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\"),R.pixelRatio===B.pixelRatio&&0===V.get(\"icon-rotate\").constantOr(1)||(B.iconsNeedLinear=!0))}var N=zc(o.horizontal)||o.vertical;B.iconsInText=!!N&&N.iconsInText,(N||O)&&function(i,r,n,o,a,s,t,e,l,u){var c=s.textMaxSize.evaluate(r,{});void 0===c&&(c=t);var p,h,d,f,m,g,y,v,_,x,b,w,S,T,E=i.layers[0].layout,I=E.get(\"icon-offset\").evaluate(r,{}),C=zc(n.horizontal),A=t/24,k=i.tilePixelRatio*A,P=i.tilePixelRatio*c/24,M=i.tilePixelRatio*e,L=i.tilePixelRatio*E.get(\"symbol-spacing\"),D=E.get(\"text-padding\")*i.tilePixelRatio,O=E.get(\"icon-padding\")*i.tilePixelRatio,z=E.get(\"text-max-angle\")/180*Math.PI,R=\"map\"===E.get(\"text-rotation-alignment\")&&\"point\"!==E.get(\"symbol-placement\"),N=\"map\"===E.get(\"icon-rotation-alignment\")&&\"point\"!==E.get(\"symbol-placement\"),B=E.get(\"symbol-placement\"),F=L/2,U=E.get(\"icon-text-fit\");function j(t,e){e.x<0||e.x>=Ya||e.y<0||e.y>=Ya||function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m,g,y,v,_,x,b,w){var S,T,E,I,C,A=t.addToLineVertexArray(e,i),k=0,P=0,M=0,L=0,D=-1,O=-1,z={},R=pa(\"\"),N=0,B=0;if(B=void 0===s._unevaluatedLayout.getValue(\"text-radial-offset\")?(N=(S=s.layout.get(\"text-offset\").evaluate(x,{}).map(function(t){return t*mu}))[0],S[1]):(N=s.layout.get(\"text-radial-offset\").evaluate(x,{})*mu,kc),t.allowVerticalPlacement&&r.vertical){var F=s.layout.get(\"text-rotate\").evaluate(x,{})+90,U=r.vertical;I=new Sc(l,i,e,u,c,p,U,h,d,f,t.overscaling,F),a&&(C=new Sc(l,i,e,u,c,p,a,g,y,f,t.overscaling,F))}if(n){var j=s.layout.get(\"icon-rotate\").evaluate(x,{}),q=\"none\"!==s.layout.get(\"icon-text-fit\"),V=vc(n,j,w,q),G=a?vc(a,j,w,q):void 0;E=new Sc(l,i,e,u,c,p,n,g,y,!1,t.overscaling,j),k=4*V.length;var Z=t.iconSizeData,H=null;\"source\"===Z.kind?(H=[sc*s.layout.get(\"icon-size\").evaluate(x,{})])[0]>Dc&&pt(t.layerIds[0]+': Value for \"icon-size\" is >= '+Lc+'. Reduce your \"icon-size\".'):\"composite\"===Z.kind&&((H=[sc*b.compositeIconSizes[0].evaluate(x,{}),sc*b.compositeIconSizes[1].evaluate(x,{})])[0]>Dc||H[1]>Dc)&&pt(t.layerIds[0]+': Value for \"icon-size\" is >= '+Lc+'. Reduce your \"icon-size\".'),t.addSymbols(t.icon,V,H,_,v,x,!1,e,A.lineStartIndex,A.lineLength,-1),D=t.icon.placedSymbolArray.length-1,G&&(P=4*G.length,t.addSymbols(t.icon,G,H,_,v,x,Zu.vertical,e,A.lineStartIndex,A.lineLength,-1),O=t.icon.placedSymbolArray.length-1)}for(var K in r.horizontal){var W=r.horizontal[K];if(!T){R=pa(W.text);var X=s.layout.get(\"text-rotate\").evaluate(x,{});T=new Sc(l,i,e,u,c,p,W,h,d,f,t.overscaling,X)}var Y=1===W.positionedLines.length;if(M+=Oc(t,e,W,o,s,f,x,m,A,r.vertical?Zu.horizontal:Zu.horizontalOnly,Y?Object.keys(r.horizontal):[K],z,D,b),Y)break}r.vertical&&(L+=Oc(t,e,r.vertical,o,s,f,x,m,A,Zu.vertical,[\"vertical\"],z,O,b));var J=T?T.boxStartIndex:t.collisionBoxArray.length,Q=T?T.boxEndIndex:t.collisionBoxArray.length,$=I?I.boxStartIndex:t.collisionBoxArray.length,tt=I?I.boxEndIndex:t.collisionBoxArray.length,et=E?E.boxStartIndex:t.collisionBoxArray.length,it=E?E.boxEndIndex:t.collisionBoxArray.length,rt=C?C.boxStartIndex:t.collisionBoxArray.length,nt=C?C.boxEndIndex:t.collisionBoxArray.length;t.glyphOffsetArray.length>=Gc.MAX_GLYPHS&&pt(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),void 0!==x.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,x.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,0<=z.right?z.right:-1,0<=z.center?z.center:-1,0<=z.left?z.left:-1,z.vertical||-1,D,O,R,J,Q,$,tt,et,it,rt,nt,u,M,L,k,P,0,h,N,B)}(i,e,t,n,o,a,p,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,k,D,R,l,M,O,N,I,r,s,u)}if(o&&\"none\"!==U&&(i.allowVerticalPlacement&&n.vertical&&(p=rc(o,n.vertical,U,E.get(\"icon-text-fit-padding\"),I,A)),C&&(o=rc(o,C,U,E.get(\"icon-text-fit-padding\"),I,A))),\"line\"===B)for(var q=0,V=function(t,e,i){for(var r=[],n=0;n<t.length;n++)for(var o=t[n],a=void 0,s=0;s<o.length-1;s++){var l=o[s],u=o[s+1];l.x<0&&u.x<0||(l.x<0?l=new ct(0,l.y+(u.y-l.y)*((0-l.x)/(u.x-l.x)))._round():u.x<0&&(u=new ct(0,l.y+(u.y-l.y)*((0-l.x)/(u.x-l.x)))._round()),l.y<0&&u.y<0||(l.y<0?l=new ct(l.x+(u.x-l.x)*((0-l.y)/(u.y-l.y)),0)._round():u.y<0&&(u=new ct(l.x+(u.x-l.x)*((0-l.y)/(u.y-l.y)),0)._round()),l.x>=e&&u.x>=e||(l.x>=e?l=new ct(e,l.y+(u.y-l.y)*((e-l.x)/(u.x-l.x)))._round():u.x>=e&&(u=new ct(e,l.y+(u.y-l.y)*((e-l.x)/(u.x-l.x)))._round()),l.y>=i&&u.y>=i||(l.y>=i?l=new ct(l.x+(u.x-l.x)*((i-l.y)/(u.y-l.y)),i)._round():u.y>=i&&(u=new ct(l.x+(u.x-l.x)*((i-l.y)/(u.y-l.y)),i)._round()),a&&l.equals(a[a.length-1])||(a=[l],r.push(a)),a.push(u)))))}return r}(r.geometry,Ya,Ya);q<V.length;q+=1)for(var G=V[q],Z=0,H=(h=G,d=L,f=z,m=n.vertical||C,g=o,y=24,v=P,_=i.overscaling,x=Ya,b=fc(m,y,v),w=mc(m,g),S=w*v,T=0===h[0].x||h[0].x===x||0===h[0].y||h[0].y===x,d-S<d/4&&(d=S+d/4),function t(e,i,r,n,o,a,s,l,u){for(var c=a/2,p=dc(e),h=0,d=i-r,f=[],m=0;m<e.length-1;m++){for(var g=e[m],y=e[m+1],v=g.dist(y),_=y.angleTo(g);d+r<h+v;){var x=((d+=r)-h)/v,b=ze(g.x,y.x,x),w=ze(g.y,y.y,x);if(0<=b&&b<u&&0<=w&&w<u&&0<=d-c&&d+c<=p){var S=new oc(b,w,_,m);S._round(),n&&!hc(e,S,a,n,o)||f.push(S)}}h+=v}return l||f.length||s||(f=t(e,h/2,r,n,o,a,s,!0,u)),f}(h,T?d/2*_%d:(w/2+2*y)*v*_%d,d,b,f,S,T,!1,x));Z<H.length;Z+=1){var K=H[Z];C&&Rc(i,C.text,F,K)||j(G,K)}else if(\"line-center\"===B)for(var W=0,X=r.geometry;W<X.length;W+=1){var Y=X[W];if(1<Y.length){var J=gc(Y,z,n.vertical||C,o,24,P);J&&j(Y,J)}}else if(\"Polygon\"===r.type)for(var Q=0,$=gl(r.geometry,0);Q<$.length;Q+=1){var tt=$[Q],et=Ic(tt,16);j(tt[0],new oc(et.x,et.y,0))}else if(\"LineString\"===r.type)for(var it=0,rt=r.geometry;it<rt.length;it+=1){var nt=rt[it];j(nt,new oc(nt[0].x,nt[0].y,0))}else if(\"Point\"===r.type)for(var ot=0,at=r.geometry;ot<at.length;ot+=1)for(var st=0,lt=at[ot];st<lt.length;st+=1){var ut=lt[st];j([ut],new oc(ut.x,ut.y,0))}}(B,t,o,O,j,G,r,n,s,z)},X=0,Y=B.features;X<Y.length;X+=1)u();t&&B.generateCollisionDebugBuffers()},t.perspective=function(t,e,i,r,n){var o,a=1/Math.tan(e/2);return t[0]=a/i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=n&&n!==1/0?(o=1/(r-n),t[10]=(n+r)*o,t[14]=2*n*r*o):(t[10]=-1,t[14]=-2*r),t},t.pick=function(t,e){for(var i={},r=0;r<e.length;r++){var n=e[r];n in t&&(i[n]=t[n])}return i},t.plugin=tn,t.polygonIntersectsPolygon=es,t.postMapLoadEvent=nt,t.postTurnstileEvent=it,t.potpack=Fu,t.refProperties=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"],t.register=kr,t.registerForPluginStateChange=function(t){return t({pluginStatus:Kr,pluginURL:Wr}),$r.on(\"pluginStateChange\",t),t},t.rotate=function(t,e,i){var r=e[0],n=e[1],o=e[2],a=e[3],s=Math.sin(i),l=Math.cos(i);return t[0]=r*l+o*s,t[1]=n*l+a*s,t[2]=r*-s+o*l,t[3]=n*-s+a*l,t},t.rotateX=function(t,e,i){var r=Math.sin(i),n=Math.cos(i),o=e[4],a=e[5],s=e[6],l=e[7],u=e[8],c=e[9],p=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=o*n+u*r,t[5]=a*n+c*r,t[6]=s*n+p*r,t[7]=l*n+h*r,t[8]=u*n-o*r,t[9]=c*n-a*r,t[10]=p*n-s*r,t[11]=h*n-l*r,t},t.rotateZ=function(t,e,i){var r=Math.sin(i),n=Math.cos(i),o=e[0],a=e[1],s=e[2],l=e[3],u=e[4],c=e[5],p=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=o*n+u*r,t[1]=a*n+c*r,t[2]=s*n+p*r,t[3]=l*n+h*r,t[4]=u*n-o*r,t[5]=c*n-a*r,t[6]=p*n-s*r,t[7]=h*n-l*r,t},t.scale=function(t,e,i){var r=i[0],n=i[1],o=i[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.scale$1=function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t},t.scale$2=function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t},t.setCacheLimits=function(t,e){at=t,st=e},t.setRTLTextPlugin=function(t,e,i){if(void 0===i&&(i=!1),Kr===Vr||Kr===Gr||Kr===Zr)throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");Wr=O.resolveURL(t),Kr=Vr,Hr=e,Xr(),i||Jr()},t.sphericalToCartesian=function(t){var e=t[0],i=t[1],r=t[2];return i+=90,i*=Math.PI/180,r*=Math.PI/180,{x:e*Math.cos(i)*Math.sin(r),y:e*Math.sin(i)*Math.sin(r),z:e*Math.cos(r)}},t.sqrLen=function(t){var e=t[0],i=t[1];return e*e+i*i},t.styleSpec=Nt,t.sub=function(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t},t.symbolSize=pc,t.transformMat3=function(t,e,i){var r=e[0],n=e[1],o=e[2];return t[0]=r*i[0]+n*i[3]+o*i[6],t[1]=r*i[1]+n*i[4]+o*i[7],t[2]=r*i[2]+n*i[5]+o*i[8],t},t.transformMat4=vs,t.translate=function(t,e,i){var r,n,o,a,s,l,u,c,p,h,d,f,m=i[0],g=i[1],y=i[2];return e===t?(t[12]=e[0]*m+e[4]*g+e[8]*y+e[12],t[13]=e[1]*m+e[5]*g+e[9]*y+e[13],t[14]=e[2]*m+e[6]*g+e[10]*y+e[14],t[15]=e[3]*m+e[7]*g+e[11]*y+e[15]):(r=e[0],n=e[1],o=e[2],a=e[3],s=e[4],l=e[5],u=e[6],c=e[7],p=e[8],h=e[9],d=e[10],f=e[11],t[0]=r,t[1]=n,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t[6]=u,t[7]=c,t[8]=p,t[9]=h,t[10]=d,t[11]=f,t[12]=r*m+s*g+p*y+e[12],t[13]=n*m+l*g+h*y+e[13],t[14]=o*m+u*g+d*y+e[14],t[15]=a*m+c*g+f*y+e[15]),t},t.triggerPluginCompletionEvent=qr,t.uniqueId=c,t.validateCustomStyleLayer=function(t){var e=[],i=t.id;return void 0===i&&e.push({message:\"layers.\"+i+': missing required property \"id\"'}),void 0===t.render&&e.push({message:\"layers.\"+i+': missing required method \"render\"'}),t.renderingMode&&\"2d\"!==t.renderingMode&&\"3d\"!==t.renderingMode&&e.push({message:\"layers.\"+i+': property \"renderingMode\" must be either \"2d\" or \"3d\"'}),e},t.validateLight=_r,t.validateStyle=vr,t.values=function(t){var e=[];for(var i in t)e.push(t[i]);return e},t.vectorTile=zl,t.version=\"1.8.1\",t.warnOnce=pt,t.webpSupported=R,t.window=self,t.wrap=s}),i(0,function(P){function l(t){var e=typeof t;if(\"number\"==e||\"boolean\"==e||\"string\"==e||null==t)return JSON.stringify(t);if(Array.isArray(t)){for(var i=\"[\",r=0,n=t;r<n.length;r+=1)i+=l(n[r])+\",\";return i+\"]\"}for(var o=Object.keys(t).sort(),a=\"{\",s=0;s<o.length;s++)a+=JSON.stringify(o[s])+\":\"+l(t[o[s]])+\",\";return a+\"}\"}function v(t){for(var e=\"\",i=0,r=P.refProperties;i<r.length;i+=1)e+=\"/\"+l(t[r[i]]);return e}function i(t){this.keyCache={},t&&this.replace(t)}function M(t){var e={},i=[];for(var r in t){var n=t[r],o=e[r]={};for(var a in n){var s=n[+a];if(s&&0!==s.bitmap.width&&0!==s.bitmap.height){var l={x:0,y:0,w:s.bitmap.width+2,h:s.bitmap.height+2};i.push(l),o[a]={rect:l,metrics:s.metrics}}}}var u=P.potpack(i),c=u.w,p=u.h,h=new P.AlphaImage({width:c||1,height:p||1});for(var d in t){var f=t[d];for(var m in f){var g=f[+m];if(g&&0!==g.bitmap.width&&0!==g.bitmap.height){var y=e[d][m].rect;P.AlphaImage.copy(g.bitmap,h,{x:0,y:0},{x:y.x+1,y:y.y+1},g.bitmap)}}}this.image=h,this.positions=e}function e(t){this.tileID=new P.OverscaledTileID(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.uid=t.uid,this.zoom=t.zoom,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=t.showCollisionBoxes,this.collectResourceTiming=!!t.collectResourceTiming,this.returnDependencies=!!t.returnDependencies,this.promoteId=t.promoteId}function L(t,e,i){for(var r=new P.EvaluationParameters(e),n=0,o=t;n<o.length;n+=1)o[n].recalculate(r,i)}function n(t,n){var e=P.getArrayBuffer(t.request,function(t,e,i,r){t?n(t):e&&n(null,{vectorTile:new P.vectorTile.VectorTile(new P.pbf(e)),rawData:e,cacheControl:i,expires:r})});return function(){e.cancel(),n()}}function r(t,e,i,r){this.actor=t,this.layerIndex=e,this.availableImages=i,this.loadVectorData=r||n,this.loading={},this.loaded={}}function o(){this.loaded={}}i.prototype.replace=function(t){this._layerConfigs={},this._layers={},this.update(t,[])},i.prototype.update=function(t,e){for(var i=this,r=0,n=t;r<n.length;r+=1){var o=n[r];this._layerConfigs[o.id]=o;var a=this._layers[o.id]=P.createStyleLayer(o);a._featureFilter=P.featureFilter(a.filter),this.keyCache[o.id]&&delete this.keyCache[o.id]}for(var s=0,l=e;s<l.length;s+=1){var u=l[s];delete this.keyCache[u],delete this._layerConfigs[u],delete this._layers[u]}this.familiesBySource={};for(var c=0,p=function(t,e){for(var i={},r=0;r<t.length;r++){var n=e&&e[t[r].id]||v(t[r]);e&&(e[t[r].id]=n);var o=i[n];(o=o||(i[n]=[])).push(t[r])}var a=[];for(var s in i)a.push(i[s]);return a}(P.values(this._layerConfigs),this.keyCache);c<p.length;c+=1){var h=p[c].map(function(t){return i._layers[t.id]}),d=h[0];if(\"none\"!==d.visibility){var f=d.source||\"\",m=this.familiesBySource[f];m=m||(this.familiesBySource[f]={});var g=d.sourceLayer||\"_geojsonTileLayer\",y=m[g];(y=y||(m[g]=[])).push(h)}}},P.register(\"GlyphAtlas\",M),e.prototype.parse=function(t,e,n,i,o){var r=this;this.status=\"parsing\",this.data=t,this.collisionBoxArray=new P.CollisionBoxArray;var a=new P.DictionaryCoder(Object.keys(t.layers).sort()),s=new P.FeatureIndex(this.tileID,this.promoteId);s.bucketLayerIDs=[];var l,u,c,p,h={},d={featureIndex:s,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:n},f=e.familiesBySource[this.source];for(var m in f){var g=t.layers[m];if(g){1===g.version&&P.warnOnce('Vector tile source \"'+this.source+'\" layer \"'+m+'\" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var y=a.encode(m),v=[],_=0;_<g.length;_++){var x=g.feature(_),b=s.getId(x,m);v.push({feature:x,id:b,index:_,sourceLayerIndex:y})}for(var w=0,S=f[m];w<S.length;w+=1){var T=S[w],E=T[0];E.minzoom&&this.zoom<Math.floor(E.minzoom)||E.maxzoom&&this.zoom>=E.maxzoom||\"none\"!==E.visibility&&(L(T,this.zoom,n),(h[E.id]=E.createBucket({index:s.bucketLayerIDs.length,layers:T,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:y,sourceID:this.source})).populate(v,d),s.bucketLayerIDs.push(T.map(function(t){return t.id})))}}}var I=P.mapObject(d.glyphDependencies,function(t){return Object.keys(t).map(Number)});Object.keys(I).length?i.send(\"getGlyphs\",{uid:this.uid,stacks:I},function(t,e){l||(l=t,u=e,k.call(r))}):u={};var C=Object.keys(d.iconDependencies);C.length?i.send(\"getImages\",{icons:C,source:this.source,tileID:this.tileID,type:\"icons\"},function(t,e){l||(l=t,c=e,k.call(r))}):c={};var A=Object.keys(d.patternDependencies);function k(){if(l)return o(l);if(u&&c&&p){var t=new M(u),e=new P.ImageAtlas(c,p);for(var i in h){var r=h[i];r instanceof P.SymbolBucket?(L(r.layers,this.zoom,n),P.performSymbolLayout(r,u,t.positions,c,e.iconPositions,this.showCollisionBoxes)):r.hasPattern&&(r instanceof P.LineBucket||r instanceof P.FillBucket||r instanceof P.FillExtrusionBucket)&&(L(r.layers,this.zoom,n),r.addFeatures(d,e.patternPositions))}this.status=\"done\",o(null,{buckets:P.values(h).filter(function(t){return!t.isEmpty()}),featureIndex:s,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:e,glyphMap:this.returnDependencies?u:null,iconMap:this.returnDependencies?c:null,glyphPositions:this.returnDependencies?t.positions:null})}}A.length?i.send(\"getImages\",{icons:A,source:this.source,tileID:this.tileID,type:\"patterns\"},function(t,e){l||(l=t,p=e,k.call(r))}):p={},k.call(this)},r.prototype.loadTile=function(t,a){var s=this,l=t.uid;this.loading||(this.loading={});var u=!!(t&&t.request&&t.request.collectResourceTiming)&&new P.RequestPerformance(t.request),c=this.loading[l]=new e(t);c.abort=this.loadVectorData(t,function(t,e){if(delete s.loading[l],t||!e)return c.status=\"done\",s.loaded[l]=c,a(t);var i=e.rawData,r={};e.expires&&(r.expires=e.expires),e.cacheControl&&(r.cacheControl=e.cacheControl);var n={};if(u){var o=u.finish();o&&(n.resourceTiming=JSON.parse(JSON.stringify(o)))}c.vectorTile=e.vectorTile,c.parse(e.vectorTile,s.layerIndex,s.availableImages,s.actor,function(t,e){if(t||!e)return a(t);a(null,P.extend({rawTileData:i.slice(0)},e,r,n))}),s.loaded=s.loaded||{},s.loaded[l]=c})},r.prototype.reloadTile=function(t,r){var n=this,e=this.loaded,i=t.uid,o=this;if(e&&e[i]){var a=e[i];a.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,e){var i=a.reloadCallback;i&&(delete a.reloadCallback,a.parse(a.vectorTile,o.layerIndex,n.availableImages,o.actor,i)),r(t,e)};\"parsing\"===a.status?a.reloadCallback=s:\"done\"===a.status&&(a.vectorTile?a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},r.prototype.abortTile=function(t,e){var i=this.loading,r=t.uid;i&&i[r]&&i[r].abort&&(i[r].abort(),delete i[r]),e()},r.prototype.removeTile=function(t,e){var i=this.loaded,r=t.uid;i&&i[r]&&delete i[r],e()};var s=P.window.ImageBitmap;o.prototype.loadTile=function(t,e){var i=t.uid,r=t.encoding,n=t.rawImageData,o=s&&n instanceof s?this.getImageData(n):n,a=new P.DEMData(i,o,r);this.loaded=this.loaded||{},e(null,this.loaded[i]=a)},o.prototype.getImageData=function(t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(t.width,t.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext(\"2d\")),this.offscreenCanvas.width=t.width,this.offscreenCanvas.height=t.height,this.offscreenCanvasContext.drawImage(t,0,0,t.width,t.height);var e=this.offscreenCanvasContext.getImageData(-1,-1,t.width+2,t.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new P.RGBAImage({width:e.width,height:e.height},e.data)},o.prototype.removeTile=function(t){var e=this.loaded,i=t.uid;e&&e[i]&&delete e[i]};var u={RADIUS:6378137,FLATTENING:1/298.257223563,POLAR_RADIUS:6356752.3142};function a(t){var e=0;if(t&&0<t.length){e+=Math.abs(c(t[0]));for(var i=1;i<t.length;i++)e-=Math.abs(c(t[i]))}return e}function c(t){var e,i,r,n,o,a,s=0,l=t.length;if(2<l){for(a=0;a<l;a++)o=a===l-2?(r=l-2,n=l-1,0):a===l-1?(r=l-1,n=0,1):(n=(r=a)+1,a+2),e=t[r],i=t[n],s+=(p(t[o][0])-p(e[0]))*Math.sin(p(i[1]));s=s*u.RADIUS*u.RADIUS/2}return s}function p(t){return t*Math.PI/180}var h={geometry:function t(e){var i,r=0;switch(e.type){case\"Polygon\":return a(e.coordinates);case\"MultiPolygon\":for(i=0;i<e.coordinates.length;i++)r+=a(e.coordinates[i]);return r;case\"Point\":case\"MultiPoint\":case\"LineString\":case\"MultiLineString\":return 0;case\"GeometryCollection\":for(i=0;i<e.geometries.length;i++)r+=t(e.geometries[i]);return r}},ring:c};function d(e,i){return function(t){return e(t,i)}}function f(t,e){e=!!e,t[0]=m(t[0],e);for(var i=1;i<t.length;i++)t[i]=m(t[i],!e);return t}function m(t,e){return i=t,0<=h.ring(i)===e?t:t.reverse();var i}function g(t){this._feature=t,this.extent=P.EXTENT,this.type=t.type,this.properties=t.tags,\"id\"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10))}var y=P.vectorTile.VectorTileFeature.prototype.toGeoJSON;g.prototype.loadGeometry=function(){if(1===this._feature.type){for(var t=[],e=0,i=this._feature.geometry;e<i.length;e+=1){var r=i[e];t.push([new P.Point$1(r[0],r[1])])}return t}for(var n=[],o=0,a=this._feature.geometry;o<a.length;o+=1){for(var s=[],l=0,u=a[o];l<u.length;l+=1){var c=u[l];s.push(new P.Point$1(c[0],c[1]))}n.push(s)}return n},g.prototype.toGeoJSON=function(t,e,i){return y.call(this,t,e,i)};var _=function(t){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=P.EXTENT,this.length=t.length,this._features=t};_.prototype.feature=function(t){return new g(this._features[t])};var t=P.vectorTile.VectorTileFeature,x=b;function b(t,e){this.options=e||{},this.features=t,this.length=t.length}function w(t,e){this.id=\"number\"==typeof t.id?t.id:void 0,this.type=t.type,this.rawGeometry=1===t.type?[t.geometry]:t.geometry,this.properties=t.tags,this.extent=e||4096}b.prototype.feature=function(t){return new w(this.features[t],this.options.extent)},w.prototype.loadGeometry=function(){var t=this.rawGeometry;this.geometry=[];for(var e=0;e<t.length;e++){for(var i=t[e],r=[],n=0;n<i.length;n++)r.push(new P.Point$1(i[n][0],i[n][1]));this.geometry.push(r)}return this.geometry},w.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var t=this.geometry,e=1/0,i=-1/0,r=1/0,n=-1/0,o=0;o<t.length;o++)for(var a=t[o],s=0;s<a.length;s++){var l=a[s];e=Math.min(e,l.x),i=Math.max(i,l.x),r=Math.min(r,l.y),n=Math.max(n,l.y)}return[e,r,i,n]},w.prototype.toGeoJSON=t.prototype.toGeoJSON;var S=I,T=I,E=x;function I(t){var e=new P.pbf;return function(t,e){for(var i in t.layers)e.writeMessage(3,C,t.layers[i])}(t,e),e.finish()}function C(t,e){var i;e.writeVarintField(15,t.version||1),e.writeStringField(1,t.name||\"\"),e.writeVarintField(5,t.extent||4096);var r={keys:[],values:[],keycache:{},valuecache:{}};for(i=0;i<t.length;i++)r.feature=t.feature(i),e.writeMessage(2,A,r);var n=r.keys;for(i=0;i<n.length;i++)e.writeStringField(3,n[i]);var o=r.values;for(i=0;i<o.length;i++)e.writeMessage(4,R,o[i])}function A(t,e){var i=t.feature;void 0!==i.id&&e.writeVarintField(1,i.id),e.writeMessage(2,k,t),e.writeVarintField(3,i.type),e.writeMessage(4,z,i)}function k(t,e){var i=t.feature,r=t.keys,n=t.values,o=t.keycache,a=t.valuecache;for(var s in i.properties){var l=o[s];void 0===l&&(r.push(s),l=r.length-1,o[s]=l),e.writeVarint(l);var u=i.properties[s],c=typeof u;\"string\"!=c&&\"boolean\"!=c&&\"number\"!=c&&(u=JSON.stringify(u));var p=c+\":\"+u,h=a[p];void 0===h&&(n.push(u),h=n.length-1,a[p]=h),e.writeVarint(h)}}function D(t,e){return(e<<3)+(7&t)}function O(t){return t<<1^t>>31}function z(t,e){for(var i=t.loadGeometry(),r=t.type,n=0,o=0,a=i.length,s=0;s<a;s++){var l=i[s],u=1;1===r&&(u=l.length),e.writeVarint(D(1,u));for(var c=3===r?l.length-1:l.length,p=0;p<c;p++){1===p&&1!==r&&e.writeVarint(D(2,c-1));var h=l[p].x-n,d=l[p].y-o;e.writeVarint(O(h)),e.writeVarint(O(d)),n+=h,o+=d}3===r&&e.writeVarint(15)}}function R(t,e){var i=typeof t;\"string\"==i?e.writeStringField(1,t):\"boolean\"==i?e.writeBooleanField(7,t):\"number\"==i&&(t%1!=0?e.writeDoubleField(3,t):t<0?e.writeSVarintField(6,t):e.writeVarintField(5,t))}function N(t,e,i,r){B(t,i,r),B(e,2*i,2*r),B(e,2*i+1,2*r+1)}function B(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function F(t,e,i,r){var n=t-i,o=e-r;return n*n+o*o}function U(t){return t[0]}function j(t){return t[1]}function q(t,e,i,r,n){void 0===e&&(e=U),void 0===i&&(i=j),void 0===r&&(r=64),void 0===n&&(n=Float64Array),this.nodeSize=r;for(var o=(this.points=t).length<65536?Uint16Array:Uint32Array,a=this.ids=new o(t.length),s=this.coords=new n(2*t.length),l=0;l<t.length;l++)s[2*(a[l]=l)]=e(t[l]),s[2*l+1]=i(t[l]);!function t(e,i,r,n,o,a){if(!(o-n<=r)){var s=n+o>>1;!function t(e,i,r,n,o,a){for(;n<o;){if(600<o-n){var s=o-n+1,l=r-n+1,u=Math.log(s),c=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*c*(s-c)/s)*(l-s/2<0?-1:1);t(e,i,r,Math.max(n,Math.floor(r-l*c/s+p)),Math.min(o,Math.floor(r+(s-l)*c/s+p)),a)}var h=i[2*r+a],d=n,f=o;for(N(e,i,n,r),i[2*o+a]>h&&N(e,i,n,o);d<f;){for(N(e,i,d,f),d++,f--;i[2*d+a]<h;)d++;for(;i[2*f+a]>h;)f--}i[2*n+a]===h?N(e,i,n,f):N(e,i,++f,o),f<=r&&(n=f+1),r<=f&&(o=f-1)}}(e,i,s,n,o,a%2),t(e,i,r,n,s-1,a+1),t(e,i,r,1+s,o,a+1)}}(a,s,r,0,a.length-1,0)}function V(t){this.options=X(Object.create(G),t),this.trees=new Array(this.options.maxZoom+1)}S.fromVectorTileJs=T,S.fromGeojsonVt=function(t,e){e=e||{};var i={};for(var r in t)i[r]=new x(t[r].features,e),i[r].name=r,i[r].version=e.version,i[r].extent=e.extent;return I({layers:i})},S.GeoJSONWrapper=E,q.prototype.range=function(t,e,i,r){return function(t,e,i,r,n,o,a){for(var s,l,u=[0,t.length-1,0],c=[];u.length;){var p=u.pop(),h=u.pop(),d=u.pop();if(h-d<=a)for(var f=d;f<=h;f++)s=e[2*f],l=e[2*f+1],i<=s&&s<=n&&r<=l&&l<=o&&c.push(t[f]);else{var m=Math.floor((d+h)/2);s=e[2*m],l=e[2*m+1],i<=s&&s<=n&&r<=l&&l<=o&&c.push(t[m]);var g=(p+1)%2;(0===p?i<=s:r<=l)&&(u.push(d),u.push(m-1),u.push(g)),(0===p?s<=n:l<=o)&&(u.push(m+1),u.push(h),u.push(g))}}return c}(this.ids,this.coords,t,e,i,r,this.nodeSize)};var G={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!(q.prototype.within=function(t,e,i){return function(t,e,i,r,n,o){for(var a=[0,t.length-1,0],s=[],l=n*n;a.length;){var u=a.pop(),c=a.pop(),p=a.pop();if(c-p<=o)for(var h=p;h<=c;h++)F(e[2*h],e[2*h+1],i,r)<=l&&s.push(t[h]);else{var d=Math.floor((p+c)/2),f=e[2*d],m=e[2*d+1];F(f,m,i,r)<=l&&s.push(t[d]);var g=(u+1)%2;(0===u?i-n<=f:r-n<=m)&&(a.push(p),a.push(d-1),a.push(g)),(0===u?f<=i+n:m<=r+n)&&(a.push(d+1),a.push(c),a.push(g))}}return s}(this.ids,this.coords,t,e,i,this.nodeSize)}),generateId:!1,reduce:null,map:function(t){return t}};function Z(t){return{type:\"Feature\",id:t.id,properties:H(t),geometry:{type:\"Point\",coordinates:[360*(t.x-.5),(e=(180-360*t.y)*Math.PI/180,360*Math.atan(Math.exp(e))/Math.PI-90)]}};var e}function H(t){var e=t.numPoints,i=1e4<=e?Math.round(e/1e3)+\"k\":1e3<=e?Math.round(e/100)/10+\"k\":e;return X(X({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:i})}function K(t){return t/360+.5}function W(t){var e=Math.sin(t*Math.PI/180),i=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return i<0?0:1<i?1:i}function X(t,e){for(var i in e)t[i]=e[i];return t}function Y(t){return t.x}function J(t){return t.y}function Q(t,e,i,r,n,o){var a=n-i,s=o-r;if(0!==a||0!==s){var l=((t-i)*a+(e-r)*s)/(a*a+s*s);1<l?(i=n,r=o):0<l&&(i+=a*l,r+=s*l)}return(a=t-i)*a+(s=e-r)*s}function $(t,e,i,r){var n={id:void 0===t?null:t,type:e,geometry:i,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,i=t.type;if(\"Point\"===i||\"MultiPoint\"===i||\"LineString\"===i)tt(t,e);else if(\"Polygon\"===i||\"MultiLineString\"===i)for(var r=0;r<e.length;r++)tt(t,e[r]);else if(\"MultiPolygon\"===i)for(r=0;r<e.length;r++)for(var n=0;n<e[r].length;n++)tt(t,e[r][n])}(n),n}function tt(t,e){for(var i=0;i<e.length;i+=3)t.minX=Math.min(t.minX,e[i]),t.minY=Math.min(t.minY,e[i+1]),t.maxX=Math.max(t.maxX,e[i]),t.maxY=Math.max(t.maxY,e[i+1])}function et(t,e,i,r){if(e.geometry){var n=e.geometry.coordinates,o=e.geometry.type,a=Math.pow(i.tolerance/((1<<i.maxZoom)*i.extent),2),s=[],l=e.id;if(i.promoteId?l=e.properties[i.promoteId]:i.generateId&&(l=r||0),\"Point\"===o)it(n,s);else if(\"MultiPoint\"===o)for(var u=0;u<n.length;u++)it(n[u],s);else if(\"LineString\"===o)rt(n,s,a,!1);else if(\"MultiLineString\"===o){if(i.lineMetrics){for(u=0;u<n.length;u++)s=[],rt(n[u],s,a,!1),t.push($(l,\"LineString\",s,e.properties));return}nt(n,s,a,!1)}else if(\"Polygon\"===o)nt(n,s,a,!0);else{if(\"MultiPolygon\"!==o){if(\"GeometryCollection\"!==o)throw new Error(\"Input data is not a valid GeoJSON object.\");for(u=0;u<e.geometry.geometries.length;u++)et(t,{id:l,geometry:e.geometry.geometries[u],properties:e.properties},i,r);return}for(u=0;u<n.length;u++){var c=[];nt(n[u],c,a,!0),s.push(c)}}t.push($(l,o,s,e.properties))}}function it(t,e){e.push(ot(t[0])),e.push(at(t[1])),e.push(0)}function rt(t,e,i,r){for(var n,o,a=0,s=0;s<t.length;s++){var l=ot(t[s][0]),u=at(t[s][1]);e.push(l),e.push(u),e.push(0),0<s&&(a+=r?(n*u-l*o)/2:Math.sqrt(Math.pow(l-n,2)+Math.pow(u-o,2))),n=l,o=u}var c=e.length-3;e[2]=1,function t(e,i,r,n){for(var o,a=n,s=r-i>>1,l=r-i,u=e[i],c=e[i+1],p=e[r],h=e[r+1],d=i+3;d<r;d+=3){var f=Q(e[d],e[d+1],u,c,p,h);if(a<f)o=d,a=f;else if(f===a){var m=Math.abs(d-s);m<l&&(o=d,l=m)}}n<a&&(3<o-i&&t(e,i,o,n),e[o+2]=a,3<r-o&&t(e,o,r,n))}(e,0,c,i),e[2+c]=1,e.size=Math.abs(a),e.start=0,e.end=e.size}function nt(t,e,i,r){for(var n=0;n<t.length;n++){var o=[];rt(t[n],o,i,r),e.push(o)}}function ot(t){return t/360+.5}function at(t){var e=Math.sin(t*Math.PI/180),i=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return i<0?0:1<i?1:i}function st(t,e,i,r,n,o,a,s){if(r/=e,o>=(i/=e)&&a<r)return t;if(a<i||r<=o)return null;for(var l=[],u=0;u<t.length;u++){var c=t[u],p=c.geometry,h=c.type,d=0===n?c.minX:c.minY,f=0===n?c.maxX:c.maxY;if(i<=d&&f<r)l.push(c);else if(!(f<i||r<=d)){var m=[];if(\"Point\"===h||\"MultiPoint\"===h)lt(p,m,i,r,n);else if(\"LineString\"===h)ut(p,m,i,r,n,!1,s.lineMetrics);else if(\"MultiLineString\"===h)pt(p,m,i,r,n,!1);else if(\"Polygon\"===h)pt(p,m,i,r,n,!0);else if(\"MultiPolygon\"===h)for(var g=0;g<p.length;g++){var y=[];pt(p[g],y,i,r,n,!0),y.length&&m.push(y)}if(m.length){if(s.lineMetrics&&\"LineString\"===h){for(g=0;g<m.length;g++)l.push($(c.id,h,m[g],c.tags));continue}\"LineString\"!==h&&\"MultiLineString\"!==h||(1===m.length?(h=\"LineString\",m=m[0]):h=\"MultiLineString\"),\"Point\"!==h&&\"MultiPoint\"!==h||(h=3===m.length?\"Point\":\"MultiPoint\"),l.push($(c.id,h,m,c.tags))}}}return l.length?l:null}function lt(t,e,i,r,n){for(var o=0;o<t.length;o+=3){var a=t[o+n];i<=a&&a<=r&&(e.push(t[o]),e.push(t[o+1]),e.push(t[o+2]))}}function ut(t,e,i,r,n,o,a){for(var s,l,u=ct(t),c=0===n?dt:ft,p=t.start,h=0;h<t.length-3;h+=3){var d=t[h],f=t[h+1],m=t[h+2],g=t[h+3],y=t[h+4],v=0===n?d:f,_=0===n?g:y,x=!1;a&&(s=Math.sqrt(Math.pow(d-g,2)+Math.pow(f-y,2))),v<i?i<_&&(l=c(u,d,f,g,y,i),a&&(u.start=p+s*l)):r<v?_<r&&(l=c(u,d,f,g,y,r),a&&(u.start=p+s*l)):ht(u,d,f,m),_<i&&i<=v&&(l=c(u,d,f,g,y,i),x=!0),r<_&&v<=r&&(l=c(u,d,f,g,y,r),x=!0),!o&&x&&(a&&(u.end=p+s*l),e.push(u),u=ct(t)),a&&(p+=s)}var b=t.length-3;d=t[b],f=t[b+1],m=t[b+2],(v=0===n?d:f)>=i&&v<=r&&ht(u,d,f,m),b=u.length-3,o&&3<=b&&(u[b]!==u[0]||u[b+1]!==u[1])&&ht(u,u[0],u[1],u[2]),u.length&&e.push(u)}function ct(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function pt(t,e,i,r,n,o){for(var a=0;a<t.length;a++)ut(t[a],e,i,r,n,o,!1)}function ht(t,e,i,r){t.push(e),t.push(i),t.push(r)}function dt(t,e,i,r,n,o){var a=(o-e)/(r-e);return t.push(o),t.push(i+(n-i)*a),t.push(1),a}function ft(t,e,i,r,n,o){var a=(o-i)/(n-i);return t.push(e+(r-e)*a),t.push(o),t.push(1),a}function mt(t,e){for(var i=[],r=0;r<t.length;r++){var n,o=t[r],a=o.type;if(\"Point\"===a||\"MultiPoint\"===a||\"LineString\"===a)n=gt(o.geometry,e);else if(\"MultiLineString\"===a||\"Polygon\"===a){n=[];for(var s=0;s<o.geometry.length;s++)n.push(gt(o.geometry[s],e))}else if(\"MultiPolygon\"===a)for(n=[],s=0;s<o.geometry.length;s++){for(var l=[],u=0;u<o.geometry[s].length;u++)l.push(gt(o.geometry[s][u],e));n.push(l)}i.push($(o.id,a,n,o.tags))}return i}function gt(t,e){var i=[];i.size=t.size,void 0!==t.start&&(i.start=t.start,i.end=t.end);for(var r=0;r<t.length;r+=3)i.push(t[r]+e,t[r+1],t[r+2]);return i}function yt(t,e){if(t.transformed)return t;var i,r,n,o=1<<t.z,a=t.x,s=t.y;for(i=0;i<t.features.length;i++){var l=t.features[i],u=l.geometry,c=l.type;if(l.geometry=[],1===c)for(r=0;r<u.length;r+=2)l.geometry.push(vt(u[r],u[r+1],e,o,a,s));else for(r=0;r<u.length;r++){var p=[];for(n=0;n<u[r].length;n+=2)p.push(vt(u[r][n],u[r][n+1],e,o,a,s));l.geometry.push(p)}}return t.transformed=!0,t}function vt(t,e,i,r,n,o){return[Math.round(i*(t*r-n)),Math.round(i*(e*r-o))]}function _t(t,e,i,r,n){for(var o=e===n.maxZoom?0:n.tolerance/((1<<e)*n.extent),a={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:i,y:r,z:e,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},s=0;s<t.length;s++){a.numFeatures++,xt(a,t[s],o,n);var l=t[s].minX,u=t[s].minY,c=t[s].maxX,p=t[s].maxY;l<a.minX&&(a.minX=l),u<a.minY&&(a.minY=u),c>a.maxX&&(a.maxX=c),p>a.maxY&&(a.maxY=p)}return a}function xt(t,e,i,r){var n=e.geometry,o=e.type,a=[];if(\"Point\"===o||\"MultiPoint\"===o)for(var s=0;s<n.length;s+=3)a.push(n[s]),a.push(n[s+1]),t.numPoints++,t.numSimplified++;else if(\"LineString\"===o)bt(a,n,t,i,!1,!1);else if(\"MultiLineString\"===o||\"Polygon\"===o)for(s=0;s<n.length;s++)bt(a,n[s],t,i,\"Polygon\"===o,0===s);else if(\"MultiPolygon\"===o)for(var l=0;l<n.length;l++){var u=n[l];for(s=0;s<u.length;s++)bt(a,u[s],t,i,!0,0===s)}if(a.length){var c=e.tags||null;if(\"LineString\"===o&&r.lineMetrics){for(var p in c={},e.tags)c[p]=e.tags[p];c.mapbox_clip_start=n.start/n.size,c.mapbox_clip_end=n.end/n.size}var h={geometry:a,type:\"Polygon\"===o||\"MultiPolygon\"===o?3:\"LineString\"===o||\"MultiLineString\"===o?2:1,tags:c};null!==e.id&&(h.id=e.id),t.features.push(h)}}function bt(t,e,i,r,n,o){var a=r*r;if(0<r&&e.size<(n?a:r))i.numPoints+=e.length/3;else{for(var s=[],l=0;l<e.length;l+=3)(0===r||e[l+2]>a)&&(i.numSimplified++,s.push(e[l]),s.push(e[l+1])),i.numPoints++;n&&function(t,e){for(var i=0,r=0,n=t.length,o=n-2;r<n;o=r,r+=2)i+=(t[r]-t[o])*(t[r+1]+t[o+1]);if(0<i===e)for(r=0,n=t.length;r<n/2;r+=2){var a=t[r],s=t[r+1];t[r]=t[n-2-r],t[r+1]=t[n-1-r],t[n-2-r]=a,t[n-1-r]=s}}(s,o),t.push(s)}}function wt(t,e){var i=(e=this.options=function(t,e){for(var i in e)t[i]=e[i];return t}(Object.create(this.options),e)).debug;if(i&&console.time(\"preprocess data\"),e.maxZoom<0||24<e.maxZoom)throw new Error(\"maxZoom should be in the 0-24 range\");if(e.promoteId&&e.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");var r,n,o,a,s,l,u=function(t,e){var i=[];if(\"FeatureCollection\"===t.type)for(var r=0;r<t.features.length;r++)et(i,t.features[r],e,r);else\"Feature\"===t.type?et(i,t,e):et(i,{geometry:t},e);return i}(t,e);this.tiles={},this.tileCoords=[],i&&(console.timeEnd(\"preprocess data\"),console.log(\"index: maxZoom: %d, maxPoints: %d\",e.indexMaxZoom,e.indexMaxPoints),console.time(\"generate tiles\"),this.stats={},this.total=0),r=u,o=(n=e).buffer/n.extent,s=st(a=r,1,-1-o,o,0,-1,2,n),l=st(r,1,1-o,2+o,0,-1,2,n),(s||l)&&(a=st(r,1,-o,1+o,0,-1,2,n)||[],s&&(a=mt(s,1).concat(a)),l&&(a=a.concat(mt(l,-1)))),(u=a).length&&this.splitTile(u,0,0,0),i&&(u.length&&console.log(\"features: %d, points: %d\",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd(\"generate tiles\"),console.log(\"tiles generated:\",this.total,JSON.stringify(this.stats)))}function St(t,e,i){return 32*((1<<t)*i+e)+t}function Tt(t,e){var i=t.tileID.canonical;if(!this._geoJSONIndex)return e(null,null);var r=this._geoJSONIndex.getTile(i.z,i.x,i.y);if(!r)return e(null,null);var n=new _(r.features),o=S(n);0===o.byteOffset&&o.byteLength===o.buffer.byteLength||(o=new Uint8Array(o)),e(null,{vectorTile:n,rawData:o.buffer})}V.prototype.load=function(t){var e=this.options,i=e.log,r=e.minZoom,n=e.maxZoom,o=e.nodeSize;i&&console.time(\"total time\");var a,s,l,u,c,p=\"prepare \"+t.length+\" points\";i&&console.time(p),this.points=t;for(var h=[],d=0;d<t.length;d++)t[d].geometry&&h.push((a=t[d],s=d,l=a.geometry.coordinates,u=l[0],c=l[1],{x:K(u),y:W(c),zoom:1/0,index:s,parentId:-1}));this.trees[n+1]=new q(h,Y,J,o,Float32Array),i&&console.timeEnd(p);for(var f=n;r<=f;f--){var m=+Date.now();h=this._cluster(h,f),this.trees[f]=new q(h,Y,J,o,Float32Array),i&&console.log(\"z%d: %d clusters in %dms\",f,h.length,Date.now()-m)}return i&&console.timeEnd(\"total time\"),this},V.prototype.getClusters=function(t,e){var i=((t[0]+180)%360+360)%360-180,r=Math.max(-90,Math.min(90,t[1])),n=180===t[2]?180:((t[2]+180)%360+360)%360-180,o=Math.max(-90,Math.min(90,t[3]));if(360<=t[2]-t[0])i=-180,n=180;else if(n<i){var a=this.getClusters([i,r,180,o],e),s=this.getClusters([-180,r,n,o],e);return a.concat(s)}for(var l=this.trees[this._limitZoom(e)],u=[],c=0,p=l.range(K(i),W(o),K(n),W(r));c<p.length;c+=1){var h=p[c],d=l.points[h];u.push(d.numPoints?Z(d):this.points[d.index])}return u},V.prototype.getChildren=function(t){var e=this._getOriginId(t),i=this._getOriginZoom(t),r=\"No cluster with the specified id.\",n=this.trees[i];if(!n)throw new Error(r);var o=n.points[e];if(!o)throw new Error(r);for(var a=this.options.radius/(this.options.extent*Math.pow(2,i-1)),s=[],l=0,u=n.within(o.x,o.y,a);l<u.length;l+=1){var c=u[l],p=n.points[c];p.parentId===t&&s.push(p.numPoints?Z(p):this.points[p.index])}if(0===s.length)throw new Error(r);return s},V.prototype.getLeaves=function(t,e,i){e=e||10,i=i||0;var r=[];return this._appendLeaves(r,t,e,i,0),r},V.prototype.getTile=function(t,e,i){var r=this.trees[this._limitZoom(t)],n=Math.pow(2,t),o=this.options,a=o.extent,s=o.radius/a,l=(i-s)/n,u=(i+1+s)/n,c={features:[]};return this._addTileFeatures(r.range((e-s)/n,l,(e+1+s)/n,u),r.points,e,i,n,c),0===e&&this._addTileFeatures(r.range(1-s/n,l,1,u),r.points,n,i,n,c),e===n-1&&this._addTileFeatures(r.range(0,l,s/n,u),r.points,-1,i,n,c),c.features.length?c:null},V.prototype.getClusterExpansionZoom=function(t){for(var e=this._getOriginZoom(t)-1;e<=this.options.maxZoom;){var i=this.getChildren(t);if(e++,1!==i.length)break;t=i[0].properties.cluster_id}return e},V.prototype._appendLeaves=function(t,e,i,r,n){for(var o=0,a=this.getChildren(e);o<a.length;o+=1){var s=a[o],l=s.properties;if(l&&l.cluster?n+l.point_count<=r?n+=l.point_count:n=this._appendLeaves(t,l.cluster_id,i,r,n):n<r?n++:t.push(s),t.length===i)break}return n},V.prototype._addTileFeatures=function(t,e,i,r,n,o){for(var a=0,s=t;a<s.length;a+=1){var l=e[s[a]],u=l.numPoints,c={type:1,geometry:[[Math.round(this.options.extent*(l.x*n-i)),Math.round(this.options.extent*(l.y*n-r))]],tags:u?H(l):this.points[l.index].properties},p=void 0;u?p=l.id:this.options.generateId?p=l.index:this.points[l.index].id&&(p=this.points[l.index].id),void 0!==p&&(c.id=p),o.features.push(c)}},V.prototype._limitZoom=function(t){return Math.max(this.options.minZoom,Math.min(t,this.options.maxZoom+1))},V.prototype._cluster=function(t,e){for(var i=[],r=this.options,n=r.radius,o=r.extent,a=r.reduce,s=n/(o*Math.pow(2,e)),l=0;l<t.length;l++){var u=t[l];if(!(u.zoom<=e)){u.zoom=e;for(var c=this.trees[e+1],p=c.within(u.x,u.y,s),h=u.numPoints||1,d=u.x*h,f=u.y*h,m=a&&1<h?this._map(u,!0):null,g=(l<<5)+(e+1)+this.points.length,y=0,v=p;y<v.length;y+=1){var _=v[y],x=c.points[_];if(!(x.zoom<=e)){x.zoom=e;var b=x.numPoints||1;d+=x.x*b,f+=x.y*b,h+=b,x.parentId=g,a&&a(m=m||this._map(u,!0),this._map(x))}}1===h?i.push(u):(u.parentId=g,i.push({x:d/h,y:f/h,zoom:1/0,id:g,parentId:-1,numPoints:h,properties:m}))}}return i},V.prototype._getOriginId=function(t){return t-this.points.length>>5},V.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},wt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!(V.prototype._map=function(t,e){if(t.numPoints)return e?X({},t.properties):t.properties;var i=this.points[t.index].properties,r=this.options.map(i);return e&&r===i?X({},r):r}),promoteId:null,generateId:!1,debug:0},wt.prototype.splitTile=function(t,e,i,r,n,o,a){for(var s=[t,e,i,r],l=this.options,u=l.debug;s.length;){r=s.pop(),i=s.pop(),e=s.pop(),t=s.pop();var c=1<<e,p=St(e,i,r),h=this.tiles[p];if(!h&&(1<u&&console.time(\"creation\"),h=this.tiles[p]=_t(t,e,i,r,l),this.tileCoords.push({z:e,x:i,y:r}),u)){1<u&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",e,i,r,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd(\"creation\"));var d=\"z\"+e;this.stats[d]=(this.stats[d]||0)+1,this.total++}if(h.source=t,n){if(e===l.maxZoom||e===n)continue;var f=1<<n-e;if(i!==Math.floor(o/f)||r!==Math.floor(a/f))continue}else if(e===l.indexMaxZoom||h.numPoints<=l.indexMaxPoints)continue;if(h.source=null,0!==t.length){1<u&&console.time(\"clipping\");var m,g,y,v,_,x,b=.5*l.buffer/l.extent,w=.5-b,S=.5+b,T=1+b;m=g=y=v=null,_=st(t,c,i-b,i+S,0,h.minX,h.maxX,l),x=st(t,c,i+w,i+T,0,h.minX,h.maxX,l),t=null,_&&(m=st(_,c,r-b,r+S,1,h.minY,h.maxY,l),g=st(_,c,r+w,r+T,1,h.minY,h.maxY,l),_=null),x&&(y=st(x,c,r-b,r+S,1,h.minY,h.maxY,l),v=st(x,c,r+w,r+T,1,h.minY,h.maxY,l),x=null),1<u&&console.timeEnd(\"clipping\"),s.push(m||[],e+1,2*i,2*r),s.push(g||[],e+1,2*i,2*r+1),s.push(y||[],e+1,2*i+1,2*r),s.push(v||[],e+1,2*i+1,2*r+1)}}},wt.prototype.getTile=function(t,e,i){var r=this.options,n=r.extent,o=r.debug;if(t<0||24<t)return null;var a=1<<t,s=St(t,e=(e%a+a)%a,i);if(this.tiles[s])return yt(this.tiles[s],n);1<o&&console.log(\"drilling down to z%d-%d-%d\",t,e,i);for(var l,u=t,c=e,p=i;!l&&0<u;)u--,c=Math.floor(c/2),p=Math.floor(p/2),l=this.tiles[St(u,c,p)];return l&&l.source?(1<o&&console.log(\"found parent tile z%d-%d-%d\",u,c,p),1<o&&console.time(\"drilling down\"),this.splitTile(l.source,u,c,p,t,e,i),1<o&&console.timeEnd(\"drilling down\"),this.tiles[s]?yt(this.tiles[s],n):null):null};var Et,It=(Ct.__proto__=Et=r,((Ct.prototype=Object.create(Et&&Et.prototype)).constructor=Ct).prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&\"Idle\"!==this._state?this._state=\"NeedsLoadData\":(this._state=\"Coalescing\",this._loadData())},Ct.prototype._loadData=function(){var n=this;if(this._pendingCallback&&this._pendingLoadDataParams){var o=this._pendingCallback,m=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var a=!!(m&&m.request&&m.request.collectResourceTiming)&&new P.RequestPerformance(m.request);this.loadGeoJSON(m,function(t,e){if(t||!e)return o(t);if(\"object\"!=typeof e)return o(new Error(\"Input data given to '\"+m.source+\"' is not a valid GeoJSON object.\"));!function t(e,i){switch(e&&e.type||null){case\"FeatureCollection\":return e.features=e.features.map(d(t,i)),e;case\"GeometryCollection\":return e.geometries=e.geometries.map(d(t,i)),e;case\"Feature\":return e.geometry=t(e.geometry,i),e;case\"Polygon\":case\"MultiPolygon\":return n=i,\"Polygon\"===(r=e).type?r.coordinates=f(r.coordinates,n):\"MultiPolygon\"===r.type&&(r.coordinates=r.coordinates.map(d(f,n))),r;default:return e}var r,n}(e,!0);try{n._geoJSONIndex=m.cluster?new V(function(){var t=m.superclusterOptions,e=m.clusterProperties;if(!e||!t)return t;for(var o={},a={},s={accumulated:null,zoom:0},l={properties:null},u=Object.keys(e),i=0,r=u;i<r.length;i+=1){var n=r[i],c=e[n],p=c[0],h=c[1],d=P.createExpression(h),f=P.createExpression(\"string\"==typeof p?[p,[\"accumulated\"],[\"get\",n]]:p);o[n]=d.value,a[n]=f.value}return t.map=function(t){l.properties=t;for(var e={},i=0,r=u;i<r.length;i+=1){var n=r[i];e[n]=o[n].evaluate(s,l)}return e},t.reduce=function(t,e){l.properties=e;for(var i=0,r=u;i<r.length;i+=1){var n=r[i];s.accumulated=t[n],t[n]=a[n].evaluate(s,l)}},t}()).load(e.features):new wt(e,m.geojsonVtOptions)}catch(t){return o(t)}n.loaded={};var i={};if(a){var r=a.finish();r&&(i.resourceTiming={},i.resourceTiming[m.source]=JSON.parse(JSON.stringify(r)))}o(null,i)})}},Ct.prototype.coalesce=function(){\"Coalescing\"===this._state?this._state=\"Idle\":\"NeedsLoadData\"===this._state&&(this._state=\"Coalescing\",this._loadData())},Ct.prototype.reloadTile=function(t,e){var i=this.loaded,r=t.uid;return i&&i[r]?Et.prototype.reloadTile.call(this,t,e):this.loadTile(t,e)},Ct.prototype.loadGeoJSON=function(e,i){if(e.request)P.getJSON(e.request,i);else{if(\"string\"!=typeof e.data)return i(new Error(\"Input data given to '\"+e.source+\"' is not a valid GeoJSON object.\"));try{return i(null,JSON.parse(e.data))}catch(t){return i(new Error(\"Input data given to '\"+e.source+\"' is not a valid GeoJSON object.\"))}}},Ct.prototype.removeSource=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),e()},Ct.prototype.getClusterExpansionZoom=function(t,e){try{e(null,this._geoJSONIndex.getClusterExpansionZoom(t.clusterId))}catch(t){e(t)}},Ct.prototype.getClusterChildren=function(t,e){try{e(null,this._geoJSONIndex.getChildren(t.clusterId))}catch(t){e(t)}},Ct.prototype.getClusterLeaves=function(t,e){try{e(null,this._geoJSONIndex.getLeaves(t.clusterId,t.limit,t.offset))}catch(t){e(t)}},Ct);function Ct(t,e,i,r){Et.call(this,t,e,i,Tt),r&&(this.loadGeoJSON=r)}function At(t){var i=this;this.self=t,this.actor=new P.Actor(t,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:r,geojson:It},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(t,e){if(i.workerSourceTypes[t])throw new Error('Worker source with name \"'+t+'\" already registered.');i.workerSourceTypes[t]=e},this.self.registerRTLTextPlugin=function(t){if(P.plugin.isParsed())throw new Error(\"RTL text plugin already registered.\");P.plugin.applyArabicShaping=t.applyArabicShaping,P.plugin.processBidirectionalText=t.processBidirectionalText,P.plugin.processStyledBidirectionalText=t.processStyledBidirectionalText}}return At.prototype.setReferrer=function(t,e){this.referrer=e},At.prototype.setImages=function(t,e,i){this.availableImages[t]=e,i()},At.prototype.setLayers=function(t,e,i){this.getLayerIndex(t).replace(e),i()},At.prototype.updateLayers=function(t,e,i){this.getLayerIndex(t).update(e.layers,e.removedIds),i()},At.prototype.loadTile=function(t,e,i){this.getWorkerSource(t,e.type,e.source).loadTile(e,i)},At.prototype.loadDEMTile=function(t,e,i){this.getDEMWorkerSource(t,e.source).loadTile(e,i)},At.prototype.reloadTile=function(t,e,i){this.getWorkerSource(t,e.type,e.source).reloadTile(e,i)},At.prototype.abortTile=function(t,e,i){this.getWorkerSource(t,e.type,e.source).abortTile(e,i)},At.prototype.removeTile=function(t,e,i){this.getWorkerSource(t,e.type,e.source).removeTile(e,i)},At.prototype.removeDEMTile=function(t,e){this.getDEMWorkerSource(t,e.source).removeTile(e)},At.prototype.removeSource=function(t,e,i){if(this.workerSources[t]&&this.workerSources[t][e.type]&&this.workerSources[t][e.type][e.source]){var r=this.workerSources[t][e.type][e.source];delete this.workerSources[t][e.type][e.source],void 0!==r.removeSource?r.removeSource(e,i):i()}},At.prototype.loadWorkerSource=function(t,e,i){try{this.self.importScripts(e.url),i()}catch(t){i(t.toString())}},At.prototype.syncRTLPluginState=function(t,e,i){try{P.plugin.setState(e);var r=P.plugin.getPluginURL();if(P.plugin.isLoaded()&&!P.plugin.isParsed()&&null!=r){this.self.importScripts(r);var n=P.plugin.isParsed();i(n?void 0:new Error(\"RTL Text Plugin failed to import scripts from \"+r),n)}}catch(t){i(t.toString())}},At.prototype.getAvailableImages=function(t){var e=this.availableImages[t];return e=e||[]},At.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e=e||(this.layerIndexes[t]=new i)},At.prototype.getWorkerSource=function(r,t,e){var n=this;if(this.workerSources[r]||(this.workerSources[r]={}),this.workerSources[r][t]||(this.workerSources[r][t]={}),!this.workerSources[r][t][e]){var i={send:function(t,e,i){n.actor.send(t,e,i,r)}};this.workerSources[r][t][e]=new this.workerSourceTypes[t](i,this.getLayerIndex(r),this.getAvailableImages(r))}return this.workerSources[r][t][e]},At.prototype.getDEMWorkerSource=function(t,e){return this.demWorkerSources[t]||(this.demWorkerSources[t]={}),this.demWorkerSources[t][e]||(this.demWorkerSources[t][e]=new o),this.demWorkerSources[t][e]},At.prototype.enforceCacheSizeLimit=function(t,e){P.enforceCacheSizeLimit(e)},\"undefined\"!=typeof WorkerGlobalScope&&void 0!==P.window&&P.window instanceof WorkerGlobalScope&&(P.window.worker=new At(P.window)),At}),i(0,function(_t){var i=_t.createCommonjsModule(function(t){function o(t){return!!(\"undefined\"!=typeof window&&\"undefined\"!=typeof document&&Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray&&Function.prototype&&Function.prototype.bind&&Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions&&\"JSON\"in window&&\"parse\"in JSON&&\"stringify\"in JSON&&function(){if(\"Worker\"in window&&\"Blob\"in window&&\"URL\"in window){var t,e,i=new Blob([\"\"],{type:\"text/javascript\"}),r=URL.createObjectURL(i);try{e=new Worker(r),t=!0}catch(e){t=!1}return e&&e.terminate(),URL.revokeObjectURL(r),t}}()&&\"Uint8ClampedArray\"in window&&ArrayBuffer.isView&&(e=t&&t.failIfMajorPerformanceCaveat,void 0===a[e]&&(a[e]=(i=e,r=document.createElement(\"canvas\"),(n=Object.create(o.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,r.probablySupportsContext?r.probablySupportsContext(\"webgl\",n)||r.probablySupportsContext(\"experimental-webgl\",n):r.supportsContext?r.supportsContext(\"webgl\",n)||r.supportsContext(\"experimental-webgl\",n):r.getContext(\"webgl\",n)||r.getContext(\"experimental-webgl\",n))),a[e]));var e,i,r,n}t.exports?t.exports=o:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=o);var a={};o.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}}),_={create:function(t,e,i){var r=_t.window.document.createElement(t);return void 0!==e&&(r.className=e),i&&i.appendChild(r),r},createNS:function(t,e){return _t.window.document.createElementNS(t,e)}},r=_t.window.document.documentElement.style;function t(t){if(!r)return t[0];for(var e=0;e<t.length;e++)if(t[e]in r)return t[e];return t[0]}var e,n=t([\"userSelect\",\"MozUserSelect\",\"WebkitUserSelect\",\"msUserSelect\"]);_.disableDrag=function(){r&&n&&(e=r[n],r[n]=\"none\")},_.enableDrag=function(){r&&n&&(r[n]=e)};var o=t([\"transform\",\"WebkitTransform\"]),a=!(_.setTransform=function(t,e){t.style[o]=e});try{var s=Object.defineProperty({},\"passive\",{get:function(){a=!0}});_t.window.addEventListener(\"test\",s,s),_t.window.removeEventListener(\"test\",s,s)}catch(_t){a=!1}_.addEventListener=function(t,e,i,r){void 0===r&&(r={}),\"passive\"in r&&a?t.addEventListener(e,i,r):t.addEventListener(e,i,r.capture)},_.removeEventListener=function(t,e,i,r){void 0===r&&(r={}),\"passive\"in r&&a?t.removeEventListener(e,i,r):t.removeEventListener(e,i,r.capture)};var l=function(t){t.preventDefault(),t.stopPropagation(),_t.window.removeEventListener(\"click\",l,!0)};_.suppressClick=function(){_t.window.addEventListener(\"click\",l,!0),_t.window.setTimeout(function(){_t.window.removeEventListener(\"click\",l,!0)},0)},_.mousePos=function(t,e){var i=t.getBoundingClientRect(),r=_t.window.TouchEvent&&e instanceof _t.window.TouchEvent?e.touches[0]:e;return new _t.Point(r.clientX-i.left-t.clientLeft,r.clientY-i.top-t.clientTop)},_.touchPos=function(t,e){for(var i=t.getBoundingClientRect(),r=[],n=\"touchend\"===e.type?e.changedTouches:e.touches,o=0;o<n.length;o++)r.push(new _t.Point(n[o].clientX-i.left-t.clientLeft,n[o].clientY-i.top-t.clientTop));return r},_.mouseButton=function(t){return void 0!==_t.window.InstallTrigger&&2===t.button&&t.ctrlKey&&0<=_t.window.navigator.platform.toUpperCase().indexOf(\"MAC\")?0:t.button},_.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var u,c=((u=_t.Evented)&&(p.__proto__=u),((p.prototype=Object.create(u&&u.prototype)).constructor=p).prototype.isLoaded=function(){return this.loaded},p.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t)){for(var e=0,i=this.requestors;e<i.length;e+=1){var r=i[e],n=r.ids,o=r.callback;this._notify(n,o)}this.requestors=[]}},p.prototype.getImage=function(t){return this.images[t]},p.prototype.addImage=function(t,e){this._validate(t,e)&&(this.images[t]=e)},p.prototype._validate=function(t,e){var i=!0;return this._validateStretch(e.stretchX,e.data&&e.data.width)||(this.fire(new _t.ErrorEvent(new Error('Image \"'+t+'\" has invalid \"stretchX\" value'))),i=!1),this._validateStretch(e.stretchY,e.data&&e.data.height)||(this.fire(new _t.ErrorEvent(new Error('Image \"'+t+'\" has invalid \"stretchY\" value'))),i=!1),this._validateContent(e.content,e)||(this.fire(new _t.ErrorEvent(new Error('Image \"'+t+'\" has invalid \"content\" value'))),i=!1),i},p.prototype._validateStretch=function(t,e){if(!t)return!0;for(var i=0,r=0,n=t;r<n.length;r+=1){var o=n[r];if(o[0]<i||o[1]<o[0]||e<o[1])return!1;i=o[1]}return!0},p.prototype._validateContent=function(t,e){return!(t&&(4!==t.length||t[0]<0||e.data.width<t[0]||t[1]<0||e.data.height<t[1]||t[2]<0||e.data.width<t[2]||t[3]<0||e.data.height<t[3]||t[2]<t[0]||t[3]<t[1]))},p.prototype.updateImage=function(t,e){var i=this.images[t];e.version=i.version+1,this.images[t]=e,this.updatedImages[t]=!0},p.prototype.removeImage=function(t){var e=this.images[t];delete this.images[t],delete this.patterns[t],e.userImage&&e.userImage.onRemove&&e.userImage.onRemove()},p.prototype.listImages=function(){return Object.keys(this.images)},p.prototype.getImages=function(t,e){var i=!0;if(!this.isLoaded())for(var r=0,n=t;r<n.length;r+=1){var o=n[r];this.images[o]||(i=!1)}this.isLoaded()||i?this._notify(t,e):this.requestors.push({ids:t,callback:e})},p.prototype._notify=function(t,e){for(var i={},r=0,n=t;r<n.length;r+=1){var o=n[r];this.images[o]||this.fire(new _t.Event(\"styleimagemissing\",{id:o}));var a=this.images[o];a?i[o]={data:a.data.clone(),pixelRatio:a.pixelRatio,sdf:a.sdf,version:a.version,stretchX:a.stretchX,stretchY:a.stretchY,content:a.content,hasRenderCallback:Boolean(a.userImage&&a.userImage.render)}:_t.warnOnce('Image \"'+o+'\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.')}e(null,i)},p.prototype.getPixelSize=function(){var t=this.atlasImage;return{width:t.width,height:t.height}},p.prototype.getPattern=function(t){var e=this.patterns[t],i=this.getImage(t);if(!i)return null;if(e&&e.position.version===i.version)return e.position;if(e)e.position.version=i.version;else{var r={w:i.data.width+2,h:i.data.height+2,x:0,y:0},n=new _t.ImagePosition(r,i);this.patterns[t]={bin:r,position:n}}return this._updatePatternAtlas(),this.patterns[t].position},p.prototype.bind=function(t){var e=t.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new _t.Texture(t,this.atlasImage,e.RGBA),this.atlasTexture.bind(e.LINEAR,e.CLAMP_TO_EDGE)},p.prototype._updatePatternAtlas=function(){var t=[];for(var e in this.patterns)t.push(this.patterns[e].bin);var i=_t.potpack(t),r=i.w,n=i.h,o=this.atlasImage;for(var a in o.resize({width:r||1,height:n||1}),this.patterns){var s=this.patterns[a].bin,l=s.x+1,u=s.y+1,c=this.images[a].data,p=c.width,h=c.height;_t.RGBAImage.copy(c,o,{x:0,y:0},{x:l,y:u},{width:p,height:h}),_t.RGBAImage.copy(c,o,{x:0,y:h-1},{x:l,y:u-1},{width:p,height:1}),_t.RGBAImage.copy(c,o,{x:0,y:0},{x:l,y:u+h},{width:p,height:1}),_t.RGBAImage.copy(c,o,{x:p-1,y:0},{x:l-1,y:u},{width:1,height:h}),_t.RGBAImage.copy(c,o,{x:0,y:0},{x:l+p,y:u},{width:1,height:h})}this.dirty=!0},p.prototype.beginFrame=function(){this.callbackDispatchedThisFrame={}},p.prototype.dispatchRenderCallbacks=function(t){for(var e=0,i=t;e<i.length;e+=1){var r=i[e];if(!this.callbackDispatchedThisFrame[r]){this.callbackDispatchedThisFrame[r]=!0;var n=this.images[r];a=void 0,(a=(o=n).userImage)&&a.render&&a.render()&&(o.data.replace(new Uint8Array(a.data.buffer)),1)&&this.updateImage(r,n)}}var o,a},p);function p(){u.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new _t.RGBAImage({width:1,height:1}),this.dirty=!0}var h=m,d=m,f=1e20;function m(t,e,i,r,n,o){this.fontSize=t||24,this.buffer=void 0===e?3:e,this.cutoff=r||.25,this.fontFamily=n||\"sans-serif\",this.fontWeight=o||\"normal\",this.radius=i||8;var a=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement(\"canvas\"),this.canvas.width=this.canvas.height=a,this.ctx=this.canvas.getContext(\"2d\"),this.ctx.font=this.fontWeight+\" \"+this.fontSize+\"px \"+this.fontFamily,this.ctx.textBaseline=\"middle\",this.ctx.fillStyle=\"black\",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.d=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Int16Array(a),this.middle=Math.round(a/2*(0<=navigator.userAgent.indexOf(\"Gecko/\")?1.2:1))}function g(t,e,i,r,n,o,a){for(var s=0;s<e;s++){for(var l=0;l<i;l++)r[l]=t[l*e+s];for(y(r,n,o,a,i),l=0;l<i;l++)t[l*e+s]=n[l]}for(l=0;l<i;l++){for(s=0;s<e;s++)r[s]=t[l*e+s];for(y(r,n,o,a,e),s=0;s<e;s++)t[l*e+s]=Math.sqrt(n[s])}}function y(t,e,i,r,n){r[i[0]=0]=-f,r[1]=+f;for(var o=1,a=0;o<n;o++){for(var s=(t[o]+o*o-(t[i[a]]+i[a]*i[a]))/(2*o-2*i[a]);s<=r[a];)a--,s=(t[o]+o*o-(t[i[a]]+i[a]*i[a]))/(2*o-2*i[a]);i[++a]=o,r[a]=s,r[a+1]=+f}for(a=o=0;o<n;o++){for(;r[a+1]<o;)a++;e[o]=(o-i[a])*(o-i[a])+t[i[a]]}}function v(t,e){this.requestManager=t,this.localIdeographFontFamily=e,this.entries={}}function x(){this.specification=_t.styleSpec.light.position}function b(t,e){this.width=t,this.height=e,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}}m.prototype.draw=function(t){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(t,this.buffer,this.middle);for(var e=this.ctx.getImageData(0,0,this.size,this.size),i=new Uint8ClampedArray(this.size*this.size),r=0;r<this.size*this.size;r++){var n=e.data[4*r+3]/255;this.gridOuter[r]=1==n?0:0==n?f:Math.pow(Math.max(0,.5-n),2),this.gridInner[r]=1==n?f:0==n?0:Math.pow(Math.max(0,n-.5),2)}for(g(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),g(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),r=0;r<this.size*this.size;r++){var o=this.gridOuter[r]-this.gridInner[r];i[r]=Math.max(0,Math.min(255,Math.round(255-255*(o/this.radius+this.cutoff))))}return i},h.default=d,v.prototype.setURL=function(t){this.url=t},v.prototype.getGlyphs=function(t,u){var l=this,e=[];for(var i in t)for(var r=0,n=t[i];r<n.length;r+=1){var o=n[r];e.push({stack:i,id:o})}_t.asyncAll(e,function(t,i){var r=t.stack,n=t.id,o=l.entries[r],e=(o=o||(l.entries[r]={glyphs:{},requests:{}})).glyphs[n];if(void 0===e){if(e=l._tinySDF(o,r,n))return o.glyphs[n]=e,void i(null,{stack:r,id:n,glyph:e});var a=Math.floor(n/256);if(65535<256*a)i(new Error(\"glyphs > 65535 not supported\"));else{var s=o.requests[a];s||(s=o.requests[a]=[],v.loadGlyphRange(r,a,l.url,l.requestManager,function(t,e){if(e)for(var i in e)l._doesCharSupportLocalGlyph(+i)||(o.glyphs[+i]=e[+i]);for(var r=0,n=s;r<n.length;r+=1)(0,n[r])(t,e);delete o.requests[a]})),s.push(function(t,e){t?i(t):e&&i(null,{stack:r,id:n,glyph:e[n]||null})})}}else i(null,{stack:r,id:n,glyph:e})},function(t,e){if(t)u(t);else if(e){for(var i={},r=0,n=e;r<n.length;r+=1){var o=n[r],a=o.stack,s=o.id,l=o.glyph;(i[a]||(i[a]={}))[s]=l&&{id:l.id,bitmap:l.bitmap.clone(),metrics:l.metrics}}u(null,i)}})},v.prototype._doesCharSupportLocalGlyph=function(t){return!!this.localIdeographFontFamily&&(_t.isChar[\"CJK Unified Ideographs\"](t)||_t.isChar[\"Hangul Syllables\"](t)||_t.isChar.Hiragana(t)||_t.isChar.Katakana(t))},v.prototype._tinySDF=function(t,e,i){var r=this.localIdeographFontFamily;if(r&&this._doesCharSupportLocalGlyph(i)){var n=t.tinySDF;if(!n){var o=\"400\";/bold/i.test(e)?o=\"900\":/medium/i.test(e)?o=\"500\":/light/i.test(e)&&(o=\"200\"),n=t.tinySDF=new v.TinySDF(24,3,8,.25,r,o)}return{id:i,bitmap:new _t.AlphaImage({width:30,height:30},n.draw(String.fromCharCode(i))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},v.loadGlyphRange=function(t,e,i,r,a){var n=256*e,o=255+n,s=r.transformRequest(r.normalizeGlyphsURL(i).replace(\"{fontstack}\",t).replace(\"{range}\",n+\"-\"+o),_t.ResourceType.Glyphs);_t.getArrayBuffer(s,function(t,e){if(t)a(t);else if(e){for(var i={},r=0,n=_t.parseGlyphPBF(e);r<n.length;r+=1){var o=n[r];i[o.id]=o}a(null,i)}})},v.TinySDF=h,x.prototype.possiblyEvaluate=function(t,e){return _t.sphericalToCartesian(t.expression.evaluate(e))},x.prototype.interpolate=function(t,e,i){return{x:_t.number(t.x,e.x,i),y:_t.number(t.y,e.y,i),z:_t.number(t.z,e.z,i)}};var w,S=new _t.Properties({anchor:new _t.DataConstantProperty(_t.styleSpec.light.anchor),position:new x,color:new _t.DataConstantProperty(_t.styleSpec.light.color),intensity:new _t.DataConstantProperty(_t.styleSpec.light.intensity)}),T=((w=_t.Evented)&&(E.__proto__=w),((E.prototype=Object.create(w&&w.prototype)).constructor=E).prototype.getLight=function(){return this._transitionable.serialize()},E.prototype.setLight=function(t,e){if(void 0===e&&(e={}),!this._validate(_t.validateLight,t,e))for(var i in t){var r=t[i];_t.endsWith(i,\"-transition\")?this._transitionable.setTransition(i.slice(0,-\"-transition\".length),r):this._transitionable.setValue(i,r)}},E.prototype.updateTransitions=function(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)},E.prototype.hasTransition=function(){return this._transitioning.hasTransition()},E.prototype.recalculate=function(t){this.properties=this._transitioning.possiblyEvaluate(t)},E.prototype._validate=function(t,e,i){return(!i||!1!==i.validate)&&_t.emitValidationErrors(this,t.call(_t.validateStyle,_t.extend({value:e,style:{glyphs:!0,sprite:!0},styleSpec:_t.styleSpec})))},E);function E(t){w.call(this),this._transitionable=new _t.Transitionable(S),this.setLight(t),this._transitioning=this._transitionable.untransitioned()}function I(t,e){this.workerPool=t,this.actors=[],this.currentActor=0,this.id=_t.uniqueId();for(var i=this.workerPool.acquire(this.id),r=0;r<i.length;r++){var n=i[r],o=new I.Actor(n,e,this.id);o.name=\"Worker \"+r,this.actors.push(o)}}function C(r,n,o){function t(t,e){if(t)return o(t);if(e){var i=_t.pick(_t.extend(e,r),[\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"mapbox_logo\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\"]);e.vector_layers&&(i.vectorLayers=e.vector_layers,i.vectorLayerIds=i.vectorLayers.map(function(t){return t.id})),i.tiles=n.canonicalizeTileset(i,r.url),o(null,i)}}return r.url?_t.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),_t.ResourceType.Source),t):_t.browser.frame(function(){return t(null,r)})}function A(t,e,i){this.bounds=_t.LngLatBounds.convert(this.validateBounds(t)),this.minzoom=e||0,this.maxzoom=i||24}b.prototype.getDash=function(t,e){var i=t.join(\",\")+String(e);return this.dashEntry[i]||(this.dashEntry[i]=this.addDash(t,e)),this.dashEntry[i]},b.prototype.getDashRanges=function(t,e,i){var r=[],n=t.length%2==1?-t[t.length-1]*i:0,o=t[0]*i,a=!0;r.push({left:n,right:o,isDash:a,zeroLength:0===t[0]});for(var s=t[0],l=1;l<t.length;l++){a=!a;var u=t[l];n=s*i,o=(s+=u)*i,r.push({left:n,right:o,isDash:a,zeroLength:0===u})}return r},b.prototype.addRoundDash=function(t,e,i){for(var r=e/2,n=-i;n<=i;n++)for(var o=this.nextRow+i+n,a=this.width*o,s=0,l=t[s],u=0;u<this.width;u++){1<u/l.right&&(l=t[++s]);var c=Math.abs(u-l.left),p=Math.abs(u-l.right),h=Math.min(c,p),d=void 0,f=n/i*(1+r);if(l.isDash){var m=r-Math.abs(f);d=Math.sqrt(h*h+m*m)}else d=r-Math.sqrt(h*h+f*f);this.data[a+u]=Math.max(0,Math.min(255,d+128))}},b.prototype.addRegularDash=function(t){for(var e=t.length-1;0<=e;--e){var i=t[e],r=t[e+1];i.zeroLength?t.splice(e,1):r&&r.isDash===i.isDash&&(r.left=i.left,t.splice(e,1))}var n=t[0],o=t[t.length-1];n.isDash===o.isDash&&(n.left=o.left-this.width,o.right=n.right+this.width);for(var a=this.width*this.nextRow,s=0,l=t[s],u=0;u<this.width;u++){1<u/l.right&&(l=t[++s]);var c=Math.abs(u-l.left),p=Math.abs(u-l.right),h=Math.min(c,p),d=l.isDash?h:-h;this.data[a+u]=Math.max(0,Math.min(255,d+128))}},b.prototype.addDash=function(t,e){var i=e?7:0,r=2*i+1;if(this.nextRow+r>this.height)return _t.warnOnce(\"LineAtlas out of space\"),null;for(var n=0,o=0;o<t.length;o++)n+=t[o];var a=this.width/n,s=this.getDashRanges(t,this.width,a);e?this.addRoundDash(s,a,i):this.addRegularDash(s);var l={y:(this.nextRow+i+.5)/this.height,height:2*i/this.height,width:n};return this.nextRow+=r,this.dirty=!0,l},b.prototype.bind=function(t){var e=t.gl;this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.width,this.height,e.ALPHA,e.UNSIGNED_BYTE,this.data))):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,this.width,this.height,0,e.ALPHA,e.UNSIGNED_BYTE,this.data))},I.prototype.broadcast=function(i,r,t){t=t||function(){},_t.asyncAll(this.actors,function(t,e){t.send(i,r,e)},t)},I.prototype.getActor=function(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]},I.prototype.remove=function(){this.actors.forEach(function(t){t.remove()}),this.actors=[],this.workerPool.release(this.id)},I.Actor=_t.Actor,A.prototype.validateBounds=function(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]},A.prototype.contains=function(t){var e=Math.pow(2,t.z),i=Math.floor(_t.mercatorXfromLng(this.bounds.getWest())*e),r=Math.floor(_t.mercatorYfromLat(this.bounds.getNorth())*e),n=Math.ceil(_t.mercatorXfromLng(this.bounds.getEast())*e),o=Math.ceil(_t.mercatorYfromLat(this.bounds.getSouth())*e);return t.x>=i&&t.x<n&&t.y>=r&&t.y<o};var k,P,M,L,D,O=((D=_t.Evented)&&(G.__proto__=D),((G.prototype=Object.create(D&&D.prototype)).constructor=G).prototype.load=function(){var i=this;this._loaded=!1,this.fire(new _t.Event(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=C(this._options,this.map._requestManager,function(t,e){i._tileJSONRequest=null,i._loaded=!0,t?i.fire(new _t.ErrorEvent(t)):e&&(_t.extend(i,e),e.bounds&&(i.tileBounds=new A(e.bounds,i.minzoom,i.maxzoom)),_t.postTurnstileEvent(e.tiles,i.map._requestManager._customAccessToken),_t.postMapLoadEvent(e.tiles,i.map._getMapId(),i.map._requestManager._skuToken,i.map._requestManager._customAccessToken),i.fire(new _t.Event(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),i.fire(new _t.Event(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})},G.prototype.loaded=function(){return this._loaded},G.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},G.prototype.onAdd=function(t){this.map=t,this.load()},G.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},G.prototype.serialize=function(){return _t.extend({},this._options)},G.prototype.loadTile=function(i,r){var t=this.map._requestManager.normalizeTileURL(i.tileID.canonical.url(this.tiles,this.scheme)),e={request:this.map._requestManager.transformRequest(t,_t.ResourceType.Tile),uid:i.uid,tileID:i.tileID,zoom:i.tileID.overscaledZ,tileSize:this.tileSize*i.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:_t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function n(t,e){return delete i.request,i.aborted?r(null):t&&404!==t.status?r(t):(e&&e.resourceTiming&&(i.resourceTiming=e.resourceTiming),this.map._refreshExpiredTiles&&e&&i.setExpiryData(e),i.loadVectorData(e,this.map.painter),_t.cacheEntryPossiblyAdded(this.dispatcher),r(null),void(i.reloadCallback&&(this.loadTile(i,i.reloadCallback),i.reloadCallback=null)))}e.request.collectResourceTiming=this._collectResourceTiming,i.actor&&\"expired\"!==i.state?\"loading\"===i.state?i.reloadCallback=r:i.request=i.actor.send(\"reloadTile\",e,n.bind(this)):(i.actor=this.dispatcher.getActor(),i.request=i.actor.send(\"loadTile\",e,n.bind(this)))},G.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.actor&&t.actor.send(\"abortTile\",{uid:t.uid,type:this.type,source:this.id},void 0)},G.prototype.unloadTile=function(t){t.unloadVectorData(),t.actor&&t.actor.send(\"removeTile\",{uid:t.uid,type:this.type,source:this.id},void 0)},G.prototype.hasTransition=function(){return!1},G),z=((L=_t.Evented)&&(V.__proto__=L),((V.prototype=Object.create(L&&L.prototype)).constructor=V).prototype.load=function(){var i=this;this._loaded=!1,this.fire(new _t.Event(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=C(this._options,this.map._requestManager,function(t,e){i._tileJSONRequest=null,i._loaded=!0,t?i.fire(new _t.ErrorEvent(t)):e&&(_t.extend(i,e),e.bounds&&(i.tileBounds=new A(e.bounds,i.minzoom,i.maxzoom)),_t.postTurnstileEvent(e.tiles),_t.postMapLoadEvent(e.tiles,i.map._getMapId(),i.map._requestManager._skuToken),i.fire(new _t.Event(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),i.fire(new _t.Event(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})},V.prototype.loaded=function(){return this._loaded},V.prototype.onAdd=function(t){this.map=t,this.load()},V.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},V.prototype.serialize=function(){return _t.extend({},this._options)},V.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},V.prototype.loadTile=function(n,o){var a=this,t=this.map._requestManager.normalizeTileURL(n.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);n.request=_t.getImage(this.map._requestManager.transformRequest(t,_t.ResourceType.Tile),function(t,e){if(delete n.request,n.aborted)n.state=\"unloaded\",o(null);else if(t)n.state=\"errored\",o(t);else if(e){a.map._refreshExpiredTiles&&n.setExpiryData(e),delete e.cacheControl,delete e.expires;var i=a.map.painter.context,r=i.gl;n.texture=a.map.painter.getTileTexture(e.width),n.texture?n.texture.update(e,{useMipmap:!0}):(n.texture=new _t.Texture(i,e,r.RGBA,{useMipmap:!0}),n.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE,r.LINEAR_MIPMAP_NEAREST),i.extTextureFilterAnisotropic&&r.texParameterf(r.TEXTURE_2D,i.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,i.extTextureFilterAnisotropicMax)),n.state=\"loaded\",_t.cacheEntryPossiblyAdded(a.dispatcher),o(null)}})},V.prototype.abortTile=function(t,e){t.request&&(t.request.cancel(),delete t.request),e()},V.prototype.unloadTile=function(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e()},V.prototype.hasTransition=function(){return!1},V),R=(q.__proto__=M=z,((q.prototype=Object.create(M&&M.prototype)).constructor=q).prototype.serialize=function(){return{type:\"raster-dem\",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},q.prototype.loadTile=function(n,o){var t=this.map._requestManager.normalizeTileURL(n.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);n.request=_t.getImage(this.map._requestManager.transformRequest(t,_t.ResourceType.Tile),function(t,e){if(delete n.request,n.aborted)n.state=\"unloaded\",o(null);else if(t)n.state=\"errored\",o(t);else if(e){this.map._refreshExpiredTiles&&n.setExpiryData(e),delete e.cacheControl,delete e.expires;var i=_t.window.ImageBitmap&&e instanceof _t.window.ImageBitmap&&_t.offscreenCanvasSupported()?e:_t.browser.getImageData(e,1),r={uid:n.uid,coord:n.tileID,source:this.id,rawImageData:i,encoding:this.encoding};n.actor&&\"expired\"!==n.state||(n.actor=this.dispatcher.getActor(),n.actor.send(\"loadDEMTile\",r,function(t,e){t&&(n.state=\"errored\",o(t)),e&&(n.dem=e,n.needsHillshadePrepare=!0,n.state=\"loaded\",o(null))}.bind(this)))}}.bind(this)),n.neighboringTiles=this._getNeighboringTiles(n.tileID)},q.prototype._getNeighboringTiles=function(t){var e=t.canonical,i=Math.pow(2,e.z),r=(e.x-1+i)%i,n=0===e.x?t.wrap-1:t.wrap,o=(e.x+1+i)%i,a=e.x+1===i?t.wrap+1:t.wrap,s={};return s[new _t.OverscaledTileID(t.overscaledZ,n,e.z,r,e.y).key]={backfilled:!1},s[new _t.OverscaledTileID(t.overscaledZ,a,e.z,o,e.y).key]={backfilled:!1},0<e.y&&(s[new _t.OverscaledTileID(t.overscaledZ,n,e.z,r,e.y-1).key]={backfilled:!1},s[new _t.OverscaledTileID(t.overscaledZ,t.wrap,e.z,e.x,e.y-1).key]={backfilled:!1},s[new _t.OverscaledTileID(t.overscaledZ,a,e.z,o,e.y-1).key]={backfilled:!1}),e.y+1<i&&(s[new _t.OverscaledTileID(t.overscaledZ,n,e.z,r,e.y+1).key]={backfilled:!1},s[new _t.OverscaledTileID(t.overscaledZ,t.wrap,e.z,e.x,e.y+1).key]={backfilled:!1},s[new _t.OverscaledTileID(t.overscaledZ,a,e.z,o,e.y+1).key]={backfilled:!1}),s},q.prototype.unloadTile=function(t){t.demTexture&&this.map.painter.saveTileTexture(t.demTexture),t.fbo&&(t.fbo.destroy(),delete t.fbo),t.dem&&delete t.dem,delete t.neighboringTiles,t.state=\"unloaded\",t.actor&&t.actor.send(\"removeDEMTile\",{uid:t.uid,source:this.id})},q),N=((P=_t.Evented)&&(j.__proto__=P),((j.prototype=Object.create(P&&P.prototype)).constructor=j).prototype.load=function(){var i=this;this.fire(new _t.Event(\"dataloading\",{dataType:\"source\"})),this._updateWorkerData(function(t){if(t)i.fire(new _t.ErrorEvent(t));else{var e={dataType:\"source\",sourceDataType:\"metadata\"};i._collectResourceTiming&&i._resourceTiming&&0<i._resourceTiming.length&&(e.resourceTiming=i._resourceTiming,i._resourceTiming=[]),i.fire(new _t.Event(\"data\",e))}})},j.prototype.onAdd=function(t){this.map=t,this.load()},j.prototype.setData=function(t){var i=this;return this._data=t,this.fire(new _t.Event(\"dataloading\",{dataType:\"source\"})),this._updateWorkerData(function(t){if(t)i.fire(new _t.ErrorEvent(t));else{var e={dataType:\"source\",sourceDataType:\"content\"};i._collectResourceTiming&&i._resourceTiming&&0<i._resourceTiming.length&&(e.resourceTiming=i._resourceTiming,i._resourceTiming=[]),i.fire(new _t.Event(\"data\",e))}}),this},j.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send(\"geojson.getClusterExpansionZoom\",{clusterId:t,source:this.id},e),this},j.prototype.getClusterChildren=function(t,e){return this.actor.send(\"geojson.getClusterChildren\",{clusterId:t,source:this.id},e),this},j.prototype.getClusterLeaves=function(t,e,i,r){return this.actor.send(\"geojson.getClusterLeaves\",{source:this.id,clusterId:t,limit:e,offset:i},r),this},j.prototype._updateWorkerData=function(i){var r=this;this._loaded=!1;var n=_t.extend({},this.workerOptions),t=this._data;\"string\"==typeof t?(n.request=this.map._requestManager.transformRequest(_t.browser.resolveURL(t),_t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(t),this.actor.send(this.type+\".loadData\",n,function(t,e){r._removed||e&&e.abandoned||(r._loaded=!0,e&&e.resourceTiming&&e.resourceTiming[r.id]&&(r._resourceTiming=e.resourceTiming[r.id].slice(0)),r.actor.send(r.type+\".coalesce\",{source:n.source},null),i(t))})},j.prototype.loaded=function(){return this._loaded},j.prototype.loadTile=function(i,r){var n=this,o=i.actor?\"reloadTile\":\"loadTile\";i.actor=this.actor;var t={type:this.type,uid:i.uid,tileID:i.tileID,zoom:i.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:_t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};i.request=this.actor.send(o,t,function(t,e){return delete i.request,i.unloadVectorData(),i.aborted?r(null):t?r(t):(i.loadVectorData(e,n.map.painter,\"reloadTile\"==o),r(null))})},j.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},j.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send(\"removeTile\",{uid:t.uid,type:this.type,source:this.id})},j.prototype.onRemove=function(){this._removed=!0,this.actor.send(\"removeSource\",{type:this.type,source:this.id})},j.prototype.serialize=function(){return _t.extend({},this._options,{type:this.type,data:this._data})},j.prototype.hasTransition=function(){return!1},j),B=_t.createLayout([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]),F=((k=_t.Evented)&&(U.__proto__=k),((U.prototype=Object.create(k&&k.prototype)).constructor=U).prototype.load=function(i,r){var n=this;this._loaded=!1,this.fire(new _t.Event(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,_t.getImage(this.map._requestManager.transformRequest(this.url,_t.ResourceType.Image),function(t,e){n._loaded=!0,t?n.fire(new _t.ErrorEvent(t)):e&&(n.image=e,i&&(n.coordinates=i),r&&r(),n._finishLoading())})},U.prototype.loaded=function(){return this._loaded},U.prototype.updateImage=function(t){var e=this;return this.image&&t.url&&(this.options.url=t.url,this.load(t.coordinates,function(){e.texture=null})),this},U.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new _t.Event(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})))},U.prototype.onAdd=function(t){this.map=t,this.load()},U.prototype.setCoordinates=function(t){var e=this,h=(this.coordinates=t).map(_t.MercatorCoordinate.fromLngLat);this.tileID=function(){for(var t=1/0,e=1/0,i=-1/0,r=-1/0,n=0,o=h;n<o.length;n+=1){var a=o[n];t=Math.min(t,a.x),e=Math.min(e,a.y),i=Math.max(i,a.x),r=Math.max(r,a.y)}var s=i-t,l=r-e,u=Math.max(s,l),c=Math.max(0,Math.floor(-Math.log(u)/Math.LN2)),p=Math.pow(2,c);return new _t.CanonicalTileID(c,Math.floor((t+i)/2*p),Math.floor((e+r)/2*p))}(),this.minzoom=this.maxzoom=this.tileID.z;var i=h.map(function(t){return e.tileID.getTilePoint(t)._round()});return this._boundsArray=new _t.StructArrayLayout4i8,this._boundsArray.emplaceBack(i[0].x,i[0].y,0,0),this._boundsArray.emplaceBack(i[1].x,i[1].y,_t.EXTENT,0),this._boundsArray.emplaceBack(i[3].x,i[3].y,0,_t.EXTENT),this._boundsArray.emplaceBack(i[2].x,i[2].y,_t.EXTENT,_t.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new _t.Event(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this},U.prototype.prepare=function(){if(0!==Object.keys(this.tiles).length&&this.image){var t=this.map.painter.context,e=t.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,B.members)),this.boundsSegments||(this.boundsSegments=_t.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new _t.Texture(t,this.image,e.RGBA),this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE)),this.tiles){var r=this.tiles[i];\"loaded\"!==r.state&&(r.state=\"loaded\",r.texture=this.texture)}}},U.prototype.loadTile=function(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t).buckets={}:t.state=\"errored\",e(null)},U.prototype.serialize=function(){return{type:\"image\",url:this.options.url,coordinates:this.coordinates}},U.prototype.hasTransition=function(){return!1},U);function U(t,e,i,r){k.call(this),this.id=t,this.dispatcher=i,this.coordinates=e.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=e}function j(t,e,i,r){P.call(this),this.id=t,this.type=\"geojson\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._loaded=!1,this.actor=i.getActor(),this.setEventedParent(r),this._data=e.data,this._options=_t.extend({},e),this._collectResourceTiming=e.collectResourceTiming,this._resourceTiming=[],void 0!==e.maxzoom&&(this.maxzoom=e.maxzoom),e.type&&(this.type=e.type),e.attribution&&(this.attribution=e.attribution),this.promoteId=e.promoteId;var n=_t.EXTENT/this.tileSize;this.workerOptions=_t.extend({source:this.id,cluster:e.cluster||!1,geojsonVtOptions:{buffer:(void 0!==e.buffer?e.buffer:128)*n,tolerance:(void 0!==e.tolerance?e.tolerance:.375)*n,extent:_t.EXTENT,maxZoom:this.maxzoom,lineMetrics:e.lineMetrics||!1,generateId:e.generateId||!1},superclusterOptions:{maxZoom:void 0!==e.clusterMaxZoom?Math.min(e.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,extent:_t.EXTENT,radius:(e.clusterRadius||50)*n,log:!1,generateId:e.generateId||!1},clusterProperties:e.clusterProperties},e.workerOptions)}function q(t,e,i,r){M.call(this,t,e,i,r),this.type=\"raster-dem\",this.maxzoom=22,this._options=_t.extend({type:\"raster-dem\"},e),this.encoding=e.encoding||\"mapbox\"}function V(t,e,i,r){L.call(this),this.id=t,this.dispatcher=i,this.setEventedParent(r),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=_t.extend({type:\"raster\"},e),_t.extend(this,_t.pick(e,[\"url\",\"scheme\",\"tileSize\"]))}function G(t,e,i,r){if(D.call(this),this.id=t,this.dispatcher=i,this.type=\"vector\",this.minzoom=0,this.maxzoom=22,this.scheme=\"xyz\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,_t.extend(this,_t.pick(e,[\"url\",\"scheme\",\"tileSize\",\"promoteId\"])),this._options=_t.extend({type:\"vector\"},e),this._collectResourceTiming=e.collectResourceTiming,512!==this.tileSize)throw new Error(\"vector tile sources must have a tileSize of 512\");this.setEventedParent(r)}var Z,H,K=(J.__proto__=H=F,((J.prototype=Object.create(H&&H.prototype)).constructor=J).prototype.load=function(){var i=this;this._loaded=!1;var t=this.options;this.urls=[];for(var e=0,r=t.urls;e<r.length;e+=1){var n=r[e];this.urls.push(this.map._requestManager.transformRequest(n,_t.ResourceType.Source).url)}_t.getVideo(this.urls,function(t,e){i._loaded=!0,t?i.fire(new _t.ErrorEvent(t)):e&&(i.video=e,i.video.loop=!0,i.video.addEventListener(\"playing\",function(){i.map.triggerRepaint()}),i.map&&i.video.play(),i._finishLoading())})},J.prototype.pause=function(){this.video&&this.video.pause()},J.prototype.play=function(){this.video&&this.video.play()},J.prototype.seek=function(t){if(this.video){var e=this.video.seekable;t<e.start(0)||t>e.end(0)?this.fire(new _t.ErrorEvent(new _t.ValidationError(\"sources.\"+this.id,null,\"Playback for this video can be set only between the \"+e.start(0)+\" and \"+e.end(0)+\"-second mark.\"))):this.video.currentTime=t}},J.prototype.getVideo=function(){return this.video},J.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},J.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var t=this.map.painter.context,e=t.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,B.members)),this.boundsSegments||(this.boundsSegments=_t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE),e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,this.video)):(this.texture=new _t.Texture(t,this.video,e.RGBA),this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE)),this.tiles){var r=this.tiles[i];\"loaded\"!==r.state&&(r.state=\"loaded\",r.texture=this.texture)}}},J.prototype.serialize=function(){return{type:\"video\",urls:this.urls,coordinates:this.coordinates}},J.prototype.hasTransition=function(){return this.video&&!this.video.paused},J),W=(Y.__proto__=Z=F,((Y.prototype=Object.create(Z&&Z.prototype)).constructor=Y).prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof _t.window.HTMLCanvasElement?this.options.canvas:_t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new _t.ErrorEvent(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},Y.prototype.getCanvas=function(){return this.canvas},Y.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},Y.prototype.onRemove=function(){this.pause()},Y.prototype.prepare=function(){var t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var e=this.map.painter.context,i=e.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,B.members)),this.boundsSegments||(this.boundsSegments=_t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new _t.Texture(e,this.canvas,i.RGBA,{premultiply:!0}),this.tiles){var n=this.tiles[r];\"loaded\"!==n.state&&(n.state=\"loaded\",n.texture=this.texture)}}},Y.prototype.serialize=function(){return{type:\"canvas\",coordinates:this.coordinates}},Y.prototype.hasTransition=function(){return this._playing},Y.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];t<e.length;t+=1){var i=e[t];if(isNaN(i)||i<=0)return!0}return!1},Y),X={vector:O,raster:z,\"raster-dem\":R,geojson:N,video:K,image:F,canvas:W};function Y(t,e,i,r){Z.call(this,t,e,i,r),e.coordinates?Array.isArray(e.coordinates)&&4===e.coordinates.length&&!e.coordinates.some(function(t){return!Array.isArray(t)||2!==t.length||t.some(function(t){return\"number\"!=typeof t})})||this.fire(new _t.ErrorEvent(new _t.ValidationError(\"sources.\"+t,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new _t.ErrorEvent(new _t.ValidationError(\"sources.\"+t,null,'missing required property \"coordinates\"'))),e.animate&&\"boolean\"!=typeof e.animate&&this.fire(new _t.ErrorEvent(new _t.ValidationError(\"sources.\"+t,null,'optional \"animate\" property must be a boolean value'))),e.canvas?\"string\"==typeof e.canvas||e.canvas instanceof _t.window.HTMLCanvasElement||this.fire(new _t.ErrorEvent(new _t.ValidationError(\"sources.\"+t,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new _t.ErrorEvent(new _t.ValidationError(\"sources.\"+t,null,'missing required property \"canvas\"'))),this.options=e,this.animate=void 0===e.animate||e.animate}function J(t,e,i,r){H.call(this,t,e,i,r),this.roundZoom=!0,this.type=\"video\",this.options=e}function Q(r,t,e,i,n){var o,a,s,l=function(t,e,i){if(t)for(var r=0,n=t;r<n.length;r+=1){var o=e[n[r]];if(o&&o.source===i&&\"fill-extrusion\"===o.type)return!0}else for(var a in e){var s=e[a];if(s.source===i&&\"fill-extrusion\"===s.type)return!0}return!1}(i&&i.layers,t,r.id),u=n.maxPitchScaleFactor(),c=r.tilesIn(e,u,l);c.sort($);for(var m=[],p=0,h=c;p<h.length;p+=1){var d=h[p];m.push({wrappedTileID:d.tileID.wrapped().key,queryResults:d.tile.queryRenderedFeatures(t,r._state,d.queryGeometry,d.cameraQueryGeometry,d.scale,i,n,u,(o=r.transform,a=d.tileID,s=_t.identity([]),_t.translate(s,s,[1,1,0]),_t.scale(s,s,[.5*o.width,.5*o.height,1]),_t.multiply(s,s,o.calculatePosMatrix(a.toUnwrapped()))))})}var f=function(){for(var t={},e={},i=0,r=m;i<r.length;i+=1){var n=r[i],o=n.queryResults,a=n.wrappedTileID,s=e[a]=e[a]||{};for(var l in o)for(var u=o[l],c=s[l]=s[l]||{},p=t[l]=t[l]||[],h=0,d=u;h<d.length;h+=1){var f=d[h];c[f.featureIndex]||(c[f.featureIndex]=!0,p.push(f))}}return t}();for(var g in f)f[g].forEach(function(t){var e=t.feature,i=r.getFeatureState(e.layer[\"source-layer\"],e.id);e.source=e.layer.source,e.layer[\"source-layer\"]&&(e.sourceLayer=e.layer[\"source-layer\"]),e.state=i});return f}function $(t,e){var i=t.tileID,r=e.tileID;return i.overscaledZ-r.overscaledZ||i.canonical.y-r.canonical.y||i.wrap-r.wrap||i.canonical.x-r.canonical.x}function tt(t,e){this.max=t,this.onRemove=e,this.reset()}function et(t,e,i){var r=(this.context=t).gl;this.buffer=r.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?r.DYNAMIC_DRAW:r.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer}function it(t,e,i,r){this.length=e.length,this.attributes=i,this.itemSize=e.bytesPerElement,this.dynamicDraw=r;var n=(this.context=t).gl;this.buffer=n.createBuffer(),t.bindVertexBuffer.set(this.buffer),n.bufferData(n.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?n.DYNAMIC_DRAW:n.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer}tt.prototype.reset=function(){for(var t in this.data)for(var e=0,i=this.data[t];e<i.length;e+=1){var r=i[e];r.timeout&&clearTimeout(r.timeout),this.onRemove(r.value)}return this.data={},this.order=[],this},tt.prototype.add=function(t,e,i){var r=this,n=t.wrapped().key;void 0===this.data[n]&&(this.data[n]=[]);var o={value:e,timeout:void 0};if(void 0!==i&&(o.timeout=setTimeout(function(){r.remove(t,o)},i)),this.data[n].push(o),this.order.push(n),this.order.length>this.max){var a=this._getAndRemoveByKey(this.order[0]);a&&this.onRemove(a)}return this},tt.prototype.has=function(t){return t.wrapped().key in this.data},tt.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},tt.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},tt.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},tt.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},tt.prototype.remove=function(t,e){if(!this.has(t))return this;var i=t.wrapped().key,r=void 0===e?0:this.data[i].indexOf(e),n=this.data[i][r];return this.data[i].splice(r,1),n.timeout&&clearTimeout(n.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(n.value),this.order.splice(this.order.indexOf(i),1),this},tt.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},tt.prototype.filter=function(t){var e=[];for(var i in this.data)for(var r=0,n=this.data[i];r<n.length;r+=1){var o=n[r];t(o.value)||e.push(o)}for(var a=0,s=e;a<s.length;a+=1){var l=s[a];this.remove(l.value.tileID,l)}},et.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},et.prototype.updateData=function(t){var e=this.context.gl;this.context.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)},et.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var rt={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};function nt(t){this.gl=t.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}function ot(t,e,i){this.context=t,this.width=e,this.height=i;var r=t.gl,n=this.framebuffer=r.createFramebuffer();this.colorAttachment=new _e(t,n),this.depthAttachment=new xe(t,n)}it.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},it.prototype.updateData=function(t){var e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer)},it.prototype.enableAttributes=function(t,e){for(var i=0;i<this.attributes.length;i++){var r=this.attributes[i],n=e.attributes[r.name];void 0!==n&&t.enableVertexAttribArray(n)}},it.prototype.setVertexAttribPointers=function(t,e,i){for(var r=0;r<this.attributes.length;r++){var n=this.attributes[r],o=e.attributes[n.name];void 0!==o&&t.vertexAttribPointer(o,n.components,t[rt[n.type]],!1,this.itemSize,n.offset+this.itemSize*(i||0))}},it.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)},nt.prototype.get=function(){return this.current},nt.prototype.set=function(t){},nt.prototype.getDefault=function(){return this.default},nt.prototype.setDefault=function(){this.set(this.default)};var at,st,lt,ut,ct,pt,ht,dt,ft,mt,gt,yt,vt,xt,bt,wt,St,Tt,Et,It,Ct,At,kt,Pt,Mt,Lt,Dt,Ot,zt,Rt,Nt,Bt,Ft,Ut,jt=(ti.__proto__=Ut=nt,((ti.prototype=Object.create(Ut&&Ut.prototype)).constructor=ti).prototype.getDefault=function(){return _t.Color.transparent},ti.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a&&!this.dirty||(this.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1)},ti),qt=($e.__proto__=Ft=nt,(($e.prototype=Object.create(Ft&&Ft.prototype)).constructor=$e).prototype.getDefault=function(){return 1},$e.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.clearDepth(t),this.current=t,this.dirty=!1)},$e),Vt=(Qe.__proto__=Bt=nt,((Qe.prototype=Object.create(Bt&&Bt.prototype)).constructor=Qe).prototype.getDefault=function(){return 0},Qe.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.clearStencil(t),this.current=t,this.dirty=!1)},Qe),Gt=(Je.__proto__=Nt=nt,((Je.prototype=Object.create(Nt&&Nt.prototype)).constructor=Je).prototype.getDefault=function(){return[!0,!0,!0,!0]},Je.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&!this.dirty||(this.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1)},Je),Zt=(Ye.__proto__=Rt=nt,((Ye.prototype=Object.create(Rt&&Rt.prototype)).constructor=Ye).prototype.getDefault=function(){return!0},Ye.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.depthMask(t),this.current=t,this.dirty=!1)},Ye),Ht=(Xe.__proto__=zt=nt,((Xe.prototype=Object.create(zt&&zt.prototype)).constructor=Xe).prototype.getDefault=function(){return 255},Xe.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.stencilMask(t),this.current=t,this.dirty=!1)},Xe),Kt=(We.__proto__=Ot=nt,((We.prototype=Object.create(Ot&&Ot.prototype)).constructor=We).prototype.getDefault=function(){return{func:this.gl.ALWAYS,ref:0,mask:255}},We.prototype.set=function(t){var e=this.current;t.func===e.func&&t.ref===e.ref&&t.mask===e.mask&&!this.dirty||(this.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t,this.dirty=!1)},We),Wt=(Ke.__proto__=Dt=nt,((Ke.prototype=Object.create(Dt&&Dt.prototype)).constructor=Ke).prototype.getDefault=function(){var t=this.gl;return[t.KEEP,t.KEEP,t.KEEP]},Ke.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&!this.dirty||(this.gl.stencilOp(t[0],t[1],t[2]),this.current=t,this.dirty=!1)},Ke),Xt=(He.__proto__=Lt=nt,((He.prototype=Object.create(Lt&&Lt.prototype)).constructor=He).prototype.getDefault=function(){return!1},He.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.current=t,this.dirty=!1}},He),Yt=(Ze.__proto__=Mt=nt,((Ze.prototype=Object.create(Mt&&Mt.prototype)).constructor=Ze).prototype.getDefault=function(){return[0,1]},Ze.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&!this.dirty||(this.gl.depthRange(t[0],t[1]),this.current=t,this.dirty=!1)},Ze),Jt=(Ge.__proto__=Pt=nt,((Ge.prototype=Object.create(Pt&&Pt.prototype)).constructor=Ge).prototype.getDefault=function(){return!1},Ge.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.current=t,this.dirty=!1}},Ge),Qt=(Ve.__proto__=kt=nt,((Ve.prototype=Object.create(kt&&kt.prototype)).constructor=Ve).prototype.getDefault=function(){return this.gl.LESS},Ve.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.depthFunc(t),this.current=t,this.dirty=!1)},Ve),$t=(qe.__proto__=At=nt,((qe.prototype=Object.create(At&&At.prototype)).constructor=qe).prototype.getDefault=function(){return!1},qe.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.current=t,this.dirty=!1}},qe),te=(je.__proto__=Ct=nt,((je.prototype=Object.create(Ct&&Ct.prototype)).constructor=je).prototype.getDefault=function(){var t=this.gl;return[t.ONE,t.ZERO]},je.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&!this.dirty||(this.gl.blendFunc(t[0],t[1]),this.current=t,this.dirty=!1)},je),ee=(Ue.__proto__=It=nt,((Ue.prototype=Object.create(It&&It.prototype)).constructor=Ue).prototype.getDefault=function(){return _t.Color.transparent},Ue.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a&&!this.dirty||(this.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1)},Ue),ie=(Fe.__proto__=Et=nt,((Fe.prototype=Object.create(Et&&Et.prototype)).constructor=Fe).prototype.getDefault=function(){return this.gl.FUNC_ADD},Fe.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.blendEquation(t),this.current=t,this.dirty=!1)},Fe),re=(Be.__proto__=Tt=nt,((Be.prototype=Object.create(Tt&&Tt.prototype)).constructor=Be).prototype.getDefault=function(){return!1},Be.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.CULL_FACE):e.disable(e.CULL_FACE),this.current=t,this.dirty=!1}},Be),ne=(Ne.__proto__=St=nt,((Ne.prototype=Object.create(St&&St.prototype)).constructor=Ne).prototype.getDefault=function(){return this.gl.BACK},Ne.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.cullFace(t),this.current=t,this.dirty=!1)},Ne),oe=(Re.__proto__=wt=nt,((Re.prototype=Object.create(wt&&wt.prototype)).constructor=Re).prototype.getDefault=function(){return this.gl.CCW},Re.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.frontFace(t),this.current=t,this.dirty=!1)},Re),ae=(ze.__proto__=bt=nt,((ze.prototype=Object.create(bt&&bt.prototype)).constructor=ze).prototype.getDefault=function(){return null},ze.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.useProgram(t),this.current=t,this.dirty=!1)},ze),se=(Oe.__proto__=xt=nt,((Oe.prototype=Object.create(xt&&xt.prototype)).constructor=Oe).prototype.getDefault=function(){return this.gl.TEXTURE0},Oe.prototype.set=function(t){t===this.current&&!this.dirty||(this.gl.activeTexture(t),this.current=t,this.dirty=!1)},Oe),le=(De.__proto__=vt=nt,((De.prototype=Object.create(vt&&vt.prototype)).constructor=De).prototype.getDefault=function(){var t=this.gl;return[0,0,t.drawingBufferWidth,t.drawingBufferHeight]},De.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&!this.dirty||(this.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1)},De),ue=(Le.__proto__=yt=nt,((Le.prototype=Object.create(yt&&yt.prototype)).constructor=Le).prototype.getDefault=function(){return null},Le.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,t),this.current=t,this.dirty=!1}},Le),ce=(Me.__proto__=gt=nt,((Me.prototype=Object.create(gt&>.prototype)).constructor=Me).prototype.getDefault=function(){return null},Me.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindRenderbuffer(e.RENDERBUFFER,t),this.current=t,this.dirty=!1}},Me),pe=(Pe.__proto__=mt=nt,((Pe.prototype=Object.create(mt&&mt.prototype)).constructor=Pe).prototype.getDefault=function(){return null},Pe.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindTexture(e.TEXTURE_2D,t),this.current=t,this.dirty=!1}},Pe),he=(ke.__proto__=ft=nt,((ke.prototype=Object.create(ft&&ft.prototype)).constructor=ke).prototype.getDefault=function(){return null},ke.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindBuffer(e.ARRAY_BUFFER,t),this.current=t,this.dirty=!1}},ke),de=(Ae.__proto__=dt=nt,((Ae.prototype=Object.create(dt&&dt.prototype)).constructor=Ae).prototype.getDefault=function(){return null},Ae.prototype.set=function(t){var e=this.gl;e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.current=t,this.dirty=!1},Ae),fe=(Ce.__proto__=ht=nt,((Ce.prototype=Object.create(ht&&ht.prototype)).constructor=Ce).prototype.getDefault=function(){return null},Ce.prototype.set=function(t){this.vao&&(t!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(t),this.current=t,this.dirty=!1)},Ce),me=(Ie.__proto__=pt=nt,((Ie.prototype=Object.create(pt&&pt.prototype)).constructor=Ie).prototype.getDefault=function(){return 4},Ie.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_ALIGNMENT,t),this.current=t,this.dirty=!1}},Ie),ge=(Ee.__proto__=ct=nt,((Ee.prototype=Object.create(ct&&ct.prototype)).constructor=Ee).prototype.getDefault=function(){return!1},Ee.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t,this.dirty=!1}},Ee),ye=(Te.__proto__=ut=nt,((Te.prototype=Object.create(ut&&ut.prototype)).constructor=Te).prototype.getDefault=function(){return!1},Te.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t),this.current=t,this.dirty=!1}},Te),ve=(Se.__proto__=lt=nt,((Se.prototype=Object.create(lt&<.prototype)).constructor=Se).prototype.getDefault=function(){return null},Se),_e=(we.__proto__=st=ve,((we.prototype=Object.create(st&&st.prototype)).constructor=we).prototype.setDirty=function(){this.dirty=!0},we.prototype.set=function(t){if(t!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var e=this.gl;e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),this.current=t,this.dirty=!1}},we),xe=(be.__proto__=at=ve,((be.prototype=Object.create(at&&at.prototype)).constructor=be).prototype.set=function(t){if(t!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var e=this.gl;e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t),this.current=t,this.dirty=!1}},be);function be(){at.apply(this,arguments)}function we(){st.apply(this,arguments)}function Se(t,e){lt.call(this,t),this.context=t,this.parent=e}function Te(){ut.apply(this,arguments)}function Ee(){ct.apply(this,arguments)}function Ie(){pt.apply(this,arguments)}function Ce(t){ht.call(this,t),this.vao=t.extVertexArrayObject}function Ae(){dt.apply(this,arguments)}function ke(){ft.apply(this,arguments)}function Pe(){mt.apply(this,arguments)}function Me(){gt.apply(this,arguments)}function Le(){yt.apply(this,arguments)}function De(){vt.apply(this,arguments)}function Oe(){xt.apply(this,arguments)}function ze(){bt.apply(this,arguments)}function Re(){wt.apply(this,arguments)}function Ne(){St.apply(this,arguments)}function Be(){Tt.apply(this,arguments)}function Fe(){Et.apply(this,arguments)}function Ue(){It.apply(this,arguments)}function je(){Ct.apply(this,arguments)}function qe(){At.apply(this,arguments)}function Ve(){kt.apply(this,arguments)}function Ge(){Pt.apply(this,arguments)}function Ze(){Mt.apply(this,arguments)}function He(){Lt.apply(this,arguments)}function Ke(){Dt.apply(this,arguments)}function We(){Ot.apply(this,arguments)}function Xe(){zt.apply(this,arguments)}function Ye(){Rt.apply(this,arguments)}function Je(){Nt.apply(this,arguments)}function Qe(){Bt.apply(this,arguments)}function $e(){Ft.apply(this,arguments)}function ti(){Ut.apply(this,arguments)}ot.prototype.destroy=function(){var t=this.context.gl,e=this.colorAttachment.get();e&&t.deleteTexture(e);var i=this.depthAttachment.get();i&&t.deleteRenderbuffer(i),t.deleteFramebuffer(this.framebuffer)};var ei=function(t,e,i){this.func=t,this.mask=e,this.range=i};ei.ReadOnly=!1,ei.ReadWrite=!0,ei.disabled=new ei(519,ei.ReadOnly,[0,1]);var ii=function(t,e,i,r,n,o){this.test=t,this.ref=e,this.mask=i,this.fail=r,this.depthFail=n,this.pass=o};function ri(t,e,i){this.blendFunction=t,this.blendColor=e,this.mask=i}ii.disabled=new ii({func:519,mask:0},0,0,7680,7680,7680),ri.disabled=new ri(ri.Replace=[1,0],_t.Color.transparent,[!1,!1,!1,!1]),ri.unblended=new ri(ri.Replace,_t.Color.transparent,[!0,!0,!0,!0]),ri.alphaBlended=new ri([1,771],_t.Color.transparent,[!0,!0,!0,!0]);var ni=function(t,e,i){this.enable=t,this.mode=e,this.frontFace=i};function oi(t){this.gl=t,this.extVertexArrayObject=this.gl.getExtension(\"OES_vertex_array_object\"),this.clearColor=new jt(this),this.clearDepth=new qt(this),this.clearStencil=new Vt(this),this.colorMask=new Gt(this),this.depthMask=new Zt(this),this.stencilMask=new Ht(this),this.stencilFunc=new Kt(this),this.stencilOp=new Wt(this),this.stencilTest=new Xt(this),this.depthRange=new Yt(this),this.depthTest=new Jt(this),this.depthFunc=new Qt(this),this.blend=new $t(this),this.blendFunc=new te(this),this.blendColor=new ee(this),this.blendEquation=new ie(this),this.cullFace=new re(this),this.cullFaceSide=new ne(this),this.frontFace=new oe(this),this.program=new ae(this),this.activeTexture=new se(this),this.viewport=new le(this),this.bindFramebuffer=new ue(this),this.bindRenderbuffer=new ce(this),this.bindTexture=new pe(this),this.bindVertexBuffer=new he(this),this.bindElementBuffer=new de(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new fe(this),this.pixelStoreUnpack=new me(this),this.pixelStoreUnpackPremultiplyAlpha=new ge(this),this.pixelStoreUnpackFlipY=new ye(this),this.extTextureFilterAnisotropic=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=t.getExtension(\"OES_texture_half_float\"),this.extTextureHalfFloat&&t.getExtension(\"OES_texture_half_float_linear\"),this.extTimerQuery=t.getExtension(\"EXT_disjoint_timer_query\")}ni.disabled=new ni(!1,1029,2305),ni.backCCW=new ni(!0,1029,2305),oi.prototype.setDefault=function(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()},oi.prototype.setDirty=function(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0},oi.prototype.createIndexBuffer=function(t,e){return new et(this,t,e)},oi.prototype.createVertexBuffer=function(t,e,i){return new it(this,t,e,i)},oi.prototype.createRenderbuffer=function(t,e,i){var r=this.gl,n=r.createRenderbuffer();return this.bindRenderbuffer.set(n),r.renderbufferStorage(r.RENDERBUFFER,t,e,i),this.bindRenderbuffer.set(null),n},oi.prototype.createFramebuffer=function(t,e){return new ot(this,t,e)},oi.prototype.clear=function(t){var e=t.color,i=t.depth,r=this.gl,n=0;e&&(n|=r.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),void 0!==i&&(n|=r.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(i),this.depthMask.set(!0)),r.clear(n)},oi.prototype.setCullFace=function(t){!1===t.enable?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(t.mode),this.frontFace.set(t.frontFace))},oi.prototype.setDepthMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1)},oi.prototype.setStencilMode=function(t){t.test.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1)},oi.prototype.setColorMode=function(t){_t.deepEqual(t.blendFunction,ri.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(t.blendFunction),this.blendColor.set(t.blendColor)),this.colorMask.set(t.mask)},oi.prototype.unbindVAO=function(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null)};var ai,si=((ai=_t.Evented)&&(li.__proto__=ai),((li.prototype=Object.create(ai&&ai.prototype)).constructor=li).prototype.onAdd=function(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(t)},li.prototype.onRemove=function(t){this._source&&this._source.onRemove&&this._source.onRemove(t)},li.prototype.loaded=function(){if(this._sourceErrored)return!0;if(!this._sourceLoaded)return!1;if(!this._source.loaded())return!1;for(var t in this._tiles){var e=this._tiles[t];if(\"loaded\"!==e.state&&\"errored\"!==e.state)return!1}return!0},li.prototype.getSource=function(){return this._source},li.prototype.pause=function(){this._paused=!0},li.prototype.resume=function(){if(this._paused){var t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform)}},li.prototype._loadTile=function(t,e){return this._source.loadTile(t,e)},li.prototype._unloadTile=function(t){if(this._source.unloadTile)return this._source.unloadTile(t,function(){})},li.prototype._abortTile=function(t){if(this._source.abortTile)return this._source.abortTile(t,function(){})},li.prototype.serialize=function(){return this._source.serialize()},li.prototype.prepare=function(t){for(var e in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){var i=this._tiles[e];i.upload(t),i.prepare(this.map.style.imageManager)}},li.prototype.getIds=function(){return _t.values(this._tiles).map(function(t){return t.tileID}).sort(ui).map(function(t){return t.key})},li.prototype.getRenderableIds=function(t){var a=this,e=[];for(var i in this._tiles)this._isIdRenderable(i,t)&&e.push(this._tiles[i]);return t?e.sort(function(t,e){var i=t.tileID,r=e.tileID,n=new _t.Point(i.canonical.x,i.canonical.y)._rotate(a.transform.angle),o=new _t.Point(r.canonical.x,r.canonical.y)._rotate(a.transform.angle);return i.overscaledZ-r.overscaledZ||o.y-n.y||o.x-n.x}).map(function(t){return t.tileID.key}):e.map(function(t){return t.tileID}).sort(ui).map(function(t){return t.key})},li.prototype.hasRenderableParent=function(t){var e=this.findLoadedParent(t,0);return!!e&&this._isIdRenderable(e.tileID.key)},li.prototype._isIdRenderable=function(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())},li.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var t in this._cache.reset(),this._tiles)\"errored\"!==this._tiles[t].state&&this._reloadTile(t,\"reloading\")},li.prototype._reloadTile=function(t,e){var i=this._tiles[t];i&&(\"loading\"!==i.state&&(i.state=e),this._loadTile(i,this._tileLoaded.bind(this,i,t,e)))},li.prototype._tileLoaded=function(t,e,i,r){if(r)return t.state=\"errored\",void(404!==r.status?this._source.fire(new _t.ErrorEvent(r,{tile:t})):this.update(this.transform));t.timeAdded=_t.browser.now(),\"expired\"===i&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(e,t),\"raster-dem\"===this.getSource().type&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),this._source.fire(new _t.Event(\"data\",{dataType:\"source\",tile:t,coord:t.tileID}))},li.prototype._backfillDEM=function(t){for(var e=this.getRenderableIds(),i=0;i<e.length;i++){var r=e[i];if(t.neighboringTiles&&t.neighboringTiles[r]){var n=this.getTileByID(r);o(t,n),o(n,t)}}function o(t,e){t.needsHillshadePrepare=!0;var i=e.tileID.canonical.x-t.tileID.canonical.x,r=e.tileID.canonical.y-t.tileID.canonical.y,n=Math.pow(2,t.tileID.canonical.z),o=e.tileID.key;0===i&&0==r||1<Math.abs(r)||(1<Math.abs(i)&&(1===Math.abs(i+n)?i+=n:1===Math.abs(i-n)&&(i-=n)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,r),t.neighboringTiles&&t.neighboringTiles[o]&&(t.neighboringTiles[o].backfilled=!0)))}},li.prototype.getTile=function(t){return this.getTileByID(t.key)},li.prototype.getTileByID=function(t){return this._tiles[t]},li.prototype._retainLoadedChildren=function(t,e,i,r){for(var n in this._tiles){var o=this._tiles[n];if(!(r[n]||!o.hasData()||o.tileID.overscaledZ<=e||o.tileID.overscaledZ>i)){for(var a=o.tileID;o&&o.tileID.overscaledZ>e+1;){var s=o.tileID.scaledTo(o.tileID.overscaledZ-1);(o=this._tiles[s.key])&&o.hasData()&&(a=s)}for(var l=a;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){r[a.key]=a;break}}}},li.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(var r=t.overscaledZ-1;e<=r;r--){var n=t.scaledTo(r),o=this._getLoadedTile(n);if(o)return o}},li.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},li.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),i=Math.floor(5*e),r=\"number\"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,i):i;this._cache.setMaxSize(r)},li.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,i=Math.round(e);if(this._prevLng=t,i){var r={};for(var n in this._tiles){var o=this._tiles[n];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+i),r[o.tileID.key]=o}for(var a in this._tiles=r,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},li.prototype.update=function(t){var e=this;if(this.transform=t,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(t),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=t.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(t){return new _t.OverscaledTileID(t.canonical.z,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y)}):(i=t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter(function(t){return e._source.hasTile(t)}))):i=[];var r=t.coveringZoomLevel(this._source),n=Math.max(r-li.maxOverzooming,this._source.minzoom),o=Math.max(r+li.maxUnderzooming,this._source.minzoom),a=this._updateRetainedTiles(i,r);if(ci(this._source.type)){for(var s={},l={},u=0,c=Object.keys(a);u<c.length;u+=1){var p=c[u],h=a[p],d=this._tiles[p];if(d&&!(d.fadeEndTime&&d.fadeEndTime<=_t.browser.now())){var f=this.findLoadedParent(h,n);f&&(this._addTile(f.tileID),s[f.tileID.key]=f.tileID),l[p]=h}}for(var m in this._retainLoadedChildren(l,r,o,a),s)a[m]||(this._coveredTiles[m]=!0,a[m]=s[m])}for(var g in a)this._tiles[g].clearFadeHold();for(var y=0,v=_t.keysDifference(this._tiles,a);y<v.length;y+=1){var _=v[y],x=this._tiles[_];x.hasSymbolBuckets&&!x.holdingForFade()?x.setHoldDuration(this.map._fadeDuration):x.hasSymbolBuckets&&!x.symbolFadeFinished()||this._removeTile(_)}this._updateLoadedParentTileCache()}},li.prototype.releaseSymbolFadeTiles=function(){for(var t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t)},li.prototype._updateRetainedTiles=function(t,e){for(var i={},r={},n=Math.max(e-li.maxOverzooming,this._source.minzoom),o=Math.max(e+li.maxUnderzooming,this._source.minzoom),a={},s=0,l=t;s<l.length;s+=1){var u=l[s],c=this._addTile(u);i[u.key]=u,c.hasData()||e<this._source.maxzoom&&(a[u.key]=u)}this._retainLoadedChildren(a,e,o,i);for(var p=0,h=t;p<h.length;p+=1){var d=h[p],f=this._tiles[d.key];if(!f.hasData()){if(e+1>this._source.maxzoom){var m=d.children(this._source.maxzoom)[0],g=this.getTile(m);if(g&&g.hasData()){i[m.key]=m;continue}}else{var y=d.children(this._source.maxzoom);if(i[y[0].key]&&i[y[1].key]&&i[y[2].key]&&i[y[3].key])continue}for(var v=f.wasRequested(),_=d.overscaledZ-1;n<=_;--_){var x=d.scaledTo(_);if(r[x.key])break;if(r[x.key]=!0,!(f=this.getTile(x))&&v&&(f=this._addTile(x)),f&&(i[x.key]=x,v=f.wasRequested(),f.hasData()))break}}}return i},li.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],i=void 0,r=this._tiles[t].tileID;0<r.overscaledZ;){if(r.key in this._loadedParentTiles){i=this._loadedParentTiles[r.key];break}e.push(r.key);var n=r.scaledTo(r.overscaledZ-1);if(i=this._getLoadedTile(n))break;r=n}for(var o=0,a=e;o<a.length;o+=1){var s=a[o];this._loadedParentTiles[s]=i}}},li.prototype._addTile=function(t){var e=this._tiles[t.key];if(e)return e;(e=this._cache.getAndRemove(t))&&(this._setTileReloadTimer(t.key,e),e.tileID=t,this._state.initializeTileState(e,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,e)));var i=Boolean(e);return i||(e=new _t.Tile(t,this._source.tileSize*t.overscaleFactor()),this._loadTile(e,this._tileLoaded.bind(this,e,t.key,e.state))),e?(e.uses++,this._tiles[t.key]=e,i||this._source.fire(new _t.Event(\"dataloading\",{tile:e,coord:e.tileID,dataType:\"source\"})),e):null},li.prototype._setTileReloadTimer=function(t,e){var i=this;t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);var r=e.getExpiryTimeout();r&&(this._timers[t]=setTimeout(function(){i._reloadTile(t,\"expired\"),delete i._timers[t]},r))},li.prototype._removeTile=function(t){var e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),0<e.uses||(e.hasData()&&\"reloading\"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},li.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},li.prototype.tilesIn=function(t,l,e){var u=this,c=[],p=this.transform;if(!p)return c;for(var i=e?p.getCameraQueryGeometry(t):t,h=t.map(function(t){return p.pointCoordinate(t)}),d=i.map(function(t){return p.pointCoordinate(t)}),f=this.getIds(),m=1/0,g=1/0,y=-1/0,v=-1/0,r=0,n=d;r<n.length;r+=1){var o=n[r];m=Math.min(m,o.x),g=Math.min(g,o.y),y=Math.max(y,o.x),v=Math.max(v,o.y)}for(var a=function(t){var e=u._tiles[f[t]];if(!e.holdingForFade()){var i=e.tileID,r=Math.pow(2,p.zoom-e.tileID.overscaledZ),n=l*e.queryPadding*_t.EXTENT/e.tileSize/r,o=[i.getTilePoint(new _t.MercatorCoordinate(m,g)),i.getTilePoint(new _t.MercatorCoordinate(y,v))];if(o[0].x-n<_t.EXTENT&&o[0].y-n<_t.EXTENT&&0<=o[1].x+n&&0<=o[1].y+n){var a=h.map(function(t){return i.getTilePoint(t)}),s=d.map(function(t){return i.getTilePoint(t)});c.push({tile:e,tileID:i,queryGeometry:a,cameraQueryGeometry:s,scale:r})}}},s=0;s<f.length;s++)a(s);return c},li.prototype.getVisibleCoordinates=function(t){for(var e=this,i=this.getRenderableIds(t).map(function(t){return e._tiles[t].tileID}),r=0,n=i;r<n.length;r+=1){var o=n[r];o.posMatrix=this.transform.calculatePosMatrix(o.toUnwrapped())}return i},li.prototype.hasTransition=function(){if(this._source.hasTransition())return!0;if(ci(this._source.type))for(var t in this._tiles){var e=this._tiles[t];if(void 0!==e.fadeEndTime&&e.fadeEndTime>=_t.browser.now())return!0}return!1},li.prototype.setFeatureState=function(t,e,i){t=t||\"_geojsonTileLayer\",this._state.updateState(t,e,i)},li.prototype.removeFeatureState=function(t,e,i){t=t||\"_geojsonTileLayer\",this._state.removeFeatureState(t,e,i)},li.prototype.getFeatureState=function(t,e){return t=t||\"_geojsonTileLayer\",this._state.getState(t,e)},li.prototype.setDependencies=function(t,e,i){var r=this._tiles[t];r&&r.setDependencies(e,i)},li.prototype.reloadTilesForDependencies=function(e,i){for(var t in this._tiles)this._tiles[t].hasDependency(e,i)&&this._reloadTile(t,\"reloading\");this._cache.filter(function(t){return!t.hasDependency(e,i)})},li);function li(t,e,i){var r=this;ai.call(this),this.id=t,this.dispatcher=i,this.on(\"data\",function(t){\"source\"===t.dataType&&\"metadata\"===t.sourceDataType&&(r._sourceLoaded=!0),r._sourceLoaded&&!r._paused&&\"source\"===t.dataType&&\"content\"===t.sourceDataType&&(r.reload(),r.transform&&r.update(r.transform))}),this.on(\"error\",function(){r._sourceErrored=!0}),this._source=function(t,e,i,r){var n=new X[e.type](t,e,i,r);if(n.id!==t)throw new Error(\"Expected Source id to be \"+t+\" instead of \"+n.id);return _t.bindAll([\"load\",\"abort\",\"unload\",\"serialize\",\"prepare\"],n),n}(t,e,i,this),this._tiles={},this._cache=new tt(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new _t.SourceFeatureState}function ui(t,e){var i=Math.abs(2*t.wrap)-(t.wrap<0),r=Math.abs(2*e.wrap)-(e.wrap<0);return t.overscaledZ-e.overscaledZ||r-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function ci(t){return\"raster\"===t||\"image\"===t||\"video\"===t}function pi(){return new _t.window.Worker(Oo.workerUrl)}function hi(){this.active={}}si.maxOverzooming=10,si.maxUnderzooming=3,hi.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length<hi.workerCount;)this.workers.push(new pi);return this.active[t]=!0,this.workers.slice()},hi.prototype.release=function(t){delete this.active[t],0===Object.keys(this.active).length&&(this.workers.forEach(function(t){t.terminate()}),this.workers=null)};var di,fi=Math.floor(_t.browser.hardwareConcurrency/2);function mi(t,e){var i={};for(var r in t)\"ref\"!==r&&(i[r]=t[r]);return _t.refProperties.forEach(function(t){t in e&&(i[t]=e[t])}),i}function gi(t){t=t.slice();for(var e=Object.create(null),i=0;i<t.length;i++)e[t[i].id]=t[i];for(var r=0;r<t.length;r++)\"ref\"in t[r]&&(t[r]=mi(t[r],e[t[r].ref]));return t}hi.workerCount=Math.max(Math.min(fi,6),1);var yi={setStyle:\"setStyle\",addLayer:\"addLayer\",removeLayer:\"removeLayer\",setPaintProperty:\"setPaintProperty\",setLayoutProperty:\"setLayoutProperty\",setFilter:\"setFilter\",addSource:\"addSource\",removeSource:\"removeSource\",setGeoJSONSourceData:\"setGeoJSONSourceData\",setLayerZoomRange:\"setLayerZoomRange\",setLayerProperty:\"setLayerProperty\",setCenter:\"setCenter\",setZoom:\"setZoom\",setBearing:\"setBearing\",setPitch:\"setPitch\",setSprite:\"setSprite\",setGlyphs:\"setGlyphs\",setTransition:\"setTransition\",setLight:\"setLight\"};function vi(t,e,i){i.push({command:yi.addSource,args:[t,e[t]]})}function _i(t,e,i){e.push({command:yi.removeSource,args:[t]}),i[t]=!0}function xi(t,e,i){var r;for(r in t[i])if(t[i].hasOwnProperty(r)&&\"data\"!==r&&!_t.deepEqual(t[i][r],e[i][r]))return;for(r in e[i])if(e[i].hasOwnProperty(r)&&\"data\"!==r&&!_t.deepEqual(t[i][r],e[i][r]))return;return 1}function bi(t,e,i,r,n,o){var a;for(a in e=e||{},t=t||{})t.hasOwnProperty(a)&&(_t.deepEqual(t[a],e[a])||i.push({command:o,args:[r,a,e[a],n]}));for(a in e)e.hasOwnProperty(a)&&!t.hasOwnProperty(a)&&(_t.deepEqual(t[a],e[a])||i.push({command:o,args:[r,a,e[a],n]}))}function wi(t){return t.id}function Si(t,e){return t[e.id]=e,t}function Ti(t,e){if(!t)return[{command:yi.setStyle,args:[e]}];var i=[];try{if(!_t.deepEqual(t.version,e.version))return[{command:yi.setStyle,args:[e]}];_t.deepEqual(t.center,e.center)||i.push({command:yi.setCenter,args:[e.center]}),_t.deepEqual(t.zoom,e.zoom)||i.push({command:yi.setZoom,args:[e.zoom]}),_t.deepEqual(t.bearing,e.bearing)||i.push({command:yi.setBearing,args:[e.bearing]}),_t.deepEqual(t.pitch,e.pitch)||i.push({command:yi.setPitch,args:[e.pitch]}),_t.deepEqual(t.sprite,e.sprite)||i.push({command:yi.setSprite,args:[e.sprite]}),_t.deepEqual(t.glyphs,e.glyphs)||i.push({command:yi.setGlyphs,args:[e.glyphs]}),_t.deepEqual(t.transition,e.transition)||i.push({command:yi.setTransition,args:[e.transition]}),_t.deepEqual(t.light,e.light)||i.push({command:yi.setLight,args:[e.light]});var r={},n=[];!function(t,e,i,r){var n,o,a,s;for(n in e=e||{},t=t||{})t.hasOwnProperty(n)&&(e.hasOwnProperty(n)||_i(n,i,r));for(n in e)e.hasOwnProperty(n)&&(t.hasOwnProperty(n)?_t.deepEqual(t[n],e[n])||(\"geojson\"===t[n].type&&\"geojson\"===e[n].type&&xi(t,e,n)?i.push({command:yi.setGeoJSONSourceData,args:[n,e[n].data]}):(a=e,_i(o=n,s=i,r),vi(o,a,s))):vi(n,e,i))}(t.sources,e.sources,n,r);var o=[];t.layers&&t.layers.forEach(function(t){r[t.source]?i.push({command:yi.removeLayer,args:[t.id]}):o.push(t)}),i=i.concat(n),function(t,e,i){e=e||[];var r,n,o,a,s,l,u,c=(t=t||[]).map(wi),p=e.map(wi),h=t.reduce(Si,{}),d=e.reduce(Si,{}),f=c.slice(),m=Object.create(null);for(n=r=0;r<c.length;r++)o=c[r],d.hasOwnProperty(o)?n++:(i.push({command:yi.removeLayer,args:[o]}),f.splice(f.indexOf(o,n),1));for(n=r=0;r<p.length;r++)o=p[p.length-1-r],f[f.length-1-r]!==o&&(h.hasOwnProperty(o)?(i.push({command:yi.removeLayer,args:[o]}),f.splice(f.lastIndexOf(o,f.length-n),1)):n++,l=f[f.length-r],i.push({command:yi.addLayer,args:[d[o],l]}),f.splice(f.length-r,0,o),m[o]=!0);for(r=0;r<p.length;r++)if(a=h[o=p[r]],s=d[o],!m[o]&&!_t.deepEqual(a,s))if(_t.deepEqual(a.source,s.source)&&_t.deepEqual(a[\"source-layer\"],s[\"source-layer\"])&&_t.deepEqual(a.type,s.type)){for(u in bi(a.layout,s.layout,i,o,null,yi.setLayoutProperty),bi(a.paint,s.paint,i,o,null,yi.setPaintProperty),_t.deepEqual(a.filter,s.filter)||i.push({command:yi.setFilter,args:[o,s.filter]}),_t.deepEqual(a.minzoom,s.minzoom)&&_t.deepEqual(a.maxzoom,s.maxzoom)||i.push({command:yi.setLayerZoomRange,args:[o,s.minzoom,s.maxzoom]}),a)a.hasOwnProperty(u)&&\"layout\"!==u&&\"paint\"!==u&&\"filter\"!==u&&\"metadata\"!==u&&\"minzoom\"!==u&&\"maxzoom\"!==u&&(0===u.indexOf(\"paint.\")?bi(a[u],s[u],i,o,u.slice(6),yi.setPaintProperty):_t.deepEqual(a[u],s[u])||i.push({command:yi.setLayerProperty,args:[o,u,s[u]]}));for(u in s)s.hasOwnProperty(u)&&!a.hasOwnProperty(u)&&\"layout\"!==u&&\"paint\"!==u&&\"filter\"!==u&&\"metadata\"!==u&&\"minzoom\"!==u&&\"maxzoom\"!==u&&(0===u.indexOf(\"paint.\")?bi(a[u],s[u],i,o,u.slice(6),yi.setPaintProperty):_t.deepEqual(a[u],s[u])||i.push({command:yi.setLayerProperty,args:[o,u,s[u]]}))}else i.push({command:yi.removeLayer,args:[o]}),l=f[f.lastIndexOf(o)+1],i.push({command:yi.addLayer,args:[s,l]})}(o,e.layers,i)}catch(t){console.warn(\"Unable to compute style diff:\",t),i=[{command:yi.setStyle,args:[e]}]}return i}function Ei(t,e,i){var r=this.boxCells=[],n=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(var o=0;o<this.xCellCount*this.yCellCount;o++)r.push([]),n.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=t,this.height=e,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/e,this.boxUid=0,this.circleUid=0}function Ii(t,e,i,r,n){var o=_t.create();return e?(_t.scale(o,o,[1/n,1/n,1]),i||_t.rotateZ(o,o,r.angle)):_t.multiply(o,r.labelPlaneMatrix,t),o}function Ci(t,e,i,r,n){if(e){var o=_t.clone(t);return _t.scale(o,o,[n,n,1]),i||_t.rotateZ(o,o,-r.angle),o}return r.glCoordMatrix}function Ai(t,e){var i=[t.x,t.y,0,1];Ni(i,i,e);var r=i[3];return{point:new _t.Point(i[0]/r,i[1]/r),signedDistanceFromCamera:r}}function ki(t,e,i,r,n,o,a,s){var l,u,c,p,h=r?t.textSizeData:t.iconSizeData,d=_t.evaluateSizeForZoom(h,i.transform.zoom),f=[256/i.width*2+1,256/i.height*2+1],m=r?t.text.dynamicLayoutVertexArray:t.icon.dynamicLayoutVertexArray;m.clear();for(var g=t.lineVertexArray,y=r?t.text.placedSymbolArray:t.icon.placedSymbolArray,v=i.transform.width/i.transform.height,_=!1,x=0;x<y.length;x++){var b=y.get(x);if(b.hidden||b.writingMode===_t.WritingMode.vertical&&!_)Ri(b.numGlyphs,m);else{_=!1;var w=[b.anchorX,b.anchorY,0,1];if(_t.transformMat4(w,w,e),u=f,c=(l=w)[0]/l[3],p=l[1]/l[3],c>=-u[0]&&c<=u[0]&&p>=-u[1]&&p<=u[1]){var S=.5+w[3]/i.transform.cameraToCenterDistance*.5,T=_t.evaluateSizeForFeature(h,d,b),E=a?T*S:T/S,I=new _t.Point(b.anchorX,b.anchorY),C=Ai(I,n).point,A={},k=Li(b,E,!1,s,e,n,o,t.glyphOffsetArray,g,m,C,I,A,v);_=k.useVertical,(k.notEnoughRoom||_||k.needsFlipping&&Li(b,E,!0,s,e,n,o,t.glyphOffsetArray,g,m,C,I,A,v).notEnoughRoom)&&Ri(b.numGlyphs,m)}else Ri(b.numGlyphs,m)}}r?t.text.dynamicLayoutVertexBuffer.updateData(m):t.icon.dynamicLayoutVertexBuffer.updateData(m)}function Pi(t,e,i,r,n,o,a,s,l,u,c,p){var h=s.glyphStartIndex+s.numGlyphs,d=s.lineStartIndex,f=s.lineStartIndex+s.lineLength,m=e.getoffsetX(s.glyphStartIndex),g=e.getoffsetX(h-1),y=Oi(t*m,i,r,n,o,a,s.segment,d,f,l,u,c,p);if(!y)return null;var v=Oi(t*g,i,r,n,o,a,s.segment,d,f,l,u,c,p);return v?{first:y,last:v}:null}function Mi(t,e,i,r){return t===_t.WritingMode.horizontal&&Math.abs(i.y-e.y)>Math.abs(i.x-e.x)*r?{useVertical:!0}:(t===_t.WritingMode.vertical?e.y<i.y:e.x>i.x)?{needsFlipping:!0}:null}function Li(t,e,i,r,n,o,a,s,l,u,c,p,h,d){var f,m=e/24,g=t.lineOffsetX*m,y=t.lineOffsetY*m;if(1<t.numGlyphs){var v=t.glyphStartIndex+t.numGlyphs,_=t.lineStartIndex,x=t.lineStartIndex+t.lineLength,b=Pi(m,s,g,y,i,c,p,t,l,o,h,!1);if(!b)return{notEnoughRoom:!0};var w=Ai(b.first.point,a).point,S=Ai(b.last.point,a).point;if(r&&!i){var T=Mi(t.writingMode,w,S,d);if(T)return T}f=[b.first];for(var E=t.glyphStartIndex+1;E<v-1;E++)f.push(Oi(m*s.getoffsetX(E),g,y,i,c,p,t.segment,_,x,l,o,h,!1));f.push(b.last)}else{if(r&&!i){var I=Ai(p,n).point,C=t.lineStartIndex+t.segment+1,A=new _t.Point(l.getx(C),l.gety(C)),k=Ai(A,n),P=0<k.signedDistanceFromCamera?k.point:Di(p,A,I,1,n),M=Mi(t.writingMode,I,P,d);if(M)return M}var L=Oi(m*s.getoffsetX(t.glyphStartIndex),g,y,i,c,p,t.segment,t.lineStartIndex,t.lineStartIndex+t.lineLength,l,o,h,!1);if(!L)return{notEnoughRoom:!0};f=[L]}for(var D=0,O=f;D<O.length;D+=1){var z=O[D];_t.addDynamicAttributes(u,z.point,z.angle)}return{}}function Di(t,e,i,r,n){var o=Ai(t.add(t.sub(e)._unit()),n).point,a=i.sub(o);return i.add(a._mult(r/a.mag()))}function Oi(t,e,i,r,n,o,a,s,l,u,c,p,h){var d=r?t-e:t+e,f=0<d?1:-1,m=0;r&&(f*=-1,m=Math.PI),f<0&&(m+=Math.PI);for(var g=0<f?s+a:s+a+1,y=g,v=n,_=n,x=0,b=0,w=Math.abs(d);x+b<=w;){if((g+=f)<s||l<=g)return null;if(_=v,void 0===(v=p[g])){var S=new _t.Point(u.getx(g),u.gety(g)),T=Ai(S,c);if(0<T.signedDistanceFromCamera)v=p[g]=T.point;else{var E=g-f;v=Di(0===x?o:new _t.Point(u.getx(E),u.gety(E)),S,_,w-x+1,c)}}x+=b,b=_.dist(v)}var I=(w-x)/b,C=v.sub(_),A=C.mult(I)._add(_);return A._add(C._unit()._perp()._mult(i*f)),{point:A,angle:m+Math.atan2(v.y-_.y,v.x-_.x),tileDistance:h?{prevTileDistance:g-f===y?0:u.gettileUnitDistanceFromAnchor(g-f),lastSegmentViewportDistance:w-x}:null}}Ei.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Ei.prototype.insert=function(t,e,i,r,n){this._forEachCell(e,i,r,n,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(i),this.bboxes.push(r),this.bboxes.push(n)},Ei.prototype.insertCircle=function(t,e,i,r){this._forEachCell(e-r,i-r,e+r,i+r,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(i),this.circles.push(r)},Ei.prototype._insertBoxCell=function(t,e,i,r,n,o){this.boxCells[n].push(o)},Ei.prototype._insertCircleCell=function(t,e,i,r,n,o){this.circleCells[n].push(o)},Ei.prototype._query=function(t,e,i,r,n,o){if(i<0||t>this.width||r<0||e>this.height)return!n&&[];var a=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=r){if(n)return!0;for(var s=0;s<this.boxKeys.length;s++)a.push({key:this.boxKeys[s],x1:this.bboxes[4*s],y1:this.bboxes[4*s+1],x2:this.bboxes[4*s+2],y2:this.bboxes[4*s+3]});for(var l=0;l<this.circleKeys.length;l++){var u=this.circles[3*l],c=this.circles[3*l+1],p=this.circles[3*l+2];a.push({key:this.circleKeys[l],x1:u-p,y1:c-p,x2:u+p,y2:c+p})}return o?a.filter(o):a}var h={hitTest:n,seenUids:{box:{},circle:{}}};return this._forEachCell(t,e,i,r,this._queryCell,a,h,o),n?0<a.length:a},Ei.prototype._queryCircle=function(t,e,i,r,n){var o=t-i,a=t+i,s=e-i,l=e+i;if(a<0||o>this.width||l<0||s>this.height)return!r&&[];var u=[],c={hitTest:r,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}};return this._forEachCell(o,s,a,l,this._queryCellCircle,u,c,n),r?0<u.length:u},Ei.prototype.query=function(t,e,i,r,n){return this._query(t,e,i,r,!1,n)},Ei.prototype.hitTest=function(t,e,i,r,n){return this._query(t,e,i,r,!0,n)},Ei.prototype.hitTestCircle=function(t,e,i,r){return this._queryCircle(t,e,i,!0,r)},Ei.prototype._queryCell=function(t,e,i,r,n,o,a,s){var l=a.seenUids,u=this.boxCells[n];if(null!==u)for(var c=this.bboxes,p=0,h=u;p<h.length;p+=1){var d=h[p];if(!l.box[d]){l.box[d]=!0;var f=4*d;if(t<=c[2+f]&&e<=c[3+f]&&i>=c[0+f]&&r>=c[1+f]&&(!s||s(this.boxKeys[d]))){if(a.hitTest)return o.push(!0),!0;o.push({key:this.boxKeys[d],x1:c[f],y1:c[1+f],x2:c[2+f],y2:c[3+f]})}}}var m=this.circleCells[n];if(null!==m)for(var g=this.circles,y=0,v=m;y<v.length;y+=1){var _=v[y];if(!l.circle[_]){l.circle[_]=!0;var x=3*_;if(this._circleAndRectCollide(g[x],g[1+x],g[2+x],t,e,i,r)&&(!s||s(this.circleKeys[_]))){if(a.hitTest)return o.push(!0),!0;var b=g[x],w=g[1+x],S=g[2+x];o.push({key:this.circleKeys[_],x1:b-S,y1:w-S,x2:b+S,y2:w+S})}}}},Ei.prototype._queryCellCircle=function(t,e,i,r,n,o,a,s){var l=a.circle,u=a.seenUids,c=this.boxCells[n];if(null!==c)for(var p=this.bboxes,h=0,d=c;h<d.length;h+=1){var f=d[h];if(!u.box[f]){u.box[f]=!0;var m=4*f;if(this._circleAndRectCollide(l.x,l.y,l.radius,p[0+m],p[1+m],p[2+m],p[3+m])&&(!s||s(this.boxKeys[f])))return o.push(!0),!0}}var g=this.circleCells[n];if(null!==g)for(var y=this.circles,v=0,_=g;v<_.length;v+=1){var x=_[v];if(!u.circle[x]){u.circle[x]=!0;var b=3*x;if(this._circlesCollide(y[b],y[1+b],y[2+b],l.x,l.y,l.radius)&&(!s||s(this.circleKeys[x])))return o.push(!0),!0}}},Ei.prototype._forEachCell=function(t,e,i,r,n,o,a,s){for(var l=this._convertToXCellCoord(t),u=this._convertToYCellCoord(e),c=this._convertToXCellCoord(i),p=this._convertToYCellCoord(r),h=l;h<=c;h++)for(var d=u;d<=p;d++){var f=this.xCellCount*d+h;if(n.call(this,t,e,i,r,f,o,a,s))return}},Ei.prototype._convertToXCellCoord=function(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))},Ei.prototype._convertToYCellCoord=function(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))},Ei.prototype._circlesCollide=function(t,e,i,r,n,o){var a=r-t,s=n-e,l=i+o;return a*a+s*s<l*l},Ei.prototype._circleAndRectCollide=function(t,e,i,r,n,o,a){var s=(o-r)/2,l=Math.abs(t-(r+s));if(s+i<l)return!1;var u=(a-n)/2,c=Math.abs(e-(n+u));if(u+i<c)return!1;if(l<=s||c<=u)return!0;var p=l-s,h=c-u;return p*p+h*h<=i*i};var zi=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function Ri(t,e){for(var i=0;i<t;i++){var r=e.length;e.resize(r+4),e.float32.set(zi,3*r)}}function Ni(t,e,i){var r=e[0],n=e[1];return t[0]=i[0]*r+i[4]*n+i[12],t[1]=i[1]*r+i[5]*n+i[13],t[3]=i[3]*r+i[7]*n+i[15],t}function Bi(t,e,i){void 0===e&&(e=new Ei(t.width+200,t.height+200,25)),void 0===i&&(i=new Ei(t.width+200,t.height+200,25)),this.transform=t,this.grid=e,this.ignoredGrid=i,this.pitchfactor=Math.cos(t._pitch)*t.cameraToCenterDistance,this.screenRightBoundary=t.width+100,this.screenBottomBoundary=t.height+100,this.gridRightBoundary=t.width+200,this.gridBottomBoundary=t.height+200}function Fi(t,e,i){t[e+4]=i?1:0}function Ui(t,e,i){return e*(_t.EXTENT/(t.tileSize*Math.pow(2,i-t.tileID.overscaledZ)))}function ji(t,e,i,r){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?e:-e))):r&&i?1:0,this.placed=i}function qi(t,e,i,r,n){this.text=new ji(t?t.text:null,e,i,n),this.icon=new ji(t?t.icon:null,e,r,n)}function Vi(t,e,i){this.text=t,this.icon=e,this.skipFade=i}function Gi(t,e,i,r,n){this.bucketInstanceId=t,this.featureIndex=e,this.sourceLayerIndex=i,this.bucketIndex=r,this.tileID=n}function Zi(t){this.crossSourceCollisions=t,this.maxGroupID=0,this.collisionGroups={}}function Hi(t,e,i,r,n){var o=_t.getAnchorAlignment(t),a=-(o.horizontalAlign-.5)*e,s=-(o.verticalAlign-.5)*i,l=_t.evaluateVariableOffset(t,r);return new _t.Point(a+l[0]*n,s+l[1]*n)}function Ki(t,e,i,r,n,o){var a=t.x1,s=t.x2,l=t.y1,u=t.y2,c=t.anchorPointX,p=t.anchorPointY,h=new _t.Point(e,i);return r&&h._rotate(n?o:-o),{x1:a+h.x,y1:l+h.y,x2:s+h.x,y2:u+h.y,anchorPointX:c,anchorPointY:p}}function Wi(t,e,i,r){this.transform=t.clone(),this.collisionIndex=new Bi(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=e,this.retainedQueryData={},this.collisionGroups=new Zi(i),(this.prevPlacement=r)&&(r.prevPlacement=void 0),this.placedOrientations={}}function Xi(t,e,i,r,n){t.emplaceBack(e?1:0,i?1:0,r||0,n||0),t.emplaceBack(e?1:0,i?1:0,r||0,n||0),t.emplaceBack(e?1:0,i?1:0,r||0,n||0),t.emplaceBack(e?1:0,i?1:0,r||0,n||0)}Bi.prototype.placeCollisionBox=function(t,e,i,r,n){var o=this.projectAndGetPerspectiveRatio(r,t.anchorPointX,t.anchorPointY),a=i*o.perspectiveRatio,s=t.x1*a+o.point.x,l=t.y1*a+o.point.y,u=t.x2*a+o.point.x,c=t.y2*a+o.point.y;return!this.isInsideGrid(s,l,u,c)||!e&&this.grid.hitTest(s,l,u,c,n)?{box:[],offscreen:!1}:{box:[s,l,u,c],offscreen:this.isOffscreen(s,l,u,c)}},Bi.prototype.approximateTileDistance=function(t,e,i,r,n){var o=n?1:r/this.pitchfactor,a=t.lastSegmentViewportDistance*i;return t.prevTileDistance+a+(o-1)*a*Math.abs(Math.sin(e))},Bi.prototype.placeCollisionCircles=function(t,e,i,r,n,o,a,s,l,u,c,p,h){var d=[],f=this.projectAnchor(l,n.anchorX,n.anchorY),m=s/24,g=n.lineOffsetX*s,y=n.lineOffsetY*s,v=new _t.Point(n.anchorX,n.anchorY),_=Pi(m,a,g,y,!1,Ai(v,u).point,v,n,o,u,{},!0),x=!1,b=!1,w=!0,S=f.perspectiveRatio*r,T=1/(r*i),E=0,I=0;_&&(E=this.approximateTileDistance(_.first.tileDistance,_.first.angle,T,f.cameraDistance,p),I=this.approximateTileDistance(_.last.tileDistance,_.last.angle,T,f.cameraDistance,p));for(var C=0;C<t.length;C+=5){var A=t[C],k=t[C+1],P=t[C+2],M=t[C+3];if(!_||M<-E||I<M)Fi(t,C,!1);else{var L=this.projectPoint(l,A,k),D=P*S;if(0<d.length){var O=L.x-d[d.length-4],z=L.y-d[d.length-3];if(O*O+z*z<D*D*2&&C+8<t.length){var R=t[C+8];if(-E<R&&R<I){Fi(t,C,!1);continue}}}var N=C/5;d.push(L.x,L.y,D,N),Fi(t,C,!0);var B=L.x-D,F=L.y-D,U=L.x+D,j=L.y+D;if(w=w&&this.isOffscreen(B,F,U,j),b=b||this.isInsideGrid(B,F,U,j),!e&&this.grid.hitTestCircle(L.x,L.y,D,h)){if(!c)return{circles:[],offscreen:!1};x=!0}}}return{circles:x||!b?[]:d,offscreen:w}},Bi.prototype.queryRenderedSymbols=function(t){if(0===t.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return{};for(var e=[],i=1/0,r=1/0,n=-1/0,o=-1/0,a=0,s=t;a<s.length;a+=1){var l=s[a],u=new _t.Point(l.x+100,l.y+100);i=Math.min(i,u.x),r=Math.min(r,u.y),n=Math.max(n,u.x),o=Math.max(o,u.y),e.push(u)}for(var c={},p={},h=0,d=this.grid.query(i,r,n,o).concat(this.ignoredGrid.query(i,r,n,o));h<d.length;h+=1){var f=d[h],m=f.key;if(void 0===c[m.bucketInstanceId]&&(c[m.bucketInstanceId]={}),!c[m.bucketInstanceId][m.featureIndex]){var g=[new _t.Point(f.x1,f.y1),new _t.Point(f.x2,f.y1),new _t.Point(f.x2,f.y2),new _t.Point(f.x1,f.y2)];_t.polygonIntersectsPolygon(e,g)&&(c[m.bucketInstanceId][m.featureIndex]=!0,void 0===p[m.bucketInstanceId]&&(p[m.bucketInstanceId]=[]),p[m.bucketInstanceId].push(m.featureIndex))}}return p},Bi.prototype.insertCollisionBox=function(t,e,i,r,n){var o={bucketInstanceId:i,featureIndex:r,collisionGroupID:n};(e?this.ignoredGrid:this.grid).insert(o,t[0],t[1],t[2],t[3])},Bi.prototype.insertCollisionCircles=function(t,e,i,r,n){for(var o=e?this.ignoredGrid:this.grid,a={bucketInstanceId:i,featureIndex:r,collisionGroupID:n},s=0;s<t.length;s+=4)o.insertCircle(a,t[s],t[s+1],t[s+2])},Bi.prototype.projectAnchor=function(t,e,i){var r=[e,i,0,1];return Ni(r,r,t),{perspectiveRatio:.5+this.transform.cameraToCenterDistance/r[3]*.5,cameraDistance:r[3]}},Bi.prototype.projectPoint=function(t,e,i){var r=[e,i,0,1];return Ni(r,r,t),new _t.Point((r[0]/r[3]+1)/2*this.transform.width+100,(-r[1]/r[3]+1)/2*this.transform.height+100)},Bi.prototype.projectAndGetPerspectiveRatio=function(t,e,i){var r=[e,i,0,1];return Ni(r,r,t),{point:new _t.Point((r[0]/r[3]+1)/2*this.transform.width+100,(-r[1]/r[3]+1)/2*this.transform.height+100),perspectiveRatio:.5+this.transform.cameraToCenterDistance/r[3]*.5}},Bi.prototype.isOffscreen=function(t,e,i,r){return i<100||t>=this.screenRightBoundary||r<100||e>this.screenBottomBoundary},Bi.prototype.isInsideGrid=function(t,e,i,r){return 0<=i&&t<this.gridRightBoundary&&0<=r&&e<this.gridBottomBoundary},ji.prototype.isHidden=function(){return 0===this.opacity&&!this.placed},qi.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()},Zi.prototype.get=function(t){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[t]){var e=++this.maxGroupID;this.collisionGroups[t]={ID:e,predicate:function(t){return t.collisionGroupID===e}}}return this.collisionGroups[t]},Wi.prototype.getBucketParts=function(t,e,i,r){var n=i.getBucket(e),o=i.latestFeatureIndex;if(n&&o&&e.id===n.layerIds[0]){var a=i.collisionBoxArray,s=n.layers[0].layout,l=Math.pow(2,this.transform.zoom-i.tileID.overscaledZ),u=i.tileSize/_t.EXTENT,c=this.transform.calculatePosMatrix(i.tileID.toUnwrapped()),p=Ii(c,\"map\"===s.get(\"text-pitch-alignment\"),\"map\"===s.get(\"text-rotation-alignment\"),this.transform,Ui(i,1,this.transform.zoom));this.retainedQueryData[n.bucketInstanceId]=new Gi(n.bucketInstanceId,o,n.sourceLayerIndex,n.index,i.tileID);var h={bucket:n,layout:s,posMatrix:c,textLabelPlaneMatrix:p,scale:l,textPixelRatio:u,holdingForFade:i.holdingForFade(),collisionBoxArray:a,partiallyEvaluatedTextSize:_t.evaluateSizeForZoom(n.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(n.sourceID)};if(r)for(var d=0,f=n.sortKeyRanges;d<f.length;d+=1){var m=f[d],g=m.sortKey,y=m.symbolInstanceStart,v=m.symbolInstanceEnd;t.push({sortKey:g,symbolInstanceStart:y,symbolInstanceEnd:v,parameters:h})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:n.symbolInstances.length,parameters:h})}},Wi.prototype.attemptAnchorPlacement=function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f){var m,g=[p.textOffset0,p.textOffset1],y=Hi(t,i,r,g,n),v=this.collisionIndex.placeCollisionBox(Ki(e,y.x,y.y,o,a,this.transform.angle),c,s,l,u.predicate);if(!f||0!==this.collisionIndex.placeCollisionBox(Ki(f,y.x,y.y,o,a,this.transform.angle),c,s,l,u.predicate).box.length)return 0<v.box.length?(this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(m=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:g,width:i,height:r,anchor:t,textBoxScale:n,prevAnchor:m},this.markUsedJustification(h,t,p,d),h.allowVerticalPlacement&&(this.markUsedOrientation(h,d,p),this.placedOrientations[p.crossTileID]=d),{shift:y,placedGlyphBoxes:v}):void 0},Wi.prototype.placeLayerBucketPart=function(t,k,P){var M=this,e=t.parameters,L=e.bucket,D=e.layout,O=e.posMatrix,z=e.textLabelPlaneMatrix,R=e.scale,N=e.textPixelRatio,B=e.holdingForFade,i=e.collisionBoxArray,F=e.partiallyEvaluatedTextSize,U=e.collisionGroup,j=D.get(\"text-optional\"),q=D.get(\"icon-optional\"),V=D.get(\"text-allow-overlap\"),G=D.get(\"icon-allow-overlap\"),Z=\"map\"===D.get(\"text-rotation-alignment\"),H=\"map\"===D.get(\"text-pitch-alignment\"),K=\"none\"!==D.get(\"icon-text-fit\"),r=\"viewport-y\"===D.get(\"symbol-z-order\"),W=V&&(G||!L.hasIconData()||q),X=G&&(V||!L.hasTextData()||j);function n(d,n){if(!k[d.crossTileID])if(B)M.placements[d.crossTileID]=new Vi(!1,!1,!1);else{var t,f=!1,e=!1,i=!0,m=null,o={box:null,offscreen:null},a={box:null,offscreen:null},r=null,s=null,l=0,u=0,c=0;n.textFeatureIndex&&(l=n.textFeatureIndex),n.verticalTextFeatureIndex&&(u=n.verticalTextFeatureIndex);var p=n.textBox;if(p){var h=function(t){var e=_t.WritingMode.horizontal;if(L.allowVerticalPlacement&&!t&&M.prevPlacement){var i=M.prevPlacement.placedOrientations[d.crossTileID];i&&(e=M.placedOrientations[d.crossTileID]=i,M.markUsedOrientation(L,e,d))}return e},g=function(t,e){if(L.allowVerticalPlacement&&0<d.numVerticalGlyphVertices&&n.verticalTextBox)for(var i=0,r=L.writingModes;i<r.length&&(r[i]===_t.WritingMode.vertical?(o=e(),a=o):o=t(),!(o&&o.box&&o.box.length));i+=1);else o=t()};if(D.get(\"text-variable-anchor\")){var y=D.get(\"text-variable-anchor\");if(M.prevPlacement&&M.prevPlacement.variableOffsets[d.crossTileID]){var v=M.prevPlacement.variableOffsets[d.crossTileID];0<y.indexOf(v.anchor)&&(y=y.filter(function(t){return t!==v.anchor})).unshift(v.anchor)}var _=function(t,e,i){for(var r=t.x2-t.x1,n=t.y2-t.y1,o=d.textBoxScale,a=K&&!G?e:null,s={box:[],offscreen:!1},l=V?2*y.length:y.length,u=0;u<l;++u){var c=y[u%y.length],p=u>=y.length,h=M.attemptAnchorPlacement(c,t,r,n,o,Z,H,N,O,U,p,d,L,i,a);if(h&&(s=h.placedGlyphBoxes)&&s.box&&s.box.length){f=!0,m=h.shift;break}}return s};g(function(){return _(p,n.iconBox,_t.WritingMode.horizontal)},function(){var t=n.verticalTextBox,e=o&&o.box&&o.box.length;return L.allowVerticalPlacement&&!e&&0<d.numVerticalGlyphVertices&&t?_(t,n.verticalIconBox,_t.WritingMode.vertical):{box:null,offscreen:null}}),o&&(f=o.box,i=o.offscreen);var x=h(o&&o.box);if(!f&&M.prevPlacement){var b=M.prevPlacement.variableOffsets[d.crossTileID];b&&(M.variableOffsets[d.crossTileID]=b,M.markUsedJustification(L,b.anchor,d,x))}}else{var w=function(t,e){var i=M.collisionIndex.placeCollisionBox(t,V,N,O,U.predicate);return i&&i.box&&i.box.length&&(M.markUsedOrientation(L,e,d),M.placedOrientations[d.crossTileID]=e),i};g(function(){return w(p,_t.WritingMode.horizontal)},function(){var t=n.verticalTextBox;return L.allowVerticalPlacement&&0<d.numVerticalGlyphVertices&&t?w(t,_t.WritingMode.vertical):{box:null,offscreen:null}}),h(o&&o.box&&o.box.length)}}f=(t=o)&&t.box&&0<t.box.length,i=t&&t.offscreen;var S=n.textCircles;if(S){var T=L.text.placedSymbolArray.get(d.centerJustifiedTextSymbolIndex),E=_t.evaluateSizeForFeature(L.textSizeData,F,T);r=M.collisionIndex.placeCollisionCircles(S,V,R,N,T,L.lineVertexArray,L.glyphOffsetArray,E,O,z,P,H,U.predicate),f=V||0<r.circles.length,i=i&&r.offscreen}if(n.iconFeatureIndex&&(c=n.iconFeatureIndex),n.iconBox){var I=function(t){var e=K&&m?Ki(t,m.x,m.y,Z,H,M.transform.angle):t;return M.collisionIndex.placeCollisionBox(e,G,N,O,U.predicate)};e=a&&a.box&&a.box.length&&n.verticalIconBox?0<(s=I(n.verticalIconBox)).box.length:0<(s=I(n.iconBox)).box.length,i=i&&s.offscreen}var C=j||0===d.numHorizontalGlyphVertices&&0===d.numVerticalGlyphVertices,A=q||0===d.numIconVertices;C||A?A?C||(e=e&&f):f=e&&f:e=f=e&&f,f&&t&&t.box&&(a&&a.box&&u?M.collisionIndex.insertCollisionBox(t.box,D.get(\"text-ignore-placement\"),L.bucketInstanceId,u,U.ID):M.collisionIndex.insertCollisionBox(t.box,D.get(\"text-ignore-placement\"),L.bucketInstanceId,l,U.ID)),e&&s&&M.collisionIndex.insertCollisionBox(s.box,D.get(\"icon-ignore-placement\"),L.bucketInstanceId,c,U.ID),f&&r&&M.collisionIndex.insertCollisionCircles(r.circles,D.get(\"text-ignore-placement\"),L.bucketInstanceId,l,U.ID),M.placements[d.crossTileID]=new Vi(f||W,e||X,i||L.justReloaded),k[d.crossTileID]=!0}}if(!L.collisionArrays&&i&&L.deserializeCollisionBoxes(i),r)for(var o=L.getSortedSymbolIndexes(this.transform.angle),a=o.length-1;0<=a;--a){var s=o[a];n(L.symbolInstances.get(s),L.collisionArrays[s])}else for(var l=t.symbolInstanceStart;l<t.symbolInstanceEnd;l++)n(L.symbolInstances.get(l),L.collisionArrays[l]);L.justReloaded=!1},Wi.prototype.markUsedJustification=function(t,e,i,r){var n,o={left:i.leftJustifiedTextSymbolIndex,center:i.centerJustifiedTextSymbolIndex,right:i.rightJustifiedTextSymbolIndex};n=r===_t.WritingMode.vertical?i.verticalPlacedTextSymbolIndex:o[_t.getAnchorJustification(e)];for(var a=0,s=[i.leftJustifiedTextSymbolIndex,i.centerJustifiedTextSymbolIndex,i.rightJustifiedTextSymbolIndex,i.verticalPlacedTextSymbolIndex];a<s.length;a+=1){var l=s[a];0<=l&&(t.text.placedSymbolArray.get(l).crossTileID=0<=n&&l!==n?0:i.crossTileID)}},Wi.prototype.markUsedOrientation=function(t,e,i){for(var r=e===_t.WritingMode.horizontal||e===_t.WritingMode.horizontalOnly?e:0,n=e===_t.WritingMode.vertical?e:0,o=0,a=[i.leftJustifiedTextSymbolIndex,i.centerJustifiedTextSymbolIndex,i.rightJustifiedTextSymbolIndex];o<a.length;o+=1){var s=a[o];t.text.placedSymbolArray.get(s).placedOrientation=r}i.verticalPlacedTextSymbolIndex&&(t.text.placedSymbolArray.get(i.verticalPlacedTextSymbolIndex).placedOrientation=n)},Wi.prototype.commit=function(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;var e=this.prevPlacement,i=!1;this.prevZoomAdjustment=e?e.zoomAdjustment(this.transform.zoom):0;var r=e?e.symbolFadeChange(t):1,n=e?e.opacities:{},o=e?e.variableOffsets:{},a=e?e.placedOrientations:{};for(var s in this.placements){var l=this.placements[s],u=n[s];i=u?(this.opacities[s]=new qi(u,r,l.text,l.icon),i||l.text!==u.text.placed||l.icon!==u.icon.placed):(this.opacities[s]=new qi(null,r,l.text,l.icon,l.skipFade),i||l.text||l.icon)}for(var c in n){var p=n[c];if(!this.opacities[c]){var h=new qi(p,r,!1,!1);h.isHidden()||(this.opacities[c]=h,i=i||p.text.placed||p.icon.placed)}}for(var d in o)this.variableOffsets[d]||!this.opacities[d]||this.opacities[d].isHidden()||(this.variableOffsets[d]=o[d]);for(var f in a)this.placedOrientations[f]||!this.opacities[f]||this.opacities[f].isHidden()||(this.placedOrientations[f]=a[f]);i?this.lastPlacementChangeTime=t:\"number\"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=e?e.lastPlacementChangeTime:t)},Wi.prototype.updateLayerOpacities=function(t,e){for(var i={},r=0,n=e;r<n.length;r+=1){var o=n[r],a=o.getBucket(t);a&&o.latestFeatureIndex&&t.id===a.layerIds[0]&&this.updateBucketOpacities(a,i,o.collisionBoxArray)}},Wi.prototype.updateBucketOpacities=function(P,M,t){var L=this;P.hasTextData()&&P.text.opacityVertexArray.clear(),P.hasIconData()&&P.icon.opacityVertexArray.clear(),P.hasIconCollisionBoxData()&&P.iconCollisionBox.collisionVertexArray.clear(),P.hasTextCollisionBoxData()&&P.textCollisionBox.collisionVertexArray.clear(),P.hasIconCollisionCircleData()&&P.iconCollisionCircle.collisionVertexArray.clear(),P.hasTextCollisionCircleData()&&P.textCollisionCircle.collisionVertexArray.clear();var e=P.layers[0].layout,D=new qi(null,0,!1,!1,!0),i=e.get(\"text-allow-overlap\"),r=e.get(\"icon-allow-overlap\"),O=e.get(\"text-variable-anchor\"),z=\"map\"===e.get(\"text-rotation-alignment\"),R=\"map\"===e.get(\"text-pitch-alignment\"),N=\"none\"!==e.get(\"icon-text-fit\"),B=new qi(null,0,i&&(r||!P.hasIconData()||e.get(\"icon-optional\")),r&&(i||!P.hasTextData()||e.get(\"text-optional\")),!0);!P.collisionArrays&&t&&(P.hasIconCollisionBoxData()||P.hasIconCollisionCircleData()||P.hasTextCollisionBoxData()||P.hasTextCollisionCircleData())&&P.deserializeCollisionBoxes(t);for(var F=function(t,e,i){for(var r=0;r<e/4;r++)t.opacityVertexArray.emplaceBack(i)},n=function(t){var e=P.symbolInstances.get(t),i=e.numHorizontalGlyphVertices,r=e.numVerticalGlyphVertices,n=e.crossTileID,o=M[n],a=L.opacities[n];o?a=D:a||(a=B,L.opacities[n]=a),M[n]=!0;var s=0<i||0<r,l=0<e.numIconVertices,u=L.placedOrientations[e.crossTileID],c=u===_t.WritingMode.vertical,p=u===_t.WritingMode.horizontal||u===_t.WritingMode.horizontalOnly;if(s){var h=rr(a.text),d=c?or:h;F(P.text,i,d);var f=p?or:h;F(P.text,r,f);var m=a.text.isHidden();[e.rightJustifiedTextSymbolIndex,e.centerJustifiedTextSymbolIndex,e.leftJustifiedTextSymbolIndex].forEach(function(t){0<=t&&(P.text.placedSymbolArray.get(t).hidden=m||c?1:0)}),0<=e.verticalPlacedTextSymbolIndex&&(P.text.placedSymbolArray.get(e.verticalPlacedTextSymbolIndex).hidden=m||p?1:0);var g=L.variableOffsets[e.crossTileID];g&&L.markUsedJustification(P,g.anchor,e,u);var y=L.placedOrientations[e.crossTileID];y&&(L.markUsedJustification(P,\"left\",e,y),L.markUsedOrientation(P,y,e))}if(l){var v=rr(a.icon),_=!(N&&e.verticalPlacedIconSymbolIndex&&c);if(0<=e.placedIconSymbolIndex){var x=_?v:or;F(P.icon,e.numIconVertices,x),P.icon.placedSymbolArray.get(e.placedIconSymbolIndex).hidden=a.icon.isHidden()}if(0<=e.verticalPlacedIconSymbolIndex){var b=_?or:v;F(P.icon,e.numVerticalIconVertices,b),P.icon.placedSymbolArray.get(e.verticalPlacedIconSymbolIndex).hidden=a.icon.isHidden()}}if(P.hasIconCollisionBoxData()||P.hasIconCollisionCircleData()||P.hasTextCollisionBoxData()||P.hasTextCollisionCircleData()){var w=P.collisionArrays[t];if(w){var S=new _t.Point(0,0);if(w.textBox||w.verticalTextBox){var T=!0;if(O){var E=L.variableOffsets[n];E?(S=Hi(E.anchor,E.width,E.height,E.textOffset,E.textBoxScale),z&&S._rotate(R?L.transform.angle:-L.transform.angle)):T=!1}w.textBox&&Xi(P.textCollisionBox.collisionVertexArray,a.text.placed,!T||c,S.x,S.y),w.verticalTextBox&&Xi(P.textCollisionBox.collisionVertexArray,a.text.placed,!T||p,S.x,S.y)}var I=Boolean(!p&&w.verticalIconBox);w.iconBox&&Xi(P.iconCollisionBox.collisionVertexArray,a.icon.placed,I,N?S.x:0,N?S.y:0),w.verticalIconBox&&Xi(P.iconCollisionBox.collisionVertexArray,a.icon.placed,!I,N?S.x:0,N?S.y:0);var C=w.textCircles;if(C&&P.hasTextCollisionCircleData())for(var A=0;A<C.length;A+=5){var k=o||0===C[A+4];Xi(P.textCollisionCircle.collisionVertexArray,a.text.placed,k)}}}},o=0;o<P.symbolInstances.length;o++)n(o);P.sortFeatures(this.transform.angle),this.retainedQueryData[P.bucketInstanceId]&&(this.retainedQueryData[P.bucketInstanceId].featureSortOrder=P.featureSortOrder),P.hasTextData()&&P.text.opacityVertexBuffer&&P.text.opacityVertexBuffer.updateData(P.text.opacityVertexArray),P.hasIconData()&&P.icon.opacityVertexBuffer&&P.icon.opacityVertexBuffer.updateData(P.icon.opacityVertexArray),P.hasIconCollisionBoxData()&&P.iconCollisionBox.collisionVertexBuffer&&P.iconCollisionBox.collisionVertexBuffer.updateData(P.iconCollisionBox.collisionVertexArray),P.hasTextCollisionBoxData()&&P.textCollisionBox.collisionVertexBuffer&&P.textCollisionBox.collisionVertexBuffer.updateData(P.textCollisionBox.collisionVertexArray),P.hasIconCollisionCircleData()&&P.iconCollisionCircle.collisionVertexBuffer&&P.iconCollisionCircle.collisionVertexBuffer.updateData(P.iconCollisionCircle.collisionVertexArray),P.hasTextCollisionCircleData()&&P.textCollisionCircle.collisionVertexBuffer&&P.textCollisionCircle.collisionVertexBuffer.updateData(P.textCollisionCircle.collisionVertexArray)},Wi.prototype.symbolFadeChange=function(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment},Wi.prototype.zoomAdjustment=function(t){return Math.max(0,(this.transform.zoom-t)/1.5)},Wi.prototype.hasTransitions=function(t){return this.stale||t-this.lastPlacementChangeTime<this.fadeDuration},Wi.prototype.stillRecent=function(t,e){var i=this.zoomAtLastRecencyCheck===e?1-this.zoomAdjustment(e):1;return this.zoomAtLastRecencyCheck=e,this.commitTime+this.fadeDuration*i>t},Wi.prototype.setStale=function(){this.stale=!0};var Yi=Math.pow(2,25),Ji=Math.pow(2,24),Qi=Math.pow(2,17),$i=Math.pow(2,16),tr=Math.pow(2,9),er=Math.pow(2,8),ir=Math.pow(2,1);function rr(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*Yi+e*Ji+i*Qi+e*$i+i*tr+e*er+i*ir+e}function nr(t){this._sortAcrossTiles=\"viewport-y\"!==t.layout.get(\"symbol-z-order\")&&void 0!==t.layout.get(\"symbol-sort-key\").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}var or=0;function ar(t,e,i,r,n,o,a){this.placement=new Wi(t,n,o,a),this._currentPlacementIndex=e.length-1,this._forceFullPlacement=i,this._showCollisionBoxes=r,this._done=!1}function sr(t,e,i){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=i;for(var r=0;r<e.length;r++){var n=e.get(r),o=n.key;this.indexedSymbolInstances[o]||(this.indexedSymbolInstances[o]=[]),this.indexedSymbolInstances[o].push({crossTileID:n.crossTileID,coord:this.getScaledCoordinates(n,t)})}}nr.prototype.continuePlacement=function(t,e,i,r,n){for(var o=this._bucketParts;this._currentTileIndex<t.length;){var a=t[this._currentTileIndex];if(e.getBucketParts(o,r,a,this._sortAcrossTiles),this._currentTileIndex++,n())return!0}for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,o.sort(function(t,e){return t.sortKey-e.sortKey}));this._currentPartIndex<o.length;){var s=o[this._currentPartIndex];if(e.placeLayerBucketPart(s,this._seenCrossTileIDs,i),this._currentPartIndex++,n())return!0}return!1},ar.prototype.isDone=function(){return this._done},ar.prototype.continuePlacement=function(t,e,i){for(var r=this,n=_t.browser.now(),o=function(){var t=_t.browser.now()-n;return!r._forceFullPlacement&&2<t};0<=this._currentPlacementIndex;){var a=e[t[this._currentPlacementIndex]],s=this.placement.collisionIndex.transform.zoom;if(\"symbol\"===a.type&&(!a.minzoom||a.minzoom<=s)&&(!a.maxzoom||a.maxzoom>s)){if(this._inProgressLayer||(this._inProgressLayer=new nr(a)),this._inProgressLayer.continuePlacement(i[a.source],this.placement,this._showCollisionBoxes,a,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},ar.prototype.commit=function(t){return this.placement.commit(t),this.placement};var lr=512/_t.EXTENT/2;function ur(){this.maxCrossTileID=0}function cr(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}function pr(){this.layerIndexes={},this.crossTileIDs=new ur,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}function hr(t,e){return _t.emitValidationErrors(t,e&&e.filter(function(t){return\"source.canvas\"!==t.identifier}))}sr.prototype.getScaledCoordinates=function(t,e){var i=e.canonical.z-this.tileID.canonical.z,r=lr/Math.pow(2,i);return{x:Math.floor((e.canonical.x*_t.EXTENT+t.anchorX)*r),y:Math.floor((e.canonical.y*_t.EXTENT+t.anchorY)*r)}},sr.prototype.findMatches=function(t,e,i){for(var r=this.tileID.canonical.z<e.canonical.z?1:Math.pow(2,this.tileID.canonical.z-e.canonical.z),n=0;n<t.length;n++){var o=t.get(n);if(!o.crossTileID){var a=this.indexedSymbolInstances[o.key];if(a)for(var s=this.getScaledCoordinates(o,e),l=0,u=a;l<u.length;l+=1){var c=u[l];if(Math.abs(c.coord.x-s.x)<=r&&Math.abs(c.coord.y-s.y)<=r&&!i[c.crossTileID]){i[c.crossTileID]=!0,o.crossTileID=c.crossTileID;break}}}}},ur.prototype.generate=function(){return++this.maxCrossTileID},cr.prototype.handleWrapJump=function(t){var e=Math.round((t-this.lng)/360);if(0!==e)for(var i in this.indexes){var r=this.indexes[i],n={};for(var o in r){var a=r[o];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+e),n[a.tileID.key]=a}this.indexes[i]=n}this.lng=t},cr.prototype.addBucket=function(t,e,i){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(var r=0;r<e.symbolInstances.length;r++)e.symbolInstances.get(r).crossTileID=0;this.usedCrossTileIDs[t.overscaledZ]||(this.usedCrossTileIDs[t.overscaledZ]={});var n=this.usedCrossTileIDs[t.overscaledZ];for(var o in this.indexes){var a=this.indexes[o];if(Number(o)>t.overscaledZ)for(var s in a){var l=a[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,n)}else{var u=a[t.scaledTo(Number(o)).key];u&&u.findMatches(e.symbolInstances,t,n)}}for(var c=0;c<e.symbolInstances.length;c++){var p=e.symbolInstances.get(c);p.crossTileID||(p.crossTileID=i.generate(),n[p.crossTileID]=!0)}return void 0===this.indexes[t.overscaledZ]&&(this.indexes[t.overscaledZ]={}),this.indexes[t.overscaledZ][t.key]=new sr(t,e.symbolInstances,e.bucketInstanceId),!0},cr.prototype.removeBucketCrossTileIDs=function(t,e){for(var i in e.indexedSymbolInstances)for(var r=0,n=e.indexedSymbolInstances[i];r<n.length;r+=1){var o=n[r];delete this.usedCrossTileIDs[t][o.crossTileID]}},cr.prototype.removeStaleBuckets=function(t){var e=!1;for(var i in this.indexes){var r=this.indexes[i];for(var n in r)t[r[n].bucketInstanceId]||(this.removeBucketCrossTileIDs(i,r[n]),delete r[n],e=!0)}return e},pr.prototype.addLayer=function(t,e,i){var r=this.layerIndexes[t.id];void 0===r&&(r=this.layerIndexes[t.id]=new cr);var n=!1,o={};r.handleWrapJump(i);for(var a=0,s=e;a<s.length;a+=1){var l=s[a],u=l.getBucket(t);u&&t.id===u.layerIds[0]&&(u.bucketInstanceId||(u.bucketInstanceId=++this.maxBucketInstanceId),r.addBucket(l.tileID,u,this.crossTileIDs)&&(n=!0),o[u.bucketInstanceId]=!0)}return r.removeStaleBuckets(o)&&(n=!0),n},pr.prototype.pruneUnusedLayers=function(t){var e={};for(var i in t.forEach(function(t){e[t]=!0}),this.layerIndexes)e[i]||delete this.layerIndexes[i]};var dr,fr=_t.pick(yi,[\"addLayer\",\"removeLayer\",\"setPaintProperty\",\"setLayoutProperty\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\"]),mr=_t.pick(yi,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),gr=function(){var t={},e=_t.styleSpec.$version;for(var i in _t.styleSpec.$root){var r,n=_t.styleSpec.$root[i];if(n.required)null!=(r=\"version\"===i?e:\"array\"===n.type?[]:{})&&(t[i]=r)}return t}(),yr=((dr=_t.Evented)&&(vr.__proto__=dr),((vr.prototype=Object.create(dr&&dr.prototype)).constructor=vr).prototype.loadURL=function(t,e){var i=this;void 0===e&&(e={}),this.fire(new _t.Event(\"dataloading\",{dataType:\"style\"}));var r=\"boolean\"==typeof e.validate?e.validate:!_t.isMapboxURL(t);t=this.map._requestManager.normalizeStyleURL(t,e.accessToken);var n=this.map._requestManager.transformRequest(t,_t.ResourceType.Style);this._request=_t.getJSON(n,function(t,e){i._request=null,t?i.fire(new _t.ErrorEvent(t)):e&&i._load(e,r)})},vr.prototype.loadJSON=function(t,e){var i=this;void 0===e&&(e={}),this.fire(new _t.Event(\"dataloading\",{dataType:\"style\"})),this._request=_t.browser.frame(function(){i._request=null,i._load(t,!1!==e.validate)})},vr.prototype.loadEmpty=function(){this.fire(new _t.Event(\"dataloading\",{dataType:\"style\"})),this._load(gr,!1)},vr.prototype._load=function(t,e){if(!e||!hr(this,_t.validateStyle(t))){for(var i in this._loaded=!0,(this.stylesheet=t).sources)this.addSource(i,t.sources[i],{validate:!1});t.sprite?this._loadSprite(t.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(t.glyphs);var r=gi(this.stylesheet.layers);this._order=r.map(function(t){return t.id}),this._layers={};for(var n=0,o=r;n<o.length;n+=1){var a=o[n];(a=_t.createStyleLayer(a)).setEventedParent(this,{layer:{id:a.id}}),this._layers[a.id]=a}this.dispatcher.broadcast(\"setLayers\",this._serializeLayers(this._order)),this.light=new T(this.stylesheet.light),this.fire(new _t.Event(\"data\",{dataType:\"style\"})),this.fire(new _t.Event(\"style.load\"))}},vr.prototype._loadSprite=function(t){var e,i,f,m,g,y,r,n,o,a=this;function s(){if(y)f(y);else if(m&&g){var t=_t.browser.getImageData(g),e={};for(var i in m){var r=m[i],n=r.width,o=r.height,a=r.x,s=r.y,l=r.sdf,u=r.pixelRatio,c=r.stretchX,p=r.stretchY,h=r.content,d=new _t.RGBAImage({width:n,height:o});_t.RGBAImage.copy(t,d,{x:a,y:s},{x:0,y:0},{width:n,height:o}),e[i]={data:d,pixelRatio:u,sdf:l,stretchX:c,stretchY:p,content:h}}f(null,e)}}this._spriteRequest=(e=t,i=this.map._requestManager,f=function(t,e){if(a._spriteRequest=null,t)a.fire(new _t.ErrorEvent(t));else if(e)for(var i in e)a.imageManager.addImage(i,e[i]);a.imageManager.setLoaded(!0),a.dispatcher.broadcast(\"setImages\",a.imageManager.listImages()),a.fire(new _t.Event(\"data\",{dataType:\"style\"}))},r=1<_t.browser.devicePixelRatio?\"@2x\":\"\",n=_t.getJSON(i.transformRequest(i.normalizeSpriteURL(e,r,\".json\"),_t.ResourceType.SpriteJSON),function(t,e){n=null,y||(y=t,m=e,s())}),o=_t.getImage(i.transformRequest(i.normalizeSpriteURL(e,r,\".png\"),_t.ResourceType.SpriteImage),function(t,e){o=null,y||(y=t,g=e,s())}),{cancel:function(){n&&(n.cancel(),n=null),o&&(o.cancel(),o=null)}})},vr.prototype._validateLayer=function(t){var e=this.sourceCaches[t.source];if(e){var i=t.sourceLayer;if(i){var r=e.getSource();(\"geojson\"===r.type||r.vectorLayerIds&&-1===r.vectorLayerIds.indexOf(i))&&this.fire(new _t.ErrorEvent(new Error('Source layer \"'+i+'\" does not exist on source \"'+r.id+'\" as specified by style layer \"'+t.id+'\"')))}}},vr.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},vr.prototype._serializeLayers=function(t){for(var e=[],i=0,r=t;i<r.length;i+=1){var n=r[i],o=this._layers[n];\"custom\"!==o.type&&e.push(o.serialize())}return e},vr.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return!0;for(var t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return!0;for(var e in this._layers)if(this._layers[e].hasTransition())return!0;return!1},vr.prototype._checkLoaded=function(){if(!this._loaded)throw new Error(\"Style is not done loading\")},vr.prototype.update=function(t){if(this._loaded){var e=this._changed;if(this._changed){var i=Object.keys(this._updatedLayers),r=Object.keys(this._removedLayers);for(var n in(i.length||r.length)&&this._updateWorkerLayers(i,r),this._updatedSources){var o=this._updatedSources[n];\"reload\"===o?this._reloadSource(n):\"clear\"===o&&this._clearSource(n)}for(var a in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[a].updateTransitions(t);this.light.updateTransitions(t),this._resetUpdates()}for(var s in this.sourceCaches)this.sourceCaches[s].used=!1;for(var l=this.imageManager.listImages(),u=0,c=this._order;u<c.length;u+=1){var p=c[u],h=this._layers[p];h.recalculate(t,l),!h.isHidden(t.zoom)&&h.source&&(this.sourceCaches[h.source].used=!0)}this.light.recalculate(t),this.z=t.zoom,e&&this.fire(new _t.Event(\"data\",{dataType:\"style\"}))}},vr.prototype._updateTilesForChangedImages=function(){var t=Object.keys(this._changedImages);if(t.length){for(var e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies([\"icons\",\"patterns\"],t);this._changedImages={}}},vr.prototype._updateWorkerLayers=function(t,e){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeLayers(t),removedIds:e})},vr.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}},vr.prototype.setState=function(t){var e=this;if(this._checkLoaded(),hr(this,_t.validateStyle(t)))return!1;(t=_t.clone$1(t)).layers=gi(t.layers);var i=Ti(this.serialize(),t).filter(function(t){return!(t.command in mr)});if(0===i.length)return!1;var r=i.filter(function(t){return!(t.command in fr)});if(0<r.length)throw new Error(\"Unimplemented: \"+r.map(function(t){return t.command}).join(\", \")+\".\");return i.forEach(function(t){\"setTransition\"!==t.command&&e[t.command].apply(e,t.args)}),this.stylesheet=t,!0},vr.prototype.addImage=function(t,e){if(this.getImage(t))return this.fire(new _t.ErrorEvent(new Error(\"An image with this name already exists.\")));this.imageManager.addImage(t,e),this._changedImages[t]=!0,this._changed=!0,this.fire(new _t.Event(\"data\",{dataType:\"style\"}))},vr.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},vr.prototype.getImage=function(t){return this.imageManager.getImage(t)},vr.prototype.removeImage=function(t){if(!this.getImage(t))return this.fire(new _t.ErrorEvent(new Error(\"No image with this name exists.\")));this.imageManager.removeImage(t),this._changedImages[t]=!0,this._changed=!0,this.fire(new _t.Event(\"data\",{dataType:\"style\"}))},vr.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},vr.prototype.addSource=function(t,e,i){var r=this;if(void 0===i&&(i={}),this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error(\"There is already a source with this ID\");if(!e.type)throw new Error(\"The type property must be defined, but the only the following properties were given: \"+Object.keys(e).join(\", \")+\".\");if(!(0<=[\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(e.type)&&this._validate(_t.validateStyle.source,\"sources.\"+t,e,null,i))){this.map&&this.map._collectResourceTiming&&(e.collectResourceTiming=!0);var n=this.sourceCaches[t]=new si(t,e,this.dispatcher);n.style=this,n.setEventedParent(this,function(){return{isSourceLoaded:r.loaded(),source:n.serialize(),sourceId:t}}),n.onAdd(this.map),this._changed=!0}},vr.prototype.removeSource=function(t){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error(\"There is no source with this ID\");for(var e in this._layers)if(this._layers[e].source===t)return this.fire(new _t.ErrorEvent(new Error('Source \"'+t+'\" cannot be removed while layer \"'+e+'\" is using it.')));var i=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],i.fire(new _t.Event(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:t})),i.setEventedParent(null),i.clearTiles(),i.onRemove&&i.onRemove(this.map),this._changed=!0},vr.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},vr.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},vr.prototype.addLayer=function(t,e,i){void 0===i&&(i={}),this._checkLoaded();var r=t.id;if(this.getLayer(r))this.fire(new _t.ErrorEvent(new Error('Layer with id \"'+r+'\" already exists on this map')));else{var n;if(\"custom\"===t.type){if(hr(this,_t.validateCustomStyleLayer(t)))return;n=_t.createStyleLayer(t)}else{if(\"object\"==typeof t.source&&(this.addSource(r,t.source),t=_t.clone$1(t),t=_t.extend(t,{source:r})),this._validate(_t.validateStyle.layer,\"layers.\"+r,t,{arrayIndex:-1},i))return;n=_t.createStyleLayer(t),this._validateLayer(n),n.setEventedParent(this,{layer:{id:r}})}var o=e?this._order.indexOf(e):this._order.length;if(e&&-1===o)this.fire(new _t.ErrorEvent(new Error('Layer with id \"'+e+'\" does not exist on this map.')));else{if(this._order.splice(o,0,r),this._layerOrderChanged=!0,this._layers[r]=n,this._removedLayers[r]&&n.source&&\"custom\"!==n.type){var a=this._removedLayers[r];delete this._removedLayers[r],a.type!==n.type?this._updatedSources[n.source]=\"clear\":(this._updatedSources[n.source]=\"reload\",this.sourceCaches[n.source].pause())}this._updateLayer(n),n.onAdd&&n.onAdd(this.map)}}},vr.prototype.moveLayer=function(t,e){if(this._checkLoaded(),this._changed=!0,this._layers[t]){if(t!==e){var i=this._order.indexOf(t);this._order.splice(i,1);var r=e?this._order.indexOf(e):this._order.length;e&&-1===r?this.fire(new _t.ErrorEvent(new Error('Layer with id \"'+e+'\" does not exist on this map.'))):(this._order.splice(r,0,t),this._layerOrderChanged=!0)}}else this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style and cannot be moved.\")))},vr.prototype.removeLayer=function(t){this._checkLoaded();var e=this._layers[t];if(e){e.setEventedParent(null);var i=this._order.indexOf(t);this._order.splice(i,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=e,delete this._layers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],e.onRemove&&e.onRemove(this.map)}else this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style and cannot be removed.\")))},vr.prototype.getLayer=function(t){return this._layers[t]},vr.prototype.setLayerZoomRange=function(t,e,i){this._checkLoaded();var r=this.getLayer(t);r?r.minzoom===e&&r.maxzoom===i||(null!=e&&(r.minzoom=e),null!=i&&(r.maxzoom=i),this._updateLayer(r)):this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style and cannot have zoom extent.\")))},vr.prototype.setFilter=function(t,e,i){void 0===i&&(i={}),this._checkLoaded();var r=this.getLayer(t);if(r){if(!_t.deepEqual(r.filter,e))return null==e?(r.filter=void 0,void this._updateLayer(r)):void(this._validate(_t.validateStyle.filter,\"layers.\"+r.id+\".filter\",e,null,i)||(r.filter=_t.clone$1(e),this._updateLayer(r)))}else this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style and cannot be filtered.\")))},vr.prototype.getFilter=function(t){return _t.clone$1(this.getLayer(t).filter)},vr.prototype.setLayoutProperty=function(t,e,i,r){void 0===r&&(r={}),this._checkLoaded();var n=this.getLayer(t);n?_t.deepEqual(n.getLayoutProperty(e),i)||(n.setLayoutProperty(e,i,r),this._updateLayer(n)):this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style and cannot be styled.\")))},vr.prototype.getLayoutProperty=function(t,e){var i=this.getLayer(t);if(i)return i.getLayoutProperty(e);this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style.\")))},vr.prototype.setPaintProperty=function(t,e,i,r){void 0===r&&(r={}),this._checkLoaded();var n=this.getLayer(t);n?_t.deepEqual(n.getPaintProperty(e),i)||(n.setPaintProperty(e,i,r)&&this._updateLayer(n),this._changed=!0,this._updatedPaintProps[t]=!0):this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+t+\"' does not exist in the map's style and cannot be styled.\")))},vr.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},vr.prototype.setFeatureState=function(t,e){this._checkLoaded();var i=t.source,r=t.sourceLayer,n=this.sourceCaches[i];if(void 0!==n){var o=n.getSource().type;\"geojson\"===o&&r?this.fire(new _t.ErrorEvent(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):\"vector\"!==o||r?(void 0===t.id&&this.fire(new _t.ErrorEvent(new Error(\"The feature id parameter must be provided.\"))),n.setFeatureState(r,t.id,e)):this.fire(new _t.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}else this.fire(new _t.ErrorEvent(new Error(\"The source '\"+i+\"' does not exist in the map's style.\")))},vr.prototype.removeFeatureState=function(t,e){this._checkLoaded();var i=t.source,r=this.sourceCaches[i];if(void 0!==r){var n=r.getSource().type,o=\"vector\"===n?t.sourceLayer:void 0;\"vector\"!==n||o?e&&\"string\"!=typeof t.id&&\"number\"!=typeof t.id?this.fire(new _t.ErrorEvent(new Error(\"A feature id is requred to remove its specific state property.\"))):r.removeFeatureState(o,t.id,e):this.fire(new _t.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}else this.fire(new _t.ErrorEvent(new Error(\"The source '\"+i+\"' does not exist in the map's style.\")))},vr.prototype.getFeatureState=function(t){this._checkLoaded();var e=t.source,i=t.sourceLayer,r=this.sourceCaches[e];if(void 0!==r){if(\"vector\"!==r.getSource().type||i)return void 0===t.id&&this.fire(new _t.ErrorEvent(new Error(\"The feature id parameter must be provided.\"))),r.getFeatureState(i,t.id);this.fire(new _t.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}else this.fire(new _t.ErrorEvent(new Error(\"The source '\"+e+\"' does not exist in the map's style.\")))},vr.prototype.getTransition=function(){return _t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},vr.prototype.serialize=function(){return _t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:_t.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._serializeLayers(this._order)},function(t){return void 0!==t})},vr.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&\"raster\"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]=\"reload\",this.sourceCaches[t.source].pause()),this._changed=!0},vr.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,i=function(t){return\"fill-extrusion\"===e._layers[t].type},r={},n=[],o=this._order.length-1;0<=o;o--){var a=this._order[o];if(i(a)){r[a]=o;for(var s=0,l=t;s<l.length;s+=1){var u=l[s][a];if(u)for(var c=0,p=u;c<p.length;c+=1){var h=p[c];n.push(h)}}}}n.sort(function(t,e){return e.intersectionZ-t.intersectionZ});for(var d=[],f=this._order.length-1;0<=f;f--){var m=this._order[f];if(i(m))for(var g=n.length-1;0<=g;g--){var y=n[g].feature;if(r[y.layer.id]<f)break;d.push(y),n.pop()}else for(var v=0,_=t;v<_.length;v+=1){var x=_[v][m];if(x)for(var b=0,w=x;b<w.length;b+=1){var S=w[b];d.push(S.feature)}}}return d},vr.prototype.queryRenderedFeatures=function(t,e,i){e&&e.filter&&this._validate(_t.validateStyle.filter,\"queryRenderedFeatures.filter\",e.filter,null,e);var r={};if(e&&e.layers){if(!Array.isArray(e.layers))return this.fire(new _t.ErrorEvent(new Error(\"parameters.layers must be an Array.\"))),[];for(var n=0,o=e.layers;n<o.length;n+=1){var a=o[n],s=this._layers[a];if(!s)return this.fire(new _t.ErrorEvent(new Error(\"The layer '\"+a+\"' does not exist in the map's style and cannot be queried for features.\"))),[];r[s.source]=!0}}var l=[];for(var u in this.sourceCaches)e.layers&&!r[u]||l.push(Q(this.sourceCaches[u],this._layers,t,e,i));return this.placement&&l.push(function(l,o,t,u,e,i){for(var c={},p=e.queryRenderedSymbols(t),r=[],n=0,a=Object.keys(p).map(Number);n<a.length;n+=1){var s=a[n];r.push(i[s])}r.sort($);for(var h=function(){var n=f[d],t=n.featureIndex.lookupSymbolFeatures(p[n.bucketInstanceId],n.bucketIndex,n.sourceLayerIndex,u.filter,u.layers,l);for(var e in t){var i=c[e]=c[e]||[],r=t[e];r.sort(function(t,e){var i=n.featureSortOrder;if(i){var r=i.indexOf(t.featureIndex);return i.indexOf(e.featureIndex)-r}return e.featureIndex-t.featureIndex});for(var o=0,a=r;o<a.length;o+=1){var s=a[o];i.push(s)}}},d=0,f=r;d<f.length;d+=1)h();function m(n){c[n].forEach(function(t){var e=t.feature,i=l[n],r=o[i.source].getFeatureState(e.layer[\"source-layer\"],e.id);e.source=e.layer.source,e.layer[\"source-layer\"]&&(e.sourceLayer=e.layer[\"source-layer\"]),e.state=r})}for(var g in c)m(g);return c}(this._layers,this.sourceCaches,t,e,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(l)},vr.prototype.querySourceFeatures=function(t,e){e&&e.filter&&this._validate(_t.validateStyle.filter,\"querySourceFeatures.filter\",e.filter,null,e);var i=this.sourceCaches[t];return i?function(e,t){for(var i=e.getRenderableIds().map(function(t){return e.getTileByID(t)}),r=[],n={},o=0;o<i.length;o++){var a=i[o],s=a.tileID.canonical.key;n[s]||(n[s]=!0,a.querySourceFeatures(r,t))}return r}(i,e):[]},vr.prototype.addSourceType=function(t,e,i){return vr.getSourceType(t)?i(new Error('A source type called \"'+t+'\" already exists.')):(vr.setSourceType(t,e),e.workerSourceURL?void this.dispatcher.broadcast(\"loadWorkerSource\",{name:t,url:e.workerSourceURL},i):i(null,null))},vr.prototype.getLight=function(){return this.light.getLight()},vr.prototype.setLight=function(t,e){void 0===e&&(e={}),this._checkLoaded();var i=this.light.getLight(),r=!1;for(var n in t)if(!_t.deepEqual(t[n],i[n])){r=!0;break}if(r){var o={now:_t.browser.now(),transition:_t.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(t,e),this.light.updateTransitions(o)}},vr.prototype._validate=function(t,e,i,r,n){return void 0===n&&(n={}),(!n||!1!==n.validate)&&hr(this,t.call(_t.validateStyle,_t.extend({key:e,style:this.serialize(),value:i,styleSpec:_t.styleSpec},r)))},vr.prototype._remove=function(){for(var t in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),_t.evented.off(\"pluginStateChange\",this._rtlTextPluginCallback),this._layers)this._layers[t].setEventedParent(null);for(var e in this.sourceCaches)this.sourceCaches[e].clearTiles(),this.sourceCaches[e].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()},vr.prototype._clearSource=function(t){this.sourceCaches[t].clearTiles()},vr.prototype._reloadSource=function(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload()},vr.prototype._updateSources=function(t){for(var e in this.sourceCaches)this.sourceCaches[e].update(t)},vr.prototype._generateCollisionBoxes=function(){for(var t in this.sourceCaches)this._reloadSource(t)},vr.prototype._updatePlacement=function(t,e,i,r,n){void 0===n&&(n=!1);for(var o=!1,a=!1,s={},l=0,u=this._order;l<u.length;l+=1){var c=u[l],p=this._layers[c];if(\"symbol\"===p.type){if(!s[p.source]){var h=this.sourceCaches[p.source];s[p.source]=h.getRenderableIds(!0).map(function(t){return h.getTileByID(t)}).sort(function(t,e){return e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)})}var d=this.crossTileSymbolIndex.addLayer(p,s[p.source],t.center.lng);o=o||d}}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((n=n||this._layerOrderChanged||0===i)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(_t.browser.now(),t.zoom))&&(this.pauseablePlacement=new ar(t,this._order,n,e,i,r,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,s),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(_t.browser.now()),a=!0),o&&this.pauseablePlacement.placement.setStale()),a||o)for(var f=0,m=this._order;f<m.length;f+=1){var g=m[f],y=this._layers[g];\"symbol\"===y.type&&this.placement.updateLayerOpacities(y,s[y.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(_t.browser.now())},vr.prototype._releaseSymbolFadeTiles=function(){for(var t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles()},vr.prototype.getImages=function(t,e,i){this.imageManager.getImages(e.icons,i),this._updateTilesForChangedImages();var r=this.sourceCaches[e.source];r&&r.setDependencies(e.tileID.key,e.type,e.icons)},vr.prototype.getGlyphs=function(t,e,i){this.glyphManager.getGlyphs(e.stacks,i)},vr.prototype.getResource=function(t,e,i){return _t.makeRequest(e,i)},vr);function vr(t,e){var o=this;void 0===e&&(e={}),dr.call(this),this.map=t,this.dispatcher=new I(di=di||new hi,this),this.imageManager=new c,this.imageManager.setEventedParent(this),this.glyphManager=new v(t._requestManager,e.localIdeographFontFamily),this.lineAtlas=new b(256,512),this.crossTileSymbolIndex=new pr,this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new _t.ZoomHistory,this._loaded=!1,this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",_t.getReferrer());var r=this;this._rtlTextPluginCallback=vr.registerForPluginStateChange(function(t){var e={pluginStatus:t.pluginStatus,pluginURL:t.pluginURL};r.dispatcher.broadcast(\"syncRTLPluginState\",e,function(t,e){if(_t.triggerPluginCompletionEvent(t),e&&e.every(function(t){return t}))for(var i in r.sourceCaches)r.sourceCaches[i].reload()})}),this.on(\"data\",function(t){if(\"source\"===t.dataType&&\"metadata\"===t.sourceDataType){var e=o.sourceCaches[t.sourceId];if(e){var i=e.getSource();if(i&&i.vectorLayerIds)for(var r in o._layers){var n=o._layers[r];n.source===i.id&&o._validateLayer(n)}}}})}yr.getSourceType=function(t){return X[t]},yr.setSourceType=function(t,e){X[t]=e},yr.registerForPluginStateChange=_t.registerForPluginStateChange;var _r=_t.createLayout([{name:\"a_pos\",type:\"Int16\",components:2}]),xr=Hr(\"#ifdef GL_ES\\nprecision mediump float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\",\"#ifdef GL_ES\\nprecision highp float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\"),br=Hr(\"uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),wr=Hr(\"uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"),Sr=Hr(\"varying vec3 v_data;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}\"),Tr=Hr(\"void main() {gl_FragColor=vec4(1.0);}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),Er=Hr(\"uniform highp float u_intensity;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}\"),Ir=Hr(\"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(0.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"),Cr=Hr(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\"),Ar=Hr(\"uniform float u_overscale_factor;varying float v_placed;varying float v_notUsed;varying float v_radius;varying vec2 v_extrude;varying vec2 v_extrude_scale;void main() {float alpha=0.5;vec4 color=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {color=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {color*=.2;}float extrude_scale_length=length(v_extrude_scale);float extrude_length=length(v_extrude)*extrude_scale_length;float stroke_width=15.0*extrude_scale_length/u_overscale_factor;float radius=v_radius*extrude_scale_length;float distance_to_edge=abs(extrude_length-radius);float opacity_t=smoothstep(-stroke_width,0.0,-distance_to_edge);gl_FragColor=opacity_t*color;}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;varying float v_radius;varying vec2 v_extrude;varying vec2 v_extrude_scale;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);highp float padding_factor=1.2;gl_Position.xy+=a_extrude*u_extrude_scale*padding_factor*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;v_radius=abs(a_extrude.y);v_extrude=a_extrude*padding_factor;v_extrude_scale=u_extrude_scale*u_camera_to_center_distance*collision_perspective_ratio;}\"),kr=Hr(\"uniform highp vec4 u_color;void main() {gl_FragColor=u_color;}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),Pr=Hr(\"#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_FragColor=color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);}\"),Mr=Hr(\"varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"),Lr=Hr(\"uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec4 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float pixelRatio=u_scale.x;float tileRatio=u_scale.y;float fromScale=u_scale.z;float toScale=u_scale.w;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=vec2((pattern_br_a.x-pattern_tl_a.x)/pixelRatio,(pattern_br_a.y-pattern_tl_a.y)/pixelRatio);vec2 display_size_b=vec2((pattern_br_b.x-pattern_tl_b.x)/pixelRatio,(pattern_br_b.y-pattern_tl_b.y)/pixelRatio);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"),Dr=Hr(\"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec4 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float pixelRatio=u_scale.x;float tileZoomRatio=u_scale.y;float fromScale=u_scale.z;float toScale=u_scale.w;vec2 display_size_a=vec2((pattern_br_a.x-pattern_tl_a.x)/pixelRatio,(pattern_br_a.y-pattern_tl_a.y)/pixelRatio);vec2 display_size_b=vec2((pattern_br_b.x-pattern_tl_b.x)/pixelRatio,(pattern_br_b.y-pattern_tl_b.y)/pixelRatio);gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}\"),Or=Hr(\"varying vec4 v_color;void main() {gl_FragColor=v_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}\"),zr=Hr(\"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec4 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float pixelRatio=u_scale.x;float tileRatio=u_scale.y;float fromScale=u_scale.z;float toScale=u_scale.w;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=vec2((pattern_br_a.x-pattern_tl_a.x)/pixelRatio,(pattern_br_a.y-pattern_tl_a.y)/pixelRatio);vec2 display_size_b=vec2((pattern_br_b.x-pattern_tl_b.x)/pixelRatio,(pattern_br_b.y-pattern_tl_b.y)/pixelRatio);base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\\n? a_pos\\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}\"),Rr=Hr(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),Nr=Hr(\"uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\\n#define PI 3.141592653589793\\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"),Br=Hr(\"uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}\"),Fr=Hr(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define MAX_LINE_DISTANCE 32767.0\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}\"),Ur=Hr(\"uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec4 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float pixelRatio=u_scale.x;float tileZoomRatio=u_scale.y;float fromScale=u_scale.z;float toScale=u_scale.w;vec2 display_size_a=vec2((pattern_br_a.x-pattern_tl_a.x)/pixelRatio,(pattern_br_a.y-pattern_tl_a.y)/pixelRatio);vec2 display_size_b=vec2((pattern_br_b.x-pattern_tl_b.x)/pixelRatio,(pattern_br_b.y-pattern_tl_b.y)/pixelRatio);vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x,1.0);float x_b=mod(v_linesofar/pattern_size_b.x,1.0);float y_a=0.5+(v_normal.y*clamp(v_width2.s,0.0,(pattern_size_a.y+2.0)/2.0)/pattern_size_a.y);float y_b=0.5+(v_normal.y*clamp(v_width2.s,0.0,(pattern_size_b.y+2.0)/2.0)/pattern_size_b.y);vec2 pos_a=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,vec2(x_a,y_a));vec2 pos_b=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,vec2(x_b,y_b));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);}\"),jr=Hr(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}\"),qr=Hr(\"uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"),Vr=Hr(\"uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}\"),Gr=Hr(\"#define SDF_PX 8.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}\"),Zr=Hr(\"#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}\");function Hr(t,e){var i=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,s={};return{fragmentSource:t=t.replace(i,function(t,e,i,r,n){return s[n]=!0,\"define\"===e?\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\nvarying \"+i+\" \"+r+\" \"+n+\";\\n#else\\nuniform \"+i+\" \"+r+\" u_\"+n+\";\\n#endif\\n\":\"\\n#ifdef HAS_UNIFORM_u_\"+n+\"\\n \"+i+\" \"+r+\" \"+n+\" = u_\"+n+\";\\n#endif\\n\"}),vertexSource:e=e.replace(i,function(t,e,i,r,n){var o=\"float\"===r?\"vec2\":\"vec4\",a=n.match(/color/)?\"color\":o;return s[n]?\"define\"===e?\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\nuniform lowp float u_\"+n+\"_t;\\nattribute \"+i+\" \"+o+\" a_\"+n+\";\\nvarying \"+i+\" \"+r+\" \"+n+\";\\n#else\\nuniform \"+i+\" \"+r+\" u_\"+n+\";\\n#endif\\n\":\"vec4\"==a?\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\n \"+n+\" = a_\"+n+\";\\n#else\\n \"+i+\" \"+r+\" \"+n+\" = u_\"+n+\";\\n#endif\\n\":\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\n \"+n+\" = unpack_mix_\"+a+\"(a_\"+n+\", u_\"+n+\"_t);\\n#else\\n \"+i+\" \"+r+\" \"+n+\" = u_\"+n+\";\\n#endif\\n\":\"define\"===e?\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\nuniform lowp float u_\"+n+\"_t;\\nattribute \"+i+\" \"+o+\" a_\"+n+\";\\n#else\\nuniform \"+i+\" \"+r+\" u_\"+n+\";\\n#endif\\n\":\"vec4\"==a?\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\n \"+i+\" \"+r+\" \"+n+\" = a_\"+n+\";\\n#else\\n \"+i+\" \"+r+\" \"+n+\" = u_\"+n+\";\\n#endif\\n\":\"\\n#ifndef HAS_UNIFORM_u_\"+n+\"\\n \"+i+\" \"+r+\" \"+n+\" = unpack_mix_\"+a+\"(a_\"+n+\", u_\"+n+\"_t);\\n#else\\n \"+i+\" \"+r+\" \"+n+\" = u_\"+n+\";\\n#endif\\n\"})}}function Kr(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}var Wr=Object.freeze({__proto__:null,prelude:xr,background:br,backgroundPattern:wr,circle:Sr,clippingMask:Tr,heatmap:Er,heatmapTexture:Ir,collisionBox:Cr,collisionCircle:Ar,debug:kr,fill:Pr,fillOutline:Mr,fillOutlinePattern:Lr,fillPattern:Dr,fillExtrusion:Or,fillExtrusionPattern:zr,hillshadePrepare:Rr,hillshade:Nr,line:Br,lineGradient:Fr,linePattern:Ur,lineSDF:jr,raster:qr,symbolIcon:Vr,symbolSDF:Gr,symbolTextAndIcon:Zr});function Xr(t,e,i,r,n){var o=t.gl;this.program=o.createProgram();var a=i?i.defines():[];n&&a.push(\"#define OVERDRAW_INSPECTOR;\");var s=a.concat(xr.fragmentSource,e.fragmentSource).join(\"\\n\"),l=a.concat(xr.vertexSource,e.vertexSource).join(\"\\n\"),u=o.createShader(o.FRAGMENT_SHADER);if(o.isContextLost())this.failedToCreate=!0;else{o.shaderSource(u,s),o.compileShader(u),o.attachShader(this.program,u);var c=o.createShader(o.VERTEX_SHADER);if(o.isContextLost())this.failedToCreate=!0;else{o.shaderSource(c,l),o.compileShader(c),o.attachShader(this.program,c);for(var p=i?i.layoutAttributes:[],h=0;h<p.length;h++)o.bindAttribLocation(this.program,h,p[h].name);o.linkProgram(this.program),this.numAttributes=o.getProgramParameter(this.program,o.ACTIVE_ATTRIBUTES),this.attributes={};for(var d={},f=0;f<this.numAttributes;f++){var m=o.getActiveAttrib(this.program,f);m&&(this.attributes[m.name]=o.getAttribLocation(this.program,m.name))}for(var g=o.getProgramParameter(this.program,o.ACTIVE_UNIFORMS),y=0;y<g;y++){var v=o.getActiveUniform(this.program,y);v&&(d[v.name]=o.getUniformLocation(this.program,v.name))}this.fixedUniforms=r(t,d),this.binderUniforms=i?i.getUniforms(t,d):[]}}}function Yr(t,e,i){var r=1/Ui(i,1,e.transform.tileZoom),n=Math.pow(2,i.tileID.overscaledZ),o=i.tileSize*Math.pow(2,e.transform.tileZoom)/n,a=o*(i.tileID.canonical.x+i.tileID.wrap*n),s=o*i.tileID.canonical.y;return{u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[_t.browser.devicePixelRatio,r,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[a>>16,s>>16],u_pixel_coord_lower:[65535&a,65535&s]}}function Jr(t,e,i,r){var n=e.style.light,o=n.properties.get(\"position\"),a=[o.x,o.y,o.z],s=_t.create$1();\"viewport\"===n.properties.get(\"anchor\")&&_t.fromRotation(s,-e.transform.angle),_t.transformMat3(a,a,s);var l=n.properties.get(\"color\");return{u_matrix:t,u_lightpos:a,u_lightintensity:n.properties.get(\"intensity\"),u_lightcolor:[l.r,l.g,l.b],u_vertical_gradient:+i,u_opacity:r}}function Qr(t){return{u_matrix:t}}function $r(t,e,i,r){return _t.extend(Qr(t),Yr(i,e,r))}function tn(t,e,i,r){var n,o,a=t.transform;if(\"map\"===r.paint.get(\"circle-pitch-alignment\")){var s=Ui(i,1,a.zoom);n=!0,o=[s,s]}else n=!1,o=a.pixelsToGLUnits;return{u_camera_to_center_distance:a.cameraToCenterDistance,u_scale_with_map:+(\"map\"===r.paint.get(\"circle-pitch-scale\")),u_matrix:t.translatePosMatrix(e.posMatrix,i,r.paint.get(\"circle-translate\"),r.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+n,u_device_pixel_ratio:_t.browser.devicePixelRatio,u_extrude_scale:o}}function en(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_camera_to_center_distance:new _t.Uniform1f(t,e.u_camera_to_center_distance),u_pixels_to_tile_units:new _t.Uniform1f(t,e.u_pixels_to_tile_units),u_extrude_scale:new _t.Uniform2f(t,e.u_extrude_scale),u_overscale_factor:new _t.Uniform1f(t,e.u_overscale_factor)}}function rn(t){return{u_matrix:t}}Kr.prototype.bind=function(t,e,i,r,n,o,a,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==r.length,u=0;!l&&u<r.length;u++)this.boundPaintVertexBuffers[u]!==r[u]&&(l=!0);var c=!this.vao||this.boundProgram!==e||this.boundLayoutVertexBuffer!==i||l||this.boundIndexBuffer!==n||this.boundVertexOffset!==o||this.boundDynamicVertexBuffer!==a||this.boundDynamicVertexBuffer2!==s;!t.extVertexArrayObject||c?this.freshBind(e,i,r,n,o,a,s):(t.bindVertexArrayOES.set(this.vao),a&&a.bind(),n&&n.dynamicDraw&&n.bind(),s&&s.bind())},Kr.prototype.freshBind=function(t,e,i,r,n,o,a){var s,l=t.numAttributes,u=this.context,c=u.gl;if(u.extVertexArrayObject)this.vao&&this.destroy(),this.vao=u.extVertexArrayObject.createVertexArrayOES(),u.bindVertexArrayOES.set(this.vao),s=0,this.boundProgram=t,this.boundLayoutVertexBuffer=e,this.boundPaintVertexBuffers=i,this.boundIndexBuffer=r,this.boundVertexOffset=n,this.boundDynamicVertexBuffer=o,this.boundDynamicVertexBuffer2=a;else{s=u.currentNumAttributes||0;for(var p=l;p<s;p++)c.disableVertexAttribArray(p)}e.enableAttributes(c,t);for(var h=0,d=i;h<d.length;h+=1)d[h].enableAttributes(c,t);o&&o.enableAttributes(c,t),a&&a.enableAttributes(c,t),e.bind(),e.setVertexAttribPointers(c,t,n);for(var f=0,m=i;f<m.length;f+=1){var g=m[f];g.bind(),g.setVertexAttribPointers(c,t,n)}o&&(o.bind(),o.setVertexAttribPointers(c,t,n)),r&&r.bind(),a&&(a.bind(),a.setVertexAttribPointers(c,t,n)),u.currentNumAttributes=l},Kr.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)},Xr.prototype.draw=function(t,e,i,r,n,o,a,s,l,u,c,p,h,d,f,m){var g,y=t.gl;if(!this.failedToCreate){for(var v in t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(r),t.setColorMode(n),t.setCullFace(o),this.fixedUniforms)this.fixedUniforms[v].set(a[v]);d&&d.setUniforms(t,this.binderUniforms,p,{zoom:h});for(var _=((g={})[y.LINES]=2,g[y.TRIANGLES]=3,g[y.LINE_STRIP]=1,g[e]),x=0,b=c.get();x<b.length;x+=1){var w=b[x],S=w.vaos||(w.vaos={});(S[s]||(S[s]=new Kr)).bind(t,this,l,d?d.getPaintVertexBuffers():[],u,w.vertexOffset,f,m),y.drawElements(e,w.primitiveLength*_,y.UNSIGNED_SHORT,w.primitiveOffset*_*2)}}};var nn=function(t,e,i){var r=Ui(i,1,e.zoom),n=Math.pow(2,e.zoom-i.tileID.overscaledZ),o=i.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:r,u_extrude_scale:[e.pixelsToGLUnits[0]/(r*n),e.pixelsToGLUnits[1]/(r*n)],u_overscale_factor:o}},on=function(t,e){return{u_matrix:t,u_color:e}},an=function(t,e,i){var r=i.paint.get(\"hillshade-shadow-color\"),n=i.paint.get(\"hillshade-highlight-color\"),o=i.paint.get(\"hillshade-accent-color\"),a=i.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);\"viewport\"===i.paint.get(\"hillshade-illumination-anchor\")&&(a-=t.transform.angle);var s,l,u,c=!t.options.moving;return{u_matrix:t.transform.calculatePosMatrix(e.tileID.toUnwrapped(),c),u_image:0,u_latrange:(s=e.tileID,l=Math.pow(2,s.canonical.z),u=s.canonical.y,[new _t.MercatorCoordinate(0,u/l).toLngLat().lat,new _t.MercatorCoordinate(0,(u+1)/l).toLngLat().lat]),u_light:[i.paint.get(\"hillshade-exaggeration\"),a],u_shadow:r,u_highlight:n,u_accent:o}},sn=function(t,e,i){var r=e.stride,n=_t.create();return _t.ortho(n,0,_t.EXTENT,-_t.EXTENT,0,0,1),_t.translate(n,n,[0,-_t.EXTENT,0]),{u_matrix:n,u_image:1,u_dimension:[r,r],u_zoom:t.overscaledZ,u_maxzoom:i,u_unpack:e.getUnpackVector()}};function ln(t,e,i){var r=t.transform;return{u_matrix:cn(t,e,i),u_ratio:1/Ui(e,1,r.zoom),u_device_pixel_ratio:_t.browser.devicePixelRatio,u_units_to_pixels:[1/r.pixelsToGLUnits[0],1/r.pixelsToGLUnits[1]]}}function un(t,e){return 1/Ui(t,1,e.tileZoom)}function cn(t,e,i){return t.translatePosMatrix(e.tileID.posMatrix,e,i.paint.get(\"line-translate\"),i.paint.get(\"line-translate-anchor\"))}function pn(t,e,i,r,n){return{u_matrix:t,u_tl_parent:e,u_scale_parent:i,u_buffer_scale:1,u_fade_t:r.mix,u_opacity:r.opacity*n.paint.get(\"raster-opacity\"),u_image0:0,u_image1:1,u_brightness_low:n.paint.get(\"raster-brightness-min\"),u_brightness_high:n.paint.get(\"raster-brightness-max\"),u_saturation_factor:0<(a=n.paint.get(\"raster-saturation\"))?1-1/(1.001-a):-a,u_contrast_factor:0<(o=n.paint.get(\"raster-contrast\"))?1/(1-o):1+o,u_spin_weights:function(t){t*=Math.PI/180;var e=Math.sin(t),i=Math.cos(t);return[(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}(n.paint.get(\"raster-hue-rotate\"))};var o,a}function hn(t,e,i,r,n,o,a,s,l,u){var c=n.transform;return{u_is_size_zoom_constant:+(\"constant\"===t||\"source\"===t),u_is_size_feature_constant:+(\"constant\"===t||\"camera\"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:c.cameraToCenterDistance,u_pitch:c.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:c.width/c.height,u_fade_change:n.options.fadeDuration?n.symbolFadeChange:1,u_matrix:o,u_label_plane_matrix:a,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+r,u_texsize:u,u_texture:0}}function dn(t,e,i,r,n,o,a,s,l,u,c){var p=n.transform;return _t.extend(hn(t,e,i,r,n,o,a,s,l,u),{u_gamma_scale:r?Math.cos(p._pitch)*p.cameraToCenterDistance:1,u_device_pixel_ratio:_t.browser.devicePixelRatio,u_is_halo:+c})}var fn={fillExtrusion:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_lightpos:new _t.Uniform3f(t,e.u_lightpos),u_lightintensity:new _t.Uniform1f(t,e.u_lightintensity),u_lightcolor:new _t.Uniform3f(t,e.u_lightcolor),u_vertical_gradient:new _t.Uniform1f(t,e.u_vertical_gradient),u_opacity:new _t.Uniform1f(t,e.u_opacity)}},fillExtrusionPattern:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_lightpos:new _t.Uniform3f(t,e.u_lightpos),u_lightintensity:new _t.Uniform1f(t,e.u_lightintensity),u_lightcolor:new _t.Uniform3f(t,e.u_lightcolor),u_vertical_gradient:new _t.Uniform1f(t,e.u_vertical_gradient),u_height_factor:new _t.Uniform1f(t,e.u_height_factor),u_image:new _t.Uniform1i(t,e.u_image),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_pixel_coord_upper:new _t.Uniform2f(t,e.u_pixel_coord_upper),u_pixel_coord_lower:new _t.Uniform2f(t,e.u_pixel_coord_lower),u_scale:new _t.Uniform4f(t,e.u_scale),u_fade:new _t.Uniform1f(t,e.u_fade),u_opacity:new _t.Uniform1f(t,e.u_opacity)}},fill:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix)}},fillPattern:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_image:new _t.Uniform1i(t,e.u_image),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_pixel_coord_upper:new _t.Uniform2f(t,e.u_pixel_coord_upper),u_pixel_coord_lower:new _t.Uniform2f(t,e.u_pixel_coord_lower),u_scale:new _t.Uniform4f(t,e.u_scale),u_fade:new _t.Uniform1f(t,e.u_fade)}},fillOutline:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_world:new _t.Uniform2f(t,e.u_world)}},fillOutlinePattern:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_world:new _t.Uniform2f(t,e.u_world),u_image:new _t.Uniform1i(t,e.u_image),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_pixel_coord_upper:new _t.Uniform2f(t,e.u_pixel_coord_upper),u_pixel_coord_lower:new _t.Uniform2f(t,e.u_pixel_coord_lower),u_scale:new _t.Uniform4f(t,e.u_scale),u_fade:new _t.Uniform1f(t,e.u_fade)}},circle:function(t,e){return{u_camera_to_center_distance:new _t.Uniform1f(t,e.u_camera_to_center_distance),u_scale_with_map:new _t.Uniform1i(t,e.u_scale_with_map),u_pitch_with_map:new _t.Uniform1i(t,e.u_pitch_with_map),u_extrude_scale:new _t.Uniform2f(t,e.u_extrude_scale),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_matrix:new _t.UniformMatrix4f(t,e.u_matrix)}},collisionBox:en,collisionCircle:en,debug:function(t,e){return{u_color:new _t.UniformColor(t,e.u_color),u_matrix:new _t.UniformMatrix4f(t,e.u_matrix)}},clippingMask:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix)}},heatmap:function(t,e){return{u_extrude_scale:new _t.Uniform1f(t,e.u_extrude_scale),u_intensity:new _t.Uniform1f(t,e.u_intensity),u_matrix:new _t.UniformMatrix4f(t,e.u_matrix)}},heatmapTexture:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_world:new _t.Uniform2f(t,e.u_world),u_image:new _t.Uniform1i(t,e.u_image),u_color_ramp:new _t.Uniform1i(t,e.u_color_ramp),u_opacity:new _t.Uniform1f(t,e.u_opacity)}},hillshade:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_image:new _t.Uniform1i(t,e.u_image),u_latrange:new _t.Uniform2f(t,e.u_latrange),u_light:new _t.Uniform2f(t,e.u_light),u_shadow:new _t.UniformColor(t,e.u_shadow),u_highlight:new _t.UniformColor(t,e.u_highlight),u_accent:new _t.UniformColor(t,e.u_accent)}},hillshadePrepare:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_image:new _t.Uniform1i(t,e.u_image),u_dimension:new _t.Uniform2f(t,e.u_dimension),u_zoom:new _t.Uniform1f(t,e.u_zoom),u_maxzoom:new _t.Uniform1f(t,e.u_maxzoom),u_unpack:new _t.Uniform4f(t,e.u_unpack)}},line:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_ratio:new _t.Uniform1f(t,e.u_ratio),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_units_to_pixels:new _t.Uniform2f(t,e.u_units_to_pixels)}},lineGradient:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_ratio:new _t.Uniform1f(t,e.u_ratio),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_units_to_pixels:new _t.Uniform2f(t,e.u_units_to_pixels),u_image:new _t.Uniform1i(t,e.u_image)}},linePattern:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_ratio:new _t.Uniform1f(t,e.u_ratio),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_image:new _t.Uniform1i(t,e.u_image),u_units_to_pixels:new _t.Uniform2f(t,e.u_units_to_pixels),u_scale:new _t.Uniform4f(t,e.u_scale),u_fade:new _t.Uniform1f(t,e.u_fade)}},lineSDF:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_ratio:new _t.Uniform1f(t,e.u_ratio),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_units_to_pixels:new _t.Uniform2f(t,e.u_units_to_pixels),u_patternscale_a:new _t.Uniform2f(t,e.u_patternscale_a),u_patternscale_b:new _t.Uniform2f(t,e.u_patternscale_b),u_sdfgamma:new _t.Uniform1f(t,e.u_sdfgamma),u_image:new _t.Uniform1i(t,e.u_image),u_tex_y_a:new _t.Uniform1f(t,e.u_tex_y_a),u_tex_y_b:new _t.Uniform1f(t,e.u_tex_y_b),u_mix:new _t.Uniform1f(t,e.u_mix)}},raster:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_tl_parent:new _t.Uniform2f(t,e.u_tl_parent),u_scale_parent:new _t.Uniform1f(t,e.u_scale_parent),u_buffer_scale:new _t.Uniform1f(t,e.u_buffer_scale),u_fade_t:new _t.Uniform1f(t,e.u_fade_t),u_opacity:new _t.Uniform1f(t,e.u_opacity),u_image0:new _t.Uniform1i(t,e.u_image0),u_image1:new _t.Uniform1i(t,e.u_image1),u_brightness_low:new _t.Uniform1f(t,e.u_brightness_low),u_brightness_high:new _t.Uniform1f(t,e.u_brightness_high),u_saturation_factor:new _t.Uniform1f(t,e.u_saturation_factor),u_contrast_factor:new _t.Uniform1f(t,e.u_contrast_factor),u_spin_weights:new _t.Uniform3f(t,e.u_spin_weights)}},symbolIcon:function(t,e){return{u_is_size_zoom_constant:new _t.Uniform1i(t,e.u_is_size_zoom_constant),u_is_size_feature_constant:new _t.Uniform1i(t,e.u_is_size_feature_constant),u_size_t:new _t.Uniform1f(t,e.u_size_t),u_size:new _t.Uniform1f(t,e.u_size),u_camera_to_center_distance:new _t.Uniform1f(t,e.u_camera_to_center_distance),u_pitch:new _t.Uniform1f(t,e.u_pitch),u_rotate_symbol:new _t.Uniform1i(t,e.u_rotate_symbol),u_aspect_ratio:new _t.Uniform1f(t,e.u_aspect_ratio),u_fade_change:new _t.Uniform1f(t,e.u_fade_change),u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_label_plane_matrix:new _t.UniformMatrix4f(t,e.u_label_plane_matrix),u_coord_matrix:new _t.UniformMatrix4f(t,e.u_coord_matrix),u_is_text:new _t.Uniform1f(t,e.u_is_text),u_pitch_with_map:new _t.Uniform1i(t,e.u_pitch_with_map),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_texture:new _t.Uniform1i(t,e.u_texture)}},symbolSDF:function(t,e){return{u_is_size_zoom_constant:new _t.Uniform1i(t,e.u_is_size_zoom_constant),u_is_size_feature_constant:new _t.Uniform1i(t,e.u_is_size_feature_constant),u_size_t:new _t.Uniform1f(t,e.u_size_t),u_size:new _t.Uniform1f(t,e.u_size),u_camera_to_center_distance:new _t.Uniform1f(t,e.u_camera_to_center_distance),u_pitch:new _t.Uniform1f(t,e.u_pitch),u_rotate_symbol:new _t.Uniform1i(t,e.u_rotate_symbol),u_aspect_ratio:new _t.Uniform1f(t,e.u_aspect_ratio),u_fade_change:new _t.Uniform1f(t,e.u_fade_change),u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_label_plane_matrix:new _t.UniformMatrix4f(t,e.u_label_plane_matrix),u_coord_matrix:new _t.UniformMatrix4f(t,e.u_coord_matrix),u_is_text:new _t.Uniform1f(t,e.u_is_text),u_pitch_with_map:new _t.Uniform1i(t,e.u_pitch_with_map),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_texture:new _t.Uniform1i(t,e.u_texture),u_gamma_scale:new _t.Uniform1f(t,e.u_gamma_scale),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_is_halo:new _t.Uniform1f(t,e.u_is_halo)}},symbolTextAndIcon:function(t,e){return{u_is_size_zoom_constant:new _t.Uniform1i(t,e.u_is_size_zoom_constant),u_is_size_feature_constant:new _t.Uniform1i(t,e.u_is_size_feature_constant),u_size_t:new _t.Uniform1f(t,e.u_size_t),u_size:new _t.Uniform1f(t,e.u_size),u_camera_to_center_distance:new _t.Uniform1f(t,e.u_camera_to_center_distance),u_pitch:new _t.Uniform1f(t,e.u_pitch),u_rotate_symbol:new _t.Uniform1i(t,e.u_rotate_symbol),u_aspect_ratio:new _t.Uniform1f(t,e.u_aspect_ratio),u_fade_change:new _t.Uniform1f(t,e.u_fade_change),u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_label_plane_matrix:new _t.UniformMatrix4f(t,e.u_label_plane_matrix),u_coord_matrix:new _t.UniformMatrix4f(t,e.u_coord_matrix),u_is_text:new _t.Uniform1f(t,e.u_is_text),u_pitch_with_map:new _t.Uniform1i(t,e.u_pitch_with_map),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_texsize_icon:new _t.Uniform2f(t,e.u_texsize_icon),u_texture:new _t.Uniform1i(t,e.u_texture),u_texture_icon:new _t.Uniform1i(t,e.u_texture_icon),u_gamma_scale:new _t.Uniform1f(t,e.u_gamma_scale),u_device_pixel_ratio:new _t.Uniform1f(t,e.u_device_pixel_ratio),u_is_halo:new _t.Uniform1f(t,e.u_is_halo)}},background:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_opacity:new _t.Uniform1f(t,e.u_opacity),u_color:new _t.UniformColor(t,e.u_color)}},backgroundPattern:function(t,e){return{u_matrix:new _t.UniformMatrix4f(t,e.u_matrix),u_opacity:new _t.Uniform1f(t,e.u_opacity),u_image:new _t.Uniform1i(t,e.u_image),u_pattern_tl_a:new _t.Uniform2f(t,e.u_pattern_tl_a),u_pattern_br_a:new _t.Uniform2f(t,e.u_pattern_br_a),u_pattern_tl_b:new _t.Uniform2f(t,e.u_pattern_tl_b),u_pattern_br_b:new _t.Uniform2f(t,e.u_pattern_br_b),u_texsize:new _t.Uniform2f(t,e.u_texsize),u_mix:new _t.Uniform1f(t,e.u_mix),u_pattern_size_a:new _t.Uniform2f(t,e.u_pattern_size_a),u_pattern_size_b:new _t.Uniform2f(t,e.u_pattern_size_b),u_scale_a:new _t.Uniform1f(t,e.u_scale_a),u_scale_b:new _t.Uniform1f(t,e.u_scale_b),u_pixel_coord_upper:new _t.Uniform2f(t,e.u_pixel_coord_upper),u_pixel_coord_lower:new _t.Uniform2f(t,e.u_pixel_coord_lower),u_tile_units_to_pixels:new _t.Uniform1f(t,e.u_tile_units_to_pixels)}}};function mn(t,e,i,r,n,o,a,s){for(var l=t.context,u=l.gl,c=n?t.useProgram(\"collisionCircle\"):t.useProgram(\"collisionBox\"),p=0;p<r.length;p++){var h=r[p],d=e.getTile(h),f=d.getBucket(i);if(f){var m=n?s?f.textCollisionCircle:f.iconCollisionCircle:s?f.textCollisionBox:f.iconCollisionBox;if(m){var g=h.posMatrix;0===o[0]&&0===o[1]||(g=t.translatePosMatrix(h.posMatrix,d,o,a)),c.draw(l,n?u.TRIANGLES:u.LINES,ei.disabled,ii.disabled,t.colorModeForRenderPass(),ni.disabled,nn(g,t.transform,d),i.id,m.layoutVertexBuffer,m.indexBuffer,m.segments,null,t.transform.zoom,null,null,m.collisionVertexBuffer)}}}}function gn(t,e,i,r,n,o,a){mn(t,e,i,r,!1,n,o,a),mn(t,e,i,r,!0,n,o,a)}var yn=_t.identity(new Float32Array(16));function vn(t,e,i,r,n,o,a,s,l,u,c){var p,h,d,f,m,g,y,v,_,x,b=t.text.placedSymbolArray,w=t.text.dynamicLayoutVertexArray,S=t.icon.dynamicLayoutVertexArray,T={};w.clear();for(var E=0;E<b.length;E++){var I=b.get(E),C=t.allowVerticalPlacement&&!I.placedOrientation,A=I.hidden||!I.crossTileID||C?null:r[I.crossTileID];if(A){var k=new _t.Point(I.anchorX,I.anchorY),P=Ai(k,i?s:a),M=.5+o.cameraToCenterDistance/P.signedDistanceFromCamera*.5,L=n.evaluateSizeForFeature(t.textSizeData,u,I)*M/_t.ONE_EM;i&&(L*=t.tilePixelRatio/l);for(var D=A.width,O=A.height,z=(p=A.anchor,h=D,d=O,f=A.textOffset,m=A.textBoxScale,g=L,y=_t.getAnchorAlignment(p),v=-(y.horizontalAlign-.5)*h,_=-(y.verticalAlign-.5)*d,x=_t.evaluateVariableOffset(p,f),new _t.Point((v/m+x[0])*g,(_/m+x[1])*g)),R=i?Ai(k.add(z),a).point:P.point.add(e?z.rotate(-o.angle):z),N=t.allowVerticalPlacement&&I.placedOrientation===_t.WritingMode.vertical?Math.PI/2:0,B=0;B<I.numGlyphs;B++)_t.addDynamicAttributes(w,R,N);c&&0<=I.associatedIconIndex&&(T[I.associatedIconIndex]={shiftedAnchor:R,angle:N})}else Ri(I.numGlyphs,w)}if(c){S.clear();for(var F=t.icon.placedSymbolArray,U=0;U<F.length;U++){var j=F.get(U);if(j.hidden)Ri(j.numGlyphs,S);else{var q=T[U];if(q)for(var V=0;V<j.numGlyphs;V++)_t.addDynamicAttributes(S,q.shiftedAnchor,q.angle);else Ri(j.numGlyphs,S)}}t.icon.dynamicLayoutVertexBuffer.updateData(S)}t.text.dynamicLayoutVertexBuffer.updateData(w)}function _n(t,e,i,r,n,o,a,s,l,u,c,p){for(var h,d,f=t.context,m=f.gl,g=t.transform,y=\"map\"===s,v=\"map\"===l,_=y&&\"point\"!==i.layout.get(\"symbol-placement\"),x=y&&!v&&!_,b=void 0!==i.layout.get(\"symbol-sort-key\").constantOr(1),w=t.depthModeForSublayer(0,ei.ReadOnly),S=i.layout.get(\"text-variable-anchor\"),T=[],E=0,I=r;E<I.length;E+=1){var C=I[E],A=e.getTile(C),k=A.getBucket(i);if(k){var P=n?k.text:k.icon;if(P&&P.segments.get().length){var M=P.programConfigurations.get(i.id),L=n||k.sdfIcons,D=n?k.textSizeData:k.iconSizeData,O=v||0!==g.pitch;h||(h=t.useProgram((ht=L,dt=n,k.iconsInText&&dt?\"symbolTextAndIcon\":ht?\"symbolSDF\":\"symbolIcon\"),M),d=_t.evaluateSizeForZoom(D,g.zoom));var z=void 0,R=[0,0],N=void 0,B=void 0,F=null,U=void 0;if(n){if(N=A.glyphAtlasTexture,B=m.LINEAR,z=A.glyphAtlasTexture.size,k.iconsInText){R=A.imageAtlasTexture.size,F=A.imageAtlasTexture;var j=\"composite\"===D.kind||\"camera\"===D.kind;U=O||t.options.rotating||t.options.zooming||j?m.LINEAR:m.NEAREST}}else{var q=1!==i.layout.get(\"icon-size\").constantOr(0)||k.iconsNeedLinear;N=A.imageAtlasTexture,B=L||t.options.rotating||t.options.zooming||q||O?m.LINEAR:m.NEAREST,z=A.imageAtlasTexture.size}var V=Ui(A,1,t.transform.zoom),G=Ii(C.posMatrix,v,y,t.transform,V),Z=Ci(C.posMatrix,v,y,t.transform,V),H=S&&k.hasTextData(),K=\"none\"!==i.layout.get(\"icon-text-fit\")&&H&&k.hasIconData();_&&ki(k,C.posMatrix,t,n,G,Z,v,u);var W=t.translatePosMatrix(C.posMatrix,A,o,a),X=_||n&&S||K?yn:G,Y=t.translatePosMatrix(Z,A,o,a,!0),J=L&&0!==i.paint.get(n?\"text-halo-width\":\"icon-halo-width\").constantOr(1),Q={program:h,buffers:P,uniformValues:L?k.iconsInText?(it=D.kind,rt=d,nt=x,ot=v,at=t,st=W,lt=X,ut=Y,ct=z,pt=R,_t.extend(dn(it,rt,nt,ot,at,st,lt,ut,!0,ct,!0),{u_texsize_icon:pt,u_texture_icon:1})):dn(D.kind,d,x,v,t,W,X,Y,n,z,!0):hn(D.kind,d,x,v,t,W,X,Y,n,z),atlasTexture:N,atlasTextureIcon:F,atlasInterpolation:B,atlasInterpolationIcon:U,isSDF:L,hasHalo:J};if(b)for(var $=0,tt=P.segments.get();$<tt.length;$+=1){var et=tt[$];T.push({segments:new _t.SegmentVector([et]),sortKey:et.sortKey,state:Q})}else T.push({segments:P.segments,sortKey:0,state:Q})}}}var it,rt,nt,ot,at,st,lt,ut,ct,pt,ht,dt;b&&T.sort(function(t,e){return t.sortKey-e.sortKey});for(var ft=0,mt=T;ft<mt.length;ft+=1){var gt=mt[ft],yt=gt.state;if(f.activeTexture.set(m.TEXTURE0),yt.atlasTexture.bind(yt.atlasInterpolation,m.CLAMP_TO_EDGE),yt.atlasTextureIcon&&(f.activeTexture.set(m.TEXTURE1),yt.atlasTextureIcon&&yt.atlasTextureIcon.bind(yt.atlasInterpolationIcon,m.CLAMP_TO_EDGE)),yt.isSDF){var vt=yt.uniformValues;yt.hasHalo&&(vt.u_is_halo=1,xn(yt.buffers,gt.segments,i,t,yt.program,w,c,p,vt)),vt.u_is_halo=0}xn(yt.buffers,gt.segments,i,t,yt.program,w,c,p,yt.uniformValues)}}function xn(t,e,i,r,n,o,a,s,l){var u=r.context,c=u.gl;n.draw(u,c.TRIANGLES,o,a,s,ni.disabled,l,i.id,t.layoutVertexBuffer,t.indexBuffer,e,i.paint,r.transform.zoom,t.programConfigurations.get(i.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer)}function bn(t,e,i,r,n,o,a){var s,l,u,c,p,h,d,f,m,g,y=t.context.gl,v=i.paint.get(\"fill-pattern\"),_=v&&v.constantOr(1),x=i.getCrossfadeParameters();s=a?(l=_&&!i.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",y.LINES):(l=_?\"fillPattern\":\"fill\",y.TRIANGLES);for(var b=0,w=r;b<w.length;b+=1){var S=w[b],T=e.getTile(S);if(!_||T.patternsLoaded()){var E=T.getBucket(i);if(E){var I=E.programConfigurations.get(i.id),C=t.useProgram(l,I);_&&(t.context.activeTexture.set(y.TEXTURE0),T.imageAtlasTexture.bind(y.LINEAR,y.CLAMP_TO_EDGE),I.updatePaintBuffers(x));var A=v.constantOr(null);if(A&&T.imageAtlas){var k=T.imageAtlas,P=k.patternPositions[A.to.toString()],M=k.patternPositions[A.from.toString()];P&&M&&I.setConstantPatternPositions(P,M)}var L=t.translatePosMatrix(S.posMatrix,T,i.paint.get(\"fill-translate\"),i.paint.get(\"fill-translate-anchor\"));if(a){c=E.indexBuffer2,p=E.segments2;var D=[y.drawingBufferWidth,y.drawingBufferHeight];u=\"fillOutlinePattern\"===l&&_?(h=L,d=t,f=x,m=T,g=D,_t.extend($r(h,d,f,m),{u_world:g})):{u_matrix:L,u_world:D}}else c=E.indexBuffer,p=E.segments,u=_?$r(L,t,x,T):Qr(L);C.draw(t.context,s,n,t.stencilModeForClipping(S),o,ni.disabled,u,i.id,E.layoutVertexBuffer,c,p,i.paint,t.transform.zoom,I)}}}}function wn(t,e,i,r,n,o,a){for(var s=t.context,l=s.gl,u=i.paint.get(\"fill-extrusion-pattern\"),c=u.constantOr(1),p=i.getCrossfadeParameters(),h=i.paint.get(\"fill-extrusion-opacity\"),d=0,f=r;d<f.length;d+=1){var m=f[d],g=e.getTile(m),y=g.getBucket(i);if(y){var v=y.programConfigurations.get(i.id),_=t.useProgram(c?\"fillExtrusionPattern\":\"fillExtrusion\",v);c&&(t.context.activeTexture.set(l.TEXTURE0),g.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),v.updatePaintBuffers(p));var x=u.constantOr(null);if(x&&g.imageAtlas){var b=g.imageAtlas,w=b.patternPositions[x.to.toString()],S=b.patternPositions[x.from.toString()];w&&S&&v.setConstantPatternPositions(w,S)}var T=t.translatePosMatrix(m.posMatrix,g,i.paint.get(\"fill-extrusion-translate\"),i.paint.get(\"fill-extrusion-translate-anchor\")),E=i.paint.get(\"fill-extrusion-vertical-gradient\"),I=c?(C=T,A=t,k=E,P=h,M=m,L=p,D=g,_t.extend(Jr(C,A,k,P),Yr(L,A,D),{u_height_factor:-Math.pow(2,M.overscaledZ)/D.tileSize/8})):Jr(T,t,E,h);_.draw(s,s.gl.TRIANGLES,n,o,a,ni.backCCW,I,i.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,i.paint,t.transform.zoom,v)}}var C,A,k,P,M,L,D}function Sn(t,e,i,r,n,o){var a=t.context,s=a.gl,l=e.fbo;if(l){var u=t.useProgram(\"hillshade\");a.activeTexture.set(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,l.colorAttachment.get());var c=an(t,e,i);u.draw(a,s.TRIANGLES,r,n,o,ni.disabled,c,i.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments)}}function Tn(t,e,i,r,n,o,a){var s=t.context,l=s.gl,u=e.dem;if(u&&u.data){var c=u.dim,p=u.stride,h=u.getPixels();if(s.activeTexture.set(l.TEXTURE1),s.pixelStoreUnpackPremultiplyAlpha.set(!1),e.demTexture=e.demTexture||t.getTileTexture(p),e.demTexture){var d=e.demTexture;d.update(h,{premultiply:!1}),d.bind(l.NEAREST,l.CLAMP_TO_EDGE)}else e.demTexture=new _t.Texture(s,h,l.RGBA,{premultiply:!1}),e.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);s.activeTexture.set(l.TEXTURE0);var f=e.fbo;if(!f){var m=new _t.Texture(s,{width:c,height:c,data:null},l.RGBA);m.bind(l.LINEAR,l.CLAMP_TO_EDGE),(f=e.fbo=s.createFramebuffer(c,c)).colorAttachment.set(m.texture)}s.bindFramebuffer.set(f.framebuffer),s.viewport.set([0,0,c,c]),t.useProgram(\"hillshadePrepare\").draw(s,l.TRIANGLES,n,o,a,ni.disabled,sn(e.tileID,u,r),i.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments),e.needsHillshadePrepare=!1}}function En(t,e,i,r,n){var o=r.paint.get(\"raster-fade-duration\");if(0<o){var a=_t.browser.now(),s=(a-t.timeAdded)/o,l=e?(a-e.timeAdded)/o:-1,u=i.getSource(),c=n.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),p=!e||Math.abs(e.tileID.overscaledZ-c)>Math.abs(t.tileID.overscaledZ-c),h=p&&t.refreshedUponExpiration?1:_t.clamp(p?s:1-l,0,1);return t.refreshedUponExpiration&&1<=s&&(t.refreshedUponExpiration=!1),e?{opacity:1,mix:1-h}:{opacity:h,mix:0}}return{opacity:1,mix:0}}function In(t,e,i){var r=t.context,n=r.gl,o=i.posMatrix,a=t.useProgram(\"debug\"),s=ei.disabled,l=ii.disabled,u=t.colorModeForRenderPass(),c=\"$debug\";a.draw(r,n.LINE_STRIP,s,l,u,ni.disabled,on(o,_t.Color.red),c,t.debugBuffer,t.tileBorderIndexBuffer,t.debugSegments);var p=e.getTileByID(i.key).latestRawTileData,h=p&&p.byteLength||0,d=Math.floor(h/1024),f=e.getTile(i).tileSize,m=512/Math.min(f,512),g=i.canonical.toString();i.overscaledZ!==i.canonical.z&&(g+=\" => \"+i.overscaledZ);for(var y=function(t,e,i,r){r=r||1;var n,o,a,s,l,u,c,p,h=[];for(n=0,o=t.length;n<o;n++)if(l=An[t[n]]){for(p=null,a=0,s=l[1].length;a<s;a+=2)p=-1===l[1][a]&&-1===l[1][a+1]?null:(u=e+l[1][a]*r,c=i-l[1][a+1]*r,p&&h.push(p.x,p.y,u,c),{x:u,y:c});e+=l[0]*r}return h}(g+\" \"+d+\"kb\",50,200*m,5*m),v=new _t.StructArrayLayout2i4,_=new _t.StructArrayLayout2ui4,x=0;x<y.length;x+=2)v.emplaceBack(y[x],y[x+1]),_.emplaceBack(x,x+1);for(var b=r.createVertexBuffer(v,_r.members),w=r.createIndexBuffer(_),S=_t.SegmentVector.simpleSegment(0,0,v.length/2,v.length/2),T=_t.EXTENT/(Math.pow(2,t.transform.zoom-i.overscaledZ)*f*m),E=[],I=-1;I<=1;I++)for(var C=-1;C<=1&&(0!==I||0!==C);C++)E.push([I,C]);for(var A=0;A<E.length;A++){var k=E[A];a.draw(r,n.LINES,s,l,u,ni.disabled,on(_t.translate([],o,[T*k[0],T*k[1],0]),_t.Color.white),c,b,w,S)}a.draw(r,n.LINES,s,l,u,ni.disabled,on(o,_t.Color.black),c,b,w,S),b.destroy(),w.destroy(),S.destroy()}function Cn(t,e){this.context=new oi(t),this.transform=e,this._tileTextures={},this.setup(),this.numSublayers=si.maxUnderzooming+si.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.depthRboNeedsClear=!0,this.crossTileSymbolIndex=new pr,this.gpuTimers={}}var An={\" \":[16,[]],\"!\":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'\"':[16,[4,21,4,14,-1,-1,12,21,12,14]],\"#\":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],\"%\":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],\"&\":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],\"'\":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],\"(\":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],\")\":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],\"*\":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],\"+\":[26,[13,18,13,0,-1,-1,4,9,22,9]],\",\":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],\"-\":[26,[4,9,22,9]],\".\":[10,[5,2,4,1,5,0,6,1,5,2]],\"/\":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],\":\":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],\";\":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],\"<\":[24,[20,18,4,9,20,0]],\"=\":[26,[4,12,22,12,-1,-1,4,6,22,6]],\">\":[24,[4,18,20,9,4,0]],\"?\":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],\"@\":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],\"[\":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],\"\\\\\":[14,[0,21,14,-3]],\"]\":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],\"^\":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],\"`\":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],\"{\":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],\"|\":[8,[4,25,4,-7]],\"}\":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],\"~\":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]},kn={symbol:function(t,e,i,r,n){if(\"translucent\"===t.renderPass){var o=ii.disabled,a=t.colorModeForRenderPass();i.layout.get(\"text-variable-anchor\")&&function(t,e,i,r,n,o,a){for(var s=e.transform,l=\"map\"===n,u=\"map\"===o,c=0,p=t;c<p.length;c+=1){var h=p[c],d=r.getTile(h),f=d.getBucket(i);if(f&&f.text&&f.text.segments.get().length){var m=f.textSizeData,g=_t.evaluateSizeForZoom(m,s.zoom),y=Ui(d,1,e.transform.zoom),v=Ii(h.posMatrix,u,l,e.transform,y),_=\"none\"!==i.layout.get(\"icon-text-fit\")&&f.hasIconData();if(g){var x=Math.pow(2,s.zoom-d.tileID.overscaledZ);vn(f,l,u,a,_t.symbolSize,s,v,h.posMatrix,x,g,_)}}}}(r,t,i,e,i.layout.get(\"text-rotation-alignment\"),i.layout.get(\"text-pitch-alignment\"),n),0!==i.paint.get(\"icon-opacity\").constantOr(1)&&_n(t,e,i,r,!1,i.paint.get(\"icon-translate\"),i.paint.get(\"icon-translate-anchor\"),i.layout.get(\"icon-rotation-alignment\"),i.layout.get(\"icon-pitch-alignment\"),i.layout.get(\"icon-keep-upright\"),o,a),0!==i.paint.get(\"text-opacity\").constantOr(1)&&_n(t,e,i,r,!0,i.paint.get(\"text-translate\"),i.paint.get(\"text-translate-anchor\"),i.layout.get(\"text-rotation-alignment\"),i.layout.get(\"text-pitch-alignment\"),i.layout.get(\"text-keep-upright\"),o,a),e.map.showCollisionBoxes&&(gn(t,e,i,r,i.paint.get(\"text-translate\"),i.paint.get(\"text-translate-anchor\"),!0),gn(t,e,i,r,i.paint.get(\"icon-translate\"),i.paint.get(\"icon-translate-anchor\"),!1))}},circle:function(t,e,i,r){if(\"translucent\"===t.renderPass){var n=i.paint.get(\"circle-opacity\"),o=i.paint.get(\"circle-stroke-width\"),a=i.paint.get(\"circle-stroke-opacity\"),s=void 0!==i.layout.get(\"circle-sort-key\").constantOr(1);if(0!==n.constantOr(1)||0!==o.constantOr(1)&&0!==a.constantOr(1)){for(var l=t.context,u=l.gl,c=t.depthModeForSublayer(0,ei.ReadOnly),p=ii.disabled,h=t.colorModeForRenderPass(),d=[],f=0;f<r.length;f++){var m=r[f],g=e.getTile(m),y=g.getBucket(i);if(y){var v=y.programConfigurations.get(i.id),_={programConfiguration:v,program:t.useProgram(\"circle\",v),layoutVertexBuffer:y.layoutVertexBuffer,indexBuffer:y.indexBuffer,uniformValues:tn(t,m,g,i)};if(s)for(var x=0,b=y.segments.get();x<b.length;x+=1){var w=b[x];d.push({segments:new _t.SegmentVector([w]),sortKey:w.sortKey,state:_})}else d.push({segments:y.segments,sortKey:0,state:_})}}s&&d.sort(function(t,e){return t.sortKey-e.sortKey});for(var S=0,T=d;S<T.length;S+=1){var E=T[S],I=E.state,C=I.programConfiguration,A=I.program,k=I.layoutVertexBuffer,P=I.indexBuffer,M=I.uniformValues,L=E.segments;A.draw(l,u.TRIANGLES,c,p,h,ni.disabled,M,i.id,k,P,L,i.paint,t.transform.zoom,C)}}}},heatmap:function(t,e,i,r){if(0!==i.paint.get(\"heatmap-opacity\"))if(\"offscreen\"===t.renderPass){var n=t.context,o=n.gl,a=t.depthModeForSublayer(0,ei.ReadOnly),s=ii.disabled,l=new ri([o.ONE,o.ONE],_t.Color.transparent,[!0,!0,!0,!0]);!function(t,e,i){var r=t.gl;t.activeTexture.set(r.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);var n=i.heatmapFbo;if(n)r.bindTexture(r.TEXTURE_2D,n.colorAttachment.get()),t.bindFramebuffer.set(n.framebuffer);else{var o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),n=i.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4),function t(e,i,r,n){var o=e.gl;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,i.width/4,i.height/4,0,o.RGBA,e.extTextureHalfFloat?e.extTextureHalfFloat.HALF_FLOAT_OES:o.UNSIGNED_BYTE,null),n.colorAttachment.set(r),e.extTextureHalfFloat&&o.checkFramebufferStatus(o.FRAMEBUFFER)!==o.FRAMEBUFFER_COMPLETE&&(e.extTextureHalfFloat=null,n.colorAttachment.setDirty(),t(e,i,r,n))}(t,e,o,n)}}(n,t,i),n.clear({color:_t.Color.transparent});for(var u=0;u<r.length;u++){var c=r[u];if(!e.hasRenderableParent(c)){var p=e.getTile(c),h=p.getBucket(i);if(h){var d=h.programConfigurations.get(i.id),f=t.useProgram(\"heatmap\",d),m=t.transform.zoom;f.draw(n,o.TRIANGLES,a,s,l,ni.disabled,(g=c.posMatrix,y=p,v=m,_=i.paint.get(\"heatmap-intensity\"),{u_matrix:g,u_extrude_scale:Ui(y,1,v),u_intensity:_}),i.id,h.layoutVertexBuffer,h.indexBuffer,h.segments,i.paint,t.transform.zoom,d)}}}n.viewport.set([0,0,t.width,t.height])}else\"translucent\"===t.renderPass&&(t.context.setColorMode(t.colorModeForRenderPass()),function(t,e){var i=t.context,r=i.gl,n=e.heatmapFbo;if(n){i.activeTexture.set(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,n.colorAttachment.get()),i.activeTexture.set(r.TEXTURE1);var o=e.colorRampTexture;(o=o||(e.colorRampTexture=new _t.Texture(i,e.colorRamp,r.RGBA))).bind(r.LINEAR,r.CLAMP_TO_EDGE),t.useProgram(\"heatmapTexture\").draw(i,r.TRIANGLES,ei.disabled,ii.disabled,t.colorModeForRenderPass(),ni.disabled,function(t,e,i,r){var n=_t.create();_t.ortho(n,0,t.width,t.height,0,0,1);var o=t.context.gl;return{u_matrix:n,u_world:[o.drawingBufferWidth,o.drawingBufferHeight],u_image:i,u_color_ramp:r,u_opacity:e.paint.get(\"heatmap-opacity\")}}(t,e,0,1),e.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments,e.paint,t.transform.zoom)}}(t,i));var g,y,v,_},line:function(t,e,i,r){if(\"translucent\"===t.renderPass){var n=i.paint.get(\"line-opacity\"),o=i.paint.get(\"line-width\");if(0!==n.constantOr(1)&&0!==o.constantOr(1)){var a=t.depthModeForSublayer(0,ei.ReadOnly),s=t.colorModeForRenderPass(),l=i.paint.get(\"line-dasharray\"),u=i.paint.get(\"line-pattern\"),c=u.constantOr(1),p=i.paint.get(\"line-gradient\"),h=i.getCrossfadeParameters(),d=c?\"linePattern\":l?\"lineSDF\":p?\"lineGradient\":\"line\",f=t.context,m=f.gl,g=!0;if(p){f.activeTexture.set(m.TEXTURE0);var y=i.gradientTexture;if(!i.gradient)return;(y=y||(i.gradientTexture=new _t.Texture(f,i.gradient,m.RGBA))).bind(m.LINEAR,m.CLAMP_TO_EDGE)}for(var v=0,_=r;v<_.length;v+=1){var x=_[v],b=e.getTile(x);if(!c||b.patternsLoaded()){var w=b.getBucket(i);if(w){var S=w.programConfigurations.get(i.id),T=t.context.program.get(),E=t.useProgram(d,S),I=g||E.program!==T,C=u.constantOr(null);if(C&&b.imageAtlas){var A=b.imageAtlas,k=A.patternPositions[C.to.toString()],P=A.patternPositions[C.from.toString()];k&&P&&S.setConstantPatternPositions(k,P)}var M=c?(X=b,Y=i,J=h,Q=(W=t).transform,$=un(X,Q),{u_matrix:cn(W,X,Y),u_texsize:X.imageAtlasTexture.size,u_ratio:1/Ui(X,1,Q.zoom),u_device_pixel_ratio:_t.browser.devicePixelRatio,u_image:0,u_scale:[_t.browser.devicePixelRatio,$,J.fromScale,J.toScale],u_fade:J.t,u_units_to_pixels:[1/Q.pixelsToGLUnits[0],1/Q.pixelsToGLUnits[1]]}):l?(R=b,N=i,B=l,F=h,j=void 0,U=(z=t).transform,j=z.lineAtlas,q=un(R,U),V=\"round\"===N.layout.get(\"line-cap\"),G=j.getDash(B.from,V),Z=j.getDash(B.to,V),H=G.width*F.fromScale,K=Z.width*F.toScale,_t.extend(ln(z,R,N),{u_patternscale_a:[q/H,-G.height/2],u_patternscale_b:[q/K,-Z.height/2],u_sdfgamma:j.width/(256*Math.min(H,K)*_t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:G.y,u_tex_y_b:Z.y,u_mix:F.t})):p?(L=t,D=b,O=i,_t.extend(ln(L,D,O),{u_image:0})):ln(t,b,i);c?(f.activeTexture.set(m.TEXTURE0),b.imageAtlasTexture.bind(m.LINEAR,m.CLAMP_TO_EDGE),S.updatePaintBuffers(h)):l&&(I||t.lineAtlas.dirty)&&(f.activeTexture.set(m.TEXTURE0),t.lineAtlas.bind(f)),E.draw(f,m.TRIANGLES,a,t.stencilModeForClipping(x),s,ni.disabled,M,i.id,w.layoutVertexBuffer,w.indexBuffer,w.segments,i.paint,t.transform.zoom,S),g=!1}}}}}var L,D,O,z,R,N,B,F,U,j,q,V,G,Z,H,K,W,X,Y,J,Q,$},fill:function(t,e,i,r){var n=i.paint.get(\"fill-color\"),o=i.paint.get(\"fill-opacity\");if(0!==o.constantOr(1)){var a=t.colorModeForRenderPass(),s=i.paint.get(\"fill-pattern\"),l=t.opaquePassEnabledForLayer()&&!s.constantOr(1)&&1===n.constantOr(_t.Color.transparent).a&&1===o.constantOr(0)?\"opaque\":\"translucent\";if(t.renderPass===l){var u=t.depthModeForSublayer(1,\"opaque\"===t.renderPass?ei.ReadWrite:ei.ReadOnly);bn(t,e,i,r,u,a,!1)}if(\"translucent\"===t.renderPass&&i.paint.get(\"fill-antialias\")){var c=t.depthModeForSublayer(i.getPaintProperty(\"fill-outline-color\")?2:0,ei.ReadOnly);bn(t,e,i,r,c,a,!0)}}},\"fill-extrusion\":function(t,e,i,r){var n=i.paint.get(\"fill-extrusion-opacity\");if(0!==n&&\"translucent\"===t.renderPass){var o=new ei(t.context.gl.LEQUAL,ei.ReadWrite,t.depthRangeFor3D);if(1!==n||i.paint.get(\"fill-extrusion-pattern\").constantOr(1))wn(t,e,i,r,o,ii.disabled,ri.disabled),wn(t,e,i,r,o,t.stencilModeFor3D(),t.colorModeForRenderPass());else{var a=t.colorModeForRenderPass();wn(t,e,i,r,o,ii.disabled,a)}}},hillshade:function(t,e,i,r){if(\"offscreen\"===t.renderPass||\"translucent\"===t.renderPass){for(var n=t.context,o=e.getSource().maxzoom,a=t.depthModeForSublayer(0,ei.ReadOnly),s=t.colorModeForRenderPass(),l=\"translucent\"===t.renderPass?t.stencilConfigForOverlap(r):[{},r],u=l[0],c=0,p=l[1];c<p.length;c+=1){var h=p[c],d=e.getTile(h);d.needsHillshadePrepare&&\"offscreen\"===t.renderPass?Tn(t,d,i,o,a,ii.disabled,s):\"translucent\"===t.renderPass&&Sn(t,d,i,a,u[h.overscaledZ],s)}n.viewport.set([0,0,t.width,t.height])}},raster:function(t,e,i,r){if(\"translucent\"===t.renderPass&&0!==i.paint.get(\"raster-opacity\")&&r.length)for(var n=t.context,o=n.gl,a=e.getSource(),s=t.useProgram(\"raster\"),l=t.colorModeForRenderPass(),u=a instanceof F?[{},r]:t.stencilConfigForOverlap(r),c=u[0],p=u[1],h=p[p.length-1].overscaledZ,d=!t.options.moving,f=0,m=p;f<m.length;f+=1){var g=m[f],y=t.depthModeForSublayer(g.overscaledZ-h,1===i.paint.get(\"raster-opacity\")?ei.ReadWrite:ei.ReadOnly,o.LESS),v=e.getTile(g),_=t.transform.calculatePosMatrix(g.toUnwrapped(),d);v.registerFadeDuration(i.paint.get(\"raster-fade-duration\"));var x=e.findLoadedParent(g,0),b=En(v,x,e,i,t.transform),w=void 0,S=void 0,T=\"nearest\"===i.paint.get(\"raster-resampling\")?o.NEAREST:o.LINEAR;n.activeTexture.set(o.TEXTURE0),v.texture.bind(T,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST),n.activeTexture.set(o.TEXTURE1),x?(x.texture.bind(T,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST),w=Math.pow(2,x.tileID.overscaledZ-v.tileID.overscaledZ),S=[v.tileID.canonical.x*w%1,v.tileID.canonical.y*w%1]):v.texture.bind(T,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST);var E=pn(_,S||[0,0],w||1,b,i);a instanceof F?s.draw(n,o.TRIANGLES,y,ii.disabled,l,ni.disabled,E,i.id,a.boundsBuffer,t.quadTriangleIndexBuffer,a.boundsSegments):s.draw(n,o.TRIANGLES,y,c[g.overscaledZ],l,ni.disabled,E,i.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments)}},background:function(t,e,i){var r,n,o,a,s,l,u,c,p,h,d,f,m,g,y,v,_,x,b,w=i.paint.get(\"background-color\"),S=i.paint.get(\"background-opacity\");if(0!==S){var T=t.context,E=T.gl,I=t.transform,C=I.tileSize,A=i.paint.get(\"background-pattern\");if(!t.isPatternMissing(A)){var k=!A&&1===w.a&&1===S&&t.opaquePassEnabledForLayer()?\"opaque\":\"translucent\";if(t.renderPass===k){var P=ii.disabled,M=t.depthModeForSublayer(0,\"opaque\"==k?ei.ReadWrite:ei.ReadOnly),L=t.colorModeForRenderPass(),D=t.useProgram(A?\"backgroundPattern\":\"background\"),O=I.coveringTiles({tileSize:C});A&&(T.activeTexture.set(E.TEXTURE0),t.imageManager.bind(t.context));for(var z=i.getCrossfadeParameters(),R=0,N=O;R<N.length;R+=1){var B=N[R],F=t.transform.calculatePosMatrix(B.toUnwrapped()),U=A?(r=F,n=S,o=t,a=A,s={tileID:B,tileSize:C},l=z,b=x=_=v=y=g=m=f=d=h=p=c=u=void 0,_t.extend((u=a,c=l,h=s,d=(p=o).imageManager.getPattern(u.from.toString()),f=p.imageManager.getPattern(u.to.toString()),m=p.imageManager.getPixelSize(),g=m.width,y=m.height,v=Math.pow(2,h.tileID.overscaledZ),_=h.tileSize*Math.pow(2,p.transform.tileZoom)/v,x=_*(h.tileID.canonical.x+h.tileID.wrap*v),b=_*h.tileID.canonical.y,{u_image:0,u_pattern_tl_a:d.tl,u_pattern_br_a:d.br,u_pattern_tl_b:f.tl,u_pattern_br_b:f.br,u_texsize:[g,y],u_mix:c.t,u_pattern_size_a:d.displaySize,u_pattern_size_b:f.displaySize,u_scale_a:c.fromScale,u_scale_b:c.toScale,u_tile_units_to_pixels:1/Ui(h,1,p.transform.tileZoom),u_pixel_coord_upper:[x>>16,b>>16],u_pixel_coord_lower:[65535&x,65535&b]}),{u_matrix:r,u_opacity:n})):{u_matrix:F,u_opacity:S,u_color:w};D.draw(T,E.TRIANGLES,M,P,L,ni.disabled,U,i.id,t.tileExtentBuffer,t.quadTriangleIndexBuffer,t.tileExtentSegments)}}}}},debug:function(t,e,i){for(var r=0;r<i.length;r++)In(t,e,i[r])},custom:function(t,e,i){var r=t.context,n=i.implementation;if(\"offscreen\"===t.renderPass){var o=n.prerender;o&&(t.setCustomLayerDefaults(),r.setColorMode(t.colorModeForRenderPass()),o.call(n,r.gl,t.transform.customLayerMatrix()),r.setDirty(),t.setBaseState())}else if(\"translucent\"===t.renderPass){t.setCustomLayerDefaults(),r.setColorMode(t.colorModeForRenderPass()),r.setStencilMode(ii.disabled);var a=\"3d\"===n.renderingMode?new ei(t.context.gl.LEQUAL,ei.ReadWrite,t.depthRangeFor3D):t.depthModeForSublayer(0,ei.ReadOnly);r.setDepthMode(a),n.render(r.gl,t.transform.customLayerMatrix()),r.setDirty(),t.setBaseState(),r.bindFramebuffer.set(null)}}};function Pn(t,e){this.points=t,this.planes=e}function Mn(t,e){this.min=t,this.max=e,this.center=_t.scale$2([],_t.add([],this.min,this.max),.5)}function Ln(t,e,i,r,n){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===n||n,this._minZoom=t||0,this._maxZoom=e||22,this._minPitch=null==i?0:i,this._maxPitch=null==r?60:r,this.setMaxBounds(),this.width=0,this.height=0,this._center=new _t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._posMatrixCache={},this._alignedPosMatrixCache={}}Cn.prototype.resize=function(t,e){var i=this.context.gl;if(this.width=t*_t.browser.devicePixelRatio,this.height=e*_t.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var r=0,n=this.style._order;r<n.length;r+=1){var o=n[r];this.style._layers[o].resize()}this.depthRbo&&(i.deleteRenderbuffer(this.depthRbo),this.depthRbo=null)},Cn.prototype.setup=function(){var t=this.context,e=new _t.StructArrayLayout2i4;e.emplaceBack(0,0),e.emplaceBack(_t.EXTENT,0),e.emplaceBack(0,_t.EXTENT),e.emplaceBack(_t.EXTENT,_t.EXTENT),this.tileExtentBuffer=t.createVertexBuffer(e,_r.members),this.tileExtentSegments=_t.SegmentVector.simpleSegment(0,0,4,2);var i=new _t.StructArrayLayout2i4;i.emplaceBack(0,0),i.emplaceBack(_t.EXTENT,0),i.emplaceBack(0,_t.EXTENT),i.emplaceBack(_t.EXTENT,_t.EXTENT),this.debugBuffer=t.createVertexBuffer(i,_r.members),this.debugSegments=_t.SegmentVector.simpleSegment(0,0,4,5);var r=new _t.StructArrayLayout4i8;r.emplaceBack(0,0,0,0),r.emplaceBack(_t.EXTENT,0,_t.EXTENT,0),r.emplaceBack(0,_t.EXTENT,0,_t.EXTENT),r.emplaceBack(_t.EXTENT,_t.EXTENT,_t.EXTENT,_t.EXTENT),this.rasterBoundsBuffer=t.createVertexBuffer(r,B.members),this.rasterBoundsSegments=_t.SegmentVector.simpleSegment(0,0,4,2);var n=new _t.StructArrayLayout2i4;n.emplaceBack(0,0),n.emplaceBack(1,0),n.emplaceBack(0,1),n.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(n,_r.members),this.viewportSegments=_t.SegmentVector.simpleSegment(0,0,4,2);var o=new _t.StructArrayLayout1ui2;o.emplaceBack(0),o.emplaceBack(1),o.emplaceBack(3),o.emplaceBack(2),o.emplaceBack(0),this.tileBorderIndexBuffer=t.createIndexBuffer(o);var a=new _t.StructArrayLayout3ui6;a.emplaceBack(0,1,2),a.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(a);var s=this.context.gl;this.stencilClearMode=new ii({func:s.ALWAYS,mask:0},0,255,s.ZERO,s.ZERO,s.ZERO)},Cn.prototype.clearStencil=function(){var t=this.context,e=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var i=_t.create();_t.ortho(i,0,this.width,this.height,0,0,1),_t.scale(i,i,[e.drawingBufferWidth,e.drawingBufferHeight,0]),this.useProgram(\"clippingMask\").draw(t,e.TRIANGLES,ei.disabled,this.stencilClearMode,ri.disabled,ni.disabled,rn(i),\"$clipping\",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)},Cn.prototype._renderTileClippingMasks=function(t,e){if(this.currentStencilSource!==t.source&&t.isTileClipped()&&e&&e.length){this.currentStencilSource=t.source;var i=this.context,r=i.gl;256<this.nextStencilID+e.length&&this.clearStencil(),i.setColorMode(ri.disabled),i.setDepthMode(ei.disabled);var n=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(var o=0,a=e;o<a.length;o+=1){var s=a[o],l=this._tileClippingMaskIDs[s.key]=this.nextStencilID++;n.draw(i,r.TRIANGLES,ei.disabled,new ii({func:r.ALWAYS,mask:0},l,255,r.KEEP,r.KEEP,r.REPLACE),ri.disabled,ni.disabled,rn(s.posMatrix),\"$clipping\",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}},Cn.prototype.stencilModeFor3D=function(){this.currentStencilSource=void 0,256<this.nextStencilID+1&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new ii({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},Cn.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new ii({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},Cn.prototype.stencilConfigForOverlap=function(t){var e,i=this.context.gl,r=t.sort(function(t,e){return e.overscaledZ-t.overscaledZ}),n=r[r.length-1].overscaledZ,o=r[0].overscaledZ-n+1;if(1<o){this.currentStencilSource=void 0,256<this.nextStencilID+o&&this.clearStencil();for(var a={},s=0;s<o;s++)a[s+n]=new ii({func:i.GEQUAL,mask:255},s+this.nextStencilID,255,i.KEEP,i.KEEP,i.REPLACE);return this.nextStencilID+=o,[a,r]}return[((e={})[n]=ii.disabled,e),r]},Cn.prototype.colorModeForRenderPass=function(){var t=this.context.gl;return this._showOverdrawInspector?new ri([t.CONSTANT_COLOR,t.ONE],new _t.Color(1/8,1/8,1/8,0),[!0,!0,!0,!0]):\"opaque\"===this.renderPass?ri.unblended:ri.alphaBlended},Cn.prototype.depthModeForSublayer=function(t,e,i){if(!this.opaquePassEnabledForLayer())return ei.disabled;var r=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon;return new ei(i||this.context.gl.LEQUAL,e,[r,r])},Cn.prototype.opaquePassEnabledForLayer=function(){return this.currentLayer<this.opaquePassCutoff},Cn.prototype.render=function(t,e){var i=this;this.style=t,this.options=e,this.lineAtlas=t.lineAtlas,this.imageManager=t.imageManager,this.glyphManager=t.glyphManager,this.symbolFadeChange=t.placement.symbolFadeChange(_t.browser.now()),this.imageManager.beginFrame();var r=this.style._order,n=this.style.sourceCaches;for(var o in n){var a=n[o];a.used&&a.prepare(this.context)}var s,l,u={},c={},p={};for(var h in n){var d=n[h];u[h]=d.getVisibleCoordinates(),c[h]=u[h].slice().reverse(),p[h]=d.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(var f=0;f<r.length;f++){var m=r[f];if(this.style._layers[m].is3D()){this.opaquePassCutoff=f;break}}this.renderPass=\"offscreen\",this.depthRboNeedsClear=!0;for(var g=0,y=r;g<y.length;g+=1){var v=y[g],_=this.style._layers[v];if(_.hasOffscreenPass()&&!_.isHidden(this.transform.zoom)){var x=c[_.source];\"custom\"!==_.type&&!x.length||this.renderLayer(this,n[_.source],_,x)}}for(this.context.bindFramebuffer.set(null),this.context.clear({color:e.showOverdrawInspector?_t.Color.black:_t.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=e.showOverdrawInspector,this.depthRangeFor3D=[0,1-(t._order.length+2)*this.numSublayers*this.depthEpsilon],this.renderPass=\"opaque\",this.currentLayer=r.length-1;0<=this.currentLayer;this.currentLayer--){var b=this.style._layers[r[this.currentLayer]],w=n[b.source],S=u[b.source];this._renderTileClippingMasks(b,S),this.renderLayer(this,w,b,S)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayer<r.length;this.currentLayer++){var T=this.style._layers[r[this.currentLayer]],E=n[T.source],I=(\"symbol\"===T.type?p:c)[T.source];this._renderTileClippingMasks(T,u[T.source]),this.renderLayer(this,E,T,I)}this.options.showTileBoundaries&&(_t.values(this.style._layers).forEach(function(t){t.source&&!t.isHidden(i.transform.zoom)&&(t.source!==(l&&l.id)&&(l=i.style.sourceCaches[t.source]),(!s||s.getSource().maxzoom<l.getSource().maxzoom)&&(s=l))}),s&&kn.debug(this,s,s.getVisibleCoordinates())),this.context.setDefault()},Cn.prototype.setupOffscreenDepthRenderbuffer=function(){var t=this.context;this.depthRbo||(this.depthRbo=t.createRenderbuffer(t.gl.DEPTH_COMPONENT16,this.width,this.height))},Cn.prototype.renderLayer=function(t,e,i,r){i.isHidden(this.transform.zoom)||\"background\"!==i.type&&\"custom\"!==i.type&&!r.length||(this.id=i.id,this.gpuTimingStart(i),kn[i.type](t,e,i,r,this.style.placement.variableOffsets),this.gpuTimingEnd())},Cn.prototype.gpuTimingStart=function(t){if(this.options.gpuTiming){var e=this.context.extTimerQuery,i=this.gpuTimers[t.id];(i=i||(this.gpuTimers[t.id]={calls:0,cpuTime:0,query:e.createQueryEXT()})).calls++,e.beginQueryEXT(e.TIME_ELAPSED_EXT,i.query)}},Cn.prototype.gpuTimingEnd=function(){if(this.options.gpuTiming){var t=this.context.extTimerQuery;t.endQueryEXT(t.TIME_ELAPSED_EXT)}},Cn.prototype.collectGpuTimers=function(){var t=this.gpuTimers;return this.gpuTimers={},t},Cn.prototype.queryGpuTimers=function(t){var e={};for(var i in t){var r=t[i],n=this.context.extTimerQuery,o=n.getQueryObjectEXT(r.query,n.QUERY_RESULT_EXT)/1e6;n.deleteQueryEXT(r.query),e[i]=o}return e},Cn.prototype.translatePosMatrix=function(t,e,i,r,n){if(!i[0]&&!i[1])return t;var o=n?\"map\"===r?this.transform.angle:0:\"viewport\"===r?-this.transform.angle:0;if(o){var a=Math.sin(o),s=Math.cos(o);i=[i[0]*s-i[1]*a,i[0]*a+i[1]*s]}var l=[n?i[0]:Ui(e,i[0],this.transform.zoom),n?i[1]:Ui(e,i[1],this.transform.zoom),0],u=new Float32Array(16);return _t.translate(u,t,l),u},Cn.prototype.saveTileTexture=function(t){var e=this._tileTextures[t.size[0]];e?e.push(t):this._tileTextures[t.size[0]]=[t]},Cn.prototype.getTileTexture=function(t){var e=this._tileTextures[t];return e&&0<e.length?e.pop():null},Cn.prototype.isPatternMissing=function(t){if(!t)return!1;var e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return!e||!i},Cn.prototype.useProgram=function(t,e){this.cache=this.cache||{};var i=\"\"+t+(e?e.cacheKey:\"\")+(this._showOverdrawInspector?\"/overdraw\":\"\");return this.cache[i]||(this.cache[i]=new Xr(this.context,Wr[t],e,fn[t],this._showOverdrawInspector)),this.cache[i]},Cn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},Cn.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},Pn.fromInvProjectionMatrix=function(e,i,t){var r=Math.pow(2,t),o=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(function(t){return _t.transformMat4([],t,e)}).map(function(t){return _t.scale$1([],t,1/t[3]/i*r)}),n=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(function(t){var e=_t.sub([],o[t[0]],o[t[1]]),i=_t.sub([],o[t[2]],o[t[1]]),r=_t.normalize([],_t.cross([],e,i)),n=-_t.dot(r,o[t[1]]);return r.concat(n)});return new Pn(o,n)},Mn.prototype.quadrant=function(t){for(var e=[t%2==0,t<2],i=_t.clone$2(this.min),r=_t.clone$2(this.max),n=0;n<e.length;n++)i[n]=e[n]?this.min[n]:this.center[n],r[n]=e[n]?this.center[n]:this.max[n];return r[2]=this.max[2],new Mn(i,r)},Mn.prototype.distanceX=function(t){return Math.max(Math.min(this.max[0],t[0]),this.min[0])-t[0]},Mn.prototype.distanceY=function(t){return Math.max(Math.min(this.max[1],t[1]),this.min[1])-t[1]},Mn.prototype.intersects=function(t){for(var e=[[this.min[0],this.min[1],0,1],[this.max[0],this.min[1],0,1],[this.max[0],this.max[1],0,1],[this.min[0],this.max[1],0,1]],i=!0,r=0;r<t.planes.length;r++){for(var n=t.planes[r],o=0,a=0;a<e.length;a++)o+=0<=_t.dot$1(n,e[a]);if(0===o)return 0;o!==e.length&&(i=!1)}if(i)return 2;for(var s=0;s<3;s++){for(var l=Number.MAX_VALUE,u=-Number.MAX_VALUE,c=0;c<t.points.length;c++){var p=t.points[c][s]-this.min[s];l=Math.min(l,p),u=Math.max(u,p)}if(u<0||l>this.max[s]-this.min[s])return 0}return 1};var Dn={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerPoint:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};function On(t){var e,i,r,n;this._hashName=t&&encodeURIComponent(t),_t.bindAll([\"_getCurrentHash\",\"_onHashChange\",\"_updateHash\"],this),this._updateHash=(e=this._updateHashUnthrottled.bind(this),i=!1,r=null,n=function(){r=null,i&&(e(),r=setTimeout(n,300),i=!1)},function(){return i=!0,r||n(),r})}function zn(t){this._map=t,this._el=t.getCanvasContainer(),this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,_t.bindAll([\"_onWheel\",\"_onTimeout\",\"_onScrollFrame\",\"_onScrollFinished\"],this)}Ln.prototype.clone=function(){var t=new Ln(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._calcMatrices(),t},Dn.minZoom.get=function(){return this._minZoom},Dn.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Dn.maxZoom.get=function(){return this._maxZoom},Dn.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Dn.minPitch.get=function(){return this._minPitch},Dn.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},Dn.maxPitch.get=function(){return this._maxPitch},Dn.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},Dn.renderWorldCopies.get=function(){return this._renderWorldCopies},Dn.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Dn.worldSize.get=function(){return this.tileSize*this.scale},Dn.centerPoint.get=function(){return this.size._div(2)},Dn.size.get=function(){return new _t.Point(this.width,this.height)},Dn.bearing.get=function(){return-this.angle/Math.PI*180},Dn.bearing.set=function(t){var e=-_t.wrap(t,-180,180)*Math.PI/180;this.angle!==e&&(this._unmodified=!1,this.angle=e,this._calcMatrices(),this.rotationMatrix=_t.create$2(),_t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Dn.pitch.get=function(){return this._pitch/Math.PI*180},Dn.pitch.set=function(t){var e=_t.clamp(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==e&&(this._unmodified=!1,this._pitch=e,this._calcMatrices())},Dn.fov.get=function(){return this._fov/Math.PI*180},Dn.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Dn.zoom.get=function(){return this._zoom},Dn.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Dn.center.get=function(){return this._center},Dn.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Ln.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},Ln.prototype.getVisibleUnwrappedCoordinates=function(t){var e=[new _t.UnwrappedTileID(0,t)];if(this._renderWorldCopies)for(var i=this.pointCoordinate(new _t.Point(0,0)),r=this.pointCoordinate(new _t.Point(this.width,0)),n=this.pointCoordinate(new _t.Point(this.width,this.height)),o=this.pointCoordinate(new _t.Point(0,this.height)),a=Math.floor(Math.min(i.x,r.x,n.x,o.x)),s=Math.floor(Math.max(i.x,r.x,n.x,o.x)),l=a-1;l<=s+1;l++)0!==l&&e.push(new _t.UnwrappedTileID(l,t));return e},Ln.prototype.coveringTiles=function(t){var e=this.coveringZoomLevel(t),i=e;if(void 0!==t.minzoom&&e<t.minzoom)return[];void 0!==t.maxzoom&&e>t.maxzoom&&(e=t.maxzoom);var r=_t.MercatorCoordinate.fromLngLat(this.center),n=Math.pow(2,e),o=[n*r.x,n*r.y,0],a=Pn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,e),s=t.minzoom||0;function l(t){return{aabb:new Mn([t*n,0,0],[(t+1)*n,n,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}}this.pitch<=60&&(s=e);var u=[],c=[],p=e,h=t.reparseOverscaled?i:e;if(this._renderWorldCopies)for(var d=1;d<=3;d++)u.push(l(-d)),u.push(l(d));for(u.push(l(0));0<u.length;){var f=u.pop(),m=f.x,g=f.y,y=f.fullyVisible;if(!y){var v=f.aabb.intersects(a);if(0===v)continue;y=2===v}var _=f.aabb.distanceX(o),x=f.aabb.distanceY(o),b=Math.max(Math.abs(_),Math.abs(x)),w=3+(1<<p-f.zoom)-2;if(f.zoom===p||w<b&&f.zoom>=s)c.push({tileID:new _t.OverscaledTileID(f.zoom===p?h:f.zoom,f.wrap,f.zoom,m,g),distanceSq:_t.sqrLen([o[0]-.5-m,o[1]-.5-g])});else for(var S=0;S<4;S++){var T=(m<<1)+S%2,E=(g<<1)+(S>>1);u.push({aabb:f.aabb.quadrant(S),zoom:f.zoom+1,x:T,y:E,wrap:f.wrap,fullyVisible:y})}}return c.sort(function(t,e){return t.distanceSq-e.distanceSq}).map(function(t){return t.tileID})},Ln.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Dn.unmodified.get=function(){return this._unmodified},Ln.prototype.zoomScale=function(t){return Math.pow(2,t)},Ln.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Ln.prototype.project=function(t){var e=_t.clamp(t.lat,-this.maxValidLatitude,this.maxValidLatitude);return new _t.Point(_t.mercatorXfromLng(t.lng)*this.worldSize,_t.mercatorYfromLat(e)*this.worldSize)},Ln.prototype.unproject=function(t){return new _t.MercatorCoordinate(t.x/this.worldSize,t.y/this.worldSize).toLngLat()},Dn.point.get=function(){return this.project(this.center)},Ln.prototype.setLocationAtPoint=function(t,e){var i=this.pointCoordinate(e),r=this.pointCoordinate(this.centerPoint),n=this.locationCoordinate(t),o=new _t.MercatorCoordinate(n.x-(i.x-r.x),n.y-(i.y-r.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},Ln.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Ln.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Ln.prototype.locationCoordinate=function(t){return _t.MercatorCoordinate.fromLngLat(t)},Ln.prototype.coordinateLocation=function(t){return t.toLngLat()},Ln.prototype.pointCoordinate=function(t){var e=[t.x,t.y,0,1],i=[t.x,t.y,1,1];_t.transformMat4(e,e,this.pixelMatrixInverse),_t.transformMat4(i,i,this.pixelMatrixInverse);var r=e[3],n=i[3],o=e[0]/r,a=i[0]/n,s=e[1]/r,l=i[1]/n,u=e[2]/r,c=i[2]/n,p=u==c?0:(0-u)/(c-u);return new _t.MercatorCoordinate(_t.number(o,a,p)/this.worldSize,_t.number(s,l,p)/this.worldSize)},Ln.prototype.coordinatePoint=function(t){var e=[t.x*this.worldSize,t.y*this.worldSize,0,1];return _t.transformMat4(e,e,this.pixelMatrix),new _t.Point(e[0]/e[3],e[1]/e[3])},Ln.prototype.getBounds=function(){return(new _t.LngLatBounds).extend(this.pointLocation(new _t.Point(0,0))).extend(this.pointLocation(new _t.Point(this.width,0))).extend(this.pointLocation(new _t.Point(this.width,this.height))).extend(this.pointLocation(new _t.Point(0,this.height)))},Ln.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new _t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},Ln.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},Ln.prototype.calculatePosMatrix=function(t,e){void 0===e&&(e=!1);var i=t.key,r=e?this._alignedPosMatrixCache:this._posMatrixCache;if(r[i])return r[i];var n=t.canonical,o=this.worldSize/this.zoomScale(n.z),a=n.x+Math.pow(2,n.z)*t.wrap,s=_t.identity(new Float64Array(16));return _t.translate(s,s,[a*o,n.y*o,0]),_t.scale(s,s,[o/_t.EXTENT,o/_t.EXTENT,1]),_t.multiply(s,e?this.alignedProjMatrix:this.projMatrix,s),r[i]=new Float32Array(s),r[i]},Ln.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},Ln.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,e,i,r,n=-90,o=90,a=-180,s=180,l=this.size,u=this._unmodified;if(this.latRange){var c=this.latRange;n=_t.mercatorYfromLat(c[1])*this.worldSize,t=(o=_t.mercatorYfromLat(c[0])*this.worldSize)-n<l.y?l.y/(o-n):0}if(this.lngRange){var p=this.lngRange;a=_t.mercatorXfromLng(p[0])*this.worldSize,e=(s=_t.mercatorXfromLng(p[1])*this.worldSize)-a<l.x?l.x/(s-a):0}var h=this.point,d=Math.max(e||0,t||0);if(d)return this.center=this.unproject(new _t.Point(e?(s+a)/2:h.x,t?(o+n)/2:h.y)),this.zoom+=this.scaleZoom(d),this._unmodified=u,void(this._constraining=!1);if(this.latRange){var f=h.y,m=l.y/2;f-m<n&&(r=n+m),o<f+m&&(r=o-m)}if(this.lngRange){var g=h.x,y=l.x/2;g-y<a&&(i=a+y),s<g+y&&(i=s-y)}void 0===i&&void 0===r||(this.center=this.unproject(new _t.Point(void 0!==i?i:h.x,void 0!==r?r:h.y))),this._unmodified=u,this._constraining=!1}},Ln.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,i=Math.sin(t)*this.cameraToCenterDistance/Math.sin(_t.clamp(Math.PI-e-t,.01,Math.PI-.01)),r=this.point,n=r.x,o=r.y,a=1.01*(Math.cos(Math.PI/2-this._pitch)*i+this.cameraToCenterDistance),s=this.height/50,l=new Float64Array(16);_t.perspective(l,this._fov,this.width/this.height,s,a),_t.scale(l,l,[1,-1,1]),_t.translate(l,l,[0,0,-this.cameraToCenterDistance]),_t.rotateX(l,l,this._pitch),_t.rotateZ(l,l,this.angle),_t.translate(l,l,[-n,-o,0]),this.mercatorMatrix=_t.scale([],l,[this.worldSize,this.worldSize,this.worldSize]),_t.scale(l,l,[1,1,_t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=l,this.invProjMatrix=_t.invert([],this.projMatrix);var u=this.width%2/2,c=this.height%2/2,p=Math.cos(this.angle),h=Math.sin(this.angle),d=n-Math.round(n)+p*u+h*c,f=o-Math.round(o)+p*c+h*u,m=new Float64Array(l);if(_t.translate(m,m,[.5<d?d-1:d,.5<f?f-1:f,0]),this.alignedProjMatrix=m,l=_t.create(),_t.scale(l,l,[this.width/2,-this.height/2,1]),_t.translate(l,l,[1,-1,0]),this.labelPlaneMatrix=l,l=_t.create(),_t.scale(l,l,[1,-1,1]),_t.translate(l,l,[-1,-1,0]),_t.scale(l,l,[2/this.width,2/this.height,1]),this.glCoordMatrix=l,this.pixelMatrix=_t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(l=_t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error(\"failed to invert matrix\");this.pixelMatrixInverse=l,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Ln.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var t=this.pointCoordinate(new _t.Point(0,0)),e=[t.x*this.worldSize,t.y*this.worldSize,0,1];return _t.transformMat4(e,e,this.pixelMatrix)[3]/this.cameraToCenterDistance},Ln.prototype.getCameraPoint=function(){var t=this._pitch,e=Math.tan(t)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new _t.Point(0,e))},Ln.prototype.getCameraQueryGeometry=function(t){var e=this.getCameraPoint();if(1===t.length)return[t[0],e];for(var i=e.x,r=e.y,n=e.x,o=e.y,a=0,s=t;a<s.length;a+=1){var l=s[a];i=Math.min(i,l.x),r=Math.min(r,l.y),n=Math.max(n,l.x),o=Math.max(o,l.y)}return[new _t.Point(i,r),new _t.Point(n,r),new _t.Point(n,o),new _t.Point(i,o),new _t.Point(i,r)]},Object.defineProperties(Ln.prototype,Dn),On.prototype.addTo=function(t){return this._map=t,_t.window.addEventListener(\"hashchange\",this._onHashChange,!1),this._map.on(\"moveend\",this._updateHash),this},On.prototype.remove=function(){return _t.window.removeEventListener(\"hashchange\",this._onHashChange,!1),this._map.off(\"moveend\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},On.prototype.getHashString=function(t){var e=this._map.getCenter(),i=Math.round(100*this._map.getZoom())/100,r=Math.ceil((i*Math.LN2+Math.log(512/360/.5))/Math.LN10),n=Math.pow(10,r),o=Math.round(e.lng*n)/n,a=Math.round(e.lat*n)/n,s=this._map.getBearing(),l=this._map.getPitch(),u=\"\";if(u+=t?\"/\"+o+\"/\"+a+\"/\"+i:i+\"/\"+a+\"/\"+o,(s||l)&&(u+=\"/\"+Math.round(10*s)/10),l&&(u+=\"/\"+Math.round(l)),this._hashName){var c=this._hashName,p=!1,h=_t.window.location.hash.slice(1).split(\"&\").map(function(t){var e=t.split(\"=\")[0];return e===c?(p=!0,e+\"=\"+u):t}).filter(function(t){return t});return p||h.push(c+\"=\"+u),\"#\"+h.join(\"&\")}return\"#\"+u},On.prototype._getCurrentHash=function(){var e,i=this,t=_t.window.location.hash.replace(\"#\",\"\");return this._hashName?(t.split(\"&\").map(function(t){return t.split(\"=\")}).forEach(function(t){t[0]===i._hashName&&(e=t)}),(e&&e[1]||\"\").split(\"/\")):t.split(\"/\")},On.prototype._onHashChange=function(){var t=this._getCurrentHash();if(3<=t.length&&!t.some(function(t){return isNaN(t)})){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},On.prototype._updateHashUnthrottled=function(){var t=this.getHashString();try{_t.window.history.replaceState(_t.window.history.state,\"\",t)}catch(t){}};var Rn=function(a){function t(t,e,i,r){void 0===r&&(r={});var n=_.mousePos(e.getCanvasContainer(),i),o=e.unproject(n);a.call(this,t,_t.extend({point:n,lngLat:o,originalEvent:i},r)),this._defaultPrevented=!1,this.target=e}a&&(t.__proto__=a);var e={defaultPrevented:{configurable:!0}};return((t.prototype=Object.create(a&&a.prototype)).constructor=t).prototype.preventDefault=function(){this._defaultPrevented=!0},e.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(t.prototype,e),t}(_t.Event),Nn=function(s){function t(t,e,i){var r=_.touchPos(e.getCanvasContainer(),i),n=r.map(function(t){return e.unproject(t)}),o=r.reduce(function(t,e,i,r){return t.add(e.div(r.length))},new _t.Point(0,0)),a=e.unproject(o);s.call(this,t,{points:r,point:o,lngLats:n,lngLat:a,originalEvent:i}),this._defaultPrevented=!1}s&&(t.__proto__=s);var e={defaultPrevented:{configurable:!0}};return((t.prototype=Object.create(s&&s.prototype)).constructor=t).prototype.preventDefault=function(){this._defaultPrevented=!0},e.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(t.prototype,e),t}(_t.Event),Bn=function(r){function t(t,e,i){r.call(this,t,{originalEvent:i}),this._defaultPrevented=!1}r&&(t.__proto__=r);var e={defaultPrevented:{configurable:!0}};return((t.prototype=Object.create(r&&r.prototype)).constructor=t).prototype.preventDefault=function(){this._defaultPrevented=!0},e.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(t.prototype,e),t}(_t.Event);function Fn(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1,_t.bindAll([\"_onMouseMove\",\"_onMouseUp\",\"_onKeyDown\"],this)}function Un(t,e){this._map=t,this._el=e.element||t.getCanvasContainer(),this._state=\"disabled\",this._button=e.button||\"right\",this._bearingSnap=e.bearingSnap||0,this._pitchWithRotate=!1!==e.pitchWithRotate,this._clickTolerance=e.clickTolerance||1,_t.bindAll([\"onMouseDown\",\"_onMouseMove\",\"_onMouseUp\",\"_onBlur\",\"_onDragFrame\"],this)}zn.prototype.setZoomRate=function(t){this._defaultZoomRate=t},zn.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},zn.prototype.isEnabled=function(){return!!this._enabled},zn.prototype.isActive=function(){return!!this._active},zn.prototype.isZooming=function(){return!!this._zooming},zn.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&\"center\"===t.around)},zn.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},zn.prototype.onWheel=function(t){if(this.isEnabled()){var e=t.deltaMode===_t.window.WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY,i=_t.browser.now(),r=i-(this._lastWheelEventTime||0);this._lastWheelEventTime=i,0!==e&&e%4.000244140625==0?this._type=\"wheel\":0!==e&&Math.abs(e)<4?this._type=\"trackpad\":400<r?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(r*e)<200?\"trackpad\":\"wheel\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&(this._lastWheelEvent=t,this._delta-=e,this.isActive()||this._start(t)),t.preventDefault()}},zn.prototype._onTimeout=function(t){this._type=\"wheel\",this._delta-=this._lastValue,this.isActive()||this._start(t)},zn.prototype._start=function(t){if(this._delta){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0,this._map.fire(new _t.Event(\"movestart\",{originalEvent:t})),this._map.fire(new _t.Event(\"zoomstart\",{originalEvent:t}))),this._finishTimeout&&clearTimeout(this._finishTimeout);var e=_.mousePos(this._el,t);this._around=_t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(e)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onScrollFrame))}},zn.prototype._onScrollFrame=function(){var t=this;if(this._frameId=null,this.isActive()){var e=this._map.transform;if(0!==this._delta){var i=\"wheel\"===this._type&&4.000244140625<Math.abs(this._delta)?this._wheelZoomRate:this._defaultZoomRate,r=2/(1+Math.exp(-Math.abs(this._delta*i)));this._delta<0&&0!==r&&(r=1/r);var n=\"number\"==typeof this._targetZoom?e.zoomScale(this._targetZoom):e.scale;this._targetZoom=Math.min(e.maxZoom,Math.max(e.minZoom,e.scaleZoom(n*r))),\"wheel\"===this._type&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o=\"number\"==typeof this._targetZoom?this._targetZoom:e.zoom,a=this._startZoom,s=this._easing,l=!1;if(\"wheel\"===this._type&&a&&s){var u=Math.min((_t.browser.now()-this._lastWheelEventTime)/200,1),c=s(u);e.zoom=_t.number(a,o,c),u<1?this._frameId||(this._frameId=this._map._requestRenderFrame(this._onScrollFrame)):l=!0}else e.zoom=o,l=!0;e.setLocationAtPoint(this._around,this._aroundPoint),this._map.fire(new _t.Event(\"move\",{originalEvent:this._lastWheelEvent})),this._map.fire(new _t.Event(\"zoom\",{originalEvent:this._lastWheelEvent})),l&&(this._active=!1,this._finishTimeout=setTimeout(function(){t._zooming=!1,t._map.fire(new _t.Event(\"zoomend\",{originalEvent:t._lastWheelEvent})),t._map.fire(new _t.Event(\"moveend\",{originalEvent:t._lastWheelEvent})),delete t._targetZoom},200))}},zn.prototype._smoothOutEasing=function(t){var e=_t.ease;if(this._prevEase){var i=this._prevEase,r=(_t.browser.now()-i.start)/i.duration,n=i.easing(.01+r)-i.easing(r),o=.27/Math.sqrt(n*n+1e-4)*.01,a=Math.sqrt(.0729-o*o);e=_t.bezier(o,a,.25,1)}return this._prevEase={start:_t.browser.now(),duration:t,easing:e},e},Fn.prototype.isEnabled=function(){return!!this._enabled},Fn.prototype.isActive=function(){return!!this._active},Fn.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Fn.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Fn.prototype.onMouseDown=function(t){this.isEnabled()&&t.shiftKey&&0===t.button&&(_t.window.document.addEventListener(\"mousemove\",this._onMouseMove,!1),_t.window.document.addEventListener(\"keydown\",this._onKeyDown,!1),_t.window.document.addEventListener(\"mouseup\",this._onMouseUp,!1),_.disableDrag(),this._startPos=this._lastPos=_.mousePos(this._el,t),this._active=!0)},Fn.prototype._onMouseMove=function(t){var e=_.mousePos(this._el,t);if(!(this._lastPos.equals(e)||!this._box&&e.dist(this._startPos)<this._clickTolerance)){var i=this._startPos;this._lastPos=e,this._box||(this._box=_.create(\"div\",\"mapboxgl-boxzoom\",this._container),this._container.classList.add(\"mapboxgl-crosshair\"),this._fireEvent(\"boxzoomstart\",t));var r=Math.min(i.x,e.x),n=Math.max(i.x,e.x),o=Math.min(i.y,e.y),a=Math.max(i.y,e.y);_.setTransform(this._box,\"translate(\"+r+\"px,\"+o+\"px)\"),this._box.style.width=n-r+\"px\",this._box.style.height=a-o+\"px\"}},Fn.prototype._onMouseUp=function(t){if(0===t.button){var e=this._startPos,i=_.mousePos(this._el,t);this._finish(),_.suppressClick(),e.x===i.x&&e.y===i.y?this._fireEvent(\"boxzoomcancel\",t):this._map.fitScreenCoordinates(e,i,this._map.getBearing(),{linear:!0}).fire(new _t.Event(\"boxzoomend\",{originalEvent:t}))}},Fn.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent(\"boxzoomcancel\",t))},Fn.prototype._finish=function(){this._active=!1,_t.window.document.removeEventListener(\"mousemove\",this._onMouseMove,!1),_t.window.document.removeEventListener(\"keydown\",this._onKeyDown,!1),_t.window.document.removeEventListener(\"mouseup\",this._onMouseUp,!1),this._container.classList.remove(\"mapboxgl-crosshair\"),this._box&&(_.remove(this._box),this._box=null),_.enableDrag(),delete this._startPos,delete this._lastPos},Fn.prototype._fireEvent=function(t,e){return this._map.fire(new _t.Event(t,{originalEvent:e}))};var jn=_t.bezier(0,0,.25,1);function qn(t,e){this._map=t,this._el=t.getCanvasContainer(),this._state=\"disabled\",this._clickTolerance=e.clickTolerance||1,this._inertiaOptions=Vn,_t.bindAll([\"_onMove\",\"_onMouseUp\",\"_onTouchEnd\",\"_onBlur\",\"_onDragFrame\"],this)}Un.prototype.isEnabled=function(){return\"disabled\"!==this._state},Un.prototype.isActive=function(){return\"active\"===this._state},Un.prototype.enable=function(){this.isEnabled()||(this._state=\"enabled\")},Un.prototype.disable=function(){if(this.isEnabled())switch(this._state){case\"active\":this._state=\"disabled\",this._unbind(),this._deactivate(),this._fireEvent(\"rotateend\"),this._pitchWithRotate&&this._fireEvent(\"pitchend\"),this._fireEvent(\"moveend\");break;case\"pending\":this._state=\"disabled\",this._unbind();break;default:this._state=\"disabled\"}},Un.prototype.onMouseDown=function(t){if(\"enabled\"===this._state){var e=\"touchstart\"===t.type;if(e)this._startTime=Date.now();else if(\"right\"===this._button){if(this._eventButton=_.mouseButton(t),t.altKey||t.metaKey)return;if(this._eventButton!==(t.ctrlKey?0:2))return}else{if(t.ctrlKey||0!==_.mouseButton(t))return;this._eventButton=0}_.disableDrag(),e?(_t.window.document.addEventListener(\"touchmove\",this._onMouseMove,{capture:!0}),_t.window.document.addEventListener(\"touchend\",this._onMouseUp)):(_t.window.document.addEventListener(\"mousemove\",this._onMouseMove,{capture:!0}),_t.window.document.addEventListener(\"mouseup\",this._onMouseUp)),_t.window.addEventListener(\"blur\",this._onBlur),this._state=\"pending\",this._inertia=[[_t.browser.now(),this._map.getBearing()]],this._startPos=this._prevPos=this._lastPos=_.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault()}},Un.prototype._onMouseMove=function(t){var e=_.mousePos(this._el,t);this._lastPos.equals(e)||\"pending\"===this._state&&e.dist(this._startPos)<this._clickTolerance||(this._lastMoveEvent=t,this._lastPos=e,\"pending\"===this._state&&(this._state=\"active\",this._fireEvent(\"rotatestart\",t),this._fireEvent(\"movestart\",t),this._pitchWithRotate&&this._fireEvent(\"pitchstart\",t)),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onDragFrame)))},Un.prototype._onDragFrame=function(){this._frameId=null;var t=this._lastMoveEvent;if(t){var e=this._map.transform,i=this._prevPos,r=this._lastPos,n=.8*(i.x-r.x),o=-.5*(i.y-r.y),a=e.bearing-n,s=e.pitch-o,l=this._inertia,u=l[l.length-1];this._drainInertiaBuffer(),l.push([_t.browser.now(),this._map._normalizeBearing(a,u[1])]);var c=e.bearing;if(e.bearing=a,this._pitchWithRotate){var p=e.pitch;e.pitch=s,e.pitch!==p&&this._fireEvent(\"pitch\",t)}e.bearing!==c&&this._fireEvent(\"rotate\",t),this._fireEvent(\"move\",t),delete this._lastMoveEvent,this._prevPos=this._lastPos}},Un.prototype._onMouseUp=function(t){var e=\"touchend\"===t.type;if(e&&this._startPos===this._lastPos&&Date.now()-this._startTime<300&&this._el.click(),e||_.mouseButton(t)===this._eventButton)switch(this._state){case\"active\":this._state=\"enabled\",_.suppressClick(),this._unbind(),this._deactivate(),this._inertialRotate(t);break;case\"pending\":this._state=\"enabled\",this._unbind()}},Un.prototype._onBlur=function(t){switch(this._state){case\"active\":this._state=\"enabled\",this._unbind(),this._deactivate(),this._fireEvent(\"rotateend\",t),this._pitchWithRotate&&this._fireEvent(\"pitchend\",t),this._fireEvent(\"moveend\",t);break;case\"pending\":this._state=\"enabled\",this._unbind()}},Un.prototype._unbind=function(){_t.window.document.removeEventListener(\"mousemove\",this._onMouseMove,{capture:!0}),_t.window.document.removeEventListener(\"mouseup\",this._onMouseUp),_t.window.document.removeEventListener(\"touchmove\",this._onMouseMove,{capture:!0}),_t.window.document.removeEventListener(\"touchend\",this._onMouseUp),_t.window.removeEventListener(\"blur\",this._onBlur),_.enableDrag()},Un.prototype._deactivate=function(){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._lastMoveEvent,delete this._startPos,delete this._prevPos,delete this._lastPos},Un.prototype._inertialRotate=function(t){var e=this;function i(){Math.abs(n)<e._bearingSnap?r.resetNorth({noMoveStart:!0},{originalEvent:t}):e._fireEvent(\"moveend\",t),e._pitchWithRotate&&e._fireEvent(\"pitchend\",t)}this._fireEvent(\"rotateend\",t),this._drainInertiaBuffer();var r=this._map,n=r.getBearing(),o=this._inertia;if(o.length<2)i();else{var a=o[0],s=o[o.length-1],l=o[o.length-2],u=r._normalizeBearing(n,l[1]),c=s[1]-a[1],p=c<0?-1:1,h=(s[0]-a[0])/1e3;if(0!=c&&0!=h){var d=Math.abs(.25/h*c);180<d&&(d=180);var f=d/180;u+=p*d*(f/2),Math.abs(r._normalizeBearing(u,0))<this._bearingSnap&&(u=r._normalizeBearing(0,u)),r.rotateTo(u,{duration:1e3*f,easing:jn,noMoveStart:!0},{originalEvent:t})}else i()}},Un.prototype._fireEvent=function(t,e){return this._map.fire(new _t.Event(t,e?{originalEvent:e}:{}))},Un.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=_t.browser.now();0<t.length&&160<e-t[0][0];)t.shift()};var Vn={linearity:.3,easing:_t.bezier(0,0,.3,1),maxSpeed:1400,deceleration:2500};function Gn(t){this._map=t,this._el=t.getCanvasContainer(),_t.bindAll([\"_onKeyDown\"],this)}function Zn(t){return t*(2-t)}function Hn(t){this._map=t,_t.bindAll([\"_onDblClick\",\"_onZoomEnd\"],this)}function Kn(t){this._map=t,this._el=t.getCanvasContainer(),_t.bindAll([\"_onMove\",\"_onEnd\",\"_onTouchFrame\"],this)}qn.prototype.isEnabled=function(){return\"disabled\"!==this._state},qn.prototype.isActive=function(){return\"active\"===this._state},qn.prototype.enable=function(t){this.isEnabled()||(this._el.classList.add(\"mapboxgl-touch-drag-pan\"),this._state=\"enabled\",this._inertiaOptions=_t.extend(Vn,t))},qn.prototype.disable=function(){if(this.isEnabled())switch(this._el.classList.remove(\"mapboxgl-touch-drag-pan\"),this._state){case\"active\":this._state=\"disabled\",this._unbind(),this._deactivate(),this._fireEvent(\"dragend\"),this._fireEvent(\"moveend\");break;case\"pending\":this._state=\"disabled\",this._unbind();break;default:this._state=\"disabled\"}},qn.prototype.onMouseDown=function(t){\"enabled\"===this._state&&(t.ctrlKey||0!==_.mouseButton(t)||(_.addEventListener(_t.window.document,\"mousemove\",this._onMove,{capture:!0}),_.addEventListener(_t.window.document,\"mouseup\",this._onMouseUp),this._start(t)))},qn.prototype.onTouchStart=function(t){this.isEnabled()&&(t.touches&&1<t.touches.length&&(\"pending\"===this._state||\"active\"===this._state)||(_.addEventListener(_t.window.document,\"touchmove\",this._onMove,{capture:!0,passive:!1}),_.addEventListener(_t.window.document,\"touchend\",this._onTouchEnd),this._start(t)))},qn.prototype._start=function(t){_t.window.addEventListener(\"blur\",this._onBlur),this._state=\"pending\",this._startPos=this._mouseDownPos=this._prevPos=this._lastPos=_.mousePos(this._el,t),this._startTouch=this._lastTouch=_t.window.TouchEvent&&t instanceof _t.window.TouchEvent?_.touchPos(this._el,t):null,this._inertia=[[_t.browser.now(),this._startPos]]},qn.prototype._touchesMatch=function(t,i){return!(!t||!i||t.length!==i.length)&&t.every(function(t,e){return i[e]===t})},qn.prototype._onMove=function(t){t.preventDefault();var e=_t.window.TouchEvent&&t instanceof _t.window.TouchEvent?_.touchPos(this._el,t):null,i=_.mousePos(this._el,t);(e?this._touchesMatch(this._lastTouch,e):this._lastPos.equals(i))||\"pending\"===this._state&&i.dist(this._mouseDownPos)<this._clickTolerance||(this._lastMoveEvent=t,this._lastPos=i,this._lastTouch=e,this._drainInertiaBuffer(),this._inertia.push([_t.browser.now(),this._lastPos]),\"pending\"===this._state&&(this._state=\"active\",this._shouldStart=!0),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onDragFrame)))},qn.prototype._onDragFrame=function(){this._frameId=null;var t=this._lastMoveEvent;if(t)if(this._map.touchZoomRotate.isActive())this._abort(t);else if(this._shouldStart&&(this._fireEvent(\"dragstart\",t),this._fireEvent(\"movestart\",t),this._shouldStart=!1),this.isActive()){var e=this._map.transform;e.setLocationAtPoint(e.pointLocation(this._prevPos),this._lastPos),this._fireEvent(\"drag\",t),this._fireEvent(\"move\",t),this._prevPos=this._lastPos,delete this._lastMoveEvent}},qn.prototype._onMouseUp=function(t){if(0===_.mouseButton(t))switch(this._state){case\"active\":this._state=\"enabled\",_.suppressClick(),this._unbind(),this._deactivate(),this._inertialPan(t);break;case\"pending\":this._state=\"enabled\",this._unbind()}},qn.prototype._onTouchEnd=function(t){if(t.touches&&0!==t.touches.length)switch(this._state){case\"pending\":case\"active\":break;case\"enabled\":this.onTouchStart(t)}else switch(this._state){case\"active\":this._state=\"enabled\",this._unbind(),this._deactivate(),this._inertialPan(t);break;case\"pending\":this._state=\"enabled\",this._unbind();break;case\"enabled\":this._unbind()}},qn.prototype._abort=function(t){switch(this._state){case\"active\":this._state=\"enabled\",this._shouldStart||(this._fireEvent(\"dragend\",t),this._fireEvent(\"moveend\",t)),this._unbind(),this._deactivate(),_t.window.TouchEvent&&t instanceof _t.window.TouchEvent&&1<t.touches.length&&_.addEventListener(_t.window.document,\"touchend\",this._onTouchEnd);break;case\"pending\":this._state=\"enabled\",this._unbind();break;case\"enabled\":this._unbind()}},qn.prototype._onBlur=function(t){this._abort(t)},qn.prototype._unbind=function(){_.removeEventListener(_t.window.document,\"touchmove\",this._onMove,{capture:!0,passive:!1}),_.removeEventListener(_t.window.document,\"touchend\",this._onTouchEnd),_.removeEventListener(_t.window.document,\"mousemove\",this._onMove,{capture:!0}),_.removeEventListener(_t.window.document,\"mouseup\",this._onMouseUp),_.removeEventListener(_t.window,\"blur\",this._onBlur)},qn.prototype._deactivate=function(){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._lastMoveEvent,delete this._startPos,delete this._prevPos,delete this._mouseDownPos,delete this._lastPos,delete this._startTouch,delete this._lastTouch,delete this._shouldStart},qn.prototype._inertialPan=function(t){this._fireEvent(\"dragend\",t),this._drainInertiaBuffer();var e=this._inertia;if(e.length<2)this._fireEvent(\"moveend\",t);else{var i=e[e.length-1],r=e[0],n=i[1].sub(r[1]),o=(i[0]-r[0])/1e3;if(0==o||i[1].equals(r[1]))this._fireEvent(\"moveend\",t);else{var a=this._inertiaOptions,s=a.linearity,l=a.easing,u=a.maxSpeed,c=a.deceleration,p=n.mult(s/o),h=p.mag();u<h&&(h=u,p._unit()._mult(h));var d=h/(c*s),f=p.mult(-d/2);this._map.panBy(f,{duration:1e3*d,easing:l,noMoveStart:!0},{originalEvent:t})}}},qn.prototype._fireEvent=function(t,e){return this._map.fire(new _t.Event(t,e?{originalEvent:e}:{}))},qn.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=_t.browser.now();0<t.length&&160<e-t[0][0];)t.shift()},Gn.prototype.isEnabled=function(){return!!this._enabled},Gn.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener(\"keydown\",this._onKeyDown,!1),this._enabled=!0)},Gn.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener(\"keydown\",this._onKeyDown),this._enabled=!1)},Gn.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,i=0,r=0,n=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?i=-1:(t.preventDefault(),n=-1);break;case 39:t.shiftKey?i=1:(t.preventDefault(),n=1);break;case 38:t.shiftKey?r=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?r=-1:(o=1,t.preventDefault());break;default:return}var a=this._map,s=a.getZoom(),l={duration:300,delayEndEvents:500,easing:Zn,zoom:e?Math.round(s)+e*(t.shiftKey?2:1):s,bearing:a.getBearing()+15*i,pitch:a.getPitch()+10*r,offset:[100*-n,100*-o],center:a.getCenter()};a.easeTo(l,{originalEvent:t})}},Hn.prototype.isEnabled=function(){return!!this._enabled},Hn.prototype.isActive=function(){return!!this._active},Hn.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Hn.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Hn.prototype.onTouchStart=function(t){var e=this;if(this.isEnabled()&&!(1<t.points.length))if(this._tapped){var i=t.points[0],r=this._tappedPoint;if(r&&r.dist(i)<=30){t.originalEvent.preventDefault();var n=function(){e._tapped&&e._zoom(t),e._map.off(\"touchcancel\",o),e._resetTapped()},o=function(){e._map.off(\"touchend\",n),e._resetTapped()};this._map.once(\"touchend\",n),this._map.once(\"touchcancel\",o)}else this._resetTapped()}else this._tappedPoint=t.points[0],this._tapped=setTimeout(function(){e._tapped=null,e._tappedPoint=null},300)},Hn.prototype._resetTapped=function(){clearTimeout(this._tapped),this._tapped=null,this._tappedPoint=null},Hn.prototype.onDblClick=function(t){this.isEnabled()&&(t.originalEvent.preventDefault(),this._zoom(t))},Hn.prototype._zoom=function(t){this._active=!0,this._map.on(\"zoomend\",this._onZoomEnd),this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},Hn.prototype._onZoomEnd=function(){this._active=!1,this._map.off(\"zoomend\",this._onZoomEnd)};var Wn=_t.bezier(0,0,.15,1);function Xn(t){void 0===t&&(t={}),this.options=t,_t.bindAll([\"_updateEditLink\",\"_updateData\",\"_updateCompact\"],this)}Kn.prototype.isEnabled=function(){return!!this._enabled},Kn.prototype.enable=function(t){this.isEnabled()||(this._el.classList.add(\"mapboxgl-touch-zoom-rotate\"),this._enabled=!0,this._aroundCenter=!!t&&\"center\"===t.around)},Kn.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove(\"mapboxgl-touch-zoom-rotate\"),this._enabled=!1)},Kn.prototype.disableRotation=function(){this._rotationDisabled=!0},Kn.prototype.enableRotation=function(){this._rotationDisabled=!1},Kn.prototype.isActive=function(){return this.isEnabled()&&!!this._gestureIntent},Kn.prototype.onStart=function(t){if(this.isEnabled()&&2===t.touches.length){var e=_.mousePos(this._el,t.touches[0]),i=_.mousePos(this._el,t.touches[1]),r=e.add(i).div(2);this._startVec=e.sub(i),this._startAround=this._map.transform.pointLocation(r),this._gestureIntent=void 0,this._inertia=[],_.addEventListener(_t.window.document,\"touchmove\",this._onMove,{passive:!1}),_.addEventListener(_t.window.document,\"touchend\",this._onEnd)}},Kn.prototype._getTouchEventData=function(t){var e=_.mousePos(this._el,t.touches[0]),i=_.mousePos(this._el,t.touches[1]),r=e.sub(i);return{vec:r,center:e.add(i).div(2),scale:r.mag()/this._startVec.mag(),bearing:this._rotationDisabled?0:180*r.angleWith(this._startVec)/Math.PI}},Kn.prototype._onMove=function(t){if(2===t.touches.length){var e=this._getTouchEventData(t),i=e.vec,r=e.scale,n=e.bearing;if(!this._gestureIntent){var o=this._rotationDisabled&&1!==r||.15<Math.abs(1-r);10<Math.abs(n)?this._gestureIntent=\"rotate\":o&&(this._gestureIntent=\"zoom\"),this._gestureIntent&&(this._map.fire(new _t.Event(this._gestureIntent+\"start\",{originalEvent:t})),this._map.fire(new _t.Event(\"movestart\",{originalEvent:t})),this._startVec=i)}this._lastTouchEvent=t,this._frameId||(this._frameId=this._map._requestRenderFrame(this._onTouchFrame)),t.preventDefault()}},Kn.prototype._onTouchFrame=function(){this._frameId=null;var t=this._gestureIntent;if(t){var e=this._map.transform;this._startScale||(this._startScale=e.scale,this._startBearing=e.bearing);var i=this._getTouchEventData(this._lastTouchEvent),r=i.center,n=i.bearing,o=i.scale,a=e.pointLocation(r),s=e.locationPoint(a);\"rotate\"===t&&(e.bearing=this._startBearing+n),e.zoom=e.scaleZoom(this._startScale*o),e.setLocationAtPoint(this._startAround,s),this._map.fire(new _t.Event(t,{originalEvent:this._lastTouchEvent})),this._map.fire(new _t.Event(\"move\",{originalEvent:this._lastTouchEvent})),this._drainInertiaBuffer(),this._inertia.push([_t.browser.now(),o,r])}},Kn.prototype._onEnd=function(t){_.removeEventListener(_t.window.document,\"touchmove\",this._onMove,{passive:!1}),_.removeEventListener(_t.window.document,\"touchend\",this._onEnd);var e=this._gestureIntent,i=this._startScale;if(this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._gestureIntent,delete this._startScale,delete this._startBearing,delete this._lastTouchEvent,e){this._map.fire(new _t.Event(e+\"end\",{originalEvent:t})),this._drainInertiaBuffer();var r=this._inertia,n=this._map;if(r.length<2)n.snapToNorth({},{originalEvent:t});else{var o=r[r.length-1],a=r[0],s=n.transform.scaleZoom(i*o[1]),l=n.transform.scaleZoom(i*a[1]),u=s-l,c=(o[0]-a[0])/1e3,p=o[2];if(0!=c&&s!==l){var h=.15*u/c;2.5<Math.abs(h)&&(h=0<h?2.5:-2.5);var d=1e3*Math.abs(h/(12*.15)),f=s+h*d/2e3;n.easeTo({zoom:f,duration:d,easing:Wn,around:this._aroundCenter?n.getCenter():n.unproject(p),noMoveStart:!0},{originalEvent:t})}else n.snapToNorth({},{originalEvent:t})}}},Kn.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=_t.browser.now();2<t.length&&160<e-t[0][0];)t.shift()};var Yn,Jn={scrollZoom:zn,boxZoom:Fn,dragRotate:Un,dragPan:qn,keyboard:Gn,doubleClickZoom:Hn,touchZoomRotate:Kn},Qn=((Yn=_t.Evented)&&($n.__proto__=Yn),(($n.prototype=Object.create(Yn&&Yn.prototype)).constructor=$n).prototype.getCenter=function(){return new _t.LngLat(this.transform.center.lng,this.transform.center.lat)},$n.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e)},$n.prototype.panBy=function(t,e,i){return t=_t.Point.convert(t).mult(-1),this.panTo(this.transform.center,_t.extend({offset:t},e),i)},$n.prototype.panTo=function(t,e,i){return this.easeTo(_t.extend({center:t},e),i)},$n.prototype.getZoom=function(){return this.transform.zoom},$n.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},$n.prototype.zoomTo=function(t,e,i){return this.easeTo(_t.extend({zoom:t},e),i)},$n.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},$n.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},$n.prototype.getBearing=function(){return this.transform.bearing},$n.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},$n.prototype.rotateTo=function(t,e,i){return this.easeTo(_t.extend({bearing:t},e),i)},$n.prototype.resetNorth=function(t,e){return this.rotateTo(0,_t.extend({duration:1e3},t),e),this},$n.prototype.resetNorthPitch=function(t,e){return this.easeTo(_t.extend({bearing:0,pitch:0,duration:1e3},t),e),this},$n.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(t,e):this},$n.prototype.getPitch=function(){return this.transform.pitch},$n.prototype.setPitch=function(t,e){return this.jumpTo({pitch:t},e),this},$n.prototype.cameraForBounds=function(t,e){return t=_t.LngLatBounds.convert(t),this._cameraForBoxAndBearing(t.getNorthWest(),t.getSouthEast(),0,e)},$n.prototype._cameraForBoxAndBearing=function(t,e,i,r){if(\"number\"==typeof(r=_t.extend({padding:{top:0,bottom:0,right:0,left:0},offset:[0,0],maxZoom:this.transform.maxZoom},r)).padding){var n=r.padding;r.padding={top:n,bottom:n,right:n,left:n}}if(_t.deepEqual(Object.keys(r.padding).sort(function(t,e){return t<e?-1:e<t?1:0}),[\"bottom\",\"left\",\"right\",\"top\"])){var o=this.transform,a=o.project(_t.LngLat.convert(t)),s=o.project(_t.LngLat.convert(e)),l=a.rotate(-i*Math.PI/180),u=s.rotate(-i*Math.PI/180),c=new _t.Point(Math.max(l.x,u.x),Math.max(l.y,u.y)),p=new _t.Point(Math.min(l.x,u.x),Math.min(l.y,u.y)),h=c.sub(p),d=(o.width-r.padding.left-r.padding.right)/h.x,f=(o.height-r.padding.top-r.padding.bottom)/h.y;if(!(f<0||d<0)){var m=Math.min(o.scaleZoom(o.scale*Math.min(d,f)),r.maxZoom),g=_t.Point.convert(r.offset),y=(r.padding.left-r.padding.right)/2,v=(r.padding.top-r.padding.bottom)/2,_=new _t.Point(g.x+y,g.y+v).mult(o.scale/o.zoomScale(m));return{center:o.unproject(a.add(s).div(2).sub(_)),zoom:m,bearing:i}}_t.warnOnce(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\")}else _t.warnOnce(\"options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'\")},$n.prototype.fitBounds=function(t,e,i){return this._fitInternal(this.cameraForBounds(t,e),e,i)},$n.prototype.fitScreenCoordinates=function(t,e,i,r,n){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(_t.Point.convert(t)),this.transform.pointLocation(_t.Point.convert(e)),i,r),r,n)},$n.prototype._fitInternal=function(t,e,i){return t?(e=_t.extend(t,e)).linear?this.easeTo(e,i):this.flyTo(e,i):this},$n.prototype.jumpTo=function(t,e){this.stop();var i=this.transform,r=!1,n=!1,o=!1;return\"zoom\"in t&&i.zoom!==+t.zoom&&(r=!0,i.zoom=+t.zoom),void 0!==t.center&&(i.center=_t.LngLat.convert(t.center)),\"bearing\"in t&&i.bearing!==+t.bearing&&(n=!0,i.bearing=+t.bearing),\"pitch\"in t&&i.pitch!==+t.pitch&&(o=!0,i.pitch=+t.pitch),this.fire(new _t.Event(\"movestart\",e)).fire(new _t.Event(\"move\",e)),r&&this.fire(new _t.Event(\"zoomstart\",e)).fire(new _t.Event(\"zoom\",e)).fire(new _t.Event(\"zoomend\",e)),n&&this.fire(new _t.Event(\"rotatestart\",e)).fire(new _t.Event(\"rotate\",e)).fire(new _t.Event(\"rotateend\",e)),o&&this.fire(new _t.Event(\"pitchstart\",e)).fire(new _t.Event(\"pitch\",e)).fire(new _t.Event(\"pitchend\",e)),this.fire(new _t.Event(\"moveend\",e))},$n.prototype.easeTo=function(t,o){var a=this;this.stop(),(!1===(t=_t.extend({offset:[0,0],duration:500,easing:_t.ease},t)).animate||!t.essential&&_t.browser.prefersReducedMotion)&&(t.duration=0);var s=this.transform,l=this.getZoom(),u=this.getBearing(),c=this.getPitch(),p=\"zoom\"in t?+t.zoom:l,h=\"bearing\"in t?this._normalizeBearing(t.bearing,u):u,d=\"pitch\"in t?+t.pitch:c,f=s.centerPoint.add(_t.Point.convert(t.offset)),e=s.pointLocation(f),i=_t.LngLat.convert(t.center||e);this._normalizeCenter(i);var m,g,y=s.project(e),v=s.project(i).sub(y),_=s.zoomScale(p-l);return t.around&&(m=_t.LngLat.convert(t.around),g=s.locationPoint(m)),this._zooming=p!==l,this._rotating=u!==h,this._pitching=d!==c,this._prepareEase(o,t.noMoveStart),clearTimeout(this._easeEndTimeoutID),this._ease(function(t){if(a._zooming&&(s.zoom=_t.number(l,p,t)),a._rotating&&(s.bearing=_t.number(u,h,t)),a._pitching&&(s.pitch=_t.number(c,d,t)),m)s.setLocationAtPoint(m,g);else{var e=s.zoomScale(s.zoom-l),i=l<p?Math.min(2,_):Math.max(.5,_),r=Math.pow(i,1-t),n=s.unproject(y.add(v.mult(t*r)).mult(e));s.setLocationAtPoint(s.renderWorldCopies?n.wrap():n,f)}a._fireMoveEvents(o)},function(){t.delayEndEvents?a._easeEndTimeoutID=setTimeout(function(){return a._afterEase(o)},t.delayEndEvents):a._afterEase(o)},t),this},$n.prototype._prepareEase=function(t,e){this._moving=!0,e||this.fire(new _t.Event(\"movestart\",t)),this._zooming&&this.fire(new _t.Event(\"zoomstart\",t)),this._rotating&&this.fire(new _t.Event(\"rotatestart\",t)),this._pitching&&this.fire(new _t.Event(\"pitchstart\",t))},$n.prototype._fireMoveEvents=function(t){this.fire(new _t.Event(\"move\",t)),this._zooming&&this.fire(new _t.Event(\"zoom\",t)),this._rotating&&this.fire(new _t.Event(\"rotate\",t)),this._pitching&&this.fire(new _t.Event(\"pitch\",t))},$n.prototype._afterEase=function(t){var e=this._zooming,i=this._rotating,r=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,e&&this.fire(new _t.Event(\"zoomend\",t)),i&&this.fire(new _t.Event(\"rotateend\",t)),r&&this.fire(new _t.Event(\"pitchend\",t)),this.fire(new _t.Event(\"moveend\",t))},$n.prototype.flyTo=function(t,n){var o=this;if(!t.essential&&_t.browser.prefersReducedMotion){var e=_t.pick(t,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(e,n)}this.stop(),t=_t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:_t.ease},t);var a=this.transform,s=this.getZoom(),l=this.getBearing(),u=this.getPitch(),c=\"zoom\"in t?_t.clamp(+t.zoom,a.minZoom,a.maxZoom):s,p=\"bearing\"in t?this._normalizeBearing(t.bearing,l):l,h=\"pitch\"in t?+t.pitch:u,i=a.zoomScale(c-s),d=a.centerPoint.add(_t.Point.convert(t.offset)),r=a.pointLocation(d),f=_t.LngLat.convert(t.center||r);this._normalizeCenter(f);var m=a.project(r),g=a.project(f).sub(m),y=t.curve,v=Math.max(a.width,a.height),_=v/i,x=g.mag();if(\"minZoom\"in t){var b=_t.clamp(Math.min(t.minZoom,s,c),a.minZoom,a.maxZoom),w=v/a.zoomScale(b-s);y=Math.sqrt(w/x*2)}var S=y*y;function T(t){var e=(_*_-v*v+(t?-1:1)*S*S*x*x)/(2*(t?_:v)*S*x);return Math.log(Math.sqrt(e*e+1)-e)}function E(t){return(Math.exp(t)-Math.exp(-t))/2}function I(t){return(Math.exp(t)+Math.exp(-t))/2}var C=T(0),A=function(t){return I(C)/I(C+y*t)},k=function(t){return v*((I(C)*(E(e=C+y*t)/I(e))-E(C))/S)/x;var e},P=(T(1)-C)/y;if(Math.abs(x)<1e-6||!isFinite(P)){if(Math.abs(v-_)<1e-6)return this.easeTo(t,n);var M=_<v?-1:1;P=Math.abs(Math.log(_/v))/y,k=function(){return 0},A=function(t){return Math.exp(M*y*t)}}if(\"duration\"in t)t.duration=+t.duration;else{var L=\"screenSpeed\"in t?t.screenSpeed/y:+t.speed;t.duration=1e3*P/L}return t.maxDuration&&t.duration>t.maxDuration&&(t.duration=0),this._zooming=!0,this._rotating=l!==p,this._pitching=h!==u,this._prepareEase(n,!1),this._ease(function(t){var e=t*P,i=1/A(e);a.zoom=1===t?c:s+a.scaleZoom(i),o._rotating&&(a.bearing=_t.number(l,p,t)),o._pitching&&(a.pitch=_t.number(u,h,t));var r=1===t?f:a.unproject(m.add(g.mult(k(e))).mult(i));a.setLocationAtPoint(a.renderWorldCopies?r.wrap():r,d),o._fireMoveEvents(n)},function(){return o._afterEase(n)},t),this},$n.prototype.isEasing=function(){return!!this._easeFrameId},$n.prototype.stop=function(){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var t=this._onEaseEnd;delete this._onEaseEnd,t.call(this)}return this},$n.prototype._ease=function(t,e,i){!1===i.animate||0===i.duration?(t(1),e()):(this._easeStart=_t.browser.now(),this._easeOptions=i,this._onEaseFrame=t,this._onEaseEnd=e,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},$n.prototype._renderFrameCallback=function(){var t=Math.min((_t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},$n.prototype._normalizeBearing=function(t,e){t=_t.wrap(t,-180,180);var i=Math.abs(t-e);return Math.abs(t-360-e)<i&&(t-=360),Math.abs(t+360-e)<i&&(t+=360),t},$n.prototype._normalizeCenter=function(t){var e=this.transform;if(e.renderWorldCopies&&!e.lngRange){var i=t.lng-e.center.lng;t.lng+=180<i?-360:i<-180?360:0}},$n);function $n(t,e){Yn.call(this),this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=e.bearingSnap,_t.bindAll([\"_renderFrameCallback\"],this)}function to(){_t.bindAll([\"_updateLogo\"],this),_t.bindAll([\"_updateCompact\"],this)}function eo(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}Xn.prototype.getDefaultPosition=function(){return\"bottom-right\"},Xn.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=_.create(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-attrib\"),this._innerContainer=_.create(\"div\",\"mapboxgl-ctrl-attrib-inner\",this._container),e&&this._container.classList.add(\"mapboxgl-compact\"),this._updateAttributions(),this._updateEditLink(),this._map.on(\"styledata\",this._updateData),this._map.on(\"sourcedata\",this._updateData),this._map.on(\"moveend\",this._updateEditLink),void 0===e&&(this._map.on(\"resize\",this._updateCompact),this._updateCompact()),this._container},Xn.prototype.onRemove=function(){_.remove(this._container),this._map.off(\"styledata\",this._updateData),this._map.off(\"sourcedata\",this._updateData),this._map.off(\"moveend\",this._updateEditLink),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Xn.prototype._updateEditLink=function(){var t=this._editLink;t=t||(this._editLink=this._container.querySelector(\".mapbox-improve-map\"));var r=[{key:\"owner\",value:this.styleOwner},{key:\"id\",value:this.styleId},{key:\"access_token\",value:this._map._requestManager._customAccessToken||_t.config.ACCESS_TOKEN}];if(t){var e=r.reduce(function(t,e,i){return e.value&&(t+=e.key+\"=\"+e.value+(i<r.length-1?\"&\":\"\")),t},\"?\");t.href=_t.config.FEEDBACK_URL+\"/\"+e+(this._map._hash?this._map._hash.getHashString(!0):\"\"),t.rel=\"noopener nofollow\"}},Xn.prototype._updateData=function(t){!t||\"metadata\"!==t.sourceDataType&&\"style\"!==t.dataType||(this._updateAttributions(),this._updateEditLink())},Xn.prototype._updateAttributions=function(){if(this._map.style){var r=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?r=r.concat(this.options.customAttribution.map(function(t){return\"string\"!=typeof t?\"\":t})):\"string\"==typeof this.options.customAttribution&&r.push(this.options.customAttribution)),this._map.style.stylesheet){var t=this._map.style.stylesheet;this.styleOwner=t.owner,this.styleId=t.id}var e=this._map.style.sourceCaches;for(var i in e){var n=e[i];if(n.used){var o=n.getSource();o.attribution&&r.indexOf(o.attribution)<0&&r.push(o.attribution)}}r.sort(function(t,e){return t.length-e.length});var a=(r=r.filter(function(t,e){for(var i=e+1;i<r.length;i++)if(0<=r[i].indexOf(t))return!1;return!0})).join(\" | \");a!==this._attribHTML&&(this._attribHTML=a,r.length?(this._innerContainer.innerHTML=a,this._container.classList.remove(\"mapboxgl-attrib-empty\")):this._container.classList.add(\"mapboxgl-attrib-empty\"),this._editLink=null)}},Xn.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add(\"mapboxgl-compact\"):this._container.classList.remove(\"mapboxgl-compact\")},to.prototype.onAdd=function(t){this._map=t,this._container=_.create(\"div\",\"mapboxgl-ctrl\");var e=_.create(\"a\",\"mapboxgl-ctrl-logo\");return e.target=\"_blank\",e.rel=\"noopener nofollow\",e.href=\"https://www.mapbox.com/\",e.setAttribute(\"aria-label\",this._map._getUIString(\"LogoControl.Title\")),e.setAttribute(\"rel\",\"noopener nofollow\"),this._container.appendChild(e),this._container.style.display=\"none\",this._map.on(\"sourcedata\",this._updateLogo),this._updateLogo(),this._map.on(\"resize\",this._updateCompact),this._updateCompact(),this._container},to.prototype.onRemove=function(){_.remove(this._container),this._map.off(\"sourcedata\",this._updateLogo),this._map.off(\"resize\",this._updateCompact)},to.prototype.getDefaultPosition=function(){return\"bottom-left\"},to.prototype._updateLogo=function(t){t&&\"metadata\"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?\"block\":\"none\")},to.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},to.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add(\"mapboxgl-compact\"):e.classList.remove(\"mapboxgl-compact\")}},eo.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},eo.prototype.remove=function(t){for(var e=this._currentlyRunning,i=0,r=e?this._queue.concat(e):this._queue;i<r.length;i+=1){var n=r[i];if(n.id===t)return void(n.cancelled=!0)}},eo.prototype.run=function(){var t=this._currentlyRunning=this._queue;this._queue=[];for(var e=0,i=t;e<i.length;e+=1){var r=i[e];if(!r.cancelled&&(r.callback(),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},eo.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var io={\"FullscreenControl.Enter\":\"Enter fullscreen\",\"FullscreenControl.Exit\":\"Exit fullscreen\",\"GeolocateControl.FindMyLocation\":\"Find my location\",\"GeolocateControl.LocationNotAvailable\":\"Location not available\",\"LogoControl.Title\":\"Mapbox logo\",\"NavigationControl.ResetBearing\":\"Reset bearing to north\",\"NavigationControl.ZoomIn\":\"Zoom in\",\"NavigationControl.ZoomOut\":\"Zoom out\",\"ScaleControl.Feet\":\"ft\",\"ScaleControl.Meters\":\"m\",\"ScaleControl.Kilometers\":\"km\",\"ScaleControl.Miles\":\"mi\",\"ScaleControl.NauticalMiles\":\"nm\"},ro=_t.window.HTMLImageElement,no=_t.window.HTMLElement,oo=_t.window.ImageBitmap,ao={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,clickTolerance:3,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:\"sans-serif\",transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},so=function(u){function t(t){var e=this;if(null!=(t=_t.extend({},ao,t)).minZoom&&null!=t.maxZoom&&t.minZoom>t.maxZoom)throw new Error(\"maxZoom must be greater than or equal to minZoom\");if(null!=t.minPitch&&null!=t.maxPitch&&t.minPitch>t.maxPitch)throw new Error(\"maxPitch must be greater than or equal to minPitch\");if(null!=t.minPitch&&t.minPitch<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(null!=t.maxPitch&&60<t.maxPitch)throw new Error(\"maxPitch must be less than or equal to 60\");var i=new Ln(t.minZoom,t.maxZoom,t.minPitch,t.maxPitch,t.renderWorldCopies);if(u.call(this,i,t),this._interactive=t.interactive,this._maxTileCacheSize=t.maxTileCacheSize,this._failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=t.preserveDrawingBuffer,this._antialias=t.antialias,this._trackResize=t.trackResize,this._bearingSnap=t.bearingSnap,this._refreshExpiredTiles=t.refreshExpiredTiles,this._fadeDuration=t.fadeDuration,this._crossSourceCollisions=t.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=t.collectResourceTiming,this._renderTaskQueue=new eo,this._controls=[],this._mapId=_t.uniqueId(),this._locale=_t.extend({},io,t.locale),this._requestManager=new _t.RequestManager(t.transformRequest,t.accessToken),\"string\"==typeof t.container){if(this._container=_t.window.document.getElementById(t.container),!this._container)throw new Error(\"Container '\"+t.container+\"' not found.\")}else{if(!(t.container instanceof no))throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");this._container=t.container}if(t.maxBounds&&this.setMaxBounds(t.maxBounds),_t.bindAll([\"_onWindowOnline\",\"_onWindowResize\",\"_contextLost\",\"_contextRestored\"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error(\"Failed to initialize WebGL.\");this.on(\"move\",function(){return e._update(!1)}),this.on(\"moveend\",function(){return e._update(!1)}),this.on(\"zoom\",function(){return e._update(!0)}),void 0!==_t.window&&(_t.window.addEventListener(\"online\",this._onWindowOnline,!1),_t.window.addEventListener(\"resize\",this._onWindowResize,!1)),function(i,r){var n=i.getCanvasContainer(),o=null,a=!1,s=null;for(var t in Jn)i[t]=new Jn[t](i,r),r.interactive&&r[t]&&i[t].enable(r[t]);_.addEventListener(n,\"mouseout\",function(t){i.fire(new Rn(\"mouseout\",i,t))}),_.addEventListener(n,\"mousedown\",function(t){a=!0,s=_.mousePos(n,t);var e=new Rn(\"mousedown\",i,t);i.fire(e),e.defaultPrevented||(r.interactive&&!i.doubleClickZoom.isActive()&&i.stop(),i.boxZoom.onMouseDown(t),i.boxZoom.isActive()||i.dragPan.isActive()||i.dragRotate.onMouseDown(t),i.boxZoom.isActive()||i.dragRotate.isActive()||i.dragPan.onMouseDown(t))}),_.addEventListener(n,\"mouseup\",function(t){var e=i.dragRotate.isActive();o&&!e&&i.fire(new Rn(\"contextmenu\",i,o)),o=null,a=!1,i.fire(new Rn(\"mouseup\",i,t))}),_.addEventListener(n,\"mousemove\",function(t){if(!i.dragPan.isActive()&&!i.dragRotate.isActive()){for(var e=t.target;e&&e!==n;)e=e.parentNode;e===n&&i.fire(new Rn(\"mousemove\",i,t))}}),_.addEventListener(n,\"mouseover\",function(t){for(var e=t.target;e&&e!==n;)e=e.parentNode;e===n&&i.fire(new Rn(\"mouseover\",i,t))}),_.addEventListener(n,\"touchstart\",function(t){var e=new Nn(\"touchstart\",i,t);i.fire(e),e.defaultPrevented||(r.interactive&&i.stop(),i.boxZoom.isActive()||i.dragRotate.isActive()||i.dragPan.onTouchStart(t),i.touchZoomRotate.onStart(t),i.doubleClickZoom.onTouchStart(e))},{passive:!1}),_.addEventListener(n,\"touchmove\",function(t){i.fire(new Nn(\"touchmove\",i,t))},{passive:!1}),_.addEventListener(n,\"touchend\",function(t){i.fire(new Nn(\"touchend\",i,t))}),_.addEventListener(n,\"touchcancel\",function(t){i.fire(new Nn(\"touchcancel\",i,t))}),_.addEventListener(n,\"click\",function(t){var e=_.mousePos(n,t);(!s||e.equals(s)||e.dist(s)<r.clickTolerance)&&i.fire(new Rn(\"click\",i,t))}),_.addEventListener(n,\"dblclick\",function(t){var e=new Rn(\"dblclick\",i,t);i.fire(e),e.defaultPrevented||i.doubleClickZoom.onDblClick(e)}),_.addEventListener(n,\"contextmenu\",function(t){var e=i.dragRotate.isActive();a||e?a&&(o=t):i.fire(new Rn(\"contextmenu\",i,t)),(i.dragRotate.isEnabled()||i.listens(\"contextmenu\"))&&t.preventDefault()}),_.addEventListener(n,\"wheel\",function(t){r.interactive&&i.stop();var e=new Bn(\"wheel\",i,t);i.fire(e),e.defaultPrevented||i.scrollZoom.onWheel(t)},{passive:!1})}(this,t);var r=\"string\"==typeof t.hash&&t.hash||void 0;this._hash=t.hash&&new On(r).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:t.center,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}),t.bounds&&(this.resize(),this.fitBounds(t.bounds,_t.extend({},t.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=t.localIdeographFontFamily,t.style&&this.setStyle(t.style,{localIdeographFontFamily:t.localIdeographFontFamily}),t.attributionControl&&this.addControl(new Xn({customAttribution:t.customAttribution})),this.addControl(new to,t.logoPosition),this.on(\"style.load\",function(){e.transform.unmodified&&e.jumpTo(e.style.stylesheet)}),this.on(\"data\",function(t){e._update(\"style\"===t.dataType),e.fire(new _t.Event(t.dataType+\"data\",t))}),this.on(\"dataloading\",function(t){e.fire(new _t.Event(t.dataType+\"dataloading\",t))})}u&&(t.__proto__=u);var e={showTileBoundaries:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return((t.prototype=Object.create(u&&u.prototype)).constructor=t).prototype._getMapId=function(){return this._mapId},t.prototype.addControl=function(t,e){if(void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e=\"top-right\"),!t||!t.onAdd)return this.fire(new _t.ErrorEvent(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));var i=t.onAdd(this);this._controls.push(t);var r=this._controlPositions[e];return-1!==e.indexOf(\"bottom\")?r.insertBefore(i,r.firstChild):r.appendChild(i),this},t.prototype.removeControl=function(t){if(!t||!t.onRemove)return this.fire(new _t.ErrorEvent(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));var e=this._controls.indexOf(t);return-1<e&&this._controls.splice(e,1),t.onRemove(this),this},t.prototype.resize=function(t){var e=this._containerDimensions(),i=e[0],r=e[1];return this._resizeCanvas(i,r),this.transform.resize(i,r),this.painter.resize(i,r),this.fire(new _t.Event(\"movestart\",t)).fire(new _t.Event(\"move\",t)).fire(new _t.Event(\"resize\",t)).fire(new _t.Event(\"moveend\",t)),this},t.prototype.getBounds=function(){return this.transform.getBounds()},t.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},t.prototype.setMaxBounds=function(t){return this.transform.setMaxBounds(_t.LngLatBounds.convert(t)),this._update()},t.prototype.setMinZoom=function(t){if(-2<=(t=null==t?-2:t)&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t&&this.setZoom(t),this;throw new Error(\"minZoom must be between -2 and the current maxZoom, inclusive\")},t.prototype.getMinZoom=function(){return this.transform.minZoom},t.prototype.setMaxZoom=function(t){if((t=null==t?22:t)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error(\"maxZoom must be greater than the current minZoom\")},t.prototype.getMaxZoom=function(){return this.transform.maxZoom},t.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(0<=t&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()<t&&this.setPitch(t),this;throw new Error(\"minPitch must be between 0 and the current maxPitch, inclusive\")},t.prototype.getMinPitch=function(){return this.transform.minPitch},t.prototype.setMaxPitch=function(t){if(60<(t=null==t?60:t))throw new Error(\"maxPitch must be less than or equal to 60\");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error(\"maxPitch must be greater than the current minPitch\")},t.prototype.getMaxPitch=function(){return this.transform.maxPitch},t.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},t.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},t.prototype.project=function(t){return this.transform.locationPoint(_t.LngLat.convert(t))},t.prototype.unproject=function(t){return this.transform.pointLocation(_t.Point.convert(t))},t.prototype.isMoving=function(){return this._moving||this.dragPan.isActive()||this.dragRotate.isActive()||this.scrollZoom.isActive()},t.prototype.isZooming=function(){return this._zooming||this.scrollZoom.isZooming()},t.prototype.isRotating=function(){return this._rotating||this.dragRotate.isActive()},t.prototype._createDelegatedListener=function(i,r,n){var t,o=this;if(\"mouseenter\"===i||\"mouseover\"===i){var a=!1;return{layer:r,listener:n,delegates:{mousemove:function(t){var e=o.getLayer(r)?o.queryRenderedFeatures(t.point,{layers:[r]}):[];e.length?a||(a=!0,n.call(o,new Rn(i,o,t.originalEvent,{features:e}))):a=!1},mouseout:function(){a=!1}}}}if(\"mouseleave\"!==i&&\"mouseout\"!==i)return{layer:r,listener:n,delegates:((t={})[i]=function(t){var e=o.getLayer(r)?o.queryRenderedFeatures(t.point,{layers:[r]}):[];e.length&&(t.features=e,n.call(o,t),delete t.features)},t)};var e=!1;return{layer:r,listener:n,delegates:{mousemove:function(t){(o.getLayer(r)?o.queryRenderedFeatures(t.point,{layers:[r]}):[]).length?e=!0:e&&(e=!1,n.call(o,new Rn(i,o,t.originalEvent)))},mouseout:function(t){e&&(e=!1,n.call(o,new Rn(i,o,t.originalEvent)))}}}},t.prototype.on=function(t,e,i){if(void 0===i)return u.prototype.on.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var n in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(r),r.delegates)this.on(n,r.delegates[n]);return this},t.prototype.once=function(t,e,i){if(void 0===i)return u.prototype.once.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var n in r.delegates)this.once(n,r.delegates[n]);return this},t.prototype.off=function(o,a,s){var l=this;return void 0===s?u.prototype.off.call(this,o,a):(this._delegatedListeners&&this._delegatedListeners[o]&&function(t){for(var e=t[o],i=0;i<e.length;i++){var r=e[i];if(r.layer===a&&r.listener===s){for(var n in r.delegates)l.off(n,r.delegates[n]);return e.splice(i,1)}}}(this._delegatedListeners),this)},t.prototype.queryRenderedFeatures=function(t,e){if(!this.style)return[];var i;if(void 0!==e||void 0===t||t instanceof _t.Point||Array.isArray(t)||(e=t,t=void 0),e=e||{},(t=t||[[0,0],[this.transform.width,this.transform.height]])instanceof _t.Point||\"number\"==typeof t[0])i=[_t.Point.convert(t)];else{var r=_t.Point.convert(t[0]),n=_t.Point.convert(t[1]);i=[r,new _t.Point(n.x,r.y),n,new _t.Point(r.x,n.y),r]}return this.style.queryRenderedFeatures(i,e,this.transform)},t.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},t.prototype.setStyle=function(t,e){return!1!==(e=_t.extend({},{localIdeographFontFamily:this._localIdeographFontFamily},e)).diff&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&t?(this._diffStyle(t,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(t,e))},t.prototype._getUIString=function(t){var e=this._locale[t];if(null==e)throw new Error(\"Missing UI string '\"+t+\"'\");return e},t.prototype._updateStyle=function(t,e){return this.style&&(this.style.setEventedParent(null),this.style._remove()),t?(this.style=new yr(this,e||{}),this.style.setEventedParent(this,{style:this.style}),\"string\"==typeof t?this.style.loadURL(t):this.style.loadJSON(t)):delete this.style,this},t.prototype._lazyInitEmptyStyle=function(){this.style||(this.style=new yr(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())},t.prototype._diffStyle=function(t,i){var r=this;if(\"string\"==typeof t){var e=this._requestManager.normalizeStyleURL(t),n=this._requestManager.transformRequest(e,_t.ResourceType.Style);_t.getJSON(n,function(t,e){t?r.fire(new _t.ErrorEvent(t)):e&&r._updateDiff(e,i)})}else\"object\"==typeof t&&this._updateDiff(t,i)},t.prototype._updateDiff=function(e,i){try{this.style.setState(e)&&this._update(!0)}catch(t){_t.warnOnce(\"Unable to perform style diff: \"+(t.message||t.error||t)+\". Rebuilding the style from scratch.\"),this._updateStyle(e,i)}},t.prototype.getStyle=function(){if(this.style)return this.style.serialize()},t.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():_t.warnOnce(\"There is no style added to the map.\")},t.prototype.addSource=function(t,e){return this._lazyInitEmptyStyle(),this.style.addSource(t,e),this._update(!0)},t.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];if(void 0!==e)return e.loaded();this.fire(new _t.ErrorEvent(new Error(\"There is no source with ID '\"+t+\"'\")))},t.prototype.areTilesLoaded=function(){var t=this.style&&this.style.sourceCaches;for(var e in t){var i=t[e]._tiles;for(var r in i){var n=i[r];if(\"loaded\"!==n.state&&\"errored\"!==n.state)return!1}}return!0},t.prototype.addSourceType=function(t,e,i){return this._lazyInitEmptyStyle(),this.style.addSourceType(t,e,i)},t.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0)},t.prototype.getSource=function(t){return this.style.getSource(t)},t.prototype.addImage=function(t,e,i){void 0===i&&(i={});var r=i.pixelRatio;void 0===r&&(r=1);var n=i.sdf;void 0===n&&(n=!1);var o=i.stretchX,a=i.stretchY,s=i.content;if(this._lazyInitEmptyStyle(),e instanceof ro||oo&&e instanceof oo){var l=_t.browser.getImageData(e),u=l.width,c=l.height,p=l.data;this.style.addImage(t,{data:new _t.RGBAImage({width:u,height:c},p),pixelRatio:r,stretchX:o,stretchY:a,content:s,sdf:n,version:0})}else{if(void 0===e.width||void 0===e.height)return this.fire(new _t.ErrorEvent(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));var h=e.width,d=e.height,f=e.data,m=e;this.style.addImage(t,{data:new _t.RGBAImage({width:h,height:d},new Uint8Array(f)),pixelRatio:r,stretchX:o,stretchY:a,content:s,sdf:n,version:0,userImage:m}),m.onAdd&&m.onAdd(this,t)}},t.prototype.updateImage=function(t,e){var i=this.style.getImage(t);if(!i)return this.fire(new _t.ErrorEvent(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));var r=e instanceof ro||oo&&e instanceof oo?_t.browser.getImageData(e):e,n=r.width,o=r.height,a=r.data;if(void 0===n||void 0===o)return this.fire(new _t.ErrorEvent(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));if(n!==i.data.width||o!==i.data.height)return this.fire(new _t.ErrorEvent(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));var s=!(e instanceof ro||oo&&e instanceof oo);i.data.replace(a,s),this.style.updateImage(t,i)},t.prototype.hasImage=function(t){return t?!!this.style.getImage(t):(this.fire(new _t.ErrorEvent(new Error(\"Missing required image id\"))),!1)},t.prototype.removeImage=function(t){this.style.removeImage(t)},t.prototype.loadImage=function(t,e){_t.getImage(this._requestManager.transformRequest(t,_t.ResourceType.Image),e)},t.prototype.listImages=function(){return this.style.listImages()},t.prototype.addLayer=function(t,e){return this._lazyInitEmptyStyle(),this.style.addLayer(t,e),this._update(!0)},t.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0)},t.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0)},t.prototype.getLayer=function(t){return this.style.getLayer(t)},t.prototype.setLayerZoomRange=function(t,e,i){return this.style.setLayerZoomRange(t,e,i),this._update(!0)},t.prototype.setFilter=function(t,e,i){return void 0===i&&(i={}),this.style.setFilter(t,e,i),this._update(!0)},t.prototype.getFilter=function(t){return this.style.getFilter(t)},t.prototype.setPaintProperty=function(t,e,i,r){return void 0===r&&(r={}),this.style.setPaintProperty(t,e,i,r),this._update(!0)},t.prototype.getPaintProperty=function(t,e){return this.style.getPaintProperty(t,e)},t.prototype.setLayoutProperty=function(t,e,i,r){return void 0===r&&(r={}),this.style.setLayoutProperty(t,e,i,r),this._update(!0)},t.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},t.prototype.setLight=function(t,e){return void 0===e&&(e={}),this._lazyInitEmptyStyle(),this.style.setLight(t,e),this._update(!0)},t.prototype.getLight=function(){return this.style.getLight()},t.prototype.setFeatureState=function(t,e){return this.style.setFeatureState(t,e),this._update()},t.prototype.removeFeatureState=function(t,e){return this.style.removeFeatureState(t,e),this._update()},t.prototype.getFeatureState=function(t){return this.style.getFeatureState(t)},t.prototype.getContainer=function(){return this._container},t.prototype.getCanvasContainer=function(){return this._canvasContainer},t.prototype.getCanvas=function(){return this._canvas},t.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.clientWidth||400,e=this._container.clientHeight||300),[t,e]},t.prototype._detectMissingCSS=function(){\"rgb(250, 128, 114)\"!==_t.window.getComputedStyle(this._missingCSSCanary).getPropertyValue(\"background-color\")&&_t.warnOnce(\"This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.\")},t.prototype._setupContainer=function(){var t=this._container;t.classList.add(\"mapboxgl-map\"),(this._missingCSSCanary=_.create(\"div\",\"mapboxgl-canary\",t)).style.visibility=\"hidden\",this._detectMissingCSS();var e=this._canvasContainer=_.create(\"div\",\"mapboxgl-canvas-container\",t);this._interactive&&e.classList.add(\"mapboxgl-interactive\"),this._canvas=_.create(\"canvas\",\"mapboxgl-canvas\",e),this._canvas.style.position=\"absolute\",this._canvas.addEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.addEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.setAttribute(\"tabindex\",\"0\"),this._canvas.setAttribute(\"aria-label\",\"Map\");var i=this._containerDimensions();this._resizeCanvas(i[0],i[1]);var r=this._controlContainer=_.create(\"div\",\"mapboxgl-control-container\",t),n=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(function(t){n[t]=_.create(\"div\",\"mapboxgl-ctrl-\"+t,r)})},t.prototype._resizeCanvas=function(t,e){var i=_t.browser.devicePixelRatio||1;this._canvas.width=i*t,this._canvas.height=i*e,this._canvas.style.width=t+\"px\",this._canvas.style.height=e+\"px\"},t.prototype._setupPainter=function(){var t=_t.extend({},i.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),e=this._canvas.getContext(\"webgl\",t)||this._canvas.getContext(\"experimental-webgl\",t);e?(this.painter=new Cn(e,this.transform),_t.webpSupported.testSupport(e)):this.fire(new _t.ErrorEvent(new Error(\"Failed to initialize WebGL\")))},t.prototype._contextLost=function(t){t.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new _t.Event(\"webglcontextlost\",{originalEvent:t}))},t.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire(new _t.Event(\"webglcontextrestored\",{originalEvent:t}))},t.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()},t.prototype._update=function(t){return this.style&&(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this.triggerRepaint()),this},t.prototype._requestRenderFrame=function(t){return this._update(),this._renderTaskQueue.add(t)},t.prototype._cancelRenderFrame=function(t){this._renderTaskQueue.remove(t)},t.prototype._render=function(){var e,i=this,t=0,r=this.painter.context.extTimerQuery;this.listens(\"gpu-timing-frame\")&&(e=r.createQueryEXT(),r.beginQueryEXT(r.TIME_ELAPSED_EXT,e),t=_t.browser.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run();var n=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var o=this.transform.zoom,a=_t.browser.now();this.style.zoomHistory.update(o,a);var s=new _t.EvaluationParameters(o,{now:a,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),l=s.crossFadingFactor();1===l&&l===this._crossFadingFactor||(n=!0,this._crossFadingFactor=l),this.style.update(s)}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),gpuTiming:!!this.listens(\"gpu-timing-layer\"),fadeDuration:this._fadeDuration}),this.fire(new _t.Event(\"render\")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new _t.Event(\"load\"))),this.style&&(this.style.hasTransitions()||n)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens(\"gpu-timing-frame\")){var u=_t.browser.now()-t;r.endQueryEXT(r.TIME_ELAPSED_EXT,e),setTimeout(function(){var t=r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6;r.deleteQueryEXT(e),i.fire(new _t.Event(\"gpu-timing-frame\",{cpuTime:u,gpuTime:t}))},50)}if(this.listens(\"gpu-timing-layer\")){var c=this.painter.collectGpuTimers();setTimeout(function(){var t=i.painter.queryGpuTimers(c);i.fire(new _t.Event(\"gpu-timing-layer\",{layerTimes:t}))},50)}return this._sourcesDirty||this._styleDirty||this._placementDirty||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&(this._fullyLoaded||(this._fullyLoaded=!0),this.fire(new _t.Event(\"idle\"))),this},t.prototype.remove=function(){this._hash&&this._hash.remove();for(var t=0,e=this._controls;t<e.length;t+=1)e[t].onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.setStyle(null),void 0!==_t.window&&(_t.window.removeEventListener(\"resize\",this._onWindowResize,!1),_t.window.removeEventListener(\"online\",this._onWindowOnline,!1));var i=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");i&&i.loseContext(),lo(this._canvasContainer),lo(this._controlContainer),lo(this._missingCSSCanary),this._container.classList.remove(\"mapboxgl-map\"),this.fire(new _t.Event(\"remove\"))},t.prototype.triggerRepaint=function(){var e=this;this.style&&!this._frame&&(this._frame=_t.browser.frame(function(t){e._frame=null,e._render()}))},t.prototype._onWindowOnline=function(){this._update()},t.prototype._onWindowResize=function(t){this._trackResize&&this.resize({originalEvent:t})._update()},e.showTileBoundaries.get=function(){return!!this._showTileBoundaries},e.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},e.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},e.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&((this._showCollisionBoxes=t)?this.style._generateCollisionBoxes():this._update())},e.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},e.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},e.repaint.get=function(){return!!this._repaint},e.repaint.set=function(t){this._repaint!==t&&(this._repaint=t,this.triggerRepaint())},e.vertices.get=function(){return!!this._vertices},e.vertices.set=function(t){this._vertices=t,this._update()},t.prototype._setCacheLimits=function(t,e){_t.setCacheLimits(t,e)},e.version.get=function(){return _t.version},Object.defineProperties(t.prototype,e),t}(Qn);function lo(t){t.parentNode&&t.parentNode.removeChild(t)}function uo(t){var e=this;this.options=_t.extend({},co,t),this._container=_.create(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",function(t){return t.preventDefault()}),this.options.showZoom&&(_t.bindAll([\"_setButtonTitle\",\"_updateZoomButtons\"],this),this._zoomInButton=this._createButton(\"mapboxgl-ctrl-zoom-in\",function(t){return e._map.zoomIn({},{originalEvent:t})}),_.create(\"span\",\"mapboxgl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",!0),this._zoomOutButton=this._createButton(\"mapboxgl-ctrl-zoom-out\",function(t){return e._map.zoomOut({},{originalEvent:t})}),_.create(\"span\",\"mapboxgl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",!0)),this.options.showCompass&&(_t.bindAll([\"_rotateCompassArrow\"],this),this._compass=this._createButton(\"mapboxgl-ctrl-compass\",function(t){e.options.visualizePitch?e._map.resetNorthPitch({},{originalEvent:t}):e._map.resetNorth({},{originalEvent:t})}),this._compassIcon=_.create(\"span\",\"mapboxgl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",!0))}var co={showCompass:!0,showZoom:!0,visualizePitch:!1};function po(t,e,i){if(t=new _t.LngLat(t.lng,t.lat),e){var r=new _t.LngLat(t.lng-360,t.lat),n=new _t.LngLat(t.lng+360,t.lat),o=i.locationPoint(t).distSqr(e);i.locationPoint(r).distSqr(e)<o?t=r:i.locationPoint(n).distSqr(e)<o&&(t=n)}for(;180<Math.abs(t.lng-i.center.lng);){var a=i.locationPoint(t);if(0<=a.x&&0<=a.y&&a.x<=i.width&&a.y<=i.height)break;t.lng>i.center.lng?t.lng-=360:t.lng+=360}return t}uo.prototype._updateZoomButtons=function(){var t=this._map.getZoom();this._zoomInButton.disabled=t===this._map.getMaxZoom(),this._zoomOutButton.disabled=t===this._map.getMinZoom()},uo.prototype._rotateCompassArrow=function(){var t=this.options.visualizePitch?\"scale(\"+1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)+\") rotateX(\"+this._map.transform.pitch+\"deg) rotateZ(\"+this._map.transform.angle*(180/Math.PI)+\"deg)\":\"rotate(\"+this._map.transform.angle*(180/Math.PI)+\"deg)\";this._compassIcon.style.transform=t},uo.prototype.onAdd=function(t){return this._map=t,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,\"ZoomIn\"),this._setButtonTitle(this._zoomOutButton,\"ZoomOut\"),this._map.on(\"zoom\",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,\"ResetBearing\"),this.options.visualizePitch&&this._map.on(\"pitch\",this._rotateCompassArrow),this._map.on(\"rotate\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Un(t,{button:\"left\",element:this._compass,clickTolerance:t.dragRotate._clickTolerance}),_.addEventListener(this._compass,\"mousedown\",this._handler.onMouseDown),_.addEventListener(this._compass,\"touchstart\",this._handler.onMouseDown,{passive:!1}),this._handler.enable()),this._container},uo.prototype.onRemove=function(){_.remove(this._container),this.options.showZoom&&this._map.off(\"zoom\",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(\"pitch\",this._rotateCompassArrow),this._map.off(\"rotate\",this._rotateCompassArrow),_.removeEventListener(this._compass,\"mousedown\",this._handler.onMouseDown),_.removeEventListener(this._compass,\"touchstart\",this._handler.onMouseDown,{passive:!1}),this._handler.disable(),delete this._handler),delete this._map},uo.prototype._createButton=function(t,e){var i=_.create(\"button\",t,this._container);return i.type=\"button\",i.addEventListener(\"click\",e),i},uo.prototype._setButtonTitle=function(t,e){var i=this._map._getUIString(\"NavigationControl.\"+e);t.title=i,t.setAttribute(\"aria-label\",i)};var ho={center:\"translate(-50%,-50%)\",top:\"translate(-50%,0)\",\"top-left\":\"translate(0,0)\",\"top-right\":\"translate(-100%,0)\",bottom:\"translate(-50%,-100%)\",\"bottom-left\":\"translate(0,-100%)\",\"bottom-right\":\"translate(-100%,-100%)\",left:\"translate(0,-50%)\",right:\"translate(-100%,-50%)\"};function fo(t,e,i){var r=t.classList;for(var n in ho)r.remove(\"mapboxgl-\"+i+\"-anchor-\"+n);r.add(\"mapboxgl-\"+i+\"-anchor-\"+e)}var mo,go,yo=((go=_t.Evented)&&(_o.__proto__=go),((_o.prototype=Object.create(go&&go.prototype)).constructor=_o).prototype.addTo=function(t){return this.remove(),(this._map=t).getCanvasContainer().appendChild(this._element),t.on(\"move\",this._update),t.on(\"moveend\",this._update),this.setDraggable(this._draggable),this._update(),this._map.on(\"click\",this._onMapClick),this},_o.prototype.remove=function(){return this._map&&(this._map.off(\"click\",this._onMapClick),this._map.off(\"move\",this._update),this._map.off(\"moveend\",this._update),this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler),this._map.off(\"mouseup\",this._onUp),this._map.off(\"touchend\",this._onUp),this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),delete this._map),_.remove(this._element),this._popup&&this._popup.remove(),this},_o.prototype.getLngLat=function(){return this._lngLat},_o.prototype.setLngLat=function(t){return this._lngLat=_t.LngLat.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},_o.prototype.getElement=function(){return this._element},_o.prototype.setPopup=function(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(\"keypress\",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(\"tabindex\")),t){if(!(\"offset\"in t.options)){var e=Math.sqrt(Math.pow(13.5,2)/2);t.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-38.1],\"bottom-left\":[e,-1*(24.6+e)],\"bottom-right\":[-e,-1*(24.6+e)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute(\"tabindex\"),this._originalTabIndex||this._element.setAttribute(\"tabindex\",\"0\"),this._element.addEventListener(\"keypress\",this._onKeyPress)}return this},_o.prototype._onKeyPress=function(t){var e=t.code,i=t.charCode||t.keyCode;\"Space\"!==e&&\"Enter\"!==e&&32!==i&&13!==i||this.togglePopup()},_o.prototype._onMapClick=function(t){var e=t.originalEvent.target,i=this._element;this._popup&&(e===i||i.contains(e))&&this.togglePopup()},_o.prototype.getPopup=function(){return this._popup},_o.prototype.togglePopup=function(){var t=this._popup;return t&&(t.isOpen()?t.remove():t.addTo(this._map)),this},_o.prototype._update=function(t){if(this._map){this._map.transform.renderWorldCopies&&(this._lngLat=po(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);var e=\"\";\"viewport\"===this._rotationAlignment||\"auto\"===this._rotationAlignment?e=\"rotateZ(\"+this._rotation+\"deg)\":\"map\"===this._rotationAlignment&&(e=\"rotateZ(\"+(this._rotation-this._map.getBearing())+\"deg)\");var i=\"\";\"viewport\"===this._pitchAlignment||\"auto\"===this._pitchAlignment?i=\"rotateX(0deg)\":\"map\"===this._pitchAlignment&&(i=\"rotateX(\"+this._map.getPitch()+\"deg)\"),t&&\"moveend\"!==t.type||(this._pos=this._pos.round()),_.setTransform(this._element,ho[this._anchor]+\" translate(\"+this._pos.x+\"px, \"+this._pos.y+\"px) \"+i+\" \"+e)}},_o.prototype.getOffset=function(){return this._offset},_o.prototype.setOffset=function(t){return this._offset=_t.Point.convert(t),this._update(),this},_o.prototype._onMove=function(t){this._pos=t.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=\"none\",\"pending\"===this._state&&(this._state=\"active\",this.fire(new _t.Event(\"dragstart\"))),this.fire(new _t.Event(\"drag\"))},_o.prototype._onUp=function(){this._element.style.pointerEvents=\"auto\",this._positionDelta=null,this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),\"active\"===this._state&&this.fire(new _t.Event(\"dragend\")),this._state=\"inactive\"},_o.prototype._addDragHandler=function(t){this._element.contains(t.originalEvent.target)&&(t.preventDefault(),this._positionDelta=t.point.sub(this._pos).add(this._offset),this._state=\"pending\",this._map.on(\"mousemove\",this._onMove),this._map.on(\"touchmove\",this._onMove),this._map.once(\"mouseup\",this._onUp),this._map.once(\"touchend\",this._onUp))},_o.prototype.setDraggable=function(t){return this._draggable=!!t,this._map&&(t?(this._map.on(\"mousedown\",this._addDragHandler),this._map.on(\"touchstart\",this._addDragHandler)):(this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler))),this},_o.prototype.isDraggable=function(){return this._draggable},_o.prototype.setRotation=function(t){return this._rotation=t||0,this._update(),this},_o.prototype.getRotation=function(){return this._rotation},_o.prototype.setRotationAlignment=function(t){return this._rotationAlignment=t||\"auto\",this._update(),this},_o.prototype.getRotationAlignment=function(){return this._rotationAlignment},_o.prototype.setPitchAlignment=function(t){return this._pitchAlignment=t&&\"auto\"!==t?t:this._rotationAlignment,this._update(),this},_o.prototype.getPitchAlignment=function(){return this._pitchAlignment},_o),vo={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};function _o(t,e){var i=this;if(go.call(this),(t instanceof _t.window.HTMLElement||e)&&(t=_t.extend({element:t},e)),_t.bindAll([\"_update\",\"_onMove\",\"_onUp\",\"_addDragHandler\",\"_onMapClick\",\"_onKeyPress\"],this),this._anchor=t&&t.anchor||\"center\",this._color=t&&t.color||\"#3FB1CE\",this._draggable=t&&t.draggable||!1,this._state=\"inactive\",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||\"auto\",this._pitchAlignment=t&&t.pitchAlignment&&\"auto\"!==t.pitchAlignment?t.pitchAlignment:this._rotationAlignment,t&&t.element)this._element=t.element,this._offset=_t.Point.convert(t&&t.offset||[0,0]);else{this._defaultMarker=!0,this._element=_.create(\"div\"),this._element.setAttribute(\"aria-label\",\"Map marker\");var r=_.createNS(\"http://www.w3.org/2000/svg\",\"svg\");r.setAttributeNS(null,\"display\",\"block\"),r.setAttributeNS(null,\"height\",\"41px\"),r.setAttributeNS(null,\"width\",\"27px\"),r.setAttributeNS(null,\"viewBox\",\"0 0 27 41\");var n=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");n.setAttributeNS(null,\"stroke\",\"none\"),n.setAttributeNS(null,\"stroke-width\",\"1\"),n.setAttributeNS(null,\"fill\",\"none\"),n.setAttributeNS(null,\"fill-rule\",\"evenodd\");var o=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");o.setAttributeNS(null,\"fill-rule\",\"nonzero\");var a=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");a.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),a.setAttributeNS(null,\"fill\",\"#000000\");for(var s=0,l=[{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"9.5\",ry:\"4.77275007\"},{rx:\"8.5\",ry:\"4.29549936\"},{rx:\"7.5\",ry:\"3.81822308\"},{rx:\"6.5\",ry:\"3.34094679\"},{rx:\"5.5\",ry:\"2.86367051\"},{rx:\"4.5\",ry:\"2.38636864\"}];s<l.length;s+=1){var u=l[s],c=_.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");c.setAttributeNS(null,\"opacity\",\"0.04\"),c.setAttributeNS(null,\"cx\",\"10.5\"),c.setAttributeNS(null,\"cy\",\"5.80029008\"),c.setAttributeNS(null,\"rx\",u.rx),c.setAttributeNS(null,\"ry\",u.ry),a.appendChild(c)}var p=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");p.setAttributeNS(null,\"fill\",this._color);var h=_.createNS(\"http://www.w3.org/2000/svg\",\"path\");h.setAttributeNS(null,\"d\",\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"),p.appendChild(h);var d=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");d.setAttributeNS(null,\"opacity\",\"0.25\"),d.setAttributeNS(null,\"fill\",\"#000000\");var f=_.createNS(\"http://www.w3.org/2000/svg\",\"path\");f.setAttributeNS(null,\"d\",\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"),d.appendChild(f);var m=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");m.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),m.setAttributeNS(null,\"fill\",\"#FFFFFF\");var g=_.createNS(\"http://www.w3.org/2000/svg\",\"g\");g.setAttributeNS(null,\"transform\",\"translate(8.0, 8.0)\");var y=_.createNS(\"http://www.w3.org/2000/svg\",\"circle\");y.setAttributeNS(null,\"fill\",\"#000000\"),y.setAttributeNS(null,\"opacity\",\"0.25\"),y.setAttributeNS(null,\"cx\",\"5.5\"),y.setAttributeNS(null,\"cy\",\"5.5\"),y.setAttributeNS(null,\"r\",\"5.4999962\");var v=_.createNS(\"http://www.w3.org/2000/svg\",\"circle\");v.setAttributeNS(null,\"fill\",\"#FFFFFF\"),v.setAttributeNS(null,\"cx\",\"5.5\"),v.setAttributeNS(null,\"cy\",\"5.5\"),v.setAttributeNS(null,\"r\",\"5.4999962\"),g.appendChild(y),g.appendChild(v),o.appendChild(a),o.appendChild(p),o.appendChild(d),o.appendChild(m),o.appendChild(g),r.appendChild(o),this._element.appendChild(r),this._offset=_t.Point.convert(t&&t.offset||[0,-14])}this._element.classList.add(\"mapboxgl-marker\"),this._element.addEventListener(\"dragstart\",function(t){t.preventDefault()}),this._element.addEventListener(\"mousedown\",function(t){t.preventDefault()}),this._element.addEventListener(\"focus\",function(){var t=i._map.getContainer();t.scrollTop=0,t.scrollLeft=0}),fo(this._element,this._anchor,\"marker\"),this._popup=null}function xo(t){this.options=_t.extend({},Eo,t),_t.bindAll([\"_onMove\",\"setUnit\"],this)}var bo,wo=0,So=!1,To=((bo=_t.Evented)&&(Io.__proto__=bo),((Io.prototype=Object.create(bo&&bo.prototype)).constructor=Io).prototype.onAdd=function(t){var e;return this._map=t,this._container=_.create(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-group\"),e=this._setupUI,void 0!==mo?e(mo):void 0!==_t.window.navigator.permissions?_t.window.navigator.permissions.query({name:\"geolocation\"}).then(function(t){mo=\"denied\"!==t.state,e(mo)}):(mo=!!_t.window.navigator.geolocation,e(mo)),this._container},Io.prototype.onRemove=function(){void 0!==this._geolocationWatchID&&(_t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),_.remove(this._container),this._map.off(\"zoom\",this._onZoom),this._map=void 0,wo=0,So=!1},Io.prototype._isOutOfMapMaxBounds=function(t){var e=this._map.getMaxBounds(),i=t.coords;return e&&(i.longitude<e.getWest()||i.longitude>e.getEast()||i.latitude<e.getSouth()||i.latitude>e.getNorth())},Io.prototype._setErrorState=function(){switch(this._watchState){case\"WAITING_ACTIVE\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\")}},Io.prototype._onSuccess=function(t){if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new _t.Event(\"outofmaxbounds\",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\")}this.options.showUserLocation&&\"OFF\"!==this._watchState&&this._updateMarker(t),this.options.trackUserLocation&&\"ACTIVE_LOCK\"!==this._watchState||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove(\"mapboxgl-user-location-dot-stale\"),this.fire(new _t.Event(\"geolocate\",t)),this._finish()}},Io.prototype._updateCamera=function(t){var e=new _t.LngLat(t.coords.longitude,t.coords.latitude),i=t.coords.accuracy,r=this._map.getBearing(),n=_t.extend({bearing:r},this.options.fitBoundsOptions);this._map.fitBounds(e.toBounds(i),n,{geolocateSource:!0})},Io.prototype._updateMarker=function(t){if(t){var e=new _t.LngLat(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(e).addTo(this._map),this._userLocationDotMarker.setLngLat(e).addTo(this._map),this._accuracy=t.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},Io.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),i=this._map.unproject([1,t]),r=e.distanceTo(i),n=Math.ceil(2*this._accuracy/r);this._circleElement.style.width=n+\"px\",this._circleElement.style.height=n+\"px\"},Io.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},Io.prototype._onError=function(t){if(this._map){if(this.options.trackUserLocation)if(1===t.code){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.disabled=!0;var e=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.title=e,this._geolocateButton.setAttribute(\"aria-label\",e),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===t.code&&So)return;this._setErrorState()}\"OFF\"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add(\"mapboxgl-user-location-dot-stale\"),this.fire(new _t.Event(\"error\",t)),this._finish()}},Io.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},Io.prototype._setupUI=function(t){var i=this;if(this._container.addEventListener(\"contextmenu\",function(t){return t.preventDefault()}),this._geolocateButton=_.create(\"button\",\"mapboxgl-ctrl-geolocate\",this._container),_.create(\"span\",\"mapboxgl-ctrl-icon\",this._geolocateButton).setAttribute(\"aria-hidden\",!0),!(this._geolocateButton.type=\"button\")===t){_t.warnOnce(\"Geolocation support is not available so the GeolocateControl will be disabled.\");var e=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.disabled=!0,this._geolocateButton.title=e,this._geolocateButton.setAttribute(\"aria-label\",e)}else{var r=this._map._getUIString(\"GeolocateControl.FindMyLocation\");this._geolocateButton.title=r,this._geolocateButton.setAttribute(\"aria-label\",r)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this._watchState=\"OFF\"),this.options.showUserLocation&&(this._dotElement=_.create(\"div\",\"mapboxgl-user-location-dot\"),this._userLocationDotMarker=new yo(this._dotElement),this._circleElement=_.create(\"div\",\"mapboxgl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new yo({element:this._circleElement,pitchAlignment:\"map\"}),this.options.trackUserLocation&&(this._watchState=\"OFF\"),this._map.on(\"zoom\",this._onZoom)),this._geolocateButton.addEventListener(\"click\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\"movestart\",function(t){var e=t.originalEvent&&\"resize\"===t.originalEvent.type;t.geolocateSource||\"ACTIVE_LOCK\"!==i._watchState||e||(i._watchState=\"BACKGROUND\",i._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\"),i._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),i.fire(new _t.Event(\"trackuserlocationend\")))})},Io.prototype.trigger=function(){if(!this._setup)return _t.warnOnce(\"Geolocate control triggered before added to a map\"),!1;if(this.options.trackUserLocation){switch(this._watchState){case\"OFF\":this._watchState=\"WAITING_ACTIVE\",this.fire(new _t.Event(\"trackuserlocationstart\"));break;case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":case\"BACKGROUND_ERROR\":wo--,So=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\"),this.fire(new _t.Event(\"trackuserlocationend\"));break;case\"BACKGROUND\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new _t.Event(\"trackuserlocationstart\"))}switch(this._watchState){case\"WAITING_ACTIVE\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");break;case\"ACTIVE_ERROR\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");break;case\"BACKGROUND\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");break;case\"BACKGROUND_ERROR\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\")}if(\"OFF\"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var t;this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),So=1<++wo?(t={maximumAge:6e5,timeout:0},!0):(t=this.options.positionOptions,!1),this._geolocationWatchID=_t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)}}else _t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},Io.prototype._clearWatch=function(){_t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null)},Io),Eo={maxWidth:100,unit:\"metric\"};function Io(t){bo.call(this),this.options=_t.extend({},vo,t),_t.bindAll([\"_onSuccess\",\"_onError\",\"_onZoom\",\"_finish\",\"_setupUI\",\"_updateCamera\",\"_updateMarker\"],this)}function Co(t,e,i){var r=i&&i.maxWidth||100,n=t._container.clientHeight/2,o=t.unproject([0,n]),a=t.unproject([r,n]),s=o.distanceTo(a);if(i&&\"imperial\"===i.unit){var l=3.2808*s;5280<l?Ao(e,r,l/5280,t._getUIString(\"ScaleControl.Miles\")):Ao(e,r,l,t._getUIString(\"ScaleControl.Feet\"))}else i&&\"nautical\"===i.unit?Ao(e,r,s/1852,t._getUIString(\"ScaleControl.NauticalMiles\")):1e3<=s?Ao(e,r,s/1e3,t._getUIString(\"ScaleControl.Kilometers\")):Ao(e,r,s,t._getUIString(\"ScaleControl.Meters\"))}function Ao(t,e,i,r){var n,o,a,s,l,u=(n=i,(o=Math.pow(10,(\"\"+Math.floor(n)).length-1))*(a=10<=(a=n/o)?10:5<=a?5:3<=a?3:2<=a?2:1<=a?1:(s=a,l=Math.pow(10,Math.ceil(-Math.log(s)/Math.LN10)),Math.round(s*l)/l))),c=u/i;t.style.width=e*c+\"px\",t.innerHTML=u+\" \"+r}function ko(t){this._fullscreen=!1,t&&t.container&&(t.container instanceof _t.window.HTMLElement?this._container=t.container:_t.warnOnce(\"Full screen control 'container' must be a DOM element.\")),_t.bindAll([\"_onClickFullscreen\",\"_changeIcon\"],this),\"onfullscreenchange\"in _t.window.document?this._fullscreenchange=\"fullscreenchange\":\"onmozfullscreenchange\"in _t.window.document?this._fullscreenchange=\"mozfullscreenchange\":\"onwebkitfullscreenchange\"in _t.window.document?this._fullscreenchange=\"webkitfullscreenchange\":\"onmsfullscreenchange\"in _t.window.document&&(this._fullscreenchange=\"MSFullscreenChange\")}xo.prototype.getDefaultPosition=function(){return\"bottom-left\"},xo.prototype._onMove=function(){Co(this._map,this._container,this.options)},xo.prototype.onAdd=function(t){return this._map=t,this._container=_.create(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-scale\",t.getContainer()),this._map.on(\"move\",this._onMove),this._onMove(),this._container},xo.prototype.onRemove=function(){_.remove(this._container),this._map.off(\"move\",this._onMove),this._map=void 0},xo.prototype.setUnit=function(t){this.options.unit=t,Co(this._map,this._container,this.options)},ko.prototype.onAdd=function(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=_.create(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-group\"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display=\"none\",_t.warnOnce(\"This device does not support fullscreen mode.\")),this._controlContainer},ko.prototype.onRemove=function(){_.remove(this._controlContainer),this._map=null,_t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},ko.prototype._checkFullscreenSupport=function(){return!!(_t.window.document.fullscreenEnabled||_t.window.document.mozFullScreenEnabled||_t.window.document.msFullscreenEnabled||_t.window.document.webkitFullscreenEnabled)},ko.prototype._setupUI=function(){var t=this._fullscreenButton=_.create(\"button\",\"mapboxgl-ctrl-fullscreen\",this._controlContainer);_.create(\"span\",\"mapboxgl-ctrl-icon\",t).setAttribute(\"aria-hidden\",!0),t.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),_t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},ko.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",t),this._fullscreenButton.title=t},ko.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?\"FullscreenControl.Exit\":\"FullscreenControl.Enter\")},ko.prototype._isFullscreen=function(){return this._fullscreen},ko.prototype._changeIcon=function(){(_t.window.document.fullscreenElement||_t.window.document.mozFullScreenElement||_t.window.document.webkitFullscreenElement||_t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-fullscreen\"),this._updateTitle())},ko.prototype._onClickFullscreen=function(){this._isFullscreen()?_t.window.document.exitFullscreen?_t.window.document.exitFullscreen():_t.window.document.mozCancelFullScreen?_t.window.document.mozCancelFullScreen():_t.window.document.msExitFullscreen?_t.window.document.msExitFullscreen():_t.window.document.webkitCancelFullScreen&&_t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Po,Mo={closeButton:!0,closeOnClick:!0,className:\"\",maxWidth:\"240px\"},Lo=((Po=_t.Evented)&&(Do.__proto__=Po),((Do.prototype=Object.create(Po&&Po.prototype)).constructor=Do).prototype.addTo=function(t){var e=this;return this._map=t,this.options.closeOnClick&&this._map.on(\"click\",this._onClose),this.options.closeOnMove&&this._map.on(\"move\",this._onClose),this._map.on(\"remove\",this.remove),this._update(),this._trackPointer?(this._map.on(\"mousemove\",function(t){e._update(t.point)}),this._map.on(\"mouseup\",function(t){e._update(t.point)}),this._container&&this._container.classList.add(\"mapboxgl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"mapboxgl-track-pointer\")):this._map.on(\"move\",this._update),this.fire(new _t.Event(\"open\")),this},Do.prototype.isOpen=function(){return!!this._map},Do.prototype.remove=function(){return this._content&&_.remove(this._content),this._container&&(_.remove(this._container),delete this._container),this._map&&(this._map.off(\"move\",this._update),this._map.off(\"move\",this._onClose),this._map.off(\"click\",this._onClose),this._map.off(\"remove\",this.remove),this._map.off(\"mousemove\"),delete this._map),this.fire(new _t.Event(\"close\")),this},Do.prototype.getLngLat=function(){return this._lngLat},Do.prototype.setLngLat=function(t){return this._lngLat=_t.LngLat.convert(t),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on(\"move\",this._update),this._map.off(\"mousemove\"),this._container&&this._container.classList.remove(\"mapboxgl-popup-track-pointer\"),this._map._canvasContainer.classList.remove(\"mapboxgl-track-pointer\")),this},Do.prototype.trackPointer=function(){var e=this;return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off(\"move\",this._update),this._map.on(\"mousemove\",function(t){e._update(t.point)}),this._map.on(\"drag\",function(t){e._update(t.point)}),this._container&&this._container.classList.add(\"mapboxgl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"mapboxgl-track-pointer\")),this},Do.prototype.getElement=function(){return this._container},Do.prototype.setText=function(t){return this.setDOMContent(_t.window.document.createTextNode(t))},Do.prototype.setHTML=function(t){var e,i=_t.window.document.createDocumentFragment(),r=_t.window.document.createElement(\"body\");for(r.innerHTML=t;e=r.firstChild;)i.appendChild(e);return this.setDOMContent(i)},Do.prototype.getMaxWidth=function(){return this._container.style.maxWidth},Do.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},Do.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},Do.prototype.addClassName=function(t){this._container.classList.add(t)},Do.prototype.removeClassName=function(t){this._container.classList.remove(t)},Do.prototype.toggleClassName=function(t){return this._container.classList.toggle(t)},Do.prototype._createContent=function(){this._content&&_.remove(this._content),this._content=_.create(\"div\",\"mapboxgl-popup-content\",this._container),this.options.closeButton&&(this._closeButton=_.create(\"button\",\"mapboxgl-popup-close-button\",this._content),this._closeButton.type=\"button\",this._closeButton.setAttribute(\"aria-label\",\"Close popup\"),this._closeButton.innerHTML=\"×\",this._closeButton.addEventListener(\"click\",this._onClose))},Do.prototype._update=function(t){var e=this,i=this._lngLat||this._trackPointer;if(this._map&&i&&this._content&&(this._container||(this._container=_.create(\"div\",\"mapboxgl-popup\",this._map.getContainer()),this._tip=_.create(\"div\",\"mapboxgl-popup-tip\",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(\" \").forEach(function(t){return e._container.classList.add(t)}),this._trackPointer&&this._container.classList.add(\"mapboxgl-popup-track-pointer\")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=po(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||t)){var r=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat),n=this.options.anchor,o=function t(e){if(e){if(\"number\"==typeof e){var i=Math.round(Math.sqrt(.5*Math.pow(e,2)));return{center:new _t.Point(0,0),top:new _t.Point(0,e),\"top-left\":new _t.Point(i,i),\"top-right\":new _t.Point(-i,i),bottom:new _t.Point(0,-e),\"bottom-left\":new _t.Point(i,-i),\"bottom-right\":new _t.Point(-i,-i),left:new _t.Point(e,0),right:new _t.Point(-e,0)}}if(e instanceof _t.Point||Array.isArray(e)){var r=_t.Point.convert(e);return{center:r,top:r,\"top-left\":r,\"top-right\":r,bottom:r,\"bottom-left\":r,\"bottom-right\":r,left:r,right:r}}return{center:_t.Point.convert(e.center||[0,0]),top:_t.Point.convert(e.top||[0,0]),\"top-left\":_t.Point.convert(e[\"top-left\"]||[0,0]),\"top-right\":_t.Point.convert(e[\"top-right\"]||[0,0]),bottom:_t.Point.convert(e.bottom||[0,0]),\"bottom-left\":_t.Point.convert(e[\"bottom-left\"]||[0,0]),\"bottom-right\":_t.Point.convert(e[\"bottom-right\"]||[0,0]),left:_t.Point.convert(e.left||[0,0]),right:_t.Point.convert(e.right||[0,0])}}return t(new _t.Point(0,0))}(this.options.offset);if(!n){var a,s=this._container.offsetWidth,l=this._container.offsetHeight;a=r.y+o.bottom.y<l?[\"top\"]:r.y>this._map.transform.height-l?[\"bottom\"]:[],r.x<s/2?a.push(\"left\"):r.x>this._map.transform.width-s/2&&a.push(\"right\"),n=0===a.length?\"bottom\":a.join(\"-\")}var u=r.add(o[n]).round();_.setTransform(this._container,ho[n]+\" translate(\"+u.x+\"px,\"+u.y+\"px)\"),fo(this._container,n,\"popup\")}},Do.prototype._onClose=function(){this.remove()},Do);function Do(t){Po.call(this),this.options=_t.extend(Object.create(Mo),t),_t.bindAll([\"_update\",\"_onClose\",\"remove\"],this)}var Oo={version:_t.version,supported:i,setRTLTextPlugin:_t.setRTLTextPlugin,getRTLTextPluginStatus:_t.getRTLTextPluginStatus,Map:so,NavigationControl:uo,GeolocateControl:To,AttributionControl:Xn,ScaleControl:xo,FullscreenControl:ko,Popup:Lo,Marker:yo,Style:yr,LngLat:_t.LngLat,LngLatBounds:_t.LngLatBounds,Point:_t.Point,MercatorCoordinate:_t.MercatorCoordinate,Evented:_t.Evented,config:_t.config,get accessToken(){return _t.config.ACCESS_TOKEN},set accessToken(t){_t.config.ACCESS_TOKEN=t},get baseApiUrl(){return _t.config.API_URL},set baseApiUrl(t){_t.config.API_URL=t},get workerCount(){return hi.workerCount},set workerCount(t){hi.workerCount=t},get maxParallelImageRequests(){return _t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){_t.config.MAX_PARALLEL_IMAGE_REQUESTS=t},clearStorage:function(t){_t.clearTileCache(t)},workerUrl:\"\"};return Oo}),a)}),i=(h.Map,h.setRTLTextPlugin),r=(h.supported,h.Marker),n=\"atlas.microsoft.com\",o=\"atlas.microsoft.com\",a=\"styles/definitions/2019-10-16.json\",s=\"e96cb745-c6f5-409c-a775-c4313e468c1d\",l=\"https://login.microsoftonline.com/\",u=\"Authorization\",c=\"Bearer \",d=\"{azMapsDomain}\",f=\"Map-Agent\",m=\"x-ms-client-id\",g=\"Ms-Am-Request-Origin\",y=\"MapControl\",v=\"https://atlas.microsoft.com/\",_=\"Session-Id\",x=function(t,e){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)};function b(t,e){function i(){this.constructor=t}x(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var w=function(){return(w=Object.assign||function(t){for(var e,i=1,r=arguments.length;i<r;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)};function S(o,a,s,l){return new(s=s||Promise)(function(t,e){function i(t){try{n(l.next(t))}catch(t){e(t)}}function r(t){try{n(l.throw(t))}catch(t){e(t)}}function n(e){e.done?t(e.value):new s(function(t){t(e.value)}).then(i,r)}n((l=l.apply(o,a||[])).next())})}function T(i,r){var n,o,a,t,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return t={next:e(0),throw:e(1),return:e(2)},\"function\"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,o&&(a=2&e[0]?o.return:e[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,e[1])).done)return a;switch(o=0,a&&(e=[2&e[0],a.value]),e[0]){case 0:case 1:a=e;break;case 4:return s.label++,{value:e[1],done:!1};case 5:s.label++,o=e[1],e=[0];continue;case 7:e=s.ops.pop(),s.trys.pop();continue;default:if(!(a=0<(a=s.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){s=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){s.label=e[1];break}if(6===e[0]&&s.label<a[1]){s.label=a[1],a=e;break}if(a&&s.label<a[2]){s.label=a[2],s.ops.push(e);break}a[2]&&s.ops.pop(),s.trys.pop();continue}e=r.call(i,s)}catch(t){e=[6,t],o=0}finally{n=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}}var E=(I.prototype.merge=function(){for(var t,e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];for(var r=0,n=e;r<n.length;r++){var o=n[r];if(o)for(var a in o)o.hasOwnProperty(a)&&this.hasOwnProperty(a)&&(void 0!==o[a]&&null!=o[a]?this[a]instanceof I?this[a].merge(o[a]):this[a]=o[a]:(t=t||new(Object.getPrototypeOf(this).constructor),this[a]=t[a]))}return this},I);function I(){}var C,A=(b(k,C=E),k);function k(){var t=null!==C&&C.apply(this,arguments)||this;return t.domain=void 0,t.headers={},t.path=\"\",t.protocol=\"https\",t.queryParams={},t.subdomain=\"\",t}var P=(M.prototype.get=function(){return fetch(this.toString(),{method:\"GET\",mode:\"cors\",headers:new Headers(this.options.headers)}).then(function(t){if(t.ok)return t.json();throw new Error(\"HTTP \"+t.status+\": \"+t.statusText)})},M.prototype.toString=function(){var t=Object.entries(this.options.queryParams).map(function(t){return t[0]+\"=\"+t[1]}).join(\"&\"),e=[];return M.protoRegEx.test(this.options.domain)||(e.push(this.options.protocol+\"://\"),e.push(this.options.subdomain?this.options.subdomain+\".\":\"\")),e.push(this.options.domain),e.push(this.options.path?\"/\"+this.options.path:\"\"),e.push(t?\"?\"+t:\"\"),e.join(\"\")},M.protoRegEx=new RegExp(/^\\w+:\\/\\//),M);function M(t){this.options=(new A).merge(t)}var L,D=\"2.0.27\",O=(z.getFullVersion=function(){return D},z.getEndpointVersion=function(){var t=D.indexOf(\".\");return-1===(t=D.indexOf(\".\",t+1))?D:D.substring(0,t)},z);function z(){}(L=p.ControlPosition||(p.ControlPosition={})).TopLeft=\"top-left\",L.TopRight=\"top-right\",L.BottomLeft=\"bottom-left\",L.BottomRight=\"bottom-right\",L.NonFixed=\"non-fixed\";var R,N=(b(B,R=E),B);function B(){var t=null!==R&&R.apply(this,arguments)||this;return t.position=p.ControlPosition.NonFixed,t}var F={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},U=e(function(t){var a=Array.prototype.concat,s=Array.prototype.slice,e=t.exports=function(t){for(var e,i=[],r=0,n=t.length;r<n;r++){var o=t[r];(e=o)&&\"string\"!=typeof e&&(e instanceof Array||Array.isArray(e)||0<=e.length&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&\"String\"!==e.constructor.name))?i=a.call(i,s.call(o)):i.push(o)}return i};e.wrap=function(t){return function(){return t(e(arguments))}}}),j=e(function(t){var e={};for(var i in F)F.hasOwnProperty(i)&&(e[F[i]]=i);var r=t.exports={to:{},get:{}};function a(t,e,i){return Math.min(Math.max(e,t),i)}function n(t){var e=t.toString(16).toUpperCase();return e.length<2?\"0\"+e:e}r.get=function(t){var e,i;switch(t.substring(0,3).toLowerCase()){case\"hsl\":e=r.get.hsl(t),i=\"hsl\";break;case\"hwb\":e=r.get.hwb(t),i=\"hwb\";break;default:e=r.get.rgb(t),i=\"rgb\"}return e?{model:i,value:e}:null},r.get.rgb=function(t){if(!t)return null;var e,i,r,n=[0,0,0,1];if(e=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=e[2],e=e[1],i=0;i<3;i++){var o=2*i;n[i]=parseInt(e.slice(o,2+o),16)}r&&(n[3]=Math.round(parseInt(r,16)/255*100)/100)}else if(e=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(e=e[1])[3],i=0;i<3;i++)n[i]=parseInt(e[i]+e[i],16);r&&(n[3]=Math.round(parseInt(r+r,16)/255*100)/100)}else if(e=t.match(/^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/)){for(i=0;i<3;i++)n[i]=parseInt(e[i+1],0);e[4]&&(n[3]=parseFloat(e[4]))}else{if(!(e=t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/)))return(e=t.match(/(\\D+)/))?\"transparent\"===e[1]?[0,0,0,0]:(n=F[e[1]])?(n[3]=1,n):null:null;for(i=0;i<3;i++)n[i]=Math.round(2.55*parseFloat(e[i+1]));e[4]&&(n[3]=parseFloat(e[4]))}for(i=0;i<3;i++)n[i]=a(n[i],0,255);return n[3]=a(n[3],0,1),n},r.get.hsl=function(t){if(!t)return null;var e=t.match(/^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/);if(e){var i=parseFloat(e[4]);return[(parseFloat(e[1])+360)%360,a(parseFloat(e[2]),0,100),a(parseFloat(e[3]),0,100),a(isNaN(i)?1:i,0,1)]}return null},r.get.hwb=function(t){if(!t)return null;var e=t.match(/^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/);if(e){var i=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,a(parseFloat(e[2]),0,100),a(parseFloat(e[3]),0,100),a(isNaN(i)?1:i,0,1)]}return null},r.to.hex=function(){var t=U(arguments);return\"#\"+n(t[0])+n(t[1])+n(t[2])+(t[3]<1?n(Math.round(255*t[3])):\"\")},r.to.rgb=function(){var t=U(arguments);return t.length<4||1===t[3]?\"rgb(\"+Math.round(t[0])+\", \"+Math.round(t[1])+\", \"+Math.round(t[2])+\")\":\"rgba(\"+Math.round(t[0])+\", \"+Math.round(t[1])+\", \"+Math.round(t[2])+\", \"+t[3]+\")\"},r.to.rgb.percent=function(){var t=U(arguments),e=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return t.length<4||1===t[3]?\"rgb(\"+e+\"%, \"+i+\"%, \"+r+\"%)\":\"rgba(\"+e+\"%, \"+i+\"%, \"+r+\"%, \"+t[3]+\")\"},r.to.hsl=function(){var t=U(arguments);return t.length<4||1===t[3]?\"hsl(\"+t[0]+\", \"+t[1]+\"%, \"+t[2]+\"%)\":\"hsla(\"+t[0]+\", \"+t[1]+\"%, \"+t[2]+\"%, \"+t[3]+\")\"},r.to.hwb=function(){var t=U(arguments),e=\"\";return 4<=t.length&&1!==t[3]&&(e=\", \"+t[3]),\"hwb(\"+t[0]+\", \"+t[1]+\"%, \"+t[2]+\"%\"+e+\")\"},r.to.keyword=function(t){return e[t.slice(0,3)]}}),q=(j.to,j.get,e(function(t){var u={};for(var e in F)F.hasOwnProperty(e)&&(u[F[e]]=e);var a=t.exports={rgb:{channels:3,labels:\"rgb\"},hsl:{channels:3,labels:\"hsl\"},hsv:{channels:3,labels:\"hsv\"},hwb:{channels:3,labels:\"hwb\"},cmyk:{channels:4,labels:\"cmyk\"},xyz:{channels:3,labels:\"xyz\"},lab:{channels:3,labels:\"lab\"},lch:{channels:3,labels:\"lch\"},hex:{channels:1,labels:[\"hex\"]},keyword:{channels:1,labels:[\"keyword\"]},ansi16:{channels:1,labels:[\"ansi16\"]},ansi256:{channels:1,labels:[\"ansi256\"]},hcg:{channels:3,labels:[\"h\",\"c\",\"g\"]},apple:{channels:3,labels:[\"r16\",\"g16\",\"b16\"]},gray:{channels:1,labels:[\"gray\"]}};for(var i in a)if(a.hasOwnProperty(i)){if(!(\"channels\"in a[i]))throw new Error(\"missing channels property: \"+i);if(!(\"labels\"in a[i]))throw new Error(\"missing channel labels property: \"+i);if(a[i].labels.length!==a[i].channels)throw new Error(\"channel and label counts mismatch: \"+i);var r=a[i].channels,n=a[i].labels;delete a[i].channels,delete a[i].labels,Object.defineProperty(a[i],\"channels\",{value:r}),Object.defineProperty(a[i],\"labels\",{value:n})}a.rgb.hsl=function(t){var e,i,r=t[0]/255,n=t[1]/255,o=t[2]/255,a=Math.min(r,n,o),s=Math.max(r,n,o),l=s-a;return s===a?e=0:r===s?e=(n-o)/l:n===s?e=2+(o-r)/l:o===s&&(e=4+(r-n)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(a+s)/2,[e,100*(s===a?0:i<=.5?l/(s+a):l/(2-s-a)),100*i]},a.rgb.hsv=function(t){function e(t){return(c-t)/6/p+.5}var i,r,n,o,a,s=t[0]/255,l=t[1]/255,u=t[2]/255,c=Math.max(s,l,u),p=c-Math.min(s,l,u);return 0==p?o=a=0:(a=p/c,i=e(s),r=e(l),n=e(u),s===c?o=n-r:l===c?o=1/3+i-n:u===c&&(o=2/3+r-i),o<0?o+=1:1<o&&--o),[360*o,100*a,100*c]},a.rgb.hwb=function(t){var e=t[0],i=t[1],r=t[2];return[a.rgb.hsl(t)[0],100*(1/255*Math.min(e,Math.min(i,r))),100*(r=1-1/255*Math.max(e,Math.max(i,r)))]},a.rgb.cmyk=function(t){var e,i=t[0]/255,r=t[1]/255,n=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-r,1-n)))/(1-e)||0),100*((1-r-e)/(1-e)||0),100*((1-n-e)/(1-e)||0),100*e]},a.rgb.keyword=function(t){var e=u[t];if(e)return e;var i,r,n,o=1/0;for(var a in F)if(F.hasOwnProperty(a)){var s=F[a],l=(r=t,n=s,Math.pow(r[0]-n[0],2)+Math.pow(r[1]-n[1],2)+Math.pow(r[2]-n[2],2));l<o&&(o=l,i=a)}return i},a.keyword.rgb=function(t){return F[t]},a.rgb.xyz=function(t){var e=t[0]/255,i=t[1]/255,r=t[2]/255;return[100*(.4124*(e=.04045<e?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=.04045<i?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(r=.04045<r?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*e+.7152*i+.0722*r),100*(.0193*e+.1192*i+.9505*r)]},a.rgb.lab=function(t){var e=a.rgb.xyz(t),i=e[0],r=e[1],n=e[2];return r/=100,n/=108.883,i=.008856<(i/=95.047)?Math.pow(i,1/3):7.787*i+16/116,[116*(r=.008856<r?Math.pow(r,1/3):7.787*r+16/116)-16,500*(i-r),200*(r-(n=.008856<n?Math.pow(n,1/3):7.787*n+16/116))]},a.hsl.rgb=function(t){var e,i,r,n,o,a=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),n=[0,0,0];for(var u=0;u<3;u++)(r=a+1/3*-(u-1))<0&&r++,1<r&&r--,o=6*r<1?e+6*(i-e)*r:2*r<1?i:3*r<2?e+(i-e)*(2/3-r)*6:e,n[u]=255*o;return n},a.hsl.hsv=function(t){var e=t[0],i=t[1]/100,r=t[2]/100,n=i,o=Math.max(r,.01);return i*=(r*=2)<=1?r:2-r,n*=o<=1?o:2-o,[e,100*(0===r?2*n/(o+n):2*i/(r+i)),100*((r+i)/2)]},a.hsv.rgb=function(t){var e=t[0]/60,i=t[1]/100,r=t[2]/100,n=Math.floor(e)%6,o=e-Math.floor(e),a=255*r*(1-i),s=255*r*(1-i*o),l=255*r*(1-i*(1-o));switch(r*=255,n){case 0:return[r,l,a];case 1:return[s,r,a];case 2:return[a,r,l];case 3:return[a,s,r];case 4:return[l,a,r];case 5:return[r,a,s]}},a.hsv.hsl=function(t){var e,i,r,n=t[0],o=t[1]/100,a=t[2]/100,s=Math.max(a,.01);return r=(2-o)*a,i=o*s,[n,100*(i=(i/=(e=(2-o)*s)<=1?e:2-e)||0),100*(r/=2)]},a.hwb.rgb=function(t){var e,i,r,n,o,a,s,l=t[0]/360,u=t[1]/100,c=t[2]/100,p=u+c;switch(1<p&&(u/=p,c/=p),r=6*l-(e=Math.floor(6*l)),0!=(1&e)&&(r=1-r),n=u+r*((i=1-c)-u),e){default:case 6:case 0:o=i,a=n,s=u;break;case 1:o=n,a=i,s=u;break;case 2:o=u,a=i,s=n;break;case 3:o=u,a=n,s=i;break;case 4:o=n,a=u,s=i;break;case 5:o=i,a=u,s=n}return[255*o,255*a,255*s]},a.cmyk.rgb=function(t){var e=t[0]/100,i=t[1]/100,r=t[2]/100,n=t[3]/100;return[255*(1-Math.min(1,e*(1-n)+n)),255*(1-Math.min(1,i*(1-n)+n)),255*(1-Math.min(1,r*(1-n)+n))]},a.xyz.rgb=function(t){var e,i,r,n=t[0]/100,o=t[1]/100,a=t[2]/100;return i=-.9689*n+1.8758*o+.0415*a,r=.0557*n+-.204*o+1.057*a,e=.0031308<(e=3.2406*n+-1.5372*o+-.4986*a)?1.055*Math.pow(e,1/2.4)-.055:12.92*e,i=.0031308<i?1.055*Math.pow(i,1/2.4)-.055:12.92*i,r=.0031308<r?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(r=Math.min(Math.max(0,r),1))]},a.xyz.lab=function(t){var e=t[0],i=t[1],r=t[2];return i/=100,r/=108.883,e=.008856<(e/=95.047)?Math.pow(e,1/3):7.787*e+16/116,[116*(i=.008856<i?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(r=.008856<r?Math.pow(r,1/3):7.787*r+16/116))]},a.lab.xyz=function(t){var e,i,r,n=t[0];e=t[1]/500+(i=(n+16)/116),r=i-t[2]/200;var o=Math.pow(i,3),a=Math.pow(e,3),s=Math.pow(r,3);return i=.008856<o?o:(i-16/116)/7.787,e=.008856<a?a:(e-16/116)/7.787,r=.008856<s?s:(r-16/116)/7.787,[e*=95.047,i*=100,r*=108.883]},a.lab.lch=function(t){var e,i=t[0],r=t[1],n=t[2];return(e=360*Math.atan2(n,r)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(r*r+n*n),e]},a.lch.lab=function(t){var e,i=t[0],r=t[1];return e=t[2]/360*2*Math.PI,[i,r*Math.cos(e),r*Math.sin(e)]},a.rgb.ansi16=function(t){var e=t[0],i=t[1],r=t[2],n=1 in arguments?arguments[1]:a.rgb.hsv(t)[2];if(0===(n=Math.round(n/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(i/255)<<1|Math.round(e/255));return 2===n&&(o+=60),o},a.hsv.ansi16=function(t){return a.rgb.ansi16(a.hsv.rgb(t),t[2])},a.rgb.ansi256=function(t){var e=t[0],i=t[1],r=t[2];return e===i&&i===r?e<8?16:248<e?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(i/255*5)+Math.round(r/255*5)},a.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return 50<t&&(e+=3.5),[e=e/10.5*255,e,e];var i=.5*(1+~~(50<t));return[(1&e)*i*255,(e>>1&1)*i*255,(e>>2&1)*i*255]},a.ansi256.rgb=function(t){if(232<=t){var e=10*(t-232)+8;return[e,e,e]}var i;return t-=16,[Math.floor(t/36)/5*255,Math.floor((i=t%36)/6)/5*255,i%6/5*255]},a.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return\"000000\".substring(e.length)+e},a.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var i=e[0];3===e[0].length&&(i=i.split(\"\").map(function(t){return t+t}).join(\"\"));var r=parseInt(i,16);return[r>>16&255,r>>8&255,255&r]},a.rgb.hcg=function(t){var e,i=t[0]/255,r=t[1]/255,n=t[2]/255,o=Math.max(Math.max(i,r),n),a=Math.min(Math.min(i,r),n),s=o-a;return e=s<=0?0:o===i?(r-n)/s%6:o===r?2+(n-i)/s:4+(i-r)/s+4,e/=6,[360*(e%=1),100*s,100*(s<1?a/(1-s):0)]},a.hsl.hcg=function(t){var e=t[1]/100,i=t[2]/100,r=1,n=0;return(r=i<.5?2*e*i:2*e*(1-i))<1&&(n=(i-.5*r)/(1-r)),[t[0],100*r,100*n]},a.hsv.hcg=function(t){var e=t[1]/100,i=t[2]/100,r=e*i,n=0;return r<1&&(n=(i-r)/(1-r)),[t[0],100*r,100*n]},a.hcg.rgb=function(t){var e=t[0]/360,i=t[1]/100,r=t[2]/100;if(0==i)return[255*r,255*r,255*r];var n,o=[0,0,0],a=e%1*6,s=a%1,l=1-s;switch(Math.floor(a)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return n=(1-i)*r,[255*(i*o[0]+n),255*(i*o[1]+n),255*(i*o[2]+n)]},a.hcg.hsv=function(t){var e=t[1]/100,i=e+t[2]/100*(1-e),r=0;return 0<i&&(r=e/i),[t[0],100*r,100*i]},a.hcg.hsl=function(t){var e=t[1]/100,i=t[2]/100*(1-e)+.5*e,r=0;return 0<i&&i<.5?r=e/(2*i):.5<=i&&i<1&&(r=e/(2*(1-i))),[t[0],100*r,100*i]},a.hcg.hwb=function(t){var e=t[1]/100,i=e+t[2]/100*(1-e);return[t[0],100*(i-e),100*(1-i)]},a.hwb.hcg=function(t){var e=t[1]/100,i=1-t[2]/100,r=i-e,n=0;return r<1&&(n=(i-r)/(1-r)),[t[0],100*r,100*n]},a.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},a.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},a.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},a.gray.hsl=a.gray.hsv=function(t){return[0,0,t[0]]},a.gray.hwb=function(t){return[0,100,t[0]]},a.gray.cmyk=function(t){return[0,0,0,t[0]]},a.gray.lab=function(t){return[t[0],0,0]},a.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return\"000000\".substring(i.length)+i},a.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}}));q.rgb,q.hsl,q.hsv,q.hwb,q.cmyk,q.xyz,q.lab,q.lch,q.hex,q.keyword,q.ansi16,q.ansi256,q.hcg,q.apple,q.gray;function V(t){var e=function(){for(var t={},e=Object.keys(q),i=e.length,r=0;r<i;r++)t[e[r]]={distance:-1,parent:null};return t}(),i=[t];for(e[t].distance=0;i.length;)for(var r=i.pop(),n=Object.keys(q[r]),o=n.length,a=0;a<o;a++){var s=n[a],l=e[s];-1===l.distance&&(l.distance=e[r].distance+1,l.parent=r,i.unshift(s))}return e}function G(e,i){return function(t){return i(e(t))}}function Z(t,e){for(var i=[e[t].parent,t],r=q[e[t].parent][t],n=e[t].parent;e[n].parent;)i.unshift(e[n].parent),r=G(q[e[n].parent][n],r),n=e[n].parent;return r.conversion=i,r}var H={};function K(e){function t(t){return null==t?t:(1<arguments.length&&(t=Array.prototype.slice.call(arguments)),e(t))}return\"conversion\"in e&&(t.conversion=e.conversion),t}function W(n){function t(t){if(null==t)return t;1<arguments.length&&(t=Array.prototype.slice.call(arguments));var e=n(t);if(\"object\"==typeof e)for(var i=e.length,r=0;r<i;r++)e[r]=Math.round(e[r]);return e}return\"conversion\"in n&&(t.conversion=n.conversion),t}Object.keys(q).forEach(function(i){H[i]={},Object.defineProperty(H[i],\"channels\",{value:q[i].channels}),Object.defineProperty(H[i],\"labels\",{value:q[i].labels});var r=function(t){for(var e=V(t),i={},r=Object.keys(e),n=r.length,o=0;o<n;o++){var a=r[o];null!==e[a].parent&&(i[a]=Z(a,e))}return i}(i);Object.keys(r).forEach(function(t){var e=r[t];H[i][t]=W(e),H[i][t].raw=K(e)})});var X=H,Y=[].slice,J=[\"keyword\",\"gray\",\"hex\"],Q={};Object.keys(X).forEach(function(t){Q[Y.call(X[t].labels).sort().join(\"\")]=t});var $={};function tt(t,e){if(!(this instanceof tt))return new tt(t,e);if(e&&e in J&&(e=null),e&&!(e in X))throw new Error(\"Unknown model: \"+e);var i,r;if(null==t)this.model=\"rgb\",this.color=[0,0,0],this.valpha=1;else if(t instanceof tt)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if(\"string\"==typeof t){var n=j.get(t);if(null===n)throw new Error(\"Unable to parse color from string: \"+t);this.model=n.model,r=X[this.model].channels,this.color=n.value.slice(0,r),this.valpha=\"number\"==typeof n.value[r]?n.value[r]:1}else if(t.length){this.model=e||\"rgb\",r=X[this.model].channels;var o=Y.call(t,0,r);this.color=rt(o,r),this.valpha=\"number\"==typeof t[r]?t[r]:1}else if(\"number\"==typeof t)t&=16777215,this.model=\"rgb\",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var a=Object.keys(t);\"alpha\"in t&&(a.splice(a.indexOf(\"alpha\"),1),this.valpha=\"number\"==typeof t.alpha?t.alpha:0);var s=a.sort().join(\"\");if(!(s in Q))throw new Error(\"Unable to parse color from object: \"+JSON.stringify(t));this.model=Q[s];var l=X[this.model].labels,u=[];for(i=0;i<l.length;i++)u.push(t[l[i]]);this.color=rt(u)}if($[this.model])for(r=X[this.model].channels,i=0;i<r;i++){var c=$[this.model][i];c&&(this.color[i]=c(this.color[i]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}function et(i,r,n){return(i=Array.isArray(i)?i:[i]).forEach(function(t){($[t]||($[t]=[]))[r]=n}),i=i[0],function(t){var e;return arguments.length?(n&&(t=n(t)),(e=this[i]()).color[r]=t):(e=this[i]().color[r],n&&(e=n(e))),e}}function it(e){return function(t){return Math.max(0,Math.min(e,t))}}function rt(t,e){for(var i=0;i<e;i++)\"number\"!=typeof t[i]&&(t[i]=0);return t}tt.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(t){var e=this.model in j.to?this:this.rgb(),i=1===(e=e.round(\"number\"==typeof t?t:1)).valpha?e.color:e.color.concat(this.valpha);return j.to[e.model](i)},percentString:function(t){var e=this.rgb().round(\"number\"==typeof t?t:1),i=1===e.valpha?e.color:e.color.concat(this.valpha);return j.to.rgb.percent(i)},array:function(){return 1===this.valpha?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var t={},e=X[this.model].channels,i=X[this.model].labels,r=0;r<e;r++)t[i[r]]=this.color[r];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray:function(){var t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject:function(){var t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round:function(t){return t=Math.max(t||0,0),new tt(this.color.map((i=t,function(t){return e=i,Number(t.toFixed(e));var e})).concat(this.valpha),this.model);var i},alpha:function(t){return arguments.length?new tt(this.color.concat(Math.max(0,Math.min(1,t))),this.model):this.valpha},red:et(\"rgb\",0,it(255)),green:et(\"rgb\",1,it(255)),blue:et(\"rgb\",2,it(255)),hue:et([\"hsl\",\"hsv\",\"hsl\",\"hwb\",\"hcg\"],0,function(t){return(t%360+360)%360}),saturationl:et(\"hsl\",1,it(100)),lightness:et(\"hsl\",2,it(100)),saturationv:et(\"hsv\",1,it(100)),value:et(\"hsv\",2,it(100)),chroma:et(\"hcg\",1,it(100)),gray:et(\"hcg\",2,it(100)),white:et(\"hwb\",1,it(100)),wblack:et(\"hwb\",2,it(100)),cyan:et(\"cmyk\",0,it(100)),magenta:et(\"cmyk\",1,it(100)),yellow:et(\"cmyk\",2,it(100)),black:et(\"cmyk\",3,it(100)),x:et(\"xyz\",0,it(100)),y:et(\"xyz\",1,it(100)),z:et(\"xyz\",2,it(100)),l:et(\"lab\",0,it(100)),a:et(\"lab\",1),b:et(\"lab\",2),keyword:function(t){return arguments.length?new tt(t):X[this.model].keyword(this.color)},hex:function(t){return arguments.length?new tt(t):j.to.hex(this.rgb().round().color)},rgbNumber:function(){var t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity:function(){for(var t=this.rgb().color,e=[],i=0;i<t.length;i++){var r=t[i]/255;e[i]=r<=.03928?r/12.92:Math.pow((.055+r)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return i<e?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return 7.1<=e?\"AAA\":4.5<=e?\"AA\":\"\"},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten:function(t){var e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken:function(t){var e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate:function(t){var e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate:function(t){var e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten:function(t){var e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken:function(t){var e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale:function(){var t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return tt.rgb(e,e,e)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var e=this.hsl(),i=e.color[0];return i=(i=(i+t)%360)<0?360+i:i,e.color[0]=i,e},mix:function(t,e){if(!t||!t.rgb)throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of '+typeof t);var i=t.rgb(),r=this.rgb(),n=void 0===e?.5:e,o=2*n-1,a=i.alpha()-r.alpha(),s=(1+(o*a==-1?o:(o+a)/(1+o*a)))/2,l=1-s;return tt.rgb(s*i.red()+l*r.red(),s*i.green()+l*r.green(),s*i.blue()+l*r.blue(),i.alpha()*n+r.alpha()*(1-n))}},Object.keys(X).forEach(function(i){if(-1===J.indexOf(i)){var r=X[i].channels;tt.prototype[i]=function(){if(this.model===i)return new tt(this);if(arguments.length)return new tt(arguments,i);var t,e=\"number\"==typeof arguments[r]?r:this.valpha;return new tt((t=X[this.model][i].raw(this.color),(Array.isArray(t)?t:[t]).concat(e)),i)},tt[i]=function(t){return\"number\"==typeof t&&(t=rt(Y.call(arguments),r)),new tt(t,i)}}});var nt,ot=tt;(nt=p.ControlStyle||(p.ControlStyle={})).light=\"light\",nt.dark=\"dark\",nt.auto=\"auto\";var at=(st.prototype.onRemove=function(){this._container&&(this._container.remove(),delete this._container),this._map&&(this._map.events.remove(\"styledata\",this._onStyleChange),delete this._map),this._observer&&(this._observer.disconnect(),delete this._observer),delete this._theme},st.prototype.buildContainer=function(t,e,i,r){var n=this;return this._map=t,this._container=document.createElement(r||\"div\"),this._container.classList.add(\"azure-maps-control-container\"),\"string\"==typeof i&&this._container.setAttribute(\"aria-label\",i),e.toLowerCase()===p.ControlStyle.auto?this._map.styles.initialize().then(function(){n._onStyleChange(),n._map.events.add(\"styledata\",n._onStyleChange)}):this._container.classList.add(e),this._container},st.prototype._setTheme=function(t){this._theme!==t&&(this._container.classList.remove(this._theme),this._container.classList.add(t),this._theme=t)},st.activateClickDelay=100,st);function st(){var e=this;this._onStyleChange=function(){if(e._map.getStyle().style.toLowerCase().startsWith(\"blank\"))e._observer||(e._onBackgroundChange(),e._observer=new MutationObserver(e._onBackgroundChange),e._observer.observe(e._map.getMapContainer(),{attributes:!0,attributeFilter:[\"style\"]}));else{e._observer&&(e._observer.disconnect(),delete e._observer);var t=e._map.styles.getTheme(e._map.getStyle());e._setTheme(t)}},this._onBackgroundChange=function(){try{var t=.5<ot(e._map.getMapContainer().style.backgroundColor).luminosity()?p.ControlStyle.light:p.ControlStyle.dark;e._setTheme(t)}catch(t){e._setTheme(p.ControlStyle.light)}}}var lt,ut=(b(ct,lt=E),ct);function ct(){var t=null!==lt&<.apply(this,arguments)||this;return t.rotationDegreesDelta=15,t.style=p.ControlStyle.light,t}var pt,ht=(b(dt,pt=at),dt.prototype.onAdd=function(t,e){var i=this,r=this.buildContainer(t,this.options.style,\"Rotation Control\"),n=this.constructRotationButton(t),o=this.constructRotationGrid(t,e);return r.addEventListener(\"mouseover\",function(t){i.lastActiveTime=i.lastActiveTime||t.timeStamp,i.hasMouse=!0,r.classList.add(\"in-use\"),o.classList.remove(\"hidden-accessible-element\")}),r.addEventListener(\"focusin\",function(t){i.lastActiveTime=i.lastActiveTime||t.timeStamp,i.hasFocus=!0,r.classList.add(\"in-use\"),o.classList.remove(\"hidden-accessible-element\")}),r.addEventListener(\"mouseleave\",function(){i.hasMouse=!1,i.hasFocus||(delete i.lastActiveTime,r.classList.remove(\"in-use\"),o.classList.add(\"hidden-accessible-element\"))}),r.addEventListener(\"focusout\",function(t){t.relatedTarget instanceof Node&&r.contains(t.relatedTarget)||(i.hasFocus=!1,i.hasMouse||(delete i.lastActiveTime,r.classList.remove(\"in-use\"),o.classList.add(\"hidden-accessible-element\")))}),e&&dt.InvertOrderPositions.includes(e.position)?(r.appendChild(o),r.appendChild(n)):(r.appendChild(n),r.appendChild(o)),r},dt.prototype.constructRotationGrid=function(t,e){var i=document.createElement(\"div\");i.classList.add(\"sub-container\"),i.classList.add(\"hidden-accessible-element\");var r=this.constructRightRotationButton(t),n=this.constructLeftRotationButton(t);return e&&dt.InvertOrderPositions.includes(e.position)?(i.appendChild(r),i.appendChild(n)):(i.appendChild(n),i.appendChild(r)),i},dt.prototype.constructRotationButton=function(e){var i=this,t=document.createElement(\"button\");t.classList.add(\"azure-maps-control-button\"),t.classList.add(\"rotation\"),t.setAttribute(\"title\",\"Reset to Default Rotation\"),t.setAttribute(\"alt\",\"Reset to Default Rotation\"),t.setAttribute(\"type\",\"button\");var r=document.createElement(\"div\");return t.appendChild(r),t.addEventListener(\"click\",function(t){t.timeStamp-i.lastActiveTime>at.activateClickDelay&&e.setCamera({bearing:dt.DefaultRotation},!0)}),e.events.add(\"rotate\",function(t){r.style.transform=\"rotate(\"+-t.map.getCamera().bearing+\"deg)\"}),t},dt.prototype.constructRightRotationButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"rotation-right\"),i.setAttribute(\"title\",\"Rotate Right\"),i.setAttribute(\"alt\",\"Rotate Right\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){t.setCamera({bearing:t.getCamera().bearing+e.options.rotationDegreesDelta,duration:dt.RotationDuration,type:\"ease\"},!0)}),i},dt.prototype.constructLeftRotationButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"rotation-left\"),i.setAttribute(\"title\",\"Rotate Left\"),i.setAttribute(\"alt\",\"Rotate Left\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){t.setCamera({bearing:t.getCamera().bearing-e.options.rotationDegreesDelta,duration:dt.RotationDuration,type:\"ease\"},!0)}),i},dt.DefaultRotation=0,dt.RotationDuration=100,dt.InvertOrderPositions=[p.ControlPosition.BottomRight,p.ControlPosition.TopRight],dt);function dt(t){var e=pt.call(this)||this;return e.hasMouse=!1,e.hasFocus=!1,e.options=(new ut).merge(t),e}var ft,mt=(b(gt,ft=E),gt);function gt(){var t=null!==ft&&ft.apply(this,arguments)||this;return t.pitchDegreesDelta=10,t.style=p.ControlStyle.light,t}var yt,vt=(b(_t,yt=at),_t.prototype.onAdd=function(t,e){var i=this,r=this.buildContainer(t,this.options.style,\"Pitch Control\"),n=this.constructPitchButton(t),o=this.constructPitchGrid(t,e);return r.addEventListener(\"mouseover\",function(t){i.lastActiveTime=i.lastActiveTime||t.timeStamp,i.hasMouse=!0,r.classList.add(\"in-use\"),o.classList.remove(\"hidden-accessible-element\")}),r.addEventListener(\"focusin\",function(t){i.lastActiveTime=i.lastActiveTime||t.timeStamp,i.hasFocus=!0,r.classList.add(\"in-use\"),o.classList.remove(\"hidden-accessible-element\")}),r.addEventListener(\"mouseleave\",function(){i.hasMouse=!1,i.hasFocus||(delete i.lastActiveTime,r.classList.remove(\"in-use\"),o.classList.add(\"hidden-accessible-element\"))}),r.addEventListener(\"focusout\",function(t){t.relatedTarget instanceof Node&&r.contains(t.relatedTarget)||(i.hasFocus=!1,i.hasMouse||(delete i.lastActiveTime,r.classList.remove(\"in-use\"),o.classList.add(\"hidden-accessible-element\")))}),e&&_t.INVERT_ORDER_POSITIONS.includes(e.position)?(r.appendChild(o),r.appendChild(n)):(r.appendChild(n),r.appendChild(o)),r},_t.prototype.constructPitchGrid=function(t,e){var i=document.createElement(\"div\");i.classList.add(\"sub-container\"),i.classList.add(\"hidden-accessible-element\");var r=this.constructPitchIncrementButton(t),n=this.constructPitchDecrementButton(t);return e&&_t.INVERT_ORDER_POSITIONS.includes(e.position)?(i.appendChild(n),i.appendChild(r)):(i.appendChild(r),i.appendChild(n)),i},_t.prototype.constructPitchButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"pitch\"),i.setAttribute(\"title\",\"Reset to Default Pitch\"),i.setAttribute(\"alt\",\"Reset to Default Pitch\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){event.timeStamp-e.lastActiveTime>at.activateClickDelay&&t.setCamera({pitch:_t.DEFAULT_PITCH},!0)}),i},_t.prototype.constructPitchDecrementButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"pitch-down\"),i.setAttribute(\"title\",\"Decrease Pitch\"),i.setAttribute(\"alt\",\"Decrease Pitch\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){t.setCamera({pitch:t.getCamera().pitch-e.options.pitchDegreesDelta,duration:_t.PITCH_DURATION_MS,type:\"ease\"},!0)}),i},_t.prototype.constructPitchIncrementButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"pitch-up\"),i.setAttribute(\"title\",\"Increase Pitch\"),i.setAttribute(\"alt\",\"Increase Pitch\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){t.setCamera({pitch:t.getCamera().pitch+e.options.pitchDegreesDelta,duration:_t.PITCH_DURATION_MS,type:\"ease\"},!0)}),i},_t.PITCH_DURATION_MS=100,_t.DEFAULT_PITCH=0,_t.INVERT_ORDER_POSITIONS=[p.ControlPosition.BottomRight,p.ControlPosition.TopRight],_t);function _t(t){var e=yt.call(this)||this;return e.hasMouse=!1,e.hasFocus=!1,e.options=(new mt).merge(t),e}function xt(){this.__data__=[],this.size=0}var bt=function(t,e){return t===e||t!=t&&e!=e};var wt=function(t,e){for(var i=t.length;i--;)if(bt(t[i][0],e))return i;return-1},St=Array.prototype.splice;function Tt(t){var e=this.__data__,i=wt(e,t);return!(i<0)&&(i==e.length-1?e.pop():St.call(e,i,1),--this.size,!0)}function Et(t){var e=this.__data__,i=wt(e,t);return i<0?void 0:e[i][1]}function It(t){return-1<wt(this.__data__,t)}function Ct(t,e){var i=this.__data__,r=wt(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function At(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}At.prototype.clear=xt,At.prototype.delete=Tt,At.prototype.get=Et,At.prototype.has=It,At.prototype.set=Ct;var kt=At;function Pt(){this.__data__=new kt,this.size=0}function Mt(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function Lt(t){return this.__data__.get(t)}function Dt(t){return this.__data__.has(t)}var Ot=\"object\"==typeof t&&t&&t.Object===Object&&t,zt=\"object\"==typeof self&&self&&self.Object===Object&&self,Rt=Ot||zt||Function(\"return this\")(),Nt=Rt.Symbol,Bt=Object.prototype,Ft=Bt.hasOwnProperty,Ut=Bt.toString,jt=Nt?Nt.toStringTag:void 0;var qt=function(t){var e=Ft.call(t,jt),i=t[jt];try{var r=!(t[jt]=void 0)}catch(t){}var n=Ut.call(t);return r&&(e?t[jt]=i:delete t[jt]),n},Vt=Object.prototype.toString;var Gt=function(t){return Vt.call(t)},Zt=Nt?Nt.toStringTag:void 0;var Ht=function(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":(Zt&&Zt in Object(t)?qt:Gt)(t)};var Kt=function(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)};var Wt,Xt=function(t){if(!Kt(t))return!1;var e=Ht(t);return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e||\"[object AsyncFunction]\"==e||\"[object Proxy]\"==e},Yt=Rt[\"__core-js_shared__\"],Jt=(Wt=/[^.]+$/.exec(Yt&&Yt.keys&&Yt.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+Wt:\"\";var Qt=function(t){return!!Jt&&Jt in t},$t=Function.prototype.toString;var te=function(t){if(null!=t){try{return $t.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"},ee=/^\\[object .+?Constructor\\]$/,ie=Function.prototype,re=Object.prototype,ne=ie.toString,oe=re.hasOwnProperty,ae=RegExp(\"^\"+ne.call(oe).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");var se=function(t){return!(!Kt(t)||Qt(t))&&(Xt(t)?ae:ee).test(te(t))};var le=function(t,e){return null==t?void 0:t[e]};var ue=function(t,e){var i=le(t,e);return se(i)?i:void 0},ce=ue(Rt,\"Map\"),pe=ue(Object,\"create\");function he(){this.__data__=pe?pe(null):{},this.size=0}function de(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var fe=Object.prototype.hasOwnProperty;function me(t){var e=this.__data__;if(pe){var i=e[t];return\"__lodash_hash_undefined__\"===i?void 0:i}return fe.call(e,t)?e[t]:void 0}var ge=Object.prototype.hasOwnProperty;function ye(t){var e=this.__data__;return pe?void 0!==e[t]:ge.call(e,t)}function ve(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=pe&&void 0===e?\"__lodash_hash_undefined__\":e,this}function _e(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}_e.prototype.clear=he,_e.prototype.delete=de,_e.prototype.get=me,_e.prototype.has=ye,_e.prototype.set=ve;var xe=_e;var be=function(t){var e=typeof t;return\"string\"==e||\"number\"==e||\"symbol\"==e||\"boolean\"==e?\"__proto__\"!==t:null===t};var we=function(t,e){var i=t.__data__;return be(e)?i[\"string\"==typeof e?\"string\":\"hash\"]:i.map};function Se(t){var e=we(this,t).delete(t);return this.size-=e?1:0,e}function Te(t){return we(this,t).get(t)}function Ee(t){return we(this,t).has(t)}function Ie(t,e){var i=we(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function Ce(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Ce.prototype.clear=function(){this.size=0,this.__data__={hash:new xe,map:new(ce||kt),string:new xe}},Ce.prototype.delete=Se,Ce.prototype.get=Te,Ce.prototype.has=Ee,Ce.prototype.set=Ie;var Ae=Ce;function ke(t,e){var i=this.__data__;if(i instanceof kt){var r=i.__data__;if(!ce||r.length<199)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new Ae(r)}return i.set(t,e),this.size=i.size,this}function Pe(t){var e=this.__data__=new kt(t);this.size=e.size}Pe.prototype.clear=Pt,Pe.prototype.delete=Mt,Pe.prototype.get=Lt,Pe.prototype.has=Dt,Pe.prototype.set=ke;var Me=Pe;var Le=function(t,e){for(var i=-1,r=null==t?0:t.length;++i<r&&!1!==e(t[i],i,t););return t},De=function(){try{var t=ue(Object,\"defineProperty\");return t({},\"\",{}),t}catch(t){}}();var Oe=function(t,e,i){\"__proto__\"==e&&De?De(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i},ze=Object.prototype.hasOwnProperty;var Re=function(t,e,i){var r=t[e];ze.call(t,e)&&bt(r,i)&&(void 0!==i||e in t)||Oe(t,e,i)};var Ne=function(t,e,i,r){var n=!i;i=i||{};for(var o=-1,a=e.length;++o<a;){var s=e[o],l=r?r(i[s],t[s],s,i,t):void 0;void 0===l&&(l=t[s]),(n?Oe:Re)(i,s,l)}return i};var Be=function(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r};var Fe=function(t){return null!=t&&\"object\"==typeof t};var Ue=function(t){return Fe(t)&&\"[object Arguments]\"==Ht(t)},je=Object.prototype,qe=je.hasOwnProperty,Ve=je.propertyIsEnumerable,Ge=Ue(function(){return arguments}())?Ue:function(t){return Fe(t)&&qe.call(t,\"callee\")&&!Ve.call(t,\"callee\")},Ze=Array.isArray;function He(){return!1}var Ke=e(function(t,e){var i=e&&!e.nodeType&&e,r=i&&t&&!t.nodeType&&t,n=r&&r.exports===i?Rt.Buffer:void 0,o=(n?n.isBuffer:void 0)||He;t.exports=o}),We=/^(?:0|[1-9]\\d*)$/;var Xe=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&(\"number\"==i||\"symbol\"!=i&&We.test(t))&&-1<t&&t%1==0&&t<e};var Ye=function(t){return\"number\"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},Je={};Je[\"[object Float32Array]\"]=Je[\"[object Float64Array]\"]=Je[\"[object Int8Array]\"]=Je[\"[object Int16Array]\"]=Je[\"[object Int32Array]\"]=Je[\"[object Uint8Array]\"]=Je[\"[object Uint8ClampedArray]\"]=Je[\"[object Uint16Array]\"]=Je[\"[object Uint32Array]\"]=!0,Je[\"[object Arguments]\"]=Je[\"[object Array]\"]=Je[\"[object ArrayBuffer]\"]=Je[\"[object Boolean]\"]=Je[\"[object DataView]\"]=Je[\"[object Date]\"]=Je[\"[object Error]\"]=Je[\"[object Function]\"]=Je[\"[object Map]\"]=Je[\"[object Number]\"]=Je[\"[object Object]\"]=Je[\"[object RegExp]\"]=Je[\"[object Set]\"]=Je[\"[object String]\"]=Je[\"[object WeakMap]\"]=!1;function Qe(t){return Fe(t)&&Ye(t.length)&&!!Je[Ht(t)]}var $e=function(e){return function(t){return e(t)}},ti=e(function(t,e){var i=e&&!e.nodeType&&e,r=i&&t&&!t.nodeType&&t,n=r&&r.exports===i&&Ot.process,o=function(){try{var t=r&&r.require&&r.require(\"util\").types;return t?t:n&&n.binding&&n.binding(\"util\")}catch(t){}}();t.exports=o}),ei=ti&&ti.isTypedArray,ii=ei?$e(ei):Qe,ri=Object.prototype.hasOwnProperty;var ni=function(t,e){var i=Ze(t),r=!i&&Ge(t),n=!i&&!r&&Ke(t),o=!i&&!r&&!n&&ii(t),a=i||r||n||o,s=a?Be(t.length,String):[],l=s.length;for(var u in t)!e&&!ri.call(t,u)||a&&(\"length\"==u||n&&(\"offset\"==u||\"parent\"==u)||o&&(\"buffer\"==u||\"byteLength\"==u||\"byteOffset\"==u)||Xe(u,l))||s.push(u);return s},oi=Object.prototype;var ai=function(t){var e=t&&t.constructor;return t===(\"function\"==typeof e&&e.prototype||oi)};var si=function(e,i){return function(t){return e(i(t))}},li=si(Object.keys,Object),ui=Object.prototype.hasOwnProperty;var ci=function(t){if(!ai(t))return li(t);var e=[];for(var i in Object(t))ui.call(t,i)&&\"constructor\"!=i&&e.push(i);return e};var pi=function(t){return null!=t&&Ye(t.length)&&!Xt(t)};var hi=function(t){return(pi(t)?ni:ci)(t)};var di=function(t,e){return t&&Ne(e,hi(e),t)};var fi=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e},mi=Object.prototype.hasOwnProperty;var gi=function(t){if(!Kt(t))return fi(t);var e=ai(t),i=[];for(var r in t)(\"constructor\"!=r||!e&&mi.call(t,r))&&i.push(r);return i};var yi=function(t){return pi(t)?ni(t,!0):gi(t)};var vi=function(t,e){return t&&Ne(e,yi(e),t)},_i=e(function(t,e){var i=e&&!e.nodeType&&e,r=i&&t&&!t.nodeType&&t,n=r&&r.exports===i?Rt.Buffer:void 0,o=n?n.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var i=t.length,r=o?o(i):new t.constructor(i);return t.copy(r),r}});var xi=function(t,e){var i=-1,r=t.length;for(e=e||Array(r);++i<r;)e[i]=t[i];return e};var bi=function(t,e){for(var i=-1,r=null==t?0:t.length,n=0,o=[];++i<r;){var a=t[i];e(a,i,t)&&(o[n++]=a)}return o};function wi(){return[]}var Si=Object.prototype.propertyIsEnumerable,Ti=Object.getOwnPropertySymbols,Ei=Ti?function(e){return null==e?[]:(e=Object(e),bi(Ti(e),function(t){return Si.call(e,t)}))}:wi;var Ii=function(t,e){return Ne(t,Ei(t),e)};var Ci=function(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t},Ai=si(Object.getPrototypeOf,Object),ki=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Ci(e,Ei(t)),t=Ai(t);return e}:wi;var Pi=function(t,e){return Ne(t,ki(t),e)};var Mi=function(t,e,i){var r=e(t);return Ze(t)?r:Ci(r,i(t))};var Li=function(t){return Mi(t,hi,Ei)};var Di=function(t){return Mi(t,yi,ki)},Oi=ue(Rt,\"DataView\"),zi=ue(Rt,\"Promise\"),Ri=ue(Rt,\"Set\"),Ni=ue(Rt,\"WeakMap\"),Bi=\"[object Map]\",Fi=\"[object Promise]\",Ui=\"[object Set]\",ji=\"[object WeakMap]\",qi=\"[object DataView]\",Vi=te(Oi),Gi=te(ce),Zi=te(zi),Hi=te(Ri),Ki=te(Ni),Wi=Ht;(Oi&&Wi(new Oi(new ArrayBuffer(1)))!=qi||ce&&Wi(new ce)!=Bi||zi&&Wi(zi.resolve())!=Fi||Ri&&Wi(new Ri)!=Ui||Ni&&Wi(new Ni)!=ji)&&(Wi=function(t){var e=Ht(t),i=\"[object Object]\"==e?t.constructor:void 0,r=i?te(i):\"\";if(r)switch(r){case Vi:return qi;case Gi:return Bi;case Zi:return Fi;case Hi:return Ui;case Ki:return ji}return e});var Xi=Wi,Yi=Object.prototype.hasOwnProperty;var Ji=function(t){var e=t.length,i=new t.constructor(e);return e&&\"string\"==typeof t[0]&&Yi.call(t,\"index\")&&(i.index=t.index,i.input=t.input),i},Qi=Rt.Uint8Array;var $i=function(t){var e=new t.constructor(t.byteLength);return new Qi(e).set(new Qi(t)),e};var tr=function(t,e){var i=e?$i(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)},er=/\\w*$/;var ir=function(t){var e=new t.constructor(t.source,er.exec(t));return e.lastIndex=t.lastIndex,e},rr=Nt?Nt.prototype:void 0,nr=rr?rr.valueOf:void 0;var or=function(t){return nr?Object(nr.call(t)):{}};var ar=function(t,e){var i=e?$i(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)};var sr=function(t,e,i){var r=t.constructor;switch(e){case\"[object ArrayBuffer]\":return $i(t);case\"[object Boolean]\":case\"[object Date]\":return new r(+t);case\"[object DataView]\":return tr(t,i);case\"[object Float32Array]\":case\"[object Float64Array]\":case\"[object Int8Array]\":case\"[object Int16Array]\":case\"[object Int32Array]\":case\"[object Uint8Array]\":case\"[object Uint8ClampedArray]\":case\"[object Uint16Array]\":case\"[object Uint32Array]\":return ar(t,i);case\"[object Map]\":return new r;case\"[object Number]\":case\"[object String]\":return new r(t);case\"[object RegExp]\":return ir(t);case\"[object Set]\":return new r;case\"[object Symbol]\":return or(t)}},lr=Object.create;function ur(){}var cr=function(t){if(!Kt(t))return{};if(lr)return lr(t);ur.prototype=t;var e=new ur;return ur.prototype=void 0,e};var pr=function(t){return\"function\"!=typeof t.constructor||ai(t)?{}:cr(Ai(t))};function hr(t){return Fe(t)&&\"[object Map]\"==Xi(t)}var dr=ti&&ti.isMap,fr=dr?$e(dr):hr;function mr(t){return Fe(t)&&\"[object Set]\"==Xi(t)}var gr=ti&&ti.isSet,yr=gr?$e(gr):mr,vr=1,_r=2,xr=4,br=\"[object Arguments]\",wr=\"[object Function]\",Sr=\"[object GeneratorFunction]\",Tr=\"[object Object]\",Er={};Er[br]=Er[\"[object Array]\"]=Er[\"[object ArrayBuffer]\"]=Er[\"[object DataView]\"]=Er[\"[object Boolean]\"]=Er[\"[object Date]\"]=Er[\"[object Float32Array]\"]=Er[\"[object Float64Array]\"]=Er[\"[object Int8Array]\"]=Er[\"[object Int16Array]\"]=Er[\"[object Int32Array]\"]=Er[\"[object Map]\"]=Er[\"[object Number]\"]=Er[Tr]=Er[\"[object RegExp]\"]=Er[\"[object Set]\"]=Er[\"[object String]\"]=Er[\"[object Symbol]\"]=Er[\"[object Uint8Array]\"]=Er[\"[object Uint8ClampedArray]\"]=Er[\"[object Uint16Array]\"]=Er[\"[object Uint32Array]\"]=!0,Er[\"[object Error]\"]=Er[wr]=Er[\"[object WeakMap]\"]=!1;var Ir=function i(r,n,o,t,e,a){var s,l=n&vr,u=n&_r,c=n&xr;if(o&&(s=e?o(r,t,e,a):o(r)),void 0!==s)return s;if(!Kt(r))return r;var p=Ze(r);if(p){if(s=Ji(r),!l)return xi(r,s)}else{var h=Xi(r),d=h==wr||h==Sr;if(Ke(r))return _i(r,l);if(h==Tr||h==br||d&&!e){if(s=u||d?{}:pr(r),!l)return u?Pi(r,vi(s,r)):Ii(r,di(s,r))}else{if(!Er[h])return e?r:{};s=sr(r,h,l)}}var f=(a=a||new Me).get(r);if(f)return f;a.set(r,s),yr(r)?r.forEach(function(t){s.add(i(t,n,o,t,r,a))}):fr(r)&&r.forEach(function(t,e){s.set(e,i(t,n,o,e,r,a))});var m=c?u?Di:Li:u?keysIn:hi,g=p?void 0:m(r);return Le(g||r,function(t,e){g&&(t=r[e=t]),Re(s,e,i(t,n,o,e,r,a))}),s};var Cr,Ar=function(t){return Ir(t,5)},kr=Map,Pr=(b(Mr,Cr=E),Mr);function Mr(){var t=null!==Cr&&Cr.apply(this,arguments)||this;return t.layout=\"icons\",t.mapStyles=[\"road\",\"grayscale_light\",\"grayscale_dark\",\"night\",\"road_shaded_relief\"],t.style=p.ControlStyle.light,t}var Lr,Dr=(b(Or,Lr=at),Or.prototype.onAdd=function(t,e){var i=this;this.map=t;var r=this.buildContainer(t,this.options.style,\"Map Style Control\"),n=this.buildStyleOpsGrid(r),o=this.buildCurrStyleBtn(r,n);return r.addEventListener(\"mouseover\",function(){i.hasMouse=!0,r.classList.add(Or.Css.inUse),n.classList.remove(\"hidden-accessible-element\")}),r.addEventListener(\"focusin\",function(){i.hasFocus=!0,r.classList.add(Or.Css.inUse),n.classList.remove(\"hidden-accessible-element\")}),r.addEventListener(\"mouseleave\",function(){i.hasMouse=!1,i.hasFocus||(r.classList.remove(Or.Css.inUse),n.classList.add(\"hidden-accessible-element\"))}),r.addEventListener(\"focusout\",function(t){t.relatedTarget instanceof Node&&r.contains(t.relatedTarget)||(i.hasFocus=!1,i.hasMouse||(r.classList.remove(Or.Css.inUse),n.classList.add(\"hidden-accessible-element\")))}),e&&Or.InvertOrderPositions.includes(e.position)?(r.appendChild(n),r.appendChild(o)):(r.appendChild(o),r.appendChild(n)),r},Or.prototype.onRemove=function(){Lr.prototype.onRemove.call(this),this.map.events.remove(\"styledata\",this.onStyleChange)},Or.prototype.buildSelectStyleBtn=function(t,e){var i=this,r=document.createElement(\"button\"),n=this.mapToFriendlyStyleName(t);r.setAttribute(\"title\",n),r.setAttribute(\"alt\",n),r.setAttribute(\"type\",\"button\");var o=new Image;return o.src=e,o.alt=n,r.appendChild(o),\"icons\"===this.options.layout?r.classList.add(Or.Css.button):r.appendChild(document.createTextNode(n)),r.addEventListener(\"click\",function(){i.map.setStyle({style:t})}),r},Or.prototype.buildCurrStyleBtn=function(t,e){var i=document.createElement(\"button\");i.classList.add(Or.Css.button),i.classList.add(Or.Css.currentStyle),i.setAttribute(\"title\",\"Select Style\"),i.setAttribute(\"alt\",\"Select Style\"),i.setAttribute(\"type\",\"button\"),this.currStyleImage=new Image,i.appendChild(this.currStyleImage);var r=document.createElement(\"div\");return r.classList.add(\"icon\"),i.appendChild(r),i},Or.prototype.buildStyleOpsGrid=function(t){var a=this,s=document.createElement(\"div\");return s.classList.add(Or.Css.styleOptions),s.classList.add(this.options.layout),s.setAttribute(\"aria-label\",\"Style Options\"),s.classList.add(\"hidden-accessible-element\"),this.map.styles.initialize().then(function(){for(var t=a.map.styles.getDef(),e=a.map.getStyle().style,i=0,r=t.styles;i<r.length;i++){var n=r[i],o=new P({domain:t.domain,path:n.iconPath}).toString();a.styleIcons.set(n.name,o),n.name===e&&(a.currStyleImage.src=o,a.currStyleImage.alt=a.mapToFriendlyStyleName(n.name))}\"all\"===a.options.mapStyles?a.styleIcons.forEach(function(t,e){var i=a.buildSelectStyleBtn(e,t);s.appendChild(i)}):a.options.mapStyles.filter(function(t){return a.styleIcons.has(t)}).forEach(function(t){var e=a.styleIcons.get(t),i=a.buildSelectStyleBtn(t,e);s.appendChild(i)}),a.map.events.add(\"styledata\",a.onStyleChange)}),s},Or.prototype.mapToFriendlyStyleName=function(t){return Or.StyleNamesMap[t]?Or.StyleNamesMap[t]:t},Or.InvertOrderPositions=[p.ControlPosition.TopRight,p.ControlPosition.BottomRight],Or.Css={button:\"azure-maps-control-button\",currentStyle:\"curr-style\",inUse:\"in-use\",styleOptions:\"style-options\"},Or.StyleNamesMap={road:\"Road\",satellite:\"Satellite\",satellite_road_labels:\"Hybrid\",grayscale_dark:\"Grayscale (Dark)\",grayscale_light:\"Grayscale (Light)\",night:\"Night\",road_shaded_relief:\"Terra\",blank:\"Blank\",blank_accessible:\"Blank (Accessible)\",high_contrast_dark:\"High contrast\"},Or);function Or(t){var e=Lr.call(this)||this;return e.hasMouse=!1,e.hasFocus=!1,e.styleIcons=new kr,e.onStyleChange=function(){var t=e.map.getStyle().style;e.styleIcons.has(t)&&(e.currStyleImage.src=e.styleIcons.get(t),e.currStyleImage.alt=e.mapToFriendlyStyleName(t))},e.options=(new Pr).merge(Ar(t)),e}var zr,Rr=(b(Nr,zr=E),Nr);function Nr(){var t=null!==zr&&zr.apply(this,arguments)||this;return t.zoomDelta=1,t.style=p.ControlStyle.light,t}var Br,Fr=(b(Ur,Br=at),Ur.prototype.onAdd=function(t){var e=this.buildContainer(t,this.options.style,\"Zoom Control\");e.style.flexDirection=\"column\";var i=this.constructZoomInButton(t),r=this.constructZoomOutButton(t);return e.appendChild(i),e.appendChild(r),e},Ur.prototype.constructZoomInButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"zoom-in\"),i.setAttribute(\"title\",\"Zoom In\"),i.setAttribute(\"alt\",\"Zoom In\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){t.setCamera({zoom:t.getCamera().zoom+e.options.zoomDelta,duration:Ur.ZOOM_DURATION_MS,type:\"ease\"},!0)}),i},Ur.prototype.constructZoomOutButton=function(t){var e=this,i=document.createElement(\"button\");return i.classList.add(\"azure-maps-control-button\"),i.classList.add(\"zoom-out\"),i.setAttribute(\"title\",\"Zoom Out\"),i.setAttribute(\"alt\",\"Zoom Out\"),i.setAttribute(\"type\",\"button\"),i.addEventListener(\"click\",function(){t.setCamera({zoom:t.getCamera().zoom-e.options.zoomDelta,duration:Ur.ZOOM_DURATION_MS,type:\"ease\"},!0)}),i},Ur.ZOOM_DURATION_MS=200,Ur);function Ur(t){var e=Br.call(this)||this;return e.options=(new Rr).merge(t),e}var jr=Object.freeze({__proto__:null,PitchControl:vt,CompassControl:ht,ZoomControl:Fr,StyleControl:Dr});function qr(t){return this.__data__.has(t)}function Vr(t){var e=-1,i=null==t?0:t.length;for(this.__data__=new Ae;++e<i;)this.add(t[e])}Vr.prototype.add=Vr.prototype.push=function(t){return this.__data__.set(t,\"__lodash_hash_undefined__\"),this},Vr.prototype.has=qr;var Gr=Vr;var Zr=function(t,e){for(var i=-1,r=null==t?0:t.length;++i<r;)if(e(t[i],i,t))return!0;return!1};var Hr=function(t,e){return t.has(e)};var Kr=function(t,e,i,r,n,o){var a=1&i,s=t.length,l=e.length;if(s!=l&&!(a&&s<l))return!1;var u=o.get(t);if(u&&o.get(e))return u==e;var c=-1,p=!0,h=2&i?new Gr:void 0;for(o.set(t,e),o.set(e,t);++c<s;){var d=t[c],f=e[c];if(r)var m=a?r(f,d,c,e,t,o):r(d,f,c,t,e,o);if(void 0!==m){if(m)continue;p=!1;break}if(h){if(!Zr(e,function(t,e){if(!Hr(h,e)&&(d===t||n(d,t,i,r,o)))return h.push(e)})){p=!1;break}}else if(d!==f&&!n(d,f,i,r,o)){p=!1;break}}return o.delete(t),o.delete(e),p};function Wr(t){var i=-1,r=Array(t.size);return t.forEach(function(t,e){r[++i]=[e,t]}),r}function Xr(t){var e=-1,i=Array(t.size);return t.forEach(function(t){i[++e]=t}),i}var Yr=Nt?Nt.prototype:void 0,Jr=Yr?Yr.valueOf:void 0;var Qr=function(t,e,i,r,n,o,a){switch(i){case\"[object DataView]\":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case\"[object ArrayBuffer]\":return t.byteLength==e.byteLength&&o(new Qi(t),new Qi(e))?!0:!1;case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return bt(+t,+e);case\"[object Error]\":return t.name==e.name&&t.message==e.message;case\"[object RegExp]\":case\"[object String]\":return t==e+\"\";case\"[object Map]\":var s=Wr;case\"[object Set]\":var l=1&r;if(s=s||Xr,t.size!=e.size&&!l)return!1;var u=a.get(t);if(u)return u==e;r|=2,a.set(t,e);var c=Kr(s(t),s(e),r,n,o,a);return a.delete(t),c;case\"[object Symbol]\":if(Jr)return Jr.call(t)==Jr.call(e)}return!1},$r=Object.prototype.hasOwnProperty;var tn=function(t,e,i,r,n,o){var a=1&i,s=Li(t),l=s.length;if(l!=Li(e).length&&!a)return!1;for(var u=l;u--;){var c=s[u];if(!(a?c in e:$r.call(e,c)))return!1}var p=o.get(t);if(p&&o.get(e))return p==e;var h=!0;o.set(t,e),o.set(e,t);for(var d=a;++u<l;){var f=t[c=s[u]],m=e[c];if(r)var g=a?r(m,f,c,e,t,o):r(f,m,c,t,e,o);if(!(void 0===g?f===m||n(f,m,i,r,o):g)){h=!1;break}d=d||\"constructor\"==c}if(h&&!d){var y=t.constructor,v=e.constructor;y!=v&&\"constructor\"in t&&\"constructor\"in e&&!(\"function\"==typeof y&&y instanceof y&&\"function\"==typeof v&&v instanceof v)&&(h=!1)}return o.delete(t),o.delete(e),h},en=\"[object Arguments]\",rn=\"[object Array]\",nn=\"[object Object]\",on=Object.prototype.hasOwnProperty;var an=function(t,e,i,r,n,o){var a=Ze(t),s=Ze(e),l=a?rn:Xi(t),u=s?rn:Xi(e),c=(l=l==en?nn:l)==nn,p=(u=u==en?nn:u)==nn,h=l==u;if(h&&Ke(t)){if(!Ke(e))return!1;c=!(a=!0)}if(h&&!c)return o=o||new Me,a||ii(t)?Kr(t,e,i,r,n,o):Qr(t,e,l,i,r,n,o);if(!(1&i)){var d=c&&on.call(t,\"__wrapped__\"),f=p&&on.call(e,\"__wrapped__\");if(d||f)return n(d?t.value():t,f?e.value():e,i,r,o=o||new Me)}return h&&(o=o||new Me,tn(t,e,i,r,n,o))};var sn=function t(e,i,r,n,o){return e===i||(null==e||null==i||!Fe(e)&&!Fe(i)?e!=e&&i!=i:an(e,i,r,n,t,o))};var ln,un=function(t,e){return sn(t,e)},cn=(ln=Object.freeze({__proto__:null,default:{}}))&&ln.default||ln,pn=e(function(t){!function(){var n,o,a,s=0,e=[];for(l.BUFFER_SIZE=512,l.bin=i,l.test=function(t){if(\"string\"==typeof t)return/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(t)},o=0;o<256;o++)e[o]=(o+256).toString(16).substr(1);function i(){var t=function(t){var e,i,r;if(void 0!==a){if(void 0===n||l.BUFFER_SIZE<s+t)if(s=0,a.getRandomValues)n=new Uint8Array(l.BUFFER_SIZE),a.getRandomValues(n);else{if(!a.randomBytes)throw new Error(\"Non-standard crypto library\");n=a.randomBytes(l.BUFFER_SIZE)}return n.slice(s,s+=t)}for(e=[],o=0;o<t;o++)e.push((i=0,r=255,Math.floor(Math.random()*(r-i))+i));return e}(16);return t[6]=15&t[6]|64,t[8]=63&t[8]|128,t}function l(){var t=i();return e[t[0]]+e[t[1]]+e[t[2]]+e[t[3]]+\"-\"+e[t[4]]+e[t[5]]+\"-\"+e[t[6]]+e[t[7]]+\"-\"+e[t[8]]+e[t[9]]+\"-\"+e[t[10]]+e[t[11]]+e[t[12]]+e[t[13]]+e[t[14]]+e[t[15]]}\"undefined\"!=typeof crypto?a=crypto:\"undefined\"!=typeof window&&void 0!==window.msCrypto&&(a=window.msCrypto),a=a||cn,t.exports=l}()}),hn=(dn.TYPE=\"Feature\",dn);function dn(t,e,i,r){this.type=\"Feature\",this.type=dn.TYPE,this.properties=e||{},this.id=i,this.geometry=t,this.bbox=r}var fn,mn=(b(gn,fn=Array),gn.fromData=function(i){var r=NaN,n=NaN,o=new Set([\"y\"]),a=new Set([\"x\"]);return Object.keys(i).forEach(function(t){var e=t.toLowerCase();isNaN(r)&&o.has(e)&&\"number\"==typeof i[t]?r=i[t]:isNaN(n)&&a.has(e)&&\"number\"==typeof i[t]&&(n=i[t])}),isNaN(r)||isNaN(n)?null:new gn(r,n)},gn.getX=function(t){return 0<t.length?t[0]:NaN},gn.getY=function(t){return 1<t.length?t[1]:NaN},gn.getDestination=function(t,e,i){return new gn(gn.getX(t)+i*Math.cos((e+270)*Math.PI/180),gn.getY(t)+i*Math.sin((e+270)*Math.PI/180))},gn.getDistance=function(t,e){var i=gn.getX(t)-gn.getX(e),r=gn.getY(t)-gn.getY(e);return Math.sqrt(i*i+r*r)},gn.getHeading=function(t,e){var i=gn.getX(e)-gn.getX(t),r=gn.getY(t)-gn.getY(e);return 180*(2.5*Math.PI-Math.atan2(r,i))/Math.PI%360},gn);function gn(t,e){return fn.call(this,t,e)||this}var yn=(vn.TYPE=\"Point\",vn);function vn(t){this.type=\"Point\",this.type=vn.TYPE,this.coordinates=t}var _n,xn,bn,wn,Sn,Tn,En,In,Cn,An,kn=6378137,Pn=Math.PI/180,Mn=180/Math.PI,Ln=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function Dn(t){return t*Pn}function On(t){return t*Mn}function zn(t,e,i){return Math.min(Math.max(t,e),i)}function Rn(t,e){var i=Dn(e[1]-t[1]),r=Dn(e[0]-t[0]),n=Math.pow(Math.sin(i/2),2)+Math.cos(Dn(t[1]))*Math.cos(Dn(e[1]))*Math.pow(Math.sin(r/2),2),o=2*Math.atan2(Math.sqrt(n),Math.sqrt(1-n));return Math.round(kn*o*100)/100}function Nn(t){if(t)switch(t.toLowerCase()){case\"feet\":case\"foot\":case\"ft\":return bn.feet;case\"kilometers\":case\"kilometer\":case\"kilometres\":case\"kilometre\":case\"km\":case\"kms\":return bn.kilometers;case\"miles\":case\"mile\":case\"mi\":return bn.miles;case\"nauticalmiles\":case\"nauticalmile\":case\"nms\":case\"nm\":return bn.nauticalMiles;case\"yards\":case\"yard\":case\"yds\":case\"yrd\":case\"yrds\":return bn.yards;case\"meters\":case\"metres\":case\"m\":default:return bn.meters}return bn.meters}function Bn(t){if(t)switch(t.toLowerCase()){case\"milespersecondsquared\":case\"milepersecondsquared\":case\"mi/s^2\":case\"mi/s2\":return Cn.milesPerSecondSquared;case\"kilometerspersecondsquared\":case\"kilometrespersecondsquared\":case\"kilometerpersecondsquared\":case\"kilometrepersecondsquared\":case\"km/s^2\":case\"km/s2\":return Cn.kilometersPerSecondSquared;case\"knotspersecond\":case\"knotpersecond\":case\"knts/s\":case\"kn/s\":case\"kt/s\":return Cn.knotsPerSecond;case\"standardgravity\":case\"g\":return Cn.standardGravity;case\"feetpersecondsquared\":case\"footpersecondsquared\":case\"ft/s^2\":case\"ft/s2\":return Cn.feetPerSecondSquared;case\"yardspersecondsquared\":case\"yardpersecondsquared\":case\"yds/s^2\":case\"yds/s2\":case\"yd/s^2\":case\"yd/s2\":return Cn.yardsPerSecondSquared;case\"milesperhoursecond\":case\"mileperhoursecond\":case\"milesperhourseconds\":case\"mileperhourseconds\":case\"mi/h/s\":return Cn.milesPerHourSecond;case\"kilometersperhoursecond\":case\"kilometrespersoursecond\":case\"kilometerperhoursecond\":case\"kilometrepersoursecond\":case\"kilometersperhourssecond\":case\"kilometrespersourssecond\":case\"kilometerperhourssecond\":case\"kilometrepersourssecond\":case\"kmhs\":case\"km/h/s\":return Cn.kilometersPerHourSecond;case\"meterspersecondsquared\":case\"metrespersecondsquared\":case\"meterpersecondsquared\":case\"metrepersecondsquared\":case\"m/s^2\":case\"m/s2\":default:return Cn.metersPerSecondSquared}return Cn.metersPerSecondSquared}function Fn(t){if(t)switch(t){case\"acres\":case\"ac\":return _n.acres;case\"hectares\":case\"ha\":return _n.hectares;case\"squareFeet\":case\"ft^2\":case\"ft2\":return _n.squareFeet;case\"squareYards\":case\"squareYard\":case\"yds^2\":case\"yds2\":case\"yd^2\":case\"yd2\":return _n.squareYards;case\"squareKilometers\":case\"squareKilometres\":case\"squareKilometer\":case\"squareKilometre\":case\"km^2\":case\"km2\":return _n.squareKilometers;case\"squareMiles\":case\"squareMile\":case\"mi^2\":case\"mi2\":return _n.squareMiles;case\"squareMeters\":case\"squareMetres\":case\"squareMeter\":case\"squareMetre\":case\"m^2\":case\"m2\":default:return _n.squareMeters}return _n.squareMeters}function Un(t){if(t)switch(t.toLowerCase()){case\"feetpersecond\":case\"footsecond\":case\"ftps\":case\"ft/s\":return En.feetPerSecond;case\"milesperhour\":case\"mileperhour\":case\"mph\":case\"mi/hr\":case\"mi/h\":return En.milesPerHour;case\"knots\":case\"knot\":case\"knts\":case\"knt\":case\"kn\":case\"kt\":return En.knots;case\"mach\":case\"m\":return En.mach;case\"kilometersperhour\":case\"kilometresperhour\":case\"kmperhour\":case\"kmph\":case\"km/hr\":case\"km/h\":return En.kilometersPerHour;case\"meterspersecond\":case\"metrespersecond\":case\"mps\":case\"ms\":case\"m/s\":default:return En.metersPerSecond}return En.metersPerSecond}function jn(t){if(t)switch(t.toLowerCase()){case\"milliseconds\":case\"ms\":return Sn.ms;case\"minutes\":case\"minute\":case\"mins\":case\"min\":return Sn.minutes;case\"hours\":case\"hour\":case\"hr\":case\"h\":return Sn.hours;case\"days\":case\"day\":case\"d\":return Sn.days;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":default:return Sn.seconds}return Sn.seconds}function qn(t){var e=0;if(t&&0<t.length){e=Math.abs(Vn(t[0]));for(var i=1,r=t.length;i<r;i++)e-=Math.abs(Vn(t[i]))}return e}function Vn(t){var e=0;if(3<=t.length){for(var i=void 0,r=void 0,n=0,o=t.length;n<o;n++)e+=(Dn(t[n===o-2?(i=o-2,r=o-1,0):n===o-1?(i=o-1,r=0,1):(r=(i=n)+1,n+2)][0])-Dn(t[i][0]))*Math.sin(Dn(t[r][1]));e=e*kn*kn/2}return e}function Gn(t,e,i){return(t[0]-i[0])*(e[1]-i[1])-(t[1]-i[1])*(e[0]-i[0])}function Zn(t,e,i){if(2<=i.length){for(var r=1/0,n=void 0,o=null,a=ao(i,22),s=void 0,l=0,u=a.length-1;l<u;l++)s=Hn(e,a[l],a[l+1]),(n=mn.getDistance(e,s))<r&&(r=n,o=s);if(o){var c=oo([o],22)[0];return new hn(new yn(c),{distance:Yn(t,c)})}}else if(1===i.length)return new hn(new yn(i[0]),{distance:Yn(t,i[0])});return null}function Hn(t,e,i){if(e[0]===i[0]&&e[1]===i[1])return e;var r=t[0]-e[0],n=t[1]-e[1],o=i[0]-e[0],a=i[1]-e[1],s=(o*r+a*n)/(o*o+a*a);return s<0?e:1<s?i:[e[0]+o*s,e[1]+a*s]}function Kn(t,e){if(!isNaN(t)&&\"number\"==typeof e&&0<=e){var i=void 0;i=e<Ln.length?Ln[e]:Math.pow(10,e),t=Math.round(t*i)/i}return t}function Wn(t,e,i,r){switch(Nn(e)){case bn.meters:t/=1e3;break;case bn.feet:t/=3280.8399;break;case bn.miles:t/=.62137119;break;case bn.yards:t/=1093.6133;break;case bn.nauticalMiles:t/=.5399568;break;case bn.kilometers:}switch(Nn(i)){case bn.meters:t*=1e3;break;case bn.feet:t*=3280.8399;break;case bn.miles:t*=.62137119;break;case bn.yards:t*=1093.6133;break;case bn.nauticalMiles:t*=.5399568;break;case bn.kilometers:}if(\"number\"==typeof r&&0<=r){var n=Math.pow(10,r);t=Math.round(t*n)/n}return t}function Xn(t,e,i,r){r=r||\"meters\",t=yo(t);var n=Jn(r),o=Dn(t[1]),a=Dn(t[0]),s=Dn(e),l=i/n,u=Math.asin(Math.sin(o)*Math.cos(l)+Math.cos(o)*Math.sin(l)*Math.cos(s)),c=a+Math.atan2(Math.sin(s)*Math.sin(l)*Math.cos(o),Math.cos(l)-Math.sin(o)*Math.sin(u)),p=zn(io(On(u)),-85,85);return[ro(On(c)),p]}function Yn(t,e,i){var r=Rn(t=yo(t),e=yo(e));return\"meters\"===i?r:Wn(r,\"meters\",i||\"meters\")}function Jn(t){var e=Nn(t);return Wn(kn,bn.meters,e)}function Qn(t,e){if(t=yo(t),e=yo(e),t&&2<=t.length&&e&&2<=e.length){var i=Dn(t[1]),r=Dn(e[1]),n=Dn(e[0]-t[0]),o=Math.sin(n)*Math.cos(r),a=Math.cos(i)*Math.sin(r)-Math.sin(i)*Math.cos(r)*Math.cos(n);return(On(Math.atan2(o,a))+360)%360}return NaN}function $n(t,e){var i,r=0;Array.isArray(t)?i=t:t.type&&\"LineString\"===t.type&&(i=t.coordinates);for(var n=0,o=i.length-1;n<o;n++)r+=Rn(i[n],i[n+1]);return Wn(r,\"meters\",e||\"meters\")}function to(t,e,i){i=i||\"meters\";var r,n,o=0;if(Array.isArray(t)?n=t:t.type&&\"LineString\"===t.type&&(n=t.coordinates),2<=n.length){for(var a=n.length,s=1;s<a;s++){if(e<=o+(r=Yn(n[s-1],n[s],i))){var l=Qn(n[s-1],n[s]);return Xn(n[s-1],l,e-o,i)}o+=r}return o<=e?n[a-1]:n[0]}return null}function eo(t,e,i,r,n){r=r||\"meters\",n=n||0,t=yo(t);for(var o=[],a=360/i,s=0;s<=i;s++)o.push(Xn(t,(s*a+n)%360,e,r));return o}function io(t){return 90<t?180<(t=(t+90)%360)?90-(t-180):t-90:t<-90?(t=(t-90)%360)<-180?-90-(t+180):t+90:t}function ro(t){return 180<t?(t+180)%360-180:t<-180?(t-180)%360+180:t}function no(t,e,i){if(0===i)return Object.assign({},t);e=yo(e);for(var r,n,o=[],a=0,s=t.length;a<s;a++)r=Yn(e,t[a]),n=Qn(e,t[a]),o.push(Xn(e,n+i,r));return o}function oo(t,e){for(var i,r,n=512*Math.pow(2,e),o=[],a=0,s=t.length;a<s;a++)i=t[a][0]/n-.5,r=.5-t[a][1]/n,o.push([360*i,90-360*Math.atan(Math.exp(2*-r*Math.PI))/Math.PI]);return o}function ao(t,e){for(var i,r,n,o=512*Math.pow(2,e),a=[],s=0,l=t.length;s<l;s++)n=Math.sin(t[s][1]*Math.PI/180),i=(t[s][0]+180)/360,r=.5-Math.log((1+n)/(1-n))/(4*Math.PI),a.push([Math.round(i*o),Math.round(r*o)]);return a}function so(t,e,i,r){switch(Bn(e)){case Cn.kilometersPerHourSecond:t/=3.6;break;case Cn.milesPerHourSecond:t/=2.236936292054;break;case Cn.knotsPerSecond:t/=1.943844492441;break;case Cn.standardGravity:t/=.1019716212978;break;case Cn.kilometersPerSecondSquared:t/=.001;break;case Cn.milesPerSecondSquared:t/=.000621371192;break;case Cn.feetPerSecondSquared:t/=3.280839895012;break;case Cn.yardsPerSecondSquared:t/=1.093613298338;break;case Cn.metersPerSecondSquared:}switch(Bn(i)){case Cn.kilometersPerHourSecond:t*=3.6;break;case Cn.milesPerHourSecond:t*=2.236936292054;break;case Cn.knotsPerSecond:t*=1.943844492441;break;case Cn.standardGravity:t*=.1019716212978;break;case Cn.kilometersPerSecondSquared:t*=.001;break;case Cn.milesPerSecondSquared:t*=.000621371192;break;case Cn.feetPerSecondSquared:t*=3.280839895012;break;case Cn.yardsPerSecondSquared:t*=1.093613298338;break;case Cn.metersPerSecondSquared:}return Kn(t,r)}function lo(t,e,i,r){switch(Fn(e)){case _n.acres:t*=4046.8564224;break;case _n.hectares:t*=1e4;break;case _n.squareFeet:t*=.09290304;break;case _n.squareKilometers:t*=1e6;break;case _n.squareMiles:t*=259e4;break;case _n.squareYards:t*=.83612736;break;case _n.squareMeters:}switch(Fn(i)){case _n.acres:t/=4046.8564224;break;case _n.hectares:t/=1e4;break;case _n.squareFeet:t/=.09290304;break;case _n.squareKilometers:t/=1e6;break;case _n.squareMiles:t/=259e4;break;case _n.squareYards:t/=.83612736;break;case _n.squareMeters:}return Kn(t,r)}function uo(t,e,i,r){switch(Un(e)){case En.feetPerSecond:t*=1.09728;break;case En.milesPerHour:t*=1.6093;break;case En.knots:t*=1.852;break;case En.metersPerSecond:t*=3.6;break;case En.mach:t*=1234.8;break;case En.kilometersPerHour:}switch(Un(i)){case En.feetPerSecond:t/=1.09728;break;case En.milesPerHour:t/=1.6093;break;case En.knots:t/=1.852;break;case En.metersPerSecond:t/=3.6;break;case En.mach:t/=1234.8;break;case En.kilometersPerHour:}return Kn(t,r)}function co(t,e,i,r){switch(jn(e)){case Sn.ms:t/=1e3;break;case Sn.hours:t*=3600;break;case Sn.minutes:t*=60;break;case Sn.days:t*=86400;break;case Sn.seconds:}switch(jn(i)){case Sn.ms:t*=1e3;break;case Sn.hours:t/=3600;break;case Sn.minutes:t/=60;break;case Sn.days:t/=86400;break;case Sn.seconds:}return Kn(t,r)}function po(t,e,i,r,n,o,a,s){var l=Wn(e,n,bn.meters),u=co(i,o,Sn.seconds);return so(2*(l-uo(t,r,En.metersPerSecond)*u)/(u*u),Cn.metersPerSecondSquared,a,s)}function ho(t,e,i,r,n,o,a){var s=uo(t,r,En.metersPerSecond);return so((uo(e,r,En.metersPerSecond)-s)/co(i,n,Sn.seconds),Cn.metersPerSecondSquared,o,a)}function fo(t,e,i,r){var n=mo(t),o=mo(e);return null!=n&&null!=o?co(o.getTime()-n.getTime(),Sn.ms,i,r):NaN}function mo(t){if(\"[object Date]\"===Object.prototype.toString.call(t))return t;if(\"string\"==typeof t){var e=Date.parse(t);if(!isNaN(e))return new Date(e);if(0<=t.indexOf(\"Date(\")){var i=0;return i=0<(t=t.replace(\"/Date(\",\"\").replace(\")/\",\"\")).indexOf(\"+\")?parseInt(t.substr(0,t.indexOf(\"+\")),10):0<t.indexOf(\"-\")?parseInt(t.substr(0,t.indexOf(\"-\")),10):parseInt(t,10),new Date(i)}}else if(\"number\"==typeof t)return new Date(t);return null}function go(t){var e=[],i=null,r=null;if(Array.isArray(t)&&0<t.length)if(Array.isArray(t[0])&&\"number\"==typeof t[0][0])e=t;else for(var n=t.length,o=0;o<n;o++)e=e.concat(go(t[o]));else if(t.type)switch(t.type){case\"Point\":e=[t.coordinates];break;case\"LineString\":e=t.coordinates;break;case\"Polygon\":i=t.coordinates;break;case\"MultiPoint\":e=t.coordinates;break;case\"MultiLineString\":i=t.coordinates;break;case\"MultiPolygon\":r=t.coordinates;break;case\"Feature\":var a=t;e=Lo._isCircle(a)?Lo._getCirclePositions(a):go(a.geometry);break;case\"FeatureCollection\":e=go(t.features);break;case\"GeometryCollection\":e=go(t.geometries)}else if(t instanceof Lo)return go(t.toJson());if(i)for(n=i.length,o=0;o<n;o++)e=e.concat(i[o]);else if(r){var s=r.length;for(o=0;o<s;o++)for(var l=r[o].length,u=0;u<l;u++)e=e.concat(r[o][u])}return e}function yo(t){if(Array.isArray(t)&&\"number\"==typeof t[0])return t;if(t.type){if(\"Point\"===t.type)return t.coordinates;if(\"Feature\"===t.type&&\"Point\"===t.geometry.type)return t.geometry.coordinates}else if(t instanceof Lo&&\"Point\"===t.getType())return t.getCoordinates();return null}function vo(t,e,i){i=i||\"meters\";var r,n,o=0;if(Array.isArray(t)?n=t:t.type&&\"LineString\"===t.type&&(n=t.coordinates),2<=n.length){for(var a=n.length,s=1;s<a;s++){if(e<=o+(r=Yn(n[s-1],n[s],i))){var l=Qn(n[s-1],n[s]),u=Xn(n[s-1],l,e-o,i);return new hn(new yn(u),{heading:l})}o+=r}return o<=e?new hn(new yn(n[a-1]),{heading:Qn(n[a-2],n[a-1])}):new hn(new yn(n[0]),{heading:Qn(n[0],n[1])})}return null}function _o(t,e,i,r){var n,o=yo(t),a=ao([o],22)[0],s=null,l=1/0;switch((e=e instanceof Lo?e.toJson():e).type){case\"Feature\":return _o(t,e.geometry,i);case\"Point\":n=[[e.coordinates]];break;case\"MultiPoint\":for(var u=void 0,c=e.coordinates,p=0,h=c.length;p<h;p++)(u=Yn(o,c[p]))<l&&(l=u,s=new hn(new yn(c[p]),{distance:u}));break;case\"LineString\":n=[e.coordinates];break;case\"Polygon\":case\"MultiLineString\":n=e.coordinates;break;case\"MultiPolygon\":var d=e.coordinates;if(0<d.length){n=d[0];for(p=1,h=d.length;p<h;p++)n=n.concat(d[p])}}if(n){var f=void 0;for(p=0,h=n.length;p<h;p++)(f=Zn(o,a,n[p]))&&f.properties.distance<l&&(l=f.properties.distance,s=f)}return s&&(s.properties.distance=Wn(s.properties.distance,\"meters\",i,r)),s}(xn=_n=_n||{}).squareMeters=\"squareMeters\",xn.acres=\"acres\",xn.hectares=\"hectares\",xn.squareFeet=\"squareFeet\",xn.squareKilometers=\"squareKilometers\",xn.squareMiles=\"squareMiles\",xn.squareYards=\"squareYards\",(wn=bn=bn||{}).meters=\"meters\",wn.kilometers=\"kilometers\",wn.feet=\"feet\",wn.miles=\"miles\",wn.nauticalMiles=\"nauticalMiles\",wn.yards=\"yards\",(Tn=Sn=Sn||{}).seconds=\"seconds\",Tn.hours=\"hours\",Tn.ms=\"ms\",Tn.minutes=\"minutes\",Tn.days=\"days\",(In=En=En||{}).metersPerSecond=\"metersPerSecond\",In.kilometersPerHour=\"kilometersPerHour\",In.feetPerSecond=\"feetPerSecond\",In.milesPerHour=\"milesPerHour\",In.knots=\"knots\",In.mach=\"mach\",(An=Cn=Cn||{}).milesPerSecondSquared=\"milesPerSecondSquared\",An.kilometersPerSecondSquared=\"kilometersPerSecondSquared\",An.knotsPerSecond=\"knotsPerSecond\",An.standardGravity=\"standardGravity\",An.feetPerSecondSquared=\"feetPerSecondSquared\",An.yardsPerSecondSquared=\"yardsPerSecondSquared\",An.milesPerHourSecond=\"milesPerHourSecond\",An.kilometersPerHourSecond=\"kilometersPerHourSecond\",An.metersPerSecondSquared=\"metersPerSecondSquared\";var xo,bo=(b(wo,xo=Array),wo.fromPosition=function(t){return 2===t.length?new wo(t[0],t[1]):2<t.length?new wo(t[0],t[1],t[2]):null},wo.areEqual=function(t,e,i){if(void 0===i&&(i=6),t&&2<=t.length&&e&&2<=e.length){var r=Math.pow(10,i),n=io(t[1]),o=io(e[1]),a=ro(t[0]),s=ro(e[0]);if(0!=Math.round((n-o)*r)/r)return!1;var l=Math.round((a-s)*r)/r;return 0==l||360==l}return!1},wo.fromLatLng=function(n,t,e){var i=[];if(\"number\"==typeof n)i.push(n),\"number\"==typeof t&&i.push(t),\"number\"==typeof e&&i.push(e);else if(Array.isArray(n))2<=n.length&&\"number\"==typeof n[0]&&\"number\"==typeof n[1]&&(3<=n.length&&\"number\"==typeof n[2]?i.push(n[0],n[1],n[2]):i.push(n[0],n[1]));else if(\"object\"==typeof n){var o=[\"lat\",\"latitude\",\"y\"],a=[\"lng\",\"longitude\",\"lon\",\"x\"],s=[\"elv\",\"elevation\",\"alt\",\"altitude\",\"z\"],l=NaN,u=NaN,c=NaN;Object.keys(n).forEach(function(t,e,i){var r=t.toLowerCase();isNaN(l)&&0<=o.indexOf(r)&&\"number\"==typeof n[t]?l=n[t]:isNaN(u)&&0<=a.indexOf(r)&&\"number\"==typeof n[t]?u=n[t]:isNaN(c)&&0<=s.indexOf(r)&&\"number\"==typeof n[t]&&(c=n[t])}),isNaN(l)||isNaN(u)||(i.push(u,l),isNaN(c)||i.push(c))}return 2<=i.length?i:null},wo.fromLatLngs=function(t){var e=[];if(Array.isArray(t))for(var i=0,r=t.length;i<r;i++){var n=wo.fromLatLng(t[i]);n&&e.push(n)}return e},wo._getDimensions=function(t){for(var e=0;Array.isArray(t);)t=t[0],e++;return\"number\"==typeof t&&e--,e},wo);function wo(t,e,i){return i?xo.call(this,t,e,i)||this:xo.call(this,t,e)||this}var So=(To.TYPE=\"Polygon\",To);function To(t,e){this.type=\"Polygon\",this.type=To.TYPE,1===bo._getDimensions(t)?this.coordinates=[t]:this.coordinates=t,this.bbox=e}var Eo=(Io.prototype._addEventListener=function(t,e,i){this.listeners.has(t)||this.listeners.set(t,new kr),this.listeners.get(t).set(e,i)},Io.prototype._removeEventListener=function(t,e){this.listeners.has(t)&&this.listeners.get(t).delete(e)},Io.prototype._invokeEvent=function(i,r){var n=this;this.listeners.has(i)&&this.listeners.get(i).forEach(function(t,e){t&&n._removeEventListener(i,e);try{e(r)}catch(t){console.error(t)}})},Io);function Io(){this.listeners=new kr}var Co=Object.freeze({__proto__:null,EventEmitter:Eo}),Ao=(ko.prototype.toTarget=function(t,e){return this.transformArray(t,this.M,e)},ko.prototype.toSource=function(t,e){return this.transformArray(t,this.inverseM,e)},ko.prototype.transformArray=function(t,e,i){if(t&&Array.isArray(t)&&Array.isArray(t[0])){for(var r=[],n=0,o=t;n<o.length;n++){var a=o[n];r.push(this.transform(a,e,i))}return r}return null},ko.prototype.transform=function(t,e,i){var r=t[0]*e[0][3]+t[1]*e[1][3]+e[2][3],n=t[0]*e[0][4]+t[1]*e[1][4]+e[2][4];return\"number\"==typeof i&&0<=i?[Kn(r,i),Kn(n,i)]:[Kn(r,6),Kn(n,6)]},ko._calculateAffineTransform=function(t,e){if(t.length!==e.length||t.length<1)throw new Error(\"Error: source and target arrays must have the same length.\");var i=Math.min(t[0].length,e[0].length),r=i+1;if(t.length<i)throw new Error(\"Erorr: At least \"+i+\" reference points required.\");for(var n=[],o=[],a=0;a<r;a++){o[a]=[];for(var s=0;s<r;s++){s<i&&(n[s]=0);for(var l=o[a][s]=0;l<t.length;l++)s<i&&(n[s]+=a<i?t[l][a]*e[l][s]:e[l][s]),o[a][s]+=i<=a&&i<=s?1:i<=a?t[l][s]:i<=s?t[l][a]:t[l][a]*t[l][s]}o[a]=o[a].concat(n)}if(!this._gaussJordanElimination(o))throw new Error(\"Error: Singular matrix. Points are likely coplanar.\");return o},ko._gaussJordanElimination=function(t){for(var e,i,r=t.length,n=2*r-1,o=0;o<r;o++){for(var a=o,s=o+1;s<r;s++)Math.abs(t[s][o])>Math.abs(t[a][o])&&(a=s);if(i=t[a],t[a]=t[o],t[o]=i,Math.abs(t[o][o])<=1e-10)return!1;for(var l=o+1;l<r;l++){e=t[l][o]/t[o][o];for(var u=o;u<n;u++)t[l][u]-=t[o][u]*e}}for(o=r-1;-1<o;o--){for(e=t[o][o],s=0;s<o;s++)for(var c=n-1;o-1<c;c--)t[s][c]-=t[o][c]*t[s][o]/e;t[o][o]/=e;for(var p=r;p<n;p++)t[o][p]/=e}return!0},ko);function ko(t,e){this.M=ko._calculateAffineTransform(t,e),this.inverseM=ko._calculateAffineTransform(e,t)}var Po,Mo=Object.freeze({__proto__:null,AffineTransform:Ao,_precision:Kn,get AreaUnits(){return _n},get DistanceUnits(){return bn},get TimeUnits(){return Sn},get SpeedUnits(){return En},get AccelerationUnits(){return Cn},boundingBoxToPolygon:function(t){var e=ro(zo.getWest(t)),i=ro(zo.getEast(t)),r=io(zo.getNorth(t)),n=io(zo.getSouth(t)),o=zo.getCenter(t),a=[[e,r],[e,n],[o[0],n],[i,n],[i,r],[o[0],r],[e,r]];return new So([a])},convertDistance:Wn,getCardinalSpline:function(t,e,i,r){var n;if(!t||t.length<=2)return n;\"number\"!=typeof e&&(e=.5),(\"number\"!=typeof i||i<=0)&&(i=15);var o=t.length;n=t.slice(0),r?(bo.areEqual(n[0],n[o-1])&&(n.pop(),o--),n.unshift(t[o-1]),n.push(t[0]),n.push(t[1]),o++):(n.unshift(t[0]),n.push(t[o-1]));var a,s,l,u=[];u.push([1,0,0,0]);for(var c=1;c<i-1;c++)l=(a=c/i)*(s=a*a),u.push([2*l-3*s+1,-2*l+3*s,l-2*s+a,l-s]);u.push([0,1,0,0]);var p,h,d,f,m,g,y,v=[];for(c=1;c<o;c++)for(h=e*(n[c+1][0]-n[c-1][0]),d=e*(n[c+1][1]-n[c-1][1]),f=e*(n[c+2][0]-n[c][0]),m=e*(n[c+2][1]-n[c][1]),a=0;a<i;a++)y=(p=u[a])[0]*n[c][0]+p[1]*n[c+1][0]+p[2]*h+p[3]*f,g=zn(g=p[0]*n[c][1]+p[1]*n[c+1][1]+p[2]*d+p[3]*m,-85,85),v.push([y,g]);return v},getDestination:Xn,getDistanceTo:Yn,getEarthRadius:Jn,getGeodesicPath:function(t,e){var i;(!e||e<=0)&&(e=15),Array.isArray(t)?i=t:t.type&&\"LineString\"===t.type&&(i=t.coordinates);for(var r=i.length-1,n=[],o=0;o<r;o++)for(var a=Dn(i[o][1]),s=Dn(i[o][0]),l=Dn(i[o+1][1]),u=Dn(i[o+1][0]),c=2*Math.asin(Math.sqrt(Math.pow(Math.sin((a-l)/2),2)+Math.cos(a)*Math.cos(l)*Math.pow(Math.sin((s-u)/2),2))),p=0;p<=e;p++){var h=p/e,d=Math.sin((1-h)*c)/Math.sin(c),f=Math.sin(h*c)/Math.sin(c),m=d*Math.cos(a)*Math.cos(s)+f*Math.cos(l)*Math.cos(u),g=d*Math.cos(a)*Math.sin(s)+f*Math.cos(l)*Math.sin(u),y=d*Math.sin(a)+f*Math.sin(l),v=Math.atan2(y,Math.sqrt(Math.pow(m,2)+Math.pow(g,2))),_=Math.atan2(g,m);v=zn(On(v),-85,85),_=On(_),n.push([_,v])}return n},getHeading:Qn,getLengthOfPath:$n,getPositionAlongPath:to,getRegularPolygonPath:eo,interpolate:function(t,e,i){i=void 0===i?.5:i;var r=Yn(t=yo(t),e=yo(e),\"kilometers\");return Xn(t,Qn(t,e),r*i,\"kilometers\")},normalizeLatitude:io,normalizeLongitude:ro,rotatePositions:no,getPixelHeading:function(t,e){var i=ao([t=yo(t),e=yo(e)],21),r=i[0],n=i[1],o=n[0]-r[0],a=r[1]-n[1];return(2.5*Math.PI-Math.atan2(a,o))*Mn%360},mercatorPixelsToPositions:oo,mercatorPositionsToPixels:ao,convertAcceleration:so,convertArea:lo,convertSpeed:uo,convertTimespan:co,getAcceleration:po,getAccelerationFromSpeeds:ho,getAccelerationFromFeatures:function(t,e,i,r,n,o,a){if(\"string\"==typeof i&&\"Feature\"===t.type&&\"Point\"===t.geometry.type&&\"Feature\"===e.type&&\"Point\"===e.geometry.type){var s=fo(t.properties[i],e.properties[i],Sn.seconds);if(!isNaN(s)){var l=0;if(r&&\"string\"==typeof r){var u=t.properties[r],c=e.properties[r];if(\"number\"==typeof u&&(l=u,\"number\"==typeof c))return ho(u,c,s,n,Sn.seconds,o,a)}return po(l,Yn(t.geometry.coordinates,e.geometry.coordinates,bn.meters),s,n,bn.meters,Sn.seconds,o,a)}}return NaN},getArea:function t(e,i,r){if(e){var n=0;switch((e=e instanceof Lo?e.toJson():e).type){case\"Feature\":if(e.geometry)return t(e.geometry,i,r);break;case\"Polygon\":e.coordinates&&(n=qn(e.coordinates));break;case\"MultiPolygon\":var o=e;if(o.coordinates)for(var a=0,s=o.coordinates.length;a<s;a++)n+=qn(o.coordinates[a])}return lo(n,_n.squareMeters,i,r)}return 0},getSpeed:function(t,e,i,r,n,o){var a=yo(t),s=yo(e);if(a&&s){var l=co(i,r,Sn.seconds);return uo(Yn(a,s,bn.meters)/l,En.metersPerSecond,n,o)}return 0},getSpeedFromFeatures:function(t,e,i,r,n){if(\"string\"==typeof i&&\"Feature\"===t.type&&\"Point\"===t.geometry.type&&\"Feature\"===e.type&&\"Point\"===e.geometry.type){var o=this.getTimespan(t.properties[i],e.properties[i],Sn.seconds);if(!isNaN(o)){var a=this.getDistanceTo(t.geometry.coordinates,e.geometry.coordinates,bn.meters);return this.convertSpeed(a/o,En.metersPerSecond,r,n)}}return NaN},getTimespan:fo,getTravelDistance:function(t,e,i,r,n,o,a,s){e=this.convertTimespan(e,n,Sn.seconds);var l=(i=this.convertSpeed(i,o,En.metersPerSecond))*e;return\"number\"==typeof r&&(l+=.5*this.convertAcceleration(r,a,Cn.metersPerSecondSquared)*e*e),this.convertDistance(l,bn.meters,t,s)},parseTimestamp:mo,getConvexHull:function(t){var e=go(t).map(function(t){return[ro(t[0]),io(t[1])]});e.sort(function(t,e){return t[0]===e[0]?t[1]-e[1]:t[0]-e[0]});for(var i=[],r=0,n=e;r<n.length;r++){for(var o=n[r];2<=i.length&&Gn(i[i.length-2],i[i.length-1],o)<=0;)i.pop();i.push(o)}for(var a=[],s=e.length-1;0<=s;s--){for(;2<=a.length&&Gn(a[a.length-2],a[a.length-1],e[s])<=0;)a.pop();a.push(e[s])}return new So([i.concat(a)])},getPositions:go,getPosition:yo,getPositionsAlongPath:function(t,e){if(e<2)return[];for(var i=[],r=$n(t,bn.meters)/(e-1),n=0;n<e;n++){var o=to(t,r*n,bn.meters);null!=o&&i.push(o)}return i},getPointWithHeadingAlongPath:vo,getPointsWithHeadingsAlongPath:function(t,e){if(e<=0)return[];for(var i=[],r=$n(t,bn.meters)/(e-1),n=0;n<e;n++){var o=vo(t,r*n,bn.meters);null!=o&&i.push(o)}return i},getClosestPointOnGeometry:_o}),Lo=(b(Do,Po=Eo),Do.prototype.addProperty=function(t,e){un(this.data.properties[t],e)||(this.data.properties[t]=Ar(e),\"subType\"!==t&&\"radius\"!==t||this._handleCircle(),this.dataSource&&this.dataSource._updateSource(),this._invokeEvent(\"shapechanged\",this))},Do.prototype.getBounds=function(){var t,e=this.getCoordinates(),i=this.getType();if(\"Point\"===i)if(this.circlePolygon){var r=this.circlePolygon.geometry.coordinates;t=zo.fromPositions(r[0])}else t=new zo(r=e,r);else if(\"MultiPoint\"===i||\"LineString\"===i)r=e,t=zo.fromPositions(r);else if(\"Polygon\"===i)r=e,t=zo.fromPositions(r[0]);else if(\"MultiLineString\"===i)for(var n=0,o=r=e;n<o.length;n++){var a=o[n];t=zo.merge(t,zo.fromPositions(a))}else if(\"MultiPolygon\"===i)for(var s=0,l=r=e;s<l.length;s++){var u=l[s];t=zo.merge(t,zo.fromPositions(u[0]))}return t},Do.prototype.getCoordinates=function(){return Ar(this.data.geometry.coordinates)},Do.prototype.getCircleCoordinates=function(){return this.circlePolygon?Ar(this.circlePolygon.geometry.coordinates[0]):null},Do.prototype.getId=function(){return this.data.id},Do.prototype.getProperties=function(){return Ar(this.data.properties)},Do.prototype.getType=function(){return this.data.geometry.type},Do.prototype.isCircle=function(){return Do._isCircle(this.data)},Do.prototype.isRectangle=function(){return Do._isRectangle(this.data)},Do.prototype.setCoordinates=function(t){var e;e=\"Polygon\"===this.getType()&&1===bo._getDimensions(t)?[t]:t,un(this.data.geometry.coordinates,e)||(this.data.geometry.coordinates=Ar(e),this._handleCircle(),this.dataSource&&this.dataSource._updateSource(),this._invokeEvent(\"shapechanged\",this))},Do.prototype.setProperties=function(t){t[Do._shapeIdPropName]=this.data.id,un(this.data.properties,t)||(this.data.properties=Ar(t),this._handleCircle(),this.dataSource&&this.dataSource._updateSource(),this._invokeEvent(\"shapechanged\",this))},Do.prototype.toJson=function(){return JSON.parse(JSON.stringify(this.data))},Do.prototype._toJson=function(){return this.circlePolygon||this.data},Do.prototype._setDataSource=function(t){void 0===t||null==t?delete this.dataSource:this.dataSource=t},Do.prototype._handleCircle=function(){if(this.isCircle()){var t=Do._getCirclePositions(this.data);this.circlePolygon=new hn(new So([t]),this.data.properties,this.data.id),this.data.properties.subType=\"Circle\"}else delete this.circlePolygon},Do._isCircle=function(t){return t&&t.geometry&&\"Point\"===t.geometry.type&&t.geometry.coordinates&&t.properties&&\"string\"==typeof t.properties.subType&&\"circle\"===t.properties.subType.toLowerCase()&&\"number\"==typeof t.properties.radius},Do._isRectangle=function(t){if(\"Polygon\"===t.geometry.type&&t.geometry.coordinates&&\"string\"==typeof t.properties.subType&&\"rectangle\"===t.properties.subType.toLowerCase()){var e=t.geometry.coordinates;if(1===e.length){var i=e[0];if(5===i.length)return i[0][0]===i[4][0]&&i[0][1]===i[4][1];if(4===i.length)return!0}}return!1},Do._getCirclePositions=function(t){return eo(t.geometry.coordinates,t.properties.radius,72,\"meters\")},Do._shapeIdPropName=\"_azureMapsShapeId\",Do);function Do(t,e,i){var r,n=Po.call(this)||this;if(\"Feature\"===t.type){var o=t;r=Ar(o.geometry),i=o.properties?Ar(o.properties):{},e=null==o.id||\"\"===o.id?pn():o.id}else r=Ar(t),e=null==e||\"\"===e?pn():e,i=i?Ar(i):{};return i[Do._shapeIdPropName]=e,n.data=new hn(r,i,e),n._handleCircle(),n}var Oo,zo=(b(Ro,Oo=Array),Ro.fromBoundingBox=function(t){var e=Ro.getWest(t),i=Ro.getSouth(t),r=Ro.getEast(t),n=Ro.getNorth(t);return new Ro([e,i,r,n])},Ro.fromDimensions=function(t,e,i){var r=t[0],n=t[1],o=Math.min(Math.max(n+i/2,-85.5),85.5),a=Math.min(Math.max(n-i/2,-85.5),85.5),s=ro(r+e/2);return new Ro([ro(r-e/2),a,s,o])},Ro.fromEdges=function(t,e,i,r){return new Ro([t,e,i,r])},Ro.containsPosition=function(t,e){var i=Ro.getCenter(t),r=Math.abs(i[1]-e[1]),n=Math.abs(i[0]-e[0]);180<n&&(n=360-n);var o=Ro.getHeight(t),a=Ro.getWidth(t);return r<=o/2+1e-8&&n<=a/2+1e-8},Ro.crossesAntimeridian=function(t){return ro(Ro.getEast(t))-ro(Ro.getWest(t))<0},Ro.getCenter=function(t){var e=ro(Ro.getEast(t)),i=ro(Ro.getWest(t));e<i&&(e+=360);var r=ro((i+e)/2),n=io(Ro.getSouth(t)),o=io(Ro.getNorth(t));return[r,io((n+o)/2)]},Ro.getHeight=function(t){var e=io(Ro.getNorth(t))-io(Ro.getSouth(t));return isNaN(e)?0:e},Ro.getWidth=function(t){var e=ro(Ro.getEast(t))-ro(Ro.getWest(t));return isNaN(e)?0:e<0?e+=360:e},Ro.getSouthWest=function(t){var e=this.getSouth(t),i=this.getWest(t);return isNaN(e)||isNaN(i)?null:[i,e]},Ro.getNorthEast=function(t){var e=this.getNorth(t),i=this.getEast(t);return isNaN(e)||isNaN(i)?null:[i,e]},Ro.getNorthWest=function(t){var e=this.getNorth(t),i=this.getWest(t);return isNaN(e)||isNaN(i)?null:[i,e]},Ro.getSouthEast=function(t){var e=this.getSouth(t),i=this.getEast(t);return isNaN(e)||isNaN(i)?null:[i,e]},Ro.getSouth=function(t){return t&&4<=t.length?Number(t[1]):NaN},Ro.getWest=function(t){return t&&4<=t.length?Number(t[0]):NaN},Ro.getNorth=function(t){if(t){if(4===t.length)return Number(t[3]);if(6===t.length)return Number(t[4])}return NaN},Ro.getEast=function(t){if(t){if(4===t.length)return Number(t[2]);if(6===t.length)return Number(t[3])}return NaN},Ro.intersect=function(t,e){var i=Ro.getCenter(t),r=Ro.getCenter(e),n=Math.abs(i[1]-r[1]),o=Math.abs(i[0]-r[0]);180<o&&(o=360-o);var a=Ro.getHeight(t),s=Ro.getWidth(t),l=Ro.getHeight(e),u=Ro.getWidth(e);return n<=a/2+l/2&&o<=s/2+u/2},Ro.merge=function(t,e){var i=t&&4===t.length,r=e&&4===e.length;if(i&&!r)return t;if(r&&!i)return e;if(!i&&!r)return null;var n=Math.max(io(Ro.getNorth(t)),io(Ro.getNorth(e))),o=Math.min(io(Ro.getSouth(t)),io(Ro.getSouth(e))),a=[t,e],s=[],l=0;for(l=0;l<a.length;l++){var u=a[l],c=ro(Ro.getWest(u)),p=ro(Ro.getEast(u));Ro.crossesAntimeridian(u)?(s.push([c,180]),s.push([-180,p])):s.push([c,p])}s.sort(function(t,e){return t[0]===e[0]?t[1]-e[1]:t[0]-e[0]});var h=[],d=s[0];for(l=1;l<s.length;){var f=s[l];d[1]>=f[0]?d[1]=Math.max(d[1],f[1]):(h.push(d),d=f),l++}h.push(d);var m=h.length,g=h[0][0]+360-h[m-1][1],y=[h[m-1][1],h[0][0]];for(l=1;l<m;l++){var v=h[l][0]-h[l-1][1];g<v&&(g=v,y=[h[l-1][1],h[l][0]])}return new Ro([y[1],o],[y[0],n])},Ro.fromPositions=function(t){for(var e,i=NaN,r=NaN,n=NaN,o=NaN,a=t.length,s=new Array(a),l=0;a--;)if((e=t[a])&&2<=e.length){var u=io(e[1]);i=isNaN(i)?u:Math.max(i,u),r=isNaN(r)?u:Math.min(r,u),s[l++]=ro(e[0])}if(l){s.length=l,s.sort(function(t,e){return t-e});var c=s[0]+360-s[l-1],p=0;for(a=1;a<l;a++){var h=s[a]-s[a-1];c<h&&(c=h,p=a)}n=s[p],o=s[(p||l)-1]}return isNaN(n)||isNaN(r)||isNaN(o)||isNaN(i)?null:new Ro([n,r,o,i])},Ro.fromLatLngs=function(t){return Ro.fromPositions(bo.fromLatLngs(t))},Ro.fromData=function(t){var e,i=null;if(Array.isArray(t)&&0<t.length){for(var r=0,n=t;r<n.length;r++){var o=n[r];null!=(e=Ro.fromData(o))&&(i=null===i?e:Ro.merge(i,e))}return i}if(t instanceof Lo)return t.getBounds();if(t&&t.type){var a=t;if(a.bbox&&4===a.bbox.length)return a.bbox;switch(a.type){case\"FeatureCollection\":return Ro.fromData(a.features);case\"Feature\":return Lo._isCircle(a)?Ro.fromPositions(Lo._getCirclePositions(a)):Ro.fromData(a.geometry);case\"GeometryCollection\":return Ro.fromData(a.geometries);case\"Point\":var s=a.coordinates;if(s&&2<=s.length)return[s[0],s[1],s[0],s[1]];break;case\"LineString\":case\"MultiPoint\":return Ro.fromPositions(a.coordinates);case\"Polygon\":case\"MultiLineString\":var l=a.coordinates;if(l&&0<l.length){for(var u=0,c=l.length;u<c;u++)null!=(e=Ro.fromPositions(l[u]))&&(i=null===i?e:Ro.merge(i,e));if(null!=i)return i}break;case\"MultiPolygon\":var p=a.coordinates;if(p&&0<p.length){for(u=0,c=p.length;u<c;u++)for(var h=0,d=p[u].length;h<d;h++)null!=(e=Ro.fromPositions(p[u][h]))&&(i=null===i?e:Ro.merge(i,e));return i}}}return null},Ro.splitOnAntimeridian=function(t){var e=[];if(Ro.crossesAntimeridian(t)){var i=void 0,r=void 0,n=ro(Ro.getWest(t)),o=ro(Ro.getEast(t)),a=io(Ro.getNorth(t)),s=io(Ro.getSouth(t));r=6<=t.length?(i=new Ro([n,s,t[2],180,a,t[5]]),new Ro([-180,s,t[2],o,a,t[5]])):(i=new Ro([n,s,180,a]),new Ro([-180,s,o,a])),e.push(i,r)}else e.push(new Ro(t));return e},Ro);function Ro(t,e){var i=this;if(t&&e){var r=t;i=r[2]&&e[2]?Oo.call(this,r[0],r[1],r[2]||0,e[0],e[1],e[2]||0)||this:Oo.call(this,r[0],r[1],e[0],e[1])||this}else if(t){var n=t;n&&(4===n.length?i=Oo.call(this,n[0],n[1],n[2],n[3])||this:6<=n.length&&(i=Oo.call(this,n[0],n[1],n[2],n[3],n[4],n[5])||this))}return i}var No=(Bo.TYPE=\"FeatureCollection\",Bo);function Bo(t,e){this.type=\"FeatureCollection\",this.type=Bo.TYPE,this.features=t,this.bbox=e}var Fo=(Uo.TYPE=\"GeometryCollection\",Uo);function Uo(t){this.type=\"GeometryCollection\",this.type=Uo.TYPE,this.geometries=t}var jo=(qo.TYPE=\"LineString\",qo);function qo(t,e){this.type=\"LineString\",this.type=qo.TYPE,this.coordinates=t,this.bbox=e}var Vo=(Go.TYPE=\"MultiLineString\",Go);function Go(t,e){this.type=\"MultiLineString\",this.type=Go.TYPE,this.coordinates=t,this.bbox=e}var Zo=(Ho.TYPE=\"MultiPoint\",Ho);function Ho(t,e){this.type=\"MultiPoint\",this.type=Ho.TYPE,this.coordinates=t,this.bbox=e}var Ko=(Wo.TYPE=\"MultiPolygon\",Wo);function Wo(t,e){this.type=\"MultiPolygon\",this.type=Wo.TYPE,this.coordinates=t,this.bbox=e}var Xo=Object.freeze({__proto__:null,Feature:hn,FeatureCollection:No,LineString:jo,Point:yn,Polygon:So,Position:bo,BoundingBox:zo,MultiLineString:Vo,MultiPoint:Zo,MultiPolygon:Ko,GeometryCollection:Fo});var Yo,Jo=function(t,e){return Ir(t,5,e=\"function\"==typeof e?e:void 0)},Qo=(b($o,Yo=E),$o);function $o(){var t=null!==Yo&&Yo.apply(this,arguments)||this;return t.maxZoom=18,t.cluster=!1,t.clusterRadius=50,t.clusterMaxZoom=void 0,t.clusterProperties=void 0,t.lineMetrics=!1,t.tolerance=.375,t}var ta,ea=(b(ia,ta=Eo),ia.prototype.getId=function(){return this.id},ia.prototype._setMap=function(t){if(null==t||void 0===t){var e=this.map;delete this.map,this._invokeEvent(\"sourceremoved\",this),e&&e.events.invoke(\"sourceremoved\",this)}else this.map=t,this._invokeEvent(\"sourceadded\",this),this.map.events.invoke(\"sourceadded\",this)},ia);function ia(t){var e=ta.call(this)||this;return e.id=t||pn(),e}var ra,na=(b(oa,ra=ea),oa.prototype.add=function(t,e){this._addNoUpdate(t,e),this._updateSource()},oa.prototype.clear=function(){this._clearNoUpdate(),this._updateSource()},oa.prototype.dispose=function(){this.options=null,this.shapes=null,this.shapesMap=null,this.map=null},oa.prototype.getClusterExpansionZoom=function(e){var n=this;return new Promise(function(i,r){if(n.map){var t=n.map._getMap().getSource(n.getId());t&&\"geojson\"===t.type&&t.getClusterExpansionZoom(e,function(t,e){t?r(t):\"number\"!=typeof e||i(e)})}else r(\"The DataSource hasn't been added to a map.\")})},oa.prototype.getClusterChildren=function(e){var n=this;return new Promise(function(i,r){if(n.map){var t=n.map._getMap().getSource(n.getId());t&&\"geojson\"===t.type&&t.getClusterChildren(e,function(t,e){t?r(t):e&&i(n.map.sources._mapFeaturesToShapes(e,!1,n))})}else r(\"The DataSource hasn't been added to a map.\")})},oa.prototype.getClusterLeaves=function(e,n,o){var a=this;return new Promise(function(i,r){if(a.map){var t=a.map._getMap().getSource(a.getId());t&&\"geojson\"===t.type&&t.getClusterLeaves(e,n,o,function(t,e){t?r(t):e&&i(a.map.sources._mapFeaturesToShapes(e,!1,a))})}else r(\"The DataSource hasn't been added to a map.\")})},oa.prototype.getOptions=function(){return Ar(this.options)},oa.prototype.getShapes=function(){return Array.from(this.shapes)},oa.prototype.importDataFromUrl=function(t){var e=this;return fetch(t,{method:\"GET\",mode:\"cors\"}).then(function(t){if(t.ok)return t.json();throw new Error(\"HTTP \"+t.status+\": \"+t.statusText)}).then(function(t){e.add(t)})},oa.prototype.getShapeById=function(t){return this.shapes[this.shapesMap.get(t)]||null},oa.prototype.remove=function(t){for(var e=0,i=Array.isArray(t)?t:[t];e<i.length;e++){var r=i[e];\"number\"==typeof r?this._removeByIndex(r):this._removeById(r)}this._updateSource()},oa.prototype.removeById=function(t){for(var e=0,i=Array.isArray(t)?t:[t];e<i.length;e++){var r=i[e];this._removeById(r)}this._updateSource()},oa.prototype.setOptions=function(t){var e=(new Qo).merge(this.options,Ar(t));un(this.options,e)||(this._invokeEvent(\"datasourceupdated\",this),this.options=e,this.map&&this.map._rebuildStyle())},oa.prototype.setShapes=function(t){this._clearNoUpdate(),this.add(t)},oa.prototype.toJson=function(){return new No(this.shapes.map(function(t){return t.toJson()}))},oa.prototype._toJson=function(){return new No(this.shapes.map(function(t){return t._toJson()}))},oa.prototype._buildSource=function(){var t={type:\"geojson\",data:this._toJson(),maxzoom:this.options.maxZoom,cluster:this.options.cluster,clusterRadius:this.options.clusterRadius,tolerance:this.options.tolerance,lineMetrics:this.options.lineMetrics,clusterProperties:this.options.clusterProperties};return\"number\"==typeof this.options.clusterMaxZoom&&(t.clusterMaxZoom=this.options.clusterMaxZoom),t},oa.prototype._addNoUpdate=function(t,e){var i;if(t instanceof Lo)this._addToSources(t,e),i=[t];else if(Array.isArray(t))i=t.map(function(t){return t instanceof Lo?t:new Lo(t)}),this._addToSources(i,e);else if(\"FeatureCollection\"===t.type)i=t.features.map(function(t){return new Lo(t)}),this._addToSources(i,e);else if(\"GeometryCollection\"===t.type)i=t.geometries.map(function(t){return new Lo(t)}),this._addToSources(i,e);else{var r=new Lo(t);this._addToSources(r,e),i=[r]}this._invokeEvent(\"dataadded\",i)},oa.prototype._clearNoUpdate=function(){var t=this.shapes;this.shapes=[],this.shapesMap=new kr,t&&0<t.length&&this._invokeEvent(\"dataremoved\",t)},oa.prototype._updateSource=function(){var t=this;void 0===this.requestId&&(this.requestId=requestAnimationFrame(function(){t._updateMboxSource(),t.requestId=void 0}))},oa.prototype._addToSources=function(t,e){if(t=Array.isArray(t)?t:[t],\"number\"!=typeof e)for(var i=0,r=t;i<r.length;i++){var n=r[i];this.shapes.push(n),this.shapesMap.set(n.getId(),this.shapes.length-1)}else for(var o=t.length-1;0<=o;o--)this.shapes.splice(e,0,t[o]),this._updateShapesMap(e);for(var a=0,s=t;a<s.length;a++)(n=s[a])._setDataSource(this)},oa.prototype._removeById=function(t){var e,i=t instanceof Lo?t.getId():\"string\"==typeof t||\"number\"==typeof t?t:t.id;(e=this.shapes[this.shapesMap.get(i)])._setDataSource(null),this.shapes.splice(this.shapesMap.get(i),1),this._updateShapesMap(this.shapesMap.get(i)),this.shapesMap.delete(i),this._invokeEvent(\"dataremoved\",[e])},oa.prototype._removeByIndex=function(t){var e;if(t>=this.shapes.length)throw new Error(\"The specified remove index '\"+t+\"' is greater than the maximum possible index '\"+(this.shapes.length-1)+\"'\");e=this.shapes[t],this.shapesMap.delete(e.getId()),e._setDataSource(null),this.shapes.splice(t,1),this._updateShapesMap(t),this._invokeEvent(\"dataremoved\",[e])},oa.prototype._updateShapesMap=function(t){for(var e=t;e<this.shapes.length;e++)this.shapesMap.set(this.shapes[e].getId(),e)},oa.prototype._updateMboxSource=function(){if(this.map&&this.map._getMap()){var t=this.map._getMap().getSource(this.getId());t&&\"geojson\"===t.type&&t.setData(this._toJson())}},oa);function oa(t,e){var i=ra.call(this,t)||this;return i.requestId=void 0,i.options=(new Qo).merge(Ar(e)),i.shapes=[],i.shapesMap=new kr,i}var aa,sa=(b(la,aa=E),la);function la(){var t=null!==aa&&aa.apply(this,arguments)||this;return t.bounds=void 0,t.minZoom=0,t.maxZoom=22,t.isTMS=!1,t.tiles=void 0,t.tileSize=512,t.url=void 0,t}var ua,ca=(b(pa,ua=ea),pa.prototype.getOptions=function(){return Ar(this.options)},pa.prototype.getShape=function(t,e){return this.map._getMap().querySourceFeatures(this.getId(),{sourceLayer:t,filter:e})},pa.prototype._buildSource=function(){var t={type:\"vector\"};return this.options.bounds&&(t.bounds=this.options.bounds),this.options.tiles?(t.tiles=this.options.tiles,t.minzoom=this.options.minZoom,t.maxzoom=this.options.maxZoom):this.options.url&&(t.url=this.options.url),this.options.isTMS&&(t.scheme=\"tms\"),this.options.tileSize&&(t.tileSize=this.options.tileSize),t},pa);function pa(t,e){var i=ua.call(this,t)||this;return i.options=(new sa).merge(Ar(e)),i}var ha,da=Object.freeze({__proto__:null,Source:ea,DataSource:na,VectorTileSource:ca}),fa=(b(ma,ha=Eo),ma.prototype.getId=function(){return this.id},ma.prototype.getMap=function(){return this.map||null},ma.prototype.onAdd=function(t){this.map=t,this._invokeEvent(\"layeradded\",this),this.map.events.invoke(\"layeradded\",this)},ma.prototype.onRemove=function(){var t=this.map;delete this.map,this._invokeEvent(\"layerremoved\",this),t&&t.events.invoke(\"layerremoved\",this)},ma._isMBoxEvent=function(t){return!this.LayerEvents.hasOwnProperty(t)},ma.prototype._updateBaseProperties=function(t,e){this._updateFilter(t.filter,e.filter),this._updateZoomRange(t.minZoom,e.minZoom,t.maxZoom,e.maxZoom),this._updateLayoutProperty(\"visibility\",t.visible,e.visible,t.visible?\"visible\":\"none\")},ma.prototype._updateFilter=function(t,e){un(t,e)||this.map._getMap().setFilter(this.id,t)},ma.prototype._updatePaintProperty=function(t,e,i,r){un(e,i)||this.map._getMap().setPaintProperty(this.id,t,r||e)},ma.prototype._updateLayoutProperty=function(t,e,i,r){un(e,i)||this.map._getMap().setLayoutProperty(this.id,t,r||e)},ma.prototype._updateZoomRange=function(t,e,i,r){t===e&&r===i||this.map._getMap().setLayerZoomRange(this.id,t,i)},ma.LayerEvents={layeradded:void 0,layerremoved:void 0},ma);function ma(t){var e=ha.call(this)||this;return e.id=t||pn(),e}var ga,ya=(b(va,ga=E),va._cloneCustomizer=function(t){if(t instanceof ea)return t},va);function va(){var t=null!==ga&&ga.apply(this,arguments)||this;return t.filter=void 0,t.minZoom=0,t.maxZoom=24,t.visible=!0,t}var _a,xa=(b(ba,_a=ya),ba);function ba(){var t=null!==_a&&_a.apply(this,arguments)||this;return t.source=void 0,t.sourceLayer=void 0,t.color=\"#1A73AA\",t.blur=0,t.opacity=1,t.strokeColor=\"#FFFFFF\",t.strokeOpacity=1,t.strokeWidth=2,t.pitchAlignment=\"viewport\",t.radius=8,t}var wa,Sa=(b(Ta,wa=fa),Ta.prototype.getOptions=function(){return Jo(this.options,xa._cloneCustomizer)},Ta.prototype.getSource=function(){return this.options.source},Ta.prototype.setOptions=function(t){var e=(new xa).merge(this.options,Jo(t,xa._cloneCustomizer));if(this.map){if(e.source!==this.options.source||e.sourceLayer!==this.options.sourceLayer)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"circle-blur\",e.blur,this.options.blur),this._updatePaintProperty(\"circle-color\",e.color,this.options.color),this._updatePaintProperty(\"circle-opacity\",e.opacity,this.options.opacity),this._updatePaintProperty(\"circle-radius\",e.radius,this.options.radius),this._updatePaintProperty(\"circle-stroke-color\",e.strokeColor,this.options.strokeColor),this._updatePaintProperty(\"circle-stroke-opacity\",e.strokeOpacity,this.options.strokeOpacity),this._updatePaintProperty(\"circle-stroke-width\",e.strokeWidth,this.options.strokeWidth),this._updatePaintProperty(\"circle-pitch-alignment\",e.pitchAlignment,this.options.pitchAlignment)}this.options=e},Ta.prototype._buildLayers=function(){var t={id:this.id,type:\"circle\",source:this.options.source instanceof ea?this.options.source.getId():this.options.source,layout:{visibility:this.options.visible?\"visible\":\"none\"},paint:{\"circle-color\":this.options.color,\"circle-blur\":this.options.blur,\"circle-opacity\":this.options.opacity,\"circle-stroke-color\":this.options.strokeColor,\"circle-stroke-opacity\":this.options.strokeOpacity,\"circle-stroke-width\":this.options.strokeWidth,\"circle-pitch-alignment\":this.options.pitchAlignment,\"circle-radius\":this.options.radius},minzoom:this.options.minZoom,maxzoom:this.options.maxZoom};return this.options.filter&&(t.filter=this.options.filter),this.options.sourceLayer&&(t[\"source-layer\"]=this.options.sourceLayer),[t]},Ta.prototype._getLayerIds=function(){return[this.id]},Ta.prototype._getSourceIds=function(){var t=new Set;return this.options.source instanceof ea?t.add(this.options.source.getId()):t.add(this.options.source),t},Ta);function Ta(t,e,i){var r=wa.call(this,e)||this;return r.options=(new xa).merge(Jo(i,xa._cloneCustomizer)),r.options.source=t||r.options.source,r}var Ea,Ia=(b(Ca,Ea=ya),Ca._cloneCustomizer=function(t){if(t instanceof ea)return t},Ca);function Ca(){var t=null!==Ea&&Ea.apply(this,arguments)||this;return t.source=void 0,t.sourceLayer=void 0,t.color=[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0,0, 255,0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],t.intensity=1,t.opacity=1,t.radius=30,t.weight=1,t}var Aa,ka=(b(Pa,Aa=fa),Pa.prototype.getOptions=function(){return Jo(this.options,Ia._cloneCustomizer)},Pa.prototype.getSource=function(){return this.options.source},Pa.prototype.setOptions=function(t){var e=(new Ia).merge(this.options,Jo(t,Ia._cloneCustomizer));if(this.map){if(e.source!==this.options.source||e.sourceLayer!==this.options.sourceLayer)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"heatmap-color\",e.color,this.options.color),this._updatePaintProperty(\"heatmap-intensity\",e.intensity,this.options.intensity),this._updatePaintProperty(\"heatmap-opacity\",e.opacity,this.options.opacity),this._updatePaintProperty(\"heatmap-radius\",e.radius,this.options.radius),this._updatePaintProperty(\"heatmap-weight\",e.weight,this.options.weight)}this.options=e},Pa.prototype._buildLayers=function(){var t={id:this.id,type:\"heatmap\",source:this.options.source instanceof ea?this.options.source.getId():this.options.source,layout:{visibility:this.options.visible?\"visible\":\"none\"},paint:{\"heatmap-color\":this.options.color,\"heatmap-intensity\":this.options.intensity,\"heatmap-opacity\":this.options.opacity,\"heatmap-radius\":this.options.radius,\"heatmap-weight\":this.options.weight},minzoom:this.options.minZoom,maxzoom:this.options.maxZoom};return this.options.filter&&(t.filter=this.options.filter),this.options.sourceLayer&&(t[\"source-layer\"]=this.options.sourceLayer),[t]},Pa.prototype._getLayerIds=function(){return[this.id]},Pa.prototype._getSourceIds=function(){var t=new Set;return this.options.source instanceof ea?t.add(this.options.source.getId()):t.add(this.options.source),t},Pa);function Pa(t,e,i){var r=Aa.call(this,e)||this;return r.options=(new Ia).merge(Jo(i,Ia._cloneCustomizer)),r.options.source=t||r.options.source,r}var Ma,La=(b(Da,Ma=ya),Da);function Da(){var t=null!==Ma&&Ma.apply(this,arguments)||this;return t.contrast=0,t.fadeDuration=300,t.hueRotation=0,t.maxBrightness=1,t.minBrightness=0,t.opacity=1,t.saturation=0,t}var Oa,za=(b(Ra,Oa=La),Ra._cloneCustomizer=function(t){if(t instanceof ea)return t},Ra);function Ra(){var t=null!==Oa&&Oa.apply(this,arguments)||this;return t.url=void 0,t.coordinates=void 0,t}var Na,Ba=(b(Fa,Na=fa),Fa.prototype._getSourceIds=function(){var t=new Set;return t.add(this._getSourceId()),t},Fa);function Fa(){return null!==Na&&Na.apply(this,arguments)||this}var Ua,ja=(b(qa,Ua=Ba),qa.prototype.getOptions=function(){return Jo(this.options,za._cloneCustomizer)},qa.prototype.setOptions=function(t){var e=(new za).merge(this.options,Jo(t,za._cloneCustomizer)),i=\"string\"==typeof t.url&&t.url!==this.getOptions().url,r=void 0!==t.coordinates&&t.coordinates!==this.getOptions().coordinates;if(this.map){this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"raster-contrast\",e.contrast,this.options.contrast),this._updatePaintProperty(\"raster-fade-duration\",e.fadeDuration,this.options.fadeDuration),this._updatePaintProperty(\"raster-hue-rotate\",e.hueRotation,this.options.hueRotation),this._updatePaintProperty(\"raster-brightness-max\",e.maxBrightness,this.options.maxBrightness),this._updatePaintProperty(\"raster-opacity\",e.opacity,this.options.opacity),this._updatePaintProperty(\"raster-saturation\",e.saturation,this.options.saturation);var n=this.map._getMap().getSource(this._getSourceId());n&&n.updateImage(e)}this.options=e,i?this.reloadImage():r&&this.updateTransform()},qa.prototype.getPositions=function(e){return this.transform.then(function(t){return t.toTarget(e)})},qa.prototype.getPixels=function(e){return this.transform.then(function(t){return t.toSource(e)})},qa.getCoordinatesFromRefPoints=function(t,e,i,r){return new Ao(i,r).toTarget([[0,0],[t,0],[t,e],[0,e]])},qa.getCoordinatesFromEdges=function(t,e,i,r,n){\"number\"!=typeof n&&(n=0);var o=[Math.min(r,i),e,Math.max(r,i),t],a=zo.getCenter(o);return no([zo.getNorthWest(o),zo.getNorthEast(o),zo.getSouthEast(o),zo.getSouthWest(o)],a,n)},qa.prototype._buildLayers=function(){var t={id:this.id,type:\"raster\",source:this._getSourceId(),layout:{visibility:this.options.visible?\"visible\":\"none\"},paint:{\"raster-opacity\":this.options.opacity,\"raster-hue-rotate\":this.options.hueRotation,\"raster-brightness-min\":this.options.minBrightness,\"raster-brightness-max\":this.options.maxBrightness,\"raster-saturation\":this.options.saturation,\"raster-contrast\":this.options.contrast,\"raster-fade-duration\":this.options.fadeDuration},minzoom:this.options.minZoom,maxzoom:this.options.maxZoom};return this.options.filter&&(t.filter=this.options.filter),[t]},qa.prototype._getLayerIds=function(){return[this.id]},qa.prototype._buildSource=function(){return{type:\"image\",url:this.options.url,coordinates:this.options.coordinates}},qa.prototype._getSourceId=function(){return this.getId()+\"-ImageSource\"},qa.prototype.reloadImage=function(){var i=this;this.options.url&&(this.transform=new Promise(function(e,t){i.img.onload=function(){var t=[[0,0],[i.img.width,0],[i.img.width,i.img.height],[0,i.img.height]];e(new Ao(t,i.options.coordinates)),i.isLoading=!1},i.img.onerror=i.img.onabort=function(){t(\"Failed to load image\")},i.isLoading=!0,i.img.src=i.options.url}))},qa.prototype.updateTransform=function(){if(!this.isLoading){var t=[[0,0],[this.img.width,0],[this.img.width,this.img.height],[0,this.img.height]];this.transform=Promise.resolve(new Ao(t,this.options.coordinates))}},qa);function qa(t,e){var i=Ua.call(this,e)||this;return i.isLoading=!1,i.options=(new za).merge(Jo(t,za._cloneCustomizer)),i.img=new Image,i.reloadImage(),i}var Va,Ga=(b(Za,Va=ya),Za);function Za(){var t=null!==Va&&Va.apply(this,arguments)||this;return t.source=void 0,t.sourceLayer=void 0,t.lineCap=\"round\",t.lineJoin=\"round\",t.blur=0,t.strokeColor=\"#1E90FF\",t.strokeDashArray=void 0,t.strokeGradient=void 0,t.offset=0,t.strokeOpacity=1,t.translate=new mn(0,0),t.translateAnchor=\"map\",t.strokeWidth=2,t}var Ha,Ka=(b(Wa,Ha=fa),Wa.prototype.getOptions=function(){return Jo(this.options,Ga._cloneCustomizer)},Wa.prototype.getSource=function(){return this.options.source},Wa.prototype.setOptions=function(t){var e=(new Ga).merge(this.options,Jo(t,Ga._cloneCustomizer));if(this.map){if(e.source!==this.options.source||e.sourceLayer!==this.options.sourceLayer)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"line-blur\",e.blur,this.options.blur),this._updateLayoutProperty(\"line-cap\",e.lineCap,this.options.lineCap),this._updateLayoutProperty(\"line-join\",e.lineJoin,this.options.lineJoin),this._updatePaintProperty(\"line-offset\",e.offset,this.options.offset),this._updatePaintProperty(\"line-color\",e.strokeColor,this.options.strokeColor),this._updatePaintProperty(\"line-dasharray\",e.strokeDashArray,this.options.strokeDashArray),this._updatePaintProperty(\"line-gradient\",e.strokeGradient,this.options.strokeGradient),this._updatePaintProperty(\"line-opacity\",e.strokeOpacity,this.options.strokeOpacity),this._updatePaintProperty(\"line-width\",e.strokeWidth,this.options.strokeWidth),this._updatePaintProperty(\"line-translate\",e.translate,this.options.translate),this._updatePaintProperty(\"line-translate-anchor\",e.translateAnchor,this.options.translateAnchor)}this.options=e},Wa.prototype._buildLayers=function(){return[w(w(w(w({id:this.id,type:\"line\"},this.options.sourceLayer&&{\"source-layer\":this.options.sourceLayer}),{source:this.options.source instanceof ea?this.options.source.getId():this.options.source,layout:{visibility:this.options.visible?\"visible\":\"none\",\"line-cap\":this.options.lineCap,\"line-join\":this.options.lineJoin},paint:w(w(w({\"line-blur\":this.options.blur,\"line-color\":this.options.strokeColor},this.options.strokeDashArray&&{\"line-dasharray\":this.options.strokeDashArray}),this.options.strokeGradient&&{\"line-gradient\":this.options.strokeGradient}),{\"line-offset\":this.options.offset,\"line-opacity\":this.options.strokeOpacity,\"line-translate\":this.options.translate,\"line-translate-anchor\":this.options.translateAnchor,\"line-width\":this.options.strokeWidth})}),this.options.filter&&{filter:this.options.filter}),{minzoom:this.options.minZoom,maxzoom:this.options.maxZoom})]},Wa.prototype._getLayerIds=function(){return[this.id]},Wa.prototype._getSourceIds=function(){var t=new Set;return this.options.source instanceof ea?t.add(this.options.source.getId()):t.add(this.options.source),t},Wa);function Wa(t,e,i){var r=Ha.call(this,e)||this;return r.options=(new Ga).merge(Jo(i,Ga._cloneCustomizer)),r.options.source=t||r.options.source,r}var Xa,Ya=(b(Ja,Xa=ya),Ja);function Ja(){var t=null!==Xa&&Xa.apply(this,arguments)||this;return t.source=void 0,t.sourceLayer=void 0,t.base=0,t.fillColor=\"#1E90FF\",t.height=0,t.fillOpacity=1,t.fillPattern=void 0,t.translate=new mn(0,0),t.translateAnchor=\"map\",t.verticalGradient=!0,t}var Qa,$a=(b(ts,Qa=fa),ts.prototype.getOptions=function(){return Jo(this.options,Ya._cloneCustomizer)},ts.prototype.getSource=function(){return this.options.source},ts.prototype.setOptions=function(t){var e=(new Ya).merge(this.options,Jo(t,Ya._cloneCustomizer));if(this.map){if(e.source!==this.options.source||e.sourceLayer!==this.options.sourceLayer)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"fill-extrusion-base\",e.base,this.options.base),this._updatePaintProperty(\"fill-extrusion-color\",e.fillColor,this.options.fillColor),this._updatePaintProperty(\"fill-extrusion-height\",e.height,this.options.height),this._updatePaintProperty(\"fill-extrusion-opacity\",e.fillOpacity,this.options.fillOpacity),this._updatePaintProperty(\"fill-extrusion-pattern\",e.fillPattern,this.options.fillPattern),this._updatePaintProperty(\"fill-extrusion-translate\",e.translate,this.options.translate),this._updatePaintProperty(\"fill-extrusion-translate-anchor\",e.translateAnchor,this.options.translateAnchor),this._updatePaintProperty(\"fill-extrusion-vertical-gradient\",e.verticalGradient,this.options.verticalGradient)}this.options=e},ts.prototype._buildLayers=function(){return[w(w(w(w({id:this.id,type:\"fill-extrusion\"},this.options.sourceLayer&&{\"source-layer\":this.options.sourceLayer}),{source:this.options.source instanceof ea?this.options.source.getId():this.options.source,layout:{visibility:this.options.visible?\"visible\":\"none\"},paint:w(w({\"fill-extrusion-base\":this.options.base,\"fill-extrusion-height\":this.options.height,\"fill-extrusion-opacity\":this.options.fillOpacity},this.options.fillPattern?{\"fill-extrusion-pattern\":this.options.fillPattern}:{\"fill-extrusion-color\":this.options.fillColor}),{\"fill-extrusion-translate\":this.options.translate,\"fill-extrusion-translate-anchor\":this.options.translateAnchor,\"fill-extrusion-vertical-gradient\":this.options.verticalGradient})}),this.options.filter&&{filter:this.options.filter}),{minzoom:this.options.minZoom,maxzoom:this.options.maxZoom})]},ts.prototype._getLayerIds=function(){return[this.id]},ts.prototype._getSourceIds=function(){var t=new Set;return this.options.source instanceof ea?t.add(this.options.source.getId()):t.add(this.options.source),t},ts);function ts(t,e,i){var r=Qa.call(this,e)||this;return r.options=(new Ya).merge(Jo(i,Ya._cloneCustomizer)),r.options.source=t||r.options.source,r}var es,is=(b(rs,es=ya),rs.prototype.merge=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var i=!1,r=!1,n=0,o=t;n<o.length;n++){var a=o[n];a&&(a.hasOwnProperty(\"fillColor\")?r=!(i=!0):a.hasOwnProperty(\"fillPattern\")&&(i=!(r=!0)))}var s=es.prototype.merge.apply(this,t);return i?s.fillPattern=void 0:r&&(s.fillColor=void 0),s},rs);function rs(){var t=null!==es&&es.apply(this,arguments)||this;return t.source=void 0,t.sourceLayer=void 0,t.fillColor=\"#1E90FF\",t.fillOpacity=.5,t.fillPattern=void 0,t}var ns,os=(b(as,ns=fa),as.prototype.getOptions=function(){return Jo(this.options,is._cloneCustomizer)},as.prototype.getSource=function(){return this.options.source},as.prototype.setOptions=function(t){var e=(new is).merge(this.options,Jo(t,is._cloneCustomizer));if(this.map){if(e.source!==this.options.source||e.sourceLayer!==this.options.sourceLayer)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"fill-color\",e.fillColor,this.options.fillColor),this._updatePaintProperty(\"fill-opacity\",e.fillOpacity,this.options.fillOpacity),this._updatePaintProperty(\"fill-pattern\",e.fillPattern,this.options.fillPattern)}this.options=e},as.prototype._buildLayers=function(){var t={id:this.id,type:\"fill\",source:this.options.source instanceof ea?this.options.source.getId():this.options.source,layout:{visibility:this.options.visible?\"visible\":\"none\"},paint:{\"fill-opacity\":this.options.fillOpacity},minzoom:this.options.minZoom,maxzoom:this.options.maxZoom};return this.options.filter&&(t.filter=this.options.filter),this.options.sourceLayer&&(t[\"source-layer\"]=this.options.sourceLayer),this.options.fillPattern?t.paint[\"fill-pattern\"]=this.options.fillPattern:t.paint[\"fill-color\"]=this.options.fillColor,[t]},as.prototype._getLayerIds=function(){return[this.id]},as.prototype._getSourceIds=function(){var t=new Set;return this.options.source instanceof ea?t.add(this.options.source.getId()):t.add(this.options.source),t},as);function as(t,e,i){var r=ns.call(this,e)||this;return r.options=(new is).merge(Jo(i,is._cloneCustomizer)),r.options.source=t||r.options.source,r}var ss,ls=(b(us,ss=E),us);function us(){var t=null!==ss&&ss.apply(this,arguments)||this;return t.allowOverlap=!1,t.anchor=\"bottom\",t.ignorePlacement=!1,t.image=\"marker-blue\",t.offset=new mn(0,0),t.optional=!1,t.pitchAlignment=\"auto\",t.rotation=0,t.rotationAlignment=\"auto\",t.size=1,t.opacity=1,t}var cs,ps=(b(hs,cs=E),hs);function hs(){var t=null!==cs&&cs.apply(this,arguments)||this;return t.allowOverlap=!1,t.anchor=\"center\",t.textField=void 0,t.font=[\"StandardFont-Regular\"],t.ignorePlacement=!1,t.offset=new mn(0,0),t.optional=!1,t.pitchAlignment=\"auto\",t.rotation=0,t.rotationAlignment=\"auto\",t.size=16,t.color=\"#000000\",t.haloBlur=0,t.haloColor=\"rgba(0,0,0,0)\",t.haloWidth=0,t.opacity=1,t}var ds,fs=(b(ms,ds=ya),ms);function ms(){var t=null!==ds&&ds.apply(this,arguments)||this;return t.source=void 0,t.sourceLayer=void 0,t.iconOptions=new ls,t.textOptions=new ps,t.placement=\"point\",t.lineSpacing=250,t}var gs,ys=(b(vs,gs=fa),vs.prototype.getOptions=function(){return Jo(this.options,fs._cloneCustomizer)},vs.prototype.getSource=function(){return this.options.source},vs.prototype.setOptions=function(t){var e=(new fs).merge(this.options,Jo(t,fs._cloneCustomizer));if(this.map){if(e.source!==this.options.source||e.sourceLayer!==this.options.sourceLayer)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updateLayoutProperty(\"symbol-spacing\",e.lineSpacing,this.options.lineSpacing),this._updateLayoutProperty(\"symbol-placement\",e.placement,this.options.placement),this._updateLayoutProperty(\"icon-allow-overlap\",e.iconOptions.allowOverlap,this.options.iconOptions.allowOverlap),this._updateLayoutProperty(\"icon-anchor\",e.iconOptions.anchor,this.options.iconOptions.anchor),this._updateLayoutProperty(\"icon-ignore-placement\",e.iconOptions.ignorePlacement,this.options.iconOptions.ignorePlacement),this._updateLayoutProperty(\"icon-image\",e.iconOptions.image,this.options.iconOptions.image),this._updateLayoutProperty(\"icon-offset\",e.iconOptions.offset,this.options.iconOptions.offset),this._updatePaintProperty(\"icon-opacity\",e.iconOptions.opacity,this.options.iconOptions.opacity),this._updateLayoutProperty(\"icon-optional\",e.iconOptions.optional,this.options.iconOptions.optional),this._updateLayoutProperty(\"icon-pitch-alignment\",e.iconOptions.pitchAlignment,this.options.iconOptions.pitchAlignment),this._updateLayoutProperty(\"icon-rotate\",e.iconOptions.rotation,this.options.iconOptions.rotation),this._updateLayoutProperty(\"icon-rotation-alignment\",e.iconOptions.rotationAlignment,this.options.iconOptions.rotationAlignment),this._updateLayoutProperty(\"icon-size\",e.iconOptions.size,this.options.iconOptions.size),this._updateLayoutProperty(\"text-allow-overlap\",e.textOptions.allowOverlap,this.options.textOptions.allowOverlap),this._updateLayoutProperty(\"text-anchor\",e.textOptions.anchor,this.options.textOptions.anchor),this._updatePaintProperty(\"text-color\",e.textOptions.color,this.options.textOptions.color),this._updateLayoutProperty(\"text-font\",e.textOptions.font,this.options.textOptions.font),this._updateLayoutProperty(\"text-ignore-placement\",e.textOptions.ignorePlacement,this.options.textOptions.ignorePlacement),this._updatePaintProperty(\"text-halo-blur\",e.textOptions.haloBlur,this.options.textOptions.haloBlur),this._updatePaintProperty(\"text-halo-color\",e.textOptions.haloColor,this.options.textOptions.haloColor),this._updatePaintProperty(\"text-halo-width\",e.textOptions.haloWidth,this.options.textOptions.haloWidth),this._updateLayoutProperty(\"text-offset\",e.textOptions.offset,this.options.textOptions.offset),this._updatePaintProperty(\"text-opacity\",e.textOptions.opacity,this.options.textOptions.opacity),this._updateLayoutProperty(\"text-optional\",e.textOptions.optional,this.options.textOptions.optional),this._updateLayoutProperty(\"text-pitch-alignment\",e.textOptions.pitchAlignment,this.options.textOptions.pitchAlignment),this._updateLayoutProperty(\"text-rotate\",e.textOptions.rotation,this.options.textOptions.rotation),this._updateLayoutProperty(\"text-rotation-alignment\",e.textOptions.rotationAlignment,this.options.textOptions.rotationAlignment),this._updateLayoutProperty(\"text-size\",e.textOptions.size,this.options.textOptions.size),this._updateLayoutProperty(\"text-field\",e.textOptions.textField,this.options.textOptions.textField)}this.options=e},vs.prototype._buildLayers=function(){return[w(w(w(w({id:this.id,type:\"symbol\"},this.options.sourceLayer&&{\"source-layer\":this.options.sourceLayer}),{source:this.options.source instanceof ea?this.options.source.getId():this.options.source,layout:w(w({visibility:this.options.visible?\"visible\":\"none\",\"symbol-placement\":this.options.placement,\"symbol-spacing\":this.options.lineSpacing,\"text-allow-overlap\":this.options.textOptions.allowOverlap,\"text-anchor\":this.options.textOptions.anchor},this.options.textOptions.textField&&{\"text-field\":this.options.textOptions.textField}),{\"text-font\":this.options.textOptions.font,\"text-ignore-placement\":this.options.textOptions.ignorePlacement,\"text-offset\":this.options.textOptions.offset,\"text-optional\":this.options.textOptions.optional,\"text-pitch-alignment\":this.options.textOptions.pitchAlignment,\"text-rotate\":this.options.textOptions.rotation,\"text-rotation-alignment\":this.options.textOptions.rotationAlignment,\"text-size\":this.options.textOptions.size,\"icon-allow-overlap\":this.options.iconOptions.allowOverlap,\"icon-anchor\":this.options.iconOptions.anchor,\"icon-ignore-placement\":this.options.iconOptions.ignorePlacement,\"icon-image\":this.options.iconOptions.image,\"icon-offset\":this.options.iconOptions.offset,\"icon-optional\":this.options.iconOptions.optional,\"icon-pitch-alignment\":this.options.iconOptions.pitchAlignment,\"icon-rotate\":this.options.iconOptions.rotation,\"icon-rotation-alignment\":this.options.iconOptions.rotationAlignment,\"icon-size\":this.options.iconOptions.size}),paint:{\"text-color\":this.options.textOptions.color,\"text-halo-blur\":this.options.textOptions.haloBlur,\"text-halo-color\":this.options.textOptions.haloColor,\"text-halo-width\":this.options.textOptions.haloWidth,\"text-opacity\":this.options.textOptions.opacity,\"icon-opacity\":this.options.iconOptions.opacity}}),this.options.filter&&{filter:this.options.filter}),{minzoom:this.options.minZoom,maxzoom:this.options.maxZoom})]},vs.prototype._getLayerIds=function(){return[this.id]},vs.prototype._getSourceIds=function(){var t=new Set;return this.options.source instanceof ea?t.add(this.options.source.getId()):t.add(this.options.source),t},vs);function vs(t,e,i){var r=gs.call(this,e)||this;return r.options=(new fs).merge(Jo(i,fs._cloneCustomizer)),r.options.source=t||r.options.source,r}var _s,xs=(b(bs,_s=La),bs);function bs(){var t=null!==_s&&_s.apply(this,arguments)||this;return t.bounds=[-180,-85.0511,180,85.0511],t.minSourceZoom=0,t.maxSourceZoom=22,t.tileSize=512,t.isTMS=!1,t.subdomains=void 0,t.tileUrl=void 0,t}var ws,Ss=(b(Ts,ws=Ba),Ts.prototype.getOptions=function(){return Jo(this.options,xs._cloneCustomizer)},Ts.prototype.setOptions=function(t){var e=(new xs).merge(this.options,Jo(t,xs._cloneCustomizer));if(this.map){if(!un(e.bounds,this.options.bounds)||e.isTMS!==this.options.isTMS||e.maxSourceZoom!==this.options.maxSourceZoom||e.minSourceZoom!==this.options.minSourceZoom||!un(e.subdomains,this.options.subdomains)||e.tileSize!==this.options.tileSize||e.tileUrl!==this.options.tileUrl)return this.options=e,void this.map.layers.add(this);this._updateBaseProperties(e,this.options),this._updatePaintProperty(\"raster-contrast\",e.contrast,this.options.contrast),this._updatePaintProperty(\"raster-fade-duration\",e.fadeDuration,this.options.fadeDuration),this._updatePaintProperty(\"raster-hue-rotate\",e.hueRotation,this.options.hueRotation),this._updatePaintProperty(\"raster-brightness-max\",e.maxBrightness,this.options.maxBrightness),this._updatePaintProperty(\"raster-opacity\",e.opacity,this.options.opacity),this._updatePaintProperty(\"raster-saturation\",e.saturation,this.options.saturation)}this.options=e},Ts.prototype._setOptionsNoUpdate=function(t){this.options=(new xs).merge(this.options,Jo(t,xs._cloneCustomizer))},Ts.prototype._buildLayers=function(){return[w(w({id:this.id,type:\"raster\",source:this._getSourceId(),layout:{visibility:this.options.visible?\"visible\":\"none\"},paint:{\"raster-contrast\":this.options.contrast,\"raster-fade-duration\":this.options.fadeDuration,\"raster-hue-rotate\":this.options.hueRotation,\"raster-brightness-max\":this.options.maxBrightness,\"raster-brightness-min\":this.options.minBrightness,\"raster-opacity\":this.options.opacity,\"raster-saturation\":this.options.saturation}},this.options.filter&&{filter:this.options.filter}),{minzoom:this.options.minZoom,maxzoom:this.options.maxZoom})]},Ts.prototype._getLayerIds=function(){return[this.id]},Ts.prototype._buildSource=function(){var t;if(this.options.tileUrl){if(-1===this.options.tileUrl.indexOf(\"{\"))return{type:\"raster\",url:this.options.tileUrl};if(-1!==this.options.tileUrl.indexOf(\"{subdomain}\")){if(!(this.options.subdomains&&0<this.options.subdomains.length))throw new Error(\"The {subdomain} placeholder was included in the tileUrl but no subdomains were specified\");for(var e=[],i=0,r=this.options.subdomains;i<r.length;i++){var n=r[i];e.push(this.options.tileUrl.replace(/{subdomain}/g,n))}t=e}else t=[this.options.tileUrl]}return w({type:\"raster\",bounds:this.options.bounds,maxzoom:this.options.maxSourceZoom,minzoom:this.options.minSourceZoom,scheme:this.options.isTMS?\"tms\":\"xyz\",tileSize:this.options.tileSize},t&&{tiles:t})},Ts.prototype._getSourceId=function(){return this.getId()+\"-RasterSource\"},Ts);function Ts(t,e){var i=ws.call(this,e)||this;return t&&i.setOptions(t),i}var Es=Object.freeze({__proto__:null,BubbleLayer:Sa,Layer:fa,LineLayer:Ka,PolygonExtrusionLayer:$a,PolygonLayer:os,SymbolLayer:ys,TileLayer:Ss,HeatMapLayer:ka,ImageLayer:ja}),Is=(Cs.convertHtmlString=function(t){if(\"string\"!=typeof t)return t;var e=document.createElement(\"div\");return e.innerHTML=t,e},Cs);function Cs(){}var As=Function.prototype,ks=Object.prototype,Ps=As.toString,Ms=ks.hasOwnProperty,Ls=Ps.call(Object);var Ds=function(t){if(!Fe(t)||\"[object Object]\"!=Ht(t))return!1;var e=Ai(t);if(null===e)return!0;var i=Ms.call(e,\"constructor\")&&e.constructor;return\"function\"==typeof i&&i instanceof i&&Ps.call(i)==Ls};var Os,zs=function(t){return Fe(t)&&1===t.nodeType&&!Ds(t)},Rs=(b(Ns,Os=E),Ns._cloneCustomizer=function(t){if(zs(t))return t},Ns);function Ns(){var t=null!==Os&&Os.apply(this,arguments)||this;return t.anchor=\"none\",t.draggable=!1,t.closeButton=!0,t.content=document.createElement(\"span\"),t.fillColor=\"#FFFFFF\",t.pixelOffset=new mn(0,0),t.position=new bo(0,0),t.showPointer=!0,t}var Bs,Fs=(b(Us,Bs=Eo),Us.prototype.setPopupOptions=function(t){this.setOptions(t)},Us.prototype.setOptions=function(t){var e=(new Rs).merge(this.options,Jo(t,Rs._cloneCustomizer));e.content!==this.options.content?(this.htmlContent.remove(),this.htmlContent=this._createHtmlContent(e),this.contentDiv.prepend(this.htmlContent)):e.draggable!==this.options.draggable&&this._setDraggable(this.htmlContent,e.draggable),e.closeButton&&!this.closeBtn?(this.closeBtn=this._createCloseButton(),this.contentDiv.appendChild(this.closeBtn)):!e.closeButton&&this.closeBtn&&(this.contentDiv.removeChild(this.closeBtn),delete this.closeBtn),e.showPointer&&!this.arrowDiv?(this.arrowDiv=this._createArrowDiv(),this.containerDiv.appendChild(this.arrowDiv)):!e.showPointer&&this.arrowDiv&&(this.containerDiv.removeChild(this.arrowDiv),delete this.arrowDiv),e.fillColor!==this.options.fillColor&&(this.containerDiv.style.borderColor=e.fillColor,this.contentDiv.style.backgroundColor=e.fillColor),this.marker&&(e.anchor!==this.options.anchor?\"none\"===this.options.anchor?(this.autoAnchor!==e.anchor&&this._replaceMarker(this.map,e),this.map.events.remove(\"move\",this._onMove),delete this.autoAnchor):(this._replaceMarker(this.map,e),\"none\"===e.anchor&&this.map.events.add(\"move\",this._onMove)):(un(e.position,this.options.position)||this.marker.setLngLat(e.position),un(e.pixelOffset,this.options.pixelOffset)||this.marker.setOffset(e.pixelOffset))),this.options=e},Us.prototype.getPopupOptions=function(){return this.getOptions()},Us.prototype.getOptions=function(){return Jo(this.options,Rs._cloneCustomizer)},Us.prototype._dragToPixel=function(t){this.dragging||(this.dragging=!0,this.contentDiv.style.pointerEvents=\"none\",this._invokeEvent(\"dragstart\",{type:\"dragstart\",target:this}));var e=[t[0]+this.dragOffset[0],t[1]+this.dragOffset[1]],i=this.map.pixelsToPositions([e])[0];this.options.position=i,this.marker.setLngLat(this.options.position),this._invokeEvent(\"drag\",{type:\"drag\",target:this})},Us.prototype._onUp=function(){this.dragging&&(this.contentDiv.style.pointerEvents=\"\",this._invokeEvent(\"dragend\",{type:\"dragend\",target:this}),\"none\"===this.options.anchor&&this._onMove()),delete this.dragOffset,delete this.dragging},Us.prototype._createContainerDiv=function(t){var e=this,i=document.createElement(\"div\");i.classList.add(Us.Css.container),i.classList.add(Us.Css.hidden),i.style.borderColor=t.fillColor,i.setAttribute(\"role\",\"dialog\"),i.setAttribute(\"aria-label\",\"Map Information Window\");var r=!1;return i.addEventListener(\"keydown\",function(t){\"Tab\"!==t.key&&\"Escape\"!==t.key&&\"Esc\"!==t.key||(r=!0)}),i.addEventListener(\"keyup\",function(t){\"Tab\"!==t.key&&\"Escape\"!==t.key&&\"Esc\"!==t.key||(r=!1)}),i.addEventListener(\"focusin\",function(t){e.map&&!e.isOpen()&&(e.open(e.map),t.target instanceof HTMLElement&&t.target.focus())}),i.addEventListener(\"focusout\",function(t){r&&t.relatedTarget instanceof Node&&!i.contains(t.relatedTarget)&&(r=!1,e.isOpen()&&e.close())}),i},Us.prototype._createContentDiv=function(t){var e=document.createElement(\"div\");return e.classList.add(Us.Css.content),e.style.backgroundColor=t.fillColor,e.setAttribute(\"tabindex\",\"0\"),this.htmlContent=this._createHtmlContent(t),e.appendChild(this.htmlContent),e},Us.prototype._createArrowDiv=function(){var t=document.createElement(\"div\");return t.classList.add(Us.Css.arrow),t},Us.prototype._createCloseButton=function(){var t=document.createElement(\"button\");return t.addEventListener(\"click\",this.close),t.classList.add(Us.Css.close),t.setAttribute(\"aria-label\",\"close\"),t.setAttribute(\"title\",\"close\"),t.setAttribute(\"tabindex\",\"0\"),t.innerHTML=\"×\",t},Us.prototype._createHtmlContent=function(t){var e=Is.convertHtmlString(t.content);return t.draggable&&this._setDraggable(e,t.draggable),e},Us.prototype._createMarker=function(t,e){var i=this.marker?this.marker.getLngLat():t.position;return\"none\"===t.anchor?(this.autoAnchor=e||\"bottom\",this.containerDiv.classList.add(this.autoAnchor),new r({anchor:this.autoAnchor,element:this.containerDiv,offset:t.pixelOffset}).setLngLat(i)):(this.containerDiv.classList.add(t.anchor),new r({anchor:t.anchor,element:this.containerDiv,offset:t.pixelOffset}).setLngLat(i))},Us.prototype._getAutoAnchor=function(t,e){var i,r,n=this.containerDiv.offsetWidth,o=this.containerDiv.offsetHeight;if(this.marker){var a=t._getMap().project(this.marker.getLngLat());i=a.x,r=a.y}else{var s=t.positionsToPixels([e.position])[0];i=s[0],r=s[1]}var l=[];return r<o?l.push(\"top\"):r>t.getCanvas().offsetHeight-o&&l.push(\"bottom\"),i<n/2?l.push(\"left\"):i>t.getCanvas().offsetWidth-n/2&&l.push(\"right\"),0<l.length?l.join(\"-\"):\"bottom\"},Us.prototype._replaceMarker=function(t,e,i){var r=this.containerDiv.nextElementSibling;this.marker.remove(),this.containerDiv.classList.remove(this.autoAnchor||this.options.anchor),this.marker=this._createMarker(e,i),this.marker.addTo(t._getMap()),t.popups._getCollectionDiv().insertBefore(this.containerDiv,r||null)},Us.prototype._setDraggable=function(t,e){e?(t.addEventListener(\"mousedown\",this._onDown),t.addEventListener(\"touchstart\",this._onDown),t.addEventListener(\"dragstart\",this._onDragStart)):(t.removeEventListener(\"mousedown\",this._onDown),t.removeEventListener(\"touchstart\",this._onDown),t.removeEventListener(\"dragstart\",this._onDragStart))},Us.Css={arrow:\"popup-arrow\",close:\"popup-close\",container:\"popup-container\",content:\"popup-content-container\",hidden:\"hidden-accessible-element\"},Us);function Us(t){var i=Bs.call(this)||this;return i.attach=function(t){i.map!==t&&(i.map&&i.remove(),i.map=t,i.marker=i._createMarker(i.options),i.marker.addTo(i.map._getMap()),i.map.popups._getCollectionDiv().appendChild(i.containerDiv),i.map.popups.add(i))},i.open=function(t){if(!t&&!i.map)throw new Error(\"Must specify a map to open on or attach to a map in advance\");i.attach(t||i.map),i.containerDiv.classList.remove(Us.Css.hidden),i.map.events.add(\"move\",i._onMove),i._onMove(),i._invokeEvent(\"open\",{target:i,type:\"open\"})},i.close=function(){i.map&&i.map.events.remove(\"move\",i._onMove),i.containerDiv.classList.add(Us.Css.hidden),i._invokeEvent(\"close\",{target:i,type:\"close\"})},i.remove=function(){i.map&&(i.marker.remove(),i.containerDiv.classList.remove(i.autoAnchor||i.options.anchor),i.map.events.remove(\"move\",i._onMove),i.map.popups.remove(i),delete i.map,delete i.marker,delete i.autoAnchor)},i.isOpen=function(){return i.map&&!i.containerDiv.classList.contains(Us.Css.hidden)},i._onMove=function(){var t=i._getAutoAnchor(i.map,i.options);t!==i.autoAnchor&&(i._replaceMarker(i.map,i.options,t),i.map.events.add(\"move\",i._onMove))},i._onDown=function(t){i.map.popups._addDraggedPopup(i);var e=i.map.positionsToPixels([i.options.position])[0];\"mousedown\"===t.type?(t=t,i.dragOffset=[e[0]-t.clientX,e[1]-t.clientY]):\"touchstart\"===t.type&&(t=t,i.dragOffset=[e[0]-t.touches[0].clientX,e[1]-t.touches[0].clientY])},i._onDragStart=function(t){t.preventDefault()},i.options=(new Rs).merge(Jo(t,Rs._cloneCustomizer)),i.containerDiv=i._createContainerDiv(i.options),i.contentDiv=i._createContentDiv(i.options),i.containerDiv.appendChild(i.contentDiv),i.options.showPointer&&(i.arrowDiv=i._createArrowDiv(),i.containerDiv.appendChild(i.arrowDiv)),i.options.closeButton&&(i.closeBtn=i._createCloseButton(),i.contentDiv.appendChild(i.closeBtn)),i}var js,qs=(b(Vs,js=E),Vs._cloneCustomizer=function(t){if(t instanceof Fs||zs(t))return t},Vs);function Vs(){var t=null!==js&&js.apply(this,arguments)||this;return t.anchor=\"bottom\",t.color=\"#1A73AA\",t.draggable=!1,t.htmlContent='<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24.5 36.5\" id=\"marker_'+pn()+'\" width=\"24.5\" height=\"36.5\" display=\"block\"><path d=\"M12.25.25a12.2543,12.2543,0,0,0-12,12.4937c0,6.4436,6.4879,12.1093,11.059,22.5641.5493,1.2563,1.3327,1.2563,1.882,0C17.7621,24.8529,24.25,19.1857,24.25,12.7437A12.2543,12.2543,0,0,0,12.25.25Z\" fill=\"{color}\" stroke=\"{secondaryColor}\" stroke-width=\"0.5\"/><text style=\"font-family: Arial, Helvetica, sans-serif; font-size: 14px; fill: white;\" text-anchor=\"middle\" x=\"12\" y=\"18\">{text}</text></svg>',t.pixelOffset=new mn(0,0),t.position=new bo(0,0),t.popup=void 0,t.secondaryColor=\"white\",t.text=void 0,t.visible=!0,t}var Gs,Zs=(b(Hs,Gs=Eo),Hs.prototype.getOptions=function(){return Jo(this.options,qs._cloneCustomizer)},Hs.prototype.setOptions=function(t){var e=(new qs).merge(this.options,Jo(t,qs._cloneCustomizer));un(e.htmlContent,this.options.htmlContent)&&e.anchor===this.options.anchor?(\"string\"!=typeof e.htmlContent||e.color===this.options.color&&e.text===this.options.text&&e.secondaryColor===this.options.secondaryColor||(this.element.innerHTML=this._getSubbedHtmlString(e)),e.draggable!==this.options.draggable&&(this._setDraggable(e.draggable),this.marker.setDraggable(e.draggable)),un(e.pixelOffset,this.options.pixelOffset)||this.marker.setOffset(e.pixelOffset),un(e.position,this.options.position)||this.marker.setLngLat(e.position),e.visible!==this.options.visible&&(e.visible?this.element.classList.remove(Hs.hiddenClass):this.element.classList.add(Hs.hiddenClass))):(this.marker.remove(),this._buildMarker(e),this.map&&(this.marker.addTo(this.map._getMap()),this._getCollectionContainer().appendChild(this.element))),this.options=e},Hs.prototype.togglePopup=function(){if(this.options.popup)if(this.options.popup.isOpen())this.options.popup.close();else{if(!this.map)throw new Error(\"The marker must be added to a map before calling togglePopup().\");this.options.popup.setOptions({position:this.options.position}),this.options.popup.open(this.map)}},Hs.prototype._addToMap=function(t,e){this.map&&this.map!==t&&this._removeFromMap(),e&&(this.options.position=Ar(e),this.marker.setLngLat(this.options.position)),this.map!==t&&(this.map=t,this.marker.addTo(t._getMap()),this._getCollectionContainer().appendChild(this.element))},Hs.prototype._removeFromMap=function(){this.map&&(this.marker.remove(),delete this.map)},Hs.prototype._getId=function(){if(this.element)return\"string\"==typeof this.options.htmlContent?this.element.firstChild.id:this.element.id},Hs.prototype._buildMarker=function(t){if(\"string\"==typeof t.htmlContent){var e=this._getSubbedHtmlString(t);this.element=Is.convertHtmlString(e)}else this.element=t.htmlContent;this.element.classList.add(Hs.containerClass),t.draggable&&this._setDraggable(!0),t.visible||this.element.classList.add(Hs.hiddenClass),this.marker=new r({element:this.element,offset:t.pixelOffset,draggable:t.draggable,anchor:t.anchor}).setLngLat(t.position),this.marker.on(\"drag\",this._onDrag),this.marker.on(\"dragstart\",this._onDragStart),this.marker.on(\"dragend\",this._onDragEnd),this.element.addEventListener(\"click\",this._bubbleElementEvent),this.element.addEventListener(\"dblclick\",this._bubbleElementEvent),this.element.addEventListener(\"contextmenu\",this._bubbleElementEvent),this.element.addEventListener(\"keydown\",this._bubbleElementEvent),this.element.addEventListener(\"keypress\",this._bubbleElementEvent),this.element.addEventListener(\"keyup\",this._bubbleElementEvent),this.element.addEventListener(\"mousedown\",this._bubbleElementEvent),this.element.addEventListener(\"mouseenter\",this._bubbleElementEvent),this.element.addEventListener(\"mouseleave\",this._bubbleElementEvent),this.element.addEventListener(\"mousemove\",this._bubbleElementEvent),this.element.addEventListener(\"mouseout\",this._bubbleElementEvent),this.element.addEventListener(\"mouseover\",this._bubbleElementEvent),this.element.addEventListener(\"mouseup\",this._bubbleElementEvent)},Hs.prototype._getSubbedHtmlString=function(t){if(\"string\"==typeof t.htmlContent)return t.htmlContent.replace(/{color}/gi,t.color||\"\").replace(/{secondaryColor}/gi,t.secondaryColor||\"\").replace(/{text}/gi,t.text||\"\")},Hs.prototype._getCollectionContainer=function(){var t=this.map.getCanvasContainer().querySelector(\".\"+Hs.collectionContainerClass);return t||((t=document.createElement(\"div\")).classList.add(Hs.collectionContainerClass),this.map.getCanvasContainer().appendChild(t)),t},Hs.prototype._setDraggable=function(t){t?this.element.addEventListener(\"dragstart\",this._onEleDragStart):this.element.removeEventListener(\"dragstart\",this._onEleDragStart)},Hs.collectionContainerClass=\"marker-collection-container\",Hs.hiddenClass=\"hidden-accessible-element\",Hs.containerClass=\"marker-container\",Hs);function Hs(t){var e=Gs.call(this)||this;return e._onDrag=function(){var t=e.marker.getLngLat().wrap();e.options.position=new bo(t.lng,t.lat),e._invokeEvent(\"drag\",{type:\"drag\",target:e})},e._onDragStart=function(){e._invokeEvent(\"dragstart\",{type:\"dragstart\",target:e})},e._onDragEnd=function(){e._invokeEvent(\"dragend\",{type:\"dragend\",target:e})},e._bubbleElementEvent=function(t){e._invokeEvent(t.type,{type:t.type,target:e})},e._onEleDragStart=function(t){t.preventDefault()},e.options=(new qs).merge(Jo(t,qs._cloneCustomizer)),e._buildMarker(e.options),e}var Ks=function(t,e,i){(void 0===i||bt(t[e],i))&&(void 0!==i||e in t)||Oe(t,e,i)};var Ws=function(l){return function(t,e,i){for(var r=-1,n=Object(t),o=i(t),a=o.length;a--;){var s=o[l?a:++r];if(!1===e(n[s],s,n))break}return t}}();var Xs=function(t){return Fe(t)&&pi(t)};var Ys=function(t,e){if((\"constructor\"!==e||\"function\"!=typeof t[e])&&\"__proto__\"!=e)return t[e]};var Js=function(t){return Ne(t,yi(t))};var Qs=function(t,e,i,r,n,o,a){var s=Ys(t,i),l=Ys(e,i),u=a.get(l);if(u)Ks(t,i,u);else{var c=o?o(s,l,i+\"\",t,e,a):void 0,p=void 0===c;if(p){var h=Ze(l),d=!h&&Ke(l),f=!h&&!d&&ii(l);c=l,h||d||f?c=Ze(s)?s:Xs(s)?xi(s):d?_i(l,!(p=!1)):f?ar(l,!(p=!1)):[]:Ds(l)||Ge(l)?Ge(c=s)?c=Js(s):Kt(s)&&!Xt(s)||(c=pr(l)):p=!1}p&&(a.set(l,c),n(c,l,r,o,a),a.delete(l)),Ks(t,i,c)}};var $s=function r(n,o,a,s,l){n!==o&&Ws(o,function(t,e){if(l=l||new Me,Kt(t))Qs(n,o,e,a,r,s,l);else{var i=s?s(Ys(n,e),t,e+\"\",n,o,l):void 0;void 0===i&&(i=t),Ks(n,e,i)}},yi)};function tl(t){return t}var el=function(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)},il=Math.max;var rl=function(o,a,s){return a=il(void 0===a?o.length-1:a,0),function(){for(var t=arguments,e=-1,i=il(t.length-a,0),r=Array(i);++e<i;)r[e]=t[a+e];e=-1;for(var n=Array(a+1);++e<a;)n[e]=t[e];return n[a]=s(r),el(o,this,n)}};var nl=function(t){return function(){return t}},ol=De?function(t,e){return De(t,\"toString\",{configurable:!0,enumerable:!1,value:nl(e),writable:!0})}:tl,al=Date.now;var sl=function(i){var r=0,n=0;return function(){var t=al(),e=16-(t-n);if(n=t,0<e){if(800<=++r)return arguments[0]}else r=0;return i.apply(void 0,arguments)}}(ol);var ll=function(t,e){return sl(rl(t,e,tl),t+\"\")};var ul=function(t,e,i){if(!Kt(i))return!1;var r=typeof e;return!!(\"number\"==r?pi(i)&&Xe(e,i.length):\"string\"==r&&e in i)&&bt(i[e],t)};var cl=function(s){return ll(function(t,e){var i=-1,r=e.length,n=1<r?e[r-1]:void 0,o=2<r?e[2]:void 0;for(n=3<s.length&&\"function\"==typeof n?(r--,n):void 0,o&&ul(e[0],e[1],o)&&(n=r<3?void 0:n,r=1),t=Object(t);++i<r;){var a=e[i];a&&s(t,a,i,n)}return t})}(function(t,e,i){$s(t,e,i)}),pl=(hl.parse=function(t){var e=(t=t.toLowerCase()).lastIndexOf(\"-\");return-1!==e?{code:t,language:t.substring(0,e),region:t.substring(e+1)}:{code:t,language:t}},hl);function hl(){}var dl={localizationsPath:\"locs/mapcontrol/2019-3-12\",sensitiveUserRegions:[\"il\",\"kr\",\"pk\",\"in\",\"cn\",\"ar\",\"bh\",\"eg\",\"jo\",\"sa\",\"kw\",\"om\",\"qa\",\"ma\",\"ae\"],locales:{defaultLanguage:{defaultRegion:{code:\"NGT\",strings:\"en/resource.json\"}},ar:{defaultRegion:{code:\"ar\",strings:\"ar-sa/resource.json\"}},bg:{defaultRegion:{code:\"bg-BG\",strings:\"bg-bg/resource.json\"}},cs:{defaultRegion:{code:\"cs-CZ\",strings:\"cs-cz/resource.json\"}},da:{defaultRegion:{code:\"da-DK\",strings:\"da-dk/resource.json\"}},de:{defaultRegion:{code:\"de-DE\",strings:\"de-de/resource.json\"}},el:{defaultRegion:{code:\"el-GR\",strings:\"el-gr/resource.json\"}},en:{defaultRegion:{code:\"en\",strings:\"en/resource.json\"},us:{code:\"en-US\",strings:\"en/resource.json\"}},es:{defaultRegion:{code:\"es-ES\",strings:\"es-es/resource.json\"},mx:{code:\"es-MX\",strings:\"es-mx/resource.json\"}},fi:{defaultRegion:{code:\"fi-FI\",strings:\"fi-fi/resource.json\"}},fr:{defaultRegion:{code:\"fr-FR\",strings:\"fr-fr/resource.json\"}},hu:{defaultRegion:{code:\"hu-HU\",strings:\"hu-hu/resource.json\"}},id:{defaultRegion:{code:\"id-ID\",strings:\"id-id/resource.json\"}},it:{defaultRegion:{code:\"it-IT\",strings:\"it-it/resource.json\"}},ko:{defaultRegion:{code:\"ko-KR\",strings:\"ko-kr/resource.json\"}},lt:{defaultRegion:{code:\"lt-LT\",strings:\"lt-lt/resource.json\"}},ms:{defaultRegion:{code:\"ms-MY\",strings:\"ms-my/resource.json\"}},nb:{defaultRegion:{code:\"nb-NO\",strings:\"nb-no/resource.json\"}},nl:{defaultRegion:{code:\"nl-NL\",strings:\"nl-nl/resource.json\"}},pl:{defaultRegion:{code:\"pl-PL\",strings:\"pl-pl/resource.json\"}},pt:{defaultRegion:{code:\"pt-PT\",strings:\"pt-pt/resource.json\"},br:{code:\"pt-BR\",strings:\"pt-br/resource.json\"}},ru:{defaultRegion:{code:\"ru-RU\",strings:\"ru-ru/resource.json\"}},sk:{defaultRegion:{code:\"sk-SK\",strings:\"sk-sk/resource.json\"}},sl:{defaultRegion:{code:\"sl-SL\",strings:\"sl-sl/resource.json\"}},sv:{defaultRegion:{code:\"sv-SE\",strings:\"sv-se/resource.json\"}},th:{defaultRegion:{code:\"th-TH\",strings:\"th-th/resource.json\"}},tr:{defaultRegion:{code:\"tr-TR\",strings:\"tr-tr/resource.json\"}},zh:{defaultRegion:{code:\"zh-Hant\",strings:\"zh-tw/resource.json\"}},\"zh-hant\":{defaultRegion:{code:\"zh-Hant\",strings:\"zh-tw/resource.json\"}}}},fl=function(){this.Unknown=\"Unknown\",this.Accident=\"Accident\",this.Fog=\"Fog\",this.Danger=\"Danger\",this.Rain=\"Rain\",this.Ice=\"Ice\",this.Jam=\"Jam\",this.LaneClosed=\"Lane Closed\",this.RoadClosed=\"Road Closed\",this.RoadWorks=\"Road Works\",this.Wind=\"Wind\",this.Flood=\"Flood\",this.Detour=\"Detour\"},ml=(gl.getCode=function(t){var e=pl.parse(t);return-1===dl.sensitiveUserRegions.indexOf(e.region)?this.getLocaleData(e).code:t},gl.getStrings=function(t){var e=this.getLocaleData(t);return new P({domain:o,path:dl.localizationsPath+\"/\"+e.strings}).get().then(function(t){return t},function(){return new fl})},gl.getLocaleData=function(t){if(\"string\"==typeof t&&(t=pl.parse(t)),dl.locales[t.code])return dl.locales[t.code].defaultRegion;var e;if(dl.locales[t.language])e=dl.locales[t.language];else{if(-1!==t.language.indexOf(\"-\"))return this.getLocaleData(t.language);e=dl.locales.defaultLanguage}return t.region&&e[t.region]?e[t.region]:e.defaultRegion},gl);function gl(){}var yl,vl=(_l.getEdgeOrIEVersion=function(){var t=window.navigator.userAgent,e=t.indexOf(\"MSIE \");if(0<e)return parseInt(t.substring(e+5,t.indexOf(\".\",e)),10);if(0<t.indexOf(\"Trident/\")){var i=t.indexOf(\"rv:\");return parseInt(t.substring(i+3,t.indexOf(\".\",i)),10)}var r=t.indexOf(\"Edge/\");return 0<r?parseInt(t.substring(r+5,t.indexOf(\".\",r)),10):-1},_l.isEdgeOrIE=function(){return-1!==this.getEdgeOrIEVersion()},_l.isIE=function(){var t=this.getEdgeOrIEVersion();return-1!==t&&t<=11},_l);function _l(){}(yl=p.AuthenticationType||(p.AuthenticationType={})).subscriptionKey=\"subscriptionKey\",yl.aad=\"aad\",yl.anonymous=\"anonymous\";var xl,bl,wl=(b(Sl,xl=E),Sl.prototype.setSubscriptionKey=function(t){this.authType=p.AuthenticationType.subscriptionKey,this.subscriptionKey=t},Sl.prototype.setAadProperties=function(t,e,i,r,n){this.authType=p.AuthenticationType.aad,this.authContext=n||this.authContext,this.aadInstance=r||this.aadInstance,this.clientId=t,this.aadAppId=e,this.aadTenant=i},Sl.prototype.setTokenCallbackFunction=function(t){this.authType=p.AuthenticationType.anonymous,this.getToken=t},Sl.prototype.merge=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var i=xl.prototype.merge.apply(this,t);return i.authType===p.AuthenticationType.subscriptionKey?i.authContext=i.aadAppId=i.getToken=void 0:i.authType===p.AuthenticationType.aad?i.subscriptionKey=i.getToken=void 0:i.authType===p.AuthenticationType.anonymous&&(i.subscriptionKey=i.authContext=i.aadAppId=void 0),i},Sl);function Sl(){var t=null!==xl&&xl.apply(this,arguments)||this;return t.authType=void 0,t.subscriptionKey=void 0,t.clientId=void 0,t.aadAppId=void 0,t.aadTenant=void 0,t.aadInstance=void 0,t.getToken=void 0,t.authContext=void 0,t}var Tl=\"NGT\",El=pn(),Il=n,Cl=new wl,Al=!1,kl=!1,Pl=!1,Ml=!1,Ll=!1;function Dl(){return Object.assign({},Cl)}function Ol(){return Il}function zl(){return Tl}function Rl(){return El}function Nl(){return Cl.authType===p.AuthenticationType.subscriptionKey?Cl.subscriptionKey:void 0}function Bl(){return bl}function Fl(t){return!vl.isIE()&&h.supported({failIfMajorPerformanceCaveat:t})}function Ul(t){Cl=(new wl).merge(Cl,t),Ll=!0}function jl(t){Il=t,kl=!0}function ql(t){Tl=ml.getCode(t),Pl=!0}function Vl(t){El=t,Ml=!0}function Gl(t){Cl.setSubscriptionKey(t),Ll=!0}function Zl(t){bl=t,Al=!0}function Hl(t,e){if(e=Math.abs(e||1),\"string\"==typeof t&&nu[t.toLowerCase()]){for(var i=nu[t.toLowerCase()],r=/calc\\(([0-9.]+)[px]*\\s*\\*\\s*\\{scale\\}\\)/gi,n=i,o=r.exec(i);o;)n=n.replace(o[0],parseFloat(o[1])*e+\"\"),o=r.exec(i);return n=n.replace(\"{scale}\",e+\"\")}throw new Error(\"Invalid templateName.\")}function Kl(){return Ll}function Wl(){return kl}function Xl(){return Pl}function Yl(){return Ml}function Jl(){return Al}var Ql,$l,tu,eu,iu,ru,nu={marker:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(27 * {scale})\" height=\"calc(39 * {scale})\" viewBox=\"-1 -1 26 38\"><path d=\"M12.25.25a12.254 12.254 0 0 0-12 12.494c0 6.444 6.488 12.109 11.059 22.564.549 1.256 1.333 1.256 1.882 0C17.762 24.853 24.25 19.186 24.25 12.744A12.254 12.254 0 0 0 12.25.25Z\" style=\"fill:{color};stroke:{secondaryColor};stroke-width:1\"/><text x=\"12.5\" y=\"17.5\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-thick\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(28 * {scale})\" height=\"calc(39 * {scale})\" viewBox=\"-1 -1 27 38\"><path d=\"M12.25.25a12.254 12.254 0 0 0-12 12.494c0 6.444 6.488 12.109 11.059 22.564.549 1.256 1.333 1.256 1.882 0C17.762 24.853 24.25 19.186 24.25 12.744A12.254 12.254 0 0 0 12.25.25Z\" style=\"fill:{color};stroke:{secondaryColor};stroke-width:2\"/><text x=\"12.5\" y=\"18.5\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-circle\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(28 * {scale})\" height=\"calc(39 * {scale})\" viewBox=\"-1 -1 27 38\"><path d=\"M12.25.25a12.254 12.254 0 0 0-12 12.494c0 6.444 6.488 12.109 11.059 22.564.549 1.256 1.333 1.256 1.882 0C17.762 24.853 24.25 19.186 24.25 12.744A12.254 12.254 0 0 0 12.25.25Z\" style=\"fill:{color};stroke:{secondaryColor};stroke-width:1\"/><circle cx=\"12.5\" cy=\"12.5\" r=\"9\" fill=\"{secondaryColor}\"/><text x=\"12\" y=\"17.5\" style=\"font-size:14px;fill:#000;text-anchor:middle\">{text}</text></svg>',pin:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(24 * {scale})\" height=\"calc(28 * {scale})\" viewBox=\"0 0 24 28\"><path d=\"m11.988 16.615a5.15 5.15 0 0 1-2.268-.525 4.909 4.909 0 0 1-2.805-4.442 5.019 5.019 0 0 1 5.072-4.936h.012a5.03 5.03 0 0 1 5.085 4.961 4.907 4.907 0 0 1-.549 2.224 5.114 5.114 0 0 1-4.548 2.718zm0-8.06a3.173 3.173 0 0 0-3.226 3.099 3.081 3.081 0 0 0 1.77 2.782 3.299 3.299 0 0 0 4.365-1.386 3.049 3.049 0 0 0 .342-1.381 3.184 3.184 0 0 0-3.239-3.114h-.012z\" fill=\"{secondaryColor}\"/><path d=\"m11.999.922a10.908 10.908 0 0 0-11.076 10.732 10.639 10.639 0 0 0 4.418 8.598l6.658 6.464 6.658-6.463a10.537 10.537 0 0 0 2.198-15.041 11.182 11.182 0 0 0-8.856-4.289zm1.873 14.341a4.221 4.221 0 0 1-5.589-1.789 3.945 3.945 0 0 1-.445-1.8 4.164 4.164 0 0 1 8.323-.037 4.028 4.028 0 0 1-2.289 3.626Z\" fill=\"{color}\"/><path d=\"m11.999 28-7.256-7.044a11.611 11.611 0 0 1-4.743-9.303 11.844 11.844 0 0 1 11.988-11.652.102 .102 0 0 1 .02 0 12.164 12.164 0 0 1 9.577 4.647 11.357 11.357 0 0 1 2.299 8.614 11.521 11.521 0 0 1-4.63 7.695zm-.01-26.157a9.997 9.997 0 0 0-10.143 9.812 9.769 9.769 0 0 0 4.04 7.853l.099.083 6.014 5.838 6.113-5.922a9.7 9.7 0 0 0 3.945-6.505 9.533 9.533 0 0 0-1.933-7.229 10.305 10.305 0 0 0-8.116-3.931h-.021zm.021 14.772a5.11 5.11 0 0 1-4.547-2.718 4.868 4.868 0 0 1 .932-5.743 5.118 5.118 0 0 1 3.58-1.46h.024a5.031 5.031 0 0 1 5.084 4.938 4.92 4.92 0 0 1-2.805 4.457h0a5.152 5.152 0 0 1-2.269.525zm-.011-8.079h-.015a3.277 3.277 0 0 0-2.295.933 3.029 3.029 0 0 0-.587 3.58 3.297 3.297 0 0 0 4.364 1.386h0a3.092 3.092 0 0 0 1.772-2.795 3.185 3.185 0 0 0-3.239-3.105z\" fill=\"{secondaryColor}\"/><text x=\"12\" y=\"17\" style=\"font-size:14px;fill:#000;text-anchor:middle\">{text}</text></svg>',\"pin-round\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(25 * {scale})\" height=\"calc(25 * {scale})\" viewBox=\"0 0 25 25\"><g transform=\"translate(0 1)\"><circle cx=\"12.25\" cy=\"11.5833\" r=\"11\" fill=\"{color}\"/><path d=\"m12.25 23.583a12 12 0 1 1 12-12 12 12 0 0 1-12 12zm0-22a10 10 0 1 0 10 10 10 10 0 0 0-10-10z\" fill=\"{secondaryColor}\"/><circle cx=\"12.25\" cy=\"11.5833\" r=\"4.2386\" fill=\"{secondaryColor}\"/></g><text x=\"12.5\" y=\"17\" style=\"font-size:14px;fill:#000;text-anchor:middle\">{text}</text></svg>',\"marker-flat\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(27 * {scale})\" height=\"calc(42.8 * {scale})\" viewBox=\"0 0 1600 2570\"><g fill=\"{color}\"><path d=\"M691 2419c-409-575-641-1086-683-1504-10-106-10-136 5-224 31-188 105-330 241-458 129-124 270-190 453-214 69-9 113-10 182-1 373 46 655 326 703 698 40 308-120 801-424 1309-134 224-348 535-369 535-4 0-53-63-108-141z\"/></g><g fill=\"rgba(0,0,0,0.15)\" style=\"transform:scale(-1,1);transform-origin:center\"><path d=\"M691 2419c-407-571-639-1083-682-1498-14-139-3-249 37-371 69-208 254-402 459-481 68-27 217-59 271-59h24v160 180 940 635c0 349-2 635-5 635-2 0-49-63-104-141z\"/></g><circle cx=\"800\" cy=\"800\" r=\"600\" fill=\"{secondaryColor}\"/><text x=\"800\" y=\"1100\" style=\"font-size:800px;fill:#000;text-anchor:middle\">{text}</text></svg>',\"marker-arrow\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(25.47 * {scale})\" height=\"calc(35.18 * {scale})\" viewBox=\"0 0 4330 5980\"><g fill=\"{color}\"><path d=\"m2080 5969c-49-20-93-63-115-113-25-55-1928-5486-1953-5573-40-138 67-282 210-283 36 0 246 73 987 345 518 190 947 345 955 345 8 0 438-155 955-345 615-226 954-345 979-345 87 0 165 47 204 123 46 91 107-95-957 2942-537 1535-986 2805-997 2823-11 18-43 46-72 62-41 24-62 30-111 29-33 0-71-5-85-10z\"/></g><g fill=\"{secondaryColor}\"><path d=\"m2200 1600c-36 10-83 2-484-84-243-53-451-94-461-91-11 4-22 18-25 31-5 19 114 371 436 1292 244 697 448 1273 454 1281 19 24 50 30 71 12z\"/><path d=\"m2200 1600c-36 10-83 2-484-84-243-53-451-94-461-91-11 4-22 18-25 31-5 19 114 371 436 1292 244 697 448 1273 454 1281 19 24 50 30 71 12z\" style=\"transform:scale(-1,1);transform-origin:center\"/></g><g fill=\"rgba(0,0,0,0.2)\" ><path d=\"m2165 685c8 0 438-155 955-345 615-226 954-345 979-345 87 0 165 47 204 123 46 91 107-95-957 2942-537 1535-986 2805-997 2823-11 18-43 46-72 62-41 24-62 30-111 29z\"/></g><text x=\"2165\" y=\"3300\" style=\"font-size:2500px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-ball-pin\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(15.67 * {scale})\" height=\"calc(33.33 * {scale})\" viewBox=\"0 0 235 452\"><g transform=\"translate(-135 10)\"><path fill=\"{secondaryColor}\" d=\"m256 442 0 0c-13 0-18-11-18-24l-6-323c0-13 11-24 24-24h0c13 0 24 11 24 24l-6 323c0 13-5 24-18 24z\"/><circle style=\"fill:{color};stroke-width:10;stroke:{secondaryColor}\" cx=\"256\" cy=\"112\" r=\"111\"/><ellipse transform=\"matrix(0.834 0.5518 -0.5518 0.834 65.7916 -97.18)\" fill=\"rgba(255,255,255,0.3)\" cx=\"194.399\" cy=\"60.749\" rx=\"19.076\" ry=\"32.428\"/></g><text x=\"117.5\" y=\"160\" style=\"font-size:160px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-square\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(26.67 * {scale})\" height=\"calc(32.27 * {scale})\" viewBox=\"0 0 2000 2420\"><g transform=\"translate(100 100)\" style=\"stroke:{secondaryColor};stroke-width:100;fill:{color}\"><path d=\"M845 2152c-22-37-58-95-80-129-22-35-62-99-90-143l-50-80-312 0-313 0 0-900 0-900 900 0 900 0 0 900 0 900-313 0-313 0-34 58c-19 31-38 59-42 60-5 2-8 8-8 12 0 9-69 123-88 145-5 6-11 15-13 21-16 39-77 123-89 124-8 0-33-31-55-68z\"/></g><text x=\"1000\" y=\"1300\" style=\"font-size:1000px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-square-cluster\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(33.33 * {scale})\" height=\"calc(38.8 * {scale})\" viewBox=\"0 0 2500 2910\"><g transform=\"translate(100 100)\" style=\"stroke:{secondaryColor};stroke-width:100;fill:{color}\"><path d=\"m866 2652c-17-31-37-68-46-82-9-14-32-54-51-90-19-36-50-92-70-125l-36-60-332-3-331-2 0-905 0-905 660 0 660 0 0-38c0-71 50-196 102-258 71-85 189-164 244-164 12 0 26-4 29-10 8-13 222-13 230 0 3 6 17 10 30 10 25 0 117 45 154 76 130 107 191 232 191 392 0 155-63 284-190 386-36 29-129 76-150 76-11 0-22 5-25 10-3 6-31 10-61 10l-54 0 0 660 0 660-332 2-332 3-29 50c-17 28-48 84-70 125-22 41-47 86-56 100-9 14-30 51-46 83-17 32-36 57-45 57-8 0-28-25-44-58z\"/></g><text x=\"1650\" y=\"900\" style=\"font-size:1000px;fill:#fff\">+</text><text x=\"1000\" y=\"1800\" style=\"font-size:1000px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-square-rounded\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(26.8 * {scale})\" height=\"calc(32.27 * {scale})\" viewBox=\"0 0 2010 2410\"><g transform=\"translate(100 100)\" style=\"stroke:{secondaryColor};stroke-width:100;fill:{color}\"><path d=\"M856 2155c-20-30-36-59-36-65 0-5-4-10-10-10-5 0-10-5-10-11 0-5-18-37-40-69-22-32-40-64-40-69 0-6-4-11-10-11-5 0-10-5-10-10 0-6-15-33-32-60l-33-50-127 0c-74 0-129-4-133-10-3-5-17-10-30-10-25 0-116-45-155-76-87-69-142-151-178-265-15-46-17-1075-2-1084 5-3 10-17 10-30 0-13 5-27 10-30 6-3 10-13 10-22 0-22 83-135 122-168 57-46 62-50 112-75l50-25 585 0 586 0 63 34c84 46 169 133 212 218l35 68 0 565 0 565-28 59c-32 69-100 157-139 180-15 9-33 22-40 29-23 22-99 57-123 57-13 0-27 5-30 10-4 6-60 10-135 10l-128 0-128 205c-84 136-133 205-144 205-10 0-33-24-54-55z\"/></g><text x=\"1000\" y=\"1300\" style=\"font-size:1000px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"marker-square-rounded-cluster\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(33.33 * {scale})\" height=\"calc(32.13 * {scale})\" viewBox=\"0 0 2500 2900\"><g transform=\"translate(100 100)\" style=\"stroke:{secondaryColor};stroke-width:100;fill:{color}\"><path d=\"m874 2669c-9-18-26-49-37-68-11-20-30-55-43-78-13-24-36-64-51-90-14-27-38-69-52-95l-26-48-142 0c-84 0-144-4-148-10-3-5-17-10-30-10-25 0-118-46-154-76-91-76-136-142-175-254-13-38-16-119-16-554 0-358 3-520 12-545 40-125 106-219 195-278 127-84 116-83 646-83l467 0 0-42c0-46 11-87 45-163 54-121 169-220 306-264 46-14 232-14 278 0 165 53 284 175 340 350 19 61 14 204-10 273-32 91-94 178-169 240-38 31-130 76-155 76-13 0-27 5-30 10-3 6-28 10-56 10l-49 0 0 462c0 446-1 464-21 522-32 91-94 178-169 240-38 31-130 76-155 76-13 0-27 5-30 10-4 6-65 10-149 10-138 0-143 1-154 23-12 23-62 114-112 202-16 28-44 79-63 115-42 77-67 88-93 39z\"/></g><text x=\"1650\" y=\"900\" style=\"font-size:1000px;fill:#fff\">+</text><text x=\"1000\" y=\"1800\" style=\"font-size:1000px;fill:#fff;text-anchor:middle\">{text}</text></svg>',flag:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(23.5 * {scale})\" height=\"calc(40 * {scale})\" viewBox=\"34 28 198 308\"><path style=\"stroke:{secondaryColor};stroke-width:15;stroke-linecap:round;\" d=\"M42 327l0 -291\"/><path style=\"fill:{color};stroke:{secondaryColor};stroke-width:10;stroke-linejoin:round;\" d=\"M49 50c70 30 104 28 178 2-21 42-21 74 0 116-72 25-101 25-178 0l0-118z\"/><text x=\"130\" y=\"165\" style=\"font-size:100px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"flag-triangle\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(27 * {scale})\" height=\"calc(35.33 * {scale})\" viewBox=\"0 0 40.5 53\"><g transform=\"translate(-31 -20)\"><path fill=\"{secondaryColor}\" d=\"M34.7,73.3V48.4l34.6-10.1c0.7-0.2,1.2-0.8,1.2-1.5s-0.4-1.4-1-1.7L33.7,20.5c-0.5-0.2-1.1-0.2-1.6,0.2 c-0.5,0.3-0.7,0.8-0.7,1.4v51.2H34.7z\"/><polygon points=\"34.7,24.5 66,36.5 34.7,45 34.7,10\" fill=\"{color}\"/></g><text x=\"11\" y=\"21\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"rounded-square\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(34 * {scale})\" height=\"calc(34 * {scale})\" viewBox=\"0 0 34 34\"><g transform=\"translate(2 2)\"><rect x=\"0\" y=\"0\" rx=\"8\" ry=\"8\" width=\"30\" height=\"30\" style=\"stroke:{secondaryColor};stroke-width:2;fill:{color}\"/></g><text x=\"17\" y=\"22\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"rounded-square-thick\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(38 * {scale})\" height=\"calc(38 * {scale})\" viewBox=\"0 0 38 38\"><g transform=\"translate(4 4)\"><rect x=\"0\" y=\"0\" rx=\"8\" ry=\"8\" width=\"30\" height=\"30\" style=\"stroke:{secondaryColor};stroke-width:4;fill:{color}\"/></g><text x=\"19\" y=\"24\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',triangle:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(36 * {scale})\" height=\"calc(36 * {scale})\" viewBox=\"0 0 36 36\"><g transform=\"translate(2 2)\"><polygon points=\"16,0 32,32 0,32 16,0\" style=\"stroke:{secondaryColor};stroke-width:2;fill:{color}\"/></g><text x=\"17.5\" y=\"30\" style=\"font-size:12px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"triangle-thick\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(40 * {scale})\" height=\"calc(40 * {scale})\" viewBox=\"0 0 40 40\"><g transform=\"translate(4 4)\"><polygon points=\"16,0 32,32 0,32 16,0\" style=\"stroke:{secondaryColor};stroke-width:4;fill:{color}\"/></g><text x=\"19.5\" y=\"32\" style=\"font-size:12px;fill:#fff;text-anchor:middle\">{text}</text></svg>',hexagon:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(35 * {scale})\" height=\"calc(40 * {scale})\" viewBox=\"0 0 35 40\"><g transform=\"translate(2 2)\"><path d=\"M31 9 15.5 0 0 9 0 27 15.5 36 31 27 31 9Z\" style=\"stroke:{secondaryColor};stroke-width:2;fill:{color}\"/></g><text x=\"17.5\" y=\"25\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"hexagon-thick\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(39 * {scale})\" height=\"calc(44 * {scale})\" viewBox=\"0 0 39 44\"><g transform=\"translate(4 4)\"><path d=\"M31 9 15.5 0 0 9 0 27 15.5 36 31 27 31 9Z\" style=\"stroke:{secondaryColor};stroke-width:4;fill:{color}\"/></g><text x=\"19.5\" y=\"27\" style=\"font-size:14px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"hexagon-rounded\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(40 * {scale})\" height=\"calc(40 * {scale})\" viewBox=\"0 0 1100 1100\"><g transform=\"translate(50 50)\"><path style=\"stroke:{secondaryColor};stroke-width:50;fill:{color}\" d=\"M881 210 561 25c-33-19-88-19-121 0L119 210c-33 19-61 67-61 105v370c0 39 27 86 61 105l321 185c33 19 88 19 122 0l321-185c33-19 61-67 61-105V315C942 276 915 229 881 210z\"/></g><text x=\"550\" y=\"700\" style=\"font-size:400px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"hexagon-rounded-thick\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(40 * {scale})\" height=\"calc(40 * {scale})\" viewBox=\"0 0 1200 1200\"><g transform=\"translate(100 100)\"><path style=\"stroke:{secondaryColor};stroke-width:100;fill:{color}\" d=\"M881 210 561 25c-33-19-88-19-121 0L119 210c-33 19-61 67-61 105v370c0 39 27 86 61 105l321 185c33 19 88 19 122 0l321-185c33-19 61-67 61-105V315C942 276 915 229 881 210z\"/></g><text x=\"600\" y=\"750\" style=\"font-size:400px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"triangle-arrow-up\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(28 * {scale})\" height=\"calc(28 * {scale})\" viewBox=\"0 0 28 28\"><g transform=\"translate(2 2)\"><polygon points=\"12,0 0,24 12,17 24,24\" stroke-width=\"2\" stroke=\"{secondaryColor}\" fill=\"{color}\"/></g><text x=\"14\" y=\"17\" style=\"font-size:8px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"triangle-arrow-left\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(28 * {scale})\" height=\"calc(28 * {scale})\" viewBox=\"0 0 28 28\"><g transform=\"translate(2 2)\"><polygon points=\"24,12 0,0 7,12 0,24\" stroke-width=\"2\" stroke=\"{secondaryColor}\" fill=\"{color}\"/></g><text x=\"14\" y=\"16.5\" style=\"font-size:8px;fill:#fff;text-anchor:middle\">{text}</text></svg>',\"arrow-up\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(12.16 * {scale})\" height=\"calc(30.1 * {scale})\" viewBox=\"0 0 902 364\"><g fill=\"{color}\" transform=\"matrix(0,2.4,-2.4,0,897,-930)\"><polygon points=\"902,222 233,222 233,364 0,182 233,0 233,141 902,141 902,222\"/></g><text x=\"450\" y=\"700\" style=\"font-size:900px;fill:#000;text-anchor:middle\">{text}</text></svg>',\"arrow-up-thin\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(16 * {scale})\" height=\"calc(33.33 * {scale})\" viewBox=\"0 0 12 25\"><g transform=\"translate(-136.91823 -751.91998)\"><path fill=\"{color}\" d=\"m148.271 760.71c-1.641-.547-3.186-1.47-4.633-2.769l0 18.07-1.675 0 0-18.07c-1.447 1.299-2.986 2.222-4.616 2.769l0-1.231c2.325-1.596 4.006-3.812 5.043-6.65l.838 0c1.037 2.838 2.718 5.055 5.043 6.65l0 1.231z\"/></g><text x=\"6\" y=\"20\" style=\"font-size:10px;fill:#000;text-anchor:middle\">{text}</text></svg>',car:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(21.93 * {scale})\" height=\"calc(40.9 * {scale})\" viewBox=\"0 0 6580 12270\"><g transform=\"translate(0 12270) rotate(-90)\"><path fill=\"{secondaryColor}\" d=\"M7045 6566c-42-13-105-44-105-51 0-2 23-105 50-228 28-123 50-230 50-236 0-8-241-11-907-11-855 0-1145 6-1513 30-85 6-189 13-230 15-41 3-133 10-205 15-286 21-430 32-705 50-953 63-1459 18-2335-205-304-77-746-209-799-238-131-72-221-408-285-1062-34-345-42-532-48-1130-16-1557 108-2532 336-2649 32-17 469-149 676-205 409-110 819-191 1205-238 116-14 224-18 540-18 395 1 494 5 1140 50 1124 79 1224 82 2496 78l641-3-53-237c-29-131-52-238-51-239 1-1 31-14 66-29 56-23 76-26 142-23 67 3 83 7 120 33 23 17 50 41 61 55 10 14 51 117 91 230l73 205 674 3 675 2 90-39c98-43 198-72 315-93 122-21 829-18 990 5 321 45 626 143 849 270 293 168 516 378 704 662 266 402 416 893 467 1527 15 174 8 882-9 998-6 41-18 127-27 190-69 502-253 969-523 1325-79 105-262 284-381 374-189 142-355 229-574 300-336 110-526 139-952 148-457 9-685-23-887-124l-47-24-678-6-678-6-64 179c-79 224-92 253-121 284-67 70-177 97-274 66zm-2752-5073c-23-2-64-2-90 0-26 2-7 3 42 3 50 0 71-1 48-3zm395 0c-21-2-55-2-75 0-21 2-4 4 37 4 41 0 58-2 38-4z\"/><path fill=\"{color}\" d=\"M7043 6498c-13-6-23-19-23-28 0-9 23-117 50-240 28-123 50-230 50-237 0-22-2126-13-2465 10-132 10-400 28-595 42-661 47-824 55-1160 62-435 7-656-8-1040-73-415-70-865-183-1447-365-168-53-272-556-325-1569-16-319-16-1311 0-1630 45-872 129-1366 257-1518 22-26 51-39 172-77 557-177 1122-310 1563-369 271-36 351-40 690-40 361 1 463 6 1165 54 1122 78 1288 83 2337 79 460-2 840-7 843-11 4-4-17-117-47-252l-55-245 39-16c76-30 180-8 224 47 10 13 54 124 98 246l79 222 709 0 709 0 47-24c74-37 219-83 322-101 122-22 606-32 802-16 374 29 658 102 933 238 124 62 271 155 361 230l61 51 6 100c19 278 103 497 247 643 88 89 173 136 278 152l70 11 41 131c116 369 159 673 168 1170 10 584-38 984-167 1397l-40 126-70 12c-193 33-348 175-441 405-56 139-89 302-89 445 0 43-3 47-58 91-290 235-644 384-1068 450-191 29-796 39-974 16-135-18-263-54-368-102l-75-35-701 0-701 0-79 223c-82 232-102 267-163 293-38 16-138 17-170 2zm-2023-820c332-15 1155-12 1835 6 308 8 563 12 566 8 4-4 10-21 13-38 7-30 6-31-92-77-518-244-1197-396-2112-474-295-25-1282-25-1579 0-231 20-473 46-479 51-6 7 49 110 93 171 160 226 416 335 855 365 142 10 539 5 900-12zm3304-263c525-111 899-887 934-1935 19-557-37-1023-172-1435-186-563-521-900-896-899-81 0-158 14-525 92-426 91-431 92-540 146-195 96-287 207-306 368-12 104-11 2985 1 3078 22 170 135 291 365 389 49 21 191 55 480 115 226 47 419 87 430 89 45 10 164 6 229-8zm-5570-485c112-43 197-156 216-291 12-83 13-2623 1-2706-23-158-125-273-270-304-44-9-100-1-542 75-272 47-514 91-539 98-266 68-487 424-594 958-56 280-70 548-40 800 56 484 207 878 414 1081 115 114 122 116 702 218 277 49 524 90 550 90 26 1 72-8 102-19zm2111-3440c1023-44 1884-213 2462-486l113-53-7-33c-3-18-8-35-10-37-2-3-236 1-521 7-993 24-1271 26-1708 11-541-18-1128-18-1249-1-377 56-588 181-734 437-32 55-41 79-32 84 12 8 246 32 491 51 356 28 815 36 1195 20z\"/></g><text x=\"3250\" y=\"8250\" style=\"font-size:3000px;fill:#fff;text-anchor:middle\">{text}</text></svg>',checker:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(16 * {scale})\" height=\"calc(16 * {scale})\" viewBox=\"0 0 16 16\"><pattern id=\"p\" x=\"0\" y=\"0\" width=\"16\" height=\"16\" patternUnits=\"userSpaceOnUse\"><rect fill=\"{color}\" x=\"0\" width=\"8\" height=\"8\" y=\"0\"/><rect fill=\"{color}\" x=\"8\" width=\"8\" height=\"8\" y=\"8\"/></pattern><rect x=\"0\" y=\"0\" width=\"16\" height=\"16\" fill=\"{secondaryColor}\"/><rect x=\"0\" y=\"0\" width=\"16\" height=\"16\" fill=\"url(#p)\"/></svg>',\"checker-rotated\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(16 * {scale})\" height=\"calc(16 * {scale})\" viewBox=\"0 0 60 60\"><rect width=\"60\" height=\"60\" fill=\"{secondaryColor}\"/><rect width=\"42.42\" height=\"42.42\" transform=\"translate(30 0) rotate(45)\" fill=\"{color}\"/></svg>',\"zig-zag\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(15 * {scale})\" height=\"calc(15 * {scale})\" viewBox=\"0 0 120 120\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"120\" fill=\"{secondaryColor}\"/><polygon fill=\"{color}\" points=\"120 120 60 120 90 90 120 60 120 0 120 0 60 60 0 0 0 60 30 90 60 120 120 120\"/></svg>',\"zig-zag-vertical\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(15 * {scale})\" height=\"calc(15 * {scale})\" viewBox=\"0 0 120 120\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"120\" fill=\"{secondaryColor}\"/><polygon fill=\"{color}\" points=\"120 0 120 60 90 30 60 0 0 0 0 0 60 60 0 120 60 120 90 90 120 60 120 0\"/></svg>',\"circles-spaced\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(20 * {scale})\" height=\"calc(20 * {scale})\" viewBox=\"0 0 20 20\"><defs><pattern id=\"p\" x=\"0\" y=\"0\" width=\"20\" height=\"20\" patternUnits=\"userSpaceOnUse\"><circle cx=\"10\" cy=\"10\" r=\"2\" stroke=\"none\" fill=\"{color}\"/></pattern></defs><rect x=\"0\" y=\"0\" width=\"20\" height=\"20\" fill=\"{secondaryColor}\"/><rect x=\"0\" y=\"0\" width=\"100\" height=\"100\" fill=\"url(#p)\"/></svg>',circles:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(7 * {scale})\" height=\"calc(7 * {scale})\" viewBox=\"0 0 20 20\"><defs><pattern id=\"p\" x=\"0\" y=\"0\" width=\"20\" height=\"20\" patternUnits=\"userSpaceOnUse\"><circle cx=\"10\" cy=\"10\" r=\"6\" stroke=\"none\" fill=\"{color}\"/></pattern></defs><rect x=\"0\" y=\"0\" width=\"20\" height=\"20\" fill=\"{secondaryColor}\"/><rect x=\"0\" y=\"0\" width=\"100\" height=\"100\" fill=\"url(#p)\"/></svg>',\"diagonal-lines-up\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(18 * {scale})\" height=\"calc(18 * {scale})\" viewBox=\"0 0 6 6\"><rect x=\"0\" y=\"0\" width=\"6\" height=\"6\" fill=\"{secondaryColor}\"/><g fill=\"{color}\"><path d=\"M5 0h1L0 6V5zM6 5v1H5z\"/></g></svg>',\"diagonal-lines-down\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(18 * {scale})\" height=\"calc(18 * {scale})\" viewBox=\"0 0 6 6\"><rect x=\"0\" y=\"0\" width=\"6\" height=\"6\" fill=\"{secondaryColor}\"/><g transform=\"rotate(90 3 3)\" fill=\"{color}\"><path d=\"M5 0h1L0 6V5zM6 5v1H5z\"/></g></svg>',\"diagonal-stripes-up\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(20 * {scale})\" height=\"calc(20 * {scale})\" viewBox=\"0 0 40 40\"><rect x=\"0\" y=\"0\" width=\"40\" height=\"40\" fill=\"{secondaryColor}\"/><g fill=\"{color}\"><path d=\"M0 40L40 0H20L0 20M40 40V20L20 40\"/></g></svg>',\"diagonal-stripes-down\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(20 * {scale})\" height=\"calc(20 * {scale})\" viewBox=\"0 0 40 40\"><rect x=\"0\" y=\"0\" width=\"40\" height=\"40\" fill=\"{secondaryColor}\"/><g transform=\"rotate(90 20 20)\" fill=\"{color}\"><path d=\"M0 40L40 0H20L0 20M40 40V20L20 40\"/></g></svg>',\"grid-lines\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(14 * {scale})\" height=\"calc(14 * {scale})\" viewBox=\"0 0 6 6\"><rect x=\"0\" y=\"0\" width=\"6\" height=\"6\" fill=\"{secondaryColor}\"/><g transform=\"rotate(45 3 3)\" fill=\"{color}\"><path d=\"M5 0h1L0 6V5zM6 5v1H5z\"/></g><g fill=\"{color}\" transform=\"rotate(-45 3 3)\"><path d=\"M5 0h1L0 6V5zM6 5v1H5z\"/></g></svg>',\"rotated-grid-lines\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(18 * {scale})\" height=\"calc(18 * {scale})\" viewBox=\"0 0 6 6\"><rect x=\"0\" y=\"0\" width=\"6\" height=\"6\" fill=\"{secondaryColor}\"/><g transform=\"rotate(90 3 3)\" fill=\"{color}\"><path d=\"M5 0h1L0 6V5zM6 5v1H5z\"/></g><g fill=\"{color}\"><path d=\"M5 0h1L0 6V5zM6 5v1H5z\"/></g></svg>',\"rotated-grid-stripes\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(20 * {scale})\" height=\"calc(20 * {scale})\" viewBox=\"0 0 40 40\"><rect x=\"0\" y=\"0\" width=\"40\" height=\"40\" fill=\"{secondaryColor}\"/><g transform=\"rotate(90 20 20)\" fill=\"{color}\"><path d=\"M0 40L40 0H20L0 20M40 40V20L20 40\"/></g><g fill=\"{color}\"><path d=\"M0 40L40 0H20L0 20M40 40V20L20 40\"/></g></svg>',\"x-fill\":'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(40 * {scale})\" height=\"calc(40 * {scale})\" viewBox=\"0 0 40 40\"><rect x=\"0\" y=\"0\" width=\"45.3\" height=\"45.3\" fill=\"{secondaryColor}\"/><g fill=\"{color}\"><path d=\"M0 38.59l2.83-2.83 1.41 1.41L1.41 40H0v-1.41zM0 1.4l2.83 2.83 1.41-1.41L1.41 0H0v1.41zM38.59 40l-2.83-2.83 1.41-1.41L40 38.59V40h-1.41zM40 1.41l-2.83 2.83-1.41-1.41L38.59 0H40v1.41zM20 18.6l2.83-2.83 1.41 1.41L21.41 20l2.83 2.83-1.41 1.41L20 21.41l-2.83 2.83-1.41-1.41L18.59 20l-2.83-2.83 1.41-1.41L20 18.59z\"/></g></svg>',dots:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"calc(13 * {scale})\" height=\"calc(13 * {scale})\" viewBox=\"0 0 20 20\"><rect x=\"0\" y=\"0\" width=\"20\" height=\"20\" fill=\"{secondaryColor}\"/><g fill=\"{color}\"><circle cx=\"3\" cy=\"3\" r=\"3\"/><circle cx=\"13\" cy=\"13\" r=\"3\"/></g></svg>'},ou=(au.getHighContrastMode=function(){return matchMedia(\"(-ms-high-contrast: white-on-black)\").matches?\"dark\":matchMedia(\"(-ms-high-contrast: black-on-white)\").matches?\"light\":matchMedia(\"(-ms-high-contrast: active)\").matches?\"dark\":matchMedia(\"(inverted-colors: inverted)\").matches?\"invert\":null},au);function au(){}($l=Ql=Ql||{})[$l.LocalStorage=0]=\"LocalStorage\",$l[$l.SessionStorage=1]=\"SessionStorage\",(eu=tu=tu||{})[eu.Default=0]=\"Default\",eu[eu.Required=1]=\"Required\",eu[eu.Array=2]=\"Array\",eu[eu.Hidden=4]=\"Hidden\",(ru=iu=iu||{})[ru.AI=0]=\"AI\",ru[ru.AI_AND_W3C=1]=\"AI_AND_W3C\",ru[ru.W3C=2]=\"W3C\";var su=2,lu=(uu.isNullOrUndefined=function(t){return null==t},uu.disableCookies=function(){uu._canUseCookies=!1},uu.newGuid=function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(hu,function(t){var e=16*Math.random()|0;return(\"x\"===t?e:3&e|8).toString(16)})},uu);function uu(){}var cu,pu,hu=/[xy]/g,du=(fu.prototype.addNotificationListener=function(t){this.listeners.push(t)},fu.prototype.removeNotificationListener=function(t){for(var e=this.listeners.indexOf(t);-1<e;)this.listeners.splice(e,1),e=this.listeners.indexOf(t)},fu.prototype.eventsSent=function(e){for(var i=this,t=function(t){r.listeners[t].eventsSent&&setTimeout(function(){return i.listeners[t].eventsSent(e)},0)},r=this,n=0;n<this.listeners.length;++n)t(n)},fu.prototype.eventsDiscarded=function(e,i){for(var r=this,t=function(t){n.listeners[t].eventsDiscarded&&setTimeout(function(){return r.listeners[t].eventsDiscarded(e,i)},0)},n=this,o=0;o<this.listeners.length;++o)t(o)},fu);function fu(){this.listeners=[]}(pu=cu=cu||{})[pu.CRITICAL=1]=\"CRITICAL\",pu[pu.WARNING=2]=\"WARNING\";var mu=0,gu=1,yu=2,vu=3,_u=4,xu=5,bu=6,wu=7,Su=8,Tu=9,Eu=10,Iu=11,Cu=12,Au=13,ku=14,Pu=15,Mu=16,Lu=17,Du=18,Ou=19,zu=20,Ru=22,Nu=23,Bu=24,Fu=25,Uu=26,ju=27,qu=28,Vu=29,Gu=30,Zu=31,Hu=32,Ku=33,Wu=35,Xu=36,Yu=37,Ju=38,Qu=39,$u=40,tc=41,ec=42,ic=43,rc=45,nc=46,oc=47,ac=48,sc=49,lc=50,uc=52,cc=54,pc=55,hc=56,dc=57,fc=58,mc=60,gc=61,yc=62,vc=63,_c=64,xc=66,bc=67,wc=68,Sc=69,Tc=70,Ec=71,Ic=(Cc.sanitizeDiagnosticText=function(t){return'\"'+t.replace(/\\\"/g,\"\")+'\"'},Cc.dataType=\"MessageData\",Cc.AiNonUserActionablePrefix=\"AI (Internal): \",Cc.AiUserActionablePrefix=\"AI: \",Cc);function Cc(t,e,i,r){void 0===i&&(i=!1),this.messageId=t,this.message=(i?Cc.AiUserActionablePrefix:Cc.AiNonUserActionablePrefix)+t;var n=(e?\" message:\"+Cc.sanitizeDiagnosticText(e):\"\")+(r?\" props:\"+Cc.sanitizeDiagnosticText(JSON.stringify(r)):\"\");this.message+=n}var Ac=(kc.prototype.throwInternal=function(t,e,i,r,n){void 0===n&&(n=!1);var o=new Ic(e,i,n,r);if(this.enableDebugExceptions())throw o;if(void 0!==o&&o&&void 0!==o.message){if(n){var a=+o.messageId;(!this._messageLogged[a]||this.consoleLoggingLevel()>=cu.WARNING)&&(this.warnToConsole(o.message),this._messageLogged[a]=!0)}else this.consoleLoggingLevel()>=cu.WARNING&&this.warnToConsole(o.message);this.logInternalMessage(t,o)}},kc.prototype.warnToConsole=function(t){\"undefined\"!=typeof console&&console&&(\"function\"==typeof console.warn?console.warn(t):\"function\"==typeof console.log&&console.log(t))},kc.prototype.resetInternalMessageCount=function(){this._messageCount=0,this._messageLogged={}},kc.prototype.logInternalMessage=function(t,e){if(!this._areInternalMessagesThrottled()){var i=!0,r=this.AIInternalMessagePrefix+e.messageId;if(this._messageLogged[r]?i=!1:this._messageLogged[r]=!0,i&&(t<=this.telemetryLoggingLevel()&&(this.queue.push(e),this._messageCount++),this._messageCount==this.maxInternalMessageLimit())){var n=\"Internal events throttle limit per PageView reached for this app.\",o=new Ic(Nu,n,!1);this.queue.push(o),this.warnToConsole(n)}}},kc.prototype._areInternalMessagesThrottled=function(){return this._messageCount>=this.maxInternalMessageLimit()},kc);function kc(t){this.AIInternalMessagePrefix=\"AITR_\",this.enableDebugExceptions=function(){return!1},this.consoleLoggingLevel=function(){return 0},this.telemetryLoggingLevel=function(){return 1},this.maxInternalMessageLimit=function(){return 25},this.queue=[],this._messageCount=0,this._messageLogged={},lu.isNullOrUndefined(t)||(lu.isNullOrUndefined(t.loggingLevelConsole)||(this.consoleLoggingLevel=function(){return t.loggingLevelConsole}),lu.isNullOrUndefined(t.loggingLevelTelemetry)||(this.telemetryLoggingLevel=function(){return t.loggingLevelTelemetry}),lu.isNullOrUndefined(t.maxMessageLimit)||(this.maxInternalMessageLimit=function(){return t.maxMessageLimit}),lu.isNullOrUndefined(t.enableDebugExceptions)||(this.enableDebugExceptions=function(){return t.enableDebugExceptions}))}var Pc=(Mc.prototype.processTelemetry=function(e){this.channelQueue.forEach(function(t){0<t.length&&t[0].processTelemetry(e)})},Object.defineProperty(Mc.prototype,\"ChannelControls\",{get:function(){return this.channelQueue},enumerable:!0,configurable:!0}),Mc.prototype.initialize=function(i,r,n){var o=this;if(i.isCookieUseDisabled&&lu.disableCookies(),this.channelQueue=new Array,i.channels){var a=void 0;i.channels.forEach(function(t){if(t&&0<t.length){t=t.sort(function(t,e){return t.priority-e.priority});for(var e=1;e<t.length;e++)t[e-1].setNextPlugin(t[e]);if(t.forEach(function(t){t.priority<500&&(a=t.identifier),t.initialize(i,r,n)}),a)throw Error(\"Channel has invalid priority\"+a);o.channelQueue.push(t)}})}for(var t=new Array,e=0;e<n.length;e++){var s=n[e];500<s.priority&&t.push(s)}if(0<t.length){for(t=t.sort(function(t,e){return t.priority-e.priority}),e=1;e<t.length;e++)t[e-1].setNextPlugin(t[e]);t.forEach(function(t){return t.initialize(i,r,n)}),this.channelQueue.push(t)}},Mc);function Mc(){this.identifier=\"ChannelControllerPlugin\",this.priority=500}var Lc=(Dc.prototype.initialize=function(t,e){var i=this;if(this._isInitialized)throw Error(\"Core should not be initialized more than once\");if(!t||lu.isNullOrUndefined(t.instrumentationKey))throw Error(\"Please provide instrumentation key\");this.config=t,this._notificationManager=new du,this.config.extensions=lu.isNullOrUndefined(this.config.extensions)?[]:this.config.extensions,this.config.extensionConfig=lu.isNullOrUndefined(this.config.extensionConfig)?{}:this.config.extensionConfig,this.config.extensionConfig.NotificationManager=this._notificationManager,this.logger=new Ac(t),(n=this._extensions).push.apply(n,e.concat(this.config.extensions)),this._extensions.forEach(function(t){var e=!0;if((lu.isNullOrUndefined(t)||lu.isNullOrUndefined(t.initialize))&&(e=!1),!e)throw Error(\"Extensions must provide callback to initialize\")}),this._extensions.push(this._channelController),this._extensions=this._extensions.sort(function(t,e){var i=typeof t.processTelemetry,r=typeof e.processTelemetry;return\"function\"==i&&\"function\"==r?t.priority-e.priority:\"function\"==i&&\"function\"!=r?1:\"function\"!=i&&\"function\"==r?-1:void 0});var r={};this._extensions.forEach(function(t){var e=t;e&&e.priority&&(lu.isNullOrUndefined(r[e.priority])?r[e.priority]=e.identifier:i.logger.warnToConsole(\"Two extensions have same priority\"+r[e.priority]+\", \"+e.identifier))});for(var n,o=-1,a=0;a<this._extensions.length-1;a++){var s=this._extensions[a];if(!s||\"function\"==typeof s.processTelemetry){if(s.priority===this._channelController.priority){o=a+1;break}this._extensions[a].setNextPlugin(this._extensions[a+1])}}if(this._channelController.initialize(this.config,this,this._extensions),this._extensions.forEach(function(t){t&&t.priority<i._channelController.priority&&t.initialize(i.config,i,i._extensions)}),o<this._extensions.length&&this._extensions.splice(o),0===this.getTransmissionControls().length)throw new Error(\"No channels available\");this._isInitialized=!0},Dc.prototype.getTransmissionControls=function(){return this._channelController.ChannelControls},Dc.prototype.track=function(t){if(null===t)throw this._notifyInvalidEvent(t),Error(\"Invalid telemetry item\");t.iKey||(t.iKey=this.config.instrumentationKey),t.time||(t.time=(new Date).toISOString()),lu.isNullOrUndefined(t.ver)&&(t.ver=\"4.0\"),this._validateTelmetryItem(t),0==this._extensions.length&&this._channelController.processTelemetry(t);for(var e=0;e<this._extensions.length;){if(this._extensions[e].processTelemetry){this._extensions[e].processTelemetry(t);break}e++}},Dc.prototype.addNotificationListener=function(t){this._notificationManager.addNotificationListener(t)},Dc.prototype.removeNotificationListener=function(t){this._notificationManager.removeNotificationListener(t)},Dc.prototype.pollInternalLogs=function(i){var r=this,t=this.config.diagnosticLogInterval;return 0<t||(t=1e4),setInterval(function(){var t=r.logger.queue;t.forEach(function(t){var e={name:i||\"InternalMessageId: \"+t.messageId,iKey:r.config.instrumentationKey,time:(new Date).toISOString(),baseType:Ic.dataType,baseData:{message:t.message}};r.track(e)}),t.length=0},t)},Dc.prototype._validateTelmetryItem=function(t){if(lu.isNullOrUndefined(t.name))throw this._notifyInvalidEvent(t),Error(\"telemetry name required\");if(lu.isNullOrUndefined(t.time))throw this._notifyInvalidEvent(t),Error(\"telemetry timestamp required\");if(lu.isNullOrUndefined(t.iKey))throw this._notifyInvalidEvent(t),Error(\"telemetry instrumentationKey required\")},Dc.prototype._notifyInvalidEvent=function(t){this._notificationManager.eventsDiscarded([t],su)},Dc);function Dc(){this._isInitialized=!1,this._extensions=new Array,this._channelController=new Pc}var Oc=(zc.requestContextHeader=\"Request-Context\",zc.requestContextTargetKey=\"appId\",zc.requestContextAppIdFormat=\"appId=cid-v1:\",zc.requestIdHeader=\"Request-Id\",zc.traceParentHeader=\"traceparent\",zc.sdkContextHeader=\"Sdk-Context\",zc.sdkContextHeaderAppIdRequest=\"appId\",zc.requestContextHeaderLowerCase=\"request-context\",zc);function zc(){}var Rc=(Nc.sanitizeKeyAndAddUniqueness=function(t,e,i){var r=e.length,n=Nc.sanitizeKey(t,e);if(n.length!==r){for(var o=0,a=n;void 0!==i[a];)o++,a=n.substring(0,Nc.MAX_NAME_LENGTH-3)+Nc.padNumber(o);n=a}return n},Nc.sanitizeKey=function(t,e){var i;return e&&(e=Nc.trim(e.toString())).length>Nc.MAX_NAME_LENGTH&&(i=e.substring(0,Nc.MAX_NAME_LENGTH),t.throwInternal(cu.WARNING,dc,\"name is too long. It has been truncated to \"+Nc.MAX_NAME_LENGTH+\" characters.\",{name:e},!0)),i||e},Nc.sanitizeString=function(t,e,i){var r;return void 0===i&&(i=Nc.MAX_STRING_LENGTH),e&&(i=i||Nc.MAX_STRING_LENGTH,(e=Nc.trim(e)).toString().length>i&&(r=e.toString().substring(0,i),t.throwInternal(cu.WARNING,gc,\"string value is too long. It has been truncated to \"+i+\" characters.\",{value:e},!0))),r||e},Nc.sanitizeUrl=function(t,e){return Nc.sanitizeInput(t,e,Nc.MAX_URL_LENGTH,xc)},Nc.sanitizeMessage=function(t,e){var i;return e&&e.length>Nc.MAX_MESSAGE_LENGTH&&(i=e.substring(0,Nc.MAX_MESSAGE_LENGTH),t.throwInternal(cu.WARNING,hc,\"message is too long, it has been truncated to \"+Nc.MAX_MESSAGE_LENGTH+\" characters.\",{message:e},!0)),i||e},Nc.sanitizeException=function(t,e){var i;return e&&e.length>Nc.MAX_EXCEPTION_LENGTH&&(i=e.substring(0,Nc.MAX_EXCEPTION_LENGTH),t.throwInternal(cu.WARNING,uc,\"exception is too long, it has been truncated to \"+Nc.MAX_EXCEPTION_LENGTH+\" characters.\",{exception:e},!0)),i||e},Nc.sanitizeProperties=function(e,t){if(t){var i={};for(var r in t){var n=t[r];if(\"object\"==typeof n&&\"undefined\"!=typeof JSON)try{n=JSON.stringify(n)}catch(t){e.throwInternal(cu.WARNING,sc,\"custom property is not valid\",{exception:t},!0)}n=Nc.sanitizeString(e,n,Nc.MAX_PROPERTY_LENGTH),i[r=Nc.sanitizeKeyAndAddUniqueness(e,r,i)]=n}t=i}return t},Nc.sanitizeMeasurements=function(t,e){if(e){var i={};for(var r in e){var n=e[r];i[r=Nc.sanitizeKeyAndAddUniqueness(t,r,i)]=n}e=i}return e},Nc.sanitizeId=function(t,e){return e?Nc.sanitizeInput(t,e,Nc.MAX_ID_LENGTH,Sc).toString():e},Nc.sanitizeInput=function(t,e,i,r){var n;return e&&(e=Nc.trim(e)).length>i&&(n=e.substring(0,i),t.throwInternal(cu.WARNING,r,\"input is too long, it has been truncated to \"+i+\" characters.\",{data:e},!0)),n||e},Nc.padNumber=function(t){var e=\"00\"+t;return e.substr(e.length-3)},Nc.trim=function(t){return\"string\"!=typeof t?t:t.replace(/^\\s+|\\s+$/g,\"\")},Nc.MAX_NAME_LENGTH=150,Nc.MAX_ID_LENGTH=128,Nc.MAX_PROPERTY_LENGTH=8192,Nc.MAX_STRING_LENGTH=1024,Nc.MAX_URL_LENGTH=2048,Nc.MAX_MESSAGE_LENGTH=32768,Nc.MAX_EXCEPTION_LENGTH=32768,Nc);function Nc(){}var Bc=(Fc.createDomEvent=function(t){var e=null;return\"function\"==typeof Event?e=new Event(t):(e=document.createEvent(\"Event\")).initEvent(t,!0,!0),e},Fc.disableStorage=function(){Fc._canUseLocalStorage=!1,Fc._canUseSessionStorage=!1},Fc._getLocalStorageObject=function(){return Fc.canUseLocalStorage()?Fc._getVerifiedStorageObject(Ql.LocalStorage):null},Fc._getVerifiedStorageObject=function(t){var e,i,r=null;try{if(\"undefined\"==typeof window)return null;i=new Date,(r=t===Ql.LocalStorage?window.localStorage:window.sessionStorage).setItem(i,i),e=r.getItem(i)!=i,r.removeItem(i),e&&(r=null)}catch(t){r=null}return r},Fc.isInternalApplicationInsightsEndpoint=function(t){return-1!==Fc._internalEndpoints.indexOf(t.toLowerCase())},Fc.canUseLocalStorage=function(){return void 0===Fc._canUseLocalStorage&&(Fc._canUseLocalStorage=!!Fc._getVerifiedStorageObject(Ql.LocalStorage)),Fc._canUseLocalStorage},Fc.getStorage=function(e,t){var i=Fc._getLocalStorageObject();if(null!==i)try{return i.getItem(t)}catch(t){Fc._canUseLocalStorage=!1,e.throwInternal(cu.WARNING,gu,\"Browser failed read of local storage. \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}return null},Fc.setStorage=function(e,t,i){var r=Fc._getLocalStorageObject();if(null!==r)try{return r.setItem(t,i),!0}catch(t){Fc._canUseLocalStorage=!1,e.throwInternal(cu.WARNING,vu,\"Browser failed write to local storage. \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}return!1},Fc.removeStorage=function(e,t){var i=Fc._getLocalStorageObject();if(null!==i)try{return i.removeItem(t),!0}catch(t){Fc._canUseLocalStorage=!1,e.throwInternal(cu.WARNING,xu,\"Browser failed removal of local storage item. \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}return!1},Fc._getSessionStorageObject=function(){return Fc.canUseSessionStorage()?Fc._getVerifiedStorageObject(Ql.SessionStorage):null},Fc.canUseSessionStorage=function(){return void 0===Fc._canUseSessionStorage&&(Fc._canUseSessionStorage=!!Fc._getVerifiedStorageObject(Ql.SessionStorage)),Fc._canUseSessionStorage},Fc.getSessionStorageKeys=function(){var t=[];if(Fc.canUseSessionStorage())for(var e in window.sessionStorage)t.push(e);return t},Fc.getSessionStorage=function(e,t){var i=Fc._getSessionStorageObject();if(null!==i)try{return i.getItem(t)}catch(t){Fc._canUseSessionStorage=!1,e.throwInternal(cu.WARNING,yu,\"Browser failed read of session storage. \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}return null},Fc.setSessionStorage=function(e,t,i){var r=Fc._getSessionStorageObject();if(null!==r)try{return r.setItem(t,i),!0}catch(t){Fc._canUseSessionStorage=!1,e.throwInternal(cu.WARNING,_u,\"Browser failed write to session storage. \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}return!1},Fc.removeSessionStorage=function(e,t){var i=Fc._getSessionStorageObject();if(null!==i)try{return i.removeItem(t),!0}catch(t){Fc._canUseSessionStorage=!1,e.throwInternal(cu.WARNING,bu,\"Browser failed removal of session storage item. \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}return!1},Fc.disableCookies=function(){lu.disableCookies()},Fc.canUseCookies=function(e){if(void 0===lu._canUseCookies){lu._canUseCookies=!1;try{lu._canUseCookies=void 0!==Fc.document.cookie}catch(t){e.throwInternal(cu.WARNING,wc,\"Cannot access document.cookie - \"+Fc.getExceptionName(t),{exception:Fc.dump(t)})}}return lu._canUseCookies},Fc.setCookie=function(t,e,i,r){var n=\"\",o=\"\";r&&(n=\";domain=\"+r),Fc.document.location&&\"https:\"===Fc.document.location.protocol&&(o=\";secure\"),Fc.canUseCookies(t)&&(Fc.document.cookie=e+\"=\"+i+n+\";path=/\"+o)},Fc.stringToBoolOrDefault=function(t,e){return void 0===e&&(e=!1),null==t?e:\"true\"===t.toString().toLowerCase()},Fc.getCookie=function(t,e){if(Fc.canUseCookies(t)){var i=\"\";if(e&&e.length)for(var r=e+\"=\",n=Fc.document.cookie.split(\";\"),o=0;o<n.length;o++){var a=n[o];if((a=Fc.trim(a))&&0===a.indexOf(r)){i=a.substring(r.length,n[o].length);break}}return i}},Fc.deleteCookie=function(t,e){Fc.canUseCookies(t)&&(Fc.document.cookie=e+\"=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;\")},Fc.trim=function(t){return\"string\"!=typeof t?t:t.replace(/^\\s+|\\s+$/g,\"\")},Fc.newId=function(){for(var t=\"\",e=1073741824*Math.random();0<e;)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".charAt(e%64),e=Math.floor(e/64);return t},Fc.random32=function(){return 4294967296*Math.random()|0},Fc.generateW3CId=function(){for(var t,e=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\"],i=\"\",r=0;r<4;r++)i+=e[15&(t=Fc.random32())]+e[t>>4&15]+e[t>>8&15]+e[t>>12&15]+e[t>>16&15]+e[t>>20&15]+e[t>>24&15]+e[t>>28&15];var n=e[8+4*Math.random()|0];return i.substr(0,8)+i.substr(9,4)+\"4\"+i.substr(13,3)+n+i.substr(16,3)+i.substr(19,12)},Fc.isArray=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},Fc.isError=function(t){return\"[object Error]\"===Object.prototype.toString.call(t)},Fc.isDate=function(t){return\"[object Date]\"===Object.prototype.toString.call(t)},Fc.toISOStringForIE8=function(t){if(Fc.isDate(t)){if(Date.prototype.toISOString)return t.toISOString();var e=function(t){var e=String(t);return 1===e.length&&(e=\"0\"+e),e};return t.getUTCFullYear()+\"-\"+e(t.getUTCMonth()+1)+\"-\"+e(t.getUTCDate())+\"T\"+e(t.getUTCHours())+\":\"+e(t.getUTCMinutes())+\":\"+e(t.getUTCSeconds())+\".\"+String((t.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+\"Z\"}},Fc.getIEVersion=function(t){void 0===t&&(t=null);var e=t?t.toLowerCase():navigator.userAgent.toLowerCase();return-1!=e.indexOf(\"msie\")?parseInt(e.split(\"msie\")[1]):null},Fc.msToTimeSpan=function(t){(isNaN(t)||t<0)&&(t=0);var e=\"\"+(t=Math.round(t))%1e3,i=\"\"+Math.floor(t/1e3)%60,r=\"\"+Math.floor(t/6e4)%60,n=\"\"+Math.floor(t/36e5)%24,o=Math.floor(t/864e5);return e=1===e.length?\"00\"+e:2===e.length?\"0\"+e:e,i=i.length<2?\"0\"+i:i,r=r.length<2?\"0\"+r:r,(0<o?o+\".\":\"\")+(n=n.length<2?\"0\"+n:n)+\":\"+r+\":\"+i+\".\"+e},Fc.isCrossOriginError=function(t,e,i,r,n){return(\"Script error.\"===t||\"Script error\"===t)&&!n},Fc.dump=function(t){var e=Object.prototype.toString.call(t),i=JSON.stringify(t);return\"[object Error]\"===e&&(i=\"{ stack: '\"+t.stack+\"', message: '\"+t.message+\"', name: '\"+t.name+\"'\"),e+i},Fc.getExceptionName=function(t){return\"[object Error]\"===Object.prototype.toString.call(t)?t.name:\"\"},Fc.addEventHandler=function(t,e){if(\"undefined\"==typeof window||!window||\"string\"!=typeof t||\"function\"!=typeof e)return!1;var i=\"on\"+t;if(window.addEventListener)window.addEventListener(t,e,!1);else{if(!window.attachEvent)return!1;window.attachEvent(i,e)}return!0},Fc.IsBeaconApiSupported=function(){return\"sendBeacon\"in navigator&&navigator.sendBeacon},Fc.getExtension=function(t,e){for(var i=null,r=0;!i&&r<t.length;)t[r]&&t[r].identifier===e&&(i=t[r]),r++;return i},Fc.document=\"undefined\"!=typeof document?document:{},Fc._canUseLocalStorage=void 0,Fc._canUseSessionStorage=void 0,Fc._internalEndpoints=[\"https://dc.services.visualstudio.com/v2/track\",\"https://breeze.aimon.applicationinsights.io/v2/track\",\"https://dc-int.services.visualstudio.com/v2/track\"],Fc.NotSpecified=\"not_specified\",Fc);function Fc(){}var Uc=(jc.parseUrl=function(t){return jc.htmlAnchorElement||(jc.htmlAnchorElement=jc.document.createElement?jc.document.createElement(\"a\"):{host:jc.parseHost(t)}),jc.htmlAnchorElement.href=t,jc.htmlAnchorElement},jc.getAbsoluteUrl=function(t){var e,i=jc.parseUrl(t);return i&&(e=i.href),e},jc.getPathName=function(t){var e,i=jc.parseUrl(t);return i&&(e=i.pathname),e},jc.getCompleteUrl=function(t,e){return t?t.toUpperCase()+\" \"+e:e},jc.parseHost=function(t){var e=t.match(/:\\/\\/(www[0-9]?\\.)?(.[^/:]+)/i);return null!=e&&2<e.length&&\"string\"==typeof e[2]&&0<e[2].length?e[2]:null},jc.document=\"undefined\"!=typeof document?document:{},jc);function jc(){}var qc=(Vc.canIncludeCorrelationHeader=function(t,e,i){if(t&&t.disableCorrelationHeaders)return!1;if(!e)return!1;var r=Uc.parseUrl(e).host.toLowerCase();if(!(t&&t.enableCorsCorrelation||r===i))return!1;var n,o=t&&t.correlationHeaderDomains;if(o&&(o.forEach(function(t){var e=new RegExp(t.toLowerCase().replace(/\\./g,\".\").replace(/\\*/g,\".*\"));n=n||e.test(r)}),!n))return!1;var a=t&&t.correlationHeaderExcludedDomains;if(!a||0==a.length)return!0;for(var s=0;s<a.length;s++)if(new RegExp(a[s].toLowerCase().replace(/\\./g,\".\").replace(/\\*/g,\".*\")).test(r))return!1;return!0},Vc.getCorrelationContext=function(t){if(t){var e=Vc.getCorrelationContextValue(t,Oc.requestContextTargetKey);if(e&&e!==Vc.correlationIdPrefix)return e}},Vc.getCorrelationContextValue=function(t,e){if(t)for(var i=t.split(\",\"),r=0;r<i.length;++r){var n=i[r].split(\"=\");if(2==n.length&&n[0]==e)return n[1]}},Vc.correlationIdPrefix=\"cid-v1:\",Vc);function Vc(){}var Gc=(Zc.ParseDependencyPath=function(t,e,i,r){var n,o=r,a=r;if(e&&0<e.length){var s=Uc.parseUrl(e);if(n=s.host,!o)if(null!=s.pathname){var l=0===s.pathname.length?\"/\":s.pathname;\"/\"!==l.charAt(0)&&(l=\"/\"+l),a=s.pathname,o=Rc.sanitizeString(t,i?i+\" \"+l:l)}else o=Rc.sanitizeString(t,e)}else o=n=r;return{target:n,name:o,data:a}},Zc);function Zc(){}var Hc=(Kc.Now=\"undefined\"!=typeof window&&window.performance&&window.performance.now&&window.performance.timing?function(){return window.performance.now()+window.performance.timing.navigationStart}:function(){return(new Date).getTime()},Kc.GetDuration=function(t,e){var i=null;return 0===t||0===e||lu.isNullOrUndefined(t)||lu.isNullOrUndefined(e)||(i=e-t),i},Kc);function Kc(){}var Wc,Xc=\"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\",Yc=\"ProcessLegacy\",Jc=\"http.method\",Qc=(b($c,Wc=function(){}),$c);function $c(){return Wc.call(this)||this}var tp,ep=(b(ip,tp=function(){this.ver=1,this.sampleRate=100,this.tags={}}),ip);function ip(t,e,i){var r=tp.call(this)||this;return r.name=Rc.sanitizeString(t,i)||Bc.NotSpecified,r.data=e,r.time=Bc.toISOStringForIE8(new Date),r.aiDataContract={time:tu.Required,iKey:tu.Required,name:tu.Required,sampleRate:function(){return 100==r.sampleRate?tu.Hidden:tu.Required},tags:tu.Required,data:tu.Required},r}function rp(){}var np,op=(b(ap,np=rp),ap);function ap(){var t=np.call(this)||this;return t.ver=2,t.properties={},t.measurements={},t}var sp,lp=(b(up,sp=op),up.envelopeType=\"Microsoft.ApplicationInsights.{0}.Event\",up.dataType=\"EventData\",up);function up(t,e,i,r){var n=sp.call(this)||this;return n.aiDataContract={ver:tu.Required,name:tu.Required,properties:tu.Default,measurements:tu.Default},n.name=Rc.sanitizeString(t,e)||Bc.NotSpecified,n.properties=Rc.sanitizeProperties(t,i),n.measurements=Rc.sanitizeMeasurements(t,r),n}function cp(){}var pp,hp=(b(dp,pp=rp),dp);function dp(){var t=pp.call(this)||this;return t.ver=2,t.exceptions=[],t.properties={},t.measurements={},t}function fp(){this.hasFullStack=!0,this.parsedStack=[]}var mp,gp=(b(yp,mp=hp),yp.CreateFromInterface=function(e,t){var i=t.exceptions&&t.exceptions.map(function(t){return _p.CreateFromInterface(e,t)});return new yp(e,w({},t,{exceptions:i}))},yp.prototype.toInterface=function(){var t=this.exceptions,e=this.properties,i=this.measurements,r=this.severityLevel,n=this.ver,o=this.problemGroup,a=this.id,s=this.isManual;return{ver:n,exceptions:t instanceof Array&&t.map(function(t){return t.toInterface()})||void 0,severityLevel:r,properties:e,measurements:i,problemGroup:o,id:a,isManual:s}},yp.CreateSimpleException=function(t,e,i,r,n,o){return{exceptions:[{hasFullStack:!0,message:t,stack:n,typeName:e}]}},yp.envelopeType=\"Microsoft.ApplicationInsights.{0}.Exception\",yp.dataType=\"ExceptionData\",yp);function yp(t,e,i,r,n,o){var a=mp.call(this)||this;return a.aiDataContract={ver:tu.Required,exceptions:tu.Required,severityLevel:tu.Default,properties:tu.Default,measurements:tu.Default},e instanceof Error?(a.exceptions=[new _p(t,e)],a.properties=Rc.sanitizeProperties(t,i),a.measurements=Rc.sanitizeMeasurements(t,r),n&&(a.severityLevel=n),o&&(a.id=o)):(a.exceptions=e.exceptions,a.properties=e.properties,a.measurements=e.measurements,e.severityLevel&&(a.severityLevel=e.severityLevel),e.id&&(a.id=e.id),e.problemGroup&&(a.problemGroup=e.problemGroup),lu.isNullOrUndefined(e.ver)||(a.ver=e.ver),lu.isNullOrUndefined(e.isManual)||(a.isManual=e.isManual)),a}var vp,_p=(b(xp,vp=fp),xp.prototype.toInterface=function(){var t=this.parsedStack instanceof Array&&this.parsedStack.map(function(t){return t.toInterface()});return{id:this.id,outerId:this.outerId,typeName:this.typeName,message:this.message,hasFullStack:this.hasFullStack,stack:this.stack,parsedStack:t||void 0}},xp.CreateFromInterface=function(t,e){var i=e.parsedStack instanceof Array&&e.parsedStack.map(function(t){return wp.CreateFromInterface(t)})||e.parsedStack;return new xp(t,w({},e,{parsedStack:i}))},xp.parseStack=function(t){var e=void 0;if(\"string\"==typeof t){var i=t.split(\"\\n\");e=[];for(var r=0,n=0,o=0;o<=i.length;o++){var a=i[o];if(wp.regex.test(a)){var s=new wp(i[o],r++);n+=s.sizeInBytes,e.push(s)}}if(32768<n)for(var l=0,u=e.length-1,c=0,p=l,h=u;l<u;){if(32768<(c+=e[l].sizeInBytes+e[u].sizeInBytes)){var d=h-p+1;e.splice(p,d);break}p=l,h=u,l++,u--}}return e},xp);function xp(t,e){var i=vp.call(this)||this;if(i.aiDataContract={id:tu.Default,outerId:tu.Default,typeName:tu.Required,message:tu.Required,hasFullStack:tu.Default,stack:tu.Default,parsedStack:tu.Array},e instanceof Error){i.typeName=Rc.sanitizeString(t,e.name)||Bc.NotSpecified,i.message=Rc.sanitizeMessage(t,e.message)||Bc.NotSpecified;var r=e.stack;i.parsedStack=xp.parseStack(r),i.stack=Rc.sanitizeException(t,r),i.hasFullStack=Bc.isArray(i.parsedStack)&&0<i.parsedStack.length}else i.typeName=e.typeName,i.message=e.message,i.stack=e.stack,i.parsedStack=e.parsedStack,i.hasFullStack=e.hasFullStack;return i}var bp,wp=(b(Sp,bp=cp),Sp.CreateFromInterface=function(t){return new Sp(t,null)},Sp.prototype.toInterface=function(){return{level:this.level,method:this.method,assembly:this.assembly,fileName:this.fileName,line:this.line}},Sp.regex=/^([\\s]+at)?(.*?)(\\@|\\s\\(|\\s)([^\\(\\@\\n]+):([0-9]+):([0-9]+)(\\)?)$/,Sp.baseSize=58,Sp);function Sp(t,e){var i=bp.call(this)||this;if(i.sizeInBytes=0,i.aiDataContract={level:tu.Required,method:tu.Required,assembly:tu.Default,fileName:tu.Default,line:tu.Default},\"string\"==typeof t){var r=t;i.level=e,i.method=\"<no_method>\",i.assembly=Bc.trim(r),i.fileName=\"\",i.line=0;var n=r.match(Sp.regex);n&&5<=n.length&&(i.method=Bc.trim(n[2])||i.method,i.fileName=Bc.trim(n[4]),i.line=parseInt(n[5])||0)}else i.level=t.level,i.method=t.method,i.assembly=t.assembly,i.fileName=t.fileName,i.line=t.line,i.sizeInBytes=0;return i.sizeInBytes+=i.method.length,i.sizeInBytes+=i.fileName.length,i.sizeInBytes+=i.assembly.length,i.sizeInBytes+=Sp.baseSize,i.sizeInBytes+=i.level.toString().length,i.sizeInBytes+=i.line.toString().length,i}var Tp,Ep,Ip,Cp=(b(Ap,Tp=rp),Ap);function Ap(){var t=Tp.call(this)||this;return t.ver=2,t.metrics=[],t.properties={},t}(Ip=Ep=Ep||{})[Ip.Measurement=0]=\"Measurement\",Ip[Ip.Aggregation=1]=\"Aggregation\";var kp,Pp=(b(Mp,kp=function(){this.kind=Ep.Measurement}),Mp);function Mp(){var t=null!==kp&&kp.apply(this,arguments)||this;return t.aiDataContract={name:tu.Required,kind:tu.Default,value:tu.Required,count:tu.Default,min:tu.Default,max:tu.Default,stdDev:tu.Default},t}var Lp,Dp=(b(Op,Lp=Cp),Op.envelopeType=\"Microsoft.ApplicationInsights.{0}.Metric\",Op.dataType=\"MetricData\",Op);function Op(t,e,i,r,n,o,a){var s=Lp.call(this)||this;s.aiDataContract={ver:tu.Required,metrics:tu.Required,properties:tu.Default};var l=new Pp;return l.count=0<r?r:void 0,l.max=isNaN(o)||null===o?void 0:o,l.min=isNaN(n)||null===n?void 0:n,l.name=Rc.sanitizeString(t,e)||Bc.NotSpecified,l.value=i,s.metrics=[l],s.properties=Rc.sanitizeProperties(t,a),s}var zp,Rp=(b(Np,zp=op),Np);function Np(){var t=zp.call(this)||this;return t.ver=2,t.properties={},t.measurements={},t}var Bp,Fp=(b(Up,Bp=Rp),Up.envelopeType=\"Microsoft.ApplicationInsights.{0}.Pageview\",Up.dataType=\"PageviewData\",Up);function Up(t,e,i,r,n,o,a){var s=Bp.call(this)||this;return s.aiDataContract={ver:tu.Required,name:tu.Default,url:tu.Default,duration:tu.Default,properties:tu.Default,measurements:tu.Default,id:tu.Default},s.id=Rc.sanitizeId(t,a),s.url=Rc.sanitizeUrl(t,i),s.name=Rc.sanitizeString(t,e)||Bc.NotSpecified,isNaN(r)||(s.duration=Bc.msToTimeSpan(r)),s.properties=Rc.sanitizeProperties(t,n),s.measurements=Rc.sanitizeMeasurements(t,o),s}var jp,qp=(b(Vp,jp=rp),Vp);function Vp(){var t=jp.call(this)||this;return t.ver=2,t.success=!0,t.properties={},t.measurements={},t}var Gp,Zp=(b(Hp,Gp=qp),Hp.envelopeType=\"Microsoft.ApplicationInsights.{0}.RemoteDependency\",Hp.dataType=\"RemoteDependencyData\",Hp);function Hp(t,e,i,r,n,o,a,s,l,u,c,p){void 0===l&&(l=\"Ajax\");var h=Gp.call(this)||this;h.aiDataContract={id:tu.Required,ver:tu.Required,name:tu.Default,resultCode:tu.Default,duration:tu.Default,success:tu.Default,data:tu.Default,target:tu.Default,type:tu.Default,properties:tu.Default,measurements:tu.Default,kind:tu.Default,value:tu.Default,count:tu.Default,min:tu.Default,max:tu.Default,stdDev:tu.Default,dependencyKind:tu.Default,dependencySource:tu.Default,commandName:tu.Default,dependencyTypeName:tu.Default},h.id=e,h.duration=Bc.msToTimeSpan(n),h.success=o,h.resultCode=a+\"\",h.type=Rc.sanitizeString(t,l);var d=Gc.ParseDependencyPath(t,i,s,r);return h.data=Rc.sanitizeUrl(t,r)||d.data,h.target=Rc.sanitizeString(t,d.target),u&&(h.target=h.target+\" | \"+u),h.name=Rc.sanitizeString(t,d.name),h.properties=Rc.sanitizeProperties(t,c),h.measurements=Rc.sanitizeMeasurements(t,p),h}var Kp,Wp=(b(Xp,Kp=rp),Xp);function Xp(){var t=Kp.call(this)||this;return t.ver=2,t.properties={},t}var Yp,Jp=(b(Qp,Yp=Wp),Qp.envelopeType=\"Microsoft.ApplicationInsights.{0}.Message\",Qp.dataType=\"MessageData\",Qp);function Qp(t,e,i,r){var n=Yp.call(this)||this;return n.aiDataContract={ver:tu.Required,message:tu.Required,severityLevel:tu.Default,properties:tu.Default},e=e||Bc.NotSpecified,n.message=Rc.sanitizeMessage(t,e),n.properties=Rc.sanitizeProperties(t,r),i&&(n.severityLevel=i),n}var $p,th=(b(eh,$p=Rp),eh);function eh(){var t=$p.call(this)||this;return t.ver=2,t.properties={},t.measurements={},t}var ih,rh=(b(nh,ih=th),nh.envelopeType=\"Microsoft.ApplicationInsights.{0}.PageviewPerformance\",nh.dataType=\"PageviewPerformanceData\",nh);function nh(t,e,i,r,n,o,a){var s=ih.call(this)||this;return s.aiDataContract={ver:tu.Required,name:tu.Default,url:tu.Default,duration:tu.Default,perfTotal:tu.Default,networkConnect:tu.Default,sentRequest:tu.Default,receivedResponse:tu.Default,domProcessing:tu.Default,properties:tu.Default,measurements:tu.Default},s.url=Rc.sanitizeUrl(t,i),s.name=Rc.sanitizeString(t,e)||Bc.NotSpecified,s.properties=Rc.sanitizeProperties(t,n),s.measurements=Rc.sanitizeMeasurements(t,o),a&&(s.domProcessing=a.domProcessing,s.duration=a.duration,s.networkConnect=a.networkConnect,s.perfTotal=a.perfTotal,s.receivedResponse=a.receivedResponse,s.sentRequest=a.sentRequest),s}var oh,ah,sh,lh=(b(uh,oh=Qc),uh);function uh(t,e){var i=oh.call(this)||this;return i.aiDataContract={baseType:tu.Required,baseData:tu.Required},i.baseType=t,i.baseData=e,i}(sh=ah=ah||{})[sh.Verbose=0]=\"Verbose\",sh[sh.Information=1]=\"Information\",sh[sh.Warning=2]=\"Warning\",sh[sh.Error=3]=\"Error\",sh[sh.Critical=4]=\"Critical\";var ch=(ph.getConfig=function(t,e,i,r){var n;return void 0===r&&(r=!1),n=i&&t.extensionConfig&&t.extensionConfig[i]&&!lu.isNullOrUndefined(t.extensionConfig[i][e])?t.extensionConfig[i][e]:t[e],lu.isNullOrUndefined(n)?r:n},ph);function ph(){}var hh=function(){this.applicationVersion=\"ai.application.ver\",this.applicationBuild=\"ai.application.build\",this.applicationTypeId=\"ai.application.typeId\",this.applicationId=\"ai.application.applicationId\",this.applicationLayer=\"ai.application.layer\",this.deviceId=\"ai.device.id\",this.deviceIp=\"ai.device.ip\",this.deviceLanguage=\"ai.device.language\",this.deviceLocale=\"ai.device.locale\",this.deviceModel=\"ai.device.model\",this.deviceFriendlyName=\"ai.device.friendlyName\",this.deviceNetwork=\"ai.device.network\",this.deviceNetworkName=\"ai.device.networkName\",this.deviceOEMName=\"ai.device.oemName\",this.deviceOS=\"ai.device.os\",this.deviceOSVersion=\"ai.device.osVersion\",this.deviceRoleInstance=\"ai.device.roleInstance\",this.deviceRoleName=\"ai.device.roleName\",this.deviceScreenResolution=\"ai.device.screenResolution\",this.deviceType=\"ai.device.type\",this.deviceMachineName=\"ai.device.machineName\",this.deviceVMName=\"ai.device.vmName\",this.deviceBrowser=\"ai.device.browser\",this.deviceBrowserVersion=\"ai.device.browserVersion\",this.locationIp=\"ai.location.ip\",this.locationCountry=\"ai.location.country\",this.locationProvince=\"ai.location.province\",this.locationCity=\"ai.location.city\",this.operationId=\"ai.operation.id\",this.operationName=\"ai.operation.name\",this.operationParentId=\"ai.operation.parentId\",this.operationRootId=\"ai.operation.rootId\",this.operationSyntheticSource=\"ai.operation.syntheticSource\",this.operationCorrelationVector=\"ai.operation.correlationVector\",this.sessionId=\"ai.session.id\",this.sessionIsFirst=\"ai.session.isFirst\",this.sessionIsNew=\"ai.session.isNew\",this.userAccountAcquisitionDate=\"ai.user.accountAcquisitionDate\",this.userAccountId=\"ai.user.accountId\",this.userAgent=\"ai.user.userAgent\",this.userId=\"ai.user.id\",this.userStoreRegion=\"ai.user.storeRegion\",this.userAuthUserId=\"ai.user.authUserId\",this.userAnonymousUserAcquisitionDate=\"ai.user.anonUserAcquisitionDate\",this.userAuthenticatedUserAcquisitionDate=\"ai.user.authUserAcquisitionDate\",this.cloudName=\"ai.cloud.name\",this.cloudRole=\"ai.cloud.role\",this.cloudRoleVer=\"ai.cloud.roleVer\",this.cloudRoleInstance=\"ai.cloud.roleInstance\",this.cloudEnvironment=\"ai.cloud.environment\",this.cloudLocation=\"ai.cloud.location\",this.cloudDeploymentUnit=\"ai.cloud.deploymentUnit\",this.internalNodeName=\"ai.internal.nodeName\",this.internalSdkVersion=\"ai.internal.sdkVersion\",this.internalAgentVersion=\"ai.internal.agentVersion\"},dh=(fh.create=function(t,e,i,r,n,o){if(i=Rc.sanitizeString(r,i)||Bc.NotSpecified,lu.isNullOrUndefined(t)||lu.isNullOrUndefined(e)||lu.isNullOrUndefined(i))throw Error(\"Input doesn't contain all required fields\");var a={name:i,time:(new Date).toISOString(),iKey:\"\",ext:o||{},tags:[],data:{},baseType:e,baseData:t};if(!lu.isNullOrUndefined(n))for(var s in n)n.hasOwnProperty(s)&&(a.data[s]=n[s]);return a},fh);function fh(){}var mh=(gh.UserExt=\"user\",gh.DeviceExt=\"device\",gh.TraceExt=\"trace\",gh.WebExt=\"web\",gh.AppExt=\"app\",gh.OSExt=\"os\",gh.SessionExt=\"ses\",gh.SDKExt=\"sdk\",gh);function gh(){}var yh=new hh,vh=\"AppInsightsPropertiesPlugin\",_h=\"AppInsightsChannelPlugin\",xh=(bh.prototype.trackPageView=function(e,i){var r=this,n=e.name;!lu.isNullOrUndefined(n)&&\"string\"==typeof n||(e.name=window.document&&window.document.title||\"\");var o=e.uri;if(!lu.isNullOrUndefined(o)&&\"string\"==typeof o||(e.uri=window.location&&window.location.href||\"\"),!this._pageViewPerformanceManager.isPerformanceTimingSupported())return this.appInsights.sendPageViewInternal(e,i),this._channel().forEach(function(t){t.forEach(function(t){return t.flush(!0)})}),void this._logger.throwInternal(cu.WARNING,Fu,\"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");var a=!1,s=void 0,l=this._pageViewPerformanceManager.getPerformanceTiming().navigationStart;s=Hc.GetDuration(l,+new Date),this._pageViewPerformanceManager.shouldCollectDuration(s)||(s=void 0);var t=void 0;lu.isNullOrUndefined(i)||lu.isNullOrUndefined(i.duration)||(t=i.duration),!this.overridePageViewDuration&&isNaN(t)||(isNaN(t)&&((i=i||{}).duration=s),this.appInsights.sendPageViewInternal(e,i),this._channel().forEach(function(t){t.forEach(function(t){return t.flush(!0)})}),a=!0),i=i||{};var u=setInterval(function(){try{if(r._pageViewPerformanceManager.isPerformanceTimingDataReady()){clearInterval(u);var t={name:n,uri:o};r._pageViewPerformanceManager.populatePageViewPerformanceEvent(t),t.isValid||a?(a||(i.duration=t.durationMs,r.appInsights.sendPageViewInternal(e,i)),r.pageViewPerformanceSent||(r.appInsights.sendPageViewPerformanceInternal(t,i),r.pageViewPerformanceSent=!0),r._channel().forEach(function(t){t.forEach(function(t){return t.flush(!0)})})):(i.duration=s,r.appInsights.sendPageViewInternal(e,i),r._channel().forEach(function(t){t.forEach(function(t){return t.flush(!0)})}))}else 6e4<Hc.GetDuration(l,+new Date)&&(clearInterval(u),a||(i.duration=6e4,r.appInsights.sendPageViewInternal(e,i),r._channel().forEach(function(t){t.forEach(function(t){return t.flush(!0)})})))}catch(t){r._logger.throwInternal(cu.CRITICAL,Ju,\"trackPageView failed on page load calculation: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},100)},bh);function bh(t,e,i,r){this.pageViewPerformanceSent=!1,this.overridePageViewDuration=!1,this.overridePageViewDuration=e,this.appInsights=t,this._pageViewPerformanceManager=r,i&&(this._channel=function(){return i.getTransmissionControls()},this._logger=i.logger)}var wh=(Sh.prototype.trackPreviousPageVisit=function(t,e){try{var i=this.restartPageVisitTimer(t,e);i&&this.pageVisitTimeTrackingHandler(i.pageName,i.pageUrl,i.pageVisitTime)}catch(t){this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \"+Bc.dump(t))}},Sh.prototype.restartPageVisitTimer=function(t,e){try{var i=this.stopPageVisitTimer();return this.startPageVisitTimer(t,e),i}catch(t){return this._logger.warnToConsole(\"Call to restart failed: \"+Bc.dump(t)),null}},Sh.prototype.startPageVisitTimer=function(t,e){try{if(Bc.canUseSessionStorage()){if(null!=Bc.getSessionStorage(this._logger,this.prevPageVisitDataKeyName))throw new Error(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");var i=new Th(t,e),r=JSON.stringify(i);Bc.setSessionStorage(this._logger,this.prevPageVisitDataKeyName,r)}}catch(t){this._logger.warnToConsole(\"Call to start failed: \"+Bc.dump(t))}},Sh.prototype.stopPageVisitTimer=function(){try{if(Bc.canUseSessionStorage()){var t=Date.now(),e=Bc.getSessionStorage(this._logger,this.prevPageVisitDataKeyName);if(e){var i=JSON.parse(e);return i.pageVisitTime=t-i.pageVisitStartTime,Bc.removeSessionStorage(this._logger,this.prevPageVisitDataKeyName),i}return null}return null}catch(t){return this._logger.warnToConsole(\"Stop page visit timer failed: \"+Bc.dump(t)),null}},Sh);function Sh(t,e){this.prevPageVisitDataKeyName=\"prevPageVisitData\",this.pageVisitTimeTrackingHandler=e,this._logger=t}var Th=function(t,e){this.pageVisitStartTime=Date.now(),this.pageName=t,this.pageUrl=e},Eh=(Ih.prototype.populatePageViewPerformanceEvent=function(t){t.isValid=!1;var e=this.getPerformanceTiming();if(e){var i=Hc.GetDuration(e.navigationStart,e.loadEventEnd),r=Hc.GetDuration(e.navigationStart,e.connectEnd),n=Hc.GetDuration(e.requestStart,e.responseStart),o=Hc.GetDuration(e.responseStart,e.responseEnd),a=Hc.GetDuration(e.responseEnd,e.loadEventEnd);0==i?this._logger.throwInternal(cu.WARNING,Eu,\"error calculating page view performance.\",{total:i,network:r,request:n,response:o,dom:a}):this.shouldCollectDuration(i,r,n,o,a)?i<Math.floor(r)+Math.floor(n)+Math.floor(o)+Math.floor(a)?this._logger.throwInternal(cu.WARNING,Su,\"client performance math error.\",{total:i,network:r,request:n,response:o,dom:a}):(t.durationMs=i,t.perfTotal=t.duration=Bc.msToTimeSpan(i),t.networkConnect=Bc.msToTimeSpan(r),t.sentRequest=Bc.msToTimeSpan(n),t.receivedResponse=Bc.msToTimeSpan(o),t.domProcessing=Bc.msToTimeSpan(a),t.isValid=!0):this._logger.throwInternal(cu.WARNING,rc,\"Invalid page load duration value. Browser perf data won't be sent.\",{total:i,network:r,request:n,response:o,dom:a})}},Ih.prototype.getPerformanceTiming=function(){return this.isPerformanceTimingSupported()?window.performance.timing:null},Ih.prototype.isPerformanceTimingSupported=function(){return\"undefined\"!=typeof window&&window.performance&&window.performance.timing},Ih.prototype.isPerformanceTimingDataReady=function(){var t=window.performance.timing;return 0<t.domainLookupStart&&0<t.navigationStart&&0<t.responseStart&&0<t.requestStart&&0<t.loadEventEnd&&0<t.responseEnd&&0<t.connectEnd&&0<t.domLoading},Ih.prototype.shouldCollectDuration=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var i=[\"googlebot\",\"adsbot-google\",\"apis-google\",\"mediapartners-google\"],r=navigator.userAgent,n=!1;if(r)for(var o=0;o<i.length;o++)n=n||-1!==r.toLowerCase().indexOf(i[o]);if(n)return!1;for(var a=0;a<t.length;a++)if(t[a]>=this.MAX_DURATION_ALLOWED)return!1;return!0},Ih);function Ih(t){this.MAX_DURATION_ALLOWED=36e5,t&&(this._logger=t.logger)}var Ch=\"duration\",Ah=(kh.getDefaultConfig=function(t){return(t=t||{}).sessionRenewalMs=18e5,t.sessionExpirationMs=864e5,t.disableExceptionTracking=Bc.stringToBoolOrDefault(t.disableExceptionTracking),t.autoTrackPageVisitTime=Bc.stringToBoolOrDefault(t.autoTrackPageVisitTime),t.overridePageViewDuration=Bc.stringToBoolOrDefault(t.overridePageViewDuration),(isNaN(t.samplingPercentage)||t.samplingPercentage<=0||100<=t.samplingPercentage)&&(t.samplingPercentage=100),t.isCookieUseDisabled=Bc.stringToBoolOrDefault(t.isCookieUseDisabled),t.isStorageUseDisabled=Bc.stringToBoolOrDefault(t.isStorageUseDisabled),t.isBrowserLinkTrackingEnabled=Bc.stringToBoolOrDefault(t.isBrowserLinkTrackingEnabled),t.enableAutoRouteTracking=Bc.stringToBoolOrDefault(t.enableAutoRouteTracking),t.namePrefix=t.namePrefix||\"\",t},kh.prototype.processTelemetry=function(t){for(var e=!1,i=this._telemetryInitializers.length,r=0;r<i;++r){var n=this._telemetryInitializers[r];if(n)try{if(!1===n.apply(null,[t])){e=!0;break}}catch(t){this._logger.throwInternal(cu.CRITICAL,_c,\"One of telemetry initializers failed, telemetry item will not be sent: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)},!0)}}e||lu.isNullOrUndefined(this._nextPlugin)||this._nextPlugin.processTelemetry(t)},kh.prototype.setNextPlugin=function(t){this._nextPlugin=t},kh.prototype.trackEvent=function(t,e){try{var i=dh.create(t,lp.dataType,lp.envelopeType,this._logger,e);this.core.track(i)}catch(t){this._logger.throwInternal(cu.WARNING,Qu,\"trackTrace failed, trace will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.startTrackEvent=function(t){try{this._eventTracking.start(t)}catch(t){this._logger.throwInternal(cu.CRITICAL,Vu,\"startTrackEvent failed, event will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.stopTrackEvent=function(t,e,i){try{this._eventTracking.stop(t,void 0,e)}catch(t){this._logger.throwInternal(cu.CRITICAL,Gu,\"stopTrackEvent failed, event will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.trackTrace=function(t,e){try{var i=dh.create(t,Jp.dataType,Jp.envelopeType,this._logger,e);this.core.track(i)}catch(t){this._logger.throwInternal(cu.WARNING,Qu,\"trackTrace failed, trace will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.trackMetric=function(t,e){try{var i=dh.create(t,Dp.dataType,Dp.envelopeType,this._logger,e);this.core.track(i)}catch(t){this._logger.throwInternal(cu.CRITICAL,Xu,\"trackMetric failed, metric will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.trackPageView=function(t,e){try{var i=t||{};this._pageViewManager.trackPageView(i,w({},i.properties,i.measurements,e)),this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(i.name,i.uri)}catch(t){this._logger.throwInternal(cu.CRITICAL,Yu,\"trackPageView failed, page view will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.sendPageViewInternal=function(t,e,i){\"undefined\"!=typeof document&&(t.refUri=void 0===t.refUri?document.referrer:t.refUri);var r=dh.create(t,Fp.dataType,Fp.envelopeType,this._logger,e,i);this.core.track(r),this._trackAjaxAttempts=0},kh.prototype.sendPageViewPerformanceInternal=function(t,e,i){var r=dh.create(t,rh.dataType,rh.envelopeType,this._logger,e,i);this.core.track(r)},kh.prototype.trackPageViewPerformance=function(t,e){try{this._pageViewPerformanceManager.populatePageViewPerformanceEvent(t),this.sendPageViewPerformanceInternal(t,e)}catch(t){this._logger.throwInternal(cu.CRITICAL,Yu,\"trackPageViewPerformance failed, page view will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.startTrackPage=function(t){try{\"string\"!=typeof t&&(t=window.document&&window.document.title||\"\"),this._pageTracking.start(t)}catch(t){this._logger.throwInternal(cu.CRITICAL,Zu,\"startTrackPage failed, page view may not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.stopTrackPage=function(t,e,i,r){try{\"string\"!=typeof t&&(t=window.document&&window.document.title||\"\"),\"string\"!=typeof e&&(e=window.location&&window.location.href||\"\"),this._pageTracking.stop(t,e,i,r),this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(t,e)}catch(t){this._logger.throwInternal(cu.CRITICAL,Hu,\"stopTrackPage failed, page view will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype.sendExceptionInternal=function(t,e,i){var r=new gp(this._logger,t.exception||new Error(Bc.NotSpecified),t.properties,t.measurements,t.severityLevel,t.id).toInterface(),n=dh.create(r,gp.dataType,gp.envelopeType,this._logger,e,i);this.core.track(n)},kh.prototype.trackException=function(t,e){try{this.sendExceptionInternal(t,e)}catch(t){this._logger.throwInternal(cu.CRITICAL,Wu,\"trackException failed, exception will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},kh.prototype._onerror=function(e){try{var t={url:e&&e.url||document.URL,lineNumber:e.lineNumber,columnNumber:e.columnNumber,message:e.message};if(Bc.isCrossOriginError(e.message,e.url,e.lineNumber,e.columnNumber,e.error))this._sendCORSException(t.url);else{if(!Bc.isError(e.error)){var i=\"window.onerror@\"+t.url+\":\"+e.lineNumber+\":\"+(e.columnNumber||0);e.error=new Error(e.message),e.error.stack=i}this.trackException({exception:e.error,severityLevel:ah.Error},t)}}catch(t){var r=e.error?e.error.name+\", \"+e.error.message:\"null\";this._logger.throwInternal(cu.CRITICAL,Iu,\"_onError threw exception while logging error, error will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t),errorString:r})}},kh.prototype.addTelemetryInitializer=function(t){this._telemetryInitializers.push(t)},kh.prototype._initialize=function(t,e,i){var a=this;if(!this._isInitialized){if(lu.isNullOrUndefined(e))throw Error(\"Error initializing\");this.core=e,this._logger=e.logger,this._globalconfig={instrumentationKey:t.instrumentationKey,endpointUrl:t.endpointUrl||\"https://dc.services.visualstudio.com/v2/track\"},this.config=t.extensionConfig&&t.extensionConfig[this.identifier]?t.extensionConfig[this.identifier]:{};var r=kh.getDefaultConfig();if(void 0!==r){for(var n in r)this.config[n]=ch.getConfig(t,n,this.identifier,r[n]);if(this._globalconfig)for(var n in r)void 0===this._globalconfig[n]&&(this._globalconfig[n]=r[n])}this.config.isCookieUseDisabled&&Bc.disableCookies(),this.config.isStorageUseDisabled&&Bc.disableStorage();var o={instrumentationKey:function(){return t.instrumentationKey},accountId:function(){return a.config.accountId||t.accountId},sessionRenewalMs:function(){return a.config.sessionRenewalMs||t.sessionRenewalMs},sessionExpirationMs:function(){return a.config.sessionExpirationMs||t.sessionExpirationMs},sampleRate:function(){return a.config.samplingPercentage||t.samplingPercentage},cookieDomain:function(){return a.config.cookieDomain||t.cookieDomain},sdkExtension:function(){return a.config.sdkExtension||t.sdkExtension},isBrowserLinkTrackingEnabled:function(){return a.config.isBrowserLinkTrackingEnabled||t.isBrowserLinkTrackingEnabled},appId:function(){return a.config.appId||t.appId}};this._pageViewPerformanceManager=new Eh(this.core),this._pageViewManager=new xh(this,this.config.overridePageViewDuration,this.core,this._pageViewPerformanceManager),this._pageVisitTimeManager=new wh(this._logger,function(t,e,i){return a.trackPageVisitTime(t,e,i)}),this._telemetryInitializers=[],this._addDefaultTelemetryInitializers(o),this._eventTracking=new Ph(this._logger,\"trackEvent\"),this._eventTracking.action=function(t,e,i,r){(r=r||{})[Ch]=i.toString(),a.trackEvent({name:t,properties:r})},this._pageTracking=new Ph(this._logger,\"trackPageView\"),this._pageTracking.action=function(t,e,i,r,n){lu.isNullOrUndefined(r)&&(r={}),r[Ch]=i.toString();var o={name:t,uri:e,properties:r,measurements:n};a.sendPageViewInternal(o)};var s,l,u=this;if(!1===this.config.disableExceptionTracking&&!this.config.autoExceptionInstrumented){var c=window.onerror;window.onerror=function(t,e,i,r,n){var o=c&&c(t,e,i,r,n);return!0!==o&&u._onerror({message:t,url:e,lineNumber:i,columnNumber:r,error:n}),o},this.config.autoExceptionInstrumented=!0}if(!0===this.config.enableAutoRouteTracking&&\"object\"==typeof history&&\"function\"==typeof history.pushState&&\"function\"==typeof history.replaceState&&\"object\"==typeof window&&\"undefined\"!=typeof Event){var p=this;i.forEach(function(t){t.identifier===vh&&(a._properties=t)}),history.pushState=(l=history.pushState,function(){var t=l.apply(this,arguments);return window.dispatchEvent(Bc.createDomEvent(p.config.namePrefix+\"pushState\")),window.dispatchEvent(Bc.createDomEvent(p.config.namePrefix+\"locationchange\")),t}),history.replaceState=(s=history.replaceState,function(){var t=s.apply(this,arguments);return window.dispatchEvent(Bc.createDomEvent(p.config.namePrefix+\"replaceState\")),window.dispatchEvent(Bc.createDomEvent(p.config.namePrefix+\"locationchange\")),t}),window.addEventListener(p.config.namePrefix+\"popstate\",function(){window.dispatchEvent(Bc.createDomEvent(p.config.namePrefix+\"locationchange\"))}),window.addEventListener(p.config.namePrefix+\"locationchange\",function(){p._properties&&p._properties.context&&p._properties.context.telemetryTrace&&(p._properties.context.telemetryTrace.traceID=Bc.generateW3CId(),p._properties.context.telemetryTrace.name=window.location&&window.location.pathname||\"_unknown_\"),a._currUri&&(a._prevUri=a._currUri),a._currUri=window.location&&window.location.href||\"\",setTimeout(function(t){p.trackPageView({refUri:t,properties:{duration:0}})}.bind(a,a._prevUri),p.autoRoutePVDelay)})}this._isInitialized=!0}},kh.prototype.trackPageVisitTime=function(t,e,i){var r={PageName:t,PageUrl:e};this.trackMetric({name:\"PageVisitTime\",average:i,max:i,min:i,sampleCount:1},r)},kh.prototype._addDefaultTelemetryInitializers=function(t){if(!t.isBrowserLinkTrackingEnabled()){var r=[\"/browserLinkSignalR/\",\"/__browserLink/\"];this._addTelemetryInitializer(function(t){if(t.baseType===Zp.dataType){var e=t.baseData;if(e)for(var i=0;i<r.length;i++)if(e.target&&0<=e.target.indexOf(r[i]))return!1}return!0})}},kh.prototype._addTelemetryInitializer=function(t){this._telemetryInitializers.push(t)},kh.prototype._sendCORSException=function(t){var e={message:\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\",url:t,lineNumber:0,columnNumber:0,error:void 0},i=dh.create(e,gp.dataType,gp.envelopeType,this._logger,{url:t});this.core.track(i)},kh.Version=\"2.2.2\",kh);function kh(){this.identifier=\"ApplicationInsightsAnalytics\",this.priority=180,this.autoRoutePVDelay=500,this._isInitialized=!1,this._trackAjaxAttempts=0,this._prevUri=\"object\"==typeof window&&window.location&&window.location.href||\"\",this.initialize=this._initialize.bind(this)}var Ph=(Mh.prototype.start=function(t){void 0!==this._events[t]&&this._logger.throwInternal(cu.WARNING,yc,\"start was called more than once for this event without calling stop.\",{name:this._name,key:t},!0),this._events[t]=+new Date},Mh.prototype.stop=function(t,e,i,r){var n=this._events[t];if(isNaN(n))this._logger.throwInternal(cu.WARNING,vc,\"stop was called without a corresponding start.\",{name:this._name,key:t},!0);else{var o=+new Date,a=Hc.GetDuration(n,o);this.action(t,e,a,i,r)}delete this._events[t],this._events[t]=void 0},Mh);function Mh(t,e){this._name=e,this._events={},this._logger=t}var Lh=(Dh.prototype.enqueue=function(t){this._buffer.push(t)},Dh.prototype.count=function(){return this._buffer.length},Dh.prototype.clear=function(){this._buffer.length=0},Dh.prototype.getItems=function(){return this._buffer.slice(0)},Dh.prototype.batchPayloads=function(t){return t&&0<t.length?this._config.emitLineDelimitedJson()?t.join(\"\\n\"):\"[\"+t.join(\",\")+\"]\":null},Dh.prototype.markAsSent=function(t){this.clear()},Dh.prototype.clearSent=function(t){},Dh);function Dh(t){this._config=t,this._buffer=[]}var Oh=(zh.prototype.enqueue=function(t){this._buffer.length>=zh.MAX_BUFFER_SIZE?this._bufferFullMessageSent||(this._logger.throwInternal(cu.WARNING,bc,\"Maximum buffer size reached: \"+this._buffer.length,!0),this._bufferFullMessageSent=!0):(this._buffer.push(t),this.setBuffer(zh.BUFFER_KEY,this._buffer))},zh.prototype.count=function(){return this._buffer.length},zh.prototype.clear=function(){this._buffer.length=0,this.setBuffer(zh.BUFFER_KEY,[]),this.setBuffer(zh.SENT_BUFFER_KEY,[]),this._bufferFullMessageSent=!1},zh.prototype.getItems=function(){return this._buffer.slice(0)},zh.prototype.batchPayloads=function(t){return t&&0<t.length?this._config.emitLineDelimitedJson()?t.join(\"\\n\"):\"[\"+t.join(\",\")+\"]\":null},zh.prototype.markAsSent=function(t){this._buffer=this.removePayloadsFromBuffer(t,this._buffer),this.setBuffer(zh.BUFFER_KEY,this._buffer);var e=this.getBuffer(zh.SENT_BUFFER_KEY);e instanceof Array&&t instanceof Array&&((e=e.concat(t)).length>zh.MAX_BUFFER_SIZE&&(this._logger.throwInternal(cu.CRITICAL,bc,\"Sent buffer reached its maximum size: \"+e.length,!0),e.length=zh.MAX_BUFFER_SIZE),this.setBuffer(zh.SENT_BUFFER_KEY,e))},zh.prototype.clearSent=function(t){var e=this.getBuffer(zh.SENT_BUFFER_KEY);e=this.removePayloadsFromBuffer(t,e),this.setBuffer(zh.SENT_BUFFER_KEY,e)},zh.prototype.removePayloadsFromBuffer=function(t,e){var i=[];for(var r in e){var n=!1;for(var o in t)if(t[o]===e[r]){n=!0;break}n||i.push(e[r])}return i},zh.prototype.getBuffer=function(t){var e=t;try{e=this._config.namePrefix&&this._config.namePrefix()?this._config.namePrefix()+\"_\"+e:e;var i=Bc.getSessionStorage(this._logger,e);if(i){var r=JSON.parse(i);if(r)return r}}catch(t){this._logger.throwInternal(cu.CRITICAL,ec,\" storage key: \"+e+\", \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}return[]},zh.prototype.setBuffer=function(t,e){var i=t;try{i=this._config.namePrefix&&this._config.namePrefix()?this._config.namePrefix()+\"_\"+i:i;var r=JSON.stringify(e);Bc.setSessionStorage(this._logger,i,r)}catch(t){Bc.setSessionStorage(this._logger,i,JSON.stringify([])),this._logger.throwInternal(cu.WARNING,tc,\" storage key: \"+i+\", \"+Bc.getExceptionName(t)+\". Buffer cleared\",{exception:Bc.dump(t)})}},zh.BUFFER_KEY=\"AI_buffer\",zh.SENT_BUFFER_KEY=\"AI_sentBuffer\",zh.MAX_BUFFER_SIZE=2e3,zh);function zh(t,e){this._bufferFullMessageSent=!1,this._logger=t,this._config=e;var i=this.getBuffer(zh.BUFFER_KEY),r=this.getBuffer(zh.SENT_BUFFER_KEY);this._buffer=i.concat(r),this._buffer.length>zh.MAX_BUFFER_SIZE&&(this._buffer.length=zh.MAX_BUFFER_SIZE),this.setBuffer(zh.SENT_BUFFER_KEY,[]),this.setBuffer(zh.BUFFER_KEY,this._buffer)}var Rh=(Nh.extractProperties=function(t){var e=null;for(var i in t)if(t.hasOwnProperty(i)){var r=t[i];\"number\"!=typeof r&&((e=e||{})[i]=r)}return e},Nh.extractPropsAndMeasurements=function(t,e,i){if(!lu.isNullOrUndefined(t))for(var r in t)if(t.hasOwnProperty(r)){var n=t[r];\"number\"==typeof n?i[r]=n:e[r]=\"string\"==typeof n?n:JSON.stringify(n)}},Nh.createEnvelope=function(t,e,i,r){var n=new ep(t,r,e);n.iKey=i.iKey;var o=i.iKey.replace(/-/g,\"\");return n.name=n.name.replace(\"{0}\",o),Nh.extractPartAExtensions(i,n),i.tags||(i.tags=[]),n},Nh.extractPartAExtensions=function(i,t){if(t.tags||(t.tags={}),i.ext||(i.ext={}),i.tags||(i.tags=[]),i.ext.user){i.ext.user.authId&&(t.tags[yh.userAuthUserId]=i.ext.user.authId);var e=i.ext.user.id||i.ext.user.localId;e&&(t.tags[yh.userId]=e)}if(i.ext.app&&i.ext.app.sesId&&(t.tags[yh.sessionId]=i.ext.app.sesId),i.ext.device&&((i.ext.device.id||i.ext.device.localId)&&(t.tags[yh.deviceId]=i.ext.device.id||i.ext.device.localId),i.ext.device.deviceClass&&(t.tags[yh.deviceType]=i.ext.device.deviceClass),i.ext.device.ip&&(t.tags[yh.deviceIp]=i.ext.device.ip)),i.ext.web){var r=i.ext.web;r.browserLang&&(t.tags[yh.deviceLanguage]=r.browserLang),r.browserVer&&(t.tags[yh.deviceBrowserVersion]=r.browserVer),r.browser&&(t.tags[yh.deviceBrowser]=r.browser),t.data=t.data||{},t.data.baseData=t.data.baseData||{},t.data.baseData.properties=t.data.baseData.properties||{},r.domain&&(t.data.baseData.properties.domain=r.domain),r.isManual&&(t.data.baseData.properties.isManual=r.isManual.toString()),r.screenRes&&(t.data.baseData.properties.screenRes=r.screenRes),r.userConsent&&(t.data.baseData.properties.userConsent=r.userConsent.toString())}i.ext.device&&i.ext.device.model&&(t.tags[yh.deviceModel]=i.ext.device.model),i.ext.os&&i.ext.os.name&&(t.tags[yh.deviceOS]=i.ext.os.name),i.ext.device&&i.ext.device.deviceType&&(t.tags[yh.deviceType]=i.ext.device.deviceType),i.ext.trace&&(i.ext.trace.parentID&&(t.tags[yh.operationParentId]=i.ext.trace.parentID),i.ext.trace.name&&(t.tags[yh.operationName]=i.ext.trace.name),i.ext.trace.traceID&&(t.tags[yh.operationId]=i.ext.trace.traceID));for(var n={},o=function(t){var e=i.tags[t];Object.keys(e).forEach(function(t){n[t]=e[t]}),i.tags.splice(t,1)},a=i.tags.length-1;0<=a;a--)o(a);for(var s in i.tags)n[s]=i.tags[s];t.tags=w({},t.tags,n),t.tags[yh.internalSdkVersion]||(t.tags[yh.internalSdkVersion]=\"javascript:\"+Nh.Version)},Nh.Version=\"2.2.2\",Nh);function Nh(){}var Bh,Fh=(b(Uh,Bh=Rh),Uh.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i=e.baseData.measurements||{},r=e.baseData.properties||{};Rh.extractPropsAndMeasurements(e.data,r,i);var n=e.baseData;if(lu.isNullOrUndefined(n))return t.warnToConsole(\"Invalid input for dependency data\"),null;var o=n.id,a=n.target,s=n.name,l=n.duration,u=n.success,c=n.responseCode,p=n.type,h=n.correlationContext,d=n.properties&&n.properties[Jc]?n.properties[Jc]:\"GET\",f=new Zp(t,o,a,s,l,u,c,d,p,h,r,i),m=new lh(Zp.dataType,f);return Rh.createEnvelope(t,Zp.envelopeType,e,m)},Uh.DependencyEnvelopeCreator=new Uh,Uh);function Uh(){return null!==Bh&&Bh.apply(this,arguments)||this}var jh,qh=(b(Vh,jh=Rh),Vh.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i={},r={};e.baseType!==lp.dataType&&(i.baseTypeSource=e.baseType),e.baseType===lp.dataType?(i=e.baseData.properties||{},r=e.baseData.measurements||{}):e.baseData&&Rh.extractPropsAndMeasurements(e.baseData,i,r),Rh.extractPropsAndMeasurements(e.data,i,r);var n=e.baseData.name,o=new lp(t,n,i,r),a=new lh(lp.dataType,o);return Rh.createEnvelope(t,lp.envelopeType,e,a)},Vh.EventEnvelopeCreator=new Vh,Vh);function Vh(){return null!==jh&&jh.apply(this,arguments)||this}var Gh,Zh=(b(Hh,Gh=Rh),Hh.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i=e.baseData,r=gp.CreateFromInterface(t,i),n=new lh(gp.dataType,r);return Rh.createEnvelope(t,gp.envelopeType,e,n)},Hh.ExceptionEnvelopeCreator=new Hh,Hh);function Hh(){return null!==Gh&&Gh.apply(this,arguments)||this}var Kh,Wh=(b(Xh,Kh=Rh),Xh.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i=e.baseData.properties||{},r=Rh.extractProperties(e.data);r=w({},i,r);var n=e.baseData.name,o=e.baseData.average,a=e.baseData.sampleCount,s=e.baseData.min,l=e.baseData.max,u=new Dp(t,n,o,a,s,l,r),c=new lh(Dp.dataType,u);return Rh.createEnvelope(t,Dp.envelopeType,e,c)},Xh.MetricEnvelopeCreator=new Xh,Xh);function Xh(){return null!==Kh&&Kh.apply(this,arguments)||this}var Yh,Jh=(b(Qh,Yh=Rh),Qh.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i=void 0;lu.isNullOrUndefined(e.baseData)||lu.isNullOrUndefined(e.baseData.properties)||lu.isNullOrUndefined(e.baseData.properties.duration)?lu.isNullOrUndefined(e.data)||lu.isNullOrUndefined(e.data.duration)||(i=e.data.duration,delete e.data.duration):(i=e.baseData.properties.duration,delete e.baseData.properties.duration);var r,n=e.baseData;e.ext&&e.ext.trace&&e.ext.trace.traceID&&(r=e.ext.trace.traceID);var o=n.id||r,a=n.name,s=n.uri,l=n.properties||{},u=n.measurements||{};if(lu.isNullOrUndefined(n.refUri)||(l.refUri=n.refUri),lu.isNullOrUndefined(n.pageType)||(l.pageType=n.pageType),lu.isNullOrUndefined(n.isLoggedIn)||(l.isLoggedIn=n.isLoggedIn.toString()),!lu.isNullOrUndefined(n.properties)){var c=n.properties;for(var p in c)c.hasOwnProperty(p)&&(l[p]=c[p])}Rh.extractPropsAndMeasurements(e.data,l,u);var h=new Fp(t,a,s,i,l,u,o),d=new lh(Fp.dataType,h);return Rh.createEnvelope(t,Fp.envelopeType,e,d)},Qh.PageViewEnvelopeCreator=new Qh,Qh);function Qh(){return null!==Yh&&Yh.apply(this,arguments)||this}var $h,td=(b(ed,$h=Rh),ed.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i=e.baseData,r=i.name,n=i.uri||i.url,o=i.properties||{},a=i.measurements||{};Rh.extractPropsAndMeasurements(e.data,o,a);var s=new rh(t,r,n,void 0,o,a,i),l=new lh(rh.dataType,s);return Rh.createEnvelope(t,rh.envelopeType,e,l)},ed.PageViewPerformanceEnvelopeCreator=new ed,ed);function ed(){return null!==$h&&$h.apply(this,arguments)||this}var id,rd=(b(nd,id=Rh),nd.prototype.Create=function(t,e){this._logger=t,lu.isNullOrUndefined(e.baseData)&&this._logger.throwInternal(cu.CRITICAL,nc,\"telemetryItem.baseData cannot be null.\");var i=e.baseData.message,r=e.baseData.severityLevel,n=Rh.extractProperties(e.data),o=w({},n,e.baseData.properties),a=new Jp(t,i,r,o),s=new lh(Jp.dataType,a);return Rh.createEnvelope(t,Jp.envelopeType,e,s)},nd.TraceEnvelopeCreator=new nd,nd);function nd(){return null!==id&&id.apply(this,arguments)||this}var od=(ad.prototype.serialize=function(t){var e=this._serializeObject(t,\"root\");return JSON.stringify(e)},ad.prototype._serializeObject=function(t,e){var i=\"__aiCircularRefCheck\",r={};if(!t)return this._logger.throwInternal(cu.CRITICAL,ac,\"cannot serialize object because it is null or undefined\",{name:e},!0),r;if(t[i])return this._logger.throwInternal(cu.WARNING,lc,\"Circular reference detected while serializing object\",{name:e},!0),r;if(!t.aiDataContract){if(\"measurements\"===e)r=this._serializeStringMap(t,\"number\",e);else if(\"properties\"===e)r=this._serializeStringMap(t,\"string\",e);else if(\"tags\"===e)r=this._serializeStringMap(t,\"string\",e);else if(Bc.isArray(t))r=this._serializeArray(t,e);else{this._logger.throwInternal(cu.WARNING,sc,\"Attempting to serialize an object which does not implement ISerializable\",{name:e},!0);try{JSON.stringify(t),r=t}catch(t){this._logger.throwInternal(cu.CRITICAL,ac,t&&\"function\"==typeof t.toString?t.toString():\"Error serializing object\",null,!0)}}return r}for(var n in t[i]=!0,t.aiDataContract){var o,a=t.aiDataContract[n],s=\"function\"==typeof a?a()&tu.Required:a&tu.Required,l=\"function\"==typeof a?a()&tu.Hidden:a&tu.Hidden,u=a&tu.Array,c=void 0!==t[n],p=\"object\"==typeof t[n]&&null!==t[n];!s||c||u?l||void 0!==(o=p?u?this._serializeArray(t[n],n):this._serializeObject(t[n],n):t[n])&&(r[n]=o):this._logger.throwInternal(cu.CRITICAL,Bu,\"Missing required field specification. The field is required but not present on source\",{field:n,name:e})}return delete t[i],r},ad.prototype._serializeArray=function(t,e){var i=void 0;if(t)if(Bc.isArray(t)){i=[];for(var r=0;r<t.length;r++){var n=t[r],o=this._serializeObject(n,e+\"[\"+r+\"]\");i.push(o)}}else this._logger.throwInternal(cu.CRITICAL,cc,\"This field was specified as an array in the contract but the item is not an array.\\r\\n\",{name:e},!0);return i},ad.prototype._serializeStringMap=function(t,e,i){var r=void 0;if(t)for(var n in r={},t){var o=t[n];if(\"string\"===e)void 0===o?r[n]=\"undefined\":null===o?r[n]=\"null\":o.toString?r[n]=o.toString():r[n]=\"invalid field: toString() is not defined.\";else if(\"number\"===e)if(void 0===o)r[n]=\"undefined\";else if(null===o)r[n]=\"null\";else{var a=parseFloat(o);isNaN(a)?r[n]=\"NaN\":r[n]=a}else r[n]=\"invalid field: \"+i+\" is of unknown type.\",this._logger.throwInternal(cu.CRITICAL,r[n],null,!0)}return r},ad);function ad(t){this._logger=t}function sd(){this._onlineStatus=!0;try{\"undefined\"==typeof window?this.isListening=!1:window&&window.addEventListener?(window.addEventListener(\"online\",this._setOnline.bind(this),!1),window.addEventListener(\"offline\",this._setOffline.bind(this),!1),this.isListening=!0):document&&document.body?(document.body.ononline=this._setOnline.bind(this),document.body.onoffline=this._setOffline.bind(this),this.isListening=!0):document?(document.ononline=this._setOnline.bind(this),document.onoffline=this._setOffline.bind(this),this.isListening=!0):this.isListening=!1}catch(t){this.isListening=!1}}var ld=(sd.prototype._setOnline=function(){this._onlineStatus=!0},sd.prototype._setOffline=function(){this._onlineStatus=!1},sd.prototype.isOnline=function(){return this.isListening?this._onlineStatus:!(navigator&&!lu.isNullOrUndefined(navigator.onLine))||navigator.onLine},sd.prototype.isOffline=function(){return!this.isOnline()},sd.Offline=new sd,sd).Offline,ud=(cd.prototype.getHashCodeScore=function(t){return this.getHashCode(t)/cd.INT_MAX_VALUE*100},cd.prototype.getHashCode=function(t){if(\"\"==t)return 0;for(;t.length<cd.MIN_INPUT_LENGTH;)t=t.concat(t);for(var e=5381,i=0;i<t.length;++i)e=(e<<5)+e+t.charCodeAt(i),e&=e;return Math.abs(e)},cd.INT_MAX_VALUE=2147483647,cd.MIN_INPUT_LENGTH=8,cd);function cd(){}var pd=(hd.prototype.getSamplingScore=function(t){return t.tags&&t.tags[this.keys.userId]?this.hashCodeGeneragor.getHashCodeScore(t.tags[this.keys.userId]):t.ext&&t.ext.user&&t.ext.user.id?this.hashCodeGeneragor.getHashCodeScore(t.ext.user.id):t.tags&&t.tags[this.keys.operationId]?this.hashCodeGeneragor.getHashCodeScore(t.tags[this.keys.operationId]):t.ext&&t.ext.telemetryTrace&&t.ext.telemetryTrace.traceID?this.hashCodeGeneragor.getHashCodeScore(t.ext.telemetryTrace.traceID):100*Math.random()},hd);function hd(){this.hashCodeGeneragor=new ud,this.keys=new hh}var dd=(fd.prototype.isSampledIn=function(t){var e=this.sampleRate;return null==e||100<=e||t.baseType===Dp.dataType||this.samplingScoreGenerator.getSamplingScore(t)<e},fd);function fd(t,e){this.INT_MAX_VALUE=2147483647,lu.isNullOrUndefined(e)?this._logger=new Ac:this._logger=e,(100<t||t<0)&&(this._logger.throwInternal(cu.WARNING,fc,\"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\",{samplingRate:t},!0),this.sampleRate=100),this.sampleRate=t,this.samplingScoreGenerator=new pd}var md=(gd.prototype.pause=function(){throw new Error(\"Method not implemented.\")},gd.prototype.resume=function(){throw new Error(\"Method not implemented.\")},gd.prototype.flush=function(){try{this.triggerSend()}catch(t){this._logger.throwInternal(cu.CRITICAL,Ru,\"flush failed, telemetry will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},gd.prototype.onunloadFlush=function(){if(!1!==this._config.onunloadDisableBeacon()&&!1!==this._config.isBeaconApiDisabled()||!Bc.IsBeaconApiSupported())this.flush();else try{this.triggerSend(!0,this._beaconSender)}catch(t){this._logger.throwInternal(cu.CRITICAL,zu,\"failed to flush with beacon sender on page unload, telemetry will not be collected: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},gd.prototype.teardown=function(){throw new Error(\"Method not implemented.\")},gd.prototype.initialize=function(e,t,i){var r=this;this._logger=t.logger,this._serializer=new od(t.logger),this._consecutiveErrors=0,this._retryAt=null,this._lastSend=0,this._sender=null;var n=gd._getDefaultAppInsightsChannelConfig();function o(t){a._config[t]=function(){return ch.getConfig(e,t,r.identifier,n[t]())}}this._config=gd._getEmptyAppInsightsChannelConfig();var a=this;for(var s in n)o(s);this._buffer=this._config.enableSessionStorageBuffer&&Bc.canUseSessionStorage()?new Oh(this._logger,this._config):new Lh(this._config),this._sample=new dd(this._config.samplingPercentage(),this._logger),!this._config.isBeaconApiDisabled()&&Bc.IsBeaconApiSupported()?this._sender=this._beaconSender:\"undefined\"!=typeof XMLHttpRequest&&(\"withCredentials\"in new XMLHttpRequest?(this._sender=this._xhrSender,this._XMLHttpRequestSupported=!0):\"undefined\"!=typeof XDomainRequest&&(this._sender=this._xdrSender))},gd.prototype.processTelemetry=function(t){var e=this;try{if(this._config.disableTelemetry())return;if(!t)return void this._logger.throwInternal(cu.CRITICAL,wu,\"Cannot send empty telemetry\");if(t.baseData&&!t.baseType)return void this._logger.throwInternal(cu.CRITICAL,Tc,\"Cannot send telemetry without baseData and baseType\");if(t.baseType||(t.baseType=\"EventData\"),!this._sender)return void this._logger.throwInternal(cu.CRITICAL,qu,\"Sender was not initialized\");if(!this._isSampledIn(t))return void this._logger.throwInternal(cu.WARNING,Ku,\"Telemetry item was sampled out and not sent\",{SampleRate:this._sample.sampleRate});t.tags=t.tags||{},t.tags.sampleRate=this._sample.sampleRate;var i=gd.constructEnvelope(t,this._config.instrumentationKey(),this._logger);if(!i)return void this._logger.throwInternal(cu.CRITICAL,oc,\"Unable to create an AppInsights envelope\");var r=!1;if(t.tags&&t.tags[Yc]&&(t.tags[Yc].forEach(function(t){try{t&&!1===t(i)&&(r=!0,e._logger.warnToConsole(\"Telemetry processor check returns false\"))}catch(t){e._logger.throwInternal(cu.CRITICAL,_c,\"One of telemetry initializers failed, telemetry item will not be sent: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)},!0)}}),delete t.tags[Yc]),r)return;var n=this._serializer.serialize(i),o=this._buffer.getItems(),a=this._buffer.batchPayloads(o);a&&a.length+n.length>this._config.maxBatchSizeInBytes()&&this.triggerSend(),this._buffer.enqueue(n),this._setupTimer()}catch(t){this._logger.throwInternal(cu.WARNING,Cu,\"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}lu.isNullOrUndefined(this._nextPlugin)||this._nextPlugin.processTelemetry(t)},gd.prototype.setNextPlugin=function(t){this._nextPlugin=t},gd.prototype._xhrReadyStateChange=function(t,e,i){if(4===t.readyState){var r=null;this._appId||(r=this._parseResponse(t.responseText||t.response))&&r.appId&&(this._appId=r.appId),(t.status<200||300<=t.status)&&0!==t.status?!this._config.isRetryDisabled()&&this._isRetriable(t.status)?(this._resendPayload(e),this._logger.throwInternal(cu.WARNING,$u,\". Response code \"+t.status+\". Will retry to send \"+e.length+\" items.\")):this._onError(e,this._formatErrorMessageXhr(t)):ld.isOffline()?this._config.isRetryDisabled()||(this._resendPayload(e,10),this._logger.throwInternal(cu.WARNING,$u,\". Offline - Response Code: \"+t.status+\". Offline status: \"+ld.isOffline()+\". Will retry to send \"+e.length+\" items.\")):206===t.status?(r=r||this._parseResponse(t.responseText||t.response))&&!this._config.isRetryDisabled()?this._onPartialSuccess(e,r):this._onError(e,this._formatErrorMessageXhr(t)):(this._consecutiveErrors=0,this._onSuccess(e,i))}},gd.prototype.triggerSend=function(t,e){void 0===t&&(t=!0);try{if(this._config.disableTelemetry())this._buffer.clear();else{if(0<this._buffer.count()){var i=this._buffer.getItems();e?e.call(this,i,t):this._sender(i,t)}this._lastSend=+new Date}clearTimeout(this._timeoutHandle),this._timeoutHandle=null,this._retryAt=null}catch(t){(!Bc.getIEVersion()||9<Bc.getIEVersion())&&this._logger.throwInternal(cu.CRITICAL,$u,\"Telemetry transmission failed, some telemetry will be lost: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}},gd.prototype._onError=function(t,e,i){this._logger.throwInternal(cu.WARNING,Uu,\"Failed to send telemetry.\",{message:e}),this._buffer.clearSent(t)},gd.prototype._onPartialSuccess=function(t,e){for(var i=[],r=[],n=0,o=e.errors.reverse();n<o.length;n++){var a=o[n],s=t.splice(a.index,1)[0];this._isRetriable(a.statusCode)?r.push(s):i.push(s)}0<t.length&&this._onSuccess(t,e.itemsAccepted),0<i.length&&this._onError(i,this._formatErrorMessageXhr(null,[\"partial success\",e.itemsAccepted,\"of\",e.itemsReceived].join(\" \"))),0<r.length&&(this._resendPayload(r),this._logger.throwInternal(cu.WARNING,$u,\"Partial success. Delivered: \"+t.length+\", Failed: \"+i.length+\". Will retry to send \"+r.length+\" our of \"+e.itemsReceived+\" items\"))},gd.prototype._onSuccess=function(t,e){this._buffer.clearSent(t)},gd.prototype._xdrOnLoad=function(t,e){if(!t||t.responseText+\"\"!=\"200\"&&\"\"!==t.responseText){var i=this._parseResponse(t.responseText);i&&i.itemsReceived&&i.itemsReceived>i.itemsAccepted&&!this._config.isRetryDisabled()?this._onPartialSuccess(e,i):this._onError(e,this._formatErrorMessageXdr(t))}else this._consecutiveErrors=0,this._onSuccess(e,0)},gd.constructEnvelope=function(t,e,i){var r;switch((r=e===t.iKey||lu.isNullOrUndefined(e)?t:w({},t,{iKey:e})).baseType){case lp.dataType:return qh.EventEnvelopeCreator.Create(i,r);case Jp.dataType:return rd.TraceEnvelopeCreator.Create(i,r);case Fp.dataType:return Jh.PageViewEnvelopeCreator.Create(i,r);case rh.dataType:return td.PageViewPerformanceEnvelopeCreator.Create(i,r);case gp.dataType:return Zh.ExceptionEnvelopeCreator.Create(i,r);case Dp.dataType:return Wh.MetricEnvelopeCreator.Create(i,r);case Zp.dataType:return Fh.DependencyEnvelopeCreator.Create(i,r);default:return qh.EventEnvelopeCreator.Create(i,r)}},gd._getDefaultAppInsightsChannelConfig=function(){return{endpointUrl:function(){return\"https://dc.services.visualstudio.com/v2/track\"},emitLineDelimitedJson:function(){return!1},maxBatchInterval:function(){return 15e3},maxBatchSizeInBytes:function(){return 102400},disableTelemetry:function(){return!1},enableSessionStorageBuffer:function(){return!0},isRetryDisabled:function(){return!1},isBeaconApiDisabled:function(){return!0},onunloadDisableBeacon:function(){return!1},instrumentationKey:function(){},namePrefix:function(){},samplingPercentage:function(){return 100}}},gd._getEmptyAppInsightsChannelConfig=function(){return{endpointUrl:void 0,emitLineDelimitedJson:void 0,maxBatchInterval:void 0,maxBatchSizeInBytes:void 0,disableTelemetry:void 0,enableSessionStorageBuffer:void 0,isRetryDisabled:void 0,isBeaconApiDisabled:void 0,onunloadDisableBeacon:void 0,instrumentationKey:void 0,namePrefix:void 0,samplingPercentage:void 0}},gd.prototype._isSampledIn=function(t){return this._sample.isSampledIn(t)},gd.prototype._beaconSender=function(t,e){var i=this._config.endpointUrl(),r=this._buffer.batchPayloads(t),n=new Blob([r],{type:\"text/plain;charset=UTF-8\"});navigator.sendBeacon(i,n)?(this._buffer.markAsSent(t),this._onSuccess(t,t.length)):(this._xhrSender(t,!0),this._logger.throwInternal(cu.WARNING,$u,\". Failed to send telemetry with Beacon API, retried with xhrSender.\"))},gd.prototype._xhrSender=function(e,t){var i=this,r=new XMLHttpRequest;r[Xc]=!0,r.open(\"POST\",this._config.endpointUrl(),t),r.setRequestHeader(\"Content-type\",\"application/json\"),Bc.isInternalApplicationInsightsEndpoint(this._config.endpointUrl())&&r.setRequestHeader(Oc.sdkContextHeader,Oc.sdkContextHeaderAppIdRequest),r.onreadystatechange=function(){return i._xhrReadyStateChange(r,e,e.length)},r.onerror=function(t){return i._onError(e,i._formatErrorMessageXhr(r),t)};var n=this._buffer.batchPayloads(e);r.send(n),this._buffer.markAsSent(e)},gd.prototype._parseResponse=function(e){try{if(e&&\"\"!==e){var t=JSON.parse(e);if(t&&t.itemsReceived&&t.itemsReceived>=t.itemsAccepted&&t.itemsReceived-t.itemsAccepted==t.errors.length)return t}}catch(t){this._logger.throwInternal(cu.CRITICAL,ic,\"Cannot parse the response. \"+Bc.getExceptionName(t),{response:e})}return null},gd.prototype._resendPayload=function(t,e){if(void 0===e&&(e=1),t&&0!==t.length){this._buffer.clearSent(t),this._consecutiveErrors++;for(var i=0,r=t;i<r.length;i++){var n=r[i];this._buffer.enqueue(n)}this._setRetryTime(e),this._setupTimer()}},gd.prototype._setRetryTime=function(t){var e;if(this._consecutiveErrors<=1)e=10;else{var i=(Math.pow(2,this._consecutiveErrors)-1)/2,r=Math.floor(Math.random()*i*10)+1;r*=t,e=Math.max(Math.min(r,3600),10)}var n=Date.now()+1e3*e;this._retryAt=n},gd.prototype._setupTimer=function(){var t=this;if(!this._timeoutHandle){var e=this._retryAt?Math.max(0,this._retryAt-Date.now()):0,i=Math.max(this._config.maxBatchInterval(),e);this._timeoutHandle=setTimeout(function(){t.triggerSend()},i)}},gd.prototype._isRetriable=function(t){return 408==t||429==t||500==t||503==t},gd.prototype._formatErrorMessageXhr=function(t,e){return t?\"XMLHttpRequest,Status:\"+t.status+\",Response:\"+t.responseText||t.response||\"\":e},gd.prototype._xdrSender=function(e,t){var i=this,r=new XDomainRequest;r.onload=function(){return i._xdrOnLoad(r,e)},r.onerror=function(t){return i._onError(e,i._formatErrorMessageXdr(r),t)};var n=window.location&&window.location.protocol;if(0!==this._config.endpointUrl().lastIndexOf(n,0))return this._logger.throwInternal(cu.WARNING,$u,\". Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\"),void this._buffer.clear();var o=this._config.endpointUrl().replace(/^(https?:)/,\"\");r.open(\"POST\",o);var a=this._buffer.batchPayloads(e);r.send(a),this._buffer.markAsSent(e)},gd.prototype._formatErrorMessageXdr=function(t,e){return t?\"XDomainRequest,Response:\"+t.responseText||\"\":e},gd);function gd(){this.priority=1001,this.identifier=_h,this._XMLHttpRequestSupported=!1}var yd=function(){},vd=(_d.prototype.update=function(){this.automaticSession.id||this.initializeAutomaticSession();var t=Hc.Now(),e=t-this.automaticSession.acquisitionDate>this.config.sessionExpirationMs(),i=t-this.automaticSession.renewalDate>this.config.sessionRenewalMs();e||i?this.renew():(!this.cookieUpdatedTimestamp||t-this.cookieUpdatedTimestamp>_d.cookieUpdateInterval)&&(this.automaticSession.renewalDate=t,this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate))},_d.prototype.backup=function(){this.setStorage(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate)},_d.prototype.initializeAutomaticSession=function(){var t=Bc.getCookie(this._logger,this._storageNamePrefix());if(t&&\"function\"==typeof t.split)this.initializeAutomaticSessionWithData(t);else{var e=Bc.getStorage(this._logger,this._storageNamePrefix());e&&this.initializeAutomaticSessionWithData(e)}this.automaticSession.id||this.renew()},_d.prototype.initializeAutomaticSessionWithData=function(t){var e=t.split(\"|\");0<e.length&&(this.automaticSession.id=e[0]);try{if(1<e.length){var i=+e[1];this.automaticSession.acquisitionDate=+new Date(i),this.automaticSession.acquisitionDate=0<this.automaticSession.acquisitionDate?this.automaticSession.acquisitionDate:0}if(2<e.length){var r=+e[2];this.automaticSession.renewalDate=+new Date(r),this.automaticSession.renewalDate=0<this.automaticSession.renewalDate?this.automaticSession.renewalDate:0}}catch(t){this._logger.throwInternal(cu.CRITICAL,Tu,\"Error parsing ai_session cookie, session will be reset: \"+Bc.getExceptionName(t),{exception:Bc.dump(t)})}0==this.automaticSession.renewalDate&&this._logger.throwInternal(cu.WARNING,ju,\"AI session renewal date is 0, session will be reset.\")},_d.prototype.renew=function(){var t=Hc.Now();this.automaticSession.id=Bc.newId(),this.automaticSession.acquisitionDate=t,this.automaticSession.renewalDate=t,this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate),Bc.canUseLocalStorage()||this._logger.throwInternal(cu.WARNING,mu,\"Browser does not support local storage. Session durations will be inaccurate.\")},_d.prototype.setCookie=function(t,e,i){var r=e+this.config.sessionExpirationMs(),n=i+this.config.sessionRenewalMs(),o=new Date,a=[t,e,i];r<n?o.setTime(r):o.setTime(n);var s=this.config.cookieDomain?this.config.cookieDomain():null;Bc.setCookie(this._logger,this._storageNamePrefix(),a.join(\"|\")+\";expires=\"+o.toUTCString(),s),this.cookieUpdatedTimestamp=Hc.Now()},_d.prototype.setStorage=function(t,e,i){Bc.setStorage(this._logger,this._storageNamePrefix(),[t,e,i].join(\"|\"))},_d.acquisitionSpan=864e5,_d.renewalSpan=18e5,_d.cookieUpdateInterval=6e4,_d.cookieNameConst=\"ai_session\",_d);function _d(t,e){var i=this;lu.isNullOrUndefined(e)?this._logger=new Ac:this._logger=e,\"function\"!=typeof(t=t||{}).sessionExpirationMs&&(t.sessionExpirationMs=function(){return _d.acquisitionSpan}),\"function\"!=typeof t.sessionRenewalMs&&(t.sessionRenewalMs=function(){return _d.renewalSpan}),this.config=t,this._storageNamePrefix=function(){return i.config.namePrefix&&i.config.namePrefix()?_d.cookieNameConst+i.config.namePrefix():_d.cookieNameConst},this.automaticSession=new yd}var xd=function(){},bd=function(){this.id=\"browser\",this.deviceClass=\"Browser\"},wd=function(t){this.sdkVersion=(t.sdkExtension&&t.sdkExtension()?t.sdkExtension()+\"_\":\"\")+\"javascript:2.2.2\"},Sd=(Td.prototype.setAuthenticatedUserContext=function(t,e,i){if(void 0===i&&(i=!1),!this.validateUserInput(t)||e&&!this.validateUserInput(e))this._logger.throwInternal(cu.WARNING,mc,\"Setting auth user context failed. User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\",!0);else{this.authenticatedId=t;var r=this.authenticatedId;e&&(this.accountId=e,r=[this.authenticatedId,this.accountId].join(Td.cookieSeparator)),i&&Bc.setCookie(this._logger,Td.authUserCookieName,encodeURI(r),this.config.cookieDomain())}},Td.prototype.clearAuthenticatedUserContext=function(){this.authenticatedId=null,this.accountId=null,Bc.deleteCookie(this._logger,Td.authUserCookieName)},Td.prototype.validateUserInput=function(t){return!(\"string\"!=typeof t||!t||t.match(/,|;|=| |\\|/))},Td.cookieSeparator=\"|\",Td.userCookieName=\"ai_user\",Td.authUserCookieName=\"ai_authUser\",Td);function Td(t,e){this._logger=e;var i=Bc.getCookie(this._logger,Td.userCookieName);if(i){var r=i.split(Td.cookieSeparator);0<r.length&&(this.id=r[0])}if(this.config=t,!this.id){this.id=Bc.newId();var n=new Date,o=Bc.toISOStringForIE8(n);this.accountAcquisitionDate=o,n.setTime(n.getTime()+31536e6);var a=[this.id,o],s=this.config.cookieDomain?this.config.cookieDomain():void 0;Bc.setCookie(this._logger,Td.userCookieName,a.join(Td.cookieSeparator)+\";expires=\"+n.toUTCString(),s);var l=t.namePrefix&&t.namePrefix()?t.namePrefix()+\"ai_session\":\"ai_session\";Bc.removeStorage(this._logger,l)}this.accountId=t.accountId?t.accountId():void 0;var u=Bc.getCookie(this._logger,Td.authUserCookieName);if(u){var c=(u=decodeURI(u)).split(Td.cookieSeparator);c[0]&&(this.authenticatedId=c[0]),1<c.length&&c[1]&&(this.accountId=c[1])}}var Ed=function(){},Id=function(t,e,i){this.traceID=t||Bc.generateW3CId(),this.parentID=e,this.name=i,window&&window.location&&window.location.pathname&&(this.name=window.location.pathname)},Cd=(Ad.prototype.applySessionContext=function(t){var e=this.session||this.sessionManager.automaticSession;e&&\"string\"==typeof e.id&&(t.ext.app.sesId=e.id),this.session&&(\"string\"==typeof this.session.id?t.ext.app.sesId=this.session.id:t.ext.app.sesId=this.sessionManager.automaticSession.id)},Ad.prototype.applyOperatingSystemContxt=function(t){this.os&&this.os.name&&(t.ext.os=this.os)},Ad.prototype.applyApplicationContext=function(t){this.application&&(\"string\"==typeof this.application.ver&&(t.tags[yh.applicationVersion]=this.application.ver),\"string\"==typeof this.application.build&&(t.tags[yh.applicationBuild]=this.application.build))},Ad.prototype.applyDeviceContext=function(t){this.device&&(\"string\"==typeof this.device.id&&(t.ext.device.localId=this.device.id),\"string\"==typeof this.device.ip&&(t.ext.device.ip=this.device.ip),\"string\"==typeof this.device.model&&(t.ext.device.model=this.device.model),\"string\"==typeof this.device.deviceClass&&(t.ext.device.deviceClass=this.device.deviceClass))},Ad.prototype.applyInternalContext=function(t){this.internal&&(\"string\"==typeof this.internal.agentVersion&&(t.tags[yh.internalAgentVersion]=this.internal.agentVersion),\"string\"==typeof this.internal.sdkVersion&&(t.tags[yh.internalSdkVersion]=this.internal.sdkVersion))},Ad.prototype.applyLocationContext=function(t){this.location&&\"string\"==typeof this.location.ip&&(t.tags[yh.locationIp]=this.location.ip)},Ad.prototype.applyOperationContext=function(t){if(this.telemetryTrace){var e=t.ext.trace||{traceID:void 0,parentID:void 0};\"string\"==typeof this.telemetryTrace.traceID&&(e.traceID=this.telemetryTrace.traceID),\"string\"==typeof this.telemetryTrace.name&&(e.name=this.telemetryTrace.name),\"string\"==typeof this.telemetryTrace.parentID&&(e.parentID=this.telemetryTrace.parentID),t.ext.trace=e}},Ad.prototype.applyWebContext=function(t){this.web&&(t.ext.web=t.ext.web||{},t.ext.web=this.web)},Ad.prototype.applyUserContext=function(t){this.user&&(t.tags||(t.tags=[]),\"string\"==typeof this.user.accountId&&(t.tags[yh.userAccountId]=this.user.accountId),\"string\"==typeof this.user.id&&(t.ext.user.id=this.user.id),\"string\"==typeof this.user.authenticatedId&&(t.ext.user.authId=this.user.authenticatedId))},Ad.prototype.cleanUp=function(t){t.ext[mh.DeviceExt]&&0===Object.keys(t.ext[mh.DeviceExt]).length&&delete t.ext[mh.DeviceExt],t.ext[mh.UserExt]&&0===Object.keys(t.ext[mh.UserExt]).length&&delete t.ext[mh.UserExt],t.ext[mh.WebExt]&&0===Object.keys(t.ext[mh.WebExt]).length&&delete t.ext[mh.WebExt],t.ext[mh.OSExt]&&0===Object.keys(t.ext[mh.OSExt]).length&&delete t.ext[mh.OSExt],t.ext[mh.AppExt]&&0===Object.keys(t.ext[mh.AppExt]).length&&delete t.ext[mh.AppExt],t.ext[mh.TraceExt]&&0===Object.keys(t.ext[mh.TraceExt]).length&&delete t.ext[mh.TraceExt]},Ad);function Ad(t,e){\"undefined\"!=typeof window&&(this.sessionManager=new vd(e,t),this.application=new xd,this.device=new bd,this.internal=new wd(e),this.location=new Ed,this.user=new Sd(e,t),this.telemetryTrace=new Id,this.session=new yd),this.appId=function(){return null}}var kd=(Pd.getDefaultConfig=function(){return{instrumentationKey:function(){},accountId:function(){return null},sessionRenewalMs:function(){return 18e5},samplingPercentage:function(){return 100},sessionExpirationMs:function(){return 864e5},cookieDomain:function(){return null},sdkExtension:function(){return null},isBrowserLinkTrackingEnabled:function(){return!1},appId:function(){return null},namePrefix:function(){}}},Pd.prototype.initialize=function(e,t,i){var r=this,n=Pd.getDefaultConfig();function o(t){a._extensionConfig[t]=function(){return ch.getConfig(e,t,r.identifier,n[t]())}}this._extensionConfig=this._extensionConfig||Pd.getDefaultConfig();var a=this;for(var s in n)o(s);this._logger=t.logger,this.context=new Cd(t.logger,this._extensionConfig),this._breezeChannel=Bc.getExtension(i,_h),this.context.appId=function(){return r._breezeChannel?r._breezeChannel._appId:null}},Pd.prototype.processTelemetry=function(t){lu.isNullOrUndefined(t)||(t.name===Fp.envelopeType&&this._logger.resetInternalMessageCount(),this.context.session&&\"string\"!=typeof this.context.session.id&&this.context.sessionManager.update(),this._processTelemetryInternal(t),lu.isNullOrUndefined(this._nextPlugin)||this._nextPlugin.processTelemetry(t))},Pd.prototype.setNextPlugin=function(t){this._nextPlugin=t},Pd.prototype._processTelemetryInternal=function(t){t.tags||(t.tags=[]),t.ext||(t.ext={}),t.ext[mh.DeviceExt]=t.ext[mh.DeviceExt]||{},t.ext[mh.WebExt]=t.ext[mh.WebExt]||{},t.ext[mh.UserExt]=t.ext[mh.UserExt]||{},t.ext[mh.OSExt]=t.ext[mh.OSExt]||{},t.ext[mh.AppExt]=t.ext[mh.AppExt]||{},t.ext[mh.TraceExt]=t.ext[mh.TraceExt]||{},this.context.applySessionContext(t),this.context.applyApplicationContext(t),this.context.applyDeviceContext(t),this.context.applyOperationContext(t),this.context.applyUserContext(t),this.context.applyOperatingSystemContxt(t),this.context.applyWebContext(t),this.context.applyLocationContext(t),this.context.applyInternalContext(t),this.context.cleanUp(t)},Pd);function Pd(){this.priority=110,this.identifier=vh}var Md=function(){this.openDone=!1,this.setRequestHeaderDone=!1,this.sendDone=!1,this.abortDone=!1,this.onreadystatechangeCallbackAttached=!1},Ld=(Dd.prototype.getAbsoluteUrl=function(){return this.requestUrl?Uc.getAbsoluteUrl(this.requestUrl):null},Dd.prototype.getPathName=function(){return this.requestUrl?Rc.sanitizeUrl(this._logger,Uc.getCompleteUrl(this.method,this.requestUrl)):null},Dd);function Dd(t,e,i){this.completed=!1,this.requestHeadersSize=null,this.requestHeaders=null,this.ttfb=null,this.responseReceivingDuration=null,this.callbackDuration=null,this.ajaxTotalDuration=null,this.aborted=null,this.pageUrl=null,this.requestUrl=null,this.requestSize=0,this.method=null,this.status=null,this.requestSentTime=null,this.responseStartedTime=null,this.responseFinishedTime=null,this.callbackFinishedTime=null,this.endTime=null,this.originalOnreadystatechage=null,this.xhrMonitoringState=new Md,this.clientFailure=0,this.CalculateMetrics=function(){this.ajaxTotalDuration=Math.round(1e3*Hc.GetDuration(this.requestSentTime,this.responseFinishedTime))/1e3},this.traceID=t,this.spanID=e,this._logger=i}var Od=(zd.AttachEvent=function(t,e,i){var r=!1;return lu.isNullOrUndefined(t)||(lu.isNullOrUndefined(t.attachEvent)?lu.isNullOrUndefined(t.addEventListener)||(t.addEventListener(e,i,!1),r=!0):(t.attachEvent(\"on\"+e,i),r=!0)),r},zd.DetachEvent=function(t,e,i){lu.isNullOrUndefined(t)||(lu.isNullOrUndefined(t.detachEvent)?lu.isNullOrUndefined(t.removeEventListener)||t.removeEventListener(e,i,!1):t.detachEvent(\"on\"+e,i))},zd);function zd(){}var Rd=(Nd.isValidTraceId=function(t){return t.match(/^[0-9a-f]{32}$/)&&\"00000000000000000000000000000000\"!==t},Nd.isValidSpanId=function(t){return t.match(/^[0-9a-f]{16}$/)&&\"0000000000000000\"!==t},Nd.prototype.toString=function(){return this.version+\"-\"+this.traceId+\"-\"+this.spanId+\"-\"+this.traceFlag},Nd.DEFAULT_TRACE_FLAG=\"00\",Nd.DEFAULT_VERSION=\"00\",Nd);function Nd(t,e){this.traceFlag=Nd.DEFAULT_TRACE_FLAG,this.version=Nd.DEFAULT_VERSION,t&&Nd.isValidTraceId(t)?this.traceId=t:this.traceId=Bc.generateW3CId(),e&&Nd.isValidSpanId(e)?this.spanId=e:this.spanId=Bc.generateW3CId().substr(0,16)}var Bd=(Fd.prototype.isMonitoredInstance=function(t,e,i,r){var n=!1,o=!0,a=!1;return void 0!==i?(a=this._fetchInitialized,n=\"object\"==typeof i&&!0===i[Xc]||!!r&&!0===r[Xc]):void 0!==t&&(a=this.initialized,n=!0===t[Xc],o=!0===e||!lu.isNullOrUndefined(t.ajaxData)),a&&o&&!n},Fd.prototype.supportsAjaxMonitoring=function(){var e=!0;(lu.isNullOrUndefined(XMLHttpRequest)||lu.isNullOrUndefined(XMLHttpRequest.prototype)||lu.isNullOrUndefined(XMLHttpRequest.prototype.open)||lu.isNullOrUndefined(XMLHttpRequest.prototype.send)||lu.isNullOrUndefined(XMLHttpRequest.prototype.abort))&&(e=!1);try{\" a \".trim()}catch(t){e=!1}return e},Fd.prototype.instrumentOpen=function(){var r=XMLHttpRequest.prototype.open,n=this;XMLHttpRequest.prototype.open=function(t,e,i){try{!n.isMonitoredInstance(this,!0)||this.ajaxData&&this.ajaxData.xhrMonitoringState.openDone||n.openHandler(this,t,e,i)}catch(t){n._core.logger.throwInternal(cu.CRITICAL,Pu,\"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(this),exception:Bc.dump(t)})}return r.apply(this,arguments)}},Fd.prototype.openHandler=function(t,e,i,r){var n=this._context&&this._context.telemetryTrace&&this._context.telemetryTrace.traceID||Bc.generateW3CId(),o=Bc.generateW3CId().substr(0,16),a=new Ld(n,o,this._core.logger);a.method=e,a.requestUrl=i,a.xhrMonitoringState.openDone=!0,a.requestHeaders={},t.ajaxData=a,this.attachToOnReadyStateChange(t)},Fd.getFailedAjaxDiagnosticsMessage=function(t){var e=\"\";try{lu.isNullOrUndefined(t)||lu.isNullOrUndefined(t.ajaxData)||lu.isNullOrUndefined(t.ajaxData.requestUrl)||(e+=\"(url: '\"+t.ajaxData.requestUrl+\"')\")}catch(t){}return e},Fd.prototype.instrumentSend=function(){var e=XMLHttpRequest.prototype.send,i=this;XMLHttpRequest.prototype.send=function(t){try{i.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.sendDone&&i.sendHandler(this,t)}catch(t){i._core.logger.throwInternal(cu.CRITICAL,Lu,\"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(this),exception:Bc.dump(t)})}return e.apply(this,arguments)}},Fd.prototype.sendHandler=function(t,e){t.ajaxData.requestSentTime=Hc.Now(),(t=this.includeCorrelationHeaders(t.ajaxData,void 0,void 0,t)).ajaxData.xhrMonitoringState.sendDone=!0},Fd.prototype.instrumentAbort=function(){var t=XMLHttpRequest.prototype.abort,e=this;XMLHttpRequest.prototype.abort=function(){try{e.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.abortDone&&(this.ajaxData.aborted=1,this.ajaxData.xhrMonitoringState.abortDone=!0)}catch(t){e._core.logger.throwInternal(cu.CRITICAL,Au,\"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(this),exception:Bc.dump(t)})}return t.apply(this,arguments)}},Fd.prototype.instrumentSetRequestHeader=function(){if(this._config.enableRequestHeaderTracking){var i=XMLHttpRequest.prototype.setRequestHeader,r=this;XMLHttpRequest.prototype.setRequestHeader=function(t,e){try{r.isMonitoredInstance(this)&&(this.ajaxData.requestHeaders[t]=e)}catch(t){r._core.logger.throwInternal(cu.CRITICAL,Ec,\"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(this),exception:Bc.dump(t)})}return i.apply(this,arguments)}}},Fd.prototype.attachToOnReadyStateChange=function(i){var r=this;i.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached=Od.AttachEvent(i,\"readystatechange\",function(){try{r.isMonitoredInstance(i)&&4===i.readyState&&r.onAjaxComplete(i)}catch(t){var e=Bc.dump(t);e&&-1!=e.toLowerCase().indexOf(\"c00c023f\")||r._core.logger.throwInternal(cu.CRITICAL,Mu,\"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(i),exception:Bc.dump(t)})}})},Fd.prototype.onAjaxComplete=function(t){if(t.ajaxData.responseFinishedTime=Hc.Now(),t.ajaxData.status=t.status,t.ajaxData.CalculateMetrics(),t.ajaxData.ajaxTotalDuration<0)this._core.logger.throwInternal(cu.WARNING,ku,\"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(t),requestSentTime:t.ajaxData.requestSentTime,responseFinishedTime:t.ajaxData.responseFinishedTime});else{var e={id:\"|\"+t.ajaxData.traceID+\".\"+t.ajaxData.spanID,target:t.ajaxData.getAbsoluteUrl(),name:t.ajaxData.getPathName(),type:\"Ajax\",duration:t.ajaxData.ajaxTotalDuration,success:200<=+t.ajaxData.status&&+t.ajaxData.status<400,responseCode:+t.ajaxData.status,method:t.ajaxData.method},i=this.getAjaxCorrelationContext(t);if(i&&(e.correlationContext=i),this._config.enableRequestHeaderTracking&&0<Object.keys(t.ajaxData.requestHeaders).length&&(e.properties=e.properties||{},e.properties.requestHeaders={},e.properties.requestHeaders=t.ajaxData.requestHeaders),this._config.enableResponseHeaderTracking){var r=t.getAllResponseHeaders();if(r){var n=r.trim().split(/[\\r\\n]+/),o={};n.forEach(function(t){var e=t.split(\": \"),i=e.shift(),r=e.join(\": \");o[i]=r}),0<Object.keys(o).length&&(e.properties=e.properties||{},e.properties.responseHeaders={},e.properties.responseHeaders=o)}}this.trackDependencyDataInternal(e),t.ajaxData=null}},Fd.prototype.getAjaxCorrelationContext=function(e){try{var t=e.getAllResponseHeaders();if(null!==t&&-1!==t.toLowerCase().indexOf(Oc.requestContextHeaderLowerCase)){var i=e.getResponseHeader(Oc.requestContextHeader);return qc.getCorrelationContext(i)}}catch(t){this._core.logger.throwInternal(cu.WARNING,Du,\"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\",{ajaxDiagnosticsMessage:Fd.getFailedAjaxDiagnosticsMessage(e),exception:Bc.dump(t)})}},Fd.prototype.trackDependencyDataInternal=function(t,e,i){if(-1===this._config.maxAjaxCallsPerView||this._trackAjaxAttempts<this._config.maxAjaxCallsPerView){var r=dh.create(t,Zp.dataType,Zp.envelopeType,this._core.logger,e,i);this._core.track(r)}else this._trackAjaxAttempts===this._config.maxAjaxCallsPerView&&this._core.logger.throwInternal(cu.CRITICAL,pc,\"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\",!0);++this._trackAjaxAttempts},Fd.prototype.trackDependencyData=function(t,e){this.trackDependencyDataInternal(t,e)},Fd.prototype.processTelemetry=function(t){this._nextPlugin&&this._nextPlugin.processTelemetry&&this._nextPlugin.processTelemetry(t)},Fd.prototype.setNextPlugin=function(t){t&&(this._nextPlugin=t)},Fd.prototype.instrumentFetch=function(){if(this.supportsFetch()&&!this._fetchInitialized){var r=window.fetch,n=this;window.fetch=function(e,t){var i;if(n.isFetchInstrumented(e)&&n.isMonitoredInstance(void 0,void 0,e,t))try{i=n.createFetchRecord(e,t),t=n.includeCorrelationHeaders(i,e,t)}catch(t){n._core.logger.throwInternal(cu.CRITICAL,Pu,\"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\",{ajaxDiagnosticsMessage:this.getFailedFetchDiagnosticsMessage(e),exception:Bc.dump(t)})}return r(e,t).then(function(t){return n.onFetchComplete(t,i),t}).catch(function(t){throw n.onFetchFailed(e,i,t),t})},this._fetchInitialized=!0}},Fd.prototype.isFetchInstrumented=function(t){return this._fetchInitialized&&!0!==t[Xc]},Fd.prototype.supportsFetch=function(){var t=!0;return(!window||lu.isNullOrUndefined(window.Request)||lu.isNullOrUndefined(window.Request.prototype)||lu.isNullOrUndefined(window.fetch))&&(t=!1),t},Fd.prototype.createFetchRecord=function(t,e){var i=this._context&&this._context.telemetryTrace&&this._context.telemetryTrace.traceID||Bc.generateW3CId(),r=Bc.generateW3CId().substr(0,16),n=new Ld(i,r,this._core.logger);return n.requestSentTime=Hc.Now(),t instanceof Request?n.requestUrl=t?t.url:\"\":n.requestUrl=t,e&&e.method?n.method=e.method:t&&t instanceof Request?n.method=t.method:n.method=\"GET\",e&&e.headers&&this._config.enableRequestHeaderTracking?n.requestHeaders=e.headers:n.requestHeaders={},n},Fd.prototype.includeCorrelationHeaders=function(t,e,i,r){if(e){if(qc.canIncludeCorrelationHeader(this._config,t.getAbsoluteUrl(),this.currentWindowHost)){if((i=i||{}).headers=new Headers(i.headers||e instanceof Request&&e.headers||{}),this._isUsingAIHeaders){var n=\"|\"+t.traceID+\".\"+t.spanID;i.headers.set(Oc.requestIdHeader,n),this._config.enableRequestHeaderTracking&&(t.requestHeaders[Oc.requestIdHeader]=n)}var o=this._config.appId||this._context.appId();if(o&&(i.headers.set(Oc.requestContextHeader,Oc.requestContextAppIdFormat+o),this._config.enableRequestHeaderTracking&&(t.requestHeaders[Oc.requestContextHeader]=Oc.requestContextAppIdFormat+o)),this._isUsingW3CHeaders){var a=new Rd(t.traceID,t.spanID);i.headers.set(Oc.traceParentHeader,a.toString()),this._config.enableRequestHeaderTracking&&(t.requestHeaders[Oc.traceParentHeader]=a.toString())}return i}return i}if(r){if(this.currentWindowHost&&qc.canIncludeCorrelationHeader(this._config,r.ajaxData.getAbsoluteUrl(),this.currentWindowHost)){this._isUsingAIHeaders&&(n=\"|\"+r.ajaxData.traceID+\".\"+r.ajaxData.spanID,r.setRequestHeader(Oc.requestIdHeader,n),this._config.enableRequestHeaderTracking&&(r.ajaxData.requestHeaders[Oc.requestIdHeader]=n));var s=this._config.appId||this._context.appId();s&&(r.setRequestHeader(Oc.requestContextHeader,Oc.requestContextAppIdFormat+s),this._config.enableRequestHeaderTracking&&(r.ajaxData.requestHeaders[Oc.requestContextHeader]=Oc.requestContextAppIdFormat+s)),this._isUsingW3CHeaders&&(a=new Rd(r.ajaxData.traceID,r.ajaxData.spanID),r.setRequestHeader(Oc.traceParentHeader,a.toString()),this._config.enableRequestHeaderTracking&&(r.ajaxData.requestHeaders[Oc.traceParentHeader]=a.toString()))}return r}},Fd.prototype.getFailedFetchDiagnosticsMessage=function(t){var e=\"\";try{lu.isNullOrUndefined(t)||(e+=\"string\"==typeof t?\"(url: '\"+t+\"')\":\"(url: '\"+t.url+\"')\")}catch(t){this._core.logger.throwInternal(cu.CRITICAL,Pu,\"Failed to grab failed fetch diagnostics message\",{exception:Bc.dump(t)})}return e},Fd.prototype.onFetchComplete=function(e,t){if(t)try{if(t.responseFinishedTime=Hc.Now(),t.CalculateMetrics(),t.ajaxTotalDuration<0)this._core.logger.throwInternal(cu.WARNING,ku,\"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\",{fetchDiagnosticsMessage:this.getFailedFetchDiagnosticsMessage(e),requestSentTime:t.requestSentTime,responseFinishedTime:t.responseFinishedTime});else{var i={id:\"|\"+t.traceID+\".\"+t.spanID,target:t.getAbsoluteUrl(),name:t.getPathName(),type:\"Fetch\",duration:t.ajaxTotalDuration,success:200<=e.status&&e.status<400,responseCode:e.status,properties:{HttpMethod:t.method}},r=this.getFetchCorrelationContext(e);if(r&&(i.correlationContext=r),this._config.enableRequestHeaderTracking&&0<Object.keys(t.requestHeaders).length&&(i.properties=i.properties||{},i.properties.requestHeaders=t.requestHeaders),this._config.enableResponseHeaderTracking){var n={};e.headers.forEach(function(t,e){n[e]=t}),0<Object.keys(n).length&&(i.properties=i.properties||{},i.properties.responseHeaders=n)}this.trackDependencyDataInternal(i)}}catch(t){this._core.logger.throwInternal(cu.WARNING,Du,\"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\",{fetchDiagnosticsMessage:this.getFailedFetchDiagnosticsMessage(e),exception:Bc.dump(t)})}},Fd.prototype.onFetchFailed=function(e,t,i){if(t)try{if(t.responseFinishedTime=Hc.Now(),t.CalculateMetrics(),t.ajaxTotalDuration<0)this._core.logger.throwInternal(cu.WARNING,ku,\"Failed to calculate the duration of the failed fetch call, monitoring data for this fetch call won't be sent.\",{fetchDiagnosticsMessage:this.getFailedFetchDiagnosticsMessage(e),requestSentTime:t.requestSentTime,responseFinishedTime:t.responseFinishedTime});else{var r={id:\"|\"+t.traceID+\".\"+t.spanID,target:t.getAbsoluteUrl(),name:t.getPathName(),type:\"Fetch\",duration:t.ajaxTotalDuration,success:!1,responseCode:0,properties:{HttpMethod:t.method}};this.trackDependencyDataInternal(r,{error:i.message})}}catch(t){this._core.logger.throwInternal(cu.WARNING,Du,\"Failed to calculate the duration of the failed fetch call, monitoring data for this fetch call won't be sent.\",{fetchDiagnosticsMessage:this.getFailedFetchDiagnosticsMessage(e),exception:Bc.dump(t)})}},Fd.prototype.getFetchCorrelationContext=function(e){try{var t=e.headers.get(Oc.requestContextHeader);return qc.getCorrelationContext(t)}catch(t){this._core.logger.throwInternal(cu.WARNING,Du,\"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\",{fetchDiagnosticsMessage:this.getFailedFetchDiagnosticsMessage(e),exception:Bc.dump(t)})}},Fd.prototype.instrumentXhr=function(){this.supportsAjaxMonitoring()&&!this.initialized&&(this.instrumentOpen(),this.instrumentSend(),this.instrumentAbort(),this.instrumentSetRequestHeader(),this.initialized=!0)},Fd.getDefaultConfig=function(){return{maxAjaxCallsPerView:500,disableAjaxTracking:!1,disableFetchTracking:!0,disableCorrelationHeaders:!1,distributedTracingMode:iu.AI,correlationHeaderExcludedDomains:[\"*.blob.core.windows.net\",\"*.blob.core.chinacloudapi.cn\",\"*.blob.core.cloudapi.de\",\"*.blob.core.usgovcloudapi.net\"],correlationHeaderDomains:void 0,appId:void 0,enableCorsCorrelation:!1,enableRequestHeaderTracking:!1,enableResponseHeaderTracking:!1}},Fd.getEmptyConfig=function(){return{maxAjaxCallsPerView:void 0,disableAjaxTracking:void 0,disableFetchTracking:void 0,disableCorrelationHeaders:void 0,distributedTracingMode:void 0,correlationHeaderExcludedDomains:void 0,appId:void 0,enableCorsCorrelation:void 0,correlationHeaderDomains:void 0,enableRequestHeaderTracking:void 0,enableResponseHeaderTracking:void 0}},Fd.prototype.initialize=function(t,e,i){if(!this.initialized&&!this._fetchInitialized){this._core=e;var r=Fd.getDefaultConfig();for(var n in this._config=Fd.getEmptyConfig(),r)this._config[n]=ch.getConfig(t,n,Fd.identifier,r[n]);if(this._isUsingAIHeaders=this._config.distributedTracingMode===iu.AI||this._config.distributedTracingMode===iu.AI_AND_W3C,this._isUsingW3CHeaders=this._config.distributedTracingMode===iu.AI_AND_W3C||this._config.distributedTracingMode===iu.W3C,!1===this._config.disableAjaxTracking&&this.instrumentXhr(),!1===this._config.disableFetchTracking&&this.instrumentFetch(),0<i.length&&i){for(var o=void 0,a=0;!o&&a<i.length;)i[a]&&i[a].identifier===vh&&(o=i[a]),a++;o&&(this._context=o.context)}}},Fd.identifier=\"AjaxDependencyPlugin\",Fd);function Fd(){this._trackAjaxAttempts=0,this.identifier=Fd.identifier,this.priority=120,this.currentWindowHost=window&&window.location&&window.location.host&&window.location.host.toLowerCase(),this.initialized=!1,this._fetchInitialized=!1}var Ud=(jd.prototype.trackEvent=function(t,e){this.appInsights.trackEvent(t,e)},jd.prototype.trackPageView=function(t){var e=t||{};this.appInsights.trackPageView(e)},jd.prototype.trackPageViewPerformance=function(t){var e=t||{};this.appInsights.trackPageViewPerformance(e)},jd.prototype.trackException=function(t){!t.exception&&t.error&&(t.exception=t.error),this.appInsights.trackException(t)},jd.prototype._onerror=function(t){this.appInsights._onerror(t)},jd.prototype.trackTrace=function(t,e){this.appInsights.trackTrace(t,e)},jd.prototype.trackMetric=function(t,e){this.appInsights.trackMetric(t,e)},jd.prototype.startTrackPage=function(t){this.appInsights.startTrackPage(t)},jd.prototype.stopTrackPage=function(t,e,i,r){this.appInsights.stopTrackPage(t,e,i,r)},jd.prototype.startTrackEvent=function(t){this.appInsights.startTrackEvent(t)},jd.prototype.stopTrackEvent=function(t,e,i){this.appInsights.stopTrackEvent(t,e,i)},jd.prototype.addTelemetryInitializer=function(t){return this.appInsights.addTelemetryInitializer(t)},jd.prototype.setAuthenticatedUserContext=function(t,e,i){void 0===i&&(i=!1),this.properties.context.user.setAuthenticatedUserContext(t,e,i)},jd.prototype.clearAuthenticatedUserContext=function(){this.properties.context.user.clearAuthenticatedUserContext()},jd.prototype.trackDependencyData=function(t){this.dependencies.trackDependencyData(t)},jd.prototype.flush=function(e){void 0===e&&(e=!0),this.core.getTransmissionControls().forEach(function(t){t.forEach(function(t){t.flush(e)})})},jd.prototype.onunloadFlush=function(e){void 0===e&&(e=!0),this.core.getTransmissionControls().forEach(function(t){t.forEach(function(t){t.onunloadFlush?t.onunloadFlush():t.flush(e)})})},jd.prototype.loadAppInsights=function(t){if(void 0===t&&(t=!1),t&&this.config.extensions&&0<this.config.extensions.length)throw new Error(\"Extensions not allowed in legacy mode\");var e=[],i=new md;return e.push(i),e.push(this.properties),e.push(this.dependencies),e.push(this.appInsights),this.core.initialize(this.config,e),this.emptyQueue(),this.pollInternalLogs(),this.addHousekeepingBeforeUnload(this),this.context=this.properties.context,this},jd.prototype.updateSnippetDefinitions=function(t){for(var e in this)\"string\"==typeof e&&(t[e]=this[e])},jd.prototype.emptyQueue=function(){try{if(Bc.isArray(this.snippet.queue)){for(var t=this.snippet.queue.length,e=0;e<t;e++)(0,this.snippet.queue[e])();this.snippet.queue=void 0,delete this.snippet.queue}}catch(t){var i={};t&&\"function\"==typeof t.toString&&(i.exception=t.toString())}},jd.prototype.pollInternalLogs=function(){this.core.pollInternalLogs()},jd.prototype.addHousekeepingBeforeUnload=function(e){!e.appInsights.config.disableFlushOnBeforeUnload&&\"onbeforeunload\"in window&&(Bc.addEventHandler(\"beforeunload\",function(){e.onunloadFlush(!1);var t=e.appInsights.core._extensions[vh];t&&t.context&&t.context._sessionManager&&t.context._sessionManager.backup()})||e.appInsights.core.logger.throwInternal(cu.CRITICAL,Ou,\"Could not add handler for beforeunload\"))},jd.prototype.getSKUDefaults=function(){this.config.diagnosticLogInterval=this.config.diagnosticLogInterval&&0<this.config.diagnosticLogInterval?this.config.diagnosticLogInterval:1e4},jd);function jd(t){t.queue=t.queue||[],t.version=t.version||2;var e=t.config||{};e&&!e.instrumentationKey&&(e=t,Ah.Version=\"2.2.2\"),this.appInsights=new Ah,this.properties=new kd,this.dependencies=new Bd,this.core=new Lc,this.snippet=t,this.config=e,this.getSKUDefaults()}var qd=(Vd.prototype.trackEvent=function(t,e){!this.options.disableTelemetry&&this.appInsights&&this.appInsights.trackEvent(t,e)},Vd.prototype.setAuthenticatedUserContext=function(t,e){!this.options.disableTelemetry&&this.appInsights&&this.appInsights.setAuthenticatedUserContext(t,e)},Vd.prototype.trackException=function(t){!this.options.disableTelemetry&&this.appInsights&&this.appInsights.trackException(t)},Vd.prototype.flush=function(t){!this.options.disableTelemetry&&this.appInsights&&this.appInsights.flush(t)},Vd);function Vd(t){this.options=t,!this.options.disableTelemetry&&s&&(this.appInsights=new Ud({config:{instrumentationKey:s,disableExceptionTracking:!0,disableAjaxTracking:!0,isCookieUseDisabled:!0,maxBatchInterval:5e3}}),this.appInsights.loadAppInsights(),this.appInsights.addTelemetryInitializer(function(t){t.tags[yh.applicationVersion]=O.getFullVersion()}))}var Gd=(Zd.prototype.onAdd=function(t){return this.container=document.createElement(\"div\"),this.container.className=\"azure-map-logo\",this.container},Zd.prototype.onRemove=function(){this.container.remove()},Zd);function Zd(){}var Hd,Kd=(b(Wd,Hd=E),Wd);function Wd(){var t=null!==Hd&&Hd.apply(this,arguments)||this;return t.copyrightMessage=void 0,t.showFeedbackLink=!0,t}var Xd,Yd=(b(Jd,Xd=at),Jd.prototype.onAdd=function(t){return this.container=this.buildContainer(t,p.ControlStyle.auto),this.container.className=\"map-copyright\",this.copyrightDiv=this.buildCopyrightDiv(),this.container.appendChild(this.copyrightDiv),this.options.showFeedbackLink&&(this.feedbackLink=this.buildFeedbackLink(),this.container.appendChild(this.feedbackLink)),this.container},Jd.prototype.onRemove=function(){Xd.prototype.onRemove.call(this),delete this.container},Jd.prototype.setOptions=function(t){var e=(new Kd).merge(this.options,t);e.copyrightMessage!==this.options.copyrightMessage&&(this.copyrightDiv.innerText=e.copyrightMessage),!e.showFeedbackLink&&this.feedbackLink?(this.feedbackLink.remove(),delete this.feedbackLink):e.showFeedbackLink&&!this.feedbackLink&&(this.feedbackLink=this.buildFeedbackLink(),this.container.appendChild(this.feedbackLink)),this.options=e},Jd.prototype.buildCopyrightDiv=function(){var t=document.createElement(\"div\");return t.innerText=this.options.copyrightMessage||\"\",t},Jd.prototype.buildFeedbackLink=function(){var t=document.createElement(\"a\");return t.textContent=\"Improve this map\",t.href=\"https://feedback.azuremaps.com\",t.target=\"_blank\",t.rel=\"noopener\",t},Jd);function Jd(t){var e=Xd.call(this)||this;return e.options=(new Kd).merge(t),e}var Qd=($d.throwOnError=function(t,e){var i=t instanceof ig?t._getMap():t,r=function(t){throw i.off(\"error\",r),t.error};i.on(\"error\",r);var n=e();return i.off(\"error\",r),n},$d.tryCatch=function(t,e,i,r){try{return this.throwOnError(t,e)}catch(t){return i(t)}finally{\"function\"==typeof r&&r()}},$d.tryFinally=function(t,e,i){try{return this.throwOnError(t,e)}finally{i()}},$d);function $d(){}var tf=(ef.prototype.request=function(t){var e={domain:this.map.getServiceOptions().domain,path:\"search/address/reverse/json\",queryParams:w({\"api-version\":\"1.0\",language:t.style.language,limit:1,query:io(t.position[1])+\",\"+ro(t.position[0])},t.style.view&&{view:t.style.view})};return new P(this.map.authentication.signRequest(e)).get()},ef);function ef(t){this.map=t}var rf=(nf.prototype.cache=function(t,e,i,r){var n=t+\"_\"+i[0]+\"_\"+i[1]+\"_\"+r;this._labelIdx[e.labelType]||(this._labelIdx[e.labelType]=[],this._labelCache[e.labelType]=[]),-1===this._labelIdx[e.labelType].indexOf(n)&&(this._labelCache[e.labelType].push({name:t,radius:e.radius,minZoom:e.minZoom,maxZoom:e.maxZoom||24,position:i}),this._labelIdx[e.labelType].push(n))},nf.prototype.getNearestLabel=function(t,e,i){var r=null,n=this._labelCache[t];if(n)for(var o=1/0,a=0,s=n.length;a<s;a++)if(i>=n[a].minZoom&&i<=n[a].maxZoom){var l=Yn(n[a].position,e);l<=n[a].radius&&l<=o&&(o=l,r=n[a])}return r},nf.prototype._preloadCache=function(t){if(!this._preloadedCache.has(t)){this._preloadedCache.add(t);var e={source:[\"Ocean label\",\"Ocean name\"],labelType:\"water\",minZoom:0,radius:395e4,polygonSources:[\"Ocean\",\"Ocean or sea\"]},i=t,r=i.indexOf(\"-\");switch(-1!==r&&(i=i.substr(0,r)),i){case\"fr\":this.cache(\"Océan Pacifique\",e,[-170,32],t),this.cache(\"Océan Pacifique\",e,[-138,-27],t),this.cache(\"Océan Atlantique\",e,[-40,32],t),this.cache(\"Océan Atlantique\",e,[-17,-29],t);break;case\"es\":this.cache(\"Océan Pacifique\",e,[-170,32],t),this.cache(\"Océan Pacifique\",e,[-138,-27],t),this.cache(\"Océano Atlántico\",e,[-40,32],t),this.cache(\"Océano Atlántico\",e,[-17,-29],t);break;case\"pt\":this.cache(\"Oceano Pacífico\",e,[-170,32],t),this.cache(\"Oceano Pacífico\",e,[-138,-27],t),this.cache(\"Oceano Atlântico\",e,[-40,32],t),this.cache(\"Oceano Atlântico\",e,[-17,-29],t);break;case\"ja\":this.cache(\"太平洋\",e,[-170,32],t),this.cache(\"太平洋\",e,[-138,-27],t);break;case\"en\":this.cache(\"Pacific Ocean\",e,[-170,32],t),this.cache(\"Pacific Ocean\",e,[-138,-27],t),this.cache(\"Atlantic Ocean\",e,[-40,32],t),this.cache(\"Atlantic Ocean\",e,[-17,-29],t),this.cache(\"Indian Ocean\",e,[77,-26],t)}}},nf);function nf(){this._labelCache={},this._labelIdx={},this._preloadedCache=new Set}var of=(af.prototype.dispose=function(){this._disposed=!0,this._map._getMap().off(\"move\",this._onMove),this._map._getMap().off(\"moveend\",this._onMoveEnd),this._map._getMap().off(\"styledata\",this._onStyleData),this._map._getMap().off(\"rotate\",this._onRotate),this._map.getCanvas().removeEventListener(\"mousedown\",this._onPointerDown),this._map.getCanvas().removeEventListener(\"touchstart\",this._onPointerDown),this._map.getMapContainer().removeEventListener(\"keydown\",this._shortcutListener)},af.prototype._getEventPos=function(t){if(\"touches\"in t){var e=t.touches[0],i=t.target.getBoundingClientRect();return[e.pageX-i.left,e.pageY-i.top]}return[t.offsetX,t.offsetY]},af.prototype._checkThresholds=function(t,e){return this._checkZoomThreshold(t.zoom,e.zoom)||this._checkPitchThreshold(t.pitch,e.pitch)||this._checkLocThreshold(t.center,e.center)||this._checkHeadingThreshold(t.bearing,e.bearing)},af.prototype._checkZoomThreshold=function(t,e){return this._round(t)!==this._round(e)},af.prototype._checkPitchThreshold=function(t,e){return Math.abs(t-e)>=this._pitchThreshold},af.prototype._checkLocThreshold=function(t,e){var i=this._map.positionsToPixels([e,t]),r=i[0],n=i[1];return mn.getDistance(r,n)>=this._moveThreshold},af.prototype._checkHeadingThreshold=function(t,e){t<0&&(t+=360),e<0&&(e+=360);var i=Math.abs(t-e);return 180<i&&(i=360-i),i>=this._headingThreshold},af.prototype._getLocDesc=function(p,h,d){return S(this,void 0,void 0,function(){var e,i,r,n,o,a,s,l,u,c=this;return T(this,function(t){switch(t.label){case 0:return\"blank\"===d?[3,3]:this._map._getMap().loaded()?[3,2]:[4,new Promise(function(t){return c._map._getMap().once(\"idle\",t)})];case 1:t.sent(),t.label=2;case 2:for(e={},i=this._map.positionsToPixels([p.center])[0],Qd.tryCatch(this._map,function(){r=c._map._getMap().queryRenderedFeatures(i,{layers:c._polygonStyleLayer,filter:[\"==\",[\"geometry-type\"],\"Polygon\"]})},function(){}),n=null,r&&0<r.length&&(n=r[0]),o=null,a=0,s=this._lableConfig.length;a<s;a++)l=this._lableConfig[a],p.zoom>=l.minZoom?l.polygonSources?n&&-1!==l.polygonSources.indexOf(n.layer[\"source-layer\"])?(o=l.labelType,this._getClosestLabel(l,p,h,e,!1)):this._getClosestLabel(l,p,h,e,!0):this._getClosestLabel(l,p,h,e,!1):this._getClosestLabel(l,p,h,e,!0);return 8<=p.zoom&&this._processRoads(e,p,h),this._labelCache.forEach(function(t){e[t]||(u=null,(\"water\"!==t&&\"majorPoi\"!==t||t===o)&&(u=af._labelCache.getNearestLabel(t,p.center,p.zoom)),u&&(e[t]=u.name))}),[2,this._processLocInfo(p,o,e,!0,this._restFallback)];case 3:return[2,this._processLocInfo(p,null,null,!1,!1)]}})})},af.prototype._getHeadingDesc=function(t){var e=t.bearing;switch(e<0&&(e+=360),e=this._round(e,this._headingThreshold)){case 0:case 360:return\"north\";case 45:return\"north east\";case 90:return\"east\";case 135:return\"south east\";case 180:return\"south\";case 225:return\"south west\";case 270:return\"west\";case 315:return\"north west\";default:return e+\" degrees\"}},af.prototype._getClosestLabel=function(t,e,i,r,n){for(var o=t.radius,a=0,s=t.source.length;a<s;a++){var l={sourceLayer:t.source[a]},u=this._map._getMap().querySourceFeatures(this._baseVectorTileSourceId,l),c=null,p=1/0,h=this._labelCache.has(t.labelType);if(!n||n&&h)for(var d=0,f=u.length;d<f;d++){var m=\"Point\"===u[d].geometry.type?u[d]:_o(e.center,u[d].geometry);if(!n){var g=\"Point\"===u[d].geometry.type?Yn(e.center,m.geometry.coordinates):m.properties.distance;g<p&&(p=g,c=u[d])}h&&af._labelCache.cache(u[d].properties.name,t,m.geometry.coordinates,i)}if(!n){var y=t.labelType+\"Dis\";c&&p<=o&&(\"number\"!=typeof r[y]||p<=r[y])&&(r[t.labelType]=c.properties.name,r[y]=p)}}},af.prototype._processRoads=function(t,e,i,r){var n=this._map._getMap().queryRenderedFeatures(r,{filter:[\"==\",[\"geometry-type\"],\"LineString\"]});if(n){for(var o=void 0,a=void 0,s=void 0,l=void 0,u=0,c=n.length;u<c;u++)if(this._roadLayers.has(n[u].layer[\"source-layer\"])&&n[u].properties.name&&\"\"!==n[u].properties.name){var p=_o(e.center,n[u]);(!s||p.properties.distance<s.properties.distance)&&(o&&n[u].properties.name===o.properties.name?s=p:o&&n[u].properties.name===o.properties.name?(!l||p.properties.distance<l.properties.distance)&&(l=p,a=n[u]):(l=s,a=o,s=p,o=n[u]))}if(o&&(t.country||(t.country=o.properties.country_code,t.countryDis=0,af._labelCache.cache(t.country,{source:[\"Country name\"],labelType:\"country\",radius:5e3,minZoom:0},s.geometry.coordinates,i)),t.state||(t.state=o.properties.country_subdivision,t.stateDis=0,af._labelCache.cache(t.state,{source:[\"State name\"],labelType:\"state\",radius:5e3,minZoom:4},s.geometry.coordinates,i)),15<=e.zoom)){var h=this._map.positionsToPixels([e.center,s.geometry.coordinates]),d=mn.getDistance(h[0],h[1]);if((d<this._roadPixelRadius||s.properties.distance<this._minRoadDistance)&&(t.road=o.properties.name),a){var f=this._map.positionsToPixels([l.geometry.coordinates]);((d=mn.getDistance(h[0],f[0]))<this._minIntersectionPixelDistance||l.properties.distance<this._minRoadDistance)&&(t.secondRoad=a.properties.name,t.secondRoadDis=l.properties.distance)}}}},af.prototype._getActionDesc=function(t){if(this._lastCam){var e=[];if(this._checkLocThreshold(t.center,this._lastCam.center)){var i=[\"panned\"],r=Math.round(Qn(this._lastCam.center,t.center));0===r||360===r?i.push(\"north\"):r<90?i.push(\"north east\"):90===r?i.push(\"east\"):r<180?i.push(\"south east\"):180===r?i.push(\"south\"):r<270?i.push(\"south west\"):270===r?i.push(\"west\"):r<360&&i.push(\"north west\");var n=Yn(this._lastCam.center,t.center,bn.meters);i.push(1e3<n?Kn(n/1e3,2)+\" kilometers\":Kn(n,2)+\" meters\"),e.push(i.join(\" \"))}if(this._checkZoomThreshold(t.zoom,this._lastCam.zoom)){(i=[\"zoomed\"]).push(this._lastCam.zoom<t.zoom?\"in\":\"out\");var o=Math.abs(this._lastCam.zoom-t.zoom);1<=o&&(o=Math.ceil(o),i.push(1<o?o+\" levels\":o+\" level\")),this._getCanonicalZoom(this._lastCam.zoom)!==this._getCanonicalZoom(t.zoom)&&i.push(\"to \"+this._getCanonicalZoom(t.zoom)+\" level\"),e.push(i.join(\" \"))}if(this._checkPitchThreshold(t.pitch,this._lastCam.pitch)){var a=this._round(t.pitch,this._pitchThreshold);if(e.push(\"pitched to \"+a+\" degrees\"),60===t.pitch||0===t.pitch){var s=60===t.pitch?\"maximum\":\"minimum\";e.push(\"reached \"+s+\" of \"+t.pitch+\" degrees\")}}return this._checkHeadingThreshold(this._lastCam.bearing,t.bearing)&&e.push(\"rotated to \"+this._getHeadingDesc(t)),e.join(\" and \")||null}return null},af.prototype._getCanonicalZoom=function(t){return(t=this._round(t))<2?\"world\":t<5?\"country\":t<11?\"state province\":t<15?\"city\":\"street\"},af.prototype._processLocInfo=function(n,o,a,s,l){var u=this;return new Promise(function(e,t){var i=[];if(s){var r=[];if(a&&(o&&(\"water\"===o&&a.water?r.push(a.water):\"majorPoi\"===o&&a.majorPoi&&r.push(a.majorPoi)),0===r.length&&(a.majorPoi&&8<=n.zoom?r.push(a.majorPoi):(a.poi&&14<=n.zoom?r.push(a.poi):a.road&&15<=n.zoom&&(a.secondRoad?r.push(a.road+\" & \"+a.secondRoad):r.push(a.road)),a.neighbourhood&&12<=n.zoom&&r.push(a.neighbourhood),a.city&&6<=n.zoom&&r.push(a.city)),a.state&&4<=n.zoom&&r.push(a.state),0===r.length?a.water?r.push(a.water):a.country&&r.push(a.country):1===r.length&&a.state&&4<=n.zoom&&a.country&&r.push(a.country))),0<r.length)i.push(\"<p>Location: \",r.join(\", \"),\".</p>\");else if(l&&\"water\"!==o)return void u._reverseGeocodeDescription(n).then(function(t){e(t)},function(){t(\"<p>Location: unknown</p>\")})}u._returnDetailedDescriptions&&(i.push(\"<p>Zoom: \",Kn(n.zoom,2),\".</p>\"),i.push(\"<p>Latitude: \",Kn(n.center[1],5),\".</p>\"),i.push(\"<p>Longitude: \",Kn(n.center[0],5),\".</p>\")),e(i.join(\"\"))})},af.prototype._reverseGeocodeDescription=function(o){var a=this;return new Promise(function(r){var n=a._map.getStyle();a._reverseSearch.request({position:o.center,style:n}).then(function(t){var e={};if(t&&t.addresses&&0<t.addresses.length&&t.addresses[0].address){var i=t.addresses[0].address;i.country&&(e.country=i.country,af._labelCache.cache(e.country,{source:[\"Country name\"],labelType:\"country\",radius:5e3,minZoom:0},o.center,n.language)),i.countrySubdivision&&(e.state=i.countrySubdivision,af._labelCache.cache(e.state,{source:[\"State name\"],labelType:\"state\",radius:5e3,minZoom:4},o.center,n.language)),i.municipality&&(e.city=i.municipality,af._labelCache.cache(e.state,{source:[\"Small city\"],labelType:\"city\",radius:1e3,minZoom:10},o.center,n.language)),i.streetNameAndNumber?e.road=i.streetNameAndNumber:i.street&&(e.road=i.street)}a._processLocInfo(o,null,e,!0,!1).then(function(t){r(t)})},function(t){a._processLocInfo(o,null,null,!0,!1).then(function(t){r(t)})}).catch(function(t){a._processLocInfo(o,null,null,!0,!1).then(function(t){r(t)})})})},af.prototype._round=function(t,e){return void 0===e&&(e=1),Math.round(t/e)*e},af);function af(t,e){var s=this;this._restFallback=!0,this._disposed=!1,this._lastHeadingTime=0,this._actionQueue=[],this._pointerUpdateDelay=3e3,this._camUpdateDelay=1e3,this._headUpdateLimit=1e3,this._controlEventDelay=500,this._moveThreshold=25,this._headingThreshold=5,this._pitchThreshold=5,this._roadPixelRadius=120,this._minRoadDistance=25,this._minIntersectionPixelDistance=50,this._baseVectorTileSourceId=\"vectorTiles\",this._lableConfig=[{source:[\"Ocean label\",\"Ocean name\"],labelType:\"water\",minZoom:0,radius:395e4,polygonSources:[\"Ocean\",\"Ocean or sea\"]},{source:[\"Sea label\"],labelType:\"water\",minZoom:3,radius:1e6,polygonSources:[\"Sea\",\"Ocean or sea\"]},{source:[\"Country name\"],labelType:\"country\",minZoom:0,maxZoom:5,radius:3e5},{source:[\"State name\",\"State name short\"],labelType:\"state\",minZoom:4,maxZoom:7,radius:3e5},{source:[\"Capital city\",\"Large city\"],labelType:\"city\",minZoom:8,radius:4e4},{source:[\"Medium city\"],labelType:\"city\",minZoom:8,radius:3e4},{source:[\"Small city\"],labelType:\"city\",minZoom:8,radius:2e4},{source:[\"Island label\"],labelType:\"city\",minZoom:8,radius:1e4},{source:[\"Town\"],labelType:\"city\",minZoom:10,radius:1e4},{source:[\"Village\"],labelType:\"neighbourhood\",minZoom:12,radius:6e3},{source:[\"Amusement area label\"],labelType:\"poi\",minZoom:14,radius:2e3,polygonSources:[\"Amusement park\"]},{source:[\"Hospital label\"],labelType:\"poi\",minZoom:14,radius:1e3,polygonSources:[\"Hospital\"]},{source:[\"Shopping centre label\"],labelType:\"poi\",minZoom:14,radius:1e3,polygonSources:[\"Shopping\"]},{source:[\"Stadium label\"],labelType:\"poi\",minZoom:14,radius:1e3,polygonSources:[\"Stadium\"]},{source:[\"University/School label\"],labelType:\"poi\",minZoom:14,radius:1e3,polygonSources:[\"University\"]},{source:[\"Zoo label\"],labelType:\"poi\",minZoom:14,radius:1e3,polygonSources:[\"Zoo\"]},{source:[\"Airport Label\",\"Airport name\",\"Airport POI\"],labelType:\"majorPoi\",minZoom:11,radius:3e3,polygonSources:[\"Airport\",\"Runway\"]},{source:[\"National park label\"],labelType:\"majorPoi\",minZoom:7,radius:15e3,polygonSources:[\"National or state park\",\"National park\",\"Forest\"]},{source:[\"Reservation label\"],labelType:\"majorPoi\",minZoom:7,radius:15e3,polygonSources:[\"Reservation\"]}],this._polygonStyleLayer=[\"National or state park\",\"National park\",\"Reservation\",\"Airport\",\"Runway\",\"Stadium\",\"University\",\"Zoo\",\"Shopping\",\"Hospital\",\"Amusement park\",\"Ocean\",\"Sea\",\"Ocean or sea\"],this._labelCache=new Set([\"city\",\"state\",\"country\",\"water\",\"majorPoi\"]),this._roadLayers=new Set([\"Connecting road\",\"Connecting road tunnel\",\"International road\",\"International road tunnel\",\"Local road\",\"Local road tunnel\",\"Major local road\",\"Major local road tunnel\",\"Major road\",\"Major road tunnel\",\"Minor local road\",\"Minor local road tunnel\",\"Motorway\",\"Motorway tunnel\",\"Secondary road\",\"Secondary road tunnel\",\"Toll connecting road\",\"Toll connecting road tunnel\",\"Toll international road\",\"Toll international road tunnel\",\"Toll local road\",\"Toll local road tunnel\",\"Toll major local road\",\"Toll major local road tunnel\",\"Toll major road\",\"Toll major road tunnel\",\"Toll minor local road\",\"Toll minor local road tunnel\",\"Toll motorway\",\"Toll motorway tunnel\",\"Toll secondary road\",\"Toll secondary road tunnel\"]),this._returnDetailedDescriptions=!1,this._shortcutListener=function(a){return S(s,void 0,void 0,function(){var e,i,r,n,o;return T(this,function(t){switch(t.label){case 0:return a.altKey&&a.ctrlKey&&68===a.keyCode?(this._returnDetailedDescriptions=!this._returnDetailedDescriptions,e=this._map.getCamera(),i=this._map.getStyle(),r=i.language.toLowerCase(),n=i.style.toLowerCase(),[4,this._getLocDesc(e,r,n)]):[3,2];case 1:o=t.sent(),this._descCallback(o),t.label=2;case 2:return[2]}})})},this._onRotate=function(){s._rotateTimeout||(Date.now()-s._lastHeadingTime>=s._headUpdateLimit?s._rotateTimeout=setTimeout(s._updateHeading,ht.RotationDuration+25):s._rotateTimeout=setTimeout(s._updateHeading,s._headUpdateLimit-(Date.now()-s._lastHeadingTime)))},this._onMove=function(){s._moveTimeout&&(clearTimeout(s._moveTimeout),delete s._moveTimeout),s._controlTimeout&&(clearTimeout(s._controlTimeout),delete s._controlTimeout)},this._onMoveEnd=function(t){t.fromControl?s._controlTimeout=setTimeout(s._updateCam,s._controlEventDelay):s._updateCam()},this._onStyleData=function(){setTimeout(s._updateStyle)},this._onPointerDown=function(t){s._lastPointerPos=s._getEventPos(t),s._pointerTimeout=setTimeout(function(){return S(s,void 0,void 0,function(){var e,i,r,n,o;return T(this,function(t){switch(t.label){case 0:return e=this._map.getStyle(),i=e.language.toLowerCase(),r=e.style.toLowerCase(),(n=this._map.getCamera()).center=this._map.pixelsToPositions([this._lastPointerPos])[0],[4,this._getLocDesc(n,i,r)];case 1:return o=t.sent(),this._descCallback(o),this._onPointerUp(),[2]}})})},s._pointerUpdateDelay),s._map.getCanvas().addEventListener(\"mousemove\",s._onPointerMove),s._map.getCanvas().addEventListener(\"touchmove\",s._onPointerMove),s._map.getCanvas().addEventListener(\"mouseup\",s._onPointerUp),s._map.getCanvas().addEventListener(\"touchend\",s._onPointerUp)},this._onPointerMove=function(t){var e=s._getEventPos(t),i=s._lastPointerPos[0]-e[0],r=s._lastPointerPos[1]-e[1];Math.sqrt(i*i+r*r)>s._moveThreshold&&s._onPointerUp()},this._onPointerUp=function(){clearTimeout(s._pointerTimeout),delete s._pointerTimeout,s._map.getCanvas().removeEventListener(\"mousemove\",s._onPointerMove),s._map.getCanvas().removeEventListener(\"touchmove\",s._onPointerMove),s._map.getCanvas().removeEventListener(\"mouseup\",s._onPointerUp),s._map.getCanvas().removeEventListener(\"touchend\",s._onPointerUp)},this._updateHeading=function(){var t=s._map.getCamera();if(!s._lastHead||s._checkHeadingThreshold(t.bearing,s._lastHead)){var e=s._getHeadingDesc(t);s._lastHead=t.bearing,s._descCallback(\"<p>Map heading \"+e+\".</p>\"),s._lastHeadingTime=Date.now()}delete s._rotateTimeout},this._updateStyle=function(){return S(s,void 0,void 0,function(){var e,i,r,n,o;return T(this,function(t){switch(t.label){case 0:return(e=this._map.getCamera(),i=this._map.getStyle(),r=i.language.toLowerCase(),n=i.style.toLowerCase(),this._lastLang===r)?[3,2]:(af._labelCache._preloadCache(r),[4,this._getLocDesc(e,r,n)]);case 1:return o=t.sent(),[3,4];case 2:return this._lastStyle===n||\"blank\"!==this._lastStyle?[3,4]:[4,this._getLocDesc(e,r,n)];case 3:o=t.sent(),t.label=4;case 4:return this._lastLang=r,this._lastStyle=n,o&&this._descCallback(o),[2]}})})},this._updateCam=function(t){void 0===t&&(t=!1);var i=s._map.getCamera();if(!s._lastCam||0<s._actionQueue.length||s._checkThresholds(i,s._lastCam)){var e=s._map.getStyle(),r=e.language.toLowerCase(),n=e.style.toLowerCase(),o=s._getActionDesc(i);o&&s._actionQueue.push(o),s._lastCam=i,s._moveTimeout&&(clearTimeout(s._moveTimeout),delete s._moveTimeout),s._moveTimeout=setTimeout(function(){return S(s,void 0,void 0,function(){var e;return T(this,function(t){switch(t.label){case 0:return clearTimeout(this._rotateTimeout),delete this._rotateTimeout,[4,this._getLocDesc(i,r,n)];case 1:return e=t.sent(),0<this._actionQueue.length?(this._descCallback(\"<p>Map \"+this._actionQueue.join(\", then \")+\".</p>\"+e),this._actionQueue=[]):this._descCallback(e),[2]}})})},t?0:s._camUpdateDelay)}},this._map=t,this._descCallback=e,this._reverseSearch=new tf(t),af._labelCache||(af._labelCache=new rf),this._lastLang=this._map.getStyle().language.toLowerCase(),af._labelCache._preloadCache(this._lastLang),this._map.events.addOnce(\"load\",function(){s._disposed||(s._updateCam(!0),s._map._getMap().on(\"move\",s._onMove),s._map._getMap().on(\"moveend\",s._onMoveEnd),s._map._getMap().on(\"styledata\",s._onStyleData),s._map._getMap().on(\"rotate\",s._onRotate),s._map.getCanvas().addEventListener(\"mousedown\",s._onPointerDown),s._map.getCanvas().addEventListener(\"touchstart\",s._onPointerDown))}),this._map.getMapContainer().addEventListener(\"keydown\",this._shortcutListener)}var sf,lf=function(t){var e=this;this.addToMap=function(){e.initializeMapLiveStateInfo(),e.initializeMapStyleInfo(),e.createMapKeyBindingInfo(),e.map.getMapContainer().setAttribute(\"role\",\"application\"),e.map.getMapContainer().setAttribute(\"aria-label\",\"Map Application\"),e.map.getCanvas().setAttribute(\"aria-label\",\"Interactive Map\"),e.map.getCanvas().setAttribute(\"aria-describedby\",\"atlas-map-state atlas-map-style atlas-map-shortcuts\"),e.map.getCanvas().setAttribute(\"alt\",\"Interactive Map\")},this.removeFromMap=function(){null!=e.mapViewDesc&&e.mapViewDesc.dispose(),delete e.mapViewDesc,null!=e.atlasMapKeyBindings&&e.map.getCanvasContainer().removeChild(e.atlasMapKeyBindings),delete e.atlasMapKeyBindings,null!=e.atlasMapLiveStateInfo&&e.map.getCanvasContainer().removeChild(e.atlasMapLiveStateInfo),delete e.atlasMapLiveStateInfo,null!=e.atlasMapStyleInfo&&e.map.getCanvasContainer().removeChild(e.atlasMapStyleInfo),delete e.atlasMapStyleInfo,e.map.getMapContainer().removeAttribute(\"role\"),e.map.getMapContainer().removeAttribute(\"aria-label\"),e.map.getCanvas().removeAttribute(\"aria-label\"),e.map.getCanvas().removeAttribute(\"aria-describedby\"),e.map.getCanvas().removeAttribute(\"alt\"),e.map.events.remove(\"styledata\",e.updateMapStyle)},this.createMapKeyBindingInfo=function(){e.atlasMapKeyBindings=document.createElement(\"div\"),e.atlasMapKeyBindings.setAttribute(\"tabindex\",\"-1\"),e.atlasMapKeyBindings.setAttribute(\"aria-hidden\",\"true\"),e.atlasMapKeyBindings.id=\"atlas-map-shortcuts\",e.atlasMapKeyBindings.classList.add(\"hidden-accessible-element\"),e.atlasMapKeyBindings.innerHTML=[\"Map shortcuts:\",\"Zoom out: hyphen.\",\"Zoom in: plus.\",\"Pan right 100 pixels: right arrow.\",\"Pan left 100 pixels: left arrow.\",\"Pan up 100 pixels: up arrow.\",\"Pan down 100 pixels: down arrow.\",\"Rotate 15 degrees clockwise: shift + right arrow.\",\"Rotate 15 degrees counter clockwise: shift + left arrow.\",\"Increase pitch 10 degrees: shift + up arrow.\",\"Decrease pitch 10 degrees: shift + down arrow.\",\"Toggle verbose map state: control + alt + D.\",\"Jump focus to the map: Escape.\"].join(\"\\n\"),e.map.getCanvasContainer().appendChild(e.atlasMapKeyBindings),e.atlasMapKeyBindings.setAttribute(\"aria-live\",\"polite\")},this.initializeMapLiveStateInfo=function(){e.mapViewDesc=new of(e.map,e.updateMapState),e.atlasMapLiveStateInfo=document.createElement(\"div\"),e.atlasMapLiveStateInfo.setAttribute(\"tabindex\",\"-1\"),e.atlasMapLiveStateInfo.setAttribute(\"aria-hidden\",\"true\"),e.atlasMapLiveStateInfo.id=\"atlas-map-state\",e.atlasMapLiveStateInfo.classList.add(\"hidden-accessible-element\"),e.map.getCanvasContainer().appendChild(e.atlasMapLiveStateInfo),e.atlasMapLiveStateInfo.setAttribute(\"aria-live\",\"polite\")},this.initializeMapStyleInfo=function(){e.atlasMapStyleInfo=document.createElement(\"div\"),e.atlasMapStyleInfo.setAttribute(\"tabindex\",\"-1\"),e.atlasMapStyleInfo.setAttribute(\"aria-hidden\",\"true\"),e.atlasMapStyleInfo.id=\"atlas-map-style\",e.atlasMapStyleInfo.classList.add(\"hidden-accessible-element\"),e.updateMapStyle(),e.map.events.add(\"styledata\",e.updateMapStyle),e.map.getCanvasContainer().appendChild(e.atlasMapStyleInfo),e.atlasMapStyleInfo.setAttribute(\"aria-live\",\"polite\")},this.updateMapStyle=function(){e.atlasMapStyleInfo.innerHTML=\"<p>Map style: \"+e.map.getStyle().style+\".</p>\"},this.updateMapState=function(t){e.atlasMapLiveStateInfo.innerHTML=t},this.map=t},uf=function(t){var a=this;this.callCounter=0,this.listenerEnabled=!1,this.flowComponent=void 0,this.flowPath=void 0,this.addToMap=function(){if(!a.map._isReady())throw new Error(\"Traffic flow could not be added to the map because the map is not ready. Please use a ready event listener to guarantee the map is ready before enabling traffic flow.\");a.listenerEnabled||(a.map.events.add(\"styledata\",a.addToMap),a.listenerEnabled=!0);var t=a.map.getStyle(),e=a.map.getTraffic(),n=a.map.styles.getFlowPath(t,e);if(n&&a.flowPath!==n){a.callCounter++;var o=a.callCounter;a.map.styles.getFlowComponent(t,e).then(function(t){if(a.callCounter===o){a.flowComponent&&(a.map.layers.remove(a.flowComponent.layer),a.map.sources.remove(a.flowComponent.sources),delete a.flowComponent);var e=a.map.layers.getLayers(),i=e.findIndex(function(t){return\"transit\"===t.getId()}),r=-1!==i?e[i+1]:void 0;a.map.sources.add(t.sources),a.map.layers.add(t.layer,r),a.flowComponent=t,a.flowPath=n}})}},this.removeFromMap=function(){a.callCounter++,a.listenerEnabled&&(a.map.events.remove(\"styledata\",a.addToMap),a.listenerEnabled=!1),a.flowPath&&delete a.flowPath,a.flowComponent&&(a.map.layers.remove(a.flowComponent.layer),a.map.sources.remove(a.flowComponent.sources),delete a.flowComponent)},this.map=t},cf=(b(pf,sf=E),pf);function pf(){var t=null!==sf&&sf.apply(this,arguments)||this;return t.version=\"1.0\",t.bbox=void 0,t.zoom=void 0,t.params={},t}var hf=(df.prototype.request=function(t){var e,i=(new cf).merge(t),r=this.map.getServiceOptions().domain;e=zo.getWest(i.bbox)<-180&&180<zo.getEast(i.bbox)?zo.getSouth(i.bbox)+\",-180,\"+zo.getNorth(i.bbox)+\",180\":zo.getSouth(i.bbox)+\",\"+ro(zo.getWest(i.bbox))+\",\"+zo.getNorth(i.bbox)+\",\"+ro(zo.getEast(i.bbox));var n={domain:r,path:\"traffic/incident/detail/json\",queryParams:w({\"api-version\":i.version,projection:\"EPSG4326\",style:\"s3\",boundingbox:e,boundingzoom:i.zoom,trafficmodelid:-1},i.params)};return new P(this.map.authentication.signRequest(n)).get()},df);function df(t){this.map=t}var ff,mf,gf,yf=(b(vf,ff=hn),vf.getIncidentTypeName=function(t,e){switch(t){case 0:return e.Unknown;case 1:return e.Accident;case 2:return e.Fog;case 3:return e.Danger;case 4:return e.Rain;case 5:return e.Ice;case 6:return e.Jam;case 7:return e.LaneClosed;case 8:return e.RoadClosed;case 9:return e.RoadWorks;case 10:return e.Wind;case 11:return e.Flood;case 12:return e.Detour;default:return e.Unknown}},vf.getIncidentTypeIconName=function(t){switch(t){case 0:return\"unknown\";case 1:return\"accident\";case 2:return\"fog\";case 3:return\"danger\";case 4:return\"rain\";case 5:return\"ice\";case 6:return\"jam\";case 7:return\"lane-closed\";case 8:return\"road-closed\";case 9:return\"road-work\";case 10:return\"wind\";case 11:return\"flood\";case 12:return\"detour\";default:return\"unknown\"}},vf.getSeverityColorName=function(t){switch(t){case 0:return\"grey\";case 1:return\"yellow\";case 2:return\"orange\";case 3:return\"red\";case 4:default:return\"grey\"}},vf.getSeverityColorHexCode=function(t){switch(t){case 0:return\"#B5B6B7\";case 1:return\"#F4C951\";case 2:return\"#F4873F\";case 3:return\"#F04F4E\";case 4:default:return\"#B5B6B7\"}},vf);function vf(t,e){var i=new yn(new bo(t.op.x,t.op.y)),r={icon:vf.getSeverityColorName(t.ty)+\"-\"+vf.getIncidentTypeIconName(t.ic),incidentType:vf.getIncidentTypeName(t.ic,e),description:t.d,length:t.l,delay:t.dl,from:t.f,color:vf.getSeverityColorHexCode(t.ty),to:t.t,id:t.id};return ff.call(this,i,r)||this}(gf=mf=mf||{}).DELAY=\"delay\",gf.LENGTH=\"length\",gf.FROM=\"from\",gf.TO=\"to\";var _f=(xf.build=function(t,e){void 0===e&&(e=\"en-US\");var i=document.createElement(\"div\");i.classList.add(\"incident-popup-title\"),i.classList.add(\"font-segoeui-b\"),i.setAttribute(\"tabindex\",\"0\"),i.innerText=t.properties.incidentType,i.setAttribute(\"aria-label\",\"Incident Type \"+t.properties.incidentType);var r=document.createElement(\"div\");r.classList.add(\"incident-popup-subtitle\"),r.classList.add(\"font-segoeui-b\"),r.setAttribute(\"aria-label\",\"Incident Description \"+t.properties.description),r.setAttribute(\"tabindex\",\"0\"),r.innerText=t.properties.description;var n=document.createElement(\"div\");n.classList.add(\"incident-popup-header\"),n.style.backgroundColor=t.properties.color,n.appendChild(i),n.appendChild(r);var o=document.createElement(\"div\");if(o.classList.add(\"incident-popup-body\"),t.properties.delay){var a=Math.floor(t.properties.delay/60)+\" min\",s=this.createInfoSection(a,mf.DELAY);o.appendChild(s)}if(t.properties.length){var l=new Intl.NumberFormat([e,\"en-US\"],{maximumFractionDigits:2}),u=void 0;if(\"en-US\"===e){var c=Wn(t.properties.length,\"meters\",\"miles\");u=l.format(c)+\" miles\"}else{var p=Wn(t.properties.length,\"meters\",\"kilometers\");u=l.format(p)+\" km\"}var h=this.createInfoSection(u,mf.LENGTH);o.appendChild(h)}if(t.properties.from){var d=this.createInfoSection(t.properties.from,mf.FROM);o.appendChild(d)}if(t.properties.to){var f=this.createInfoSection(t.properties.to,mf.TO);o.appendChild(f)}var m=document.createElement(\"div\");return m.classList.add(\"incident-popup-content\"),m.appendChild(n),m.appendChild(o),new Fs({content:m,position:t.geometry.coordinates})},xf.createInfoSection=function(t,e){var i=document.createElement(\"div\");i.classList.add(\"incident-popup-info\");var r=document.createElement(\"div\");r.classList.add(\"icon\"),r.classList.add(e);var n=document.createElement(\"span\");return n.classList.add(\"message\"),n.classList.add(\"font-segoeui\"),n.setAttribute(\"aria-label\",\"Incident \"+e+\" \"+t),n.setAttribute(\"tabindex\",\"0\"),n.innerText=t,i.appendChild(r),i.appendChild(n),i},xf);function xf(){}var bf,wf=function(t){var p=this;this.incidentLayerName=\"incidents\",this.popups=new kr,this.addToMap=function(){p.map.addPins([],{name:p.incidentLayerName,cluster:!1}),p.map.addEventListener(\"mouseenter\",p.incidentLayerName,p.cursorToPointer),p.map.addEventListener(\"mouseleave\",p.incidentLayerName,p.cursorToDefault),p.map.addEventListener(\"click\",p.incidentLayerName,p.openIncidentPopup),p.map.events.add(\"moveend\",p.updateIncidents),p.map.events.add(\"styledata\",p.updateLanguage),p.updateIncidents()},this.removeFromMap=function(){p.map.removeLayers([p.incidentLayerName]),p.map.removeEventListener(\"click\",p.incidentLayerName,p.openIncidentPopup),p.map.removeEventListener(\"mouseenter\",p.incidentLayerName,p.cursorToPointer),p.map.removeEventListener(\"mouseleave\",p.incidentLayerName,p.cursorToDefault),p.map.events.remove(\"moveend\",p.updateIncidents),p.map.events.remove(\"styledata\",p.updateLanguage),p.cleanUpPopups()},this.updateIncidents=function(){var t=Math.ceil(p.map.getCamera().zoom),c=p.map.getCamera().bounds;p.incidentLanguage=p.map.getStyle().language;var e=p.map._getLocalizedStrings(),i=p.incidentService.request({bbox:c,zoom:t,params:{expandCluster:!0,originalPosition:!0,language:p.incidentLanguage}});Promise.all([i,e]).then(function(t){var e=t[0],r=t[1];if(p.map.getTraffic().incidents){var n=[];p.cleanUpPopups();for(var i=0,o=e.tm.poi||[];i<o.length;i++)for(var a=o[i],s=function(t){if(zo.containsPosition(c,[t.op.x,t.op.y])){var e=new yf(t,r);n.push(e);var i=_f.build(e,p.incidentLanguage);p.popups.set(e.properties.id,i),p.map.events.add(\"open\",i,function(){p.openPopupId=e.properties.id,p.popups.forEach(function(t,e){p.openPopupId!==e&&t.close()})}),p.map.events.add(\"close\",i,function(){p.openPopupId===e.properties.id&&delete p.openPopupId}),p.openPopupId===e.properties.id?p.popups.get(e.properties.id).open(p.map):p.popups.get(e.properties.id).attach(p.map)}},l=0,u=a.cpoi||[a];l<u.length;l++)s(u[l]);p.map.addPins(n,{overwrite:!0,name:p.incidentLayerName})}})},this.cursorToPointer=function(t){p.map.getCanvas().style.cursor=\"pointer\"},this.cursorToDefault=function(t){p.map.getCanvas().style.cursor=\"\"},this.openIncidentPopup=function(t){var e=t.features[0].properties.id;p.popups.has(e)&&p.popups.get(e).open(p.map)},this.cleanUpPopups=function(){p.popups.forEach(function(t){t.remove()}),p.popups.clear()},this.updateLanguage=function(){p.map.getStyle().language!==p.incidentLanguage&&p.updateIncidents()},this.map=t,this.incidentService=new hf(this.map)},Sf=(b(Tf,bf=E),Tf);function Tf(){var t=null!==bf&&bf.apply(this,arguments)||this;return t.interactive=!0,t.scrollZoomInteraction=!0,t.boxZoomInteraction=!0,t.dragRotateInteraction=!0,t.dragPanInteraction=!0,t.keyboardInteraction=!0,t.dblClickZoomInteraction=!0,t.touchInteraction=!0,t.wheelZoomRate=1/450,t}var Ef=(If.prototype.enable=function(){this.map.getMapContainer().addEventListener(\"keydown\",this._onKeyDown)},If.prototype.disable=function(){this.map.getMapContainer().removeEventListener(\"keydown\",this._onKeyDown)},If);function If(t){var e=this;this._onKeyDown=function(t){27===t.keyCode&&e.map.getCanvas().focus()},this.map=t}var Cf=(Af.prototype.enable=function(){this.map._getMap().on(\"touchstart\",this._onTouchStart),this.map._getMap().on(\"touchmove\",this._onTouchMove),this.map._getMap().on(\"touchend\",this._onTouchEnd),this.map._getMap().on(\"touchcancel\",this._onTouchCancel)},Af.prototype.disable=function(){this.map._getMap().off(\"touchstart\",this._onTouchStart),this.map._getMap().off(\"touchmove\",this._onTouchMove),this.map._getMap().off(\"touchend\",this._onTouchEnd),this.map._getMap().off(\"touchcancel\",this._onTouchCancel)},Af);function Af(t){var o=this;this.minDiffX=70,this.maxDiffY=100,this.minDiff=30,this.delay=160,this._onTouchStart=function(t){if(2===t.points.length){var e=t.points[0].y-t.points[1].y,i=t.points[0].x-t.points[1].x;Math.abs(i)>=o.minDiffX&&Math.abs(e)<=o.maxDiffY&&(t.originalEvent.preventDefault(),o.map._getMap().touchZoomRotate.disable(),o.map._getMap().dragPan.disable(),o.dpPoint=t.point,o.dpPitch=o.map._getMap().getPitch(),o.startTiming=Date.now(),o.startDistance=Math.hypot(i,e),o.startEventData=t)}},this._onTouchMove=function(t){if(void 0!==o.dpPoint&&void 0!==o.dpPitch){t.preventDefault(),t.originalEvent.preventDefault();var e=t.points[0].y-t.points[1].y,i=t.points[0].x-t.points[1].x,r=Math.hypot(i,e);if(Math.abs(r-o.startDistance)>=o.minDiff)return o.dpPoint&&(o.map._getMap().touchZoomRotate.enable(),o.map._getMap().dragPan.enable(),o.map._getMap().touchZoomRotate.onStart(Date.now()-o.startTiming>=o.delay?t.originalEvent:o.startEventData.originalEvent)),void(o.dpPoint=void 0);if(Date.now()-o.startTiming>=o.delay){var n=.5*(o.dpPoint.y-t.point.y);o.map._getMap().setPitch(o.dpPitch+n)}}},this._onTouchEnd=function(){o.dpPoint&&(o.map._getMap().touchZoomRotate.enable(),o.map._getMap().dragPan.enable()),o.dpPoint=void 0},this._onTouchCancel=function(){o.dpPoint&&(o.map._getMap().touchZoomRotate.enable(),o.map._getMap().dragPan.enable()),o.dpPoint=void 0},this.map=t}var kf=(Pf.prototype.enable=function(){this.map.getCanvasContainer().addEventListener(\"gesturestart\",this._onGestureStart),this.map.getCanvasContainer().addEventListener(\"gesturechange\",this._onGestureChange),this.map.getCanvasContainer().addEventListener(\"touchstart\",this._onTouchStart),this.map.getCanvasContainer().addEventListener(\"touchend\",this._onTouchEnd)},Pf.prototype.disable=function(){this.map.getCanvasContainer().removeEventListener(\"gesturestart\",this._onGestureStart),this.map.getCanvasContainer().removeEventListener(\"gesturechange\",this._onGestureChange),this.map.getCanvasContainer().removeEventListener(\"touchstart\",this._onTouchStart),this.map.getCanvasContainer().removeEventListener(\"touchend\",this._onTouchEnd)},Pf);function Pf(t){var e=this;this._onGestureStart=function(t){e.hasTouch||(t.preventDefault(),e.initZoom=e.map.getCamera().zoom)},this._onGestureChange=function(t){e.hasTouch||(t.preventDefault(),e.map.setCamera({zoom:e.initZoom+t.scale-1}))},this._onTouchStart=function(t){e.hasTouch=!0},this._onTouchEnd=function(t){0===t.touches.length&&(e.hasTouch=!1)},this.map=t}var Mf=(Lf.prototype.addToMap=function(){this.added||(this.added=!0,this._setInteractions(this.options))},Lf.prototype.removeFromMap=function(){this.added&&(this.added=!1,this._setInteractions({interactive:!1}))},Lf.prototype.setOptions=function(t){this.options=(new Sf).merge(this.options,t),this.added&&this._setInteractions(this.options)},Lf.prototype.getOptions=function(){return Object.assign({},this.options)},Lf.prototype._setInteractions=function(t){t.interactive?(t.boxZoomInteraction?this.map._getMap().boxZoom.enable():this.map._getMap().boxZoom.disable(),t.dblClickZoomInteraction?this.map._getMap().doubleClickZoom.enable():this.map._getMap().doubleClickZoom.disable(),t.dragPanInteraction?this.map._getMap().dragPan.enable():this.map._getMap().dragPan.disable(),t.dragRotateInteraction?this.map._getMap().dragRotate.enable():this.map._getMap().dragRotate.disable(),t.keyboardInteraction?(this.map._getMap().keyboard.enable(),this.focusShortcut.enable()):(this.map._getMap().keyboard.disable(),this.focusShortcut.disable()),t.scrollZoomInteraction?(this.map._getMap().scrollZoom.enable(),this.map._getMap().scrollZoom.setWheelZoomRate(t.wheelZoomRate)):this.map._getMap().scrollZoom.disable(),t.touchInteraction?(this.map._getMap().touchZoomRotate.enable(),this.mobilePitch.enable()):(this.map._getMap().touchZoomRotate.disable(),this.mobilePitch.disable()),this.pinchZoom.enable()):(this.map._getMap().boxZoom.disable(),this.map._getMap().doubleClickZoom.disable(),this.map._getMap().dragPan.disable(),this.map._getMap().dragRotate.disable(),this.map._getMap().keyboard.disable(),this.focusShortcut.disable(),this.map._getMap().scrollZoom.disable(),this.map._getMap().touchZoomRotate.disable(),this.mobilePitch.disable(),this.pinchZoom.disable())},Lf);function Lf(t,e){this.added=!1,this.map=t,this.mobilePitch=new Cf(t),this.focusShortcut=new Ef(t),this.pinchZoom=new kf(t),this.options=(new Sf).merge(e)}var Df=e(function(t){var e=(e=function(t){if(this.REQUEST_TYPE={LOGIN:\"LOGIN\",RENEW_TOKEN:\"RENEW_TOKEN\",UNKNOWN:\"UNKNOWN\"},this.RESPONSE_TYPE={ID_TOKEN_TOKEN:\"id_token token\",TOKEN:\"token\"},this.CONSTANTS={ACCESS_TOKEN:\"access_token\",EXPIRES_IN:\"expires_in\",ID_TOKEN:\"id_token\",ERROR_DESCRIPTION:\"error_description\",SESSION_STATE:\"session_state\",ERROR:\"error\",STORAGE:{TOKEN_KEYS:\"adal.token.keys\",ACCESS_TOKEN_KEY:\"adal.access.token.key\",EXPIRATION_KEY:\"adal.expiration.key\",STATE_LOGIN:\"adal.state.login\",STATE_RENEW:\"adal.state.renew\",NONCE_IDTOKEN:\"adal.nonce.idtoken\",SESSION_STATE:\"adal.session.state\",USERNAME:\"adal.username\",IDTOKEN:\"adal.idtoken\",ERROR:\"adal.error\",ERROR_DESCRIPTION:\"adal.error.description\",LOGIN_REQUEST:\"adal.login.request\",LOGIN_ERROR:\"adal.login.error\",RENEW_STATUS:\"adal.token.renew.status\",ANGULAR_LOGIN_REQUEST:\"adal.angular.login.request\"},RESOURCE_DELIMETER:\"|\",CACHE_DELIMETER:\"||\",LOADFRAME_TIMEOUT:6e3,TOKEN_RENEW_STATUS_CANCELED:\"Canceled\",TOKEN_RENEW_STATUS_COMPLETED:\"Completed\",TOKEN_RENEW_STATUS_IN_PROGRESS:\"In Progress\",LOGGING_LEVEL:{ERROR:0,WARN:1,INFO:2,VERBOSE:3},LEVEL_STRING_MAP:{0:\"ERROR:\",1:\"WARNING:\",2:\"INFO:\",3:\"VERBOSE:\"},POPUP_WIDTH:483,POPUP_HEIGHT:600},e.prototype._singletonInstance)return e.prototype._singletonInstance;if((e.prototype._singletonInstance=this).instance=\"https://login.microsoftonline.com/\",this.config={},this.callback=null,this.popUp=!1,this.isAngular=!1,this._user=null,this._activeRenewals={},this._loginInProgress=!1,this._acquireTokenInProgress=!1,this._renewStates=[],this._callBackMappedToRenewStates={},this._callBacksMappedToRenewStates={},this._openedWindows=[],this._requestType=this.REQUEST_TYPE.LOGIN,window._adalInstance=this,t.displayCall&&\"function\"!=typeof t.displayCall)throw new Error(\"displayCall is not a function\");if(!t.clientId)throw new Error(\"clientId is required\");this.config=this._cloneConfig(t),void 0===this.config.navigateToLoginRequestUrl&&(this.config.navigateToLoginRequestUrl=!0),this.config.popUp&&(this.popUp=!0),this.config.callback&&\"function\"==typeof this.config.callback&&(this.callback=this.config.callback),this.config.instance&&(this.instance=this.config.instance),this.config.loginResource||(this.config.loginResource=this.config.clientId),this.config.redirectUri||(this.config.redirectUri=window.location.href.split(\"?\")[0].split(\"#\")[0]),this.config.postLogoutRedirectUri||(this.config.postLogoutRedirectUri=window.location.href.split(\"?\")[0].split(\"#\")[0]),this.config.anonymousEndpoints||(this.config.anonymousEndpoints=[]),this.config.isAngular&&(this.isAngular=this.config.isAngular),this.config.loadFrameTimeout&&(this.CONSTANTS.LOADFRAME_TIMEOUT=this.config.loadFrameTimeout)},\"undefined\"!=typeof window&&(window.Logging={piiLoggingEnabled:!1,level:0,log:function(t){}}),e.prototype.login=function(){if(this._loginInProgress)this.info(\"Login in progress\");else{this._loginInProgress=!0;var t=this._guid();this.config.state=t,this._idTokenNonce=this._guid();var e=this._getItem(this.CONSTANTS.STORAGE.ANGULAR_LOGIN_REQUEST);e&&\"\"!==e?this._saveItem(this.CONSTANTS.STORAGE.ANGULAR_LOGIN_REQUEST,\"\"):e=window.location.href,this.verbose(\"Expected state: \"+t+\" startPage:\"+e),this._saveItem(this.CONSTANTS.STORAGE.LOGIN_REQUEST,e),this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR,\"\"),this._saveItem(this.CONSTANTS.STORAGE.STATE_LOGIN,t,!0),this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN,this._idTokenNonce,!0),this._saveItem(this.CONSTANTS.STORAGE.ERROR,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,\"\");var i=this._getNavigateUrl(\"id_token\",null)+\"&nonce=\"+encodeURIComponent(this._idTokenNonce);this.config.displayCall?this.config.displayCall(i):this.popUp?(this._saveItem(this.CONSTANTS.STORAGE.STATE_LOGIN,\"\"),this._renewStates.push(t),this.registerCallback(t,this.config.clientId,this.callback),this._loginPopup(i)):this.promptUser(i)}},e.prototype._openPopup=function(t,e,i,r){try{var n=window.screenLeft?window.screenLeft:window.screenX,o=window.screenTop?window.screenTop:window.screenY,a=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,s=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,l=a/2-i/2+n,u=s/2-r/2+o,c=window.open(t,e,\"width=\"+i+\", height=\"+r+\", top=\"+u+\", left=\"+l);return c.focus&&c.focus(),c}catch(t){return this.warn(\"Error opening popup, \"+t.message),this._loginInProgress=!1,this._acquireTokenInProgress=!1,null}},e.prototype._handlePopupError=function(t,e,i,r,n){this.warn(r),this._saveItem(this.CONSTANTS.STORAGE.ERROR,i),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,r),this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR,n),e&&this._activeRenewals[e]&&(this._activeRenewals[e]=null),this._loginInProgress=!1,this._acquireTokenInProgress=!1,t&&t(r,null,i)},e.prototype._loginPopup=function(t,r,e){var n=this._openPopup(t,\"login\",this.CONSTANTS.POPUP_WIDTH,this.CONSTANTS.POPUP_HEIGHT),o=e||this.callback;if(null!=n){if(this._openedWindows.push(n),-1!=this.config.redirectUri.indexOf(\"#\"))var a=this.config.redirectUri.split(\"#\")[0];else a=this.config.redirectUri;var s=this,l=window.setInterval(function(){if(!n||n.closed||void 0===n.closed){var t=\"Popup Window closed\",e=\"Popup Window closed by UI action/ Popup Window handle destroyed due to cross zone navigation in IE/Edge\";return s.isAngular&&s._broadcast(\"adal:popUpClosed\",e+s.CONSTANTS.RESOURCE_DELIMETER+t),s._handlePopupError(o,r,t,e,e),void window.clearInterval(l)}try{var i=n.location;if(-1!=encodeURI(i.href).indexOf(encodeURI(a)))return s.isAngular?s._broadcast(\"adal:popUpHashChanged\",i.hash):s.handleWindowCallback(i.hash),window.clearInterval(l),s._loginInProgress=!1,s._acquireTokenInProgress=!1,s.info(\"Closing popup window\"),s._openedWindows=[],void n.close()}catch(t){}},1)}else{var i=\"Popup Window is null. This can happen if you are using IE\";this._handlePopupError(o,r,\"Error opening popup\",i,i)}},e.prototype._broadcast=function(t,e){function i(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var i=document.createEvent(\"CustomEvent\");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}\"function\"!=typeof window.CustomEvent&&(i.prototype=window.Event.prototype,window.CustomEvent=i);var r=new CustomEvent(t,{detail:e});window.dispatchEvent(r)},e.prototype.loginInProgress=function(){return this._loginInProgress},e.prototype._hasResource=function(t){var e=this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS);return e&&!this._isEmpty(e)&&-1<e.indexOf(t+this.CONSTANTS.RESOURCE_DELIMETER)},e.prototype.getCachedToken=function(t){if(!this._hasResource(t))return null;var e=this._getItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY+t),i=this._getItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY+t),r=this.config.expireOffsetSeconds||300;return i&&i>this._now()+r?e:(this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY+t,\"\"),this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY+t,0),null)},e.prototype.getCachedUser=function(){if(this._user)return this._user;var t=this._getItem(this.CONSTANTS.STORAGE.IDTOKEN);return this._user=this._createUser(t),this._user},e.prototype.registerCallback=function(o,a,t){this._activeRenewals[a]=o,this._callBacksMappedToRenewStates[o]||(this._callBacksMappedToRenewStates[o]=[]);var s=this;this._callBacksMappedToRenewStates[o].push(t),this._callBackMappedToRenewStates[o]||(this._callBackMappedToRenewStates[o]=function(t,e,i,r){s._activeRenewals[a]=null;for(var n=0;n<s._callBacksMappedToRenewStates[o].length;++n)try{s._callBacksMappedToRenewStates[o][n](t,e,i,r)}catch(i){s.warn(i)}s._callBacksMappedToRenewStates[o]=null,s._callBackMappedToRenewStates[o]=null})},e.prototype._renewToken=function(t,e,i){this.info(\"renewToken is called for resource:\"+t);var r=this._addAdalFrame(\"adalRenewFrame\"+t),n=this._guid()+\"|\"+t;this.config.state=n,this._renewStates.push(n),this.verbose(\"Renew token Expected state: \"+n),i=i||\"token\";var o=this._urlRemoveQueryStringParameter(this._getNavigateUrl(i,t),\"prompt\");i===this.RESPONSE_TYPE.ID_TOKEN_TOKEN&&(this._idTokenNonce=this._guid(),this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN,this._idTokenNonce,!0),o+=\"&nonce=\"+encodeURIComponent(this._idTokenNonce)),o+=\"&prompt=none\",o=this._addHintParameters(o),this.registerCallback(n,t,e),this.verbosePii(\"Navigate to:\"+o),r.src=\"about:blank\",this._loadFrameTimeout(o,\"adalRenewFrame\"+t,t)},e.prototype._renewIdToken=function(t,e){this.info(\"renewIdToken is called\");var i=this._addAdalFrame(\"adalIdTokenFrame\"),r=this._guid()+\"|\"+this.config.clientId;this._idTokenNonce=this._guid(),this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN,this._idTokenNonce,!0),this.config.state=r,this._renewStates.push(r),this.verbose(\"Renew Idtoken Expected state: \"+r);var n=null==e?null:this.config.clientId,o=(e=e||\"id_token\",this._urlRemoveQueryStringParameter(this._getNavigateUrl(e,n),\"prompt\"));o+=\"&prompt=none\",o=this._addHintParameters(o),o+=\"&nonce=\"+encodeURIComponent(this._idTokenNonce),this.registerCallback(r,this.config.clientId,t),this.verbosePii(\"Navigate to:\"+o),i.src=\"about:blank\",this._loadFrameTimeout(o,\"adalIdTokenFrame\",this.config.clientId)},e.prototype._urlContainsQueryStringParameter=function(t,e){return new RegExp(\"[\\\\?&]\"+t+\"=\").test(e)},e.prototype._urlRemoveQueryStringParameter=function(t,e){var i=new RegExp(\"(\\\\&\"+e+\"=)[^&]+\");return t=t.replace(i,\"\"),i=new RegExp(\"(\"+e+\"=)[^&]+&\"),t=t.replace(i,\"\"),i=new RegExp(\"(\"+e+\"=)[^&]+\"),t=t.replace(i,\"\")},e.prototype._loadFrameTimeout=function(t,e,i){this.verbose(\"Set loading state to pending for: \"+i),this._saveItem(this.CONSTANTS.STORAGE.RENEW_STATUS+i,this.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS),this._loadFrame(t,e);var r=this;setTimeout(function(){if(r._getItem(r.CONSTANTS.STORAGE.RENEW_STATUS+i)===r.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS){r.verbose(\"Loading frame has timed out after: \"+r.CONSTANTS.LOADFRAME_TIMEOUT/1e3+\" seconds for resource \"+i);var t=r._activeRenewals[i];t&&r._callBackMappedToRenewStates[t]&&r._callBackMappedToRenewStates[t](\"Token renewal operation failed due to timeout\",null,\"Token Renewal Failed\"),r._saveItem(r.CONSTANTS.STORAGE.RENEW_STATUS+i,r.CONSTANTS.TOKEN_RENEW_STATUS_CANCELED)}},r.CONSTANTS.LOADFRAME_TIMEOUT)},e.prototype._loadFrame=function(e,t){var i=this;i.info(\"LoadFrame: \"+t);var r=t;setTimeout(function(){var t=i._addAdalFrame(r);\"\"!==t.src&&\"about:blank\"!==t.src||(t.src=e,i._loadFrame(e,r))},500)},e.prototype.acquireToken=function(t,e){if(this._isEmpty(t))return this.warn(\"resource is required\"),void e(\"resource is required\",null,\"resource is required\");var i=this.getCachedToken(t);return i?(this.info(\"Token is already in cache for resource:\"+t),void e(null,i,null)):this._user||this.config.extraQueryParameter&&-1!==this.config.extraQueryParameter.indexOf(\"login_hint\")?void(this._activeRenewals[t]?this.registerCallback(this._activeRenewals[t],t,e):(this._requestType=this.REQUEST_TYPE.RENEW_TOKEN,t===this.config.clientId?this._user?(this.verbose(\"renewing idtoken\"),this._renewIdToken(e)):(this.verbose(\"renewing idtoken and access_token\"),this._renewIdToken(e,this.RESPONSE_TYPE.ID_TOKEN_TOKEN)):this._user?(this.verbose(\"renewing access_token\"),this._renewToken(t,e)):(this.verbose(\"renewing idtoken and access_token\"),this._renewToken(t,e,this.RESPONSE_TYPE.ID_TOKEN_TOKEN)))):(this.warn(\"User login is required\"),void e(\"User login is required\",null,\"login required\"))},e.prototype.acquireTokenPopup=function(t,e,i,r){if(this._isEmpty(t))return this.warn(\"resource is required\"),void r(\"resource is required\",null,\"resource is required\");if(!this._user)return this.warn(\"User login is required\"),void r(\"User login is required\",null,\"login required\");if(this._acquireTokenInProgress)return this.warn(\"Acquire token interactive is already in progress\"),void r(\"Acquire token interactive is already in progress\",null,\"Acquire token interactive is already in progress\");var n=this._guid()+\"|\"+t;this.config.state=n,this._renewStates.push(n),this._requestType=this.REQUEST_TYPE.RENEW_TOKEN,this.verbose(\"Renew token Expected state: \"+n);var o=this._urlRemoveQueryStringParameter(this._getNavigateUrl(\"token\",t),\"prompt\");if(o+=\"&prompt=select_account\",e&&(o+=e),i&&-1===o.indexOf(\"&claims\"))o+=\"&claims=\"+encodeURIComponent(i);else if(i&&-1!==o.indexOf(\"&claims\"))throw new Error(\"Claims cannot be passed as an extraQueryParameter\");o=this._addHintParameters(o),this._acquireTokenInProgress=!0,this.info(\"acquireToken interactive is called for the resource \"+t),this.registerCallback(n,t,r),this._loginPopup(o,t,r)},e.prototype.acquireTokenRedirect=function(t,e,i){if(this._isEmpty(t))return this.warn(\"resource is required\"),void r(\"resource is required\",null,\"resource is required\");var r=this.callback;if(!this._user)return this.warn(\"User login is required\"),void r(\"User login is required\",null,\"login required\");if(this._acquireTokenInProgress)return this.warn(\"Acquire token interactive is already in progress\"),void r(\"Acquire token interactive is already in progress\",null,\"Acquire token interactive is already in progress\");var n=this._guid()+\"|\"+t;this.config.state=n,this.verbose(\"Renew token Expected state: \"+n);var o=this._urlRemoveQueryStringParameter(this._getNavigateUrl(\"token\",t),\"prompt\");if(o+=\"&prompt=select_account\",e&&(o+=e),i&&-1===o.indexOf(\"&claims\"))o+=\"&claims=\"+encodeURIComponent(i);else if(i&&-1!==o.indexOf(\"&claims\"))throw new Error(\"Claims cannot be passed as an extraQueryParameter\");o=this._addHintParameters(o),this._acquireTokenInProgress=!0,this.info(\"acquireToken interactive is called for the resource \"+t),this._saveItem(this.CONSTANTS.STORAGE.LOGIN_REQUEST,window.location.href),this._saveItem(this.CONSTANTS.STORAGE.STATE_RENEW,n,!0),this.promptUser(o)},e.prototype.promptUser=function(t){t?(this.infoPii(\"Navigate to:\"+t),window.location.replace(t)):this.info(\"Navigate url is empty\")},e.prototype.clearCache=function(){this._saveItem(this.CONSTANTS.STORAGE.LOGIN_REQUEST,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ANGULAR_LOGIN_REQUEST,\"\"),this._saveItem(this.CONSTANTS.STORAGE.SESSION_STATE,\"\"),this._saveItem(this.CONSTANTS.STORAGE.STATE_LOGIN,\"\"),this._saveItem(this.CONSTANTS.STORAGE.STATE_RENEW,\"\"),this._renewStates=[],this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN,\"\"),this._saveItem(this.CONSTANTS.STORAGE.IDTOKEN,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,\"\"),this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR,\"\"),this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR,\"\");var t=this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS);if(!this._isEmpty(t)){t=t.split(this.CONSTANTS.RESOURCE_DELIMETER);for(var e=0;e<t.length&&\"\"!==t[e];e++)this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY+t[e],\"\"),this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY+t[e],0)}this._saveItem(this.CONSTANTS.STORAGE.TOKEN_KEYS,\"\")},e.prototype.clearCacheForResource=function(t){this._saveItem(this.CONSTANTS.STORAGE.STATE_RENEW,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,\"\"),this._hasResource(t)&&(this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY+t,\"\"),this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY+t,0))},e.prototype.logOut=function(){var t;if(this.clearCache(),this._user=null,this.config.logOutUri)t=this.config.logOutUri;else{var e=\"common\",i=\"\";this.config.tenant&&(e=this.config.tenant),this.config.postLogoutRedirectUri&&(i=\"post_logout_redirect_uri=\"+encodeURIComponent(this.config.postLogoutRedirectUri)),t=this.instance+e+\"/oauth2/logout?\"+i}this.infoPii(\"Logout navigate to: \"+t),this.promptUser(t)},e.prototype._isEmpty=function(t){return void 0===t||!t||0===t.length},e.prototype.getUser=function(t){if(\"function\"!=typeof t)throw new Error(\"callback is not a function\");if(this._user)t(null,this._user);else{var e=this._getItem(this.CONSTANTS.STORAGE.IDTOKEN);this._isEmpty(e)?(this.warn(\"User information is not available\"),t(\"User information is not available\",null)):(this.info(\"User exists in cache: \"),this._user=this._createUser(e),t(null,this._user))}},e.prototype._addHintParameters=function(t){if(this._user&&this._user.profile)if(this._user.profile.sid&&-1!==t.indexOf(\"&prompt=none\"))this._urlContainsQueryStringParameter(\"sid\",t)||(t+=\"&sid=\"+encodeURIComponent(this._user.profile.sid));else if(this._user.profile.upn&&(this._urlContainsQueryStringParameter(\"login_hint\",t)||(t+=\"&login_hint=\"+encodeURIComponent(this._user.profile.upn)),!this._urlContainsQueryStringParameter(\"domain_hint\",t)&&-1<this._user.profile.upn.indexOf(\"@\"))){var e=this._user.profile.upn.split(\"@\");t+=\"&domain_hint=\"+encodeURIComponent(e[e.length-1])}return t},e.prototype._createUser=function(t){var e=null,i=this._extractIdToken(t);return i&&i.hasOwnProperty(\"aud\")&&(i.aud.toLowerCase()===this.config.clientId.toLowerCase()?(e={userName:\"\",profile:i},i.hasOwnProperty(\"upn\")?e.userName=i.upn:i.hasOwnProperty(\"email\")&&(e.userName=i.email)):this.warn(\"IdToken has invalid aud field\")),e},e.prototype._getHash=function(t){return-1<t.indexOf(\"#/\")?t=t.substring(t.indexOf(\"#/\")+2):-1<t.indexOf(\"#\")&&(t=t.substring(1)),t},e.prototype.isCallback=function(t){t=this._getHash(t);var e=this._deserialize(t);return e.hasOwnProperty(this.CONSTANTS.ERROR_DESCRIPTION)||e.hasOwnProperty(this.CONSTANTS.ACCESS_TOKEN)||e.hasOwnProperty(this.CONSTANTS.ID_TOKEN)},e.prototype.getLoginError=function(){return this._getItem(this.CONSTANTS.STORAGE.LOGIN_ERROR)},e.prototype.getRequestInfo=function(t){t=this._getHash(t);var e=this._deserialize(t),i={valid:!1,parameters:{},stateMatch:!1,stateResponse:\"\",requestType:this.REQUEST_TYPE.UNKNOWN};if(e&&((i.parameters=e).hasOwnProperty(this.CONSTANTS.ERROR_DESCRIPTION)||e.hasOwnProperty(this.CONSTANTS.ACCESS_TOKEN)||e.hasOwnProperty(this.CONSTANTS.ID_TOKEN))){i.valid=!0;var r=\"\";if(!e.hasOwnProperty(\"state\"))return this.warn(\"No state returned\"),i;if(this.verbose(\"State: \"+e.state),r=e.state,i.stateResponse=r,this._matchState(i))return i;if(!i.stateMatch&&window.parent){i.requestType=this._requestType;for(var n=this._renewStates,o=0;o<n.length;o++)if(n[o]===i.stateResponse){i.stateMatch=!0;break}}}return i},e.prototype._matchNonce=function(t){var e=this._getItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN);if(e){e=e.split(this.CONSTANTS.CACHE_DELIMETER);for(var i=0;i<e.length;i++)if(e[i]===t.profile.nonce)return!0}return!1},e.prototype._matchState=function(t){var e=this._getItem(this.CONSTANTS.STORAGE.STATE_LOGIN);if(e){e=e.split(this.CONSTANTS.CACHE_DELIMETER);for(var i=0;i<e.length;i++)if(e[i]===t.stateResponse)return t.requestType=this.REQUEST_TYPE.LOGIN,t.stateMatch=!0}var r=this._getItem(this.CONSTANTS.STORAGE.STATE_RENEW);if(r)for(r=r.split(this.CONSTANTS.CACHE_DELIMETER),i=0;i<r.length;i++)if(r[i]===t.stateResponse)return t.requestType=this.REQUEST_TYPE.RENEW_TOKEN,t.stateMatch=!0;return!1},e.prototype._getResourceFromState=function(t){if(t){var e=t.indexOf(\"|\");if(-1<e&&e+1<t.length)return t.substring(e+1)}return\"\"},e.prototype.saveTokenFromHash=function(t){this.info(\"State status:\"+t.stateMatch+\"; Request type:\"+t.requestType),this._saveItem(this.CONSTANTS.STORAGE.ERROR,\"\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,\"\");var e,i=this._getResourceFromState(t.stateResponse);t.parameters.hasOwnProperty(this.CONSTANTS.ERROR_DESCRIPTION)?(this.infoPii(\"Error :\"+t.parameters.error+\"; Error description:\"+t.parameters[this.CONSTANTS.ERROR_DESCRIPTION]),this._saveItem(this.CONSTANTS.STORAGE.ERROR,t.parameters.error),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,t.parameters[this.CONSTANTS.ERROR_DESCRIPTION]),t.requestType===this.REQUEST_TYPE.LOGIN&&(this._loginInProgress=!1,this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR,t.parameters.error_description))):t.stateMatch?(this.info(\"State is right\"),t.parameters.hasOwnProperty(this.CONSTANTS.SESSION_STATE)&&this._saveItem(this.CONSTANTS.STORAGE.SESSION_STATE,t.parameters[this.CONSTANTS.SESSION_STATE]),t.parameters.hasOwnProperty(this.CONSTANTS.ACCESS_TOKEN)&&(this.info(\"Fragment has access token\"),this._hasResource(i)||(e=this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS)||\"\",this._saveItem(this.CONSTANTS.STORAGE.TOKEN_KEYS,e+i+this.CONSTANTS.RESOURCE_DELIMETER)),this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY+i,t.parameters[this.CONSTANTS.ACCESS_TOKEN]),this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY+i,this._expiresIn(t.parameters[this.CONSTANTS.EXPIRES_IN]))),t.parameters.hasOwnProperty(this.CONSTANTS.ID_TOKEN)&&(this.info(\"Fragment has id token\"),this._loginInProgress=!1,this._user=this._createUser(t.parameters[this.CONSTANTS.ID_TOKEN]),this._user&&this._user.profile?this._matchNonce(this._user)?(this._saveItem(this.CONSTANTS.STORAGE.IDTOKEN,t.parameters[this.CONSTANTS.ID_TOKEN]),i=this.config.loginResource?this.config.loginResource:this.config.clientId,this._hasResource(i)||(e=this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS)||\"\",this._saveItem(this.CONSTANTS.STORAGE.TOKEN_KEYS,e+i+this.CONSTANTS.RESOURCE_DELIMETER)),this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY+i,t.parameters[this.CONSTANTS.ID_TOKEN]),this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY+i,this._user.profile.exp)):(this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR,\"Nonce received: \"+this._user.profile.nonce+\" is not same as requested: \"+this._getItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN)),this._user=null):(t.parameters.error=\"invalid id_token\",t.parameters.error_description=\"Invalid id_token. id_token: \"+t.parameters[this.CONSTANTS.ID_TOKEN],this._saveItem(this.CONSTANTS.STORAGE.ERROR,\"invalid id_token\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,\"Invalid id_token. id_token: \"+t.parameters[this.CONSTANTS.ID_TOKEN])))):(t.parameters.error=\"Invalid_state\",t.parameters.error_description=\"Invalid_state. state: \"+t.stateResponse,this._saveItem(this.CONSTANTS.STORAGE.ERROR,\"Invalid_state\"),this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION,\"Invalid_state. state: \"+t.stateResponse)),this._saveItem(this.CONSTANTS.STORAGE.RENEW_STATUS+i,this.CONSTANTS.TOKEN_RENEW_STATUS_COMPLETED)},e.prototype.getResourceForEndpoint=function(t){if(this.config&&this.config.anonymousEndpoints)for(var e=0;e<this.config.anonymousEndpoints.length;e++)if(-1<t.indexOf(this.config.anonymousEndpoints[e]))return null;if(this.config&&this.config.endpoints)for(var i in this.config.endpoints)if(-1<t.indexOf(i))return this.config.endpoints[i];return(-1<t.indexOf(\"http://\")||-1<t.indexOf(\"https://\"))&&this._getHostFromUri(t)!==this._getHostFromUri(this.config.redirectUri)?null:this.config.loginResource},e.prototype._getHostFromUri=function(t){var e=String(t).replace(/^(https?:)\\/\\//,\"\");return e=e.split(\"/\")[0]},e.prototype.handleWindowCallback=function(t){if(null==t&&(t=window.location.hash),this.isCallback(t)){var e=null,i=!1;0<this._openedWindows.length&&this._openedWindows[this._openedWindows.length-1].opener&&this._openedWindows[this._openedWindows.length-1].opener._adalInstance?(e=this._openedWindows[this._openedWindows.length-1].opener._adalInstance,i=!0):window.parent&&window.parent._adalInstance&&(e=window.parent._adalInstance);var r,n,o=e.getRequestInfo(t),a=null;n=i||window.parent!==window?e._callBackMappedToRenewStates[o.stateResponse]:e.callback,e.info(\"Returned from redirect url\"),e.saveTokenFromHash(o),o.requestType===this.REQUEST_TYPE.RENEW_TOKEN&&window.parent?(window.parent!==window?e.verbose(\"Window is in iframe, acquiring token silently\"):e.verbose(\"acquiring token interactive in progress\"),r=o.parameters[e.CONSTANTS.ACCESS_TOKEN]||o.parameters[e.CONSTANTS.ID_TOKEN],a=e.CONSTANTS.ACCESS_TOKEN):o.requestType===this.REQUEST_TYPE.LOGIN&&(r=o.parameters[e.CONSTANTS.ID_TOKEN],a=e.CONSTANTS.ID_TOKEN);var s=o.parameters[e.CONSTANTS.ERROR_DESCRIPTION],l=o.parameters[e.CONSTANTS.ERROR];try{n&&n(s,r,l,a)}catch(t){e.error(\"Error occurred in user defined callback function: \"+t)}window.parent!==window||i||(e.config.navigateToLoginRequestUrl?window.location.href=e._getItem(e.CONSTANTS.STORAGE.LOGIN_REQUEST):window.location.hash=\"\")}},e.prototype._getNavigateUrl=function(t,e){var i=\"common\";this.config.tenant&&(i=this.config.tenant);var r=this.instance+i+\"/oauth2/authorize\"+this._serialize(t,this.config,e)+this._addLibMetadata();return this.info(\"Navigate url:\"+r),r},e.prototype._extractIdToken=function(t){var e=this._decodeJwt(t);if(!e)return null;try{var i=e.JWSPayload,r=this._base64DecodeStringUrlSafe(i);return r?JSON.parse(r):(this.info(\"The returned id_token could not be base64 url safe decoded.\"),null)}catch(t){this.error(\"The returned id_token could not be decoded\",t)}return null},e.prototype._base64DecodeStringUrlSafe=function(t){return t=t.replace(/-/g,\"+\").replace(/_/g,\"/\"),window.atob?decodeURIComponent(escape(window.atob(t))):decodeURIComponent(escape(this._decode(t)))},e.prototype._decode=function(t){var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",i=(t=String(t).replace(/=+$/,\"\")).length;if(i%4==1)throw new Error(\"The token to be decoded is not correctly encoded.\");for(var r,n,o,a,s,l,u,c,p=\"\",h=0;h<i;h+=4){if(r=e.indexOf(t.charAt(h)),n=e.indexOf(t.charAt(h+1)),o=e.indexOf(t.charAt(h+2)),a=e.indexOf(t.charAt(h+3)),h+2===i-1){l=(s=r<<18|n<<12|o<<6)>>16&255,u=s>>8&255,p+=String.fromCharCode(l,u);break}if(h+1===i-1){l=(s=r<<18|n<<12)>>16&255,p+=String.fromCharCode(l);break}l=(s=r<<18|n<<12|o<<6|a)>>16&255,u=s>>8&255,c=255&s,p+=String.fromCharCode(l,u,c)}return p},e.prototype._decodeJwt=function(t){if(this._isEmpty(t))return null;var e=/^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/.exec(t);return!e||e.length<4?(this.warn(\"The returned id_token is not parseable.\"),null):{header:e[1],JWSPayload:e[2],JWSSig:e[3]}},e.prototype._convertUrlSafeToRegularBase64EncodedString=function(t){return t.replace(\"-\",\"+\").replace(\"_\",\"/\")},e.prototype._serialize=function(t,e,i){var r=[];if(null!==e){r.push(\"?response_type=\"+t),r.push(\"client_id=\"+encodeURIComponent(e.clientId)),i&&r.push(\"resource=\"+encodeURIComponent(i)),r.push(\"redirect_uri=\"+encodeURIComponent(e.redirectUri)),r.push(\"state=\"+encodeURIComponent(e.state)),e.hasOwnProperty(\"slice\")&&r.push(\"slice=\"+encodeURIComponent(e.slice)),e.hasOwnProperty(\"extraQueryParameter\")&&r.push(e.extraQueryParameter);var n=e.correlationId?e.correlationId:this._guid();r.push(\"client-request-id=\"+encodeURIComponent(n))}return r.join(\"&\")},e.prototype._deserialize=function(t){function e(t){return decodeURIComponent(t.replace(r,\" \"))}var i,r=/\\+/g,n=/([^&=]+)=([^&]*)/g,o={};for(i=n.exec(t);i;)o[e(i[1])]=e(i[2]),i=n.exec(t);return o},e.prototype._decimalToHex=function(t){for(var e=t.toString(16);e.length<2;)e=\"0\"+e;return e},e.prototype._guid=function(){var t=window.crypto||window.msCrypto;if(t&&t.getRandomValues){var e=new Uint8Array(16);return t.getRandomValues(e),e[6]|=64,e[6]&=79,e[8]|=128,e[8]&=191,this._decimalToHex(e[0])+this._decimalToHex(e[1])+this._decimalToHex(e[2])+this._decimalToHex(e[3])+\"-\"+this._decimalToHex(e[4])+this._decimalToHex(e[5])+\"-\"+this._decimalToHex(e[6])+this._decimalToHex(e[7])+\"-\"+this._decimalToHex(e[8])+this._decimalToHex(e[9])+\"-\"+this._decimalToHex(e[10])+this._decimalToHex(e[11])+this._decimalToHex(e[12])+this._decimalToHex(e[13])+this._decimalToHex(e[14])+this._decimalToHex(e[15])}for(var i=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\",r=\"0123456789abcdef\",n=0,o=\"\",a=0;a<36;a++)\"-\"!==i[a]&&\"4\"!==i[a]&&(n=16*Math.random()|0),\"x\"===i[a]?o+=r[n]:\"y\"===i[a]?(n&=3,o+=r[n|=8]):o+=i[a];return o},e.prototype._expiresIn=function(t){return t=t||3599,this._now()+parseInt(t,10)},e.prototype._now=function(){return Math.round((new Date).getTime()/1e3)},e.prototype._addAdalFrame=function(t){if(void 0!==t){this.info(\"Add adal frame to document:\"+t);var e=document.getElementById(t);if(!e){if(document.createElement&&document.documentElement&&(window.opera||-1===window.navigator.userAgent.indexOf(\"MSIE 5.0\"))){var i=document.createElement(\"iframe\");i.setAttribute(\"id\",t),i.setAttribute(\"aria-hidden\",\"true\"),i.style.visibility=\"hidden\",i.style.position=\"absolute\",i.style.width=i.style.height=i.borderWidth=\"0px\",e=document.getElementsByTagName(\"body\")[0].appendChild(i)}else document.body&&document.body.insertAdjacentHTML&&document.body.insertAdjacentHTML(\"beforeEnd\",'<iframe name=\"'+t+'\" id=\"'+t+'\" style=\"display:none\"></iframe>');window.frames&&window.frames[t]&&(e=window.frames[t])}return e}},e.prototype._saveItem=function(t,e,i){if(this.config&&this.config.cacheLocation&&\"localStorage\"===this.config.cacheLocation){if(!this._supportsLocalStorage())return this.info(\"Local storage is not supported\"),!1;if(i){var r=this._getItem(t)||\"\";localStorage.setItem(t,r+e+this.CONSTANTS.CACHE_DELIMETER)}else localStorage.setItem(t,e);return!0}return this._supportsSessionStorage()?(sessionStorage.setItem(t,e),!0):(this.info(\"Session storage is not supported\"),!1)},e.prototype._getItem=function(t){return this.config&&this.config.cacheLocation&&\"localStorage\"===this.config.cacheLocation?this._supportsLocalStorage()?localStorage.getItem(t):(this.info(\"Local storage is not supported\"),null):this._supportsSessionStorage()?sessionStorage.getItem(t):(this.info(\"Session storage is not supported\"),null)},e.prototype._supportsLocalStorage=function(){try{return!!window.localStorage&&(window.localStorage.setItem(\"storageTest\",\"A\"),\"A\"==window.localStorage.getItem(\"storageTest\")&&(window.localStorage.removeItem(\"storageTest\"),!window.localStorage.getItem(\"storageTest\")))}catch(t){return!1}},e.prototype._supportsSessionStorage=function(){try{return!!window.sessionStorage&&(window.sessionStorage.setItem(\"storageTest\",\"A\"),\"A\"==window.sessionStorage.getItem(\"storageTest\")&&(window.sessionStorage.removeItem(\"storageTest\"),!window.sessionStorage.getItem(\"storageTest\")))}catch(t){return!1}},e.prototype._cloneConfig=function(t){if(null===t||\"object\"!=typeof t)return t;var e={};for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},e.prototype._addLibMetadata=function(){return\"&x-client-SKU=Js&x-client-Ver=\"+this._libVersion()},e.prototype.log=function(t,e,i,r){if(t<=Logging.level){if(!Logging.piiLoggingEnabled&&r)return;var n=(new Date).toUTCString(),o=\"\";o=this.config.correlationId?n+\":\"+this.config.correlationId+\"-\"+this._libVersion()+\"-\"+this.CONSTANTS.LEVEL_STRING_MAP[t]+\" \"+e:n+\":\"+this._libVersion()+\"-\"+this.CONSTANTS.LEVEL_STRING_MAP[t]+\" \"+e,i&&(o+=\"\\nstack:\\n\"+i.stack),Logging.log(o)}},e.prototype.error=function(t,e){this.log(this.CONSTANTS.LOGGING_LEVEL.ERROR,t,e)},e.prototype.warn=function(t){this.log(this.CONSTANTS.LOGGING_LEVEL.WARN,t,null)},e.prototype.info=function(t){this.log(this.CONSTANTS.LOGGING_LEVEL.INFO,t,null)},e.prototype.verbose=function(t){this.log(this.CONSTANTS.LOGGING_LEVEL.VERBOSE,t,null)},e.prototype.errorPii=function(t,e){this.log(this.CONSTANTS.LOGGING_LEVEL.ERROR,t,e,!0)},e.prototype.warnPii=function(t){this.log(this.CONSTANTS.LOGGING_LEVEL.WARN,t,null,!0)},e.prototype.infoPii=function(t){this.log(this.CONSTANTS.LOGGING_LEVEL.INFO,t,null,!0)},e.prototype.verbosePii=function(t){this.log(this.CONSTANTS.LOGGING_LEVEL.VERBOSE,t,null,!0)},e.prototype._libVersion=function(){return\"1.0.17\"},t.exports&&(t.exports=e,t.exports.inject=function(t){return new e(t)}),e)});Df.inject;function Of(t){this.message=t}(Of.prototype=new Error).name=\"InvalidCharacterError\";var zf=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,\"\");if(e.length%4==1)throw new Of(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var i,r,n=0,o=0,a=\"\";r=e.charAt(o++);~r&&(i=n%4?64*i+r:r,n++%4)&&(a+=String.fromCharCode(255&i>>(-2*n&6))))r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r);return a};function Rf(t){var e=t.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(e.length%4){case 0:break;case 2:e+=\"==\";break;case 3:e+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return decodeURIComponent(zf(e).replace(/(.)/g,function(t,e){var i=e.charCodeAt(0).toString(16).toUpperCase();return i.length<2&&(i=\"0\"+i),\"%\"+i}))}catch(t){return zf(e)}}function Nf(t){this.message=t}(Nf.prototype=new Error).name=\"InvalidTokenError\";function Bf(t,e){if(\"string\"!=typeof t)throw new Nf(\"Invalid token specified\");var i=!0===(e=e||{}).header?0:1;try{return JSON.parse(Rf(t.split(\".\")[i]))}catch(t){throw new Nf(\"Invalid token specified: \"+t.message)}}Bf.InvalidTokenError=Nf;var Ff=(Uf.prototype.initialize=function(){var i=this;return this.initPromise||(this.initPromise=new Promise(function(t,e){if(i.options.authType===p.AuthenticationType.subscriptionKey)t();else if(i.options.authType===p.AuthenticationType.aad){if(i.options.authContext=i.options.authContext||Uf.getDefaultAuthContext(i.options),i.options.authContext.handleWindowCallback(),i.options.authContext.getLoginError())return void e(new Error(\"Error logging in the AAD users: \"+i.options.authContext.getLoginError()));if(i.options.authContext.isCallback(window.location.hash))return void i.map.dispose();setTimeout(function(){return i._loginAndAcquire(t,e)})}else i.options.authType===p.AuthenticationType.anonymous?t(i._triggerTokenFetch()):e(new Error(\"An invalid authentication type was specified.\"))})),this.initPromise},Uf.getDefaultAuthContext=function(t){if(!t.aadAppId)throw new Error(\"No AAD app ID was specified.\");if(!t.aadTenant)throw new Error(\"No AAD tenant was specified.\");return this.defaultAuthContext||(this.defaultAuthContext=new Df({instance:t.aadInstance||l,tenant:t.aadTenant,clientId:t.aadAppId,cacheLocation:this.constants.preferredCacheLocation})),this.defaultAuthContext},Uf.prototype._loginAndAcquire=function(i,r){function t(){n.options.authContext.acquireToken(v,function(t){if(t)r(new Error(t));else{var e={map:n.map,type:Uf.constants.events.tokenAcquired};n.map.events.invoke(Uf.constants.events.tokenAcquired,e),i()}})}var n=this,e=this.options.authContext.getCachedToken(this.options.aadAppId),o=this.options.authContext.getCachedUser();if(e&&o)t();else{this.options.authContext.loginInProgress()||this.options.authContext.login();var a=setInterval(function(){n.options.authContext.loginInProgress()||(clearInterval(a),n.options.authContext.getCachedToken(n.options.aadAppId)?t():r(new Error(n.options.authContext.getLoginError()||\"The AAD authentication context is not logged-in for the specified app ID: \"+n.options.aadAppId)))},25)}},Uf.prototype.getAuthType=function(){return this.options.authType},Uf.prototype.getClientId=function(){return this.options.clientId},Uf.prototype.getToken=function(){var r=this;if(this.options.authType===p.AuthenticationType.aad){var n=this.options.authContext.getCachedToken(v);return n||(this.options.authContext.getCachedUser()||this.options.authContext.login(),this.options.authContext.acquireToken(v,function(t,e){if(!t){n=e;var i={map:r.map,type:Uf.constants.events.tokenAcquired};r.map.events.invoke(Uf.constants.events.tokenAcquired,i)}})),n}if(this.options.authType===p.AuthenticationType.anonymous){var t=this._getItem(Uf.constants.storage.accessTokenKey);if(t){var e=this._getTokenExpiry(t);if(e<300&&0<e)this._triggerTokenFetch();else if(e<=0)throw this._saveItem(Uf.constants.storage.accessTokenKey,\"\"),new Error(Uf.constants.errors.tokenExpired)}else this._triggerTokenFetch();return t}if(this.options.authType===p.AuthenticationType.subscriptionKey)return this.options.subscriptionKey},Uf.prototype._getTokenExpiry=function(t){var e=Bf(t).exp,i=this._getCurrentTime();return 0<e-i?e-i:-1},Uf.prototype._storeAccessToken=function(t){this._saveItem(Uf.constants.storage.accessTokenKey,t);var e={map:this.map,type:Uf.constants.events.tokenAcquired};this.map.events.invoke(Uf.constants.events.tokenAcquired,e)},Uf.prototype._saveItem=function(t,e){return this._supportsLocalStorage()?(localStorage.setItem(t,e),!0):!!this._supportsSessionStorage()&&(sessionStorage.setItem(t,e),!0)},Uf.prototype._getItem=function(t){return this._supportsLocalStorage()?localStorage.getItem(t):this._supportsSessionStorage()?sessionStorage.getItem(t):null},Uf.prototype._supportsLocalStorage=function(){try{return!!window.localStorage&&(window.localStorage.setItem(Uf.constants.storage.testStorageKey,\"A\"),\"A\"===window.localStorage.getItem(Uf.constants.storage.testStorageKey)&&(window.localStorage.removeItem(Uf.constants.storage.testStorageKey),!window.localStorage.getItem(Uf.constants.storage.testStorageKey)))}catch(t){return!1}},Uf.prototype._supportsSessionStorage=function(){try{return!!window.sessionStorage&&(window.sessionStorage.setItem(Uf.constants.storage.testStorageKey,\"A\"),\"A\"===window.sessionStorage.getItem(Uf.constants.storage.testStorageKey)&&(window.sessionStorage.removeItem(Uf.constants.storage.testStorageKey),!window.sessionStorage.getItem(Uf.constants.storage.testStorageKey)))}catch(t){return!1}},Uf.prototype._getCurrentTime=function(){return Math.round((new Date).getTime()/1e3)},Uf.prototype.signRequest=function(t){t.headers=t.headers||{},t.headers[_]=this.sessionId,t.headers[g]=y,t.headers[f]=\"MapControl/\"+D+\" (Web)\";var e=this.getToken();switch(this.options.authType){case p.AuthenticationType.aad:case p.AuthenticationType.anonymous:t.headers[m]=this.options.clientId,t.headers[u]=c+e;break;case p.AuthenticationType.subscriptionKey:if(\"url\"in t)-1!==t.url.indexOf(\"?\")?t.url+=\"&subscription-key=\"+e:t.url+=\"?&subscription-key=\"+e;else{if(!(\"domain\"in t))throw new Error(\"Could not determine if the provided object was UrlOptions or RequestParameters\");t.queryParams=t.queryParams||{},t.queryParams[\"subscription-key\"]=e}break;default:throw new Error(\"An invalid authentication type was specified\")}return t},Uf.constants={preferredCacheLocation:\"localStorage\",storage:{accessTokenKey:\"access.token.key\",testStorageKey:\"testStorage\"},events:{tokenAcquired:\"tokenacquired\"},tokenExpiresIn:3599,tokenRefreshClockSkew:300,errors:{tokenExpired:\"Token Expired, Try again\"}},Uf);function Uf(t){var n=this;this._triggerTokenFetch=function(){return new Promise(function(i,r){n.options.getToken(function(t){try{var e=n._getTokenExpiry(t)-Uf.constants.tokenRefreshClockSkew;n._storeAccessToken(t),clearTimeout(n.tokenTimeOutHandle),n.tokenTimeOutHandle=setTimeout(n._triggerTokenFetch,1e3*e),i()}catch(t){r(new Error(\"Invalid token returned by getToken function\"))}},function(t){r(t)},n.map)})};var e=t.getServiceOptions();this.options=e.authOptions,this.sessionId=e.sessionId,this.map=t}var jf=(qf.prototype.add=function(t,e){if(Array.isArray(t))for(var i=0,r=t;i<r.length;i++){var n=r[i];this._add(n,e)}else this._add(t,e)},qf.prototype.getControls=function(){return Array.from(this.controls)},qf.prototype.remove=function(t){if(Array.isArray(t))for(var e=0,i=t;e<i.length;e++){var r=i[e];this._remove(r)}else this._remove(t)},qf.prototype._add=function(t,e){this.controls.add(t);var i=(new N).merge(e),r=t.onAdd(this.map,e),n=this.controlContainer.getElementsByClassName(i.position);if(!(0<n.length))throw new Error(\"Control position \"+i.position+\" does not exist.\");n.item(0).appendChild(r)},qf.prototype._remove=function(t){t.onRemove(),this.controls.delete(t)},qf);function qf(t){for(var e in this.map=t,this.controlContainer=document.createElement(\"div\"),this.controlContainer.classList.add(\"atlas-control-container\"),p.ControlPosition)if(p.ControlPosition.hasOwnProperty(e)){var i=document.createElement(\"div\");i.classList.add(p.ControlPosition[e]),i.classList.add(\"subcontrol-container\"),this.controlContainer.appendChild(i)}this.map.getMapContainer().appendChild(this.controlContainer),this.controls=new Set}var Vf=(Gf.prototype.addCallback=function(s,l,u,t,c){var e,p,h=this;if(t)e=function(t){var e=t.lngLat?new bo(t.lngLat.lng,t.lngLat.lat):void 0,i=t.point?[t.point.x,t.point.y]:void 0,r=t.features?t.features.map(function(t){return new hn(t.geometry,t.properties,t.id)}):[],n={type:t.type,originalEvent:t.originalEvent,position:e,coordinate:i,features:r};u(n)};else switch(s){case\"data\":case\"sourcedata\":case\"styledata\":e=function(t){var e=w(w({dataType:t.dataType},\"source\"===t.dataType&&w(w(w({isSourceLoaded:t.isSourceLoaded},t.sourceDataType&&{sourceDataType:t.sourceDataType}),{source:h.map.sources.getById(t.sourceId)}),t.tile&&{tile:{id:{x:t.tile.tileID.canonical.x,y:t.tile.tileID.canonical.y,z:t.tile.tileID.canonical.z},size:t.tile.tileSize,state:t.tile.state}})),{map:h.map,type:t.type});c&&h.map.events._removeListener(s,l,u),u(e)};break;case\"error\":e=function(t){var e={error:t.error,map:h.map,type:t.type};c&&h.map.events._removeListener(s,l,u),u(e)};break;case\"touchstart\":case\"touchend\":case\"touchmove\":case\"touchcancel\":e=function(t){if(t.originalEvent){if(t.originalEvent===p)return;p=t.originalEvent}var e=t.point?new mn(t.point.x,t.point.y):void 0,i=t.points?t.points.map(function(t){return new mn(t.x,t.y)}):[],r=t.lngLat?new bo(t.lngLat.lng,t.lngLat.lat):void 0,n=t.lngLats?t.lngLats.map(function(t){return new bo(t.lng,t.lat)}):[],o=r?h.map.layers.getRenderedShapes(new yn(r),l?[l]:void 0):[],a={map:h.map,originalEvent:t.originalEvent,pixel:e,pixels:i,position:r,positions:n,shapes:o,layerId:l||void 0,preventDefault:function(){return t.preventDefault()},type:t.type};c&&h.map.events._removeListener(s,l,u),u(a)};break;case\"mousedown\":case\"mouseup\":case\"mouseover\":case\"mousemove\":case\"click\":case\"dblclick\":case\"mouseout\":case\"mouseenter\":case\"mouseleave\":case\"contextmenu\":e=function(t){if(t.originalEvent){if(t.originalEvent===p)return;p=t.originalEvent}var e=t.lngLat?new bo(t.lngLat.lng,t.lngLat.lat):void 0,i=t.point?new mn(t.point.x,t.point.y):void 0,r=e?h.map.layers.getRenderedShapes(new yn(e),l?[l]:void 0):[],n={map:h.map,originalEvent:t.originalEvent,position:e,pixel:i,preventDefault:function(){return t.preventDefault()},shapes:r,layerId:l||void 0,type:t.type};c&&h.map.events._removeListener(s,l,u),u(n)};break;case\"styleimagemissing\":e=function(t){c&&h.map.events._removeListener(s,l,u),u(t.id)};break;case\"wheel\":e=function(t){if(t.originalEvent){if(t.originalEvent===p)return;p=t.originalEvent}var e={map:h.map,originalEvent:t.originalEvent,preventDefault:function(){return t.preventDefault()},type:t.type};c&&h.map.events._removeListener(s,l,u),u(e)};break;case\"resize\":e=function(t){var e={map:h.map,type:t.type};for(var i in t)\"type\"!==i&&\"target\"!==i&&(e[i]=t[i]);c&&h.map.events._removeListener(s,l,u),u(e)};break;default:e=function(t){var e={map:h.map,type:t.type};t.originalEvent&&(e.originalEvent=t.originalEvent),c&&h.map.events._removeListener(s,l,u),u(e)}}this.callbacks.has(l)||this.callbacks.set(l,new kr),this.callbacks.get(l).has(s)||this.callbacks.get(l).set(s,new kr),this.callbacks.get(l).get(s).set(u,[e,c])},Gf.prototype.removeCallback=function(t,e,i){this.callbacks.has(e)&&this.callbacks.get(e).has(t)&&this.callbacks.get(e).get(t).has(i)&&this.callbacks.get(e).get(t).delete(i)},Gf.prototype.getModifiedCallback=function(t,e,i){if(this.callbacks.has(e)&&this.callbacks.get(e).has(t)&&this.callbacks.get(e).get(t).has(i))return this.callbacks.get(e).get(t).get(i)[0]},Gf.prototype.getLayerCallbacks=function(t){if(this.callbacks.has(t))return this.callbacks.get(t)},Gf.prototype.getEventCallbacks=function(t,e){if(this.callbacks.has(e)){var i=this.callbacks.get(e);if(i.has(t))return i.get(t)}},Gf);function Gf(t){this.callbacks=new kr,this.map=t}var Zf=(Hf.prototype.add=function(t,e,i){if(\"function\"==typeof e)this._addGlobalListener(t,e,!1,!1);else for(var r=0,n=e=Array.isArray(e)?e:[e];r<n.length;r++){var o=n[r];o instanceof fa&&fa._isMBoxEvent(t)?this._addLayerListener(t,o,i,!1,!1):o._addEventListener(t,i,!1)}},Hf.prototype.addOnce=function(t,e,i){\"function\"==typeof e?this._addGlobalListener(t,e,!1,!0):e instanceof fa&&fa._isMBoxEvent(t)?this._addLayerListener(t,e,i,!1,!0):e._addEventListener(t,i,!0)},Hf.prototype._addLegacy=function(t,e,i){\"function\"==typeof e?this._addGlobalListener(t,e,!0,!1):this._addLayerListener(t,e,i,!0,!1)},Hf.prototype._addLayerListener=function(t,e,i,r,n){var o=e instanceof fa?e.getId():e,a=this.map.layers.getLayerById(o),s=this.mapCallbackHandler.getModifiedCallback(t,o,i);if(s&&a)for(var l=0,u=a._getLayerIds();l<u.length;l++){var c=u[l];this.map._getMap().off(t,c,s)}if(this.mapCallbackHandler.addCallback(t,o,i,r,n),a){s=this.mapCallbackHandler.getModifiedCallback(t,o,i);for(var p=0,h=a._getLayerIds();p<h.length;p++)c=h[p],this.map._getMap().on(t,c,s)}},Hf.prototype._addGlobalListener=function(t,e,i,r){var n=this.mapCallbackHandler.getModifiedCallback(t,\"\",e);if(n&&this.map._getMap().off(t,n),this.mapCallbackHandler.addCallback(t,\"\",e,i,r),n=this.mapCallbackHandler.getModifiedCallback(t,\"\",e),\"load\"===t&&this.map._isLoaded()){var o={type:\"load\",map:this.map};setTimeout(function(){return n(o)})}else if(\"ready\"===t){if(this.map._isReady()){var a={type:\"ready\",map:this.map};setTimeout(function(){return n(a)})}}else this.map._getMap().on(t,n)},Hf.prototype.invoke=function(t,e,i){if(void 0===i)this._invokeListeners(t,\"\",e);else if(e instanceof fa&&fa._isMBoxEvent(t))this._invokeListeners(t,e.getId(),i);else{if(!(e instanceof Eo))throw new Error(\"The invoke target is invalid.\");e._invokeEvent(t,i)}},Hf.prototype._invokeListeners=function(i,r,n){var o=this,t=this.mapCallbackHandler.getEventCallbacks(i,r);t?t.forEach(function(t,e){t[0],t[1]&&o._removeListener(i,r,e),e(n)}):\"error\"===i&&console.error(\"error\"in n?n.error:n)},Hf.prototype.remove=function(t,e,i){if(\"function\"==typeof e)this._removeListener(t,\"\",e);else for(var r=0,n=e=Array.isArray(e)?e:[e];r<n.length;r++){var o=n[r];o instanceof fa&&fa._isMBoxEvent(t)?this._removeListener(t,o,i):o._removeEventListener(t,i)}},Hf.prototype._removeLegacy=function(t,e,i){\"function\"==typeof e?this._removeListener(t,\"\",e):this._removeListener(t,e,i)},Hf.prototype._removeListener=function(t,e,i){var r=e instanceof fa?e.getId():e,n=this.mapCallbackHandler.getModifiedCallback(t,r,i);if(n)if(r){var o=this.map.layers.getLayerById(r);if(o)for(var a=0,s=o._getLayerIds();a<s.length;a++){var l=s[a];this.map._getMap().off(t,l,n)}}else this.map._getMap().off(t,n);this.mapCallbackHandler.removeCallback(t,r,i)},Hf.prototype._enableLayerEvents=function(a){var s=this,t=this.mapCallbackHandler.getLayerCallbacks(a.getId());t&&t.forEach(function(t,o){t.forEach(function(t){for(var e=t[0],i=0,r=a._getLayerIds();i<r.length;i++){var n=r[i];s.map._getMap().on(o,n,e)}})})},Hf.prototype._disableLayerEvents=function(a){var s=this,t=this.mapCallbackHandler.getLayerCallbacks(a.getId());t&&t.forEach(function(t,o){t.forEach(function(t){for(var e=t[0],i=0,r=a._getLayerIds();i<r.length;i++){var n=r[i];s.map._getMap().off(o,n,e)}})})},Hf);function Hf(t){this.map=t,this.mapCallbackHandler=new Vf(this.map)}var Kf=(Wf.prototype.add=function(t,e){if(Array.isArray(t))for(var i=0,r=t;i<r.length;i++){var n=r[i];this._addMarker(n,e)}else this._addMarker(t,e)},Wf.prototype._addMarker=function(t,e){t._addToMap(this.map,e),this.markers.add(t)},Wf.prototype.getMarkers=function(){return Array.from(this.markers)},Wf.prototype.remove=function(t){if(Array.isArray(t))for(var e=0,i=t;e<i.length;e++){var r=i[e];this._removeMarker(r)}else this._removeMarker(t)},Wf.prototype._removeMarker=function(e){var i=this;e instanceof Zs?(e._removeFromMap(),this.markers.delete(e)):this.markers.forEach(function(t){t._getId()===e&&(t._removeFromMap(),i.markers.delete(t))})},Wf.prototype.clear=function(){var e=this;this.markers.forEach(function(t){t._removeFromMap(),e.markers.delete(t)})},Wf);function Wf(t){this.markers=new Set,this.map=t}var Xf=(Yf.prototype.add=function(a,e){var s=this;return new Promise(function(i,r){if(s.userImages.has(a))i();else if(e instanceof HTMLImageElement||e instanceof ImageData)s.map._getMap().addImage(a,e),s.userImages.set(a,e),i();else if(\"string\"==typeof e){var n,t=void 0;t=/<svg/i.test(e)&&!/^data:/i.test(e)?\"data:image/svg+xml;base64,\"+window.btoa(e):e;var o=!1;s.map._sendRequest(t,\"Image\").then(function(t){if(!o)return t.blob()}).then(function(t){if(!o){clearTimeout(n);var e=new Image;e.onload=function(){s.map._getMap().addImage(a,e),s.userImages.set(a,e),i()},e.onerror=e.onabort=function(){r(\"Failed to load image into HTML element.\")},e.src=URL.createObjectURL(t)}}).catch(function(){o||(clearTimeout(n),r(\"Failed to load image into HTML element.\"))}),n=setTimeout(function(){o=!0,r(\"Failed to load image within specified timeout: \"+s.imageLoadTimeout+\" ms.\")},s.imageLoadTimeout)}})},Yf.prototype.clear=function(){var i=this;this.userImages.forEach(function(t,e){i.map._getMap().removeImage(e)}),this.userImages.clear()},Yf.prototype.getImageIds=function(){var i=[];return this.userImages.forEach(function(t,e){i.push(e)}),i},Yf.prototype.createFromTemplate=function(t,e,i,r,n){i=i||\"#1A73AA\",r=r||\"#fff\";var o=Hl(e,n);return o=o.replace(/{color}/g,i).replace(/{secondaryColor}/g,r).replace(/{text}/g,\"\"),this.add(t,o)},Yf.prototype.hasImage=function(t){return this.userImages.has(t)},Yf.prototype.remove=function(t){this.map._getMap().removeImage(t),this.userImages.delete(t)},Yf.prototype._restoreImages=function(){var i=this;this.userImages.forEach(function(t,e){i.map._getMap().hasImage(e)||i.map._getMap().addImage(e,t)})},Yf);function Yf(t){this.userImages=new kr,this.imageLoadTimeout=5e3,this.map=t}var Jf=(Qf.prototype.add=function(t,e,i){void 0===i&&(i=!0);var r=e instanceof fa?e.getId():e;if(Array.isArray(t))for(var n=0,o=t;n<o.length;n++){var a=o[n];this._addLayer(a,r,i)}else this._addLayer(t,r,i)},Qf.prototype._addLayer=function(e,i,t){if(i!==e.getId()&&this.layersById.has(i))if(this.layersById.has(e.getId())){var r=this.layers.findIndex(function(t){return t.getId()===e.getId()}),n=this.layers[r];t&&(this._removeMapboxLayers(n),this._addMapboxLayers(e,i)),this.map.events._disableLayerEvents(n),this.map.events._enableLayerEvents(e),this.layersById.set(e.getId(),e),this.layers.splice(r,1);var o=this.layers.findIndex(function(t){return t.getId()===i});this.layers.splice(o,0,e),n.onRemove(),e.onAdd(this.map)}else t&&this._addMapboxLayers(e,i),o=this.layers.findIndex(function(t){return t.getId()===i}),this.layers.splice(o,0,e),this.layersById.set(e.getId(),e),this.map.events._enableLayerEvents(e),e.onAdd(this.map);else this.layersById.has(e.getId())?(r=this.layers.findIndex(function(t){return t.getId()===e.getId()}),n=this.layers[r],t&&(this._removeMapboxLayers(n),this._addMapboxLayers(e,r+1)),this.map.events._disableLayerEvents(n),this.map.events._enableLayerEvents(e),this.layersById.set(e.getId(),e),this.layers[r]=e,n.onRemove()):(t&&this._addMapboxLayers(e),this.layersById.set(e.getId(),e),this.layers.push(e),this.map.events._enableLayerEvents(e)),e.onAdd(this.map)},Qf.prototype._addMapboxLayers=function(t,e){if(!this.map._isReady())throw new Error(\"The layer '\"+t.getId()+\"' could not be added to the map because the map is not ready. Please use a ready event listener to guarantee the map is ready before adding a layer to it.\");if(!(t instanceof Ss)||t.getOptions().tileUrl){t instanceof Ba&&this.map._getMap().addSource(t._getSourceId(),t._buildSource());for(var i=this._getMapboxBefore(e),r=0,n=t._buildLayers();r<n.length;r++){var o=n[r];this.map._getMap().addLayer(o,i)}}},Qf.prototype._removeMapboxLayers=function(t){for(var e=0,i=t._getLayerIds();e<i.length;e++){var r=i[e];this.map._getMap().getLayer(r)&&this.map._getMap().removeLayer(r)}t instanceof Ba&&this.map._getMap().getSource(t._getSourceId())&&this.map._getMap().removeSource(t._getSourceId())},Qf.prototype._getMapboxBefore=function(e){if(\"string\"==typeof e){var t=this.layersById.get(e);if(!t)return;for(var i=0,r=t._getLayerIds();i<r.length;i++){var n=r[i];if(this.map._getMap().getLayer(n))return n}e=this.layers.findIndex(function(t){return t.getId()===e})+1}for(var o=e;o<this.layers.length;o++)for(var a=0,s=this.layers[o]._getLayerIds();a<s.length;a++)if(n=s[a],this.map._getMap().getLayer(n))return n},Qf.prototype.clear=function(){for(var t=this.layers.length-1;0<=t;t--){var e=this.layers[t];this._removeMapboxLayers(e),this.map.events._disableLayerEvents(e),this.layersById.delete(e.getId()),this.layers.splice(t,1),e.onRemove()}},Qf.prototype.getLayerById=function(t){return this.layersById.get(t)},Qf.prototype.getLayers=function(){return this.layers.slice(0)},Qf.prototype._getSourceIds=function(){for(var e=new Set,t=0,i=this.layers;t<i.length;t++)i[t]._getSourceIds().forEach(function(t){return e.add(t)});return e},Qf.prototype.move=function(t,e){var i=t instanceof fa?t.getId():t,r=e instanceof fa?e.getId():e;if(!this.layersById.has(i))throw new Error(\"The layer '\"+i+\"' has not been added to the map and cannot be moved.\");var n=this.layers.findIndex(function(t){return t.getId()===i});if(this._moveMapboxLayers(this.layers[n],r),t=this.layers[n],this.layers.splice(n,1),this.layersById.has(r)){var o=this.layers.findIndex(function(t){return t.getId()===r});this.layers.splice(o,0,t)}else this.layers.push(t)},Qf.prototype._moveMapboxLayers=function(t,e){for(var i=this._getMapboxBefore(e),r=0,n=t._getLayerIds();r<n.length;r++){var o=n[r];this.map._getMap().moveLayer(o,i)}},Qf.prototype.getRenderedShapes=function(t,e,i){var r,n,o=this;if(t=t||[-180,-85.0511,180,85.0511],Array.isArray(t)?4===t.length||6===t.length?r=this.map.positionsToPixels([zo.getSouthWest(t),zo.getNorthEast(t)]):2!==t.length&&3!==t.length||(r=this.map.positionsToPixels([t])[0]):r=this.map.positionsToPixels([t.coordinates])[0],e){n=[];for(var a=0,s=e=Array.isArray(e)?e:[e];a<s.length;a++){var l=s[a],u=l instanceof fa?l.getId():l;if(!this.layersById.has(u))throw new Error(\"The layer '\"+u+\"' has not been added to the map and its rendered features cannot be retrieved.\");n.push.apply(n,this.layersById.get(u)._getLayerIds().filter(function(t){return!!o.map._getMap().getLayer(t)}))}}var c=this.map._getMap().queryRenderedFeatures(r,{layers:n,filter:i});return this.map.sources._mapFeaturesToShapes(c)},Qf.prototype.remove=function(t,e){if(void 0===e&&(e=!0),Array.isArray(t))for(var i=0,r=t;i<r.length;i++){var n=r[i];this._removeLayer(n,e)}else this._removeLayer(t,e)},Qf.prototype._removeLayer=function(t,e){var i=t instanceof fa?t.getId():t;if(!this.layersById.has(i))throw new Error(\"The layer '\"+i+\"' has not been added to the map and cannot be removed.\");var r=this.layers.findIndex(function(t){return t.getId()===i}),n=this.layers[r];e&&this._removeMapboxLayers(n),this.layersById.delete(i),this.layers.splice(r,1),this.map.events._disableLayerEvents(n),n.onRemove()},Qf);function Qf(t){this.layersById=new kr,this.layers=[],this.map=t}var $f=(tm.prototype.add=function(t){for(var e=0,i=t=Array.isArray(t)?t:[t];e<i.length;e++){var r=i[e];this.popups.has(r)||(this.popups.add(r),r.attach(this.map))}},tm.prototype.clear=function(){var e=this;this.popups.forEach(function(t){e.popups.delete(t),t.remove()})},tm.prototype.remove=function(t){for(var e=0,i=t=Array.isArray(t)?t:[t];e<i.length;e++){var r=i[e];this.popups.has(r)&&(this.popups.delete(r),r.remove())}},tm.prototype.getPopups=function(){return Array.from(this.popups)},tm.prototype._getCollectionDiv=function(){var t=this.map.getMapContainer().querySelector(\".\"+tm.Css.collection);return t||((t=document.createElement(\"div\")).classList.add(tm.Css.collection),t.setAttribute(\"aria-label\",\"Map Information\"),this.map.getMapContainer().appendChild(t)),t},tm.prototype._addDraggedPopup=function(t){0===this.draggedPopups.size&&(this.map.getMapContainer().addEventListener(\"mousemove\",this._onDrag),this.map.getMapContainer().addEventListener(\"touchmove\",this._onDrag),this.map.getMapContainer().addEventListener(\"mouseup\",this._onUp),this.map.getMapContainer().addEventListener(\"touchend\",this._onUp)),this.draggedPopups.add(t)},tm.Css={collection:\"popup-collection-container\"},tm);function tm(t){var r=this;this._onDrag=function(t){var e,i;\"mousemove\"===t.type?(e=(t=t).clientX,i=t.clientY):\"touchmove\"===t.type&&(e=(t=t).touches[0].clientX,i=t.touches[0].clientY),r.draggedPopups.forEach(function(t){t._dragToPixel([e,i])})},this._onUp=function(){r.map.getMapContainer().removeEventListener(\"mousemove\",r._onDrag),r.map.getMapContainer().removeEventListener(\"touchmove\",r._onDrag),r.map.getMapContainer().removeEventListener(\"mouseup\",r._onUp),r.map.getMapContainer().removeEventListener(\"touchend\",r._onUp),r.draggedPopups.forEach(function(t){r.draggedPopups.delete(t),t._onUp()})},this.map=t,this.popups=new Set,this.draggedPopups=new Set}var em=(im.prototype.add=function(t,e){if(void 0===e&&(e=!0),Array.isArray(t))for(var i=0,r=t;i<r.length;i++){var n=r[i];this._addSource(n,e)}else this._addSource(t,e)},im.prototype.getRenderedShapes=function(t,e,i){var r=\"string\"==typeof t?t:t.getId(),n=this.map._getMap().querySourceFeatures(r,{sourceLayer:i,filter:e});return this.map.sources._mapFeaturesToShapes(n,!0,this.sources.get(r))},im.prototype._buildSources=function(){var e={};return this.sources.forEach(function(t){e[t.getId()]=t._buildSource()}),e},im.prototype.clear=function(){var e=this;this.sources.forEach(function(t){e.remove(t)})},im.prototype.getById=function(t){return this.sources.get(t)},im.prototype.getSources=function(){return Array.from(this.sources.values())},im.prototype.isSourceLoaded=function(t){var e=t instanceof ea?t.getId():t;return this.map._getMap().isSourceLoaded(e)},im.prototype.remove=function(t,e){if(void 0===e&&(e=!0),Array.isArray(t))for(var i=0,r=t;i<r.length;i++){var n=r[i];this._removeSource(n,e)}else this._removeSource(t,e)},im.prototype._removeSource=function(t,e){var i=t instanceof ea?t.getId():t;if(this.sources.has(i)){if(this.map._getMap().getSource(i)&&e&&this.map._getMap().removeSource(i),this.map._getMap().getSource(i)&&e)throw new Error(\"One or more layers have a dependency on the source '\"+i+\"'\");return this.sources.get(i)._setMap(null),void this.sources.delete(i)}throw new Error(\"'\"+i+\"' is not added to the map\")},im.prototype._addSource=function(t,e){if(this.sources.has(t.getId())){if(e)throw new Error(\"'\"+t.getId()+\"' is already added to the map\");this.sources.get(t.getId())._setMap(null),this.sources.delete(t.getId())}if(e){if(!this.map._isReady())throw new Error(\"The source '\"+t.getId()+\"' could not be added to the map because the map is not ready. Please use a ready event listener to guarantee the map is ready before adding a source to it.\");this.map._getMap().addSource(t.getId(),t._buildSource())}this.sources.set(t.getId(),t),t._setMap(this.map)},im.prototype._mapFeaturesToShapes=function(t,e,i){for(var r=[],n=0,o=t;n<o.length;n++){var a=o[n];if((i||\"string\"==typeof a.source)&&\"string\"==typeof a.properties[Lo._shapeIdPropName]){var s=i||this.sources.get(a.source);if(s instanceof na){var l=s.getShapeById(a.properties[Lo._shapeIdPropName]);if(l instanceof Lo){r.push(l);continue}}}e||r.push(a)}return r},im);function im(t){this.map=t,this.sources=new kr}var rm,nm=(b(om,rm=E),om);function om(){var t=null!==rm&&rm.apply(this,arguments)||this;return t.duration=1e3,t.type=\"jump\",t}var am,sm=(b(lm,am=E),lm);function lm(){var t=null!==am&&am.apply(this,arguments)||this;return t.bottom=0,t.left=0,t.right=0,t.top=0,t}var um,cm=(b(pm,um=E),pm.prototype.merge=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var i=0,r=t;i<r.length;i++){var n=r[i];n&&\"number\"==typeof n.padding&&(n.padding={top:n.padding,bottom:n.padding,left:n.padding,right:n.padding})}return um.prototype.merge.apply(this,t)},pm);function pm(){var t=null!==um&&um.apply(this,arguments)||this;return t.bounds=[-180,-89,180,90],t.maxBounds=void 0,t.maxZoom=20,t.offset=new mn(0,0),t.padding=new sm,t}var hm,dm=(b(fm,hm=E),fm);function fm(){var t=null!==hm&&hm.apply(this,arguments)||this;return t.zoom=1,t.center=new bo(0,0),t.centerOffset=new mn(0,0),t.bearing=0,t.pitch=0,t.minZoom=1,t.maxZoom=20,t.maxBounds=void 0,t}var mm,gm=(b(ym,mm=E),ym);function ym(){var t=null!==mm&&mm.apply(this,arguments)||this;return t.name=void 0,t.before=void 0,t.minZoom=1,t.maxZoom=20,t.overwrite=!1,t.defer=!1,t.opacity=1,t}var vm,_m=(b(xm,vm=gm),xm);function xm(){var t=null!==vm&&vm.apply(this,arguments)||this;return t.color=\"rgba(0,0,0,.5)\",t.outlineColor=\"#000\",t.radius=1,t.outlineWidth=5,t.name=\"default-circles\",t}var bm,wm=(b(Sm,bm=gm),Sm);function Sm(){var t=null!==bm&&bm.apply(this,arguments)||this;return t.cap=\"butt\",t.join=\"miter\",t.name=\"default-linestrings\",t.color=\"#000\",t.width=1,t}var Tm,Em=(b(Im,Tm=gm),Im);function Im(){var t=null!==Tm&&Tm.apply(this,arguments)||this;return t.iconSize=1,t.fontSize=14,t.fontColor=\"#000\",t.textFont=\"SegoeUi-Regular\",t.cluster=!0,t.clusterIcon=void 0,t.textOffset=[0,0],t.name=\"default-pins\",t.icon=\"pin-darkblue\",t.title=\"\",t}var Cm,Am=(b(km,Cm=gm),km);function km(){var t=null!==Cm&&Cm.apply(this,arguments)||this;return t.color=\"rgba(0,0,0,.5)\",t.outlineColor=\"#000\",t.name=\"default-polygons\",t}var Pm,Mm=(b(Lm,Pm=gm),Lm);function Lm(){var t=null!==Pm&&Pm.apply(this,arguments)||this;return t.name=\"default-raster\",t}var Dm,Om=(b(zm,Dm=E),zm);function zm(){var t=null!==Dm&&Dm.apply(this,arguments)||this;return t.anchor=\"map\",t.color=\"#FFFFFF\",t.intensity=.5,t.position=[1.15,210,30],t}var Rm,Nm=(b(Bm,Rm=E),Bm.prototype.merge=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var i=0,r=t;i<r.length;i++){var n=r[i];n&&(n.hasOwnProperty(\"view\")?n.userRegion=n.view:n.hasOwnProperty(\"userRegion\")&&(n.view=n.userRegion),\"string\"==typeof n.language&&(n.language=ml.getCode(n.language)))}return Rm.prototype.merge.apply(this,t)},Bm);function Bm(){var t=null!==Rm&&Rm.apply(this,arguments)||this;return t.autoResize=!0,t.language=zl(),t.light=new Om,t.preserveDrawingBuffer=!1,t.renderWorldCopies=!0,t.showBuildingModels=!1,t.showFeedbackLink=!0,t.showLogo=!0,t.showTileBoundaries=!1,t.style=\"road\",t.view=Bl(),t.userRegion=t.view,t}var Fm,Um=(b(jm,Fm=E),jm);function jm(){var t=null!==Fm&&Fm.apply(this,arguments)||this;return t.flow=\"none\",t.incidents=!1,t}var qm,Vm=(b(Gm,qm=E),Gm.prototype.merge=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var i=0,r=t;i<r.length;i++){var n=r[i];n&&(n.authOptions?\"string\"==typeof n.authOptions.subscriptionKey&&(n.subscriptionKey=n[\"subscription-key\"]=n.authOptions.subscriptionKey):\"string\"==typeof n.subscriptionKey?(n[\"subscription-key\"]=n.subscriptionKey,n.authOptions={authType:p.AuthenticationType.subscriptionKey,subscriptionKey:n.subscriptionKey}):\"string\"==typeof n[\"subscription-key\"]&&(n.subscriptionKey=n[\"subscription-key\"],n.authOptions={authType:p.AuthenticationType.subscriptionKey,subscriptionKey:n[\"subscription-key\"]}),\"string\"==typeof n.sessionId?n[\"session-id\"]=n.sessionId:\"string\"==typeof n[\"session-id\"]&&(n.sessionId=n[\"session-id\"]),\"boolean\"==typeof n.disableTelemetry?n[\"disable-telemetry\"]=n.disableTelemetry:\"boolean\"==typeof n[\"disable-telemetry\"]&&(n.disableTelemetry=n[\"disable-telemetry\"]),\"boolean\"==typeof n.enableAccessibility?n[\"enable-accessibility\"]=n.enableAccessibility:\"boolean\"==typeof n[\"enable-accessibility\"]&&(n.enableAccessibility=n[\"enable-accessibility\"]))}var o=qm.prototype.merge.apply(this,t);return o.authOptions.authType!==p.AuthenticationType.subscriptionKey&&(o[\"subscription-key\"]=o.subscriptionKey=void 0),o},Gm._cloneCustomizer=function(t){if(\"object\"==typeof t)return Object.assign({},t)},Gm);function Gm(){var t=null!==qm&&qm.apply(this,arguments)||this;return t.authOptions=Dl(),t.disableTelemetry=!1,t[\"disable-telemetry\"]=t.disableTelemetry,t.domain=Ol(),t.enableAccessibility=!0,t[\"enable-accessibility\"]=t.enableAccessibility,t.refreshExpiredTiles=!0,t.subscriptionKey=Nl(),t[\"subscription-key\"]=t.subscriptionKey,t.sessionId=Rl(),t[\"session-id\"]=t.sessionId,t.transformRequest=void 0,t}var Zm=function(){this.version=8,this.sprite=\"\",this.glyphs=\"\",this.light={},this.sources={},this.layers=[]},Hm=(Km.prototype.build=function(t){var e=new Zm;if(null!=this.glyphs&&(e.glyphs=this.glyphs),null!=this.sprite&&(e.sprite=this.sprite),null!=t.light&&Object.assign(e.light,t.light),null!=this.map.sources&&(e.sources=this.map.sources._buildSources()),null!=this.map.layers)for(var i=0,r=this.map.layers.getLayers();i<r.length;i++){var n=r[i];e.layers=e.layers.concat(n._buildLayers()),n instanceof Ba&&(e.sources[n._getSourceId()]=n._buildSource())}return e},Km.prototype.setGlyphs=function(t){this.glyphs=t},Km.prototype.setSprite=function(t){this.sprite=t},Km);function Km(t){this.sprite=\"\",this.glyphs=\"{fontstack}/{range}\",this.map=t}var Wm,Xm=(b(Ym,Wm=fa),Ym.prototype._buildLayers=function(){return this.layers},Ym.prototype._getLayerIds=function(){return this.layers.map(function(t){return t.id})},Ym.prototype._getSourceIds=function(){for(var t=new Set,e=0,i=this.layers;e<i.length;e++){var r=i[e];\"string\"==typeof r.source?t.add(r.source):r.source&&t.add(r.id)}return t},Ym);function Ym(t,e){var i=Wm.call(this,e)||this;return i.layers=t,i}var Jm,Qm=(b($m,Jm=ea),$m.prototype._buildSource=function(){return this.source},$m.prototype._modifySource=function(t,e){var i=t.tiles.map(function(t){return\"string\"==typeof t?t:new P({domain:d,path:t.path,queryParams:w(w({},e),t.queryParams)}).toString()});return t.tiles=i,t},$m);function $m(t,e,i){var r=Jm.call(this,t)||this;return r.source=r._modifySource(e,i),r}var tg=(eg.prototype.initialize=function(){var e=this;return this.initPromise||(this.initPromise=this.request(o,a).then(function(t){e.definitions=t}).catch(function(t){throw new Error(\"Failed to retrieve the style definitions: \"+t)})),this.initPromise},eg.prototype.getStyleComponents=function(c){return S(this,void 0,void 0,function(){var u,e,i,r=this;return T(this,function(t){return u=new Set,e=this.lookUp(c),i=e.layerGroups.map(function(l){return S(r,void 0,void 0,function(){var e,i,r,n,o,a,s;return T(this,function(t){switch(t.label){case 0:return e=l.layerPath,i=l.name,r={language:c.language},c.view&&(r.view=c.view),[4,this.buildComponent(i,e,r,u)];case 1:for(n=t.sent(),o=0,a=n.layer.layers;o<a.length;o++)\"fill-extrusion\"===(s=a[o]).type&&(s.layout=s.layout||{},s.layout.visibility=c.showBuildingModels?\"visible\":\"none\");return[2,n]}})})}),[2,Promise.all(i)]})})},eg.prototype.getFlowComponent=function(i,r){return S(this,void 0,void 0,function(){var e;return T(this,function(t){return e=this.getFlowPath(i,r),[2,this.buildComponent(\"flow\",e)]})})},eg.prototype.getCopyrightCaption=function(t){var e=this.lookUp(t).copyright.join(\" \");return t.showLogo||(e+=\" ©2019 Microsoft\"),e},eg.prototype.getSprite=function(t){var e=this.lookUp(t);return new P({domain:this.definitions.domain,path:e.spritePath}).toString()},eg.prototype.getGlyphs=function(t){var e=this.lookUp(t);return new P({domain:this.definitions.domain,path:e.glyphsPath}).toString()},eg.prototype.getFlowPath=function(t,e){return this.lookUp(t).flowPaths[e.flow]},eg.prototype.getTheme=function(t){return this.lookUp(t).theme.toLowerCase()||\"light\"},eg.prototype.getDef=function(){return this.definitions},eg.prototype.lookUp=function(t){for(var e,i=t.style||this.definitions.defaultStyle,r=0,n=this.definitions.styles;r<n.length;r++){var o=n[r];if(o.name===i)return o;o.name===this.definitions.defaultStyle&&(e=o)}return e},eg.prototype.request=function(e,i){return S(this,void 0,void 0,function(){return T(this,function(t){return[2,new P({domain:e,path:i}).get()]})})},eg.prototype.buildComponent=function(s,e,l,u){return S(this,void 0,void 0,function(){return T(this,function(t){return[2,this.request(this.definitions.domain,e).then(function(t){for(var e=new Xm(t.layers,s),i=[],r=0,n=t.sources;r<n.length;r++){var o=n[r],a=o.name;if(u){if(u.has(a))continue;u.add(a)}i.push(new Qm(a,o,l))}return{layer:e,sources:i}})]})})},eg);function eg(){}var ig=(rg.prototype.getCanvas=function(){return this.map.getCanvas()},rg.prototype.getCanvasContainer=function(){return this.map.getCanvasContainer()},rg.prototype.getMapContainer=function(){return this.map.getContainer()},rg.prototype.getServiceOptions=function(){return Jo(this.serviceOptions,Vm._cloneCustomizer)},rg.prototype.setServiceOptions=function(t){this.serviceOptions=(new Vm).merge(this.serviceOptions,t),this.serviceOptions[\"enable-accessibility\"]?this.accessibleMapDelegate.addToMap():this.accessibleMapDelegate.removeFromMap()},rg.prototype.setCamera=function(t,e){var i,r;if(void 0===e&&(e=!1),\"padding\"in t||\"offset\"in t||\"bounds\"in t){var n=(new cm).merge({maxZoom:this.getCamera().maxZoom},t),o=this._generateSafeBounds(n.bounds);if(!(i=this.map.cameraForBounds(o,{padding:n.padding,offset:n.offset,maxZoom:n.maxZoom})))throw new Error(\"The map cannot be fit to the current canvas with the given CameraBoundsOptions.\");this.map.setMaxZoom(n.maxZoom),r=this._generateSafeBounds(n.maxBounds)}else{var a=(new dm).merge(this.getCamera(),t);if(a.centerOffset&&2<=a.centerOffset.length){var s=a.centerOffset,l=ao([a.center],a.zoom);l[0][0]+=s[0],l[0][1]+=s[1],a.center=oo(l,a.zoom)[0]}i={center:a.center,zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,around:void 0},this.map.setMinZoom(a.minZoom),this.map.setMaxZoom(a.maxZoom),r=this._generateSafeBounds(a.maxBounds)}r?this.map.setMaxBounds(r):this.map.setMaxBounds(null);var u=(new nm).merge(t),c={duration:u.duration,easing:function(t){return t},offset:[0,0],animate:!0},p={fromControl:e};\"jump\"===u.type?this.map.jumpTo(i,p):\"ease\"===u.type?this.map.easeTo(w(w({},i),c),p):\"fly\"===u.type&&this.map.flyTo(w(w({},i),c),p)},rg.prototype.setCameraBounds=function(t){this.setCamera(t)},rg.prototype.getCamera=function(){var t=this.map.getBounds().getSouthWest().toArray(),e=this.map.getBounds().getNorthEast().toArray();return{zoom:this.map.getZoom(),center:this.map.getCenter().toArray(),bearing:this.map.getBearing(),pitch:this.map.getPitch(),bounds:new zo(t,e),minZoom:this.map.getMinZoom(),maxZoom:this.map.getMaxZoom()}},rg.prototype.setStyle=function(t){delete t.preserveDrawingBuffer;var e=(new Nm).merge(this.styleOptions,t);e.autoResize!==this.styleOptions.autoResize&&this._setAutoResize(e.autoResize),e.language!==this.styleOptions.language&&(this.localizedStringsPromise=ml.getStrings(e.language)),e.renderWorldCopies!==this.styleOptions.renderWorldCopies&&this.map.setRenderWorldCopies(e.renderWorldCopies),e.showFeedbackLink!==this.styleOptions.showFeedbackLink&&this.copyrightControl.setOptions({showFeedbackLink:e.showFeedbackLink}),e.showLogo&&!this.logoControl?(this.logoControl=new Gd,this.controls.add(this.logoControl,{position:p.ControlPosition.NonFixed})):!e.showLogo&&this.logoControl&&(this.controls.remove(this.logoControl),delete this.logoControl),e.showTileBoundaries!==this.styleOptions.showTileBoundaries&&(this.map.showTileBoundaries=e.showTileBoundaries),this._setStyleComponents(e),this.styleOptions=e},rg.prototype.getStyle=function(){return Ar(this.styleOptions)},rg.prototype.addIcon=function(t,e){this.imageSprite.add(t,e)},rg.prototype.addPins=function(t,e){var i,r=(new Em).merge(e),n=this.layers.getLayerById(r.name),o=!1;if(n||(o=!0,n=new ys(r.name+\"-source\",r.name,{source:r.name+\"-source\",minZoom:r.minZoom,maxZoom:r.maxZoom,iconOptions:{anchor:\"center\",size:r.iconSize,image:[\"case\",[\"has\",\"icon\"],[\"get\",\"icon\"],r.icon],ignorePlacement:!r.cluster,opacity:r.opacity},textOptions:{anchor:\"center\",textField:[\"case\",[\"has\",\"point_count\"],[\"to-string\",[\"get\",\"point_count\"]],[\"has\",\"title\"],[\"to-string\",[\"get\",\"title\"]],r.title],font:[\"case\",[\"has\",\"point_count\"],[\"literal\",[\"StandardFontCondensed-Bold\"]],[\"literal\",[r.textFont]]],size:[\"case\",[\"has\",\"point_count\"],20,r.fontSize],ignorePlacement:!r.cluster,opacity:r.opacity,offset:[\"case\",[\"has\",\"point_count\"],[\"literal\",[.5,-.45]],[\"literal\",[r.textOffset[0]/16,r.textOffset[1]/16]]],color:r.fontColor}})),!(n instanceof ys))throw new Error(\"A layer with name '\"+r.name+\"' already exists but it is not a SymbolLayer.A SymbolLayer should be used for rendering pins.\");var a=n.getSource();\"string\"==typeof a?(i=a,a=this.sources.getById(i)):i=a.getId();var s=!1;if(a||(s=!0,a=new na(i,{cluster:r.cluster})),!(a instanceof na))throw new Error(\"The source with name '\"+i+\"' already exists but it is not a DataSource.New data can only be added to a DataSource.\");s&&this.sources.add(a),o&&this.layers.add(n,r.before);var l=new No(t);r.defer?(r.overwrite&&a._clearNoUpdate(),a._addNoUpdate(l)):r.overwrite?a.setShapes(l):a.add(l)},rg.prototype.addCircles=function(t,e){var i,r=(new _m).merge(e),n=this.layers.getLayerById(r.name),o=!1;if(n||(o=!0,n=new Sa(r.name+\"-source\",r.name,{source:r.name+\"-source\",minZoom:r.minZoom,maxZoom:r.maxZoom,opacity:r.opacity,radius:[\"case\",[\"has\",\"radius\"],[\"get\",\"radius\"],r.radius],color:[\"case\",[\"has\",\"color\"],[\"get\",\"color\"],r.color],strokeColor:[\"case\",[\"has\",\"outlineColor\"],[\"get\",\"outlineColor\"],r.outlineColor],strokeWidth:[\"case\",[\"has\",\"outlineWidth\"],[\"get\",\"outlineWidth\"],r.outlineWidth]})),!(n instanceof Sa))throw new Error(\"A layer with name '\"+r.name+\"' already exists but it is not a BubbleLayer.A BubbleLayer should be used for rendering circles.\");var a=n.getSource();\"string\"==typeof a?(i=a,a=this.sources.getById(i)):i=a.getId();var s=!1;if(a||(s=!0,a=new na(i)),!(a instanceof na))throw new Error(\"The source with name '\"+i+\"' already exists but it is not a DataSource.New data can only be added to a DataSource.\");s&&this.sources.add(a),o&&this.layers.add(n,r.before);var l=new No(t);r.defer?(r.overwrite&&a._clearNoUpdate(),a._addNoUpdate(l)):r.overwrite?a.setShapes(l):a.add(l)},rg.prototype.addLinestrings=function(t,e){var i,r=(new wm).merge(e),n=this.layers.getLayerById(r.name),o=!1;if(n||(o=!0,n=new Ka(r.name+\"-source\",r.name,{source:r.name+\"-source\",minZoom:r.minZoom,maxZoom:r.maxZoom,lineCap:r.cap,lineJoin:r.join,strokeOpacity:r.opacity,strokeColor:[\"case\",[\"has\",\"color\"],[\"get\",\"color\"],r.color],strokeWidth:[\"case\",[\"has\",\"width\"],[\"get\",\"width\"],r.width]})),!(n instanceof Ka))throw new Error(\"A layer with name '\"+r.name+\"' already exists but it is not a LineLayer.A LineLayer should be used for rendering linestrings.\");var a=n.getSource();\"string\"==typeof a?(i=a,a=this.sources.getById(i)):i=a.getId();var s=!1;if(a||(s=!0,a=new na(i)),!(a instanceof na))throw new Error(\"The source with name '\"+i+\"' already exists but it is not a DataSource.New data can only be added to a DataSource.\");s&&this.sources.add(a),o&&this.layers.add(n,r.before);var l=new No(t);r.defer?(r.overwrite&&a._clearNoUpdate(),a._addNoUpdate(l)):r.overwrite?a.setShapes(l):a.add(l)},rg.prototype.addPolygons=function(t,e){var i,r=(new Am).merge(e),n=this.layers.getLayerById(r.name),o=!1;if(n||(o=!0,n=new os(r.name+\"-source\",r.name,{source:r.name+\"-source\",minZoom:r.minZoom,maxZoom:r.maxZoom,fillOpacity:r.opacity,fillColor:[\"case\",[\"has\",\"color\"],[\"get\",\"color\"],r.color]})),!(n instanceof os))throw new Error(\"A layer with name '\"+r.name+\"' already exists but it is not a PolygonLayer.A PolygonLayer should be used for rendering linestrings.\");var a=n.getSource();\"string\"==typeof a?(i=a,a=this.sources.getById(i)):i=a.getId();var s=!1;if(a||(s=!0,a=new na(i)),!(a instanceof na))throw new Error(\"The source with name '\"+i+\"' already exists but it is not a DataSource.New data can only be added to a DataSource.\");s&&this.sources.add(a),o&&this.layers.add(n,r.before);var l=new No(t);r.defer?(r.overwrite&&a._clearNoUpdate(),a._addNoUpdate(l)):r.overwrite?a.setShapes(l):a.add(l)},rg.prototype.addRaster=function(t,e){var i,r=(new Mm).merge(e),n=this.layers.getLayerById(r.name),o=!1;if(n||(o=!0,n=new Ss({maxZoom:r.maxZoom,minZoom:r.minZoom,opacity:r.opacity,tileSize:256,tileUrl:\"{subdomain}\"},r.name)),!(n instanceof Ss))throw new Error(\"A layer with name '\"+r.name+\"' already exists but it is not a TileLayer.A TileLayer should be used for rendering raster images.\");if(\"{subdomain}\"!==n.getOptions().tileUrl)throw new Error(\"A TileLayer with name '\"+r.name+\"' already exists but was configured for a single tile url [default for new TileLayer(...)].\");(i=!r.overwrite&&n.getOptions().subdomains||[]).push.apply(i,t),n._setOptionsNoUpdate({subdomains:i}),r.defer?o&&this.layers.add(n,r.before,!1):this.layers.add(n,r.before)},rg.prototype.getLayers=function(){return this.layers.getLayers().map(function(t){return t.getId()})},rg.prototype.removeLayers=function(t){for(var e=0,i=t;e<i.length;e++){var r=i[e];if(this.layers.getLayerById(r)){this.layers.remove(r);var n=r+\"-source\";this.sources.getById(n)&&this.sources.remove(n)}}},rg.prototype.addHtml=function(t,e){t.id||(t.id=\"marker_\"+pn());var i=new Zs({htmlContent:t});return this.markers.add(i,e),t.id},rg.prototype.removeHtml=function(t){this.markers.remove(t)},rg.prototype.addEventListener=function(t,e,i){this.events._addLegacy(t,e,i)},rg.prototype.removeEventListener=function(t,e,i){this.events._removeLegacy(t,e,i)},rg.prototype.setUserInteraction=function(t){this.userInteractionDelegate.setOptions(t)},rg.prototype.getUserInteraction=function(){return this.userInteractionDelegate.getOptions()},rg.prototype.addControl=function(t,e){this.controls.add(t,e)},rg.prototype.removeControl=function(t){this.controls.remove(t)},rg.prototype.setTraffic=function(t){var e=this.trafficOptions.incidents,i=this.trafficOptions.flow;if(this.trafficOptions=(new Um).merge(this.trafficOptions,t),this.trafficOptions.incidents?e||this.incidentDelegate.addToMap():this.incidentDelegate.removeFromMap(),this.trafficOptions.flow&&\"none\"!==this.trafficOptions.flow)try{this.flowDelegate.addToMap()}catch(t){throw this.trafficOptions.flow=i,t}else this.flowDelegate.removeFromMap()},rg.prototype.getTraffic=function(){return Ar(this.trafficOptions)},rg.prototype.remove=function(){this.dispose()},rg.prototype.clear=function(){this.popups.clear(),this.layers.clear(),this.sources.clear(),this.markers.clear()},rg.prototype.dispose=function(){for(this.clear(),this.map.remove(),this.removed=!0;this.getMapContainer().firstChild;){var t=this.getMapContainer().firstChild;this.getMapContainer().removeChild(t)}},rg.prototype.resize=function(t,e,i){if(\"number\"!=typeof t&&\"string\"!=typeof t||\"number\"!=typeof e&&\"string\"!=typeof e)i=t;else{var r=t;this.getMapContainer().style.height=\"number\"==typeof r?r+\"px\":r,this.getMapContainer().style.width=\"number\"==typeof e?e+\"px\":e}var n=this.getMapContainer().style.overflow;this.getMapContainer().style.overflow=\"hidden\",this.map.resize(i),this.getMapContainer().style.overflow=n},rg.prototype.pixelsToPositions=function(t){for(var e=[],i=0,r=t;i<r.length;i++){var n=r[i],o=this.map.unproject(n);e.push(new bo(o.lng,o.lat))}return e},rg.prototype.positionsToPixels=function(t){for(var e=[],i=0,r=t;i<r.length;i++){var n=r[i],o=this.map.project(n);e.push(new mn(o.x,o.y))}return e},rg.prototype.areTilesLoaded=function(){return this.map.areTilesLoaded()},rg.prototype.stop=function(){this.map.stop()},rg.prototype._getMap=function(){return this.map},rg.prototype._rebuildStyle=function(){this.map.setStyle(this.styleBuilder.build(this.styleOptions)),this.imageSprite._restoreImages()},rg.prototype._isLoaded=function(){return this.loaded},rg.prototype._isReady=function(){return this.ready},rg.prototype._getLocalizedStrings=function(){return this.localizedStringsPromise},rg.prototype._sendRequest=function(t,e,i){var r;return\"function\"==typeof this.serviceOptions.transformRequest&&(r=this.serviceOptions.transformRequest(t,e)),r?fetch(r.url||t,{credentials:r.credentials,headers:w(w({},i),r.headers),method:\"GET\",mode:\"cors\"}):fetch(t,{headers:i,method:\"GET\",mode:\"cors\"})},rg.prototype._setAutoResize=function(t){t?window.addEventListener(\"resize\",this._windowResizeCallback):window.removeEventListener(\"resize\",this._windowResizeCallback)},rg.prototype._setStyleComponents=function(g){var y=this;this.styles.getStyleComponents(g).then(function(o){if(!y.removed){y.copyrightControl.setOptions({copyrightMessage:y.styles.getCopyrightCaption(g)}),y.styleBuilder.setGlyphs(y.styles.getGlyphs(g)),y.styleBuilder.setSprite(y.styles.getSprite(g));for(var e=new Set,i=new Set,t=0,r=o;t<r.length;t++){var n=r[t];e.add(n.layer.getId());for(var a=0,s=n.sources;a<s.length;a++){var l=s[a];i.add(l.getId())}}y.styleLayerIds.forEach(function(t){e.has(t)||(y.layers.getLayerById(t)&&y.layers.remove(t,!1),y.styleLayerIds.delete(t))});for(var u=function(t){var e=o[t].layer;if(y.styleLayerIds.add(e.getId()),y.layers.getLayerById(e.getId()))y.layers.add(e,void 0,!1);else if(0===t)y.layers.add(e,y.layers.getLayers()[0],!1);else{var i=o[t-1].layer,r=y.layers.getLayers(),n=r.findIndex(function(t){return t.getId()===i.getId()});y.layers.add(e,r[n+1],!1)}},c=0;c<o.length;c++)u(c);var p=y.layers._getSourceIds();y.styleSourceIds.forEach(function(t){p.has(t)||i.has(t)||(y.sources.getById(t)&&y.sources.remove(t,!1),y.styleSourceIds.delete(t))});for(var h=0,d=o;h<d.length;h++){n=d[h],y.sources.add(n.sources,!1);for(var f=0,m=n.sources;f<m.length;f++)l=m[f],y.styleSourceIds.add(l.getId())}y._rebuildStyle()}})},rg.prototype._updateGlobalDefaults=function(t){t&&(t.authOptions&&!Kl()&&Ul(t.authOptions),t.domain&&!Wl()&&jl(t.domain),!t.subscriptionKey&&!t[\"subscription-key\"]||Kl()||Gl(t.subscriptionKey||t[\"subscription-key\"]),!t.sessionId&&!t[\"session-id\"]||Yl()||Vl(t.sessionId||t[\"session-id\"]),t.language&&!Xl()&&ql(t.language),!t.userRegion&&!t.view||Jl()||Zl(t.userRegion||t.view))},rg.prototype._generateSafeBounds=function(t){if(t){var e=zo.getSouth(t),i=zo.getWest(t),r=zo.getNorth(t),n=zo.getEast(t);if(isNaN(e)||isNaN(i)||isNaN(r)||isNaN(n))throw new Error(\"The bounds specified are invalid: [\"+t+\"]\");for(;n<i;)n+=360;return new zo([i,e,n,r])}return t},rg.prototype._detectHighContrast=function(){var t,e;switch(ou.getHighContrastMode()){case\"invert\":t=rg.Css.hcLight,e=\"high_contrast_dark\";break;case\"light\":t=rg.Css.hcLight,e=\"grayscale_light\";break;case\"dark\":t=rg.Css.hcDark,e=\"high_contrast_dark\"}t&&this.map.getContainer().classList.add(t),e&&\"road\"===this.styleOptions.style&&(this.styleOptions.style=e)},rg.Css={canvasContainer:\"atlas-map-canvas-container\",canvas:\"atlas-map-canvas\",container:\"atlas-map\",hcDark:\"high-contrast-dark\",hcLight:\"high-contrast-light\"},rg);function rg(t,e){var n=this;this.styleLayerIds=new Set,this.styleSourceIds=new Set,this.removed=!1,this.loaded=!1,this.ready=!1,this._windowResizeCallback=function(){return n.resize()};var i=!0;this._updateGlobalDefaults(e),this.serviceOptions=(new Vm).merge(e),this.styleOptions=(new Nm).merge(e),this.trafficOptions=new Um,this.styles=new tg,this.insights=new qd(this.serviceOptions);var r,o={attributionControl:!1,container:t,preserveDrawingBuffer:this.styleOptions.preserveDrawingBuffer,refreshExpiredTiles:this.serviceOptions.refreshExpiredTiles,renderWorldCopies:this.styleOptions.renderWorldCopies,trackResize:!1,transformRequest:function(t,e){var i={url:t};if(\"Tile\"===e&&t.includes(d)){if(n.insights.trackEvent({name:\"TileLoad\"}),P.protoRegEx.test(n.serviceOptions.domain)){var r=t.indexOf(d);i.url=n.serviceOptions.domain+t.substring(r+d.length)}else i.url=t.replace(d,n.serviceOptions.domain);n.authentication.signRequest(i)}return n.serviceOptions.transformRequest&&cl(i,n.serviceOptions.transformRequest(i.url,e)),i}};r=this.serviceOptions.authOptions.clientId?this.serviceOptions.authOptions.clientId:this.serviceOptions.authOptions.subscriptionKey?this.serviceOptions.authOptions.subscriptionKey.replace(/.(?=.{3,}$)/g,\"*\"):\"invalid-setting\",this.insights.setAuthenticatedUserContext(this.serviceOptions.sessionId,r);try{var a=new h.Map(o);this.map=a,this.authentication=new Ff(this),this.controls=new jf(this),this.events=new Zf(this),this.imageSprite=new Xf(this),this.layers=new Jf(this),this.markers=new Kf(this),this.sources=new em(this),this.popups=new $f(this),this.styleBuilder=new Hm(this),this.map.getContainer().classList.add(rg.Css.container),this.map.getCanvasContainer().classList.add(rg.Css.canvasContainer),this.map.getCanvas().classList.add(rg.Css.canvas),this._detectHighContrast(),this.copyrightControl=new Yd({showFeedbackLink:this.styleOptions.showFeedbackLink}),this.controls.add(this.copyrightControl,{position:p.ControlPosition.NonFixed}),this.styleOptions.showLogo&&(this.logoControl=new Gd,this.controls.add(this.logoControl,{position:p.ControlPosition.NonFixed}));var s=this.authentication.initialize();if(this.removed)return;var l=function(){n.loaded=!0,n.map.off(\"load\",l)};this.map.on(\"load\",l);var u=function(){n.ready=!0,n.map.off(\"styledata\",u);var t={map:n,type:\"ready\"};n.events.invoke(\"ready\",t)};this.map.on(\"styledata\",u),this._setAutoResize(this.styleOptions.autoResize),this.map.showTileBoundaries=this.styleOptions.showTileBoundaries,this.localizedStringsPromise=ml.getStrings(this.styleOptions.language);var c=this.styles.initialize();Promise.all([s,c]).then(function(){if(!n.removed){if(!n.authentication.getToken())throw new Error(\"AuthenticationManager finished initializing, but no token is available\");n.serviceOptions[\"enable-accessibility\"]&&n.accessibleMapDelegate.addToMap(),n._setStyleComponents(n.styleOptions)}}).catch(function(t){var e=t instanceof Error?t:new Error(t);n.insights.trackException({error:e});var i={map:n,type:\"error\",error:e};n.events.invoke(\"error\",i)}),this.setCamera(w(w({},e),{type:\"jump\",duration:0})),this.incidentDelegate=new wf(this),this.flowDelegate=new uf(this),this.accessibleMapDelegate=new lf(this),this.userInteractionDelegate=new Mf(this,e),this.userInteractionDelegate.addToMap()}catch(t){throw i=!1,this.insights.trackException({error:t instanceof Error?t:new Error(t)}),t}finally{this.insights.trackEvent({name:\"MapLoad\"},{success:i,supported:Fl(!1),supportedWithPerformance:Fl(!0)}),this.insights.flush()}}var ng=(og.applyTemplate=function(e,i){var r=this,t=document.createElement(\"div\");if(t.classList.add(og.Css.template),e){\"boolean\"!=typeof(i=i||{}).singleDescription&&(i.singleDescription=!0),i.sandboxContent=\"boolean\"!=typeof i.sandboxContent||i.sandboxContent,i.title&&\"string\"==typeof i.content&&(i.content.includes(\"{title}\")||i.content.includes(\"{name}\"))||(e.title?i.title=\"{title}\":e.name&&(i.title=\"{name}\")),\"boolean\"!=typeof i.detectHyperlinks&&(i.detectHyperlinks=!0),\"boolean\"!=typeof i.parsePropertyPaths&&(i.parsePropertyPaths=!0),i.textColor&&(t.style.color=i.textColor),i.fillColor&&(t.style.backgroundColor=i.fillColor),i.title&&((a=this._applyStringTemplate(e,i.title,i)).innerText=a.textContent||a.innerText||\"\",this._appendChild(t,a,og.Css.title));var n=document.createElement(\"div\");if(n.classList.add(og.Css.content),Array.isArray(i.content))0<i.content.length&&i.content[0].propertyPath?this._appendChild(n,this._generateContent(e,i.content,i),og.Css.item):i.content.forEach(function(t){r._appendChild(n,r._generateContent(e,t,i),og.Css.item)});else{var o=0;e.description&&Object.keys(e).forEach(function(t){r._ignoreProperty(t,e[t])||o++});var a=void 0;1===o||i.singleDescription&&e.description||2===o&&e.Snippet?(a=document.createElement(\"div\")).innerHTML=e.description:a=this._generateContent(e,i.content,i),this._appendChild(n,a,og.Css.item)}\"\"!==n.innerHTML&&(i.sandboxContent?t.appendChild(og._createSandboxedIframe(n,i)):t.appendChild(n))}return t},og._createSandboxedIframe=function(t,e){var i=document.createElement(\"iframe\");i.sandbox.add(\"allow-popups\");var r,n=t.innerHTML,o=!1,a=100,s=550,l=10;document.body.scrollWidth<=340&&(s=300,a=50);var u=n.split(/<(tr|div|br|li|h[0-9]|p>)/);r=Math.max.apply(Math,u.map(function(t){return t.replace(/<[a-zA-Z0-9\\s=\\/]+>/g,\"\").length}))-1;var c=Math.ceil(3.5*r);if(c<s&&(s=c,a=r),n.includes(\"<img\")||n.includes(\"<video\"))o=!0,i.width=\"550px\";else{var p=-1<n.indexOf(og.Css.table)?25:20;l+=Math.max(.5*u.length*p,Math.ceil(n.replace(/<[a-zA-Z0-9\\s=\\/]+>/g,\"\").length/a)*p)}i.width=s+\"px\",i.height=o||280<l?\"280px\":l+\"px\";var h=e.textColor?\"color:\"+e.textColor+\";\":\"\",d=e.fillColor?\"background-color:\"+e.fillColor+\";\":\"\",f='<html><head><title></title><meta charset=\"utf-8\" /><meta http-equiv=\"x-ua-compatible\" content=\"IE=Edge\" /><link rel=\"stylesheet\" href=\"'+og._cssUrl+'\" type=\"text/css\"/><style>html, body{margin:0;padding:0;'+h+d+'}</style></head><body><div class=\"'+og.Css.template+'\" style=\"padding:0;width:'+(s-20)+'px\">'+n+\"</div></body></html>\";return void 0===i.srcdoc?i.src=\"data:text/html;charset=utf-8,\"+encodeURI(f):i.srcdoc=f,i},og._appendChild=function(t,e,i){e&&(i&&(e.className=(e.className?e.className+\" \":\"\")+i),t.appendChild(e))},og._generateContent=function(t,e,i){if(e)return Array.isArray(e)?this._generatePropertyInfoTable(t,e,i):this._applyStringTemplate(t,e,i);var r=this._generateDynamicTableHtml(t,null,i);if(r){var n=document.createElement(\"div\");return n.innerHTML=r,n}return null},og._applyStringTemplate=function(t,e,i){if(e){for(var r=e,n=this._placeholderRx.exec(e);n;){if(2<=n.length){var o=this._getPropertyValue(t,n[1],i);r=r.replace(n[0],o)}n=this._placeholderRx.exec(e)}if(r){(r=r.trim()).includes(\"<\")&&(r=r.replace(/[\\r\\n]+/g,\"<br/>\"));var a=document.createElement(\"div\");return a.innerHTML=r,a}}return null},og._getPropertyValue=function(t,e,i,r){var n=i.parsePropertyPaths?e.split(\"/\"):[e],o=n.length;if(0<o&&t){var a=n[0],s=t[a];if(i.detectHyperlinks&&\"link\"===e&&(!r||r.hyperlinkFormat)){var l=[];if(Array.isArray(s)?s.forEach(function(t){t.href?l.push(t):\"string\"==typeof t&&l.push({href:t})}):s.href&&l.push(s),0<l.length){var u,c;r&&r.hyperlinkFormat?u=r.hyperlinkFormat:i&&i.hyperlinkFormat&&(u=i.hyperlinkFormat),c=u&&u.target?u.target:\"_blank\";var p=[];return l.forEach(function(t){t.title||u&&u.label||!t.rel||p.push(t.rel,\" - \"),p.push('<a href=\"',t.href,'\" target=\"',c,'\">'),t.title?p.push(t.title):u&&u.label?p.push(u.label):p.push(t.href),p.push(\"</a>\",\"<br/>\")}),p.pop(),p.join(\"\")}}if(null!=s){var h=void 0;for(h=1;h<o&&(s=s[n[h]],a=n[h],null!=s);h++);if(h===o&&null!=s){var d=void 0;if((d=void 0!==s.value?s.value:s)instanceof Date)return r&&r.dateFormat?d.toLocaleString(void 0,r.dateFormat):i.dateFormat?d.toLocaleString(void 0,i.dateFormat):d.toISOString();if(\"object\"==typeof d)return(v=this._generateDynamicTableHtml(d,n.slice(1),i))||\"\";if(\"number\"==typeof d){if(r){if(r.dateFormat)return new Date(d).toLocaleString(void 0,r.dateFormat);if(r.numberFormat)return d.toLocaleString(void 0,r.numberFormat)}else if(/(timestamp|date)/gi.test(a))return new Date(d).toISOString();return d.toLocaleString(void 0,i.numberFormat)}if(\"string\"==typeof d&&\"\"!==d&&!/[\\n\\r<>\\s]/g.test(d)&&(i.detectHyperlinks||r&&r.hyperlinkFormat)){d=d.trim();var f=this._isUrlRx.test(d)||r&&r.hyperlinkFormat,m=this._isImageUrlRx.test(d)&&(f||d.startsWith(\"data:image\")),g=this._emailRx.test(d);if(f||m||g){var y=void 0;r&&r.hyperlinkFormat?y=r.hyperlinkFormat:i&&i.hyperlinkFormat&&(y=i.hyperlinkFormat);var v=void 0;v=y&&y.target?' target=\"'+y.target+'\"':' target=\"_blank\"';var _=\"\"+(y&&y.label?y.label:d);y&&y.scheme?d=y.scheme+d:g&&(d=\"mailto:\"+d);var x=y&&y.label?' alt=\"'+y.label+'\"':\"\";return(y&&y.isImage||m)&&(_='<img src=\"'+d+'\" style=\"max-width:100%\"'+x+'\"/>'),'<a href=\"'+d+'\"'+v+\">\"+_+\"</a>\"}}return d.toString()}}}return\"\"},og._generatePropertyInfoTable=function(r,t,n){if(r&&t&&0<t.length){var o=[],a=this;o.push('<table class=\"'+a.Css.table+'\">'),t.forEach(function(t){var e=a._getPropertyValue(r,t.propertyPath,n,t);if(t.hideLabel)o.push('<tr><td colspan=\"2\">',e,\"</td></tr>\");else{var i=t.label||t.propertyPath.split(\"/\")[0];o.push(\"<tr><th>\",i,\"</th><td>\",e,\"</td></tr>\")}}),o.push(\"</table>\");var e=document.createElement(\"div\");return e.innerHTML=o.join(\"\"),e}return null},og._generateDynamicTableHtml=function(e,t,i){var r=this;if(e){var n=[],o=this;n.push('<table class=\"'+o.Css.table+'\">');var a=t&&0<t.length?t.join(\"/\")+\"/\":\"\",s=0;return Object.keys(e).forEach(function(t){r._ignoreProperty(t,e[t])||(n.push(\"<tr><th>\",t,\"</th><td>\",o._getPropertyValue(e,a+t,i),\"</td></tr>\"),s++)}),0===s?null:(n.push(\"</table>\"),n.join(\"\"))}return null},og._ignoreProperty=function(t,e){switch(t){case\"title\":case\"name\":case\"base\":case\"popupTemplate\":case\"anchor\":case\"icon\":case\"image\":case\"imageUrl\":case\"rotation\":case\"color\":case\"size\":case\"offset\":case\"strokeColor\":case\"strokeWidth\":case\"strokeOpacity\":case\"subType\":case\"fillColor\":case\"fillOpacity\":case\"visibility\":case\"visible\":return!0;default:if(0===t.indexOf(\"_\")||null==e||\"\"===e)return!0}return!1},og._placeholderRx=/\\{([a-zA-Z0-9_\\/\\s]+)\\}/gi,og._isUrlRx=/^(http|https|ftp|tel|mailto):\\/\\//i,og._isImageUrlRx=/(^data:image|.png$|.jpg$|.jpeg$|.gif$|.bmp$|.svg|.tif|.tiff$)/i,og._emailRx=/^[^\\.\\s@:](?:[^\\s@:]*[^\\s@:\\.])?@[^\\.\\s@]+(?:\\.[^\\.\\s@]+)*$/,og._cssUrl=new P({domain:o,path:\"sdk/javascript/mapcontrol/\"+O.getEndpointVersion()+\"/atlas.min.css\"}).toString(),og.Css={template:\"azure-maps-control-popup-template\",title:\"azure-maps-control-popup-template-title\",content:\"azure-maps-control-popup-template-content\",item:\"azure-maps-control-popup-template-content-item\",table:\"azure-maps-control-popup-template-table\"},og);function og(){this.detectHyperlinks=!0,this.parsePropertyPaths=!0}i(new P({domain:o,path:\"sdk/javascript/mapcontrol/\"+O.getEndpointVersion()+\"/mapbox-gl-rtl-text.min.js\"}).toString(),function(t){t&&console.warn(t)},!0),p.HtmlMarker=Zs,p.Map=ig,p.Pixel=mn,p.Popup=Fs,p.PopupTemplate=ng,p.Shape=Lo,p._getAssetDomain=function(){return n},p._getDomain=function(){return Ol()},p._hasSetAuthenticationOptions=Kl,p._hasSetDomain=Wl,p._hasSetLanguage=Xl,p._hasSetSessionId=Yl,p._hasSetView=Jl,p.addImageTemplate=function(t,e,i){!i&&nu[t.toLowerCase()]||(nu[t.toLowerCase()]=e)},p.control=jr,p.data=Xo,p.getAllImageTemplateNames=function(){return Object.keys(nu)},p.getAuthenticationOptions=Dl,p.getDomain=Ol,p.getImageTemplate=Hl,p.getLanguage=zl,p.getSessionId=Rl,p.getSubscriptionKey=Nl,p.getUserRegion=function(){return bl},p.getVersion=function(){return O.getFullVersion()},p.getView=Bl,p.internal=Co,p.isSupported=Fl,p.layer=Es,p.math=Mo,p.setAuthenticationOptions=Ul,p.setDomain=jl,p.setLanguage=ql,p.setSessionId=Vl,p.setSubscriptionKey=Gl,p.setUserRegion=Zl,p.setView=function(t){bl=t,Al=!0},p.source=da,Object.defineProperty(p,\"__esModule\",{value:!0})});\n","/*!\r\n * Pikaday\r\n *\r\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday\r\n */\r\n(function (root, factory)\r\n{\r\n 'use strict';\r\n\r\n var moment;\r\n if (typeof exports === 'object') {\r\n // CommonJS module\r\n // Load moment.js as an optional dependency\r\n try { moment = require('moment'); } catch (e) {}\r\n module.exports = factory(moment);\r\n } else if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(function (req)\r\n {\r\n // Load moment.js as an optional dependency\r\n var id = 'moment';\r\n try { moment = req(id); } catch (e) {}\r\n return factory(moment);\r\n });\r\n } else {\r\n root.Pikaday = factory(root.moment);\r\n }\r\n}(this, function (moment)\r\n{\r\n 'use strict';\r\n\r\n /**\r\n * feature detection and helper functions\r\n */\r\n var hasMoment = typeof moment === 'function',\r\n\r\n hasEventListeners = !!window.addEventListener,\r\n\r\n document = window.document,\r\n\r\n sto = window.setTimeout,\r\n\r\n addEvent = function(el, e, callback, capture)\r\n {\r\n if (hasEventListeners) {\r\n el.addEventListener(e, callback, !!capture);\r\n } else {\r\n el.attachEvent('on' + e, callback);\r\n }\r\n },\r\n\r\n removeEvent = function(el, e, callback, capture)\r\n {\r\n if (hasEventListeners) {\r\n el.removeEventListener(e, callback, !!capture);\r\n } else {\r\n el.detachEvent('on' + e, callback);\r\n }\r\n },\r\n\r\n trim = function(str)\r\n {\r\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\r\n },\r\n\r\n hasClass = function(el, cn)\r\n {\r\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\r\n },\r\n\r\n addClass = function(el, cn)\r\n {\r\n if (!hasClass(el, cn)) {\r\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\r\n }\r\n },\r\n\r\n removeClass = function(el, cn)\r\n {\r\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\r\n },\r\n\r\n isArray = function(obj)\r\n {\r\n return (/Array/).test(Object.prototype.toString.call(obj));\r\n },\r\n\r\n isDate = function(obj)\r\n {\r\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\r\n },\r\n\r\n isWeekend = function(date)\r\n {\r\n var day = date.getDay();\r\n return day === 0 || day === 6;\r\n },\r\n\r\n isLeapYear = function(year)\r\n {\r\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\r\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\r\n },\r\n\r\n getDaysInMonth = function(year, month)\r\n {\r\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\r\n },\r\n\r\n setToStartOfDay = function(date)\r\n {\r\n if (isDate(date)) date.setHours(0,0,0,0);\r\n },\r\n\r\n compareDates = function(a,b)\r\n {\r\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\r\n return a.getTime() === b.getTime();\r\n },\r\n\r\n extend = function(to, from, overwrite)\r\n {\r\n var prop, hasProp;\r\n for (prop in from) {\r\n hasProp = to[prop] !== undefined;\r\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\r\n if (isDate(from[prop])) {\r\n if (overwrite) {\r\n to[prop] = new Date(from[prop].getTime());\r\n }\r\n }\r\n else if (isArray(from[prop])) {\r\n if (overwrite) {\r\n to[prop] = from[prop].slice(0);\r\n }\r\n } else {\r\n to[prop] = extend({}, from[prop], overwrite);\r\n }\r\n } else if (overwrite || !hasProp) {\r\n to[prop] = from[prop];\r\n }\r\n }\r\n return to;\r\n },\r\n\r\n fireEvent = function(el, eventName, data)\r\n {\r\n var ev;\r\n\r\n if (document.createEvent) {\r\n ev = document.createEvent('HTMLEvents');\r\n ev.initEvent(eventName, true, false);\r\n ev = extend(ev, data);\r\n el.dispatchEvent(ev);\r\n } else if (document.createEventObject) {\r\n ev = document.createEventObject();\r\n ev = extend(ev, data);\r\n el.fireEvent('on' + eventName, ev);\r\n }\r\n },\r\n\r\n adjustCalendar = function(calendar) {\r\n if (calendar.month < 0) {\r\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\r\n calendar.month += 12;\r\n }\r\n if (calendar.month > 11) {\r\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\r\n calendar.month -= 12;\r\n }\r\n return calendar;\r\n },\r\n\r\n /**\r\n * defaults and localisation\r\n */\r\n defaults = {\r\n\r\n // bind the picker to a form field\r\n field: null,\r\n\r\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\r\n bound: undefined,\r\n\r\n // position of the datepicker, relative to the field (default to bottom & left)\r\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\r\n position: 'bottom left',\r\n\r\n // automatically fit in the viewport even if it means repositioning from the position option\r\n reposition: true,\r\n\r\n // the default output format for `.toString()` and `field` value\r\n format: 'YYYY-MM-DD',\r\n\r\n // the toString function which gets passed a current date object and format\r\n // and returns a string\r\n toString: null,\r\n\r\n // used to create date object from current input string\r\n parse: null,\r\n\r\n // the initial date to view when first opened\r\n defaultDate: null,\r\n\r\n // make the `defaultDate` the initial selected value\r\n setDefaultDate: false,\r\n\r\n // first day of week (0: Sunday, 1: Monday etc)\r\n firstDay: 0,\r\n\r\n // the default flag for moment's strict date parsing\r\n formatStrict: false,\r\n\r\n // the minimum/earliest date that can be selected\r\n minDate: null,\r\n // the maximum/latest date that can be selected\r\n maxDate: null,\r\n\r\n // number of years either side, or array of upper/lower range\r\n yearRange: 10,\r\n\r\n // show week numbers at head of row\r\n showWeekNumber: false,\r\n\r\n // Week picker mode\r\n pickWholeWeek: false,\r\n\r\n // used internally (don't config outside)\r\n minYear: 0,\r\n maxYear: 9999,\r\n minMonth: undefined,\r\n maxMonth: undefined,\r\n\r\n startRange: null,\r\n endRange: null,\r\n\r\n isRTL: false,\r\n\r\n // Additional text to append to the year in the calendar title\r\n yearSuffix: '',\r\n\r\n // Render the month after year in the calendar title\r\n showMonthAfterYear: false,\r\n\r\n // Render days of the calendar grid that fall in the next or previous month\r\n showDaysInNextAndPreviousMonths: false,\r\n\r\n // Allows user to select days that fall in the next or previous month\r\n enableSelectionDaysInNextAndPreviousMonths: false,\r\n\r\n // how many months are visible\r\n numberOfMonths: 1,\r\n\r\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\r\n // only used for the first display or when a selected date is not visible\r\n mainCalendar: 'left',\r\n\r\n // Specify a DOM element to render the calendar in\r\n container: undefined,\r\n\r\n // Blur field when date is selected\r\n blurFieldOnSelect : true,\r\n\r\n // internationalization\r\n i18n: {\r\n previousMonth : 'Previous Month',\r\n nextMonth : 'Next Month',\r\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\r\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\r\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\r\n },\r\n\r\n // Theme Classname\r\n theme: null,\r\n\r\n // events array\r\n events: [],\r\n\r\n // callback function\r\n onSelect: null,\r\n onOpen: null,\r\n onClose: null,\r\n onDraw: null,\r\n\r\n // Enable keyboard input\r\n keyboardInput: true\r\n },\r\n\r\n\r\n /**\r\n * templating functions to abstract HTML rendering\r\n */\r\n renderDayName = function(opts, day, abbr)\r\n {\r\n day += opts.firstDay;\r\n while (day >= 7) {\r\n day -= 7;\r\n }\r\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\r\n },\r\n\r\n renderDay = function(opts)\r\n {\r\n var arr = [];\r\n var ariaSelected = 'false';\r\n if (opts.isEmpty) {\r\n if (opts.showDaysInNextAndPreviousMonths) {\r\n arr.push('is-outside-current-month');\r\n\r\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\r\n arr.push('is-selection-disabled');\r\n }\r\n\r\n } else {\r\n return '<td class=\"is-empty\"></td>';\r\n }\r\n }\r\n if (opts.isDisabled) {\r\n arr.push('is-disabled');\r\n }\r\n if (opts.isToday) {\r\n arr.push('is-today');\r\n }\r\n if (opts.isSelected) {\r\n arr.push('is-selected');\r\n ariaSelected = 'true';\r\n }\r\n if (opts.hasEvent) {\r\n arr.push('has-event');\r\n }\r\n if (opts.isInRange) {\r\n arr.push('is-inrange');\r\n }\r\n if (opts.isStartRange) {\r\n arr.push('is-startrange');\r\n }\r\n if (opts.isEndRange) {\r\n arr.push('is-endrange');\r\n }\r\n return '<td data-day=\"' + opts.day + '\" class=\"' + arr.join(' ') + '\" aria-selected=\"' + ariaSelected + '\">' +\r\n '<button tabIndex=\"-1\" class=\"pika-button pika-day\" type=\"button\" ' +\r\n 'data-pika-year=\"' + opts.year + '\" data-pika-month=\"' + opts.month + '\" data-pika-day=\"' + opts.day + '\">' +\r\n opts.day +\r\n '</button>' +\r\n '</td>';\r\n },\r\n\r\n renderWeek = function (d, m, y) {\r\n // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified.\r\n var onejan = new Date(y, 0, 1),\r\n weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7);\r\n return '<td class=\"pika-week\">' + weekNum + '</td>';\r\n },\r\n\r\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\r\n {\r\n return '<tr class=\"pika-row' + (pickWholeWeek ? ' pick-whole-week' : '') + (isRowSelected ? ' is-selected' : '') + '\">' + (isRTL ? days.reverse() : days).join('') + '</tr>';\r\n },\r\n\r\n renderBody = function(rows)\r\n {\r\n return '<tbody>' + rows.join('') + '</tbody>';\r\n },\r\n\r\n renderHead = function(opts)\r\n {\r\n var i, arr = [];\r\n if (opts.showWeekNumber) {\r\n arr.push('<th></th>');\r\n }\r\n for (i = 0; i < 7; i++) {\r\n arr.push('<th scope=\"col\"><abbr title=\"' + renderDayName(opts, i) + '\">' + renderDayName(opts, i, true) + '</abbr></th>');\r\n }\r\n return '<thead><tr>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</tr></thead>';\r\n },\r\n\r\n renderTitle = function(instance, c, year, month, refYear, randId)\r\n {\r\n var i, j, arr,\r\n opts = instance._o,\r\n isMinYear = year === opts.minYear,\r\n isMaxYear = year === opts.maxYear,\r\n html = '<div id=\"' + randId + '\" class=\"pika-title\">',\r\n monthHtml,\r\n yearHtml,\r\n prev = true,\r\n next = true;\r\n\r\n for (arr = [], i = 0; i < 12; i++) {\r\n arr.push('<option value=\"' + (year === refYear ? i - c : 12 + i - c) + '\"' +\r\n (i === month ? ' selected=\"selected\"': '') +\r\n ((isMinYear && i < opts.minMonth) || (isMaxYear && i > opts.maxMonth) ? 'disabled=\"disabled\"' : '') + '>' +\r\n opts.i18n.months[i] + '</option>');\r\n }\r\n\r\n monthHtml = '<div class=\"pika-label\">' + opts.i18n.months[month] + '<select aria-label=\"select month\" class=\"pika-select pika-select-month\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\r\n\r\n if (isArray(opts.yearRange)) {\r\n i = opts.yearRange[0];\r\n j = opts.yearRange[1] + 1;\r\n } else {\r\n i = year - opts.yearRange;\r\n j = 1 + year + opts.yearRange;\r\n }\r\n\r\n for (arr = []; i < j && i <= opts.maxYear; i++) {\r\n if (i >= opts.minYear) {\r\n arr.push('<option value=\"' + i + '\"' + (i === year ? ' selected=\"selected\"': '') + '>' + (i) + '</option>');\r\n }\r\n }\r\n yearHtml = '<div class=\"pika-label\">' + year + opts.yearSuffix + '<select aria-label=\"select year\" class=\"pika-select pika-select-year\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\r\n\r\n if (opts.showMonthAfterYear) {\r\n html += yearHtml + monthHtml;\r\n } else {\r\n html += monthHtml + yearHtml;\r\n }\r\n\r\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\r\n prev = false;\r\n }\r\n\r\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\r\n next = false;\r\n }\r\n\r\n if (c === 0) {\r\n html += '<button tabIndex=\"-1\" class=\"pika-prev' + (prev ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.previousMonth + '</button>';\r\n }\r\n if (c === (instance._o.numberOfMonths - 1) ) {\r\n html += '<button tabIndex=\"-1\" class=\"pika-next' + (next ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.nextMonth + '</button>';\r\n }\r\n\r\n return html += '</div>';\r\n },\r\n\r\n renderTable = function(opts, data, randId)\r\n {\r\n return '<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-table\" role=\"grid\" aria-labelledby=\"' + randId + '\">' + renderHead(opts) + renderBody(data) + '</table>';\r\n },\r\n\r\n\r\n /**\r\n * Pikaday constructor\r\n */\r\n Pikaday = function(options)\r\n {\r\n var self = this,\r\n opts = self.config(options);\r\n\r\n self._onMouseDown = function(e)\r\n {\r\n if (!self._v) {\r\n return;\r\n }\r\n e = e || window.event;\r\n var target = e.target || e.srcElement;\r\n if (!target) {\r\n return;\r\n }\r\n\r\n if (!hasClass(target, 'is-disabled')) {\r\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\r\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\r\n if (opts.bound) {\r\n sto(function() {\r\n self.hide();\r\n if (opts.blurFieldOnSelect && opts.field) {\r\n opts.field.blur();\r\n }\r\n }, 100);\r\n }\r\n }\r\n else if (hasClass(target, 'pika-prev')) {\r\n self.prevMonth();\r\n }\r\n else if (hasClass(target, 'pika-next')) {\r\n self.nextMonth();\r\n }\r\n }\r\n if (!hasClass(target, 'pika-select')) {\r\n // if this is touch event prevent mouse events emulation\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n return false;\r\n }\r\n } else {\r\n self._c = true;\r\n }\r\n };\r\n\r\n self._onChange = function(e)\r\n {\r\n e = e || window.event;\r\n var target = e.target || e.srcElement;\r\n if (!target) {\r\n return;\r\n }\r\n if (hasClass(target, 'pika-select-month')) {\r\n self.gotoMonth(target.value);\r\n }\r\n else if (hasClass(target, 'pika-select-year')) {\r\n self.gotoYear(target.value);\r\n }\r\n };\r\n\r\n self._onKeyChange = function(e)\r\n {\r\n e = e || window.event;\r\n // ignore if event comes from input box\r\n if (self.isVisible() && e.target && e.target.type !== 'text') {\r\n\r\n switch(e.keyCode){\r\n case 13:\r\n case 27:\r\n if (opts.field) {\r\n opts.field.blur();\r\n }\r\n break;\r\n case 37:\r\n e.preventDefault();\r\n self.adjustDate('subtract', 1);\r\n break;\r\n case 38:\r\n self.adjustDate('subtract', 7);\r\n break;\r\n case 39:\r\n self.adjustDate('add', 1);\r\n break;\r\n case 40:\r\n self.adjustDate('add', 7);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n self._onInputChange = function(e)\r\n {\r\n var date;\r\n\r\n if (e.firedBy === self) {\r\n return;\r\n }\r\n if (opts.parse) {\r\n date = opts.parse(opts.field.value, opts.format);\r\n } else if (hasMoment) {\r\n date = moment(opts.field.value, opts.format, opts.formatStrict);\r\n date = (date && date.isValid()) ? date.toDate() : null;\r\n }\r\n else {\r\n date = new Date(Date.parse(opts.field.value));\r\n }\r\n // if (isDate(date)) {\r\n // self.setDate(date);\r\n // }\r\n // if (!self._v) {\r\n // self.show();\r\n // }\r\n };\r\n\r\n self._onInputFocus = function()\r\n {\r\n self.show();\r\n };\r\n\r\n self._onInputClick = function()\r\n {\r\n self.show();\r\n };\r\n\r\n self._onInputBlur = function()\r\n {\r\n // IE allows pika div to gain focus; catch blur the input field\r\n var pEl = document.activeElement;\r\n do {\r\n if (hasClass(pEl, 'pika-single')) {\r\n return;\r\n }\r\n }\r\n while ((pEl = pEl.parentNode));\r\n\r\n if (!self._c) {\r\n self._b = sto(function() {\r\n self.hide();\r\n }, 50);\r\n }\r\n self._c = false;\r\n };\r\n\r\n self._onClick = function(e)\r\n {\r\n e = e || window.event;\r\n var target = e.target || e.srcElement,\r\n pEl = target;\r\n if (!target) {\r\n return;\r\n }\r\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\r\n if (!target.onchange) {\r\n target.setAttribute('onchange', 'return;');\r\n addEvent(target, 'change', self._onChange);\r\n }\r\n }\r\n do {\r\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\r\n return;\r\n }\r\n }\r\n while ((pEl = pEl.parentNode));\r\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\r\n self.hide();\r\n }\r\n };\r\n\r\n self.el = document.createElement('div');\r\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\r\n\r\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\r\n addEvent(self.el, 'touchend', self._onMouseDown, true);\r\n addEvent(self.el, 'change', self._onChange);\r\n\r\n if (opts.keyboardInput) {\r\n addEvent(document, 'keydown', self._onKeyChange);\r\n }\r\n\r\n if (opts.field) {\r\n if (opts.container) {\r\n opts.container.appendChild(self.el);\r\n } else if (opts.bound) {\r\n document.body.appendChild(self.el);\r\n } else {\r\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\r\n }\r\n addEvent(opts.field, 'change', self._onInputChange);\r\n\r\n if (!opts.defaultDate) {\r\n if (hasMoment && opts.field.value) {\r\n opts.defaultDate = moment(opts.field.value, opts.format).toDate();\r\n } else {\r\n opts.defaultDate = new Date(Date.parse(opts.field.value));\r\n }\r\n opts.setDefaultDate = true;\r\n }\r\n }\r\n\r\n var defDate = opts.defaultDate;\r\n\r\n if (isDate(defDate)) {\r\n if (opts.setDefaultDate) {\r\n self.setDate(defDate, true);\r\n } else {\r\n self.gotoDate(defDate);\r\n }\r\n } else {\r\n self.gotoDate(new Date());\r\n }\r\n\r\n if (opts.bound) {\r\n this.hide();\r\n self.el.className += ' is-bound';\r\n addEvent(opts.trigger, 'click', self._onInputClick);\r\n addEvent(opts.trigger, 'focus', self._onInputFocus);\r\n addEvent(opts.trigger, 'blur', self._onInputBlur);\r\n } else {\r\n this.show();\r\n }\r\n };\r\n\r\n\r\n /**\r\n * public Pikaday API\r\n */\r\n Pikaday.prototype = {\r\n\r\n\r\n /**\r\n * configure functionality\r\n */\r\n config: function(options)\r\n {\r\n if (!this._o) {\r\n this._o = extend({}, defaults, true);\r\n }\r\n\r\n var opts = extend(this._o, options, true);\r\n\r\n opts.isRTL = !!opts.isRTL;\r\n\r\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\r\n\r\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\r\n\r\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\r\n\r\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\r\n\r\n opts.disableWeekends = !!opts.disableWeekends;\r\n\r\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\r\n\r\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\r\n opts.numberOfMonths = nom > 4 ? 4 : nom;\r\n\r\n if (!isDate(opts.minDate)) {\r\n opts.minDate = false;\r\n }\r\n if (!isDate(opts.maxDate)) {\r\n opts.maxDate = false;\r\n }\r\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\r\n opts.maxDate = opts.minDate = false;\r\n }\r\n if (opts.minDate) {\r\n this.setMinDate(opts.minDate);\r\n }\r\n if (opts.maxDate) {\r\n this.setMaxDate(opts.maxDate);\r\n }\r\n\r\n if (isArray(opts.yearRange)) {\r\n var fallback = new Date().getFullYear() - 10;\r\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\r\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\r\n } else {\r\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\r\n if (opts.yearRange > 100) {\r\n opts.yearRange = 100;\r\n }\r\n }\r\n\r\n return opts;\r\n },\r\n\r\n /**\r\n * return a formatted string of the current selection (using Moment.js if available)\r\n */\r\n toString: function(format)\r\n {\r\n format = format || this._o.format;\r\n if (!isDate(this._d)) {\r\n return '';\r\n }\r\n if (this._o.toString) {\r\n return this._o.toString(this._d, format);\r\n }\r\n if (hasMoment) {\r\n return moment(this._d).format(format);\r\n }\r\n return this._d.toDateString();\r\n },\r\n\r\n /**\r\n * return a Moment.js object of the current selection (if available)\r\n */\r\n getMoment: function()\r\n {\r\n return hasMoment ? moment(this._d) : null;\r\n },\r\n\r\n /**\r\n * set the current selection from a Moment.js object (if available)\r\n */\r\n setMoment: function(date, preventOnSelect)\r\n {\r\n if (hasMoment && moment.isMoment(date)) {\r\n this.setDate(date.toDate(), preventOnSelect);\r\n }\r\n },\r\n\r\n /**\r\n * return a Date object of the current selection\r\n */\r\n getDate: function()\r\n {\r\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\r\n },\r\n\r\n /**\r\n * set the current selection\r\n */\r\n setDate: function(date, preventOnSelect)\r\n {\r\n if (!date) {\r\n this._d = null;\r\n\r\n if (this._o.field) {\r\n this._o.field.value = '';\r\n fireEvent(this._o.field, 'change', { firedBy: this });\r\n }\r\n\r\n return this.draw();\r\n }\r\n if (typeof date === 'string') {\r\n date = new Date(Date.parse(date));\r\n }\r\n if (!isDate(date)) {\r\n return;\r\n }\r\n\r\n var min = this._o.minDate,\r\n max = this._o.maxDate;\r\n\r\n if (isDate(min) && date < min) {\r\n date = min;\r\n } else if (isDate(max) && date > max) {\r\n date = max;\r\n }\r\n\r\n this._d = new Date(date.getTime());\r\n setToStartOfDay(this._d);\r\n this.gotoDate(this._d);\r\n\r\n if (this._o.field) {\r\n this._o.field.value = this.toString();\r\n fireEvent(this._o.field, 'change', { firedBy: this });\r\n }\r\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\r\n this._o.onSelect.call(this, this.getDate());\r\n }\r\n },\r\n\r\n /**\r\n * change view to a specific date\r\n */\r\n gotoDate: function(date)\r\n {\r\n var newCalendar = true;\r\n\r\n if (!isDate(date)) {\r\n return;\r\n }\r\n\r\n if (this.calendars) {\r\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\r\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\r\n visibleDate = date.getTime();\r\n // get the end of the month\r\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\r\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\r\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\r\n }\r\n\r\n if (newCalendar) {\r\n this.calendars = [{\r\n month: date.getMonth(),\r\n year: date.getFullYear()\r\n }];\r\n if (this._o.mainCalendar === 'right') {\r\n this.calendars[0].month += 1 - this._o.numberOfMonths;\r\n }\r\n }\r\n\r\n this.adjustCalendars();\r\n },\r\n\r\n adjustDate: function(sign, days) {\r\n\r\n var day = this.getDate() || new Date();\r\n var difference = parseInt(days)*24*60*60*1000;\r\n\r\n var newDay;\r\n\r\n if (sign === 'add') {\r\n newDay = new Date(day.valueOf() + difference);\r\n } else if (sign === 'subtract') {\r\n newDay = new Date(day.valueOf() - difference);\r\n }\r\n\r\n this.setDate(newDay);\r\n },\r\n\r\n adjustCalendars: function() {\r\n this.calendars[0] = adjustCalendar(this.calendars[0]);\r\n for (var c = 1; c < this._o.numberOfMonths; c++) {\r\n this.calendars[c] = adjustCalendar({\r\n month: this.calendars[0].month + c,\r\n year: this.calendars[0].year\r\n });\r\n }\r\n this.draw();\r\n },\r\n\r\n gotoToday: function()\r\n {\r\n this.gotoDate(new Date());\r\n },\r\n\r\n /**\r\n * change view to a specific month (zero-index, e.g. 0: January)\r\n */\r\n gotoMonth: function(month)\r\n {\r\n if (!isNaN(month)) {\r\n this.calendars[0].month = parseInt(month, 10);\r\n this.adjustCalendars();\r\n }\r\n },\r\n\r\n nextMonth: function()\r\n {\r\n this.calendars[0].month++;\r\n this.adjustCalendars();\r\n },\r\n\r\n prevMonth: function()\r\n {\r\n this.calendars[0].month--;\r\n this.adjustCalendars();\r\n },\r\n\r\n /**\r\n * change view to a specific full year (e.g. \"2012\")\r\n */\r\n gotoYear: function(year)\r\n {\r\n if (!isNaN(year)) {\r\n this.calendars[0].year = parseInt(year, 10);\r\n this.adjustCalendars();\r\n }\r\n },\r\n\r\n /**\r\n * change the minDate\r\n */\r\n setMinDate: function(value)\r\n {\r\n if(value instanceof Date) {\r\n setToStartOfDay(value);\r\n this._o.minDate = value;\r\n this._o.minYear = value.getFullYear();\r\n this._o.minMonth = value.getMonth();\r\n } else {\r\n this._o.minDate = defaults.minDate;\r\n this._o.minYear = defaults.minYear;\r\n this._o.minMonth = defaults.minMonth;\r\n this._o.startRange = defaults.startRange;\r\n }\r\n\r\n this.draw();\r\n },\r\n\r\n /**\r\n * change the maxDate\r\n */\r\n setMaxDate: function(value)\r\n {\r\n if(value instanceof Date) {\r\n setToStartOfDay(value);\r\n this._o.maxDate = value;\r\n this._o.maxYear = value.getFullYear();\r\n this._o.maxMonth = value.getMonth();\r\n } else {\r\n this._o.maxDate = defaults.maxDate;\r\n this._o.maxYear = defaults.maxYear;\r\n this._o.maxMonth = defaults.maxMonth;\r\n this._o.endRange = defaults.endRange;\r\n }\r\n\r\n this.draw();\r\n },\r\n\r\n setStartRange: function(value)\r\n {\r\n this._o.startRange = value;\r\n },\r\n\r\n setEndRange: function(value)\r\n {\r\n this._o.endRange = value;\r\n },\r\n\r\n /**\r\n * refresh the HTML\r\n */\r\n draw: function(force)\r\n {\r\n if (!this._v && !force) {\r\n return;\r\n }\r\n var opts = this._o,\r\n minYear = opts.minYear,\r\n maxYear = opts.maxYear,\r\n minMonth = opts.minMonth,\r\n maxMonth = opts.maxMonth,\r\n html = '',\r\n randId;\r\n\r\n if (this._y <= minYear) {\r\n this._y = minYear;\r\n if (!isNaN(minMonth) && this._m < minMonth) {\r\n this._m = minMonth;\r\n }\r\n }\r\n if (this._y >= maxYear) {\r\n this._y = maxYear;\r\n if (!isNaN(maxMonth) && this._m > maxMonth) {\r\n this._m = maxMonth;\r\n }\r\n }\r\n\r\n for (var c = 0; c < opts.numberOfMonths; c++) {\r\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\r\n html += '<div class=\"pika-lendar\">' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '</div>';\r\n }\r\n\r\n this.el.innerHTML = html;\r\n\r\n if (opts.bound) {\r\n if(opts.field.type !== 'hidden') {\r\n sto(function() {\r\n opts.trigger.focus();\r\n }, 1);\r\n }\r\n }\r\n\r\n if (typeof this._o.onDraw === 'function') {\r\n this._o.onDraw(this);\r\n }\r\n\r\n if (opts.bound) {\r\n // let the screen reader user know to use arrow keys\r\n opts.field.setAttribute('aria-label', 'Use the arrow keys to pick a date');\r\n }\r\n },\r\n\r\n adjustPosition: function()\r\n {\r\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect;\r\n\r\n if (this._o.container) return;\r\n\r\n this.el.style.position = 'absolute';\r\n\r\n field = this._o.trigger;\r\n pEl = field;\r\n width = this.el.offsetWidth;\r\n height = this.el.offsetHeight;\r\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\r\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\r\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\r\n\r\n if (typeof field.getBoundingClientRect === 'function') {\r\n clientRect = field.getBoundingClientRect();\r\n left = clientRect.left + window.pageXOffset;\r\n top = clientRect.bottom + window.pageYOffset;\r\n } else {\r\n left = pEl.offsetLeft;\r\n top = pEl.offsetTop + pEl.offsetHeight;\r\n while((pEl = pEl.offsetParent)) {\r\n left += pEl.offsetLeft;\r\n top += pEl.offsetTop;\r\n }\r\n }\r\n\r\n // default position is bottom & left\r\n if ((this._o.reposition && left + width > viewportWidth) ||\r\n (\r\n this._o.position.indexOf('right') > -1 &&\r\n left - width + field.offsetWidth > 0\r\n )\r\n ) {\r\n left = left - width + field.offsetWidth;\r\n }\r\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\r\n (\r\n this._o.position.indexOf('top') > -1 &&\r\n top - height - field.offsetHeight > 0\r\n )\r\n ) {\r\n top = top - height - field.offsetHeight;\r\n }\r\n\r\n this.el.style.left = left + 'px';\r\n this.el.style.top = top + 'px';\r\n },\r\n\r\n /**\r\n * render HTML for a particular month\r\n */\r\n render: function(year, month, randId)\r\n {\r\n var opts = this._o,\r\n now = new Date(),\r\n days = getDaysInMonth(year, month),\r\n before = new Date(year, month, 1).getDay(),\r\n data = [],\r\n row = [];\r\n setToStartOfDay(now);\r\n if (opts.firstDay > 0) {\r\n before -= opts.firstDay;\r\n if (before < 0) {\r\n before += 7;\r\n }\r\n }\r\n var previousMonth = month === 0 ? 11 : month - 1,\r\n nextMonth = month === 11 ? 0 : month + 1,\r\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\r\n yearOfNextMonth = month === 11 ? year + 1 : year,\r\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\r\n var cells = days + before,\r\n after = cells;\r\n while(after > 7) {\r\n after -= 7;\r\n }\r\n cells += 7 - after;\r\n var isWeekSelected = false;\r\n for (var i = 0, r = 0; i < cells; i++)\r\n {\r\n var day = new Date(year, month, 1 + (i - before)),\r\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\r\n isToday = compareDates(day, now),\r\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\r\n isEmpty = i < before || i >= (days + before),\r\n dayNumber = 1 + (i - before),\r\n monthNumber = month,\r\n yearNumber = year,\r\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\r\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\r\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\r\n isDisabled = (opts.minDate && day < opts.minDate) ||\r\n (opts.maxDate && day > opts.maxDate) ||\r\n (opts.disableWeekends && isWeekend(day)) ||\r\n (opts.disableDayFn && opts.disableDayFn(day));\r\n\r\n if (isEmpty) {\r\n if (i < before) {\r\n dayNumber = daysInPreviousMonth + dayNumber;\r\n monthNumber = previousMonth;\r\n yearNumber = yearOfPreviousMonth;\r\n } else {\r\n dayNumber = dayNumber - days;\r\n monthNumber = nextMonth;\r\n yearNumber = yearOfNextMonth;\r\n }\r\n }\r\n\r\n var dayConfig = {\r\n day: dayNumber,\r\n month: monthNumber,\r\n year: yearNumber,\r\n hasEvent: hasEvent,\r\n isSelected: isSelected,\r\n isToday: isToday,\r\n isDisabled: isDisabled,\r\n isEmpty: isEmpty,\r\n isStartRange: isStartRange,\r\n isEndRange: isEndRange,\r\n isInRange: isInRange,\r\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\r\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\r\n };\r\n\r\n if (opts.pickWholeWeek && isSelected) {\r\n isWeekSelected = true;\r\n }\r\n\r\n row.push(renderDay(dayConfig));\r\n\r\n if (++r === 7) {\r\n if (opts.showWeekNumber) {\r\n row.unshift(renderWeek(i - before, month, year));\r\n }\r\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\r\n row = [];\r\n r = 0;\r\n isWeekSelected = false;\r\n }\r\n }\r\n return renderTable(opts, data, randId);\r\n },\r\n\r\n isVisible: function()\r\n {\r\n return this._v;\r\n },\r\n\r\n show: function()\r\n {\r\n if (!this.isVisible()) {\r\n this._v = true;\r\n this.draw();\r\n removeClass(this.el, 'is-hidden');\r\n if (this._o.bound) {\r\n addEvent(document, 'click', this._onClick);\r\n this.adjustPosition();\r\n }\r\n if (typeof this._o.onOpen === 'function') {\r\n this._o.onOpen.call(this);\r\n }\r\n }\r\n },\r\n\r\n hide: function()\r\n {\r\n var v = this._v;\r\n if (v !== false) {\r\n if (this._o.bound) {\r\n removeEvent(document, 'click', this._onClick);\r\n }\r\n this.el.style.position = 'static'; // reset\r\n this.el.style.left = 'auto';\r\n this.el.style.top = 'auto';\r\n addClass(this.el, 'is-hidden');\r\n this._v = false;\r\n if (v !== undefined && typeof this._o.onClose === 'function') {\r\n this._o.onClose.call(this);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * GAME OVER\r\n */\r\n destroy: function()\r\n {\r\n var opts = this._o;\r\n\r\n this.hide();\r\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\r\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\r\n removeEvent(this.el, 'change', this._onChange);\r\n if (opts.keyboardInput) {\r\n removeEvent(document, 'keydown', this._onKeyChange);\r\n }\r\n if (opts.field) {\r\n removeEvent(opts.field, 'change', this._onInputChange);\r\n if (opts.bound) {\r\n removeEvent(opts.trigger, 'click', this._onInputClick);\r\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\r\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\r\n }\r\n }\r\n if (this.el.parentNode) {\r\n this.el.parentNode.removeChild(this.el);\r\n }\r\n }\r\n\r\n };\r\n\r\n return Pikaday;\r\n}));","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'birneçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha invalida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var hi = moment.defineLocale('hi', {\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split(\n '_'\n ),\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه'.split(\n '_'\n ),\n weekdaysShort: 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره|بهیانی/,\n isPM: function (input) {\n return /ئێواره/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'بهیانی';\n } else {\n return 'ئێواره';\n }\n },\n calendar: {\n sameDay: '[ئهمرۆ كاتژمێر] LT',\n nextDay: '[بهیانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له %s',\n past: '%s',\n s: 'چهند چركهیهك',\n ss: 'چركه %d',\n m: 'یهك خولهك',\n mm: '%d خولهك',\n h: 'یهك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یهك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یهك مانگ',\n MM: '%d مانگ',\n y: 'یهك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n );\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return (\n '(' +\n monthsSubjective[momentToFormat.month()] +\n '|' +\n monthsNominative[momentToFormat.month()] +\n ')'\n );\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Пагоҳ соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [trk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js language configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js language configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","/**\n * Simple, lightweight, usable local autocomplete library for modern browsers\n * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P\n * @author Lea Verou http://leaverou.github.io/awesomplete\n * MIT license\n */\n\n(function () {\n\nvar _ = function (input, o) {\n\tvar me = this;\n\n\t// Setup\n\n\tthis.isOpened = false;\n\n\tthis.input = $(input);\n\tthis.input.setAttribute(\"autocomplete\", \"off\");\n\tthis.input.setAttribute(\"aria-autocomplete\", \"list\");\n\n\to = o || {};\n\n\tconfigure(this, {\n\t\tminChars: 2,\n\t\tmaxItems: 10,\n\t\tautoFirst: false,\n\t\tdata: _.DATA,\n\t\tfilter: _.FILTER_CONTAINS,\n\t\tsort: o.sort === false ? false : _.SORT_BYLENGTH,\n\t\titem: _.ITEM,\n\t\treplace: _.REPLACE\n\t}, o);\n\n\tthis.index = -1;\n\n\t// Create necessary elements\n\n\tthis.container = $.create(\"div\", {\n\t\tclassName: \"awesomplete\",\n\t\taround: input\n\t});\n\n\tthis.ul = $.create(\"ul\", {\n\t\thidden: \"hidden\",\n\t\tinside: this.container\n\t});\n\n\tthis.status = $.create(\"span\", {\n\t\tclassName: \"visually-hidden\",\n\t\trole: \"status\",\n\t\t\"aria-live\": \"assertive\",\n\t\t\"aria-relevant\": \"additions\",\n\t\tinside: this.container\n\t});\n\n\t// Bind events\n\n\tthis._events = {\n\t\tinput: {\n\t\t\t\"input\": this.evaluate.bind(this),\n\t\t\t\"blur\": this.close.bind(this, { reason: \"blur\" }),\n\t\t\t\"keydown\": function(evt) {\n\t\t\t\tvar c = evt.keyCode;\n\n\t\t\t\t// If the dropdown `ul` is in view, then act on keydown for the following keys:\n\t\t\t\t// Enter / Esc / Up / Down\n\t\t\t\tif(me.opened) {\n\t\t\t\t\tif (c === 13 && me.selected) { // Enter\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select();\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 27) { // Esc\n\t\t\t\t\t\tme.close({ reason: \"esc\" });\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 38 || c === 40) { // Down/Up arrow\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme[c === 38? \"previous\" : \"next\"]();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tform: {\n\t\t\t\"submit\": this.close.bind(this, { reason: \"submit\" })\n\t\t},\n\t\tul: {\n\t\t\t\"mousedown\": function(evt) {\n\t\t\t\tvar li = evt.target;\n\n\t\t\t\tif (li !== this) {\n\n\t\t\t\t\twhile (li && !/li/i.test(li.nodeName)) {\n\t\t\t\t\t\tli = li.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (li && evt.button === 0) { // Only select on left click\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select(li, evt.target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.bind(this.input, this._events.input);\n\t$.bind(this.input.form, this._events.form);\n\t$.bind(this.ul, this._events.ul);\n\n\tif (this.input.hasAttribute(\"list\")) {\n\t\tthis.list = \"#\" + this.input.getAttribute(\"list\");\n\t\tthis.input.removeAttribute(\"list\");\n\t}\n\telse {\n\t\tthis.list = this.input.getAttribute(\"data-list\") || o.list || [];\n\t}\n\n\t_.all.push(this);\n};\n\n_.prototype = {\n\tset list(list) {\n\t\tif (Array.isArray(list)) {\n\t\t\tthis._list = list;\n\t\t}\n\t\telse if (typeof list === \"string\" && list.indexOf(\",\") > -1) {\n\t\t\t\tthis._list = list.split(/\\s*,\\s*/);\n\t\t}\n\t\telse { // Element or CSS selector\n\t\t\tlist = $(list);\n\n\t\t\tif (list && list.children) {\n\t\t\t\tvar items = [];\n\t\t\t\tslice.apply(list.children).forEach(function (el) {\n\t\t\t\t\tif (!el.disabled) {\n\t\t\t\t\t\tvar text = el.textContent.trim();\n\t\t\t\t\t\tvar value = el.value || text;\n\t\t\t\t\t\tvar label = el.label || text;\n\t\t\t\t\t\tif (value !== \"\") {\n\t\t\t\t\t\t\titems.push({ label: label, value: value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis._list = items;\n\t\t\t}\n\t\t}\n\n\t\tif (document.activeElement === this.input) {\n\t\t\tthis.evaluate();\n\t\t}\n\t},\n\n\tget selected() {\n\t\treturn this.index > -1;\n\t},\n\n\tget opened() {\n\t\treturn this.isOpened;\n\t},\n\n\tclose: function (o) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ul.setAttribute(\"hidden\", \"\");\n\t\tthis.isOpened = false;\n\t\tthis.index = -1;\n\n\t\t$.fire(this.input, \"awesomplete-close\", o || {});\n\t},\n\n\topen: function () {\n\t\tthis.ul.removeAttribute(\"hidden\");\n\t\tthis.isOpened = true;\n\n\t\tif (this.autoFirst && this.index === -1) {\n\t\t\tthis.goto(0);\n\t\t}\n\n\t\t$.fire(this.input, \"awesomplete-open\");\n\t},\n\n\tdestroy: function() {\n\t\t//remove events from the input and its form\n\t\t$.unbind(this.input, this._events.input);\n\t\t$.unbind(this.input.form, this._events.form);\n\n\t\t//move the input out of the awesomplete container and remove the container and its children\n\t\tvar parentNode = this.container.parentNode;\n\n\t\tparentNode.insertBefore(this.input, this.container);\n\t\tparentNode.removeChild(this.container);\n\n\t\t//remove autocomplete and aria-autocomplete attributes\n\t\tthis.input.removeAttribute(\"autocomplete\");\n\t\tthis.input.removeAttribute(\"aria-autocomplete\");\n\n\t\t//remove this awesomeplete instance from the global array of instances\n\t\tvar indexOfAwesomplete = _.all.indexOf(this);\n\n\t\tif (indexOfAwesomplete !== -1) {\n\t\t\t_.all.splice(indexOfAwesomplete, 1);\n\t\t}\n\t},\n\n\tnext: function () {\n\t\tvar count = this.ul.children.length;\n\t\tthis.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) );\n\t},\n\n\tprevious: function () {\n\t\tvar count = this.ul.children.length;\n\t\tvar pos = this.index - 1;\n\n\t\tthis.goto(this.selected && pos !== -1 ? pos : count - 1);\n\t},\n\n\t// Should not be used, highlights specific item without any checks!\n\tgoto: function (i) {\n\t\tvar lis = this.ul.children;\n\n\t\tif (this.selected) {\n\t\t\tlis[this.index].setAttribute(\"aria-selected\", \"false\");\n\t\t}\n\n\t\tthis.index = i;\n\n\t\tif (i > -1 && lis.length > 0) {\n\t\t\tlis[i].setAttribute(\"aria-selected\", \"true\");\n\t\t\tthis.status.textContent = lis[i].textContent;\n\n\t\t\t// scroll to highlighted element in case parent's height is fixed\n\t\t\tthis.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight;\n\n\t\t\t$.fire(this.input, \"awesomplete-highlight\", {\n\t\t\t\ttext: this.suggestions[this.index]\n\t\t\t});\n\t\t}\n\t},\n\n\tselect: function (selected, origin) {\n\t\tif (selected) {\n\t\t\tthis.index = $.siblingIndex(selected);\n\t\t} else {\n\t\t\tselected = this.ul.children[this.index];\n\t\t}\n\n\t\tif (selected) {\n\t\t\tvar suggestion = this.suggestions[this.index];\n\n\t\t\tvar allowed = $.fire(this.input, \"awesomplete-select\", {\n\t\t\t\ttext: suggestion,\n\t\t\t\torigin: origin || selected\n\t\t\t});\n\n\t\t\tif (allowed) {\n\t\t\t\tthis.replace(suggestion);\n\t\t\t\tthis.close({ reason: \"select\" });\n\t\t\t\t$.fire(this.input, \"awesomplete-selectcomplete\", {\n\t\t\t\t\ttext: suggestion\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\n\tevaluate: function() {\n\t\tvar me = this;\n\t\tvar value = this.input.value;\n\n\t\tif (value.length >= this.minChars && this._list.length > 0) {\n\t\t\tthis.index = -1;\n\t\t\t// Populate list with options that match\n\t\t\tthis.ul.innerHTML = \"\";\n\n\t\t\tthis.suggestions = this._list\n\t\t\t\t.map(function(item) {\n\t\t\t\t\treturn new Suggestion(me.data(item, value));\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn me.filter(item, value);\n\t\t\t\t});\n\n\t\t\tif (this.sort !== false) {\n\t\t\t\tthis.suggestions = this.suggestions.sort(this.sort);\n\t\t\t}\n\n\t\t\tthis.suggestions = this.suggestions.slice(0, this.maxItems);\n\n\t\t\tthis.suggestions.forEach(function(text) {\n\t\t\t\t\tme.ul.appendChild(me.item(text, value));\n\t\t\t\t});\n\n\t\t\tif (this.ul.children.length === 0) {\n\t\t\t\tthis.close({ reason: \"nomatches\" });\n\t\t\t} else {\n\t\t\t\tthis.open();\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.close({ reason: \"nomatches\" });\n\t\t}\n\t}\n};\n\n// Static methods/properties\n\n_.all = [];\n\n_.FILTER_CONTAINS = function (text, input) {\n\treturn RegExp($.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.FILTER_STARTSWITH = function (text, input) {\n\treturn RegExp(\"^\" + $.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.SORT_BYLENGTH = function (a, b) {\n\tif (a.length !== b.length) {\n\t\treturn a.length - b.length;\n\t}\n\n\treturn a < b? -1 : 1;\n};\n\n_.ITEM = function (text, input) {\n\tvar html = input.trim() === \"\" ? text : text.replace(RegExp($.regExpEscape(input.trim()), \"gi\"), \"<mark>$&</mark>\");\n\treturn $.create(\"li\", {\n\t\tinnerHTML: html,\n\t\t\"aria-selected\": \"false\"\n\t});\n};\n\n_.REPLACE = function (text) {\n\tthis.input.value = text.value;\n};\n\n_.DATA = function (item/*, input*/) { return item; };\n\n// Private functions\n\nfunction Suggestion(data) {\n\tvar o = Array.isArray(data)\n\t ? { label: data[0], value: data[1] }\n\t : typeof data === \"object\" && \"label\" in data && \"value\" in data ? data : { label: data, value: data };\n\n\tthis.label = o.label || o.value;\n\tthis.value = o.value;\n}\nObject.defineProperty(Suggestion.prototype = Object.create(String.prototype), \"length\", {\n\tget: function() { return this.label.length; }\n});\nSuggestion.prototype.toString = Suggestion.prototype.valueOf = function () {\n\treturn \"\" + this.label;\n};\n\nfunction configure(instance, properties, o) {\n\tfor (var i in properties) {\n\t\tvar initial = properties[i],\n\t\t attrValue = instance.input.getAttribute(\"data-\" + i.toLowerCase());\n\n\t\tif (typeof initial === \"number\") {\n\t\t\tinstance[i] = parseInt(attrValue);\n\t\t}\n\t\telse if (initial === false) { // Boolean options must be false by default anyway\n\t\t\tinstance[i] = attrValue !== null;\n\t\t}\n\t\telse if (initial instanceof Function) {\n\t\t\tinstance[i] = null;\n\t\t}\n\t\telse {\n\t\t\tinstance[i] = attrValue;\n\t\t}\n\n\t\tif (!instance[i] && instance[i] !== 0) {\n\t\t\tinstance[i] = (i in o)? o[i] : initial;\n\t\t}\n\t}\n}\n\n// Helpers\n\nvar slice = Array.prototype.slice;\n\nfunction $(expr, con) {\n\treturn typeof expr === \"string\"? (con || document).querySelector(expr) : expr || null;\n}\n\nfunction $$(expr, con) {\n\treturn slice.call((con || document).querySelectorAll(expr));\n}\n\n$.create = function(tag, o) {\n\tvar element = document.createElement(tag);\n\n\tfor (var i in o) {\n\t\tvar val = o[i];\n\n\t\tif (i === \"inside\") {\n\t\t\t$(val).appendChild(element);\n\t\t}\n\t\telse if (i === \"around\") {\n\t\t\tvar ref = $(val);\n\t\t\tref.parentNode.insertBefore(element, ref);\n\t\t\telement.appendChild(ref);\n\t\t}\n\t\telse if (i in element) {\n\t\t\telement[i] = val;\n\t\t}\n\t\telse {\n\t\t\telement.setAttribute(i, val);\n\t\t}\n\t}\n\n\treturn element;\n};\n\n$.bind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function (event) {\n\t\t\t\telement.addEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.unbind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function(event) {\n\t\t\t\telement.removeEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.fire = function(target, type, properties) {\n\tvar evt = document.createEvent(\"HTMLEvents\");\n\n\tevt.initEvent(type, true, true );\n\n\tfor (var j in properties) {\n\t\tevt[j] = properties[j];\n\t}\n\n\treturn target.dispatchEvent(evt);\n};\n\n$.regExpEscape = function (s) {\n\treturn s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n\n$.siblingIndex = function (el) {\n\t/* eslint-disable no-cond-assign */\n\tfor (var i = 0; el = el.previousElementSibling; i++);\n\treturn i;\n};\n\n// Initialization\n\nfunction init() {\n\t$$(\"input.awesomplete\").forEach(function (input) {\n\t\tnew _(input);\n\t});\n}\n\n// Are we in a browser? Check for Document constructor\nif (typeof Document !== \"undefined\") {\n\t// DOM already loaded?\n\tif (document.readyState !== \"loading\") {\n\t\tinit();\n\t}\n\telse {\n\t\t// Wait for it\n\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t}\n}\n\n_.$ = $;\n_.$$ = $$;\n\n// Make sure to export Awesomplete on self when in a browser\nif (typeof self !== \"undefined\") {\n\tself.Awesomplete = _;\n}\n\n// Expose Awesomplete as a CJS module\nif (typeof module === \"object\" && module.exports) {\n\tmodule.exports = _;\n}\n\nreturn _;\n\n}());\n","//! moment-timezone.js\n//! version : 0.5.31\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.31\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var map = {\n\t\"./af\": 5,\n\t\"./af.js\": 5,\n\t\"./ar\": 6,\n\t\"./ar-dz\": 7,\n\t\"./ar-dz.js\": 7,\n\t\"./ar-kw\": 8,\n\t\"./ar-kw.js\": 8,\n\t\"./ar-ly\": 9,\n\t\"./ar-ly.js\": 9,\n\t\"./ar-ma\": 10,\n\t\"./ar-ma.js\": 10,\n\t\"./ar-sa\": 11,\n\t\"./ar-sa.js\": 11,\n\t\"./ar-tn\": 12,\n\t\"./ar-tn.js\": 12,\n\t\"./ar.js\": 6,\n\t\"./az\": 13,\n\t\"./az.js\": 13,\n\t\"./be\": 14,\n\t\"./be.js\": 14,\n\t\"./bg\": 15,\n\t\"./bg.js\": 15,\n\t\"./bm\": 16,\n\t\"./bm.js\": 16,\n\t\"./bn\": 17,\n\t\"./bn.js\": 17,\n\t\"./bo\": 18,\n\t\"./bo.js\": 18,\n\t\"./br\": 19,\n\t\"./br.js\": 19,\n\t\"./bs\": 20,\n\t\"./bs.js\": 20,\n\t\"./ca\": 21,\n\t\"./ca.js\": 21,\n\t\"./cs\": 22,\n\t\"./cs.js\": 22,\n\t\"./cv\": 23,\n\t\"./cv.js\": 23,\n\t\"./cy\": 24,\n\t\"./cy.js\": 24,\n\t\"./da\": 25,\n\t\"./da.js\": 25,\n\t\"./de\": 26,\n\t\"./de-at\": 27,\n\t\"./de-at.js\": 27,\n\t\"./de-ch\": 28,\n\t\"./de-ch.js\": 28,\n\t\"./de.js\": 26,\n\t\"./dv\": 29,\n\t\"./dv.js\": 29,\n\t\"./el\": 30,\n\t\"./el.js\": 30,\n\t\"./en-au\": 31,\n\t\"./en-au.js\": 31,\n\t\"./en-ca\": 32,\n\t\"./en-ca.js\": 32,\n\t\"./en-gb\": 33,\n\t\"./en-gb.js\": 33,\n\t\"./en-ie\": 34,\n\t\"./en-ie.js\": 34,\n\t\"./en-il\": 35,\n\t\"./en-il.js\": 35,\n\t\"./en-in\": 36,\n\t\"./en-in.js\": 36,\n\t\"./en-nz\": 37,\n\t\"./en-nz.js\": 37,\n\t\"./en-sg\": 38,\n\t\"./en-sg.js\": 38,\n\t\"./eo\": 39,\n\t\"./eo.js\": 39,\n\t\"./es\": 40,\n\t\"./es-do\": 41,\n\t\"./es-do.js\": 41,\n\t\"./es-us\": 42,\n\t\"./es-us.js\": 42,\n\t\"./es.js\": 40,\n\t\"./et\": 43,\n\t\"./et.js\": 43,\n\t\"./eu\": 44,\n\t\"./eu.js\": 44,\n\t\"./fa\": 45,\n\t\"./fa.js\": 45,\n\t\"./fi\": 46,\n\t\"./fi.js\": 46,\n\t\"./fil\": 47,\n\t\"./fil.js\": 47,\n\t\"./fo\": 48,\n\t\"./fo.js\": 48,\n\t\"./fr\": 49,\n\t\"./fr-ca\": 50,\n\t\"./fr-ca.js\": 50,\n\t\"./fr-ch\": 51,\n\t\"./fr-ch.js\": 51,\n\t\"./fr.js\": 49,\n\t\"./fy\": 52,\n\t\"./fy.js\": 52,\n\t\"./ga\": 53,\n\t\"./ga.js\": 53,\n\t\"./gd\": 54,\n\t\"./gd.js\": 54,\n\t\"./gl\": 55,\n\t\"./gl.js\": 55,\n\t\"./gom-deva\": 56,\n\t\"./gom-deva.js\": 56,\n\t\"./gom-latn\": 57,\n\t\"./gom-latn.js\": 57,\n\t\"./gu\": 58,\n\t\"./gu.js\": 58,\n\t\"./he\": 59,\n\t\"./he.js\": 59,\n\t\"./hi\": 60,\n\t\"./hi.js\": 60,\n\t\"./hr\": 61,\n\t\"./hr.js\": 61,\n\t\"./hu\": 62,\n\t\"./hu.js\": 62,\n\t\"./hy-am\": 63,\n\t\"./hy-am.js\": 63,\n\t\"./id\": 64,\n\t\"./id.js\": 64,\n\t\"./is\": 65,\n\t\"./is.js\": 65,\n\t\"./it\": 66,\n\t\"./it-ch\": 67,\n\t\"./it-ch.js\": 67,\n\t\"./it.js\": 66,\n\t\"./ja\": 68,\n\t\"./ja.js\": 68,\n\t\"./jv\": 69,\n\t\"./jv.js\": 69,\n\t\"./ka\": 70,\n\t\"./ka.js\": 70,\n\t\"./kk\": 71,\n\t\"./kk.js\": 71,\n\t\"./km\": 72,\n\t\"./km.js\": 72,\n\t\"./kn\": 73,\n\t\"./kn.js\": 73,\n\t\"./ko\": 74,\n\t\"./ko.js\": 74,\n\t\"./ku\": 75,\n\t\"./ku.js\": 75,\n\t\"./ky\": 76,\n\t\"./ky.js\": 76,\n\t\"./lb\": 77,\n\t\"./lb.js\": 77,\n\t\"./lo\": 78,\n\t\"./lo.js\": 78,\n\t\"./lt\": 79,\n\t\"./lt.js\": 79,\n\t\"./lv\": 80,\n\t\"./lv.js\": 80,\n\t\"./me\": 81,\n\t\"./me.js\": 81,\n\t\"./mi\": 82,\n\t\"./mi.js\": 82,\n\t\"./mk\": 83,\n\t\"./mk.js\": 83,\n\t\"./ml\": 84,\n\t\"./ml.js\": 84,\n\t\"./mn\": 85,\n\t\"./mn.js\": 85,\n\t\"./mr\": 86,\n\t\"./mr.js\": 86,\n\t\"./ms\": 87,\n\t\"./ms-my\": 88,\n\t\"./ms-my.js\": 88,\n\t\"./ms.js\": 87,\n\t\"./mt\": 89,\n\t\"./mt.js\": 89,\n\t\"./my\": 90,\n\t\"./my.js\": 90,\n\t\"./nb\": 91,\n\t\"./nb.js\": 91,\n\t\"./ne\": 92,\n\t\"./ne.js\": 92,\n\t\"./nl\": 93,\n\t\"./nl-be\": 94,\n\t\"./nl-be.js\": 94,\n\t\"./nl.js\": 93,\n\t\"./nn\": 95,\n\t\"./nn.js\": 95,\n\t\"./oc-lnc\": 96,\n\t\"./oc-lnc.js\": 96,\n\t\"./pa-in\": 97,\n\t\"./pa-in.js\": 97,\n\t\"./pl\": 98,\n\t\"./pl.js\": 98,\n\t\"./pt\": 99,\n\t\"./pt-br\": 100,\n\t\"./pt-br.js\": 100,\n\t\"./pt.js\": 99,\n\t\"./ro\": 101,\n\t\"./ro.js\": 101,\n\t\"./ru\": 102,\n\t\"./ru.js\": 102,\n\t\"./sd\": 103,\n\t\"./sd.js\": 103,\n\t\"./se\": 104,\n\t\"./se.js\": 104,\n\t\"./si\": 105,\n\t\"./si.js\": 105,\n\t\"./sk\": 106,\n\t\"./sk.js\": 106,\n\t\"./sl\": 107,\n\t\"./sl.js\": 107,\n\t\"./sq\": 108,\n\t\"./sq.js\": 108,\n\t\"./sr\": 109,\n\t\"./sr-cyrl\": 110,\n\t\"./sr-cyrl.js\": 110,\n\t\"./sr.js\": 109,\n\t\"./ss\": 111,\n\t\"./ss.js\": 111,\n\t\"./sv\": 112,\n\t\"./sv.js\": 112,\n\t\"./sw\": 113,\n\t\"./sw.js\": 113,\n\t\"./ta\": 114,\n\t\"./ta.js\": 114,\n\t\"./te\": 115,\n\t\"./te.js\": 115,\n\t\"./tet\": 116,\n\t\"./tet.js\": 116,\n\t\"./tg\": 117,\n\t\"./tg.js\": 117,\n\t\"./th\": 118,\n\t\"./th.js\": 118,\n\t\"./tk\": 119,\n\t\"./tk.js\": 119,\n\t\"./tl-ph\": 120,\n\t\"./tl-ph.js\": 120,\n\t\"./tlh\": 121,\n\t\"./tlh.js\": 121,\n\t\"./tr\": 122,\n\t\"./tr.js\": 122,\n\t\"./tzl\": 123,\n\t\"./tzl.js\": 123,\n\t\"./tzm\": 124,\n\t\"./tzm-latn\": 125,\n\t\"./tzm-latn.js\": 125,\n\t\"./tzm.js\": 124,\n\t\"./ug-cn\": 126,\n\t\"./ug-cn.js\": 126,\n\t\"./uk\": 127,\n\t\"./uk.js\": 127,\n\t\"./ur\": 128,\n\t\"./ur.js\": 128,\n\t\"./uz\": 129,\n\t\"./uz-latn\": 130,\n\t\"./uz-latn.js\": 130,\n\t\"./uz.js\": 129,\n\t\"./vi\": 131,\n\t\"./vi.js\": 131,\n\t\"./x-pseudo\": 132,\n\t\"./x-pseudo.js\": 132,\n\t\"./yo\": 133,\n\t\"./yo.js\": 133,\n\t\"./zh-cn\": 134,\n\t\"./zh-cn.js\": 134,\n\t\"./zh-hk\": 135,\n\t\"./zh-hk.js\": 135,\n\t\"./zh-mo\": 136,\n\t\"./zh-mo.js\": 136,\n\t\"./zh-tw\": 137,\n\t\"./zh-tw.js\": 137\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 142;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export var KeyCodes;\r\n(function (KeyCodes) {\r\n KeyCodes[KeyCodes[\"Tab\"] = 9] = \"Tab\";\r\n KeyCodes[KeyCodes[\"Esc\"] = 27] = \"Esc\";\r\n KeyCodes[KeyCodes[\"Enter\"] = 13] = \"Enter\";\r\n KeyCodes[KeyCodes[\"Up\"] = 38] = \"Up\";\r\n KeyCodes[KeyCodes[\"Down\"] = 40] = \"Down\";\r\n})(KeyCodes || (KeyCodes = {}));\r\n// search api params\r\nexport var InstancesSort;\r\n(function (InstancesSort) {\r\n InstancesSort[\"DisplayName\"] = \"DisplayName\";\r\n InstancesSort[\"Rank\"] = \"Rank\";\r\n})(InstancesSort || (InstancesSort = {}));\r\n;\r\nexport var HierarchiesExpand;\r\n(function (HierarchiesExpand) {\r\n HierarchiesExpand[\"UntilChildren\"] = \"UntilChildren\";\r\n HierarchiesExpand[\"OneLevel\"] = \"OneLevel\";\r\n})(HierarchiesExpand || (HierarchiesExpand = {}));\r\n;\r\nexport var HierarchiesSort;\r\n(function (HierarchiesSort) {\r\n HierarchiesSort[\"Name\"] = \"Name\";\r\n HierarchiesSort[\"CumulativeInstanceCount\"] = \"CumulativeInstanceCount\";\r\n})(HierarchiesSort || (HierarchiesSort = {}));\r\n;\r\nexport var MetadataPropertyTypes;\r\n(function (MetadataPropertyTypes) {\r\n MetadataPropertyTypes[\"Double\"] = \"Double\";\r\n MetadataPropertyTypes[\"String\"] = \"String\";\r\n MetadataPropertyTypes[\"DateTime\"] = \"DateTime\";\r\n MetadataPropertyTypes[\"Long\"] = \"Long\";\r\n})(MetadataPropertyTypes || (MetadataPropertyTypes = {}));\r\nexport var ShiftTypes;\r\n(function (ShiftTypes) {\r\n ShiftTypes[\"startAt\"] = \"Start at\";\r\n ShiftTypes[\"shifted\"] = \"shifted\";\r\n})(ShiftTypes || (ShiftTypes = {}));\r\nexport var InterpolationFunctions;\r\n(function (InterpolationFunctions) {\r\n InterpolationFunctions[\"None\"] = \"\";\r\n InterpolationFunctions[\"CurveLinear\"] = \"curveLinear\";\r\n InterpolationFunctions[\"CurveStep\"] = \"curveStep\";\r\n InterpolationFunctions[\"CurveStepBefore\"] = \"curveStepBefore\";\r\n InterpolationFunctions[\"CurveStepAfter\"] = \"curveStepAfter\";\r\n InterpolationFunctions[\"CurveBasis\"] = \"curveBasis\";\r\n InterpolationFunctions[\"CurveCardinal\"] = \"curveCardinal\";\r\n InterpolationFunctions[\"CurveMonotoneX\"] = \"curveMonotoneX\";\r\n InterpolationFunctions[\"CurveCatmullRom\"] = \"curveCatmullRom\";\r\n})(InterpolationFunctions || (InterpolationFunctions = {}));\r\nexport var ErrorCodes;\r\n(function (ErrorCodes) {\r\n ErrorCodes[\"InvalidInput\"] = \"InvalidInput\";\r\n ErrorCodes[\"PartialSuccess\"] = \"PartialSuccess\";\r\n})(ErrorCodes || (ErrorCodes = {}));\r\n// Linechart stack states\r\nexport var YAxisStates;\r\n(function (YAxisStates) {\r\n YAxisStates[\"Stacked\"] = \"stacked\";\r\n YAxisStates[\"Shared\"] = \"shared\";\r\n YAxisStates[\"Overlap\"] = \"overlap\";\r\n})(YAxisStates || (YAxisStates = {}));\r\n;\r\nexport var DataTypes;\r\n(function (DataTypes) {\r\n DataTypes[\"Numeric\"] = \"numeric\";\r\n DataTypes[\"Categorical\"] = \"categorical\";\r\n DataTypes[\"Events\"] = \"events\";\r\n})(DataTypes || (DataTypes = {}));\r\n;\r\nexport var EventElementTypes;\r\n(function (EventElementTypes) {\r\n EventElementTypes[\"Diamond\"] = \"diamond\";\r\n EventElementTypes[\"Teardrop\"] = \"teardrop\";\r\n})(EventElementTypes || (EventElementTypes = {}));\r\n;\r\nexport var TooltipMeasureFormat;\r\n(function (TooltipMeasureFormat) {\r\n TooltipMeasureFormat[\"Enveloped\"] = \"Enveloped\";\r\n TooltipMeasureFormat[\"SingleValue\"] = \"SingleValue\";\r\n TooltipMeasureFormat[\"Scatter\"] = \"Scatter\";\r\n})(TooltipMeasureFormat || (TooltipMeasureFormat = {}));\r\n;\r\nexport var valueTypes;\r\n(function (valueTypes) {\r\n valueTypes[\"String\"] = \"String\";\r\n valueTypes[\"Double\"] = \"Double\";\r\n valueTypes[\"Long\"] = \"Long\";\r\n valueTypes[\"Dynamic\"] = \"Dynamic\";\r\n valueTypes[\"Boolean\"] = \"Boolean\";\r\n valueTypes[\"DateTime\"] = \"DateTime\";\r\n})(valueTypes || (valueTypes = {}));\r\n;\r\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export function blur(values, r) {\n if (!((r = +r) >= 0)) throw new RangeError(\"invalid r\");\n let length = values.length;\n if (!((length = Math.floor(length)) >= 0)) throw new RangeError(\"invalid length\");\n if (!length || !r) return values;\n const blur = blurf(r);\n const temp = values.slice();\n blur(values, temp, 0, length, 1);\n blur(temp, values, 0, length, 1);\n blur(values, temp, 0, length, 1);\n return values;\n}\n\nexport const blur2 = Blur2(blurf);\n\nexport const blurImage = Blur2(blurfImage);\n\nfunction Blur2(blur) {\n return function(data, rx, ry = rx) {\n if (!((rx = +rx) >= 0)) throw new RangeError(\"invalid rx\");\n if (!((ry = +ry) >= 0)) throw new RangeError(\"invalid ry\");\n let {data: values, width, height} = data;\n if (!((width = Math.floor(width)) >= 0)) throw new RangeError(\"invalid width\");\n if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError(\"invalid height\");\n if (!width || !height || (!rx && !ry)) return data;\n const blurx = rx && blur(rx);\n const blury = ry && blur(ry);\n const temp = values.slice();\n if (blurx && blury) {\n blurh(blurx, temp, values, width, height);\n blurh(blurx, values, temp, width, height);\n blurh(blurx, temp, values, width, height);\n blurv(blury, values, temp, width, height);\n blurv(blury, temp, values, width, height);\n blurv(blury, values, temp, width, height);\n } else if (blurx) {\n blurh(blurx, values, temp, width, height);\n blurh(blurx, temp, values, width, height);\n blurh(blurx, values, temp, width, height);\n } else if (blury) {\n blurv(blury, values, temp, width, height);\n blurv(blury, temp, values, width, height);\n blurv(blury, values, temp, width, height);\n }\n return data;\n };\n}\n\nfunction blurh(blur, T, S, w, h) {\n for (let y = 0, n = w * h; y < n;) {\n blur(T, S, y, y += w, 1);\n }\n}\n\nfunction blurv(blur, T, S, w, h) {\n for (let x = 0, n = w * h; x < w; ++x) {\n blur(T, S, x, x + n, w);\n }\n}\n\nfunction blurfImage(radius) {\n const blur = blurf(radius);\n return (T, S, start, stop, step) => {\n start <<= 2, stop <<= 2, step <<= 2;\n blur(T, S, start + 0, stop + 0, step);\n blur(T, S, start + 1, stop + 1, step);\n blur(T, S, start + 2, stop + 2, step);\n blur(T, S, start + 3, stop + 3, step);\n };\n}\n\n// Given a target array T, a source array S, sets each value T[i] to the average\n// of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop,\n// for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between\n// S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an\n// integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted\n// according to r - ⌊radius⌋.\nfunction blurf(radius) {\n const radius0 = Math.floor(radius);\n if (radius0 === radius) return bluri(radius);\n const t = radius - radius0;\n const w = 2 * radius + 1;\n return (T, S, start, stop, step) => { // stop must be aligned!\n if (!((stop -= step) >= start)) return; // inclusive stop\n let sum = radius0 * S[start];\n const s0 = step * radius0;\n const s1 = s0 + step;\n for (let i = start, j = start + s0; i < j; i += step) {\n sum += S[Math.min(stop, i)];\n }\n for (let i = start, j = stop; i <= j; i += step) {\n sum += S[Math.min(stop, i + s0)];\n T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w;\n sum -= S[Math.max(start, i - s0)];\n }\n };\n}\n\n// Like blurf, but optimized for integer radius.\nfunction bluri(radius) {\n const w = 2 * radius + 1;\n return (T, S, start, stop, step) => { // stop must be aligned!\n if (!((stop -= step) >= start)) return; // inclusive stop\n let sum = radius * S[start];\n const s = step * radius;\n for (let i = start, j = start + s; i < j; i += step) {\n sum += S[Math.min(stop, i)];\n }\n for (let i = start, j = stop; i <= j; i += step) {\n sum += S[Math.min(stop, i + s)];\n T[i] = sum / w;\n sum -= S[Math.max(start, i - s)];\n }\n };\n}\n","export default function count(values, valueof) {\n let count = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count;\n }\n }\n }\n return count;\n}\n","function length(array) {\n return array.length | 0;\n}\n\nfunction empty(length) {\n return !(length > 0);\n}\n\nfunction arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n return values => reduce(...values);\n}\n\nexport default function cross(...values) {\n const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n const lengths = values.map(length);\n const j = values.length - 1;\n const index = new Array(j + 1).fill(0);\n const product = [];\n if (j < 0 || lengths.some(empty)) return product;\n while (true) {\n product.push(index.map((j, i) => values[i][j]));\n let i = j;\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n}\n","export default function cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}","export default function variance(values, valueof) {\n let count = 0;\n let delta;\n let mean = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n }\n if (count > 1) return sum / (count - 1);\n}\n","import variance from \"./variance.js\";\n\nexport default function deviation(values, valueof) {\n const v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\n}\n","export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const 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 p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--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 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 return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","export default function identity(x) {\n return x;\n}\n","import {InternMap} from \"internmap\";\nimport identity from \"./identity.js\";\n\nexport default function group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nexport function groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nfunction flatten(groups, keys) {\n for (let i = 1, n = keys.length; i < n; ++i) {\n groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));\n }\n return groups;\n}\n\nexport function flatGroup(values, ...keys) {\n return flatten(groups(values, ...keys), keys);\n}\n\nexport function flatRollup(values, reduce, ...keys) {\n return flatten(rollups(values, reduce, ...keys), keys);\n}\n\nexport function rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nexport function rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nexport function index(values, ...keys) {\n return nest(values, identity, unique, keys);\n}\n\nexport function indexes(values, ...keys) {\n return nest(values, Array.from, unique, keys);\n}\n\nfunction unique(values) {\n if (values.length !== 1) throw new Error(\"duplicate key\");\n return values[0];\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new InternMap();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n","export default function permute(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import ascending from \"./ascending.js\";\nimport group, {rollup} from \"./group.js\";\nimport sort from \"./sort.js\";\n\nexport default function groupSort(values, reduce, key) {\n return (reduce.length !== 2\n ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))\n : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))\n .map(([key]) => key);\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function constant(x) {\n return () => x;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\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 let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\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\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\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;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n prestep = step;\n }\n}\n","import count from \"../count.js\";\n\nexport default function thresholdSturges(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n}\n","import {slice} from \"./array.js\";\nimport bisect from \"./bisect.js\";\nimport constant from \"./constant.js\";\nimport extent from \"./extent.js\";\nimport identity from \"./identity.js\";\nimport nice from \"./nice.js\";\nimport ticks, {tickIncrement} from \"./ticks.js\";\nimport sturges from \"./threshold/sturges.js\";\n\nexport default function bin() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n step,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds, and nice the\n // default domain accordingly.\n if (!Array.isArray(tz)) {\n const max = x1, tn = +tz;\n if (domain === extent) [x0, x1] = nice(x0, x1, tn);\n tz = ticks(x0, x1, tn);\n\n // If the domain is aligned with the first tick (which it will by\n // default), then we can use quantization rather than bisection to bin\n // values, which is substantially faster.\n if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);\n\n // If the last threshold is coincident with the domain’s upper bound, the\n // last bin will be zero-width. If the default domain is used, and this\n // last threshold is coincident with the maximum input value, we can\n // extend the niced upper bound by one tick to ensure uniform bin widths;\n // otherwise, we simply remove the last threshold. Note that we don’t\n // coerce values or the domain to numbers, and thus must be careful to\n // compare order (>=) rather than strict equality (===)!\n if (tz[tz.length - 1] >= x1) {\n if (max >= x1 && domain === extent) {\n const step = tickIncrement(x0, x1, tn);\n if (isFinite(step)) {\n if (step > 0) {\n x1 = (Math.floor(x1 / step) + 1) * step;\n } else if (step < 0) {\n x1 = (Math.ceil(x1 * -step) + 1) / -step;\n }\n }\n } else {\n tz.pop();\n }\n }\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n if (isFinite(step)) {\n if (step > 0) {\n for (i = 0; i < n; ++i) {\n if ((x = values[i]) != null && x0 <= x && x <= x1) {\n bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);\n }\n }\n } else if (step < 0) {\n for (i = 0; i < n; ++i) {\n if ((x = values[i]) != null && x0 <= x && x <= x1) {\n const j = Math.floor((x0 - x) * step);\n bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding\n }\n }\n }\n } else {\n for (i = 0; i < n; ++i) {\n if ((x = values[i]) != null && x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function maxIndex(values, valueof) {\n let max;\n let maxIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n }\n return maxIndex;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function minIndex(values, valueof) {\n let min;\n let minIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n }\n return minIndex;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare) {\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function greatest(values, compare = ascending) {\n let max;\n let defined = false;\n if (compare.length === 1) {\n let maxValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, maxValue) > 0\n : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, max) > 0\n : compare(value, value) === 0) {\n max = value;\n defined = true;\n }\n }\n }\n return max;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return minIndex(values);\n if (p >= 1) return maxIndex(values);\n var n,\n i = Math.floor((n - 1) * p),\n order = (i, j) => ascendingDefined(values[i], values[j]),\n index = quickselect(Uint32Array.from(values, (_, i) => i), i, 0, n - 1, order);\n return greatest(index.subarray(0, i + 1), i => values[i]);\n}\n","import count from \"../count.js\";\nimport quantile from \"../quantile.js\";\n\nexport default function thresholdFreedmanDiaconis(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n}\n","import count from \"../count.js\";\nimport deviation from \"../deviation.js\";\n\nexport default function thresholdScott(values, min, max) {\n return Math.ceil((max - min) * Math.cbrt(count(values)) / (3.49 * deviation(values)));\n}\n","export default function mean(values, valueof) {\n let count = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n }\n if (count) return sum / count;\n}\n","import quantile, {quantileIndex} from \"./quantile.js\";\n\nexport default function median(values, valueof) {\n return quantile(values, 0.5, valueof);\n}\n\nexport function medianIndex(values, valueof) {\n return quantileIndex(values, 0.5, valueof);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","import {InternMap} from \"internmap\";\n\nexport default function mode(values, valueof) {\n const counts = new InternMap();\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && value >= value) {\n counts.set(value, (counts.get(value) || 0) + 1);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && value >= value) {\n counts.set(value, (counts.get(value) || 0) + 1);\n }\n }\n }\n let modeValue;\n let modeCount = 0;\n for (const [value, count] of counts) {\n if (count > modeCount) {\n modeCount = count;\n modeValue = value;\n }\n }\n return modeValue;\n}\n","export default function pairs(values, pairof = pair) {\n const pairs = [];\n let previous;\n let first = false;\n for (const value of values) {\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\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}\n","import ascending from \"./ascending.js\";\nimport {ascendingDefined, compareDefined} from \"./sort.js\";\n\nexport default function rank(values, valueof = ascending) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n let V = Array.from(values);\n const R = new Float64Array(V.length);\n if (valueof.length !== 2) V = V.map(valueof), valueof = ascending;\n const compareIndex = (i, j) => valueof(V[i], V[j]);\n let k, r;\n Uint32Array\n .from(V, (_, i) => i)\n .sort(valueof === ascending ? (i, j) => ascendingDefined(V[i], V[j]) : compareDefined(compareIndex))\n .forEach((j, i) => {\n const c = compareIndex(j, k === undefined ? j : k);\n if (c >= 0) {\n if (k === undefined || c > 0) k = j, r = i;\n R[j] = r;\n } else {\n R[j] = NaN;\n }\n });\n return R;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function least(values, compare = ascending) {\n let min;\n let defined = false;\n if (compare.length === 1) {\n let minValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, minValue) < 0\n : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, min) < 0\n : compare(value, value) === 0) {\n min = value;\n defined = true;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport minIndex from \"./minIndex.js\";\n\nexport default function leastIndex(values, compare = ascending) {\n if (compare.length === 1) return minIndex(values, compare);\n let minValue;\n let min = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (min < 0\n ? compare(value, value) === 0\n : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport maxIndex from \"./maxIndex.js\";\n\nexport default function greatestIndex(values, compare = ascending) {\n if (compare.length === 1) return maxIndex(values, compare);\n let maxValue;\n let max = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (max < 0\n ? compare(value, value) === 0\n : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n return max;\n}\n","import leastIndex from \"./leastIndex.js\";\n\nexport default function scan(values, compare) {\n const index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n}\n","export default shuffler(Math.random);\n\nexport function shuffler(random) {\n return function shuffle(array, i0 = 0, i1 = array.length) {\n let m = i1 - (i0 = +i0);\n while (m) {\n const i = random() * m-- | 0, t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n return array;\n };\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import min from \"./min.js\";\n\nexport default function transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import transpose from \"./transpose.js\";\n\nexport default function zip() {\n return transpose(arguments);\n}\n","export default function every(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (!test(value, ++index, values)) {\n return false;\n }\n }\n return true;\n}\n","export default function some(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n return true;\n }\n }\n return false;\n}\n","export default function filter(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n const array = [];\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n array.push(value);\n }\n }\n return array;\n}\n","export default function map(values, mapper) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n return Array.from(values, (value, index) => mapper(value, index, values));\n}\n","export default function reduce(values, reducer, value) {\n if (typeof reducer !== \"function\") throw new TypeError(\"reducer is not a function\");\n const iterator = values[Symbol.iterator]();\n let done, next, index = -1;\n if (arguments.length < 3) {\n ({done, value} = iterator.next());\n if (done) return;\n ++index;\n }\n while (({done, value: next} = iterator.next()), !done) {\n value = reducer(value, next, ++index, values);\n }\n return value;\n}\n","export default function reverse(values) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n return Array.from(values).reverse();\n}\n","import {InternSet} from \"internmap\";\n\nexport default function difference(values, ...others) {\n values = new InternSet(values);\n for (const other of others) {\n for (const value of other) {\n values.delete(value);\n }\n }\n return values;\n}\n","import {InternSet} from \"internmap\";\n\nexport default function disjoint(values, other) {\n const iterator = other[Symbol.iterator](), set = new InternSet();\n for (const v of values) {\n if (set.has(v)) return false;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) break;\n if (Object.is(v, value)) return false;\n set.add(value);\n }\n }\n return true;\n}\n","import {InternSet} from \"internmap\";\n\nexport default function intersection(values, ...others) {\n values = new InternSet(values);\n others = others.map(set);\n out: for (const value of values) {\n for (const other of others) {\n if (!other.has(value)) {\n values.delete(value);\n continue out;\n }\n }\n }\n return values;\n}\n\nfunction set(values) {\n return values instanceof InternSet ? values : new InternSet(values);\n}\n","export default function superset(values, other) {\n const iterator = values[Symbol.iterator](), set = new Set();\n for (const o of other) {\n const io = intern(o);\n if (set.has(io)) continue;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) return false;\n const ivalue = intern(value);\n set.add(ivalue);\n if (Object.is(io, ivalue)) break;\n }\n }\n return true;\n}\n\nfunction intern(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import superset from \"./superset.js\";\n\nexport default function subset(values, other) {\n return superset(other, values);\n}\n","import {InternSet} from \"internmap\";\n\nexport default function union(...others) {\n const set = new InternSet();\n for (const other of others) {\n for (const o of other) {\n set.add(o);\n }\n }\n return set;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: () => {}};\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 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 = \"\", 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 {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\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 if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\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 if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\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}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n 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}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\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\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(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\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\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}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.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;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\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 }\n\n // Put any non-null nodes that don’t fit into exit.\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;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\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 for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\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 }\n\n // Add any remaining nodes that were not bound to data to exit.\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\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\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 = arraylike(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\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // 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 for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\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}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\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 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}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\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};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\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);\n 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);\n 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\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\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);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\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];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\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(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\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()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\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\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\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\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\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}\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\n ? document.createElement(name)\n : 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\n ? creatorFixed\n : creatorInherit)(fullname);\n}\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}\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}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), 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}\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 = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\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 if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, 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 = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\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 for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\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;\n 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\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import 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\";\n\nexport var root = [null];\n\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 = {\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\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\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}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\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}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\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}\n","export default function() {\n\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}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\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}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\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}\n","import creator from \"../creator.js\";\n\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}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\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, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\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}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\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] + \"\\\\)$\");\n\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};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nexport default function color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\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])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : 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}\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}\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}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(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(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() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n 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 if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n 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 return new Hsl(h, s, l, o.opacity);\n}\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(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(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() {\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(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar Kn = 18,\n Xn = 0.950470, // D65 standard referent\n Yn = 1,\n Zn = 1.088830,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new Rgb(\n xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\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}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant\";\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}\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}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis\";\nimport basisClosed from \"./basisClosed\";\nimport nogamma, {gamma} from \"./color\";\n\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\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, color;\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 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);\n","import value from \"./value\";\n\nexport default function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","import {basis} from \"./basis\";\n\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}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n","import value from \"./value\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number\";\n\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, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // 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 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\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 }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import decompose, {identity} from \"./decompose\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\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}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb\";\nimport array from \"./array\";\nimport date from \"./date\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport string from \"./string\";\nimport constant from \"./constant\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\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}\n","import number from \"../number\";\nimport {parseCss, parseSvg} from \"./parse\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\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({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\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 q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\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({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\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({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\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 = [], // string constants and placeholders\n q = []; // number interpolators\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 return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n 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\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\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 i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\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) { 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 =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(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 if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\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 taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\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}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\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 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 return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\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;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // 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}\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}\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}\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;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\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);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // 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 if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\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 }\n\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 }\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 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 });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\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 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 }\n\n // Dispatch the end event.\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 for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\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}\n","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;\n\n // 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 if (tween !== tween0) {\n tween1 = tween0 = tween;\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;\n\n // 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 if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\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\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\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 return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\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\n : string0 === string00 ? interpolate0\n : 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\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), 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\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\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 function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\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 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}\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\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\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\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\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\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\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, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // 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 if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\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,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : 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\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n 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\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, 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;\n\n // 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 if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\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\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\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 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 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}\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 function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\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}\n","import {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\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\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]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\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}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\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 subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\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}\n","import {Transition} from \"./index.js\";\n\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}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\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}\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\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\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}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // 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 if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\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\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n 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}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","export default x => () => x;\n","export default function BrushEvent(type, {\n sourceEvent,\n target,\n selection,\n mode,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n selection: {value: selection, enumerable: true, configurable: true},\n mode: {value: mode, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export var abs = Math.abs;\nexport var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\nexport var epsilon = 1e-12;\n","import {max, tau} from \"./math.js\";\n\nfunction range(i, j) {\n return Array.from({length: j - i}, (_, k) => i + k);\n}\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n return chord(false, false);\n}\n\nexport function chordTranspose() {\n return chord(false, true);\n}\n\nexport function chordDirected() {\n return chord(true, false);\n}\n\nfunction chord(directed, transpose) {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = new Array(n),\n groupIndex = range(0, n),\n chords = new Array(n * n),\n groups = new Array(n),\n k = 0, dx;\n\n matrix = Float64Array.from({length: n * n}, transpose\n ? (_, i) => matrix[i % n][i / n | 0]\n : (_, i) => matrix[i / n | 0][i % n]);\n\n // Compute the scaling factor from value to angle in [0, 2pi].\n for (let i = 0; i < n; ++i) {\n let x = 0;\n for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];\n k += groupSums[i] = x;\n }\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the angles for each group and constituent chord.\n {\n let x = 0;\n if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));\n for (const i of groupIndex) {\n const x0 = x;\n if (directed) {\n const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));\n for (const j of subgroupIndex) {\n if (j < 0) {\n const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};\n } else {\n const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n } else {\n const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));\n for (const j of subgroupIndex) {\n let chord;\n if (i < j) {\n chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n } else {\n chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n if (i === j) chord.source = chord.target;\n }\n if (chord.source && chord.target && chord.source.value < chord.target.value) {\n const source = chord.source;\n chord.source = chord.target;\n chord.target = source;\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n }\n x += dx;\n }\n }\n\n // Remove empty chords.\n chords = Object.values(chords);\n chords.groups = groups;\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {abs, cos, epsilon, halfPi, sin} from \"./math.js\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nfunction defaultPadAngle() {\n return 0;\n}\n\nfunction defaultArrowheadRadius() {\n return 10;\n}\n\nfunction ribbon(headRadius) {\n var source = defaultSource,\n target = defaultTarget,\n sourceRadius = defaultRadius,\n targetRadius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n padAngle = defaultPadAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n s = source.apply(this, arguments),\n t = target.apply(this, arguments),\n ap = padAngle.apply(this, arguments) / 2,\n argv = slice.call(arguments),\n sr = +sourceRadius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n tr = +targetRadius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n if (ap > epsilon) {\n if (abs(sa1 - sa0) > ap * 2 + epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);\n else sa0 = sa1 = (sa0 + sa1) / 2;\n if (abs(ta1 - ta0) > ap * 2 + epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);\n else ta0 = ta1 = (ta0 + ta1) / 2;\n }\n\n context.moveTo(sr * cos(sa0), sr * sin(sa0));\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) {\n if (headRadius) {\n var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;\n context.quadraticCurveTo(0, 0, tr2 * cos(ta0), tr2 * sin(ta0));\n context.lineTo(tr * cos(ta2), tr * sin(ta2));\n context.lineTo(tr2 * cos(ta1), tr2 * sin(ta1));\n } else {\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n }\n context.quadraticCurveTo(0, 0, sr * cos(sa0), sr * sin(sa0));\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n if (headRadius) ribbon.headRadius = function(_) {\n return arguments.length ? (headRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : headRadius;\n };\n\n ribbon.radius = function(_) {\n return arguments.length ? (sourceRadius = targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.sourceRadius = function(_) {\n return arguments.length ? (sourceRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.targetRadius = function(_) {\n return arguments.length ? (targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : targetRadius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : padAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n\nexport default function() {\n return ribbon();\n}\n\nexport function ribbonArrow() {\n return ribbon(defaultArrowheadRadius);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\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}\\\\)$`);\n\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};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\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_formatHex8() {\n return this.rgb().formatHex8();\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)\n : 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}\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}\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}\n\ndefine(Rgb, rgb, extend(Color, {\n 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(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() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\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_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n 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 if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n 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 return new Hsl(h, s, l, o.opacity);\n}\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(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(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() {\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(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","export default x => () => x;\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","export default function() {}\n","import {extent, thresholdSturges, ticks, tickStep} from \"d3-array\";\nimport {slice} from \"./array.js\";\nimport ascending from \"./ascending.js\";\nimport area from \"./area.js\";\nimport constant from \"./constant.js\";\nimport contains from \"./contains.js\";\nimport noop from \"./noop.js\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n const e = extent(values), ts = tickStep(e[0], e[1], tz);\n tz = ticks(Math.floor(e[0] / ts) * ts, Math.floor(e[1] / ts - 1) * ts, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(value => contour(values, value));\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]);\n if (!(_0 >= 0 && _1 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","import {blur2, max, ticks} from \"d3-array\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport Contours from \"./contours.js\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function grid(data) {\n var values = new Float32Array(n * m),\n pow2k = Math.pow(2, -k),\n i = -1;\n\n for (const d of data) {\n var xi = (x(d, ++i, data) + o) * pow2k,\n yi = (y(d, i, data) + o) * pow2k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n var x0 = Math.floor(xi),\n y0 = Math.floor(yi),\n xt = xi - x0 - 0.5,\n yt = yi - y0 - 0.5;\n values[x0 + y0 * n] += (1 - xt) * (1 - yt) * wi;\n values[x0 + 1 + y0 * n] += xt * (1 - yt) * wi;\n values[x0 + 1 + (y0 + 1) * n] += xt * yt * wi;\n values[x0 + (y0 + 1) * n] += (1 - xt) * yt * wi;\n }\n }\n\n blur2({data: values, width: n, height: m}, r * pow2k);\n return values;\n }\n\n function density(data) {\n var values = grid(data),\n tz = threshold(values),\n pow4k = Math.pow(2, 2 * k);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = ticks(Number.MIN_VALUE, max(values) / pow4k, tz);\n }\n\n return Contours()\n .size([n, m])\n .thresholds(tz.map(d => d * pow4k))\n (values)\n .map((c, i) => (c.value = +tz[i], transform(c)));\n }\n\n density.contours = function(data) {\n var values = grid(data),\n contours = Contours().size([n, m]),\n pow4k = Math.pow(2, 2 * k),\n contour = value => {\n value = +value;\n var c = transform(contours.contour(values, value * pow4k));\n c.value = value; // preserve exact threshold value\n return c;\n };\n Object.defineProperty(contour, \"max\", {get: () => max(values) / pow4k});\n return contour;\n };\n\n function transform(geometry) {\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = +_[0], _1 = +_[1];\n if (!(_0 >= 0 && _1 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = (Math.sqrt(4 * _ * _ + 1) - 1) / 2, resize();\n };\n\n return density;\n}\n","export const epsilon = 1.1102230246251565e-16;\nexport const splitter = 134217729;\nexport const resulterrbound = (3 + 8 * epsilon) * epsilon;\n\n// fast_expansion_sum_zeroelim routine from oritinal code\nexport function sum(elen, e, flen, f, h) {\n let Q, Qnew, hh, bvirt;\n let enow = e[0];\n let fnow = f[0];\n let eindex = 0;\n let findex = 0;\n if ((fnow > enow) === (fnow > -enow)) {\n Q = enow;\n enow = e[++eindex];\n } else {\n Q = fnow;\n fnow = f[++findex];\n }\n let hindex = 0;\n if (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = enow + Q;\n hh = Q - (Qnew - enow);\n enow = e[++eindex];\n } else {\n Qnew = fnow + Q;\n hh = Q - (Qnew - fnow);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n while (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n } else {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n }\n while (eindex < elen) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n while (findex < flen) {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function sum_three(alen, a, blen, b, clen, c, tmp, out) {\n return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);\n}\n\n// scale_expansion_zeroelim routine from oritinal code\nexport function scale(elen, e, b, h) {\n let Q, sum, hh, product1, product0;\n let bvirt, c, ahi, alo, bhi, blo;\n\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n let enow = e[0];\n Q = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);\n let hindex = 0;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n for (let i = 1; i < elen; i++) {\n enow = e[i];\n product1 = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);\n sum = Q + product0;\n bvirt = sum - Q;\n hh = Q - (sum - bvirt) + (product0 - bvirt);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n Q = product1 + sum;\n hh = sum - (Q - product1);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function negate(elen, e) {\n for (let i = 0; i < elen; i++) e[i] = -e[i];\n return elen;\n}\n\nexport function estimate(elen, e) {\n let Q = e[0];\n for (let i = 1; i < elen; i++) Q += e[i];\n return Q;\n}\n\nexport function vec(n) {\n return new Float64Array(n);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';\n\nconst ccwerrboundA = (3 + 16 * epsilon) * epsilon;\nconst ccwerrboundB = (2 + 12 * epsilon) * epsilon;\nconst ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;\n\nconst B = vec(4);\nconst C1 = vec(8);\nconst C2 = vec(12);\nconst D = vec(16);\nconst u = vec(4);\n\nfunction orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {\n let acxtail, acytail, bcxtail, bcytail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const acx = ax - cx;\n const bcx = bx - cx;\n const acy = ay - cy;\n const bcy = by - cy;\n\n s1 = acx * bcy;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcx;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n B[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n B[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n B[2] = _j - (u3 - bvirt) + (_i - bvirt);\n B[3] = u3;\n\n let det = estimate(4, B);\n let errbound = ccwerrboundB * detsum;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - acx;\n acxtail = ax - (acx + bvirt) + (bvirt - cx);\n bvirt = bx - bcx;\n bcxtail = bx - (bcx + bvirt) + (bvirt - cx);\n bvirt = ay - acy;\n acytail = ay - (acy + bvirt) + (bvirt - cy);\n bvirt = by - bcy;\n bcytail = by - (bcy + bvirt) + (bvirt - cy);\n\n if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {\n return det;\n }\n\n errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);\n det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);\n if (det >= errbound || -det >= errbound) return det;\n\n s1 = acxtail * bcy;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcx;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C1len = sum(4, B, 4, u, C1);\n\n s1 = acx * bcytail;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcxtail;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C2len = sum(C1len, C1, 4, u, C2);\n\n s1 = acxtail * bcytail;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcxtail;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const Dlen = sum(C2len, C2, 4, u, D);\n\n return D[Dlen - 1];\n}\n\nexport function orient2d(ax, ay, bx, by, cx, cy) {\n const detleft = (ay - cy) * (bx - cx);\n const detright = (ax - cx) * (by - cy);\n const det = detleft - detright;\n\n if (detleft === 0 || detright === 0 || (detleft > 0) !== (detright > 0)) return det;\n\n const detsum = Math.abs(detleft + detright);\n if (Math.abs(det) >= ccwerrboundA * detsum) return det;\n\n return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);\n}\n\nexport function orient2dfast(ax, ay, bx, by, cx, cy) {\n return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum, scale} from './util.js';\n\nconst o3derrboundA = (7 + 56 * epsilon) * epsilon;\nconst o3derrboundB = (3 + 28 * epsilon) * epsilon;\nconst o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon;\n\nconst bc = vec(4);\nconst ca = vec(4);\nconst ab = vec(4);\nconst at_b = vec(4);\nconst at_c = vec(4);\nconst bt_c = vec(4);\nconst bt_a = vec(4);\nconst ct_a = vec(4);\nconst ct_b = vec(4);\nconst bct = vec(8);\nconst cat = vec(8);\nconst abt = vec(8);\nconst u = vec(4);\n\nconst _8 = vec(8);\nconst _8b = vec(8);\nconst _16 = vec(8);\nconst _12 = vec(12);\n\nlet fin = vec(192);\nlet fin2 = vec(192);\n\nfunction finadd(finlen, alen, a) {\n finlen = sum(finlen, fin, alen, a, fin2);\n const tmp = fin; fin = fin2; fin2 = tmp;\n return finlen;\n}\n\nfunction tailinit(xtail, ytail, ax, ay, bx, by, a, b) {\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate;\n if (xtail === 0) {\n if (ytail === 0) {\n a[0] = 0;\n b[0] = 0;\n return 1;\n } else {\n negate = -ytail;\n s1 = negate * ax;\n c = splitter * negate;\n ahi = c - (c - negate);\n alo = negate - ahi;\n c = splitter * ax;\n bhi = c - (c - ax);\n blo = ax - bhi;\n a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n a[1] = s1;\n s1 = ytail * bx;\n c = splitter * ytail;\n ahi = c - (c - ytail);\n alo = ytail - ahi;\n c = splitter * bx;\n bhi = c - (c - bx);\n blo = bx - bhi;\n b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n b[1] = s1;\n return 2;\n }\n } else {\n if (ytail === 0) {\n s1 = xtail * ay;\n c = splitter * xtail;\n ahi = c - (c - xtail);\n alo = xtail - ahi;\n c = splitter * ay;\n bhi = c - (c - ay);\n blo = ay - bhi;\n a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n a[1] = s1;\n negate = -xtail;\n s1 = negate * by;\n c = splitter * negate;\n ahi = c - (c - negate);\n alo = negate - ahi;\n c = splitter * by;\n bhi = c - (c - by);\n blo = by - bhi;\n b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n b[1] = s1;\n return 2;\n } else {\n s1 = xtail * ay;\n c = splitter * xtail;\n ahi = c - (c - xtail);\n alo = xtail - ahi;\n c = splitter * ay;\n bhi = c - (c - ay);\n blo = ay - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = ytail * ax;\n c = splitter * ytail;\n ahi = c - (c - ytail);\n alo = ytail - ahi;\n c = splitter * ax;\n bhi = c - (c - ax);\n blo = ax - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n a[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n a[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n a[2] = _j - (u3 - bvirt) + (_i - bvirt);\n a[3] = u3;\n s1 = ytail * bx;\n c = splitter * ytail;\n ahi = c - (c - ytail);\n alo = ytail - ahi;\n c = splitter * bx;\n bhi = c - (c - bx);\n blo = bx - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = xtail * by;\n c = splitter * xtail;\n ahi = c - (c - xtail);\n alo = xtail - ahi;\n c = splitter * by;\n bhi = c - (c - by);\n blo = by - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n b[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n b[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n b[2] = _j - (u3 - bvirt) + (_i - bvirt);\n b[3] = u3;\n return 4;\n }\n }\n}\n\nfunction tailadd(finlen, a, b, k, z) {\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3;\n s1 = a * b;\n c = splitter * a;\n ahi = c - (c - a);\n alo = a - ahi;\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n c = splitter * k;\n bhi = c - (c - k);\n blo = k - bhi;\n _i = s0 * k;\n c = splitter * s0;\n ahi = c - (c - s0);\n alo = s0 - ahi;\n u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);\n _j = s1 * k;\n c = splitter * s1;\n ahi = c - (c - s1);\n alo = s1 - ahi;\n _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);\n _k = _i + _0;\n bvirt = _k - _i;\n u[1] = _i - (_k - bvirt) + (_0 - bvirt);\n u3 = _j + _k;\n u[2] = _k - (u3 - _j);\n u[3] = u3;\n finlen = finadd(finlen, 4, u);\n if (z !== 0) {\n c = splitter * z;\n bhi = c - (c - z);\n blo = z - bhi;\n _i = s0 * z;\n c = splitter * s0;\n ahi = c - (c - s0);\n alo = s0 - ahi;\n u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);\n _j = s1 * z;\n c = splitter * s1;\n ahi = c - (c - s1);\n alo = s1 - ahi;\n _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);\n _k = _i + _0;\n bvirt = _k - _i;\n u[1] = _i - (_k - bvirt) + (_0 - bvirt);\n u3 = _j + _k;\n u[2] = _k - (u3 - _j);\n u[3] = u3;\n finlen = finadd(finlen, 4, u);\n }\n return finlen;\n}\n\nfunction orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) {\n let finlen;\n let adxtail, bdxtail, cdxtail;\n let adytail, bdytail, cdytail;\n let adztail, bdztail, cdztail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3;\n\n const adx = ax - dx;\n const bdx = bx - dx;\n const cdx = cx - dx;\n const ady = ay - dy;\n const bdy = by - dy;\n const cdy = cy - dy;\n const adz = az - dz;\n const bdz = bz - dz;\n const cdz = cz - dz;\n\n s1 = bdx * cdy;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n c = splitter * cdy;\n bhi = c - (c - cdy);\n blo = cdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cdx * bdy;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n c = splitter * bdy;\n bhi = c - (c - bdy);\n blo = bdy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bc[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bc[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n bc[2] = _j - (u3 - bvirt) + (_i - bvirt);\n bc[3] = u3;\n s1 = cdx * ady;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n c = splitter * ady;\n bhi = c - (c - ady);\n blo = ady - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = adx * cdy;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n c = splitter * cdy;\n bhi = c - (c - cdy);\n blo = cdy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ca[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ca[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ca[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ca[3] = u3;\n s1 = adx * bdy;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n c = splitter * bdy;\n bhi = c - (c - bdy);\n blo = bdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bdx * ady;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n c = splitter * ady;\n bhi = c - (c - ady);\n blo = ady - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ab[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ab[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ab[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ab[3] = u3;\n\n finlen = sum(\n sum(\n scale(4, bc, adz, _8), _8,\n scale(4, ca, bdz, _8b), _8b, _16), _16,\n scale(4, ab, cdz, _8), _8, fin);\n\n let det = estimate(finlen, fin);\n let errbound = o3derrboundB * permanent;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - adx;\n adxtail = ax - (adx + bvirt) + (bvirt - dx);\n bvirt = bx - bdx;\n bdxtail = bx - (bdx + bvirt) + (bvirt - dx);\n bvirt = cx - cdx;\n cdxtail = cx - (cdx + bvirt) + (bvirt - dx);\n bvirt = ay - ady;\n adytail = ay - (ady + bvirt) + (bvirt - dy);\n bvirt = by - bdy;\n bdytail = by - (bdy + bvirt) + (bvirt - dy);\n bvirt = cy - cdy;\n cdytail = cy - (cdy + bvirt) + (bvirt - dy);\n bvirt = az - adz;\n adztail = az - (adz + bvirt) + (bvirt - dz);\n bvirt = bz - bdz;\n bdztail = bz - (bdz + bvirt) + (bvirt - dz);\n bvirt = cz - cdz;\n cdztail = cz - (cdz + bvirt) + (bvirt - dz);\n\n if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 &&\n adytail === 0 && bdytail === 0 && cdytail === 0 &&\n adztail === 0 && bdztail === 0 && cdztail === 0) {\n return det;\n }\n\n errbound = o3derrboundC * permanent + resulterrbound * Math.abs(det);\n det +=\n adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) +\n bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) +\n cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx);\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c);\n const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);\n const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);\n\n const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct);\n finlen = finadd(finlen, scale(bctlen, bct, adz, _16), _16);\n\n const catlen = sum(ct_len, ct_a, at_len, at_c, cat);\n finlen = finadd(finlen, scale(catlen, cat, bdz, _16), _16);\n\n const abtlen = sum(at_len, at_b, bt_len, bt_a, abt);\n finlen = finadd(finlen, scale(abtlen, abt, cdz, _16), _16);\n\n if (adztail !== 0) {\n finlen = finadd(finlen, scale(4, bc, adztail, _12), _12);\n finlen = finadd(finlen, scale(bctlen, bct, adztail, _16), _16);\n }\n if (bdztail !== 0) {\n finlen = finadd(finlen, scale(4, ca, bdztail, _12), _12);\n finlen = finadd(finlen, scale(catlen, cat, bdztail, _16), _16);\n }\n if (cdztail !== 0) {\n finlen = finadd(finlen, scale(4, ab, cdztail, _12), _12);\n finlen = finadd(finlen, scale(abtlen, abt, cdztail, _16), _16);\n }\n\n if (adxtail !== 0) {\n if (bdytail !== 0) {\n finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail);\n }\n if (cdytail !== 0) {\n finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail);\n }\n }\n if (bdxtail !== 0) {\n if (cdytail !== 0) {\n finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail);\n }\n if (adytail !== 0) {\n finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail);\n }\n }\n if (cdxtail !== 0) {\n if (adytail !== 0) {\n finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail);\n }\n if (bdytail !== 0) {\n finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail);\n }\n }\n\n return fin[finlen - 1];\n}\n\nexport function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {\n const adx = ax - dx;\n const bdx = bx - dx;\n const cdx = cx - dx;\n const ady = ay - dy;\n const bdy = by - dy;\n const cdy = cy - dy;\n const adz = az - dz;\n const bdz = bz - dz;\n const cdz = cz - dz;\n\n const bdxcdy = bdx * cdy;\n const cdxbdy = cdx * bdy;\n\n const cdxady = cdx * ady;\n const adxcdy = adx * cdy;\n\n const adxbdy = adx * bdy;\n const bdxady = bdx * ady;\n\n const det =\n adz * (bdxcdy - cdxbdy) +\n bdz * (cdxady - adxcdy) +\n cdz * (adxbdy - bdxady);\n\n const permanent =\n (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) +\n (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) +\n (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);\n\n const errbound = o3derrboundA * permanent;\n if (det > errbound || -det > errbound) {\n return det;\n }\n\n return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent);\n}\n\nexport function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {\n const adx = ax - dx;\n const bdx = bx - dx;\n const cdx = cx - dx;\n const ady = ay - dy;\n const bdy = by - dy;\n const cdy = cy - dy;\n const adz = az - dz;\n const bdz = bz - dz;\n const cdz = cz - dz;\n\n return adx * (bdy * cdz - bdz * cdy) +\n bdx * (cdy * adz - cdz * ady) +\n cdx * (ady * bdz - adz * bdy);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum, sum_three, scale} from './util.js';\n\nconst iccerrboundA = (10 + 96 * epsilon) * epsilon;\nconst iccerrboundB = (4 + 48 * epsilon) * epsilon;\nconst iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;\n\nconst bc = vec(4);\nconst ca = vec(4);\nconst ab = vec(4);\nconst aa = vec(4);\nconst bb = vec(4);\nconst cc = vec(4);\nconst u = vec(4);\nconst v = vec(4);\nconst axtbc = vec(8);\nconst aytbc = vec(8);\nconst bxtca = vec(8);\nconst bytca = vec(8);\nconst cxtab = vec(8);\nconst cytab = vec(8);\nconst abt = vec(8);\nconst bct = vec(8);\nconst cat = vec(8);\nconst abtt = vec(4);\nconst bctt = vec(4);\nconst catt = vec(4);\n\nconst _8 = vec(8);\nconst _16 = vec(16);\nconst _16b = vec(16);\nconst _16c = vec(16);\nconst _32 = vec(32);\nconst _32b = vec(32);\nconst _48 = vec(48);\nconst _64 = vec(64);\n\nlet fin = vec(1152);\nlet fin2 = vec(1152);\n\nfunction finadd(finlen, a, alen) {\n finlen = sum(finlen, fin, a, alen, fin2);\n const tmp = fin; fin = fin2; fin2 = tmp;\n return finlen;\n}\n\nfunction incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {\n let finlen;\n let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;\n let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;\n let abtlen, bctlen, catlen;\n let abttlen, bcttlen, cattlen;\n let n1, n0;\n\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const adx = ax - dx;\n const bdx = bx - dx;\n const cdx = cx - dx;\n const ady = ay - dy;\n const bdy = by - dy;\n const cdy = cy - dy;\n\n s1 = bdx * cdy;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n c = splitter * cdy;\n bhi = c - (c - cdy);\n blo = cdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cdx * bdy;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n c = splitter * bdy;\n bhi = c - (c - bdy);\n blo = bdy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bc[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bc[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n bc[2] = _j - (u3 - bvirt) + (_i - bvirt);\n bc[3] = u3;\n s1 = cdx * ady;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n c = splitter * ady;\n bhi = c - (c - ady);\n blo = ady - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = adx * cdy;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n c = splitter * cdy;\n bhi = c - (c - cdy);\n blo = cdy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ca[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ca[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ca[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ca[3] = u3;\n s1 = adx * bdy;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n c = splitter * bdy;\n bhi = c - (c - bdy);\n blo = bdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bdx * ady;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n c = splitter * ady;\n bhi = c - (c - ady);\n blo = ady - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ab[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ab[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ab[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ab[3] = u3;\n\n finlen = sum(\n sum(\n sum(\n scale(scale(4, bc, adx, _8), _8, adx, _16), _16,\n scale(scale(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32,\n sum(\n scale(scale(4, ca, bdx, _8), _8, bdx, _16), _16,\n scale(scale(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64,\n sum(\n scale(scale(4, ab, cdx, _8), _8, cdx, _16), _16,\n scale(scale(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin);\n\n let det = estimate(finlen, fin);\n let errbound = iccerrboundB * permanent;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - adx;\n adxtail = ax - (adx + bvirt) + (bvirt - dx);\n bvirt = ay - ady;\n adytail = ay - (ady + bvirt) + (bvirt - dy);\n bvirt = bx - bdx;\n bdxtail = bx - (bdx + bvirt) + (bvirt - dx);\n bvirt = by - bdy;\n bdytail = by - (bdy + bvirt) + (bvirt - dy);\n bvirt = cx - cdx;\n cdxtail = cx - (cdx + bvirt) + (bvirt - dx);\n bvirt = cy - cdy;\n cdytail = cy - (cdy + bvirt) + (bvirt - dy);\n if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {\n return det;\n }\n\n errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det);\n det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) +\n 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) +\n ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) +\n 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) +\n ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) +\n 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));\n\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {\n s1 = adx * adx;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);\n t1 = ady * ady;\n c = splitter * ady;\n ahi = c - (c - ady);\n alo = ady - ahi;\n t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);\n _i = s0 + t0;\n bvirt = _i - s0;\n aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n aa[2] = _j - (u3 - bvirt) + (_i - bvirt);\n aa[3] = u3;\n }\n if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {\n s1 = bdx * bdx;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);\n t1 = bdy * bdy;\n c = splitter * bdy;\n ahi = c - (c - bdy);\n alo = bdy - ahi;\n t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);\n _i = s0 + t0;\n bvirt = _i - s0;\n bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n bb[2] = _j - (u3 - bvirt) + (_i - bvirt);\n bb[3] = u3;\n }\n if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {\n s1 = cdx * cdx;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);\n t1 = cdy * cdy;\n c = splitter * cdy;\n ahi = c - (c - cdy);\n alo = cdy - ahi;\n t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);\n _i = s0 + t0;\n bvirt = _i - s0;\n cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n cc[2] = _j - (u3 - bvirt) + (_i - bvirt);\n cc[3] = u3;\n }\n\n if (adxtail !== 0) {\n axtbclen = scale(4, bc, adxtail, axtbc);\n finlen = finadd(finlen, sum_three(\n scale(axtbclen, axtbc, 2 * adx, _16), _16,\n scale(scale(4, cc, adxtail, _8), _8, bdy, _16b), _16b,\n scale(scale(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48);\n }\n if (adytail !== 0) {\n aytbclen = scale(4, bc, adytail, aytbc);\n finlen = finadd(finlen, sum_three(\n scale(aytbclen, aytbc, 2 * ady, _16), _16,\n scale(scale(4, bb, adytail, _8), _8, cdx, _16b), _16b,\n scale(scale(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48);\n }\n if (bdxtail !== 0) {\n bxtcalen = scale(4, ca, bdxtail, bxtca);\n finlen = finadd(finlen, sum_three(\n scale(bxtcalen, bxtca, 2 * bdx, _16), _16,\n scale(scale(4, aa, bdxtail, _8), _8, cdy, _16b), _16b,\n scale(scale(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48);\n }\n if (bdytail !== 0) {\n bytcalen = scale(4, ca, bdytail, bytca);\n finlen = finadd(finlen, sum_three(\n scale(bytcalen, bytca, 2 * bdy, _16), _16,\n scale(scale(4, cc, bdytail, _8), _8, adx, _16b), _16b,\n scale(scale(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48);\n }\n if (cdxtail !== 0) {\n cxtablen = scale(4, ab, cdxtail, cxtab);\n finlen = finadd(finlen, sum_three(\n scale(cxtablen, cxtab, 2 * cdx, _16), _16,\n scale(scale(4, bb, cdxtail, _8), _8, ady, _16b), _16b,\n scale(scale(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48);\n }\n if (cdytail !== 0) {\n cytablen = scale(4, ab, cdytail, cytab);\n finlen = finadd(finlen, sum_three(\n scale(cytablen, cytab, 2 * cdy, _16), _16,\n scale(scale(4, aa, cdytail, _8), _8, bdx, _16b), _16b,\n scale(scale(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48);\n }\n\n if (adxtail !== 0 || adytail !== 0) {\n if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {\n s1 = bdxtail * cdy;\n c = splitter * bdxtail;\n ahi = c - (c - bdxtail);\n alo = bdxtail - ahi;\n c = splitter * cdy;\n bhi = c - (c - cdy);\n blo = cdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bdx * cdytail;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n c = splitter * cdytail;\n bhi = c - (c - cdytail);\n blo = cdytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 + t0;\n bvirt = _i - s0;\n u[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n u[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n s1 = cdxtail * -bdy;\n c = splitter * cdxtail;\n ahi = c - (c - cdxtail);\n alo = cdxtail - ahi;\n c = splitter * -bdy;\n bhi = c - (c - -bdy);\n blo = -bdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cdx * -bdytail;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n c = splitter * -bdytail;\n bhi = c - (c - -bdytail);\n blo = -bdytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 + t0;\n bvirt = _i - s0;\n v[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n v[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n v[2] = _j - (u3 - bvirt) + (_i - bvirt);\n v[3] = u3;\n bctlen = sum(4, u, 4, v, bct);\n s1 = bdxtail * cdytail;\n c = splitter * bdxtail;\n ahi = c - (c - bdxtail);\n alo = bdxtail - ahi;\n c = splitter * cdytail;\n bhi = c - (c - cdytail);\n blo = cdytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cdxtail * bdytail;\n c = splitter * cdxtail;\n ahi = c - (c - cdxtail);\n alo = cdxtail - ahi;\n c = splitter * bdytail;\n bhi = c - (c - bdytail);\n blo = bdytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);\n bctt[3] = u3;\n bcttlen = 4;\n } else {\n bct[0] = 0;\n bctlen = 1;\n bctt[0] = 0;\n bcttlen = 1;\n }\n if (adxtail !== 0) {\n const len = scale(bctlen, bct, adxtail, _16c);\n finlen = finadd(finlen, sum(\n scale(axtbclen, axtbc, adxtail, _16), _16,\n scale(len, _16c, 2 * adx, _32), _32, _48), _48);\n\n const len2 = scale(bcttlen, bctt, adxtail, _8);\n finlen = finadd(finlen, sum_three(\n scale(len2, _8, 2 * adx, _16), _16,\n scale(len2, _8, adxtail, _16b), _16b,\n scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);\n\n if (bdytail !== 0) {\n finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8), _8, bdytail, _16), _16);\n }\n if (cdytail !== 0) {\n finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8), _8, cdytail, _16), _16);\n }\n }\n if (adytail !== 0) {\n const len = scale(bctlen, bct, adytail, _16c);\n finlen = finadd(finlen, sum(\n scale(aytbclen, aytbc, adytail, _16), _16,\n scale(len, _16c, 2 * ady, _32), _32, _48), _48);\n\n const len2 = scale(bcttlen, bctt, adytail, _8);\n finlen = finadd(finlen, sum_three(\n scale(len2, _8, 2 * ady, _16), _16,\n scale(len2, _8, adytail, _16b), _16b,\n scale(len, _16c, adytail, _32), _32, _32b, _64), _64);\n }\n }\n if (bdxtail !== 0 || bdytail !== 0) {\n if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {\n s1 = cdxtail * ady;\n c = splitter * cdxtail;\n ahi = c - (c - cdxtail);\n alo = cdxtail - ahi;\n c = splitter * ady;\n bhi = c - (c - ady);\n blo = ady - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cdx * adytail;\n c = splitter * cdx;\n ahi = c - (c - cdx);\n alo = cdx - ahi;\n c = splitter * adytail;\n bhi = c - (c - adytail);\n blo = adytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 + t0;\n bvirt = _i - s0;\n u[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n u[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n n1 = -cdy;\n n0 = -cdytail;\n s1 = adxtail * n1;\n c = splitter * adxtail;\n ahi = c - (c - adxtail);\n alo = adxtail - ahi;\n c = splitter * n1;\n bhi = c - (c - n1);\n blo = n1 - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = adx * n0;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n c = splitter * n0;\n bhi = c - (c - n0);\n blo = n0 - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 + t0;\n bvirt = _i - s0;\n v[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n v[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n v[2] = _j - (u3 - bvirt) + (_i - bvirt);\n v[3] = u3;\n catlen = sum(4, u, 4, v, cat);\n s1 = cdxtail * adytail;\n c = splitter * cdxtail;\n ahi = c - (c - cdxtail);\n alo = cdxtail - ahi;\n c = splitter * adytail;\n bhi = c - (c - adytail);\n blo = adytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = adxtail * cdytail;\n c = splitter * adxtail;\n ahi = c - (c - adxtail);\n alo = adxtail - ahi;\n c = splitter * cdytail;\n bhi = c - (c - cdytail);\n blo = cdytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n catt[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n catt[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n catt[2] = _j - (u3 - bvirt) + (_i - bvirt);\n catt[3] = u3;\n cattlen = 4;\n } else {\n cat[0] = 0;\n catlen = 1;\n catt[0] = 0;\n cattlen = 1;\n }\n if (bdxtail !== 0) {\n const len = scale(catlen, cat, bdxtail, _16c);\n finlen = finadd(finlen, sum(\n scale(bxtcalen, bxtca, bdxtail, _16), _16,\n scale(len, _16c, 2 * bdx, _32), _32, _48), _48);\n\n const len2 = scale(cattlen, catt, bdxtail, _8);\n finlen = finadd(finlen, sum_three(\n scale(len2, _8, 2 * bdx, _16), _16,\n scale(len2, _8, bdxtail, _16b), _16b,\n scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);\n\n if (cdytail !== 0) {\n finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8), _8, cdytail, _16), _16);\n }\n if (adytail !== 0) {\n finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8), _8, adytail, _16), _16);\n }\n }\n if (bdytail !== 0) {\n const len = scale(catlen, cat, bdytail, _16c);\n finlen = finadd(finlen, sum(\n scale(bytcalen, bytca, bdytail, _16), _16,\n scale(len, _16c, 2 * bdy, _32), _32, _48), _48);\n\n const len2 = scale(cattlen, catt, bdytail, _8);\n finlen = finadd(finlen, sum_three(\n scale(len2, _8, 2 * bdy, _16), _16,\n scale(len2, _8, bdytail, _16b), _16b,\n scale(len, _16c, bdytail, _32), _32, _32b, _64), _64);\n }\n }\n if (cdxtail !== 0 || cdytail !== 0) {\n if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {\n s1 = adxtail * bdy;\n c = splitter * adxtail;\n ahi = c - (c - adxtail);\n alo = adxtail - ahi;\n c = splitter * bdy;\n bhi = c - (c - bdy);\n blo = bdy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = adx * bdytail;\n c = splitter * adx;\n ahi = c - (c - adx);\n alo = adx - ahi;\n c = splitter * bdytail;\n bhi = c - (c - bdytail);\n blo = bdytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 + t0;\n bvirt = _i - s0;\n u[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n u[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n n1 = -ady;\n n0 = -adytail;\n s1 = bdxtail * n1;\n c = splitter * bdxtail;\n ahi = c - (c - bdxtail);\n alo = bdxtail - ahi;\n c = splitter * n1;\n bhi = c - (c - n1);\n blo = n1 - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bdx * n0;\n c = splitter * bdx;\n ahi = c - (c - bdx);\n alo = bdx - ahi;\n c = splitter * n0;\n bhi = c - (c - n0);\n blo = n0 - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 + t0;\n bvirt = _i - s0;\n v[0] = s0 - (_i - bvirt) + (t0 - bvirt);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 + t1;\n bvirt = _i - _0;\n v[1] = _0 - (_i - bvirt) + (t1 - bvirt);\n u3 = _j + _i;\n bvirt = u3 - _j;\n v[2] = _j - (u3 - bvirt) + (_i - bvirt);\n v[3] = u3;\n abtlen = sum(4, u, 4, v, abt);\n s1 = adxtail * bdytail;\n c = splitter * adxtail;\n ahi = c - (c - adxtail);\n alo = adxtail - ahi;\n c = splitter * bdytail;\n bhi = c - (c - bdytail);\n blo = bdytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bdxtail * adytail;\n c = splitter * bdxtail;\n ahi = c - (c - bdxtail);\n alo = bdxtail - ahi;\n c = splitter * adytail;\n bhi = c - (c - adytail);\n blo = adytail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);\n abtt[3] = u3;\n abttlen = 4;\n } else {\n abt[0] = 0;\n abtlen = 1;\n abtt[0] = 0;\n abttlen = 1;\n }\n if (cdxtail !== 0) {\n const len = scale(abtlen, abt, cdxtail, _16c);\n finlen = finadd(finlen, sum(\n scale(cxtablen, cxtab, cdxtail, _16), _16,\n scale(len, _16c, 2 * cdx, _32), _32, _48), _48);\n\n const len2 = scale(abttlen, abtt, cdxtail, _8);\n finlen = finadd(finlen, sum_three(\n scale(len2, _8, 2 * cdx, _16), _16,\n scale(len2, _8, cdxtail, _16b), _16b,\n scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);\n\n if (adytail !== 0) {\n finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8), _8, adytail, _16), _16);\n }\n if (bdytail !== 0) {\n finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8), _8, bdytail, _16), _16);\n }\n }\n if (cdytail !== 0) {\n const len = scale(abtlen, abt, cdytail, _16c);\n finlen = finadd(finlen, sum(\n scale(cytablen, cytab, cdytail, _16), _16,\n scale(len, _16c, 2 * cdy, _32), _32, _48), _48);\n\n const len2 = scale(abttlen, abtt, cdytail, _8);\n finlen = finadd(finlen, sum_three(\n scale(len2, _8, 2 * cdy, _16), _16,\n scale(len2, _8, cdytail, _16b), _16b,\n scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);\n }\n }\n\n return fin[finlen - 1];\n}\n\nexport function incircle(ax, ay, bx, by, cx, cy, dx, dy) {\n const adx = ax - dx;\n const bdx = bx - dx;\n const cdx = cx - dx;\n const ady = ay - dy;\n const bdy = by - dy;\n const cdy = cy - dy;\n\n const bdxcdy = bdx * cdy;\n const cdxbdy = cdx * bdy;\n const alift = adx * adx + ady * ady;\n\n const cdxady = cdx * ady;\n const adxcdy = adx * cdy;\n const blift = bdx * bdx + bdy * bdy;\n\n const adxbdy = adx * bdy;\n const bdxady = bdx * ady;\n const clift = cdx * cdx + cdy * cdy;\n\n const det =\n alift * (bdxcdy - cdxbdy) +\n blift * (cdxady - adxcdy) +\n clift * (adxbdy - bdxady);\n\n const permanent =\n (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift +\n (Math.abs(cdxady) + Math.abs(adxcdy)) * blift +\n (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;\n\n const errbound = iccerrboundA * permanent;\n\n if (det > errbound || -det > errbound) {\n return det;\n }\n return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);\n}\n\nexport function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {\n const adx = ax - dx;\n const ady = ay - dy;\n const bdx = bx - dx;\n const bdy = by - dy;\n const cdx = cx - dx;\n const cdy = cy - dy;\n\n const abdet = adx * bdy - bdx * ady;\n const bcdet = bdx * cdy - cdx * bdy;\n const cadet = cdx * ady - adx * cdy;\n const alift = adx * adx + ady * ady;\n const blift = bdx * bdx + bdy * bdy;\n const clift = cdx * cdx + cdy * cdy;\n\n return alift * bcdet + blift * cadet + clift * abdet;\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum, sum_three, scale, negate} from './util.js';\n\nconst isperrboundA = (16 + 224 * epsilon) * epsilon;\nconst isperrboundB = (5 + 72 * epsilon) * epsilon;\nconst isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;\n\nconst ab = vec(4);\nconst bc = vec(4);\nconst cd = vec(4);\nconst de = vec(4);\nconst ea = vec(4);\nconst ac = vec(4);\nconst bd = vec(4);\nconst ce = vec(4);\nconst da = vec(4);\nconst eb = vec(4);\n\nconst abc = vec(24);\nconst bcd = vec(24);\nconst cde = vec(24);\nconst dea = vec(24);\nconst eab = vec(24);\nconst abd = vec(24);\nconst bce = vec(24);\nconst cda = vec(24);\nconst deb = vec(24);\nconst eac = vec(24);\n\nconst adet = vec(1152);\nconst bdet = vec(1152);\nconst cdet = vec(1152);\nconst ddet = vec(1152);\nconst edet = vec(1152);\nconst abdet = vec(2304);\nconst cddet = vec(2304);\nconst cdedet = vec(3456);\nconst deter = vec(5760);\n\nconst _8 = vec(8);\nconst _8b = vec(8);\nconst _8c = vec(8);\nconst _16 = vec(16);\nconst _24 = vec(24);\nconst _48 = vec(48);\nconst _48b = vec(48);\nconst _96 = vec(96);\nconst _192 = vec(192);\nconst _384x = vec(384);\nconst _384y = vec(384);\nconst _384z = vec(384);\nconst _768 = vec(768);\n\nfunction sum_three_scale(a, b, c, az, bz, cz, out) {\n return sum_three(\n scale(4, a, az, _8), _8,\n scale(4, b, bz, _8b), _8b,\n scale(4, c, cz, _8c), _8c, _16, out);\n}\n\nfunction liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {\n const len = sum(\n sum(alen, a, blen, b, _48), _48,\n negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);\n\n return sum_three(\n scale(scale(len, _96, x, _192), _192, x, _384x), _384x,\n scale(scale(len, _96, y, _192), _192, y, _384y), _384y,\n scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out);\n}\n\nfunction insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n s1 = ax * by;\n c = splitter * ax;\n ahi = c - (c - ax);\n alo = ax - ahi;\n c = splitter * by;\n bhi = c - (c - by);\n blo = by - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bx * ay;\n c = splitter * bx;\n ahi = c - (c - bx);\n alo = bx - ahi;\n c = splitter * ay;\n bhi = c - (c - ay);\n blo = ay - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ab[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ab[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ab[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ab[3] = u3;\n s1 = bx * cy;\n c = splitter * bx;\n ahi = c - (c - bx);\n alo = bx - ahi;\n c = splitter * cy;\n bhi = c - (c - cy);\n blo = cy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cx * by;\n c = splitter * cx;\n ahi = c - (c - cx);\n alo = cx - ahi;\n c = splitter * by;\n bhi = c - (c - by);\n blo = by - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bc[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bc[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n bc[2] = _j - (u3 - bvirt) + (_i - bvirt);\n bc[3] = u3;\n s1 = cx * dy;\n c = splitter * cx;\n ahi = c - (c - cx);\n alo = cx - ahi;\n c = splitter * dy;\n bhi = c - (c - dy);\n blo = dy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = dx * cy;\n c = splitter * dx;\n ahi = c - (c - dx);\n alo = dx - ahi;\n c = splitter * cy;\n bhi = c - (c - cy);\n blo = cy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n cd[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n cd[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n cd[2] = _j - (u3 - bvirt) + (_i - bvirt);\n cd[3] = u3;\n s1 = dx * ey;\n c = splitter * dx;\n ahi = c - (c - dx);\n alo = dx - ahi;\n c = splitter * ey;\n bhi = c - (c - ey);\n blo = ey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = ex * dy;\n c = splitter * ex;\n ahi = c - (c - ex);\n alo = ex - ahi;\n c = splitter * dy;\n bhi = c - (c - dy);\n blo = dy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n de[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n de[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n de[2] = _j - (u3 - bvirt) + (_i - bvirt);\n de[3] = u3;\n s1 = ex * ay;\n c = splitter * ex;\n ahi = c - (c - ex);\n alo = ex - ahi;\n c = splitter * ay;\n bhi = c - (c - ay);\n blo = ay - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = ax * ey;\n c = splitter * ax;\n ahi = c - (c - ax);\n alo = ax - ahi;\n c = splitter * ey;\n bhi = c - (c - ey);\n blo = ey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ea[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ea[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ea[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ea[3] = u3;\n s1 = ax * cy;\n c = splitter * ax;\n ahi = c - (c - ax);\n alo = ax - ahi;\n c = splitter * cy;\n bhi = c - (c - cy);\n blo = cy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cx * ay;\n c = splitter * cx;\n ahi = c - (c - cx);\n alo = cx - ahi;\n c = splitter * ay;\n bhi = c - (c - ay);\n blo = ay - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ac[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ac[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ac[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ac[3] = u3;\n s1 = bx * dy;\n c = splitter * bx;\n ahi = c - (c - bx);\n alo = bx - ahi;\n c = splitter * dy;\n bhi = c - (c - dy);\n blo = dy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = dx * by;\n c = splitter * dx;\n ahi = c - (c - dx);\n alo = dx - ahi;\n c = splitter * by;\n bhi = c - (c - by);\n blo = by - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bd[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bd[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n bd[2] = _j - (u3 - bvirt) + (_i - bvirt);\n bd[3] = u3;\n s1 = cx * ey;\n c = splitter * cx;\n ahi = c - (c - cx);\n alo = cx - ahi;\n c = splitter * ey;\n bhi = c - (c - ey);\n blo = ey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = ex * cy;\n c = splitter * ex;\n ahi = c - (c - ex);\n alo = ex - ahi;\n c = splitter * cy;\n bhi = c - (c - cy);\n blo = cy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ce[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ce[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n ce[2] = _j - (u3 - bvirt) + (_i - bvirt);\n ce[3] = u3;\n s1 = dx * ay;\n c = splitter * dx;\n ahi = c - (c - dx);\n alo = dx - ahi;\n c = splitter * ay;\n bhi = c - (c - ay);\n blo = ay - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = ax * dy;\n c = splitter * ax;\n ahi = c - (c - ax);\n alo = ax - ahi;\n c = splitter * dy;\n bhi = c - (c - dy);\n blo = dy - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n da[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n da[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n da[2] = _j - (u3 - bvirt) + (_i - bvirt);\n da[3] = u3;\n s1 = ex * by;\n c = splitter * ex;\n ahi = c - (c - ex);\n alo = ex - ahi;\n c = splitter * by;\n bhi = c - (c - by);\n blo = by - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bx * ey;\n c = splitter * bx;\n ahi = c - (c - bx);\n alo = bx - ahi;\n c = splitter * ey;\n bhi = c - (c - ey);\n blo = ey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n eb[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n eb[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n eb[2] = _j - (u3 - bvirt) + (_i - bvirt);\n eb[3] = u3;\n\n const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);\n const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);\n const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);\n const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);\n const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);\n const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);\n const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);\n const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);\n const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);\n const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);\n\n const deterlen = sum_three(\n liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet,\n liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet,\n sum_three(\n liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet,\n liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet,\n liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);\n\n return deter[deterlen - 1];\n}\n\nconst xdet = vec(96);\nconst ydet = vec(96);\nconst zdet = vec(96);\nconst fin = vec(1152);\n\nfunction liftadapt(a, b, c, az, bz, cz, x, y, z, out) {\n const len = sum_three_scale(a, b, c, az, bz, cz, _24);\n return sum_three(\n scale(scale(len, _24, x, _48), _48, x, xdet), xdet,\n scale(scale(len, _24, y, _48), _48, y, ydet), ydet,\n scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);\n}\n\nfunction insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {\n let ab3, bc3, cd3, da3, ac3, bd3;\n\n let aextail, bextail, cextail, dextail;\n let aeytail, beytail, ceytail, deytail;\n let aeztail, beztail, ceztail, deztail;\n\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;\n\n const aex = ax - ex;\n const bex = bx - ex;\n const cex = cx - ex;\n const dex = dx - ex;\n const aey = ay - ey;\n const bey = by - ey;\n const cey = cy - ey;\n const dey = dy - ey;\n const aez = az - ez;\n const bez = bz - ez;\n const cez = cz - ez;\n const dez = dz - ez;\n\n s1 = aex * bey;\n c = splitter * aex;\n ahi = c - (c - aex);\n alo = aex - ahi;\n c = splitter * bey;\n bhi = c - (c - bey);\n blo = bey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = bex * aey;\n c = splitter * bex;\n ahi = c - (c - bex);\n alo = bex - ahi;\n c = splitter * aey;\n bhi = c - (c - aey);\n blo = aey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ab[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ab[1] = _0 - (_i + bvirt) + (bvirt - t1);\n ab3 = _j + _i;\n bvirt = ab3 - _j;\n ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);\n ab[3] = ab3;\n s1 = bex * cey;\n c = splitter * bex;\n ahi = c - (c - bex);\n alo = bex - ahi;\n c = splitter * cey;\n bhi = c - (c - cey);\n blo = cey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cex * bey;\n c = splitter * cex;\n ahi = c - (c - cex);\n alo = cex - ahi;\n c = splitter * bey;\n bhi = c - (c - bey);\n blo = bey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bc[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bc[1] = _0 - (_i + bvirt) + (bvirt - t1);\n bc3 = _j + _i;\n bvirt = bc3 - _j;\n bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);\n bc[3] = bc3;\n s1 = cex * dey;\n c = splitter * cex;\n ahi = c - (c - cex);\n alo = cex - ahi;\n c = splitter * dey;\n bhi = c - (c - dey);\n blo = dey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = dex * cey;\n c = splitter * dex;\n ahi = c - (c - dex);\n alo = dex - ahi;\n c = splitter * cey;\n bhi = c - (c - cey);\n blo = cey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n cd[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n cd[1] = _0 - (_i + bvirt) + (bvirt - t1);\n cd3 = _j + _i;\n bvirt = cd3 - _j;\n cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);\n cd[3] = cd3;\n s1 = dex * aey;\n c = splitter * dex;\n ahi = c - (c - dex);\n alo = dex - ahi;\n c = splitter * aey;\n bhi = c - (c - aey);\n blo = aey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = aex * dey;\n c = splitter * aex;\n ahi = c - (c - aex);\n alo = aex - ahi;\n c = splitter * dey;\n bhi = c - (c - dey);\n blo = dey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n da[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n da[1] = _0 - (_i + bvirt) + (bvirt - t1);\n da3 = _j + _i;\n bvirt = da3 - _j;\n da[2] = _j - (da3 - bvirt) + (_i - bvirt);\n da[3] = da3;\n s1 = aex * cey;\n c = splitter * aex;\n ahi = c - (c - aex);\n alo = aex - ahi;\n c = splitter * cey;\n bhi = c - (c - cey);\n blo = cey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = cex * aey;\n c = splitter * cex;\n ahi = c - (c - cex);\n alo = cex - ahi;\n c = splitter * aey;\n bhi = c - (c - aey);\n blo = aey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n ac[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n ac[1] = _0 - (_i + bvirt) + (bvirt - t1);\n ac3 = _j + _i;\n bvirt = ac3 - _j;\n ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);\n ac[3] = ac3;\n s1 = bex * dey;\n c = splitter * bex;\n ahi = c - (c - bex);\n alo = bex - ahi;\n c = splitter * dey;\n bhi = c - (c - dey);\n blo = dey - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = dex * bey;\n c = splitter * dex;\n ahi = c - (c - dex);\n alo = dex - ahi;\n c = splitter * bey;\n bhi = c - (c - bey);\n blo = bey - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n bd[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n bd[1] = _0 - (_i + bvirt) + (bvirt - t1);\n bd3 = _j + _i;\n bvirt = bd3 - _j;\n bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);\n bd[3] = bd3;\n\n const finlen = sum(\n sum(\n negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,\n liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,\n sum(\n negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,\n liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);\n\n let det = estimate(finlen, fin);\n let errbound = isperrboundB * permanent;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - aex;\n aextail = ax - (aex + bvirt) + (bvirt - ex);\n bvirt = ay - aey;\n aeytail = ay - (aey + bvirt) + (bvirt - ey);\n bvirt = az - aez;\n aeztail = az - (aez + bvirt) + (bvirt - ez);\n bvirt = bx - bex;\n bextail = bx - (bex + bvirt) + (bvirt - ex);\n bvirt = by - bey;\n beytail = by - (bey + bvirt) + (bvirt - ey);\n bvirt = bz - bez;\n beztail = bz - (bez + bvirt) + (bvirt - ez);\n bvirt = cx - cex;\n cextail = cx - (cex + bvirt) + (bvirt - ex);\n bvirt = cy - cey;\n ceytail = cy - (cey + bvirt) + (bvirt - ey);\n bvirt = cz - cez;\n ceztail = cz - (cez + bvirt) + (bvirt - ez);\n bvirt = dx - dex;\n dextail = dx - (dex + bvirt) + (bvirt - ex);\n bvirt = dy - dey;\n deytail = dy - (dey + bvirt) + (bvirt - ey);\n bvirt = dz - dez;\n deztail = dz - (dez + bvirt) + (bvirt - ez);\n if (aextail === 0 && aeytail === 0 && aeztail === 0 &&\n bextail === 0 && beytail === 0 && beztail === 0 &&\n cextail === 0 && ceytail === 0 && ceztail === 0 &&\n dextail === 0 && deytail === 0 && deztail === 0) {\n return det;\n }\n\n errbound = isperrboundC * permanent + resulterrbound * Math.abs(det);\n\n const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail);\n const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail);\n const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail);\n const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail);\n const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail);\n const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail);\n det +=\n (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) +\n (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) *\n ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) -\n ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) +\n (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) *\n ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) +\n 2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) +\n (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) -\n ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) +\n (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));\n\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);\n}\n\nexport function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {\n const aex = ax - ex;\n const bex = bx - ex;\n const cex = cx - ex;\n const dex = dx - ex;\n const aey = ay - ey;\n const bey = by - ey;\n const cey = cy - ey;\n const dey = dy - ey;\n const aez = az - ez;\n const bez = bz - ez;\n const cez = cz - ez;\n const dez = dz - ez;\n\n const aexbey = aex * bey;\n const bexaey = bex * aey;\n const ab = aexbey - bexaey;\n const bexcey = bex * cey;\n const cexbey = cex * bey;\n const bc = bexcey - cexbey;\n const cexdey = cex * dey;\n const dexcey = dex * cey;\n const cd = cexdey - dexcey;\n const dexaey = dex * aey;\n const aexdey = aex * dey;\n const da = dexaey - aexdey;\n const aexcey = aex * cey;\n const cexaey = cex * aey;\n const ac = aexcey - cexaey;\n const bexdey = bex * dey;\n const dexbey = dex * bey;\n const bd = bexdey - dexbey;\n\n const abc = aez * bc - bez * ac + cez * ab;\n const bcd = bez * cd - cez * bd + dez * bc;\n const cda = cez * da + dez * ac + aez * cd;\n const dab = dez * ab + aez * bd + bez * da;\n\n const alift = aex * aex + aey * aey + aez * aez;\n const blift = bex * bex + bey * bey + bez * bez;\n const clift = cex * cex + cey * cey + cez * cez;\n const dlift = dex * dex + dey * dey + dez * dez;\n\n const det = (clift * dab - dlift * abc) + (alift * bcd - blift * cda);\n\n const aezplus = Math.abs(aez);\n const bezplus = Math.abs(bez);\n const cezplus = Math.abs(cez);\n const dezplus = Math.abs(dez);\n const aexbeyplus = Math.abs(aexbey);\n const bexaeyplus = Math.abs(bexaey);\n const bexceyplus = Math.abs(bexcey);\n const cexbeyplus = Math.abs(cexbey);\n const cexdeyplus = Math.abs(cexdey);\n const dexceyplus = Math.abs(dexcey);\n const dexaeyplus = Math.abs(dexaey);\n const aexdeyplus = Math.abs(aexdey);\n const aexceyplus = Math.abs(aexcey);\n const cexaeyplus = Math.abs(cexaey);\n const bexdeyplus = Math.abs(bexdey);\n const dexbeyplus = Math.abs(dexbey);\n const permanent =\n ((cexdeyplus + dexceyplus) * bezplus + (dexbeyplus + bexdeyplus) * cezplus + (bexceyplus + cexbeyplus) * dezplus) * alift +\n ((dexaeyplus + aexdeyplus) * cezplus + (aexceyplus + cexaeyplus) * dezplus + (cexdeyplus + dexceyplus) * aezplus) * blift +\n ((aexbeyplus + bexaeyplus) * dezplus + (bexdeyplus + dexbeyplus) * aezplus + (dexaeyplus + aexdeyplus) * bezplus) * clift +\n ((bexceyplus + cexbeyplus) * aezplus + (cexaeyplus + aexceyplus) * bezplus + (aexbeyplus + bexaeyplus) * cezplus) * dlift;\n\n const errbound = isperrboundA * permanent;\n if (det > errbound || -det > errbound) {\n return det;\n }\n return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);\n}\n\nexport function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) {\n const aex = pax - pex;\n const bex = pbx - pex;\n const cex = pcx - pex;\n const dex = pdx - pex;\n const aey = pay - pey;\n const bey = pby - pey;\n const cey = pcy - pey;\n const dey = pdy - pey;\n const aez = paz - pez;\n const bez = pbz - pez;\n const cez = pcz - pez;\n const dez = pdz - pez;\n\n const ab = aex * bey - bex * aey;\n const bc = bex * cey - cex * bey;\n const cd = cex * dey - dex * cey;\n const da = dex * aey - aex * dey;\n const ac = aex * cey - cex * aey;\n const bd = bex * dey - dex * bey;\n\n const abc = aez * bc - bez * ac + cez * ab;\n const bcd = bez * cd - cez * bd + dez * bc;\n const cda = cez * da + dez * ac + aez * cd;\n const dab = dez * ab + aez * bd + bez * da;\n\n const alift = aex * aex + aey * aey + aez * aez;\n const blift = bex * bex + bey * bey + bez * bez;\n const clift = cex * cex + cey * cey + cez * cez;\n const dlift = dex * dex + dey * dey + dez * dez;\n\n return (clift * dab - dlift * abc) + (alift * bcd - blift * cda);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nimport {orient2d} from 'robust-predicates';\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let minDist = Infinity;\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n minDist = Infinity;\n\n // find the point closest to the seed\n for (let i = 0; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n if (this._dists[id] > d0) {\n hull[j++] = id;\n d0 = this._dists[id];\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (Math.abs(ab) < 1e-9) {\n // degenerate case (collinear diagram)\n // almost equal points (degenerate triangle)\n // the circumcenter is at the infinity, in a\n // direction that is:\n // 1. orthogonal to the halfedge.\n let a = 1e9;\n // 2. points away from the center; since the list of triangles starts\n // in the center, the first point of the first triangle\n // will be our reference\n const r = triangles[0] * 2;\n a *= Math.sign((points[r] - x1) * ey - (points[r + 1] - y1) * ex);\n x = (x1 + x3) / 2 - a * ey;\n y = (y1 + y3) / 2 + a * ex;\n } else {\n const d = 1 / ab;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] == cj[aj]\n && ci[ai + 1] == cj[aj + 1]\n && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj]\n ) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points);\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1 = 0;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n while (true) {\n if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are\n // undefined, the conditional statement will be executed.\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n if (P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k]\n || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1])\n P.splice(j, 2), i -= 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n inedges[hull[0]] = 1;\n if (hull.length === 2) {\n inedges[hull[1]] = 0;\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n }\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r) {\n if (r === undefined && (!context || typeof context.moveTo !== \"function\")) r = context, context = null;\n r = r == undefined ? 2 : +r;\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nconst fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","export const linear = t => +t;\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text.js\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n return (input, init) => text(input, init)\n .then(text => (new DOMParser).parseFromString(text, type));\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(x, y) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = 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\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n random,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\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;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\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) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\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(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\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}\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\";\n\nexport var areaRingSum = new Adder();\n\n// hello?\n\nvar areaSum = new Adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum = new Adder();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\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\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 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));\n\n // Advance the previous points.\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}\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\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum,\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum = new Adder();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\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);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\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 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 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 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 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 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}\n\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°.\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\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\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 }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\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\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\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}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\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}\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\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\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}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\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), // line weight = angle\n v = m && -w / m; // area weight multiplier\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 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 = 0;\n X2 = new Adder();\n Y2 = new Adder();\n Z2 = new Adder();\n stream(object, centroidStream);\n\n var x = +X2,\n y = +Y2,\n z = +Z2,\n m = hypot(x, y, z);\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = hypot(x, y, z);\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / m) * degrees];\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(a, b) {\n\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\n return compose;\n}\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;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : 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 [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\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 [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\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}\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\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\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 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 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}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\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 = {point: point};\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 = {type: \"Polygon\", coordinates: [ring]};\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}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\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 this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\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.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\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\n if (!subject.length) return;\n\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 while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\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 while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\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 return abs(point[0]) <= pi ? point[0] : 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\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n 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\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\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 if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\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 return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\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\";\n\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\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\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 if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\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\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// 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.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // 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) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\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 stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\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\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\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}\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\";\n\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 }\n\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 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 return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\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 point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\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 if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\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() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // 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 var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\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);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : 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 }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\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 if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\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\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// 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\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, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do 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\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : 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\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : 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__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\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 if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\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 if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\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 }\n\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 function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\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 if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n 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 if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\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 x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\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\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\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 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 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 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}\n","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\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}\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\";\n\nvar lengthSum,\n lambda0,\n sinPhi0,\n cosPhi0;\n\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}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : 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 for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\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)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\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) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\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\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\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\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 [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\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;\n","export default x => x;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\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;\n","import {sqrt} from \"../math.js\";\n\n// 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;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n 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, dy = y - y0, 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\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\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;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\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;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\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\";\n\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 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}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { 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}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\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}\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}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = 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(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\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 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 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) { // 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 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() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\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]), 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}\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\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(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; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\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 function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // 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}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\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}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), 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)\n 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}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import {asin, cos, sin} from \"../math.js\";\n\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}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < 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\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (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\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : 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(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\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}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\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 [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\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 [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\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)\n .scale(961 / tau);\n}\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, y0, x1, 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\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\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\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\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, r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\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\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, 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)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\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 return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\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\";\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect\n alpha = 0, ca, sa, // angle\n x0 = null, y0, x1, y1, // clip extent\n kx = 1, ky = 1,\n transform = transformer({\n point: function(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, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n } \n return [x + tx, y + ty];\n }\n projection.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\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 projection.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n }\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (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 return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\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])\n .scale(159.155);\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {shuffle} from \"../array.js\";\nimport lcg from \"../lcg.js\";\n\nexport default function(circles) {\n return packEncloseRandom(circles, lcg());\n}\n\nexport function packEncloseRandom(circles, random) {\n var i = 0, n = (circles = shuffle(Array.from(circles), random)).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n\nexport function shuffle(array, random) {\n let m = array.length,\n t,\n i;\n\n while (m) {\n i = random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","import array from \"../array.js\";\nimport lcg from \"../lcg.js\";\nimport {packEncloseRandom} from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packSiblingsRandom(circles, random) {\n if (!(n = (circles = array(circles)).length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = packEncloseRandom(a, random);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packSiblingsRandom(circles, lcg());\n return circles;\n}\n","import {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\nimport lcg from \"../lcg.js\";\nimport {packSiblingsRandom} from \"./siblings.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n const random = lcg();\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildrenRandom(padding, 0.5, random))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildrenRandom(constantZero, 1, random))\n .eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildrenRandom(padding, k, random) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packSiblingsRandom(children, random);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {optional} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar preroot = {depth: -1},\n ambiguous = {},\n imputed = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId,\n path;\n\n function stratify(data) {\n var nodes = Array.from(data),\n currentId = id,\n currentParentId = parentId,\n n,\n d,\n i,\n root,\n parent,\n node,\n nodeId,\n nodeKey,\n nodeByKey = new Map;\n\n if (path != null) {\n const I = nodes.map((d, i) => normalize(path(d, i, data)));\n const P = I.map(parentof);\n const S = new Set(I).add(\"\");\n for (const i of P) {\n if (!S.has(i)) {\n S.add(i);\n I.push(i);\n P.push(parentof(i));\n nodes.push(imputed);\n }\n }\n currentId = (_, i) => I[i];\n currentParentId = (_, i) => P[i];\n }\n\n for (i = 0, n = nodes.length; i < n; ++i) {\n d = nodes[i], node = nodes[i] = new Node(d);\n if ((nodeId = currentId(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = node.id = nodeId;\n nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n }\n if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += \"\")) {\n node.parent = nodeId;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (nodeId = node.parent) {\n parent = nodeByKey.get(nodeId);\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n } else {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n\n // When imputing internal nodes, only introduce roots if needed.\n // Then replace the imputed marker data with null.\n if (path != null) {\n while (root.data === imputed && root.children.length === 1) {\n root = root.children[0], --n;\n }\n for (let i = nodes.length - 1; i >= 0; --i) {\n node = nodes[i];\n if (node.data !== imputed) break;\n node.data = null;\n }\n }\n\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = optional(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = optional(x), stratify) : parentId;\n };\n\n stratify.path = function(x) {\n return arguments.length ? (path = optional(x), stratify) : path;\n };\n\n return stratify;\n}\n\n// To normalize a path, we coerce to a string, strip the trailing slash if any\n// (as long as the trailing slash is not immediately preceded by another slash),\n// and add leading slash if missing.\nfunction normalize(path) {\n path = `${path}`;\n let i = path.length;\n if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);\n return path[0] === \"/\" ? path : `/${path}`;\n}\n\n// Walk backwards to find the first slash that is not the leading slash, e.g.:\n// \"/foo/bar\" ⇥ \"/foo\", \"/foo\" ⇥ \"/\", \"/\" ↦ \"\". (The root is special-cased\n// because the id of the root must be a truthy value.)\nfunction parentof(path) {\n let i = path.length;\n if (i < 2) return \"\";\n while (--i > 1) if (slash(path, i)) break;\n return path.slice(0, i);\n}\n\n// Slashes can be escaped; to determine whether a slash is a path delimiter, we\n// count the number of preceding backslashes escaping the forward slash: an odd\n// number indicates an escaped forward slash.\nfunction slash(path, i) {\n if (path[i] === \"/\") {\n let k = 0;\n while (i > 0 && path[--i] === \"\\\\\") ++k;\n if ((k & 1) === 0) return true;\n }\n return false;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\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}\n","import {basis} from \"./basis.js\";\n\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}\n","export default x => () => x;\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}\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}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\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\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, color;\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 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);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\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, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // 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 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\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 }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const 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}\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}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\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}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\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({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\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 q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\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({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\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({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\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 = [], // string constants and placeholders\n q = []; // number interpolators\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 return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\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\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\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 i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n const n = points.length,\n indexes = [0, 1];\n let size = 2, i;\n\n for (i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.hypot(xa, ya);\n }\n\n return perimeter;\n}\n","export default Math.random;\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomInt(source) {\n function randomInt(min, max) {\n if (arguments.length < 2) max = min, min = 0;\n min = Math.floor(min);\n max = Math.floor(max) - min;\n return function() {\n return Math.floor(source() * max + min);\n };\n }\n\n randomInt.source = sourceRandomInt;\n\n return randomInt;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport normal from \"./normal.js\";\n\nexport default (function sourceRandomLogNormal(source) {\n var N = normal.source(source);\n\n function randomLogNormal() {\n var randomNormal = N.apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n if ((n = +n) <= 0) return () => 0;\n return function() {\n for (var sum = 0, i = n; i > 1; --i) sum += source();\n return sum + i * source();\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport irwinHall from \"./irwinHall.js\";\n\nexport default (function sourceRandomBates(source) {\n var I = irwinHall.source(source);\n\n function randomBates(n) {\n // use limiting distribution at n === 0\n if ((n = +n) === 0) return source;\n var randomIrwinHall = I(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log1p(-source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomPareto(source) {\n function randomPareto(alpha) {\n if ((alpha = +alpha) < 0) throw new RangeError(\"invalid alpha\");\n alpha = 1 / -alpha;\n return function() {\n return Math.pow(1 - source(), alpha);\n };\n }\n\n randomPareto.source = sourceRandomPareto;\n\n return randomPareto;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomBernoulli(source) {\n function randomBernoulli(p) {\n if ((p = +p) < 0 || p > 1) throw new RangeError(\"invalid p\");\n return function() {\n return Math.floor(source() + p);\n };\n }\n\n randomBernoulli.source = sourceRandomBernoulli;\n\n return randomBernoulli;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomGeometric(source) {\n function randomGeometric(p) {\n if ((p = +p) < 0 || p > 1) throw new RangeError(\"invalid p\");\n if (p === 0) return () => Infinity;\n if (p === 1) return () => 1;\n p = Math.log1p(-p);\n return function() {\n return 1 + Math.floor(Math.log1p(-source()) / p);\n };\n }\n\n randomGeometric.source = sourceRandomGeometric;\n\n return randomGeometric;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport normal from \"./normal.js\";\n\nexport default (function sourceRandomGamma(source) {\n var randomNormal = normal.source(source)();\n\n function randomGamma(k, theta) {\n if ((k = +k) < 0) throw new RangeError(\"invalid k\");\n // degenerate distribution if k === 0\n if (k === 0) return () => 0;\n theta = theta == null ? 1 : +theta;\n // exponential distribution if k === 1\n if (k === 1) return () => -Math.log1p(-source()) * theta;\n\n var d = (k < 1 ? k + 1 : k) - 1 / 3,\n c = 1 / (3 * Math.sqrt(d)),\n multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1;\n return function() {\n do {\n do {\n var x = randomNormal(),\n v = 1 + c * x;\n } while (v <= 0);\n v *= v * v;\n var u = 1 - source();\n } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v)));\n return d * v * multiplier() * theta;\n };\n }\n\n randomGamma.source = sourceRandomGamma;\n\n return randomGamma;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport gamma from \"./gamma.js\";\n\nexport default (function sourceRandomBeta(source) {\n var G = gamma.source(source);\n\n function randomBeta(alpha, beta) {\n var X = G(alpha),\n Y = G(beta);\n return function() {\n var x = X();\n return x === 0 ? 0 : x / (x + Y());\n };\n }\n\n randomBeta.source = sourceRandomBeta;\n\n return randomBeta;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport beta from \"./beta.js\";\nimport geometric from \"./geometric.js\";\n\nexport default (function sourceRandomBinomial(source) {\n var G = geometric.source(source),\n B = beta.source(source);\n\n function randomBinomial(n, p) {\n n = +n;\n if ((p = +p) >= 1) return () => n;\n if (p <= 0) return () => 0;\n return function() {\n var acc = 0, nn = n, pp = p;\n while (nn * pp > 16 && nn * (1 - pp) > 16) {\n var i = Math.floor((nn + 1) * pp),\n y = B(i, nn - i + 1)();\n if (y <= pp) {\n acc += i;\n nn -= i;\n pp = (pp - y) / (1 - y);\n } else {\n nn = i - 1;\n pp /= y;\n }\n }\n var sign = pp < 0.5,\n pFinal = sign ? pp : 1 - pp,\n g = G(pFinal);\n for (var s = g(), k = 0; s <= nn; ++k) s += g();\n return acc + (sign ? k : nn - k);\n };\n }\n\n randomBinomial.source = sourceRandomBinomial;\n\n return randomBinomial;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomWeibull(source) {\n function randomWeibull(k, a, b) {\n var outerFunc;\n if ((k = +k) === 0) {\n outerFunc = x => -Math.log(x);\n } else {\n k = 1 / k;\n outerFunc = x => Math.pow(x, k);\n }\n a = a == null ? 0 : +a;\n b = b == null ? 1 : +b;\n return function() {\n return a + b * outerFunc(-Math.log1p(-source()));\n };\n }\n\n randomWeibull.source = sourceRandomWeibull;\n\n return randomWeibull;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomCauchy(source) {\n function randomCauchy(a, b) {\n a = a == null ? 0 : +a;\n b = b == null ? 1 : +b;\n return function() {\n return a + b * Math.tan(Math.PI * source());\n };\n }\n\n randomCauchy.source = sourceRandomCauchy;\n\n return randomCauchy;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomLogistic(source) {\n function randomLogistic(a, b) {\n a = a == null ? 0 : +a;\n b = b == null ? 1 : +b;\n return function() {\n var u = source();\n return a + b * Math.log(u / (1 - u));\n };\n }\n\n randomLogistic.source = sourceRandomLogistic;\n\n return randomLogistic;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport binomial from \"./binomial.js\";\nimport gamma from \"./gamma.js\";\n\nexport default (function sourceRandomPoisson(source) {\n var G = gamma.source(source),\n B = binomial.source(source);\n\n function randomPoisson(lambda) {\n return function() {\n var acc = 0, l = lambda;\n while (l > 16) {\n var n = Math.floor(0.875 * l),\n t = G(n)();\n if (t > l) return acc + B(n - 1, l / t)();\n acc += n;\n l -= t;\n }\n for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source());\n return acc + k;\n };\n }\n\n randomPoisson.source = sourceRandomPoisson;\n\n return randomPoisson;\n})(defaultSource);\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst mul = 0x19660D;\nconst inc = 0x3C6EF35F;\nconst eps = 1 / 0x100000000;\n\nexport default function lcg(seed = Math.random()) {\n let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;\n return () => (state = mul * state + inc | 0, eps * (state >>> 0));\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\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}\n","export default x => () => x;\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}\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}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\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\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, color;\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 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);\n","import {basis} from \"./basis.js\";\n\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}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\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, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // 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 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\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 }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default scheme => interpolateRgbBasis(scheme[scheme.length - 1]);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import creator from \"./creator.js\";\nimport select from \"./select.js\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","var nextId = 0;\n\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(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","import pointer from \"./pointer.js\";\nimport sourceEvent from \"./sourceEvent.js\";\n\nexport default function(events, node) {\n if (events.target) { // 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 return Array.from(events, event => pointer(event, node));\n}\n","import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point++ === 0) {\n this._x0 = x, this._y0 = y;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {bumpX, bumpY, bumpRadial} from \"./curve/bump.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nexport function link(curve) {\n let source = linkSource;\n let target = linkTarget;\n let x = pointX;\n let y = pointY;\n let context = null;\n let output = null;\n\n function link() {\n let buffer;\n const argv = slice.call(arguments);\n const s = source.apply(this, argv);\n const t = target.apply(this, argv);\n if (context == null) output = curve(buffer = path());\n output.lineStart();\n argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));\n argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));\n output.lineEnd();\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;\n };\n\n return link;\n}\n\nexport function linkHorizontal() {\n return link(bumpX);\n}\n\nexport function linkVertical() {\n return link(bumpY);\n}\n\nexport function linkRadial() {\n const l = link(bumpRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.62625;\n context.moveTo(0, -r);\n context.lineTo(r, 0);\n context.lineTo(0, r);\n context.lineTo(-r, 0);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 7, 2)) * 0.87559;\n context.moveTo(-r, 0);\n context.lineTo(r, 0);\n context.moveTo(0, r);\n context.lineTo(0, -r);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.4431;\n context.moveTo(r, r);\n context.lineTo(r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, r);\n context.closePath();\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;\n context.moveTo(-r, -r);\n context.lineTo(r, r);\n context.moveTo(-r, r);\n context.lineTo(r, -r);\n }\n};\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport x from \"./symbol/x.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n x,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null;\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n t._restart = t.restart;\n t.restart = function(callback, delay, time) {\n delay = +delay, time = time == null ? now() : +time;\n t._restart(function tick(elapsed) {\n elapsed += total;\n t._restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n }\n t.restart(callback, delay, time);\n return t;\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\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}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(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(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {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\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\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 return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\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(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\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\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .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 if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .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(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), 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(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), 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, 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\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { 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 { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\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) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(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() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\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);\n\n // 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 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 clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // 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, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n 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 x0 = event.clientX,\n y0 = event.clientY;\n\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 if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .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, ...args) {\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\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\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, i, t, p;\n\n nopropagation(event);\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;\n 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() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\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;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], 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 }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\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]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\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}\n","import { InstancesSort, HierarchiesExpand, HierarchiesSort } from \"./Enums\";\r\nexport var DefaultHierarchyNavigationOptions = {\r\n instancesPageSize: 10,\r\n hierarchiesPageSize: 10,\r\n isInstancesRecursive: false,\r\n isInstancesHighlighted: false,\r\n instancesSort: InstancesSort.DisplayName,\r\n hierarchiesExpand: HierarchiesExpand.OneLevel,\r\n hierarchiesSort: HierarchiesSort.Name\r\n};\r\nexport var DefaultHierarchyContextMenuOptions = {\r\n isSelectionEnabled: false,\r\n isFilterEnabled: false\r\n};\r\nexport var nullTsidDisplayString = \"null\";\r\nexport var swimlaneLabelConstants = {\r\n leftMarginOffset: 40,\r\n swimLaneLabelHeightPadding: 8,\r\n labelLeftPadding: 28\r\n};\r\nexport var CharactersToEscapeForExactSearchInstance = ['\"', '`', '\\'', '!', '(', ')', '^', '[', '{', ':', ']', '}', '~', '/', '\\\\', '@', '#', '$', '%', '&', '*', ';', '=', '.', '_', '-', '<', '>', ',', '?'];\r\nexport var NONNUMERICTOPMARGIN = 8;\r\nexport var LINECHARTTOPPADDING = 16;\r\nexport var GRIDCONTAINERCLASS = 'tsi-gridContainer';\r\nexport var LINECHARTCHARTMARGINS = {\r\n top: 40,\r\n bottom: 40,\r\n left: 70,\r\n right: 60\r\n};\r\nexport var LINECHARTXOFFSET = 8;\r\nexport var MARKERVALUENUMERICHEIGHT = 20;\r\nexport var VALUEBARHEIGHT = 3;\r\nexport var SERIESLABELWIDTH = 92;\r\n","import Utils from \"./Utils\";\r\nexport default Utils;\r\n","import * as d3 from 'd3';\r\nimport moment from 'moment-timezone';\r\nimport { CharactersToEscapeForExactSearchInstance, nullTsidDisplayString, NONNUMERICTOPMARGIN } from '../Constants/Constants';\r\nimport { YAxisStates, valueTypes } from '../Constants/Enums';\r\nvar Utils = /** @class */ (function () {\r\n function Utils() {\r\n }\r\n Utils.formatYAxisNumber = function (val) {\r\n if (Math.abs(val) < 1000000) {\r\n if (Math.abs(val) < .0000001)\r\n return d3.format('.2n')(val); // scientific for less than 1 billionth\r\n else {\r\n // grouped thousands with 7 significant digits, trim insginificant trailing 0s\r\n var formatted = d3.format(',.7r')(val);\r\n if (formatted.indexOf('.') != -1) {\r\n var lastChar = formatted[formatted.length - 1];\r\n while (lastChar == '0') {\r\n formatted = formatted.slice(0, -1);\r\n lastChar = formatted[formatted.length - 1];\r\n }\r\n if (lastChar == '.')\r\n formatted = formatted.slice(0, -1);\r\n }\r\n return formatted;\r\n }\r\n }\r\n else if (Math.abs(val) >= 1000000 && Math.abs(val) < 1000000000)\r\n return d3.format('.3s')(val); // suffix of M for millions\r\n else if (Math.abs(val) >= 1000000000 && Math.abs(val) < 1000000000000)\r\n return d3.format('.3s')(val).slice(0, -1) + 'B'; // suffix of B for billions\r\n return d3.format('.2n')(val); // scientific for everything else\r\n };\r\n Utils.getStackStates = function () {\r\n return YAxisStates;\r\n };\r\n // format [0-9]+[ms|s|m|h|d], convert to millis\r\n Utils.parseTimeInput = function (inputString) {\r\n inputString = inputString.toLowerCase();\r\n var getNumber = function (inputString, charsFromEnd) {\r\n var startAt = inputString.indexOf('pt') !== -1 ? 2 : (inputString.indexOf('p') !== -1 ? 1 : 0);\r\n return Number(inputString.slice(startAt, inputString.length - charsFromEnd));\r\n };\r\n if (inputString.indexOf('ms') == inputString.length - 2) {\r\n return getNumber(inputString, 2);\r\n }\r\n if (inputString.indexOf('s') == inputString.length - 1) {\r\n return getNumber(inputString, 1) * 1000;\r\n }\r\n if (inputString.indexOf('m') == inputString.length - 1) {\r\n return getNumber(inputString, 1) * 60 * 1000;\r\n }\r\n if (inputString.indexOf('h') == inputString.length - 1) {\r\n return getNumber(inputString, 1) * 60 * 60 * 1000;\r\n }\r\n if (inputString.indexOf('d') == inputString.length - 1) {\r\n return getNumber(inputString, 1) * 24 * 60 * 60 * 1000;\r\n }\r\n return -1;\r\n };\r\n Utils.findClosestTime = function (prevMillis, timeMap) {\r\n var minDistance = Infinity;\r\n var closestValue = null;\r\n Object.keys(timeMap).forEach(function (intervalCenterString) {\r\n var intervalCenter = Number(intervalCenterString);\r\n if (Math.abs(intervalCenter - prevMillis) < minDistance) {\r\n minDistance = Math.abs(intervalCenter - prevMillis);\r\n closestValue = intervalCenter;\r\n }\r\n });\r\n return closestValue;\r\n };\r\n Utils.getValueOfVisible = function (d, visibleMeasure) {\r\n if (d.measures) {\r\n if (d.measures[visibleMeasure] != null || d.measures[visibleMeasure] != undefined)\r\n return d.measures[visibleMeasure];\r\n }\r\n return null;\r\n };\r\n Utils.isStartAt = function (startAtString, searchSpan) {\r\n if (startAtString === void 0) { startAtString = null; }\r\n if (searchSpan === void 0) { searchSpan = null; }\r\n return (startAtString !== null && searchSpan !== null && searchSpan.from !== null);\r\n };\r\n Utils.parseShift = function (shiftString, startAtString, searchSpan) {\r\n if (startAtString === void 0) { startAtString = null; }\r\n if (searchSpan === void 0) { searchSpan = null; }\r\n if (this.isStartAt(startAtString, searchSpan)) {\r\n return (new Date(startAtString)).valueOf() - (new Date(searchSpan.from)).valueOf();\r\n }\r\n if (shiftString === undefined || shiftString === null || shiftString.length === 0) {\r\n return 0;\r\n }\r\n var millis;\r\n if (shiftString[0] === '-' || shiftString[0] === '+') {\r\n millis = (shiftString[0] === '-' ? -1 : 1) * this.parseTimeInput(shiftString.slice(1, shiftString.length));\r\n }\r\n else {\r\n millis = this.parseTimeInput(shiftString);\r\n }\r\n return -millis;\r\n };\r\n Utils.adjustStartMillisToAbsoluteZero = function (fromMillis, bucketSize) {\r\n var epochAdjustment = 62135596800000;\r\n return Math.floor((fromMillis + epochAdjustment) / bucketSize) * bucketSize - epochAdjustment;\r\n };\r\n Utils.bucketSizeToTsqInterval = function (bucketSize) {\r\n if (!bucketSize) {\r\n return null;\r\n }\r\n var bucketSizeInMillis = Utils.parseTimeInput(bucketSize);\r\n var padLeadingZeroes = function (number) {\r\n var numberAsString = String(number);\r\n if (numberAsString.length < 3)\r\n numberAsString = (numberAsString.length === 2 ? '0' : '00') + numberAsString;\r\n return numberAsString;\r\n };\r\n if (bucketSizeInMillis < 1000) {\r\n bucketSize = (bucketSize.toLowerCase().indexOf('d') !== -1) ? 'd.' : '.' + padLeadingZeroes(bucketSizeInMillis) + \"s\";\r\n }\r\n var prefix = bucketSize.toLowerCase().indexOf('d') !== -1 ? 'P' : 'PT';\r\n return (prefix + bucketSize).toUpperCase();\r\n };\r\n Utils.createEntityKey = function (aggName, aggIndex) {\r\n return encodeURIComponent(aggName).split(\".\").join(\"_\") + \"_\" + aggIndex;\r\n };\r\n Utils.getColorForValue = function (chartDataOptions, value) {\r\n if (chartDataOptions.valueMapping && (chartDataOptions.valueMapping[value] !== undefined)) {\r\n return chartDataOptions.valueMapping[value].color;\r\n }\r\n return null;\r\n };\r\n Utils.rollUpContiguous = function (data) {\r\n var areEquivalentBuckets = function (d1, d2) {\r\n if (!d1.measures || !d2.measures) {\r\n return false;\r\n }\r\n if (Object.keys(d1.measures).length !== Object.keys(d2.measures).length) {\r\n return false;\r\n }\r\n return Object.keys(d1.measures).reduce(function (p, c, i) {\r\n return p && (d1.measures[c] === d2.measures[c]);\r\n }, true);\r\n };\r\n return data.filter(function (d, i) {\r\n if (i !== 0) {\r\n return !areEquivalentBuckets(d, data[i - 1]);\r\n }\r\n return true;\r\n });\r\n };\r\n Utils.formatOffsetMinutes = function (offset) {\r\n return (offset < 0 ? '-' : '+') +\r\n Math.floor(offset / 60) + ':' +\r\n (offset % 60 < 10 ? '0' : '') + (offset % 60) + '';\r\n };\r\n Utils.getOffsetMinutes = function (offset, millis) {\r\n if (offset == 'Local') {\r\n return -moment.tz.zone(moment.tz.guess()).parse(millis);\r\n }\r\n if (typeof offset == 'string' && isNaN(offset)) {\r\n return -moment.tz.zone(offset).parse(millis);\r\n }\r\n else {\r\n return offset;\r\n }\r\n };\r\n Utils.offsetUTC = function (date) {\r\n var offsettedDate = new Date(date.valueOf() - date.getTimezoneOffset() * 60 * 1000);\r\n return offsettedDate;\r\n };\r\n // inverse of getOffsetMinutes, this is the conversion factor of an offsettedTime to UTC in minutes \r\n Utils.getMinutesToUTC = function (offset, millisInOffset) {\r\n if (offset == 'Local') {\r\n return moment.tz.zone(moment.tz.guess()).utcOffset(millisInOffset);\r\n }\r\n if (typeof offset == 'string' && isNaN(offset)) {\r\n return moment.tz.zone(offset).utcOffset(millisInOffset);\r\n }\r\n else {\r\n return -offset;\r\n }\r\n };\r\n Utils.addOffsetGuess = function (timezoneName) {\r\n var timezone = moment.tz(new Date(), timezoneName.split(' ').join('_'));\r\n var formatted = timezone.format('Z');\r\n return \"UTC\" + formatted;\r\n };\r\n Utils.timezoneAbbreviation = function (timezoneName) {\r\n var abbr = moment.tz(new Date(), timezoneName).format('z');\r\n if (abbr[0] === '-' || abbr[0] === '+')\r\n return '';\r\n return abbr;\r\n };\r\n Utils.createTimezoneAbbreviation = function (offset) {\r\n var timezone = Utils.parseTimezoneName(offset);\r\n var timezoneAbbreviation = Utils.timezoneAbbreviation(timezone);\r\n return (timezoneAbbreviation.length !== 0 ? timezoneAbbreviation : Utils.addOffsetGuess(timezone));\r\n };\r\n Utils.parseTimezoneName = function (timezoneRaw) {\r\n if (!isNaN(timezoneRaw)) {\r\n if (timezoneRaw === 0) {\r\n return 'UTC';\r\n }\r\n return '';\r\n }\r\n if (timezoneRaw == 'Local') {\r\n return moment.tz.guess();\r\n }\r\n return timezoneRaw !== null ? timezoneRaw.split(' ').join('_') : '';\r\n };\r\n Utils.convertTimezoneToLabel = function (timezone, locdLocal) {\r\n if (locdLocal === void 0) { locdLocal = 'Local'; }\r\n var timezoneName = this.parseTimezoneName(timezone);\r\n var localPrefix = '';\r\n var offsetPrefix = '';\r\n if (timezone == 'Local') {\r\n localPrefix = locdLocal + ' - ';\r\n }\r\n if (timezone !== 'UTC') {\r\n offsetPrefix = ' (' + this.addOffsetGuess(timezoneName) + ')';\r\n }\r\n var timezoneAbbreviation = this.timezoneAbbreviation(timezoneName);\r\n var timezoneSuffix = (timezoneAbbreviation && timezoneAbbreviation.length !== 0 && timezoneAbbreviation !== 'UTC') ? ': ' + timezoneAbbreviation : '';\r\n return offsetPrefix + \" \" + localPrefix + timezoneName.replace(/_/g, ' ') + timezoneSuffix;\r\n };\r\n Utils.rangeTimeFormat = function (rangeMillis) {\r\n var rangeText = \"\";\r\n var oneSecond = 1000;\r\n var oneMinute = 60 * 1000;\r\n var oneHour = oneMinute * 60;\r\n var oneDay = oneHour * 24;\r\n var days = Math.floor(rangeMillis / oneDay);\r\n var hours = Math.floor(rangeMillis / oneHour) % 24;\r\n var minutes = Math.floor(rangeMillis / oneMinute) % 60;\r\n var seconds = Math.floor(rangeMillis / oneSecond) % 60;\r\n var millis = Math.floor(rangeMillis % 1000);\r\n if (rangeMillis >= oneDay) {\r\n return days + \"d \" + (hours > 0 ? (hours + \"h\") : \"\");\r\n }\r\n else if (rangeMillis >= oneHour) {\r\n return hours + \"h \" + (minutes > 0 ? (minutes + \"m\") : \"\");\r\n }\r\n else if (rangeMillis >= oneMinute) {\r\n return minutes + \"m \" + (seconds > 0 ? (seconds + \"s\") : \"\");\r\n }\r\n else if (rangeMillis >= oneSecond) {\r\n return seconds + (millis != 0 ? \".\" + millis : \"\") + \"s\";\r\n }\r\n return millis + \"ms\";\r\n };\r\n Utils.subDateTimeFormat = function (is24HourTime, usesSeconds, usesMillis) {\r\n return (is24HourTime ? \"HH\" : \"hh\") + \":mm\" + (usesSeconds ? (\":ss\" + (usesMillis ? \".SSS\" : \"\")) : \"\") + (is24HourTime ? \"\" : \" A\");\r\n };\r\n ;\r\n Utils.timeFormat = function (usesSeconds, usesMillis, offset, is24HourTime, shiftMillis, timeFormat, locale) {\r\n var _this = this;\r\n if (usesSeconds === void 0) { usesSeconds = false; }\r\n if (usesMillis === void 0) { usesMillis = false; }\r\n if (offset === void 0) { offset = 0; }\r\n if (is24HourTime === void 0) { is24HourTime = true; }\r\n if (shiftMillis === void 0) { shiftMillis = null; }\r\n if (timeFormat === void 0) { timeFormat = null; }\r\n if (locale === void 0) { locale = 'en'; }\r\n return function (d) {\r\n if (shiftMillis !== 0) {\r\n d = new Date(d.valueOf() + shiftMillis);\r\n }\r\n var stringFormat;\r\n if (timeFormat !== null) {\r\n stringFormat = timeFormat;\r\n }\r\n else {\r\n stringFormat = \"L \" + _this.subDateTimeFormat(is24HourTime, usesSeconds, usesMillis);\r\n }\r\n if (typeof offset == 'string' && isNaN(offset)) {\r\n return moment.tz(d, 'UTC').tz(offset === 'Local' ? moment.tz.guess() : offset).locale(locale).format(stringFormat);\r\n }\r\n else {\r\n return moment.tz(d, \"UTC\").utcOffset(offset).locale(locale).format(stringFormat);\r\n }\r\n };\r\n };\r\n Utils.splitTimeLabel = function (text) {\r\n var shouldSplit = function (str) {\r\n var splitLines = str.split(' ');\r\n return !((splitLines.length === 1) || (splitLines.length === 2 && (splitLines[1] === 'AM' || splitLines[1] === 'PM')));\r\n };\r\n text.each(function () {\r\n if (this.children == undefined || this.children.length == 0) { // don't split already split labels\r\n var text = d3.select(this);\r\n var lines = text.text().split(\" \");\r\n var dy = parseFloat(text.attr(\"dy\"));\r\n if (shouldSplit(text.text())) {\r\n var newFirstLine = lines[0] + (lines.length === 3 ? (' ' + lines[1]) : '');\r\n var newSecondLine = lines[lines.length - 1];\r\n text.text(null).append(\"tspan\")\r\n .attr(\"x\", 0)\r\n .attr(\"y\", text.attr(\"y\"))\r\n .attr(\"dy\", dy + \"em\")\r\n .text(newFirstLine);\r\n text.append(\"tspan\")\r\n .attr(\"x\", 0)\r\n .attr(\"y\", text.attr(\"y\"))\r\n .attr(\"dy\", (dy + dy * 1.4) + \"em\")\r\n .text(newSecondLine);\r\n }\r\n }\r\n });\r\n };\r\n Utils.getUTCHours = function (d, is24HourTime) {\r\n if (is24HourTime === void 0) { is24HourTime = true; }\r\n var hours = d.getUTCHours();\r\n if (!is24HourTime) {\r\n if (hours == 0)\r\n hours = 12;\r\n if (hours > 12)\r\n hours = hours - 12;\r\n }\r\n return hours;\r\n };\r\n Utils.UTCTwelveHourFormat = function (d) {\r\n var hours = String(this.getUTCHours(d));\r\n var minutes = (d.getUTCMinutes() < 10 ? \"0\" : \"\") + String(d.getUTCMinutes());\r\n var amPm = (d.getUTCHours() < 12) ? \"AM\" : \"PM\";\r\n return hours + \":\" + minutes + \" \" + amPm;\r\n };\r\n Utils.getAgVisible = function (displayState, aggI, splitBy) {\r\n return (displayState[aggI].visible) ? displayState[aggI].splitBys[splitBy].visible : false;\r\n };\r\n Utils.getAgVisibleMeasure = function (displayState, aggI, splitBy) {\r\n return displayState[aggI].splitBys[splitBy].visibleType;\r\n };\r\n Utils.createSeriesTypeIcon = function (seriesType, selection) {\r\n var g = selection.append(\"g\")\r\n .style(\"position\", \"absolute\");\r\n if (seriesType == \"event\") {\r\n g.attr(\"transform\", \"translate(7.5,0)\")\r\n .append(\"rect\")\r\n .attr(\"width\", 7)\r\n .attr(\"height\", 7)\r\n .attr(\"transform\", \"rotate(45)\");\r\n }\r\n else if (seriesType == \"state\") {\r\n g.append(\"rect\")\r\n .attr(\"width\", 15)\r\n .attr(\"height\", 10);\r\n }\r\n else { // fxn\r\n g.append(\"path\")\r\n .attr(\"d\", \"M0 5 Q 4 0, 8 5 T 16 5\")\r\n .attr(\"fill\", \"none\");\r\n }\r\n };\r\n Utils.strip = function (text) {\r\n var div = document.createElement('div');\r\n div.innerHTML = text;\r\n var textContent = div.textContent || div.innerText || '';\r\n return textContent;\r\n };\r\n Utils.stripForConcat = function (text) {\r\n var specialCharacters = ['\"', \"'\", '?', '<', '>', ';'];\r\n specialCharacters.forEach(function (c) { text = text.split(c).join(''); });\r\n return text;\r\n };\r\n Utils.setSeriesLabelSubtitleText = function (subtitle, isInFocus) {\r\n if (isInFocus === void 0) { isInFocus = false; }\r\n var subtitleDatum = subtitle.data()[0];\r\n if (!subtitle.select('.tsi-splitBy').empty()) {\r\n var textAfterSplitByExists = subtitleDatum.timeShift !== '' || subtitleDatum.variableAlias;\r\n var splitByString = \"\" + subtitleDatum.splitBy + ((textAfterSplitByExists && !isInFocus) ? ', ' : '');\r\n Utils.appendFormattedElementsFromString(subtitle.select('.tsi-splitBy'), splitByString);\r\n }\r\n if (subtitle.select('.tsi-timeShift')) {\r\n subtitle.select('.tsi-timeShift')\r\n .text(function (d) {\r\n return \"\" + subtitleDatum.timeShift + ((subtitleDatum.variableAlias && !isInFocus) ? ', ' : '');\r\n });\r\n }\r\n if (subtitle.select('.tsi-variableAlias')) {\r\n subtitle.select('.tsi-variableAlias')\r\n .text(function (d) { return subtitleDatum.variableAlias; });\r\n }\r\n };\r\n Utils.revertAllSubtitleText = function (markerValues, opacity) {\r\n if (opacity === void 0) { opacity = 1; }\r\n var self = this;\r\n markerValues.classed('tsi-isExpanded', false)\r\n .style('opacity', opacity)\r\n .each(function () {\r\n self.setSeriesLabelSubtitleText(d3.select(this).selectAll('.tsi-tooltipSubtitle'), false);\r\n });\r\n };\r\n Utils.generateColors = function (numColors, includeColors) {\r\n if (includeColors === void 0) { includeColors = null; }\r\n var defaultColors = ['#008272', '#D869CB', '#FF8C00', '#8FE6D7', '#3195E3', '#F7727E', '#E0349E', '#C8E139', '#60B9AE',\r\n '#93CFFB', '#854CC7', '#258225', '#0078D7', '#FF2828', '#FFF100'];\r\n var postDefaultColors = d3.scaleSequential(d3.interpolateCubehelixDefault).domain([defaultColors.length - .5, numColors - .5]);\r\n var colors = [];\r\n var colorsIndex = 0;\r\n if (includeColors) { //add the colors we want to include first\r\n for (var i = 0; i < includeColors.length && colorsIndex < numColors; i++) {\r\n var color = includeColors[i];\r\n if (colors.indexOf(color) === -1) {\r\n colors.push(color);\r\n colorsIndex++;\r\n }\r\n }\r\n }\r\n for (var i = 0; colorsIndex < numColors; i++) {\r\n if (i < defaultColors.length) {\r\n if (colors.indexOf(defaultColors[i]) === -1) {\r\n colors.push(defaultColors[i]);\r\n colorsIndex++;\r\n }\r\n }\r\n else if (colors.indexOf(postDefaultColors(i)) === -1) {\r\n colors.push(postDefaultColors(i));\r\n colorsIndex++;\r\n }\r\n }\r\n return colors;\r\n };\r\n Utils.convertFromLocal = function (date) {\r\n return new Date(date.valueOf() - date.getTimezoneOffset() * 60 * 1000);\r\n };\r\n Utils.adjustDateFromTimezoneOffset = function (date) {\r\n var dateCopy = new Date(date.valueOf());\r\n dateCopy.setTime(dateCopy.getTime() + dateCopy.getTimezoneOffset() * 60 * 1000);\r\n return dateCopy;\r\n };\r\n Utils.offsetFromUTC = function (date, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n var offsetMinutes = Utils.getOffsetMinutes(offset, date.valueOf());\r\n var dateCopy = new Date(date.valueOf() + offsetMinutes * 60 * 1000);\r\n return dateCopy;\r\n };\r\n Utils.offsetToUTC = function (date, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n var offsetMinutes = Utils.getOffsetMinutes(offset, date.valueOf());\r\n var dateCopy = new Date(date.valueOf() - offsetMinutes * 60 * 1000);\r\n return dateCopy;\r\n };\r\n Utils.parseUserInputDateTime = function (timeText, offset) {\r\n var dateTimeFormat = \"L \" + this.subDateTimeFormat(true, true, true);\r\n var parsedDate = moment(timeText, dateTimeFormat).toDate();\r\n var utcDate = this.offsetToUTC(this.convertFromLocal(parsedDate), offset);\r\n return utcDate.valueOf();\r\n };\r\n Utils.getBrighterColor = function (color) {\r\n var hclColor = d3.hcl(color);\r\n if (hclColor.l < 80) {\r\n return hclColor.brighter().toString();\r\n }\r\n return hclColor.toString();\r\n };\r\n Utils.createSplitByColors = function (displayState, aggKey, ignoreIsOnlyAgg) {\r\n if (ignoreIsOnlyAgg === void 0) { ignoreIsOnlyAgg = false; }\r\n if (Object.keys(displayState[aggKey][\"splitBys\"]).length == 1)\r\n return [displayState[aggKey].color];\r\n var isOnlyAgg = Object.keys(displayState).reduce(function (accum, currAgg) {\r\n if (currAgg == aggKey)\r\n return accum;\r\n if (displayState[currAgg][\"visible\"] == false)\r\n return accum && true;\r\n return false;\r\n }, true);\r\n if (isOnlyAgg && !ignoreIsOnlyAgg) {\r\n return this.generateColors(Object.keys(displayState[aggKey][\"splitBys\"]).length);\r\n }\r\n var aggColor = displayState[aggKey].color;\r\n var interpolateColor = d3.scaleLinear().domain([0, Object.keys(displayState[aggKey][\"splitBys\"]).length])\r\n .range([d3.hcl(aggColor).darker().l, d3.hcl(aggColor).brighter().l]);\r\n var colors = [];\r\n for (var i = 0; i < Object.keys(displayState[aggKey][\"splitBys\"]).length; i++) {\r\n var newColor = d3.hcl(aggColor);\r\n newColor.l = interpolateColor(i);\r\n colors.push(newColor.formatHex());\r\n }\r\n return colors;\r\n };\r\n Utils.colorSplitBy = function (displayState, splitByIndex, aggKey, ignoreIsOnlyAgg) {\r\n if (ignoreIsOnlyAgg === void 0) { ignoreIsOnlyAgg = false; }\r\n if (Object.keys(displayState[aggKey][\"splitBys\"]).length == 1)\r\n return displayState[aggKey].color;\r\n var isOnlyAgg = Object.keys(displayState).reduce(function (accum, currAgg) {\r\n if (currAgg == aggKey)\r\n return accum;\r\n if (displayState[currAgg][\"visible\"] == false)\r\n return accum && true;\r\n return false;\r\n }, true);\r\n if (isOnlyAgg && !ignoreIsOnlyAgg) {\r\n var splitByColors = this.generateColors(Object.keys(displayState[aggKey][\"splitBys\"]).length);\r\n return splitByColors[splitByIndex];\r\n }\r\n var aggColor = displayState[aggKey].color;\r\n var interpolateColor = d3.scaleLinear().domain([0, Object.keys(displayState[aggKey][\"splitBys\"]).length])\r\n .range([d3.hcl(aggColor).darker().l, d3.hcl(aggColor).brighter().l]);\r\n var newColor = d3.hcl(aggColor);\r\n newColor.l = interpolateColor(splitByIndex);\r\n return newColor.formatHex();\r\n };\r\n Utils.getTheme = function (theme) {\r\n return theme ? 'tsi-' + theme : 'tsi-dark';\r\n };\r\n Utils.clearSelection = function () {\r\n var sel = window.getSelection ? window.getSelection() : document.selection;\r\n if (sel) {\r\n if (sel.removeAllRanges) {\r\n sel.removeAllRanges();\r\n }\r\n else if (sel.empty) {\r\n sel.empty();\r\n }\r\n }\r\n };\r\n Utils.mark = function (filter, text) {\r\n if (filter.length == 0)\r\n return text;\r\n var regExp = new RegExp(filter, 'gi');\r\n return text.replace(regExp, function (m) { return '<mark>' + m + '</mark>'; });\r\n };\r\n Utils.hash = function (str) {\r\n var hash = 5381, i = str.length;\r\n while (i) {\r\n hash = (hash * 33) ^ str.charCodeAt(--i);\r\n }\r\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\r\n * integers. Since we want the results to be always positive, convert the\r\n * signed int to an unsigned by doing an unsigned bitshift. */\r\n return hash >>> 0;\r\n };\r\n Utils.guid = function () {\r\n var s4 = function () {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n };\r\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\r\n s4() + '-' + s4() + s4() + s4();\r\n };\r\n Utils.createValueFilter = function (aggregateKey, splitBy) {\r\n return function (d, j) {\r\n var currAggKey;\r\n var currSplitBy;\r\n if (d.aggregateKey) {\r\n currAggKey = d.aggregateKey;\r\n currSplitBy = d.splitBy;\r\n }\r\n else if (d && d.length) {\r\n currAggKey = d[0].aggregateKey;\r\n currSplitBy = d[0].splitBy;\r\n }\r\n else\r\n return true;\r\n return (currAggKey == aggregateKey && (splitBy == null || splitBy == currSplitBy));\r\n };\r\n };\r\n Utils.downloadCSV = function (csvString, csvName) {\r\n if (csvName === void 0) { csvName = \"Table\"; }\r\n var blob = new Blob([csvString], { type: 'text/csv;charset=utf-8;' });\r\n var blobURL = window.URL.createObjectURL(blob);\r\n var link = document.createElement(\"a\");\r\n link.setAttribute(\"href\", blobURL);\r\n link.setAttribute(\"download\", csvName + \".csv\");\r\n link.setAttribute(\"tabindex\", \"0\");\r\n link.innerHTML = \"\";\r\n document.body.appendChild(link);\r\n link.click();\r\n };\r\n Utils.sanitizeString = function (str, type) {\r\n if (str === null || str === undefined) {\r\n return \"\";\r\n }\r\n if (type !== valueTypes.Double && type !== valueTypes.Long) {\r\n var jsonifiedString = type === valueTypes.Dynamic ? JSON.stringify(str) : String(str);\r\n if (jsonifiedString.indexOf(',') !== -1 || jsonifiedString.indexOf('\"') !== -1 || jsonifiedString.indexOf('\\n') !== -1 || type === valueTypes.Dynamic) {\r\n var replacedString = jsonifiedString.replace(/\"/g, '\"\"');\r\n return '\"' + replacedString + '\"';\r\n }\r\n }\r\n return str;\r\n };\r\n Utils.focusOnEllipsisButton = function (renderTarget) {\r\n var ellipsisContainer = d3.select(renderTarget).select(\".tsi-ellipsisContainerDiv\");\r\n if (!ellipsisContainer.empty()) {\r\n ellipsisContainer.select(\".tsi-ellipsisButton\").node().focus();\r\n }\r\n };\r\n Utils.createDownloadEllipsisOption = function (csvStringGenerator, action, downloadLabel) {\r\n if (action === void 0) { action = function () { }; }\r\n if (downloadLabel === void 0) { downloadLabel = \"Download as CSV\"; }\r\n return {\r\n iconClass: \"download\",\r\n label: downloadLabel,\r\n action: function () {\r\n Utils.downloadCSV(csvStringGenerator());\r\n action();\r\n },\r\n description: \"\"\r\n };\r\n };\r\n Utils.createControlPanel = function (renderTarget, legendWidth, topChartMargin, chartOptions) {\r\n d3.select(renderTarget).selectAll(\".tsi-chartControlsPanel\").remove();\r\n var controlPanelWidth = Math.max(1, d3.select(renderTarget).node().clientWidth -\r\n (chartOptions.legend == \"shown\" ? legendWidth : 0));\r\n var chartControlsPanel = d3.select(renderTarget).append(\"div\")\r\n .attr(\"class\", \"tsi-chartControlsPanel\")\r\n .style(\"width\", controlPanelWidth + \"px\")\r\n .style(\"top\", Math.max((topChartMargin - 32), 0) + \"px\");\r\n return chartControlsPanel;\r\n };\r\n Utils.escapeQuotesCommasAndNewlines = function (stringToEscape) {\r\n var escapedString = \"\";\r\n if (stringToEscape && (stringToEscape.indexOf(\"\\\"\") != -1 ||\r\n stringToEscape.indexOf(\",\") != -1 ||\r\n stringToEscape.indexOf(\"\\n\") != -1)) {\r\n stringToEscape = stringToEscape.replace(/\"/g, \"\\\"\\\"\");\r\n escapedString += \"\\\"\";\r\n escapedString += stringToEscape;\r\n escapedString += \"\\\"\";\r\n return escapedString;\r\n }\r\n else {\r\n return stringToEscape;\r\n }\r\n };\r\n ;\r\n Utils.getNonNumericHeight = function (rawHeight) {\r\n return rawHeight + NONNUMERICTOPMARGIN;\r\n };\r\n Utils.getControlPanelWidth = function (renderTarget, legendWidth, isLegendShown) {\r\n return Math.max(1, d3.select(renderTarget).node().clientWidth -\r\n (isLegendShown ? legendWidth : 0));\r\n };\r\n ;\r\n Utils.getValueOrDefault = function (chartOptionsObj, propertyName, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = null; }\r\n var propertyValue = chartOptionsObj[propertyName];\r\n if (propertyValue == undefined) {\r\n if (this[propertyName] == undefined)\r\n return defaultValue;\r\n return this[propertyName];\r\n }\r\n return propertyValue;\r\n };\r\n Utils.safeNotNullOrUndefined = function (valueLambda) {\r\n try {\r\n var value = valueLambda();\r\n return !(value === null || value === undefined);\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n };\r\n Utils.getAggKeys = function (data) {\r\n var aggregateCounterMap = {};\r\n return data.map(function (aggregate) {\r\n var aggName = Object.keys(aggregate)[0];\r\n var aggKey;\r\n if (aggregateCounterMap[aggName]) {\r\n aggKey = Utils.createEntityKey(aggName, aggregateCounterMap[aggName]);\r\n aggregateCounterMap[aggName] += 1;\r\n }\r\n else {\r\n aggKey = Utils.createEntityKey(aggName, 0);\r\n aggregateCounterMap[aggName] = 1;\r\n }\r\n return aggKey;\r\n });\r\n };\r\n Utils.roundToMillis = function (rawTo, bucketSize) {\r\n return Math.ceil((rawTo + 62135596800000) / (bucketSize)) * (bucketSize) - 62135596800000;\r\n };\r\n Utils.mergeSeriesForScatterPlot = function (chartData, scatterMeasures) {\r\n var _a;\r\n var _this = this;\r\n var xMeasure = chartData[scatterMeasures.X_MEASURE], yMeasure = chartData[scatterMeasures.Y_MEASURE], rMeasure = chartData[scatterMeasures.R_MEASURE];\r\n var measureNames = Utils.getScatterPlotMeasureNames(chartData, scatterMeasures);\r\n // Create data label\r\n var xLabel = xMeasure.additionalFields.Variable.substring(0, 15) + (xMeasure.additionalFields.Variable.length > 15 ? \"... vs\" : \" vs\");\r\n var yLabel = \" \" + yMeasure.additionalFields.Variable.substring(0, 15) + (yMeasure.additionalFields.Variable.length > 15 ? \"... \" : \"\");\r\n var rLabel = (rMeasure != null ? \" vs \" + rMeasure.additionalFields.Variable.substring(0, 15) + (rMeasure.additionalFields.Variable.length > 15 ? \"... \" : \"\") : \"\");\r\n var dataTitle = xLabel + yLabel + rLabel;\r\n // Initialize scatter plot data object\r\n var scatterData = (_a = {},\r\n _a[dataTitle] = {\r\n \"\": {}\r\n },\r\n _a);\r\n // Create measure types\r\n var measureTypes = {\r\n X_MEASURE_TYPE: 'avg' in xMeasure.measureTypes ? xMeasure.measureTypes['avg'] : xMeasure.measureTypes[0],\r\n Y_MEASURE_TYPE: 'avg' in yMeasure.measureTypes ? yMeasure.measureTypes['avg'] : yMeasure.measureTypes[0],\r\n R_MEASURE_TYPE: null\r\n };\r\n // Takes query and returns normalized time data\r\n var normalizeTimestampKeys = function (query) {\r\n var newTS = {};\r\n Object.keys(query.data[query.alias][\"\"]).forEach(function (key) {\r\n var oldTime = new Date(key).valueOf();\r\n var timeShift = query.timeShift != \"\" ? _this.parseShift(query.timeShift, query.startAt, query.searchSpan) : 0;\r\n // Calculate real timeshift based on bucket snapping\r\n var bucketShiftInMillis = _this.adjustStartMillisToAbsoluteZero(timeShift, _this.parseShift(query.searchSpan.bucketSize));\r\n var normalizedTime = oldTime - bucketShiftInMillis;\r\n var timestamp = new Date(normalizedTime).toISOString();\r\n newTS[timestamp] = query.data[query.alias][\"\"][key];\r\n });\r\n return newTS;\r\n };\r\n // Normalize timestamp data\r\n xMeasure.data[xMeasure.alias][\"\"] = normalizeTimestampKeys(xMeasure);\r\n yMeasure.data[yMeasure.alias][\"\"] = normalizeTimestampKeys(yMeasure);\r\n if (rMeasure) {\r\n rMeasure.data[rMeasure.alias][\"\"] = normalizeTimestampKeys(rMeasure);\r\n measureTypes.R_MEASURE_TYPE = 'avg' in rMeasure.measureTypes ? rMeasure.measureTypes['avg'] : rMeasure.measureTypes[0];\r\n }\r\n // For each timestamp in X data mix measures of other series\r\n Object.keys(xMeasure.data[xMeasure.alias][\"\"]).forEach(function (key) {\r\n if (key in yMeasure.data[yMeasure.alias][\"\"]) {\r\n var measures = {};\r\n measures[measureNames.X_MEASURE] = xMeasure.data[xMeasure.alias][\"\"][key][measureTypes.X_MEASURE_TYPE];\r\n measures[measureNames.Y_MEASURE] = yMeasure.data[yMeasure.alias][\"\"][key][measureTypes.Y_MEASURE_TYPE];\r\n // Add optional R measure\r\n if (rMeasure != null && key in rMeasure.data[rMeasure.alias][\"\"]) {\r\n measures[measureNames.R_MEASURE] = rMeasure.data[rMeasure.alias][\"\"][key][measureTypes.R_MEASURE_TYPE];\r\n }\r\n // Discard timestamps with null valued measures\r\n if (xMeasure.data[xMeasure.alias][\"\"][key][measureTypes.X_MEASURE_TYPE] && yMeasure.data[yMeasure.alias][\"\"][key][measureTypes.Y_MEASURE_TYPE]) {\r\n if (rMeasure != null) {\r\n if (key in rMeasure.data[rMeasure.alias][\"\"] && rMeasure.data[rMeasure.alias][\"\"][key][measureTypes.R_MEASURE_TYPE])\r\n scatterData[dataTitle][\"\"][key] = measures;\r\n }\r\n else {\r\n scatterData[dataTitle][\"\"][key] = measures;\r\n }\r\n }\r\n }\r\n });\r\n return scatterData;\r\n };\r\n Utils.getScatterPlotMeasureNames = function (chartData, scatterMeasures) {\r\n var uniqueNameMap = {};\r\n var xMeasureName = chartData[scatterMeasures.X_MEASURE].alias + \" \" + chartData[scatterMeasures.X_MEASURE].additionalFields.Variable +\r\n (chartData[scatterMeasures.X_MEASURE].timeShift == \"\" ? \"\" : \" \" + chartData[scatterMeasures.X_MEASURE].timeShift);\r\n uniqueNameMap[xMeasureName] = 1;\r\n var yMeasureName = chartData[scatterMeasures.Y_MEASURE].alias + \" \" + chartData[scatterMeasures.Y_MEASURE].additionalFields.Variable +\r\n (chartData[scatterMeasures.Y_MEASURE].timeShift == \"\" ? \"\" : \" \" + chartData[scatterMeasures.Y_MEASURE].timeShift);\r\n if (yMeasureName in uniqueNameMap) {\r\n var tempName = yMeasureName;\r\n yMeasureName += \" (\" + uniqueNameMap[yMeasureName].toString() + \")\";\r\n uniqueNameMap[tempName] = uniqueNameMap[tempName] + 1;\r\n }\r\n else {\r\n uniqueNameMap[yMeasureName] = 1;\r\n }\r\n var rMeasureName = chartData[scatterMeasures.R_MEASURE] ? chartData[scatterMeasures.R_MEASURE].alias + \" \" + chartData[scatterMeasures.R_MEASURE].additionalFields.Variable +\r\n (chartData[scatterMeasures.R_MEASURE].timeShift == \"\" ? \"\" : \" \" + chartData[scatterMeasures.R_MEASURE].timeShift) : null;\r\n if (rMeasureName != null) {\r\n if (rMeasureName in uniqueNameMap) {\r\n rMeasureName += \" (\" + uniqueNameMap[rMeasureName].toString() + \")\";\r\n }\r\n }\r\n return {\r\n X_MEASURE: xMeasureName,\r\n Y_MEASURE: yMeasureName,\r\n R_MEASURE: rMeasureName ? rMeasureName : null\r\n };\r\n };\r\n Utils.getMinWarmTime = function (warmStoreFrom, retentionString) {\r\n var minWarmTime = new Date(warmStoreFrom);\r\n if (retentionString !== null) {\r\n var retentionPeriod = Utils.parseTimeInput(retentionString);\r\n minWarmTime = new Date(Math.max(minWarmTime.valueOf(), (Date.now() - retentionPeriod)));\r\n }\r\n return minWarmTime;\r\n };\r\n Utils.standardizeTSStrings = function (rawData) {\r\n var convertedData = [];\r\n rawData.forEach(function (dG, i) {\r\n var dGName = Object.keys(dG)[0];\r\n var dataGroup = dG[dGName];\r\n var convertedDataGroup = {};\r\n var dataGroupKeyedObject = {};\r\n dataGroupKeyedObject[dGName] = convertedDataGroup;\r\n convertedData.push(dataGroupKeyedObject);\r\n if (dataGroup) {\r\n Object.keys(dataGroup).forEach(function (seriesName) {\r\n convertedDataGroup[seriesName] = {};\r\n if (dataGroup[seriesName]) {\r\n Object.keys(dataGroup[seriesName]).forEach(function (rawTS) {\r\n var isoString;\r\n try {\r\n isoString = (new Date(rawTS)).toISOString();\r\n convertedDataGroup[seriesName][isoString] = dataGroup[seriesName][rawTS];\r\n }\r\n catch (RangeError) {\r\n console.log(rawTS + \" is not a valid ISO time\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n return convertedData;\r\n };\r\n // takes in an availability distribution and a min and max date, returns a tuple, where the first is the new distribution \r\n // excluding values out of the range, and the second is all excluded values\r\n Utils.cullValuesOutOfRange = function (availabilityDistribution, minDateString, maxDateString) {\r\n var dateZero = '0000-01-01T00:00:00Z';\r\n var minDateValue = new Date(minDateString).valueOf();\r\n var maxDateValue = new Date(maxDateString).valueOf();\r\n if (new Date(availabilityDistribution.range.from).valueOf() < minDateValue ||\r\n new Date(availabilityDistribution.range.to).valueOf() > maxDateValue) {\r\n var inRangeValues_1 = {};\r\n var outOfRangeValues_1 = {};\r\n var highestNotOverMaxString_1 = dateZero;\r\n var highestNotOverMaxValue_1 = (new Date(highestNotOverMaxString_1)).valueOf();\r\n var lowestAboveMinValue_1 = Infinity;\r\n Object.keys(availabilityDistribution.distribution).forEach(function (bucketKey) {\r\n var bucketValue = (new Date(bucketKey)).valueOf();\r\n if (bucketValue > maxDateValue || bucketValue < minDateValue) {\r\n outOfRangeValues_1[bucketKey] = availabilityDistribution.distribution[bucketKey];\r\n }\r\n else {\r\n inRangeValues_1[bucketKey] = availabilityDistribution.distribution[bucketKey];\r\n if (bucketValue > highestNotOverMaxValue_1) {\r\n highestNotOverMaxValue_1 = bucketValue;\r\n highestNotOverMaxString_1 = bucketKey;\r\n }\r\n if (bucketValue < lowestAboveMinValue_1) {\r\n lowestAboveMinValue_1 = bucketValue;\r\n }\r\n }\r\n });\r\n var bucketSize = this.parseTimeInput(availabilityDistribution.intervalSize);\r\n if (highestNotOverMaxString_1 !== dateZero) { // a value exists \r\n var nowMillis = new Date().valueOf();\r\n if (highestNotOverMaxValue_1 < nowMillis && (highestNotOverMaxValue_1 + bucketSize) > nowMillis) {\r\n // the new end value was before now, but after adding bucket size, its after now\r\n // so we set it to now to avoid setting it to a date in the future\r\n availabilityDistribution.range.to = new Date(nowMillis).toISOString();\r\n }\r\n else {\r\n availabilityDistribution.range.to = new Date(highestNotOverMaxValue_1 + bucketSize).toISOString();\r\n }\r\n }\r\n else {\r\n var rangeToValue = (new Date(availabilityDistribution.range.to)).valueOf();\r\n if (minDateValue > rangeToValue) { // entire window is to the right of distribution range\r\n availabilityDistribution.range.to = maxDateString;\r\n }\r\n else {\r\n var toValue = Math.min(maxDateValue + bucketSize, (new Date(availabilityDistribution.range.to)).valueOf()); //clamped to maxDateString passed in\r\n availabilityDistribution.range.to = (new Date(toValue)).toISOString();\r\n }\r\n }\r\n if (lowestAboveMinValue_1 !== Infinity) { // a value exists\r\n availabilityDistribution.range.from = (new Date(lowestAboveMinValue_1)).toISOString();\r\n }\r\n else {\r\n var rangeFromValue = (new Date(availabilityDistribution.range.from)).valueOf();\r\n if (maxDateValue < (new Date(availabilityDistribution.range.from)).valueOf()) { // entire window is to the left of distribution range\r\n availabilityDistribution.range.from = minDateString;\r\n }\r\n else {\r\n var fromValue = Math.max(minDateValue, rangeFromValue); // clamped to minDateString passed in\r\n availabilityDistribution.range.from = (new Date(fromValue)).toISOString();\r\n }\r\n }\r\n availabilityDistribution.distribution = inRangeValues_1;\r\n return [availabilityDistribution, outOfRangeValues_1];\r\n }\r\n return [availabilityDistribution, {}];\r\n };\r\n Utils.mergeAvailabilities = function (warmAvailability, coldAvailability, retentionString) {\r\n if (retentionString === void 0) { retentionString = null; }\r\n var warmStoreRange = warmAvailability.range;\r\n var minWarmTime = this.getMinWarmTime(warmStoreRange.from, retentionString);\r\n var warmStoreToMillis = new Date(warmStoreRange.to).valueOf();\r\n var coldStoreToMillis = new Date(coldAvailability.range.to).valueOf();\r\n // snap warm availability to cold availability if its ahead of cold\r\n var maxWarmTime = new Date(Math.min(warmStoreToMillis, coldStoreToMillis));\r\n var mergedAvailability = Object.assign({}, coldAvailability);\r\n mergedAvailability.warmStoreRange = [minWarmTime.toISOString(), maxWarmTime.toISOString()];\r\n if (retentionString !== null) {\r\n mergedAvailability.retentionPeriod = retentionString;\r\n }\r\n return mergedAvailability;\r\n };\r\n Utils.languageGuess = function () {\r\n return navigator.languages && navigator.languages[0] || // Chrome / Firefox\r\n navigator.language; // All browsers\r\n };\r\n Utils.memorySizeOf = function (obj) {\r\n var bytes = 0;\r\n var sizeOf = function (obj) {\r\n if (obj !== null && obj !== undefined) {\r\n switch (typeof obj) {\r\n case 'number':\r\n bytes += 8;\r\n break;\r\n case 'string':\r\n bytes += obj.length * 2;\r\n break;\r\n case 'boolean':\r\n bytes += 4;\r\n break;\r\n case 'object':\r\n var objClass = Object.prototype.toString.call(obj).slice(8, -1);\r\n if (objClass === 'Object' || objClass === 'Array') {\r\n for (var key in obj) {\r\n if (!obj.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n sizeOf(key);\r\n sizeOf(obj[key]);\r\n }\r\n }\r\n else {\r\n bytes += obj.toString().length * 2;\r\n }\r\n break;\r\n }\r\n }\r\n return bytes;\r\n };\r\n return sizeOf(obj);\r\n };\r\n Utils.guidForNullTSID = Utils.guid();\r\n Utils.equalToEventTarget = (function (current, event) {\r\n return (current == event.target);\r\n });\r\n Utils.isKeyDownAndNotEnter = function (e) {\r\n if (e && e.type && e.type === 'keydown') {\r\n var key = e.which || e.keyCode;\r\n if (key !== 13) {\r\n return true;\r\n }\r\n else {\r\n e.preventDefault();\r\n }\r\n }\r\n return false;\r\n };\r\n Utils.getInstanceKey = function (instance) {\r\n return Utils.instanceHasEmptyTSID(instance) ? Utils.guid() : instance.timeSeriesId.map(function (id) { return id === null ? Utils.guidForNullTSID : id; }).join();\r\n };\r\n Utils.stripNullGuid = function (str) {\r\n return str.replace(Utils.guidForNullTSID, nullTsidDisplayString);\r\n };\r\n Utils.getTimeSeriesIdString = function (instance) {\r\n return instance.timeSeriesId.map(function (id) { return id === null ? nullTsidDisplayString : id; }).join(', ');\r\n };\r\n Utils.getTimeSeriesIdToDisplay = function (instance, emptyDisplayString) {\r\n return Utils.instanceHasEmptyTSID(instance) ? emptyDisplayString : instance.timeSeriesId.map(function (id) { return id === null ? Utils.guidForNullTSID : id; }).join(', ');\r\n };\r\n Utils.getHighlightedTimeSeriesIdToDisplay = function (instance) {\r\n var _a;\r\n return (_a = instance.highlights) === null || _a === void 0 ? void 0 : _a.timeSeriesId.map(function (id, idx) { return instance.timeSeriesId[idx] === null ? Utils.guidForNullTSID : id; }).join(', ');\r\n };\r\n Utils.instanceHasEmptyTSID = function (instance) {\r\n return !instance.timeSeriesId || instance.timeSeriesId.length === 0;\r\n };\r\n // appends dom elements of stripped strings including hits (for instance search results) and mono classed spans (for null tsid)\r\n Utils.appendFormattedElementsFromString = function (targetElem, str, options) {\r\n if (options === void 0) { options = null; }\r\n ;\r\n var data = [];\r\n var splitByNullGuid = function (str) {\r\n var data = [];\r\n var splittedByNull = str.split(Utils.guidForNullTSID);\r\n splittedByNull.forEach(function (s, i) {\r\n if (i === 0) {\r\n if (s) {\r\n data.push({ str: s });\r\n }\r\n }\r\n else {\r\n data.push({ str: nullTsidDisplayString, isNull: true });\r\n if (s) {\r\n data.push({ str: s });\r\n }\r\n }\r\n });\r\n return data;\r\n };\r\n var splitByTag = options && options.splitByTag ? options.splitByTag : 'hit';\r\n var splittedByHit = str.split(\"<\" + splitByTag + \">\");\r\n splittedByHit.forEach(function (s, i) {\r\n if (i === 0) {\r\n data = data.concat(splitByNullGuid(s));\r\n }\r\n else {\r\n var splittedByHitClose = s.split(\"</\" + splitByTag + \">\");\r\n data.push({ str: splittedByHitClose[0], isHit: true });\r\n data = data.concat(splitByNullGuid(splittedByHitClose[1]));\r\n }\r\n });\r\n var additionalClassName = options && options.additionalClassName ? options.additionalClassName : '';\r\n var children = targetElem.selectAll('.tsi-formattedChildren').data(data);\r\n children.enter()\r\n .append(function (d) {\r\n return d.isHit ? document.createElement('mark')\r\n : options && options.inSvg ? document.createElementNS('http://www.w3.org/2000/svg', 'tspan')\r\n : document.createElement('span');\r\n })\r\n .classed('tsi-formattedChildren', true)\r\n .merge(children)\r\n .classed('tsi-baseMono', function (d) { return d.isNull; })\r\n .classed(additionalClassName, options && options.additionalClassName)\r\n .text(function (d) { return d.str; });\r\n children.exit().remove();\r\n };\r\n Utils.escapedTsidForExactSearch = function (tsid) {\r\n var escapedTsid = tsid || '';\r\n if (tsid) {\r\n CharactersToEscapeForExactSearchInstance.forEach(function (c) {\r\n escapedTsid = escapedTsid.split(c).join('+');\r\n });\r\n }\r\n return escapedTsid;\r\n };\r\n return Utils;\r\n}());\r\nexport default Utils;\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { ErrorCodes } from '../UXClient/Constants/Enums';\r\nimport Utils from '../UXClient/Utils';\r\nvar ServerClient = /** @class */ (function () {\r\n function ServerClient() {\r\n var _this = this;\r\n this.apiVersionUrlParam = \"?api-version=2016-12-12\";\r\n this.oldTsmTsqApiVersion = \"?api-version=2018-11-01-preview\";\r\n this.tsmTsqApiVersion = \"?api-version=2020-07-31\";\r\n this.referenceDataAPIVersion = \"?api-version=2017-11-15\";\r\n this.maxRetryCount = 3;\r\n this.sessionId = Utils.guid();\r\n this.retriableStatusCodes = [408, 429, 500, 503];\r\n this.onAjaxError = function (logObject) { };\r\n this.onAjaxRetry = function (logObject) { };\r\n this.onFallbackToOldApiVersion = function (logObject) { };\r\n this.retryBasedOnStatus = function (xhr) { return _this.retriableStatusCodes.indexOf(xhr.status) !== -1; };\r\n this.fallBackToOldApiVersion = function (xhr) { return xhr.status === 400 && xhr.response.indexOf('UnsupportedTSXVersionTSX01') !== -1; };\r\n this.setStandardHeaders = function (xhr, token) {\r\n var clientRequestId = Utils.guid();\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n xhr.setRequestHeader('x-ms-client-request-id', clientRequestId);\r\n xhr.setRequestHeader('x-ms-client-session-id', _this.sessionId);\r\n return clientRequestId;\r\n };\r\n this.mergeTsqEventsResults = function (tsqEvents) {\r\n var events = { properties: [], timestamps: [] };\r\n tsqEvents.forEach(function (tsqe) {\r\n var currentPropertiesValueLength = events.timestamps.length;\r\n if (tsqe.properties && tsqe.properties.length) {\r\n tsqe.properties.forEach(function (prop) {\r\n var foundProperty = events.properties.filter(function (p) { return p.name === prop.name && p.type === prop.type; });\r\n var existingProperty;\r\n if (foundProperty.length === 1) {\r\n var indexOfExistingProperty = events.properties.indexOf(foundProperty[0]);\r\n existingProperty = events.properties[indexOfExistingProperty];\r\n }\r\n else {\r\n existingProperty = { name: prop.name, type: prop.type, values: [] };\r\n events.properties.push(existingProperty);\r\n }\r\n while (existingProperty.values.length < currentPropertiesValueLength) {\r\n existingProperty.values.push(null);\r\n }\r\n existingProperty.values = existingProperty.values.concat(prop.values);\r\n });\r\n }\r\n events.timestamps = events.timestamps.concat(tsqe.timestamps);\r\n });\r\n return events;\r\n };\r\n this.getQueryApiResult = function (token, results, contentObject, index, uri, resolve, messageProperty, onProgressChange, mergeAccumulatedResults, xhr) {\r\n if (onProgressChange === void 0) { onProgressChange = function (percentComplete) { }; }\r\n if (mergeAccumulatedResults === void 0) { mergeAccumulatedResults = false; }\r\n if (xhr === void 0) { xhr = null; }\r\n if (xhr === null) {\r\n xhr = new XMLHttpRequest();\r\n }\r\n var onreadystatechange;\r\n var retryCount = 0;\r\n var retryTimeout;\r\n var continuationToken;\r\n var accumulator = [];\r\n var clientRequestId;\r\n onreadystatechange = function () {\r\n if (xhr.readyState != 4)\r\n return;\r\n var fallBackToOldApiVersion = _this.fallBackToOldApiVersion(xhr);\r\n if (xhr.status == 200) {\r\n var message = JSON.parse(xhr.responseText);\r\n if (!message.continuationToken) {\r\n if (mergeAccumulatedResults && accumulator.length) {\r\n accumulator.push(message);\r\n results[index] = _this.mergeTsqEventsResults(accumulator);\r\n }\r\n else {\r\n results[index] = messageProperty(message);\r\n delete results[index].progress;\r\n }\r\n var eventCount = (results[index] && results[index].timestamps && results[index].timestamps.length) ? results[index].timestamps.length : 0;\r\n var take = (contentObject && contentObject.getEvents && contentObject.getEvents.take) ? contentObject.getEvents.take : 0;\r\n if (eventCount && take && eventCount === take) {\r\n results['moreEventsAvailable'] = true;\r\n }\r\n if (results.map(function (ar) { return !('progress' in ar); }).reduce(function (p, c) { p = c && p; return p; }, true))\r\n resolve(results);\r\n }\r\n else {\r\n accumulator.push(message);\r\n var progressFromMessage = message && message.progress ? message.progress : 0;\r\n results[index].progress = mergeAccumulatedResults ? Math.max(progressFromMessage, accumulator.reduce(function (p, c) { return p + (c.timestamps && c.timestamps.length ? c.timestamps.length : 0); }, 0) / contentObject.getEvents.take * 100) : progressFromMessage;\r\n xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = onreadystatechange;\r\n xhr.open('POST', uri);\r\n _this.setStandardHeaders(xhr, token);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n continuationToken = message.continuationToken;\r\n xhr.setRequestHeader('x-ms-continuation', continuationToken);\r\n xhr.send(JSON.stringify(contentObject));\r\n }\r\n }\r\n else if ((_this.retryBasedOnStatus(xhr) && retryCount < _this.maxRetryCount) || fallBackToOldApiVersion) {\r\n retryCount += fallBackToOldApiVersion ? 0 : 1;\r\n retryTimeout = _this.retryWithDelay(retryCount, function () {\r\n if (fallBackToOldApiVersion) {\r\n uri = uri.split(_this.tsmTsqApiVersion).join(_this.oldTsmTsqApiVersion);\r\n _this.onFallbackToOldApiVersion({ uri: uri, payload: JSON.stringify(contentObject), clientRequestId: clientRequestId, sessionId: _this.sessionId, statusCode: xhr.status });\r\n }\r\n xhr.open('POST', uri);\r\n clientRequestId = _this.setStandardHeaders(xhr, token);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n if (continuationToken)\r\n xhr.setRequestHeader('x-ms-continuation', continuationToken);\r\n xhr.send(JSON.stringify(contentObject));\r\n _this.onAjaxRetry({ uri: uri, payload: JSON.stringify(contentObject), clientRequestId: clientRequestId, sessionId: _this.sessionId, statusCode: xhr.status });\r\n });\r\n }\r\n else if (xhr.status !== 0) {\r\n results[index] = { __tsiError__: JSON.parse(xhr.responseText) };\r\n if (results.map(function (ar) { return !('progress' in ar); }).reduce(function (p, c) { p = c && p; return p; }, true)) {\r\n resolve(results);\r\n _this.onAjaxError({ uri: uri, payload: JSON.stringify(contentObject), clientRequestId: clientRequestId, sessionId: _this.sessionId });\r\n }\r\n }\r\n var percentComplete = Math.max(results.map(function (r) { return 'progress' in r ? r.progress : 100; }).reduce(function (p, c) { return p + c; }, 0) / results.length, 1);\r\n onProgressChange(percentComplete);\r\n };\r\n xhr.onreadystatechange = onreadystatechange;\r\n xhr.onabort = function () {\r\n resolve('__CANCELLED__');\r\n clearTimeout(retryTimeout);\r\n };\r\n xhr.open('POST', uri);\r\n clientRequestId = _this.setStandardHeaders(xhr, token);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.send(JSON.stringify(contentObject));\r\n };\r\n // this function returns a promise which resolve empty object after request is done and \r\n // keeps track of the items and changes the values in the passed parameters \r\n // based on the response if it is erroneous\r\n this.sendBatchDataPostRequestPromise = function (requestParams, batchParams) {\r\n var url = requestParams.url, token = requestParams.token, method = requestParams.method, onProgressChange = requestParams.onProgressChange, batch = requestParams.batch;\r\n return new Promise(function (resolve) {\r\n var batchObject = {};\r\n batchObject[method] = batch;\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState !== 4) {\r\n return;\r\n }\r\n if (xhr.status === 200 || xhr.status === 202) {\r\n var result = JSON.parse(xhr.responseText);\r\n if (result === null || result === void 0 ? void 0 : result.error) {\r\n batchParams.erroneousDataCount += batch.length;\r\n batchParams.resultErrorMessage += result.error.message ? ' Item ' + batchParams.dataIndex + \"-\" + (batchParams.dataIndex + batch.length) + \": \" + result.error.message : '';\r\n batchParams.dataIndex += batch.length;\r\n return;\r\n }\r\n else {\r\n result[method].forEach(function (i) {\r\n var _a;\r\n batchParams.dataIndex++;\r\n if ((i === null || i === void 0 ? void 0 : i.error) || (i === null || i === void 0 ? void 0 : i.code) === ErrorCodes.InvalidInput) {\r\n batchParams.erroneousDataCount++;\r\n batchParams.resultErrorMessage += \"\\n>Item-\" + batchParams.dataIndex + \": \" + (((_a = i === null || i === void 0 ? void 0 : i.error) === null || _a === void 0 ? void 0 : _a.message) || (i === null || i === void 0 ? void 0 : i.message));\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n batchParams.erroneousDataCount += batch.length;\r\n batchParams.resultErrorMessage += ' Item ' + batchParams.dataIndex + \"-\" + (batchParams.dataIndex + batch.length) + \": Server error!\";\r\n batchParams.dataIndex += batch.length;\r\n }\r\n batchParams.completedDataCount += batch.length;\r\n var percentComplete = batchParams.completedDataCount * 100 / batchParams.totalItemCount;\r\n onProgressChange(percentComplete);\r\n resolve({});\r\n };\r\n xhr.open('POST', url);\r\n _this.setStandardHeaders(xhr, token);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.send(JSON.stringify(batchObject));\r\n });\r\n };\r\n this.createPostBatchPromise = function (url, data, token, method, responseTextFormat, onProgressChange, batchSize, maxByteSize) {\r\n var batchParams = {\r\n dataIndex: 0,\r\n erroneousDataCount: 0,\r\n completedDataCount: 0,\r\n totalItemCount: data.length,\r\n resultErrorMessage: ''\r\n };\r\n var batches = [];\r\n while (data.length) {\r\n var batch = [];\r\n while (batch.length < batchSize && Utils.memorySizeOf(batch.concat(data[0])) < maxByteSize) { // create the batch of data to send based on limits provided\r\n batch = batch.concat(data.splice(0, 1));\r\n if (data.length === 0) {\r\n break;\r\n }\r\n }\r\n if (batch.length) {\r\n batches.push(batch);\r\n }\r\n }\r\n //returns a promise with result object which waits for inner promises to make batch requests and resolve\r\n return batches.reduce(function (p, batch) {\r\n return p.then(function () { return _this.sendBatchDataPostRequestPromise({ url: url, token: token, method: method, onProgressChange: onProgressChange, batch: batch }, batchParams); }); // send batches in sequential order\r\n }, Promise.resolve())\r\n .then(function () {\r\n var result = {};\r\n if (batchParams.erroneousDataCount === 0) {\r\n result[method] = [{}];\r\n }\r\n else {\r\n result[method] = [{ error: { code: ErrorCodes.PartialSuccess, message: \"Error in \" + batchParams.erroneousDataCount + \"/\" + batchParams.totalItemCount + (\" items. \" + batchParams.resultErrorMessage) } }];\r\n }\r\n return responseTextFormat(JSON.stringify(result));\r\n });\r\n };\r\n this.createPromiseFromXhrForBatchData = function (url, payload, token, responseTextFormat, onProgressChange, batchSize, maxByteSize) {\r\n if (onProgressChange === void 0) { onProgressChange = function (percentComplete) { }; }\r\n if (batchSize === void 0) { batchSize = 1000; }\r\n if (maxByteSize === void 0) { maxByteSize = 8000000; }\r\n var payloadObj = JSON.parse(payload);\r\n if (payloadObj.put || payloadObj.update) {\r\n var method = payloadObj.put ? \"put\" : \"update\";\r\n var data = payloadObj[method];\r\n return _this.createPostBatchPromise(url, data, token, method, responseTextFormat, onProgressChange, batchSize, maxByteSize);\r\n }\r\n else {\r\n return _this.createPromiseFromXhr(url, 'POST', payload, token, function (responseText) { return JSON.parse(responseText); });\r\n }\r\n };\r\n }\r\n ServerClient.prototype.Server = function () {\r\n };\r\n ServerClient.prototype.createPromiseFromXhr = function (uri, httpMethod, payload, token, responseTextFormat, continuationToken) {\r\n var _this = this;\r\n if (continuationToken === void 0) { continuationToken = null; }\r\n return new Promise(function (resolve, reject) {\r\n var sendRequest;\r\n var retryCount = 0;\r\n var clientRequestId;\r\n sendRequest = function () {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState != 4)\r\n return;\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n if (xhr.responseText.length == 0)\r\n resolve({});\r\n else {\r\n resolve(responseTextFormat(xhr.responseText));\r\n }\r\n }\r\n else if (_this.retryBasedOnStatus(xhr) && retryCount < _this.maxRetryCount) {\r\n retryCount++;\r\n _this.retryWithDelay(retryCount, sendRequest);\r\n _this.onAjaxRetry({ uri: uri, method: httpMethod, payload: JSON.stringify(payload), clientRequestId: clientRequestId, sessionId: _this.sessionId, statusCode: xhr.status });\r\n }\r\n else {\r\n reject(xhr);\r\n _this.onAjaxError({ uri: uri, method: httpMethod, payload: JSON.stringify(payload), clientRequestId: clientRequestId, sessionId: _this.sessionId });\r\n }\r\n };\r\n xhr.open(httpMethod, uri);\r\n clientRequestId = _this.setStandardHeaders(xhr, token);\r\n if (httpMethod == 'POST' || httpMethod == 'PUT')\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n if (continuationToken)\r\n xhr.setRequestHeader('x-ms-continuation', continuationToken);\r\n xhr.send(payload);\r\n };\r\n sendRequest();\r\n });\r\n };\r\n ServerClient.prototype.getCancellableTsqResults = function (token, uri, tsqArray, onProgressChange, mergeAccumulatedResults, storeType) {\r\n if (onProgressChange === void 0) { onProgressChange = function (p) { }; }\r\n if (mergeAccumulatedResults === void 0) { mergeAccumulatedResults = false; }\r\n if (storeType === void 0) { storeType = null; }\r\n // getTsqResults() returns either a promise or an array containing a promise + cancel trigger \r\n // depending on whether we set the hasCancelTrigger flag. Here we need to set the type of what\r\n // we get back to 'unknown'. This lets TypeScript know that we have enough information to\r\n // confidently cast the return value as an Array<Promise<any> | Function>.\r\n var promiseAndTrigger = this.getTsqResults(token, uri, tsqArray, onProgressChange, mergeAccumulatedResults, storeType, true);\r\n return promiseAndTrigger;\r\n };\r\n ServerClient.prototype.getTsqResults = function (token, uri, tsqArray, onProgressChange, mergeAccumulatedResults, storeType, hasCancelTrigger) {\r\n var _this = this;\r\n if (onProgressChange === void 0) { onProgressChange = function (p) { }; }\r\n if (mergeAccumulatedResults === void 0) { mergeAccumulatedResults = false; }\r\n if (storeType === void 0) { storeType = null; }\r\n if (hasCancelTrigger === void 0) { hasCancelTrigger = false; }\r\n var tsqResults = [];\r\n tsqArray.forEach(function (tsq) {\r\n tsqResults.push({ progress: 0 });\r\n });\r\n var xhrs = tsqArray.map(function (tsq) {\r\n return new XMLHttpRequest();\r\n });\r\n var storeTypeString = storeType ? '&storeType=' + storeType : '';\r\n var promise = new Promise(function (resolve, reject) {\r\n tsqArray.map(function (tsq, i) {\r\n return _this.getQueryApiResult(token, tsqResults, tsq, i, \"https://\" + uri + \"/timeseries/query\" + _this.tsmTsqApiVersion + storeTypeString, resolve, function (message) { return message; }, onProgressChange, mergeAccumulatedResults, xhrs[i]);\r\n });\r\n });\r\n if (hasCancelTrigger) {\r\n var cancelTrigger = function () {\r\n xhrs.forEach(function (xhr) {\r\n xhr.abort();\r\n });\r\n };\r\n return [promise, cancelTrigger];\r\n }\r\n return promise;\r\n };\r\n ServerClient.prototype.getAggregates = function (token, uri, tsxArray, onProgressChange) {\r\n var _this = this;\r\n if (onProgressChange === void 0) { onProgressChange = function (p) { }; }\r\n var aggregateResults = [];\r\n tsxArray.forEach(function (ae) {\r\n aggregateResults.push({ progress: 0 });\r\n });\r\n return new Promise(function (resolve, reject) {\r\n tsxArray.forEach(function (tsx, i) {\r\n _this.getQueryApiResult(token, aggregateResults, tsx, i, \"https://\" + uri + \"/aggregates\" + _this.apiVersionUrlParam, resolve, function (message) { return message.aggregates[0]; }, onProgressChange);\r\n });\r\n });\r\n };\r\n ServerClient.prototype.getTimeseriesInstances = function (token, environmentFqdn, limit, timeSeriesIds) {\r\n var _this = this;\r\n if (limit === void 0) { limit = 10000; }\r\n if (timeSeriesIds === void 0) { timeSeriesIds = null; }\r\n if (!timeSeriesIds || timeSeriesIds.length === 0) {\r\n return new Promise(function (resolve, reject) {\r\n _this.getDataWithContinuationBatch(token, resolve, reject, [], 'https://' + environmentFqdn + '/timeseries/instances/' + _this.tsmTsqApiVersion, 'GET', 'instances', null, limit);\r\n });\r\n }\r\n else {\r\n return this.createPromiseFromXhr('https://' + environmentFqdn + '/timeseries/instances/$batch' + this.tsmTsqApiVersion, \"POST\", JSON.stringify({ get: timeSeriesIds }), token, function (responseText) { return JSON.parse(responseText); });\r\n }\r\n };\r\n ServerClient.prototype.getTimeseriesTypes = function (token, environmentFqdn, typeIds) {\r\n if (typeIds === void 0) { typeIds = null; }\r\n if (!typeIds || typeIds.length === 0) {\r\n var uri = 'https://' + environmentFqdn + '/timeseries/types/' + this.tsmTsqApiVersion;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n }\r\n else {\r\n return this.createPromiseFromXhr('https://' + environmentFqdn + '/timeseries/types/$batch' + this.tsmTsqApiVersion, \"POST\", JSON.stringify({ get: { typeIds: typeIds, names: null } }), token, function (responseText) { return JSON.parse(responseText); });\r\n }\r\n };\r\n ServerClient.prototype.postTimeSeriesTypes = function (token, environmentFqdn, payload, useOldApiVersion) {\r\n if (useOldApiVersion === void 0) { useOldApiVersion = false; }\r\n var uri = 'https://' + environmentFqdn + '/timeseries/types/$batch' + (useOldApiVersion ? this.oldTsmTsqApiVersion : this.tsmTsqApiVersion);\r\n return this.createPromiseFromXhr(uri, \"POST\", payload, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.updateSavedQuery = function (token, timeSeriesQuery, endpoint) {\r\n if (endpoint === void 0) { endpoint = 'https://api.timeseries.azure.com'; }\r\n var uri = endpoint + \"/artifacts/\" + timeSeriesQuery.id + this.tsmTsqApiVersion;\r\n var payload = JSON.stringify(timeSeriesQuery);\r\n return this.createPromiseFromXhr(uri, \"MERGE\", payload, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getTimeseriesHierarchies = function (token, environmentFqdn) {\r\n var uri = 'https://' + environmentFqdn + '/timeseries/hierarchies/' + this.tsmTsqApiVersion;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getTimeseriesModel = function (token, environmentFqdn) {\r\n var uri = 'https://' + environmentFqdn + '/timeseries/modelSettings/' + this.tsmTsqApiVersion;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getTimeseriesInstancesPathSearch = function (token, environmentFqdn, payload, instancesContinuationToken, hierarchiesContinuationToken) {\r\n if (instancesContinuationToken === void 0) { instancesContinuationToken = null; }\r\n if (hierarchiesContinuationToken === void 0) { hierarchiesContinuationToken = null; }\r\n var uri = 'https://' + environmentFqdn + '/timeseries/instances/search' + this.tsmTsqApiVersion;\r\n var requestPayload = __assign({}, payload);\r\n if (requestPayload.path.length == 0) {\r\n requestPayload.path = null;\r\n }\r\n return this.createPromiseFromXhr(uri, \"POST\", JSON.stringify(requestPayload), token, function (responseText) { return JSON.parse(responseText); }, instancesContinuationToken || hierarchiesContinuationToken);\r\n };\r\n ServerClient.prototype.getTimeseriesInstancesSuggestions = function (token, environmentFqdn, searchString, take) {\r\n if (take === void 0) { take = 10; }\r\n var uri = 'https://' + environmentFqdn + '/timeseries/instances/suggest' + this.tsmTsqApiVersion;\r\n return this.createPromiseFromXhr(uri, \"POST\", JSON.stringify({ searchString: searchString, take: take }), token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getTimeseriesInstancesSearch = function (token, environmentFqdn, searchString, continuationToken) {\r\n if (continuationToken === void 0) { continuationToken = null; }\r\n var uri = 'https://' + environmentFqdn + '/timeseries/instances/search' + this.tsmTsqApiVersion;\r\n return this.createPromiseFromXhr(uri, \"POST\", JSON.stringify({ searchString: searchString }), token, function (responseText) { return JSON.parse(responseText); }, continuationToken);\r\n };\r\n ServerClient.prototype.getReferenceDatasetRows = function (token, environmentFqdn, datasetId) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n _this.getDataWithContinuationBatch(token, resolve, reject, [], \"https://\" + environmentFqdn + \"/referencedatasets/\" + datasetId + \"/items\" + _this.apiVersionUrlParam + \"&format=stream\", 'POST', 'items');\r\n });\r\n };\r\n ServerClient.prototype.postReferenceDatasetRows = function (token, environmentFqdn, datasetName, rows, onProgressChange) {\r\n if (onProgressChange === void 0) { onProgressChange = function (p) { }; }\r\n var uri = \"https://\" + environmentFqdn + \"/referencedatasets/\" + datasetName + \"/$batch\" + this.apiVersionUrlParam;\r\n return this.createPromiseFromXhrForBatchData(uri, JSON.stringify({ put: rows }), token, function (responseText) { return JSON.parse(responseText); }, onProgressChange);\r\n };\r\n ServerClient.prototype.getReferenceDatasets = function (token, resourceId, endpoint) {\r\n if (endpoint === void 0) { endpoint = \"https://management.azure.com\"; }\r\n var uri = endpoint + resourceId + \"/referencedatasets\" + this.referenceDataAPIVersion;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.deleteReferenceDataSet = function (token, resourceId, datasetName, endpoint) {\r\n if (endpoint === void 0) { endpoint = \"https://management.azure.com\"; }\r\n var uri = endpoint + resourceId + \"/referencedatasets/\" + datasetName + this.referenceDataAPIVersion;\r\n return this.createPromiseFromXhr(uri, \"DELETE\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.putReferenceDataSet = function (token, resourceId, datasetName, dataSet, endpoint) {\r\n if (endpoint === void 0) { endpoint = \"https://management.azure.com\"; }\r\n var uri = endpoint + resourceId + \"/referencedatasets/\" + datasetName + this.referenceDataAPIVersion;\r\n return this.createPromiseFromXhr(uri, \"PUT\", JSON.stringify(dataSet), token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getGen1Environment = function (token, resourceId, endpoint) {\r\n if (endpoint === void 0) { endpoint = \"https://management.azure.com\"; }\r\n var uri = endpoint + resourceId + this.referenceDataAPIVersion;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getEnvironments = function (token, endpoint) {\r\n if (endpoint === void 0) { endpoint = 'https://api.timeseries.azure.com'; }\r\n var uri = endpoint + '/environments' + this.apiVersionUrlParam;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getSampleEnvironments = function (token, endpoint) {\r\n if (endpoint === void 0) { endpoint = 'https://api.timeseries.azure.com'; }\r\n var uri = endpoint + '/sampleenvironments' + this.apiVersionUrlParam;\r\n return this.createPromiseFromXhr(uri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); });\r\n };\r\n ServerClient.prototype.getMetadata = function (token, environmentFqdn, minMillis, maxMillis) {\r\n var uri = 'https://' + environmentFqdn + '/metadata' + this.apiVersionUrlParam;\r\n var searchSpan = { searchSpan: { from: new Date(minMillis).toISOString(), to: new Date(maxMillis).toISOString() } };\r\n var payload = JSON.stringify(searchSpan);\r\n return this.createPromiseFromXhr(uri, \"POST\", payload, token, function (responseText) { return JSON.parse(responseText).properties; });\r\n };\r\n ServerClient.prototype.getEventSchema = function (token, environmentFqdn, minMillis, maxMillis) {\r\n var uri = 'https://' + environmentFqdn + '/eventSchema' + this.tsmTsqApiVersion;\r\n var searchSpan = { searchSpan: { from: new Date(minMillis).toISOString(), to: new Date(maxMillis).toISOString() } };\r\n var payload = JSON.stringify(searchSpan);\r\n return this.createPromiseFromXhr(uri, \"POST\", payload, token, function (responseText) { return JSON.parse(responseText).properties; });\r\n };\r\n ServerClient.prototype.getAvailability = function (token, environmentFqdn, apiVersion, hasWarm) {\r\n var _this = this;\r\n if (apiVersion === void 0) { apiVersion = this.apiVersionUrlParam; }\r\n if (hasWarm === void 0) { hasWarm = false; }\r\n var uriBase = 'https://' + environmentFqdn + '/availability';\r\n var coldUri = uriBase + apiVersion + (hasWarm ? '&storeType=ColdStore' : '');\r\n return new Promise(function (resolve, reject) {\r\n _this.createPromiseFromXhr(coldUri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); }).then(function (coldResponse) {\r\n if (hasWarm) {\r\n var warmUri = uriBase + apiVersion + '&storeType=WarmStore';\r\n _this.createPromiseFromXhr(warmUri, \"GET\", {}, token, function (responseText) { return JSON.parse(responseText); }).then(function (warmResponse) {\r\n var availability = warmResponse ? warmResponse.availability : null;\r\n if (coldResponse.availability) {\r\n availability = Utils.mergeAvailabilities(warmResponse.availability, coldResponse.availability, warmResponse.retention);\r\n }\r\n resolve({ availability: availability });\r\n })\r\n .catch(function () { resolve(coldResponse); });\r\n }\r\n else {\r\n resolve(coldResponse);\r\n }\r\n })\r\n .catch(function (xhr) {\r\n reject(xhr);\r\n });\r\n });\r\n };\r\n ServerClient.prototype.getEvents = function (token, environmentFqdn, predicateObject, options, minMillis, maxMillis) {\r\n var uri = 'https://' + environmentFqdn + '/events' + this.apiVersionUrlParam;\r\n var take = 10000;\r\n var searchSpan = { from: new Date(minMillis).toISOString(), to: new Date(maxMillis).toISOString() };\r\n var topObject = { sort: [{ input: { builtInProperty: '$ts' }, order: 'Asc' }], count: take };\r\n var messageObject = { predicate: predicateObject, top: topObject, searchSpan: searchSpan };\r\n var payload = JSON.stringify(messageObject);\r\n return this.createPromiseFromXhr(uri, \"POST\", payload, token, function (responseText) { return JSON.parse(responseText).events; });\r\n };\r\n ServerClient.prototype.getDataWithContinuationBatch = function (token, resolve, reject, rows, url, verb, propName, continuationToken, maxResults) {\r\n var _this = this;\r\n if (continuationToken === void 0) { continuationToken = null; }\r\n if (maxResults === void 0) { maxResults = Number.MAX_VALUE; }\r\n var continuationToken, sendRequest, clientRequestId, retryCount = 0;\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState != 4)\r\n return;\r\n if (xhr.status == 200) {\r\n var message = JSON.parse(xhr.responseText);\r\n if (message[propName])\r\n rows = rows.concat(message[propName]);\r\n // HACK because /instances doesn't match /items\r\n continuationToken = verb == 'GET' ? message.continuationToken : xhr.getResponseHeader('x-ms-continuation');\r\n if (!continuationToken || rows.length >= maxResults)\r\n resolve(rows);\r\n else\r\n _this.getDataWithContinuationBatch(token, resolve, reject, rows, url, verb, propName, continuationToken, maxResults);\r\n }\r\n else if (_this.retryBasedOnStatus(xhr) && retryCount < _this.maxRetryCount) {\r\n retryCount++;\r\n _this.retryWithDelay(retryCount, sendRequest);\r\n _this.onAjaxRetry({ uri: url, method: verb, clientRequestId: clientRequestId, sessionId: _this.sessionId, statusCode: xhr.status });\r\n }\r\n else {\r\n reject(xhr);\r\n _this.onAjaxError({ uri: url, method: verb, clientRequestId: clientRequestId, sessionId: _this.sessionId });\r\n }\r\n };\r\n sendRequest = function () {\r\n xhr.open(verb, url);\r\n clientRequestId = _this.setStandardHeaders(xhr, token);\r\n if (verb === 'POST')\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n if (continuationToken)\r\n xhr.setRequestHeader('x-ms-continuation', continuationToken);\r\n xhr.send(JSON.stringify({ take: 100000 }));\r\n };\r\n sendRequest();\r\n };\r\n ServerClient.prototype.retryWithDelay = function (retryNumber, method) {\r\n var retryDelay = (Math.exp(retryNumber - 1) + Math.random() * 2) * 1000;\r\n return setTimeout(method, retryDelay);\r\n };\r\n return ServerClient;\r\n}());\r\nexport default ServerClient;\r\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n 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\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\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 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 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 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) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './Legend.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { DataTypes, EventElementTypes } from \"./../../Constants/Enums\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nvar NUMERICSPLITBYHEIGHT = 44;\r\nvar NONNUMERICSPLITBYHEIGHT = 24;\r\nvar Legend = /** @class */ (function (_super) {\r\n __extends(Legend, _super);\r\n function Legend(drawChart, renderTarget, legendWidth) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.renderSplitBys = function (aggKey, aggSelection, dataType, noSplitBys) {\r\n var splitByLabelData = Object.keys(_this.chartComponentData.timeArrays[aggKey]);\r\n var firstSplitBy = _this.chartComponentData.displayState[aggKey].splitBys[Object.keys(_this.chartComponentData.displayState[aggKey].splitBys)[0]];\r\n var firstSplitByType = firstSplitBy ? firstSplitBy.visibleType : null;\r\n var isSame = Object.keys(_this.chartComponentData.displayState[aggKey].splitBys).reduce(function (isSame, curr) {\r\n return (firstSplitByType == _this.chartComponentData.displayState[aggKey].splitBys[curr].visibleType) && isSame;\r\n }, true);\r\n var showMoreSplitBys = function () {\r\n var oldShownSplitBys = _this.chartComponentData.displayState[aggKey].shownSplitBys;\r\n _this.chartComponentData.displayState[aggKey].shownSplitBys = Math.min(oldShownSplitBys + 20, splitByLabelData.length);\r\n if (oldShownSplitBys != _this.chartComponentData.displayState[aggKey].shownSplitBys) {\r\n _this.renderSplitBys(aggKey, aggSelection, dataType, noSplitBys);\r\n }\r\n };\r\n var splitByContainer = aggSelection.selectAll(\".tsi-splitByContainer\").data([aggKey]);\r\n var splitByContainerEntered = splitByContainer.enter().append(\"div\")\r\n .merge(splitByContainer)\r\n .classed(\"tsi-splitByContainer\", true);\r\n var splitByLabels = splitByContainerEntered.selectAll('.tsi-splitByLabel')\r\n .data(splitByLabelData.slice(0, _this.chartComponentData.displayState[aggKey].shownSplitBys), function (d) {\r\n return d;\r\n });\r\n var self = _this;\r\n var splitByLabelsEntered = splitByLabels\r\n .enter()\r\n .append(\"div\")\r\n .merge(splitByLabels)\r\n .attr('role', _this.legendState === 'compact' ? 'button' : 'presentation')\r\n .attr('tabindex', _this.legendState === 'compact' ? '0' : '-1')\r\n .on('keypress', function (event, splitBy) {\r\n if (_this.legendState === 'compact' && (event.keyCode === 13 || event.keyCode === 32)) { //space or enter\r\n _this.toggleSplitByVisible(aggKey, splitBy);\r\n _this.drawChart();\r\n event.preventDefault();\r\n }\r\n })\r\n .on(\"click\", function (event, splitBy) {\r\n if (self.legendState == \"compact\") {\r\n self.toggleSplitByVisible(aggKey, splitBy);\r\n }\r\n else {\r\n self.toggleSticky(aggKey, splitBy);\r\n }\r\n self.drawChart();\r\n })\r\n .on(\"mouseover\", function (event, splitBy) {\r\n event.stopPropagation();\r\n self.labelMouseover(aggKey, splitBy);\r\n })\r\n .on(\"mouseout\", function (event) {\r\n event.stopPropagation();\r\n self.svgSelection.selectAll(\".tsi-valueElement\")\r\n .attr(\"stroke-opacity\", 1)\r\n .attr(\"fill-opacity\", 1);\r\n self.labelMouseout(self.svgSelection, aggKey);\r\n })\r\n .attr(\"class\", function (splitBy, i) {\r\n var compact = (dataType !== DataTypes.Numeric) ? 'tsi-splitByLabelCompact' : '';\r\n var shown = Utils.getAgVisible(self.chartComponentData.displayState, aggKey, splitBy) ? 'shown' : '';\r\n return \"tsi-splitByLabel tsi-splitByLabel \" + compact + \" \" + shown;\r\n })\r\n .classed(\"stickied\", function (splitBy, i) {\r\n if (self.chartComponentData.stickiedKey != null) {\r\n return aggKey == self.chartComponentData.stickiedKey.aggregateKey && splitBy == self.chartComponentData.stickiedKey.splitBy;\r\n }\r\n });\r\n var colors = Utils.createSplitByColors(self.chartComponentData.displayState, aggKey, self.chartOptions.keepSplitByColor);\r\n splitByLabelsEntered.each(function (splitBy, j) {\r\n var color = (self.chartComponentData.isFromHeatmap) ? self.chartComponentData.displayState[aggKey].color : colors[j];\r\n if (dataType === DataTypes.Numeric || noSplitBys || self.legendState === 'compact') {\r\n var colorKey = d3.select(this).selectAll('.tsi-colorKey').data([color]);\r\n var colorKeyEntered = colorKey.enter()\r\n .append(\"div\")\r\n .attr(\"class\", 'tsi-colorKey')\r\n .merge(colorKey);\r\n if (dataType === DataTypes.Numeric) {\r\n colorKeyEntered.style('background-color', function (d) {\r\n return d;\r\n });\r\n }\r\n else {\r\n self.createNonNumericColorKey(dataType, colorKeyEntered, aggKey);\r\n }\r\n d3.select(this).classed('tsi-nonCompactNonNumeric', (dataType === DataTypes.Categorical || dataType === DataTypes.Events) && this.legendState !== 'compact');\r\n colorKey.exit().remove();\r\n }\r\n else {\r\n d3.select(this).selectAll('.tsi-colorKey').remove();\r\n }\r\n if (d3.select(this).select('.tsi-eyeIcon').empty()) {\r\n d3.select(this).append(\"button\")\r\n .attr(\"class\", \"tsi-eyeIcon\")\r\n .attr('aria-label', function () {\r\n var showOrHide = self.chartComponentData.displayState[aggKey].splitBys[splitBy].visible ? self.getString('hide series') : self.getString('show series');\r\n return showOrHide + \" \" + splitBy + \" \" + self.getString('in group') + \" \" + self.chartComponentData.displayState[aggKey].name;\r\n })\r\n .attr('title', function () { return self.getString('Show/Hide values'); })\r\n .on(\"click\", function (event) {\r\n event.stopPropagation();\r\n self.toggleSplitByVisible(aggKey, splitBy);\r\n d3.select(this)\r\n .classed(\"shown\", Utils.getAgVisible(self.chartComponentData.displayState, aggKey, splitBy));\r\n self.drawChart();\r\n });\r\n }\r\n if (d3.select(this).select('.tsi-seriesName').empty()) {\r\n var seriesName = d3.select(this)\r\n .append('div')\r\n .attr('class', 'tsi-seriesName');\r\n Utils.appendFormattedElementsFromString(seriesName, noSplitBys ? (self.chartComponentData.displayState[aggKey].name) : splitBy);\r\n }\r\n if (dataType === DataTypes.Numeric) {\r\n if (d3.select(this).select('.tsi-seriesTypeSelection').empty()) {\r\n d3.select(this).append(\"select\")\r\n .attr('aria-label', self.getString(\"Series type selection for\") + \" \" + splitBy + \" \" + self.getString('in group') + \" \" + self.chartComponentData.displayState[aggKey].name)\r\n .attr('class', 'tsi-seriesTypeSelection')\r\n .on(\"change\", function (data) {\r\n var seriesType = d3.select(this).property(\"value\");\r\n self.chartComponentData.displayState[aggKey].splitBys[splitBy].visibleType = seriesType;\r\n self.drawChart();\r\n })\r\n .on(\"click\", function (event) {\r\n event.stopPropagation();\r\n });\r\n }\r\n d3.select(this).select('.tsi-seriesTypeSelection')\r\n .each(function (d) {\r\n var typeLabels = d3.select(this).selectAll('option')\r\n .data(function (data) { return self.chartComponentData.displayState[aggKey].splitBys[splitBy].types.map(function (type) {\r\n return {\r\n type: type,\r\n aggKey: aggKey,\r\n splitBy: splitBy,\r\n visibleMeasure: Utils.getAgVisibleMeasure(self.chartComponentData.displayState, aggKey, splitBy)\r\n };\r\n }); });\r\n typeLabels\r\n .enter()\r\n .append(\"option\")\r\n .attr(\"class\", \"seriesTypeLabel\")\r\n .merge(typeLabels)\r\n .property(\"selected\", function (data) {\r\n return ((data.type == Utils.getAgVisibleMeasure(self.chartComponentData.displayState, data.aggKey, data.splitBy)) ?\r\n \" selected\" : \"\");\r\n })\r\n .text(function (data) { return data.type; });\r\n typeLabels.exit().remove();\r\n });\r\n }\r\n else {\r\n d3.select(this).selectAll('.tsi-seriesTypeSelection').remove();\r\n }\r\n });\r\n splitByLabels.exit().remove();\r\n var shouldShowMore = self.chartComponentData.displayState[aggKey].shownSplitBys < splitByLabelData.length;\r\n splitByContainerEntered.selectAll('.tsi-legendShowMore').remove();\r\n if (_this.legendState === 'shown' && shouldShowMore) {\r\n splitByContainerEntered.append('button')\r\n .text(_this.getString('Show more'))\r\n .attr('class', 'tsi-legendShowMore')\r\n .style('display', (_this.legendState === 'shown' && shouldShowMore) ? 'block' : 'none')\r\n .on('click', showMoreSplitBys);\r\n }\r\n splitByContainerEntered.on(\"scroll\", function () {\r\n if (self.chartOptions.legend === 'shown') {\r\n if (this.scrollTop + this.clientHeight + 40 > this.scrollHeight) {\r\n showMoreSplitBys();\r\n }\r\n }\r\n });\r\n splitByContainer.exit().remove();\r\n };\r\n _this.toggleSticky = function (aggregateKey, splitBy) {\r\n //don't do anything if not visible \r\n if (!_this.chartComponentData.displayState[aggregateKey].visible ||\r\n !_this.chartComponentData.displayState[aggregateKey].splitBys[splitBy].visible)\r\n return;\r\n if (_this.chartComponentData.stickiedKey != null &&\r\n _this.chartComponentData.stickiedKey.aggregateKey == aggregateKey &&\r\n _this.chartComponentData.stickiedKey.splitBy == splitBy) {\r\n _this.chartComponentData.stickiedKey = null;\r\n }\r\n else {\r\n if (_this.stickySeriesAction) {\r\n _this.stickySeriesAction(aggregateKey, splitBy);\r\n }\r\n }\r\n };\r\n _this.drawChart = drawChart;\r\n _this.legendWidth = legendWidth;\r\n _this.legendElement = d3.select(renderTarget).insert(\"div\", \":first-child\")\r\n .attr(\"class\", \"tsi-legend\")\r\n .style(\"left\", \"0px\")\r\n .style(\"width\", (_this.legendWidth) + \"px\"); // - 16 for the width of the padding\r\n return _this;\r\n }\r\n Legend.prototype.labelMouseoutWrapper = function (labelMouseout, svgSelection, event) {\r\n return function (svgSelection, aggKey) {\r\n event === null || event === void 0 ? void 0 : event.stopPropagation();\r\n svgSelection.selectAll(\".tsi-valueElement\")\r\n .filter(function () { return !d3.select(this).classed(\"tsi-valueEnvelope\"); })\r\n .attr(\"stroke-opacity\", 1)\r\n .attr(\"fill-opacity\", 1);\r\n svgSelection.selectAll(\".tsi-valueEnvelope\")\r\n .attr(\"fill-opacity\", .2);\r\n labelMouseout(svgSelection, aggKey);\r\n };\r\n };\r\n Legend.prototype.toggleSplitByVisible = function (aggregateKey, splitBy) {\r\n var _this = this;\r\n var newState = !this.chartComponentData.displayState[aggregateKey].splitBys[splitBy].visible;\r\n this.chartComponentData.displayState[aggregateKey].splitBys[splitBy].visible = newState;\r\n this.chartComponentData.displayState[aggregateKey].visible = Object.keys(this.chartComponentData.displayState[aggregateKey].splitBys)\r\n .reduce(function (prev, curr) {\r\n return _this.chartComponentData.displayState[aggregateKey][\"splitBys\"][curr][\"visible\"] || prev;\r\n }, false);\r\n //turn off sticky if making invisible\r\n if (newState == false && (this.chartComponentData.stickiedKey != null &&\r\n this.chartComponentData.stickiedKey.aggregateKey == aggregateKey &&\r\n this.chartComponentData.stickiedKey.splitBy == splitBy)) {\r\n this.chartComponentData.stickiedKey = null;\r\n }\r\n };\r\n Legend.prototype.triggerSplitByFocus = function (aggKey, splitBy) {\r\n if (this.chartOptions.legend == \"hidden\") {\r\n return;\r\n }\r\n this.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n this.legendElement.selectAll('.tsi-splitByLabel').filter(function (labelData) {\r\n return (d3.select(this.parentNode).datum() == aggKey) && (labelData == splitBy);\r\n }).classed(\"inFocus\", true);\r\n var indexOfSplitBy = Object.keys(this.chartComponentData.displayState[aggKey].splitBys).indexOf(splitBy);\r\n if (indexOfSplitBy != -1) {\r\n var splitByNode = this.legendElement.selectAll('.tsi-splitByContainer').filter(function (d) {\r\n return d == aggKey;\r\n }).node();\r\n var prospectiveScrollTop = Math.max((indexOfSplitBy - 1) * this.getHeightPerSplitBy(aggKey), 0);\r\n if (splitByNode.scrollTop < prospectiveScrollTop - (splitByNode.clientHeight - 40) || splitByNode.scrollTop > prospectiveScrollTop) {\r\n splitByNode.scrollTop = prospectiveScrollTop;\r\n }\r\n }\r\n };\r\n Legend.prototype.getHeightPerSplitBy = function (aggKey) {\r\n return (this.chartComponentData.displayState[aggKey].dataType === DataTypes.Numeric ? NUMERICSPLITBYHEIGHT : NONNUMERICSPLITBYHEIGHT);\r\n };\r\n Legend.prototype.createGradient = function (gradientKey, svg, values) {\r\n var gradient = svg.append('defs').append('linearGradient')\r\n .attr('id', gradientKey).attr('x1', '0%').attr('x2', '0%').attr('y1', '0%').attr('y2', '100%');\r\n var catCount = Object.keys(values).length;\r\n Object.keys(values).forEach(function (category, i) {\r\n var currentStop = i / catCount * 100;\r\n var nextStop = (i + 1) / catCount * 100;\r\n var color = values[category].color;\r\n gradient.append('stop')\r\n .attr(\"offset\", currentStop + \"%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", 1);\r\n gradient.append('stop')\r\n .attr(\"offset\", nextStop + \"%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", 1);\r\n });\r\n };\r\n Legend.prototype.isNonNumeric = function (aggKey) {\r\n var dataType = this.chartComponentData.displayState[aggKey].dataType;\r\n return (dataType === DataTypes.Categorical || dataType === DataTypes.Events);\r\n };\r\n Legend.prototype.createNonNumericColorKey = function (dataType, colorKey, aggKey) {\r\n if (dataType === DataTypes.Categorical) {\r\n this.createCategoricalColorKey(colorKey, aggKey);\r\n }\r\n if (dataType === DataTypes.Events) {\r\n this.createEventsColorKey(colorKey, aggKey);\r\n }\r\n };\r\n Legend.prototype.createCategoricalColorKey = function (colorKey, aggKey) {\r\n var categories = this.chartComponentData.displayState[aggKey].aggregateExpression.valueMapping;\r\n colorKey.classed('tsi-categoricalColorKey', true);\r\n colorKey.selectAll('*').remove();\r\n var svg = colorKey.append('svg')\r\n .attr('width', colorKey.style('width'))\r\n .attr('height', colorKey.style('height'));\r\n var rect = svg.append('rect')\r\n .attr('width', '100%')\r\n .attr('height', '100%')\r\n .attr('fill', 'black');\r\n var gradientKey = Utils.guid();\r\n this.createGradient(gradientKey, svg, categories);\r\n rect.attr('fill', \"url(#\" + gradientKey + \")\");\r\n };\r\n Legend.prototype.createEventsColorKey = function (colorKey, aggKey) {\r\n var categories = this.chartComponentData.displayState[aggKey].aggregateExpression.valueMapping;\r\n var eventElementType = this.chartComponentData.displayState[aggKey].aggregateExpression.eventElementType;\r\n colorKey.classed('tsi-eventsColorKey', true);\r\n colorKey.selectAll('*').remove();\r\n var colorKeyWidth = colorKey.node().getBoundingClientRect().width;\r\n var colorKeyHeight = colorKey.node().getBoundingClientRect().height;\r\n var colorKeyUnitLength = Math.floor(colorKeyHeight / Math.sqrt(2));\r\n var svg = colorKey.append('svg')\r\n .attr('width', colorKeyWidth + \"px\")\r\n .attr('height', colorKeyHeight + \"px\");\r\n var gradientKey = Utils.guid();\r\n this.createGradient(gradientKey, svg, categories);\r\n if (eventElementType === EventElementTypes.Teardrop) {\r\n svg.append('path')\r\n .attr('transform', function (d) {\r\n return 'translate(' + (colorKeyWidth * .75) + ',' + (colorKeyHeight * .75) + ') rotate(180)';\r\n })\r\n .attr('d', this.teardropD(colorKeyWidth / 2, colorKeyHeight / 2))\r\n .attr('stroke-width', Math.min(colorKeyUnitLength / 2.25, 8))\r\n .style('fill', 'none')\r\n .style('stroke', \"url(#\" + gradientKey + \")\");\r\n }\r\n else {\r\n var rect = svg.append('rect')\r\n .attr('width', colorKeyUnitLength)\r\n .attr('height', colorKeyUnitLength)\r\n .attr('transform', \"translate(\" + (colorKeyWidth / 2) + \",0)rotate(45)\")\r\n .attr('fill', 'black');\r\n rect.attr('fill', \"url(#\" + gradientKey + \")\");\r\n }\r\n };\r\n Legend.prototype.draw = function (legendState, chartComponentData, labelMouseover, svgSelection, options, labelMouseoutAction, stickySeriesAction, event) {\r\n var _this = this;\r\n if (labelMouseoutAction === void 0) { labelMouseoutAction = null; }\r\n if (stickySeriesAction === void 0) { stickySeriesAction = null; }\r\n this.chartOptions.setOptions(options);\r\n this.chartComponentData = chartComponentData;\r\n this.legendState = legendState;\r\n this.stickySeriesAction = stickySeriesAction;\r\n this.labelMouseover = labelMouseover;\r\n this.labelMouseout = this.labelMouseoutWrapper(labelMouseoutAction, svgSelection, event);\r\n this.svgSelection = svgSelection;\r\n var legend = this.legendElement;\r\n var self = this;\r\n _super.prototype.themify.call(this, this.legendElement, this.chartOptions.theme);\r\n legend.style('visibility', this.legendState != 'hidden')\r\n .classed('compact', this.legendState == 'compact')\r\n .classed('hidden', this.legendState == 'hidden');\r\n var seriesNames = Object.keys(this.chartComponentData.displayState);\r\n var seriesLabels = legend.selectAll(\".tsi-seriesLabel\")\r\n .data(seriesNames, function (d) { return d; });\r\n var seriesLabelsEntered = seriesLabels.enter()\r\n .append(\"div\")\r\n .merge(seriesLabels)\r\n .attr(\"class\", function (d, i) {\r\n return \"tsi-seriesLabel \" + (_this.chartComponentData.displayState[d][\"visible\"] ? \" shown\" : \"\");\r\n })\r\n .style(\"min-width\", function () {\r\n return Math.min(124, _this.legendElement.node().clientWidth / seriesNames.length) + 'px';\r\n })\r\n .style(\"border-color\", function (d, i) {\r\n if (d3.select(this).classed(\"shown\"))\r\n return self.chartComponentData.displayState[d].color;\r\n return \"lightgray\";\r\n });\r\n var self = this;\r\n var heightPerNameLabel = 25;\r\n var verticalPaddingPerSeriesLabel = 16;\r\n var usableLegendHeight = legend.node().clientHeight;\r\n var prospectiveAggregateHeight = Math.ceil(Math.max(201, (usableLegendHeight / seriesLabelsEntered.size())));\r\n var contentHeight = 0;\r\n seriesLabelsEntered.each(function (aggKey, i) {\r\n var heightPerSplitBy = self.getHeightPerSplitBy(aggKey);\r\n var splitByLabelData = Object.keys(self.chartComponentData.timeArrays[aggKey]);\r\n var noSplitBys = splitByLabelData.length == 1 && splitByLabelData[0] == \"\";\r\n var seriesNameLabel = d3.select(this).selectAll(\".tsi-seriesNameLabel\").data([aggKey]);\r\n d3.select(this).classed('tsi-nsb', noSplitBys);\r\n var enteredSeriesNameLabel = seriesNameLabel.enter().append(\"button\")\r\n .merge(seriesNameLabel)\r\n .attr(\"class\", function (agg, i) {\r\n return \"tsi-seriesNameLabel\" + (self.chartComponentData.displayState[agg].visible ? \" shown\" : \"\");\r\n })\r\n .attr(\"aria-label\", function (agg) {\r\n var showOrHide = self.chartComponentData.displayState[agg].visible ? self.getString('hide group') : self.getString('show group');\r\n return showOrHide + \" \" + self.getString('group') + \" \" + Utils.stripNullGuid(self.chartComponentData.displayState[agg].name);\r\n })\r\n .on(\"click\", function (event, d) {\r\n var newState = !self.chartComponentData.displayState[d].visible;\r\n self.chartComponentData.displayState[d].visible = newState;\r\n //turn off sticky if making invisible\r\n if (newState == false && (self.chartComponentData.stickiedKey != null &&\r\n self.chartComponentData.stickiedKey.aggregateKey == d)) {\r\n self.chartComponentData.stickiedKey = null;\r\n }\r\n self.drawChart();\r\n })\r\n .on(\"mouseover\", function (event, d) {\r\n labelMouseover(d);\r\n })\r\n .on(\"mouseout\", function (event, d) {\r\n self.labelMouseout(svgSelection, d);\r\n });\r\n var dataType = self.chartComponentData.displayState[aggKey].dataType;\r\n if (dataType === DataTypes.Categorical || dataType === DataTypes.Events) {\r\n enteredSeriesNameLabel.classed('tsi-nonCompactNonNumeric', true);\r\n var colorKey = enteredSeriesNameLabel.selectAll('.tsi-colorKey').data(['']);\r\n var colorKeyEntered = colorKey.enter()\r\n .append(\"div\")\r\n .attr(\"class\", 'tsi-colorKey')\r\n .merge(colorKey);\r\n self.createNonNumericColorKey(dataType, colorKeyEntered, aggKey);\r\n colorKey.exit().remove();\r\n }\r\n var seriesNameLabelText = enteredSeriesNameLabel.selectAll(\"h4\").data([aggKey]);\r\n seriesNameLabelText.enter()\r\n .append(\"h4\")\r\n .merge(seriesNameLabelText)\r\n .attr(\"title\", function (d) { return Utils.stripNullGuid(self.chartComponentData.displayState[d].name); })\r\n .each(function () {\r\n Utils.appendFormattedElementsFromString(d3.select(this), self.chartComponentData.displayState[aggKey].name);\r\n });\r\n seriesNameLabelText.exit().remove();\r\n seriesNameLabel.exit().remove();\r\n var splitByContainerHeight;\r\n if (splitByLabelData.length > (prospectiveAggregateHeight / heightPerSplitBy)) {\r\n splitByContainerHeight = prospectiveAggregateHeight - heightPerNameLabel;\r\n contentHeight += splitByContainerHeight + heightPerNameLabel;\r\n }\r\n else if (splitByLabelData.length > 1 || (splitByLabelData.length === 1 && splitByLabelData[0] !== \"\")) {\r\n splitByContainerHeight = splitByLabelData.length * heightPerSplitBy + heightPerNameLabel;\r\n contentHeight += splitByContainerHeight + heightPerNameLabel;\r\n }\r\n else {\r\n splitByContainerHeight = heightPerSplitBy;\r\n contentHeight += splitByContainerHeight;\r\n }\r\n if (self.chartOptions.legend == \"shown\") {\r\n d3.select(this).style(\"height\", splitByContainerHeight + \"px\");\r\n }\r\n else {\r\n d3.select(this).style(\"height\", \"unset\");\r\n }\r\n var splitByContainer = d3.select(this).selectAll(\".tsi-splitByContainer\").data([aggKey]);\r\n var splitByContainerEntered = splitByContainer.enter().append(\"div\")\r\n .merge(splitByContainer)\r\n .classed(\"tsi-splitByContainer\", true);\r\n var aggSelection = d3.select(this);\r\n var sBs = self.renderSplitBys(aggKey, aggSelection, dataType, noSplitBys);\r\n splitByContainerEntered.on(\"scroll\", function () {\r\n if (self.chartOptions.legend == \"shown\") {\r\n if (this.scrollTop + this.clientHeight + 40 > this.scrollHeight) {\r\n var oldShownSplitBys = self.chartComponentData.displayState[aggKey].shownSplitBys;\r\n self.chartComponentData.displayState[aggKey].shownSplitBys = Math.min(oldShownSplitBys + 20, splitByLabelData.length);\r\n if (oldShownSplitBys != self.chartComponentData.displayState[aggKey].shownSplitBys) {\r\n self.renderSplitBys(aggKey, aggSelection, dataType, noSplitBys);\r\n }\r\n }\r\n }\r\n });\r\n d3.select(this).on('scroll', function () {\r\n if (self.chartOptions.legend == \"compact\") {\r\n if (this.scrollLeft + this.clientWidth + 40 > this.scrollWidth) {\r\n var oldShownSplitBys = self.chartComponentData.displayState[aggKey].shownSplitBys;\r\n self.chartComponentData.displayState[aggKey].shownSplitBys = Math.min(oldShownSplitBys + 20, splitByLabelData.length);\r\n if (oldShownSplitBys != self.chartComponentData.displayState[aggKey].shownSplitBys) {\r\n this.renderSplitBys(dataType);\r\n }\r\n }\r\n }\r\n });\r\n splitByContainer.exit().remove();\r\n });\r\n if (this.chartOptions.legend == 'shown') {\r\n var legendHeight = legend.node().clientHeight;\r\n //minSplitBysForFlexGrow: the minimum number of split bys for flex-grow to be triggered \r\n if (contentHeight < usableLegendHeight) {\r\n this.legendElement.classed(\"tsi-flexLegend\", true);\r\n seriesLabelsEntered.each(function (d) {\r\n var heightPerSplitBy = self.getHeightPerSplitBy(d);\r\n var minSplitByForFlexGrow = (prospectiveAggregateHeight - heightPerNameLabel) / heightPerSplitBy;\r\n var splitBysCount = Object.keys(self.chartComponentData.displayState[String(d3.select(this).data()[0])].splitBys).length;\r\n if (splitBysCount > minSplitByForFlexGrow) {\r\n d3.select(this).style(\"flex-grow\", 1);\r\n }\r\n });\r\n }\r\n else {\r\n this.legendElement.classed(\"tsi-flexLegend\", false);\r\n }\r\n }\r\n seriesLabels.exit().remove();\r\n };\r\n return Legend;\r\n}(Component));\r\nexport default Legend;\r\n","var Strings = /** @class */ (function () {\r\n function Strings() {\r\n this.stringValueDefaults = {\r\n \"Last 30 mins\": \"Last 30 mins\",\r\n \"Last Hour\": \"Last Hour\",\r\n \"Last 2 Hours\": \"Last 2 Hours\",\r\n \"Last 4 Hours\": \"Last 4 Hours\",\r\n \"Last 12 Hours\": \"Last 12 Hours\",\r\n \"Last 24 Hours\": \"Last 24 Hours\",\r\n \"Last 7 Days\": \"Last 7 Days\",\r\n \"Last 30 Days\": \"Last 30 Days\",\r\n \"Custom\": \"Custom\",\r\n \"Timeframe\": \"Timeframe\",\r\n \"Save\": \"Save\",\r\n \"timezone\": \"timezone\",\r\n \"start\": \"start\",\r\n \"end\": \"end\",\r\n \"Latest\": \"Latest\",\r\n \"Show ellipsis menu\": \"Show ellipsis menu\",\r\n \"Hide ellipsis menu\": \"Hide ellipsis menu\",\r\n \"Download as CSV\": \"Download as CSV\",\r\n \"Toggle all columns\": \"Toggle all columns\",\r\n \"All Columns\": \"All Columns\",\r\n \"only\": \"only\",\r\n \"Invalid Date\": \"Invalid Date\",\r\n \"Stack/Unstack Bars\": \"Stack/Unstack Bars\",\r\n \"Stack bars\": \"Stack bars\",\r\n \"Unstack bars\": \"Unstack bars\",\r\n \"No filter results\": \"No filter results\",\r\n \"All hierarchies\": \"All hierarchies\",\r\n \"Selected\": \"Selected\",\r\n \"toggle visibility for\": \"toggle visibility for\",\r\n \"Series type selection for\": \"Series type selection for\",\r\n \"shifted\": \"shifted\",\r\n \"Click to drop marker\": \"Click to drop marker\",\r\n \"drag to reposition\": \"drag to reposition\",\r\n \"Delete marker at\": \"Delete marker at\",\r\n \"set axis state to\": \"set axis state to\",\r\n \"Drop a Marker\": \"Drop a Marker\",\r\n \"Search Time Series Instances\": \"Search Time Series Instances\",\r\n \"No results\": \"No results\",\r\n \"No instances\": \"No instances found\",\r\n \"No search result\": \"No instances found for entered search term.\",\r\n \"Instance not found\": \"Instance not found under selected hierarchy.\",\r\n \"Show more\": \"Show more\",\r\n \"No description\": \"No description\",\r\n \"Time Series ID\": \"Time Series ID\",\r\n \"Currently displayed time is\": \"Currently displayed time is\",\r\n \"Left arrow to go back in time\": \"Left arrow to go back in time\",\r\n \"right arrow to go forward\": \"right arrow to go forward\",\r\n \"Local\": \"Local\",\r\n \"Display Grid\": \"Display Grid\",\r\n \"Previous Month\": \"Previous Month\",\r\n \"Next Month\": \"Next Month\",\r\n \"Unassigned Time Series Instances\": \"Unassigned Time Series Instances\",\r\n \"Search globally\": \"Search globally\",\r\n \"Lookup globally\": \"Lookup globally\",\r\n \"Show More Instances\": \"Show more instances\",\r\n \"Show More Hierarchies\": \"Show more hierarchies\",\r\n \"Add to Filter Path\": \"Add to Filter Path\",\r\n \"Empty\": \"Empty\",\r\n \"Date/Time\": \"Date/Time\",\r\n \"show series\": \"show series\",\r\n \"hide series\": \"hide series\",\r\n \"in group\": \"in group\",\r\n \"show group\": \"show group\",\r\n \"hide group\": \"hide group\",\r\n \"Use the arrow keys to navigate the values of each cell\": \"Use the arrow keys to navigate the values of each cell\",\r\n \"A grid of values\": \"A grid of values\",\r\n \"close grid\": \"close grid\",\r\n \"column header for date\": \"column header for date\",\r\n \"row header for\": \"row header for\",\r\n \"values for cell at\": \"values for cell at\",\r\n \"no values at\": \"no values at\",\r\n \"and\": \"and\",\r\n \"are\": \"are\",\r\n \"timezone selection\": \"timezone selection\",\r\n \"Start time input\": \"Start time input\",\r\n \"End time input\": \"End time input\",\r\n \"*\": \"*\",\r\n \"snap end time to latest\": \"snap end time to latest\",\r\n \"zoom in\": \"zoom in\",\r\n \"zoom out\": \"zoom out\",\r\n \"A line chart zoom in\": \"A line chart zoom in\",\r\n \"A line chart zoom out\": \"A line chart zoom out\",\r\n \"select quick time of\": \"select quick time of\",\r\n \"a time selection control dialog\": \"a time selection control dialog.\",\r\n \"a button to launch a time selection dialog current selected time is \": \"a button to launch a time selection dialog. current selected time is \",\r\n \"No color\": \"No color\",\r\n \"Change y-axis type\": \"Change y-axis type\",\r\n \"Show/Hide values\": \"Show/Hide values\",\r\n \"Line chart\": \"Line chart\",\r\n \"Bar chart\": \"Bar chart\",\r\n \"Heatmap\": \"Heatmap\",\r\n \"Pie chart\": \"Pie chart\",\r\n \"Scatter plot\": \"Scatter plot\",\r\n \"Select color\": \"Select color\",\r\n \"Search suggestion instruction\": \"When autocomplete results are available use up and down arrows to review and enter to select\",\r\n \"Search suggestions available\": \" results available, keyboard users, use up and down arrows to review and enter to select.\",\r\n \"Hierarchy list\": \"Hierarchy list\",\r\n \"event in series\": \"Event in series\",\r\n \"at time\": \"at time\",\r\n \"measure with key\": \"measure with key\",\r\n \"and value\": \"and value\",\r\n \"Looking for\": \"Looking for\",\r\n \"Hierarchy error\": \"Error occured! Refreshing hierarchy...\",\r\n \"Failed to get token\": \"Failed to get token\",\r\n \"Error in hierarchy navigation\": \"Error in hierarchy navigation\",\r\n \"Failed to load types for navigation\": \"Failed to load types for navigation\",\r\n \"Failed to load hierarchies for navigation\": \"Failed to load hierarchies for navigation\",\r\n \"Failed to complete search\": \"Failed to complete search\",\r\n \"Failed to get instance details\": \"Failed to get instance details\",\r\n \"Add\": \"Add\",\r\n \"Search\": \"Search\",\r\n \"Marker\": \"Marker\",\r\n \"Start at\": \"Start at\",\r\n \"Dismiss\": \"Dismiss\"\r\n };\r\n this.stringValues = {};\r\n this.stringValues = this.stringValueDefaults;\r\n }\r\n Strings.prototype.mergeStrings = function (stringKeyValues) {\r\n var _this = this;\r\n Object.keys(this.stringValues).forEach(function (stringKey) {\r\n if (stringKey in stringKeyValues) {\r\n _this.stringValues[stringKey] = stringKeyValues[stringKey];\r\n }\r\n });\r\n };\r\n Strings.prototype.getString = function (stringKey) {\r\n if (stringKey in this.stringValues) {\r\n return this.stringValues[stringKey];\r\n }\r\n return stringKey;\r\n };\r\n Strings.prototype.toObject = function () {\r\n return this.stringValues;\r\n };\r\n return Strings;\r\n}());\r\nexport { Strings };\r\n","import * as d3 from 'd3';\r\nimport Utils from '../Utils';\r\nimport { Strings } from './Strings';\r\nimport { DefaultHierarchyNavigationOptions } from '../Constants/Constants';\r\nimport { InterpolationFunctions } from '../Constants/Enums';\r\nvar ChartOptions = /** @class */ (function () {\r\n function ChartOptions() {\r\n this.stringsInstance = new Strings();\r\n }\r\n ChartOptions.prototype.getInterpolationFunction = function (interpolationName) {\r\n if (interpolationName == InterpolationFunctions.CurveLinear)\r\n return d3.curveLinear;\r\n if (interpolationName == InterpolationFunctions.CurveStep)\r\n return d3.curveStep;\r\n if (interpolationName == InterpolationFunctions.CurveStepBefore)\r\n return d3.curveStepBefore;\r\n if (interpolationName == InterpolationFunctions.CurveStepAfter)\r\n return d3.curveStepAfter;\r\n if (interpolationName == InterpolationFunctions.CurveBasis)\r\n return d3.curveBasis;\r\n if (interpolationName == InterpolationFunctions.CurveCardinal)\r\n return d3.curveCardinal;\r\n if (interpolationName == InterpolationFunctions.CurveMonotoneX)\r\n return d3.curveMonotoneX;\r\n if (interpolationName == InterpolationFunctions.CurveCatmullRom)\r\n return d3.curveCatmullRom;\r\n // default\r\n return d3.curveMonotoneX;\r\n };\r\n ChartOptions.prototype.setOptions = function (chartOptionsObj) {\r\n chartOptionsObj = !chartOptionsObj ? {} : chartOptionsObj;\r\n this.grid = this.mergeValue(chartOptionsObj, 'grid', false);\r\n this.preserveAvailabilityState = this.mergeValue(chartOptionsObj, 'preserveAvailabilityState', false);\r\n this.persistDateTimeButtonRange = this.mergeValue(chartOptionsObj, 'persistDateTimeButtonRange', false);\r\n this.isCompact = this.mergeValue(chartOptionsObj, 'isCompact', false);\r\n this.keepBrush = this.mergeValue(chartOptionsObj, 'keepBrush', false);\r\n this.isArea = this.mergeValue(chartOptionsObj, 'isArea', false);\r\n this.noAnimate = this.mergeValue(chartOptionsObj, 'noAnimate', false);\r\n this.updateInterval = this.mergeValue(chartOptionsObj, 'updateInterval', 0);\r\n this.minutesForTimeLabels = this.mergeValue(chartOptionsObj, 'minutesForTimeLabels', false);\r\n this.aggTopMargin = this.mergeValue(chartOptionsObj, 'aggTopMargin', 12);\r\n this.color = this.mergeValue(chartOptionsObj, 'color', null);\r\n this.maxBuckets = this.mergeValue(chartOptionsObj, 'maxBuckets', 500);\r\n this.yAxisHidden = this.mergeValue(chartOptionsObj, 'yAxisHidden', false);\r\n this.focusHidden = this.mergeValue(chartOptionsObj, 'focusHidden', false);\r\n this.singleLineXAxisLabel = this.mergeValue(chartOptionsObj, 'singleLineXAxisLabel', false);\r\n this.legend = this.mergeValue(chartOptionsObj, 'legend', 'shown');\r\n this.tooltip = this.mergeValue(chartOptionsObj, 'tooltip', false);\r\n this.throttleSlider = this.mergeValue(chartOptionsObj, 'throttleSlider', false);\r\n this.snapBrush = this.mergeValue(chartOptionsObj, 'snapBrush', false);\r\n this.minBrushWidth = this.mergeValue(chartOptionsObj, 'minBrushWidth', 0);\r\n this.theme = this.mergeValue(chartOptionsObj, 'theme', 'dark');\r\n this.keepSplitByColor = this.mergeValue(chartOptionsObj, 'keepSplitByColor', false);\r\n this.brushContextMenuActions = this.mergeValue(chartOptionsObj, 'brushContextMenuActions', null);\r\n this.timeFrame = this.mergeValue(chartOptionsObj, 'timeFrame', null);\r\n this.fromChart = this.mergeValue(chartOptionsObj, 'fromChart', false);\r\n this.timestamp = this.mergeValue(chartOptionsObj, 'timestamp', null);\r\n this.stacked = this.mergeValue(chartOptionsObj, 'stacked', false);\r\n this.scaledToCurrentTime = this.mergeValue(chartOptionsObj, 'scaledToCurrentTime', false);\r\n this.zeroYAxis = this.mergeValue(chartOptionsObj, 'zeroYAxis', true);\r\n this.arcWidthRatio = this.mergeValue(chartOptionsObj, 'arcWidthRatio', 0);\r\n this.bucketSizeMillis = this.mergeValue(chartOptionsObj, 'bucketSizeMillis', 0);\r\n this.brushClearable = this.mergeValue(chartOptionsObj, 'brushClearable', true);\r\n this.brushMoveAction = this.mergeValue(chartOptionsObj, 'brushMoveAction', function () { });\r\n this.brushMoveEndAction = this.mergeValue(chartOptionsObj, 'brushMoveEndAction', function () { });\r\n this.yAxisState = this.mergeValue(chartOptionsObj, 'yAxisState', 'stacked');\r\n this.xAxisHidden = this.mergeValue(chartOptionsObj, 'xAxisHidden', false);\r\n this.suppressResizeListener = this.mergeValue(chartOptionsObj, 'suppressResizeListener', false);\r\n this.onMouseout = this.mergeValue(chartOptionsObj, 'onMouseout', function () { });\r\n this.onMouseover = this.mergeValue(chartOptionsObj, 'onMouseover', function () { });\r\n this.onSticky = this.mergeValue(chartOptionsObj, 'onSticky', function () { });\r\n this.onUnsticky = this.mergeValue(chartOptionsObj, 'onUnsticky', function () { });\r\n this.onKeydown = this.mergeValue(chartOptionsObj, 'onKeydown', function () { });\r\n this.onInput = this.mergeValue(chartOptionsObj, 'onInput', function () { });\r\n this.brushHandlesVisible = this.mergeValue(chartOptionsObj, 'brushHandlesVisible', false);\r\n this.hideChartControlPanel = this.mergeValue(chartOptionsObj, 'hideChartControlPanel', false);\r\n this.offset = this.mergeValue(chartOptionsObj, 'offset', 0);\r\n this.is24HourTime = this.mergeValue(chartOptionsObj, 'is24HourTime', true);\r\n this.includeTimezones = this.mergeValue(chartOptionsObj, 'includeTimezones', true);\r\n this.availabilityLeftMargin = this.mergeValue(chartOptionsObj, 'availabilityLeftMargin', 60);\r\n this.onInstanceClick = this.mergeValue(chartOptionsObj, 'onInstanceClick', function () { return {}; });\r\n this.interpolationFunction = this.getInterpolationFunction(this.mergeValue(chartOptionsObj, 'interpolationFunction', InterpolationFunctions.None));\r\n this.includeEnvelope = this.mergeValue(chartOptionsObj, 'includeEnvelope', false);\r\n this.canDownload = this.mergeValue(chartOptionsObj, 'canDownload', true);\r\n this.withContextMenu = this.mergeValue(chartOptionsObj, 'withContextMenu', false);\r\n this.autoTriggerBrushContextMenu = this.mergeValue(chartOptionsObj, 'autoTriggerBrushContextMenu', false);\r\n this.includeDots = this.mergeValue(chartOptionsObj, 'includeDots', false);\r\n this.yExtent = this.mergeValue(chartOptionsObj, 'yExtent', null);\r\n this.ellipsisItems = this.mergeValue(chartOptionsObj, 'ellipsisItems', []);\r\n this.markers = Utils.getValueOrDefault(chartOptionsObj, 'markers', null); // intentionally not mergeValue\r\n this.onMarkersChange = this.mergeValue(chartOptionsObj, 'onMarkersChange', function (markers) { });\r\n this.spMeasures = this.mergeValue(chartOptionsObj, 'spMeasures', null);\r\n this.scatterPlotRadius = this.mergeValue(chartOptionsObj, 'scatterPlotRadius', [4, 10]);\r\n this.spAxisLabels = this.mergeValue(chartOptionsObj, 'spAxisLabels', null);\r\n this.isTemporal = this.mergeValue(chartOptionsObj, \"isTemporal\", false);\r\n this.xAxisTimeFormat = this.mergeValue(chartOptionsObj, 'xAxisTimeFormat', null);\r\n this.brushRangeVisible = this.mergeValue(chartOptionsObj, 'brushRangeVisible', true);\r\n this.strings = this.mergeStrings(Utils.getValueOrDefault(chartOptionsObj, 'strings', {}));\r\n this.dateLocale = this.mergeValue(chartOptionsObj, 'dateLocale', Utils.languageGuess());\r\n this.defaultAvailabilityZoomRangeMillis = this.mergeValue(chartOptionsObj, 'defaultAvailabilityZoomRangeMillis', null);\r\n this.warmStoreRange = this.mergeValue(chartOptionsObj, 'warmStoreRange', null);\r\n this.initialValue = this.mergeValue(chartOptionsObj, 'initialValue', null);\r\n this.dTPIsModal = this.mergeValue(chartOptionsObj, 'dTPIsModal', false);\r\n this.defaultColor = this.mergeValue(chartOptionsObj, 'defaultColor', null);\r\n this.numberOfColors = this.mergeValue(chartOptionsObj, 'numberOfColors', 15);\r\n this.colors = Utils.generateColors(this.numberOfColors, chartOptionsObj['colors'] ? chartOptionsObj['colors'] : null);\r\n this.isColorValueHidden = this.mergeValue(chartOptionsObj, 'isColorValueHidden', false);\r\n this.onClick = this.mergeValue(chartOptionsObj, 'onClick', function () { });\r\n this.onSelect = this.mergeValue(chartOptionsObj, 'onSelect', function () { });\r\n this.swimLaneOptions = this.mergeValue(chartOptionsObj, 'swimLaneOptions', null);\r\n this.hierarchyOptions = this.mergeValue(chartOptionsObj, 'hierarchyOptions', Object.assign({}, DefaultHierarchyNavigationOptions));\r\n this.labelSeriesWithMarker = this.mergeValue(chartOptionsObj, 'labelSeriesWithMarker', false);\r\n this.onError = this.mergeValue(chartOptionsObj, 'onError', function (titleKey, messageKey, xhr) { });\r\n this.timeSeriesIdProperties = Utils.getValueOrDefault(chartOptionsObj, 'timeSeriesIdProperties', []);\r\n this.shouldSticky = this.mergeValue(chartOptionsObj, 'shouldSticky', true);\r\n };\r\n ChartOptions.prototype.mergeStrings = function (strings) {\r\n this.stringsInstance.mergeStrings(strings);\r\n return this.stringsInstance.toObject();\r\n };\r\n ChartOptions.prototype.mergeValue = function (chartOptionsObj, propertyName, defaultValue) {\r\n if (this[propertyName] !== undefined && chartOptionsObj[propertyName] === undefined) {\r\n return this[propertyName];\r\n }\r\n return Utils.getValueOrDefault(chartOptionsObj, propertyName, defaultValue);\r\n };\r\n ChartOptions.prototype.toObject = function () {\r\n return {\r\n grid: this.grid,\r\n preserveAvailabilityState: this.preserveAvailabilityState,\r\n persistDateTimeButtonRange: this.persistDateTimeButtonRange,\r\n isCompact: this.isCompact,\r\n keepBrush: this.keepBrush,\r\n isArea: this.isArea,\r\n noAnimate: this.noAnimate,\r\n minutesForTimeLabels: this.minutesForTimeLabels,\r\n aggTopMargin: this.aggTopMargin,\r\n color: this.color,\r\n maxBuckets: this.maxBuckets,\r\n yAxisHidden: this.yAxisHidden,\r\n focusHidden: this.focusHidden,\r\n singleLineXAxisLabel: this.singleLineXAxisLabel,\r\n legend: this.legend,\r\n tooltip: this.tooltip,\r\n throttleSlider: this.throttleSlider,\r\n snapBrush: this.snapBrush,\r\n minBrushWidth: this.minBrushWidth,\r\n theme: this.theme,\r\n keepSplitByColor: this.keepSplitByColor,\r\n brushContextMenuActions: this.brushContextMenuActions,\r\n timeFrame: this.timeFrame,\r\n fromChart: this.fromChart,\r\n timestamp: this.timestamp,\r\n stacked: this.stacked,\r\n scaledToCurrentTime: this.scaledToCurrentTime,\r\n zeroYAxis: this.zeroYAxis,\r\n arcWidthRatio: this.arcWidthRatio,\r\n brushClearable: this.brushClearable,\r\n brushMoveAction: this.brushMoveAction,\r\n yAxisState: this.yAxisState,\r\n xAxisHidden: this.xAxisHidden,\r\n suppressResizeListener: this.suppressResizeListener,\r\n brushMoveEndAction: this.brushMoveEndAction,\r\n onMouseout: this.onMouseout,\r\n onMouseover: this.onMouseover,\r\n onSticky: this.onSticky,\r\n onUnsticky: this.onUnsticky,\r\n onKeydown: this.onKeydown,\r\n onInput: this.onInput,\r\n brushHandlesVisible: this.brushHandlesVisible,\r\n hideChartControlPanel: this.hideChartControlPanel,\r\n offset: this.offset,\r\n is24HourTime: this.is24HourTime.valueOf,\r\n includeTimezones: this.includeTimezones,\r\n availabilityLeftMargin: this.availabilityLeftMargin,\r\n onInstanceClick: this.onInstanceClick,\r\n interpolationFunction: this.interpolationFunction,\r\n includeEnvelope: this.includeEnvelope,\r\n canDownload: this.canDownload,\r\n withContextMenu: this.withContextMenu,\r\n autoTriggerBrushContextMenu: this.autoTriggerBrushContextMenu,\r\n includeDots: this.includeDots,\r\n yExtent: this.yExtent,\r\n ellipsisItems: this.ellipsisItems,\r\n markers: this.markers,\r\n onMarkersChange: this.onMarkersChange,\r\n xAxisTimeFormat: this.xAxisTimeFormat,\r\n spMeasures: this.spMeasures,\r\n scatterPlotRadius: this.scatterPlotRadius,\r\n spAxisLabels: this.spAxisLabels,\r\n brushRangeVisible: this.brushRangeVisible,\r\n strings: this.strings.toObject(),\r\n dateLocale: this.dateLocale,\r\n defaultAvailabilityZoomRangeMillis: this.defaultAvailabilityZoomRangeMillis,\r\n warmStoreRange: this.warmStoreRange,\r\n initialValue: this.initialValue,\r\n bucketSizeMillis: this.bucketSizeMillis,\r\n updateInterval: this.updateInterval,\r\n dTPIsModal: this.dTPIsModal,\r\n numberOfColors: this.numberOfColors,\r\n defaultColor: this.defaultColor,\r\n isColorValueHidden: this.isColorValueHidden,\r\n onClick: this.onClick,\r\n onSelect: this.onSelect,\r\n colors: this.colors,\r\n swimLaneOptions: this.swimLaneOptions,\r\n hierarchyOptions: this.hierarchyOptions,\r\n onError: this.onError,\r\n labelSeriesWithMarker: this.labelSeriesWithMarker,\r\n timeSeriesIdProperties: this.timeSeriesIdProperties,\r\n shouldSticky: this.shouldSticky\r\n };\r\n };\r\n return ChartOptions;\r\n}());\r\nexport { ChartOptions };\r\n","import Utils from \"../Utils\";\r\nimport { ChartOptions } from \"../Models/ChartOptions\";\r\nvar Component = /** @class */ (function () {\r\n function Component(renderTarget) {\r\n this.TRANSDURATION = (window.navigator.userAgent.indexOf(\"Edge\") > -1) ? 0 : 400;\r\n this.usesSeconds = false;\r\n this.usesMillis = false;\r\n this.chartOptions = new ChartOptions();\r\n this.teardropD = function (width, height) {\r\n return \"M\" + width / 2 + \" \" + height / 14 + \" \\n Q\" + width / 1.818 + \" \" + height / 6.17 + \" \" + width / 1.2 + \" \" + height / 2.33 + \"\\n A\" + width / 2.35 + \" \" + width / 2.35 + \" 0 1 1 \" + width / 6 + \" \" + width / 2.33 + \"\\n Q\" + width / 2.22 + \" \" + height / 6.18 + \" \" + width / 2 + \" \" + height / 14 + \"z\";\r\n };\r\n this.renderTarget = renderTarget;\r\n }\r\n Component.prototype.getString = function (str) {\r\n return this.chartOptions.stringsInstance.getString(str);\r\n };\r\n Component.prototype.themify = function (targetElement, theme) {\r\n var theme = Utils.getTheme(theme);\r\n targetElement === null || targetElement === void 0 ? void 0 : targetElement.classed(this.currentTheme, false);\r\n targetElement === null || targetElement === void 0 ? void 0 : targetElement.classed('tsi-light', false);\r\n targetElement === null || targetElement === void 0 ? void 0 : targetElement.classed('tsi-dark', false);\r\n targetElement === null || targetElement === void 0 ? void 0 : targetElement.classed(theme, true);\r\n this.currentTheme = theme;\r\n };\r\n Component.prototype.tooltipFormat = function (d, text, measureFormat, xyrMeasures) {\r\n if (xyrMeasures === void 0) { xyrMeasures = null; }\r\n };\r\n Component.prototype.createTooltipSeriesInfo = function (d, group, cDO) {\r\n var title = group.append('h2').attr('class', 'tsi-tooltipGroupName tsi-tooltipTitle');\r\n Utils.appendFormattedElementsFromString(title, d.aggregateName);\r\n if (d.splitBy && d.splitBy != \"\") {\r\n var splitBy = group.append('p')\r\n .attr('class', 'tsi-tooltipSeriesName tsi-tooltipSubtitle');\r\n Utils.appendFormattedElementsFromString(splitBy, d.splitBy);\r\n }\r\n if (cDO.variableAlias && cDO.isVariableAliasShownOnTooltip) {\r\n group.append('p')\r\n .text(cDO.variableAlias)\r\n .attr('class', 'tsi-tooltipVariableAlias tsi-tooltipSubtitle');\r\n }\r\n };\r\n return Component;\r\n}());\r\nexport { Component };\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport Utils from \"../Utils\";\r\nimport { ShiftTypes, DataTypes, valueTypes } from \"../Constants/Enums\";\r\nvar ChartComponentData = /** @class */ (function () {\r\n function ChartComponentData() {\r\n var _this = this;\r\n this.data = {};\r\n this.displayState = {};\r\n this.timeArrays = [];\r\n this.visibleTSCount = 0;\r\n this.visibleTAs = [];\r\n this.allValues = [];\r\n this.allNumericValues = [];\r\n this.usesSeconds = false;\r\n this.usesMillis = false;\r\n this.fromMillis = Infinity;\r\n this.toMillis = 0;\r\n this.stickiedKey = null;\r\n this.isFromHeatmap = false;\r\n this.getSwimlane = function (aggKey) {\r\n return (_this.displayState[aggKey].aggregateExpression ? _this.displayState[aggKey].aggregateExpression.swimLane : null);\r\n };\r\n this.getVisibleType = function (aggKey, splitBy, defaultType, measures) {\r\n if (_this.displayState[aggKey] && _this.displayState[aggKey].splitBys[splitBy]) {\r\n var prospectiveVisible = _this.displayState[aggKey].splitBys[splitBy].visibleType;\r\n if (measures.indexOf(prospectiveVisible) !== -1) {\r\n return prospectiveVisible;\r\n }\r\n }\r\n return defaultType;\r\n };\r\n }\r\n ChartComponentData.prototype.setAllTimestampsArray = function () {\r\n var allTimestamps = {};\r\n this.data.forEach(function (ae) {\r\n var aeObj = ae[Object.keys(ae)[0]];\r\n Object.keys(aeObj).forEach(function (timeseries) {\r\n Object.keys(aeObj[timeseries]).forEach(function (timestamp) {\r\n allTimestamps[timestamp] = true;\r\n });\r\n });\r\n });\r\n this.allTimestampsArray = Object.keys(allTimestamps).sort();\r\n };\r\n ChartComponentData.prototype.getDataType = function (aggKey) {\r\n return this.displayState[aggKey] ? this.displayState[aggKey].dataType : DataTypes.Numeric;\r\n };\r\n //add colors if none present\r\n ChartComponentData.prototype.fillColors = function (aggregateExpressionOptions) {\r\n if (aggregateExpressionOptions == null)\r\n aggregateExpressionOptions = [];\r\n // correct aEOs to add empty objects if the length doesn't match up with the data\r\n if (aggregateExpressionOptions.length < this.data.length) {\r\n for (var i = aggregateExpressionOptions.length; i < this.data.length; i++) {\r\n aggregateExpressionOptions.push({});\r\n }\r\n }\r\n var colorlessCount = aggregateExpressionOptions.reduce(function (colorlessCount, aEO) {\r\n if (aEO.color != null)\r\n return colorlessCount;\r\n return colorlessCount + 1;\r\n }, 0);\r\n var colorI = 0;\r\n var colors = Utils.generateColors(colorlessCount);\r\n aggregateExpressionOptions.forEach(function (aEO) {\r\n if (aEO.color == null) {\r\n aEO.color = colors[colorI];\r\n colorI++;\r\n }\r\n });\r\n return aggregateExpressionOptions;\r\n };\r\n ChartComponentData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, aggregateExpressionOptions) {\r\n var _this = this;\r\n if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; }\r\n this.data = data;\r\n var newDisplayState = {};\r\n this.timeArrays = {};\r\n this.visibleTAs = {};\r\n this.allValues = [];\r\n this.allNumericValues = [];\r\n this.visibleTSCount = 0;\r\n this.fromMillis = Infinity;\r\n this.toMillis = 0;\r\n var aggregateCounterMap = {};\r\n this.usesSeconds = false;\r\n this.usesMillis = false;\r\n aggregateExpressionOptions = this.fillColors(aggregateExpressionOptions);\r\n var aggKeys = Utils.getAggKeys(this.data);\r\n this.data = this.data.map(function (aggregate, i) {\r\n var aggName = Object.keys(aggregate)[0];\r\n var aggregateCopy = __assign({}, aggregate);\r\n var aggKey = aggKeys[i];\r\n _this.data[i].aggKey = aggKey;\r\n aggregateCopy.aggKey = aggKey;\r\n if (_this.displayState[aggKey]) {\r\n newDisplayState[aggKey] = {\r\n visible: (aggregateExpressionOptions[i] && aggregateExpressionOptions[i].visibilityState) ?\r\n aggregateExpressionOptions[i].visibilityState[0] : _this.displayState[aggKey].visible,\r\n name: _this.displayState[aggKey].name,\r\n color: ((aggregateExpressionOptions[i] && aggregateExpressionOptions[i].color) ?\r\n aggregateExpressionOptions[i].color : _this.displayState[aggKey].color),\r\n interpolationFunction: aggregateExpressionOptions[i].interpolationFunction,\r\n yExtent: aggregateExpressionOptions[i].yExtent,\r\n includeEnvelope: aggregateExpressionOptions[i].includeEnvelope,\r\n includeDots: aggregateExpressionOptions[i].includeDots,\r\n splitBys: {},\r\n dataType: aggregateExpressionOptions[i].dataType,\r\n visibleSplitByCap: _this.displayState[aggKey].visibleSplitByCap,\r\n shownSplitBys: 20\r\n };\r\n }\r\n else {\r\n newDisplayState[aggKey] = {\r\n visible: (aggregateExpressionOptions[i] && aggregateExpressionOptions[i].visibilityState) ?\r\n aggregateExpressionOptions[i].visibilityState[0] : true,\r\n splitBys: {},\r\n name: aggName,\r\n color: ((aggregateExpressionOptions[i] && aggregateExpressionOptions[i].color) ?\r\n aggregateExpressionOptions[i].color : \"teal\"),\r\n interpolationFunction: aggregateExpressionOptions[i].interpolationFunction,\r\n yExtent: aggregateExpressionOptions[i].yExtent,\r\n includeEnvelope: aggregateExpressionOptions[i].includeEnvelope,\r\n includeDots: aggregateExpressionOptions[i].includeDots,\r\n dataType: aggregateExpressionOptions[i].dataType,\r\n visibleSplitByCap: 10,\r\n shownSplitBys: 20\r\n };\r\n }\r\n if (aggregateExpressionOptions) {\r\n newDisplayState[aggKey].contextMenuActions = aggregateExpressionOptions[i] ?\r\n aggregateExpressionOptions[i].contextMenu : [];\r\n newDisplayState[aggKey].aggregateExpression = aggregateExpressionOptions[i];\r\n // impose cap on visible splitBys if relevant\r\n if (aggregateExpressionOptions[i] && aggregateExpressionOptions[i].visibleSplitByCap) {\r\n newDisplayState[aggKey].visibleSplitByCap = aggregateExpressionOptions[i].visibleSplitByCap;\r\n }\r\n }\r\n else {\r\n //revert to previous context menu actions if no new ones passed in and old ones exist\r\n var oldContextMenuActions = (_this.displayState[aggKey] && _this.displayState[aggKey].contextMenuActions) ?\r\n _this.displayState[aggKey].contextMenuActions : [];\r\n newDisplayState[aggKey].contextMenuActions = oldContextMenuActions;\r\n var oldAggregateExpression = (_this.displayState[aggKey] && _this.displayState[aggKey].aggregateExpression) ?\r\n _this.displayState[aggKey].aggregateExpression : {};\r\n newDisplayState[aggKey].aggregateExpression = oldAggregateExpression;\r\n }\r\n if (newDisplayState[aggKey].aggregateExpression && newDisplayState[aggKey].aggregateExpression.searchSpan) {\r\n newDisplayState[aggKey].from = new Date(newDisplayState[aggKey].aggregateExpression.searchSpan.from);\r\n newDisplayState[aggKey].to = new Date(newDisplayState[aggKey].aggregateExpression.searchSpan.to);\r\n newDisplayState[aggKey].bucketSize = newDisplayState[aggKey].aggregateExpression.searchSpan.bucketSize ?\r\n Utils.parseTimeInput(newDisplayState[aggKey].aggregateExpression.searchSpan.bucketSize) :\r\n null;\r\n }\r\n var aggregateVisible = newDisplayState[aggKey].visible;\r\n _this.timeArrays[aggKey] = [];\r\n _this.visibleTAs[aggKey] = {};\r\n Object.keys(data[i][aggName]).forEach(function (splitBy, splitByI) {\r\n var shiftValue = Utils.parseShift(aggregateExpressionOptions[i].timeShift, aggregateExpressionOptions[i].startAt, aggregateExpressionOptions[i].searchSpan);\r\n _this.timeArrays[aggKey][splitBy] = _this.convertAggregateToArray(data[i][aggName][splitBy], aggKey, aggName, splitBy, newDisplayState[aggKey].from, newDisplayState[aggKey].to, newDisplayState[aggKey].bucketSize, shiftValue);\r\n if (newDisplayState[aggKey].dataType === DataTypes.Categorical && aggregateExpressionOptions[i].rollupCategoricalValues) {\r\n _this.timeArrays[aggKey][splitBy] = Utils.rollUpContiguous(_this.timeArrays[aggKey][splitBy]);\r\n }\r\n var isVisible;\r\n // first priority: set from passed in visibility state\r\n if (aggregateExpressionOptions[i] && aggregateExpressionOptions[i].visibilityState && aggregateExpressionOptions[i].visibilityState.length === 2) {\r\n isVisible = aggregateExpressionOptions[i].visibilityState[1].indexOf(splitBy) != -1;\r\n }\r\n //second priority: special case where solo split by and is ''\r\n else if (aggregateExpressionOptions[i] && aggregateExpressionOptions[i].visibilityState && Object.keys(data[i][aggName]).length === 1 && splitBy === '') {\r\n isVisible = aggregateExpressionOptions[i].visibilityState[0];\r\n }\r\n // third priority: already set value\r\n else if (_this.displayState[aggKey] && _this.displayState[aggKey].splitBys[splitBy]) {\r\n isVisible = _this.displayState[aggKey].splitBys[splitBy].visible;\r\n }\r\n // last priority: set isVisible based on visibleSplitByCap \r\n else {\r\n isVisible = (splitByI < newDisplayState[aggKey].visibleSplitByCap);\r\n }\r\n newDisplayState[aggKey].splitBys[splitBy] = {\r\n visible: isVisible,\r\n visibleType: newDisplayState[aggKey].splitBys[splitBy] ? newDisplayState[aggKey].splitBys[splitBy].visibleType : null,\r\n types: newDisplayState[aggKey].splitBys[splitBy] ? newDisplayState[aggKey].splitBys[splitBy].types : [],\r\n };\r\n if (_this.timeArrays[aggKey][splitBy] && _this.timeArrays[aggKey][splitBy].length &&\r\n newDisplayState[aggKey].aggregateExpression && newDisplayState[aggKey].aggregateExpression.measureTypes) {\r\n newDisplayState[aggKey].splitBys[splitBy].types = newDisplayState[aggKey].aggregateExpression.measureTypes;\r\n }\r\n else {\r\n newDisplayState[aggKey].splitBys[splitBy].types = _this.determineMeasureTypes(_this.timeArrays[aggKey][splitBy]);\r\n }\r\n if (!newDisplayState[aggKey].splitBys[splitBy].visibleType || (newDisplayState[aggKey].splitBys[splitBy].types.indexOf(newDisplayState[aggKey].splitBys[splitBy].visibleType) === -1)) {\r\n var visibleMeasure = newDisplayState[aggKey].splitBys[splitBy].types.indexOf(\"avg\") !== -1 ? \"avg\" :\r\n newDisplayState[aggKey].splitBys[splitBy].types[0];\r\n newDisplayState[aggKey].splitBys[splitBy].visibleType = _this.getVisibleType(aggKey, splitBy, visibleMeasure, newDisplayState[aggKey].splitBys[splitBy].types);\r\n }\r\n //add to visible display states if splitby is visible\r\n if (newDisplayState[aggKey][\"splitBys\"][splitBy][\"visible\"] && aggregateVisible) {\r\n _this.allValues = _this.allValues.concat(_this.timeArrays[aggKey][splitBy]);\r\n if (newDisplayState[aggKey].dataType === DataTypes.Numeric) {\r\n _this.allNumericValues = _this.allNumericValues.concat(_this.timeArrays[aggKey][splitBy]);\r\n }\r\n _this.usesSeconds = _this.usesSeconds || _this.doesTimeArrayUseSeconds(_this.timeArrays[aggKey][splitBy]);\r\n _this.usesMillis = _this.usesMillis || _this.doesTimeArrayUseMillis(_this.timeArrays[aggKey][splitBy]);\r\n _this.visibleTAs[aggKey][splitBy] = _this.timeArrays[aggKey][splitBy];\r\n _this.visibleTSCount += 1;\r\n }\r\n });\r\n return aggregateCopy;\r\n });\r\n //ensure that the stickied Key exists in the new data, otherwise revert to null\r\n if (this.stickiedKey) {\r\n var splitBy = this.stickiedKey.splitBy;\r\n var aggKey = this.stickiedKey.aggregateKey;\r\n if (!(newDisplayState[aggKey] && newDisplayState[aggKey].visible &&\r\n newDisplayState[aggKey].splitBys[splitBy] && newDisplayState[aggKey].splitBys[splitBy].visible)) {\r\n this.stickiedKey = null;\r\n }\r\n }\r\n this.displayState = newDisplayState;\r\n this.setAllTimestampsArray();\r\n };\r\n ChartComponentData.prototype.determineMeasureTypes = function (timeArray) {\r\n var measureTypes = timeArray.reduce(function (measureTypes, curr) {\r\n if (curr && curr.measures && Object.keys(curr.measures).length) {\r\n Object.keys(curr.measures).forEach(function (measure) {\r\n measureTypes[measure] = true;\r\n });\r\n }\r\n return measureTypes;\r\n }, {});\r\n return Object.keys(measureTypes);\r\n };\r\n ChartComponentData.prototype.getTemporalShiftStringTuple = function (aggKey) {\r\n var ae = this.displayState[aggKey].aggregateExpression;\r\n if (ae) {\r\n if (Utils.isStartAt(ae.startAt, ae.searchSpan)) {\r\n return [ShiftTypes.startAt, ae.startAt];\r\n }\r\n if (ae.timeShift) {\r\n return [ShiftTypes.shifted, ae.timeShift];\r\n }\r\n }\r\n return null;\r\n };\r\n ChartComponentData.prototype.getTemporalShiftMillis = function (aggKey) {\r\n var ae = this.displayState[aggKey].aggregateExpression;\r\n if (ae) {\r\n return Utils.parseShift(ae.timeShift, ae.startAt, ae.searchSpan);\r\n }\r\n return 0;\r\n };\r\n ChartComponentData.prototype.doesTimeArrayUseSeconds = function (timeArray) {\r\n return timeArray.reduce(function (prev, curr) {\r\n return curr.dateTime.getSeconds() != 0 || prev;\r\n }, false);\r\n };\r\n ChartComponentData.prototype.doesTimeArrayUseMillis = function (timeArray) {\r\n return timeArray.reduce(function (prev, curr) {\r\n return curr.dateTime.getMilliseconds() != 0 || prev;\r\n }, false);\r\n };\r\n //returns the from and to of all values\r\n ChartComponentData.prototype.setAllValuesAndVisibleTAs = function () {\r\n var _this = this;\r\n var toMillis = 0;\r\n var fromMillis = Infinity;\r\n this.allValues = [];\r\n this.allNumericValues = [];\r\n this.visibleTAs = [];\r\n this.visibleTSCount = 0;\r\n Object.keys(this.timeArrays).forEach(function (aggKey) {\r\n if (_this.getAggVisible(aggKey)) {\r\n _this.visibleTAs[aggKey] = {};\r\n Object.keys(_this.timeArrays[aggKey]).forEach(function (splitBy) {\r\n if (_this.getSplitByVisible(aggKey, splitBy)) {\r\n _this.allValues = _this.allValues.concat(_this.timeArrays[aggKey][splitBy]);\r\n if (_this.displayState[aggKey].dataType === DataTypes.Numeric) {\r\n _this.allNumericValues = _this.allNumericValues.concat(_this.timeArrays[aggKey][splitBy]);\r\n }\r\n _this.visibleTAs[aggKey][splitBy] = _this.timeArrays[aggKey][splitBy];\r\n _this.visibleTSCount += 1;\r\n _this.timeArrays[aggKey][splitBy].forEach(function (d) {\r\n var millis = d.dateTime.valueOf();\r\n var bucketSize = _this.displayState[aggKey].bucketSize;\r\n if (millis < fromMillis)\r\n fromMillis = millis;\r\n var endValue = bucketSize ? millis + bucketSize : millis;\r\n if (endValue > toMillis)\r\n toMillis = endValue;\r\n });\r\n _this.usesSeconds = _this.usesSeconds || _this.doesTimeArrayUseSeconds(_this.timeArrays[aggKey][splitBy]);\r\n _this.usesMillis = _this.usesMillis || _this.doesTimeArrayUseMillis(_this.timeArrays[aggKey][splitBy]);\r\n }\r\n });\r\n }\r\n });\r\n //set this.toMillis and this.fromMillis if new values are more extreme \r\n this.toMillis = (toMillis > this.toMillis) ? toMillis : this.toMillis;\r\n this.fromMillis = (fromMillis < this.fromMillis) ? fromMillis : this.fromMillis;\r\n if (this.fromMillis === Infinity) {\r\n this.fromMillis = this.toMillis - 1;\r\n }\r\n return [new Date(this.fromMillis), new Date(this.toMillis)];\r\n };\r\n ChartComponentData.prototype.findLastTimestampWithValue = function (aggKey, splitBy) {\r\n var timeArray = this.timeArrays[aggKey][splitBy];\r\n var i = timeArray.length - 1;\r\n var lastValue = null;\r\n while (i >= 0 && lastValue === null) {\r\n if (timeArray[i].measures && (timeArray[i].measures[this.getVisibleMeasure(aggKey, splitBy)] !== null)) {\r\n lastValue = timeArray[i];\r\n }\r\n i += -1;\r\n }\r\n return lastValue;\r\n };\r\n ChartComponentData.prototype.findFirstBucket = function (agg, fromMillis, bucketSize) {\r\n if (agg == null || Object.keys(agg).length == 0)\r\n return null;\r\n var possibleFirstKeys = Object.keys(agg).filter(function (a) {\r\n return ((new Date(a)).valueOf() + bucketSize) > fromMillis;\r\n });\r\n if (possibleFirstKeys.length === 0) {\r\n return null;\r\n }\r\n var firstPresentKey = possibleFirstKeys.sort(function (a, b) {\r\n if ((new Date(a)).valueOf() < (new Date(b)).valueOf())\r\n return -1;\r\n if ((new Date(a)).valueOf() > (new Date(b)).valueOf())\r\n return 1;\r\n return 0;\r\n })[0];\r\n var firstMillis = (new Date(firstPresentKey)).valueOf();\r\n while (firstMillis > fromMillis) {\r\n firstMillis += -bucketSize;\r\n }\r\n return firstMillis;\r\n };\r\n ChartComponentData.prototype.getNumberOfPaddedBuckets = function (from, to, bucketSize) {\r\n return Math.ceil((to - from) / bucketSize);\r\n };\r\n //aggregates object => array of objects containing timestamp and values. Pad with \r\n ChartComponentData.prototype.convertAggregateToArray = function (agg, aggKey, aggName, splitBy, from, to, bucketSize, shiftValue) {\r\n if (from === void 0) { from = null; }\r\n if (to === void 0) { to = null; }\r\n if (bucketSize === void 0) { bucketSize = null; }\r\n var aggArray = [];\r\n var isoStringAgg = {};\r\n Object.keys(agg).forEach(function (dateString) {\r\n var shiftedDate = new Date((new Date(dateString)).valueOf() - shiftValue);\r\n var jsISOString = shiftedDate.toISOString();\r\n isoStringAgg[jsISOString] = agg[dateString];\r\n });\r\n agg = isoStringAgg;\r\n var createTimeValueObject = function () {\r\n var timeValueObject = {};\r\n timeValueObject[\"aggregateKey\"] = aggKey;\r\n timeValueObject[\"aggregateName\"] = aggName;\r\n timeValueObject[\"splitBy\"] = splitBy;\r\n timeValueObject[\"measures\"] = {};\r\n timeValueObject[\"bucketSize\"] = bucketSize;\r\n return timeValueObject;\r\n };\r\n if (from)\r\n this.fromMillis = Math.min(from.valueOf(), this.fromMillis);\r\n if (to)\r\n this.toMillis = Math.max(to.valueOf(), this.toMillis);\r\n if (from && to && bucketSize) {\r\n var firstBucket = this.findFirstBucket(agg, from.valueOf(), bucketSize);\r\n if (firstBucket !== null) {\r\n var firstBucketMillis = firstBucket.valueOf();\r\n var isExcessiveBucketCount = (this.getNumberOfPaddedBuckets(firstBucketMillis, to.valueOf(), bucketSize) > 10000);\r\n // pad if not an excessive number of buckets\r\n if (!isExcessiveBucketCount) {\r\n for (var currTime = new Date(firstBucketMillis); (currTime.valueOf() < to.valueOf()); currTime = new Date(currTime.valueOf() + bucketSize)) {\r\n var timeValueObject = createTimeValueObject();\r\n timeValueObject[\"dateTime\"] = currTime;\r\n var currTimeString = currTime.toISOString();\r\n if (agg[currTimeString]) {\r\n var currMeasures = agg[currTimeString];\r\n Object.keys(currMeasures).forEach(function (measure) {\r\n timeValueObject[\"measures\"][measure] = currMeasures[measure];\r\n });\r\n }\r\n else {\r\n timeValueObject[\"measures\"] = null;\r\n }\r\n aggArray.push(timeValueObject);\r\n this.fromMillis = Math.min(from.valueOf(), currTime.valueOf());\r\n this.toMillis = Math.max(to.valueOf(), currTime.valueOf() + bucketSize);\r\n }\r\n }\r\n else {\r\n Object.keys(agg).forEach(function (currTimeString) {\r\n var timeValueObject = createTimeValueObject();\r\n timeValueObject[\"dateTime\"] = new Date(currTimeString);\r\n var currMeasures = agg[currTimeString];\r\n Object.keys(currMeasures).forEach(function (measure) {\r\n timeValueObject[\"measures\"][measure] = currMeasures[measure];\r\n });\r\n aggArray.push(timeValueObject);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n Object.keys(agg).sort().forEach(function (dateTime) {\r\n var timeValueObject = createTimeValueObject();\r\n timeValueObject[\"dateTime\"] = new Date(dateTime);\r\n if (agg[dateTime]) {\r\n Object.keys(agg[dateTime]).forEach(function (measure) {\r\n timeValueObject[\"measures\"][measure] = agg[dateTime][measure];\r\n });\r\n }\r\n aggArray.push(timeValueObject);\r\n });\r\n }\r\n return aggArray;\r\n };\r\n ChartComponentData.prototype.isSplitByVisible = function (aggI, splitBy) {\r\n if (this.displayState[aggI] == undefined || !this.displayState[aggI].visible)\r\n return false;\r\n if (this.displayState[aggI].splitBys[splitBy] == undefined)\r\n return false;\r\n return this.displayState[aggI].splitBys[splitBy].visible;\r\n };\r\n ChartComponentData.prototype.isPossibleEnvelope = function (aggKey, splitBy) {\r\n return (this.displayState[aggKey].splitBys[splitBy].visibleType == \"avg\") &&\r\n (this.displayState[aggKey].splitBys[splitBy].types.indexOf(\"min\") != -1) &&\r\n (this.displayState[aggKey].splitBys[splitBy].types.indexOf(\"max\") != -1);\r\n };\r\n ChartComponentData.prototype.getVisibleMeasure = function (aggI, splitBy) {\r\n if (this.displayState[aggI] == undefined || this.displayState[aggI].splitBys[splitBy] == undefined)\r\n return null;\r\n return this.displayState[aggI].splitBys[splitBy].visibleType;\r\n };\r\n ChartComponentData.prototype.getAggVisible = function (aggKey) {\r\n return this.displayState[aggKey].visible;\r\n };\r\n ChartComponentData.prototype.getSplitByVisible = function (aggKey, splitBy) {\r\n return (this.getAggVisible(aggKey) && this.displayState[aggKey].splitBys[splitBy].visible);\r\n };\r\n ChartComponentData.prototype.aggHasVisibleSplitBys = function (aggKey) {\r\n var _this = this;\r\n if (!this.getAggVisible(aggKey))\r\n return false;\r\n var hasVisibleSplitBy = false;\r\n Object.keys(this.displayState[aggKey].splitBys).forEach(function (splitBy) {\r\n if (_this.isSplitByVisible(aggKey, splitBy))\r\n hasVisibleSplitBy = true;\r\n });\r\n return hasVisibleSplitBy;\r\n };\r\n ChartComponentData.prototype.valueAtTS = function (aggKey, splitByName, ts) {\r\n var splitBy = this.displayState[aggKey].splitBys[splitByName];\r\n return this.data[aggKey][this.displayState[aggKey].name][splitByName][ts][splitBy.visibleType];\r\n };\r\n ChartComponentData.prototype.setFilteredAggregates = function () {\r\n var _this = this;\r\n this.filteredAggregates = Object.keys(this.displayState).filter(function (aggKey) {\r\n return _this.displayState[aggKey].visible;\r\n });\r\n };\r\n ChartComponentData.prototype.guessValueType = function (v) {\r\n if (typeof v === 'number') {\r\n return valueTypes.Double;\r\n }\r\n if (typeof v === 'string') {\r\n return valueTypes.String;\r\n }\r\n return valueTypes.Dynamic;\r\n };\r\n ChartComponentData.prototype.generateCSVString = function (offset, dateLocale, spMeasures) {\r\n var _this = this;\r\n if (offset === void 0) { offset = 0; }\r\n if (dateLocale === void 0) { dateLocale = 'en'; }\r\n if (spMeasures === void 0) { spMeasures = null; }\r\n //replace comma at end of line with end line character\r\n var endLine = function (s) {\r\n return s.slice(0, s.length - 1) + \"\\n\";\r\n };\r\n var csvString = \"\";\r\n var headerString = \"Interval, Interval (UTC),\";\r\n var rowMap = {};\r\n var rowOrder = [];\r\n this.data.forEach(function (aggObj) {\r\n var aggKey = aggObj.aggKey;\r\n var splitByObject = _this.displayState[aggKey].aggregateExpression.splitByObject;\r\n Object.keys(_this.timeArrays[aggKey]).forEach(function (splitBy) {\r\n var splitByString = Utils.stripNullGuid(_this.displayState[aggKey].name);\r\n if (splitByObject !== undefined && splitByObject !== null) {\r\n splitByString += \"/\" + splitByObject.property + \"/\" + splitBy;\r\n }\r\n else if (splitBy !== '') {\r\n splitByString += '/' + splitBy;\r\n }\r\n else if (_this.displayState[aggKey].aggregateExpression.variableAlias) {\r\n splitByString += '/' + _this.displayState[aggKey].aggregateExpression.variableAlias;\r\n }\r\n var types = spMeasures ? spMeasures : _this.displayState[aggKey].splitBys[splitBy].types;\r\n types.forEach(function (type) {\r\n var rowKey = aggKey + \"_\" + splitBy + \"_\" + type;\r\n rowMap[rowKey] = {};\r\n rowOrder.push(rowKey);\r\n headerString += Utils.sanitizeString(splitByString + \".\" + type, valueTypes.String) + \",\";\r\n });\r\n });\r\n });\r\n csvString = endLine(headerString);\r\n this.allValues.forEach(function (value) {\r\n if (value.measures && Object.keys(value.measures).length != 0) {\r\n Object.keys(value.measures).forEach(function (type) {\r\n var rowKey = value.aggregateKey + \"_\" + value.splitBy + \"_\" + type;\r\n if (rowKey in rowMap) {\r\n rowMap[rowKey][value.dateTime.valueOf()] =\r\n (value.measures[type] == null || value.measures[type] == undefined) ?\r\n \"\" : Utils.sanitizeString(value.measures[type], _this.guessValueType(value.measures[type]));\r\n }\r\n });\r\n }\r\n });\r\n this.allTimestampsArray.forEach(function (timeString) {\r\n var millis = (new Date(timeString)).valueOf();\r\n csvString += Utils.timeFormat(_this.usesSeconds, _this.usesMillis, offset, null, null, null, dateLocale)(new Date(millis)) + \",\";\r\n csvString += Utils.timeFormat(_this.usesSeconds, _this.usesMillis, 0, null, null, null, dateLocale)(new Date(millis)) + \",\";\r\n rowOrder.forEach(function (rowKey) {\r\n csvString += (rowMap[rowKey][millis] != undefined ? rowMap[rowKey][millis] : \"\") + \",\";\r\n });\r\n csvString = endLine(csvString);\r\n });\r\n return csvString;\r\n };\r\n ChartComponentData.prototype.getVisibilityState = function () {\r\n var _this = this;\r\n var visibilityStateArray = [];\r\n Object.keys(this.displayState).forEach(function (aggKey) {\r\n var aggDisplayState = _this.displayState[aggKey];\r\n var visibleSplitBys = !aggDisplayState.visible ? [] :\r\n Object.keys(aggDisplayState.splitBys).filter(function (splitByName) {\r\n return aggDisplayState.splitBys[splitByName].visible;\r\n });\r\n var aggName = aggDisplayState.name;\r\n var visibilityObject = {};\r\n visibilityObject[aggName] = [aggDisplayState.visible, visibleSplitBys];\r\n visibilityStateArray.push(visibilityObject);\r\n });\r\n return visibilityStateArray;\r\n };\r\n return ChartComponentData;\r\n}());\r\nexport { ChartComponentData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './EllipsisMenu.scss';\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nvar EllipsisMenu = /** @class */ (function (_super) {\r\n __extends(EllipsisMenu, _super);\r\n function EllipsisMenu(renderTarget) {\r\n return _super.call(this, renderTarget) || this;\r\n }\r\n EllipsisMenu.prototype.createIconPath = function (iconName, theme) {\r\n var supportedNames = [\"flag\", \"grid\", \"download\"];\r\n return (supportedNames.indexOf(iconName) != -1) ? iconName + \"Icon\" : \"\";\r\n };\r\n EllipsisMenu.prototype.setMenuVisibility = function (isVisible) {\r\n this.menuIsVisible = isVisible;\r\n this.containerElement.classed(\"tsi-ellipsisMenuShown\", this.menuIsVisible);\r\n };\r\n EllipsisMenu.prototype.focusOnMenuItem = function (itemIndex) {\r\n if (itemIndex === void 0) { itemIndex = 0; }\r\n itemIndex = (itemIndex + this.menuItems.length) % this.menuItems.length;\r\n var menuItem = this.menuElement.selectAll(\".tsi-ellipsisMenuItem\").filter(function (d, i) {\r\n return (itemIndex === i);\r\n });\r\n menuItem.node().focus();\r\n };\r\n EllipsisMenu.prototype.menuItemKeyHandler = function (event, d, i) {\r\n switch (event.keyCode) {\r\n case 9: //tab\r\n this.focusOnMenuItem(i + 1);\r\n event.preventDefault();\r\n break;\r\n case 27: //escape\r\n this.setMenuVisibility(false);\r\n this.buttonElement.node().focus();\r\n event.preventDefault();\r\n break;\r\n case 38: // up arrow\r\n this.focusOnMenuItem(i - 1);\r\n event.preventDefault();\r\n break;\r\n case 40: // down arrow\r\n this.focusOnMenuItem(i + 1);\r\n event.preventDefault();\r\n break;\r\n }\r\n };\r\n EllipsisMenu.prototype.render = function (menuItems, options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n this.menuIsVisible = false;\r\n this.chartOptions.setOptions(options);\r\n this.containerElement = d3.select(this.renderTarget).classed(\"tsi-ellipsisMenuContainer\", true);\r\n this.setMenuItems(menuItems);\r\n d3.select(this.renderTarget).selectAll(\"*\").remove();\r\n _super.prototype.themify.call(this, this.containerElement, this.chartOptions.theme);\r\n var self = this;\r\n this.buttonElement = d3.select(this.renderTarget).insert(\"button\")\r\n .attr(\"class\", \"tsi-ellipsisButton\")\r\n .attr(\"aria-label\", this.getString(\"Show ellipsis menu\"))\r\n .attr(\"title\", this.getString(\"Show ellipsis menu\"))\r\n .attr(\"type\", \"button\")\r\n .on(\"click\", function () {\r\n d3.select(this).attr(\"aria-label\", !self.menuIsVisible ? self.getString(\"Show ellipsis menu\") : self.getString(\"Hide ellipsis menu\"))\r\n .attr(\"title\", !self.menuIsVisible ? self.getString(\"Show ellipsis menu\") : self.getString(\"Hide ellipsis menu\"));\r\n self.setMenuVisibility(!self.menuIsVisible);\r\n if (self.menuIsVisible) {\r\n self.focusOnMenuItem(0);\r\n }\r\n });\r\n this.menuElement = d3.select(this.renderTarget).insert(\"div\")\r\n .attr(\"class\", \"tsi-ellipsisMenu\")\r\n .attr(\"role\", \"menu\");\r\n var menuElementEntered = this.menuElement.selectAll(\".tsi-ellipsisMenuItem\").data(this.menuItems)\r\n .enter()\r\n .append(\"button\")\r\n .classed(\"tsi-ellipsisMenuItem\", true)\r\n .attr(\"aria-label\", function (d) { return d.label; })\r\n .attr(\"type\", \"button\")\r\n .attr(\"role\", \"menuitem\")\r\n .on('keydown', function (event, d) {\r\n var e = menuElementEntered.nodes();\r\n var i = e.indexOf(event.currentTarget);\r\n _this.menuItemKeyHandler(event, d, i);\r\n })\r\n .on(\"click\", function (event, d) {\r\n d.action();\r\n })\r\n .each(function () {\r\n d3.select(this)\r\n .append(\"div\")\r\n .attr(\"class\", function (d) { return \"tsi-ellipsisMenuIcon \" + self.createIconPath(d.iconClass, self.chartOptions.theme); });\r\n d3.select(this)\r\n .append(\"div\")\r\n .classed(\"tsi-ellipsisMenuLabel\", true)\r\n .text(function (d) { return d.label; });\r\n d3.select(this)\r\n .append(\"div\")\r\n .classed(\"tsi-ellipsisMenuDescription\", true)\r\n .style(\"display\", \"none\");\r\n });\r\n };\r\n EllipsisMenu.prototype.setMenuItems = function (rawMenuItems) {\r\n this.menuItems = rawMenuItems.reduce(function (menuItems, currMenuItem) {\r\n menuItems.push({\r\n iconClass: currMenuItem.iconClass,\r\n label: currMenuItem.label,\r\n action: currMenuItem.action,\r\n description: currMenuItem.description\r\n });\r\n return menuItems;\r\n }, []);\r\n };\r\n return EllipsisMenu;\r\n}(Component));\r\nexport default EllipsisMenu;\r\n","// The programming goals of Split.js are to deliver readable, understandable and\n// maintainable code, while at the same time manually optimizing for tiny minified file size,\n// browser compatibility without additional requirements, graceful fallback (IE8 is supported)\n// and very few assumptions about the user's page layout.\nvar global = window;\nvar document = global.document;\n\n// Save a couple long function names that are used frequently.\n// This optimization saves around 400 bytes.\nvar addEventListener = 'addEventListener';\nvar removeEventListener = 'removeEventListener';\nvar getBoundingClientRect = 'getBoundingClientRect';\nvar gutterStartDragging = '_a';\nvar aGutterSize = '_b';\nvar bGutterSize = '_c';\nvar HORIZONTAL = 'horizontal';\nvar NOOP = function () { return false; };\n\n// Figure out if we're in IE8 or not. IE8 will still render correctly,\n// but will be static instead of draggable.\nvar isIE8 = global.attachEvent && !global[addEventListener];\n\n// Helper function determines which prefixes of CSS calc we need.\n// We only need to do this once on startup, when this anonymous function is called.\n//\n// Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\n// http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\nvar calc = (['', '-webkit-', '-moz-', '-o-']\n .filter(function (prefix) {\n var el = document.createElement('div');\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\n\n return !!el.style.length\n })\n .shift()) + \"calc\";\n\n// Helper function checks if its argument is a string-like type\nvar isString = function (v) { return typeof v === 'string' || v instanceof String; };\n\n// Helper function allows elements and string selectors to be used\n// interchangeably. In either case an element is returned. This allows us to\n// do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\nvar elementOrSelector = function (el) {\n if (isString(el)) {\n var ele = document.querySelector(el);\n if (!ele) {\n throw new Error((\"Selector \" + el + \" did not match a DOM element\"))\n }\n return ele\n }\n\n return el\n};\n\n// Helper function gets a property from the properties object, with a default fallback\nvar getOption = function (options, propName, def) {\n var value = options[propName];\n if (value !== undefined) {\n return value\n }\n return def\n};\n\nvar getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {\n if (isFirst) {\n if (gutterAlign === 'end') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n } else if (isLast) {\n if (gutterAlign === 'start') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n }\n\n return gutterSize\n};\n\n// Default options\nvar defaultGutterFn = function (i, gutterDirection) {\n var gut = document.createElement('div');\n gut.className = \"gutter gutter-\" + gutterDirection;\n return gut\n};\n\nvar defaultElementStyleFn = function (dim, size, gutSize) {\n var style = {};\n\n if (!isString(size)) {\n if (!isIE8) {\n style[dim] = calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\n } else {\n style[dim] = size + \"%\";\n }\n } else {\n style[dim] = size;\n }\n\n return style\n};\n\nvar defaultGutterStyleFn = function (dim, gutSize) {\n var obj;\n\n return (( obj = {}, obj[dim] = (gutSize + \"px\"), obj ));\n};\n\n// The main function to initialize a split. Split.js thinks about each pair\n// of elements as an independant pair. Dragging the gutter between two elements\n// only changes the dimensions of elements in that pair. This is key to understanding\n// how the following functions operate, since each function is bound to a pair.\n//\n// A pair object is shaped like this:\n//\n// {\n// a: DOM element,\n// b: DOM element,\n// aMin: Number,\n// bMin: Number,\n// dragging: Boolean,\n// parent: DOM element,\n// direction: 'horizontal' | 'vertical'\n// }\n//\n// The basic sequence:\n//\n// 1. Set defaults to something sane. `options` doesn't have to be passed at all.\n// 2. Initialize a bunch of strings based on the direction we're splitting.\n// A lot of the behavior in the rest of the library is paramatized down to\n// rely on CSS strings and classes.\n// 3. Define the dragging helper functions, and a few helpers to go with them.\n// 4. Loop through the elements while pairing them off. Every pair gets an\n// `pair` object and a gutter.\n// 5. Actually size the pair elements, insert gutters and attach event listeners.\nvar Split = function (idsOption, options) {\n if ( options === void 0 ) options = {};\n\n var ids = idsOption;\n var dimension;\n var clientAxis;\n var position;\n var positionEnd;\n var clientSize;\n var elements;\n\n // Allow HTMLCollection to be used as an argument when supported\n if (Array.from) {\n ids = Array.from(ids);\n }\n\n // All DOM elements in the split should have a common parent. We can grab\n // the first elements parent and hope users read the docs because the\n // behavior will be whacky otherwise.\n var firstElement = elementOrSelector(ids[0]);\n var parent = firstElement.parentNode;\n var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;\n var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;\n\n // Set default options.sizes to equal percentages of the parent element.\n var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });\n\n // Standardize minSize to an array if it isn't already. This allows minSize\n // to be passed as a number.\n var minSize = getOption(options, 'minSize', 100);\n var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });\n\n // Get other options\n var expandToMin = getOption(options, 'expandToMin', false);\n var gutterSize = getOption(options, 'gutterSize', 10);\n var gutterAlign = getOption(options, 'gutterAlign', 'center');\n var snapOffset = getOption(options, 'snapOffset', 30);\n var dragInterval = getOption(options, 'dragInterval', 1);\n var direction = getOption(options, 'direction', HORIZONTAL);\n var cursor = getOption(\n options,\n 'cursor',\n direction === HORIZONTAL ? 'col-resize' : 'row-resize'\n );\n var gutter = getOption(options, 'gutter', defaultGutterFn);\n var elementStyle = getOption(\n options,\n 'elementStyle',\n defaultElementStyleFn\n );\n var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);\n\n // 2. Initialize a bunch of strings based on the direction we're splitting.\n // A lot of the behavior in the rest of the library is paramatized down to\n // rely on CSS strings and classes.\n if (direction === HORIZONTAL) {\n dimension = 'width';\n clientAxis = 'clientX';\n position = 'left';\n positionEnd = 'right';\n clientSize = 'clientWidth';\n } else if (direction === 'vertical') {\n dimension = 'height';\n clientAxis = 'clientY';\n position = 'top';\n positionEnd = 'bottom';\n clientSize = 'clientHeight';\n }\n\n // 3. Define the dragging helper functions, and a few helpers to go with them.\n // Each helper is bound to a pair object that contains its metadata. This\n // also makes it easy to store references to listeners that that will be\n // added and removed.\n //\n // Even though there are no other functions contained in them, aliasing\n // this to self saves 50 bytes or so since it's used so frequently.\n //\n // The pair object saves metadata like dragging state, position and\n // event listener references.\n\n function setElementSize(el, size, gutSize, i) {\n // Split.js allows setting sizes via numbers (ideally), or if you must,\n // by string, like '300px'. This is less than ideal, because it breaks\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\n // make sure you calculate the gutter size by hand.\n var style = elementStyle(dimension, size, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n el.style[prop] = style[prop];\n });\n }\n\n function setGutterSize(gutterElement, gutSize, i) {\n var style = gutterStyle(dimension, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n gutterElement.style[prop] = style[prop];\n });\n }\n\n function getSizes() {\n return elements.map(function (element) { return element.size; })\n }\n\n // Supports touch events, but not multitouch, so only the first\n // finger `touches[0]` is counted.\n function getMousePosition(e) {\n if ('touches' in e) { return e.touches[0][clientAxis] }\n return e[clientAxis]\n }\n\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\n // which allows the viewport to be resized without additional logic.\n // Element a's size is the same as offset. b's size is total size - a size.\n // Both sizes are calculated from the initial parent percentage,\n // then the gutter size is subtracted.\n function adjust(offset) {\n var a = elements[this.a];\n var b = elements[this.b];\n var percentage = a.size + b.size;\n\n a.size = (offset / this.size) * percentage;\n b.size = percentage - (offset / this.size) * percentage;\n\n setElementSize(a.element, a.size, this[aGutterSize], a.i);\n setElementSize(b.element, b.size, this[bGutterSize], b.i);\n }\n\n // drag, where all the magic happens. The logic is really quite simple:\n //\n // 1. Ignore if the pair is not dragging.\n // 2. Get the offset of the event.\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\n // 4. Actually adjust each element in the pair to offset.\n //\n // ---------------------------------------------------------------------\n // | | <- a.minSize || b.minSize -> | |\n // | | | <- this.snapOffset || this.snapOffset -> | | |\n // | | | || | | |\n // | | | || | | |\n // ---------------------------------------------------------------------\n // | <- this.start this.size -> |\n function drag(e) {\n var offset;\n var a = elements[this.a];\n var b = elements[this.b];\n\n if (!this.dragging) { return }\n\n // Get the offset of the event from the first side of the\n // pair `this.start`. Then offset by the initial position of the\n // mouse compared to the gutter size.\n offset =\n getMousePosition(e) -\n this.start +\n (this[aGutterSize] - this.dragOffset);\n\n if (dragInterval > 1) {\n offset = Math.round(offset / dragInterval) * dragInterval;\n }\n\n // If within snapOffset of min or max, set offset to min or max.\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\n // Include the appropriate gutter sizes to prevent overflows.\n if (offset <= a.minSize + snapOffset + this[aGutterSize]) {\n offset = a.minSize + this[aGutterSize];\n } else if (\n offset >=\n this.size - (b.minSize + snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.minSize + this[bGutterSize]);\n }\n\n // Actually adjust the size.\n adjust.call(this, offset);\n\n // Call the drag callback continously. Don't do anything too intensive\n // in this callback.\n getOption(options, 'onDrag', NOOP)();\n }\n\n // Cache some important sizes when drag starts, so we don't have to do that\n // continously:\n //\n // `size`: The total size of the pair. First + second + first gutter + second gutter.\n // `start`: The leading side of the first element.\n //\n // ------------------------------------------------\n // | aGutterSize -> ||| |\n // | ||| |\n // | ||| |\n // | ||| <- bGutterSize |\n // ------------------------------------------------\n // | <- start size -> |\n function calculateSizes() {\n // Figure out the parent size minus padding.\n var a = elements[this.a].element;\n var b = elements[this.b].element;\n\n var aBounds = a[getBoundingClientRect]();\n var bBounds = b[getBoundingClientRect]();\n\n this.size =\n aBounds[dimension] +\n bBounds[dimension] +\n this[aGutterSize] +\n this[bGutterSize];\n this.start = aBounds[position];\n this.end = aBounds[positionEnd];\n }\n\n function innerSize(element) {\n // Return nothing if getComputedStyle is not supported (< IE9)\n // Or if parent element has no layout yet\n if (!getComputedStyle) { return null }\n\n var computedStyle = getComputedStyle(element);\n\n if (!computedStyle) { return null }\n\n var size = element[clientSize];\n\n if (size === 0) { return null }\n\n if (direction === HORIZONTAL) {\n size -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n } else {\n size -=\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n }\n\n return size\n }\n\n // When specifying percentage sizes that are less than the computed\n // size of the element minus the gutter, the lesser percentages must be increased\n // (and decreased from the other elements) to make space for the pixels\n // subtracted by the gutters.\n function trimToMin(sizesToTrim) {\n // Try to get inner size of parent element.\n // If it's no supported, return original sizes.\n var parentSize = innerSize(parent);\n if (parentSize === null) {\n return sizesToTrim\n }\n\n if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {\n return sizesToTrim\n }\n\n // Keep track of the excess pixels, the amount of pixels over the desired percentage\n // Also keep track of the elements with pixels to spare, to decrease after if needed\n var excessPixels = 0;\n var toSpare = [];\n\n var pixelSizes = sizesToTrim.map(function (size, i) {\n // Convert requested percentages to pixel sizes\n var pixelSize = (parentSize * size) / 100;\n var elementGutterSize = getGutterSize(\n gutterSize,\n i === 0,\n i === sizesToTrim.length - 1,\n gutterAlign\n );\n var elementMinSize = minSizes[i] + elementGutterSize;\n\n // If element is too smal, increase excess pixels by the difference\n // and mark that it has no pixels to spare\n if (pixelSize < elementMinSize) {\n excessPixels += elementMinSize - pixelSize;\n toSpare.push(0);\n return elementMinSize\n }\n\n // Otherwise, mark the pixels it has to spare and return it's original size\n toSpare.push(pixelSize - elementMinSize);\n return pixelSize\n });\n\n // If nothing was adjusted, return the original sizes\n if (excessPixels === 0) {\n return sizesToTrim\n }\n\n return pixelSizes.map(function (pixelSize, i) {\n var newPixelSize = pixelSize;\n\n // While there's still pixels to take, and there's enough pixels to spare,\n // take as many as possible up to the total excess pixels\n if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {\n var takenPixels = Math.min(\n excessPixels,\n toSpare[i] - excessPixels\n );\n\n // Subtract the amount taken for the next iteration\n excessPixels -= takenPixels;\n newPixelSize = pixelSize - takenPixels;\n }\n\n // Return the pixel size adjusted as a percentage\n return (newPixelSize / parentSize) * 100\n })\n }\n\n // stopDragging is very similar to startDragging in reverse.\n function stopDragging() {\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n if (self.dragging) {\n getOption(options, 'onDragEnd', NOOP)(getSizes());\n }\n\n self.dragging = false;\n\n // Remove the stored event listeners. This is why we store them.\n global[removeEventListener]('mouseup', self.stop);\n global[removeEventListener]('touchend', self.stop);\n global[removeEventListener]('touchcancel', self.stop);\n global[removeEventListener]('mousemove', self.move);\n global[removeEventListener]('touchmove', self.move);\n\n // Clear bound function references\n self.stop = null;\n self.move = null;\n\n a[removeEventListener]('selectstart', NOOP);\n a[removeEventListener]('dragstart', NOOP);\n b[removeEventListener]('selectstart', NOOP);\n b[removeEventListener]('dragstart', NOOP);\n\n a.style.userSelect = '';\n a.style.webkitUserSelect = '';\n a.style.MozUserSelect = '';\n a.style.pointerEvents = '';\n\n b.style.userSelect = '';\n b.style.webkitUserSelect = '';\n b.style.MozUserSelect = '';\n b.style.pointerEvents = '';\n\n self.gutter.style.cursor = '';\n self.parent.style.cursor = '';\n document.body.style.cursor = '';\n }\n\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\n // It also adds event listeners for mouse/touch events,\n // and prevents selection while dragging so avoid the selecting text.\n function startDragging(e) {\n // Right-clicking can't start dragging.\n if ('button' in e && e.button !== 0) {\n return\n }\n\n // Alias frequently used variables to save space. 200 bytes.\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n // Call the onDragStart callback.\n if (!self.dragging) {\n getOption(options, 'onDragStart', NOOP)(getSizes());\n }\n\n // Don't actually drag the element. We emulate that in the drag function.\n e.preventDefault();\n\n // Set the dragging property of the pair object.\n self.dragging = true;\n\n // Create two event listeners bound to the same pair object and store\n // them in the pair object.\n self.move = drag.bind(self);\n self.stop = stopDragging.bind(self);\n\n // All the binding. `window` gets the stop events in case we drag out of the elements.\n global[addEventListener]('mouseup', self.stop);\n global[addEventListener]('touchend', self.stop);\n global[addEventListener]('touchcancel', self.stop);\n global[addEventListener]('mousemove', self.move);\n global[addEventListener]('touchmove', self.move);\n\n // Disable selection. Disable!\n a[addEventListener]('selectstart', NOOP);\n a[addEventListener]('dragstart', NOOP);\n b[addEventListener]('selectstart', NOOP);\n b[addEventListener]('dragstart', NOOP);\n\n a.style.userSelect = 'none';\n a.style.webkitUserSelect = 'none';\n a.style.MozUserSelect = 'none';\n a.style.pointerEvents = 'none';\n\n b.style.userSelect = 'none';\n b.style.webkitUserSelect = 'none';\n b.style.MozUserSelect = 'none';\n b.style.pointerEvents = 'none';\n\n // Set the cursor at multiple levels\n self.gutter.style.cursor = cursor;\n self.parent.style.cursor = cursor;\n document.body.style.cursor = cursor;\n\n // Cache the initial sizes of the pair.\n calculateSizes.call(self);\n\n // Determine the position of the mouse compared to the gutter\n self.dragOffset = getMousePosition(e) - self.end;\n }\n\n // adjust sizes to ensure percentage is within min size and gutter.\n sizes = trimToMin(sizes);\n\n // 5. Create pair and element objects. Each pair has an index reference to\n // elements `a` and `b` of the pair (first and second elements).\n // Loop through the elements while pairing them off. Every pair gets a\n // `pair` object and a gutter.\n //\n // Basic logic:\n //\n // - Starting with the second element `i > 0`, create `pair` objects with\n // `a = i - 1` and `b = i`\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\n // - Create gutter elements and add event listeners.\n // - Set the size of the elements, minus the gutter sizes.\n //\n // -----------------------------------------------------------------------\n // | i=0 | i=1 | i=2 | i=3 |\n // | | | | |\n // | pair 0 pair 1 pair 2 |\n // | | | | |\n // -----------------------------------------------------------------------\n var pairs = [];\n elements = ids.map(function (id, i) {\n // Create the element object.\n var element = {\n element: elementOrSelector(id),\n size: sizes[i],\n minSize: minSizes[i],\n i: i,\n };\n\n var pair;\n\n if (i > 0) {\n // Create the pair object with its metadata.\n pair = {\n a: i - 1,\n b: i,\n dragging: false,\n direction: direction,\n parent: parent,\n };\n\n pair[aGutterSize] = getGutterSize(\n gutterSize,\n i - 1 === 0,\n false,\n gutterAlign\n );\n pair[bGutterSize] = getGutterSize(\n gutterSize,\n false,\n i === ids.length - 1,\n gutterAlign\n );\n\n // if the parent has a reverse flex-direction, switch the pair elements.\n if (\n parentFlexDirection === 'row-reverse' ||\n parentFlexDirection === 'column-reverse'\n ) {\n var temp = pair.a;\n pair.a = pair.b;\n pair.b = temp;\n }\n }\n\n // Determine the size of the current element. IE8 is supported by\n // staticly assigning sizes without draggable gutters. Assigns a string\n // to `size`.\n //\n // IE9 and above\n if (!isIE8) {\n // Create gutter elements for each pair.\n if (i > 0) {\n var gutterElement = gutter(i, direction, element.element);\n setGutterSize(gutterElement, gutterSize, i);\n\n // Save bound event listener for removal later\n pair[gutterStartDragging] = startDragging.bind(pair);\n\n // Attach bound event listener\n gutterElement[addEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n gutterElement[addEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n\n parent.insertBefore(gutterElement, element.element);\n\n pair.gutter = gutterElement;\n }\n }\n\n setElementSize(\n element.element,\n element.size,\n getGutterSize(\n gutterSize,\n i === 0,\n i === ids.length - 1,\n gutterAlign\n ),\n i\n );\n\n // After the first iteration, and we have a pair object, append it to the\n // list of pairs.\n if (i > 0) {\n pairs.push(pair);\n }\n\n return element\n });\n\n function adjustToMin(element) {\n var isLast = element.i === pairs.length;\n var pair = isLast ? pairs[element.i - 1] : pairs[element.i];\n\n calculateSizes.call(pair);\n\n var size = isLast\n ? pair.size - element.minSize - pair[bGutterSize]\n : element.minSize + pair[aGutterSize];\n\n adjust.call(pair, size);\n }\n\n elements.forEach(function (element) {\n var computedSize = element.element[getBoundingClientRect]()[dimension];\n\n if (computedSize < element.minSize) {\n if (expandToMin) {\n adjustToMin(element);\n } else {\n // eslint-disable-next-line no-param-reassign\n element.minSize = computedSize;\n }\n }\n });\n\n function setSizes(newSizes) {\n var trimmed = trimToMin(newSizes);\n trimmed.forEach(function (newSize, i) {\n if (i > 0) {\n var pair = pairs[i - 1];\n\n var a = elements[pair.a];\n var b = elements[pair.b];\n\n a.size = trimmed[i - 1];\n b.size = newSize;\n\n setElementSize(a.element, a.size, pair[aGutterSize], a.i);\n setElementSize(b.element, b.size, pair[bGutterSize], b.i);\n }\n });\n }\n\n function destroy(preserveStyles, preserveGutter) {\n pairs.forEach(function (pair) {\n if (preserveGutter !== true) {\n pair.parent.removeChild(pair.gutter);\n } else {\n pair.gutter[removeEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n pair.gutter[removeEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n }\n\n if (preserveStyles !== true) {\n var style = elementStyle(\n dimension,\n pair.a.size,\n pair[aGutterSize]\n );\n\n Object.keys(style).forEach(function (prop) {\n elements[pair.a].element.style[prop] = '';\n elements[pair.b].element.style[prop] = '';\n });\n }\n });\n }\n\n if (isIE8) {\n return {\n setSizes: setSizes,\n destroy: destroy,\n }\n }\n\n return {\n setSizes: setSizes,\n getSizes: getSizes,\n collapse: function collapse(i) {\n adjustToMin(elements[i]);\n },\n destroy: destroy,\n parent: parent,\n pairs: pairs,\n }\n};\n\nexport default Split;\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './Grid.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport { ChartComponentData } from '../../Models/ChartComponentData';\r\nimport { GRIDCONTAINERCLASS } from '../../Constants/Constants';\r\nvar Grid = /** @class */ (function (_super) {\r\n __extends(Grid, _super);\r\n function Grid(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.rowLabelKey = \"__tsiLabel__\";\r\n _this.colorKey = \"__tsiColor__\";\r\n _this.aggIndexKey = '__tsiAggIndex__';\r\n _this.chartComponentData = new ChartComponentData();\r\n _this.closeButton = null;\r\n _this.usesSeconds = false;\r\n _this.usesMillis = false;\r\n _this.cellClass = function (ridx, cidx) {\r\n return \"tsi-table-\" + ridx + '-' + cidx;\r\n };\r\n _this.focus = function (rowIdx, colIdx) {\r\n try {\r\n _this.gridComponent.select('.' + _this.cellClass(rowIdx, colIdx)).node()\r\n .focus();\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n };\r\n _this.getFormattedDate = function (h) {\r\n var hAsDate = (new Date(h));\r\n if (hAsDate != _this.getString('Invalid Date'))\r\n return Utils.timeFormat(_this.usesSeconds, _this.usesMillis, _this.chartOptions.offset, null, null, null, _this.chartOptions.dateLocale)(hAsDate);\r\n return h;\r\n };\r\n _this.setFilteredTimestamps = function () {\r\n if (_this.chartComponentData.fromMillis === Infinity) {\r\n _this.filteredTimestamps = _this.chartComponentData.allTimestampsArray;\r\n }\r\n else {\r\n _this.filteredTimestamps = _this.chartComponentData.allTimestampsArray.filter(function (ts) {\r\n var currMillis = (new Date(ts)).valueOf();\r\n return (currMillis >= _this.chartComponentData.fromMillis && currMillis < _this.chartComponentData.toMillis);\r\n });\r\n }\r\n };\r\n _this.arrowNavigate = function (d3event, rowIdx, colIdx) {\r\n if (d3event.keyCode === 9) {\r\n if (_this.closeButton) {\r\n (_this.closeButton.node()).focus();\r\n d3event.preventDefault();\r\n }\r\n return;\r\n }\r\n var codes = [37, 38, 39, 40];\r\n var codeIndex = codes.indexOf(d3event.keyCode);\r\n if (codeIndex == -1)\r\n return;\r\n switch (codeIndex) {\r\n case 0:\r\n // left\r\n _this.focus(rowIdx, colIdx - 1);\r\n d3event.preventDefault();\r\n break;\r\n case 1:\r\n // up\r\n _this.focus(rowIdx - 1, colIdx);\r\n d3event.preventDefault();\r\n break;\r\n case 2:\r\n // right\r\n _this.focus(rowIdx, colIdx + 1);\r\n d3event.preventDefault();\r\n break;\r\n case 3:\r\n // down\r\n _this.focus(rowIdx + 1, colIdx);\r\n d3event.preventDefault();\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return _this;\r\n }\r\n Grid.hideGrid = function (renderTarget) {\r\n d3.select(renderTarget).selectAll(\".\" + GRIDCONTAINERCLASS).remove();\r\n };\r\n Grid.showGrid = function (renderTarget, chartOptions, aggregateExpressionOptions, chartComponentData) {\r\n chartOptions.fromChart = true;\r\n d3.select(renderTarget).selectAll(\".\" + GRIDCONTAINERCLASS).remove();\r\n var gridContainer = d3.select(renderTarget).append('div')\r\n .attr('class', GRIDCONTAINERCLASS)\r\n .style('width', '100%')\r\n .style('height', '100%');\r\n var gridComponent = new Grid(gridContainer.node());\r\n gridComponent.usesSeconds = chartComponentData.usesSeconds;\r\n gridComponent.usesMillis = chartComponentData.usesMillis;\r\n var grid = gridComponent.renderFromAggregates(chartComponentData.data, chartOptions, aggregateExpressionOptions, chartComponentData);\r\n gridComponent.focus(0, 0);\r\n };\r\n Grid.createGridEllipsisOption = function (renderTarget, chartOptions, aggregateExpressionOptions, chartComponentData, labelText) {\r\n var _this = this;\r\n if (labelText === void 0) { labelText = 'Display Grid'; }\r\n return {\r\n iconClass: \"grid\",\r\n label: labelText,\r\n action: function () {\r\n _this.showGrid(renderTarget, chartOptions, aggregateExpressionOptions, chartComponentData);\r\n },\r\n description: \"\"\r\n };\r\n };\r\n Grid.prototype.Grid = function () {\r\n };\r\n Grid.prototype.renderFromAggregates = function (data, options, aggregateExpressionOptions, chartComponentData) {\r\n var _this = this;\r\n this.chartOptions.setOptions(options);\r\n var dataAsJson = data.reduce(function (p, c, i) {\r\n var aeName = Object.keys(c)[0];\r\n Object.keys(c[aeName]).forEach(function (sbName) {\r\n var row = {};\r\n Object.keys(c[aeName][sbName]).forEach(function (dt) {\r\n row[dt] = c[aeName][sbName][dt];\r\n });\r\n row[_this.rowLabelKey] = (Object.keys(c[aeName]).length == 1 && sbName == \"\" ? aeName : sbName);\r\n if (aggregateExpressionOptions && aggregateExpressionOptions[i].color)\r\n row[_this.colorKey] = aggregateExpressionOptions[i].color;\r\n row[_this.aggIndexKey] = i;\r\n p.push(row);\r\n });\r\n return p;\r\n }, []);\r\n return this.render(dataAsJson, options, aggregateExpressionOptions, chartComponentData);\r\n };\r\n Grid.prototype.getRowData = function () {\r\n var _this = this;\r\n var rowData = [];\r\n Object.keys(this.chartComponentData.timeArrays).forEach(function (aggKey) {\r\n Object.keys(_this.chartComponentData.timeArrays[aggKey]).forEach(function (sb, sbI) {\r\n if (_this.chartComponentData.getSplitByVisible(aggKey, sb)) {\r\n rowData.push([aggKey, sb]);\r\n }\r\n });\r\n });\r\n return rowData;\r\n };\r\n Grid.prototype.convertSeriesToGridData = function (allTimeStampMap, currSeries) {\r\n Object.keys(allTimeStampMap).forEach(function (k) { return allTimeStampMap[k] = {}; });\r\n currSeries = currSeries.filter(function (d) {\r\n return d.measures !== null;\r\n });\r\n currSeries.map(function (dataPoint) {\r\n allTimeStampMap[dataPoint.dateTime.toISOString()] = dataPoint;\r\n });\r\n return Object.keys(allTimeStampMap).map(function (ts) {\r\n return allTimeStampMap[ts];\r\n });\r\n };\r\n Grid.prototype.addHeaderCells = function () {\r\n var _this = this;\r\n var headerCellData = this.filteredTimestamps; // this.chartComponentData.allTimestampsArray;\r\n var headerCells = this.tableHeaderRow.selectAll('.tsi-headerCell').data(headerCellData);\r\n var headerCellsEntered = headerCells.enter()\r\n .append('th')\r\n .merge(headerCells)\r\n .attr(\"class\", function (d, i) { return _this.cellClass(0, i + 1) + ' tsi-headerCell'; })\r\n .on(\"keydown\", function (event, d) {\r\n var e = headerCellsEntered.nodes();\r\n var i = e.indexOf(event.currentTarget);\r\n _this.arrowNavigate(event, 0, i + 1);\r\n })\r\n .text(this.getFormattedDate)\r\n .attr('aria-label', function (h) {\r\n return _this.getString('column header for date') + \" \" + _this.getFormattedDate(h);\r\n });\r\n headerCellsEntered.exit().remove();\r\n };\r\n Grid.prototype.addValueCells = function () {\r\n var rowData = this.getRowData();\r\n var rows = this.table.selectAll('.tsi-gridContentRow').data(rowData);\r\n var self = this;\r\n var allTimeStampMap = this.filteredTimestamps.reduce(function (tsMap, ts) {\r\n tsMap[ts] = {};\r\n return tsMap;\r\n }, {});\r\n var headerCellData = this.filteredTimestamps;\r\n var rowsEntered = rows.enter()\r\n .append('tr')\r\n .classed('tsi-gridContentRow', true)\r\n .each(function (d, i) {\r\n var aggKey = d[0];\r\n var splitBy = d[1];\r\n var seriesData = self.convertSeriesToGridData(allTimeStampMap, self.chartComponentData.timeArrays[aggKey][splitBy]);\r\n var cells = d3.select(this).selectAll('.tsi-valueCell').data(seriesData);\r\n var measuresData = self.chartOptions.spMeasures ? self.chartOptions.spMeasures : self.chartComponentData.displayState[aggKey].splitBys[splitBy].types;\r\n //Row header with the name of the series\r\n var headerCell = d3.select(this).selectAll('tsi-rowHeaderCell').data([d]);\r\n var getRowHeaderText = function (d) {\r\n return \"\" + self.chartComponentData.displayState[aggKey].name + (splitBy !== '' ? (': ' + splitBy) : '');\r\n };\r\n headerCell.enter()\r\n .append('td')\r\n .merge(headerCell)\r\n .attr('class', function (d, col) { return \"tsi-rowHeaderCell \" + self.cellClass(i + 1, 0); })\r\n .on(\"keydown\", function (event, d) {\r\n self.arrowNavigate(event, i + 1, 0);\r\n })\r\n .attr('aria-label', function (d) {\r\n return self.getString('row header for') + \" \" + Utils.stripNullGuid(getRowHeaderText(d));\r\n })\r\n .each(function (d) {\r\n d3.select(this).select('*').remove();\r\n var container = d3.select(this).append('div').attr('class', 'tsi-rowHeaderContainer');\r\n var seriesName = container.append('div')\r\n .attr('class', 'tsi-rowHeaderSeriesName');\r\n Utils.appendFormattedElementsFromString(seriesName, getRowHeaderText(d));\r\n var measureContainer = container.append('div')\r\n .attr('class', 'tsi-rowHeaderMeasures');\r\n var measureNames = measureContainer.selectAll('.tsi-measureName').data(measuresData);\r\n measureNames.enter()\r\n .append('div')\r\n .attr('class', 'tsi-measureName')\r\n .text(function (d) { return d; });\r\n });\r\n headerCell.exit().remove();\r\n var cellsEntered = cells.enter()\r\n .append('td')\r\n .merge(cells)\r\n .attr('class', function (d, col) { return \"tsi-valueCell \" + self.cellClass(i + 1, col + 1); })\r\n .on(\"keydown\", function (event, d) {\r\n var e = cellsEntered.nodes();\r\n var col = e.indexOf(event.currentTarget);\r\n self.arrowNavigate(event, i + 1, col + 1);\r\n })\r\n .attr('aria-label', function (d, i) {\r\n if (!d.measures || Object.keys(d.measures).length === 0) {\r\n return self.getString('no values at') + \" \" + getRowHeaderText(d) + \" and \" + self.getFormattedDate(new Date(headerCellData[i]));\r\n }\r\n var formattedValues = Object.keys(d.measures).map(function (measureName) {\r\n return measureName + \": \" + d.measures[measureName];\r\n }).join(', ');\r\n return self.getString('values for cell at') + \" \" + getRowHeaderText(d) + \" \" + self.getString('and') + \" \" + self.getFormattedDate(d.dateTime) + \" \" + self.getString('are') + \" \" + formattedValues;\r\n })\r\n .each(function (d, i) {\r\n var measures = d3.select(this).selectAll('.tsi-measureValue').data(measuresData);\r\n measures.enter()\r\n .append('div')\r\n .attr('class', 'tsi-measureValue')\r\n .text(function (measure) { return d.measures ? d.measures[measure] : ''; });\r\n measures.exit().remove();\r\n });\r\n cellsEntered.exit().remove();\r\n });\r\n rowsEntered.exit().remove();\r\n };\r\n Grid.prototype.render = function (data, options, aggregateExpressionOptions, chartComponentData) {\r\n var _this = this;\r\n if (chartComponentData === void 0) { chartComponentData = null; }\r\n data = Utils.standardizeTSStrings(data);\r\n this.chartOptions.setOptions(options);\r\n this.gridComponent = d3.select(this.renderTarget);\r\n if (chartComponentData) {\r\n this.chartComponentData = chartComponentData;\r\n }\r\n else {\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(data, aggregateExpressionOptions);\r\n }\r\n this.setFilteredTimestamps();\r\n _super.prototype.themify.call(this, this.gridComponent, this.chartOptions.theme);\r\n this.gridComponent\r\n .classed(\"tsi-gridComponent\", true)\r\n .classed(\"tsi-fromChart\", !!options.fromChart);\r\n var grid = this.gridComponent\r\n .append('div')\r\n .attr(\"class\", \"tsi-gridWrapper\")\r\n .on(\"click\", function () {\r\n if (_this) {\r\n _this.focus(0, 0);\r\n }\r\n });\r\n var headers = Object.keys(data.reduce(function (p, c) {\r\n Object.keys(c).forEach(function (k) {\r\n if (k != _this.rowLabelKey && k != _this.colorKey)\r\n p[k] = true;\r\n });\r\n return p;\r\n }, {})).sort();\r\n if (!this.table) {\r\n this.table = grid.append('table').classed('tsi-gridTable', true);\r\n this.tableHeaderRow = this.table.append('tr').classed('tsi-gridHeaderRow', true);\r\n this.tableHeaderRow.append('th')\r\n .attr(\"class\", \"tsi-topLeft \" + this.cellClass(0, 0))\r\n .on(\"keydown\", function (event) {\r\n _this.arrowNavigate(event, 0, 0);\r\n });\r\n }\r\n this.addHeaderCells();\r\n this.addValueCells();\r\n if (this.chartOptions.fromChart) {\r\n this.gridComponent.selectAll('.tsi-closeButton').remove();\r\n this.closeButton = grid.append('button')\r\n .attr(\"class\", \"tsi-closeButton\")\r\n .attr('aria-label', this.getString('close grid'))\r\n .html('×')\r\n .on('keydown', function (event) {\r\n if (event.keyCode === 9) {\r\n _this.focus(0, 0);\r\n event.preventDefault();\r\n }\r\n })\r\n .on(\"click\", function () {\r\n if (!!options.fromChart) {\r\n Utils.focusOnEllipsisButton(_this.renderTarget.parentNode);\r\n _this.gridComponent.remove();\r\n }\r\n });\r\n }\r\n };\r\n return Grid;\r\n}(Component));\r\nexport default Grid;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nimport Utils from \"../Utils\";\r\nimport { DataTypes, TooltipMeasureFormat } from \"./../Constants/Enums\";\r\nimport { GRIDCONTAINERCLASS } from \"./../Constants/Constants\";\r\nimport { Component } from \"./Component\";\r\nimport { ChartComponentData } from './../Models/ChartComponentData';\r\nimport EllipsisMenu from \"../Components/EllipsisMenu\";\r\nimport * as d3 from 'd3';\r\nimport Split from 'split.js';\r\nimport { ShiftTypes } from \"../Constants/Enums\";\r\nimport Grid from \"../Components/Grid\";\r\nvar ChartComponent = /** @class */ (function (_super) {\r\n __extends(ChartComponent, _super);\r\n function ChartComponent(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.MINWIDTH = 350;\r\n _this.MINHEIGHT = 150;\r\n _this.CONTROLSWIDTH = 200;\r\n _this.GUTTERWIDTH = 6;\r\n _this.chartControlsPanel = null;\r\n _this.ellipsisContainer = null;\r\n _this.ellipsisMenu = null;\r\n _this.svgSelection = null;\r\n _this.legendWidth = _this.CONTROLSWIDTH;\r\n _this.downloadAsCSV = function (isScatterPlot) {\r\n if (isScatterPlot === void 0) { isScatterPlot = false; }\r\n Utils.downloadCSV(_this.chartComponentData.generateCSVString(_this.chartOptions.offset, _this.chartOptions.dateLocale, isScatterPlot ? _this.chartOptions.spMeasures : null));\r\n };\r\n _this.chartComponentData = new ChartComponentData();\r\n return _this;\r\n }\r\n ChartComponent.prototype.showGrid = function () {\r\n Grid.showGrid(this.renderTarget, this.chartOptions, this.aggregateExpressionOptions, this.chartComponentData);\r\n };\r\n ChartComponent.prototype.gatedShowGrid = function () {\r\n if (this.isGridVisible()) {\r\n this.showGrid();\r\n }\r\n };\r\n ChartComponent.prototype.hideGrid = function () {\r\n Grid.hideGrid(this.renderTarget);\r\n };\r\n ChartComponent.prototype.isGridVisible = function () {\r\n return !d3.select(this.renderTarget).selectAll(\".\" + GRIDCONTAINERCLASS).empty();\r\n };\r\n ChartComponent.prototype.drawEllipsisMenu = function (additionalEllipsisItems) {\r\n var _this = this;\r\n if (additionalEllipsisItems === void 0) { additionalEllipsisItems = []; }\r\n if (this.chartOptions.canDownload || this.chartOptions.grid || (this.chartOptions.ellipsisItems && this.chartOptions.ellipsisItems.length > 0) || additionalEllipsisItems.length > 0) {\r\n if (this.ellipsisContainer === null) {\r\n this.ellipsisContainer = this.chartControlsPanel.append(\"div\")\r\n .attr(\"class\", \"tsi-ellipsisContainerDiv\");\r\n }\r\n if (this.ellipsisMenu === null) {\r\n this.ellipsisMenu = new EllipsisMenu(this.ellipsisContainer.node());\r\n }\r\n var ellipsisItems = [];\r\n if (this.chartOptions.grid) {\r\n ellipsisItems.push(Grid.createGridEllipsisOption(this.renderTarget, this.chartOptions, this.aggregateExpressionOptions, this.chartComponentData, this.getString(\"Display Grid\")));\r\n }\r\n if (this.chartOptions.canDownload) {\r\n ellipsisItems.push(Utils.createDownloadEllipsisOption(function () { return _this.chartComponentData.generateCSVString(_this.chartOptions.offset, _this.chartOptions.dateLocale); }, function () { return Utils.focusOnEllipsisButton(_this.renderTarget); }, this.getString(\"Download as CSV\")));\r\n }\r\n if (this.chartOptions.ellipsisItems) {\r\n ellipsisItems = ellipsisItems.concat(this.chartOptions.ellipsisItems);\r\n }\r\n this.ellipsisMenu.render(ellipsisItems.concat(additionalEllipsisItems), { theme: this.chartOptions.theme });\r\n }\r\n };\r\n ChartComponent.prototype.removeControlPanel = function () {\r\n if (this.chartControlsPanel) {\r\n this.chartControlsPanel.remove();\r\n }\r\n this.chartControlsPanel = null;\r\n this.ellipsisContainer = null;\r\n this.ellipsisMenu = null;\r\n };\r\n ChartComponent.prototype.removeEllipsisMenu = function () {\r\n if (this.ellipsisContainer) {\r\n this.ellipsisContainer.remove();\r\n }\r\n this.ellipsisContainer = null;\r\n this.ellipsisMenu = null;\r\n };\r\n ChartComponent.prototype.getWidth = function () {\r\n return Math.max(d3.select(this.renderTarget).node().clientWidth, this.MINWIDTH);\r\n };\r\n ChartComponent.prototype.getVisibilityState = function () {\r\n return this.chartComponentData.getVisibilityState();\r\n };\r\n ChartComponent.prototype.ellipsisItemsExist = function () {\r\n return (this.chartOptions.canDownload || this.chartOptions.ellipsisItems.length > 0 || this.chartOptions.grid);\r\n };\r\n ChartComponent.prototype.getDataType = function (aggKey) {\r\n return this.chartComponentData.getDataType(aggKey);\r\n };\r\n ChartComponent.prototype.getCDOFromAggKey = function (aggKey) {\r\n var matches = this.aggregateExpressionOptions.filter(function (cDO) {\r\n return cDO.aggKey === aggKey;\r\n });\r\n if (matches.length === 1) {\r\n return matches[0];\r\n }\r\n return {};\r\n };\r\n ChartComponent.prototype.getFilteredMeasures = function (measureList, visibleMeasure, measureFormat, xyrMeasures) {\r\n if (xyrMeasures === void 0) { xyrMeasures = null; }\r\n var justVisibleMeasure = [visibleMeasure];\r\n switch (measureFormat) {\r\n case TooltipMeasureFormat.SingleValue:\r\n return justVisibleMeasure;\r\n case TooltipMeasureFormat.Scatter:\r\n return xyrMeasures;\r\n default:\r\n if (measureList.length !== 3) {\r\n return justVisibleMeasure;\r\n }\r\n var isAvgMinMax_1 = true;\r\n measureList.forEach(function (measure) {\r\n if (!(measure === 'avg' || measure === 'min' || measure === 'max')) {\r\n isAvgMinMax_1 = false;\r\n }\r\n });\r\n return isAvgMinMax_1 ? measureList.sort(function (m) { return m === 'min' ? -1 : (m === 'avg' ? 0 : 1); }) : justVisibleMeasure;\r\n }\r\n };\r\n // to get alignment for data points between other types and linechart for tooltip formatting\r\n ChartComponent.prototype.convertToTimeValueFormat = function (d) {\r\n var measuresObject = {};\r\n var measureType = d.measureType ? d.measureType : this.chartComponentData.displayState[d.aggKey].splitBys[d.splitBy].visibleType;\r\n measuresObject[measureType] = d.val;\r\n return {\r\n aggregateKey: d.aggKey,\r\n splitBy: d.splitBy,\r\n aggregateName: this.chartComponentData.displayState[d.aggKey].name,\r\n measures: measuresObject\r\n };\r\n };\r\n ChartComponent.prototype.formatDate = function (date, shiftMillis) {\r\n return Utils.timeFormat(this.chartComponentData.usesSeconds, this.chartComponentData.usesMillis, this.chartOptions.offset, this.chartOptions.is24HourTime, shiftMillis, null, this.chartOptions.dateLocale)(date);\r\n };\r\n ChartComponent.prototype.tooltipFormat = function (d, text, measureFormat, xyrMeasures) {\r\n var _this = this;\r\n if (xyrMeasures === void 0) { xyrMeasures = null; }\r\n var dataType = this.getDataType(d.aggregateKey);\r\n var title = d.aggregateName;\r\n var cDO = this.getCDOFromAggKey(d.aggregateKey);\r\n var shiftMillis = this.chartComponentData.getTemporalShiftMillis(d.aggregateKey);\r\n var formatDate = function (date) { return _this.formatDate(date, shiftMillis); };\r\n var titleGroup = text.append(\"div\")\r\n .attr(\"class\", \"tsi-tooltipTitleGroup\");\r\n this.createTooltipSeriesInfo(d, titleGroup, cDO);\r\n if (dataType === DataTypes.Categorical) {\r\n titleGroup.append('h4')\r\n .attr('class', 'tsi-tooltipSubtitle tsi-tooltipTimeStamp')\r\n .text(formatDate(d.dateTime) + ' - ' + formatDate(d.endDate));\r\n }\r\n if (dataType === DataTypes.Events) {\r\n titleGroup.append('h4')\r\n .attr('class', 'tsi-tooltipSubtitle tsi-tooltipTimeStamp')\r\n .text(formatDate(d.dateTime));\r\n }\r\n var tooltipAttrs = cDO.tooltipAttributes;\r\n if (shiftMillis !== 0 && tooltipAttrs) {\r\n var shiftTuple = this.chartComponentData.getTemporalShiftStringTuple(d.aggregateKey);\r\n if (shiftTuple !== null) {\r\n var keyString = this.getString(shiftTuple[0]);\r\n var valueString = (keyString === ShiftTypes.startAt) ? this.formatDate(new Date(shiftTuple[1]), 0) : shiftTuple[1];\r\n tooltipAttrs = __spreadArray(__spreadArray([], tooltipAttrs), [[keyString, valueString]]);\r\n }\r\n }\r\n if (tooltipAttrs && tooltipAttrs.length > 0) {\r\n var attrsGroup_1 = text.append('div')\r\n .attr('class', 'tsi-tooltipAttributeContainer tsi-tooltipFlexyBox');\r\n tooltipAttrs.forEach(function (attrTuple, i) {\r\n var timeShiftRow = attrsGroup_1.append('div')\r\n .attr('class', 'tsi-tooltipAttribute tsi-tooltipFlexyItem');\r\n timeShiftRow.append('div')\r\n .attr('class', 'tsi-tooltipAttrTitle')\r\n .text(attrTuple[0]);\r\n timeShiftRow.append('div')\r\n .attr('class', 'tsi-tooltipAttrValue')\r\n .text(attrTuple[1]);\r\n });\r\n }\r\n if (d.measures && Object.keys(d.measures).length) {\r\n var formatValue_1 = (dataType === DataTypes.Events ? function (d) { return d; } : Utils.formatYAxisNumber);\r\n if (dataType !== DataTypes.Numeric) {\r\n var valueGroup_1 = text.append('table')\r\n .attr('class', 'tsi-tooltipValues tsi-tooltipTable');\r\n Object.keys(d.measures).forEach(function (measureType, i) {\r\n if (!(dataType === DataTypes.Categorical) || d.measures[measureType] !== 0) {\r\n valueGroup_1.append('tr').classed('tsi-tableSpacer', true);\r\n var tr = valueGroup_1.append('tr')\r\n .classed('tsi-visibleValue', (dataType === DataTypes.Numeric && (measureType === _this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy))))\r\n .style('border-left-color', Utils.getColorForValue(cDO, measureType));\r\n tr.append('td')\r\n .attr('class', 'tsi-valueLabel')\r\n .text(measureType);\r\n tr.append('td')\r\n .attr('class', 'tsi-valueCell')\r\n .text(formatValue_1(d.measures[measureType]));\r\n }\r\n });\r\n }\r\n else {\r\n var valueGroup_2 = text.append('div')\r\n .attr('class', 'tsi-tooltipFlexyBox');\r\n var filteredMeasures = this.getFilteredMeasures(Object.keys(d.measures), this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy), measureFormat, xyrMeasures);\r\n filteredMeasures.forEach(function (measureType, i) {\r\n var valueItem = valueGroup_2.append('div')\r\n .attr('class', 'tsi-tooltipFlexyItem')\r\n .classed('tsi-visibleValue', (dataType === DataTypes.Numeric &&\r\n (measureType === _this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)) &&\r\n (measureFormat !== TooltipMeasureFormat.Scatter)));\r\n var measureTitle = valueItem.append('div')\r\n .attr('class', 'tsi-tooltipMeasureTitle');\r\n Utils.appendFormattedElementsFromString(measureTitle, measureType);\r\n valueItem.append('div')\r\n .attr('class', 'tsi-tooltipMeasureValue')\r\n .text(formatValue_1(d.measures[measureType]));\r\n });\r\n }\r\n }\r\n };\r\n ChartComponent.prototype.getSVGWidth = function () {\r\n return this.chartWidth + this.chartMargins.left + this.chartMargins.right;\r\n };\r\n ChartComponent.prototype.getChartWidth = function (legendWidth) {\r\n if (legendWidth === void 0) { legendWidth = this.CONTROLSWIDTH; }\r\n legendWidth = this.legendWidth; // + this.GUTTERWIDTH;\r\n return Math.max(1, this.width - this.chartMargins.left - this.chartMargins.right - (this.chartOptions.legend === \"shown\" ? legendWidth : 0));\r\n };\r\n ChartComponent.prototype.calcSVGWidth = function () {\r\n return this.svgSelection.node().getBoundingClientRect().width;\r\n };\r\n ChartComponent.prototype.setControlsPanelWidth = function () {\r\n if (!this.chartOptions.hideChartControlPanel && this.chartControlsPanel !== null) {\r\n //either calculate expected or just use svg if it's in the DOM\r\n var controlPanelWidth = this.svgSelection && this.svgSelection.node() ?\r\n this.calcSVGWidth() :\r\n this.getWidth() - (this.chartOptions.legend === 'shown' ? (this.legendWidth + this.GUTTERWIDTH) : 0);\r\n this.chartControlsPanel.style(\"width\", controlPanelWidth + \"px\");\r\n }\r\n };\r\n ChartComponent.prototype.legendPostRenderProcess = function (legendState, chartElement, shouldSetControlsWidth, splitLegendOnDrag) {\r\n if (splitLegendOnDrag === void 0) { splitLegendOnDrag = undefined; }\r\n if (legendState === 'shown') {\r\n this.splitLegendAndSVG(chartElement.node(), splitLegendOnDrag);\r\n if (shouldSetControlsWidth) {\r\n this.setControlsPanelWidth();\r\n }\r\n }\r\n else {\r\n d3.select(this.renderTarget).select('.tsi-resizeGutter').remove();\r\n }\r\n };\r\n ChartComponent.prototype.splitLegendAndSVG = function (chartElement, onDrag) {\r\n var _this = this;\r\n if (onDrag === void 0) { onDrag = function () { }; }\r\n var svgWidth = this.getSVGWidth();\r\n var legendWidth = this.width - svgWidth;\r\n d3.select(this.renderTarget).select('.tsi-resizeGutter').remove();\r\n var legend = this.legendObject.legendElement;\r\n Split([this.legendObject.legendElement.node(), chartElement], {\r\n sizes: [legendWidth / this.width * 100, svgWidth / this.width * 100],\r\n gutterSize: 2,\r\n minSize: [200, 0],\r\n snapOffset: 0,\r\n cursor: 'e-resize',\r\n onDragEnd: function (sizes) {\r\n var legendWidth = _this.width * (sizes[0] / 100);\r\n _this.legendWidth = legendWidth;\r\n _this.chartWidth = _this.getChartWidth();\r\n _this.draw(true);\r\n legend.style('width', _this.legendWidth + 'px');\r\n d3.select(_this.renderTarget).select('.tsi-resizeGutter')\r\n .classed('tsi-isDragging', false);\r\n },\r\n onDragStart: function () {\r\n d3.select(_this.renderTarget).select('.tsi-resizeGutter')\r\n .classed('tsi-isDragging', true);\r\n },\r\n onDrag: function () {\r\n if (!_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel !== null) {\r\n var svgLeftOffset = _this.calcSVGWidth();\r\n _this.chartControlsPanel.style(\"width\", Math.max(svgLeftOffset, _this.chartMargins.left + 8) + \"px\"); //8px to account for the width of the icon\r\n }\r\n onDrag();\r\n },\r\n gutter: function (index, direction) {\r\n var gutter = document.createElement('div');\r\n gutter.className = \"gutter tsi-resizeGutter\";\r\n return gutter;\r\n },\r\n direction: 'horizontal'\r\n });\r\n // explicitly set the width of the legend to a pixel value\r\n var calcedLegendWidth = legend.node().getBoundingClientRect().width;\r\n legend.style(\"width\", calcedLegendWidth + \"px\");\r\n };\r\n return ChartComponent;\r\n}(Component));\r\nexport { ChartComponent };\r\n","import { InterpolationFunctions, DataTypes, EventElementTypes } from \"../Constants/Enums\";\r\nimport Utils from \"../Utils\";\r\nvar DEFAULT_HEIGHT = 40;\r\n// Represents an expression that is suitable for use as the expression options parameter in a chart component\r\nvar ChartDataOptions = /** @class */ (function () {\r\n function ChartDataOptions(optionsObject) {\r\n this.interpolationFunction = InterpolationFunctions.None;\r\n this.yExtent = null;\r\n this.includeEnvelope = false;\r\n this.includeDots = false;\r\n this.visibilityState = null;\r\n this.connectPoints = false;\r\n this.pointConnectionMeasure = '';\r\n this.searchSpan = Utils.getValueOrDefault(optionsObject, 'searchSpan');\r\n this.measureTypes = Utils.getValueOrDefault(optionsObject, 'measureTypes');\r\n this.color = Utils.getValueOrDefault(optionsObject, 'color');\r\n this.alias = Utils.getValueOrDefault(optionsObject, 'alias');\r\n this.contextMenu = Utils.getValueOrDefault(optionsObject, 'contextMenu', []);\r\n this.interpolationFunction = Utils.getValueOrDefault(optionsObject, 'interpolationFunction', InterpolationFunctions.None);\r\n this.includeEnvelope = Utils.getValueOrDefault(optionsObject, 'includeEnvelope', false);\r\n this.includeDots = Utils.getValueOrDefault(optionsObject, 'includeDots', false);\r\n this.visibilityState = Utils.getValueOrDefault(optionsObject, 'visibilityState');\r\n this.yExtent = Utils.getValueOrDefault(optionsObject, 'yExtent');\r\n this.timeShift = Utils.getValueOrDefault(optionsObject, 'timeShift', '');\r\n this.dataType = Utils.getValueOrDefault(optionsObject, 'dataType', DataTypes.Numeric);\r\n this.valueMapping = Utils.getValueOrDefault(optionsObject, 'valueMapping', {});\r\n this.height = Utils.getValueOrDefault(optionsObject, 'height', DEFAULT_HEIGHT);\r\n this.onElementClick = Utils.getValueOrDefault(optionsObject, 'onElementClick', null);\r\n this.eventElementType = Utils.getValueOrDefault(optionsObject, 'eventElementType', EventElementTypes.Diamond);\r\n this.rollupCategoricalValues = Utils.getValueOrDefault(optionsObject, 'rollupCategoricalValues', false);\r\n this.tooltipAttributes = Utils.getValueOrDefault(optionsObject, 'tooltipAttributes', []);\r\n this.positionX = Utils.getValueOrDefault(optionsObject, 'positionX', 0);\r\n this.positionY = Utils.getValueOrDefault(optionsObject, 'positionY', 0);\r\n this.swimLane = Utils.getValueOrDefault(optionsObject, 'swimLane', null);\r\n this.variableAlias = Utils.getValueOrDefault(optionsObject, 'variableAlias', null);\r\n this.connectPoints = Utils.getValueOrDefault(optionsObject, \"connectPoints\", false);\r\n this.pointConnectionMeasure = Utils.getValueOrDefault(optionsObject, 'pointConnectionMeasure', '');\r\n this.positionXVariableName = Utils.getValueOrDefault(optionsObject, 'positionXVariableName', null);\r\n this.positionYVariableName = Utils.getValueOrDefault(optionsObject, 'positionYVariableName', null);\r\n this.image = Utils.getValueOrDefault(optionsObject, 'image', null);\r\n this.startAt = Utils.getValueOrDefault(optionsObject, 'startAt', null);\r\n this.isRawData = Utils.getValueOrDefault(optionsObject, 'isRawData', false);\r\n this.isVariableAliasShownOnTooltip = Utils.getValueOrDefault(optionsObject, 'isVariableAliasShownOnTooltip', true);\r\n this.horizontalMarkers = Utils.getValueOrDefault(optionsObject, 'horizontalMarkers', []);\r\n }\r\n return ChartDataOptions;\r\n}());\r\nexport { ChartDataOptions };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport Utils from \"../Utils\";\r\nimport { ChartComponent } from \"./ChartComponent\";\r\nimport { ChartDataOptions } from \"../Models/ChartDataOptions\";\r\nvar ChartVisualizationComponent = /** @class */ (function (_super) {\r\n __extends(ChartVisualizationComponent, _super);\r\n function ChartVisualizationComponent(renderTarget) {\r\n return _super.call(this, renderTarget) || this;\r\n }\r\n ChartVisualizationComponent.prototype.render = function (data, options, aggregateExpressionOptions) {\r\n this.data = Utils.standardizeTSStrings(data);\r\n this.chartOptions.setOptions(options);\r\n this.aggregateExpressionOptions = data.map(function (d, i) {\r\n return Object.assign(d, aggregateExpressionOptions && i in aggregateExpressionOptions ?\r\n new ChartDataOptions(aggregateExpressionOptions[i]) :\r\n new ChartDataOptions({}));\r\n });\r\n };\r\n return ChartVisualizationComponent;\r\n}(ChartComponent));\r\nexport { ChartVisualizationComponent };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport Utils from \"../Utils\";\r\nimport { ChartVisualizationComponent } from './ChartVisualizationComponent';\r\nvar TemporalXAxisComponent = /** @class */ (function (_super) {\r\n __extends(TemporalXAxisComponent, _super);\r\n function TemporalXAxisComponent(renderTarget) {\r\n return _super.call(this, renderTarget) || this;\r\n }\r\n TemporalXAxisComponent.prototype.createOffsetXAxis = function () {\r\n var xCopy = this.x.copy();\r\n var rawStart = this.chartOptions.timeFrame ? (new Date(this.chartOptions.timeFrame[0])) : xCopy.domain()[0];\r\n var rawEnd = this.chartOptions.timeFrame ? (new Date(this.chartOptions.timeFrame[1])) : xCopy.domain()[1];\r\n xCopy.domain([\r\n new Date(rawStart), new Date(rawEnd)\r\n ]);\r\n return xCopy;\r\n };\r\n TemporalXAxisComponent.prototype.createXAxis = function (singleLineXAxisLabel, snapFirst, snapLast) {\r\n if (snapFirst === void 0) { snapFirst = false; }\r\n if (snapLast === void 0) { snapLast = false; }\r\n var offsetX = this.createOffsetXAxis();\r\n var ticks = offsetX.ticks(this.getXTickNumber(singleLineXAxisLabel));\r\n if (ticks.length <= 2) {\r\n ticks = this.x.domain();\r\n }\r\n if (snapFirst) {\r\n ticks[0] = this.x.domain()[0];\r\n }\r\n if (snapLast) {\r\n ticks[ticks.length - 1] = this.x.domain()[1];\r\n }\r\n this.smartTickFormat = this.createSmartTickFormat(ticks, offsetX);\r\n return d3.axisBottom(this.x)\r\n .tickValues(ticks)\r\n .tickFormat(Utils.timeFormat(this.labelFormatUsesSeconds(ticks), this.labelFormatUsesMillis(ticks), this.chartOptions.offset, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale));\r\n };\r\n TemporalXAxisComponent.prototype.getXTickNumber = function (singleLineXAxisLabel) {\r\n return Math.max((singleLineXAxisLabel ? Math.floor(this.chartWidth / 300) : Math.floor(this.chartWidth / 160)), 1);\r\n };\r\n TemporalXAxisComponent.prototype.labelFormatUsesSeconds = function (ticks) {\r\n if (ticks === void 0) { ticks = null; }\r\n var tickSpanSubMinute = ticks ? !this.isTickSpanGreaterThan(ticks, 59 * 1000) : false;\r\n return !this.chartOptions.minutesForTimeLabels && tickSpanSubMinute;\r\n };\r\n TemporalXAxisComponent.prototype.labelFormatUsesMillis = function (ticks) {\r\n if (ticks === void 0) { ticks = null; }\r\n var tickSpanSubSecond = ticks ? !this.isTickSpanGreaterThan(ticks, 999) : false;\r\n return !this.chartOptions.minutesForTimeLabels && tickSpanSubSecond;\r\n };\r\n TemporalXAxisComponent.prototype.updateXAxis = function (forceFirst, forceLast) {\r\n if (forceFirst === void 0) { forceFirst = false; }\r\n if (forceLast === void 0) { forceLast = false; }\r\n this.xAxisEntered.call(this.createXAxis(this.chartOptions.singleLineXAxisLabel, forceFirst, forceLast));\r\n this.updateAxisText(forceFirst, forceLast);\r\n };\r\n TemporalXAxisComponent.prototype.updateAxisText = function (forceFirst, forceLast) {\r\n if (forceFirst === void 0) { forceFirst = false; }\r\n if (forceLast === void 0) { forceLast = false; }\r\n //update text by applying function\r\n if (this.chartOptions.xAxisTimeFormat) {\r\n var indexOfLast_1 = this.xAxisEntered.selectAll('.tick').size() - 1;\r\n var self_1 = this;\r\n this.xAxisEntered.selectAll('.tick').each(function (d, i) {\r\n d3.select(this).select('text').text(function (d) {\r\n var momentTimeFormatString = String(self_1.chartOptions.xAxisTimeFormat(d, i, i === 0, i === indexOfLast_1));\r\n return Utils.timeFormat(self_1.labelFormatUsesSeconds(), self_1.labelFormatUsesMillis(), self_1.chartOptions.offset, self_1.chartOptions.is24HourTime, null, momentTimeFormatString, self_1.chartOptions.dateLocale)(d);\r\n });\r\n });\r\n }\r\n else {\r\n var indexOfLast_2 = this.xAxisEntered.selectAll('.tick').size() - 1;\r\n var self_2 = this;\r\n this.xAxisEntered.selectAll('.tick').each(function (d, i) {\r\n d3.select(this).select('text').text(function (d) {\r\n var momentTimeFormatString = String(self_2.smartTickFormat(d, i, i === 0, i === indexOfLast_2));\r\n //harcode format of first and last to include hours/minutes if force first/last\r\n if ((i === 0 && forceFirst) || (i === indexOfLast_2 && forceLast)) {\r\n momentTimeFormatString = 'L ' + Utils.subDateTimeFormat(self_2.chartOptions.is24HourTime, false, false);\r\n }\r\n return Utils.timeFormat(self_2.labelFormatUsesSeconds(), self_2.labelFormatUsesMillis(), self_2.chartOptions.offset, self_2.chartOptions.is24HourTime, null, momentTimeFormatString, self_2.chartOptions.dateLocale)(d);\r\n });\r\n });\r\n }\r\n if (!this.chartOptions.singleLineXAxisLabel)\r\n this.xAxisEntered.selectAll('text').call(Utils.splitTimeLabel);\r\n this.xAxisEntered.select(\".domain\").style(\"display\", \"none\");\r\n };\r\n TemporalXAxisComponent.prototype.drawXAxis = function (yOffset, snapFirst, snapLast) {\r\n if (snapFirst === void 0) { snapFirst = false; }\r\n if (snapLast === void 0) { snapLast = false; }\r\n this.xAxisEntered = this.xAxis.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"xAxis\")\r\n .merge(this.xAxis)\r\n .attr(\"transform\", \"translate(0,\" + yOffset + \")\")\r\n .call(this.createXAxis(this.chartOptions.singleLineXAxisLabel, snapFirst, snapLast));\r\n this.updateAxisText(snapFirst, snapLast);\r\n };\r\n TemporalXAxisComponent.prototype.isSameDate = function (d1, d2) {\r\n return (d1.getYear() === d2.getYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate());\r\n };\r\n TemporalXAxisComponent.prototype.isTickSpanGreaterThan = function (ticks, minValue) {\r\n return (ticks[1].valueOf() - ticks[0].valueOf() >= minValue);\r\n };\r\n TemporalXAxisComponent.prototype.createSmartTickFormat = function (ticks, offsetX) {\r\n var _this = this;\r\n var spansMultipleDays = !this.isSameDate(offsetX.domain()[0], offsetX.domain()[1]);\r\n var lessTicksThanDays = this.isTickSpanGreaterThan(ticks, 23 * 60 * 60 * 1000);\r\n var timeFormat = Utils.subDateTimeFormat(this.chartOptions.is24HourTime, this.labelFormatUsesSeconds(ticks), this.labelFormatUsesMillis(ticks));\r\n return function (d, i, isFirst, isLast) {\r\n var timeAndDate = _this.chartOptions.singleLineXAxisLabel ? ('L ' + timeFormat) : (timeFormat + ' L');\r\n if (lessTicksThanDays) {\r\n return 'L';\r\n }\r\n if (isFirst || isLast) {\r\n return timeAndDate;\r\n }\r\n if (!spansMultipleDays) {\r\n return timeFormat;\r\n }\r\n return timeAndDate;\r\n };\r\n };\r\n return TemporalXAxisComponent;\r\n}(ChartVisualizationComponent));\r\nexport { TemporalXAxisComponent };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { ChartComponentData } from \"./ChartComponentData\";\r\nvar LineChartData = /** @class */ (function (_super) {\r\n __extends(LineChartData, _super);\r\n function LineChartData() {\r\n var _this = _super.call(this) || this;\r\n _this.timeMap = {};\r\n _this._yExtents = [];\r\n return _this;\r\n }\r\n Object.defineProperty(LineChartData.prototype, \"yExtents\", {\r\n get: function () {\r\n return this._yExtents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ;\r\n LineChartData.prototype.setYExtents = function (idx, value) {\r\n this._yExtents[idx] = value;\r\n };\r\n LineChartData.prototype.resetYExtents = function () {\r\n this._yExtents = [];\r\n for (var i = 0; i < this.data.length; i++) {\r\n this._yExtents.push(null);\r\n }\r\n };\r\n LineChartData.prototype.setTimeMap = function () {\r\n this.timeMap = this.allValues.reduce(function (timeMap, currVal) {\r\n var millis = currVal.dateTime.valueOf();\r\n if (currVal.bucketSize != undefined) {\r\n millis += (currVal.bucketSize / 2);\r\n }\r\n if (currVal.measures != null) {\r\n if (timeMap[millis] == undefined) {\r\n timeMap[millis] = [currVal];\r\n }\r\n else {\r\n timeMap[millis].push(currVal);\r\n }\r\n }\r\n return timeMap;\r\n }, {});\r\n };\r\n LineChartData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, aggregateExpressionOptions) {\r\n if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; }\r\n _super.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions);\r\n };\r\n return LineChartData;\r\n}(ChartComponentData));\r\nexport { LineChartData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './ContextMenu.scss';\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nvar ACTIONELEMENTHEIGHT = 28;\r\nvar ACTIONELEMENTMAXWIDTH = 200;\r\nvar ACTIONELEMENTCONTAINERMAXHEIGHT = 200;\r\nvar VERTICALPADDING = 4;\r\nvar ContextMenu = /** @class */ (function (_super) {\r\n __extends(ContextMenu, _super);\r\n function ContextMenu(drawChart, renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.contextMenuVisible = false;\r\n _this.drawChart = drawChart;\r\n _this.contextMenuElement = d3.select(renderTarget).insert(\"div\", \":first-child\")\r\n .attr(\"class\", \"tsi-contextMenu\")\r\n .style(\"left\", \"0px\")\r\n .style(\"top\", \"0px\");\r\n return _this;\r\n }\r\n ContextMenu.prototype.launchSubMenu = function (parent, subMenuActions, subLevel, top) {\r\n var container = this.contextMenuElement\r\n .selectAll(\".tsi-actionElementContainer\" + subLevel)\r\n .data([{ subLevel: subLevel }]);\r\n var enteredContainer = container.enter()\r\n .append('div')\r\n .attr(\"class\", function (d) { return \"tsi-actionElementContainer tsi-actionElementContainer\" + d.subLevel; })\r\n .merge(container)\r\n .style('max-height', ACTIONELEMENTCONTAINERMAXHEIGHT + \"px\")\r\n .style('display', 'block');\r\n this.createActionElements(enteredContainer, subMenuActions, subLevel);\r\n this.positionAEC(enteredContainer, subMenuActions.length, top, subLevel);\r\n container.exit().remove();\r\n };\r\n ContextMenu.prototype.positionAEC = function (container, subMenuActionsCount, top, subLevel) {\r\n this.verticalPositionAEC(container, top, subMenuActionsCount, subLevel);\r\n this.horizontalPositionAEC(container, subLevel);\r\n };\r\n ContextMenu.prototype.shouldHorizontalFlip = function (rawLeft) {\r\n var containerLeft = rawLeft + this.left;\r\n var totalWidth = d3.select(this.renderTarget).node().getBoundingClientRect().width;\r\n return ((containerLeft + ACTIONELEMENTMAXWIDTH) > totalWidth);\r\n };\r\n ContextMenu.prototype.shouldVerticalFlip = function (rawTop, elementCount) {\r\n var containerTop = rawTop + this.top;\r\n var totalHeight = d3.select(this.renderTarget).node().getBoundingClientRect().height;\r\n var heightOfElements = Math.min(elementCount * ACTIONELEMENTHEIGHT + (VERTICALPADDING * 2), ACTIONELEMENTCONTAINERMAXHEIGHT);\r\n return ((containerTop + heightOfElements) > totalHeight);\r\n };\r\n //determine position relative to the chart as a whole\r\n ContextMenu.prototype.getRelativeHorizontalPosition = function (node, isLeft) {\r\n if (isLeft === void 0) { isLeft = true; }\r\n return node.getBoundingClientRect().x + (isLeft ? 0 : node.getBoundingClientRect().width) - this.renderTarget.getBoundingClientRect().x;\r\n };\r\n ContextMenu.prototype.verticalPositionAEC = function (actionElementContainer, rawTop, elementCount, subLevel) {\r\n var totalHeight = this.contextMenuElement.node().getBoundingClientRect().height;\r\n if (this.shouldVerticalFlip(rawTop, elementCount)) {\r\n actionElementContainer.style('bottom', (totalHeight - rawTop) - (subLevel === 0 ? 0 : ACTIONELEMENTHEIGHT + VERTICALPADDING) + \"px\")\r\n .style('top', null);\r\n }\r\n else {\r\n actionElementContainer.style('top', rawTop - VERTICALPADDING + \"px\")\r\n .style('bottom', null);\r\n }\r\n };\r\n ContextMenu.prototype.horizontalPositionAEC = function (actionElementContainer, subLevel) {\r\n var leftPosition = 0;\r\n var rightPosition = 0;\r\n if (subLevel !== 0) {\r\n var oneLevelUp = this.contextMenuElement.selectAll(\".tsi-actionElementContainer\" + (subLevel - 1));\r\n if (oneLevelUp.size()) {\r\n rightPosition = this.getRelativeHorizontalPosition(oneLevelUp.nodes()[0], false) - this.left;\r\n leftPosition = this.getRelativeHorizontalPosition(oneLevelUp.nodes()[0], true) - this.left;\r\n }\r\n }\r\n if (this.shouldHorizontalFlip(rightPosition)) {\r\n actionElementContainer.style('left', null)\r\n .style('right', 0 - leftPosition + \"px\");\r\n }\r\n else {\r\n actionElementContainer.style('left', rightPosition + \"px\")\r\n .style('right', null);\r\n }\r\n };\r\n ContextMenu.prototype.getActionElementContainerTop = function (launchedFromActionNode) {\r\n if (launchedFromActionNode === void 0) { launchedFromActionNode = null; }\r\n if (launchedFromActionNode === null) {\r\n return 0;\r\n }\r\n return launchedFromActionNode.getBoundingClientRect().top -\r\n this.contextMenuElement.node().getBoundingClientRect().top;\r\n };\r\n ContextMenu.prototype.removeSubMenusAboveLevel = function (level) {\r\n d3.select(this.renderTarget).selectAll('.tsi-actionElementContainer').filter(function (subMenuD) {\r\n return (subMenuD.subLevel > level);\r\n }).remove();\r\n };\r\n ContextMenu.prototype.createActionElements = function (container, actions, subLevel) {\r\n if (subLevel === void 0) { subLevel = 0; }\r\n var self = this;\r\n var actionElements = container.selectAll(\".tsi-actionElement\")\r\n .data(actions.map(function (a) {\r\n a.subLevel = subLevel;\r\n return a;\r\n }));\r\n var actionElementsEntered = actionElements.enter()\r\n .append(\"div\")\r\n .attr(\"class\", \"tsi-actionElement\")\r\n .classed('tsi-hasSubMenu', function (d) { return d.isNested; })\r\n .merge(actionElements)\r\n .text(function (d) { return d.name; })\r\n .on('mouseenter', function (event, d) {\r\n var e = actionElementsEntered.nodes();\r\n var i = e.indexOf(event.currentTarget);\r\n if (d.isNested) {\r\n self.launchSubMenu(d3.select(this), d.subActions, subLevel + 1, self.getActionElementContainerTop(this));\r\n self.subMenuFromActionIndex = i;\r\n self.subMenuFromSubLevel = d.subLevel;\r\n return;\r\n }\r\n if ((d.subLevel === self.subMenuFromSubLevel && i !== self.subMenuFromActionIndex) || d.subLevel < self.subMenuFromSubLevel) {\r\n self.removeSubMenusAboveLevel(d.subLevel);\r\n }\r\n })\r\n .on(\"click\", function (event, d) {\r\n if (d.isNested) {\r\n return;\r\n }\r\n if (self.endTime) { // if endTime is present, this is a brush action\r\n var startTime = self.startTime ? self.startTime.toISOString().slice(0, -5) + \"Z\" : null;\r\n var endTime = self.endTime ? self.endTime.toISOString().slice(0, -5) + \"Z\" : null;\r\n d.action(startTime, endTime);\r\n }\r\n else {\r\n var timestamp = self.startTime ? self.startTime.toISOString().slice(0, -5) + \"Z\" : null;\r\n d.action(self.ae, self.splitBy, timestamp, event);\r\n }\r\n self.hide();\r\n if (self.onClick)\r\n self.onClick();\r\n });\r\n actionElements.exit().remove();\r\n };\r\n ContextMenu.prototype.draw = function (chartComponentData, renderTarget, options, mousePosition, aggKey, splitBy, onClick, startTime, endTime, event) {\r\n var _this = this;\r\n if (onClick === void 0) { onClick = null; }\r\n if (startTime === void 0) { startTime = null; }\r\n if (endTime === void 0) { endTime = null; }\r\n if (event === void 0) { event = null; }\r\n this.contextMenuVisible = true;\r\n if (!endTime) {\r\n this.actions = chartComponentData.displayState[aggKey].contextMenuActions;\r\n this.ae = chartComponentData.displayState[aggKey].aggregateExpression;\r\n }\r\n else {\r\n this.actions = options.brushContextMenuActions;\r\n }\r\n this.splitBy = splitBy;\r\n this.startTime = startTime;\r\n this.endTime = endTime;\r\n this.onClick = onClick;\r\n _super.prototype.themify.call(this, this.contextMenuElement, options.theme);\r\n this.left = mousePosition[0];\r\n this.top = mousePosition[1];\r\n this.contextMenuElement\r\n .style('left', this.left + 'px')\r\n .style('top', this.top + 'px');\r\n this.contextMenuElement.selectAll('*').remove();\r\n this.contextMenuElement.style(\"display\", \"block\")\r\n .on('mouseleave', function () {\r\n _this.removeSubMenusAboveLevel(0);\r\n });\r\n var actionContainer = this.contextMenuElement\r\n .selectAll('.tsi-actionElementContainer0')\r\n .data([{ subLevel: 0 }]);\r\n var actionContainerEntered = actionContainer.enter()\r\n .append('div')\r\n .attr('class', 'tsi-actionElementContainer tsi-actionElementContainer0');\r\n this.createActionElements(actionContainerEntered, this.actions);\r\n this.positionAEC(actionContainerEntered, this.actions.length, 0, 0);\r\n var self = this;\r\n d3.select(this.renderTarget).on(\"click\", function (event) {\r\n if (!d3.select(event.srcElement).classed('tsi-actionElement')) {\r\n if (onClick) {\r\n onClick();\r\n }\r\n self.hide();\r\n }\r\n });\r\n };\r\n ContextMenu.prototype.hide = function () {\r\n this.contextMenuElement.style(\"display\", \"none\");\r\n this.contextMenuVisible = false;\r\n };\r\n return ContextMenu;\r\n}(Component));\r\nexport default ContextMenu;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './Tooltip.scss';\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nvar Tooltip = /** @class */ (function (_super) {\r\n __extends(Tooltip, _super);\r\n function Tooltip(renderTarget) {\r\n return _super.call(this, renderTarget) || this;\r\n }\r\n Tooltip.prototype.hide = function () {\r\n if (this.tooltipDiv) {\r\n this.tooltipDiv.style(\"display\", \"none\");\r\n }\r\n };\r\n Tooltip.prototype.getSVGWidth = function () {\r\n return !this.renderTarget.select('.tsi-chartSVG').empty() ? this.renderTarget.select('.tsi-chartSVG').node().getBoundingClientRect().width : 0;\r\n };\r\n Tooltip.prototype.getSVGHeight = function () {\r\n return !this.renderTarget.select('.tsi-chartSVG').empty() ? this.renderTarget.select('.tsi-chartSVG').node().getBoundingClientRect().height : 0;\r\n };\r\n Tooltip.prototype.getLeftOffset = function (chartMargins) {\r\n //NOTE - this assumes that the svg's right border is the same as the render target's\r\n var renderTargetWidth = this.renderTarget.node().getBoundingClientRect().width;\r\n return (renderTargetWidth - this.getSVGWidth() + chartMargins.left);\r\n };\r\n Tooltip.prototype.getTopOffset = function (chartMargins) {\r\n //NOTE - this assumes that the svg's bottom border is the same as the render target's\r\n var renderTargetHeight = this.renderTarget.node().getBoundingClientRect().height;\r\n return (renderTargetHeight - this.getSVGHeight() + chartMargins.top);\r\n };\r\n Tooltip.prototype.isRightOffset = function (tooltipWidth, xPos, chartMarginLeft) {\r\n //NOTE - this assumes that the svg's right border is the same as the render target's\r\n var renderTargetWidth = this.renderTarget.node().getBoundingClientRect().width;\r\n return this.getSVGWidth() > (xPos + tooltipWidth + 20 + chartMarginLeft);\r\n };\r\n Tooltip.prototype.isTopOffset = function (tooltipHeight, yPos, chartMargins) {\r\n //NOTE - this assumes that the svg's bottom border is the same as the render target's\r\n var renderTargetHeight = this.renderTarget.node().getBoundingClientRect().height;\r\n var tooltipYPos = yPos + tooltipHeight + 20 + chartMargins.bottom + this.getTopOffset(chartMargins);\r\n return renderTargetHeight > tooltipYPos;\r\n };\r\n Tooltip.prototype.render = function (theme) {\r\n var _this = this;\r\n var self = this;\r\n var tooltip = this.renderTarget.selectAll('.tsi-tooltip').filter(function () {\r\n return (this.parentNode === self.renderTarget.node());\r\n }).data([theme]);\r\n this.tooltipDiv = tooltip.enter().append('div')\r\n .attr('class', 'tsi-tooltip')\r\n .merge(tooltip)\r\n .each(function (d) {\r\n d3.select(this).selectAll(\"*\").remove();\r\n self.tooltipDivInner = d3.select(this).append('div')\r\n .attr('class', 'tsi-tooltipInner');\r\n });\r\n tooltip.exit().remove();\r\n _super.prototype.themify.call(this, this.tooltipDiv, theme);\r\n // Element width is an optional parameter which ensures that the tooltip doesn't interfere with the element\r\n // when positioning to the right\r\n this.draw = function (d, chartComponentData, xPos, yPos, chartMargins, addText, elementWidth, xOffset, yOffset, borderColor, isFromMarker) {\r\n if (elementWidth === void 0) { elementWidth = null; }\r\n if (xOffset === void 0) { xOffset = 20; }\r\n if (yOffset === void 0) { yOffset = 20; }\r\n if (borderColor === void 0) { borderColor = null; }\r\n if (isFromMarker === void 0) { isFromMarker = false; }\r\n _this.tooltipDiv.style(\"display\", \"block\");\r\n _this.tooltipDivInner.text(null);\r\n _this.borderColor = borderColor;\r\n var leftOffset = isFromMarker ? 0 : _this.getLeftOffset(chartMargins);\r\n var topOffset = _this.getTopOffset(chartMargins);\r\n addText(_this.tooltipDivInner);\r\n _this.tooltipDiv.style(\"left\", Math.round(xPos + leftOffset) + \"px\")\r\n .style(\"top\", Math.round(yPos) + topOffset + \"px\");\r\n var tooltipWidth = _this.tooltipDiv.node().getBoundingClientRect().width;\r\n var tooltipHeight = _this.tooltipDiv.node().getBoundingClientRect().height;\r\n var translateX = _this.isRightOffset(tooltipWidth, xPos, chartMargins.left) ? xOffset :\r\n (-Math.round(tooltipWidth) - xOffset - (elementWidth !== null ? elementWidth : 0));\r\n translateX = Math.max(0 - xPos, translateX);\r\n var translateY = 0;\r\n if (_this.isTopOffset(tooltipHeight, yPos, chartMargins)) { // Place tooltip @ bottom of point\r\n translateY = yOffset;\r\n }\r\n else {\r\n if (!isFromMarker && Math.round(yPos) - yOffset + topOffset - Math.round(tooltipHeight) <= 0) { // Upper bound check to keep tooltip within chart\r\n translateY = -(Math.round(yPos) + topOffset);\r\n }\r\n else {\r\n translateY = (-Math.round(tooltipHeight) - yOffset); // Place tooltip @ top of point\r\n }\r\n }\r\n _this.tooltipDiv.style(\"transform\", \"translate(\" + translateX + \"px,\" + translateY + \"px)\");\r\n if (_this.borderColor) {\r\n _this.tooltipDivInner.style('border-left-color', _this.borderColor)\r\n .style('border-left-width', '5px');\r\n }\r\n else {\r\n _this.tooltipDivInner.style('border-left-width', '0');\r\n }\r\n };\r\n };\r\n return Tooltip;\r\n}(Component));\r\nexport default Tooltip;\r\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n/**\n * de Casteljau's algorithm for drawing and splitting bezier curves.\n * Inspired by https://pomax.github.io/bezierinfo/\n *\n * @param {Number[][]} points Array of [x,y] points: [start, control1, control2, ..., end]\n * The original segment to split.\n * @param {Number} t Where to split the curve (value between [0, 1])\n * @return {Object} An object { left, right } where left is the segment from 0..t and\n * right is the segment from t..1.\n */\nfunction decasteljau(points, t) {\n var left = [];\n var right = [];\n\n function decasteljauRecurse(points, t) {\n if (points.length === 1) {\n left.push(points[0]);\n right.push(points[0]);\n } else {\n var newPoints = Array(points.length - 1);\n\n for (var i = 0; i < newPoints.length; i++) {\n if (i === 0) {\n left.push(points[0]);\n }\n\n if (i === newPoints.length - 1) {\n right.push(points[i + 1]);\n }\n\n newPoints[i] = [(1 - t) * points[i][0] + t * points[i + 1][0], (1 - t) * points[i][1] + t * points[i + 1][1]];\n }\n\n decasteljauRecurse(newPoints, t);\n }\n }\n\n if (points.length) {\n decasteljauRecurse(points, t);\n }\n\n return {\n left: left,\n right: right.reverse()\n };\n}\n/**\n * Convert segments represented as points back into a command object\n *\n * @param {Number[][]} points Array of [x,y] points: [start, control1, control2, ..., end]\n * Represents a segment\n * @return {Object} A command object representing the segment.\n */\n\n\nfunction pointsToCommand(points) {\n var command = {};\n\n if (points.length === 4) {\n command.x2 = points[2][0];\n command.y2 = points[2][1];\n }\n\n if (points.length >= 3) {\n command.x1 = points[1][0];\n command.y1 = points[1][1];\n }\n\n command.x = points[points.length - 1][0];\n command.y = points[points.length - 1][1];\n\n if (points.length === 4) {\n // start, control1, control2, end\n command.type = 'C';\n } else if (points.length === 3) {\n // start, control, end\n command.type = 'Q';\n } else {\n // start, end\n command.type = 'L';\n }\n\n return command;\n}\n/**\n * Runs de Casteljau's algorithm enough times to produce the desired number of segments.\n *\n * @param {Number[][]} points Array of [x,y] points for de Casteljau (the initial segment to split)\n * @param {Number} segmentCount Number of segments to split the original into\n * @return {Number[][][]} Array of segments\n */\n\n\nfunction splitCurveAsPoints(points, segmentCount) {\n segmentCount = segmentCount || 2;\n var segments = [];\n var remainingCurve = points;\n var tIncrement = 1 / segmentCount; // x-----x-----x-----x\n // t= 0.33 0.66 1\n // x-----o-----------x\n // r= 0.33\n // x-----o-----x\n // r= 0.5 (0.33 / (1 - 0.33)) === tIncrement / (1 - (tIncrement * (i - 1))\n // x-----x-----x-----x----x\n // t= 0.25 0.5 0.75 1\n // x-----o----------------x\n // r= 0.25\n // x-----o----------x\n // r= 0.33 (0.25 / (1 - 0.25))\n // x-----o----x\n // r= 0.5 (0.25 / (1 - 0.5))\n\n for (var i = 0; i < segmentCount - 1; i++) {\n var tRelative = tIncrement / (1 - tIncrement * i);\n var split = decasteljau(remainingCurve, tRelative);\n segments.push(split.left);\n remainingCurve = split.right;\n } // last segment is just to the end from the last point\n\n\n segments.push(remainingCurve);\n return segments;\n}\n/**\n * Convert command objects to arrays of points, run de Casteljau's algorithm on it\n * to split into to the desired number of segments.\n *\n * @param {Object} commandStart The start command object\n * @param {Object} commandEnd The end command object\n * @param {Number} segmentCount The number of segments to create\n * @return {Object[]} An array of commands representing the segments in sequence\n */\n\n\nfunction splitCurve(commandStart, commandEnd, segmentCount) {\n var points = [[commandStart.x, commandStart.y]];\n\n if (commandEnd.x1 != null) {\n points.push([commandEnd.x1, commandEnd.y1]);\n }\n\n if (commandEnd.x2 != null) {\n points.push([commandEnd.x2, commandEnd.y2]);\n }\n\n points.push([commandEnd.x, commandEnd.y]);\n return splitCurveAsPoints(points, segmentCount).map(pointsToCommand);\n}\n\nvar commandTokenRegex = /[MLCSTQAHVZmlcstqahv]|-?[\\d.e+-]+/g;\n/**\n * List of params for each command type in a path `d` attribute\n */\n\nvar typeMap = {\n M: ['x', 'y'],\n L: ['x', 'y'],\n H: ['x'],\n V: ['y'],\n C: ['x1', 'y1', 'x2', 'y2', 'x', 'y'],\n S: ['x2', 'y2', 'x', 'y'],\n Q: ['x1', 'y1', 'x', 'y'],\n T: ['x', 'y'],\n A: ['rx', 'ry', 'xAxisRotation', 'largeArcFlag', 'sweepFlag', 'x', 'y'],\n Z: []\n}; // Add lower case entries too matching uppercase (e.g. 'm' == 'M')\n\nObject.keys(typeMap).forEach(function (key) {\n typeMap[key.toLowerCase()] = typeMap[key];\n});\n\nfunction arrayOfLength(length, value) {\n var array = Array(length);\n\n for (var i = 0; i < length; i++) {\n array[i] = value;\n }\n\n return array;\n}\n/**\n * Converts a command object to a string to be used in a `d` attribute\n * @param {Object} command A command object\n * @return {String} The string for the `d` attribute\n */\n\n\nfunction commandToString(command) {\n return \"\".concat(command.type).concat(typeMap[command.type].map(function (p) {\n return command[p];\n }).join(','));\n}\n/**\n * Converts command A to have the same type as command B.\n *\n * e.g., L0,5 -> C0,5,0,5,0,5\n *\n * Uses these rules:\n * x1 <- x\n * x2 <- x\n * y1 <- y\n * y2 <- y\n * rx <- 0\n * ry <- 0\n * xAxisRotation <- read from B\n * largeArcFlag <- read from B\n * sweepflag <- read from B\n *\n * @param {Object} aCommand Command object from path `d` attribute\n * @param {Object} bCommand Command object from path `d` attribute to match against\n * @return {Object} aCommand converted to type of bCommand\n */\n\n\nfunction convertToSameType(aCommand, bCommand) {\n var conversionMap = {\n x1: 'x',\n y1: 'y',\n x2: 'x',\n y2: 'y'\n };\n var readFromBKeys = ['xAxisRotation', 'largeArcFlag', 'sweepFlag']; // convert (but ignore M types)\n\n if (aCommand.type !== bCommand.type && bCommand.type.toUpperCase() !== 'M') {\n var aConverted = {};\n Object.keys(bCommand).forEach(function (bKey) {\n var bValue = bCommand[bKey]; // first read from the A command\n\n var aValue = aCommand[bKey]; // if it is one of these values, read from B no matter what\n\n if (aValue === undefined) {\n if (readFromBKeys.includes(bKey)) {\n aValue = bValue;\n } else {\n // if it wasn't in the A command, see if an equivalent was\n if (aValue === undefined && conversionMap[bKey]) {\n aValue = aCommand[conversionMap[bKey]];\n } // if it doesn't have a converted value, use 0\n\n\n if (aValue === undefined) {\n aValue = 0;\n }\n }\n }\n\n aConverted[bKey] = aValue;\n }); // update the type to match B\n\n aConverted.type = bCommand.type;\n aCommand = aConverted;\n }\n\n return aCommand;\n}\n/**\n * Interpolate between command objects commandStart and commandEnd segmentCount times.\n * If the types are L, Q, or C then the curves are split as per de Casteljau's algorithm.\n * Otherwise we just copy commandStart segmentCount - 1 times, finally ending with commandEnd.\n *\n * @param {Object} commandStart Command object at the beginning of the segment\n * @param {Object} commandEnd Command object at the end of the segment\n * @param {Number} segmentCount The number of segments to split this into. If only 1\n * Then [commandEnd] is returned.\n * @return {Object[]} Array of ~segmentCount command objects between commandStart and\n * commandEnd. (Can be segmentCount+1 objects if commandStart is type M).\n */\n\n\nfunction splitSegment(commandStart, commandEnd, segmentCount) {\n var segments = []; // line, quadratic bezier, or cubic bezier\n\n if (commandEnd.type === 'L' || commandEnd.type === 'Q' || commandEnd.type === 'C') {\n segments = segments.concat(splitCurve(commandStart, commandEnd, segmentCount)); // general case - just copy the same point\n } else {\n var copyCommand = _extends({}, commandStart); // convert M to L\n\n\n if (copyCommand.type === 'M') {\n copyCommand.type = 'L';\n }\n\n segments = segments.concat(arrayOfLength(segmentCount - 1).map(function () {\n return copyCommand;\n }));\n segments.push(commandEnd);\n }\n\n return segments;\n}\n/**\n * Extends an array of commandsToExtend to the length of the referenceCommands by\n * splitting segments until the number of commands match. Ensures all the actual\n * points of commandsToExtend are in the extended array.\n *\n * @param {Object[]} commandsToExtend The command object array to extend\n * @param {Object[]} referenceCommands The command object array to match in length\n * @param {Function} excludeSegment a function that takes a start command object and\n * end command object and returns true if the segment should be excluded from splitting.\n * @return {Object[]} The extended commandsToExtend array\n */\n\n\nfunction extend(commandsToExtend, referenceCommands, excludeSegment) {\n // compute insertion points:\n // number of segments in the path to extend\n var numSegmentsToExtend = commandsToExtend.length - 1; // number of segments in the reference path.\n\n var numReferenceSegments = referenceCommands.length - 1; // this value is always between [0, 1].\n\n var segmentRatio = numSegmentsToExtend / numReferenceSegments; // create a map, mapping segments in referenceCommands to how many points\n // should be added in that segment (should always be >= 1 since we need each\n // point itself).\n // 0 = segment 0-1, 1 = segment 1-2, n-1 = last vertex\n\n var countPointsPerSegment = arrayOfLength(numReferenceSegments).reduce(function (accum, d, i) {\n var insertIndex = Math.floor(segmentRatio * i); // handle excluding segments\n\n if (excludeSegment && insertIndex < commandsToExtend.length - 1 && excludeSegment(commandsToExtend[insertIndex], commandsToExtend[insertIndex + 1])) {\n // set the insertIndex to the segment that this point should be added to:\n // round the insertIndex essentially so we split half and half on\n // neighbouring segments. hence the segmentRatio * i < 0.5\n var addToPriorSegment = segmentRatio * i % 1 < 0.5; // only skip segment if we already have 1 point in it (can't entirely remove a segment)\n\n if (accum[insertIndex]) {\n // TODO - Note this is a naive algorithm that should work for most d3-area use cases\n // but if two adjacent segments are supposed to be skipped, this will not perform as\n // expected. Could be updated to search for nearest segment to place the point in, but\n // will only do that if necessary.\n // add to the prior segment\n if (addToPriorSegment) {\n if (insertIndex > 0) {\n insertIndex -= 1; // not possible to add to previous so adding to next\n } else if (insertIndex < commandsToExtend.length - 1) {\n insertIndex += 1;\n } // add to next segment\n\n } else if (insertIndex < commandsToExtend.length - 1) {\n insertIndex += 1; // not possible to add to next so adding to previous\n } else if (insertIndex > 0) {\n insertIndex -= 1;\n }\n }\n }\n\n accum[insertIndex] = (accum[insertIndex] || 0) + 1;\n return accum;\n }, []); // extend each segment to have the correct number of points for a smooth interpolation\n\n var extended = countPointsPerSegment.reduce(function (extended, segmentCount, i) {\n // if last command, just add `segmentCount` number of times\n if (i === commandsToExtend.length - 1) {\n var lastCommandCopies = arrayOfLength(segmentCount, _extends({}, commandsToExtend[commandsToExtend.length - 1])); // convert M to L\n\n if (lastCommandCopies[0].type === 'M') {\n lastCommandCopies.forEach(function (d) {\n d.type = 'L';\n });\n }\n\n return extended.concat(lastCommandCopies);\n } // otherwise, split the segment segmentCount times.\n\n\n return extended.concat(splitSegment(commandsToExtend[i], commandsToExtend[i + 1], segmentCount));\n }, []); // add in the very first point since splitSegment only adds in the ones after it\n\n extended.unshift(commandsToExtend[0]);\n return extended;\n}\n/**\n * Takes a path `d` string and converts it into an array of command\n * objects. Drops the `Z` character.\n *\n * @param {String|null} d A path `d` string\n */\n\n\nfunction pathCommandsFromString(d) {\n // split into valid tokens\n var tokens = (d || '').match(commandTokenRegex) || [];\n var commands = [];\n var commandArgs;\n var command; // iterate over each token, checking if we are at a new command\n // by presence in the typeMap\n\n for (var i = 0; i < tokens.length; ++i) {\n commandArgs = typeMap[tokens[i]]; // new command found:\n\n if (commandArgs) {\n command = {\n type: tokens[i]\n }; // add each of the expected args for this command:\n\n for (var a = 0; a < commandArgs.length; ++a) {\n command[commandArgs[a]] = +tokens[i + a + 1];\n } // need to increment our token index appropriately since\n // we consumed token args\n\n\n i += commandArgs.length;\n commands.push(command);\n }\n }\n\n return commands;\n}\n/**\n * Interpolate from A to B by extending A and B during interpolation to have\n * the same number of points. This allows for a smooth transition when they\n * have a different number of points.\n *\n * Ignores the `Z` command in paths unless both A and B end with it.\n *\n * This function works directly with arrays of command objects instead of with\n * path `d` strings (see interpolatePath for working with `d` strings).\n *\n * @param {Object[]} aCommandsInput Array of path commands\n * @param {Object[]} bCommandsInput Array of path commands\n * @param {(Function|Object)} interpolateOptions\n * @param {Function} interpolateOptions.excludeSegment a function that takes a start command object and\n * end command object and returns true if the segment should be excluded from splitting.\n * @param {Boolean} interpolateOptions.snapEndsToInput a boolean indicating whether end of input should\n * be sourced from input argument or computed.\n * @returns {Function} Interpolation function that maps t ([0, 1]) to an array of path commands.\n */\n\nfunction interpolatePathCommands(aCommandsInput, bCommandsInput, interpolateOptions) {\n // make a copy so we don't mess with the input arrays\n var aCommands = aCommandsInput == null ? [] : aCommandsInput.slice();\n var bCommands = bCommandsInput == null ? [] : bCommandsInput.slice();\n\n var _ref = _typeof(interpolateOptions) === 'object' ? interpolateOptions : {\n excludeSegment: interpolateOptions,\n snapEndsToInput: true\n },\n excludeSegment = _ref.excludeSegment,\n snapEndsToInput = _ref.snapEndsToInput; // both input sets are empty, so we don't interpolate\n\n\n if (!aCommands.length && !bCommands.length) {\n return function nullInterpolator() {\n return [];\n };\n } // do we add Z during interpolation? yes if both have it. (we'd expect both to have it or not)\n\n\n var addZ = (aCommands.length === 0 || aCommands[aCommands.length - 1].type === 'Z') && (bCommands.length === 0 || bCommands[bCommands.length - 1].type === 'Z'); // we temporarily remove Z\n\n if (aCommands.length > 0 && aCommands[aCommands.length - 1].type === 'Z') {\n aCommands.pop();\n }\n\n if (bCommands.length > 0 && bCommands[bCommands.length - 1].type === 'Z') {\n bCommands.pop();\n } // if A is empty, treat it as if it used to contain just the first point\n // of B. This makes it so the line extends out of from that first point.\n\n\n if (!aCommands.length) {\n aCommands.push(bCommands[0]); // otherwise if B is empty, treat it as if it contains the first point\n // of A. This makes it so the line retracts into the first point.\n } else if (!bCommands.length) {\n bCommands.push(aCommands[0]);\n } // extend to match equal size\n\n\n var numPointsToExtend = Math.abs(bCommands.length - aCommands.length);\n\n if (numPointsToExtend !== 0) {\n // B has more points than A, so add points to A before interpolating\n if (bCommands.length > aCommands.length) {\n aCommands = extend(aCommands, bCommands, excludeSegment); // else if A has more points than B, add more points to B\n } else if (bCommands.length < aCommands.length) {\n bCommands = extend(bCommands, aCommands, excludeSegment);\n }\n } // commands have same length now.\n // convert commands in A to the same type as those in B\n\n\n aCommands = aCommands.map(function (aCommand, i) {\n return convertToSameType(aCommand, bCommands[i]);\n }); // create mutable interpolated command objects\n\n var interpolatedCommands = aCommands.map(function (aCommand) {\n return _objectSpread2({}, aCommand);\n });\n\n if (addZ) {\n interpolatedCommands.push({\n type: 'Z'\n });\n aCommands.push({\n type: 'Z'\n }); // required for when returning at t == 0\n }\n\n return function pathCommandInterpolator(t) {\n // at 1 return the final value without the extensions used during interpolation\n if (t === 1 && snapEndsToInput) {\n return bCommandsInput == null ? [] : bCommandsInput;\n } // work with aCommands directly since interpolatedCommands are mutated\n\n\n if (t === 0) {\n return aCommands;\n } // interpolate the commands using the mutable interpolated command objs\n\n\n for (var i = 0; i < interpolatedCommands.length; ++i) {\n // if (interpolatedCommands[i].type === 'Z') continue;\n var aCommand = aCommands[i];\n var bCommand = bCommands[i];\n var interpolatedCommand = interpolatedCommands[i];\n\n var _iterator = _createForOfIteratorHelper(typeMap[interpolatedCommand.type]),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var arg = _step.value;\n interpolatedCommand[arg] = (1 - t) * aCommand[arg] + t * bCommand[arg]; // do not use floats for flags (#27), round to integer\n\n if (arg === 'largeArcFlag' || arg === 'sweepFlag') {\n interpolatedCommand[arg] = Math.round(interpolatedCommand[arg]);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return interpolatedCommands;\n };\n}\n/** @typedef InterpolateOptions */\n\n/**\n * Interpolate from A to B by extending A and B during interpolation to have\n * the same number of points. This allows for a smooth transition when they\n * have a different number of points.\n *\n * Ignores the `Z` character in paths unless both A and B end with it.\n *\n * @param {String} a The `d` attribute for a path\n * @param {String} b The `d` attribute for a path\n * @param {((command1, command2) => boolean|{\n * excludeSegment?: (command1, command2) => boolean;\n * snapEndsToInput?: boolean\n * })} interpolateOptions The excludeSegment function or an options object\n * - interpolateOptions.excludeSegment a function that takes a start command object and\n * end command object and returns true if the segment should be excluded from splitting.\n * - interpolateOptions.snapEndsToInput a boolean indicating whether end of input should\n * be sourced from input argument or computed.\n * @returns {Function} Interpolation function that maps t ([0, 1]) to a path `d` string.\n */\n\nfunction interpolatePath(a, b, interpolateOptions) {\n var aCommands = pathCommandsFromString(a);\n var bCommands = pathCommandsFromString(b);\n\n var _ref2 = _typeof(interpolateOptions) === 'object' ? interpolateOptions : {\n excludeSegment: interpolateOptions,\n snapEndsToInput: true\n },\n excludeSegment = _ref2.excludeSegment,\n snapEndsToInput = _ref2.snapEndsToInput;\n\n if (!aCommands.length && !bCommands.length) {\n return function nullInterpolator() {\n return '';\n };\n }\n\n var commandInterpolator = interpolatePathCommands(aCommands, bCommands, {\n excludeSegment: excludeSegment,\n snapEndsToInput: snapEndsToInput\n });\n return function pathStringInterpolator(t) {\n // at 1 return the final value without the extensions used during interpolation\n if (t === 1 && snapEndsToInput) {\n return b == null ? '' : b;\n }\n\n var interpolatedCommands = commandInterpolator(t); // convert to a string (fastest concat: https://jsperf.com/join-concat/150)\n\n var interpolatedString = '';\n\n var _iterator2 = _createForOfIteratorHelper(interpolatedCommands),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var interpolatedCommand = _step2.value;\n interpolatedString += commandToString(interpolatedCommand);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return interpolatedString;\n };\n}\n\nexport { interpolatePath, interpolatePathCommands, pathCommandsFromString };\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nimport * as d3 from 'd3';\r\nimport './HierarchyNavigation.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport ServerClient from '../../../ServerClient';\r\nimport ModelAutocomplete from '../ModelAutocomplete';\r\nimport { KeyCodes, InstancesSort, HierarchiesExpand, HierarchiesSort } from '../../Constants/Enums';\r\nvar HierarchyNavigation = /** @class */ (function (_super) {\r\n __extends(HierarchyNavigation, _super);\r\n function HierarchyNavigation(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.usedInstanceSearchContinuationTokens = {};\r\n _this.envHierarchies = {};\r\n _this.envTypes = {};\r\n _this.selectedHierarchyName = HierarchySelectionValues.All;\r\n _this.viewType = ViewType.Hierarchy;\r\n _this.mode = State.Navigate;\r\n _this.searchString = \"\";\r\n _this.path = [];\r\n _this.originalPathBeforeReverseLookup = [];\r\n _this.renderHierarchySelection = function () {\r\n var hierarchyList = __spreadArray(__spreadArray([HierarchySelectionValues.All], Object.keys(_this.envHierarchies)), [HierarchySelectionValues.Unparented]);\r\n _this.hierarchyListElem.text('');\r\n var self = _this;\r\n hierarchyList.forEach(function (h) {\r\n var title = h === HierarchySelectionValues.All ? _this.getString(\"All hierarchies\") :\r\n h === HierarchySelectionValues.Unparented ? _this.getString(\"Unassigned Time Series Instances\") : h;\r\n _this.hierarchyListElem.append('li').classed('selected', h === _this.selectedHierarchyName)\r\n .attr(\"hName\", h)\r\n .attr('tabindex', 0)\r\n .attr('role', 'option')\r\n .attr('aria-selected', h === _this.selectedHierarchyName)\r\n .attr('title', title)\r\n .text(title).on('click keydown', function (event) {\r\n if (event && event.type && event.type === 'keydown') {\r\n event.preventDefault();\r\n var key = event.which || event.keyCode;\r\n if (key === KeyCodes.Down) {\r\n if (this.nextElementSibling)\r\n this.nextElementSibling.focus();\r\n else {\r\n self.hierarchyListElem.selectAll(\"li\").nodes()[0].focus();\r\n }\r\n }\r\n else if (key === KeyCodes.Up) {\r\n if (this.previousElementSibling)\r\n this.previousElementSibling.focus();\r\n else {\r\n self.hierarchyListElem.selectAll(\"li\").nodes()[self.hierarchyListElem.selectAll(\"li\").nodes().length - 1].focus();\r\n }\r\n }\r\n else if (key === KeyCodes.Enter) {\r\n self.selectHierarchy(h);\r\n self.searchGloballyElem.node().style.display = 'none';\r\n self.hierarchySelectorElem.node().focus();\r\n }\r\n else if (key === KeyCodes.Esc) {\r\n self.isHierarchySelectionActive = false;\r\n self.hierarchyListWrapperElem.style('display', 'none');\r\n self.hierarchySelectorElem.node().focus();\r\n }\r\n return;\r\n }\r\n self.selectHierarchy(h);\r\n self.hierarchySelectorElem.node().focus();\r\n if (h === HierarchySelectionValues.All) {\r\n self.searchGloballyElem.node().style.display = 'none';\r\n }\r\n });\r\n });\r\n _this.hierarchyListWrapperElem.style('display', 'inline-flex');\r\n _this.hierarchyListElem.select(\"li.selected\").node().focus();\r\n };\r\n //to switch between list view and hierarchy view when search string exists, i.e. in Search mode\r\n _this.switchToSearchView = function (view, applySearch) {\r\n if (applySearch === void 0) { applySearch = true; }\r\n return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.closeContextMenu();\r\n this.viewType = view;\r\n this.viewTypesElem.selectAll('.tsi-view-type').classed('selected', false).attr('aria-selected', false);\r\n if (!(this.viewType === ViewType.Hierarchy)) return [3 /*break*/, 3];\r\n d3.select(this.viewTypesElem.selectAll('.tsi-view-type').nodes()[0]).classed('selected', true).attr('aria-selected', true);\r\n if (this.searchString) {\r\n this.setModeAndRequestParamsForFilter();\r\n }\r\n else {\r\n this.setModeAndRequestParamsForNavigate();\r\n }\r\n if (!(d3.selectAll('.tsi-hierarchy ul').size() === 0 && applySearch)) return [3 /*break*/, 2];\r\n this.hierarchyElem.text('');\r\n return [4 /*yield*/, this.pathSearchAndRenderResult({ search: { payload: this.requestPayload() }, render: { target: this.hierarchyElem } })];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n this.hierarchyElem.node().style.display = 'block';\r\n this.instanceListWrapperElem.node().style.display = 'none';\r\n return [3 /*break*/, 6];\r\n case 3:\r\n d3.select(this.viewTypesElem.selectAll('.tsi-view-type').nodes()[1]).classed('selected', true).attr('aria-selected', true);\r\n this.setModeAndRequestParamsForSearch();\r\n if (this.selectedHierarchyName === HierarchySelectionValues.Unparented) {\r\n this.chartOptions.hierarchyOptions.isInstancesRecursive = false;\r\n }\r\n if (!(d3.selectAll('.tsi-modelResultWrapper').size() === 0 && applySearch)) return [3 /*break*/, 5];\r\n this.instanceListElem.text('');\r\n this.lastInstanceContinuationToken = null;\r\n this.usedInstanceSearchContinuationTokens = {};\r\n return [4 /*yield*/, this.pathSearchAndRenderResult({ search: { payload: this.requestPayload() }, render: { target: this.instanceListElem } })];\r\n case 4:\r\n _a.sent();\r\n _a.label = 5;\r\n case 5:\r\n this.hierarchyElem.node().style.display = 'none';\r\n this.instanceListWrapperElem.node().style.display = 'block';\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n _this.showNoResultsForSearch = function () {\r\n _this.viewTypesElem.node().style.display = 'none';\r\n if (_this.mode === State.Search && ((_this.selectedHierarchyName !== HierarchySelectionValues.All) || _this.filterPathElem.classed('visible'))) {\r\n _this.searchGloballyElem.style('display', 'inline');\r\n _this.noResultsElem.select(\".tsi-clear\").style('display', 'inline-block');\r\n }\r\n else {\r\n _this.searchGloballyElem.style('display', 'none');\r\n _this.noResultsElem.select(\".tsi-clear\").style('display', 'none');\r\n }\r\n _this.noResultsElem.classed('border-top', _this.filterPathElem.classed('visible'));\r\n _this.noResultsElem.select(\".tsi-not-found-message\").node().childNodes[0].textContent = _this.mode === State.Search ? _this.getString(\"No search result\") : _this.getString(\"No instances\");\r\n _this.noResultsElem.style('display', 'flex');\r\n };\r\n // do exact search with tsid to retrieve all possible paths until that instance to traverse for expansion\r\n _this.doExactSearchWithPossiblePaths = function (tsid, hNames) {\r\n _this.setModeAndRequestParamsForFilter();\r\n var escapedTsidString = Utils.escapedTsidForExactSearch(tsid === null || tsid === void 0 ? void 0 : tsid.join(\" \"));\r\n _this.searchString = \"\\\"\" + escapedTsidString + \"\\\"\"; //TODO: null vs string null check for exact search and escape for character : fix from backend will come here!!\r\n return Promise.all(hNames.map(function (hName) {\r\n var payload = hName ? _this.requestPayload([hName]) : _this.requestPayload(null);\r\n return _this.getToken().then(function (token) {\r\n return _this.server.getTimeseriesInstancesPathSearch(token, _this.environmentFqdn, payload, null, null)\r\n .catch(function (err) { throw err; });\r\n })\r\n .catch(function (err) { throw err; });\r\n })).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to complete search\", err instanceof XMLHttpRequest ? err : null); });\r\n };\r\n // clear dom and reset some variables for fresh navigation experience \r\n _this.prepareComponentForLookup = function (timeSeriesID) {\r\n _this.hierarchyElem.style('display', 'none');\r\n _this.noResultsElem.style('display', 'none');\r\n _this.notFoundElem.style('display', 'none');\r\n _this.instanceLookupLoadingElem.select('.tsi-lookup-instance').text(_this.getString(\"Looking for\") + \" \" + timeSeriesID.join(\" \"));\r\n _this.instanceLookupLoadingElem.style('display', 'flex');\r\n _this.viewTypesElem.style(\"display\", \"none\");\r\n _this.searchWrapperElem.select(\"input\").node().value = \"\";\r\n _this.searchGloballyElem.style(\"display\", \"none\");\r\n _this.originalPathBeforeReverseLookup = _this.path;\r\n _this.path = _this.selectedHierarchyName !== HierarchySelectionValues.All && _this.selectedHierarchyName !== HierarchySelectionValues.Unparented ? [_this.selectedHierarchyName] : [];\r\n };\r\n // pull instance to get its name to search in the tree if exist\r\n _this.getInstance = function (timeSeriesID) {\r\n return _this.getToken()\r\n .then(function (token) {\r\n return _this.server.getTimeseriesInstances(token, _this.environmentFqdn, 1, [timeSeriesID]).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to get instance details\", err instanceof XMLHttpRequest ? err : null); });\r\n ;\r\n })\r\n .catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to get token\", err instanceof XMLHttpRequest ? err : null); });\r\n };\r\n // simulate expand operation for each hierarchy node in a full path until the instance and then locate the instance\r\n _this.simulateExpand = function (path, hierarchyNamesFromParam, instance) { return __awaiter(_this, void 0, void 0, function () {\r\n var instanceIdentifier, isHierarchySelected, lastHierarchyNodeParent, ulToLook, nameSpan, _loop_1, this_1, idx, instanceNode, li, newListContentElem, instanceCount, hitElem;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n instanceIdentifier = this.instanceNodeIdentifier(instance);\r\n isHierarchySelected = this.selectedHierarchyName !== HierarchySelectionValues.All && this.selectedHierarchyName !== HierarchySelectionValues.Unparented;\r\n lastHierarchyNodeParent = document.getElementsByClassName(\"tsi-hierarchy\")[0];\r\n _loop_1 = function (idx) {\r\n var p, hierarchyNodeToExpand, pathNodeName, hierarchyNode_1, li, newListContentElem, hitCount, onClickFunc;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n p = path[idx];\r\n if (isHierarchySelected && idx === 0) {\r\n return [2 /*return*/, \"continue\"];\r\n }\r\n ;\r\n hierarchyNodeToExpand = void 0;\r\n pathNodeName = this_1.hierarchyNodeIdentifier(p);\r\n ulToLook = lastHierarchyNodeParent.getElementsByTagName(\"ul\")[0];\r\n nameSpan = Array.from(ulToLook.getElementsByClassName(\"tsi-name\")).find(function (e) { return e.innerText === pathNodeName; });\r\n if (!nameSpan) { // if the hierarchy node we are looking is not there, add it manually to prevent possible show more calls and dom insertions\r\n hierarchyNode_1 = new HierarchyNode(pathNodeName, path.slice(0, idx), isHierarchySelected || hierarchyNamesFromParam ? idx - 1 : idx, '');\r\n hierarchyNode_1.expand = function () {\r\n return _this.pathSearchAndRenderResult({ search: { payload: _this.requestPayload(hierarchyNode_1.path), bubbleUpReject: true }, render: { target: hierarchyNode_1.node } })\r\n .then(function (r) { return __awaiter(_this, void 0, void 0, function () {\r\n var payload;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n payload = this.requestPayload(hierarchyNode_1.path);\r\n payload[\"instances\"].recursive = true;\r\n return [4 /*yield*/, this.pathSearch(payload, null, null) // make a second call to retrieve the cumulative instance count for manually added hierarchy node\r\n .then(function (r) {\r\n hierarchyNode_1.node.select(\".tsi-instanceCount\").text(r.instances.hitCount);\r\n })\r\n .catch(function (err) { })];\r\n case 1:\r\n _a.sent();\r\n hierarchyNode_1.isExpanded = true;\r\n hierarchyNode_1.node.classed('tsi-expanded', true);\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); })\r\n .catch(function (err) { });\r\n };\r\n li = d3.create(\"li\").attr(\"role\", \"none\");\r\n ulToLook.insertBefore(li.node(), ulToLook.firstChild); // put it to the top of the list\r\n newListContentElem = this_1.createHierarchyItemElem(hierarchyNode_1, this_1.hierarchyNodeIdentifier(hierarchyNode_1.name));\r\n li.node().appendChild(newListContentElem.node());\r\n hierarchyNode_1.node = li;\r\n nameSpan = newListContentElem.select('.tsi-name').node();\r\n hitCount = parseInt(lastHierarchyNodeParent.getElementsByClassName(\"tsi-hitCount\")[0].innerText);\r\n if (ulToLook.getElementsByClassName(\"tsi-hierarchyItem\").length === hitCount + 1) {\r\n ulToLook.removeChild(ulToLook.lastChild); // remove show more to prevent duplication\r\n }\r\n }\r\n hierarchyNodeToExpand = nameSpan.parentNode;\r\n lastHierarchyNodeParent = hierarchyNodeToExpand.parentNode;\r\n onClickFunc = d3.select(hierarchyNodeToExpand).on(\"click\");\r\n return [4 /*yield*/, onClickFunc.apply(hierarchyNodeToExpand)];\r\n case 1:\r\n _b.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n };\r\n this_1 = this;\r\n idx = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(idx < path.length)) return [3 /*break*/, 4];\r\n return [5 /*yield**/, _loop_1(idx)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n idx++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n // locate the instance\r\n ulToLook = lastHierarchyNodeParent.getElementsByTagName(\"ul\")[0];\r\n nameSpan = Array.from(ulToLook.getElementsByClassName(\"tsi-name\")).find(function (e) { return e.innerText === _this.instanceNodeString(instance); });\r\n if (!nameSpan) { //if the instance node we are looking is not there after expansion, add it manually to prevent possible show more calls and dom insertions\r\n instanceNode = new InstanceNode(instance.timeSeriesId, instance.name, this.envTypes[instance.typeId], instance.hierarchyIds, instance.highlights, isHierarchySelected || hierarchyNamesFromParam ? path.length - 1 : path.length);\r\n li = d3.create(\"li\").classed('tsi-leaf', true).attr(\"role\", \"none\");\r\n newListContentElem = this.createHierarchyItemElem(instanceNode, instanceIdentifier);\r\n li.node().appendChild(newListContentElem.node());\r\n ulToLook.insertBefore(li.node(), ulToLook.getElementsByClassName('tsi-leaf')[0]); // put it to the top of the instance list after hierarchy nodes\r\n instanceNode.node = li;\r\n instanceCount = parseInt(lastHierarchyNodeParent.getElementsByClassName(\"tsi-instanceCount\")[0].innerText);\r\n if (ulToLook.getElementsByClassName(\"tsi-hierarchyItem\").length === instanceCount + 1) {\r\n ulToLook.removeChild(ulToLook.lastChild); // remove show more to prevent duplication\r\n }\r\n nameSpan = newListContentElem.select('.tsi-name').node();\r\n }\r\n else {\r\n ulToLook.insertBefore(nameSpan.parentNode.parentNode, ulToLook.getElementsByClassName('tsi-leaf')[0]); // move it to the top of the instance list after hierarchy nodes\r\n }\r\n hitElem = document.createElement('hit');\r\n Utils.appendFormattedElementsFromString(d3.select(hitElem), nameSpan.innerText);\r\n nameSpan.innerText = '';\r\n nameSpan.appendChild(hitElem);\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n _this.prepareComponentForAfterLookup = function () {\r\n _this.searchString = \"\";\r\n _this.setModeAndRequestParamsForNavigate();\r\n _this.viewType = ViewType.Hierarchy;\r\n };\r\n _this.removeCurrentHitsOfLastLookup = function () {\r\n var hitNodes = _this.hierarchyElem.selectAll('hit').nodes();\r\n if (hitNodes) {\r\n hitNodes.forEach(function (hitNode) {\r\n var spanElem = hitNode.parentNode;\r\n spanElem.innerText = '';\r\n Utils.appendFormattedElementsFromString(d3.select(spanElem), _this.instanceNodeStringToDisplay(_this.lastLookedupInstance));\r\n });\r\n }\r\n };\r\n _this.showNotFoundForReverseLookup = function () {\r\n _this.prepareComponentForAfterLookup();\r\n _this.instanceLookupLoadingElem.style('display', 'none');\r\n if (_this.selectedHierarchyName !== HierarchySelectionValues.All || _this.filterPathElem.classed('visible')) {\r\n _this.lookupGloballyElem.style('display', 'inline');\r\n }\r\n else {\r\n _this.lookupGloballyElem.style('display', 'none');\r\n if (_this.hierarchyElem.text() === '') {\r\n _this.clearAndGetResults();\r\n }\r\n }\r\n _this.notFoundElem.classed('border-top', _this.filterPathElem.classed('visible'));\r\n _this.notFoundElem.style('display', 'flex');\r\n _this.hierarchyElem.style('display', 'block');\r\n _this.path = _this.originalPathBeforeReverseLookup;\r\n };\r\n // renders instances data in flat list view, only in 'Search' mode\r\n _this.renderInstances = function (data, target) {\r\n var self = _this;\r\n if (Object.keys(data).length === 0) {\r\n _this.showNoResultsForSearch();\r\n return;\r\n }\r\n else {\r\n _this.noResultsElem.style('display', 'none');\r\n _this.viewTypesElem.node().style.display = 'inline-flex';\r\n }\r\n target.select('.tsi-show-more.tsi-show-more-instance').remove();\r\n Object.keys(data).forEach(function (i) {\r\n var div;\r\n if (data[i].name === _this.getString(\"Show More Instances\")) {\r\n div = target.append('div').classed('tsi-show-more tsi-show-more-instance', true);\r\n div.append('span').classed('tsi-markedName', true).attr('tabindex', 0).text(i).on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n data[i].onClick();\r\n });\r\n }\r\n else {\r\n div = target.append('div').classed('tsi-modelResultWrapper', true).attr('tabindex', 0);\r\n var instanceElem = _this.createInstanceElem(data[i]);\r\n div.node().appendChild(instanceElem.node());\r\n div.on('click keydown', function (event) {\r\n var clickInstance = function () {\r\n event.stopPropagation();\r\n self.closeContextMenu();\r\n var target = self.instanceListElem.select(function () { return this.parentNode.parentNode; });\r\n var mouseWrapper = d3.pointer(event, target.node());\r\n var mouseElt = d3.pointer(event);\r\n self.prepareForContextMenu(data[i], target, mouseWrapper[1], mouseElt[1]);\r\n self.chartOptions.onInstanceClick(data[i]);\r\n };\r\n if (event && event.type && event.type === 'keydown') {\r\n var key = event.which || event.keyCode;\r\n if (key === 40) { // pressed down\r\n if (this.nextElementSibling)\r\n this.nextElementSibling.focus();\r\n }\r\n else if (key === 38) { //pressed up\r\n if (this.previousElementSibling)\r\n this.previousElementSibling.focus();\r\n }\r\n else if (key === 13) {\r\n clickInstance();\r\n }\r\n return;\r\n }\r\n clickInstance();\r\n });\r\n }\r\n data[i].node = div;\r\n });\r\n };\r\n _this.pathSearchAndRenderResult = function (_a) {\r\n var _b = _a.search, payload = _b.payload, _c = _b.instancesContinuationToken, instancesContinuationToken = _c === void 0 ? null : _c, _d = _b.hierarchiesContinuationToken, hierarchiesContinuationToken = _d === void 0 ? null : _d, _e = _b.bubbleUpReject, bubbleUpReject = _e === void 0 ? false : _e, _f = _a.render, target = _f.target, _g = _f.locInTarget, locInTarget = _g === void 0 ? null : _g, _h = _f.skipLevels, skipLevels = _h === void 0 ? null : _h;\r\n return _this.pathSearch(payload, instancesContinuationToken, hierarchiesContinuationToken).then(function (r) {\r\n try {\r\n if (r.error) {\r\n throw r.error;\r\n }\r\n else {\r\n _this.renderSearchResult(r, payload, target, locInTarget, skipLevels);\r\n }\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n }).catch(function (err) {\r\n _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to complete search\", err instanceof XMLHttpRequest ? err : null);\r\n if (bubbleUpReject) {\r\n throw err;\r\n }\r\n });\r\n };\r\n _this.pathSearch = function (payload, instancesContinuationToken, hierarchiesContinuationToken) {\r\n if (instancesContinuationToken === void 0) { instancesContinuationToken = null; }\r\n if (hierarchiesContinuationToken === void 0) { hierarchiesContinuationToken = null; }\r\n return _this.getToken().then(function (token) {\r\n return _this.server.getTimeseriesInstancesPathSearch(token, _this.environmentFqdn, payload, instancesContinuationToken, hierarchiesContinuationToken);\r\n }).catch(function (err) { throw err; });\r\n };\r\n _this.renderSearchResult = function (r, payload, target, locInTarget, skipLevels) {\r\n var _a, _b, _c, _d, _e;\r\n if (locInTarget === void 0) { locInTarget = null; }\r\n if (skipLevels === void 0) { skipLevels = null; }\r\n var self = _this;\r\n var hierarchyData = {};\r\n var instancesData = {};\r\n if ((_b = (_a = r.hierarchyNodes) === null || _a === void 0 ? void 0 : _a.hits) === null || _b === void 0 ? void 0 : _b.length) {\r\n var hitCountElem = target.select(\".tsi-hitCount\");\r\n if (hitCountElem.size() == 0) {\r\n hitCountElem = target.append('span').classed('tsi-hitCount', true).text('');\r\n }\r\n hitCountElem.text(r.hierarchyNodes.hitCount);\r\n hierarchyData = self.fillDataRecursively(r.hierarchyNodes, _this.getToken, _this.environmentFqdn, payload, payload);\r\n }\r\n if ((_d = (_c = r.instances) === null || _c === void 0 ? void 0 : _c.hits) === null || _d === void 0 ? void 0 : _d.length) {\r\n r.instances.hits.forEach(function (i) {\r\n instancesData[_this.instanceNodeIdentifier(i)] = new InstanceNode(i.timeSeriesId, i.name, self.envTypes[i.typeId], i.hierarchyIds, i.highlights, payload.path.length - self.path.length);\r\n });\r\n }\r\n if (((_e = r.instances) === null || _e === void 0 ? void 0 : _e.continuationToken) && r.instances.continuationToken !== 'END') {\r\n var showMoreInstances_1 = new InstanceNode(null, _this.getString(\"Show More Instances\"), null, null, null, payload.path.length - self.path.length);\r\n showMoreInstances_1.onClick = function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.pathSearchAndRenderResult({\r\n search: { payload: payload, hierarchiesContinuationToken: null, instancesContinuationToken: r.instances['continuationToken'] },\r\n render: { target: showMoreInstances_1.node.select(function () { return this.parentNode; }), locInTarget: '.tsi-show-more.tsi-show-more-instance' }\r\n });\r\n return [2 /*return*/];\r\n });\r\n }); };\r\n instancesData[showMoreInstances_1.name] = showMoreInstances_1;\r\n if (!self.usedInstanceSearchContinuationTokens[r.instances.continuationToken]) {\r\n self.lastInstanceContinuationToken = r.instances.continuationToken;\r\n }\r\n }\r\n else {\r\n self.lastInstanceContinuationToken = \"END\";\r\n }\r\n if (self.mode === State.Navigate) {\r\n if (self.selectedHierarchyName !== HierarchySelectionValues.Unparented) {\r\n self.renderTree(__assign(__assign({}, hierarchyData), instancesData), target, locInTarget);\r\n }\r\n else {\r\n self.renderTree(instancesData, target, locInTarget);\r\n }\r\n }\r\n else if (self.mode === State.Filter) {\r\n self.renderTree(__assign(__assign({}, hierarchyData), instancesData), target, locInTarget, skipLevels);\r\n }\r\n else {\r\n self.renderInstances(instancesData, target);\r\n }\r\n };\r\n _this.closeContextMenu = function () {\r\n if (_this.clickedInstance && _this.contextMenu) {\r\n _this.contextMenu.remove();\r\n d3.selectAll('li.tsi-selected').classed('tsi-selected', false);\r\n }\r\n d3.selectAll('.tsi-modelResultWrapper').classed('tsi-selected', false);\r\n _this.clickedInstance = null;\r\n };\r\n _this.prepareForContextMenu = function (instanceObj, target, wrapperMousePos, eltMousePos) {\r\n var contextMenuProps = {};\r\n contextMenuProps['target'] = target;\r\n contextMenuProps['wrapperMousePos'] = wrapperMousePos;\r\n contextMenuProps['eltMousePos'] = eltMousePos;\r\n _this.contextMenuProps = contextMenuProps;\r\n _this.clickedInstance = instanceObj;\r\n instanceObj.node.classed('tsi-selected', true);\r\n };\r\n _this.drawContextMenu = function (contextMenuItems, contextMenuOptions) {\r\n var itemList = [];\r\n var contextMenuList;\r\n var searchString = \"\";\r\n _this.contextMenu = _this.contextMenuProps['target'].append('div').classed('tsi-hierarchyNavigationContextMenu', true).attr('style', function () { return \"top: \" + (_this.contextMenuProps['wrapperMousePos'] - _this.contextMenuProps['eltMousePos']) + \"px\"; });\r\n var renderList = function (contextMenuItems) {\r\n if (_this.contextMenu.select(\"ul\").empty()) {\r\n contextMenuList = _this.contextMenu.append('ul');\r\n }\r\n else {\r\n _this.contextMenu.select(\"ul\").text('');\r\n }\r\n contextMenuItems.forEach(function (item) {\r\n var option = item.name;\r\n var li = contextMenuList.append('li');\r\n if (!contextMenuOptions.isSelectionEnabled) {\r\n li.attr('tabindex', 0)\r\n .attr('arialabel', option)\r\n .attr('title', option)\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n item.action();\r\n _this.closeContextMenu();\r\n });\r\n var itemWrapperElem = li.append('div').classed('tsi-selectionItemWrapper', true);\r\n Utils.appendFormattedElementsFromString(itemWrapperElem, Utils.mark(searchString, option), { splitByTag: 'mark' });\r\n }\r\n else {\r\n li.attr('tabindex', 0)\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n var elem = d3.select(event.currentTarget).select(\".tsi-hierarchyCheckbox\");\r\n if (elem.classed(\"tsi-notSelected\")) {\r\n itemList.push(item);\r\n elem.classed(\"tsi-notSelected\", false);\r\n elem.attr(\"aria-checked\", true);\r\n }\r\n else {\r\n var index = itemList.map(function (elem) { return elem.name; }).indexOf(item.name);\r\n itemList.splice(index, 1);\r\n elem.classed(\"tsi-notSelected\", true);\r\n elem.attr(\"aria-checked\", false);\r\n }\r\n itemList.length === 0 ?\r\n _this.contextMenu.select(\"button\").classed(\"disabled\", true)\r\n : _this.contextMenu.select(\"button\").classed(\"disabled\", false);\r\n });\r\n var itemWrapperElem = li.append('div').classed('tsi-selectionItemWrapper', true);\r\n itemWrapperElem.append('span').classed('tsi-hierarchyCheckbox tsi-notSelected', true)\r\n .attr(\"role\", \"checkbox\").attr(\"aria-checked\", false);\r\n var itemElem = itemWrapperElem.append('span').classed('tsi-selectionItem', true).attr('title', option);\r\n Utils.appendFormattedElementsFromString(itemElem, Utils.mark(searchString, option), { splitByTag: 'mark' });\r\n itemWrapperElem.append('span').classed('tsi-selectionItemKind', true).classed(item.kind, true).attr('title', item.kind.charAt(0).toUpperCase() + item.kind.slice(1));\r\n }\r\n });\r\n };\r\n // draw filter box if enabled\r\n if (contextMenuOptions.isFilterEnabled) {\r\n var searchBox = _this.contextMenu.append('div').classed('tsi-search', true);\r\n searchBox.append('i').classed('tsi-search-icon', true);\r\n searchBox.append('input').classed('tsi-searchInput', true).attr('placeholder', _this.getString('Search'))\r\n .on('input', function (event) {\r\n var regex = new RegExp(event.currentTarget.value, 'gi');\r\n searchString = event.currentTarget.value;\r\n renderList(contextMenuItems.filter(function (varObj) { return varObj.name.match(regex); }));\r\n itemList = [];\r\n _this.contextMenu.select(\"button\").classed(\"disabled\", true);\r\n });\r\n }\r\n //draw variable list with checkbox if selection enabled\r\n renderList(contextMenuItems);\r\n //add button\r\n if (contextMenuOptions.isSelectionEnabled) {\r\n _this.contextMenu.append('button').classed(\"tsi-primaryButton\", true).classed(\"disabled\", true).text(_this.getString(\"Add\")).on('click', function () {\r\n itemList.forEach(function (item) { return item.action(); });\r\n _this.closeContextMenu();\r\n });\r\n }\r\n // move context menu above if necessary for tag selection visibility around the bottom of the page\r\n var leftSpaceAtBottom = _this.contextMenuProps['target'].node().getBoundingClientRect().height - parseFloat(_this.contextMenu.node().style.top);\r\n var overflowAtBottom = _this.contextMenu.node().getBoundingClientRect().height - leftSpaceAtBottom;\r\n if (overflowAtBottom > 0)\r\n _this.contextMenu.style('top', (parseFloat(_this.contextMenu.node().style.top) - overflowAtBottom) + 'px');\r\n var contextMenuFirstElt = d3.select('.tsi-hierarchyNavigationContextMenu li').node();\r\n if (contextMenuFirstElt) {\r\n contextMenuFirstElt.focus();\r\n }\r\n };\r\n _this.hasHits = function (str) {\r\n return str && (str.indexOf(\"<hit>\") !== -1);\r\n };\r\n _this.hierarchyNodeIdentifier = function (hName) {\r\n return hName ? hName : '(' + _this.getString(\"Empty\") + ')';\r\n };\r\n _this.instanceNodeIdentifier = function (instance) {\r\n return \"instance-\" + Utils.getInstanceKey(instance);\r\n };\r\n _this.instanceNodeStringToDisplay = function (instance) {\r\n var _a;\r\n return ((_a = instance.highlights) === null || _a === void 0 ? void 0 : _a.name) || Utils.getHighlightedTimeSeriesIdToDisplay(instance)\r\n || instance.name || Utils.getTimeSeriesIdToDisplay(instance, _this.getString('Empty'));\r\n };\r\n _this.instanceNodeString = function (instance) {\r\n return instance.name || Utils.getTimeSeriesIdString(instance);\r\n };\r\n _this.clearAndHideFilterPath = function () {\r\n d3.select('.tsi-path-list').text('');\r\n d3.select('.tsi-filter-clear').style('display', 'none');\r\n _this.filterPathElem.classed('visible', false);\r\n };\r\n // when an hierarchy is selected from the flyout selection menu\r\n _this.selectHierarchy = function (pathName, applySearch) {\r\n if (applySearch === void 0) { applySearch = true; }\r\n _this.path = pathName === HierarchySelectionValues.All || pathName === HierarchySelectionValues.Unparented ? [] : [pathName];\r\n _this.selectedHierarchyName = pathName;\r\n var selectedhierarchyId = pathName === HierarchySelectionValues.All || pathName === HierarchySelectionValues.Unparented ? pathName : _this.envHierarchies[_this.selectedHierarchyName].id;\r\n _this.chartOptions.onSelect(selectedhierarchyId);\r\n var pathText = pathName === HierarchySelectionValues.All ? _this.getString(\"All hierarchies\") : pathName === HierarchySelectionValues.Unparented ? _this.getString(\"Unassigned Time Series Instances\") : pathName;\r\n d3.select('.tsi-hierarchy-name').text(pathText).attr('title', pathText);\r\n _this.clearAndGetResults(applySearch);\r\n _this.clearAndHideFilterPath();\r\n _this.isHierarchySelectionActive = false;\r\n _this.hierarchyListWrapperElem.style('display', 'none');\r\n _this.notFoundElem.style('display', 'none');\r\n };\r\n _this.resettingVariablesForEnvChange = function () {\r\n _this.path = [];\r\n _this.selectedHierarchyName = HierarchySelectionValues.All;\r\n _this.searchString = '';\r\n _this.lastInstanceContinuationToken = null;\r\n _this.usedInstanceSearchContinuationTokens = {};\r\n _this.envHierarchies = {};\r\n _this.envTypes = {};\r\n _this.setModeAndRequestParamsForNavigate();\r\n _this.viewType = ViewType.Hierarchy;\r\n _this.clickedInstance = null;\r\n _this.isHierarchySelectionActive = false;\r\n };\r\n _this.server = new ServerClient();\r\n function isTarget(event) {\r\n return event.target === this || this.contains(event.target);\r\n }\r\n d3.select(\"html\").on(\"click. keydown.\" + Utils.guid(), function (event) {\r\n if (_this.clickedInstance && _this.contextMenu) {\r\n if (event.type && event.type === 'keydown') {\r\n if (!_this.contextMenu.filter(isTarget).empty()) {\r\n var key = event.which || event.keyCode;\r\n if (key === KeyCodes.Esc) { // close context menu when pressed esc on it\r\n _this.closeContextMenu();\r\n }\r\n return;\r\n }\r\n }\r\n else {\r\n if (_this.contextMenu.filter(isTarget).empty()) { // close context menu when clicked any other target outside of it\r\n _this.closeContextMenu();\r\n }\r\n }\r\n }\r\n if (_this.isHierarchySelectionActive) {\r\n if (event && event.type && event.type === 'keydown') {\r\n if (!d3.select(_this.hierarchyListWrapperElem.node().parentNode).filter(isTarget).empty()) {\r\n var key = event.which || event.keyCode;\r\n if (key === KeyCodes.Esc) { // close hierarchy selection dropdown when pressed esc on it\r\n _this.isHierarchySelectionActive = false;\r\n _this.hierarchyListWrapperElem.style('display', 'none');\r\n }\r\n return;\r\n }\r\n }\r\n else {\r\n if (d3.select(_this.hierarchyListWrapperElem.node().parentNode).filter(isTarget).empty()) { // close hierarchy selection dropdown when clicked any other target outside of it\r\n _this.isHierarchySelectionActive = false;\r\n _this.hierarchyListWrapperElem.style('display', 'none');\r\n }\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n HierarchyNavigation.prototype.HierarchyNavigation = function () {\r\n };\r\n HierarchyNavigation.prototype.render = function (environmentFqdn, getToken, hierarchyNavOptions) {\r\n if (hierarchyNavOptions === void 0) { hierarchyNavOptions = {}; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var self, targetElement, hierarchyNavWrapper, selectedHierarchyId, hierarchy, autocompleteOnInput, handleKeydown;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n self = this;\r\n this.chartOptions.setOptions(hierarchyNavOptions);\r\n this.getToken = getToken;\r\n this.environmentFqdn = environmentFqdn;\r\n this.resettingVariablesForEnvChange();\r\n targetElement = d3.select(this.renderTarget);\r\n targetElement.text('');\r\n hierarchyNavWrapper = targetElement.append('div').attr('class', 'tsi-hierarchy-nav-wrapper');\r\n _super.prototype.themify.call(this, hierarchyNavWrapper, this.chartOptions.theme);\r\n //get the most recent types to show in the context menu on instance click\r\n return [4 /*yield*/, getToken().then(function (token) {\r\n return _this.server.getTimeseriesTypes(token, environmentFqdn).then(function (r) {\r\n try {\r\n if (r.error) {\r\n throw r.error;\r\n }\r\n else {\r\n r.types.forEach(function (t) {\r\n _this.envTypes[t.id] = t;\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n }).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to load types for navigation\", err instanceof XMLHttpRequest ? err : null); });\r\n }).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to get token\", err instanceof XMLHttpRequest ? err : null); })];\r\n case 1:\r\n //get the most recent types to show in the context menu on instance click\r\n _a.sent();\r\n //get the most recent hierarchies for reverse lookup\r\n return [4 /*yield*/, getToken().then(function (token) {\r\n return _this.server.getTimeseriesHierarchies(token, environmentFqdn).then(function (r) {\r\n try {\r\n if (r.error) {\r\n throw r.error;\r\n }\r\n else {\r\n r.hierarchies.forEach(function (h) {\r\n _this.envHierarchies[h.name] = h;\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n }).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to load hierarchies for navigation\", err instanceof XMLHttpRequest ? err : null); });\r\n }).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to get token\", err instanceof XMLHttpRequest ? err : null); })];\r\n case 2:\r\n //get the most recent hierarchies for reverse lookup\r\n _a.sent();\r\n selectedHierarchyId = hierarchyNavOptions.selectedHierarchyId;\r\n if (selectedHierarchyId) {\r\n if (selectedHierarchyId === HierarchySelectionValues.All || selectedHierarchyId === HierarchySelectionValues.Unparented) {\r\n this.selectedHierarchyName = selectedHierarchyId; //Using enum values of All and Unparented as both name and id\r\n this.path = [];\r\n }\r\n else {\r\n hierarchy = Object.values(this.envHierarchies).find(function (h) { return h[\"id\"] === selectedHierarchyId; });\r\n if (hierarchy) {\r\n this.selectedHierarchyName = hierarchy[\"name\"];\r\n this.path = [this.selectedHierarchyName];\r\n }\r\n }\r\n }\r\n getToken().then(function (token) {\r\n self.server.getTimeseriesInstancesPathSearch(token, environmentFqdn, { searchString: '', path: _this.path, hierarchies: { sort: { by: HierarchiesSort.CumulativeInstanceCount }, expand: { kind: HierarchiesExpand.OneLevel }, pageSize: 100 } }).then(function (r) {\r\n try {\r\n if (r.error) {\r\n throw r.error;\r\n }\r\n else {\r\n // hierarchy selection button\r\n var hierarchySelectionWrapper = hierarchyNavWrapper.append('div').classed('tsi-hierarchy-selection-wrapper', true);\r\n _this.hierarchySelectorElem = hierarchySelectionWrapper.append('button').classed('tsi-hierarchy-select', true)\r\n .attr(\"aria-haspopup\", \"listbox\")\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n if (_this.isHierarchySelectionActive) {\r\n _this.hierarchyListWrapperElem.style('display', 'none');\r\n _this.isHierarchySelectionActive = false;\r\n }\r\n else {\r\n _this.renderHierarchySelection();\r\n _this.isHierarchySelectionActive = true;\r\n }\r\n });\r\n _this.hierarchySelectorElem.append('span').classed('tsi-hierarchy-name', true).text(_this.selectedHierarchyName === HierarchySelectionValues.All ? _this.getString(\"All hierarchies\")\r\n : _this.selectedHierarchyName === HierarchySelectionValues.Unparented ? _this.getString(\"Unassigned Time Series Instances\")\r\n : _this.selectedHierarchyName);\r\n _this.hierarchySelectorElem.append('i').classed('tsi-down-caret-icon', true);\r\n // hierarchy flyout list\r\n _this.hierarchyListWrapperElem = hierarchySelectionWrapper.append('div').classed('tsi-hierarchy-list-wrapper', true);\r\n _this.hierarchyListElem = _this.hierarchyListWrapperElem.append('ul').classed('tsi-hierarchy-list', true).attr('role', 'listbox').attr(\"id\", \"tsi-hierarchy-listbox\");\r\n // search\r\n _this.searchWrapperElem = hierarchyNavWrapper.append('div').classed('tsi-hierarchy-search', true);\r\n var modelAutocomplete = new ModelAutocomplete(_this.searchWrapperElem.node());\r\n modelAutocomplete.render(environmentFqdn, getToken, {\r\n onInput: autocompleteOnInput,\r\n onKeydown: function (event, ap) { handleKeydown(event, ap); },\r\n theme: hierarchyNavOptions.theme,\r\n strings: _this.chartOptions.strings\r\n });\r\n _this.viewTypesElem = _this.searchWrapperElem.append('div').classed('tsi-view-types', true).attr(\"role\", \"tablist\");\r\n _this.viewTypesElem.append('div').classed('tsi-view-type', true)\r\n .attr('title', 'Hierarchy View')\r\n .attr('tabindex', 0)\r\n .attr('arialabel', 'Hierarchy View')\r\n .attr('role', 'tab')\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.switchToSearchView(ViewType.Hierarchy);\r\n })\r\n .append('i').classed('tsi-tree-icon', true);\r\n _this.viewTypesElem.append('div').classed('tsi-view-type selected', true)\r\n .attr('title', 'List View')\r\n .attr('tabindex', 0)\r\n .attr('arialabel', 'List View')\r\n .attr('role', 'tab')\r\n .attr('aria-selected', true)\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.switchToSearchView(ViewType.List);\r\n })\r\n .append('i').classed('tsi-list-icon', true);\r\n // filter path\r\n _this.filterPathElem = hierarchyNavWrapper.append('div').classed('tsi-filter-path-wrapper', true);\r\n var filterPath = _this.filterPathElem.append('div').classed('tsi-filter-path', true);\r\n filterPath.append('span').classed('tsi-path-list', true);\r\n filterPath.append('i').classed('tsi-close-icon tsi-filter-clear', true)\r\n .attr('tabindex', 0)\r\n .attr('arialabel', 'Clear Path Filter')\r\n .attr('title', 'Clear Path Filter')\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.path = (self.selectedHierarchyName === HierarchySelectionValues.All || self.selectedHierarchyName === HierarchySelectionValues.Unparented) ? [] : [self.selectedHierarchyName];\r\n self.noResultsElem.style('display', 'none');\r\n self.clearAndGetResults();\r\n self.clearAndHideFilterPath();\r\n });\r\n _this.instanceLookupLoadingElem = hierarchyNavWrapper.append('div').classed('tsi-instance-lookup-loading', true);\r\n _this.instanceLookupLoadingElem.append('i').classed('tsi-spinner-icon', true);\r\n _this.instanceLookupLoadingElem.append('span').classed('tsi-lookup-instance', true);\r\n // no search results\r\n _this.noResultsElem = hierarchyNavWrapper.append('div').classed('tsi-noResults', true).style('display', 'none');\r\n var noInstancesMessage = _this.noResultsElem.append('div').classed('tsi-not-found-message', true).text(_this.getString(\"No search result\")).attr(\"role\", \"alert\");\r\n _this.searchGloballyElem = noInstancesMessage.append('a').classed('tsi-search-globally-link', true).text(_this.getString(\"Search globally\")).style('display', 'none')\r\n .attr('title', _this.getString(\"Search globally\"))\r\n .attr('tabindex', 0)\r\n .attr('arialabel', _this.getString(\"Search globally\"))\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.selectHierarchy(HierarchySelectionValues.All, false);\r\n self.switchToSearchView(ViewType.List);\r\n self.noResultsElem.style('display', 'none');\r\n });\r\n _this.noResultsElem.append('i').attr('class', 'tsi-clear')\r\n .attr('title', _this.getString(\"Dismiss\"))\r\n .attr(\"tabindex\", \"0\").attr(\"role\", \"button\")\r\n .attr(\"aria-label\", _this.getString(\"Dismiss\"))\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.searchWrapperElem.select(\"input\").node().value = \"\";\r\n self.searchWrapperElem.select(\".tsi-clear\").dispatch('click');\r\n self.noResultsElem.style('display', 'none');\r\n });\r\n // could not find the reverse lookup item under the selected hierarchy\r\n _this.notFoundElem = hierarchyNavWrapper.append('div').classed('tsi-notFound', true).style('display', 'none');\r\n var notFoundMessage = _this.notFoundElem.append('div').classed('tsi-not-found-message', true).text(_this.getString(\"Instance not found\")).attr(\"role\", \"alert\");\r\n _this.lookupGloballyElem = notFoundMessage.append('a').classed('tsi-search-globally-link', true).text(_this.getString(\"Lookup globally\")).style('display', 'none')\r\n .attr('title', _this.getString(\"Lookup globally\"))\r\n .attr('tabindex', 0)\r\n .attr('arialabel', _this.getString(\"Lookup globally\"))\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.selectHierarchy(HierarchySelectionValues.All, false);\r\n self.showInstance(self.timeSeriesIdForLookup);\r\n });\r\n _this.notFoundElem.append('i').attr('class', 'tsi-clear')\r\n .attr('title', _this.getString(\"Dismiss\"))\r\n .attr(\"tabindex\", \"0\").attr(\"role\", \"button\")\r\n .attr(\"aria-label\", _this.getString(\"Dismiss\"))\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.notFoundElem.style('display', 'none');\r\n });\r\n // result (hierarchy or flat list)\r\n var results = hierarchyNavWrapper.append('div').classed('tsi-hierarchy-or-list-wrapper', true);\r\n // hierarchy\r\n _this.hierarchyElem = results.append('div').classed('tsi-hierarchy', true).attr(\"role\", \"navigation\").on('scroll', function () {\r\n self.closeContextMenu();\r\n });\r\n // flat list\r\n _this.instanceListWrapperElem = results.append('div').classed('tsi-list', true).on('scroll', function () {\r\n if (self.viewType === ViewType.List) {\r\n self.closeContextMenu();\r\n if (self.lastInstanceContinuationToken && (self.lastInstanceContinuationToken !== \"END\")) {\r\n var that = this;\r\n if (that.scrollTop + that.clientHeight + 50 > self.instanceListElem.node().clientHeight) {\r\n if (self.lastInstanceContinuationToken === null || !self.usedInstanceSearchContinuationTokens[self.lastInstanceContinuationToken]) {\r\n self.usedInstanceSearchContinuationTokens[self.lastInstanceContinuationToken] = true;\r\n self.pathSearchAndRenderResult({ search: { payload: self.requestPayload(), instancesContinuationToken: self.lastInstanceContinuationToken }, render: { target: self.instanceListElem } });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n _this.instanceListElem = _this.instanceListWrapperElem.append('div').classed('tsi-search-results', true);\r\n _this.pathSearchAndRenderResult({ search: { payload: self.requestPayload() }, render: { target: _this.hierarchyElem } });\r\n }\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n }).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to complete search\", err instanceof XMLHttpRequest ? err : null); });\r\n }).catch(function (err) { return _this.chartOptions.onError(\"Error in hierarchy navigation\", \"Failed to get token\", err instanceof XMLHttpRequest ? err : null); });\r\n autocompleteOnInput = function (st, event) {\r\n if (st.length === 0) {\r\n _this.searchString = st;\r\n _this.viewTypesElem.node().style.display = 'none';\r\n _this.searchGloballyElem.node().style.display = 'none';\r\n _this.switchToSearchView(ViewType.Hierarchy, false);\r\n _this.clearAndGetResults();\r\n }\r\n else {\r\n if (event.which === 13 || event.keyCode === 13) {\r\n _this.searchString = st;\r\n _this.switchToSearchView(ViewType.List, false);\r\n _this.clearAndGetResults();\r\n }\r\n }\r\n };\r\n handleKeydown = function (event, ap) {\r\n if (!ap.isOpened) {\r\n }\r\n };\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HierarchyNavigation.prototype.setModeAndRequestParamsForSearch = function () {\r\n this.mode = State.Search;\r\n var options = this.chartOptions.hierarchyOptions;\r\n options.isInstancesRecursive = true;\r\n options.isInstancesHighlighted = true;\r\n options.instancesSort = InstancesSort.Rank;\r\n options.hierarchiesExpand = HierarchiesExpand.UntilChildren;\r\n options.hierarchiesSort = HierarchiesSort.CumulativeInstanceCount;\r\n };\r\n HierarchyNavigation.prototype.setModeAndRequestParamsForNavigate = function () {\r\n this.mode = State.Navigate;\r\n var options = this.chartOptions.hierarchyOptions;\r\n options.isInstancesRecursive = false;\r\n options.isInstancesHighlighted = true;\r\n options.instancesSort = InstancesSort.DisplayName;\r\n options.hierarchiesExpand = HierarchiesExpand.OneLevel;\r\n options.hierarchiesSort = HierarchiesSort.Name;\r\n };\r\n HierarchyNavigation.prototype.setModeAndRequestParamsForFilter = function () {\r\n this.mode = State.Filter;\r\n var options = this.chartOptions.hierarchyOptions;\r\n options.isInstancesRecursive = false;\r\n options.isInstancesHighlighted = true;\r\n options.instancesSort = InstancesSort.DisplayName;\r\n options.hierarchiesExpand = HierarchiesExpand.UntilChildren;\r\n options.hierarchiesSort = HierarchiesSort.CumulativeInstanceCount;\r\n };\r\n // prepares the parameters for search request\r\n HierarchyNavigation.prototype.requestPayload = function (path) {\r\n if (path === void 0) { path = null; }\r\n var payload = {};\r\n payload[\"searchString\"] = this.searchString;\r\n payload[\"path\"] = path ? path : this.path;\r\n payload[\"instances\"] = { recursive: this.chartOptions.hierarchyOptions.isInstancesRecursive, sort: { by: this.chartOptions.hierarchyOptions.instancesSort }, highlights: this.chartOptions.hierarchyOptions.isInstancesHighlighted, pageSize: this.chartOptions.hierarchyOptions.instancesPageSize };\r\n if (this.selectedHierarchyName !== HierarchySelectionValues.Unparented && (this.mode !== State.Search)) { // hierarchyNodes are not needed for showing unassigned instances or flat list instance search results\r\n payload[\"hierarchies\"] = { expand: { kind: this.chartOptions.hierarchyOptions.hierarchiesExpand }, sort: { by: this.chartOptions.hierarchyOptions.hierarchiesSort }, pageSize: this.chartOptions.hierarchyOptions.hierarchiesPageSize };\r\n }\r\n return payload;\r\n };\r\n // clears both hierarchy tree and flat list for new results\r\n HierarchyNavigation.prototype.clearAndGetResults = function (applySearch) {\r\n if (applySearch === void 0) { applySearch = true; }\r\n this.instanceListElem.text('');\r\n this.hierarchyElem.text('');\r\n this.lastInstanceContinuationToken = null;\r\n this.usedInstanceSearchContinuationTokens = {};\r\n if (this.mode === State.Search) {\r\n this.chartOptions.hierarchyOptions.isInstancesRecursive = this.selectedHierarchyName === HierarchySelectionValues.Unparented ? false : true;\r\n }\r\n if (applySearch) {\r\n if (this.viewType === ViewType.Hierarchy) {\r\n return this.pathSearchAndRenderResult({ search: { payload: this.requestPayload() }, render: { target: this.hierarchyElem } });\r\n }\r\n else {\r\n return this.pathSearchAndRenderResult({ search: { payload: this.requestPayload() }, render: { target: this.instanceListElem } });\r\n }\r\n }\r\n };\r\n HierarchyNavigation.prototype.showInstance = function (timeSeriesID, hierarchyIds) {\r\n if (hierarchyIds === void 0) { hierarchyIds = null; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isHierarchySelected, hierarchyNamesFromParam, hNames, instance, paths, response, instanceFieldValues_1, err_1, err_2;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.removeCurrentHitsOfLastLookup();\r\n this.timeSeriesIdForLookup = timeSeriesID;\r\n isHierarchySelected = this.selectedHierarchyName !== HierarchySelectionValues.All && this.selectedHierarchyName !== HierarchySelectionValues.Unparented;\r\n hierarchyNamesFromParam = hierarchyIds ? hierarchyIds.map(function (hId) { return Object.keys(_this.envHierarchies).find(function (n) { return _this.envHierarchies[n].id === hId; }); }) : null;\r\n hNames = hierarchyNamesFromParam ? hierarchyNamesFromParam : isHierarchySelected ? [null, this.selectedHierarchyName] : __spreadArray([null], Object.keys(this.envHierarchies));\r\n paths = [];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 13, , 14]);\r\n this.prepareComponentForLookup(timeSeriesID);\r\n response = void 0;\r\n return [4 /*yield*/, this.getInstance(timeSeriesID)];\r\n case 2:\r\n response = _a.sent();\r\n instance = response['get'][0]['instance'];\r\n instanceFieldValues_1 = instance.instanceFields ? Object.values(instance.instanceFields) : [];\r\n if (!instance) return [3 /*break*/, 11];\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 9, , 10]);\r\n this.lastLookedupInstance = instance;\r\n return [4 /*yield*/, this.doExactSearchWithPossiblePaths(timeSeriesID, hNames)];\r\n case 4:\r\n response = _a.sent();\r\n response.forEach(function (r, idx) {\r\n var _a, _b, _c, _d;\r\n if (r.error) {\r\n throw r.error;\r\n }\r\n if (idx === 0) { // if instance is direct instance of the top root\r\n if ((_a = r.instances) === null || _a === void 0 ? void 0 : _a.hitCount) {\r\n paths.push([]);\r\n }\r\n ;\r\n }\r\n else { // under defined hierarchies\r\n if ((_c = (_b = r.hierarchyNodes) === null || _b === void 0 ? void 0 : _b.hits) === null || _c === void 0 ? void 0 : _c.length) { // if the instance is under sub nodes in the hierarchy\r\n r.hierarchyNodes.hits.forEach(function (h) {\r\n var currentHit = h;\r\n if (instanceFieldValues_1.indexOf(currentHit.name) !== -1) {\r\n var path = [hNames[idx]];\r\n path.push(currentHit.name);\r\n while (currentHit.hierarchyNodes) {\r\n currentHit = currentHit.hierarchyNodes.hits[0];\r\n if ((instanceFieldValues_1 === null || instanceFieldValues_1 === void 0 ? void 0 : instanceFieldValues_1.indexOf(currentHit.name)) !== -1) {\r\n path.push(currentHit.name);\r\n }\r\n }\r\n paths.push(path);\r\n }\r\n });\r\n }\r\n else if ((_d = r.instances) === null || _d === void 0 ? void 0 : _d.hitCount) { // if it is direct instance under the defined the hierarchy\r\n var path = [hNames[idx]];\r\n paths.push(path);\r\n }\r\n }\r\n });\r\n if (!paths.length) return [3 /*break*/, 7];\r\n // go back to default navigate mode without exact search \r\n this.prepareComponentForAfterLookup();\r\n return [4 /*yield*/, this.clearAndGetResults()];\r\n case 5:\r\n _a.sent(); // get a fresh hierarchy with defaulf settings for navigation, ready to expand and locate\r\n return [4 /*yield*/, Promise.all(paths.map(function (p) { return _this.simulateExpand(p, hierarchyNamesFromParam, instance); }))];\r\n case 6:\r\n _a.sent();\r\n this.clearAndHideFilterPath();\r\n return [3 /*break*/, 8];\r\n case 7:\r\n this.showNotFoundForReverseLookup();\r\n _a.label = 8;\r\n case 8:\r\n this.hierarchyElem.style('display', 'block');\r\n this.instanceLookupLoadingElem.style('display', 'none');\r\n return [3 /*break*/, 10];\r\n case 9:\r\n err_1 = _a.sent();\r\n throw err_1; // throw to be catched by parent try/catch block\r\n case 10: return [3 /*break*/, 12];\r\n case 11:\r\n this.showNotFoundForReverseLookup();\r\n _a.label = 12;\r\n case 12: return [3 /*break*/, 14];\r\n case 13:\r\n err_2 = _a.sent();\r\n this.showNotFoundForReverseLookup();\r\n return [3 /*break*/, 14];\r\n case 14: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // renders tree for both 'Navigate' and 'Filter' mode (with Hierarchy View option selected), locInTarget refers to the 'show more' element -either hierarchy or instance- within the target\r\n HierarchyNavigation.prototype.renderTree = function (data, target, locInTarget, skipLevels) {\r\n var _this = this;\r\n if (locInTarget === void 0) { locInTarget = null; }\r\n if (skipLevels === void 0) { skipLevels = null; }\r\n if (Object.keys(data).length === 0) {\r\n this.showNoResultsForSearch();\r\n return;\r\n }\r\n else {\r\n this.noResultsElem.style('display', 'none');\r\n if (this.mode === State.Filter) {\r\n this.viewTypesElem.node().style.display = 'inline-flex';\r\n }\r\n }\r\n var list, currentShowMore;\r\n if (!locInTarget) {\r\n list = target.append('ul').attr(\"role\", target === this.hierarchyElem ? \"tree\" : \"group\");\r\n }\r\n else {\r\n if (locInTarget === '.tsi-show-more.tsi-show-more-hierarchy')\r\n currentShowMore = target.selectAll('.tsi-show-more.tsi-show-more-hierarchy').filter(function (d, i, list) {\r\n return i === list.length - 1;\r\n });\r\n else\r\n currentShowMore = target.selectAll('.tsi-show-more.tsi-show-more-instance').filter(function (d, i, list) {\r\n return i === list.length - 1;\r\n });\r\n currentShowMore.node().style.display = 'none';\r\n currentShowMore.classed('tsi-target-loc', true);\r\n }\r\n if (locInTarget && skipLevels) {\r\n while (skipLevels) {\r\n data = data[Object.keys(data)[0]].children;\r\n skipLevels--;\r\n }\r\n }\r\n Object.keys(data).forEach(function (el) {\r\n var li, newListElem;\r\n var nodeNameToCheckIfExists = data[el] instanceof InstanceNode && data[el].name !== _this.getString(\"Show More Instances\") ? _this.instanceNodeString(data[el]) : el;\r\n if (locInTarget) {\r\n if (target.selectAll(\".tsi-name\").nodes().find(function (e) { return e.innerText === nodeNameToCheckIfExists; })) {\r\n return;\r\n }\r\n li = target.insert('li', '.tsi-target-loc').classed('tsi-leaf', data[el].isLeaf);\r\n }\r\n else {\r\n if (list.selectAll(\".tsi-name\").nodes().find(function (e) { return e.innerText === nodeNameToCheckIfExists; })) {\r\n return;\r\n }\r\n li = list.append('li').classed('tsi-leaf', data[el].isLeaf);\r\n }\r\n li.attr(\"role\", \"none\");\r\n if (el === _this.getString(\"Show More Hierarchies\")) {\r\n li.classed('tsi-show-more tsi-show-more-hierarchy', true)\r\n .append('span')\r\n .classed('tsi-hierarchyItem', true)\r\n .attr('tabindex', 0)\r\n .attr(\"role\", \"treeitem\").attr('aria-expanded', false)\r\n .attr('style', \"padding-left: \" + ((data[el].level) * 18 + 20) + \"px\").text(_this.getString(\"Show more\")).on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n return data[el].onClick();\r\n });\r\n }\r\n else if (el === _this.getString(\"Show More Instances\")) {\r\n li.classed('tsi-show-more tsi-show-more-instance', true)\r\n .append('span')\r\n .classed('tsi-hierarchyItem', true)\r\n .attr('tabindex', 0)\r\n .attr(\"role\", \"treeitem\").attr('aria-expanded', false)\r\n .attr('style', \"padding-left: \" + ((data[el].level) * 18 + 20) + \"px\").text(_this.getString(\"Show more\")).on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n data[el].onClick();\r\n });\r\n }\r\n else {\r\n newListElem = _this.createHierarchyItemElem(data[el], el);\r\n li.node().appendChild(newListElem.node());\r\n }\r\n data[el].node = li;\r\n if (data[el].children) {\r\n data[el].isExpanded = true;\r\n data[el].node.classed('tsi-expanded', true);\r\n _this.renderTree(data[el].children, data[el].node);\r\n }\r\n if (data[el] instanceof HierarchyNode && el !== _this.getString(\"Show More Hierarchies\") && _this.mode === State.Filter && data[el].cumulativeInstanceCount == 1 && !data[el].isExpanded) { //expand the last parent node by default to prevent additional click to see the filter results\r\n newListElem.node().click();\r\n }\r\n });\r\n if (locInTarget) {\r\n currentShowMore.remove();\r\n }\r\n };\r\n // creates in-depth data object using the server response for hierarchyNodes to show in the tree all expanded, considering UntilChildren\r\n HierarchyNavigation.prototype.fillDataRecursively = function (hierarchyNodes, getToken, envFqdn, payload, payloadForContinuation) {\r\n var _this = this;\r\n if (payloadForContinuation === void 0) { payloadForContinuation = null; }\r\n var data = {};\r\n hierarchyNodes.hits.forEach(function (h) {\r\n var hierarchy = new HierarchyNode(h.name, payload.path, payload.path.length - _this.path.length, h.cumulativeInstanceCount);\r\n hierarchy.expand = function () {\r\n var expandNode = function () {\r\n hierarchy.isExpanded = true;\r\n hierarchy.node.classed('tsi-expanded', true);\r\n };\r\n if (_this.mode === State.Search) {\r\n return _this.pathSearchAndRenderResult({ search: { payload: _this.requestPayload(hierarchy.path), bubbleUpReject: true }, render: { target: _this.instanceListElem } }).then(function (r) { return expandNode(); }).catch(function (err) { });\r\n }\r\n else {\r\n return _this.pathSearchAndRenderResult({ search: { payload: _this.requestPayload(hierarchy.path), bubbleUpReject: true }, render: { target: hierarchy.node } }).then(function (r) { return expandNode(); }).catch(function (err) { });\r\n }\r\n };\r\n data[_this.hierarchyNodeIdentifier(h.name)] = hierarchy;\r\n if (h.hierarchyNodes && h.hierarchyNodes.hits.length) {\r\n hierarchy.children = _this.fillDataRecursively(h.hierarchyNodes, getToken, envFqdn, _this.requestPayload(hierarchy.path), payloadForContinuation);\r\n }\r\n });\r\n if (hierarchyNodes.continuationToken && hierarchyNodes.continuationToken !== 'END') {\r\n var showMorehierarchy_1 = new HierarchyNode(this.getString(\"Show More Hierarchies\"), payload.path, payload.path.length - this.path.length);\r\n showMorehierarchy_1.onClick = function () {\r\n return _this.pathSearchAndRenderResult({\r\n search: { payload: (payloadForContinuation ? payloadForContinuation : payload), hierarchiesContinuationToken: hierarchyNodes.continuationToken },\r\n render: { target: showMorehierarchy_1.node.select(function () { return this.parentNode; }), locInTarget: '.tsi-show-more.tsi-show-more-hierarchy', skipLevels: payloadForContinuation ? payload.path.length - payloadForContinuation.path.length : null }\r\n });\r\n };\r\n data[showMorehierarchy_1.name] = showMorehierarchy_1;\r\n }\r\n return data;\r\n };\r\n //returns the dom element of one hierarchy level item for tree rendering\r\n HierarchyNavigation.prototype.createHierarchyItemElem = function (hORi, key) {\r\n var _this = this;\r\n var self = this;\r\n var isHierarchyNode = hORi instanceof HierarchyNode;\r\n var hierarchyItemElem = d3.create('div').classed('tsi-hierarchyItem', true)\r\n .attr('style', \"padding-left: \" + (hORi.isLeaf ? hORi.level * 18 + 20 : (hORi.level + 1) * 18 + 20) + \"px\")\r\n .attr('tabindex', 0)\r\n .attr('arialabel', isHierarchyNode ? key : Utils.getTimeSeriesIdString(hORi))\r\n .attr('title', isHierarchyNode ? key : Utils.getTimeSeriesIdString(hORi))\r\n .attr(\"role\", \"treeitem\").attr('aria-expanded', hORi.isExpanded)\r\n .on('click keydown', function (event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var mouseElt, target, mouseWrapper;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return [2 /*return*/];\r\n }\r\n if (!!isHierarchyNode) return [3 /*break*/, 1];\r\n event.stopPropagation();\r\n self.closeContextMenu();\r\n mouseElt = d3.pointer(event);\r\n target = self.hierarchyElem.select(function () { return this.parentNode; });\r\n mouseWrapper = d3.pointer(event, target.node());\r\n self.prepareForContextMenu(hORi, target, mouseWrapper[1], mouseElt[1]);\r\n self.chartOptions.onInstanceClick(hORi);\r\n return [3 /*break*/, 4];\r\n case 1:\r\n if (!hORi.isExpanded) return [3 /*break*/, 2];\r\n hORi.collapse();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, hORi.expand()];\r\n case 3:\r\n _a.sent();\r\n _a.label = 4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n })\r\n .on('mouseover focus', function (event) {\r\n if (isHierarchyNode) {\r\n if (event.relatedTarget != d3.select(event.parentNode).select('.tsi-filter-icon').node()) {\r\n d3.select(event.parentNode).select('.tsi-filter-icon').node().style.visibility = 'visible';\r\n }\r\n }\r\n })\r\n .on('mouseleave blur', function (event) {\r\n if (isHierarchyNode) {\r\n if (event.relatedTarget != d3.select(event.parentNode).select('.tsi-filter-icon').node()) {\r\n d3.select(event.parentNode).select('.tsi-filter-icon').node().style.visibility = 'hidden';\r\n }\r\n }\r\n });\r\n if (isHierarchyNode) {\r\n hierarchyItemElem.append('span').classed('tsi-caret-icon', true).attr('style', \"left: \" + ((hORi.level) * 18 + 20) + \"px\");\r\n hierarchyItemElem.append('span').classed('tsi-name', true).text(key);\r\n hierarchyItemElem.append('span').classed('tsi-instanceCount', true).text(hORi.cumulativeInstanceCount);\r\n hierarchyItemElem.append('span').classed('tsi-hitCount', true).text(''); // hit count is the number of hierarchy nodes below, it is filled after expand is clicked for this node (after search is done for this path)\r\n hierarchyItemElem.append('div').classed('tsi-filter-icon', true).attr('title', this.getString('Add to Filter Path'))\r\n .attr('tabindex', 0)\r\n .attr('arialabel', this.getString('Add to Filter Path'))\r\n .attr('role', 'button')\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.path = hORi.path;\r\n var pathListElem = d3.select('.tsi-path-list');\r\n pathListElem.text('');\r\n var pathToLoop = self.selectedHierarchyName !== HierarchySelectionValues.All ? hORi.path.slice(1) : hORi.path;\r\n pathToLoop.forEach(function (a, i) {\r\n if (i > 0) {\r\n pathListElem.append('span').text(' / ');\r\n }\r\n var pathName = self.hierarchyNodeIdentifier(a);\r\n pathListElem.append('span').classed('tsi-path', true)\r\n .text(pathName)\r\n .attr('title', pathName)\r\n .attr('tabindex', 0)\r\n .attr('arialabel', pathName)\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n self.path = self.path.slice(0, i + (self.selectedHierarchyName === HierarchySelectionValues.All ? 1 : 2));\r\n d3.selectAll(pathListElem.selectAll('span').nodes().splice((i * 2) + 1, pathListElem.selectAll('span').nodes().length)).remove();\r\n self.clearAndGetResults();\r\n });\r\n });\r\n d3.select('.tsi-filter-clear').style('display', 'inline-block');\r\n self.filterPathElem.classed('visible', true);\r\n self.clearAndGetResults();\r\n }).on('mouseleave blur', function (event) {\r\n if (event.relatedTarget != d3.select(event.parentNode)) {\r\n this.style.visibility = 'hidden';\r\n }\r\n });\r\n }\r\n else {\r\n var spanElem = hierarchyItemElem.append('span').classed('tsi-name', true);\r\n Utils.appendFormattedElementsFromString(spanElem, this.instanceNodeStringToDisplay(hORi));\r\n if (hORi.highlights) {\r\n var hitsExist_1 = false;\r\n var highlightDetails = hierarchyItemElem.append('div').classed('tsi-highlights-detail', true);\r\n if (hORi.highlights.description && this.hasHits(hORi.highlights.description)) {\r\n hitsExist_1 = true;\r\n Utils.appendFormattedElementsFromString(highlightDetails, hORi.highlights.description);\r\n }\r\n var hitTuples_1 = [];\r\n if (hORi.highlights.name && this.hasHits(Utils.getHighlightedTimeSeriesIdToDisplay(hORi))) {\r\n hitsExist_1 = true;\r\n hitTuples_1.push([this.getString(\"Time Series ID\"), Utils.getHighlightedTimeSeriesIdToDisplay(hORi)]);\r\n }\r\n hORi.highlights.instanceFieldNames.forEach(function (ifn, idx) {\r\n var val = hORi.highlights.instanceFieldValues[idx];\r\n if (_this.hasHits(ifn) || _this.hasHits(val)) {\r\n hitsExist_1 = true;\r\n hitTuples_1.push([ifn, hORi.highlights.instanceFieldValues[idx]]);\r\n }\r\n });\r\n var rows = highlightDetails.append('table').selectAll(\"tr\")\r\n .data(hitTuples_1)\r\n .enter()\r\n .append(\"tr\");\r\n var cells = rows.selectAll(\"td\")\r\n .data(function (d) {\r\n return d;\r\n });\r\n cells.enter()\r\n .append(\"td\")\r\n .each(function (d) {\r\n Utils.appendFormattedElementsFromString(d3.select(this), d);\r\n })\r\n .merge(cells);\r\n cells.exit().remove();\r\n rows.exit().remove();\r\n if (hitsExist_1) {\r\n highlightDetails.style(\"display\", \"block\");\r\n }\r\n }\r\n }\r\n return hierarchyItemElem;\r\n };\r\n //returns the dom elem of one instance item for flat list rendering\r\n HierarchyNavigation.prototype.createInstanceElem = function (i) {\r\n var _this = this;\r\n var instanceElem = d3.create('div').classed('tsi-modelResult', true);\r\n var firstLine = instanceElem.append('div').classed('tsi-modelPK', true);\r\n i.highlights.name ? Utils.appendFormattedElementsFromString(firstLine, i.highlights.name) : Utils.appendFormattedElementsFromString(firstLine, Utils.getHighlightedTimeSeriesIdToDisplay(i));\r\n var secondLine = instanceElem.append('div').classed('tsi-modelHighlights', true);\r\n Utils.appendFormattedElementsFromString(secondLine, i.highlights.description && i.highlights.description.length ? i.highlights.description : 'No description');\r\n secondLine.append('br');\r\n var hitTuples = [];\r\n if (i.highlights.name) {\r\n hitTuples.push([this.getString(\"Time Series ID\"), Utils.getHighlightedTimeSeriesIdToDisplay(i)]);\r\n }\r\n i.highlights.instanceFieldNames.forEach(function (ifn, idx) {\r\n var val = i.highlights.instanceFieldValues[idx];\r\n if (_this.searchString) {\r\n if (_this.hasHits(ifn) || _this.hasHits(val)) {\r\n hitTuples.push([ifn, i.highlights.instanceFieldValues[idx]]);\r\n }\r\n }\r\n else if (val.length !== 0) {\r\n hitTuples.push([ifn, i.highlights.instanceFieldValues[idx]]);\r\n }\r\n });\r\n var rows = secondLine.append('table').selectAll(\"tr\")\r\n .data(hitTuples)\r\n .enter()\r\n .append(\"tr\");\r\n var cells = rows.selectAll(\"td\")\r\n .data(function (d) {\r\n return d;\r\n });\r\n cells.enter()\r\n .append(\"td\")\r\n .each(function (d) {\r\n Utils.appendFormattedElementsFromString(d3.select(this), d);\r\n })\r\n .merge(cells);\r\n cells.exit().remove();\r\n rows.exit().remove();\r\n return instanceElem;\r\n };\r\n return HierarchyNavigation;\r\n}(Component));\r\nfunction HierarchyNode(name, parentPath, level, cumulativeInstanceCount) {\r\n var _this = this;\r\n if (cumulativeInstanceCount === void 0) { cumulativeInstanceCount = null; }\r\n this.name = name;\r\n this.path = parentPath.concat([name]);\r\n this.expand = function () { };\r\n this.level = level;\r\n this.cumulativeInstanceCount = cumulativeInstanceCount;\r\n this.node = null;\r\n this.children = null;\r\n this.isExpanded = false;\r\n this.collapse = function () { _this.isExpanded = false; _this.node.classed('tsi-expanded', false); _this.node.selectAll('ul').remove(); };\r\n}\r\nfunction InstanceNode(tsId, name, type, hierarchyIds, highlights, level) {\r\n if (name === void 0) { name = null; }\r\n this.timeSeriesId = tsId;\r\n this.name = name;\r\n this.type = type;\r\n this.hierarchyIds = hierarchyIds;\r\n this.highlights = highlights;\r\n this.suppressDrawContextMenu = false;\r\n this.isLeaf = true;\r\n this.level = level;\r\n this.node = null;\r\n}\r\n;\r\n;\r\nexport var HierarchySelectionValues;\r\n(function (HierarchySelectionValues) {\r\n HierarchySelectionValues[\"All\"] = \"0\";\r\n HierarchySelectionValues[\"Unparented\"] = \"-1\";\r\n})(HierarchySelectionValues || (HierarchySelectionValues = {}));\r\n;\r\nexport var ViewType;\r\n(function (ViewType) {\r\n ViewType[ViewType[\"Hierarchy\"] = 0] = \"Hierarchy\";\r\n ViewType[ViewType[\"List\"] = 1] = \"List\";\r\n})(ViewType || (ViewType = {}));\r\n;\r\nexport var State;\r\n(function (State) {\r\n State[State[\"Navigate\"] = 0] = \"Navigate\";\r\n State[State[\"Search\"] = 1] = \"Search\";\r\n State[State[\"Filter\"] = 2] = \"Filter\";\r\n})(State || (State = {}));\r\n;\r\nexport default HierarchyNavigation;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { Component } from \"./Component\";\r\nimport Utils from '../Utils';\r\nvar Plot = /** @class */ (function (_super) {\r\n __extends(Plot, _super);\r\n function Plot(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.backdropRect = null;\r\n return _this;\r\n }\r\n Plot.prototype.getVisibleSeries = function (aggKey) {\r\n var _this = this;\r\n return Object.keys(this.chartComponentData.timeArrays[aggKey]).filter(function (s) {\r\n return _this.chartComponentData.isSplitByVisible(aggKey, s);\r\n });\r\n };\r\n Plot.prototype.createGradientKey = function (d, splitByIndex, i) {\r\n return d.aggregateKey.replace(/^[^a-z]+|[^\\w:.-]+/gi, \"\") + '_' + splitByIndex + '_' + i;\r\n };\r\n Plot.prototype.addGradientStops = function (d, gradient) {\r\n var _this = this;\r\n gradient.selectAll('stop').remove();\r\n var colorMap = this.chartDataOptions.valueMap;\r\n if (!d.measures) {\r\n return;\r\n }\r\n //behavior if numeric measures\r\n var allMeasuresNumeric = Object.keys(d.measures).reduce(function (p, currMeasure) {\r\n return (typeof d.measures[currMeasure]) === 'number' && p;\r\n }, true);\r\n var sumOfMeasures;\r\n if (allMeasuresNumeric) {\r\n sumOfMeasures = Object.keys(d.measures).reduce(function (p, currMeasure) {\r\n return p + d.measures[currMeasure];\r\n }, 0);\r\n if (sumOfMeasures <= 0) {\r\n return;\r\n }\r\n }\r\n var numMeasures = Object.keys(d.measures).length;\r\n Object.keys(d.measures).reduce(function (p, currMeasure, i) {\r\n var currFraction = allMeasuresNumeric ? (d.measures[currMeasure] / sumOfMeasures) : (i / numMeasures);\r\n gradient.append('stop')\r\n .attr(\"offset\", (p * 100) + \"%\")\r\n .attr(\"stop-color\", _this.getColorForValue(currMeasure))\r\n .attr(\"stop-opacity\", 1);\r\n var newFraction = allMeasuresNumeric ? (p + currFraction) : ((i + 1) / numMeasures);\r\n gradient.append('stop')\r\n .attr(\"offset\", (newFraction * 100) + \"%\")\r\n .attr(\"stop-color\", _this.getColorForValue(currMeasure))\r\n .attr(\"stop-opacity\", 1);\r\n return newFraction;\r\n }, 0);\r\n };\r\n Plot.prototype.createBackdropRect = function (isVisible) {\r\n this.backdropRect = this.aggregateGroup.selectAll('.tsi-backdropRect')\r\n .data([isVisible]);\r\n this.backdropRect.enter().append('rect')\r\n .attr('class', 'tsi-backdropRect')\r\n .attr('x', 0)\r\n .attr('y', 0)\r\n .merge(this.backdropRect)\r\n .attr('visibility', function (d) { return d ? 'visible' : 'hidden'; })\r\n .attr('width', this.x.range()[1])\r\n .attr('height', this.height);\r\n this.backdropRect.exit().remove();\r\n };\r\n Plot.prototype.getColorForValue = function (value) {\r\n return Utils.getColorForValue(this.chartDataOptions, value);\r\n };\r\n Plot.prototype.getVisibleMeasures = function (measures) {\r\n return Object.keys(measures).filter(function (measure) {\r\n return measures[measure] !== 0;\r\n });\r\n };\r\n Plot.prototype.hasData = function (d) {\r\n return d.measures && (Object.keys(d.measures).length !== 0);\r\n };\r\n return Plot;\r\n}(Component));\r\nexport { Plot };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from 'd3';\r\nimport { interpolatePath } from 'd3-interpolate-path';\r\nimport './LinePlot.scss';\r\nimport { Plot } from '../../Interfaces/Plot';\r\nimport Utils from '../../Utils';\r\nimport { DataTypes, YAxisStates } from \"../../Constants/Enums\";\r\nvar LinePlot = /** @class */ (function (_super) {\r\n __extends(LinePlot, _super);\r\n function LinePlot(svgSelection) {\r\n var _this = _super.call(this, svgSelection) || this;\r\n _this.plotDataType = DataTypes.Numeric;\r\n return _this;\r\n }\r\n LinePlot.prototype.getXPosition = function (d, x) {\r\n var bucketSize = this.chartComponentData.displayState[d.aggregateKey].bucketSize;\r\n if (bucketSize) {\r\n return (x(d.dateTime) + x((new Date(d.dateTime.valueOf() + bucketSize)))) / 2;\r\n }\r\n return x(d.dateTime);\r\n };\r\n LinePlot.prototype.createAreaPath = function (y) {\r\n var _this = this;\r\n this.areaPath = d3.area()\r\n .curve(this.chartOptions.interpolationFunction)\r\n .defined(function (d) {\r\n return (d.measures !== null) &&\r\n (d.measures[_this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)] !== null);\r\n })\r\n .x(function (d) {\r\n return _this.getXPosition(d, _this.x);\r\n })\r\n .y0(function (d) {\r\n return d.measures ? y(d.measures[_this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)]) : 0;\r\n })\r\n .y1(this.chartHeight);\r\n };\r\n // returns the next visibleAggI\r\n LinePlot.prototype.render = function (chartOptions, visibleAggI, agg, aggVisible, aggregateGroup, chartComponentData, yAxisState, chartHeight, visibleAggCount, colorMap, previousAggregateData, x, areaPath, strokeOpacity, y, yMap, defs, chartDataOptions, previousIncludeDots, yTopAndHeight, svgSelection, categoricalMouseover, categoricalMouseout, yAxisOnClick) {\r\n var _this = this;\r\n this.previousIncludeDots = previousIncludeDots;\r\n this.defs = defs;\r\n this.chartOptions = chartOptions;\r\n this.chartHeight = chartHeight;\r\n this.visibleAggCount = visibleAggCount;\r\n this.chartComponentData = chartComponentData;\r\n this.x = x;\r\n this.y = y;\r\n var aggKey = agg.aggKey;\r\n this.aggregateGroup = aggregateGroup;\r\n var yAxisHasOnClick = yAxisOnClick && typeof yAxisOnClick === \"function\";\r\n visibleAggI = yAxisState.positionInGroup;\r\n this.yTop = yTopAndHeight[0];\r\n this.height = yTopAndHeight[1];\r\n var aggY;\r\n var aggLine;\r\n var aggEnvelope;\r\n var aggGapLine;\r\n this.yAxisState = yAxisState;\r\n var yExtent = this.yAxisState.yExtent;\r\n aggY = d3.scaleLinear();\r\n aggY.range([this.height, this.chartOptions.aggTopMargin]);\r\n if (this.chartComponentData.aggHasVisibleSplitBys(aggKey)) {\r\n var yRange = (yExtent[1] - yExtent[0]) > 0 ? yExtent[1] - yExtent[0] : 1;\r\n var yOffsetPercentage = 10 / (this.chartHeight / ((this.yAxisState.axisType === YAxisStates.Overlap) ? 1 : this.visibleAggCount));\r\n var yDomainMin = this.chartOptions.isArea ?\r\n (Math.max(yExtent[0] - (yRange * yOffsetPercentage), 0)) :\r\n (yExtent[0] - (yRange * yOffsetPercentage));\r\n aggY.domain([yDomainMin, yExtent[1] + (yRange * (10 / this.chartHeight))]);\r\n }\r\n else {\r\n aggY.domain([0, 1]);\r\n yExtent = [0, 1];\r\n }\r\n aggLine = d3.line()\r\n .curve(this.chartComponentData.displayState[aggKey].interpolationFunction ? d3[this.chartComponentData.displayState[aggKey].interpolationFunction] : this.chartOptions.interpolationFunction)\r\n .defined(function (d) {\r\n return (d.measures !== null) &&\r\n (d.measures[_this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)] !== null);\r\n })\r\n .x(function (d) { return _this.getXPosition(d, _this.x); })\r\n .y(function (d) {\r\n return d.measures ? aggY(d.measures[_this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)]) : null;\r\n });\r\n aggEnvelope = d3.area()\r\n .curve(this.chartComponentData.displayState[aggKey].interpolationFunction ? d3[this.chartComponentData.displayState[aggKey].interpolationFunction] : this.chartOptions.interpolationFunction)\r\n .defined(function (d) { return (d.measures !== null) && (d.measures['min'] !== null) && (d.measures['max'] !== null); })\r\n .x(function (d) { return _this.getXPosition(d, _this.x); })\r\n .y0(function (d) { return d.measures ? aggY(d.measures['max']) : 0; })\r\n .y1(function (d) { return d.measures ? aggY(d.measures['min']) : 0; });\r\n aggGapLine = aggLine;\r\n var localY = aggY.copy();\r\n localY.range([this.yTop + this.height, this.yTop + this.chartOptions.aggTopMargin]);\r\n yMap[aggKey] = localY;\r\n var yAxis = this.aggregateGroup.selectAll(\".yAxis\")\r\n .data([aggKey]);\r\n var visibleYAxis = (aggVisible && (this.yAxisState.axisType !== YAxisStates.Shared || visibleAggI === 0));\r\n yAxis = yAxis.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"yAxis \" + (yAxisHasOnClick ? \"tsi-clickableYAxis tsi-swimLaneAxis-\" + this.chartComponentData.displayState[aggKey].aggregateExpression.swimLane : ''))\r\n .merge(yAxis)\r\n .style(\"visibility\", ((visibleYAxis && !this.chartOptions.yAxisHidden) ? \"visible\" : \"hidden\"));\r\n if (this.yAxisState.axisType === YAxisStates.Overlap) {\r\n yAxis.call(d3.axisLeft(aggY).tickFormat(Utils.formatYAxisNumber).tickValues(yExtent))\r\n .selectAll(\"text\")\r\n .attr(\"y\", function (d, j) { return (j == 0) ? (-visibleAggI * 16) : (visibleAggI * 16); })\r\n .style(\"fill\", this.chartComponentData.displayState[aggKey].color);\r\n }\r\n else {\r\n yAxis.call(d3.axisLeft(aggY).tickFormat(Utils.formatYAxisNumber)\r\n .ticks(Math.max(2, Math.ceil(this.height / (this.yAxisState.axisType === YAxisStates.Stacked ? this.visibleAggCount : 1) / 90))))\r\n .selectAll(\"text\").classed(\"standardYAxisText\", true);\r\n }\r\n // If yAxisOnClick present, attach to yAxis\r\n if (yAxisHasOnClick) {\r\n yAxis.on(\"click\", function () {\r\n yAxisOnClick();\r\n });\r\n var label_1 = document.getElementsByClassName(\"tsi-swimLaneLabel-\" + agg.swimLane)[0];\r\n if (label_1) {\r\n yAxis.on(\"mouseover\", function () {\r\n label_1.classList.add(\"tsi-axisHover\");\r\n yAxis.selectAll(\"text\").classed(\"tsi-boldYAxisText\", true);\r\n });\r\n yAxis.on(\"mouseout\", function () {\r\n label_1.classList.remove(\"tsi-axisHover\");\r\n yAxis.selectAll(\"text\").classed(\"tsi-boldYAxisText\", false);\r\n });\r\n }\r\n }\r\n yAxis.exit().remove();\r\n var guideLinesData = {\r\n x: this.x,\r\n y: aggY,\r\n visible: visibleYAxis\r\n };\r\n var splitByColors = Utils.createSplitByColors(this.chartComponentData.displayState, aggKey, this.chartOptions.keepSplitByColor);\r\n var includeDots = this.chartOptions.includeDots || this.chartComponentData.displayState[aggKey].includeDots;\r\n var self = this;\r\n var splitByGroups = this.aggregateGroup.selectAll(\".tsi-splitByGroup\")\r\n .data(Object.keys(this.chartComponentData.timeArrays[aggKey]));\r\n splitByGroups.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"tsi-splitByGroup \" + agg.aggKey)\r\n .merge(splitByGroups)\r\n .each(function (splitBy, j) {\r\n var _this = this;\r\n colorMap[aggKey + \"_\" + splitBy] = splitByColors[j];\r\n // creation of segments between each gap in the data\r\n var segments = [];\r\n var lineData = self.chartComponentData.timeArrays[aggKey][splitBy];\r\n var visibleMeasure = self.chartComponentData.getVisibleMeasure(aggKey, splitBy);\r\n for (var i = 0; i < lineData.length - 1; i++) {\r\n if (lineData[i].measures !== null && lineData[i].measures[visibleMeasure] !== null) {\r\n var scannerI = i + 1;\r\n while (scannerI < lineData.length && ((lineData[scannerI].measures == null) ||\r\n lineData[scannerI].measures[visibleMeasure] == null)) {\r\n scannerI++;\r\n }\r\n if (scannerI < lineData.length && scannerI != i + 1) {\r\n segments.push([lineData[i], lineData[scannerI]]);\r\n }\r\n i = scannerI - 1;\r\n }\r\n }\r\n var durationFunction = function (d) {\r\n var previousUndefined = previousAggregateData.get(_this) === undefined;\r\n return (self.chartOptions.noAnimate || previousUndefined) ? 0 : self.TRANSDURATION;\r\n };\r\n var gapPath = d3.select(this).selectAll(\".tsi-gapLine\")\r\n .data(segments.map(function (d) {\r\n d.inTransition = true;\r\n return d;\r\n }));\r\n gapPath.enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"tsi-valueElement tsi-gapLine\")\r\n .merge(gapPath)\r\n .style(\"visibility\", function (d) {\r\n return (self.chartComponentData.isSplitByVisible(aggKey, splitBy)) ? \"visible\" : \"hidden\";\r\n })\r\n .transition()\r\n .duration(durationFunction)\r\n .ease(d3.easeExp)\r\n .attr(\"stroke-dasharray\", \"5,5\")\r\n .attr(\"stroke\", splitByColors[j])\r\n .attrTween('d', function (d) {\r\n var previous = d3.select(this).attr('d');\r\n var current = aggLine(d);\r\n return interpolatePath(previous, current);\r\n })\r\n .on('end', function (d) {\r\n d.inTransition = false;\r\n });\r\n var path = d3.select(this).selectAll(\".tsi-valueLine\")\r\n .data([self.chartComponentData.timeArrays[aggKey][splitBy]].map(function (d) {\r\n d.inTransition = true;\r\n return d;\r\n }));\r\n path.enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"tsi-valueElement tsi-valueLine\")\r\n .merge(path)\r\n .style(\"visibility\", function (d) {\r\n return (self.chartComponentData.isSplitByVisible(aggKey, splitBy)) ? \"visible\" : \"hidden\";\r\n })\r\n .transition()\r\n .duration(durationFunction)\r\n .ease(d3.easeExp)\r\n .attr(\"stroke\", splitByColors[j])\r\n .attr(\"stroke-opacity\", self.strokeOpacity)\r\n .attrTween('d', function (d) {\r\n var previous = d3.select(this).attr('d');\r\n var current = aggLine(d);\r\n return interpolatePath(previous, current);\r\n })\r\n .on('end', function (d) {\r\n d.inTransition = false;\r\n });\r\n if (self.chartOptions.includeDots || self.chartComponentData.displayState[aggKey].includeDots) {\r\n var dots = d3.select(this).selectAll(\".tsi-valueDot\")\r\n .data(self.chartComponentData.timeArrays[aggKey][splitBy].filter(function (d) {\r\n return d && d.measures && d.measures[self.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)] !== null;\r\n }), function (d, i) {\r\n return d.dateTime.toString();\r\n });\r\n dots.enter()\r\n .append('circle')\r\n .attr('class', 'tsi-valueElement tsi-valueDot')\r\n .attr('r', 3)\r\n .merge(dots)\r\n .style(\"visibility\", function (d) {\r\n return (self.chartComponentData.isSplitByVisible(aggKey, splitBy) && d.measures) ? \"visible\" : \"hidden\";\r\n })\r\n .transition()\r\n .duration(function (d, i) {\r\n return (self.previousIncludeDots.get(this) === true) ? durationFunction(d) : 0;\r\n })\r\n .ease(d3.easeExp)\r\n .attr(\"fill\", splitByColors[j])\r\n .attr('cx', function (d) { return self.getXPosition(d, self.x); })\r\n .attr('cy', function (d) {\r\n return d.measures ? aggY(d.measures[self.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)]) : null;\r\n })\r\n .each(function () {\r\n self.previousIncludeDots.set(this, includeDots);\r\n });\r\n dots.exit().remove();\r\n }\r\n else {\r\n d3.select(this).selectAll(\".tsi-valueDot\").remove();\r\n }\r\n var envelopeData = {};\r\n if ((self.chartComponentData.displayState[aggKey].includeEnvelope || self.chartOptions.includeEnvelope) && self.chartComponentData.isPossibleEnvelope(aggKey, splitBy)) {\r\n envelopeData = self.chartComponentData.timeArrays[aggKey][splitBy].map(function (d) { return (__assign(__assign({}, d), { isEnvelope: true })); });\r\n }\r\n var envelope = d3.select(this).selectAll(\".tsi-valueEnvelope\")\r\n .data([envelopeData]);\r\n envelope.enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"tsi-valueElement tsi-valueEnvelope\")\r\n .merge(envelope)\r\n .style(\"visibility\", function (d) {\r\n return (self.chartComponentData.isSplitByVisible(aggKey, splitBy)) ? \"visible\" : \"hidden\";\r\n })\r\n .transition()\r\n .duration(durationFunction)\r\n .ease(d3.easeExp)\r\n .style(\"fill\", splitByColors[j])\r\n .attr(\"fill-opacity\", .2)\r\n .attr(\"d\", aggEnvelope);\r\n if (self.chartOptions.isArea) {\r\n self.createAreaPath(aggY);\r\n var area = d3.select(this).selectAll(\".tsi-valueArea\")\r\n .data([self.chartComponentData.timeArrays[aggKey][splitBy]]);\r\n // logic for shiny gradient fill via url()\r\n var svgId = Utils.guid();\r\n var lg = self.defs.selectAll('linearGradient')\r\n .data([self.chartComponentData.timeArrays[aggKey][splitBy]]);\r\n var gradient = lg.enter()\r\n .append('linearGradient');\r\n gradient.merge(lg)\r\n .attr('id', svgId).attr('x1', '0%').attr('x2', '0%').attr('y1', '0%').attr('y2', '100%');\r\n gradient.append('stop').attr('offset', '0%').attr('style', function () { return 'stop-color:' + splitByColors[j] + ';stop-opacity:.2'; });\r\n gradient.append('stop').attr('offset', '100%').attr('style', function () { return 'stop-color:' + splitByColors[j] + ';stop-opacity:.03'; });\r\n lg.exit().remove();\r\n area.enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"tsi-valueArea\")\r\n .merge(area)\r\n .style(\"fill\", 'url(#' + (svgId) + ')')\r\n .style(\"visibility\", function (d) {\r\n return (self.chartComponentData.isSplitByVisible(aggKey, splitBy)) ? \"visible\" : \"hidden\";\r\n })\r\n .transition()\r\n .duration(durationFunction)\r\n .ease(d3.easeExp)\r\n .attr(\"d\", self.areaPath);\r\n area.exit().remove();\r\n }\r\n gapPath.exit().remove();\r\n path.exit().remove();\r\n previousAggregateData.set(this, splitBy);\r\n });\r\n splitByGroups.exit().remove();\r\n };\r\n return LinePlot;\r\n}(Plot));\r\nexport default LinePlot;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport { Plot } from '../../Interfaces/Plot';\r\nimport Utils from '../../Utils';\r\nimport { DataTypes } from \"../../Constants/Enums\";\r\nimport { NONNUMERICTOPMARGIN, LINECHARTTOPPADDING } from \"../../Constants/Constants\";\r\nvar TOPMARGIN = 4;\r\nvar CategoricalPlot = /** @class */ (function (_super) {\r\n __extends(CategoricalPlot, _super);\r\n function CategoricalPlot(svgSelection) {\r\n var _this = _super.call(this, svgSelection) || this;\r\n _this.plotDataType = DataTypes.Categorical;\r\n return _this;\r\n }\r\n CategoricalPlot.prototype.onMouseover = function (d, rectWidth) {\r\n var _this = this;\r\n var visibleMeasures = this.getVisibleMeasures(d.measures);\r\n this.hoverRect.attr('visibility', 'visible')\r\n .attr('x', function () {\r\n return _this.x(new Date(d.dateTime));\r\n })\r\n .attr('width', rectWidth)\r\n .attr('height', Math.max(0, this.chartHeight + 1 - LINECHARTTOPPADDING))\r\n .attr('fill', function () {\r\n return visibleMeasures.length === 1 ? _this.getColorForValue(visibleMeasures[0]) : 'none';\r\n });\r\n };\r\n CategoricalPlot.prototype.onMouseout = function () {\r\n this.hoverRect.attr('visibility', 'hidden');\r\n this.categoricalMouseout();\r\n };\r\n CategoricalPlot.prototype.createHoverRect = function () {\r\n if (!this.hoverRect) {\r\n this.hoverRect = this.chartGroup.append('rect')\r\n .attr('class', 'tsi-categoricalHoverRect')\r\n .attr('y', LINECHARTTOPPADDING)\r\n .attr('height', this.chartHeight + 1);\r\n }\r\n else {\r\n this.hoverRect.raise();\r\n }\r\n };\r\n CategoricalPlot.prototype.getSeriesEndDate = function () {\r\n if (this.chartDataOptions.searchSpan) {\r\n return new Date(this.chartDataOptions.searchSpan.to);\r\n }\r\n return new Date(this.chartComponentData.toMillis);\r\n };\r\n CategoricalPlot.prototype.getBucketEndDate = function (d, i) {\r\n var _this = this;\r\n var data = this.chartComponentData.timeArrays[d.aggregateKey][d.splitBy];\r\n if (i + 1 < data.length) {\r\n return data[i + 1].dateTime;\r\n }\r\n else {\r\n var shouldRoundEnd = Utils.safeNotNullOrUndefined(function () { return _this.chartDataOptions.searchSpan; }) && Utils.safeNotNullOrUndefined(function () { return _this.chartDataOptions.searchSpan.bucketSize; });\r\n return shouldRoundEnd ? Utils.roundToMillis(this.getSeriesEndDate().valueOf(), Utils.parseTimeInput(this.chartDataOptions.searchSpan.bucketSize)) : this.getSeriesEndDate();\r\n }\r\n };\r\n CategoricalPlot.prototype.render = function (chartOptions, visibleAggI, agg, aggVisible, aggregateGroup, chartComponentData, yExtent, chartHeight, visibleAggCount, colorMap, previousAggregateData, x, areaPath, strokeOpacity, y, yMap, defs, chartDataOptions, previousIncludeDots, yTopAndHeight, chartGroup, categoricalMouseover, categoricalMouseout) {\r\n var _this = this;\r\n this.chartOptions = chartOptions;\r\n this.yTop = yTopAndHeight[0];\r\n this.height = yTopAndHeight[1];\r\n this.x = x;\r\n this.chartComponentData = chartComponentData;\r\n var aggKey = agg.aggKey;\r\n this.chartDataOptions = chartDataOptions;\r\n this.chartHeight = chartHeight;\r\n this.chartGroup = chartGroup;\r\n this.categoricalMouseover = categoricalMouseover;\r\n this.aggregateGroup = aggregateGroup;\r\n this.categoricalMouseout = categoricalMouseout;\r\n this.createBackdropRect(true);\r\n if (this.aggregateGroup.selectAll('defs').empty()) {\r\n this.defs = this.aggregateGroup.append('defs');\r\n }\r\n if (this.aggregateGroup.selectAll('.tsi-splitBysGroup').empty()) {\r\n this.splitBysGroup = this.aggregateGroup.append('g').classed('tsi-splitBysGroup', true);\r\n }\r\n var gradientData = [];\r\n var durationFunction = function (d) {\r\n var previousUndefined = previousAggregateData.get(_this) === undefined;\r\n return (self.chartOptions.noAnimate || previousUndefined) ? 0 : self.TRANSDURATION;\r\n };\r\n var self = this;\r\n this.createHoverRect();\r\n var series = this.getVisibleSeries(aggKey);\r\n var heightPerSeries = Math.max((self.chartDataOptions.height - (series.length * TOPMARGIN)) / series.length, 0);\r\n var splitByGroups = this.splitBysGroup.selectAll(\".tsi-splitByGroup\")\r\n .data(series, function (d) {\r\n return d.splitBy;\r\n });\r\n splitByGroups.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"tsi-splitByGroup \" + agg.aggKey)\r\n .merge(splitByGroups)\r\n .attr('transform', function (d, i) {\r\n return 'translate(0,' + (NONNUMERICTOPMARGIN + (i * (_this.chartDataOptions.height / series.length))) + ')';\r\n })\r\n .each(function (splitBy, j) {\r\n var data = self.chartComponentData.timeArrays[aggKey][splitBy];\r\n var categoricalBuckets = d3.select(this).selectAll(\".tsi-categoricalBucket\")\r\n .data(data);\r\n var getWidth = function (d, i) {\r\n var seriesWidth = self.x.range()[1] - self.x.range()[0];\r\n var xPos1 = Math.max(self.x(new Date(d.dateTime)), 0);\r\n var xPos2 = self.x(self.getBucketEndDate(d, i));\r\n return Math.max(xPos2 - xPos1, 1);\r\n };\r\n var categoricalBucketsEntered = categoricalBuckets.enter()\r\n .append(\"rect\")\r\n .attr(\"class\", \"tsi-valueElement tsi-categoricalBucket\")\r\n .merge(categoricalBuckets)\r\n .style(\"visibility\", function (d) {\r\n return (self.chartComponentData.isSplitByVisible(aggKey, splitBy) && self.hasData(d)) ? \"visible\" : \"hidden\";\r\n })\r\n .on('mouseover', function (event, d) {\r\n var e = categoricalBucketsEntered.nodes();\r\n var i = e.indexOf(event.currentTarget);\r\n var y = self.yTop + (j * (self.chartDataOptions.height / series.length));\r\n var x = self.x(new Date(d.dateTime)) + (getWidth(d, i));\r\n var shouldMouseover = self.categoricalMouseover(d, x, y + NONNUMERICTOPMARGIN, self.getBucketEndDate(d, i), getWidth(d, i));\r\n if (shouldMouseover) {\r\n self.onMouseover(d, getWidth(d, i));\r\n }\r\n })\r\n .on('mouseout', function () {\r\n self.onMouseout();\r\n })\r\n .attr('cursor', (self.chartDataOptions.onElementClick ? 'pointer' : 'inherit'))\r\n .on('click', function (event, d) {\r\n if (self.chartDataOptions.onElementClick) {\r\n self.chartDataOptions.onElementClick(d.aggregateKey, d.splitBy, d.dateTime.toISOString(), d.measures);\r\n }\r\n })\r\n .transition()\r\n .duration(durationFunction)\r\n .ease(d3.easeExp)\r\n .attr('height', heightPerSeries)\r\n .attr('width', getWidth)\r\n .attr('x', function (d) {\r\n return self.x(new Date(d.dateTime));\r\n })\r\n .each(function (d, i) {\r\n var gradientKey = self.createGradientKey(d, j, i);\r\n gradientData.push([gradientKey, d]);\r\n d3.select(this)\r\n .attr('fill', \"url(#\" + gradientKey + \")\");\r\n });\r\n categoricalBuckets.exit().remove();\r\n });\r\n splitByGroups.exit().remove();\r\n //corresponding linear gradients\r\n var gradients = this.defs.selectAll('linearGradient')\r\n .data(gradientData, function (d) {\r\n return d[1].splitBy;\r\n });\r\n var enteredGradients = gradients.enter()\r\n .append('linearGradient')\r\n .attr(\"x2\", \"0%\")\r\n .attr(\"y2\", \"100%\")\r\n .merge(gradients)\r\n .attr(\"id\", function (d) { return d[0]; });\r\n enteredGradients\r\n .each(function (d) {\r\n self.addGradientStops(d[1], d3.select(this));\r\n });\r\n gradients.exit().remove();\r\n };\r\n return CategoricalPlot;\r\n}(Plot));\r\nexport default CategoricalPlot;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './EventsPlot.scss';\r\nimport { Plot } from '../../Interfaces/Plot';\r\nimport Utils from '../../Utils';\r\nimport { EventElementTypes, DataTypes } from \"../../Constants/Enums\";\r\nimport { NONNUMERICTOPMARGIN, LINECHARTTOPPADDING } from \"../../Constants/Constants\";\r\nvar EventsPlot = /** @class */ (function (_super) {\r\n __extends(EventsPlot, _super);\r\n function EventsPlot(svgSelection) {\r\n var _this = _super.call(this, svgSelection) || this;\r\n _this.gradientArray = {};\r\n _this.eventOnClick = function (d) {\r\n if (_this.chartDataOptions.onElementClick) {\r\n _this.chartDataOptions.onElementClick(d.aggregateKey, d.splitBy, d.dateTime.toISOString(), d.measures);\r\n }\r\n };\r\n _this.colorFunction = function (d) {\r\n if (d.measures) {\r\n if (Object.keys(d.measures).length === 1) {\r\n return _this.getColorForValue(Object.keys(d.measures)[0]);\r\n }\r\n else {\r\n return 'grey';\r\n }\r\n }\r\n return 'none';\r\n };\r\n _this.createDateStringFunction = function (shiftMillis) {\r\n return Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, shiftMillis, null, _this.chartOptions.dateLocale);\r\n };\r\n _this.createEventElements = function (splitBy, g, splitByIndex) {\r\n var sortEvents = function () {\r\n enteredEvents.sort(function (a, b) {\r\n if (a.dateTime < b.dateTime) {\r\n return -1;\r\n }\r\n else if (a.dateTime > b.dateTime) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n };\r\n var data = _this.chartComponentData.timeArrays[_this.aggKey][splitBy];\r\n var discreteEvents = g.selectAll(\".tsi-discreteEvent\")\r\n .data(data, function (d) { return d.dateTime; });\r\n var self = _this;\r\n var enteredEvents;\r\n var shiftMillis = _this.chartComponentData.getTemporalShiftMillis(_this.aggKey);\r\n var dateStringFn = _this.createDateStringFunction(shiftMillis);\r\n switch (_this.chartDataOptions.eventElementType) {\r\n case EventElementTypes.Teardrop:\r\n if (discreteEvents.size() && discreteEvents.classed('tsi-discreteEventDiamond')) {\r\n g.selectAll('.tsi-discreteEvent').remove();\r\n discreteEvents = g.selectAll(\".tsi-discreteEvent\")\r\n .data(data, function (d) { return d.dateTime; });\r\n }\r\n enteredEvents = discreteEvents.enter()\r\n .append('path')\r\n .attr('class', 'tsi-discreteEvent tsi-valueElement')\r\n .merge(discreteEvents)\r\n .classed('tsi-discreteEventDiamond', false)\r\n .classed('tsi-discreteEventTeardrop', true)\r\n .attr('transform', function (d) {\r\n return 'translate(' + (_this.x(new Date(d.dateTime)) + _this.eventHeight / 2) + ',' + (_this.eventHeight * 1.4) + ') rotate(180)';\r\n })\r\n .attr('d', _this.teardropD(_this.eventHeight, _this.eventHeight))\r\n .attr('stroke-width', Math.min(_this.eventHeight / 2.25, 8))\r\n .attr('stroke', _this.colorFunction)\r\n .attr('fill', 'none');\r\n break;\r\n case EventElementTypes.Diamond:\r\n if (discreteEvents.size() && discreteEvents.classed('tsi-discreteEventTeardrop')) {\r\n g.selectAll('.tsi-discreteEvent').remove();\r\n discreteEvents = g.selectAll(\".tsi-discreteEvent\")\r\n .data(data, function (d) { return d.dateTime; });\r\n }\r\n enteredEvents = discreteEvents.enter()\r\n .append('rect')\r\n .attr('class', 'tsi-discreteEvent tsi-valueElement')\r\n .merge(discreteEvents)\r\n .classed('tsi-discreteEventTeardrop', false)\r\n .classed('tsi-discreteEventDiamond', true)\r\n .attr('d', 'none')\r\n .attr('transform', function (d) {\r\n return 'translate(' + _this.x(new Date(d.dateTime)) + ',0) rotate(45)';\r\n })\r\n .attr('fill', _this.colorFunction)\r\n .attr('stroke', 'none');\r\n break;\r\n }\r\n enteredEvents\r\n .attr('y', 0)\r\n .attr('x', 0)\r\n .attr('width', _this.eventHeight)\r\n .attr('height', _this.eventHeight)\r\n .on('mouseover', function (event, d) {\r\n d3.select(this).raise();\r\n self.onMouseover(d, splitByIndex);\r\n })\r\n .on('mouseout', function () {\r\n _this.onMouseout();\r\n })\r\n .on('click', function (event, d) {\r\n _this.eventOnClick(d);\r\n })\r\n .on('touchstart', function (event, d) {\r\n _this.eventOnClick(d);\r\n })\r\n .on('keydown', function (event, d) {\r\n if (event.keyCode === 9) {\r\n sortEvents();\r\n d3.select(this).node().focus();\r\n }\r\n if (event.keyCode === 32 || event.keyCode === 13) {\r\n self.eventOnClick(d);\r\n }\r\n })\r\n .attr('role', _this.chartDataOptions.onElementClick ? 'button' : null)\r\n .attr('tabindex', _this.chartDataOptions.onElementClick ? '0' : null)\r\n .attr('cursor', _this.chartDataOptions.onElementClick ? 'pointer' : 'inherit')\r\n .attr('aria-label', function (d) {\r\n if (_this.chartDataOptions.onElementClick) {\r\n var dateString = dateStringFn(d);\r\n var retString_1 = _this.getString('event in series') + \" \" + d.aggregateName + \" \" + _this.getString('at time') + \" \" + dateString + \".\";\r\n Object.keys(d.measures).forEach(function (mKey) {\r\n retString_1 += \" \" + _this.getString('measure with key') + \" \" + mKey + \" \" + _this.getString('and value') + \" \" + d.measures[mKey] + \".\";\r\n });\r\n return retString_1;\r\n }\r\n return null;\r\n })\r\n .style('visibility', function (d) {\r\n return (self.chartComponentData.isSplitByVisible(_this.aggKey, splitBy) && self.hasData(d)) ? 'visible' : 'hidden';\r\n })\r\n .each(function (d, i) {\r\n if (Object.keys(d.measures).length > 1) {\r\n var gradientKey = self.createGradientKey(d, splitByIndex, i);\r\n self.gradientData.push([gradientKey, d]);\r\n d3.select(this)\r\n .attr(self.chartDataOptions.eventElementType === EventElementTypes.Teardrop ? 'stroke' : 'fill', \"url(#\" + gradientKey + \")\");\r\n }\r\n });\r\n discreteEvents.exit().remove();\r\n };\r\n _this.shouldDrawBackdrop = function () {\r\n //check to see if this is the first aggregate within a collapsed swimlane. \r\n var lane = _this.chartComponentData.getSwimlane(_this.aggKey);\r\n if (!_this.chartOptions.swimLaneOptions || !_this.chartOptions.swimLaneOptions[lane] ||\r\n !_this.chartOptions.swimLaneOptions[lane].collapseEvents) {\r\n return true;\r\n }\r\n var eventSeriesInLane = Object.keys(_this.chartComponentData.displayState).filter(function (aggKey) {\r\n return _this.chartComponentData.getSwimlane(aggKey) === lane;\r\n });\r\n return eventSeriesInLane.indexOf(_this.aggKey) === 0;\r\n };\r\n _this.plotDataType = DataTypes.Events;\r\n return _this;\r\n }\r\n EventsPlot.prototype.onMouseover = function (d, seriesNumber) {\r\n var _this = this;\r\n var getX = function () {\r\n return _this.x(new Date(d.dateTime));\r\n };\r\n var seriesWidth = Math.ceil(this.eventHeight * Math.sqrt(2));\r\n var seriesTop = this.yTop + NONNUMERICTOPMARGIN + (seriesWidth * seriesNumber) + (seriesWidth / 2);\r\n var shouldMouseover = this.discreteEventsMouseover(d, getX() + (seriesWidth / 2), seriesTop, seriesWidth);\r\n if (!shouldMouseover) {\r\n return;\r\n }\r\n var visibleMeasures = this.getVisibleMeasures(d.measures);\r\n this.hoverLine.attr('visibility', 'visible')\r\n .attr('x1', getX)\r\n .attr('x2', getX)\r\n .attr('y1', LINECHARTTOPPADDING)\r\n .attr('y2', this.chartHeight + 1)\r\n .attr('stroke', function () {\r\n return visibleMeasures.length === 1 ? _this.getColorForValue(visibleMeasures[0]) : 'grey';\r\n });\r\n };\r\n EventsPlot.prototype.onMouseout = function () {\r\n this.hoverLine.attr('visibility', 'hidden');\r\n this.discreteEventsMouseout();\r\n };\r\n EventsPlot.prototype.createHoverLine = function () {\r\n if (!this.hoverLine) {\r\n this.hoverLine = this.chartGroup.append('line')\r\n .attr('class', 'tsi-discreteEventHoverLine')\r\n .attr('y1', LINECHARTTOPPADDING)\r\n .attr('y2', this.chartHeight + 1)\r\n .attr('pointer-events', 'none')\r\n .attr('visibility', 'hidden');\r\n }\r\n else {\r\n this.hoverLine.raise();\r\n }\r\n };\r\n EventsPlot.prototype.setEventHeight = function (visibleSeriesCount) {\r\n var useableHeight = this.height - NONNUMERICTOPMARGIN;\r\n this.eventHeight = Math.floor((useableHeight / visibleSeriesCount) / Math.sqrt(2));\r\n };\r\n EventsPlot.prototype.render = function (chartOptions, visibleAggI, agg, aggVisible, aggregateGroup, chartComponentData, yExtent, chartHeight, visibleAggCount, colorMap, previousAggregateData, x, areaPath, strokeOpacity, y, yMap, defs, chartDataOptions, previousIncludeDots, yTopAndHeight, chartGroup, discreteEventsMouseover, discreteEventsMouseout) {\r\n var _this = this;\r\n this.chartOptions = chartOptions;\r\n this.yTop = yTopAndHeight[0];\r\n this.height = yTopAndHeight[1];\r\n this.x = x;\r\n this.chartComponentData = chartComponentData;\r\n this.aggKey = agg.aggKey;\r\n this.chartDataOptions = chartDataOptions;\r\n this.chartHeight = chartHeight;\r\n this.chartGroup = chartGroup;\r\n this.aggregateGroup = aggregateGroup;\r\n this.discreteEventsMouseover = discreteEventsMouseover;\r\n this.discreteEventsMouseout = discreteEventsMouseout;\r\n this.createBackdropRect(this.shouldDrawBackdrop());\r\n if (this.aggregateGroup.selectAll('defs').empty()) {\r\n this.defs = this.aggregateGroup.append('defs');\r\n }\r\n this.createHoverLine();\r\n var series = this.getVisibleSeries(agg.aggKey);\r\n this.setEventHeight(series.length);\r\n if (this.aggregateGroup.selectAll('.tsi-splitBysGroup').empty()) {\r\n this.splitBysGroup = this.aggregateGroup.append('g').classed('tsi-splitBysGroup', true);\r\n }\r\n var self = this;\r\n var splitByGroups = this.splitBysGroup.selectAll(\".tsi-splitByGroup\")\r\n .data(series, function (d) {\r\n return d.splitBy;\r\n });\r\n this.gradientData = [];\r\n var enteredSplitByGroups = splitByGroups.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"tsi-eventsGroup tsi-splitByGroup \" + this.aggKey)\r\n .merge(splitByGroups)\r\n .attr('transform', function (d, i) {\r\n return 'translate(0,' + (+(i * (_this.chartDataOptions.height / series.length))) + ')';\r\n })\r\n .each(function (splitBy, j) {\r\n self.createEventElements(splitBy, d3.select(this), j);\r\n }).each(function () {\r\n self.themify(d3.select(this), self.chartOptions.theme);\r\n });\r\n splitByGroups.exit().remove();\r\n var gradients = this.defs.selectAll('linearGradient')\r\n .data(this.gradientData, function (d) {\r\n return d[1].splitBy;\r\n });\r\n var enteredGradients = gradients.enter()\r\n .append('linearGradient')\r\n .attr(\"x2\", \"0%\")\r\n .attr(\"y2\", \"100%\")\r\n .merge(gradients)\r\n .attr(\"id\", function (d) { return d[0]; });\r\n enteredGradients\r\n .each(function (d) {\r\n self.addGradientStops(d[1], d3.select(this));\r\n });\r\n gradients.exit().remove();\r\n };\r\n return EventsPlot;\r\n}(Plot));\r\nexport default EventsPlot;\r\n","var AxisState = /** @class */ (function () {\r\n function AxisState(axisType, yExtent, positionInGroup) {\r\n this.axisType = axisType;\r\n this.yExtent = yExtent;\r\n this.positionInGroup = positionInGroup;\r\n }\r\n return AxisState;\r\n}());\r\nexport { AxisState };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './Marker.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { MARKERVALUENUMERICHEIGHT, LINECHARTXOFFSET } from \"./../../Constants/Constants\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport Tooltip from '../Tooltip';\r\nimport { KeyCodes, ShiftTypes, DataTypes } from '../../Constants/Enums';\r\nvar MARKERSTRINGMAXLENGTH = 250;\r\nvar MARKERVALUEMAXWIDTH = 80;\r\nvar Marker = /** @class */ (function (_super) {\r\n __extends(Marker, _super);\r\n function Marker(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.tooltipMap = {};\r\n _this.labelText = '';\r\n _this.markerIsDragging = false;\r\n _this.isSeriesLabels = false;\r\n _this.ADDITIONALRIGHTSIDEOVERHANG = 12;\r\n _this.guid = Utils.guid();\r\n return _this;\r\n }\r\n Marker.prototype.getGuid = function () {\r\n return this.guid;\r\n };\r\n Marker.prototype.setMillis = function (millis) {\r\n this.timestampMillis = millis;\r\n };\r\n Marker.prototype.getMillis = function () {\r\n return this.timestampMillis;\r\n };\r\n // returns whether the string was trimmed to the max length\r\n Marker.prototype.setLabelText = function (labelText) {\r\n if (labelText.length > MARKERSTRINGMAXLENGTH) {\r\n this.labelText = labelText.slice(0, MARKERSTRINGMAXLENGTH);\r\n return true;\r\n }\r\n this.labelText = labelText;\r\n return false;\r\n };\r\n Marker.prototype.getLabelText = function () {\r\n return this.labelText;\r\n };\r\n Marker.prototype.setSeriesLabelText = function (d, text, isSeriesLabelInFocus) {\r\n text.classed('tsi-isExpanded', false);\r\n var title = text.append('h4')\r\n .attr('class', 'tsi-seriesLabelGroupName tsi-tooltipTitle');\r\n Utils.appendFormattedElementsFromString(title, d.aggregateName);\r\n var shiftTuple = this.chartComponentData.getTemporalShiftStringTuple(d.aggregateKey);\r\n var shiftString = '';\r\n if (shiftTuple !== null) {\r\n shiftString = shiftTuple[0] === ShiftTypes.startAt ? this.timeFormat(new Date(shiftTuple[1])) : shiftTuple[1];\r\n }\r\n var labelDatum = {\r\n splitBy: d.splitBy,\r\n variableAlias: this.chartComponentData.displayState[d.aggregateKey].aggregateExpression.variableAlias,\r\n timeShift: shiftString,\r\n };\r\n var subtitle = text.selectAll('.tsi-seriesLabelSeriesName').data([labelDatum]);\r\n var enteredSubtitle = subtitle.enter()\r\n .append('div')\r\n .attr('class', 'tsi-seriesLabelSeriesName tsi-tooltipSubtitle');\r\n if (labelDatum.splitBy && labelDatum.splitBy !== '') {\r\n enteredSubtitle.append('span')\r\n .classed('tsi-splitBy', true);\r\n }\r\n if (labelDatum.timeShift) {\r\n enteredSubtitle.append('span')\r\n .classed('tsi-timeShift', true);\r\n }\r\n if (labelDatum.variableAlias) {\r\n enteredSubtitle.append('span')\r\n .classed('tsi-variableAlias', true);\r\n }\r\n subtitle.exit().remove();\r\n Utils.setSeriesLabelSubtitleText(enteredSubtitle, false);\r\n };\r\n Marker.prototype.tooltipFormat = function (d, text, measureFormat, xyrMeasures, isSeriesLabelInFocus) {\r\n if (xyrMeasures === void 0) { xyrMeasures = null; }\r\n if (isSeriesLabelInFocus === void 0) { isSeriesLabelInFocus = false; }\r\n var tooltipHeight = MARKERVALUENUMERICHEIGHT;\r\n // revert to default text format if none specified\r\n if (!this.isSeriesLabels) {\r\n text.text(Utils.formatYAxisNumber(this.getValueOfVisible(d)))\r\n .style('height', tooltipHeight + 'px')\r\n .style('line-height', ((tooltipHeight - 2) + 'px')); // - 2 to account for border height\r\n }\r\n else {\r\n this.setSeriesLabelText(d, text, isSeriesLabelInFocus);\r\n }\r\n text.classed('tsi-markerValueTooltipInner', true)\r\n .style('border-color', this.colorMap[d.aggregateKey + \"_\" + d.splitBy]);\r\n };\r\n Marker.prototype.getLeft = function (d) {\r\n return Math.round(this.x(d.timestamp) + this.marginLeft);\r\n };\r\n // check to see if any marker is being dragged\r\n Marker.prototype.isMarkerDragOccuring = function () {\r\n return this.markerIsDragging;\r\n return (d3.select(this.renderTarget).selectAll('.tsi-markerContainer').filter(function (d) {\r\n return d.isDragging;\r\n }).size() > 0);\r\n };\r\n Marker.prototype.bumpMarker = function () {\r\n var _this = this;\r\n d3.select(this.renderTarget).selectAll('.tsi-markerContainer')\r\n .style('animation', 'none')\r\n .sort(function (a, b) {\r\n if (a.timestamp === _this.timestampMillis) {\r\n return 1;\r\n }\r\n if (b.timestamp === _this.timestampMillis) {\r\n return -1;\r\n }\r\n return a.timestamp < b.timestamp ? 1 : -1;\r\n });\r\n };\r\n Marker.prototype.renderMarker = function () {\r\n var _this = this;\r\n var self = this;\r\n var marker = d3.select(this.renderTarget).selectAll(\".tsi-markerContainer\")\r\n .filter(function (d) { return d.guid === _this.guid; })\r\n .data([{ guid: this.guid, timestamp: this.timestampMillis }]);\r\n this.markerContainer = marker.enter()\r\n .append('div')\r\n .attr('class', 'tsi-markerContainer')\r\n .classed('tsi-isSeriesLabels', this.isSeriesLabels)\r\n .merge(marker)\r\n .style('top', this.chartMargins.top + this.chartOptions.aggTopMargin + \"px\")\r\n .style('height', this.chartHeight - (this.chartMargins.top + this.chartMargins.bottom + this.chartOptions.aggTopMargin) + \"px\")\r\n .style('left', function (d) {\r\n return _this.getLeft(d) + \"px\";\r\n })\r\n .classed('tsi-isFlipped', function (d) {\r\n if (_this.isSeriesLabels) {\r\n return false;\r\n }\r\n return (_this.chartOptions.labelSeriesWithMarker && _this.x(d.timestamp) > (_this.x.range()[1] - MARKERVALUEMAXWIDTH));\r\n })\r\n .each(function (markerD) {\r\n if (self.isSeriesLabels) {\r\n return;\r\n }\r\n if (d3.select(this).selectAll('.tsi-markerLine').empty()) {\r\n d3.select(this).append('div')\r\n .attr('class', 'tsi-markerLine');\r\n self.markerLabel = d3.select(this).append('div')\r\n .attr('class', 'tsi-markerLabel')\r\n .on('mouseleave', function () {\r\n d3.select(this).classed('tsi-markerLabelHovered', false);\r\n });\r\n self.markerLabel.append('div')\r\n .attr('class', 'tsi-markerGrabber')\r\n .on('mouseenter', function () {\r\n self.bumpMarker();\r\n });\r\n self.markerLabel.append('div')\r\n .attr('class', 'tsi-markerLabelText')\r\n .attr('contenteditable', 'true')\r\n .text(self.labelText)\r\n .on('keydown', function (event) {\r\n if (event.keyCode === KeyCodes.Enter && !event.shiftKey) {\r\n event.preventDefault();\r\n self.closeButton.node().focus();\r\n }\r\n })\r\n .on('input', function () {\r\n var didTrim = self.setLabelText(d3.select(this).text());\r\n if (didTrim) {\r\n d3.select(this).text(self.labelText);\r\n }\r\n })\r\n .on('focus', function () {\r\n d3.select(this.parentNode).classed('tsi-markerLabelTextFocused', true);\r\n })\r\n .on('blur', function () {\r\n d3.select(this.parentNode).classed('tsi-markerLabelTextFocused', false);\r\n self.onChange(false, false, false);\r\n })\r\n .on('mousedown', function (event) {\r\n event.stopPropagation();\r\n })\r\n .on('mouseover', function () {\r\n if (!self.isMarkerDragOccuring()) {\r\n d3.select(d3.select(this).node().parentNode).classed('tsi-markerLabelHovered', true);\r\n self.bumpMarker();\r\n }\r\n });\r\n self.closeButton = self.markerLabel.append(\"button\")\r\n .attr(\"aria-label\", self.getString('Delete marker'))\r\n .classed(\"tsi-closeButton\", true)\r\n .on(\"click\", function () {\r\n self.onChange(true, false);\r\n d3.select(d3.select(this).node().parentNode.parentNode).remove();\r\n });\r\n self.timeLabel = d3.select(this).append(\"div\")\r\n .attr('class', 'tsi-markerTimeLabel');\r\n }\r\n d3.select(this).selectAll('.tsi-markerTimeLabel,.tsi-markerLine,.tsi-markerLabel')\r\n .call(d3.drag()\r\n .on('start', function (event, d) {\r\n d.isDragging = true;\r\n self.markerIsDragging = true;\r\n self.bumpMarker();\r\n })\r\n .on('drag', function (event, d) {\r\n if (d3.select(event.sourceEvent.target).classed('tsi-closeButton')) {\r\n return;\r\n }\r\n var marker = d3.select(d3.select(this).node().parentNode);\r\n var startPosition = self.x(new Date(self.timestampMillis));\r\n var newPosition = startPosition + event.x;\r\n self.timestampMillis = Utils.findClosestTime(self.x.invert(newPosition).valueOf(), self.chartComponentData.timeMap);\r\n self.setPositionsAndLabels(self.timestampMillis);\r\n })\r\n .on('end', function (event, d) {\r\n if (!d3.select(event.sourceEvent.target).classed('tsi-closeButton')) {\r\n self.onChange(false, false);\r\n }\r\n d.isDragging = false;\r\n self.markerIsDragging = false;\r\n }));\r\n });\r\n marker.exit().remove();\r\n };\r\n Marker.prototype.getValueOfVisible = function (d) {\r\n return Utils.getValueOfVisible(d, this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy));\r\n };\r\n Marker.prototype.getTooltipKey = function (d) {\r\n return d.aggregateKey + '_' + d.splitBy;\r\n };\r\n Marker.prototype.findYatX = function (x, path) {\r\n var pathParent = path.parentNode;\r\n var length_end = path.getTotalLength();\r\n var length_start = 0;\r\n var point = path.getPointAtLength((length_end + length_start) / 2);\r\n var bisection_iterations_max = 100;\r\n var bisection_iterations = 0;\r\n var error = 0.01;\r\n while (x < point.x - error || x > point.x + error) {\r\n point = path.getPointAtLength((length_end + length_start) / 2);\r\n if (x < point.x) {\r\n length_end = (length_start + length_end) / 2;\r\n }\r\n else {\r\n length_start = (length_start + length_end) / 2;\r\n }\r\n if (bisection_iterations_max < ++bisection_iterations) {\r\n break;\r\n }\r\n }\r\n var offset = path.parentNode.parentNode.transform.baseVal[0].matrix.f; // roundabout way of getting the y transform of the agg group\r\n return point.y + offset;\r\n };\r\n Marker.prototype.positionToValue = function (yPos, aggKey) {\r\n var yScale = this.yMap[aggKey];\r\n return yScale.invert(yPos);\r\n };\r\n Marker.prototype.bisectionInterpolateValue = function (millis, aggKey, splitBy, path) {\r\n if (path === null) {\r\n return null;\r\n }\r\n var yPosition = this.findYatX(this.x(millis), path);\r\n var interpolatedValue = this.positionToValue(yPosition, aggKey);\r\n var newDatum = this.createNewDatum(aggKey, splitBy, interpolatedValue);\r\n newDatum.isInterpolated = true;\r\n return newDatum;\r\n };\r\n Marker.prototype.getPath = function (aggKey, splitBy) {\r\n var selectedPaths = d3.select(this.renderTarget).selectAll('.tsi-valueLine').filter(function (d) {\r\n if (d.length) {\r\n return d[0].aggregateKey === aggKey && d[0].splitBy === splitBy;\r\n }\r\n return false;\r\n });\r\n if (selectedPaths.size() === 0) {\r\n return null;\r\n }\r\n return selectedPaths.nodes()[0];\r\n };\r\n Marker.prototype.createNewDatum = function (aggKey, splitBy, valueOfVisible) {\r\n var newDatum = {};\r\n newDatum.aggregateKey = aggKey;\r\n newDatum.splitBy = splitBy;\r\n newDatum.measures = {};\r\n newDatum.measures[this.chartComponentData.getVisibleMeasure(aggKey, splitBy)] = valueOfVisible;\r\n return newDatum;\r\n };\r\n Marker.prototype.findGapPath = function (aggKey, splitBy, millis) {\r\n var gapPath = d3.select(this.renderTarget).selectAll('.tsi-gapLine')\r\n .filter(function (d) {\r\n if (d.length === 2 && aggKey === d[0].aggregateKey && splitBy === d[0].splitBy) {\r\n return (millis > d[0].dateTime.valueOf() && millis < d[1].dateTime.valueOf());\r\n }\r\n return false;\r\n });\r\n if (gapPath.size() === 0) {\r\n return null;\r\n }\r\n return gapPath.nodes()[0];\r\n };\r\n //check if a value is within the time constrained bounds of a path\r\n Marker.prototype.inBounds = function (path, millis) {\r\n var _this = this;\r\n var filteredData = path.data()[0].filter(function (d) {\r\n return d.measures && _this.getValueOfVisible(d) !== null;\r\n });\r\n if (filteredData.length > 0) {\r\n var lowerBound = filteredData[0].dateTime.valueOf();\r\n var upperBound = filteredData[filteredData.length - 1].dateTime.valueOf();\r\n return millis >= lowerBound && millis <= upperBound;\r\n }\r\n return false;\r\n };\r\n Marker.prototype.getIntersectingPath = function (aggKey, splitBy, millis) {\r\n if (this.chartComponentData.displayState[aggKey].bucketSize) {\r\n millis = millis - (this.chartComponentData.displayState[aggKey].bucketSize / 2);\r\n }\r\n var gapPath = this.findGapPath(aggKey, splitBy, millis);\r\n if (gapPath) {\r\n return gapPath;\r\n }\r\n else {\r\n return this.inBounds(d3.select(this.getPath(aggKey, splitBy)), millis) ? this.getPath(aggKey, splitBy) : null;\r\n }\r\n };\r\n Marker.prototype.interpolateValue = function (millis, aggKey, splitBy) {\r\n var path = this.getIntersectingPath(aggKey, splitBy, millis);\r\n if (path === null) {\r\n return null;\r\n }\r\n return this.bisectionInterpolateValue(millis, aggKey, splitBy, path);\r\n };\r\n Marker.prototype.getValuesAtTime = function (closestTime) {\r\n var _this = this;\r\n var valueArray = [];\r\n var values = this.chartComponentData.timeMap[closestTime] != undefined ? this.chartComponentData.timeMap[closestTime] : [];\r\n Object.keys(this.chartComponentData.visibleTAs).forEach(function (aggKey) {\r\n Object.keys(_this.chartComponentData.visibleTAs[aggKey]).forEach(function (splitBy) {\r\n if (_this.chartComponentData.displayState[aggKey].dataType !== DataTypes.Numeric) {\r\n return;\r\n }\r\n var filteredValues = values.filter(function (v) {\r\n return (v.aggregateKey === aggKey && v.splitBy === splitBy && _this.getValueOfVisible(v) !== null);\r\n });\r\n if (filteredValues.length === 1 && (_this.getValueOfVisible(filteredValues[0]) !== null)) {\r\n valueArray.push(filteredValues[0]);\r\n }\r\n else {\r\n var interpolatedValue = _this.interpolateValue(closestTime, aggKey, splitBy);\r\n if (interpolatedValue !== null || !_this.isSeriesLabels) {\r\n valueArray.push(interpolatedValue);\r\n }\r\n else {\r\n var lastValue = _this.chartComponentData.findLastTimestampWithValue(aggKey, splitBy);\r\n if (lastValue !== null) {\r\n valueArray.push(lastValue);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return valueArray;\r\n };\r\n Marker.prototype.setValueLabels = function (closestTime) {\r\n var _this = this;\r\n var values = this.getValuesAtTime(closestTime);\r\n values = values.filter(function (d) {\r\n return d && _this.chartComponentData.getDataType(d.aggregateKey) === DataTypes.Numeric;\r\n });\r\n var self = this;\r\n var valueLabels = this.markerContainer.selectAll(\".tsi-markerValue\").data(values, function (d) {\r\n return d.aggregateKey + \"_\" + d.splitBy;\r\n });\r\n valueLabels.enter()\r\n .append(\"div\")\r\n .classed(\"tsi-markerValue\", true)\r\n .classed('tsi-seriesLabelValue', this.isSeriesLabels)\r\n .merge(valueLabels)\r\n .classed('tsi-isInterpolated', function (d) {\r\n return d.isInterpolated;\r\n })\r\n .style('top', function (d) { return _this.calcTopOfValueLabel(d) + 'px'; })\r\n .each(function (d) {\r\n var tooltipKey = self.getTooltipKey(d);\r\n var tooltip;\r\n if (self.tooltipMap[tooltipKey]) {\r\n tooltip = self.tooltipMap[tooltipKey];\r\n }\r\n else {\r\n tooltip = new Tooltip(d3.select(this));\r\n self.tooltipMap[tooltipKey] = tooltip;\r\n }\r\n tooltip.render(self.chartOptions.theme);\r\n var tooltipHeight = MARKERVALUENUMERICHEIGHT;\r\n tooltip.draw(d, self.chartComponentData, 0, MARKERVALUENUMERICHEIGHT / 2, { right: 0, left: 0, top: 0, bottom: 0 }, function (tooltipTextElement) {\r\n self.tooltipFormat(d, tooltipTextElement, null, null);\r\n }, null, 0, 0, self.colorMap[d.aggregateKey + \"_\" + d.splitBy], true);\r\n var markerValueCaret = d3.select(this).selectAll('.tsi-markerValueCaret')\r\n .data([d]);\r\n markerValueCaret.enter().append('div')\r\n .attr('class', 'tsi-markerValueCaret')\r\n .merge(markerValueCaret)\r\n .style(\"border-right-color\", function () { return self.colorMap[d.aggregateKey + \"_\" + d.splitBy]; });\r\n markerValueCaret.exit().remove();\r\n });\r\n var valueLabelsExit = valueLabels.exit();\r\n valueLabelsExit.each(function (d) {\r\n delete _this.tooltipMap[_this.getTooltipKey(d)];\r\n });\r\n valueLabelsExit.remove();\r\n };\r\n Marker.prototype.calcTopOfValueLabel = function (d) {\r\n var yScale = this.yMap[d.aggregateKey];\r\n return Math.round(yScale(this.getValueOfVisible(d)) - this.chartOptions.aggTopMargin);\r\n };\r\n Marker.prototype.getTimeFormat = function () {\r\n return Utils.timeFormat(this.chartComponentData.usesSeconds, this.chartComponentData.usesMillis, this.chartOptions.offset, this.chartOptions.is24HourTime, 0, null, this.chartOptions.dateLocale);\r\n };\r\n Marker.prototype.setTimeLabel = function (closestTime) {\r\n if (this.isSeriesLabels) {\r\n return;\r\n }\r\n var values = this.chartComponentData.timeMap[closestTime];\r\n if (values == undefined || values.length == 0) {\r\n return;\r\n }\r\n var firstValue = values[0].dateTime;\r\n var secondValue = new Date(values[0].dateTime.valueOf() + (values[0].bucketSize != null ? values[0].bucketSize : 0));\r\n this.timeLabel.text('');\r\n this.timeLabel.append('div')\r\n .attr('class', 'tsi-markerTimeLine')\r\n .text(this.timeFormat(firstValue));\r\n if (values[0].bucketSize !== null) {\r\n this.timeLabel.append('div')\r\n .attr('class', 'tsi-markerTimeLine')\r\n .text(this.timeFormat(secondValue));\r\n }\r\n var markerLeft = Number(this.markerContainer.style(\"left\").replace(\"px\", \"\"));\r\n var timeLabelWidth = Math.round(this.timeLabel.node().getBoundingClientRect().width);\r\n var minLeftPosition = this.marginLeft + LINECHARTXOFFSET;\r\n var width = this.x.range()[1] - this.x.range()[0];\r\n var maxRightPosition = width + this.marginLeft + LINECHARTXOFFSET + this.ADDITIONALRIGHTSIDEOVERHANG;\r\n var calculatedLeftPosition = markerLeft - (timeLabelWidth / 2);\r\n var calculatedRightPosition = markerLeft + (timeLabelWidth / 2);\r\n var translate = \"translateX(calc(-50% + 1px))\";\r\n if (calculatedLeftPosition < minLeftPosition) {\r\n translate = \"translateX(-\" + Math.max(0, markerLeft - minLeftPosition) + \"px)\";\r\n }\r\n if (calculatedRightPosition > maxRightPosition) {\r\n translate = \"translateX(calc(-50% + \" + (maxRightPosition - calculatedRightPosition) + \"px))\";\r\n }\r\n this.timeLabel\r\n .style(\"-webkit-tranform\", translate)\r\n .style(\"transform\", translate);\r\n };\r\n Marker.prototype.focusCloseButton = function () {\r\n if (this.closeButton) {\r\n this.closeButton.node().focus();\r\n }\r\n };\r\n Marker.prototype.isMarkerInRange = function (millis) {\r\n if (millis === void 0) { millis = this.timestampMillis; }\r\n var domain = this.x.domain();\r\n return !(millis < domain[0].valueOf() || millis > domain[1].valueOf());\r\n };\r\n Marker.prototype.destroyMarker = function () {\r\n if (this.markerContainer) {\r\n this.markerContainer.remove();\r\n }\r\n this.tooltipMap = {};\r\n this.markerContainer = null;\r\n };\r\n Marker.prototype.render = function (timestampMillis, chartOptions, chartComponentData, additionalMarkerFields) {\r\n this.chartMargins = Object.assign({}, additionalMarkerFields.chartMargins);\r\n this.chartHeight = additionalMarkerFields.chartHeight;\r\n this.timestampMillis = timestampMillis;\r\n this.chartOptions = chartOptions;\r\n this.x = additionalMarkerFields.x;\r\n this.chartComponentData = chartComponentData;\r\n this.marginLeft = additionalMarkerFields.marginLeft;\r\n this.colorMap = additionalMarkerFields.colorMap;\r\n this.timeFormat = this.getTimeFormat();\r\n this.isSeriesLabels = additionalMarkerFields.isSeriesLabels;\r\n if (additionalMarkerFields.labelText) {\r\n this.labelText = additionalMarkerFields.labelText;\r\n }\r\n this.yMap = additionalMarkerFields.yMap;\r\n if (additionalMarkerFields.onChange) { // only update onChange if passed in, otherwise maintain previous\r\n this.onChange = additionalMarkerFields.onChange;\r\n }\r\n if (!this.isMarkerInRange(this.timestampMillis)) {\r\n this.destroyMarker();\r\n return;\r\n }\r\n this.renderMarker();\r\n var closestTime = Utils.findClosestTime(this.timestampMillis, this.chartComponentData.timeMap);\r\n this.setPositionsAndLabels(closestTime);\r\n _super.prototype.themify.call(this, this.markerContainer, this.chartOptions.theme);\r\n };\r\n Marker.prototype.setPositionsAndLabels = function (millis) {\r\n if (!this.isMarkerInRange(millis)) {\r\n this.destroyMarker();\r\n return;\r\n }\r\n this.renderMarker();\r\n this.setTimeLabel(millis);\r\n this.setValueLabels(millis);\r\n };\r\n return Marker;\r\n}(Component));\r\nexport default Marker;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from 'd3';\r\nimport * as d3Voronoi from 'd3-voronoi';\r\nimport './LineChart.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { DataTypes, YAxisStates, TooltipMeasureFormat } from \"./../../Constants/Enums\";\r\nimport { LINECHARTTOPPADDING, LINECHARTCHARTMARGINS, VALUEBARHEIGHT, SERIESLABELWIDTH } from \"./../../Constants/Constants\";\r\nimport Legend from \"./../Legend\";\r\nimport { TemporalXAxisComponent } from \"./../../Interfaces/TemporalXAxisComponent\";\r\nimport { LineChartData } from \"./../../Models/LineChartData\";\r\nimport ContextMenu from '../ContextMenu';\r\nimport Tooltip from '../Tooltip';\r\nimport LinePlot from '../LinePlot';\r\nimport CategoricalPlot from '../CategoricalPlot';\r\nimport EventsPlot from '../EventsPlot';\r\nimport { AxisState } from '../../Models/AxisState';\r\nimport Marker from '../Marker';\r\nimport { swimlaneLabelConstants } from '../../Constants/Constants';\r\nvar LineChart = /** @class */ (function (_super) {\r\n __extends(LineChart, _super);\r\n function LineChart(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.minBrushWidth = 1;\r\n _this.strokeOpacity = 1;\r\n _this.nonFocusStrokeOpactiy = .3;\r\n _this.chartComponentData = new LineChartData();\r\n _this.surpressBrushTimeSet = false;\r\n _this.hasStackedButton = false;\r\n _this.stackedButton = null;\r\n _this.horizontalLabelOffset = LINECHARTCHARTMARGINS.left + swimlaneLabelConstants.leftMarginOffset;\r\n _this.markers = {};\r\n _this.seriesLabelsMarker = null;\r\n _this.markerGuidMap = {};\r\n _this.isDroppingMarker = false;\r\n _this.brushStartPosition = null;\r\n _this.brushEndPosition = null;\r\n _this.hasBrush = false;\r\n _this.isClearingBrush = false;\r\n _this.previousAggregateData = d3.local();\r\n _this.previousIncludeDots = d3.local();\r\n _this.mx = null;\r\n _this.my = null;\r\n _this.focusedAggKey = null;\r\n _this.focusedSplitby = null;\r\n _this.plotComponents = {};\r\n _this.isFirstMarkerDrop = true;\r\n _this.xOffset = 8;\r\n _this.swimlaneYExtents = {}; // mapping of swimlanes to the y extents of that swimlane\r\n _this.swimLaneContents = {};\r\n _this.resetValueElementsFocus = function () {\r\n _this.svgSelection.selectAll(\".tsi-valueElement\")\r\n .attr(\"stroke-opacity\", _this.strokeOpacity)\r\n .filter(function () {\r\n return !d3.select(this).classed(\"tsi-valueEnvelope\");\r\n })\r\n .attr(\"fill-opacity\", 1);\r\n _this.svgSelection.selectAll(\".tsi-valueEnvelope\")\r\n .attr(\"fill-opacity\", .2);\r\n Utils.revertAllSubtitleText(d3.select(_this.renderTarget).selectAll('.tsi-markerValue'));\r\n _this.focusedAggKey = null;\r\n _this.focusedSplitby = null;\r\n };\r\n _this.triggerLineFocus = function (aggKey, splitBy) {\r\n _this.focusedAggKey = null;\r\n _this.focusedSplitby = null;\r\n _this.focusOnlyHoveredSeries(aggKey, splitBy, true);\r\n };\r\n _this.focusOnlyHoveredSeries = function (aggKey, splitBy, shouldSetFocusedValues) {\r\n if (aggKey !== _this.focusedAggKey || splitBy !== _this.focusedSplitby) {\r\n var selectedFilter = Utils.createValueFilter(aggKey, splitBy);\r\n _this.focusMarkerLabel(selectedFilter, aggKey, splitBy);\r\n _this.svgSelection.selectAll(\".tsi-valueElement\")\r\n .attr(\"stroke-opacity\", _this.nonFocusStrokeOpactiy)\r\n .attr(\"fill-opacity\", .3);\r\n _this.svgSelection.selectAll(\".tsi-valueEnvelope\")\r\n .attr(\"fill-opacity\", .1);\r\n _this.svgSelection.selectAll(\".tsi-valueElement\")\r\n .filter(selectedFilter)\r\n .attr(\"stroke-opacity\", _this.strokeOpacity)\r\n .attr(\"fill-opacity\", 1);\r\n _this.svgSelection.selectAll(\".tsi-valueEnvelope\")\r\n .filter(selectedFilter)\r\n .attr(\"fill-opacity\", .3);\r\n if (shouldSetFocusedValues) {\r\n _this.focusedAggKey = aggKey;\r\n _this.focusedSplitby = splitBy;\r\n }\r\n }\r\n };\r\n _this.discreteEventsMouseover = function (d, x, y, width) {\r\n if (_this.isDroppingMarker) {\r\n return false;\r\n }\r\n _this.legendObject.triggerSplitByFocus(d.aggregateKey, d.splitBy);\r\n _this.focusOnlyHoveredSeries(d.aggregateKey, d.splitBy, true);\r\n var xPos = x;\r\n var yPos = y + _this.chartMargins.top;\r\n var yValue = _this.getValueOfVisible(d);\r\n if (_this.chartOptions.tooltip) {\r\n _this.tooltip.render(_this.chartOptions.theme);\r\n _this.tooltip.draw(d, _this.chartComponentData, xPos, y, _this.chartMargins, function (text) {\r\n _this.tooltipFormat(d, text, TooltipMeasureFormat.SingleValue);\r\n }, width, 0, 0);\r\n }\r\n else\r\n _this.tooltip.hide();\r\n return true;\r\n };\r\n _this.discreteEventsMouseout = function () {\r\n _this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n _this.resetValueElementsFocus();\r\n _this.tooltip.hide();\r\n };\r\n //returns false if supressed via isDroppingMarker, true otherwise\r\n _this.categoricalMouseover = function (d, x, y, endDate, width) {\r\n if (_this.isDroppingMarker) {\r\n return false;\r\n }\r\n _this.legendObject.triggerSplitByFocus(d.aggregateKey, d.splitBy);\r\n _this.focusOnlyHoveredSeries(d.aggregateKey, d.splitBy, true);\r\n var xPos = x;\r\n var yPos = y + _this.chartMargins.top;\r\n var yValue = _this.getValueOfVisible(d);\r\n if (_this.chartOptions.tooltip) {\r\n _this.tooltip.render(_this.chartOptions.theme);\r\n _this.tooltip.draw(d, _this.chartComponentData, xPos, y, _this.chartMargins, function (text) {\r\n d.endDate = endDate;\r\n _this.tooltipFormat(d, text, TooltipMeasureFormat.SingleValue);\r\n }, width, 0, 0);\r\n }\r\n else\r\n _this.tooltip.hide();\r\n return true;\r\n };\r\n _this.categoricalMouseout = function () {\r\n _this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n _this.resetValueElementsFocus();\r\n _this.tooltip.hide();\r\n };\r\n _this.voronoiMouseover = function (d) {\r\n //supress if the context menu is visible\r\n if (_this.contextMenu && _this.contextMenu.contextMenuVisible)\r\n return;\r\n var shiftMillis = _this.chartComponentData.getTemporalShiftMillis(d.aggregateKey);\r\n var yScale = _this.yMap[d.aggregateKey];\r\n var xValue = d.dateTime;\r\n var xPos = _this.getXPosition(d, _this.x);\r\n var yValue = _this.getValueOfVisible(d);\r\n var yPos = yScale(yValue);\r\n _this.focus.style(\"display\", \"block\");\r\n _this.focus.attr(\"transform\", \"translate(\" + xPos + \",\" + yPos + \")\");\r\n _this.focus.select('.tsi-hLine').attr(\"transform\", \"translate(\" + (-xPos) + \",0)\");\r\n _this.focus.select('.tsi-vLine').attr(\"transform\", \"translate(0,\" + (-yPos) + \")\");\r\n _this.setHorizontalValuePosAndText(d, xPos + _this.getSVGLeftOffset() + _this.chartMargins.left, xValue, shiftMillis);\r\n _this.setVerticalValueAndPosition(yValue, yPos + _this.chartMargins.top);\r\n var bucketSize = _this.chartComponentData.displayState[d.aggregateKey].bucketSize;\r\n var endValue = bucketSize ? (new Date(xValue.valueOf() + bucketSize)) : null;\r\n if (endValue) {\r\n var barWidth = _this.x(endValue) - _this.x(xValue);\r\n _this.horizontalValueBar\r\n .style('display', 'block')\r\n .attr(\"x1\", (-barWidth / 2))\r\n .attr(\"x2\", (barWidth / 2))\r\n .attr('y1', _this.chartHeight - yPos + 2)\r\n .attr('y2', _this.chartHeight - yPos + 2);\r\n }\r\n else {\r\n _this.horizontalValueBar.style('display', 'none');\r\n }\r\n if (_this.chartOptions.tooltip) {\r\n _this.tooltip.render(_this.chartOptions.theme);\r\n _this.tooltip.draw(d, _this.chartComponentData, xPos, yPos, _this.chartMargins, function (text) {\r\n _this.tooltipFormat(d, text, TooltipMeasureFormat.Enveloped);\r\n }, null, 20, 20, _this.colorMap[d.aggregateKey + \"_\" + d.splitBy]);\r\n }\r\n else\r\n _this.tooltip.hide();\r\n _this.focus.node().parentNode.appendChild(_this.focus.node());\r\n _this.legendObject.triggerSplitByFocus(d.aggregateKey, d.splitBy);\r\n /** update the y axis for in focus aggregate */\r\n if (_this.chartOptions.yAxisState === YAxisStates.Overlap) {\r\n _this.svgSelection.selectAll(\".yAxis\")\r\n .selectAll(\"text\")\r\n .style(\"fill-opacity\", .5)\r\n .classed(\"standardYAxisText\", true);\r\n _this.svgSelection.selectAll(\".yAxis\")\r\n .filter(function (yAxisAggKey) {\r\n return yAxisAggKey == d.aggregateKey;\r\n })\r\n .selectAll(\"text\")\r\n .style(\"fill-opacity\", 1)\r\n .classed(\"standardYAxisText\", false)\r\n .style(\"font-weight\", \"bold\");\r\n }\r\n if (_this.chartOptions.yAxisHidden) {\r\n _this.svgSelection.selectAll(\".yAxis\").style(\"display\", \"hidden\");\r\n }\r\n if (_this.chartOptions.xAxisHidden) {\r\n _this.svgSelection.selectAll(\".xAxis\").style(\"display\", \"none\");\r\n }\r\n _this.chartOptions.onMouseover(d.aggregateKey, d.splitBy);\r\n };\r\n _this.stickyOrUnstickySeries = function (aggKey, splitBy) {\r\n if (_this.chartComponentData.stickiedKey && _this.chartComponentData.stickiedKey.aggregateKey === aggKey &&\r\n _this.chartComponentData.stickiedKey.splitBy === splitBy) {\r\n _this.unstickySeries(aggKey, splitBy);\r\n }\r\n else {\r\n _this.stickySeries(aggKey, splitBy);\r\n }\r\n };\r\n _this.unstickySeries = function (aggKey, splitby) {\r\n if (splitby === void 0) { splitby = null; }\r\n if (_this.getDataType(aggKey) !== DataTypes.Numeric || !_this.chartOptions.shouldSticky) {\r\n return;\r\n }\r\n _this.chartComponentData.stickiedKey = null;\r\n _this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"stickied\", false);\r\n // recompute voronoi with no sticky\r\n _this.voronoiDiagram = _this.voronoi(_this.getFilteredAndSticky(_this.chartComponentData.allValues));\r\n _this.chartOptions.onUnsticky(aggKey, splitby);\r\n };\r\n _this.stickySeries = function (aggregateKey, splitBy) {\r\n if (splitBy === void 0) { splitBy = null; }\r\n if (_this.getDataType(aggregateKey) !== DataTypes.Numeric || !_this.chartOptions.shouldSticky) {\r\n return;\r\n }\r\n var filteredValues = _this.getFilteredAndSticky(_this.chartComponentData.allValues);\r\n if (filteredValues == null || filteredValues.length == 0)\r\n return;\r\n _this.focusedAggKey = null;\r\n _this.focusedSplitby = null;\r\n _this.chartComponentData.stickiedKey = {\r\n aggregateKey: aggregateKey,\r\n splitBy: (splitBy == null ? null : splitBy)\r\n };\r\n _this.legendObject.legendElement.selectAll('.tsi-splitByLabel').filter(function (filteredSplitBy) {\r\n return (d3.select(this.parentNode).datum() == aggregateKey) && (filteredSplitBy == splitBy);\r\n }).classed(\"stickied\", true);\r\n _this.voronoiDiagram = _this.voronoi(_this.getFilteredAndSticky(_this.chartComponentData.allValues));\r\n _this.chartOptions.onSticky(aggregateKey, splitBy);\r\n };\r\n _this.filteredValueExist = function () {\r\n var filteredValues = _this.getFilteredAndSticky(_this.chartComponentData.allValues);\r\n return !(filteredValues == null || filteredValues.length == 0);\r\n };\r\n _this.addMarker = function () {\r\n if (_this.isFirstMarkerDrop) {\r\n _this.isFirstMarkerDrop = false;\r\n _this.createMarkerInstructions();\r\n }\r\n _this.isDroppingMarker = !_this.isDroppingMarker;\r\n if (!_this.isDroppingMarker) {\r\n _this.destroyMarkerInstructions();\r\n return;\r\n }\r\n Utils.focusOnEllipsisButton(_this.renderTarget);\r\n var marker = new Marker(_this.renderTarget);\r\n var markerUID = Utils.guid();\r\n var onChange = _this.createOnMarkerChange(markerUID, marker);\r\n _this.activeMarker = marker;\r\n _this.markerGuidMap[markerUID] = marker;\r\n _this.renderMarker(marker, Infinity, onChange, _this.getString('Marker') + \" \" + Object.keys(_this.markerGuidMap).length);\r\n };\r\n _this.labelMouseout = function () {\r\n if (_this.svgSelection) {\r\n Utils.revertAllSubtitleText(d3.select(_this.renderTarget).selectAll('.tsi-markerValue'));\r\n _this.svgSelection.selectAll(\".tsi-valueElement\")\r\n .filter(function () { return !d3.select(this).classed(\"tsi-valueEnvelope\"); })\r\n .attr(\"stroke-opacity\", 1)\r\n .attr(\"fill-opacity\", 1);\r\n _this.svgSelection.selectAll(\".tsi-valueEnvelope\")\r\n .attr(\"fill-opacity\", .3);\r\n }\r\n };\r\n _this.labelMouseover = function (aggregateKey, splitBy) {\r\n if (splitBy === void 0) { splitBy = null; }\r\n _this.focusOnlyHoveredSeries(aggregateKey, splitBy, false);\r\n };\r\n _this.nextStackedState = function () {\r\n if (_this.chartOptions.yAxisState === YAxisStates.Stacked)\r\n return \"shared\";\r\n else if (_this.chartOptions.yAxisState === YAxisStates.Shared)\r\n return \"overlap\";\r\n else\r\n return \"stacked\";\r\n };\r\n _this.MINHEIGHT = 26;\r\n _this.chartMargins = Object.assign({}, LINECHARTCHARTMARGINS);\r\n return _this;\r\n }\r\n LineChart.prototype.LineChart = function () {\r\n };\r\n //get the left and right positions of the brush\r\n LineChart.prototype.getBrushPositions = function () {\r\n var leftPos = null;\r\n var rightPos = null;\r\n if (this.brushStartTime) {\r\n var rawLeft = this.x(this.brushStartTime);\r\n if (rawLeft >= 0 && rawLeft <= this.chartWidth)\r\n leftPos = Math.round(rawLeft + this.chartMargins.left);\r\n }\r\n if (this.brushEndTime) {\r\n var rawRight = this.x(this.brushEndTime);\r\n if (rawRight >= 0 && rawRight <= this.chartWidth)\r\n rightPos = Math.round(rawRight + this.chartMargins.left);\r\n }\r\n return {\r\n leftPos: leftPos,\r\n rightPos: rightPos\r\n };\r\n };\r\n LineChart.prototype.hideFocusElements = function () {\r\n this.focus.style('display', 'none');\r\n this.verticalValueBox.style('display', 'none');\r\n this.horizontalValueBox.style('display', 'none');\r\n };\r\n LineChart.prototype.voronoiMouseout = function (event, d) {\r\n //supress if the context menu is visible\r\n if (this.contextMenu && this.contextMenu.contextMenuVisible)\r\n return;\r\n this.hideFocusElements();\r\n this.tooltip.hide();\r\n this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n if (event && event.type != 'end') {\r\n event.stopPropagation();\r\n }\r\n this.resetValueElementsFocus();\r\n /** Update y Axis */\r\n if (this.chartOptions.yAxisState == YAxisStates.Overlap) {\r\n this.svgSelection.selectAll(\".yAxis\")\r\n .selectAll(\"text\")\r\n .style(\"fill-opacity\", 1)\r\n .classed(\"standardYAxisText\", false)\r\n .style(\"font-weight\", \"normal\");\r\n }\r\n };\r\n LineChart.prototype.createMarkerInstructions = function () {\r\n this.targetElement.selectAll(\".tsi-markerInstructions\").remove();\r\n this.targetElement.append(\"div\")\r\n .classed(\"tsi-markerInstructions\", true)\r\n .attr('role', 'alert')\r\n .attr('aria-live', 'assertive')\r\n .text(this.getString(\"Click to drop marker\") + \",\" + this.getString(\"drag to reposition\") + \".\");\r\n };\r\n LineChart.prototype.destroyMarkerInstructions = function () {\r\n this.targetElement.selectAll(\".tsi-markerInstructions\").remove();\r\n };\r\n LineChart.prototype.getMouseoverFunction = function (chartType) {\r\n if (chartType === void 0) { chartType = DataTypes.Numeric; }\r\n switch (chartType) {\r\n case DataTypes.Categorical:\r\n return this.categoricalMouseover;\r\n case DataTypes.Events:\r\n return this.discreteEventsMouseover;\r\n default:\r\n return function () { };\r\n }\r\n };\r\n LineChart.prototype.getMouseoutFunction = function (chartType) {\r\n if (chartType === void 0) { chartType = DataTypes.Numeric; }\r\n switch (chartType) {\r\n case DataTypes.Categorical:\r\n return this.categoricalMouseout;\r\n case DataTypes.Events:\r\n return this.discreteEventsMouseout;\r\n default:\r\n return function () { };\r\n }\r\n };\r\n LineChart.prototype.mismatchingChartType = function (aggKey) {\r\n if (!this.plotComponents[aggKey]) {\r\n return false;\r\n }\r\n var typeOfPlot = this.plotComponents[aggKey].plotDataType;\r\n return typeOfPlot !== this.getDataType(aggKey);\r\n };\r\n LineChart.prototype.setHorizontalValuePosAndText = function (d, xPos, xValue, shiftMillis) {\r\n var bucketSize = this.chartComponentData.displayState[d.aggregateKey].bucketSize;\r\n var endValue = bucketSize ? (new Date(xValue.valueOf() + bucketSize)) : null;\r\n this.horizontalValueBox.text('')\r\n .style('left', xPos + \"px\")\r\n .style('top', (this.chartMargins.top + this.chartHeight + VALUEBARHEIGHT) + \"px\")\r\n .style('display', 'block');\r\n this.horizontalValueBox.append('div')\r\n .attr('class', 'tsi-valueBoxText')\r\n .text(Utils.timeFormat(this.chartComponentData.usesSeconds, this.chartComponentData.usesMillis, this.chartOptions.offset, this.chartOptions.is24HourTime, shiftMillis, null, this.chartOptions.dateLocale)(xValue));\r\n if (endValue !== null) {\r\n this.horizontalValueBox.append('div')\r\n .attr('class', 'tsi-valueBoxText')\r\n .text(Utils.timeFormat(this.chartComponentData.usesSeconds, this.chartComponentData.usesMillis, this.chartOptions.offset, this.chartOptions.is24HourTime, shiftMillis, null, this.chartOptions.dateLocale)(endValue));\r\n }\r\n };\r\n LineChart.prototype.setVerticalValueAndPosition = function (yValue, yPos) {\r\n this.verticalValueBox.style('top', yPos + \"px\")\r\n .style('right', (this.chartMargins.right + this.chartWidth) + \"px\")\r\n .style('display', 'block')\r\n .text(Utils.formatYAxisNumber(yValue));\r\n };\r\n //get the extent of an array of timeValues\r\n LineChart.prototype.getYExtent = function (aggValues, isEnvelope, aggKey) {\r\n var _this = this;\r\n if (aggKey === void 0) { aggKey = null; }\r\n var extent;\r\n if (aggKey !== null && (this.chartComponentData.displayState[aggKey].yExtent !== null)) {\r\n return this.chartComponentData.displayState[aggKey].yExtent;\r\n }\r\n if (this.chartOptions.yExtent !== null) {\r\n return this.chartOptions.yExtent;\r\n }\r\n if (isEnvelope) {\r\n var filteredValues = this.getFilteredValues(aggValues);\r\n var flatValuesList = [];\r\n filteredValues.forEach(function (d) {\r\n if (_this.chartComponentData.isPossibleEnvelope(d.aggregateKey, d.splitBy)) {\r\n if (d.measures['min'] != undefined && d.measures['min'] != null) {\r\n flatValuesList.push(d.measures['min']);\r\n }\r\n if (d.measures['avg'] != undefined && d.measures['avg'] != null) {\r\n flatValuesList.push(d.measures['avg']);\r\n }\r\n if (d.measures['max'] != undefined && d.measures['max'] != null) {\r\n flatValuesList.push(d.measures['max']);\r\n }\r\n }\r\n else {\r\n var visibleMeasure = _this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy);\r\n if (d.measures[visibleMeasure] != undefined && d.measures[visibleMeasure] != null) {\r\n flatValuesList.push(d.measures[visibleMeasure]);\r\n }\r\n }\r\n });\r\n extent = d3.extent(flatValuesList);\r\n }\r\n else {\r\n extent = d3.extent(this.getFilteredValues(aggValues), function (d) {\r\n var visibleMeasure = _this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy);\r\n if (d.measures[visibleMeasure] != undefined && d.measures[visibleMeasure] != null) {\r\n return d.measures[visibleMeasure];\r\n }\r\n return null;\r\n });\r\n }\r\n if (extent[0] == undefined || extent[1] == undefined)\r\n return [0, 1];\r\n return extent;\r\n };\r\n LineChart.prototype.getFilteredValues = function (aggValues) {\r\n var _this = this;\r\n return aggValues.filter(function (d) {\r\n return (d.measures && _this.getValueOfVisible(d) !== null);\r\n });\r\n };\r\n LineChart.prototype.getFilteredAndSticky = function (aggValues) {\r\n var _this = this;\r\n var filteredValues = this.getFilteredValues(aggValues);\r\n var numericFiltered = filteredValues.filter(function (d) {\r\n return (_this.getDataType(d.aggregateKey) === DataTypes.Numeric);\r\n });\r\n if (this.chartComponentData.stickiedKey == null)\r\n return numericFiltered;\r\n return numericFiltered.filter(function (d) {\r\n return d.aggregateKey == _this.chartComponentData.stickiedKey.aggregateKey &&\r\n ((_this.chartComponentData.stickiedKey.splitBy == null) ? true :\r\n d.splitBy == _this.chartComponentData.stickiedKey.splitBy);\r\n });\r\n };\r\n LineChart.prototype.getHandleHeight = function () {\r\n return Math.min(Math.max(this.chartHeight / 2, 24), this.chartHeight + 8);\r\n };\r\n LineChart.prototype.getXPosition = function (d, x) {\r\n var bucketSize = this.chartComponentData.displayState[d.aggregateKey].bucketSize;\r\n if (bucketSize)\r\n return (x(d.dateTime) + x((new Date(d.dateTime.valueOf() + bucketSize)))) / 2;\r\n return x(d.dateTime);\r\n };\r\n LineChart.prototype.setBrushStartTime = function (startTime) {\r\n this.brushStartTime = startTime;\r\n };\r\n LineChart.prototype.setBrushEndTime = function (endTime) {\r\n this.brushEndTime = endTime;\r\n };\r\n LineChart.prototype.setBrush = function () {\r\n if (this.brushStartTime && this.brushEndTime && this.brushElem && this.brush) {\r\n var rawLeftSide = this.x(this.brushStartTime);\r\n var rawRightSide = this.x(this.brushEndTime);\r\n //if selection is out of range of brush. clear brush\r\n this.brushElem.call(this.brush.move, null);\r\n if ((rawRightSide < this.xOffset) || (rawLeftSide > (this.chartWidth - (2 * this.xOffset)))) {\r\n this.isClearingBrush = true;\r\n this.brushElem.call(this.brush.move, null);\r\n return;\r\n }\r\n var leftSide = Math.min(this.chartWidth - (2 * this.xOffset), Math.max(this.xOffset, this.x(this.brushStartTime)));\r\n var rightSide = Math.min(this.chartWidth - (2 * this.xOffset), Math.max(this.xOffset, this.x(this.brushEndTime)));\r\n this.surpressBrushTimeSet = true;\r\n this.brushStartPosition = leftSide;\r\n this.brushEndPosition = rightSide;\r\n //small adjusetment so that width is always at least 1 pixel\r\n if (rightSide - leftSide < 1) {\r\n if (rightSide + 1 > this.chartWidth - (2 * this.xOffset)) {\r\n leftSide += -1;\r\n }\r\n else {\r\n rightSide += 1;\r\n }\r\n }\r\n this.brushElem.call(this.brush.move, [leftSide, rightSide]);\r\n }\r\n };\r\n LineChart.prototype.findClosestValidTime = function (rawMillis) {\r\n var minDiff = Infinity;\r\n return Object.keys(this.chartComponentData.timeMap).reduce(function (closestValue, currValue) {\r\n var diff = Math.abs(Number(currValue) - rawMillis);\r\n if (diff < minDiff) {\r\n minDiff = diff;\r\n return Number(currValue);\r\n }\r\n return closestValue;\r\n }, Infinity);\r\n };\r\n LineChart.prototype.getMarkerMarginLeft = function () {\r\n var legendWidth = this.legendObject.legendElement.node().getBoundingClientRect().width;\r\n return this.chartMargins.left + (this.chartOptions.legend === \"shown\" || this.chartOptions.legend === \"hidden\" ? legendWidth : 0) +\r\n (this.chartOptions.legend === \"shown\" ? this.GUTTERWIDTH : 0);\r\n };\r\n LineChart.prototype.exportMarkers = function () {\r\n var _this = this;\r\n this.chartOptions.markers = Object.keys(this.markerGuidMap)\r\n .filter(function (markerGuid) { return !_this.activeMarker || _this.activeMarker.getGuid() !== markerGuid; })\r\n .map(function (markerGuid) { return [_this.markerGuidMap[markerGuid].getMillis(), _this.markerGuidMap[markerGuid].getLabelText()]; });\r\n this.chartOptions.onMarkersChange(this.chartOptions.markers);\r\n };\r\n LineChart.prototype.createOnMarkerChange = function (markerGuid, marker) {\r\n var _this = this;\r\n return function (isDeleting, droppedMarker, shouldSort) {\r\n if (shouldSort === void 0) { shouldSort = true; }\r\n if (droppedMarker) {\r\n _this.markerGuidMap[markerGuid] = marker;\r\n }\r\n else if (isDeleting) {\r\n delete _this.markerGuidMap[markerGuid];\r\n //set focus to first marker if markers exist on delete\r\n var visibleMarkers = Object.values(_this.markerGuidMap).filter(function (marker) {\r\n return marker.isMarkerInRange();\r\n });\r\n if (visibleMarkers.length !== 0) {\r\n visibleMarkers[0].focusCloseButton();\r\n }\r\n else {\r\n _this.focusOnEllipsis();\r\n }\r\n }\r\n _this.exportMarkers();\r\n if (shouldSort)\r\n _this.sortMarkers();\r\n };\r\n };\r\n LineChart.prototype.renderMarker = function (marker, millis, onChange, labelText, isSeriesLabels) {\r\n if (onChange === void 0) { onChange = null; }\r\n if (labelText === void 0) { labelText = null; }\r\n if (isSeriesLabels === void 0) { isSeriesLabels = false; }\r\n marker.render(millis, this.chartOptions, this.chartComponentData, {\r\n chartMargins: this.chartMargins,\r\n x: this.x,\r\n marginLeft: this.getMarkerMarginLeft() + (isSeriesLabels ? this.getAdditionalOffsetFromHorizontalMargin() : 0),\r\n colorMap: this.colorMap,\r\n yMap: this.yMap,\r\n onChange: onChange,\r\n chartHeight: this.height,\r\n isDropping: false,\r\n labelText: labelText,\r\n isSeriesLabels: isSeriesLabels\r\n });\r\n };\r\n LineChart.prototype.sortMarkers = function () {\r\n d3.select(this.renderTarget).selectAll(\".tsi-markerContainer\").sort(function (a, b) {\r\n return (a.timestamp < b.timestamp) ? 1 : -1;\r\n });\r\n };\r\n LineChart.prototype.getAllLinesTransitionsComplete = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var checkAllLines = function (numberOfAttempts) {\r\n if (numberOfAttempts === void 0) { numberOfAttempts = 0; }\r\n if (numberOfAttempts < 5) {\r\n setTimeout(function () {\r\n var allOutOfTransition = true;\r\n d3.select(_this.renderTarget).selectAll('.tsi-gapLine').data().forEach(function (d) {\r\n allOutOfTransition = allOutOfTransition && !d.inTransition;\r\n });\r\n d3.select(_this.renderTarget).selectAll('.tsi-valueLine').data().forEach(function (d) {\r\n allOutOfTransition = allOutOfTransition && !d.inTransition;\r\n });\r\n if (allOutOfTransition) {\r\n resolve(null);\r\n }\r\n else {\r\n checkAllLines(numberOfAttempts + 1);\r\n }\r\n }, Math.max(_this.TRANSDURATION, 250));\r\n }\r\n else {\r\n reject();\r\n }\r\n };\r\n checkAllLines(0);\r\n });\r\n };\r\n LineChart.prototype.importMarkers = function () {\r\n var _this = this;\r\n if (this.chartOptions.markers && this.chartOptions.markers.length > 0) {\r\n // delete all the old markers\r\n if (Object.keys(this.markerGuidMap).length) {\r\n Object.keys(this.markerGuidMap).forEach(function (guid) {\r\n _this.markerGuidMap[guid].destroyMarker();\r\n delete _this.markerGuidMap[guid];\r\n });\r\n }\r\n this.markerGuidMap = {};\r\n this.chartOptions.markers.forEach(function (markerValueTuples, markerIndex) {\r\n if (markerValueTuples === null || markerValueTuples === undefined) {\r\n return;\r\n }\r\n var marker = new Marker(_this.renderTarget);\r\n var markerUID = Utils.guid();\r\n var markerMillis;\r\n if (typeof markerValueTuples === 'number') {\r\n markerMillis = markerValueTuples;\r\n marker.setLabelText(_this.getString('Marker') + \" \" + (markerIndex + 1));\r\n }\r\n else {\r\n marker.setLabelText(markerValueTuples[1]);\r\n markerMillis = markerValueTuples[0];\r\n }\r\n marker.setMillis(markerMillis);\r\n _this.markerGuidMap[markerUID] = marker;\r\n });\r\n this.renderAllMarkers();\r\n this.sortMarkers();\r\n }\r\n };\r\n LineChart.prototype.createSeriesLabelsMarker = function () {\r\n this.seriesLabelsMarker = new Marker(this.renderTarget);\r\n };\r\n LineChart.prototype.renderSeriesLabelsMarker = function () {\r\n if (this.chartOptions.labelSeriesWithMarker) {\r\n this.renderMarker(this.seriesLabelsMarker, this.x.domain()[1], function () { }, null, true);\r\n }\r\n };\r\n LineChart.prototype.renderAllMarkers = function () {\r\n var _this = this;\r\n this.getAllLinesTransitionsComplete().then(function () {\r\n Object.keys(_this.markerGuidMap).forEach(function (guid) {\r\n var marker = _this.markerGuidMap[guid];\r\n var onChange = _this.createOnMarkerChange(guid, marker);\r\n _this.renderMarker(marker, marker.getMillis(), onChange);\r\n });\r\n if (_this.seriesLabelsMarker) {\r\n _this.renderSeriesLabelsMarker();\r\n }\r\n });\r\n };\r\n LineChart.prototype.focusOnEllipsis = function () {\r\n if (this.ellipsisContainer !== null) {\r\n this.ellipsisContainer.select(\".tsi-ellipsisButton\").node().focus();\r\n }\r\n };\r\n LineChart.prototype.voronoiExists = function () {\r\n return (this.getVisibleNumerics() !== 0);\r\n };\r\n LineChart.prototype.voronoiMousemove = function (mouseEvent) {\r\n if (!this.filteredValueExist() || !this.voronoiExists())\r\n return;\r\n this.mx = mouseEvent[0];\r\n this.my = mouseEvent[1];\r\n var mx = mouseEvent[0], my = mouseEvent[1];\r\n var site = this.voronoiDiagram.find(this.mx, this.my);\r\n if (!this.isDroppingMarker) {\r\n this.voronoiMouseover(site.data);\r\n }\r\n else {\r\n var rawTime = this.x.invert(mx);\r\n var closestTime = Utils.findClosestTime(rawTime.valueOf(), this.chartComponentData.timeMap);\r\n this.renderMarker(this.activeMarker, closestTime);\r\n return;\r\n }\r\n if (site.data.aggregateKey !== this.focusedAggKey || site.data.splitBy !== this.focusedSplitby) {\r\n var selectedFilter = Utils.createValueFilter(site.data.aggregateKey, site.data.splitBy);\r\n this.focusMarkerLabel(selectedFilter, site.data.aggregateKey, site.data.splitBy);\r\n this.focusOnlyHoveredSeries(site.data.aggregateKey, site.data.splitBy, true);\r\n }\r\n };\r\n LineChart.prototype.voronoiContextMenu = function (d3Event, mouseEvent) {\r\n if (!this.filteredValueExist() || !this.voronoiExists())\r\n return;\r\n var _a = d3.pointer(d3Event, mouseEvent), mx = _a[0], my = _a[1];\r\n var site = this.voronoiDiagram.find(mx, my);\r\n if (this.chartComponentData.displayState[site.data.aggregateKey].contextMenuActions &&\r\n this.chartComponentData.displayState[site.data.aggregateKey].contextMenuActions.length) {\r\n var mousePosition = d3.pointer(d3Event, this.targetElement.node());\r\n var sitePageCoords = void 0;\r\n if (this.hasBrush) {\r\n sitePageCoords = this.brushElem.node().getBoundingClientRect();\r\n }\r\n else {\r\n sitePageCoords = this.voronoiRegion.node().getBoundingClientRect();\r\n }\r\n var eventSite = { pageX: sitePageCoords.left + site[0], pageY: sitePageCoords.top + site[1] - 12 };\r\n d3Event.preventDefault();\r\n this.contextMenu.draw(this.chartComponentData, this.renderTarget, this.chartOptions, mousePosition, site.data.aggregateKey, site.data.splitBy, null, site.data.dateTime, null, eventSite);\r\n if (this.brushContextMenu) {\r\n this.brushContextMenu.hide();\r\n }\r\n this.voronoiMouseover(site.data);\r\n }\r\n };\r\n LineChart.prototype.voronoiClick = function (d3Event, mouseEvent) {\r\n var _this = this;\r\n //supress if the context menu is visible\r\n if (this.contextMenu && this.contextMenu.contextMenuVisible)\r\n return;\r\n if (!this.filteredValueExist() || !this.voronoiExists())\r\n return;\r\n if (this.brushElem && !this.isDroppingMarker)\r\n return;\r\n var _a = d3.pointer(d3Event, mouseEvent), mx = _a[0], my = _a[1];\r\n var site = this.voronoiDiagram.find(mx, my);\r\n var cDO = this.getCDOFromAggKey(site.data.aggregateKey);\r\n if (!this.isDroppingMarker) {\r\n if (site.data && cDO.onElementClick !== null) {\r\n cDO.onElementClick(site.data.aggregateKey, site.data.splitBy, site.data.dateTime.toISOString(), site.data.measures);\r\n }\r\n else {\r\n if (this.chartComponentData.stickiedKey !== null) {\r\n site = this.voronoiDiagram.find(mx, my);\r\n this.voronoiMousemove(site.data);\r\n this.unstickySeries(site.data.aggregateKey, site.data.splitBy);\r\n return;\r\n }\r\n this.stickySeries(site.data.aggregateKey, site.data.splitBy);\r\n }\r\n }\r\n else {\r\n if (!this.hasBrush) {\r\n this.isDroppingMarker = false;\r\n }\r\n }\r\n this.destroyMarkerInstructions();\r\n if (Utils.safeNotNullOrUndefined(function () { return _this.activeMarker; })) {\r\n this.activeMarker.onChange(false, true);\r\n this.exportMarkers();\r\n this.activeMarker = null;\r\n }\r\n };\r\n LineChart.prototype.getValueOfVisible = function (d) {\r\n return Utils.getValueOfVisible(d, this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy));\r\n };\r\n LineChart.prototype.brushBrush = function (event) {\r\n var handleHeight = this.getHandleHeight();\r\n this.brushElem.selectAll('.handle')\r\n .attr('height', handleHeight)\r\n .attr('y', (this.chartHeight - handleHeight) / 2);\r\n if (!event.sourceEvent) {\r\n return;\r\n }\r\n if (event.sourceEvent && event.sourceEvent.type === 'mousemove') {\r\n this.brushElem.select(\".selection\").attr(\"visibility\", \"visible\");\r\n //check boundary conditions for width of the brush\r\n if (event.selection[1] - event.selection[0] < this.minBrushWidth) {\r\n return;\r\n }\r\n else {\r\n this.brushElem.selectAll(\".handle\").attr(\"visibility\", \"visible\");\r\n }\r\n }\r\n if (this.surpressBrushTimeSet == true) {\r\n this.surpressBrushTimeSet = false;\r\n return;\r\n }\r\n if (!event.selection)\r\n return;\r\n if (this.contextMenu)\r\n this.contextMenu.hide();\r\n if (this.brushContextMenu)\r\n this.brushContextMenu.hide();\r\n var newBrushStartPosition = event.selection[0];\r\n var newBrushEndPosition = event.selection[1];\r\n if (newBrushStartPosition != this.brushStartPosition) {\r\n this.brushStartTime = this.x.invert(event.selection[0]);\r\n this.brushStartPosition = newBrushStartPosition;\r\n }\r\n if (newBrushEndPosition != this.brushEndPosition) {\r\n this.brushEndTime = this.x.invert(event.selection[1]);\r\n this.brushEndPosition = newBrushEndPosition;\r\n }\r\n if (this.chartOptions.brushMoveAction) {\r\n this.chartOptions.brushMoveAction(this.brushStartTime, this.brushEndTime);\r\n }\r\n };\r\n LineChart.prototype.brushEnd = function (d3Event, mouseEvent) {\r\n var _this = this;\r\n if (this.isClearingBrush) {\r\n this.isClearingBrush = false;\r\n if (this.brushContextMenu) {\r\n this.brushContextMenu.hide();\r\n }\r\n return;\r\n }\r\n if (d3Event && d3Event.selection == null && d3Event.sourceEvent && d3Event.sourceEvent.type == \"mouseup\" && this.chartOptions.minBrushWidth == 0) {\r\n if (this.brushContextMenu) {\r\n this.brushContextMenu.hide();\r\n }\r\n var _a = d3.pointer(d3Event, mouseEvent), mx = _a[0], my = _a[1];\r\n var site = this.voronoiDiagram.find(mx, my);\r\n var isClearingBrush = (this.brushStartPosition !== null) && (this.brushEndPosition !== null);\r\n if (this.chartComponentData.stickiedKey !== null && !this.isDroppingMarker && !isClearingBrush) {\r\n this.chartComponentData.stickiedKey = null;\r\n this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"stickied\", false);\r\n // recompute voronoi with no sticky\r\n this.voronoiDiagram = this.voronoi(this.getFilteredAndSticky(this.chartComponentData.allValues));\r\n site = this.voronoiDiagram.find(mx, my);\r\n this.voronoiMousemove(site.data);\r\n this.chartOptions.onUnsticky(site.data.aggregateKey, site.data.splitBy);\r\n return;\r\n }\r\n this.brushStartTime = null;\r\n this.brushEndTime = null;\r\n this.brushStartPosition = null;\r\n this.brushEndPosition = null;\r\n if (!this.isDroppingMarker && !isClearingBrush && !(this.contextMenu && this.contextMenu.contextMenuVisible)) {\r\n this.stickySeries(site.data.aggregateKey, site.data.splitBy);\r\n }\r\n else {\r\n this.isDroppingMarker = false;\r\n }\r\n return;\r\n }\r\n if (d3Event.selection == null) {\r\n if (!this.chartOptions.brushClearable) {\r\n d3.select(mouseEvent).transition().call(d3Event.target.move, [this.x(this.brushStartTime), this.x(this.brushEndTime)]);\r\n }\r\n return;\r\n }\r\n var transformCall = null; //if the brush needs to be transformed due to snap brush or it being too small, this is envoked\r\n var isZeroWidth = false; //clear the brush context menu if the brush has 0 width\r\n if (this.chartOptions.snapBrush) {\r\n //find the closest possible value and set to that\r\n if (this.possibleTimesArray.length > 0) {\r\n var findClosestTime = function (rawXValue) {\r\n var closestDate = null;\r\n _this.possibleTimesArray.reduce(function (prev, curr) {\r\n var prospectiveDiff = Math.abs(rawXValue - _this.x(curr));\r\n var currBestDiff = Math.abs(rawXValue - prev);\r\n if (prospectiveDiff < currBestDiff) {\r\n closestDate = curr;\r\n return _this.x(curr);\r\n }\r\n return prev;\r\n }, Infinity);\r\n return closestDate;\r\n };\r\n var newBrushStartTime = findClosestTime(d3Event.selection[0]);\r\n var newBrushEndTime = findClosestTime(d3Event.selection[1]);\r\n if (newBrushStartTime != this.brushStartTime || newBrushEndTime != this.brushEndTime) {\r\n this.brushStartTime = newBrushStartTime;\r\n this.brushEndTime = newBrushEndTime;\r\n this.brushStartPosition = this.x(this.brushStartTime);\r\n this.brushEndPosition = this.x(this.brushEndTime);\r\n transformCall = function () { return d3.select(mouseEvent).transition().call(d3Event.target.move, [_this.x(_this.brushStartTime), _this.x(_this.brushEndTime)]); };\r\n isZeroWidth = this.x(this.brushStartTime) == this.x(this.brushEndTime);\r\n }\r\n }\r\n }\r\n if (d3Event.selection[1] - d3Event.selection[0] < this.minBrushWidth) {\r\n var rightSide_1 = Math.min(d3Event.selection[0] + this.minBrushWidth, this.x.range()[1]);\r\n transformCall = function () { return d3.select(mouseEvent).transition().call(d3Event.target.move, [rightSide_1 - _this.minBrushWidth, rightSide_1]); };\r\n isZeroWidth = (rightSide_1 - this.minBrushWidth == rightSide_1);\r\n }\r\n if (this.chartOptions.brushMoveEndAction && (d3Event.sourceEvent && d3Event.sourceEvent.type == 'mouseup')) {\r\n this.chartOptions.brushMoveEndAction(this.brushStartTime, this.brushEndTime);\r\n }\r\n if (this.chartOptions.brushContextMenuActions && this.chartOptions.autoTriggerBrushContextMenu &&\r\n (d3Event.sourceEvent && d3Event.sourceEvent.type == 'mouseup')) {\r\n if (!this.chartOptions.brushContextMenuActions || this.chartOptions.brushContextMenuActions.length == 0)\r\n return;\r\n var mousePosition = d3.pointer(d3Event, this.targetElement.node());\r\n //constrain the mouse position to the renderTarget\r\n var boundingCRect = this.targetElement.node().getBoundingClientRect();\r\n var correctedMousePositionX = Math.min(boundingCRect.width, Math.max(mousePosition[0], 0));\r\n var correctedMousePositionY = Math.min(boundingCRect.height, Math.max(mousePosition[1], 0));\r\n var correctedMousePosition = [correctedMousePositionX, correctedMousePositionY];\r\n this.brushContextMenu.draw(this.chartComponentData, this.renderTarget, this.chartOptions, correctedMousePosition, null, null, null, this.brushStartTime, this.brushEndTime);\r\n }\r\n if (transformCall) {\r\n transformCall();\r\n if (this.brushContextMenu && isZeroWidth) {\r\n this.brushContextMenu.hide();\r\n }\r\n }\r\n };\r\n LineChart.prototype.focusMarkerLabel = function (filterFunction, aggKey, splitBy) {\r\n Utils.revertAllSubtitleText(d3.select(this.renderTarget).selectAll(\".tsi-markerValue\"), .2);\r\n d3.select(this.renderTarget).selectAll(\".tsi-markerValue\")\r\n .filter(filterFunction)\r\n .style(\"opacity\", 1)\r\n .classed('tsi-isExpanded', true)\r\n .each(function () {\r\n Utils.setSeriesLabelSubtitleText(d3.select(this).selectAll('.tsi-tooltipSubtitle'), true);\r\n });\r\n d3.select(this.renderTarget).selectAll(\".tsi-markerContainer\").each(function () {\r\n d3.select(this).selectAll(\".tsi-markerValue\").sort(function (a, b) {\r\n return (a.aggregateKey == aggKey && (splitBy == null || splitBy == a.splitBy)) ? 1 : -1;\r\n });\r\n });\r\n };\r\n LineChart.prototype.drawBrushRange = function () {\r\n if (this.chartOptions.brushRangeVisible) {\r\n if (this.targetElement.select('.tsi-rangeTextContainer').empty() && (this.brushStartTime || this.brushEndTime)) {\r\n var rangeTextContainer = this.targetElement.append(\"div\")\r\n .attr(\"class\", \"tsi-rangeTextContainer\");\r\n }\r\n this.updateBrushRange();\r\n }\r\n };\r\n LineChart.prototype.getSVGLeftOffset = function () {\r\n return this.chartOptions.legend === 'shown' ? (this.width - this.svgSelection.node().getBoundingClientRect().width) : 0;\r\n };\r\n LineChart.prototype.updateBrushRange = function () {\r\n var svgLeftOffset = this.getSVGLeftOffset();\r\n if (!(this.brushStartTime || this.brushEndTime)) {\r\n this.deleteBrushRange();\r\n return;\r\n }\r\n var rangeText = Utils.rangeTimeFormat(this.brushEndTime.valueOf() - this.brushStartTime.valueOf());\r\n var rangeTextContainer = this.targetElement.select('.tsi-rangeTextContainer');\r\n var leftPos = this.chartMargins.left +\r\n Math.min(Math.max(0, this.x(this.brushStartTime)), this.x.range()[1]) + svgLeftOffset;\r\n var rightPos = this.chartMargins.left +\r\n Math.min(Math.max(0, this.x(this.brushEndTime)), this.x.range()[1]) + svgLeftOffset;\r\n rangeTextContainer\r\n .text(rangeText)\r\n .style(\"left\", Math.max(8, Math.round((leftPos + rightPos) / 2)) + \"px\")\r\n .style(\"top\", (this.chartMargins.top + this.chartOptions.aggTopMargin) + 'px');\r\n if (this.chartOptions.color) {\r\n rangeTextContainer\r\n .style('background-color', this.chartOptions.color)\r\n .style('color', 'white');\r\n }\r\n var calcedWidth = rangeTextContainer.node().getBoundingClientRect().width;\r\n if (this.chartOptions.isCompact && (rightPos - leftPos) < calcedWidth) {\r\n rangeTextContainer.style('visibility', 'hidden');\r\n }\r\n else {\r\n rangeTextContainer.style('visibility', 'visible');\r\n }\r\n };\r\n LineChart.prototype.deleteBrushRange = function () {\r\n this.targetElement.select('.tsi-rangeTextContainer').remove();\r\n };\r\n LineChart.prototype.getYExtents = function () {\r\n return this.chartComponentData.yExtents;\r\n };\r\n LineChart.prototype.clearBrush = function () {\r\n this.svgSelection.select('.svgGroup').select(\".brushElem\").call(this.brush.move, null);\r\n this.deleteBrushRange();\r\n if (this.brushContextMenu) {\r\n this.brushContextMenu.hide();\r\n }\r\n };\r\n LineChart.prototype.getVisibleNumerics = function () {\r\n var _this = this;\r\n var visibleGroups = this.data.filter(function (agg) { return _this.chartComponentData.displayState[agg.aggKey][\"visible\"]; });\r\n var visibleCDOs = this.aggregateExpressionOptions.filter(function (cDO) { return _this.chartComponentData.displayState[cDO.aggKey][\"visible\"]; });\r\n return visibleGroups.filter(function (aggKey, i) {\r\n return visibleCDOs[i].dataType === DataTypes.Numeric;\r\n }).length;\r\n };\r\n LineChart.prototype.getSwimlaneOffsets = function (linechartTopPadding, visibleGroups, visibleCDOs, heightPerNumeric, swimLaneSet) {\r\n var _this = this;\r\n var cumulativeOffset = LINECHARTTOPPADDING;\r\n //initialize to null and set while going through swimLanes\r\n var visibleGroupEndValues = visibleGroups.map(function () { return null; });\r\n Object.keys(swimLaneSet).sort(function (a, b) { return (Number(a) <= Number(b) ? -1 : 1); }).forEach(function (swimLaneStr) {\r\n // find all numerics and set to cumulative offset/height per non numeric\r\n var swimlane = Number(swimLaneStr);\r\n var hasNumeric = false;\r\n visibleCDOs.forEach(function (aggGroup, i) {\r\n if (aggGroup.swimLane === swimlane && aggGroup.dataType === DataTypes.Numeric) {\r\n hasNumeric = true;\r\n visibleGroupEndValues[i] = [cumulativeOffset, heightPerNumeric];\r\n }\r\n });\r\n // find all non-numerics and set their offset/heights\r\n var swimLaneOffset = hasNumeric ? heightPerNumeric : 0;\r\n var currGroupsHeight = 0;\r\n if (_this.chartOptions.swimLaneOptions && _this.chartOptions.swimLaneOptions[swimlane] && _this.chartOptions.swimLaneOptions[swimlane].collapseEvents) {\r\n swimLaneOffset += _this.getEventsCollapsedSwimlaneHeight(visibleCDOs, swimlane);\r\n visibleCDOs.forEach(function (aggGroup, i) {\r\n if (aggGroup.swimLane === swimlane) {\r\n visibleGroupEndValues[i] = [cumulativeOffset, _this.getEventsCollapsedSwimlaneHeight(visibleCDOs, swimlane)];\r\n }\r\n });\r\n }\r\n else {\r\n visibleCDOs.forEach(function (aggGroup, i) {\r\n if (aggGroup.swimLane === swimlane && aggGroup.dataType !== DataTypes.Numeric) {\r\n var currGroupsHeight_1 = Utils.getNonNumericHeight(aggGroup.height);\r\n visibleGroupEndValues[i] = [swimLaneOffset + cumulativeOffset, currGroupsHeight_1];\r\n swimLaneOffset += currGroupsHeight_1;\r\n }\r\n });\r\n }\r\n cumulativeOffset += swimLaneOffset;\r\n });\r\n return visibleGroupEndValues;\r\n };\r\n LineChart.prototype.setSwimLaneYExtents = function (visibleGroups, visibleCDOs, swimLanes, swimLaneOptions) {\r\n var _this = this;\r\n var extents = {};\r\n swimLanes.forEach(function (lane) {\r\n var extent = [];\r\n // Check if swim lane options sets y-axis extents for this lane. If so use that\r\n // value for yExtents.\r\n if (swimLaneOptions && swimLaneOptions[lane] && swimLaneOptions[lane].yExtent) {\r\n extents[lane] = swimLaneOptions[lane].yExtent;\r\n return;\r\n }\r\n visibleGroups.forEach(function (aggGroup, i) {\r\n var cDO = visibleCDOs[i];\r\n if (cDO.dataType !== DataTypes.Numeric) {\r\n return;\r\n }\r\n var aggValues = [];\r\n if (cDO.swimLane === lane) {\r\n var aggKey_1 = cDO.aggKey;\r\n Object.keys(_this.chartComponentData.visibleTAs[aggKey_1]).forEach(function (splitBy) {\r\n aggValues = aggValues.concat(_this.chartComponentData.visibleTAs[aggKey_1][splitBy]);\r\n });\r\n var yExtent = _this.getYExtent(aggValues, _this.chartComponentData.displayState[aggKey_1].includeEnvelope ?\r\n _this.chartComponentData.displayState[aggKey_1].includeEnvelope :\r\n _this.chartOptions.includeEnvelope, aggKey_1);\r\n extent = d3.extent(yExtent.concat(extent));\r\n extents[lane] = extent;\r\n }\r\n });\r\n });\r\n this.swimlaneYExtents = extents;\r\n };\r\n LineChart.prototype.getEventsCollapsedSwimlaneHeight = function (visibleCDOs, swimlane) {\r\n // if a swimlane has collapsed events, the events height impact is the largest height of a visible events group in the swimlane\r\n var rawHeight = visibleCDOs.reduce(function (tallest, currGroup) {\r\n if (currGroup.dataType === DataTypes.Events && currGroup.swimLane === swimlane) {\r\n return Math.max(tallest, currGroup.height);\r\n }\r\n return tallest;\r\n }, 0);\r\n return rawHeight !== 0 ? Utils.getNonNumericHeight(rawHeight) : 0;\r\n };\r\n //returns an array of tuples of y offset and height for each visible aggregate group \r\n LineChart.prototype.createYOffsets = function () {\r\n var _this = this;\r\n var visibleGroups = this.data.filter(function (agg) { return _this.chartComponentData.displayState[agg.aggKey][\"visible\"]; });\r\n var visibleCDOs = this.aggregateExpressionOptions.filter(function (cDO) { return _this.chartComponentData.displayState[cDO.aggKey][\"visible\"]; });\r\n var visibleNumericCount;\r\n var swimLaneSet = {};\r\n visibleCDOs.forEach(function (aEO, i) {\r\n if (aEO.swimLane === null) {\r\n aEO.swimLane = i + 1;\r\n }\r\n });\r\n visibleCDOs.forEach(function (cDO) {\r\n swimLaneSet[cDO.swimLane] = swimLaneSet[cDO.swimLane] || (cDO.dataType === DataTypes.Numeric);\r\n });\r\n visibleNumericCount = Object.keys(swimLaneSet).reduce(function (visibleCount, swimLane) {\r\n return visibleCount + (swimLaneSet[swimLane] ? 1 : 0);\r\n }, 0);\r\n var countNumericLanes = visibleNumericCount;\r\n var linechartTopPadding = this.chartOptions.isArea ? 0 : LINECHARTTOPPADDING;\r\n var useableHeight = this.chartHeight - linechartTopPadding;\r\n var fixedEventsHeight = 0;\r\n if (this.chartOptions.swimLaneOptions) {\r\n Object.keys(this.chartOptions.swimLaneOptions).forEach(function (swimlaneKey) {\r\n var swimlane = Number(swimlaneKey);\r\n var sLO = _this.chartOptions.swimLaneOptions[swimlane];\r\n if (sLO.collapseEvents) {\r\n var swimlaneHeight = _this.getEventsCollapsedSwimlaneHeight(visibleCDOs, swimlane);\r\n fixedEventsHeight += swimlaneHeight;\r\n }\r\n });\r\n }\r\n var heightNonNumeric = visibleCDOs.reduce(function (sumPrevious, currGroup, i) {\r\n if (currGroup.dataType === DataTypes.Events && _this.chartOptions.swimLaneOptions && _this.chartOptions.swimLaneOptions[currGroup.swimLane] && _this.chartOptions.swimLaneOptions[currGroup.swimLane].collapseEvents) {\r\n return sumPrevious;\r\n }\r\n return sumPrevious + (currGroup.dataType !== DataTypes.Numeric ? Utils.getNonNumericHeight(currGroup.height) : 0);\r\n }, 0);\r\n heightNonNumeric += fixedEventsHeight;\r\n var heightPerNumeric = (useableHeight - heightNonNumeric) / countNumericLanes;\r\n this.setSwimLaneYExtents(visibleGroups, visibleCDOs, Object.keys(swimLaneSet)\r\n .filter(function (lane) { return swimLaneSet[lane]; })\r\n .map(function (stringLane) { return Number(stringLane); }), this.chartOptions.swimLaneOptions);\r\n return this.getSwimlaneOffsets(linechartTopPadding, visibleGroups, visibleCDOs, heightPerNumeric, swimLaneSet);\r\n };\r\n LineChart.prototype.heightNonNumeric = function () {\r\n var _this = this;\r\n var visibleCDOs = this.aggregateExpressionOptions.filter(function (agg) { return _this.chartComponentData.displayState[agg.aggKey][\"visible\"]; });\r\n return visibleCDOs.reduce(function (sumPrevious, currGroup) {\r\n return sumPrevious + (currGroup.dataType !== DataTypes.Numeric ? Utils.getNonNumericHeight(currGroup.height) : 0);\r\n }, 0);\r\n };\r\n LineChart.prototype.getGroupYExtent = function (aggKey, aggVisible, aggValues, yExtent) {\r\n if ((this.chartOptions.yAxisState === YAxisStates.Shared) || (Object.keys(this.chartComponentData.timeArrays)).length < 2 || !aggVisible) {\r\n yExtent = this.getYExtent(this.chartComponentData.allNumericValues, this.chartComponentData.displayState[aggKey].includeEnvelope ?\r\n this.chartComponentData.displayState[aggKey].includeEnvelope :\r\n this.chartOptions.includeEnvelope, null);\r\n }\r\n else if (this.chartComponentData.aggHasVisibleSplitBys(aggKey)) {\r\n yExtent = this.getYExtent(aggValues, this.chartComponentData.displayState[aggKey].includeEnvelope ?\r\n this.chartComponentData.displayState[aggKey].includeEnvelope :\r\n this.chartOptions.includeEnvelope, aggKey);\r\n }\r\n else {\r\n yExtent = [0, 1];\r\n }\r\n return yExtent;\r\n };\r\n LineChart.prototype.getAggAxisType = function (agg) {\r\n if (this.chartOptions.yAxisState === YAxisStates.Stacked) {\r\n if (this.chartOptions.swimLaneOptions && this.chartOptions.swimLaneOptions[agg.swimLane] && this.chartOptions.swimLaneOptions[agg.swimLane].yAxisType) {\r\n return this.chartOptions.swimLaneOptions[agg.swimLane].yAxisType;\r\n }\r\n else {\r\n return YAxisStates.Shared;\r\n }\r\n }\r\n return this.chartOptions.yAxisState;\r\n };\r\n LineChart.prototype.adjustSwimLanes = function () {\r\n if (this.chartOptions.yAxisState === YAxisStates.Shared || this.chartOptions.yAxisState === YAxisStates.Overlap) {\r\n this.aggregateExpressionOptions.forEach(function (aEO) {\r\n aEO.swimLane = 0;\r\n });\r\n // consolidate horizontal markers\r\n if (this.chartOptions.swimLaneOptions) {\r\n var horizontalMarkers_1 = [];\r\n Object.values(this.chartOptions.swimLaneOptions).forEach(function (lane) {\r\n horizontalMarkers_1.push.apply(horizontalMarkers_1, lane.horizontalMarkers);\r\n });\r\n this.chartOptions.swimLaneOptions = { 0: { yAxisType: this.chartOptions.yAxisState, horizontalMarkers: horizontalMarkers_1 } };\r\n }\r\n }\r\n else {\r\n var minimumPresentSwimLane_1 = this.aggregateExpressionOptions.reduce(function (currMin, aEO) {\r\n return Math.max(aEO.swimLane, currMin);\r\n }, 0);\r\n this.aggregateExpressionOptions.forEach(function (aEO) {\r\n if (aEO.swimLane === null) {\r\n aEO.swimLane = ++minimumPresentSwimLane_1;\r\n }\r\n });\r\n }\r\n };\r\n LineChart.prototype.overwriteSwimLanes = function () {\r\n var _this = this;\r\n this.aggregateExpressionOptions.forEach(function (aEO, i) {\r\n _this.aggregateExpressionOptions[i].swimLane = _this.originalSwimLanes[i];\r\n });\r\n this.chartOptions.swimLaneOptions = this.originalSwimLaneOptions;\r\n };\r\n LineChart.prototype.getHorizontalMarkersWithYScales = function () {\r\n var _this = this;\r\n var visibleCDOs = this.aggregateExpressionOptions.filter(function (cDO) { return _this.chartComponentData.displayState[cDO.aggKey][\"visible\"]; });\r\n var markerList = [];\r\n var pushMarker = function (cDO, marker, markerList) {\r\n var _a, _b;\r\n if (_this.chartOptions.yAxisState === YAxisStates.Overlap) {\r\n return;\r\n }\r\n var domain = _this.chartOptions.yAxisState === YAxisStates.Stacked ?\r\n _this.swimlaneYExtents[cDO.swimLane] :\r\n _this.swimlaneYExtents[0];\r\n // filter out markers not in the y range of that lane and in lanes that have overlap axis\r\n if (domain &&\r\n ((_b = (_a = _this.chartOptions.swimLaneOptions) === null || _a === void 0 ? void 0 : _a[cDO.swimLane]) === null || _b === void 0 ? void 0 : _b.yAxisType) !== YAxisStates.Overlap &&\r\n marker.value >= domain[0] &&\r\n marker.value <= domain[1]) {\r\n markerList.push(__assign({ yScale: _this.yMap[cDO.aggKey] }, marker));\r\n }\r\n };\r\n visibleCDOs.forEach(function (cDO) {\r\n cDO.horizontalMarkers.forEach(function (horizontalMarkerParams) {\r\n pushMarker(cDO, horizontalMarkerParams, markerList);\r\n });\r\n });\r\n // find a visible CDO for a swimlane \r\n var findFirstVisibleCDO = function (swimlaneNumber) {\r\n return visibleCDOs.find(function (cDO) {\r\n return (cDO.swimLane === swimlaneNumber);\r\n });\r\n };\r\n if (this.chartOptions.yAxisState !== YAxisStates.Overlap && this.chartOptions.swimLaneOptions) {\r\n Object.keys(this.chartOptions.swimLaneOptions).forEach(function (swimlaneNumber) {\r\n var _a;\r\n var swimlaneOptions = _this.chartOptions.swimLaneOptions[swimlaneNumber];\r\n (_a = swimlaneOptions.horizontalMarkers) === null || _a === void 0 ? void 0 : _a.forEach(function (horizontalMarkerParams) {\r\n var firstVisibleCDO = findFirstVisibleCDO(Number(swimlaneNumber));\r\n if (firstVisibleCDO) {\r\n pushMarker(firstVisibleCDO, horizontalMarkerParams, markerList);\r\n }\r\n });\r\n });\r\n }\r\n return markerList;\r\n };\r\n // having horizontal markers present should add additional right hand margin to allow space for series labels \r\n LineChart.prototype.getAdditionalOffsetFromHorizontalMargin = function () {\r\n return this.getHorizontalMarkersWithYScales().length ? 16 : 0;\r\n };\r\n LineChart.prototype.drawHorizontalMarkers = function () {\r\n var markerList = this.getHorizontalMarkersWithYScales();\r\n var self = this;\r\n var markerContainers = this.svgSelection.select('.svgGroup').selectAll('.tsi-horizontalMarker')\r\n .data(markerList);\r\n markerContainers\r\n .enter()\r\n .append('g')\r\n .merge(markerContainers)\r\n .attr('class', 'tsi-horizontalMarker')\r\n .attr(\"transform\", function (marker) {\r\n return \"translate(\" + 0 + \",\" + marker.yScale(marker.value) + \")\";\r\n })\r\n .each(function (marker) {\r\n var valueText = d3.select(this)\r\n .selectAll('.tsi-horizontalMarkerText')\r\n .data([marker.value]);\r\n valueText\r\n .enter()\r\n .append('text')\r\n .merge(valueText)\r\n .attr('class', 'tsi-horizontalMarkerText')\r\n .attr('x', self.chartWidth)\r\n .attr('y', -4)\r\n .text(function (value) { return value; });\r\n valueText.exit().remove();\r\n var valueLine = d3.select(this)\r\n .selectAll('.tsi-horizontalMarkerLine')\r\n .data([marker]);\r\n valueLine\r\n .enter()\r\n .append('line')\r\n .merge(valueLine)\r\n .attr('class', 'tsi-horizontalMarkerLine')\r\n .attr('stroke', function (marker) { return marker.color; })\r\n .attr('x1', 0)\r\n .attr('y1', 0)\r\n .attr('x2', self.chartWidth)\r\n .attr('y2', 0);\r\n valueLine.exit().remove();\r\n });\r\n markerContainers.exit().remove();\r\n };\r\n LineChart.prototype.createSwimlaneLabels = function (offsetsAndHeights, visibleCDOs) {\r\n var _this = this;\r\n // swimLaneLabels object contains data needed to render each lane label\r\n var swimLaneLabels = {};\r\n /*\r\n The logic below constructs swimlane labels. The first aggregate found in each\r\n lane is used to position that lanes label. Numeric aggs are prioritized first,\r\n as they share a y-Axis, meaning only the first numeric in each lane needs to be\r\n considered. Next, non-numerics are checked, if they are the first agg found in\r\n their lane, their position data is used, otherwise, their height is added to the\r\n current height of the lane.\r\n */\r\n var useAggForLaneLabel = function (aggGroup) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var swimLane = aggGroup.swimLane;\r\n var aggIndex = visibleCDOs.findIndex(function (el) { return el.aggKey === aggGroup.aggKey; });\r\n var onClick = null;\r\n if (typeof ((_c = (_b = (_a = _this.chartOptions) === null || _a === void 0 ? void 0 : _a.swimLaneOptions) === null || _b === void 0 ? void 0 : _b[swimLane]) === null || _c === void 0 ? void 0 : _c.onClick) === 'function') {\r\n onClick = function () { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = _this.chartOptions) === null || _a === void 0 ? void 0 : _a.swimLaneOptions) === null || _b === void 0 ? void 0 : _b[swimLane]) === null || _c === void 0 ? void 0 : _c.onClick) === null || _d === void 0 ? void 0 : _d.call(_c, swimLane); };\r\n }\r\n swimLaneLabels[swimLane] = {\r\n offset: offsetsAndHeights[aggIndex][0],\r\n height: offsetsAndHeights[aggIndex][1],\r\n label: (_f = (_e = (_d = _this.chartOptions) === null || _d === void 0 ? void 0 : _d.swimLaneOptions) === null || _e === void 0 ? void 0 : _e[swimLane]) === null || _f === void 0 ? void 0 : _f.label,\r\n onClick: onClick\r\n };\r\n };\r\n // First add numeric dataTypes (share Y-Axis) to label map\r\n visibleCDOs.filter(function (aggGroup) { return aggGroup.dataType === DataTypes.Numeric; }).forEach(function (aggGroup) {\r\n if (!(aggGroup.swimLane in swimLaneLabels)) { // Only add swimlanes once to swimLaneLabels map\r\n useAggForLaneLabel(aggGroup);\r\n }\r\n });\r\n // Then, map over any non-numeric dataType and increment heights if they're sharing a lane\r\n visibleCDOs.filter(function (aggGroup) { return aggGroup.dataType !== DataTypes.Numeric; }).forEach(function (aggGroup) {\r\n var _a, _b, _c;\r\n var aggIndex = visibleCDOs.findIndex(function (el) { return el.aggKey === aggGroup.aggKey; });\r\n if (!(aggGroup.swimLane in swimLaneLabels)) { // Only add swimlanes once to swimLaneLabels map\r\n useAggForLaneLabel(aggGroup);\r\n }\r\n else { // if lane contains non-numeric data and is being added to another lane\r\n if (!((_c = (_b = (_a = _this.chartOptions) === null || _a === void 0 ? void 0 : _a.swimLaneOptions) === null || _b === void 0 ? void 0 : _b[aggGroup.swimLane]) === null || _c === void 0 ? void 0 : _c.collapseEvents)) { // Only increment event heights if collapseEvents === false\r\n swimLaneLabels[aggGroup.swimLane].height += offsetsAndHeights[aggIndex][1]; // add heights (non-numerics don't share Y axis)\r\n }\r\n }\r\n });\r\n // Clear prior labels\r\n this.swimLaneLabelGroup.selectAll('*').remove();\r\n // Function to trim labels to max height\r\n var truncateLabel = function (labelRef, data) {\r\n var maxHeight = data.height - swimlaneLabelConstants.swimLaneLabelHeightPadding; // padding on actual lane height\r\n if (data.label) {\r\n var labelClientRect = labelRef.getBoundingClientRect();\r\n var labelText = labelRef.textContent;\r\n while (labelClientRect.height > maxHeight && labelText.length > 0) {\r\n labelText = labelText.slice(0, -1);\r\n labelRef.textContent = labelText + '...';\r\n labelClientRect = labelRef.getBoundingClientRect();\r\n }\r\n }\r\n };\r\n var boldYAxisText = function (enabled, lane) {\r\n _this.svgSelection.select('.svgGroup')\r\n .selectAll(\".tsi-swimLaneAxis-\" + lane)\r\n .selectAll('text')\r\n .classed('tsi-boldYAxisText', enabled);\r\n };\r\n var onClickPresentAndValid = function (dp) { return dp.onClick && typeof dp.onClick === 'function'; };\r\n // Map over swimLanes and create labels\r\n Object.keys(swimLaneLabels).forEach(function (lane) {\r\n var labelData = [swimLaneLabels[lane]];\r\n var label = _this.swimLaneLabelGroup.selectAll(\"tsi-swimLaneLabel-\" + lane).data(labelData);\r\n label.enter()\r\n .append(\"text\")\r\n .attr(\"class\", function (d) { return \"tsi-swimLaneLabel-\" + lane + \" tsi-swimLaneLabel \" + (onClickPresentAndValid(d) ? 'tsi-boldOnHover' : ''); })\r\n .merge(label)\r\n .style(\"text-anchor\", \"middle\")\r\n .attr(\"transform\", function (d) { return \"translate(\" + (-_this.horizontalLabelOffset + swimlaneLabelConstants.labelLeftPadding) + \",\" + (d.offset + d.height / 2) + \") rotate(-90)\"; })\r\n .text(function (d) { return d.label; })\r\n .each(function (d) { truncateLabel(this, d); })\r\n .on(\"click\", function (event, d) {\r\n if (onClickPresentAndValid(d)) {\r\n d.onClick();\r\n }\r\n })\r\n .on(\"mouseover\", function (event, d) {\r\n if (onClickPresentAndValid(d)) {\r\n boldYAxisText(true, lane);\r\n }\r\n })\r\n .on(\"mouseout\", function () {\r\n boldYAxisText(false, lane);\r\n })\r\n .append(\"svg:title\")\r\n .text(function (d) { return d.label; });\r\n label.exit().remove();\r\n });\r\n };\r\n LineChart.prototype.render = function (data, options, aggregateExpressionOptions) {\r\n var _this = this;\r\n _super.prototype.render.call(this, data, options, aggregateExpressionOptions);\r\n this.originalSwimLanes = this.aggregateExpressionOptions.map(function (aEO) {\r\n return aEO.swimLane;\r\n });\r\n this.originalSwimLaneOptions = options.swimLaneOptions;\r\n this.hasBrush = options && (options.brushMoveAction || options.brushMoveEndAction || options.brushContextMenuActions);\r\n this.chartOptions.setOptions(options);\r\n this.chartMargins.right = this.chartOptions.labelSeriesWithMarker ? (SERIESLABELWIDTH + 8) : LINECHARTCHARTMARGINS.right;\r\n this.width = this.getWidth();\r\n this.height = Math.max(d3.select(this.renderTarget).node().clientHeight, this.MINHEIGHT);\r\n if (this.chartOptions.legend == \"compact\")\r\n this.chartMargins.top = 72;\r\n else\r\n this.chartMargins.top = 40;\r\n if (this.chartOptions.hideChartControlPanel) {\r\n this.chartMargins.top += -28;\r\n }\r\n if (!this.chartOptions.brushRangeVisible && this.targetElement) {\r\n this.deleteBrushRange();\r\n }\r\n if (this.seriesLabelsMarker && !this.chartOptions.labelSeriesWithMarker) {\r\n this.seriesLabelsMarker.destroyMarker();\r\n this.seriesLabelsMarker = null;\r\n }\r\n this.strokeOpacity = this.chartOptions.isArea ? .55 : 1;\r\n this.nonFocusStrokeOpactiy = this.chartOptions.isArea ? .55 : .3;\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.aggregateExpressionOptions);\r\n this.chartComponentData.data.forEach(function (d, i) {\r\n _this.aggregateExpressionOptions[i].aggKey = d.aggKey;\r\n });\r\n if (this.chartOptions.xAxisHidden && this.chartOptions.focusHidden) {\r\n this.chartMargins.bottom = 5;\r\n }\r\n this.chartHeight = Math.max(1, this.height - this.chartMargins.bottom - this.chartMargins.top);\r\n this.chartWidth = this.getChartWidth();\r\n if (this.brush && this.svgSelection.select('.svgGroup').select(\".brushElem\") && !this.chartOptions.keepBrush) {\r\n this.brushStartTime = null;\r\n this.brushEndTime = null;\r\n this.brushStartPosition = null;\r\n this.brushEndPosition = null;\r\n this.clearBrush();\r\n }\r\n if (!this.chartOptions.hideChartControlPanel && this.chartControlsPanel === null) {\r\n this.chartControlsPanel = Utils.createControlPanel(this.renderTarget, this.legendWidth + (this.GUTTERWIDTH / 2), Math.max((this.chartMargins.top + 12), 0), this.chartOptions);\r\n var self = this;\r\n this.hasStackedButton = true;\r\n this.stackedButton = this.chartControlsPanel.append(\"button\")\r\n .style(\"left\", \"60px\")\r\n .attr(\"class\", \"tsi-stackedButton\")\r\n .attr(\"aria-label\", function () { return _this.getString(\"set axis state to\") + ' ' + _this.nextStackedState(); })\r\n .attr(\"title\", function () { return _this.getString(\"Change y-axis type\"); })\r\n .attr(\"type\", \"button\")\r\n .on(\"click\", function () {\r\n var _this = this;\r\n self.overwriteSwimLanes();\r\n self.render(self.data, __assign(__assign({}, self.chartOptions), { yAxisState: self.nextStackedState() }), self.aggregateExpressionOptions);\r\n d3.select(this).attr(\"aria-label\", function () { return self.getString(\"set axis state to\") + ' ' + self.nextStackedState(); });\r\n setTimeout(function () { return d3.select(_this).node().focus(); }, 200);\r\n });\r\n }\r\n else if (this.chartOptions.hideChartControlPanel && this.chartControlsPanel !== null) {\r\n this.hasStackedButton = false;\r\n this.removeControlPanel();\r\n }\r\n if (this.chartControlsPanel !== null) {\r\n this.drawEllipsisMenu([{\r\n iconClass: \"flag\",\r\n label: this.getString(\"Drop a Marker\"),\r\n action: this.addMarker,\r\n description: \"\"\r\n }]);\r\n this.chartControlsPanel.style(\"top\", Math.max((this.chartMargins.top - 24), 0) + 'px');\r\n }\r\n this.adjustSwimLanes();\r\n if (this.svgSelection == null) {\r\n /******************** Static Elements *********************************/\r\n this.targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-lineChart\", true);\r\n this.svgSelection = this.targetElement.append(\"svg\")\r\n .attr(\"class\", \"tsi-lineChartSVG tsi-chartSVG\")\r\n .attr('title', this.getString('Line chart'))\r\n .attr(\"height\", this.height);\r\n var g = this.svgSelection.append(\"g\")\r\n .classed(\"svgGroup\", true)\r\n .attr(\"transform\", \"translate(\" + this.chartMargins.left + \",\" + this.chartMargins.top + \")\");\r\n var defs = this.svgSelection.append('defs');\r\n this.brushElem = null;\r\n if (this.hasBrush) {\r\n this.brushElem = g.append(\"g\")\r\n .attr(\"class\", \"brushElem\");\r\n this.brushElem.classed(\"hideBrushHandles\", !this.chartOptions.brushHandlesVisible);\r\n }\r\n else {\r\n //if there is no brushElem, the voronoi lives here\r\n this.voronoiRegion = g.append(\"rect\").classed(\"voronoiRect\", true);\r\n }\r\n this.focus = g.append(\"g\")\r\n .attr(\"transform\", \"translate(-200,-100)\")\r\n .attr(\"class\", \"tsi-focus\");\r\n this.focus.append(\"line\")\r\n .attr(\"class\", \"tsi-focusLine tsi-vLine\")\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", 0)\r\n .attr(\"y1\", this.chartOptions.aggTopMargin)\r\n .attr(\"y2\", this.chartHeight);\r\n this.focus.append(\"line\")\r\n .attr(\"class\", \"tsi-focusLine tsi-hLine\")\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", this.chartWidth)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", 0);\r\n this.focus.append(\"circle\")\r\n .attr(\"r\", 4);\r\n this.horizontalValueBox = d3.select(this.renderTarget)\r\n .append('div')\r\n .attr('class', 'tsi-horizontalValueBox tsi-chartValueTextBox')\r\n .style('display', 'none')\r\n .attr('pointer-events', 'none');\r\n this.verticalValueBox = d3.select(this.renderTarget)\r\n .append('div')\r\n .attr('class', 'tsi-verticalValueBox')\r\n .style('display', 'none');\r\n this.horizontalValueBar = this.focus.append('line')\r\n .attr('y1', 0)\r\n .attr('y2', 0)\r\n .attr('class', 'tsi-horizontalValueBar')\r\n .style('display', 'none');\r\n this.swimLaneLabelGroup = g.append(\"g\").\r\n attr(\"class\", \"tsi-swimLaneLabels\");\r\n if (!this.tooltip) {\r\n this.tooltip = new Tooltip(d3.select(this.renderTarget));\r\n }\r\n this.draw = function (isFromResize, event) {\r\n if (isFromResize === void 0) { isFromResize = false; }\r\n _this.minBrushWidth = (_this.chartOptions.minBrushWidth) ? _this.chartOptions.minBrushWidth : _this.minBrushWidth;\r\n _this.focus.attr(\"visibility\", (_this.chartOptions.focusHidden) ? \"hidden\" : \"visible\");\r\n _this.verticalValueBox.style(\"visibility\", (_this.chartOptions.focusHidden) ? \"hidden\" : \"visible\");\r\n _this.horizontalValueBox.style(\"visibility\", (_this.chartOptions.focusHidden) ? \"hidden\" : \"visible\");\r\n if (_this.chartOptions.xAxisHidden && _this.chartOptions.focusHidden) {\r\n _this.chartMargins.bottom = 5;\r\n }\r\n // Check if any swimlane labels present & modify left margin if so\r\n var isLabelVisible = false;\r\n _this.aggregateExpressionOptions.filter(function (aggExpOpt) {\r\n return _this.chartComponentData.displayState[aggExpOpt.aggKey][\"visible\"];\r\n }).forEach(function (visibleAgg) {\r\n var _a, _b;\r\n if ((_b = (_a = _this.originalSwimLaneOptions) === null || _a === void 0 ? void 0 : _a[visibleAgg.swimLane]) === null || _b === void 0 ? void 0 : _b.label) {\r\n isLabelVisible = true;\r\n }\r\n });\r\n if (isLabelVisible) {\r\n _this.chartMargins.left = _this.horizontalLabelOffset;\r\n }\r\n else if (_this.chartMargins.left === _this.horizontalLabelOffset) {\r\n _this.chartMargins.left = LINECHARTCHARTMARGINS.left;\r\n }\r\n _this.width = Math.max(d3.select(_this.renderTarget).node().clientWidth, _this.MINWIDTH);\r\n if (!isFromResize) {\r\n _this.chartWidth = _this.getChartWidth();\r\n }\r\n _this.height = Math.max(d3.select(_this.renderTarget).node().clientHeight, _this.MINHEIGHT);\r\n _this.chartHeight = Math.max(1, _this.height - _this.chartMargins.bottom - _this.chartMargins.top);\r\n g.attr(\"transform\", \"translate(\" + _this.chartMargins.left + \",\" + _this.chartMargins.top + \")\");\r\n if (_this.brushElem) {\r\n _this.brushElem.classed(\"hideBrushHandles\", !_this.chartOptions.brushHandlesVisible);\r\n }\r\n _this.focus.select('.tsi-hLine').attr(\"x2\", _this.chartWidth);\r\n _this.focus.select('.tsi-vLine').attr(\"y2\", _this.chartHeight);\r\n _this.svgSelection\r\n .style(\"width\", _this.getSVGWidth() + \"px\")\r\n .style(\"height\", _this.height + \"px\");\r\n _super.prototype.themify.call(_this, _this.targetElement, _this.chartOptions.theme);\r\n if (!isFromResize) {\r\n _this.legendObject.draw(_this.chartOptions.legend, _this.chartComponentData, function (aggKey, splitBy) { _this.labelMouseover(aggKey, splitBy); }, _this.svgSelection, _this.chartOptions, function () {\r\n Utils.revertAllSubtitleText(d3.select(_this.renderTarget).selectAll('.tsi-markerValue'));\r\n }, _this.stickySeries, event);\r\n }\r\n _this.svgSelection.selectAll(\".yAxis\").style(\"visibility\", \"hidden\");\r\n _this.x = d3.scaleTime()\r\n .rangeRound([_this.xOffset, Math.max(_this.xOffset, _this.chartWidth - (2 * _this.xOffset))]);\r\n _this.y = d3.scaleLinear()\r\n .range([Math.max(_this.chartHeight - _this.heightNonNumeric(), _this.chartOptions.aggTopMargin) - LINECHARTTOPPADDING, _this.chartOptions.aggTopMargin]);\r\n var fromAndTo = _this.chartComponentData.setAllValuesAndVisibleTAs();\r\n var xExtent = (_this.chartComponentData.allValues.length != 0) ? d3.extent(_this.chartComponentData.allValues, function (d) { return d.dateTime; }) : [0, 1];\r\n var xRange = (_this.chartComponentData.allValues.length != 0) ? Math.max(2, (xExtent[1].valueOf() - xExtent[0].valueOf())) : 2;\r\n var xOffsetPercentage = _this.xOffset / _this.chartWidth;\r\n if (_this.chartOptions.timeFrame) {\r\n fromAndTo = [new Date(_this.chartOptions.timeFrame[0]), new Date(_this.chartOptions.timeFrame[1])];\r\n }\r\n _this.x.domain(fromAndTo);\r\n _this.xLowerBound = _this.x(fromAndTo[0]);\r\n _this.xUpperBound = _this.x(fromAndTo[1]);\r\n //allPossibleTimes -> a combination of the beginning and end of buckets\r\n _this.chartComponentData.setTimeMap();\r\n var startOfBuckets = _this.chartComponentData.allValues.map(function (d) { return d.dateTime; });\r\n var endOfBuckets = _this.chartComponentData.allValues.filter(function (d) { return d.bucketSize != null; })\r\n .map(function (d) { return new Date(d.dateTime.valueOf() + d.bucketSize); });\r\n var allPossibleTimes = startOfBuckets.concat(endOfBuckets);\r\n var timeSet = new Set(allPossibleTimes);\r\n _this.possibleTimesArray = Array.from(timeSet.values()).sort().map(function (ts) {\r\n return new Date(ts);\r\n });\r\n if (_this.voronoiRegion) {\r\n _this.voronoiRegion.attr(\"x\", xOffsetPercentage * _this.chartWidth)\r\n .attr(\"y\", _this.chartOptions.aggTopMargin)\r\n .attr(\"width\", _this.chartWidth - (xOffsetPercentage * _this.chartWidth * 2))\r\n .attr(\"height\", _this.chartHeight);\r\n }\r\n if (_this.brushElem) {\r\n var self = _this;\r\n _this.brush = d3.brushX()\r\n .extent([[_this.xLowerBound, Math.min(_this.chartHeight, _this.chartOptions.aggTopMargin)],\r\n [_this.xUpperBound, _this.chartHeight]])\r\n .on(\"start\", function (event) {\r\n if (self.activeMarker !== null && self.isDroppingMarker) {\r\n self.voronoiClick(event, this);\r\n }\r\n var handleHeight = self.getHandleHeight();\r\n self.brushElem.selectAll('.handle')\r\n .attr('height', handleHeight)\r\n .attr('y', (self.chartHeight - handleHeight) / 2)\r\n .attr('rx', '4px')\r\n .attr('ry', '4px');\r\n })\r\n .on(\"brush\", function (event) {\r\n self.brushBrush(event);\r\n self.drawBrushRange();\r\n })\r\n .on(\"end\", function (event) {\r\n self.brushEnd(event, this);\r\n self.drawBrushRange();\r\n });\r\n _this.brushElem.call(_this.brush);\r\n _this.setBrush();\r\n }\r\n var yExtent = _this.getYExtent(_this.chartComponentData.allValues, false, null);\r\n var yRange = (yExtent[1] - yExtent[0]) > 0 ? yExtent[1] - yExtent[0] : 1;\r\n var yOffsetPercentage = _this.chartOptions.isArea ? (1.5 / _this.chartHeight) : (10 / _this.chartHeight);\r\n _this.y.domain([yExtent[0] - (yRange * yOffsetPercentage), yExtent[1] + (yRange * (10 / _this.chartHeight))]);\r\n if (_this.chartOptions.isArea) {\r\n _this.areaPath = d3.area()\r\n .curve(_this.chartOptions.interpolationFunction)\r\n .defined(function (d) {\r\n return (d.measures !== null) &&\r\n (d.measures[_this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)] !== null);\r\n })\r\n .x(function (d) {\r\n return _this.getXPosition(d, _this.x);\r\n })\r\n .y0(function (d) {\r\n return d.measures ? _this.y(d.measures[_this.chartComponentData.getVisibleMeasure(d.aggregateKey, d.splitBy)]) : 0;\r\n })\r\n .y1(_this.chartHeight);\r\n }\r\n if (!_this.chartOptions.xAxisHidden) {\r\n _this.xAxis = g.selectAll(\".xAxis\").data([_this.x]);\r\n _this.drawXAxis(_this.chartHeight);\r\n _this.xAxis.exit().remove();\r\n var xAxisBaseline = g.selectAll(\".xAxisBaseline\").data([_this.x]);\r\n var xAxisBaselineEntered = xAxisBaseline.enter().append(\"line\")\r\n .attr(\"class\", \"xAxisBaseline\")\r\n .attr(\"x1\", .5)\r\n .merge(xAxisBaseline)\r\n .attr(\"y2\", _this.chartHeight + .5)\r\n .attr(\"y1\", _this.chartHeight + .5)\r\n .attr(\"x2\", _this.chartWidth - _this.xOffset);\r\n xAxisBaseline.exit().remove();\r\n }\r\n if (g.selectAll(\".xAxis\").size() !== 0) {\r\n g.selectAll(\".xAxis\").style(\"visibility\", ((!_this.chartOptions.xAxisHidden) ? \"visible\" : \"hidden\"));\r\n }\r\n /******************** Draw Line and Points ************************/\r\n _this.visibleAggCount = Object.keys(_this.chartComponentData.timeArrays).reduce(function (count, aggKey) {\r\n return count + (_this.chartComponentData.displayState[aggKey]['visible'] ? 1 : 0);\r\n }, 0);\r\n _this.yMap = {};\r\n _this.colorMap = {};\r\n _this.svgSelection.selectAll(\".yAxis\").remove();\r\n var visibleGroupData = _this.chartComponentData.data.filter(function (agg) { return _this.chartComponentData.displayState[agg.aggKey][\"visible\"]; });\r\n var visibleCDOs = _this.aggregateExpressionOptions.filter(function (cDO) {\r\n return _this.chartComponentData.displayState[cDO.aggKey][\"visible\"];\r\n });\r\n var offsetsAndHeights = _this.createYOffsets();\r\n // Add swimlane labels to SVG\r\n _this.createSwimlaneLabels(offsetsAndHeights, visibleCDOs);\r\n var swimLaneCounts = {};\r\n // Reset public facing yExtents\r\n _this.chartComponentData.resetYExtents();\r\n var aggregateGroups = _this.svgSelection.select('.svgGroup').selectAll('.tsi-aggGroup')\r\n .data(visibleCDOs, function (agg) { return agg.aggKey; });\r\n var self = _this;\r\n var visibleNumericI = 0;\r\n aggregateGroups.enter()\r\n .append('g')\r\n .classed('tsi-aggGroup', true)\r\n .merge(aggregateGroups)\r\n .transition()\r\n .duration((_this.chartOptions.noAnimate) ? 0 : self.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attr('transform', function (agg, i) {\r\n return self.chartOptions.isArea ? null : 'translate(0,' + offsetsAndHeights[i][0] + ')';\r\n })\r\n .each(function (agg, i) {\r\n var _a, _b, _c;\r\n var yExtent;\r\n var aggVisible = true;\r\n var aggValues = [];\r\n var aggKey = agg.aggKey;\r\n Object.keys(self.chartComponentData.visibleTAs[aggKey]).forEach(function (splitBy) {\r\n aggValues = aggValues.concat(self.chartComponentData.visibleTAs[aggKey][splitBy]);\r\n });\r\n yExtent = self.getGroupYExtent(aggKey, aggVisible, aggValues, yExtent);\r\n if (self.plotComponents[aggKey] === undefined || self.mismatchingChartType(aggKey)) {\r\n var g_1 = d3.select(this);\r\n delete self.plotComponents[aggKey];\r\n g_1.selectAll('*').remove();\r\n self.plotComponents[aggKey] = self.createPlot(g_1, i, visibleCDOs);\r\n }\r\n var mouseoverFunction = self.getMouseoverFunction(visibleCDOs[i].dataType);\r\n var mouseoutFunction = self.getMouseoutFunction(visibleCDOs[i].dataType);\r\n var positionInGroup = visibleNumericI;\r\n if (self.getAggAxisType(agg) === YAxisStates.Shared) {\r\n yExtent = self.swimlaneYExtents[agg.swimLane];\r\n }\r\n // Update yExtent index in LineChartData after all local yExtent updates (this is public facing yExtent)\r\n // Only update if dataType is numeric\r\n if (agg.dataType === 'numeric') {\r\n var idx = self.aggregateExpressionOptions.findIndex(function (el) { return el.aggKey === aggKey; });\r\n self.chartComponentData.setYExtents(idx, yExtent);\r\n }\r\n //should count all as same swim lane when not in stacked.\r\n var swimLane = agg.swimLane;\r\n var offsetImpact = (agg.dataType === DataTypes.Numeric) ? 1 : 0;\r\n if (swimLaneCounts[swimLane]) {\r\n positionInGroup = swimLaneCounts[swimLane];\r\n swimLaneCounts[swimLane] += offsetImpact;\r\n }\r\n else {\r\n positionInGroup = 0;\r\n swimLaneCounts[swimLane] = offsetImpact;\r\n }\r\n var axisState = new AxisState(self.getAggAxisType(agg), yExtent, positionInGroup);\r\n var yAxisOnClick = null;\r\n if (typeof ((_c = (_b = (_a = self.chartOptions) === null || _a === void 0 ? void 0 : _a.swimLaneOptions) === null || _b === void 0 ? void 0 : _b[swimLane]) === null || _c === void 0 ? void 0 : _c.onClick) === 'function') {\r\n yAxisOnClick = function () { var _a, _b; return (_b = (_a = self.chartOptions.swimLaneOptions[swimLane]).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, swimLane); };\r\n }\r\n self.plotComponents[aggKey].render(self.chartOptions, visibleNumericI, agg, true, d3.select(this), self.chartComponentData, axisState, self.chartHeight, self.visibleAggCount, self.colorMap, self.previousAggregateData, self.x, self.areaPath, self.strokeOpacity, self.y, self.yMap, defs, visibleCDOs[i], self.previousIncludeDots, offsetsAndHeights[i], g, mouseoverFunction, mouseoutFunction, yAxisOnClick);\r\n //increment index of visible numerics if appropriate\r\n visibleNumericI += (visibleCDOs[i].dataType === DataTypes.Numeric ? 1 : 0);\r\n });\r\n aggregateGroups.exit().remove();\r\n /******************** Voronoi diagram for hover action ************************/\r\n _this.voronoi = d3Voronoi.voronoi()\r\n .x(function (d) {\r\n return (d.bucketSize != undefined ? self.x(new Date(d.dateTime.valueOf() + (d.bucketSize / 2))) : self.x(d.dateTime));\r\n })\r\n .y(function (d) {\r\n if (d.measures) {\r\n return self.yMap[d.aggregateKey] ? self.yMap[d.aggregateKey](self.getValueOfVisible(d)) : null;\r\n }\r\n return null;\r\n })\r\n .extent([[0, 0], [_this.chartWidth, _this.chartHeight]]);\r\n //if brushElem present then use the overlay, otherwise create a rect to put the voronoi on\r\n var voronoiSelection = (_this.brushElem ? _this.brushElem.select(\".overlay\") : _this.voronoiRegion);\r\n voronoiSelection.on(\"mousemove\", function (event) {\r\n var mouseEvent = d3.pointer(event);\r\n self.voronoiMousemove(mouseEvent);\r\n })\r\n .on(\"mouseout\", function (event, d) {\r\n if (!self.filteredValueExist() || !self.voronoiExists())\r\n return;\r\n var _a = d3.pointer(event), mx = _a[0], my = _a[1];\r\n var site = self.voronoiDiagram.find(mx, my);\r\n self.voronoiMouseout(event, site.data);\r\n self.chartOptions.onMouseout();\r\n if (self.tooltip)\r\n self.tooltip.hide();\r\n })\r\n .on(\"contextmenu\", function (event, d) {\r\n self.voronoiContextMenu(event, this);\r\n })\r\n .on(\"click\", function (event, d) {\r\n self.voronoiClick(event, this);\r\n });\r\n if (_this.brushElem) {\r\n _this.brushElem.selectAll(\".selection, .handle\").on(\"contextmenu\", function (event, d) {\r\n if (!self.chartOptions.brushContextMenuActions || self.chartOptions.brushContextMenuActions.length == 0 || self.chartOptions.autoTriggerBrushContextMenu)\r\n return;\r\n var mousePosition = d3.pointer(event, self.targetElement.node());\r\n event.preventDefault();\r\n self.brushContextMenu.draw(self.chartComponentData, self.renderTarget, self.chartOptions, mousePosition, null, null, null, self.brushStartTime, self.brushEndTime);\r\n });\r\n _this.brushElem.selectAll('.selection')\r\n .attr('stroke', _this.chartOptions.color ? _this.chartOptions.color : 'none')\r\n .attr('fill', _this.chartOptions.color ? _this.chartOptions.color : 'grey');\r\n var handleHeight = self.getHandleHeight();\r\n _this.brushElem.selectAll('.handle')\r\n .attr('fill', _this.chartOptions.color ? _this.chartOptions.color : 'grey')\r\n .attr('height', handleHeight)\r\n .attr('y', (_this.chartHeight - handleHeight) / 2);\r\n }\r\n /******************** Stack/Unstack button ************************/\r\n if (_this.hasStackedButton) {\r\n _this.stackedButton.style(\"opacity\", function () {\r\n if (_this.chartOptions.yAxisState === YAxisStates.Stacked)\r\n return 1;\r\n if (_this.chartOptions.yAxisState === YAxisStates.Shared)\r\n return .6;\r\n return .3;\r\n })\r\n .style(\"display\", _this.visibleAggCount < 2 ? \"none\" : \"block\")\r\n .classed('tsi-lightTheme', _this.chartOptions.theme == 'light')\r\n .classed('tsi-darkTheme', _this.chartOptions.theme == 'dark');\r\n }\r\n var timeFrame = (_this.chartOptions.timeFrame) ? _this.chartOptions.timeFrame : _this.x.domain();\r\n if (!_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel !== null) {\r\n _this.chartControlsPanel.style(\"width\", _this.calcSVGWidth() + \"px\");\r\n }\r\n _this.renderAllMarkers();\r\n _this.drawHorizontalMarkers();\r\n _this.voronoiDiagram = _this.voronoi(_this.getFilteredAndSticky(_this.chartComponentData.allValues));\r\n };\r\n this.legendObject = new Legend(this.draw, this.renderTarget, this.legendWidth);\r\n this.contextMenu = new ContextMenu(this.draw, this.renderTarget);\r\n this.brushContextMenu = new ContextMenu(this.draw, this.renderTarget);\r\n window.addEventListener(\"resize\", function (event) {\r\n var self = _this;\r\n if (!_this.chartOptions.suppressResizeListener) {\r\n _this.draw(true, event);\r\n _this.renderAllMarkers();\r\n }\r\n });\r\n }\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.aggregateExpressionOptions);\r\n this.draw();\r\n this.gatedShowGrid();\r\n this.chartOptions.noAnimate = false; // ensure internal renders are always animated, overriding the users noAnimate option\r\n if (this.chartOptions.labelSeriesWithMarker && this.seriesLabelsMarker === null) {\r\n this.createSeriesLabelsMarker();\r\n }\r\n this.renderSeriesLabelsMarker();\r\n if (this.chartOptions.markers && this.chartOptions.markers.length > 0) {\r\n this.importMarkers();\r\n }\r\n d3.select(\"html\").on(\"click.\" + Utils.guid(), function (event) {\r\n if (_this.ellipsisContainer && event.target != _this.ellipsisContainer.select(\".tsi-ellipsisButton\").node()) {\r\n _this.ellipsisMenu.setMenuVisibility(false);\r\n }\r\n });\r\n this.legendPostRenderProcess(this.chartOptions.legend, this.svgSelection, true, function () {\r\n _this.updateBrushRange();\r\n });\r\n };\r\n LineChart.prototype.createPlot = function (svgGroup, i, cDO) {\r\n var chartType = cDO[i].dataType;\r\n if (chartType === DataTypes.Numeric) {\r\n return new LinePlot(svgGroup);\r\n }\r\n else if (chartType === DataTypes.Categorical) {\r\n return new CategoricalPlot(svgGroup);\r\n }\r\n else if (chartType === DataTypes.Events) {\r\n return new EventsPlot(svgGroup);\r\n }\r\n return null;\r\n };\r\n return LineChart;\r\n}(TemporalXAxisComponent));\r\nexport default LineChart;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './TimezonePicker.scss';\r\nimport { ChartComponent } from '../../Interfaces/ChartComponent';\r\nimport Utils from \"../../Utils\";\r\nimport moment from 'moment-timezone';\r\nvar TimezonePicker = /** @class */ (function (_super) {\r\n __extends(TimezonePicker, _super);\r\n function TimezonePicker(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.timeZones = [\"Local\", \"UTC\", \"Africa/Algiers\", \"Africa/Cairo\", \"Africa/Casablanca\", \"Africa/Harare\", \"Africa/Johannesburg\", \"Africa/Lagos\", \"Africa/Nairobi\", \"Africa/Windhoek\", \"America/Anchorage\", \"America/Bogota\", \"America/Buenos Aires\", \"America/Caracas\", \"America/Chicago\", \"America/Chihuahua\", \"America/Denver\", \"America/Edmonton\", \"America/Godthab\", \"America/Guatemala\", \"America/Halifax\", \"America/Indiana/Indianapolis\", \"America/Los Angeles\", \"America/Manaus\", \"America/Mexico City\", \"America/Montevideo\", \"America/New York\", \"America/Phoenix\", \"America/Santiago\", \"America/Sao Paulo\", \"America/St Johns\", \"America/Tijuana\", \"America/Toronto\", \"America/Vancouver\", \"America/Winnipeg\", \"Asia/Amman\", \"Asia/Beirut\", \"Asia/Baghdad\", \"Asia/Baku\", \"Asia/Bangkok\", \"Asia/Calcutta\", \"Asia/Colombo\", \"Asia/Dhaka\", \"Asia/Dubai\", \"Asia/Ho Chi Minh\", \"Asia/Hong Kong\", \"Asia/Irkutsk\", \"Asia/Istanbul\", \"Asia/Jakarta\", \"Asia/Jerusalem\", \"Asia/Kabul\", \"Asia/Karachi\", \"Asia/Kathmandu\", \"Asia/Krasnoyarsk\", \"Asia/Kuala Lumpur\", \"Asia/Kuwait\", \"Asia/Magadan\", \"Asia/Muscat\", \"Asia/Novosibirsk\", \"Asia/Qatar\", \"Asia/Rangoon\", \"Asia/Seoul\", \"Asia/Shanghai\", \"Asia/Singapore\", \"Asia/Taipei\", \"Asia/Tbilisi\", \"Asia/Tehran\", \"Asia/Tokyo\", \"Asia/Vladivostok\", \"Asia/Yakutsk\", \"Asia/Yekaterinburg\", \"Asia/Yerevan\", \"Atlantic/Azores\", \"Atlantic/Cape Verde\", \"Atlantic/South Georgia\", \"Australia/Adelaide\", \"Australia/Brisbane\", \"Australia/Canberra\", \"Australia/Darwin\", \"Australia/Hobart\", \"Australia/Melbourne\", \"Australia/Perth\", \"Australia/Queensland\", \"Australia/Sydney\", \"Europe/Amsterdam\", \"Europe/Andorra\", \"Europe/Athens\", \"Europe/Belfast\", \"Europe/Belgrade\", \"Europe/Berlin\", \"Europe/Brussels\", \"Europe/Budapest\", \"Europe/Dublin\", \"Europe/Helsinki\", \"Europe/Kiev\", \"Europe/Lisbon\", \"Europe/London\", \"Europe/Luxembourg\", \"Europe/Madrid\", \"Europe/Minsk\", \"Europe/Monaco\", \"Europe/Moscow\", \"Europe/Oslo\", \"Europe/Paris\", \"Europe/Rome\", \"Europe/Stockholm\", \"Europe/Vienna\", \"Europe/Warsaw\", \"Europe/Zurich\", \"Pacific/Auckland\", \"Pacific/Fiji\", \"Pacific/Guam\", \"Pacific/Honolulu\", \"Pacific/Midway\", \"Pacific/Tongatapu\"];\r\n return _this;\r\n }\r\n TimezonePicker.prototype.sortTimezones = function () {\r\n var filteredTimezones = this.timeZones.filter(function (tz) {\r\n return !(tz.toLowerCase() == 'local' || tz == 'UTC');\r\n });\r\n filteredTimezones.sort(function (a, b) {\r\n var aOffset = moment.tz(new Date(), a.split(' ').join('_')).utcOffset();\r\n var bOffset = moment.tz(new Date(), b.split(' ').join('_')).utcOffset();\r\n if (aOffset < bOffset) {\r\n return -1;\r\n }\r\n if (aOffset > bOffset) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.timeZones = ['Local', 'UTC'].concat(filteredTimezones);\r\n };\r\n TimezonePicker.prototype.render = function (onTimezoneSelect, defaultTimeZone) {\r\n var _this = this;\r\n if (defaultTimeZone === void 0) { defaultTimeZone = null; }\r\n this.targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-timezonePicker\", true);\r\n var d = new Date();\r\n var timezoneSelection = this.targetElement.append(\"select\")\r\n .attr(\"class\", \"tsi-timezonePicker tsi-select\");\r\n this.sortTimezones();\r\n var options = timezoneSelection.selectAll(\"option\")\r\n .data(this.timeZones)\r\n .enter()\r\n .append(\"option\")\r\n .attr('value', function (d) { return d; })\r\n .text(function (tz) { return Utils.convertTimezoneToLabel(tz, _this.getString('Local')); });\r\n timezoneSelection.on(\"change\", function (d) {\r\n var timezone = d3.select(this).node().value.replace(/\\s/g, \"_\");\r\n onTimezoneSelect(timezone);\r\n });\r\n defaultTimeZone = defaultTimeZone.replace(/_/g, \" \");\r\n if (defaultTimeZone != null) {\r\n options.filter(function (d) { return d == defaultTimeZone; }).attr(\"selected\", true);\r\n }\r\n return;\r\n };\r\n return TimezonePicker;\r\n}(ChartComponent));\r\nexport default TimezonePicker;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport Pikaday from '../../../packages/pikaday/pikaday';\r\nimport '../../../packages/pikaday/css/pikaday.css';\r\nimport moment from 'moment';\r\nimport './DateTimePicker.scss';\r\nimport { ChartComponent } from '../../Interfaces/ChartComponent';\r\nimport TimezonePicker from '../TimezonePicker/TimezonePicker';\r\nimport Utils from \"../../Utils\";\r\nvar DateTimePicker = /** @class */ (function (_super) {\r\n __extends(DateTimePicker, _super);\r\n function DateTimePicker(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.isValid = true;\r\n _this.isSettingStartTime = true;\r\n _this.quickTimeArray = [\r\n [\"Last 15 mins\", 15 * 60 * 1000],\r\n [\"Last 30 mins\", 30 * 60 * 1000],\r\n [\"Last Hour\", 60 * 60 * 1000],\r\n [\"Last 2 Hours\", 2 * 60 * 60 * 1000],\r\n [\"Last 4 Hours\", 4 * 60 * 60 * 1000],\r\n [\"Last 12 Hours\", 12 * 60 * 60 * 1000],\r\n [\"Last 24 Hours\", 24 * 60 * 60 * 1000],\r\n [\"Last 7 Days\", 7 * 24 * 60 * 60 * 1000],\r\n [\"Last 30 Days\", 30 * 24 * 60 * 60 * 1000],\r\n [\"Last 90 Days\", 90 * 24 * 60 * 60 * 1000]\r\n ];\r\n _this.onSaveOrCancel = function () {\r\n _this.isSettingStartTime = true;\r\n };\r\n return _this;\r\n }\r\n // returns -1 if not currently a quicktime\r\n DateTimePicker.prototype.getCurrentQuickTime = function () {\r\n var _this = this;\r\n var matchingQuickTime = this.quickTimeArray.filter(function (quickTimeTuple) {\r\n return (_this.toMillis - _this.fromMillis === quickTimeTuple[1]);\r\n });\r\n if (matchingQuickTime.length !== 1 || this.toMillis !== this.maxMillis) {\r\n return -1;\r\n }\r\n return matchingQuickTime[0][1];\r\n };\r\n DateTimePicker.prototype.getQuickTimeText = function (quickTimeMillis) {\r\n var filteredQuickTime = this.quickTimeArray.filter(function (quickTimeTuple) {\r\n return (quickTimeMillis === quickTimeTuple[1]);\r\n });\r\n if (filteredQuickTime.length !== 1) {\r\n return null;\r\n }\r\n return filteredQuickTime[0][0];\r\n };\r\n DateTimePicker.prototype.convertToCalendarDate = function (millis) {\r\n return this.roundDay(Utils.adjustDateFromTimezoneOffset(Utils.offsetFromUTC(new Date(millis), this.chartOptions.offset)));\r\n };\r\n DateTimePicker.prototype.setNewOffset = function (oldOffset) {\r\n var _this = this;\r\n var valuesToUpdate = ['fromMillis', 'toMillis'];\r\n valuesToUpdate.forEach(function (currValue) {\r\n var oldOffsetMinutes = Utils.getMinutesToUTC(oldOffset, _this[currValue]);\r\n var utcMillis = _this[currValue] - (oldOffsetMinutes * 60 * 1000);\r\n _this[currValue] = utcMillis - Utils.getOffsetMinutes(_this.chartOptions.offset, utcMillis) * 60 * 1000;\r\n });\r\n this.setFromMillis(this.fromMillis);\r\n this.setToMillis(this.toMillis);\r\n this.updateDisplayedFromDateTime();\r\n this.updateDisplayedToDateTime();\r\n this.startRange = new Date(this.fromMillis);\r\n this.endRange = new Date(this.toMillis);\r\n this.calendarPicker.config({ minDate: this.convertToCalendarDate(this.minMillis) });\r\n this.calendarPicker.config({ maxDate: this.convertToCalendarDate(this.maxMillis) });\r\n this.calendarPicker.draw();\r\n var rangeErrorCheck = this.rangeIsValid(this.fromMillis, this.toMillis);\r\n this.setIsSaveable(rangeErrorCheck.isSaveable);\r\n this.displayRangeErrors(rangeErrorCheck.errors);\r\n };\r\n DateTimePicker.prototype.render = function (chartOptions, minMillis, maxMillis, fromMillis, toMillis, onSet, onCancel) {\r\n var _this = this;\r\n if (chartOptions === void 0) { chartOptions = {}; }\r\n if (fromMillis === void 0) { fromMillis = null; }\r\n if (toMillis === void 0) { toMillis = null; }\r\n if (onSet === void 0) { onSet = null; }\r\n if (onCancel === void 0) { onCancel = null; }\r\n this.isSettingStartTime = true;\r\n this.minMillis = minMillis;\r\n this.maxMillis = maxMillis;\r\n if (chartOptions.offset && (typeof chartOptions.offset === \"string\")) {\r\n this.offsetName = chartOptions.offset;\r\n }\r\n if (toMillis == null) {\r\n toMillis = this.maxMillis;\r\n }\r\n if (fromMillis == null) {\r\n fromMillis = Math.max(toMillis - (24 * 60 * 60 * 1000), minMillis);\r\n }\r\n this.chartOptions.setOptions(chartOptions);\r\n moment.locale(this.chartOptions.dateLocale);\r\n this.fromMillis = fromMillis;\r\n this.toMillis = toMillis;\r\n this.onSet = onSet;\r\n this.onCancel = onCancel;\r\n this.targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-dateTimePicker\", true);\r\n this.targetElement.html('');\r\n _super.prototype.themify.call(this, this.targetElement, this.chartOptions.theme);\r\n var group = this.targetElement.append('div')\r\n .classed('tsi-dateTimeGroup', true)\r\n .on('keydown', function (event) {\r\n if (event.keyCode <= 40 && event.keyCode >= 37) { //arrow key\r\n event.stopPropagation();\r\n }\r\n if (event.keyCode === 27 && _this.chartOptions.dTPIsModal) { //escape\r\n _this.onCancel();\r\n _this.onSaveOrCancel();\r\n }\r\n });\r\n this.quickTimesPanel = group.append('div')\r\n .classed('tsi-quickTimesPanel', true);\r\n this.buildQuickTimesPanel();\r\n this.dateTimeSelectionPanel = group.append('div')\r\n .classed('tsi-dateTimeSelectionPanel', true);\r\n this.timeControls = this.dateTimeSelectionPanel.append(\"div\").classed(\"tsi-timeControlsContainer\", true);\r\n this.calendar = this.dateTimeSelectionPanel.append(\"div\").classed(\"tsi-calendarPicker\", true);\r\n this.createTimezonePicker();\r\n var saveButtonContainer = this.dateTimeSelectionPanel.append(\"div\").classed(\"tsi-saveButtonContainer\", true);\r\n var self = this;\r\n var saveButton = saveButtonContainer.append(\"button\").classed(\"tsi-saveButton\", true).text(this.getString(\"Save\"))\r\n .on(\"click\", function () {\r\n self.onSet(self.fromMillis, self.toMillis, self.chartOptions.offset, self.maxMillis === self.toMillis, self.getCurrentQuickTime());\r\n self.onSaveOrCancel();\r\n });\r\n var cancelButton = saveButtonContainer.append('button')\r\n .attr('class', 'tsi-cancelButton')\r\n .text(this.getString('Cancel'))\r\n .on('click', function () {\r\n _this.onCancel();\r\n _this.onSaveOrCancel();\r\n })\r\n .on('keydown', function (event) {\r\n if (event.keyCode === 9 && !event.shiftKey && _this.chartOptions.dTPIsModal) { // tab\r\n _this.quickTimesPanel.selectAll('.tsi-quickTime')\r\n .filter(function (d, i) { return i === 0; })\r\n .node()\r\n .focus();\r\n event.preventDefault();\r\n }\r\n });\r\n //originally set toMillis to last possible time\r\n this.toMillis = this.maxMillis;\r\n this.setFromMillis(fromMillis);\r\n this.setToMillis(toMillis);\r\n this.targetElement.append(\"div\").classed(\"tsi-errorMessageContainer\", true);\r\n this.createTimePicker();\r\n this.createCalendar();\r\n this.calendarPicker.draw();\r\n this.updateDisplayedFromDateTime();\r\n this.updateDisplayedToDateTime();\r\n this.startRange = new Date(this.fromMillis);\r\n this.endRange = new Date(this.toMillis);\r\n this.calendarPicker.draw();\r\n return;\r\n };\r\n DateTimePicker.prototype.updateDisplayedDateTimes = function () {\r\n var _this = this;\r\n ['from', 'to'].forEach(function (fromOrTo) {\r\n var selectedDate = new Date(_this[fromOrTo + 'Millis']);\r\n _this.calendarPicker.setDate(_this.roundDay(Utils.offsetFromUTC(selectedDate)));\r\n _this[fromOrTo + 'Input'].node().value = _this.createTimeString(Utils.offsetFromUTC(selectedDate));\r\n });\r\n };\r\n DateTimePicker.prototype.setFromQuickTimes = function (relativeMillis) {\r\n this.isSettingStartTime = true;\r\n this.setToMillis(this.maxMillis);\r\n this.setFromMillis(this.maxMillis - relativeMillis);\r\n this.updateDisplayedFromDateTime();\r\n this.updateDisplayedToDateTime();\r\n this.calendarPicker.draw();\r\n };\r\n DateTimePicker.prototype.buildQuickTimesPanel = function () {\r\n var _this = this;\r\n var quickTimes = this.quickTimesPanel.selectAll('.tsi-quickTime')\r\n .data(this.quickTimeArray);\r\n var enteredQuickTimes = quickTimes.enter()\r\n .append('button')\r\n .attr('class', 'tsi-quickTime')\r\n .on('click', function (event, d) {\r\n _this.setFromQuickTimes(d[1]);\r\n })\r\n .text(function (d) { return d[0]; })\r\n .attr('aria-label', function (d) { return _this.getString('select quick time of') + \" \" + d[0]; });\r\n // wrap around tab order if dTP in modal form\r\n var firstQuickTime = enteredQuickTimes.filter(function (d, i) {\r\n return (i === 0);\r\n })\r\n .on('keydown', function (event) {\r\n if (event.keyCode === 9 && event.shiftKey && _this.chartOptions.dTPIsModal) { // shift tab\r\n _this.dateTimeSelectionPanel.select(\".tsi-saveButtonContainer\").select(\".tsi-cancelButton\").node().focus();\r\n event.preventDefault();\r\n }\r\n });\r\n if (this.chartOptions.dTPIsModal) {\r\n firstQuickTime.node().focus();\r\n }\r\n };\r\n DateTimePicker.prototype.createTimeString = function (currDate) {\r\n return this.getTimeFormat()(currDate);\r\n };\r\n DateTimePicker.prototype.getTimeFormat = function () {\r\n return Utils.timeFormat(true, true, this.chartOptions.offset, true, 0, null, this.chartOptions.dateLocale);\r\n };\r\n DateTimePicker.prototype.updateFromAndTo = function (fromMillis, toMillis) {\r\n this.setFromMillis(fromMillis);\r\n this.setToMillis(toMillis);\r\n this.updateDisplayedFromDateTime();\r\n this.updateDisplayedToDateTime();\r\n this.startRange = new Date(this.fromMillis);\r\n this.endRange = new Date(this.toMillis);\r\n this.calendarPicker.draw();\r\n };\r\n DateTimePicker.prototype.createTimezonePicker = function () {\r\n var _this = this;\r\n var offset = this.chartOptions.offset;\r\n if (this.chartOptions.includeTimezones && (typeof offset == \"string\" || offset == 0)) {\r\n var timezoneContainer = this.dateTimeSelectionPanel.append(\"div\").attr(\"class\", \"tsi-timezoneContainer\");\r\n var timezoneSelectionLabelID = Utils.guid();\r\n var timezoneSelectionID = timezoneSelectionLabelID + 'Tz';\r\n timezoneContainer.append(\"label\")\r\n .classed(\"tsi-timeLabel\", true)\r\n .attr('aria-label', this.getString('timezone selection'))\r\n .attr('id', timezoneSelectionLabelID)\r\n .attr('for', timezoneSelectionID)\r\n .text(this.getString('timezone'));\r\n var timezonePickerContainer = timezoneContainer.append(\"div\").classed(\"tsi-timezonePickerContainer\", true);\r\n var timezonePicker = new TimezonePicker(timezonePickerContainer.node());\r\n timezonePicker.render(function (newOffset) {\r\n var matchingQuickTime = _this.getCurrentQuickTime();\r\n var oldOffset = _this.chartOptions.offset;\r\n _this.chartOptions.offset = newOffset;\r\n _this.setNewOffset(oldOffset);\r\n if (matchingQuickTime !== -1) {\r\n _this.setFromQuickTimes(matchingQuickTime);\r\n }\r\n }, (typeof offset == \"string\" ? offset : \"UTC\"));\r\n d3.select(timezonePicker.renderTarget).select('select')\r\n .attr('aria-labelledBy', timezoneSelectionLabelID)\r\n .attr('id', timezoneSelectionID);\r\n }\r\n };\r\n //zero out everything but year, month and day\r\n DateTimePicker.prototype.roundDay = function (d) {\r\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n };\r\n DateTimePicker.prototype.setTimeRange = function (d, isFromSelect) {\r\n if (this.isSettingStartTime) {\r\n this.calendarPicker.setStartRange(d);\r\n this.calendarPicker.setEndRange(null);\r\n this.startRange = d;\r\n this.anchorDate = d;\r\n }\r\n else {\r\n if (d.valueOf() > this.anchorDate.valueOf()) {\r\n if (isFromSelect) {\r\n this.setFromDate(this.anchorDate);\r\n this.setToDate(d);\r\n }\r\n this.calendarPicker.setEndRange(d);\r\n this.calendarPicker.setStartRange(this.anchorDate);\r\n this.startRange = this.anchorDate;\r\n this.endRange = d;\r\n }\r\n else {\r\n if (isFromSelect) {\r\n this.setFromDate(d);\r\n this.setToDate(this.anchorDate);\r\n }\r\n this.calendarPicker.setStartRange(d);\r\n this.calendarPicker.setEndRange(this.anchorDate);\r\n this.endRange = this.anchorDate;\r\n this.startRange = d;\r\n }\r\n this.setTimeInputBox(this.fromMillis, true);\r\n this.setTimeInputBox(this.toMillis, false);\r\n }\r\n };\r\n DateTimePicker.prototype.createCalendar = function () {\r\n var _this = this;\r\n var i18nOptions = {\r\n previousMonth: this.getString('Previous Month'),\r\n nextMonth: this.getString('Next Month'),\r\n months: moment.localeData().months(),\r\n weekdays: moment.localeData().weekdays(),\r\n weekdaysShort: moment.localeData().weekdaysMin()\r\n };\r\n //@ts-ignore\r\n this.calendarPicker = new Pikaday({\r\n bound: false,\r\n container: this.calendar.node(),\r\n field: this.calendar.node(),\r\n i18n: i18nOptions,\r\n numberOfMonths: 2,\r\n onSelect: function (d) {\r\n _this.setTimeRange(d, true);\r\n _this.isSettingStartTime = !_this.isSettingStartTime;\r\n _this.calendarPicker.draw();\r\n },\r\n onDraw: function (d) {\r\n if (_this.isSettingStartTime)\r\n return;\r\n var self = _this;\r\n _this.calendar.select(\".pika-single\").selectAll(\".pika-day\")\r\n .on(\"mouseover\", function () {\r\n var date = new Date(Number(d3.select(this).attr(\"data-pika-year\")), Number(d3.select(this).attr(\"data-pika-month\")), Number(d3.select(this).attr(\"data-pika-day\")));\r\n if (!self.isSettingStartTime) {\r\n if (date.valueOf() < self.anchorDate.valueOf() && self.startRange.valueOf() != date.valueOf()) {\r\n self.setTimeRange(date, false);\r\n self.calendarPicker.draw();\r\n return;\r\n }\r\n if (date.valueOf() >= self.anchorDate.valueOf() && (self.endRange == undefined || self.endRange.valueOf() != date.valueOf())) {\r\n self.setTimeRange(date, false);\r\n self.calendarPicker.draw();\r\n return;\r\n }\r\n }\r\n });\r\n },\r\n minDate: this.convertToCalendarDate(this.minMillis),\r\n maxDate: this.convertToCalendarDate(this.maxMillis),\r\n defaultDate: Utils.adjustDateFromTimezoneOffset(new Date(this.fromMillis))\r\n });\r\n };\r\n DateTimePicker.prototype.setSelectedQuickTimes = function () {\r\n var _this = this;\r\n var isSelected = function (d) {\r\n return (_this.toMillis === _this.maxMillis && (_this.toMillis - _this.fromMillis === d[1]));\r\n };\r\n this.quickTimesPanel.selectAll('.tsi-quickTime')\r\n .classed('tsi-isSelected', isSelected)\r\n .attr('aria-pressed', isSelected);\r\n };\r\n DateTimePicker.prototype.setFromDate = function (calendarDate) {\r\n var convertedFrom = new Date(Utils.offsetFromUTC(new Date(this.fromMillis), this.chartOptions.offset));\r\n convertedFrom.setUTCFullYear(calendarDate.getFullYear());\r\n convertedFrom.setUTCMonth(calendarDate.getMonth());\r\n convertedFrom.setUTCDate(calendarDate.getDate());\r\n this.setFromMillis(Utils.offsetToUTC(convertedFrom, this.chartOptions.offset).valueOf());\r\n };\r\n DateTimePicker.prototype.setToDate = function (calendarDate) {\r\n var convertedTo = new Date(Utils.offsetFromUTC(new Date(this.toMillis), this.chartOptions.offset));\r\n convertedTo.setUTCFullYear(calendarDate.getFullYear());\r\n convertedTo.setUTCMonth(calendarDate.getMonth());\r\n convertedTo.setUTCDate(calendarDate.getDate());\r\n this.setToMillis(Utils.offsetToUTC(convertedTo, this.chartOptions.offset).valueOf());\r\n };\r\n DateTimePicker.prototype.setIsSaveable = function (isSaveable) {\r\n // For now, lets allow users to save the time even in the presence of errors\r\n this.dateTimeSelectionPanel.select(\".tsi-saveButtonContainer\").select(\".tsi-saveButton\")\r\n .attr(\"disabled\", isSaveable ? null : true)\r\n .classed(\"tsi-buttonDisabled\", !isSaveable);\r\n this.isValid = isSaveable;\r\n };\r\n //line up the seconds and millis with the second and millis of the max date\r\n DateTimePicker.prototype.adjustSecondsAndMillis = function (rawMillis) {\r\n var currDate = new Date(rawMillis);\r\n var maxDate = new Date(this.maxMillis);\r\n currDate.setUTCSeconds(maxDate.getUTCSeconds());\r\n currDate.setUTCMilliseconds(maxDate.getUTCMilliseconds());\r\n return currDate.valueOf();\r\n };\r\n DateTimePicker.prototype.setFromMillis = function (millis) {\r\n var rangeErrorCheck = this.rangeIsValid(millis, this.toMillis);\r\n this.fromMillis = millis;\r\n this.setIsSaveable(rangeErrorCheck.isSaveable);\r\n this.displayRangeErrors(rangeErrorCheck.errors);\r\n this.setSelectedQuickTimes();\r\n };\r\n DateTimePicker.prototype.setToMillis = function (millis) {\r\n var rangeErrorCheck = this.rangeIsValid(this.fromMillis, millis);\r\n this.toMillis = millis;\r\n this.setIsSaveable(rangeErrorCheck.isSaveable);\r\n this.displayRangeErrors(rangeErrorCheck.errors);\r\n this.setSelectedQuickTimes();\r\n };\r\n DateTimePicker.prototype.displayRangeErrors = function (rangeErrors) {\r\n this.targetElement.select(\".tsi-errorMessageContainer\").selectAll(\".tsi-errorMessage\").remove();\r\n if (rangeErrors.length != 0) {\r\n this.targetElement.select(\".tsi-errorMessageContainer\").selectAll(\".tsi-errorMessages\")\r\n .data(rangeErrors)\r\n .enter()\r\n .append(\"div\")\r\n .classed(\"tsi-errorMessage\", true)\r\n .attr('role', 'alert')\r\n .attr('aria-live', 'assertive')\r\n .text(function (d) { return d; });\r\n }\r\n };\r\n DateTimePicker.prototype.rangeIsValid = function (prospectiveFromMillis, prospectiveToMillis) {\r\n var accumulatedErrors = [];\r\n var isSaveable = true;\r\n var bothTimesValid = !isNaN(prospectiveFromMillis) && !isNaN(prospectiveToMillis);\r\n if (isNaN(prospectiveFromMillis)) {\r\n accumulatedErrors.push(\"*Invalid Start date/time\");\r\n isSaveable = false;\r\n }\r\n if (isNaN(prospectiveToMillis)) {\r\n accumulatedErrors.push(\"*Invalid end date/time\");\r\n isSaveable = false;\r\n }\r\n if (bothTimesValid) {\r\n if (prospectiveFromMillis > prospectiveToMillis) {\r\n accumulatedErrors.push(\"*Start time must be before end time\");\r\n isSaveable = false;\r\n }\r\n if (prospectiveFromMillis < this.minMillis) {\r\n accumulatedErrors.push(\"*Start time is before first possible time (\" + this.getTimeFormat()(this.minMillis) + \")\");\r\n }\r\n if (prospectiveFromMillis > this.maxMillis) {\r\n accumulatedErrors.push(\"*Start time is after last possible time (\" + this.getTimeFormat()(this.maxMillis) + \")\");\r\n }\r\n if (prospectiveToMillis > this.maxMillis) {\r\n accumulatedErrors.push(\"*End time is after last possible time (\" + this.getTimeFormat()(this.maxMillis) + \")\");\r\n }\r\n if (prospectiveToMillis < this.minMillis) {\r\n accumulatedErrors.push(\"*End time is before first possible time (\" + this.getTimeFormat()(this.minMillis) + \")\");\r\n }\r\n }\r\n return {\r\n rangeIsValid: (accumulatedErrors.length == 0),\r\n errors: accumulatedErrors,\r\n isSaveable: isSaveable\r\n };\r\n };\r\n DateTimePicker.prototype.updateDisplayedFromDateTime = function (fromInput) {\r\n if (fromInput === void 0) { fromInput = false; }\r\n this.calendarPicker.setStartRange(this.convertToCalendarDate(this.fromMillis));\r\n if (!fromInput)\r\n this.setTimeInputBox(new Date(this.fromMillis), true);\r\n };\r\n DateTimePicker.prototype.updateDisplayedToDateTime = function (fromInput) {\r\n if (fromInput === void 0) { fromInput = false; }\r\n this.calendarPicker.setEndRange(this.convertToCalendarDate(this.toMillis));\r\n if (!fromInput)\r\n this.setTimeInputBox(new Date(this.toMillis), false);\r\n };\r\n DateTimePicker.prototype.offsetUTC = function (date) {\r\n var dateCopy = new Date(date.valueOf());\r\n dateCopy.setTime(dateCopy.getTime() - dateCopy.getTimezoneOffset() * 60 * 1000);\r\n return dateCopy;\r\n };\r\n DateTimePicker.prototype.offsetFromUTC = function (date) {\r\n var dateCopy = new Date(date.valueOf());\r\n dateCopy.setTime(dateCopy.getTime() + dateCopy.getTimezoneOffset() * 60 * 1000);\r\n return dateCopy;\r\n };\r\n DateTimePicker.prototype.checkDateTimeValidity = function () {\r\n var parsedFrom = Utils.parseUserInputDateTime(this.fromInput.node().value, this.chartOptions.offset);\r\n var parsedTo = Utils.parseUserInputDateTime(this.toInput.node().value, this.chartOptions.offset);\r\n var rangeErrorCheck = this.rangeIsValid(parsedFrom, parsedTo);\r\n this.setIsSaveable(rangeErrorCheck.isSaveable);\r\n this.displayRangeErrors(rangeErrorCheck.errors);\r\n };\r\n DateTimePicker.prototype.setTimeInputBox = function (utcDate, isFrom) {\r\n if (isFrom) {\r\n this.fromInput.node().value = this.createTimeString(utcDate);\r\n }\r\n else {\r\n this.toInput.node().value = this.createTimeString(utcDate);\r\n }\r\n };\r\n DateTimePicker.prototype.createTimePicker = function () {\r\n var _this = this;\r\n var timeInputContainer = this.timeControls.append(\"div\").attr(\"class\", \"tsi-timeInputContainer\");\r\n var createTimePicker = function (startOrEnd) {\r\n var fromOrToContainer = timeInputContainer.append(\"div\").classed(\"tsi-\" + startOrEnd + \"Container\", true);\r\n var inputLabelID = Utils.guid();\r\n var inputID = inputLabelID + 'Input';\r\n var timeLabel = fromOrToContainer.append(\"label\")\r\n .classed(\"tsi-timeLabel\", true)\r\n .attr('id', inputLabelID)\r\n .attr('for', inputID)\r\n .attr('aria-label', \"\" + (startOrEnd === 'start' ? _this.getString('Start time input') : _this.getString('End time input')))\r\n .text(_this.getString(startOrEnd));\r\n timeLabel.append(\"span\")\r\n .classed(\"tsi-timeRequired\", true)\r\n .text(_this.getString('*'));\r\n var inputName = startOrEnd === 'start' ? 'fromInput' : 'toInput';\r\n _this[inputName] = fromOrToContainer.append('input')\r\n .attr('class', 'tsi-dateTimeInput', true)\r\n .attr('aria-labelledby', inputLabelID)\r\n .attr('required', true)\r\n .attr('id', inputID)\r\n .on('input', function () {\r\n var rangeErrorCheck = _this.checkDateTimeValidity();\r\n _this.isSettingStartTime = true;\r\n if (_this.isValid) {\r\n if (startOrEnd === 'start') {\r\n var parsedFrom = Utils.parseUserInputDateTime(_this.fromInput.node().value, _this.chartOptions.offset);\r\n _this.setFromMillis(parsedFrom);\r\n _this.updateDisplayedFromDateTime(true);\r\n _this.calendarPicker.draw();\r\n }\r\n else {\r\n var parsedTo = Utils.parseUserInputDateTime(_this.toInput.node().value, _this.chartOptions.offset);\r\n _this.setToMillis(parsedTo);\r\n _this.updateDisplayedToDateTime(true);\r\n _this.calendarPicker.draw();\r\n }\r\n }\r\n });\r\n if (startOrEnd == 'end') {\r\n fromOrToContainer.append(\"button\")\r\n .attr(\"class\", \"tsi-snapToEndRangeButton\")\r\n .text(_this.getString(\"Latest\"))\r\n .attr('aria-label', _this.getString('snap end time to latest'))\r\n .on(\"click\", function () {\r\n if (!_this.isSettingStartTime) {\r\n _this.setFromDate(_this.startRange);\r\n }\r\n _this.setToMillis(_this.maxMillis);\r\n _this.updateDisplayedFromDateTime();\r\n _this.updateDisplayedToDateTime();\r\n _this.isSettingStartTime = true;\r\n _this.calendarPicker.draw();\r\n });\r\n }\r\n };\r\n createTimePicker(\"start\");\r\n createTimePicker(\"end\");\r\n };\r\n return DateTimePicker;\r\n}(ChartComponent));\r\nexport default DateTimePicker;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport Utils from \"../Utils\";\r\nimport { ChartComponent } from \"./ChartComponent\";\r\nvar DateTimeButton = /** @class */ (function (_super) {\r\n __extends(DateTimeButton, _super);\r\n function DateTimeButton(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.pickerIsVisible = false;\r\n return _this;\r\n }\r\n DateTimeButton.prototype.buttonDateTimeFormat = function (millis) {\r\n return Utils.timeFormat(!this.chartOptions.minutesForTimeLabels, !this.chartOptions.minutesForTimeLabels, this.chartOptions.offset, this.chartOptions.is24HourTime, 0, null, this.chartOptions.dateLocale)(millis);\r\n };\r\n DateTimeButton.prototype.render = function (chartOptions, minMillis, maxMillis, onSet) {\r\n if (onSet === void 0) { onSet = null; }\r\n var self = this;\r\n this.chartOptions.setOptions(chartOptions);\r\n this.minMillis = minMillis;\r\n this.maxMillis = maxMillis;\r\n this.onSet = onSet ? onSet : function () { };\r\n var dateTimeContainer = d3.select(this.renderTarget);\r\n if (!this.dateTimeButton) {\r\n this.dateTimeButton = dateTimeContainer.append(\"button\")\r\n .classed('tsi-dateTimeButton', true);\r\n }\r\n if (!this.dateTimePickerContainer) {\r\n this.dateTimePickerContainer = dateTimeContainer.append('div').classed('tsi-dateTimePickerContainer', true)\r\n .attr('role', 'dialog')\r\n .attr('aria-label', this.getString('a time selection control dialog'));\r\n this.dateTimePickerContainer.style('display', 'none');\r\n }\r\n _super.prototype.themify.call(this, d3.select(this.renderTarget), this.chartOptions.theme);\r\n };\r\n return DateTimeButton;\r\n}(ChartComponent));\r\nexport { DateTimeButton };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './DateTimeButtonRange.scss';\r\nimport { DateTimeButton } from '../../Interfaces/DateTimeButton';\r\nimport DateTimePicker from '../DateTimePicker/DateTimePicker';\r\nimport Utils from '../../Utils';\r\nvar DateTimeButtonRange = /** @class */ (function (_super) {\r\n __extends(DateTimeButtonRange, _super);\r\n function DateTimeButtonRange(renderTarget) {\r\n return _super.call(this, renderTarget) || this;\r\n }\r\n DateTimeButtonRange.prototype.setButtonText = function (fromMillis, toMillis, isRelative, quickTime) {\r\n var fromString = this.buttonDateTimeFormat(fromMillis);\r\n var tzAbbr = Utils.createTimezoneAbbreviation(this.chartOptions.offset);\r\n var toString = this.buttonDateTimeFormat(toMillis) + ' (' + tzAbbr + ')';\r\n if (!isRelative) {\r\n this.dateTimeButton.text(fromString + \" - \" + toString);\r\n this.dateTimeButton.attr('aria-label', this.getString('a button to launch a time selection dialog current selected time is ') + \" \" + fromString + \" - \" + toString);\r\n }\r\n else {\r\n var quickTimeText = this.dateTimePicker.getQuickTimeText(quickTime);\r\n var text = quickTimeText !== null ? quickTimeText + \" (\" + fromString + \" - \" + toString + \")\" : fromString + \" - \" + this.getString('Latest') + \" (\" + toString + \")\";\r\n this.dateTimeButton.text(text);\r\n this.dateTimeButton.attr('aria-label', this.getString('a button to launch a time selection dialog current selected time is ') + \" \" + text);\r\n }\r\n };\r\n DateTimeButtonRange.prototype.onClose = function () {\r\n this.dateTimePickerContainer.style(\"display\", \"none\");\r\n this.dateTimeButton.node().focus();\r\n };\r\n DateTimeButtonRange.prototype.render = function (chartOptions, minMillis, maxMillis, fromMillis, toMillis, onSet, onCancel) {\r\n var _this = this;\r\n if (chartOptions === void 0) { chartOptions = {}; }\r\n if (fromMillis === void 0) { fromMillis = null; }\r\n if (toMillis === void 0) { toMillis = null; }\r\n if (onSet === void 0) { onSet = null; }\r\n if (onCancel === void 0) { onCancel = null; }\r\n _super.prototype.render.call(this, chartOptions, minMillis, maxMillis, onSet);\r\n d3.select(this.renderTarget).classed('tsi-dateTimeContainerRange', true);\r\n this.fromMillis = fromMillis;\r\n this.toMillis = toMillis;\r\n this.onCancel = onCancel ? onCancel : function () { };\r\n if (!this.dateTimePicker) {\r\n this.dateTimePicker = new DateTimePicker(this.dateTimePickerContainer.node());\r\n }\r\n this.setButtonText(fromMillis, toMillis, toMillis === maxMillis, this.toMillis - this.fromMillis);\r\n this.dateTimeButton.on(\"click\", function () {\r\n if (_this.dateTimePickerContainer.style(\"display\") !== \"none\") {\r\n _this.onClose(); // close if already open\r\n }\r\n else {\r\n _this.chartOptions.dTPIsModal = true;\r\n _this.dateTimePickerContainer.style(\"display\", \"block\");\r\n _this.dateTimePicker.render(_this.chartOptions, minMillis, maxMillis, _this.fromMillis, _this.toMillis, function (fromMillis, toMillis, offset, isRelative, currentQuickTime) {\r\n _this.chartOptions.offset = offset;\r\n _this.fromMillis = fromMillis;\r\n _this.toMillis = toMillis;\r\n _this.setButtonText(fromMillis, toMillis, isRelative, currentQuickTime);\r\n _this.onSet(fromMillis, toMillis, offset);\r\n _this.onClose();\r\n }, function () {\r\n _this.onClose();\r\n _this.onCancel();\r\n });\r\n }\r\n });\r\n };\r\n return DateTimeButtonRange;\r\n}(DateTimeButton));\r\nexport default DateTimeButtonRange;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from \"d3\";\r\nimport \"./AvailabilityChart.scss\";\r\nimport LineChart from \"../LineChart/LineChart\";\r\nimport DateTimePicker from \"../DateTimePicker/DateTimePicker\";\r\nimport Utils from \"../../Utils\";\r\nimport { ChartComponent } from \"../../Interfaces/ChartComponent\";\r\nimport UXClient from \"../../UXClient\";\r\nimport DateTimeButtonRange from \"../DateTimeButtonRange/DateTimeButtonRange\";\r\nvar AvailabilityChart = /** @class */ (function (_super) {\r\n __extends(AvailabilityChart, _super);\r\n function AvailabilityChart(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.minBrushWidth = 5;\r\n _this.minGhostWidth = 2;\r\n _this.margins = {\r\n left: 10,\r\n right: 10\r\n };\r\n _this.uxClient = new UXClient();\r\n return _this;\r\n }\r\n //the most zoomed in possible\r\n AvailabilityChart.prototype.getMinZoomedRange = function () {\r\n var maxZoomFactor = (this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]) / this.minBrushWidth;\r\n var totalTimeRange = this.toMillis - this.fromMillis;\r\n return totalTimeRange / maxZoomFactor;\r\n };\r\n AvailabilityChart.prototype.zoom = function (event, direction, xPos) {\r\n if (this.chartOptions.isCompact)\r\n return;\r\n var range = Math.max(this.getMinZoomedRange(), (this.zoomedToMillis - this.zoomedFromMillis));\r\n var percentile = (xPos - this.sparkLineChart.x.range()[0]) /\r\n (this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]);\r\n var leftImpact = percentile * .2 * range;\r\n var rightImpact = (1 - percentile) * .2 * range;\r\n if (direction == 'out') {\r\n this.zoomedFromMillis = Math.max(this.zoomedFromMillis - leftImpact, this.fromMillis);\r\n this.zoomedToMillis = Math.min(this.zoomedToMillis + rightImpact, this.toMillis);\r\n }\r\n else {\r\n var prospectiveFromMillis = Math.max(this.zoomedFromMillis + leftImpact, this.fromMillis);\r\n var prospectiveToMillis = Math.min(this.zoomedToMillis - rightImpact, this.toMillis);\r\n if (prospectiveToMillis - prospectiveFromMillis >= this.getMinZoomedRange()) {\r\n this.zoomedFromMillis = prospectiveFromMillis;\r\n this.zoomedToMillis = prospectiveToMillis;\r\n }\r\n else {\r\n var offBy = this.getMinZoomedRange() - (prospectiveToMillis - prospectiveFromMillis);\r\n this.zoomedFromMillis = prospectiveFromMillis - (percentile * offBy);\r\n this.zoomedToMillis = prospectiveToMillis + ((1 - percentile) * offBy);\r\n }\r\n }\r\n this.setAvailabilityRange(this.zoomedFromMillis, this.zoomedToMillis);\r\n this.sparkLineChart.setBrushEndTime(new Date(this.zoomedToMillis));\r\n this.sparkLineChart.setBrushStartTime(new Date(this.zoomedFromMillis));\r\n this.sparkLineChart.setBrush();\r\n this.timePickerLineChart.drawBrushRange();\r\n event.preventDefault && event.preventDefault();\r\n };\r\n AvailabilityChart.prototype.setChartOptions = function (chartOptions) {\r\n this.chartOptions.setOptions(__assign(__assign({}, chartOptions), {\r\n keepBrush: true,\r\n isArea: true,\r\n noAnimate: true,\r\n minutesForTimeLabels: true,\r\n aggTopMargin: 0,\r\n yAxisHidden: true,\r\n focusHidden: true,\r\n singleLineXAxisLabel: false\r\n }));\r\n };\r\n AvailabilityChart.prototype.dateTimePickerAction = function (fromMillis, toMillis) {\r\n this.setBrush(fromMillis, toMillis, true);\r\n this.chartOptions.brushMoveEndAction(new Date(fromMillis), new Date(toMillis), this.chartOptions.offset);\r\n this.setTicks();\r\n this.dateTimePickerContainer.style(\"display\", \"none\");\r\n };\r\n //transformation of buckets created by the UX client to buckets for the availabilityChart\r\n AvailabilityChart.prototype.createDisplayBuckets = function (fromMillis, toMillis) {\r\n var _this = this;\r\n var keysInRange = Object.keys(this.transformedAvailability[0].availabilityCount[\"\"]).reduce(function (inRangeObj, timestamp, i, timestamps) {\r\n var currTSMillis = (new Date(timestamp)).valueOf();\r\n var nextTSMillis = currTSMillis + _this.bucketSize;\r\n if (currTSMillis >= fromMillis && currTSMillis <= toMillis) {\r\n inRangeObj[(new Date(currTSMillis)).toISOString()] = _this.transformedAvailability[0].availabilityCount[\"\"][timestamp];\r\n return inRangeObj;\r\n }\r\n if (currTSMillis < fromMillis && nextTSMillis > fromMillis) {\r\n inRangeObj[(new Date(fromMillis)).toISOString()] = _this.transformedAvailability[0].availabilityCount[\"\"][timestamp];\r\n return inRangeObj;\r\n }\r\n return inRangeObj;\r\n }, {});\r\n var rawBucketCount = Math.ceil((toMillis - fromMillis) / this.bucketSize);\r\n var bucketMultiplier = Math.ceil(rawBucketCount / this.maxBuckets);\r\n var computedBucketSize = this.bucketSize * bucketMultiplier;\r\n var createKey = function (millis) { return Math.round(Math.floor(millis / computedBucketSize) * computedBucketSize); };\r\n var firstBucket = createKey(fromMillis);\r\n var lastBucket = createKey(toMillis);\r\n var buckets = [];\r\n for (var i = firstBucket; i <= lastBucket; i += computedBucketSize) {\r\n buckets[(new Date(i)).toISOString()] = { count: 0 };\r\n }\r\n Object.keys(keysInRange).sort().forEach(function (ts, i) {\r\n var tsMillis = (new Date(ts)).valueOf();\r\n var computedKey = createKey(tsMillis);\r\n buckets[(new Date(computedKey)).toISOString()].count += (keysInRange[ts].count / bucketMultiplier);\r\n });\r\n if (fromMillis !== null && firstBucket !== null) {\r\n buckets[(new Date(fromMillis)).toISOString()] = buckets[(new Date(firstBucket)).toISOString()];\r\n }\r\n if (toMillis !== null && lastBucket !== null) {\r\n buckets[(new Date(toMillis)).toISOString()] = buckets[(new Date(lastBucket)).toISOString()];\r\n }\r\n // delete the bucket before the from time\r\n if (firstBucket < fromMillis) {\r\n delete buckets[(new Date(firstBucket)).toISOString()];\r\n }\r\n return [{ \"availabilityCount\": { \"\": buckets } }];\r\n };\r\n AvailabilityChart.prototype.setRangeVariables = function (rawAvailability) {\r\n if (Utils.safeNotNullOrUndefined(function () { return rawAvailability.range.from || rawAvailability.range.to || rawAvailability.intervalSize; })) {\r\n this.fromMillis = (new Date(rawAvailability.range.from)).valueOf();\r\n this.toMillis = (new Date(rawAvailability.range.to)).valueOf();\r\n this.bucketSize = Utils.parseTimeInput(rawAvailability.intervalSize);\r\n }\r\n else {\r\n this.fromMillis = null;\r\n this.toMillis = null;\r\n this.bucketSize = null;\r\n }\r\n };\r\n AvailabilityChart.prototype.render = function (transformedAvailability, chartOptions, rawAvailability) {\r\n var _this = this;\r\n if (rawAvailability === void 0) { rawAvailability = {}; }\r\n this.setChartOptions(chartOptions);\r\n this.rawAvailability = rawAvailability;\r\n this.transformedAvailability = transformedAvailability;\r\n this.color = this.chartOptions.color ? this.chartOptions.color : 'teal';\r\n this.maxBuckets = (this.chartOptions.maxBuckets) ? this.chartOptions.maxBuckets : 500;\r\n this.setRangeVariables(rawAvailability);\r\n var startBucket = (this.fromMillis !== null && this.bucketSize !== null) ?\r\n Math.round(Math.floor(this.fromMillis / this.bucketSize) * this.bucketSize) : null;\r\n var endBucket = (this.toMillis !== null && this.bucketSize !== null) ?\r\n Math.round(Math.floor(this.toMillis / this.bucketSize) * this.bucketSize) : null;\r\n if (startBucket !== null && startBucket === endBucket) {\r\n this.fromMillis = Math.floor(this.fromMillis / this.bucketSize) * this.bucketSize;\r\n this.toMillis = this.fromMillis + this.bucketSize;\r\n this.bucketSize = this.bucketSize / 60;\r\n }\r\n this.ae = [new this.uxClient.AggregateExpression({ predicateString: \"\" }, { property: 'Count', type: \"Double\" }, ['count'], { from: new Date(this.fromMillis), to: new Date(this.toMillis) }, null, 'grey', 'Availability')];\r\n this.targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-availabilityChart\", true)\r\n .classed(\"tsi-compact\", this.chartOptions.isCompact)\r\n .classed(\"tsi-withButton\", this.chartOptions.persistDateTimeButtonRange);\r\n this.chartOptions.yAxisHidden = true;\r\n this.chartOptions.focusHidden = true;\r\n this.chartOptions.singleLineXAxisLabel = true;\r\n this.chartOptions.suppressResizeListener = true;\r\n this.chartOptions.brushClearable = false;\r\n this.chartOptions.minBrushWidth = 1;\r\n this.chartOptions.brushHandlesVisible = true;\r\n var brushMoveAction = this.chartOptions.brushMoveAction;\r\n this.chartOptions.brushMoveAction = function (from, to) {\r\n _this.setFromAndToTimes(from.valueOf(), to.valueOf());\r\n _this.drawGhost();\r\n if (_this.chartOptions.isCompact) {\r\n _this.buildCompactFromAndTo();\r\n }\r\n if (brushMoveAction != null)\r\n brushMoveAction(from, to);\r\n };\r\n _super.prototype.themify.call(this, this.targetElement, chartOptions.theme);\r\n if (this.timePickerContainer == null) {\r\n this.targetElement.html(\"\");\r\n this.timePickerContainer = this.targetElement.append(\"div\")\r\n .classed(\"tsi-timePickerContainer\", true);\r\n this.timePickerChart = this.timePickerContainer.append(\"div\").classed(\"tsi-timePickerChart\", true);\r\n var sparkLineContainer = this.targetElement.append(\"div\").classed(\"tsi-sparklineContainer\", true);\r\n this.timePickerTextContainer = this.targetElement.append(\"div\").classed(\"tsi-timePickerTextContainer\", true)\r\n .style(\"margin-left\", this.chartOptions.availabilityLeftMargin + this.margins.left);\r\n this.timePickerLineChart = new LineChart(this.timePickerChart.node());\r\n this.timePickerLineChart.chartMargins.left = (this.chartOptions.availabilityLeftMargin - this.margins.left);\r\n this.buildFromAndToContainer();\r\n this.sparkLineChart = new LineChart(sparkLineContainer.node());\r\n this.sparkLineChart.chartMargins.left = (this.chartOptions.availabilityLeftMargin - this.margins.left);\r\n this.dateTimePickerContainer = this.targetElement.append(\"div\").classed(\"tsi-dateTimePickerContainer\", true);\r\n this.dateTimePicker = new DateTimePicker(this.dateTimePickerContainer.node());\r\n window.addEventListener('resize', function () {\r\n _this.timePickerLineChart.draw();\r\n _this.setTicks();\r\n _this.drawWarmRange();\r\n if (_this.chartOptions.isCompact)\r\n _this.buildCompactFromAndTo();\r\n setTimeout(function () {\r\n _this.drawGhost();\r\n }, 100);\r\n });\r\n var pickerContainerAndContent = this.targetElement.selectAll(\".tsi-dateTimePickerContainer, .tsi-dateTimePickerContainer *\");\r\n }\r\n //clear the date time picker\r\n this.dateTimePickerContainer.style(\"display\", \"none\");\r\n this.timePickerContainer.selectAll('.tsi-compactFromTo').remove();\r\n if (this.chartOptions.isCompact) {\r\n this.targetElement.select('.tsi-sparklineContainer').style(\"display\", 'none');\r\n if (!this.chartOptions.persistDateTimeButtonRange)\r\n this.targetElement.select(\".tsi-timePickerTextContainer\").style('display', 'none');\r\n this.targetElement.select('.tsi-zoomButtonContainer').style('display', 'none');\r\n this.targetElement.select('.tsi-timePickerContainer').style('max-height', '68px').style('top', this.chartOptions.persistDateTimeButtonRange ? '6px' : '20px');\r\n }\r\n else {\r\n this.targetElement.select('.tsi-sparklineContainer').style(\"display\", 'flex');\r\n this.targetElement.select(\".tsi-timePickerTextContainer\").style('display', 'inherit');\r\n this.targetElement.select('.tsi-zoomButtonContainer').style('display', 'flex');\r\n this.targetElement.select('.tsi-timePickerContainer').style('max-height', 'none').style('top', '0px');\r\n }\r\n var sparkLineOptions = this.createSparkLineOptions(chartOptions);\r\n var visibileAvailability = this.createDisplayBuckets(this.fromMillis, this.toMillis);\r\n this.sparkLineChart.render(visibileAvailability, sparkLineOptions, this.ae);\r\n this.timePickerLineChart.render(visibileAvailability, this.chartOptions, this.ae);\r\n this.setTicks();\r\n this.drawWarmRange();\r\n if (!this.chartOptions.preserveAvailabilityState) {\r\n this.zoomedToMillis = this.toMillis;\r\n this.zoomedFromMillis = this.chartOptions.defaultAvailabilityZoomRangeMillis ? Math.max(this.fromMillis, this.toMillis - this.chartOptions.defaultAvailabilityZoomRangeMillis) : this.fromMillis;\r\n this.sparkLineChart.setBrushStartTime(new Date(this.zoomedFromMillis));\r\n this.sparkLineChart.setBrushEndTime(new Date(this.zoomedToMillis));\r\n this.setFromAndToTimes(Math.max(this.fromMillis, this.toMillis - (24 * 60 * 60 * 1000)), this.toMillis);\r\n this.setBrush(Math.max(this.fromMillis, this.toMillis - (24 * 60 * 60 * 1000)), this.toMillis);\r\n }\r\n else {\r\n if (this.zoomedFromMillis == null)\r\n this.zoomedFromMillis = this.chartOptions.defaultAvailabilityZoomRangeMillis ? Math.max(this.fromMillis, this.toMillis - this.chartOptions.defaultAvailabilityZoomRangeMillis) : this.fromMillis;\r\n if (this.zoomedToMillis == null)\r\n this.zoomedToMillis = this.toMillis;\r\n if (this.sparkLineChart.brushStartTime == null)\r\n this.sparkLineChart.setBrushStartTime(new Date(this.zoomedFromMillis));\r\n if (this.sparkLineChart.brushEndTime == null)\r\n this.sparkLineChart.setBrushEndTime(new Date(this.zoomedToMillis));\r\n if (this.selectedFromMillis == null || this.selectedToMillis == null)\r\n this.setFromAndToTimes(this.toMillis - (24 * 60 * 60 * 1000), this.toMillis);\r\n this.drawGhost();\r\n this.setBrush(this.selectedFromMillis, this.selectedToMillis);\r\n }\r\n this.sparkLineChart.setBrush();\r\n var self = this;\r\n this.timePickerChart.select(\".brushElem\").on(\"wheel.zoom\", function (event, d) {\r\n var direction = event.deltaY > 0 ? 'out' : 'in';\r\n var xPos = (d3.pointer(event)[0]);\r\n self.zoom(event, direction, xPos);\r\n });\r\n if (!this.chartOptions.isCompact) {\r\n this.buildZoomButtons();\r\n }\r\n else {\r\n this.timePickerChart.select('.brushElem').select('.selection');\r\n }\r\n this.setAvailabilityRange(this.zoomedFromMillis, this.zoomedToMillis);\r\n if (this.chartOptions.isCompact) {\r\n this.buildCompactFromAndTo();\r\n }\r\n this.timePickerLineChart.drawBrushRange();\r\n };\r\n AvailabilityChart.prototype.buildZoomButtons = function () {\r\n var _this = this;\r\n this.targetElement.selectAll(\".tsi-zoomButtonContainer\").remove();\r\n var midpoint = (this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]) / 2;\r\n var buttonsDiv = this.targetElement.append(\"div\")\r\n .classed(\"tsi-zoomButtonContainer\", true);\r\n buttonsDiv.append(\"button\")\r\n .attr(\"class\", \"tsi-zoomButton tsi-zoomButtonIn\")\r\n .attr('aria-label', this.getString('A line chart zoom in'))\r\n .attr('title', this.getString('zoom in'))\r\n .on(\"click\", function (event) {\r\n _this.zoom(event, \"in\", midpoint);\r\n });\r\n buttonsDiv.append(\"button\")\r\n .attr(\"class\", \"tsi-zoomButton tsi-zoomButtonOut\")\r\n .attr('aria-label', this.getString('A line chart zoom out'))\r\n .attr('title', this.getString('zoom out'))\r\n .on(\"click\", function (event) {\r\n _this.zoom(event, \"out\", midpoint);\r\n });\r\n };\r\n AvailabilityChart.prototype.setSelectedMillis = function (fromMillis, toMillis) {\r\n this.selectedFromMillis = fromMillis;\r\n this.selectedToMillis = toMillis;\r\n this.timePickerLineChart.drawBrushRange();\r\n };\r\n AvailabilityChart.prototype.renderDateTimeButton = function () {\r\n var _this = this;\r\n var minMillis = this.fromMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.fromMillis) * 60 * 1000);\r\n var maxMillis = this.toMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.toMillis) * 60 * 1000);\r\n var startMillis = this.selectedFromMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.selectedFromMillis) * 60 * 1000);\r\n var endMillis = this.selectedToMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.selectedFromMillis) * 60 * 1000);\r\n this.dateTimeButton.render(this.chartOptions, this.fromMillis, this.toMillis, this.selectedFromMillis, this.selectedToMillis, function (fromMillis, toMillis, offset) {\r\n _this.chartOptions.offset = offset;\r\n _this.timePickerLineChart.chartOptions.offset = offset;\r\n _this.sparkLineChart.chartOptions.offset = offset;\r\n _this.dateTimePickerAction(fromMillis, toMillis);\r\n d3.select(_this.renderTarget).select(\".tsi-dateTimeContainer\").node().focus();\r\n }, function () {\r\n _this.dateTimePickerContainer.style(\"display\", \"none\");\r\n d3.select(_this.renderTarget).select(\".tsi-dateTimeContainer\").node().focus();\r\n });\r\n };\r\n AvailabilityChart.prototype.setFromAndToTimes = function (fromMillis, toMillis, isFromButton) {\r\n if (isFromButton === void 0) { isFromButton = false; }\r\n var timezone = Utils.parseTimezoneName(this.chartOptions.offset);\r\n var timezoneAbbreviation = Utils.timezoneAbbreviation(timezone);\r\n this.setSelectedMillis(fromMillis, toMillis);\r\n if (!isFromButton) {\r\n this.renderDateTimeButton();\r\n }\r\n };\r\n AvailabilityChart.prototype.drawGhost = function () {\r\n var svgGroup = this.targetElement.select('.tsi-sparklineContainer').select(\".tsi-lineChartSVG\").select(\".svgGroup\");\r\n svgGroup.selectAll(\".ghostRect\").remove();\r\n svgGroup.append(\"rect\")\r\n .classed(\"ghostRect\", true)\r\n .attr(\"x\", Math.max(this.sparkLineChart.x.range()[0], this.sparkLineChart.x(new Date(this.selectedFromMillis))))\r\n .attr(\"y\", 0)\r\n .attr(\"width\", Math.min(Math.max(this.minGhostWidth, this.sparkLineChart.x(new Date(this.selectedToMillis)) - this.sparkLineChart.x(new Date(this.selectedFromMillis))), this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]))\r\n .attr(\"height\", 8)\r\n .attr(\"fill\", this.chartOptions.color ? this.chartOptions.color : 'dark-grey')\r\n .attr(\"fill-opacity\", .3)\r\n .attr(\"pointer-events\", \"none\");\r\n };\r\n AvailabilityChart.prototype.drawWarmRange = function () {\r\n var svgGroup = this.targetElement.select('.tsi-timePickerContainer').select(\".tsi-lineChartSVG\").select(\".svgGroup\");\r\n if (svgGroup.select('.tsi-warmRect').empty()) {\r\n svgGroup.append(\"rect\")\r\n .classed(\"tsi-warmRect\", true);\r\n svgGroup.select('.brushElem').raise();\r\n }\r\n var warmRect = svgGroup.select(\".tsi-warmRect\");\r\n var outOfRange = true;\r\n if (this.chartOptions.warmStoreRange) {\r\n var warmStart = new Date(this.chartOptions.warmStoreRange[0]);\r\n var boundedWarmStart = new Date(Math.max(warmStart.valueOf(), this.zoomedFromMillis));\r\n var warmEnd = new Date(this.chartOptions.warmStoreRange.length === 2 ? this.chartOptions.warmStoreRange[1] : this.toMillis);\r\n var boundedWarmEnd = new Date(Math.min(warmEnd.valueOf(), this.zoomedToMillis));\r\n if (boundedWarmStart < boundedWarmEnd) {\r\n outOfRange = false;\r\n warmRect.attr(\"x\", Math.max(this.timePickerLineChart.x(boundedWarmStart)))\r\n .attr(\"y\", this.chartOptions.isCompact ? 12 : -8)\r\n .attr(\"width\", this.timePickerLineChart.x(boundedWarmEnd) - this.timePickerLineChart.x(boundedWarmStart))\r\n .attr(\"height\", this.chartOptions.isCompact ? 4 : Math.max((this.targetElement.select('.tsi-timePickerContainer').select(\".tsi-lineChartSVG\").node().getBoundingClientRect().height - 44), 0))\r\n .attr(\"fill-opacity\", this.chartOptions.isCompact ? .8 : .08)\r\n .attr('stroke-opacity', this.chartOptions.isCompact ? 0 : .5)\r\n .attr(\"pointer-events\", \"none\");\r\n }\r\n }\r\n if (outOfRange || this.chartOptions.warmStoreRange === null) {\r\n warmRect.style('display', 'none');\r\n }\r\n else {\r\n warmRect.style('display', 'block');\r\n }\r\n };\r\n AvailabilityChart.prototype.buildCompactFromAndTo = function () {\r\n this.timePickerContainer.selectAll('.tsi-compactFromTo').remove();\r\n // if the view is compact and there is a datetimebuttonrange present, we don't need compact from and to\r\n if (this.chartOptions.persistDateTimeButtonRange)\r\n return;\r\n var brushPositions = this.timePickerLineChart.getBrushPositions();\r\n var leftTimeText = null;\r\n var rightTimeText = null;\r\n if (this.selectedFromMillis != null && this.selectedToMillis != null) {\r\n leftTimeText = this.timePickerContainer.append('div')\r\n .classed('tsi-compactFromTo', true)\r\n .style('left', (brushPositions.leftPos != null ? Math.max(brushPositions.leftPos, 5) : 5) + 'px')\r\n .text(Utils.timeFormat(false, false, this.chartOptions.offset, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale)(new Date(this.selectedFromMillis)));\r\n var timezoneAbbreviation = ' (' + Utils.createTimezoneAbbreviation(this.chartOptions.offset) + ')';\r\n rightTimeText = this.timePickerContainer.append('div')\r\n .attr('class', 'tsi-compactFromTo')\r\n .style('right', brushPositions.rightPos != null ? 'calc(100% - ' + brushPositions.rightPos + 'px)' : '5px')\r\n .style('left', 'auto')\r\n .text(Utils.timeFormat(false, false, this.chartOptions.offset, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale)(new Date(this.selectedToMillis)) + timezoneAbbreviation);\r\n }\r\n if (leftTimeText && rightTimeText) {\r\n var rightSideOfLeft = leftTimeText.node().getBoundingClientRect().left + leftTimeText.node().getBoundingClientRect().width;\r\n var leftSideOfRight = rightTimeText.node().getBoundingClientRect().left;\r\n var totalWidth = this.timePickerContainer.node().getBoundingClientRect().width;\r\n var minOffset = 40;\r\n if (leftSideOfRight - rightSideOfLeft < minOffset) { // if there is overlap (or near overlap), correction needed\r\n var correction = (rightSideOfLeft - leftSideOfRight + minOffset) / 2;\r\n //if the correction puts either side off the edge of the container, weight the correction to the other side\r\n var leftWeight = 1;\r\n var rightWeight = 1;\r\n var padding = 32;\r\n if ((brushPositions.leftPos - correction) < padding) {\r\n leftWeight = 1 - ((padding - (brushPositions.leftPos - correction)) / correction);\r\n rightWeight = 2 - leftWeight;\r\n }\r\n if ((brushPositions.rightPos + correction) > (totalWidth - padding)) {\r\n rightWeight = 1 - (padding - (totalWidth - brushPositions.rightPos - correction)) / correction;\r\n leftWeight = 2 - rightWeight;\r\n }\r\n rightTimeText.style('right', 'calc(100% - ' + Math.round((brushPositions.rightPos + (rightWeight * correction))) + 'px)')\r\n .style('left', 'auto');\r\n leftTimeText.style('left', (brushPositions.leftPos - (leftWeight * correction)) + 'px');\r\n }\r\n }\r\n };\r\n AvailabilityChart.prototype.offsetUTC = function (date) {\r\n date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000);\r\n return date;\r\n };\r\n AvailabilityChart.prototype.buildFromAndToContainer = function () {\r\n var dateTimeContainer = this.timePickerTextContainer.append('div').classed('tsi-dateTimeContainer', true);\r\n var timeframeLabel = dateTimeContainer.append(\"label\").text(this.getString(\"Timeframe\")).attr(\"id\", \"time-frame-label\");\r\n var dateTimeButtonContainer = dateTimeContainer.append(\"div\")\r\n .classed('tsi-dateTimeButtonContainer', true)\r\n .attr(\"aria-labelledby\", 'time-frame-label');\r\n this.dateTimeButton = new DateTimeButtonRange(dateTimeButtonContainer.node());\r\n };\r\n AvailabilityChart.prototype.setTicks = function () {\r\n this.timePickerLineChart.updateXAxis();\r\n var forceFirst = (this.timePickerLineChart.zoomedFromMillis == this.timePickerLineChart.fromMillis) && (this.zoomedFromMillis == this.fromMillis);\r\n var forceLast = (this.timePickerLineChart.zoomedToMillis == this.timePickerLineChart.toMillis) && (this.zoomedToMillis == this.toMillis);\r\n this.timePickerLineChart.updateXAxis(forceFirst, forceLast);\r\n var ticks = this.timePickerContainer.select('.tsi-timePickerChart')\r\n .select('.xAxis')\r\n .selectAll('.tick');\r\n ticks.each(function (d, i) {\r\n var elt = d3.select(this);\r\n elt.classed((i === 0 && forceFirst ? 'tsi-fromTick' : (i === ticks.size() - 1 && forceLast ? 'tsi-toTick' : '')), true);\r\n });\r\n };\r\n AvailabilityChart.prototype.setAvailabilityRange = function (fromMillis, toMillis) {\r\n this.zoomedFromMillis = fromMillis;\r\n this.zoomedToMillis = toMillis;\r\n var visibileAvailability = this.createDisplayBuckets(fromMillis, toMillis);\r\n this.chartOptions.keepBrush = true;\r\n var aeWithNewTimeSpan = __assign(__assign({}, this.ae[0]), { searchSpan: {\r\n from: (new Date(fromMillis)),\r\n to: (new Date(toMillis))\r\n } });\r\n this.timePickerLineChart.render(visibileAvailability, this.chartOptions, [aeWithNewTimeSpan]);\r\n this.setTicks();\r\n this.drawWarmRange();\r\n this.timePickerLineChart.setBrush();\r\n };\r\n AvailabilityChart.prototype.setBrush = function (fromMillis, toMillis, isFromButton) {\r\n if (isFromButton === void 0) { isFromButton = false; }\r\n this.timePickerLineChart.setBrushEndTime(new Date(toMillis));\r\n this.timePickerLineChart.setBrushStartTime(new Date(fromMillis));\r\n this.timePickerLineChart.setBrush();\r\n this.setFromAndToTimes(fromMillis, toMillis, isFromButton);\r\n this.drawGhost();\r\n if (this.chartOptions.isCompact)\r\n this.buildCompactFromAndTo();\r\n };\r\n AvailabilityChart.prototype.createSparkLineOptions = function (chartOptions) {\r\n var _this = this;\r\n return {\r\n aggTopMargin: 0,\r\n theme: chartOptions.theme,\r\n grid: false,\r\n tooltip: false,\r\n legend: \"hidden\",\r\n brushContextMenuActions: [],\r\n snapBrush: false,\r\n keepBrush: false,\r\n xAxisHidden: true,\r\n yAxisHidden: true,\r\n focusHidden: true,\r\n minBrushWidth: 5,\r\n color: null,\r\n brushHandlesVisible: true,\r\n brushMoveAction: function (from, to) {\r\n _this.setAvailabilityRange(from.valueOf(), to.valueOf());\r\n },\r\n brushClearable: false,\r\n hideChartControlPanel: true,\r\n brushRangeVisible: false,\r\n isArea: true\r\n };\r\n };\r\n return AvailabilityChart;\r\n}(ChartComponent));\r\nexport default AvailabilityChart;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport Utils from \"../Utils\";\r\nimport { ChartComponentData } from \"./ChartComponentData\";\r\nimport * as d3 from 'd3';\r\nvar GroupedBarChartData = /** @class */ (function (_super) {\r\n __extends(GroupedBarChartData, _super);\r\n function GroupedBarChartData() {\r\n var _this = _super.call(this) || this;\r\n // allValues, aggsSeries, and allTimestampsArray span the entire time period of the aggregate expressions passed in\r\n _this.valuesOfVisibleType = [];\r\n _this.globalMax = -Number.MAX_VALUE;\r\n _this.globalMin = Number.MAX_VALUE;\r\n _this.stackMin = function (series) {\r\n return Number(d3.min(series, function (d) { return d[0][0]; }));\r\n };\r\n _this.stackMax = function (series) {\r\n return Number(d3.max(series, function (d) { return d[0][1]; }));\r\n };\r\n return _this;\r\n }\r\n GroupedBarChartData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, timestamp, aggregateExpressionOptions) {\r\n if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; }\r\n _super.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions);\r\n this.timestamp = timestamp;\r\n this.setValuesAtTimestamp();\r\n this.setFilteredAggregates();\r\n };\r\n //setting the data related to the entire time range (aggsSeries, allValus, globalMax, globalMin)\r\n GroupedBarChartData.prototype.setEntireRangeData = function (scaledToCurrentTime) {\r\n var _this = this;\r\n this.globalMax = -Number.MAX_VALUE;\r\n this.globalMin = Number.MAX_VALUE;\r\n this.aggsSeries = {};\r\n this.valuesOfVisibleType = [];\r\n Object.keys(this.displayState).forEach(function (aggKey, aggI) {\r\n var splitByNames = [];\r\n var currentTimeSeries;\r\n _this.allTimestampsArray.forEach(function (ts) {\r\n if (_this.displayState[aggKey].visible) {\r\n var localSplitByNames = [];\r\n var stackedAggregateObject = Object.keys(_this.displayState[aggKey].splitBys).reverse().reduce(function (sAO, splitByName) {\r\n var splitBy = _this.displayState[aggKey].splitBys[splitByName];\r\n localSplitByNames.push(splitByName);\r\n var value;\r\n if (_this.data[aggI][_this.displayState[aggKey].name][splitByName][ts])\r\n value = _this.data[aggI][_this.displayState[aggKey].name][splitByName][ts][splitBy.visibleType];\r\n else\r\n value = Number.MIN_VALUE;\r\n if (!splitBy.visible) {\r\n if (value > 0)\r\n value = Number.MIN_VALUE;\r\n else\r\n value = -Number.MIN_VALUE;\r\n }\r\n sAO[splitByName] = value;\r\n if ((!scaledToCurrentTime || ts == _this.timestamp) && splitBy.visible) {\r\n _this.valuesOfVisibleType.push(value);\r\n }\r\n return sAO;\r\n }, {});\r\n var series = d3.stack()\r\n .keys(localSplitByNames)\r\n .offset(d3.stackOffsetDiverging)([stackedAggregateObject]);\r\n series.reverse();\r\n if (ts == _this.timestamp)\r\n currentTimeSeries = series;\r\n if ((ts == _this.timestamp || !scaledToCurrentTime) && series != undefined) {\r\n _this.globalMax = Math.max(_this.stackMax(series), _this.globalMax);\r\n _this.globalMin = Math.min(_this.stackMin(series), _this.globalMin);\r\n }\r\n }\r\n });\r\n _this.aggsSeries[aggKey] = currentTimeSeries;\r\n });\r\n };\r\n GroupedBarChartData.prototype.setValuesAtTimestamp = function () {\r\n var _this = this;\r\n var aggregateCounterMap = {};\r\n this.valuesAtTimestamp = {};\r\n this.data.forEach(function (aggregate, aggI) {\r\n var aggName = Object.keys(aggregate)[0];\r\n var aggKey;\r\n if (aggregateCounterMap[aggName]) {\r\n aggKey = Utils.createEntityKey(aggName, aggregateCounterMap[aggName]);\r\n aggregateCounterMap[aggName] += 1;\r\n }\r\n else {\r\n aggKey = Utils.createEntityKey(aggName, 0);\r\n aggregateCounterMap[aggName] = 1;\r\n }\r\n _this.valuesAtTimestamp[aggKey] = {};\r\n _this.valuesAtTimestamp[aggKey].splitBys = Object.keys(aggregate[aggName])\r\n .reduce(function (aggSplitBys, splitBy, splitByI) {\r\n aggSplitBys[splitBy] = {};\r\n aggSplitBys[splitBy].measurements = aggregate[aggName][splitBy][_this.timestamp];\r\n return aggSplitBys;\r\n }, {});\r\n });\r\n };\r\n GroupedBarChartData.prototype.getValueContainerData = function (aggKey) {\r\n var _this = this;\r\n return Object.keys(this.displayState[aggKey].splitBys).map(function (splitBy) {\r\n var measureType = _this.displayState[aggKey].splitBys[splitBy].visibleType;\r\n var val;\r\n if (_this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements &&\r\n _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType])\r\n val = _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType];\r\n else\r\n val = null;\r\n return {\r\n measureType: measureType,\r\n aggKey: aggKey,\r\n splitBy: splitBy,\r\n val: val\r\n };\r\n });\r\n };\r\n return GroupedBarChartData;\r\n}(ChartComponentData));\r\nexport { GroupedBarChartData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport Utils from \"../Utils\";\r\nimport { ChartComponentData } from \"./ChartComponentData\";\r\nimport { GroupedBarChartData } from \"./GroupedBarChartData\";\r\nvar PieChartData = /** @class */ (function (_super) {\r\n __extends(PieChartData, _super);\r\n function PieChartData() {\r\n var _this = _super.call(this) || this;\r\n _this.visibleValuesSum = 0;\r\n return _this;\r\n }\r\n PieChartData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, timestamp, aggregateExpressionOptions) {\r\n if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; }\r\n ChartComponentData.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions);\r\n this.timestamp = Utils.getValueOrDefault({ '': timestamp }, '', this.allTimestampsArray[0]);\r\n _super.prototype.setValuesAtTimestamp.call(this);\r\n this.setAllTimestampsArray();\r\n };\r\n PieChartData.prototype.updateFlatValueArray = function (timestamp) {\r\n var _this = this;\r\n this.visibleValuesSum = 0;\r\n var values = [];\r\n Object.keys(this.valuesAtTimestamp).forEach(function (aggKey) {\r\n Object.keys(_this.valuesAtTimestamp[aggKey].splitBys).forEach(function (splitBy, splitByI) {\r\n var value = 0;\r\n if (_this.getSplitByVisible(aggKey, splitBy) && _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements != undefined)\r\n value = _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[_this.getVisibleMeasure(aggKey, splitBy)];\r\n values.push({\r\n aggKey: aggKey,\r\n splitBy: splitBy,\r\n val: value,\r\n splitByI: splitByI\r\n });\r\n _this.visibleValuesSum += Math.abs(value);\r\n });\r\n });\r\n this.flatValueArray = values;\r\n };\r\n return PieChartData;\r\n}(GroupedBarChartData));\r\nexport { PieChartData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './Slider.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nvar Slider = /** @class */ (function (_super) {\r\n __extends(Slider, _super);\r\n function Slider(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.sliderSVG = null;\r\n _this.sliderTextDiv = null;\r\n _this.margins = {\r\n left: 60,\r\n right: 60\r\n };\r\n _this.height = 55;\r\n _this.setSelectedLabelAndGetLabelAction = function (h, useFirstValue) {\r\n if (useFirstValue === void 0) { useFirstValue = false; }\r\n //find the closest time and set position to that\r\n var reduceFirstValue = useFirstValue ? _this.data[0] : { label: _this.selectedLabel, action: function () { } };\r\n var newSelectedLabel = _this.data.reduce(function (prev, curr) {\r\n var currDiff = Math.abs(_this.getXPositionOfLabel(curr.label) - h);\r\n var prevDiff = Math.abs(_this.getXPositionOfLabel(prev.label) - h);\r\n return (currDiff < prevDiff) ? curr : prev;\r\n }, reduceFirstValue);\r\n _this.selectedLabel = (newSelectedLabel != null) ? newSelectedLabel.label : _this.selectedLabel;\r\n return newSelectedLabel;\r\n };\r\n _this.setSliderTextDivLabel = function () {\r\n _this.sliderTextDiv.attr(\"aria-label\", function () {\r\n return _this.getString(\"Currently displayed time is\") + ' ' + _this.selectedLabel + \". \" +\r\n _this.getString(\"Left arrow to go back in time\") + \", \" + _this.getString(\"right arrow to go forward\");\r\n });\r\n };\r\n return _this;\r\n }\r\n Slider.prototype.Slider = function () {\r\n };\r\n Slider.prototype.getXPositionOfLabel = function (label) {\r\n if (this.data.map(function (d) { return d.label; }).indexOf(label) != -1) {\r\n return this.xScale(label);\r\n }\r\n // find approximate position if ascending time periods and label is a time label as well\r\n if ((Utils.parseTimeInput(label) > -1) && this.isAscendingTimePeriods && this.data.length > 1) {\r\n var labelMillis = Utils.parseTimeInput(label);\r\n for (var i = 0; i < this.data.length; i++) {\r\n if (Utils.parseTimeInput(this.data[i].label) > labelMillis) {\r\n return (this.xScale(this.data[i].label) + this.xScale(this.data[Math.max(i - 1, 0)].label)) / 2;\r\n }\r\n }\r\n return this.xScale(this.data[this.data.length - 1].label);\r\n }\r\n return 0;\r\n };\r\n Slider.prototype.determineIfAscendingTimePeriods = function () {\r\n var left = this.data.length > 0 ? Utils.parseTimeInput(this.data[0].label) : -1;\r\n var isAscending = left !== -1;\r\n for (var i = 0; isAscending && i < this.data.length - 1; i++) {\r\n isAscending = left < (left = Utils.parseTimeInput(this.data[i + 1].label));\r\n }\r\n return isAscending;\r\n };\r\n Slider.prototype.render = function (data, options, width, selectedLabel) {\r\n var _this = this;\r\n if (selectedLabel === void 0) { selectedLabel = null; }\r\n this.chartOptions.setOptions(options);\r\n this.data = data;\r\n this.isAscendingTimePeriods = this.determineIfAscendingTimePeriods();\r\n this.width = width;\r\n var marginsTotal = this.margins.left + this.margins.right;\r\n this.sliderWidth = width - marginsTotal;\r\n var targetElement = d3.select(this.renderTarget);\r\n if (targetElement.style(\"position\") == \"static\")\r\n targetElement.style(\"position\", \"relative\");\r\n if (selectedLabel)\r\n this.selectedLabel = selectedLabel;\r\n this.xScale = d3.scalePoint()\r\n .domain(data.map(function (d) { return d.label; }))\r\n .range([0, this.sliderWidth]);\r\n width = Math.max(width, marginsTotal);\r\n var self = this;\r\n if (this.sliderSVG == null) {\r\n this.sliderSVG = targetElement.append(\"svg\")\r\n .attr(\"class\", \"tsi-sliderComponent\");\r\n var slider = this.sliderSVG.append(\"g\")\r\n .attr(\"class\", \"slider tsi-sliderG\");\r\n slider.append(\"line\")\r\n .attr(\"class\", \"slider-track tsi-sliderTrack\")\r\n .select(function () { return this.parentNode.appendChild(this.cloneNode(true)); })\r\n .attr(\"class\", \"track-overlay tsi-sliderTrackOverlay\")\r\n .call(d3.drag()\r\n .on(\"start.interrupt\", function () { slider.interrupt(); })\r\n .on(\"start drag\", function (event, d) {\r\n self.onDrag(event.x);\r\n })\r\n .on(\"end\", function (event, d) {\r\n self.onDragEnd(event.x);\r\n }));\r\n slider.insert(\"circle\", \".track-overlay\")\r\n .attr(\"class\", \"handle tsi-sliderHandle\")\r\n .attr(\"r\", 6);\r\n this.sliderTextDiv = targetElement.append(\"div\")\r\n .attr(\"class\", \"tsi-sliderLabel\")\r\n .attr(\"tabindex\", 0)\r\n .attr(\"aria-label\", selectedLabel)\r\n .on(\"keydown\", function (event) {\r\n if (event.keyCode == 37) {\r\n _this.moveLeft();\r\n }\r\n if (event.keyCode == 39) {\r\n _this.moveRight();\r\n }\r\n });\r\n }\r\n this.themify(this.sliderSVG, this.chartOptions.theme);\r\n this.sliderSVG.attr(\"width\", width + \"px\");\r\n var slider = this.sliderSVG.select(\".tsi-sliderG\")\r\n .attr(\"transform\", \"translate(\" + this.margins.left + \",\" + (this.height / 2) + \")\");\r\n slider.select(\".tsi-sliderTrack\")\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", this.sliderWidth)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", 0);\r\n slider.select(\".tsi-sliderTrackOverlay\")\r\n .attr(\"x1\", -20)\r\n .attr(\"x2\", this.sliderWidth + 20)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", 0);\r\n this.setStateFromLabel();\r\n };\r\n Slider.prototype.remove = function () {\r\n if (this.sliderSVG)\r\n this.sliderSVG.remove();\r\n this.sliderSVG = null;\r\n if (this.sliderTextDiv)\r\n this.sliderTextDiv.remove();\r\n };\r\n Slider.prototype.onDrag = function (h) {\r\n // find the closest time and set position to that\r\n var newSelectedLabel = this.setSelectedLabelAndGetLabelAction(h);\r\n if (!this.chartOptions.throttleSlider) {\r\n newSelectedLabel.action(newSelectedLabel.label);\r\n }\r\n this.setStateFromLabel();\r\n };\r\n Slider.prototype.onDragEnd = function (h) {\r\n if (this.chartOptions.throttleSlider) {\r\n var newSelectedLabel = this.setSelectedLabelAndGetLabelAction(h, true);\r\n newSelectedLabel.action(newSelectedLabel.label);\r\n }\r\n };\r\n //set the position of the slider and text, and set the text, given a label\r\n Slider.prototype.setStateFromLabel = function () {\r\n this.sliderSVG.select(\".handle\").attr(\"cx\", this.getXPositionOfLabel(this.selectedLabel));\r\n this.sliderTextDiv.text(this.selectedLabel);\r\n this.setSliderTextDivLabel();\r\n //adjust until center lines up with \r\n var centerDivOffset = this.sliderTextDiv.node().getBoundingClientRect().width / 2;\r\n this.sliderTextDiv.style(\"right\", (this.width - (this.margins.right + this.getXPositionOfLabel(this.selectedLabel))) - centerDivOffset + \"px\");\r\n };\r\n Slider.prototype.moveLeft = function () {\r\n for (var i = 0; i < this.data.length; i++) {\r\n if (this.data[i].label == this.selectedLabel) {\r\n var newI = Math.max(0, i - 1);\r\n this.selectedLabel = this.data[newI].label;\r\n this.data[newI].action(this.selectedLabel);\r\n this.setStateFromLabel();\r\n return;\r\n }\r\n }\r\n };\r\n Slider.prototype.moveRight = function () {\r\n for (var i = 0; i < this.data.length; i++) {\r\n if (this.data[i].label == this.selectedLabel) {\r\n var newI = Math.min(this.data.length - 1, i + 1);\r\n this.selectedLabel = this.data[newI].label;\r\n this.data[newI].action(this.selectedLabel);\r\n this.setStateFromLabel();\r\n return;\r\n }\r\n }\r\n };\r\n return Slider;\r\n}(Component));\r\nexport default Slider;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from 'd3';\r\nimport './PieChart.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { TooltipMeasureFormat } from \"./../../Constants/Enums\";\r\nimport Legend from './../Legend';\r\nimport ContextMenu from './../ContextMenu';\r\nimport { PieChartData } from '../../Models/PieChartData';\r\nimport Slider from '../Slider';\r\nimport Tooltip from '../Tooltip';\r\nimport { ChartVisualizationComponent } from '../../Interfaces/ChartVisualizationComponent';\r\nvar PieChart = /** @class */ (function (_super) {\r\n __extends(PieChart, _super);\r\n function PieChart(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.chartComponentData = new PieChartData();\r\n _this.chartMargins = {\r\n top: 20,\r\n bottom: 28,\r\n left: 0,\r\n right: 0\r\n };\r\n return _this;\r\n }\r\n PieChart.prototype.PieChart = function () { };\r\n PieChart.prototype.render = function (data, options, aggregateExpressionOptions) {\r\n var _this = this;\r\n _super.prototype.render.call(this, data, options, aggregateExpressionOptions);\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.chartOptions.timestamp, this.aggregateExpressionOptions);\r\n var timestamp = (options && options.timestamp != undefined) ? options.timestamp : this.chartComponentData.allTimestampsArray[0];\r\n var targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-pieChart\", true);\r\n if (this.svgSelection == null) {\r\n this.svgSelection = targetElement.append(\"svg\")\r\n .attr(\"class\", \"tsi-pieChartSVG tsi-chartSVG\")\r\n .attr('title', this.getString('Pie chart'));\r\n var g = this.svgSelection.append(\"g\");\r\n var tooltip = new Tooltip(d3.select(this.renderTarget));\r\n d3.select(this.renderTarget).append('div').classed('tsi-sliderWrapper', true);\r\n this.draw = function (isFromResize, event) {\r\n if (isFromResize === void 0) { isFromResize = false; }\r\n // Determine the number of timestamps present, add margin for slider\r\n if (_this.chartComponentData.allTimestampsArray.length > 1)\r\n _this.chartMargins.bottom = 68;\r\n if (_this.chartOptions.legend == \"compact\") {\r\n _this.chartMargins.top = 68;\r\n }\r\n else {\r\n _this.chartMargins.top = 20;\r\n }\r\n _this.width = _this.getWidth();\r\n var height = +targetElement.node().getBoundingClientRect().height;\r\n if (!isFromResize) {\r\n _this.chartWidth = _this.getChartWidth();\r\n }\r\n var chartHeight = height;\r\n var usableHeight = height - _this.chartMargins.bottom - _this.chartMargins.top;\r\n var outerRadius = (Math.min(usableHeight, _this.chartWidth) - 10) / 2;\r\n var innerRadius = _this.chartOptions.arcWidthRatio &&\r\n (_this.chartOptions.arcWidthRatio < 1 && _this.chartOptions.arcWidthRatio > 0) ?\r\n outerRadius - (outerRadius * _this.chartOptions.arcWidthRatio) :\r\n 0;\r\n _this.svgSelection\r\n .attr(\"width\", _this.chartWidth)\r\n .attr(\"height\", chartHeight);\r\n _this.svgSelection.select(\"g\").attr(\"transform\", \"translate(\" + (_this.chartWidth / 2) + \",\" + (chartHeight / 2) + \")\");\r\n var timestamp = (_this.chartOptions.timestamp != undefined) ? _this.chartOptions.timestamp : _this.chartComponentData.allTimestampsArray[0];\r\n _this.chartComponentData.updateFlatValueArray(timestamp);\r\n _super.prototype.themify.call(_this, targetElement, _this.chartOptions.theme);\r\n if (!_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel === null) {\r\n _this.chartControlsPanel = Utils.createControlPanel(_this.renderTarget, _this.CONTROLSWIDTH, _this.chartMargins.top, _this.chartOptions);\r\n }\r\n else if (_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel !== null) {\r\n _this.removeControlPanel();\r\n }\r\n if (_this.ellipsisItemsExist() && !_this.chartOptions.hideChartControlPanel) {\r\n _this.drawEllipsisMenu();\r\n _this.chartControlsPanel.style(\"top\", Math.max((_this.chartMargins.top - 24), 0) + 'px');\r\n }\r\n else {\r\n _this.removeControlPanel();\r\n }\r\n var labelMouseover = function (aggKey, splitBy) {\r\n if (splitBy === void 0) { splitBy = null; }\r\n //filter out the selected timeseries/splitby\r\n var selectedFilter = function (d, j) {\r\n return !(d.data.aggKey == aggKey && (splitBy == null || d.data.splitBy == splitBy));\r\n };\r\n _this.svgSelection.selectAll(\".tsi-pie-path\")\r\n .filter(selectedFilter)\r\n .attr(\"stroke-opacity\", .3)\r\n .attr(\"fill-opacity\", .3);\r\n };\r\n var labelMouseout = function (aggregateKey, splitBy) {\r\n _this.svgSelection.selectAll(\".tsi-pie-path\")\r\n .attr(\"stroke-opacity\", 1)\r\n .attr(\"fill-opacity\", 1);\r\n };\r\n function drawTooltip(d, mousePosition) {\r\n var xPos = mousePosition[0];\r\n var yPos = mousePosition[1];\r\n tooltip.render(self.chartOptions.theme);\r\n var color = Utils.colorSplitBy(self.chartComponentData.displayState, d.data.splitByI, d.data.aggKey, self.chartOptions.keepSplitByColor);\r\n tooltip.draw(d, self.chartComponentData, xPos, yPos, __assign(__assign({}, self.chartMargins), { top: 0, bottom: 0 }), function (text) {\r\n self.tooltipFormat(self.convertToTimeValueFormat(d.data), text, TooltipMeasureFormat.SingleValue);\r\n }, null, 20, 20, color);\r\n }\r\n _this.legendObject.draw(_this.chartOptions.legend, _this.chartComponentData, labelMouseover, _this.svgSelection, _this.chartOptions, labelMouseout, null, event);\r\n var pie = d3.pie()\r\n .sort(null)\r\n .value(function (d) {\r\n return Math.abs(d.val);\r\n });\r\n var path = d3.arc()\r\n .outerRadius(outerRadius)\r\n .innerRadius(innerRadius);\r\n var arc = g.selectAll(\".tsi-pie-arc\")\r\n .data(pie(_this.chartComponentData.flatValueArray));\r\n var arcEntered = arc\r\n .enter().append(\"g\")\r\n .merge(arc)\r\n .attr(\"class\", \"tsi-pie-arc\");\r\n var self = _this;\r\n var drawArc = d3.arc()\r\n .innerRadius(innerRadius)\r\n .outerRadius(outerRadius);\r\n function arcTween(a) {\r\n var i = d3.interpolate(this._current, a);\r\n this._current = i(0);\r\n return function (t) {\r\n return drawArc(i(t));\r\n };\r\n }\r\n var self = _this;\r\n function pathMouseout(event, d) {\r\n if (self.contextMenu && self.contextMenu.contextMenuVisible)\r\n return;\r\n tooltip.hide();\r\n labelMouseout(d.data.aggKey, d.data.splitBy);\r\n self.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n }\r\n function pathMouseInteraction(event, d) {\r\n if (this.contextMenu && this.contextMenu.contextMenuVisible)\r\n return;\r\n pathMouseout(event, d);\r\n labelMouseover(d.data.aggKey, d.data.splitBy);\r\n self.legendObject.legendElement.selectAll('.tsi-splitByLabel').filter(function (filteredSplitBy) {\r\n return (d3.select(this.parentNode).datum() == d.data.aggKey) && (filteredSplitBy == d.data.splitBy);\r\n }).classed(\"inFocus\", true);\r\n drawTooltip(d, d3.pointer(event, self.svgSelection.node()));\r\n }\r\n var mouseOutArcOnContextMenuClick = function () {\r\n arcEntered.selectAll(\"path\").each(pathMouseout);\r\n };\r\n arcEntered.each(function () {\r\n var pathElem = d3.select(this).selectAll(\".tsi-pie-path\").data(function (d) { return [d]; });\r\n var pathEntered = pathElem.enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"tsi-pie-path\")\r\n .attr(\"d\", drawArc)\r\n .on(\"mouseover\", pathMouseInteraction)\r\n .on(\"mousemove\", pathMouseInteraction)\r\n .on(\"mouseout\", pathMouseout)\r\n .on(\"contextmenu\", function (event, d) {\r\n if (self.chartComponentData.displayState[d.data.aggKey].contextMenuActions &&\r\n self.chartComponentData.displayState[d.data.aggKey].contextMenuActions.length) {\r\n var mousePosition = d3.pointer(event, targetElement.node());\r\n event.preventDefault();\r\n self.contextMenu.draw(self.chartComponentData, self.renderTarget, self.chartOptions, mousePosition, d.data.aggKey, d.data.splitBy, mouseOutArcOnContextMenuClick, new Date(self.chartComponentData.timestamp));\r\n }\r\n })\r\n .each(function (d) { this._current = d; })\r\n .merge(pathElem)\r\n .transition()\r\n .duration(self.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attrTween(\"d\", arcTween)\r\n .attr(\"fill\", function (d) {\r\n return Utils.colorSplitBy(self.chartComponentData.displayState, d.data.splitByI, d.data.aggKey, self.chartOptions.keepSplitByColor);\r\n })\r\n .attr(\"class\", \"tsi-pie-path\");\r\n });\r\n arc.exit().remove();\r\n /******************** Temporal Slider ************************/\r\n if (_this.chartComponentData.allTimestampsArray.length > 1) {\r\n d3.select(_this.renderTarget).select('.tsi-sliderWrapper').classed('tsi-hidden', false);\r\n slider.render(_this.chartComponentData.allTimestampsArray.map(function (ts) {\r\n var action = function () {\r\n _this.chartOptions.timestamp = ts;\r\n _this.render(_this.chartComponentData.data, _this.chartOptions, _this.aggregateExpressionOptions);\r\n };\r\n return { label: Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, null, null, _this.chartOptions.dateLocale)(new Date(ts)), action: action };\r\n }), _this.chartOptions, _this.chartWidth, Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, null, null, _this.chartOptions.dateLocale)(new Date(_this.chartComponentData.timestamp)));\r\n }\r\n else {\r\n slider.remove();\r\n d3.select(_this.renderTarget).select('.tsi-sliderWrapper').classed('tsi-hidden', true);\r\n }\r\n };\r\n this.legendObject = new Legend(this.draw, this.renderTarget, this.CONTROLSWIDTH);\r\n this.contextMenu = new ContextMenu(this.draw, this.renderTarget);\r\n // temporal slider\r\n var slider = new Slider(d3.select(this.renderTarget).select('.tsi-sliderWrapper').node());\r\n window.addEventListener(\"resize\", function () {\r\n if (!_this.chartOptions.suppressResizeListener)\r\n _this.draw();\r\n });\r\n }\r\n this.draw();\r\n this.gatedShowGrid();\r\n d3.select(\"html\").on(\"click.\" + Utils.guid(), function (event) {\r\n if (_this.ellipsisContainer && event.target != _this.ellipsisContainer.select(\".tsi-ellipsisButton\").node()) {\r\n _this.ellipsisMenu.setMenuVisibility(false);\r\n }\r\n });\r\n this.legendPostRenderProcess(this.chartOptions.legend, this.svgSelection, true);\r\n };\r\n return PieChart;\r\n}(ChartVisualizationComponent));\r\nexport default PieChart;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { ChartComponentData } from \"./ChartComponentData\";\r\nimport { GroupedBarChartData } from \"./GroupedBarChartData\";\r\nimport * as d3 from \"d3\";\r\nimport Utils from \"../Utils\";\r\nvar ScatterPlotData = /** @class */ (function (_super) {\r\n __extends(ScatterPlotData, _super);\r\n function ScatterPlotData() {\r\n var _this = _super.call(this) || this;\r\n _this.extents = {};\r\n _this.extentsSet = false;\r\n return _this;\r\n }\r\n /******** SETS EXTENT OF EACH DATA MEASURE -- MEASURES UPDATED WHEN RENDER CALLED OUTSIDE OF TEMPORAL ********/\r\n ScatterPlotData.prototype.setExtents = function (measures, forceReset) {\r\n var _this = this;\r\n if (forceReset === void 0) { forceReset = false; }\r\n if (!this.extentsSet || forceReset) {\r\n // Reset extents\r\n this.extents = {};\r\n // Set axis extents\r\n measures.forEach(function (measure) {\r\n _this.extents[measure] = d3.extent(_this.allValues, function (v) {\r\n if (!v.measures)\r\n return null;\r\n return measure in v.measures ? v.measures[measure] : null;\r\n });\r\n });\r\n this.extentsSet = true;\r\n }\r\n };\r\n /******** UPDATE EXTENTS BASED ON VISIBLE DATA ********/\r\n ScatterPlotData.prototype.updateExtents = function (measures) {\r\n var _this = this;\r\n var visibleData = [];\r\n this.data.forEach(function (aggregate) {\r\n var aggName = Object.keys(aggregate)[0];\r\n var aggKey = aggregate.aggKey;\r\n if (_this.displayState[aggKey].visible == true) {\r\n Object.keys(aggregate[aggName]).forEach(function (splitBy) {\r\n if (_this.displayState[aggKey].splitBys[splitBy].visible == true) {\r\n visibleData.push(Object.values(aggregate[aggName][splitBy]));\r\n }\r\n });\r\n }\r\n });\r\n visibleData = [].concat.apply([], visibleData);\r\n measures.forEach(function (measure) {\r\n _this.extents[measure] = d3.extent(visibleData, function (v) {\r\n return measure in v ? v[measure] : null;\r\n });\r\n });\r\n };\r\n /******** UPDATES CHART DATA, ALL TIMESTAMPS, AND VALUES AT THE CURRENT TIMESTAMP ********/\r\n ScatterPlotData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, timestamp, aggregateExpressionOptions) {\r\n if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; }\r\n ChartComponentData.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions);\r\n this.timestamp = (timestamp != undefined && this.allTimestampsArray.indexOf(timestamp) !== -1) ? timestamp : this.allTimestampsArray[0];\r\n this.setValuesAtTimestamp();\r\n this.setAllTimestampsArray();\r\n };\r\n /******** UPDATES DATA TO BE DRAWN -- IF SCATTER IS TEMPORAL, FLATTENS ALL TIMESTAMP DATA ********/\r\n ScatterPlotData.prototype.updateTemporalDataArray = function (isTemporal) {\r\n var _this = this;\r\n this.temporalDataArray = [];\r\n if (!isTemporal) {\r\n this.allTimestampsArray.forEach(function (ts) {\r\n _this.timestamp = ts;\r\n _this.setValuesAtTimestamp();\r\n _this.updateTemporal();\r\n });\r\n }\r\n else {\r\n this.updateTemporal();\r\n }\r\n };\r\n /******** HELPER TO FETCH DATA AT THE CURRENT TIMESTAMP AND BUILD AN OBJECT FOR THAT TIMESTAMP ********/\r\n ScatterPlotData.prototype.updateTemporal = function () {\r\n var _this = this;\r\n Object.keys(this.valuesAtTimestamp).forEach(function (aggKey) {\r\n Object.keys(_this.valuesAtTimestamp[aggKey].splitBys).forEach(function (splitBy, splitByI) {\r\n var measures = null, timestamp = null;\r\n if (_this.getSplitByVisible(aggKey, splitBy) && _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements != undefined) {\r\n measures = _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements;\r\n timestamp = _this.valuesAtTimestamp[aggKey].splitBys[splitBy].timestamp;\r\n }\r\n _this.temporalDataArray.push({\r\n aggregateKey: aggKey,\r\n aggregateKeyI: _this.data.findIndex(function (datum) { return datum.aggKey === aggKey; }),\r\n splitBy: splitBy,\r\n measures: measures,\r\n timestamp: timestamp,\r\n splitByI: splitByI\r\n });\r\n });\r\n });\r\n };\r\n /******** OVERRIDES GROUPEDBARCHARTDATA -- UPDATES VALUES AT TIMESTAMP WITH MEASURES & TIMESTAMP********/\r\n ScatterPlotData.prototype.setValuesAtTimestamp = function () {\r\n var _this = this;\r\n var aggregateCounterMap = {};\r\n this.valuesAtTimestamp = {};\r\n this.data.forEach(function (aggregate, aggI) {\r\n var aggName = Object.keys(aggregate)[0];\r\n var aggKey;\r\n if (aggregateCounterMap[aggName]) {\r\n aggKey = Utils.createEntityKey(aggName, aggregateCounterMap[aggName]);\r\n aggregateCounterMap[aggName] += 1;\r\n }\r\n else {\r\n aggKey = Utils.createEntityKey(aggName, 0);\r\n aggregateCounterMap[aggName] = 1;\r\n }\r\n _this.valuesAtTimestamp[aggKey] = {};\r\n _this.valuesAtTimestamp[aggKey].splitBys = Object.keys(aggregate[aggName])\r\n .reduce(function (aggSplitBys, splitBy, splitByI) {\r\n aggSplitBys[splitBy] = {};\r\n aggSplitBys[splitBy].measurements = aggregate[aggName][splitBy][_this.timestamp];\r\n aggSplitBys[splitBy].timestamp = _this.timestamp;\r\n return aggSplitBys;\r\n }, {});\r\n });\r\n };\r\n return ScatterPlotData;\r\n}(GroupedBarChartData));\r\nexport { ScatterPlotData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport * as d3Voronoi from 'd3-voronoi';\r\nimport './ScatterPlot.scss';\r\nimport { ChartVisualizationComponent } from './../../Interfaces/ChartVisualizationComponent';\r\nimport Legend from './../Legend';\r\nimport { ScatterPlotData } from '../../Models/ScatterPlotData';\r\nimport Slider from './../Slider';\r\nimport Tooltip from '../Tooltip';\r\nimport Utils from '../../Utils';\r\nimport { TooltipMeasureFormat } from \"./../../Constants/Enums\";\r\nvar ScatterPlot = /** @class */ (function (_super) {\r\n __extends(ScatterPlot, _super);\r\n function ScatterPlot(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.activeDot = null;\r\n _this.focusedSite = null;\r\n _this.lowOpacity = 0.15;\r\n _this.standardOpacity = 0.6;\r\n _this.focusOpacity = 0.8;\r\n _this.standardStroke = 1;\r\n _this.lowStroke = 0.3;\r\n _this.chartComponentData = new ScatterPlotData();\r\n /******** DRAW UPDATE FUNCTION ********/\r\n _this.draw = function (isFromResize, event) {\r\n if (isFromResize === void 0) { isFromResize = false; }\r\n _this.activeDot = null;\r\n _this.chartComponentData.updateTemporalDataArray(_this.chartOptions.isTemporal);\r\n // Update extents to fit data if not temporal\r\n _this.chartComponentData.updateExtents(_this.chartOptions.spMeasures);\r\n _this.focus.attr(\"visibility\", (_this.chartOptions.focusHidden) ? \"hidden\" : \"visible\");\r\n // If only one data series visible, do not highlight on hover\r\n var visibleSplitBys = 0;\r\n Object.keys(_this.chartComponentData.displayState).forEach(function (aggKey) {\r\n if (_this.chartComponentData.displayState[aggKey].visible)\r\n Object.keys(_this.chartComponentData.displayState[aggKey].splitBys).forEach(function (splitBy) {\r\n if (_this.chartComponentData.displayState[aggKey].splitBys[splitBy].visible)\r\n visibleSplitBys++;\r\n });\r\n });\r\n if (visibleSplitBys == 1)\r\n _this.focusOpacity = _this.standardOpacity;\r\n // Determine the number of timestamps present, add margin for slider\r\n if (_this.chartComponentData.allTimestampsArray.length > 1 && _this.chartOptions.isTemporal) {\r\n _this.chartMargins.bottom = 88;\r\n }\r\n else {\r\n _this.chartMargins.bottom = 48;\r\n }\r\n _this.setWidthAndHeight(isFromResize);\r\n _this.svgSelection\r\n .attr(\"height\", _this.height)\r\n .style(\"width\", _this.getSVGWidth() + \"px\");\r\n _this.g\r\n .attr(\"transform\", \"translate(\" + _this.chartMargins.left + \",\" + _this.chartMargins.top + \")\");\r\n _this.voronoiGroup\r\n .attr(\"width\", _this.chartWidth)\r\n .attr(\"height\", _this.chartHeight);\r\n _super.prototype.themify.call(_this, _this.targetElement, _this.chartOptions.theme);\r\n // Draw control panel\r\n if (!_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel === null) {\r\n _this.chartControlsPanel = Utils.createControlPanel(_this.renderTarget, _this.CONTROLSWIDTH, _this.chartMargins.top, _this.chartOptions);\r\n }\r\n else if (_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel !== null) {\r\n _this.removeControlPanel();\r\n }\r\n if (_this.chartControlsPanel !== null && _this.ellipsisItemsExist()) {\r\n _this.drawEllipsisMenu();\r\n _this.chartControlsPanel.style(\"top\", Math.max((_this.chartMargins.top - 44), 0) + 'px');\r\n }\r\n else {\r\n _this.removeEllipsisMenu();\r\n }\r\n // Resize focus line\r\n _this.focus.select('.tsi-hLine').attr(\"x2\", _this.chartWidth);\r\n _this.focus.select('.tsi-vLine').attr(\"y2\", _this.chartHeight);\r\n _this.measures = _this.chartOptions.spMeasures;\r\n _this.xMeasure = _this.measures[0];\r\n _this.yMeasure = _this.measures[1];\r\n _this.rMeasure = _this.measures[2] !== undefined ? _this.measures[2] : null;\r\n var xExtentRange = _this.chartComponentData.extents[_this.xMeasure][1] - _this.chartComponentData.extents[_this.xMeasure][0];\r\n var yExtentRange = _this.chartComponentData.extents[_this.yMeasure][1] - _this.chartComponentData.extents[_this.yMeasure][0];\r\n // Pad extents\r\n var xOffset = (20 / _this.chartWidth) * (xExtentRange == 0 ? 1 : xExtentRange);\r\n var yOffset = (20 / _this.chartHeight) * (yExtentRange == 0 ? 1 : yExtentRange);\r\n var rOffset = null;\r\n if (_this.rMeasure) {\r\n var rExtentRange = _this.chartComponentData.extents[_this.rMeasure][1] - _this.chartComponentData.extents[_this.rMeasure][0];\r\n rOffset = (20 / _this.chartHeight) * (rExtentRange == 0 ? 1 : rExtentRange);\r\n }\r\n // Check measure validity\r\n if (!_this.checkExtentValidity())\r\n return;\r\n // Init scales\r\n _this.yScale = d3.scaleLinear()\r\n .range([_this.chartHeight, 0])\r\n .domain([_this.chartComponentData.extents[_this.yMeasure][0] - yOffset, _this.chartComponentData.extents[_this.yMeasure][1] + yOffset]);\r\n _this.xScale = d3.scaleLinear()\r\n .range([0, _this.chartWidth])\r\n .domain([_this.chartComponentData.extents[_this.xMeasure][0] - xOffset, _this.chartComponentData.extents[_this.xMeasure][1] + xOffset]);\r\n _this.rScale = d3.scaleLinear()\r\n .range(_this.chartOptions.scatterPlotRadius.slice(0, 2))\r\n .domain(_this.rMeasure === null ? [0, 0] : [_this.chartComponentData.extents[_this.rMeasure][0] - rOffset, _this.chartComponentData.extents[_this.rMeasure][1] + rOffset]);\r\n // Draw axis\r\n _this.drawAxis();\r\n // Draw axis labels\r\n _this.drawAxisLabels();\r\n // Draw connecting lines (if toggled on)\r\n _this.drawConnectingLines();\r\n // Draw data\r\n var scatter = _this.pointWrapper.selectAll(\".tsi-dot\")\r\n .data(_this.cleanData(_this.chartComponentData.temporalDataArray), function (d) {\r\n if (_this.chartOptions.isTemporal) {\r\n return d.aggregateKey + d.splitBy + d.splitByI;\r\n }\r\n else {\r\n return d.aggregateKey + d.splitBy + d.timestamp;\r\n }\r\n });\r\n scatter\r\n .enter()\r\n .append(\"circle\")\r\n .attr(\"class\", \"tsi-dot\")\r\n .attr(\"r\", function (d) { return _this.rScale(d.measures[_this.rMeasure]); })\r\n .attr(\"cx\", function (d) { return _this.xScale(d.measures[_this.xMeasure]); })\r\n .attr(\"cy\", function (d) { return _this.yScale(d.measures[_this.yMeasure]); })\r\n .merge(scatter)\r\n .attr(\"id\", function (d) { return _this.getClassHash(d.aggregateKey, d.splitBy, d.splitByI, d.timestamp); })\r\n .transition()\r\n .duration(_this.chartOptions.noAnimate ? 0 : _this.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attr(\"r\", function (d) { return _this.rScale(d.measures[_this.rMeasure]); })\r\n .attr(\"cx\", function (d) { return _this.xScale(d.measures[_this.xMeasure]); })\r\n .attr(\"cy\", function (d) { return _this.yScale(d.measures[_this.yMeasure]); })\r\n .attr(\"fill\", function (d) { return Utils.colorSplitBy(_this.chartComponentData.displayState, d.splitByI, d.aggregateKey, _this.chartOptions.keepSplitByColor); })\r\n .attr(\"stroke\", function (d) { return Utils.colorSplitBy(_this.chartComponentData.displayState, d.splitByI, d.aggregateKey, _this.chartOptions.keepSplitByColor); })\r\n .attr(\"stroke-opacity\", _this.standardStroke)\r\n .attr(\"fill-opacity\", _this.standardOpacity)\r\n .attr(\"stroke-width\", \"1px\");\r\n scatter.exit().remove();\r\n // Draw voronoi\r\n _this.drawVoronoi();\r\n // Resize controls\r\n _this.setControlsPanelWidth();\r\n /******************** Temporal Slider ************************/\r\n if (_this.chartComponentData.allTimestampsArray.length > 1 && _this.chartOptions.isTemporal) {\r\n d3.select(_this.renderTarget).select('.tsi-sliderWrapper').classed('tsi-hidden', false);\r\n _this.slider.render(_this.chartComponentData.allTimestampsArray.map(function (ts) {\r\n var action = function () {\r\n _this.chartOptions.timestamp = ts;\r\n _this.render(_this.chartComponentData.data, _this.chartOptions, _this.aggregateExpressionOptions, true);\r\n };\r\n return { label: Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, null, null, _this.chartOptions.dateLocale)(new Date(ts)), action: action };\r\n }), _this.chartOptions, _this.getSliderWidth(), Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, null, null, _this.chartOptions.dateLocale)(new Date(_this.chartComponentData.timestamp)));\r\n }\r\n else {\r\n if (_this.slider)\r\n _this.slider.remove();\r\n d3.select(_this.renderTarget).select('.tsi-sliderWrapper').classed('tsi-hidden', true);\r\n }\r\n // Draw Legend\r\n _this.legendObject.draw(_this.chartOptions.legend, _this.chartComponentData, _this.labelMouseOver.bind(_this), _this.svgSelection, _this.chartOptions, _this.labelMouseOut.bind(_this), _this.stickySeries, event);\r\n _this.sliderWrapper\r\n .style(\"width\", _this.svgSelection.node().getBoundingClientRect().width + 10 + \"px\");\r\n };\r\n /******** UPDATE STICKY SPLITBY ********/\r\n _this.stickySeries = function (aggregateKey, splitBy) {\r\n if (splitBy === void 0) { splitBy = null; }\r\n var filteredValues = _this.getVoronoiData(_this.chartComponentData.temporalDataArray);\r\n if (filteredValues == null || filteredValues.length == 0)\r\n return;\r\n _this.chartComponentData.stickiedKey = {\r\n aggregateKey: aggregateKey,\r\n splitBy: (splitBy == null ? null : splitBy)\r\n };\r\n _this.legendObject.legendElement.selectAll('.tsi-splitByLabel').filter(function (filteredSplitBy) {\r\n return (d3.select(this.parentNode).datum() == aggregateKey) && (filteredSplitBy == splitBy);\r\n }).classed(\"stickied\", true);\r\n _this.voronoiDiagram = _this.voronoi(_this.getVoronoiData(_this.chartComponentData.temporalDataArray));\r\n };\r\n _this.chartMargins = {\r\n top: 40,\r\n bottom: 48,\r\n left: 70,\r\n right: 60\r\n };\r\n return _this;\r\n }\r\n ScatterPlot.prototype.ScatterPlot = function () { };\r\n ScatterPlot.prototype.render = function (data, options, aggregateExpressionOptions, fromSlider) {\r\n var _this = this;\r\n if (fromSlider === void 0) { fromSlider = false; }\r\n _super.prototype.render.call(this, data, options, aggregateExpressionOptions);\r\n // If measure options not set, or less than 2, return\r\n if (this.chartOptions[\"spMeasures\"] == null || (this.chartOptions[\"spMeasures\"] != null && this.chartOptions[\"spMeasures\"].length < 2)) {\r\n var invalidMessage = \"spMeasures not correctly specified or has length < 2: \" + this.chartOptions[\"spMeasures\"] +\r\n \"\\n\\nPlease add the following chartOption: {spMeasures: ['example_x_axis_measure', 'example_y_axis_measure', 'example_radius_measure']} \" +\r\n \"where the measures correspond to the data key names.\";\r\n console.log(invalidMessage);\r\n return;\r\n }\r\n this.chartMargins.top = (this.chartOptions.legend === 'compact') ? 84 : 40;\r\n if (!this.chartOptions.hideChartControlPanel)\r\n this.chartMargins.top += 20;\r\n this.chartMargins.left = (this.chartOptions.spAxisLabels != null && this.chartOptions.spAxisLabels.length >= 2) ? 120 : 70;\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.chartOptions.timestamp, this.aggregateExpressionOptions);\r\n this.chartComponentData.setExtents(this.chartOptions.spMeasures, !fromSlider);\r\n // Check measure validity\r\n if (!this.checkExtentValidity())\r\n return;\r\n this.controlsOffset = (this.chartOptions.legend == \"shown\" ? this.CONTROLSWIDTH : 0);\r\n this.setWidthAndHeight();\r\n /******** STATIC INITIALIZATION ********/\r\n if (this.svgSelection == null) {\r\n // Initialize extents\r\n //this.chartComponentData.setExtents(this.chartOptions.spMeasures);\r\n this.targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-scatterPlot\", true);\r\n this.svgSelection = this.targetElement.append(\"svg\")\r\n .attr(\"class\", \"tsi-scatterPlotSVG tsi-chartSVG\")\r\n .attr('title', this.getString('Scatter plot'))\r\n .attr(\"height\", this.height);\r\n this.g = this.svgSelection.append(\"g\")\r\n .classed(\"tsi-svgGroup\", true);\r\n this.lineWrapper = this.g.append(\"g\")\r\n .classed(\"tsi-lineWrapper\", true);\r\n this.pointWrapper = this.g.append(\"g\")\r\n .classed(\"tsi-pointWrapper\", true);\r\n // Create temporal slider div\r\n this.sliderWrapper = d3.select(this.renderTarget).append('div').classed('tsi-sliderWrapper', true);\r\n this.tooltip = new Tooltip(d3.select(this.renderTarget));\r\n // Initialize voronoi\r\n this.voronoiGroup = this.g.append(\"rect\")\r\n .attr(\"class\", \"tsi-voronoiWrap\")\r\n .attr(\"fill\", \"transparent\");\r\n // Initialize focus crosshair lines\r\n this.focus = this.pointWrapper.append(\"g\")\r\n .attr(\"transform\", \"translate(-100,-100)\")\r\n .attr(\"class\", \"tsi-focus\")\r\n .style(\"display\", \"none\");\r\n this.focus.append(\"line\")\r\n .attr(\"class\", \"tsi-focusLine tsi-vLine\")\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", 0)\r\n .attr(\"y1\", this.chartOptions.aggTopMargin)\r\n .attr(\"y2\", this.chartHeight);\r\n this.focus.append(\"line\")\r\n .attr(\"class\", \"tsi-focusLine tsi-hLine\")\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", this.chartWidth)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", 0);\r\n // Initialize focus axis data boxes\r\n var hHoverG = this.focus.append(\"g\")\r\n .attr(\"class\", 'hHoverG')\r\n .style(\"pointer-events\", \"none\")\r\n .attr(\"transform\", \"translate(0,\" + (this.chartHeight + this.chartOptions.aggTopMargin) + \")\");\r\n hHoverG.append(\"rect\")\r\n .style(\"pointer-events\", \"none\")\r\n .attr(\"class\", 'hHoverBox')\r\n .attr(\"x\", 0)\r\n .attr(\"y\", 4)\r\n .attr(\"width\", 0)\r\n .attr(\"height\", 0);\r\n hHoverG.append(\"text\")\r\n .style(\"pointer-events\", \"none\")\r\n .attr(\"class\", \"hHoverText\")\r\n .attr(\"dy\", \".71em\")\r\n .attr(\"transform\", \"translate(0,9)\")\r\n .text(function (d) { return d; });\r\n var vHoverG = this.focus.append(\"g\")\r\n .attr(\"class\", 'vHoverG')\r\n .attr(\"transform\", \"translate(0,\" + (this.chartHeight + this.chartOptions.aggTopMargin) + \")\");\r\n vHoverG.append(\"rect\")\r\n .attr(\"class\", 'vHoverBox')\r\n .attr(\"x\", -5)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", 0)\r\n .attr(\"height\", 0);\r\n vHoverG.append(\"text\")\r\n .attr(\"class\", \"vHoverText\")\r\n .attr(\"dy\", \".32em\")\r\n .attr(\"x\", -10)\r\n .text(function (d) { return d; });\r\n // Add Window Resize Listener\r\n window.addEventListener(\"resize\", function (event) {\r\n if (!_this.chartOptions.suppressResizeListener) {\r\n _this.draw(true, event);\r\n }\r\n });\r\n // Temporal slider\r\n this.slider = new Slider(d3.select(this.renderTarget).select('.tsi-sliderWrapper').node());\r\n // Legend\r\n this.legendObject = new Legend(this.draw.bind(this), this.renderTarget, this.CONTROLSWIDTH);\r\n }\r\n // Draw scatter plot\r\n this.draw();\r\n this.gatedShowGrid();\r\n d3.select(\"html\").on(\"click.\" + Utils.guid(), function (event) {\r\n if (_this.ellipsisContainer && event.target != _this.ellipsisContainer.select(\".tsi-ellipsisButton\").node()) {\r\n _this.ellipsisMenu.setMenuVisibility(false);\r\n }\r\n });\r\n this.legendPostRenderProcess(this.chartOptions.legend, this.svgSelection, false);\r\n };\r\n ScatterPlot.prototype.getSliderWidth = function () {\r\n return this.chartWidth + this.chartMargins.left + this.chartMargins.right - 16;\r\n };\r\n ScatterPlot.prototype.tooltipFormat = function (d, text, measureFormat, xyrMeasures) {\r\n _super.prototype.tooltipFormat.call(this, d, text, measureFormat, xyrMeasures);\r\n if (!this.chartOptions.isTemporal) {\r\n var titleGroup = text.select('.tsi-tooltipTitleGroup');\r\n if (d.timestamp) {\r\n titleGroup.append('h4')\r\n .attr('class', 'tsi-tooltipSubtitle tsi-tooltipTimeStamp')\r\n .text(this.formatDate(d.timestamp, this.chartComponentData.getTemporalShiftMillis(d.aggregateKey)));\r\n }\r\n }\r\n };\r\n /******** DRAW CONNECTING LINES BETWEEN POINTS ********/\r\n ScatterPlot.prototype.drawConnectingLines = function () {\r\n var _this = this;\r\n // Don't render connecting lines on temporal mode\r\n if (this.chartOptions.isTemporal) {\r\n this.lineWrapper.selectAll(\"*\").remove();\r\n return;\r\n }\r\n var dataSet = this.cleanData(this.chartComponentData.temporalDataArray);\r\n var connectedSeriesMap = {};\r\n // Find measure by which to connect series of points\r\n var getPointConnectionMeasure = (function (point) {\r\n var _a;\r\n var pConMes = (_a = _this.aggregateExpressionOptions[point.aggregateKeyI]) === null || _a === void 0 ? void 0 : _a.pointConnectionMeasure;\r\n return pConMes && pConMes in point.measures ? pConMes : null;\r\n });\r\n // Map data into groups of connected points, if connectedPoints enabled for agg\r\n dataSet.forEach(function (point) {\r\n if (point.aggregateKeyI !== null && point.aggregateKeyI < _this.aggregateExpressionOptions.length &&\r\n _this.aggregateExpressionOptions[point.aggregateKeyI].connectPoints) {\r\n var series = point.aggregateKey + \"_\" + point.splitBy;\r\n if (series in connectedSeriesMap) {\r\n connectedSeriesMap[series].data.push(point);\r\n }\r\n else {\r\n connectedSeriesMap[series] = {\r\n data: [point],\r\n pointConnectionMeasure: getPointConnectionMeasure(point)\r\n };\r\n }\r\n }\r\n });\r\n var _loop_1 = function (key) {\r\n var sortMeasure = connectedSeriesMap[key].pointConnectionMeasure;\r\n // If sort measure specified, sort by that measure\r\n if (sortMeasure) {\r\n connectedSeriesMap[key].data.sort(function (a, b) {\r\n if (a.measures[sortMeasure] < b.measures[sortMeasure])\r\n return -1;\r\n if (a.measures[sortMeasure] > b.measures[sortMeasure])\r\n return 1;\r\n return 0;\r\n });\r\n }\r\n };\r\n // Sort connected series by pointConnectionMeasure\r\n for (var _i = 0, _a = Object.keys(connectedSeriesMap); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n _loop_1(key);\r\n }\r\n var line = d3.line()\r\n .x(function (d) { return _this.xScale(d.measures[_this.xMeasure]); })\r\n .y(function (d) { return _this.yScale(d.measures[_this.yMeasure]); })\r\n .curve(this.chartOptions.interpolationFunction); // apply smoothing to the line\r\n // Group lines by aggregate\r\n var connectedGroups = this.lineWrapper.selectAll(\".tsi-lineSeries\").data(Object.keys(connectedSeriesMap));\r\n var self = this;\r\n connectedGroups.enter()\r\n .append(\"g\")\r\n .attr(\"class\", 'tsi-lineSeries')\r\n .merge(connectedGroups)\r\n .each(function (seriesName) {\r\n var series = d3.select(this).selectAll(\".tsi-line\").data([connectedSeriesMap[seriesName].data], function (d) { return d[0].aggregateKeyI + d[0].splitBy; });\r\n series.exit().remove();\r\n series\r\n .enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"tsi-line\")\r\n .merge(series)\r\n .attr(\"fill\", \"none\")\r\n .transition()\r\n .duration(self.chartOptions.noAnimate ? 0 : self.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attr(\"stroke\", function (d) { return Utils.colorSplitBy(self.chartComponentData.displayState, d[0].splitByI, d[0].aggregateKey, self.chartOptions.keepSplitByColor); })\r\n .attr(\"stroke-width\", 2.5)\r\n .attr(\"stroke-linejoin\", \"round\")\r\n .attr(\"stroke-linecap\", \"round\")\r\n .attr(\"d\", line);\r\n });\r\n connectedGroups.exit().remove();\r\n };\r\n /******** CHECK VALIDITY OF EXTENTS ********/\r\n ScatterPlot.prototype.checkExtentValidity = function () {\r\n var _this = this;\r\n if (this.chartComponentData.allValues == 0) {\r\n return true;\r\n }\r\n var testExtent = {};\r\n this.chartOptions.spMeasures.forEach(function (measure) {\r\n testExtent[measure] = d3.extent(_this.chartComponentData.allValues, function (v) {\r\n if (!v.measures)\r\n return null;\r\n return measure in v.measures ? v.measures[measure] : null;\r\n });\r\n });\r\n Object.keys(testExtent).forEach(function (extent) {\r\n testExtent[extent].forEach(function (el) {\r\n if (el == undefined) {\r\n console.log(\"Undefined Measure: \", extent);\r\n return false;\r\n }\r\n });\r\n });\r\n return true;\r\n };\r\n /******** CREATE VORONOI DIAGRAM FOR MOUSE EVENTS ********/\r\n ScatterPlot.prototype.drawVoronoi = function () {\r\n var _this = this;\r\n var voronoiData = this.getVoronoiData(this.chartComponentData.temporalDataArray);\r\n var self = this;\r\n // Create random offset to solve colinear data issue\r\n var getRandomInRange = function (min, max) {\r\n return Math.random() * (max - min) + min;\r\n };\r\n var getOffset = function () { return (Math.random() < 0.5 ? -1 : 1) * getRandomInRange(0, .01); };\r\n this.voronoi = d3Voronoi.voronoi()\r\n .x(function (d) { return _this.xScale(d.measures[_this.xMeasure]) + getOffset(); })\r\n .y(function (d) { return _this.yScale(d.measures[_this.yMeasure]) + getOffset(); })\r\n .extent([[0, 0], [this.chartWidth, this.chartHeight]]);\r\n this.voronoiDiagram = this.voronoi(voronoiData);\r\n this.voronoiGroup\r\n .on(\"mousemove\", function (event) {\r\n var mouseEvent = d3.pointer(event);\r\n self.voronoiMouseMove(mouseEvent);\r\n })\r\n .on(\"mouseover\", function (event) {\r\n var mouseEvent = d3.pointer(event);\r\n self.voronoiMouseMove(mouseEvent);\r\n var site = self.voronoiDiagram.find(mouseEvent[0], mouseEvent[1]);\r\n if (site != null)\r\n self.labelMouseOver(site.data.aggregateKey, site.data.splitBy);\r\n })\r\n .on(\"mouseout\", function () {\r\n self.voronoiMouseOut();\r\n })\r\n .on(\"click\", function (event) {\r\n var mouseEvent = d3.pointer(event);\r\n self.voronoiClick(mouseEvent);\r\n });\r\n };\r\n /******** STICKY/UNSTICKY DATA GROUPS ON VORONOI DIAGRAM CLICK ********/\r\n ScatterPlot.prototype.voronoiClick = function (mouseEvent) {\r\n var site = this.voronoiDiagram.find(mouseEvent[0], mouseEvent[1]);\r\n if (site == null)\r\n return;\r\n // Unsticky all\r\n this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"stickied\", false);\r\n if (this.chartComponentData.stickiedKey != null) {\r\n this.chartComponentData.stickiedKey = null;\r\n // Recompute Voronoi\r\n this.voronoiDiagram = this.voronoi(this.getVoronoiData(this.chartComponentData.temporalDataArray));\r\n site = this.voronoiDiagram.find(mouseEvent[0], mouseEvent[1]);\r\n this.voronoiMouseMove(mouseEvent);\r\n this.chartOptions.onUnsticky(site.data.aggregateKey, site.data.splitBy);\r\n return;\r\n }\r\n this.stickySeries(site.data.aggregateKey, site.data.splitBy);\r\n this.chartOptions.onSticky(site.data.aggregateKey, site.data.splitBy);\r\n };\r\n /******** HIGHLIGHT DOT TARGETED BY CROSSHAIRS WITH BLACK / WHITE STROKE BORDER ********/\r\n ScatterPlot.prototype.highlightDot = function (site) {\r\n //If dot is active, unhighlight\r\n this.unhighlightDot();\r\n // Add highlight border to newly focused dot\r\n var highlightColor = this.chartOptions.theme == \"light\" ? \"black\" : \"white\";\r\n var idSelector = \"#\" + this.getClassHash(site.data.aggregateKey, site.data.splitBy, site.data.splitByI, site.data.timestamp);\r\n this.activeDot = this.svgSelection.select(idSelector);\r\n this.activeDot\r\n .attr(\"stroke\", highlightColor)\r\n .attr(\"stroke-width\", \"2px\")\r\n // Raise active dot above crosshair\r\n .raise().classed(\"active\", true);\r\n };\r\n /******** GET UNIQUE STRING HASH ID FOR EACH DOT USING DATA ATTRIBUTES ********/\r\n ScatterPlot.prototype.getClassHash = function (aggKey, splitBy, splitByI, timestamp) {\r\n return String(\"dot\" + Utils.hash(aggKey + splitBy + splitByI.toString() + timestamp));\r\n };\r\n /******** UNHIGHLIGHT ACTIVE DOT ********/\r\n ScatterPlot.prototype.unhighlightDot = function () {\r\n var _this = this;\r\n if (this.activeDot) {\r\n this.activeDot\r\n .attr(\"stroke\", function (d) { return Utils.colorSplitBy(_this.chartComponentData.displayState, d.splitByI, d.aggregateKey, _this.chartOptions.keepSplitByColor); })\r\n .attr(\"stroke-width\", \"1px\");\r\n }\r\n this.activeDot = null;\r\n };\r\n /******** EFFICIENTLY SWAP NEW FOCUSED GROUP WITH OLD FOCUSED GROUP ********/\r\n ScatterPlot.prototype.labelMouseMove = function (aggKey, splitBy) {\r\n if (aggKey !== this.focusedAggKey || splitBy !== this.focusedSplitBy) {\r\n var selectedFilter = Utils.createValueFilter(aggKey, splitBy);\r\n var oldFilter = Utils.createValueFilter(this.focusedAggKey, this.focusedSplitBy);\r\n this.svgSelection.selectAll(\".tsi-dot\")\r\n .filter(selectedFilter)\r\n .attr(\"stroke-opacity\", this.standardStroke)\r\n .attr(\"fill-opacity\", this.focusOpacity);\r\n this.svgSelection.selectAll(\".tsi-dot\")\r\n .filter(oldFilter)\r\n .attr(\"stroke-opacity\", this.lowStroke)\r\n .attr(\"fill-opacity\", this.lowOpacity);\r\n var lineSelectedFilter_1 = function (d) {\r\n return (d[0].aggregateKey === aggKey && d[0].splitBy === splitBy);\r\n };\r\n this.svgSelection.selectAll(\".tsi-line\")\r\n .filter(function (d) { return lineSelectedFilter_1(d); })\r\n .attr(\"stroke-opacity\", this.standardStroke);\r\n this.svgSelection.selectAll(\".tsi-line\")\r\n .filter(function (d) { return !lineSelectedFilter_1(d); })\r\n .attr(\"stroke-opacity\", this.lowStroke);\r\n this.focusedAggKey = aggKey;\r\n this.focusedSplitBy = splitBy;\r\n }\r\n // Raise crosshair to top\r\n this.focus.raise().classed(\"active\", true);\r\n // Raise highlighted dot above crosshairs\r\n if (this.activeDot != null)\r\n this.activeDot.raise().classed(\"active\", true);\r\n // Highlight legend group\r\n (this.legendObject.legendElement.selectAll('.tsi-splitByLabel').filter(function (filteredSplitBy) {\r\n return (d3.select(this.parentNode).datum() == aggKey) && (filteredSplitBy == splitBy);\r\n })).classed(\"inFocus\", true);\r\n };\r\n /******** DRAW CROSSHAIRS, TOOLTIP, AND LEGEND FOCUS ********/\r\n ScatterPlot.prototype.voronoiMouseMove = function (mouseEvent) {\r\n var mouse_x = mouseEvent[0];\r\n var mouse_y = mouseEvent[1];\r\n var site = this.voronoiDiagram.find(mouse_x, mouse_y);\r\n if (site == null)\r\n return;\r\n // Short circuit mouse move if focused site has not changed\r\n if (this.focusedSite == null)\r\n this.focusedSite = site;\r\n else if (this.focusedSite == site)\r\n return;\r\n this.focusedSite = site;\r\n this.drawTooltip(site.data, [site[0], site[1]]);\r\n this.labelMouseMove(site.data.aggregateKey, site.data.splitBy);\r\n this.highlightDot(site);\r\n // Draw focus cross hair\r\n this.focus.style(\"display\", \"block\");\r\n this.focus.attr(\"transform\", \"translate(\" + site[0] + \",\" + site[1] + \")\");\r\n this.focus.select('.tsi-hLine').attr(\"transform\", \"translate(\" + (-site[0]) + \",0)\");\r\n this.focus.select('.tsi-vLine').attr(\"transform\", \"translate(0,\" + (-site[1]) + \")\");\r\n // Draw horizontal hover box \r\n this.focus.select('.hHoverG')\r\n .attr(\"transform\", \"translate(0,\" + (this.chartHeight - site[1]) + \")\")\r\n .select(\"text\")\r\n .text((Utils.formatYAxisNumber(site.data.measures[this.xMeasure])));\r\n var textElemDimensions = this.focus.select('.hHoverG').select(\"text\")\r\n .node().getBoundingClientRect();\r\n this.focus.select(\".hHoverG\").select(\"rect\")\r\n .attr(\"x\", -(textElemDimensions.width / 2) - 3)\r\n .attr(\"width\", textElemDimensions.width + 6)\r\n .attr(\"height\", textElemDimensions.height + 5);\r\n // Draw vertical hover box\r\n this.focus.select('.vHoverG')\r\n .attr(\"transform\", \"translate(\" + (-site[0]) + \",0)\")\r\n .select(\"text\")\r\n .text(Utils.formatYAxisNumber(site.data.measures[this.yMeasure]));\r\n textElemDimensions = this.focus.select('.vHoverG').select(\"text\")\r\n .node().getBoundingClientRect();\r\n this.focus.select(\".vHoverG\").select(\"rect\")\r\n .attr(\"x\", -(textElemDimensions.width) - 13)\r\n .attr(\"y\", -(textElemDimensions.height / 2) - 3)\r\n .attr(\"width\", textElemDimensions.width + 6)\r\n .attr(\"height\", textElemDimensions.height + 4);\r\n this.legendObject.triggerSplitByFocus(site.data.aggregateKey, site.data.splitBy);\r\n };\r\n /******** HIDE TOOLTIP AND CROSSHAIRS ********/\r\n ScatterPlot.prototype.voronoiMouseOut = function () {\r\n this.focusedSite = null;\r\n this.focus.style(\"display\", \"none\");\r\n this.tooltip.hide();\r\n this.labelMouseOut();\r\n this.unhighlightDot();\r\n };\r\n /******** FILTER DATA BY VISIBLE AND STICKIED ********/\r\n ScatterPlot.prototype.getVoronoiData = function (rawData) {\r\n var _this = this;\r\n var cleanData = this.cleanData(rawData);\r\n var filteredValues = cleanData.filter(function (d) {\r\n return (_this.chartComponentData.displayState[d.aggregateKey].visible &&\r\n _this.chartComponentData.displayState[d.aggregateKey].splitBys[d.splitBy].visible);\r\n });\r\n if (this.chartComponentData.stickiedKey == null)\r\n return filteredValues;\r\n var stickiedValues = filteredValues.filter(function (d) {\r\n return d.aggregateKey == _this.chartComponentData.stickiedKey.aggregateKey &&\r\n ((_this.chartComponentData.stickiedKey.splitBy == null) ? true :\r\n d.splitBy == _this.chartComponentData.stickiedKey.splitBy);\r\n });\r\n return stickiedValues;\r\n };\r\n /******** HIGHLIGHT FOCUSED GROUP ********/\r\n ScatterPlot.prototype.labelMouseOver = function (aggKey, splitBy) {\r\n if (splitBy === void 0) { splitBy = null; }\r\n // Remove highlight on previous legend group\r\n this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n // Filter selected\r\n var selectedFilter = function (d) {\r\n var currAggKey = null, currSplitBy = null;\r\n if (d.aggregateKey != null)\r\n currAggKey = d.aggregateKey;\r\n if (d.splitBy != null)\r\n currSplitBy = d.splitBy;\r\n if (splitBy == null)\r\n return currAggKey == aggKey;\r\n if (currAggKey == aggKey && currSplitBy == splitBy)\r\n return false;\r\n return true;\r\n };\r\n //Highlight active group\r\n this.svgSelection.selectAll(\".tsi-dot\")\r\n .filter(function (d) { return !selectedFilter(d); })\r\n .attr(\"stroke-opacity\", this.standardStroke)\r\n .attr(\"fill-opacity\", this.focusOpacity);\r\n // Decrease opacity of unselected\r\n this.svgSelection.selectAll(\".tsi-dot\")\r\n .filter(selectedFilter)\r\n .attr(\"stroke-opacity\", this.lowStroke)\r\n .attr(\"fill-opacity\", this.lowOpacity);\r\n // Decrease opacity of unselected line\r\n this.svgSelection.selectAll(\".tsi-line\")\r\n .filter(function (d) { return !(d[0].aggregateKey === aggKey && d[0].splitBy === splitBy); })\r\n .attr(\"stroke-opacity\", this.lowStroke);\r\n };\r\n /******** UNHIGHLIGHT FOCUSED GROUP ********/\r\n ScatterPlot.prototype.labelMouseOut = function () {\r\n var _this = this;\r\n // Remove highlight on legend group\r\n this.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n this.g.selectAll(\".tsi-dot\")\r\n .attr(\"stroke-opacity\", this.standardStroke)\r\n .attr(\"fill-opacity\", this.standardOpacity)\r\n .attr(\"stroke\", function (d) { return Utils.colorSplitBy(_this.chartComponentData.displayState, d.splitByI, d.aggregateKey, _this.chartOptions.keepSplitByColor); })\r\n .attr(\"fill\", function (d) { return Utils.colorSplitBy(_this.chartComponentData.displayState, d.splitByI, d.aggregateKey, _this.chartOptions.keepSplitByColor); })\r\n .attr(\"stroke-width\", \"1px\");\r\n this.g.selectAll(\".tsi-line\")\r\n .attr(\"stroke-opacity\", this.standardStroke);\r\n };\r\n /******** FILTER DATA, ONLY KEEPING POINTS WITH ALL REQUIRED MEASURES ********/\r\n ScatterPlot.prototype.cleanData = function (data) {\r\n var _this = this;\r\n // Exclude any data which does not contain the specified\r\n // chart option measure\r\n var filtered = data.filter(function (value) {\r\n var valOk = true;\r\n _this.chartOptions.spMeasures\r\n .forEach(function (measure) {\r\n if (value.measures == null)\r\n valOk = false;\r\n else if (!(measure in value.measures)) {\r\n valOk = false;\r\n }\r\n });\r\n return valOk;\r\n });\r\n return filtered;\r\n };\r\n /******** UPDATE CHART DIMENSIONS ********/\r\n ScatterPlot.prototype.setWidthAndHeight = function (isFromResize) {\r\n if (isFromResize === void 0) { isFromResize = false; }\r\n this.height = Math.max(d3.select(this.renderTarget).node().clientHeight, this.MINHEIGHT);\r\n this.chartHeight = this.height - this.chartMargins.top - this.chartMargins.bottom;\r\n this.width = this.getWidth();\r\n if (!isFromResize) {\r\n this.chartWidth = this.getChartWidth();\r\n }\r\n };\r\n /******** SCALE AND DRAW AXIS ********/\r\n ScatterPlot.prototype.drawAxis = function () {\r\n // Draw dynamic x axis and label\r\n this.xAxis = this.pointWrapper.selectAll(\".xAxis\").data([this.xScale]);\r\n this.xAxis.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"xAxis\")\r\n .merge(this.xAxis)\r\n .attr(\"transform\", \"translate(0,\" + (this.chartHeight) + \")\")\r\n .call(d3.axisBottom(this.xScale).ticks(Math.max(2, Math.floor(this.chartWidth / 150))));\r\n this.xAxis.exit().remove();\r\n // Draw dynamic y axis and label\r\n this.yAxis = this.pointWrapper.selectAll(\".yAxis\").data([this.yScale]);\r\n this.yAxis.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"yAxis\")\r\n .merge(this.yAxis)\r\n .call(d3.axisLeft(this.yScale).ticks(Math.max(2, Math.floor(this.chartHeight / 90))));\r\n this.yAxis.exit().remove();\r\n };\r\n /******** DRAW X AND Y AXIS LABELS ********/\r\n ScatterPlot.prototype.drawAxisLabels = function () {\r\n var self = this;\r\n var xLabelData, yLabelData;\r\n var truncateTextLength = function (textSelection, maxTextLengthPx) {\r\n if (textSelection.node() && textSelection.node().getComputedTextLength) {\r\n var textLength = textSelection.node().getComputedTextLength();\r\n var text = textSelection.text();\r\n while (textLength > maxTextLengthPx && text.length > 0) {\r\n text = text.slice(0, -1);\r\n textSelection.text(text + '...');\r\n textLength = textSelection.node().getComputedTextLength();\r\n }\r\n }\r\n };\r\n // Associate axis label data\r\n (this.chartOptions.spAxisLabels != null && this.chartOptions.spAxisLabels.length >= 1) ?\r\n xLabelData = [this.chartOptions.spAxisLabels[0]] : xLabelData = [];\r\n (this.chartOptions.spAxisLabels != null && this.chartOptions.spAxisLabels.length >= 2) ?\r\n yLabelData = [this.chartOptions.spAxisLabels[1]] : yLabelData = [];\r\n this.xAxisLabel = this.pointWrapper.selectAll('.tsi-xAxisLabel').data(xLabelData);\r\n var xAxisLabel = this.xAxisLabel\r\n .enter()\r\n .append(\"text\")\r\n .attr(\"class\", \"tsi-xAxisLabel tsi-AxisLabel\")\r\n .merge(this.xAxisLabel)\r\n .style(\"text-anchor\", \"middle\")\r\n .attr(\"transform\", \"translate(\" + (this.chartWidth / 2) + \" ,\" + (this.chartHeight + 42) + \")\")\r\n .text(null);\r\n xAxisLabel.each(function (d) {\r\n var label = d3.select(this);\r\n Utils.appendFormattedElementsFromString(label, d, { inSvg: true });\r\n });\r\n //text is either in tspans or just in text. Either truncate text directly or through tspan\r\n if (xAxisLabel.selectAll(\"tspan\").size() == 0)\r\n truncateTextLength(xAxisLabel, this.chartWidth);\r\n else {\r\n xAxisLabel.selectAll(\"tspan\").each(function () {\r\n var tspanTextSelection = d3.select(this);\r\n truncateTextLength(tspanTextSelection, self.chartWidth / xAxisLabel.selectAll(\"tspan\").size());\r\n });\r\n }\r\n this.xAxisLabel.exit().remove();\r\n this.yAxisLabel = this.pointWrapper.selectAll('.tsi-yAxisLabel').data(yLabelData);\r\n var yAxisLabel = this.yAxisLabel\r\n .enter()\r\n .append(\"text\")\r\n .attr(\"class\", \"tsi-yAxisLabel tsi-AxisLabel\")\r\n .merge(this.yAxisLabel)\r\n .style(\"text-anchor\", \"middle\")\r\n .attr(\"transform\", \"translate(\" + (-70) + \" ,\" + (this.chartHeight / 2) + \") rotate(-90)\")\r\n .text(null);\r\n yAxisLabel.each(function (d) {\r\n var label = d3.select(this);\r\n Utils.appendFormattedElementsFromString(label, d, { inSvg: true });\r\n });\r\n //text is either in tspans or just in text. Either truncate text directly or through tspan\r\n if (yAxisLabel.selectAll(\"tspan\").size() == 0)\r\n truncateTextLength(yAxisLabel, this.chartHeight);\r\n else {\r\n yAxisLabel.selectAll(\"tspan\").each(function () {\r\n var tspanTextSelection = d3.select(this);\r\n truncateTextLength(tspanTextSelection, self.chartHeight / yAxisLabel.selectAll(\"tspan\").size());\r\n });\r\n }\r\n this.yAxisLabel.exit().remove();\r\n };\r\n /******** DRAW TOOLTIP IF ENABLED ********/\r\n ScatterPlot.prototype.drawTooltip = function (d, mousePosition) {\r\n var _this = this;\r\n var self = this;\r\n if (this.chartOptions.tooltip) {\r\n var xPos = mousePosition[0];\r\n var yPos = mousePosition[1];\r\n var xyrMeasures_1 = [this.xMeasure, this.yMeasure];\r\n if (this.rMeasure !== null) {\r\n xyrMeasures_1.push(this.rMeasure);\r\n }\r\n this.tooltip.render(this.chartOptions.theme);\r\n this.tooltip.draw(d, this.chartComponentData, xPos, yPos, this.chartMargins, function (text) {\r\n d.aggregateName = _this.chartComponentData.displayState[d.aggregateKey].name;\r\n _this.tooltipFormat(d, text, TooltipMeasureFormat.Scatter, xyrMeasures_1);\r\n }, null, 20, 20, Utils.colorSplitBy(this.chartComponentData.displayState, d.splitByI, d.aggregateKey, this.chartOptions.keepSplitByColor));\r\n }\r\n };\r\n /******** HELPERS TO FORMAT TIME DISPLAY ********/\r\n ScatterPlot.prototype.labelFormatUsesSeconds = function () {\r\n return !this.chartOptions.minutesForTimeLabels && this.chartComponentData.usesSeconds;\r\n };\r\n ScatterPlot.prototype.labelFormatUsesMillis = function () {\r\n return !this.chartOptions.minutesForTimeLabels && this.chartComponentData.usesMillis;\r\n };\r\n return ScatterPlot;\r\n}(ChartVisualizationComponent));\r\nexport default ScatterPlot;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './GroupedBarChart.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { TooltipMeasureFormat } from \"./../../Constants/Enums\";\r\nimport Legend from './../Legend';\r\nimport Slider from './../Slider';\r\nimport { GroupedBarChartData } from '../../Models/GroupedBarChartData';\r\nimport ContextMenu from './../ContextMenu';\r\nimport Tooltip from '../Tooltip';\r\nimport { ChartVisualizationComponent } from '../../Interfaces/ChartVisualizationComponent';\r\nvar GroupedBarChart = /** @class */ (function (_super) {\r\n __extends(GroupedBarChart, _super);\r\n function GroupedBarChart(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.isStacked = null;\r\n _this.stackedButton = null;\r\n _this.chartComponentData = new GroupedBarChartData();\r\n _this.chartMargins = {\r\n top: 52,\r\n bottom: 48,\r\n left: 70,\r\n right: 60\r\n };\r\n return _this;\r\n }\r\n GroupedBarChart.prototype.GroupedBarChart = function () { };\r\n GroupedBarChart.prototype.render = function (data, options, aggregateExpressionOptions) {\r\n var _this = this;\r\n _super.prototype.render.call(this, data, options, aggregateExpressionOptions);\r\n if (options && options.stacked || this.isStacked == null) {\r\n this.isStacked = this.chartOptions.stacked;\r\n }\r\n this.chartMargins.top = (this.chartOptions.legend === 'compact') ? 84 : 52;\r\n this.width = Math.max(d3.select(this.renderTarget).node().clientWidth, this.MINWIDTH);\r\n var height = Math.max(d3.select(this.renderTarget).node().clientHeight, this.MINHEIGHT);\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.timestamp, this.aggregateExpressionOptions);\r\n this.timestamp = (options && options.timestamp != undefined) ? options.timestamp : this.chartComponentData.allTimestampsArray[0];\r\n var chartHeight = height - this.chartMargins.bottom - this.chartMargins.top;\r\n this.chartWidth = this.getChartWidth();\r\n if (this.svgSelection == null) {\r\n var targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-barChart\", true);\r\n var svgSelection = targetElement.append(\"svg\")\r\n .attr(\"class\", \"tsi-barChartSVG tsi-chartSVG\")\r\n .attr('title', this.getString('Bar chart'))\r\n .style(\"height\", height)\r\n .style(\"width\", this.getSVGWidth() + 'px');\r\n this.svgSelection = svgSelection;\r\n var g = svgSelection.append(\"g\")\r\n .attr(\"transform\", \"translate(\" + this.chartMargins.left + \",\" + this.chartMargins.top + \")\");\r\n var baseLine = g.append(\"line\")\r\n .classed(\"tsi-baseLine\", true)\r\n .attr(\"stroke-width\", 1);\r\n var focus = g.append(\"g\")\r\n .attr(\"transform\", \"translate(-100,-100)\")\r\n .attr(\"class\", \"tsi-focus\");\r\n focus.append(\"line\")\r\n .attr(\"class\", \"tsi-focusLine\")\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", this.chartWidth)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", 0);\r\n var vHoverG = focus.append(\"g\")\r\n .attr(\"class\", 'vHoverG');\r\n var vHoverBox = vHoverG.append(\"rect\")\r\n .attr(\"class\", 'vHoverBox')\r\n .attr(\"x\", -5)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", 0)\r\n .attr(\"height\", 0);\r\n var vHoverText = vHoverG.append(\"text\")\r\n .attr(\"class\", \"vHoverText hoverText\")\r\n .attr(\"dy\", \".32em\")\r\n .attr(\"x\", -10)\r\n .text(function (d) { return d; });\r\n d3.select(this.renderTarget).append('div').classed('tsi-sliderWrapper', true);\r\n var tooltip = new Tooltip(d3.select(this.renderTarget));\r\n var measureMap = this.chartComponentData.data.map(function (aggregate, aggI) {\r\n var aggName = Object.keys(aggregate)[0];\r\n var aggKey = Utils.createEntityKey(Object.keys(aggregate)[0], aggI);\r\n var possibleMeasures = Object.keys(aggregate);\r\n });\r\n var labelMouseover = function (aggKey, splitBy) {\r\n if (splitBy === void 0) { splitBy = null; }\r\n var self = _this;\r\n svgSelection.selectAll(\".tsi-valueElement\")\r\n .attr(\"stroke-opacity\", 1)\r\n .attr(\"fill-opacity\", 1);\r\n //filter out the selected timeseries/splitby\r\n var selectedFilter = function (d, j) {\r\n var currAggKey;\r\n var currSplitBy;\r\n if (d.aggKey) {\r\n currAggKey = d.aggKey;\r\n currSplitBy = d.splitBy;\r\n }\r\n else if (d && d.length) {\r\n currAggKey = d[0].aggKey;\r\n currSplitBy = d[0].splitBy;\r\n }\r\n else\r\n return true;\r\n return !(aggKey == currAggKey && (splitBy == null || splitBy == currSplitBy));\r\n };\r\n svgSelection.selectAll(\".tsi-valueElement\")\r\n .filter(selectedFilter)\r\n .attr(\"stroke-opacity\", .3)\r\n .attr(\"fill-opacity\", .3);\r\n var text = svgSelection.selectAll(\".barGroup\")\r\n .filter(function (d) {\r\n return d == aggKey;\r\n })\r\n .select(\".labelGroup\").select(\"text\").text(null);\r\n var dy = parseFloat(text.attr(\"dy\"));\r\n var aggLabelGroup = text.append(\"tspan\").attr('class', \"tsi-labelGroupLine\");\r\n Utils.appendFormattedElementsFromString(aggLabelGroup, self.chartComponentData.displayState[aggKey].name, { inSvg: true, additionalClassName: \"tsi-aggregateLabelGroupText\" });\r\n var splitByLabelGroup = text.append(\"tspan\").attr('class', \"tsi-labelGroupLine\");\r\n Utils.appendFormattedElementsFromString(splitByLabelGroup, splitBy, { inSvg: true, additionalClassName: \"tsi-splitByLabelGroupText\" });\r\n splitByLabelGroup.selectAll('.tsi-splitByLabelGroupText').each(function (d, i) {\r\n if (i == 0) {\r\n d3.select(this).attr(\"y\", text.attr(\"y\"))\r\n .attr(\"x\", text.attr(\"x\"))\r\n .attr(\"dy\", (dy + dy * 2) + \"em\")\r\n .attr(\"text-anchor\", \"middle\");\r\n }\r\n });\r\n rePositionLabelGroupBoxes(svgSelection, aggKey);\r\n };\r\n var labelMouseout = function (svgSelection, aggKey) {\r\n var self = _this;\r\n var allText = svgSelection.selectAll(\".barGroup\")\r\n .selectAll(\".labelGroup\")\r\n .selectAll(\"text\")\r\n .text(null);\r\n allText.each(function (aggKey) {\r\n var text = d3.select(this);\r\n if (self.chartComponentData.displayState[aggKey] != undefined) {\r\n Utils.appendFormattedElementsFromString(text, self.chartComponentData.displayState[aggKey].name, { inSvg: true, additionalClassName: \"tsi-aggregateLabelGroupText\" });\r\n }\r\n });\r\n rePositionLabelGroupBoxes(svgSelection);\r\n };\r\n var calcSpacePerAgg = function () {\r\n var aggregateCount = Math.max(Object.keys(_this.chartComponentData.filteredAggregates).length, 1);\r\n return Math.max((_this.chartWidth / 2) / aggregateCount, 0);\r\n };\r\n var rePositionLabelGroupBoxes = function (svgSelection, aggKey) {\r\n if (aggKey === void 0) { aggKey = null; }\r\n svgSelection.selectAll(\".barGroup\").filter(function (d, i) {\r\n if (aggKey == null)\r\n return true;\r\n return d == aggKey;\r\n })\r\n .each(function () {\r\n if (d3.select(this).select('.labelGroup').select('text').node() == null)\r\n return;\r\n var textElemDimensions = d3.select(this).select('.labelGroup').select('text').node()\r\n .getBoundingClientRect();\r\n var spacePerAgg = calcSpacePerAgg();\r\n var aggregateWidth = d3.select(this).attr(\"width\");\r\n // //truncate text to fit in spacePerAggregate of width\r\n var textSelection = d3.select(this).select('.labelGroup').select(\"text\");\r\n var truncateText = function (textSelection, childrenSize) {\r\n if (childrenSize === void 0) { childrenSize = 1; }\r\n if (textSelection.node().getComputedTextLength) {\r\n var textLength = textSelection.node().getComputedTextLength();\r\n var text = textSelection.text();\r\n while (textLength > ((spacePerAgg - 6) / childrenSize) && text.length > 0) {\r\n text = text.slice(0, -1);\r\n textSelection.text(text + '...');\r\n textLength = textSelection.node().getComputedTextLength();\r\n }\r\n }\r\n };\r\n //text is either in tspans or just in text. Either truncate text directly or through tspan\r\n if (textSelection.selectAll(\"tspan\").filter(function () { return !d3.select(this).classed(\"tsi-labelGroupLine\"); }).size() === 0)\r\n truncateText(textSelection);\r\n else {\r\n textSelection.selectAll(\"tspan\").filter(function () { return !d3.select(this).classed(\"tsi-labelGroupLine\"); }).each(function () {\r\n var tspanTextSelection = d3.select(this);\r\n var childrenSize = tspanTextSelection.classed(\"tsi-splitByLabelGroupText\") ? textSelection.selectAll(\".tsi-splitByLabelGroupText\").size() : textSelection.selectAll(\".tsi-aggregateLabelGroupText\").size();\r\n truncateText(tspanTextSelection, childrenSize);\r\n });\r\n }\r\n d3.select(this).select('.labelGroup').select(\"rect\")\r\n .attr(\"height\", textElemDimensions.height + 4)\r\n .attr(\"y\", chartHeight + 6)\r\n .attr(\"x\", 0)\r\n .attr(\"width\", spacePerAgg);\r\n });\r\n };\r\n var draw = function (isFromResize) {\r\n if (isFromResize === void 0) { isFromResize = false; }\r\n var self = _this;\r\n _this.width = _this.getWidth();\r\n height = Math.max(d3.select(_this.renderTarget).node().clientHeight, _this.MINHEIGHT);\r\n _this.chartComponentData.timestamp = (_this.chartOptions.timestamp != undefined) ? _this.chartOptions.timestamp : _this.chartComponentData.allTimestampsArray[0];\r\n _this.chartComponentData.setFilteredAggregates();\r\n if (!isFromResize) {\r\n _this.chartWidth = _this.getChartWidth();\r\n }\r\n _super.prototype.themify.call(_this, targetElement, _this.chartOptions.theme);\r\n if (!_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel === null) {\r\n _this.chartControlsPanel = Utils.createControlPanel(_this.renderTarget, _this.CONTROLSWIDTH, _this.chartMargins.top, _this.chartOptions);\r\n _this.stackedButton = _this.chartControlsPanel.append(\"button\")\r\n .style(\"left\", \"60px\")\r\n .attr(\"class\", \"tsi-stackedButton\").on(\"click\", function () {\r\n self.chartOptions.stacked = !self.chartOptions.stacked;\r\n self.draw();\r\n })\r\n .attr(\"type\", \"button\")\r\n .attr('title', _this.getString('Stack/Unstack Bars'));\r\n }\r\n else if (_this.chartOptions.hideChartControlPanel && _this.chartControlsPanel !== null) {\r\n _this.removeControlPanel();\r\n }\r\n if (_this.chartControlsPanel) {\r\n _this.stackedButton.attr('aria-label', _this.chartOptions.stacked ? _this.getString(\"Unstack bars\") : _this.getString(\"Stack bars\"));\r\n }\r\n if (_this.chartControlsPanel !== null && _this.ellipsisItemsExist()) {\r\n _this.drawEllipsisMenu();\r\n _this.chartControlsPanel.style(\"top\", Math.max((_this.chartMargins.top - 24), 0) + 'px');\r\n }\r\n else {\r\n _this.removeEllipsisMenu();\r\n }\r\n /********* Determine the number of timestamps present, add margin for slider *********/\r\n if (_this.chartComponentData.allTimestampsArray.length > 1)\r\n _this.chartMargins.bottom = 88;\r\n /*******************/\r\n chartHeight = height - _this.chartMargins.bottom - _this.chartMargins.top;\r\n focus.select(\"line\").attr(\"x2\", _this.chartWidth);\r\n svgSelection.style(\"width\", _this.getSVGWidth() + \"px\");\r\n if (_this.timestamp.substring(_this.timestamp.length - 5, _this.timestamp.length) == \".000Z\")\r\n _this.timestamp = _this.timestamp.substring(0, _this.timestamp.length - 5) + \"Z\";\r\n var aggregateCount = Math.max(Object.keys(_this.chartComponentData.filteredAggregates).length, 1);\r\n svgSelection.select('g').attr(\"transform\", \"translate(\" + _this.chartMargins.left + \",\" + _this.chartMargins.top + \")\")\r\n .selectAll('.barGroup')\r\n .attr(\"visibility\", \"hidden\");\r\n var barGroups = g.selectAll('.barGroup').data(Object.keys(_this.chartComponentData.displayState));\r\n var spacePerAggregate = calcSpacePerAgg();\r\n //map to x position\r\n var xPosMap = _this.chartComponentData.filteredAggregates.reduce(function (map, aggKey, aggKeyI) {\r\n map[aggKey] = ((1 / (aggregateCount + 1)) * (aggKeyI + 1) * _this.chartWidth - (spacePerAggregate / 2));\r\n return map;\r\n }, {});\r\n _this.legendObject.draw(_this.chartOptions.legend, _this.chartComponentData, labelMouseover, svgSelection, _this.chartOptions, labelMouseout);\r\n barGroups = barGroups.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"barGroup\")\r\n .merge(barGroups)\r\n .attr(\"display\", function (d, i) { return (_this.chartComponentData.displayState[d].visible ? \"inherit\" : \"none\"); })\r\n .attr(\"visibility\", \"visible\")\r\n .attr(\"transform\", function (d, i) {\r\n if (xPosMap[d])\r\n return \"translate(\" + xPosMap[d] + \",0)\";\r\n return \"\";\r\n });\r\n _this.chartComponentData.setEntireRangeData(_this.chartOptions.scaledToCurrentTime);\r\n var allValues = _this.chartComponentData.valuesOfVisibleType;\r\n var aggsSeries = _this.chartComponentData.aggsSeries;\r\n var yScale = d3.scaleLinear()\r\n .range([chartHeight, 0]);\r\n var extent = d3.extent(allValues);\r\n if (!_this.chartOptions.stacked) {\r\n if (allValues.length > 0) { //check to make sure there are values present\r\n if (_this.chartOptions.zeroYAxis) {\r\n if (extent[0] > 0)\r\n yScale.domain([0, d3.extent(allValues)[1]]);\r\n else\r\n yScale.domain([d3.extent(allValues)[0], Math.max(d3.extent(allValues)[1], 0)]);\r\n }\r\n else {\r\n var offset = (Math.abs(d3.extent(allValues)[1]) * .05);\r\n yScale.domain([d3.extent(allValues)[0] - offset, (d3.extent(allValues)[1] + offset)]);\r\n }\r\n }\r\n else {\r\n yScale.domain([0, 0]);\r\n }\r\n }\r\n else {\r\n yScale.domain([Math.min(_this.chartComponentData.globalMin, _this.chartComponentData.globalMax),\r\n Math.max(_this.chartComponentData.globalMin, _this.chartComponentData.globalMax)]);\r\n }\r\n var barBase = (yScale.domain()[0] > 0) ? yScale(yScale.domain()[0]) : yScale(0);\r\n var legendObject = _this.legendObject;\r\n barGroups.each(function (aggKey, i) {\r\n var splitBys = Object.keys(self.chartComponentData.displayState[aggKey].splitBys);\r\n var filteredSplitBys = splitBys.filter(function (splitBy) {\r\n return self.chartComponentData.displayState[aggKey].splitBys[splitBy].visible;\r\n });\r\n var splitByCount = filteredSplitBys.length;\r\n var barWidth = spacePerAggregate / splitByCount;\r\n var valueElements = d3.select(this).selectAll('.tsi-valueElement').data(self.chartComponentData.getValueContainerData(aggKey));\r\n var labelGroup = d3.select(this).selectAll(\".labelGroup\").data([aggKey]);\r\n var labelGroupEntered = labelGroup.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"labelGroup\");\r\n labelGroupEntered.append(\"rect\");\r\n var labelGroupText = labelGroupEntered.append(\"text\")\r\n .attr(\"dy\", \".71em\");\r\n Utils.appendFormattedElementsFromString(labelGroupText, self.chartComponentData.displayState[aggKey].name, { inSvg: true, additionalClassName: \"tsi-aggregateLabelGroupText\" });\r\n var labelGroupBox = labelGroupEntered.merge(labelGroup)\r\n .select(\"rect\")\r\n .attr(\"class\", 'aggregateLabelBox')\r\n .attr(\"x\", 0)\r\n .attr(\"y\", 1)\r\n .attr(\"width\", 0)\r\n .attr(\"height\", 0);\r\n d3.select(this).select(\".labelGroup\").select(\"text\")\r\n .transition()\r\n .duration(self.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attr(\"x\", function (d) { return (spacePerAggregate / 2); })\r\n .attr(\"y\", chartHeight + 12)\r\n .style(\"fill\", function (d) { return self.chartComponentData.displayState[aggKey].color; })\r\n .attr(\"text-anchor\", \"middle\");\r\n labelGroup.exit().remove();\r\n rePositionLabelGroupBoxes(svgSelection, aggKey);\r\n var xScale = d3.scaleLinear()\r\n .domain([0, splitByCount])\r\n .range([0, spacePerAggregate]);\r\n //yOffset to position 0 at the appropriate place\r\n var yOffset = chartHeight - filteredSplitBys.reduce(function (offset, splitBy) {\r\n var measureType = self.chartComponentData.displayState[aggKey].splitBys[splitBy].visibleType;\r\n var yScaledVal; // either 0 or the value \r\n if (self.chartComponentData.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements)\r\n yScaledVal = yScale(self.chartComponentData.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType]);\r\n else\r\n yScaledVal = 0;\r\n return offset + yScaledVal;\r\n }, 0);\r\n //calculate the yPosition of an element, either by its data or explicitly through its value\r\n var calcYPos = function (d, i) {\r\n if (!self.chartOptions.stacked) {\r\n if (d.val > 0)\r\n return yScale(d.val);\r\n return yScale(0);\r\n }\r\n if (aggsSeries[d.aggKey] != undefined && aggsSeries[d.aggKey].length != 0) {\r\n return yScale(aggsSeries[d.aggKey][i][0][1]);\r\n }\r\n return 0;\r\n };\r\n //calculate the height of an element given its data\r\n var calcHeight = function (d, i, dValue) {\r\n if (dValue === void 0) { dValue = null; }\r\n if (!self.chartOptions.stacked) {\r\n if (yScale.domain()[0] >= 0)\r\n return chartHeight - calcYPos(d, i);\r\n dValue = (dValue != null) ? dValue : d.val;\r\n if (dValue > 0)\r\n return Math.abs(calcYPos(d, i) - yScale(0));\r\n return yScale(dValue) - yScale(0);\r\n }\r\n return Math.max(Math.abs(yScale(d.val) - yScale(0)), 0);\r\n };\r\n //map to x position for grouped, map to y position for stacked\r\n var splitByXPosMap = filteredSplitBys.reduce(function (map, splitBy, splitByI) {\r\n map[splitBy] = xScale(splitByI);\r\n return map;\r\n }, {});\r\n var valueElementsEntered = valueElements.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"tsi-valueElement\");\r\n valueElementsEntered.append(\"rect\");\r\n valueElementsEntered.append(\"line\");\r\n var valueElementMouseout = function (event, d) {\r\n if (self.contextMenu && self.contextMenu.contextMenuVisible)\r\n return;\r\n focus.style(\"display\", \"none\");\r\n legendObject.legendElement.selectAll('.tsi-splitByLabel').filter(function (filteredSplitBy) {\r\n return (d3.select(this.parentNode).datum() == d.aggKey) && (filteredSplitBy == d.splitBy);\r\n }).classed(\"inFocus\", false);\r\n event.stopPropagation();\r\n svgSelection.selectAll(\".tsi-valueElement\")\r\n .attr(\"stroke-opacity\", 1)\r\n .attr(\"fill-opacity\", 1);\r\n labelMouseout(svgSelection, d.aggKey);\r\n tooltip.hide();\r\n };\r\n var mouseOutValueElementOnContextMenuClick = function () {\r\n valueElementsEntered.selectAll(\"path\").each(valueElementMouseout);\r\n };\r\n var splitByColors = Utils.createSplitByColors(self.chartComponentData.displayState, aggKey, self.chartOptions.keepSplitByColor);\r\n valueElementsEntered.merge(valueElements)\r\n .select(\"rect\")\r\n .attr(\"fill\", function (d, j) {\r\n return splitByColors[j];\r\n })\r\n .on(\"mouseover\", function (event, d) {\r\n if (self.contextMenu && self.contextMenu.contextMenuVisible)\r\n return;\r\n (legendObject.legendElement.selectAll('.tsi-splitByLabel').filter(function (filteredSplitBy) {\r\n return (d3.select(this.parentNode).datum() == d.aggKey) && (filteredSplitBy == d.splitBy);\r\n })).classed(\"inFocus\", true);\r\n labelMouseover(d.aggKey, d.splitBy);\r\n var e = valueElementsEntered.nodes();\r\n var j = e.indexOf(event.currentTarget);\r\n var yPos = calcYPos(d, j);\r\n if (d.val < 0) {\r\n yPos = yPos + calcHeight(d, j);\r\n }\r\n focus.style(\"display\", \"block\")\r\n .attr(\"transform\", \"translate(0,\" + yPos + \")\");\r\n focus.select('.vHoverG')\r\n .select(\"text\")\r\n .text(function () {\r\n if (!self.chartOptions.stacked)\r\n return Utils.formatYAxisNumber(d.val);\r\n var yVal = yScale.invert(calcYPos(d, j));\r\n if (d.val < 0)\r\n yVal += d.val;\r\n return Utils.formatYAxisNumber(yVal);\r\n });\r\n var textElemDimensions = focus.select('.vHoverG').select(\"text\")\r\n .node().getBoundingClientRect();\r\n focus.select(\".vHoverG\").select(\"rect\")\r\n .attr(\"x\", -(textElemDimensions.width) - 13)\r\n .attr(\"y\", -(textElemDimensions.height / 2) - 3)\r\n .attr(\"width\", textElemDimensions.width + 6)\r\n .attr(\"height\", textElemDimensions.height + 4);\r\n focus.node().parentNode.appendChild(focus.node());\r\n })\r\n .on(\"mousemove\", function (event, d) {\r\n if (self.chartOptions.tooltip) {\r\n var e = valueElementsEntered.nodes();\r\n var i_1 = e.indexOf(event.currentTarget);\r\n var mousePos = d3.pointer(event, g.node());\r\n tooltip.render(self.chartOptions.theme);\r\n tooltip.draw(d, self.chartComponentData, mousePos[0], mousePos[1], self.chartMargins, function (text) {\r\n self.tooltipFormat(self.convertToTimeValueFormat(d), text, TooltipMeasureFormat.SingleValue);\r\n }, null, 20, 20, splitByColors[i_1]);\r\n }\r\n else {\r\n tooltip.hide();\r\n }\r\n })\r\n .on(\"mouseout\", valueElementMouseout)\r\n .on(\"contextmenu\", function (event, d) {\r\n if (self.chartComponentData.displayState[d.aggKey].contextMenuActions &&\r\n self.chartComponentData.displayState[d.aggKey].contextMenuActions.length) {\r\n var mousePosition = d3.pointer(event, targetElement.node());\r\n event.preventDefault();\r\n self.contextMenu.draw(self.chartComponentData, self.renderTarget, self.chartOptions, mousePosition, d.aggKey, d.splitBy, mouseOutValueElementOnContextMenuClick, new Date(self.chartComponentData.timestamp));\r\n }\r\n })\r\n .transition()\r\n .duration(self.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attr(\"y\", function (d, i) { return calcYPos(d, i); })\r\n .attr(\"height\", function (d, i) {\r\n if (self.chartOptions.stacked && (splitByXPosMap[d.splitBy] == undefined))\r\n return 0;\r\n return Math.max(calcHeight(d, i), 0);\r\n })\r\n .attr(\"x\", function (d, i) {\r\n if (self.chartOptions.stacked)\r\n return 0;\r\n if (splitByXPosMap[d.splitBy] != undefined)\r\n return splitByXPosMap[d.splitBy];\r\n //if invisible, put it in the empty space where it would be\r\n var splitBys = Object.keys(self.chartComponentData.displayState[aggKey].splitBys);\r\n var prevSplitBy = splitBys[0];\r\n for (var splitByI = 0; splitBys[splitByI] != d.splitBy; splitByI++) {\r\n if (splitByXPosMap[splitBys[splitByI]] != undefined)\r\n prevSplitBy = splitBys[splitByI];\r\n }\r\n if (splitByXPosMap[prevSplitBy] != undefined)\r\n return splitByXPosMap[prevSplitBy] + barWidth;\r\n return 0;\r\n })\r\n .attr(\"width\", function (d, i) {\r\n if (self.chartOptions.stacked)\r\n return spacePerAggregate;\r\n if (splitByXPosMap[d.splitBy] != undefined)\r\n return barWidth;\r\n return 0;\r\n });\r\n valueElementsEntered.merge(valueElements)\r\n .select(\"line\")\r\n .classed(\"tsi-baseLine\", true)\r\n .attr(\"stroke-width\", 2)\r\n .transition()\r\n .duration(self.TRANSDURATION)\r\n .ease(d3.easeExp)\r\n .attr(\"x1\", function (d, i) {\r\n if (self.chartOptions.stacked)\r\n return 0;\r\n if (splitByXPosMap[d.splitBy] != undefined)\r\n return splitByXPosMap[d.splitBy];\r\n return 0;\r\n })\r\n .attr(\"x2\", function (d, i) {\r\n if (self.chartOptions.stacked)\r\n return spacePerAggregate;\r\n if (splitByXPosMap[d.splitBy] != undefined)\r\n return splitByXPosMap[d.splitBy] + barWidth;\r\n return 0;\r\n })\r\n .attr(\"y1\", function (d, i) {\r\n if (!self.chartOptions.stacked) {\r\n return barBase;\r\n }\r\n var dValue = d.val;\r\n if (self.chartOptions.stacked && (splitByXPosMap[d.splitBy] == undefined))\r\n return calcYPos(d, i);\r\n return calcYPos(d, i) + calcHeight(d, i);\r\n })\r\n .attr(\"y2\", function (d, i) {\r\n if (!self.chartOptions.stacked) {\r\n return barBase;\r\n }\r\n var dValue = d.val;\r\n if (self.chartOptions.stacked && (splitByXPosMap[d.splitBy] == undefined))\r\n return calcYPos(d, i);\r\n return calcYPos(d, i) + calcHeight(d, i);\r\n });\r\n valueElements.exit().remove();\r\n });\r\n barGroups.exit().remove();\r\n var yAxis = g.selectAll(\".yAxis\")\r\n .data([yScale]);\r\n yAxis.enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"yAxis\")\r\n .merge(yAxis)\r\n .call(d3.axisLeft(yScale).tickFormat(Utils.formatYAxisNumber).ticks(4));\r\n yAxis.exit().remove();\r\n baseLine\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", _this.chartWidth)\r\n .attr(\"y1\", barBase + 1)\r\n .attr(\"y2\", barBase + 1);\r\n /******************** Stack/Unstack button ************************/\r\n _this.stackedButton.style(\"opacity\", _this.chartOptions.stacked ? 1 : .5)\r\n .classed('tsi-lightTheme', _this.chartOptions.theme == 'light')\r\n .classed('tsi-darkTheme', _this.chartOptions.theme == 'dark');\r\n /******************** Temporal Slider ************************/\r\n if (_this.chartComponentData.allTimestampsArray.length > 1) {\r\n d3.select(_this.renderTarget).select('.tsi-sliderWrapper').classed('tsi-hidden', false);\r\n slider.render(_this.chartComponentData.allTimestampsArray.map(function (ts) {\r\n var action = function () {\r\n _this.chartOptions.timestamp = ts;\r\n _this.render(_this.chartComponentData.data, _this.chartOptions, _this.aggregateExpressionOptions);\r\n };\r\n return { label: Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, null, null, _this.chartOptions.dateLocale)(new Date(ts)), action: action };\r\n }), _this.chartOptions, _this.getSVGWidth(), Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, null, null, _this.chartOptions.dateLocale)(new Date(_this.chartComponentData.timestamp)));\r\n }\r\n else {\r\n slider.remove();\r\n d3.select(_this.renderTarget).select('.tsi-sliderWrapper').classed('tsi-hidden', true);\r\n }\r\n _this.setControlsPanelWidth();\r\n };\r\n this.legendObject = new Legend(draw, this.renderTarget, this.CONTROLSWIDTH);\r\n this.contextMenu = new ContextMenu(this.draw, this.renderTarget);\r\n // temporal slider\r\n var slider = new Slider(d3.select(this.renderTarget).select('.tsi-sliderWrapper').node());\r\n this.draw = draw;\r\n window.addEventListener(\"resize\", function () {\r\n if (!_this.chartOptions.suppressResizeListener)\r\n _this.draw();\r\n });\r\n }\r\n d3.select(\"html\").on(\"click.\" + Utils.guid(), function (event) {\r\n if (_this.ellipsisContainer && event.target != _this.ellipsisContainer.select(\".tsi-ellipsisButton\").node()) {\r\n _this.ellipsisMenu.setMenuVisibility(false);\r\n }\r\n });\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.timestamp, this.aggregateExpressionOptions);\r\n this.draw();\r\n this.gatedShowGrid();\r\n this.legendPostRenderProcess(this.chartOptions.legend, this.svgSelection, true);\r\n };\r\n return GroupedBarChart;\r\n}(ChartVisualizationComponent));\r\nexport default GroupedBarChart;\r\n","import Utils from \"../Utils\";\r\nvar HierarchyNode = /** @class */ (function () {\r\n function HierarchyNode(name, level) {\r\n this.children = [];\r\n this.isExpanded = false;\r\n this.isSelected = false;\r\n this.isLeaf = false;\r\n this.childrenInFilter = false;\r\n this.selfInFilter = false;\r\n this.color = function () { return null; };\r\n this.click = function (n) { };\r\n this.isLeafParent = false; // used in the event of context menut to denote that we should use a context menu for children\r\n this.name = name;\r\n this.level = level;\r\n this.markedName = name;\r\n }\r\n HierarchyNode.prototype.filter = function (filterText) {\r\n var regExp = new RegExp(filterText, 'i');\r\n var isInFilter = function (node) {\r\n var childrenInFilter = node.children.reduce(function (p, c) {\r\n p = isInFilter(c) || p;\r\n return p;\r\n }, false);\r\n var selfInFilter = regExp.test(node.name);\r\n node.markedName = selfInFilter ? Utils.mark(filterText, node.name) : node.name;\r\n if (node.parent != null)\r\n node.parent.childrenInFilter = (selfInFilter || childrenInFilter) && filterText.length > 0;\r\n node.selfInFilter = selfInFilter && filterText.length > 0;\r\n node.childrenInFilter = childrenInFilter && filterText.length > 0;\r\n return childrenInFilter || selfInFilter;\r\n };\r\n isInFilter(this);\r\n };\r\n HierarchyNode.prototype.traverse = function (condition) {\r\n var traversal = [];\r\n if (condition(this))\r\n traversal.push(this);\r\n this.children.forEach(function (n) {\r\n traversal = traversal.concat(n.traverse(condition));\r\n });\r\n return traversal;\r\n };\r\n HierarchyNode.prototype.colorify = function (el) {\r\n if (this.isLeaf && this.isSelected && this.color(this))\r\n el.style('background-color', this.color(this));\r\n if (!this.isSelected && this.isLeaf)\r\n el.style('background-color', null);\r\n };\r\n return HierarchyNode;\r\n}());\r\nexport { HierarchyNode };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './Hierarchy.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport { HierarchyNode } from \"./../../Models/HierarchyNode\";\r\nvar Hierarchy = /** @class */ (function (_super) {\r\n __extends(Hierarchy, _super);\r\n function Hierarchy(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.filterText = '';\r\n _this.withContextMenu = false;\r\n _this.expandCollapseList = function (node, el, isFromClick, event) {\r\n if (isFromClick === void 0) { isFromClick = false; }\r\n _this.closeContextMenu();\r\n if (el.classed('tsi-expanded') && !(_this.withContextMenu && node.isLeafParent)) {\r\n el.selectAll('ul').remove();\r\n el.classed('tsi-expanded', false);\r\n node.isExpanded = false;\r\n }\r\n else {\r\n if (_this.withContextMenu && node.isLeafParent) {\r\n if (_this.clickedNode != el.node()) {\r\n _this.clickedNode = el.node();\r\n _this.contextMenu = _this.hierarchyList.append('div');\r\n node.children.filter(function (n) { return n.name[0] !== '~'; }).forEach(function (n) {\r\n _this.contextMenu.append('div').text(\"\" + n.name).on('click', function () { return n.click(n); });\r\n });\r\n _this.contextMenu.append('div').classed('tsi-break', true);\r\n node.children.filter(function (n) { return n.name[0] === '~'; }).forEach(function (n) {\r\n var noTildeName = n.name.slice(1);\r\n _this.contextMenu.append('div').text(\"\" + noTildeName).on('click', function () { return n.click(n); });\r\n });\r\n _this.contextMenu.classed('tsi-hierarchyContextMenu', true);\r\n if (event) {\r\n var mouseWrapper_1 = d3.pointer(event, _this.hierarchyList.node());\r\n var mouseElt_1 = d3.pointer(event, el.node());\r\n _this.contextMenu.attr('style', function () { return \"top: \" + (mouseWrapper_1[1] - mouseElt_1[1]) + \"px\"; });\r\n }\r\n el.classed('tsi-resultSelected', true);\r\n _this.hierarchyList.selectAll('.tsi-noPad').on('scroll', function () { _this.closeContextMenu(); });\r\n }\r\n else {\r\n _this.clickedNode = null;\r\n }\r\n }\r\n else {\r\n var list = el.append('ul');\r\n node.children.forEach(function (n) {\r\n if (isFromClick || n.selfInFilter || n.childrenInFilter || (node.isExpanded && _this.filterText.length == 0)) {\r\n var self = _this;\r\n var clickMethod = function () {\r\n if (n.isLeaf) {\r\n var parent = n.parent;\r\n while (parent != this.root) {\r\n parent.isExpanded = true;\r\n parent = parent.parent;\r\n }\r\n n.isSelected = !n.isSelected;\r\n n.click(n);\r\n var selector = d3.select(this);\r\n n.colorify(selector);\r\n selector.classed('tsi-selected', n.isSelected);\r\n }\r\n else {\r\n self.expandCollapseList(n, d3.select(this), true, event);\r\n }\r\n event.stopPropagation();\r\n };\r\n var li = list.append('li').classed('tsi-leaf', n.isLeaf)\r\n .classed('tsi-leafParent', n.isLeafParent && _this.withContextMenu)\r\n .classed('tsi-selected', n.isSelected).on('click', clickMethod);\r\n li.append('span').classed('tsi-caret', true).attr('style', \"left: \" + (n.level - 1) * 18 + \"px\");\r\n li.append('span').classed('tsi-markedName', true).html(n.markedName) // known unsafe usage of .html\r\n .attr('style', \"padding-left: \" + (40 + (n.level - 1) * 18 - (n.isLeafParent && _this.withContextMenu ? 16 : 0)) + \"px\")\r\n .attr('title', n.isLeafParent && _this.withContextMenu ? n.name : '');\r\n n.colorify(li);\r\n if ((n.isExpanded || n.childrenInFilter) && !n.isLeaf) {\r\n _this.expandCollapseList(n, li, isFromClick, event);\r\n }\r\n }\r\n });\r\n node.isExpanded = (node.isExpanded || isFromClick) || (node == _this.root);\r\n el.classed('tsi-expanded', true);\r\n }\r\n }\r\n };\r\n return _this;\r\n }\r\n Hierarchy.prototype.render = function (data, options) {\r\n var _this = this;\r\n var self = this;\r\n var targetElement = d3.select(this.renderTarget).classed('tsi-hierarchy', true);\r\n targetElement.html('');\r\n this.chartOptions.setOptions(options);\r\n _super.prototype.themify.call(this, targetElement, this.chartOptions.theme);\r\n this.withContextMenu = this.chartOptions.withContextMenu;\r\n this.root = this.buildTree(data);\r\n this.root.isExpanded = true;\r\n d3.select(\"html\").on(\"click.\" + Utils.guid(), function (event) {\r\n if (_this.clickedNode && event.target != _this.clickedNode && _this.contextMenu) {\r\n _this.closeContextMenu();\r\n _this.clickedNode = null;\r\n }\r\n });\r\n var inputDebounceTimeout;\r\n var filter = targetElement.append('div').classed('tsi-filterWrapper', true).append('input').attr('placeholder', 'Search...').on('input', function (event) {\r\n var _this = this;\r\n clearTimeout(inputDebounceTimeout);\r\n inputDebounceTimeout = setTimeout(function () {\r\n self.filterText = _this.value.trim();\r\n if (self.filterText.length == 1)\r\n return; // quick return for small sets\r\n var splitFilterText = self.filterText.split('/');\r\n self.root.filter(splitFilterText[0]);\r\n if (splitFilterText.length > 1) {\r\n for (var i = 1; i < splitFilterText.length; i++) {\r\n if (splitFilterText[i].length) {\r\n var nodesInFilter = self.root.traverse(function (n) { return n.selfInFilter; });\r\n nodesInFilter.forEach(function (n) {\r\n var markedName = n.markedName;\r\n n.filter(splitFilterText[i], false);\r\n n.markedName = markedName;\r\n });\r\n nodesInFilter.forEach(function (n) {\r\n if (!n.childrenInFilter)\r\n n.selfInFilter = false;\r\n });\r\n }\r\n }\r\n }\r\n list.selectAll('ul').remove();\r\n list.classed('tsi-expanded', false);\r\n self.root.childrenInFilter = self.root.childrenInFilter || self.filterText.length == 0;\r\n if (self.root.childrenInFilter == false)\r\n list.append('ul').append('div').text(self.getString('No filter results'));\r\n else\r\n self.expandCollapseList(self.root, list, false, event);\r\n list.select('ul').classed('tsi-noPad', true);\r\n }, 250);\r\n });\r\n var navTabs = targetElement.append('div').classed('tsi-navTabWrapper', true);\r\n var allTab = navTabs.append('div').classed('tsi-navTab tsi-selected', true).text(this.getString('All hierarchies'));\r\n var selectedTab = navTabs.append('div').classed('tsi-navTab', true).text(this.getString('Selected'));\r\n var list = targetElement.append('div').classed('tsi-hierarchyList', true);\r\n this.hierarchyList = list;\r\n allTab.on('click', function (event) {\r\n if (!allTab.classed('tsi-selected')) {\r\n allTab.classed('tsi-selected', true);\r\n selectedTab.classed('tsi-selected', false);\r\n list.html('').classed('tsi-expanded', false);\r\n _this.expandCollapseList(_this.root, list, true, event);\r\n list.select('ul').classed('tsi-noPad', true);\r\n filter.attr('disabled', null);\r\n }\r\n });\r\n selectedTab.on('click', function () {\r\n if (!selectedTab.classed('tsi-selected')) {\r\n allTab.classed('tsi-selected', false);\r\n selectedTab.classed('tsi-selected', true);\r\n list.html('');\r\n var ul = list.append('ul').classed('tsi-noPad', true);\r\n var leafs = _this.root.traverse(function (n) { return n.isSelected; });\r\n leafs.forEach(function (n) {\r\n var li = ul.append('li').classed('tsi-leaf', n.isLeaf).classed('tsi-selected', n.isSelected).on('click', function () {\r\n n.isSelected = !n.isSelected;\r\n d3.select(this).classed('tsi-selected', n.isSelected);\r\n n.click(n);\r\n n.colorify(d3.select(this));\r\n });\r\n li.append('span').text(n.name).classed('tsi-markedName', true);\r\n n.colorify(li);\r\n });\r\n filter.attr('disabled', true);\r\n }\r\n });\r\n this.expandCollapseList(this.root, list, false);\r\n list.select('ul').classed('tsi-noPad', true);\r\n };\r\n Hierarchy.prototype.buildTree = function (data) {\r\n var traverse = function (data, key, level, parent) {\r\n if (parent === void 0) { parent = null; }\r\n var node = new HierarchyNode(key, level);\r\n node.parent = parent;\r\n if (data.hasOwnProperty('$leaf')) {\r\n node.isLeaf = true;\r\n if (data.hasOwnProperty('click'))\r\n node.click = data.click;\r\n if (data.hasOwnProperty('color'))\r\n node.color = data.color;\r\n node.parent.isLeafParent = true;\r\n }\r\n else {\r\n Object.keys(data).sort().forEach(function (k) {\r\n node.children.push(traverse(data[k], k, level + 1, node));\r\n });\r\n }\r\n return node;\r\n };\r\n return traverse(data, '', 0);\r\n };\r\n Hierarchy.prototype.closeContextMenu = function () {\r\n if (this.contextMenu) {\r\n this.contextMenu.remove();\r\n }\r\n d3.selectAll('.tsi-resultSelected').classed('tsi-resultSelected', false);\r\n };\r\n return Hierarchy;\r\n}(Component));\r\nexport default Hierarchy;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport Utils from \"../Utils\";\r\nimport { ChartDataOptions } from \"./ChartDataOptions\";\r\nvar MAXCARD = 150000;\r\nvar AggregateExpression = /** @class */ (function (_super) {\r\n __extends(AggregateExpression, _super);\r\n function AggregateExpression(predicateObject, measureObject, measureTypes, searchSpan, splitByObject, colorOrOptionsObject, alias, contextMenu) {\r\n if (splitByObject === void 0) { splitByObject = null; }\r\n var _this = _super.call(this, (typeof (colorOrOptionsObject) === 'object' && !!colorOrOptionsObject) ? __assign(__assign({}, colorOrOptionsObject), { searchSpan: searchSpan, measureTypes: measureTypes }) : { color: colorOrOptionsObject, searchSpan: searchSpan, measureTypes: measureTypes, alias: alias, contextMenu: contextMenu }) || this;\r\n _this.visibleSplitByCap = 10;\r\n _this.predicate = predicateObject;\r\n _this.splitByObject = splitByObject;\r\n _this.measureObject = ((measureTypes.length == 1 && measureTypes[0] == 'count') || measureObject.property == 'Events Count') ? { count: {} } : { input: measureObject };\r\n return _this;\r\n }\r\n AggregateExpression.prototype.toTsx = function (roundFromTo) {\r\n var _this = this;\r\n if (roundFromTo === void 0) { roundFromTo = false; }\r\n var tsx = {};\r\n var shiftMillis = Utils.parseShift(this.timeShift, this.startAt, this.searchSpan);\r\n var fromMillis = this.searchSpan.from.valueOf() + shiftMillis;\r\n var toMillis = this.searchSpan.to.valueOf() + shiftMillis;\r\n var bucketSizeInMillis = Utils.parseTimeInput(this.searchSpan.bucketSize);\r\n var roundedFromMillis = Math.floor((fromMillis + 62135596800000) / (bucketSizeInMillis)) * (bucketSizeInMillis) - 62135596800000;\r\n var roundedToMillis = Math.ceil((toMillis + 62135596800000) / (bucketSizeInMillis)) * (bucketSizeInMillis) - 62135596800000;\r\n if (roundFromTo) {\r\n fromMillis = roundedFromMillis;\r\n toMillis = roundedToMillis;\r\n }\r\n tsx['searchSpan'] = { from: (new Date(fromMillis)).toISOString(), to: (new Date(toMillis)).toISOString() };\r\n // create aggregates\r\n var measures = (this.measureObject.hasOwnProperty('count')) ? [{ count: {} }]\r\n : this.measureTypes.reduce(function (p, c) {\r\n var measureObject = {};\r\n if (c == 'count')\r\n measureObject = { count: {} };\r\n else\r\n measureObject[c] = _this['measureObject'];\r\n p.push(measureObject);\r\n return p;\r\n }, []);\r\n var aggregateObject = {};\r\n var dimensionObject = { dateHistogram: { input: { builtInProperty: \"$ts\" }, breaks: { size: this.searchSpan.bucketSize } } };\r\n if (this.splitByObject != null) {\r\n var bucketsCeil = Math.ceil((roundedToMillis - roundedFromMillis) / bucketSizeInMillis);\r\n aggregateObject['dimension'] = { uniqueValues: { input: this.splitByObject, take: Math.floor(MAXCARD / bucketsCeil) } };\r\n aggregateObject['aggregate'] = { dimension: dimensionObject, measures: measures };\r\n }\r\n else {\r\n aggregateObject['dimension'] = dimensionObject;\r\n aggregateObject['measures'] = measures;\r\n }\r\n var aggregates = [aggregateObject];\r\n tsx['aggregates'] = aggregates;\r\n // create predicate\r\n var predicate;\r\n if (!this.measureObject.hasOwnProperty('count'))\r\n predicate = { and: [this.predicate, { not: { eq: { left: this.measureObject.input, right: { 'double': null } } } }] };\r\n else\r\n predicate = this.predicate;\r\n tsx['predicate'] = predicate;\r\n return tsx;\r\n };\r\n return AggregateExpression;\r\n}(ChartDataOptions));\r\nexport default AggregateExpression;\r\n","import Utils from \"../Utils\";\r\nvar HeatmapData = /** @class */ (function () {\r\n function HeatmapData(chartComponentData, aggKey) {\r\n var _this = this;\r\n this.visibleSBs = [];\r\n this.timeStamps = [];\r\n this.numRows = 0;\r\n this.numCols = 0;\r\n this.aggKey = aggKey;\r\n this.chartComponentData = chartComponentData;\r\n this.chartComponentData.isFromHeatmap = true;\r\n this.visibleSBs = Object.keys(this.chartComponentData.displayState[aggKey].splitBys).filter(function (sb) {\r\n return (_this.chartComponentData.getSplitByVisible(aggKey, sb));\r\n });\r\n this.numRows = this.visibleSBs.length;\r\n this.from = new Date(chartComponentData.displayState[aggKey].aggregateExpression.searchSpan.from);\r\n this.to = new Date(chartComponentData.displayState[aggKey].aggregateExpression.searchSpan.to);\r\n this.bucketSize = Utils.parseTimeInput(chartComponentData.displayState[aggKey].aggregateExpression.searchSpan.bucketSize);\r\n this.createTimeValues();\r\n }\r\n HeatmapData.prototype.adjustStartTime = function () {\r\n return new Date(Utils.adjustStartMillisToAbsoluteZero(new Date(this.from).valueOf(), this.bucketSize));\r\n };\r\n HeatmapData.prototype.createTimeValues = function () {\r\n var _this = this;\r\n this.timeValues = {};\r\n this.allValues = [];\r\n //turn time array into an object keyed by timestamp \r\n var colI = 0;\r\n var adjustedStartTime = this.adjustStartTime();\r\n for (var currTime = adjustedStartTime; (currTime.valueOf() < this.to.valueOf()); currTime = new Date(currTime.valueOf() + this.bucketSize)) {\r\n this.timeValues[currTime.toISOString()] = this.visibleSBs.reduce(function (obj, splitBy, splitByI) {\r\n obj[splitBy] = {\r\n colI: colI,\r\n rowI: splitByI,\r\n value: null\r\n };\r\n return obj;\r\n }, {});\r\n colI += 1;\r\n }\r\n this.numCols = Object.keys(this.timeValues).length;\r\n this.visibleSBs.forEach(function (splitBy, rowI) {\r\n _this.chartComponentData.timeArrays[_this.aggKey][splitBy].forEach(function (valueObject, colI) {\r\n var timestamp = new Date(valueObject.dateTime.valueOf()).toISOString();\r\n var visibleMeasure = _this.chartComponentData.getVisibleMeasure(_this.aggKey, splitBy);\r\n if (_this.timeValues[timestamp]) {\r\n _this.timeValues[timestamp][splitBy].value = valueObject.measures ? valueObject.measures[visibleMeasure] : null;\r\n if (Utils.safeNotNullOrUndefined(function () { return valueObject.measures[visibleMeasure]; }))\r\n _this.allValues.push(valueObject.measures[visibleMeasure]);\r\n }\r\n });\r\n });\r\n };\r\n return HeatmapData;\r\n}());\r\nexport { HeatmapData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './HeatmapCanvas.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { ChartComponent } from \"../../Interfaces/ChartComponent\";\r\nimport { HeatmapData } from \"../../Models/HeatmapData\";\r\nvar HeatmapCanvas = /** @class */ (function (_super) {\r\n __extends(HeatmapCanvas, _super);\r\n function HeatmapCanvas(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.gradientWidth = 8;\r\n _this.focusedXIndex = -1;\r\n _this.focusedYIndex = -1;\r\n _this.legendWidth = 80;\r\n return _this;\r\n }\r\n HeatmapCanvas.prototype.renderScale = function (aggColor, isOnlyAgg) {\r\n var _this = this;\r\n this.colorLegend.selectAll(\"*\").remove();\r\n if (this.colorScale.domain() === null || isNaN(this.colorScale.domain()[0]) || isNaN(this.colorScale.domain()[1])) {\r\n return;\r\n }\r\n var gradientGuid = Utils.guid();\r\n var gradient = this.colorLegend.append(\"defs\")\r\n .append(\"linearGradient\")\r\n .attr(\"id\", \"gradient\" + this.aggI + gradientGuid)\r\n .attr(\"x1\", \"0%\")\r\n .attr(\"y1\", \"100%\")\r\n .attr(\"x2\", \"0%\")\r\n .attr(\"y2\", \"0%\");\r\n var interpolatedColors = [];\r\n var percentileCalc = function (i) { return i * (_this.colorScale.domain()[1] - _this.colorScale.domain()[0]) + _this.colorScale.domain()[0]; };\r\n for (var i = 0; i <= 20; i++) {\r\n var color = this.getColor(aggColor, percentileCalc(i / 20), isOnlyAgg);\r\n gradient.append(\"stop\")\r\n .attr(\"offset\", (i * 5) + \"%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", 1);\r\n }\r\n var gradientRect = this.colorLegend.append(\"rect\")\r\n .attr(\"x\", this.legendWidth - this.gradientWidth)\r\n .attr(\"y\", 6)\r\n .attr(\"width\", this.gradientWidth)\r\n .attr(\"height\", Math.max(0, this.height - 12))\r\n .style(\"fill\", \"url(#gradient\" + String(this.aggI) + gradientGuid + \")\");\r\n var highlightedValueY = null;\r\n var range = this.colorScale.domain()[1] - this.colorScale.domain()[0];\r\n var highlightedText = this.colorLegend.append(\"text\").attr(\"class\", \"highlightedValueText\");\r\n var highlightedLine = this.colorLegend.append(\"line\").attr(\"class\", \"highlightedValueLine\");\r\n var minText = this.colorLegend.append(\"text\");\r\n var maxText = this.colorLegend.append(\"text\");\r\n var setHighlightedValueLineAndText = function (line, text) {\r\n var percentile;\r\n if (range == 0) {\r\n percentile = .5;\r\n }\r\n else {\r\n percentile = (_this.highlightedValue != null) ? (_this.highlightedValue - _this.colorScale.domain()[0]) / range : 0;\r\n }\r\n highlightedValueY = (_this.height - 6) + (12 - _this.height) * percentile;\r\n text.attr(\"x\", _this.legendWidth - _this.gradientWidth - 10)\r\n .attr(\"y\", highlightedValueY)\r\n .style(\"stroke-width\", 2)\r\n .text(Utils.formatYAxisNumber(_this.highlightedValue));\r\n line.attr(\"x1\", _this.legendWidth - _this.gradientWidth - 5)\r\n .attr(\"x2\", _this.legendWidth)\r\n .attr(\"y1\", highlightedValueY)\r\n .attr(\"y2\", highlightedValueY)\r\n .style(\"stroke-width\", 2);\r\n minText.attr(\"fill-opacity\", ((highlightedValueY == null) || highlightedValueY < _this.height - 18) ? 1 : 0);\r\n maxText.attr(\"fill-opacity\", ((highlightedValueY == null) || highlightedValueY > 18) ? 1 : 0);\r\n };\r\n minText.attr(\"x\", this.legendWidth - this.gradientWidth - 5)\r\n .attr(\"y\", this.height - 6)\r\n .text(Utils.formatYAxisNumber(this.colorScale.domain()[0]))\r\n .attr(\"fill-width\", ((highlightedValueY == null) || highlightedValueY < this.height - 18) ? 1 : 0);\r\n maxText.attr(\"x\", this.legendWidth - this.gradientWidth - 5)\r\n .attr(\"y\", 6)\r\n .text(Utils.formatYAxisNumber(this.colorScale.domain()[1]))\r\n .attr(\"fill-opacity\", ((highlightedValueY == null) || highlightedValueY > 18) ? 1 : 0);\r\n //render highlightedValue text and line IF there is a highlighted time and split by, OR IF there is an \r\n // artificially produced value from hovering over the color gradient\r\n if (this.highlightedTime && this.highlightedSplitBy != null && this.highlightedValue != null) {\r\n setHighlightedValueLineAndText(highlightedLine, highlightedText);\r\n minText.attr(\"fill-opacity\", ((highlightedValueY == null) || highlightedValueY < this.height - 18) ? 1 : 0);\r\n maxText.attr(\"fill-opacity\", ((highlightedValueY == null) || highlightedValueY > 18) ? 1 : 0);\r\n }\r\n var self = this;\r\n gradientRect.on(\"mousemove\", function (event) {\r\n var yPos = d3.pointer(event)[1];\r\n var percentile = 1 - ((yPos - 6) / (self.height - 12));\r\n self.highlightedValue = self.colorScale.domain()[0] + (range * percentile);\r\n setHighlightedValueLineAndText(highlightedLine, highlightedText);\r\n })\r\n .on(\"mouseleave\", function () {\r\n _this.render(_this.data, _this.chartOptions, _this.aggKey, null, null, _this.onCellFocus, null, _this.isOnlyAgg);\r\n });\r\n };\r\n HeatmapCanvas.prototype.getExtent = function () {\r\n var rawExtent = d3.extent(this.heatmapData.allValues);\r\n var extent = rawExtent;\r\n if (rawExtent[0] === rawExtent[1]) {\r\n extent = [rawExtent[0] - .05, rawExtent[1] + .05];\r\n }\r\n return extent;\r\n };\r\n HeatmapCanvas.prototype.render = function (data, chartOptions, aggKey, highlightedSplitBy, highlightedTime, onCellFocus, aggI, isOnlyAgg) {\r\n var _this = this;\r\n if (highlightedSplitBy === void 0) { highlightedSplitBy = null; }\r\n if (highlightedTime === void 0) { highlightedTime = null; }\r\n this.chartOptions.setOptions(chartOptions);\r\n this.aggKey = aggKey;\r\n this.data = data;\r\n this.isOnlyAgg = isOnlyAgg;\r\n if (aggI != null) {\r\n this.aggI = aggI;\r\n }\r\n this.heatmapData = new HeatmapData(data, aggKey);\r\n var container = d3.select(this.renderTarget).classed(\"tsi-heatmapCanvasWrapper\", true);\r\n _super.prototype.themify.call(this, container, this.chartOptions.theme);\r\n if (highlightedSplitBy != null)\r\n this.highlightedSplitBy = highlightedSplitBy;\r\n this.highlightedTime = highlightedTime;\r\n if (this.highlightedSplitBy != null && this.highlightedTime) {\r\n if (this.heatmapData.timeValues[this.highlightedTime.toISOString()][this.highlightedSplitBy] != null) {\r\n this.highlightedValue = this.heatmapData.timeValues[this.highlightedTime.toISOString()][this.highlightedSplitBy].value;\r\n }\r\n }\r\n if (onCellFocus)\r\n this.onCellFocus = onCellFocus;\r\n if (!container.select(\"canvas\").empty())\r\n this.canvas = container.select(\"canvas\");\r\n else\r\n this.canvas = container.append(\"canvas\").attr(\"class\", \"tsi-heatmapCanvas\");\r\n this.width = Math.floor(container.node().getBoundingClientRect().width - this.legendWidth - 10);\r\n this.height = Math.floor(container.node().getBoundingClientRect().height);\r\n this.canvas.attr(\"width\", this.width);\r\n this.canvas.attr(\"height\", this.height);\r\n this.ctx = this.canvas.node().getContext(\"2d\");\r\n this.ctx.clearRect(0, 0, this.width, this.height);\r\n container.selectAll(\"svg\").remove();\r\n var self = this;\r\n this.canvas.on(\"mousemove\", function (event) {\r\n var mouseCoords = d3.pointer(event);\r\n var indexesChanged = false;\r\n var newXIndex = self.calcCellXIndex(mouseCoords[0]);\r\n var newYIndex = self.calcCellYIndex(mouseCoords[1]);\r\n var visibleSplitBys = Object.keys(self.data.displayState[aggKey].splitBys).filter(function (splitBy) {\r\n return self.data.isSplitByVisible(self.aggKey, splitBy);\r\n });\r\n if (newXIndex != self.focusedXIndex) {\r\n self.focusedXIndex = newXIndex;\r\n indexesChanged = true;\r\n }\r\n if (newYIndex != self.focusedYIndex) {\r\n self.focusedYIndex = newYIndex;\r\n indexesChanged = true;\r\n }\r\n var highlightedSplitBy = visibleSplitBys[self.focusedYIndex];\r\n if (indexesChanged && self.focusedXIndex >= 0 && self.focusedYIndex >= 0) {\r\n var cellX = self.calcCellX(self.focusedXIndex);\r\n var sortedDates = Object.keys(self.heatmapData.timeValues)\r\n .sort(function (a, b) {\r\n return ((new Date(a)).valueOf() < (new Date(b)).valueOf()) ? -1 : 1;\r\n });\r\n var startDate = new Date(sortedDates[self.focusedXIndex]);\r\n this.highlightedTime = startDate;\r\n self.onCellFocus(startDate, new Date(startDate.valueOf() + self.heatmapData.bucketSize), Math.max(0, cellX), cellX + self.calcCellWidth(self.focusedXIndex), self.calcCellY(self.focusedYIndex), highlightedSplitBy);\r\n }\r\n self.render(self.data, self.chartOptions, self.aggKey, highlightedSplitBy, this.highlightedTime, self.onCellFocus, null, self.isOnlyAgg);\r\n }).on(\"mouseout\", function () {\r\n self.focusedXIndex = -1;\r\n self.focusedYIndex = -1;\r\n self.render(self.data, self.chartOptions, self.aggKey, null, null, self.onCellFocus, null, self.isOnlyAgg);\r\n });\r\n this.aggKey = aggKey;\r\n this.rawCellHeight = Math.floor(this.height / this.heatmapData.numRows);\r\n this.cellHeightMod = this.height % this.heatmapData.numRows;\r\n this.rawCellWidth = this.width / this.heatmapData.numCols;\r\n this.cellWidthMod = this.width % this.heatmapData.numCols;\r\n this.colorLegend = container.append(\"svg\").attr(\"class\", \"tsi-heatmapColorLegend\");\r\n this.colorLegend.attr(\"width\", this.legendWidth)\r\n .attr(\"height\", this.height)\r\n .style(\"left\", (this.width) + \"px\");\r\n var aggColor = data.displayState[aggKey].color;\r\n if (isOnlyAgg) {\r\n this.colorScale = d3.scaleSequential(d3.interpolateViridis).domain(this.getExtent());\r\n }\r\n else {\r\n this.colorScale = d3.scaleLinear().domain(this.getExtent())\r\n .range([d3.hcl(aggColor).brighter().l, d3.hcl(aggColor).darker().l]);\r\n }\r\n this.renderScale(aggColor, isOnlyAgg);\r\n var sortedTimes = Object.keys(this.heatmapData.timeValues).sort(function (a, b) {\r\n return ((new Date(a)).valueOf() < (new Date(b)).valueOf()) ? -1 : 1;\r\n });\r\n sortedTimes.forEach(function (ts, tsI) {\r\n Object.keys(_this.heatmapData.timeValues[ts]).forEach(function (splitBy, sBI) {\r\n var cellData = _this.heatmapData.timeValues[ts][splitBy];\r\n if (cellData != null) {\r\n if (highlightedSplitBy && highlightedSplitBy != splitBy) {\r\n _this.drawCell(cellData.rowI, cellData.colI, cellData.value, aggColor, isOnlyAgg, true);\r\n }\r\n else {\r\n _this.drawCell(cellData.rowI, cellData.colI, cellData.value, aggColor, isOnlyAgg);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n HeatmapCanvas.prototype.calcCellXIndex = function (x) {\r\n var xI = 0;\r\n while (Math.round(xI * this.rawCellWidth) < x) {\r\n xI++;\r\n }\r\n return Math.max(xI - 1, 0);\r\n };\r\n HeatmapCanvas.prototype.calcCellYIndex = function (y) {\r\n if (y < (this.cellHeightMod * (this.rawCellHeight + 1)))\r\n return Math.floor(y / (this.rawCellHeight + 1));\r\n var modOffset = this.cellHeightMod * (this.rawCellHeight + 1);\r\n return Math.floor((y - modOffset) / this.rawCellHeight) + this.cellHeightMod;\r\n };\r\n HeatmapCanvas.prototype.calcCellHeight = function (i) {\r\n return this.rawCellHeight + (i < this.cellHeightMod ? 1 : 0) - (this.rawCellWidth > 10 ? 1 : 0);\r\n ;\r\n };\r\n HeatmapCanvas.prototype.calcCellX = function (i) {\r\n return Math.round(this.rawCellWidth * i);\r\n return Math.min(i, this.cellWidthMod) + (this.rawCellWidth * i);\r\n };\r\n HeatmapCanvas.prototype.calcCellWidth = function (i) {\r\n return (Math.round(this.rawCellWidth * (i + 1)) - Math.round(this.rawCellWidth * i) - (this.rawCellWidth > 10 ? 1 : 0));\r\n };\r\n HeatmapCanvas.prototype.calcCellY = function (i) {\r\n return Math.min(i, this.cellHeightMod) + (this.rawCellHeight * i);\r\n };\r\n HeatmapCanvas.prototype.drawCell = function (rowI, colI, value, aggColor, isOnlyAgg, outOfFocus) {\r\n if (outOfFocus === void 0) { outOfFocus = false; }\r\n var x = this.calcCellX(colI);\r\n var y = this.calcCellY(rowI);\r\n this.ctx.fillStyle = value !== null ? this.getColor(aggColor, value, isOnlyAgg) : \"transparent\";\r\n this.ctx.globalAlpha = outOfFocus ? .3 : 1;\r\n this.ctx.fillRect(this.calcCellX(colI), this.calcCellY(rowI), this.calcCellWidth(colI), this.calcCellHeight(rowI));\r\n };\r\n HeatmapCanvas.prototype.getColor = function (aggColor, index, isOnlyAgg) {\r\n var color;\r\n if (isOnlyAgg) {\r\n color = this.colorScale(index);\r\n }\r\n else {\r\n var interpolatedColorLuminance = this.colorScale(index);\r\n var newColor = d3.hcl(aggColor);\r\n newColor.l = interpolatedColorLuminance;\r\n color = newColor.formatHex();\r\n }\r\n return color;\r\n };\r\n return HeatmapCanvas;\r\n}(ChartComponent));\r\nexport default HeatmapCanvas;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from 'd3';\r\nimport './Heatmap.scss';\r\nimport Utils from \"../../Utils\";\r\nimport Legend from '../Legend';\r\nimport HeatmapCanvas from '../HeatmapCanvas';\r\nimport EllipsisMenu from '../EllipsisMenu';\r\nimport { TemporalXAxisComponent } from '../../Interfaces/TemporalXAxisComponent';\r\nvar Heatmap = /** @class */ (function (_super) {\r\n __extends(Heatmap, _super);\r\n function Heatmap(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.lineHeight = 12;\r\n _this.splitByLabelWidth = 140;\r\n _this.timeLabels = null;\r\n _this.timeLabelsHeight = 52;\r\n _this.visibleAggs = null;\r\n _this.mouseover = function (hoveredAggKey, hoveredSplitBy) {\r\n var heatmapCanvas = _this.heatmapCanvasMap[hoveredAggKey];\r\n if (heatmapCanvas)\r\n heatmapCanvas.render(_this.chartComponentData, _this.chartOptions, hoveredAggKey, hoveredSplitBy, null, null, null, _this.visibleAggs.length === 1);\r\n };\r\n _this.mouseout = function (selection, hoveredAggKey) {\r\n var heatmapCanvas = _this.heatmapCanvasMap[hoveredAggKey];\r\n if (heatmapCanvas)\r\n heatmapCanvas.render(_this.chartComponentData, _this.chartOptions, hoveredAggKey, null, null, null, null, _this.visibleAggs.length === 1);\r\n };\r\n _this.renderTimeLabels = function (focusStartTime, focusEndTime, focusX1, focusX2, focusY, yOffset, shiftMillis) {\r\n _this.timeLabels.selectAll(\".tsi-heatmapTimeLabels\").remove();\r\n _this.timeLabels.node().parentNode.appendChild(_this.timeLabels.node());\r\n _this.timeLabels.append(\"line\").attr(\"class\", \"tsi-heatmapFocusLine tsi-heatmapTimeLabels\")\r\n .attr(\"x1\", focusX1)\r\n .attr(\"x2\", focusX1)\r\n .attr(\"y1\", focusY + yOffset)\r\n .attr(\"y2\", _this.chartHeight - _this.timeLabelsHeight);\r\n _this.timeLabels.append(\"line\").attr(\"class\", \"tsi-heatmapFocusLine tsi-heatmapTimeLabels\")\r\n .attr(\"x1\", focusX2)\r\n .attr(\"x2\", focusX2)\r\n .attr(\"y1\", focusY + yOffset)\r\n .attr(\"y2\", _this.chartHeight - _this.timeLabelsHeight);\r\n var textBoxG = _this.timeLabels.append(\"g\")\r\n .attr(\"class\", \"tsi-heatmapTimeLabelTextBox tsi-heatmapTimeLabels\");\r\n var text = textBoxG.append(\"text\");\r\n text.append(\"tspan\").text(Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, shiftMillis, null, _this.chartOptions.dateLocale)(focusStartTime))\r\n .attr(\"x\", 0)\r\n .attr(\"y\", 16);\r\n text.append(\"tspan\").text(Utils.timeFormat(_this.chartComponentData.usesSeconds, _this.chartComponentData.usesMillis, _this.chartOptions.offset, _this.chartOptions.is24HourTime, shiftMillis, null, _this.chartOptions.dateLocale)(focusEndTime))\r\n .attr(\"x\", 0)\r\n .attr(\"y\", 30);\r\n var textDimensions = text.node().getBoundingClientRect();\r\n textBoxG.append(\"rect\")\r\n .attr(\"x\", -(textDimensions.width / 2) - 5)\r\n .attr(\"y\", 0)\r\n .attr(\"height\", textDimensions.height + 12)\r\n .attr(\"width\", textDimensions.width + 10);\r\n text.node().parentNode.appendChild(text.node());\r\n var rawOffset = (focusX1 + focusX2) / 2;\r\n var leftOffset = Math.floor(((rawOffset - ((textDimensions.width / 2) + 6)) > 0) ? rawOffset : ((textDimensions.width / 2) + 6));\r\n textBoxG.attr(\"transform\", \"translate(\" + leftOffset + \",\" + (_this.chartHeight - _this.timeLabelsHeight - _this.chartMargins.bottom) + \")\");\r\n };\r\n _this.chartMargins = {\r\n top: 0,\r\n bottom: 8,\r\n left: 40,\r\n right: 20\r\n };\r\n return _this;\r\n }\r\n Heatmap.prototype.focusOnEllipsis = function () {\r\n if (this.ellipsisContainer !== null) {\r\n this.ellipsisContainer.select(\".tsi-ellipsisButton\").node().focus();\r\n }\r\n };\r\n Heatmap.prototype.createControlsPanel = function () {\r\n this.chartControlsPanel = Utils.createControlPanel(this.renderTarget, this.CONTROLSWIDTH, 52, this.chartOptions);\r\n this.ellipsisContainer = this.chartControlsPanel.append(\"div\")\r\n .attr(\"class\", \"tsi-ellipsisContainerDiv\");\r\n this.ellipsisMenu = new EllipsisMenu(this.ellipsisContainer.node());\r\n };\r\n Heatmap.prototype.chartControlsExist = function () {\r\n return (this.ellipsisItemsExist() && !this.chartOptions.hideChartControlPanel);\r\n };\r\n Heatmap.prototype.addTimeLabels = function () {\r\n if (this.timeLabels === null || this.svgSelection === null) {\r\n this.svgSelection = this.heatmapWrapper.append('svg')\r\n .attr('class', 'tsi-heatmapSVG')\r\n .attr('title', this.getString('Heatmap'));\r\n this.timeLabels = this.svgSelection.append('g').attr(\"class\", \"tsi-heatmapTimeLabels\")\r\n .attr('transform', 'translate(' + this.chartMargins.left + ',0)');\r\n }\r\n if (!this.chartOptions.xAxisHidden) {\r\n this.xAxis = this.timeLabels.selectAll(\".xAxis\").data([this.x]);\r\n this.drawXAxis(this.chartHeight - 60);\r\n this.xAxis.exit().remove();\r\n var xAxisBaseline = this.timeLabels.selectAll(\".xAxisBaseline\").data([this.x]);\r\n var xAxisBaselineEntered = xAxisBaseline.enter().append(\"line\")\r\n .attr(\"class\", \"xAxisBaseline\")\r\n .attr(\"x1\", .5)\r\n .merge(xAxisBaseline)\r\n .attr(\"y2\", this.chartHeight - (this.chartMargins.bottom + this.timeLabelsHeight))\r\n .attr(\"y1\", this.chartHeight - (this.chartMargins.bottom + this.timeLabelsHeight))\r\n .attr(\"x2\", this.chartWidth - 90);\r\n xAxisBaseline.exit().remove();\r\n }\r\n if (this.timeLabels.selectAll(\".xAxis\").size() !== 0) {\r\n this.timeLabels.selectAll(\".xAxis\").style(\"visibility\", ((!this.chartOptions.xAxisHidden) ? \"visible\" : \"hidden\"));\r\n }\r\n };\r\n Heatmap.prototype.render = function (data, chartOptions, aggregateExpressionOptions) {\r\n var _this = this;\r\n _super.prototype.render.call(this, data, chartOptions, aggregateExpressionOptions);\r\n // override visibleSplitByCap\r\n this.aggregateExpressionOptions = this.aggregateExpressionOptions.map(function (aE) {\r\n return __assign(__assign({}, aE), { visibleSplitByCap: 10000 });\r\n });\r\n this.chartOptions.setOptions(chartOptions);\r\n var targetElement = d3.select(this.renderTarget).classed(\"tsi-heatmapComponent\", true);\r\n if (targetElement.style(\"position\") == \"static\")\r\n targetElement.style(\"position\", \"relative\");\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.aggregateExpressionOptions);\r\n if (this.chartControlsExist() && this.chartControlsPanel === null) {\r\n this.createControlsPanel();\r\n }\r\n else if ((this.chartOptions.hideChartControlPanel || !this.ellipsisItemsExist()) && this.chartControlsPanel !== null) {\r\n this.chartControlsPanel.remove();\r\n this.chartControlsPanel = null;\r\n }\r\n if (this.chartControlsExist()) {\r\n this.chartControlsPanel.style(\"top\", (16 + (this.chartOptions.legend === 'compact' ? 32 : 0)) + 'px');\r\n this.drawEllipsisMenu();\r\n }\r\n if (this.heatmapWrapper == null) {\r\n this.heatmapWrapper = targetElement.append('div')\r\n .attr(\"class\", \"tsi-heatmapWrapper\");\r\n this.draw = function (isFromResize) {\r\n if (isFromResize === void 0) { isFromResize = false; }\r\n _this.height = Math.floor(Math.max(d3.select(_this.renderTarget).node().clientHeight, _this.MINHEIGHT));\r\n _this.chartHeight = _this.height - ((12 + (_this.chartControlsExist() ? 28 : 0) + (_this.chartOptions.legend === 'compact' ? 48 : 0)));\r\n _super.prototype.themify.call(_this, targetElement, _this.chartOptions.theme);\r\n _this.width = _this.getWidth();\r\n if (!isFromResize) {\r\n _this.chartWidth = _this.getChartWidth();\r\n }\r\n _this.x = d3.scaleTime()\r\n .rangeRound([0, _this.chartWidth - 90]); // HARDCODED to be the width of a heatmapCanvas\r\n var fromAndTo = _this.chartComponentData.setAllValuesAndVisibleTAs();\r\n _this.x.domain(fromAndTo);\r\n _this.heatmapWrapper.style(\"width\", _this.chartWidth + (_this.chartMargins.left + _this.chartMargins.right) + \"px\")\r\n .style(\"height\", _this.chartHeight + \"px\")\r\n .style(\"top\", (20 + (_this.chartControlsExist() ? 36 : 0) + (_this.chartOptions.legend === 'compact' ? 40 : 0)) + \"px\");\r\n if (_this.chartControlsExist()) {\r\n _this.setControlsPanelWidth();\r\n }\r\n var canvasWrapperHeightTotal = _this.chartHeight - _this.timeLabelsHeight - _this.chartMargins.bottom;\r\n _this.heatmapCanvasMap = {};\r\n _this.visibleAggs = Object.keys(_this.chartComponentData.displayState).filter(function (aggKey) {\r\n return _this.chartComponentData.getAggVisible(aggKey);\r\n });\r\n var self = _this;\r\n var canvasWrappers = _this.heatmapWrapper.selectAll(\".tsi-heatmapCanvasWrapper\")\r\n .data(_this.visibleAggs);\r\n var canvasesEntered = canvasWrappers.enter()\r\n .append(\"div\")\r\n .merge(canvasWrappers)\r\n .attr(\"class\", \"tsi-heatmapCanvasWrapper\")\r\n .style(\"width\", _this.chartWidth + 'px')\r\n .style('left', _this.chartMargins.left + 'px')\r\n .style(\"height\", function (d, i) {\r\n return (canvasWrapperHeightTotal * (1 / _this.visibleAggs.length)) + \"px\";\r\n })\r\n .style(\"top\", function (d, i) {\r\n return ((canvasWrapperHeightTotal * (1 / _this.visibleAggs.length)) * i) + \"px\";\r\n }).each(function (aggKey, aggI) {\r\n var heatmapCanvas = new HeatmapCanvas(this);\r\n self.heatmapCanvasMap[aggKey] = heatmapCanvas;\r\n var renderHeatmapCanvas = function () {\r\n function onCellFocus(focusStartTime, focusEndTime, focusX1, focusX2, focusY, splitBy) {\r\n var shiftMillis = self.chartComponentData.getTemporalShiftMillis(aggKey);\r\n self.renderTimeLabels(focusStartTime, focusEndTime, focusX1, focusX2, focusY, (aggI * canvasWrapperHeightTotal / self.visibleAggs.length), shiftMillis);\r\n self.legendObject.triggerSplitByFocus(aggKey, splitBy);\r\n self.chartOptions.onMouseover(aggKey, splitBy);\r\n }\r\n heatmapCanvas.render(self.chartComponentData, self.chartOptions, aggKey, null, null, onCellFocus, aggI, self.visibleAggs.length === 1);\r\n };\r\n renderHeatmapCanvas();\r\n }).on(\"mouseleave\", function () {\r\n self.timeLabels.selectAll(\".tsi-heatmapTimeLabels\").remove();\r\n self.legendObject.legendElement.selectAll('.tsi-splitByLabel').classed(\"inFocus\", false);\r\n self.chartOptions.onMouseout();\r\n });\r\n canvasWrappers.exit().remove();\r\n _this.legendObject.draw(_this.chartOptions.legend, _this.chartComponentData, _this.mouseover, _this.heatmapWrapper, _this.chartOptions, _this.mouseout);\r\n //remove all the colorKeys\r\n _this.legendObject.legendElement.selectAll(\".seriesLabel\").selectAll(\".tsi-splitByLabel\").selectAll(\".colorKey\").style(\"display\", \"none\");\r\n if (isFromResize) {\r\n _this.addTimeLabels();\r\n }\r\n };\r\n this.legendObject = new Legend(this.draw, this.renderTarget, this.CONTROLSWIDTH);\r\n }\r\n this.chartComponentData.mergeDataToDisplayStateAndTimeArrays(this.data, this.aggregateExpressionOptions);\r\n this.draw();\r\n this.gatedShowGrid();\r\n this.addTimeLabels();\r\n window.addEventListener(\"resize\", function () {\r\n if (!_this.chartOptions.suppressResizeListener) {\r\n _this.draw();\r\n _this.addTimeLabels();\r\n }\r\n });\r\n this.legendPostRenderProcess(this.chartOptions.legend, this.heatmapWrapper, true);\r\n };\r\n return Heatmap;\r\n}(TemporalXAxisComponent));\r\nexport default Heatmap;\r\n","var TimeSeriesEventCell = /** @class */ (function () {\r\n function TimeSeriesEventCell(name, value, type) {\r\n if (type === void 0) { type = null; }\r\n this.key = name + \"_\" + type;\r\n this.name = name;\r\n this.type = type;\r\n this.value = value;\r\n }\r\n return TimeSeriesEventCell;\r\n}());\r\nexport { TimeSeriesEventCell };\r\n","import Utils from \"../Utils\";\r\nimport { TimeSeriesEventCell } from \"./TimeSeriesEventCell\";\r\nvar TimeSeriesEvent = /** @class */ (function () {\r\n function TimeSeriesEvent(rawEvent, offset, offsetName, locale) {\r\n if (offset === void 0) { offset = null; }\r\n if (offsetName === void 0) { offsetName = null; }\r\n if (locale === void 0) { locale = 'en'; }\r\n this.cells = {};\r\n if (offset !== null) {\r\n var type = 'DateTime';\r\n var utcOffsetDate_1 = Utils.offsetUTC(new Date(Date.parse(rawEvent['timestamp ($ts)'].split(\"Z\").join(\"\"))));\r\n rawEvent[offsetName + \"_\" + type] = {\r\n name: offsetName,\r\n value: function () { return Utils.timeFormat(true, true, offset, true, null, null, locale)(utcOffsetDate_1); },\r\n type: type\r\n };\r\n }\r\n this.cells = Object.keys(rawEvent).reduce(function (cellObj, propId) {\r\n var cell;\r\n if (propId == \"timestamp ($ts)\")\r\n cell = new TimeSeriesEventCell('timestamp ($ts)', rawEvent[propId], 'DateTime');\r\n else {\r\n cell = new TimeSeriesEventCell(rawEvent[propId]['name'], rawEvent[propId]['value'], rawEvent[propId]['type']);\r\n }\r\n cellObj[cell.key] = cell;\r\n return cellObj;\r\n }, {});\r\n }\r\n return TimeSeriesEvent;\r\n}());\r\nexport { TimeSeriesEvent };\r\n","import Utils from \"../Utils\";\r\nimport { valueTypes } from \"./../Constants/Enums\";\r\nimport { TimeSeriesEvent } from \"./TimeSeriesEvent\";\r\nvar EventsTableData = /** @class */ (function () {\r\n function EventsTableData() {\r\n this.columns = {};\r\n this.rows = [];\r\n this.events = [];\r\n this.timestampColumnKey = \"timestamp ($ts)_DateTime\";\r\n this.offsetName = null;\r\n this.maxVisibleToStart = 10;\r\n this.offsetNameCache = {};\r\n this.timeSeriesIdProperties = [];\r\n }\r\n EventsTableData.prototype.createOffsetName = function (offset) {\r\n if (offset in this.offsetNameCache) {\r\n return this.offsetNameCache[offset];\r\n }\r\n var offsetSubstring = \"\";\r\n if ((typeof offset) === 'string') {\r\n offsetSubstring = Utils.convertTimezoneToLabel(offset);\r\n }\r\n else {\r\n offsetSubstring = Utils.formatOffsetMinutes(offset);\r\n }\r\n var offsetName = \"timestamp \" + offsetSubstring;\r\n this.offsetNameCache[offset] = offsetName;\r\n return offsetName;\r\n };\r\n EventsTableData.prototype.sortColumnKeys = function () {\r\n var _this = this;\r\n var columnKeys = Object.keys(this.columns);\r\n var existingTsidColumnKeys = Object.values(this.columns).filter(function (c) { return c['isTsid']; }).map(function (c) { return c['key']; }); // detect existing time series id properties in column keys\r\n columnKeys = existingTsidColumnKeys.concat(columnKeys.filter(function (c) { return !existingTsidColumnKeys.includes(c); })); // put these time series id properties to the beginning of the column key list\r\n var offsetKey = this.offsetName + \"_DateTime\";\r\n var lessTimestamps = columnKeys.filter(function (columnKey) {\r\n return (columnKey !== _this.timestampColumnKey && columnKey !== offsetKey);\r\n });\r\n var timestamps = [];\r\n if (columnKeys.indexOf(this.timestampColumnKey) !== -1)\r\n timestamps.push(this.timestampColumnKey);\r\n if (columnKeys.indexOf(offsetKey) !== -1)\r\n timestamps.push(offsetKey);\r\n return timestamps.concat(lessTimestamps);\r\n };\r\n EventsTableData.prototype.setEvents = function (rawEvents, fromTsx, timeSeriesIdProperties, offset) {\r\n var _this = this;\r\n if (offset === void 0) { offset = null; }\r\n this.timeSeriesIdProperties = timeSeriesIdProperties;\r\n this.events = [];\r\n rawEvents.forEach(function (rawEvent) {\r\n if (!fromTsx) {\r\n rawEvent = Object.keys(rawEvent).reduce(function (newEventMap, currColName) {\r\n newEventMap[currColName] = {\r\n name: currColName,\r\n value: rawEvent[currColName]\r\n };\r\n return newEventMap;\r\n }, {});\r\n }\r\n if (offset !== null) {\r\n _this.offsetName = _this.createOffsetName(offset);\r\n }\r\n var event = new TimeSeriesEvent(rawEvent, offset, (offset !== null ? _this.offsetName : null));\r\n _this.events.push(event);\r\n });\r\n this.constructColumns();\r\n };\r\n EventsTableData.prototype.sortEvents = function (columnKey, isAscending) {\r\n var sortType = this.columns[columnKey].type;\r\n var aTop = 1;\r\n var bTop = -1;\r\n if (!isAscending) {\r\n aTop = -1;\r\n bTop = 1;\r\n }\r\n this.events.sort(function (a, b) {\r\n if ((a.cells && a.cells[columnKey]) || (b.cells && b.cells[columnKey])) {\r\n var aConverted = (a.cells && a.cells[columnKey]) ? a.cells[columnKey].value : null;\r\n var bConverted = (b.cells && b.cells[columnKey]) ? b.cells[columnKey].value : null;\r\n //one value is null\r\n if (aConverted == null)\r\n return bTop;\r\n if (bConverted == null)\r\n return aTop;\r\n //convert to appropriate type\r\n if (sortType == \"Double\") {\r\n aConverted = Number(aConverted);\r\n bConverted = Number(bConverted);\r\n }\r\n else if (sortType == \"DateTime\") {\r\n aConverted = (new Date(aConverted)).valueOf();\r\n bConverted = (new Date(bConverted)).valueOf();\r\n }\r\n //compare\r\n if (aConverted > bConverted)\r\n return aTop;\r\n if (aConverted < bConverted)\r\n return bTop;\r\n return 0;\r\n }\r\n return 0;\r\n });\r\n };\r\n EventsTableData.prototype.constructColumns = function () {\r\n var _this = this;\r\n var timeSeriesIdPropertyKeys = this.timeSeriesIdProperties.map(function (p) { return p.name + \"_\" + p.type; });\r\n var newColumns = {};\r\n this.events.forEach(function (event) {\r\n Object.keys(event.cells).forEach(function (cellKey) {\r\n var cell = event.cells[cellKey];\r\n if (_this.columns[cell.key] == null) {\r\n newColumns[cell.key] = {\r\n key: cell.key,\r\n name: cell.name,\r\n visible: true,\r\n type: cell.type,\r\n isTsid: timeSeriesIdPropertyKeys.includes(cell.key)\r\n };\r\n }\r\n else {\r\n newColumns[cell.key] = _this.columns[cell.key];\r\n }\r\n });\r\n });\r\n var visibleColumnCounter = Object.values(newColumns).filter(function (c) { return c['isTsid']; }).length;\r\n Object.keys(newColumns).forEach(function (columnKey) {\r\n if (newColumns[columnKey].isTsid) {\r\n newColumns[columnKey].visible = true;\r\n }\r\n else {\r\n newColumns[columnKey].visible = visibleColumnCounter < _this.maxVisibleToStart;\r\n visibleColumnCounter++;\r\n }\r\n });\r\n this.columns = newColumns;\r\n };\r\n EventsTableData.prototype.generateCSVString = function (includeAllColumns, offset) {\r\n if (includeAllColumns === void 0) { includeAllColumns = true; }\r\n if (offset === void 0) { offset = 0; }\r\n //replace comma at end of line with end line character\r\n var endLine = function (s) {\r\n return s.slice(0, s.length - 1) + \"\\n\";\r\n };\r\n var columnKeys = this.sortColumnKeys();\r\n var csvString = endLine(columnKeys.reduce(function (headerString, columnKey) {\r\n return headerString + Utils.sanitizeString(columnKey, valueTypes.String) + \",\";\r\n }, \"\"));\r\n this.events.forEach(function (event) {\r\n csvString += endLine(columnKeys.reduce(function (lineString, columnKey) {\r\n var value = (event.cells[columnKey] ? (typeof (event.cells[columnKey].value) === 'function' ? event.cells[columnKey].value() : event.cells[columnKey].value) : null);\r\n return lineString + ((event.cells[columnKey] != null && Utils.sanitizeString(value, event.cells[columnKey].type) !== null) ?\r\n Utils.sanitizeString(value, event.cells[columnKey].type) : \"\") + \",\";\r\n }, \"\"));\r\n });\r\n return csvString;\r\n };\r\n return EventsTableData;\r\n}());\r\nexport { EventsTableData };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './EventsTable.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { ChartComponent } from '../../Interfaces/ChartComponent';\r\nimport { EventsTableData } from '../../Models/EventsTableData';\r\nvar EventsTable = /** @class */ (function (_super) {\r\n __extends(EventsTable, _super);\r\n function EventsTable(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.maxVisibleIndex = 100;\r\n _this.isAscending = true;\r\n _this.timestampColumnName = 'timestamp ($ts)';\r\n _this.sortColumn = 'timestamp ($ts)';\r\n _this.allSelectedState = \"all\"; // all | some | none\r\n _this.eventsTableData = new EventsTableData();\r\n _this.margins = {\r\n left: 10,\r\n right: 10\r\n };\r\n return _this;\r\n }\r\n EventsTable.prototype.EventsTable = function () {\r\n };\r\n EventsTable.prototype.renderFromEventsTsx = function (eventsFromTsx, chartOptions) {\r\n this.render(eventsFromTsx, chartOptions, true);\r\n };\r\n EventsTable.prototype.render = function (events, chartOptions, fromTsx) {\r\n if (fromTsx === void 0) { fromTsx = false; }\r\n this.chartOptions.setOptions(chartOptions);\r\n this.maxVisibleIndex = 100;\r\n this.eventsTableData.setEvents(events, fromTsx, this.chartOptions.timeSeriesIdProperties, chartOptions.offset);\r\n var componentContainer = d3.select(this.renderTarget)\r\n .classed(\"tsi-tableComponent\", true);\r\n _super.prototype.themify.call(this, componentContainer, this.chartOptions.theme);\r\n var tableLeftPanel;\r\n if (this.eventsTable == null) {\r\n tableLeftPanel = componentContainer.append(\"div\")\r\n .classed(\"tsi-tableLeftPanel\", true);\r\n this.eventsLegend = tableLeftPanel.append(\"div\")\r\n .classed(\"tsi-tableLegend\", true);\r\n this.eventsLegend.append(\"ul\");\r\n this.eventsTable = componentContainer.append(\"div\")\r\n .classed(\"tsi-eventsTable\", true);\r\n this.eventsTable.append(\"div\").classed(\"tsi-columnHeaders\", true);\r\n var table = this.eventsTable.append(\"div\").classed(\"tsi-eventRowsContainer\", true)\r\n .append(\"table\").classed(\"tsi-eventRows\", true);\r\n table.append(\"tr\");\r\n }\r\n else {\r\n tableLeftPanel = componentContainer.select(\"tsi-tableLeftPanel\");\r\n }\r\n this.renderLegend();\r\n this.buildTable();\r\n tableLeftPanel.selectAll(\".tsi-eventsDownload\").remove();\r\n var downloadButton = tableLeftPanel.append(\"button\")\r\n .attr(\"class\", \"tsi-eventsDownload tsi-primaryButton\")\r\n .attr(\"aria-label\", this.getString(\"Download as CSV\"))\r\n .on(\"click\", function () {\r\n var _this = this;\r\n this.classList.add('tsi-downloading');\r\n setTimeout(function () {\r\n Utils.downloadCSV(self.eventsTableData.generateCSVString(true, 0), \"Events\");\r\n _this.classList.remove('tsi-downloading');\r\n }, 100);\r\n });\r\n downloadButton.append(\"div\").attr(\"class\", \"tsi-downloadEventsIcon\");\r\n downloadButton.append(\"div\").attr(\"class\", \"tsi-downloadEventsText\").text(this.getString(\"Download as CSV\"));\r\n //listen for table scroll and adjust the headers accordingly\r\n var self = this;\r\n this.eventsTable.select('.tsi-eventRowsContainer').node().scrollLeft = 0;\r\n this.eventsTable.select('.tsi-eventRowsContainer').node().scrollTop = 0;\r\n this.eventsTable.select('.tsi-eventRowsContainer').node().addEventListener('scroll', function (evt) {\r\n self.eventsTable.select('.tsi-columnHeaders').node().scrollLeft = this.scrollLeft;\r\n //check to see if need to infiniteScroll\r\n if ((this.scrollTop + this.clientHeight) > (this.scrollHeight - 100)) {\r\n var oldVisibleIndex = self.maxVisibleIndex;\r\n self.maxVisibleIndex += (Math.min(100, self.eventsTableData.events.length - self.maxVisibleIndex));\r\n if (self.maxVisibleIndex != oldVisibleIndex)\r\n self.buildTable();\r\n }\r\n }, false);\r\n };\r\n EventsTable.prototype.renderLegend = function () {\r\n var _this = this;\r\n this.eventsLegend.html(\"\");\r\n this.eventsLegend.append(\"ul\");\r\n var columns = this.eventsTableData.sortColumnKeys()\r\n .map(function (cIdx) { return _this.eventsTableData.columns[cIdx]; });\r\n this.setSelectAllState();\r\n if (columns.length > 2) { // tristate - all selected\r\n var selectAllColumns = this.eventsLegend.select(\"ul\")\r\n .append(\"li\").attr(\"class\", \"tsi-selectAllColumns\");\r\n selectAllColumns.append(\"button\").attr(\"class\", \"tsi-columnToggleButton\")\r\n .attr(\"aria-label\", function () {\r\n var selectAllState = _this.getSelectAllState();\r\n return selectAllState !== \"all\" ? _this.getString(\"Toggle all columns\") : _this.getString(\"Toggle all columns\");\r\n })\r\n .on(\"click\", function () {\r\n var setAllVisible = false;\r\n var selectAllState = _this.getSelectAllState();\r\n if (selectAllState != \"all\") {\r\n setAllVisible = true;\r\n }\r\n Object.keys(_this.eventsTableData.columns).forEach(function (columnKey) {\r\n if (setAllVisible) {\r\n _this.eventsTableData.columns[columnKey].visible = true;\r\n }\r\n else {\r\n if (columnKey != _this.timestampColumnName)\r\n _this.eventsTableData.columns[columnKey].visible = false;\r\n }\r\n });\r\n _this.setLegendColumnStates();\r\n _this.buildTable();\r\n });\r\n selectAllColumns.append(\"span\").attr(\"class\", \"tsi-columnToggleCheckbox\");\r\n selectAllColumns.append(\"span\").attr(\"class\", \"tsi-selectAllSomeState\");\r\n selectAllColumns.append(\"span\").attr(\"class\", \"tsi-columnToggleName\")\r\n .text(this.getString(\"All Columns\"));\r\n }\r\n var toggleableColumnLis = this.eventsLegend.select(\"ul\").selectAll(\".tsi-columnToggle\")\r\n .data(columns);\r\n var toggleableColumnLisEntered = toggleableColumnLis.enter()\r\n .append(\"li\")\r\n .classed(\"tsi-columnToggle\", true)\r\n .merge(toggleableColumnLis);\r\n var self = this;\r\n toggleableColumnLisEntered.each(function (d) {\r\n d3.select(this).append(\"button\").attr(\"class\", \"tsi-columnToggleButton\")\r\n .attr(\"aria-label\", function (d) { return \"toggle column \" + d.key; })\r\n .on(\"click\", function (event, d) {\r\n d.visible = !d.visible;\r\n self.setLegendColumnStates();\r\n self.buildTable();\r\n });\r\n d3.select(this).append(\"div\").attr(\"class\", \"tsi-columnToggleCheckbox\");\r\n if (d.isTsid) {\r\n var typeIconCOntainer = d3.select(this).append(\"div\").attr(\"class\", \"tsi-columnTypeIcons\");\r\n typeIconCOntainer.append(\"span\").attr(\"class\", \"tsi-columnTypeIcon\")\r\n .classed(\"tsid\", true).attr(\"title\", self.getString(\"Time Series ID\"));\r\n typeIconCOntainer.append(\"span\").attr(\"class\", \"tsi-columnTypeIcon\")\r\n .classed(d.type, true);\r\n }\r\n else {\r\n d3.select(this).append(\"div\").attr(\"class\", \"tsi-columnTypeIcon\")\r\n .classed(d.type, true);\r\n }\r\n d3.select(this).select(\"button\").append(\"div\").attr(\"class\", \"tsi-onlyLabel\").text(self.getString(\"only\"))\r\n .attr('tabindex', \"0\")\r\n .attr('role', 'button')\r\n .on(\"click\", function (event, d) {\r\n event.stopPropagation();\r\n columns.forEach(function (column) {\r\n if (column.key == d.key)\r\n column.visible = true;\r\n else\r\n column.visible = false;\r\n });\r\n self.setLegendColumnStates();\r\n self.buildTable();\r\n });\r\n d3.select(this).append(\"div\").attr(\"class\", \"tsi-columnToggleName\").classed('tsidPropertyName', function (d) { return d.isTsid; }).text(function (d) { return columns.filter(function (c) { return c.name === d.name; }).length > 1 ? d.name + \" (\" + d.type + \")\" : d.name; });\r\n });\r\n this.setLegendColumnStates();\r\n toggleableColumnLis.exit().remove();\r\n };\r\n EventsTable.prototype.setLegendColumnStates = function () {\r\n if (this.eventsLegend.select(\"ul\")) {\r\n this.eventsLegend.select(\"ul\").selectAll(\".tsi-columnToggle\").each(function () {\r\n d3.select(this).select(\".tsi-columnToggleCheckbox\").classed(\"tsi-notSelected\", function (d) { return !(d.visible); });\r\n });\r\n }\r\n this.setSelectAllState();\r\n };\r\n EventsTable.prototype.getSelectAllState = function () {\r\n var _this = this;\r\n var selectAllState = Object.keys(this.eventsTableData.columns).reduce(function (prev, curr) {\r\n if (curr == _this.timestampColumnName) // skip timestamp, will always be visible\r\n return prev;\r\n if (prev == null)\r\n return (_this.eventsTableData.columns[curr].visible) ? \"all\" : \"none\";\r\n if (prev == \"some\")\r\n return \"some\";\r\n return (prev == (_this.eventsTableData.columns[curr].visible ? \"all\" : \"none\")) ? prev : \"some\";\r\n }, null);\r\n if (selectAllState == null)\r\n selectAllState = \"none\";\r\n return selectAllState;\r\n };\r\n EventsTable.prototype.setSelectAllState = function () {\r\n var selectAllState = this.getSelectAllState();\r\n var selectAllColumns = this.eventsLegend.select(\"ul\").select(\".tsi-selectAllColumns\");\r\n selectAllColumns.select(\".tsi-columnToggleCheckbox\")\r\n .classed(\"tsi-notSelected\", function () { return selectAllState !== \"all\"; });\r\n selectAllColumns.select(\".tsi-columnToggleButton\")\r\n .attr(\"aria-label\", (selectAllState !== \"all\" ? this.getString(\"Toggle all columns on\") : this.getString(\"Toggle all columns off\")));\r\n this.eventsLegend.select(\"ul\").select(\".tsi-selectAllColumns\").select(\".tsi-selectAllSomeState\")\r\n .style(\"visibility\", function () { return (selectAllState == \"some\") ? \"visible\" : \"hidden\"; });\r\n };\r\n EventsTable.prototype.getFilteredColumnKeys = function () {\r\n var _this = this;\r\n return this.eventsTableData.sortColumnKeys().filter(function (columnKey) {\r\n return _this.eventsTableData.columns[columnKey].visible;\r\n });\r\n };\r\n //creates columnHeaders, returns a dictionary of widths so that buildTable can know the min width of each column\r\n EventsTable.prototype.buildHeaders = function (filteredColumnKeys, focusedHeader) {\r\n var _this = this;\r\n if (focusedHeader === void 0) { focusedHeader = null; }\r\n var longAndDoubleExist = function (propertyKey) {\r\n var propertyName = _this.eventsTableData.columns[propertyKey].name;\r\n return _this.eventsTableData.columns.hasOwnProperty(propertyName + \"_Long\") && _this.eventsTableData.columns.hasOwnProperty(propertyName + \"_Double\");\r\n };\r\n this.eventsTable.select(\".tsi-columnHeaders\").html(\"\");\r\n var self = this;\r\n var columnHeaders = this.eventsTable.select(\".tsi-columnHeaders\").selectAll(\".tsi-columnHeader\")\r\n .data(filteredColumnKeys);\r\n var isOffsetDateTimeColumn = function (d) { return d.includes('timestamp') && (d.includes('') || d.includes('-')) && !d.includes('$ts') ? true : null; };\r\n var columnHeadersEntered = columnHeaders.enter()\r\n .append(\"div\")\r\n .classed(\"tsi-columnHeader\", true)\r\n .classed(\"tsi-columnHeaderDisabled\", isOffsetDateTimeColumn)\r\n .each(function (d) {\r\n d3.select(this).append(\"span\")\r\n .classed(\"tsi-columnHeaderName\", true)\r\n .classed(\"moreMarginRight\", function (d) { return self.eventsTableData.columns[d].isTsid; })\r\n .text(longAndDoubleExist(d) ? self.eventsTableData.columns[d].name + \" (\" + self.eventsTableData.columns[d].type + \")\" : self.eventsTableData.columns[d].name);\r\n d3.select(this).append(\"span\").attr(\"class\", \"tsi-columnSortIcon\").classed(\"moreRight\", self.eventsTableData.columns[d].isTsid)\r\n .classed(\"up\", (self.sortColumn == d && self.isAscending))\r\n .classed(\"down\", (self.sortColumn == d && !self.isAscending));\r\n if (self.eventsTableData.columns[d].isTsid) {\r\n var typeIconContainer = d3.select(this).append(\"div\").attr(\"class\", \"tsi-columnTypeIcons\");\r\n typeIconContainer.append(\"span\").attr(\"class\", \"tsi-columnTypeIcon\")\r\n .classed(\"tsid\", true).attr(\"title\", self.getString(\"Time Series ID\"));\r\n typeIconContainer.append(\"span\").attr(\"class\", \"tsi-columnTypeIcon\")\r\n .classed(self.eventsTableData.columns[d].type, true);\r\n }\r\n else {\r\n d3.select(this).append(\"span\").attr(\"class\", \"tsi-columnTypeIcon\")\r\n .classed(self.eventsTableData.columns[d].type, true);\r\n }\r\n var id = JSON.parse(JSON.stringify(d));\r\n d3.select(this).append(\"button\").attr(\"class\", \"tsi-sortColumnButton\")\r\n .attr(\"aria-label\", function (title) { return \"Sort by column \" + title; })\r\n .on(\"click\", function (event, f) {\r\n //set sort column and direction\r\n if (self.sortColumn == d) {\r\n self.isAscending = !self.isAscending;\r\n }\r\n else {\r\n self.isAscending = false;\r\n }\r\n self.sortColumn = d;\r\n self.eventsTableData.sortEvents(d, self.isAscending);\r\n self.buildTable(f);\r\n self.eventsTable.select('.tsi-columnHeaders').node().scrollLeft =\r\n self.eventsTable.select('.tsi-eventRowsContainer').node().scrollLeft;\r\n })\r\n .attr(\"disabled\", isOffsetDateTimeColumn);\r\n });\r\n var widthDictionary = {};\r\n columnHeadersEntered.each(function (d) {\r\n widthDictionary[d] = d3.select(this).node().getBoundingClientRect().width;\r\n });\r\n columnHeaders.exit().remove();\r\n if (focusedHeader !== null) {\r\n var columnHeader = d3.select(columnHeadersEntered.filter(function (d) {\r\n return d === focusedHeader;\r\n }).nodes()[0]);\r\n if (columnHeader) {\r\n columnHeader.select(\"button\").node().focus();\r\n }\r\n }\r\n return widthDictionary;\r\n };\r\n EventsTable.prototype.adjustHeaderWidth = function (widthDictionary) {\r\n //set the width to fit inside the container less the scroll bar\r\n var tableSelection = this.eventsTable.select('.tsi-eventRowsContainer').node();\r\n var scrollBarWidthDiff = tableSelection.getBoundingClientRect().width - tableSelection.clientWidth;\r\n this.eventsTable.select(\".tsi-columnHeaders\").style(\"width\", \"calc(100% - \" + scrollBarWidthDiff + \"px)\");\r\n this.eventsTable.select(\".tsi-columnHeaders\").selectAll(\".tsi-columnHeader\")\r\n .style(\"width\", function (d) {\r\n if (widthDictionary[d])\r\n return (widthDictionary[d] - 17) + \"px\"; //17 pixel difference in element due to padding/border\r\n else {\r\n return d3.select(this).style(\"width\");\r\n }\r\n });\r\n };\r\n EventsTable.prototype.buildTable = function (currentSortedCol) {\r\n var _this = this;\r\n if (currentSortedCol === void 0) { currentSortedCol = null; }\r\n var filteredColumnKeys = this.getFilteredColumnKeys();\r\n var widthDictionary = this.buildHeaders(filteredColumnKeys, currentSortedCol);\r\n this.eventsTable.select(\"table\").html(\"\");\r\n var self = this;\r\n var rowsData = this.eventsTableData.events.slice(0, this.maxVisibleIndex);\r\n var firstRow = this.eventsTable.select(\"table\").append(\"tr\")\r\n .classed(\"tsi-eventRow\", true);\r\n var firstRowCells = firstRow.selectAll(\"td\").data(filteredColumnKeys);\r\n firstRowCells.enter()\r\n .append(\"td\")\r\n .classed(\"tsi-eventCell\", true)\r\n .text(function (d) { return _this.eventsTableData.columns[d].name; });\r\n var rows = this.eventsTable.select(\"table\").selectAll(\"tsi-eventRow\").data(rowsData);\r\n var rowsEntered = rows.enter()\r\n .append(\"tr\")\r\n .classed(\"tsi-eventRow\", true)\r\n .merge(rows)\r\n .each(function (event) {\r\n var visibleCells = filteredColumnKeys.map(function (columnKey) {\r\n if (event.cells[columnKey])\r\n return event.cells[columnKey];\r\n return { key: columnKey, value: null };\r\n });\r\n var valueCells = d3.select(this).selectAll(\"td\").data(visibleCells);\r\n var valueCellsEntered = valueCells.enter()\r\n .append(\"td\")\r\n .classed(\"tsi-eventCell\", true)\r\n .style(\"min-width\", function (d) {\r\n if (widthDictionary[d.key] != null)\r\n return Math.ceil(widthDictionary[d.key]) + \"px\";\r\n else\r\n return \"none\";\r\n })\r\n .text(function (d) {\r\n return self.formatValue(d.value, d.type);\r\n });\r\n valueCells.exit().remove();\r\n });\r\n if (rowsEntered.size() > 0) {\r\n var firstRow = rowsEntered.filter(function (d, i) { return i === 0; });\r\n firstRow.selectAll(\"td\").each(function (d) {\r\n var cellWidth = d3.select(this).node().getBoundingClientRect().width;\r\n widthDictionary[d.key] = (cellWidth > widthDictionary[d.key]) ? cellWidth : widthDictionary[d.key];\r\n });\r\n }\r\n rows.exit().remove();\r\n this.adjustHeaderWidth(widthDictionary);\r\n };\r\n EventsTable.prototype.formatValue = function (value, type) {\r\n if (type === 'Dynamic') {\r\n return JSON.stringify(value);\r\n }\r\n if (type !== 'DateTime' || value === null || value === undefined) {\r\n return value;\r\n }\r\n if (typeof (value) === 'function') {\r\n return value();\r\n }\r\n var timeFormatFunction = Utils.timeFormat(true, true, 0, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale);\r\n var dateValue = new Date(value.split(\"Z\").join(\"\"));\r\n return timeFormatFunction(Utils.offsetUTC(dateValue));\r\n };\r\n return EventsTable;\r\n}(ChartComponent));\r\nexport default EventsTable;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './ModelAutocomplete.scss';\r\nimport 'awesomplete';\r\nimport { Component } from '../../Interfaces/Component';\r\nimport { ChartOptions } from '../../Models/ChartOptions';\r\nimport ServerClient from '../../../ServerClient';\r\nimport Utils from '../../Utils';\r\nvar ModelAutocomplete = /** @class */ (function (_super) {\r\n __extends(ModelAutocomplete, _super);\r\n function ModelAutocomplete(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.chartOptions = new ChartOptions(); // TODO handle onkeyup and oninput in chart options\r\n _this.server = new ServerClient();\r\n return _this;\r\n }\r\n ModelAutocomplete.prototype.render = function (environmentFqdn, getToken, chartOptions) {\r\n var _this = this;\r\n this.chartOptions.setOptions(chartOptions);\r\n var targetElement = d3.select(this.renderTarget);\r\n targetElement.html('');\r\n var wrapper = targetElement.append('div').attr('class', 'tsi-modelAutocompleteWrapper');\r\n _super.prototype.themify.call(this, wrapper, this.chartOptions.theme);\r\n var inputWrapper = wrapper.append(\"div\")\r\n .attr(\"class\", \"tsi-search\");\r\n inputWrapper.append('i').classed('tsi-search-icon', true);\r\n var input = inputWrapper.append(\"input\")\r\n .attr(\"class\", \"tsi-searchInput\")\r\n .attr(\"aria-label\", this.getString(\"Search Time Series Instances\"))\r\n .attr(\"aria-describedby\", \"tsi-search-desc\")\r\n .attr(\"role\", \"combobox\")\r\n .attr(\"aria-owns\", \"tsi-search-results\")\r\n .attr(\"aria-expanded\", \"false\")\r\n .attr(\"aria-haspopup\", \"listbox\")\r\n .attr(\"placeholder\", this.getString(\"Search Time Series Instances\") + '...');\r\n var clear = inputWrapper.append('div').attr('class', 'tsi-clear')\r\n .attr(\"tabindex\", \"0\").attr(\"role\", \"button\")\r\n .attr(\"aria-label\", \"Clear Search\")\r\n .on('click keydown', function (event) {\r\n if (Utils.isKeyDownAndNotEnter(event)) {\r\n return;\r\n }\r\n input.node().value = '';\r\n noSuggest = true;\r\n input.dispatch('input');\r\n self.ap.close();\r\n d3.select(this).classed('tsi-shown', false);\r\n });\r\n inputWrapper.append('span').attr(\"id\", \"tsi-search-desc\").style(\"display\", \"none\").text(this.getString(\"Search suggestion instruction\"));\r\n inputWrapper.append('div').attr(\"class\", \"tsi-search-results-info\").attr(\"aria-live\", \"assertive\");\r\n var Awesomplete = window.Awesomplete;\r\n this.ap = new Awesomplete(input.node(), { minChars: 1 });\r\n var noSuggest = false;\r\n var justAwesompleted = false;\r\n input.node().addEventListener('awesomplete-selectcomplete', function (event) { noSuggest = true; input.dispatch('input'); _this.ap.close(); justAwesompleted = true; });\r\n input.on('keydown', function (event) {\r\n _this.chartOptions.onKeydown(event, _this.ap);\r\n });\r\n input.node().addEventListener('keyup', function (event) {\r\n if (justAwesompleted) {\r\n justAwesompleted = false;\r\n return;\r\n }\r\n var key = event.which || event.keyCode;\r\n if (key === 13) {\r\n noSuggest = true;\r\n input.dispatch('input');\r\n }\r\n });\r\n var searchText;\r\n var self = this;\r\n input.on('input', function (event) {\r\n searchText = this.value;\r\n if (searchText.replace(/ /g, '') && !noSuggest) {\r\n getToken().then(function (token) {\r\n self.server.getTimeseriesInstancesSuggestions(token, environmentFqdn, searchText).then(function (r) {\r\n self.ap.list = r.suggestions.map(function (s) { return s.searchString; });\r\n self.ap.ul.setAttribute(\"role\", \"listbox\");\r\n self.ap.ul.setAttribute(\"tabindex\", \"0\");\r\n self.ap.ul.setAttribute(\"id\", \"tsi-search-results\");\r\n self.ap.ul.querySelectorAll(\"li\").forEach(function (li) { li.setAttribute(\"role\", \"option\"); li.setAttribute(\"tabindex\", \"-1\"); });\r\n var liveAria = document.getElementsByClassName(\"tsi-search-results-info\")[0];\r\n liveAria.innerText = self.ap.suggestions && self.ap.suggestions.length ? self.ap.suggestions.length + self.getString(\"Search suggestions available\") : self.getString(\"No results\");\r\n setTimeout(function () {\r\n liveAria.innerText = '';\r\n }, 1000);\r\n });\r\n });\r\n }\r\n else {\r\n self.ap.close();\r\n }\r\n self.chartOptions.onInput(searchText, noSuggest ? { which: 13 } : event);\r\n noSuggest = false;\r\n clear.classed('tsi-shown', searchText.length);\r\n });\r\n };\r\n return ModelAutocomplete;\r\n}(Component));\r\nexport default ModelAutocomplete;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from 'd3';\r\nimport './ModelSearch.scss';\r\nimport Utils from \"../../Utils\";\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport ServerClient from '../../../ServerClient';\r\nimport 'awesomplete';\r\nimport Hierarchy from '../Hierarchy/Hierarchy';\r\nimport ModelAutocomplete from '../ModelAutocomplete/ModelAutocomplete';\r\nvar ModelSearch = /** @class */ (function (_super) {\r\n __extends(ModelSearch, _super);\r\n function ModelSearch(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.usedContinuationTokens = {};\r\n _this.currentResultIndex = -1;\r\n _this.stripHits = function (str) {\r\n return str.split('<hit>').map(function (h) { return h.split('</hit>').map(function (h2) { return Utils.strip(h2); }).join('</hit>'); }).join('<hit>');\r\n };\r\n _this.server = new ServerClient();\r\n d3.select(\"html\").on(\"click.\" + Utils.guid(), function (event) {\r\n if (_this.clickedInstance && event.target != _this.clickedInstance && _this.contextMenu) {\r\n _this.closeContextMenu();\r\n _this.clickedInstance = null;\r\n }\r\n });\r\n return _this;\r\n }\r\n ModelSearch.prototype.ModelSearch = function () {\r\n };\r\n ModelSearch.prototype.render = function (environmentFqdn, getToken, hierarchyData, chartOptions) {\r\n var _this = this;\r\n this.chartOptions.setOptions(chartOptions);\r\n var self = this;\r\n var continuationToken, searchText;\r\n var targetElement = d3.select(this.renderTarget);\r\n targetElement.html('');\r\n this.wrapper = targetElement.append('div').attr('class', 'tsi-modelSearchWrapper');\r\n _super.prototype.themify.call(this, this.wrapper, this.chartOptions.theme);\r\n var inputWrapper = this.wrapper.append(\"div\")\r\n .attr(\"class\", \"tsi-modelSearchInputWrapper\");\r\n var autocompleteOnInput = function (st, event) {\r\n self.usedContinuationTokens = {};\r\n // blow results away if no text\r\n if (st.length === 0) {\r\n searchText = st;\r\n self.instanceResults.html('');\r\n self.currentResultIndex = -1;\r\n hierarchyElement.node().style.display = 'block';\r\n showMore.node().style.display = 'none';\r\n noResults.style('display', 'none');\r\n }\r\n else if (event.which === 13 || event.keyCode === 13) {\r\n hierarchyElement.node().style.display = 'none';\r\n self.instanceResults.html('');\r\n self.currentResultIndex = -1;\r\n noResults.style('display', 'none');\r\n searchInstances(st);\r\n searchText = st;\r\n }\r\n };\r\n var modelAutocomplete = new ModelAutocomplete(inputWrapper.node());\r\n modelAutocomplete.render(environmentFqdn, getToken, __assign({ onInput: autocompleteOnInput, onKeydown: function (event, ap) { _this.handleKeydown(event, ap); } }, chartOptions));\r\n var ap = modelAutocomplete.ap;\r\n var results = this.wrapper.append('div')\r\n .attr(\"class\", \"tsi-modelSearchResults\").on('scroll', function () {\r\n self.closeContextMenu();\r\n var that = this;\r\n if (that.scrollTop + that.clientHeight + 150 > self.instanceResults.node().clientHeight && searchText.length !== 0) {\r\n searchInstances(searchText, continuationToken);\r\n }\r\n });\r\n var noResults = results.append('div').text(this.getString('No results')).classed('tsi-noResults', true).style('display', 'none');\r\n var instanceResultsWrapper = results.append('div').attr('class', 'tsi-modelSearchInstancesWrapper');\r\n this.instanceResults = instanceResultsWrapper.append('div').attr('class', 'tsi-modelSearchInstances');\r\n var showMore = instanceResultsWrapper.append('div').attr('class', 'tsi-showMore').text(this.getString('Show more') + '...').on('click', function () { return searchInstances(searchText, continuationToken); }).style('display', 'none');\r\n var hierarchyElement = this.wrapper.append('div')\r\n .attr(\"class\", \"tsi-hierarchyWrapper\");\r\n var hierarchy = new Hierarchy(hierarchyElement.node());\r\n hierarchy.render(hierarchyData, __assign(__assign({}, this.chartOptions), { withContextMenu: true }));\r\n var searchInstances = function (searchText, ct) {\r\n if (ct === void 0) { ct = null; }\r\n var self = _this;\r\n if (ct === 'END')\r\n return;\r\n if (ct === null || !self.usedContinuationTokens[ct]) {\r\n self.usedContinuationTokens[ct] = true;\r\n getToken().then(function (token) {\r\n self.server.getTimeseriesInstancesSearch(token, environmentFqdn, searchText, ct).then(function (r) {\r\n var instances;\r\n if (Array.isArray(r.instances)) {\r\n continuationToken = r.instancesContinuationToken;\r\n instances = r.instances;\r\n }\r\n else { //new search api with the support of hierarchy navigation\r\n if (r.instances.hasOwnProperty('hits')) {\r\n instances = r.instances.hits;\r\n continuationToken = r.instances.hits.continuationToken;\r\n }\r\n }\r\n if (!continuationToken)\r\n continuationToken = 'END';\r\n showMore.node().style.display = continuationToken !== 'END' ? 'block' : 'none';\r\n if (instances.length == 0) {\r\n noResults.style('display', 'block');\r\n }\r\n else {\r\n noResults.style('display', 'none');\r\n }\r\n instances.forEach(function (i) {\r\n var handleClick = function (elt, wrapperMousePos, eltMousePos, fromKeyboard) {\r\n if (fromKeyboard === void 0) { fromKeyboard = false; }\r\n self.closeContextMenu();\r\n if (self.clickedInstance != elt) {\r\n self.clickedInstance = elt;\r\n i.type = self.types.filter(function (t) {\r\n return t.name.replace(/\\s/g, '') === (i.highlights.type ? i.highlights.type.split('<hit>').join('').split('</hit>').join('').replace(/\\s/g, '') : i.highlights.typeName.split('<hit>').join('').split('</hit>').join('').replace(/\\s/g, ''));\r\n })[0];\r\n var contextMenuActions = self.chartOptions.onInstanceClick(i);\r\n self.contextMenu = self.wrapper.append('div');\r\n if (!Array.isArray(contextMenuActions)) {\r\n contextMenuActions = [contextMenuActions];\r\n }\r\n var totalActionCount_1 = contextMenuActions.map(function (cma) { return Object.keys(cma).length; }).reduce(function (p, c) { return p + c; }, 0);\r\n var currentActionIndex_1 = 0;\r\n contextMenuActions.forEach(function (cma, cmaGroupIdx) {\r\n Object.keys(cma).forEach(function (k, kIdx, kArray) {\r\n var localActionIndex = currentActionIndex_1;\r\n self.contextMenu.append('div').text(k).on('click', cma[k]).on('keydown', function (event) {\r\n var evt = event;\r\n if (evt.keyCode === 13) {\r\n this.click();\r\n }\r\n if (evt.keyCode === 13 || evt.keyCode === 37) {\r\n self.closeContextMenu();\r\n var results_1 = self.instanceResults.selectAll('.tsi-modelResultWrapper');\r\n results_1.nodes()[self.currentResultIndex].focus();\r\n }\r\n if (evt.keyCode === 40 && (localActionIndex + 1 < totalActionCount_1)) { // down\r\n self.contextMenu.node().children[localActionIndex + 1 + cmaGroupIdx + (kIdx === (kArray.length - 1) ? 1 : 0)].focus();\r\n }\r\n if (evt.keyCode === 38 && localActionIndex > 0) { // up\r\n self.contextMenu.node().children[localActionIndex - 1 + cmaGroupIdx - (kIdx === 0 ? 1 : 0)].focus();\r\n }\r\n }).attr('tabindex', '0');\r\n currentActionIndex_1++;\r\n });\r\n self.contextMenu.append('div').classed('tsi-break', true);\r\n });\r\n self.contextMenu.attr('style', function () { return \"top: \" + (wrapperMousePos - eltMousePos) + \"px\"; });\r\n self.contextMenu.classed('tsi-modelSearchContextMenu', true);\r\n d3.select(elt).classed('tsi-resultSelected', true);\r\n if (self.contextMenu.node().children.length > 0 && fromKeyboard) {\r\n self.contextMenu.node().children[0].focus();\r\n }\r\n }\r\n else {\r\n self.clickedInstance = null;\r\n }\r\n };\r\n _this.instanceResults.append('div').html(self.getInstanceHtml(i)) // known unsafe usage of .html\r\n .on('click', function (event) {\r\n var mouseWrapper = d3.pointer(event, self.wrapper.node());\r\n var mouseElt = d3.pointer(event);\r\n handleClick(this, mouseWrapper[1], mouseElt[1]);\r\n })\r\n .on('keydown', function (event) {\r\n var evt = event;\r\n if (evt.keyCode === 13) {\r\n var resultsNodes = _this.instanceResults.selectAll('.tsi-modelResultWrapper').nodes();\r\n var height = 0;\r\n for (var i = 0; i < _this.currentResultIndex; i++) {\r\n height += resultsNodes[0].clientHeight;\r\n }\r\n handleClick(_this.instanceResults.select('.tsi-modelResultWrapper:focus').node(), height - results.node().scrollTop + 48, 0, true);\r\n }\r\n self.handleKeydown(evt, ap);\r\n }).attr('tabindex', '0').classed('tsi-modelResultWrapper', true);\r\n });\r\n });\r\n });\r\n }\r\n };\r\n getToken().then(function (token) {\r\n _this.server.getTimeseriesHierarchies(token, environmentFqdn).then(function (r) {\r\n _this.hierarchies = r.hierarchies;\r\n });\r\n });\r\n // get types\r\n getToken().then(function (token) {\r\n _this.server.getTimeseriesTypes(token, environmentFqdn).then(function (r) {\r\n _this.types = r.types;\r\n });\r\n });\r\n };\r\n ModelSearch.prototype.handleKeydown = function (event, ap) {\r\n if (!ap.isOpened) {\r\n var results = this.instanceResults.selectAll('.tsi-modelResultWrapper');\r\n if (results.size()) {\r\n if (event.keyCode === 40 && this.currentResultIndex < results.nodes().length - 1) {\r\n this.currentResultIndex++;\r\n results.nodes()[this.currentResultIndex].focus();\r\n }\r\n else if (event.keyCode === 38) {\r\n this.currentResultIndex--;\r\n if (this.currentResultIndex <= -1) {\r\n this.currentResultIndex = -1;\r\n ap.input.focus();\r\n }\r\n else {\r\n results.nodes()[this.currentResultIndex].focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n ModelSearch.prototype.closeContextMenu = function () {\r\n if (this.contextMenu) {\r\n this.contextMenu.remove();\r\n }\r\n d3.selectAll('.tsi-resultSelected').classed('tsi-resultSelected', false);\r\n };\r\n ModelSearch.prototype.getInstanceHtml = function (i) {\r\n var _this = this;\r\n return \"<div class=\\\"tsi-modelResult\\\">\\n <div class=\\\"tsi-modelPK\\\">\\n \" + (i.highlights.name ? this.stripHits(i.highlights.name) : this.stripHits(i.highlights.timeSeriesIds ? i.highlights.timeSeriesIds.join(' ') : i.highlights.timeSeriesId.join(' '))) + \"\\n </div>\\n <div class=\\\"tsi-modelHighlights\\\">\\n \" + this.stripHits(i.highlights.description && i.highlights.description.length ? i.highlights.description : this.getString('No description')) + \"\\n <br/><table>\\n \" + (i.highlights.name ? ('<tr><td>' + this.getString(\"Time Series ID\") + '</td><td>' + this.stripHits(i.highlights.timeSeriesIds ? i.highlights.timeSeriesIds.join(' ') : i.highlights.timeSeriesId.join(' ')) + '</td></tr>') : '') + \" \\n \" + i.highlights.instanceFieldNames.map(function (ifn, idx) {\r\n var val = i.highlights.instanceFieldValues[idx];\r\n if (ifn.indexOf('<hit>') !== -1 || val.indexOf('<hit>') !== -1) {\r\n return val.length === 0 ? '' : '<tr><td>' + _this.stripHits(ifn) + '</td><td>' + _this.stripHits(val) + '</tr>';\r\n }\r\n }).join('') + \"\\n </table>\\n </div>\\n </div>\";\r\n };\r\n return ModelSearch;\r\n}(Component));\r\nexport default ModelSearch;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport Utils from \"../Utils\";\r\nimport { ChartDataOptions } from \"./ChartDataOptions\";\r\nvar TsqExpression = /** @class */ (function (_super) {\r\n __extends(TsqExpression, _super);\r\n function TsqExpression(instanceObject, variableObject, searchSpan, colorOrOptionsObject, alias, contextMenu) {\r\n var _this = this;\r\n // This constructor should be called with the following parameters: \r\n // new TsqExpression(instanceObject, variableObject, searchSpan, optionsObject)\r\n // where the optionsObject should contain properties for color, alias, and contextMenu.\r\n //\r\n // However, to maintain backwards compatibility with older code, the constructor still \r\n // accepts the older set of parameters:\r\n // new TsqExpression(instanceObject, variableObject, searchSpan, color, alias, contextMenu)\r\n // Here we differentiate between both and call the parent class's constructor as appropriate.\r\n var optionsObject = (typeof (colorOrOptionsObject) === 'object' && !!colorOrOptionsObject)\r\n ? __assign(__assign({}, colorOrOptionsObject), { searchSpan: searchSpan, measureTypes: Object.keys(variableObject) }) : {\r\n color: colorOrOptionsObject,\r\n searchSpan: searchSpan,\r\n measureTypes: Object.keys(variableObject),\r\n alias: alias,\r\n contextMenu: contextMenu\r\n };\r\n _this = _super.call(this, optionsObject) || this;\r\n _this.instanceObject = instanceObject;\r\n _this.variableObject = variableObject;\r\n return _this;\r\n }\r\n TsqExpression.prototype.toTsq = function (roundFromTo, getEvents, getSeries) {\r\n if (roundFromTo === void 0) { roundFromTo = false; }\r\n if (getEvents === void 0) { getEvents = false; }\r\n if (getSeries === void 0) { getSeries = false; }\r\n var tsq = {};\r\n var shiftMillis = Utils.parseShift(this.timeShift, this.startAt, this.searchSpan);\r\n var fromMillis = this.searchSpan.from.valueOf() + shiftMillis;\r\n var toMillis = this.searchSpan.to.valueOf() + shiftMillis;\r\n if (roundFromTo) {\r\n var bucketSizeInMillis = Utils.parseTimeInput(this.searchSpan.bucketSize);\r\n var roundedFromMillis = Math.floor((fromMillis + 62135596800000) / (bucketSizeInMillis)) * (bucketSizeInMillis) - 62135596800000;\r\n var roundedToMillis = Math.ceil((toMillis + 62135596800000) / (bucketSizeInMillis)) * (bucketSizeInMillis) - 62135596800000;\r\n fromMillis = roundedFromMillis;\r\n toMillis = roundedToMillis;\r\n }\r\n tsq['searchSpan'] = { from: (new Date(fromMillis)).toISOString(), to: (new Date(toMillis)).toISOString() };\r\n tsq['timeSeriesId'] = this.instanceObject.timeSeriesId;\r\n if (getEvents) {\r\n return { getEvents: tsq };\r\n }\r\n else if (getSeries) {\r\n tsq['inlineVariables'] = __assign({}, this.variableObject);\r\n tsq['projectedVariables'] = Object.keys(this.variableObject);\r\n return { getSeries: tsq };\r\n }\r\n else {\r\n tsq['interval'] = Utils.bucketSizeToTsqInterval(this.searchSpan.bucketSize);\r\n tsq['inlineVariables'] = __assign({}, this.variableObject);\r\n tsq['projectedVariables'] = Object.keys(this.variableObject);\r\n return { aggregateSeries: tsq };\r\n }\r\n };\r\n // This method will create an API query payload for the variable statistics of the first inline variable\r\n // of this object, for numeric dataTypes. Categorical types work as expected.\r\n TsqExpression.prototype.toStatsTsq = function (fromMillis, toMillis) {\r\n var tsq = this.toTsq();\r\n var shiftMillis = Utils.parseShift(this.timeShift);\r\n fromMillis += shiftMillis;\r\n toMillis += shiftMillis;\r\n tsq.aggregateSeries['searchSpan'] = { from: (new Date(fromMillis)).toISOString(), to: (new Date(toMillis)).toISOString() };\r\n tsq.aggregateSeries['interval'] = 'P1000Y';\r\n if (this.dataType === 'numeric') {\r\n var inlineVariables_1 = { min: {}, max: {}, avg: {}, stDev: {} };\r\n var firstVariable_1 = tsq.aggregateSeries['inlineVariables'][Object.keys(tsq.aggregateSeries['inlineVariables'])[0]];\r\n Object.keys(inlineVariables_1).forEach(function (k) {\r\n inlineVariables_1[k] = JSON.parse(JSON.stringify(firstVariable_1));\r\n inlineVariables_1[k].aggregation.tsx = k + \"($value)\";\r\n delete inlineVariables_1[k]['interpolation'];\r\n });\r\n tsq.aggregateSeries['inlineVariables'] = inlineVariables_1;\r\n tsq.aggregateSeries['projectedVariables'] = Object.keys(inlineVariables_1);\r\n }\r\n return tsq;\r\n };\r\n return TsqExpression;\r\n}(ChartDataOptions));\r\nexport default TsqExpression;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport Pikaday from '../../../packages/pikaday/pikaday';\r\nimport '../../../packages/pikaday/css/pikaday.css';\r\nimport moment from 'moment';\r\nimport './SingleDateTimePicker.scss';\r\nimport { ChartComponent } from '../../Interfaces/ChartComponent';\r\nimport Utils from \"../../Utils\";\r\nvar SingleDateTimePicker = /** @class */ (function (_super) {\r\n __extends(SingleDateTimePicker, _super);\r\n function SingleDateTimePicker(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.isValid = true;\r\n return _this;\r\n }\r\n SingleDateTimePicker.prototype.getMillis = function () {\r\n return this.millis;\r\n };\r\n SingleDateTimePicker.prototype.render = function (chartOptions, minMillis, maxMillis, millis, onSet) {\r\n var _this = this;\r\n if (chartOptions === void 0) { chartOptions = {}; }\r\n if (millis === void 0) { millis = null; }\r\n if (onSet === void 0) { onSet = null; }\r\n this.minMillis = minMillis;\r\n this.maxMillis = maxMillis;\r\n if (chartOptions.offset && (typeof chartOptions.offset == \"string\")) {\r\n [];\r\n this.offsetName = chartOptions.offset;\r\n }\r\n if (millis === null) {\r\n millis = this.maxMillis;\r\n }\r\n this.chartOptions.setOptions(chartOptions);\r\n moment.locale(this.chartOptions.dateLocale);\r\n this.millis = millis;\r\n this.onSet = onSet;\r\n this.targetElement = d3.select(this.renderTarget)\r\n .classed(\"tsi-singleDateTimePicker\", true);\r\n this.targetElement.html('');\r\n _super.prototype.themify.call(this, this.targetElement, this.chartOptions.theme);\r\n this.targetElement.on('keydown', function (event) {\r\n if (event.keyCode <= 40 && event.keyCode >= 37) { //arrow key\r\n event.stopPropagation();\r\n }\r\n if (event.keyCode === 27 && _this.chartOptions.dTPIsModal) { //escape\r\n _this.onSet();\r\n }\r\n });\r\n this.timeControls = this.targetElement.append(\"div\").classed(\"tsi-timeControlsContainer\", true);\r\n this.calendar = this.targetElement.append(\"div\").classed(\"tsi-calendarPicker\", true);\r\n var saveButtonContainer = this.targetElement.append(\"div\").classed(\"tsi-saveButtonContainer\", true);\r\n var self = this;\r\n this.saveButton = saveButtonContainer.append(\"button\").classed(\"tsi-saveButton\", true).text(this.getString(\"Save\"))\r\n .on(\"click\", function () {\r\n if (_this.isValid) {\r\n self.onSet(_this.millis);\r\n }\r\n })\r\n .on('keydown', function (event) {\r\n if (event.keyCode === 9 && !event.shiftKey && _this.chartOptions.dTPIsModal) { // tab\r\n _this.timeInput.node().focus();\r\n event.preventDefault();\r\n }\r\n });\r\n this.targetElement.append(\"div\").classed(\"tsi-errorMessageContainer\", true);\r\n this.createCalendar();\r\n this.calendarPicker.draw();\r\n this.createTimePicker();\r\n this.updateDisplayedDateTime();\r\n this.date = new Date(this.millis);\r\n this.calendarPicker.draw();\r\n if (this.chartOptions.dTPIsModal) {\r\n this.timeInput.node().focus();\r\n }\r\n return;\r\n };\r\n //zero out everything but year, month and day\r\n SingleDateTimePicker.prototype.roundDay = function (d) {\r\n var offsetDate = Utils.offsetFromUTC(d, this.chartOptions.offset);\r\n return new Date(offsetDate.getUTCFullYear(), offsetDate.getUTCMonth(), offsetDate.getUTCDate());\r\n };\r\n SingleDateTimePicker.prototype.setSelectedDate = function (d) {\r\n this.calendarPicker.setDate(d, true);\r\n this.setDate(d);\r\n this.timeInput.node().value = this.createTimeString(Utils.offsetFromUTC(new Date(this.millis)));\r\n };\r\n SingleDateTimePicker.prototype.createCalendar = function () {\r\n var _this = this;\r\n var i18nOptions = {\r\n previousMonth: this.getString('Previous Month'),\r\n nextMonth: this.getString('Next Month'),\r\n months: moment.localeData().months(),\r\n weekdays: moment.localeData().weekdays(),\r\n weekdaysShort: moment.localeData().weekdaysMin()\r\n };\r\n //@ts-ignore\r\n this.calendarPicker = new Pikaday({\r\n bound: false,\r\n container: this.calendar.node(),\r\n field: this.calendar.node(),\r\n i18n: i18nOptions,\r\n numberOfMonths: 1,\r\n onSelect: function (d) {\r\n _this.setSelectedDate(d);\r\n _this.calendarPicker.draw();\r\n _this.checkDateTimeValidity();\r\n },\r\n onDraw: function (d) {\r\n var self = _this;\r\n _this.calendar.select(\".pika-single\").selectAll('button').attr('tabindex', -1);\r\n },\r\n minDate: this.convertToLocal(Utils.offsetFromUTC(new Date(this.minMillis), this.chartOptions.offset)),\r\n maxDate: this.convertToLocal(Utils.offsetFromUTC(new Date(this.maxMillis), this.chartOptions.offset)),\r\n defaultDate: this.convertToLocal(Utils.offsetFromUTC(new Date(this.millis), this.chartOptions.offset))\r\n });\r\n };\r\n SingleDateTimePicker.prototype.setDate = function (d) {\r\n var date = Utils.offsetFromUTC(new Date(this.millis), this.chartOptions.offset);\r\n date.setUTCFullYear(d.getFullYear());\r\n date.setUTCMonth(d.getMonth());\r\n date.setUTCDate(d.getDate());\r\n this.setMillis(date.valueOf(), true);\r\n };\r\n SingleDateTimePicker.prototype.setIsValid = function (isValid) {\r\n this.isValid = isValid;\r\n };\r\n SingleDateTimePicker.prototype.setMillis = function (millis, shouldOffset) {\r\n if (shouldOffset === void 0) { shouldOffset = true; }\r\n var adjustedMillis = millis - (shouldOffset ? Utils.getOffsetMinutes(this.chartOptions.offset, millis) * 60 * 1000 : 0);\r\n this.millis = adjustedMillis;\r\n };\r\n SingleDateTimePicker.prototype.displayErrors = function (rangeErrors) {\r\n this.targetElement.select(\".tsi-errorMessageContainer\").selectAll(\".tsi-errorMessage\").remove();\r\n if (rangeErrors.length != 0) {\r\n this.targetElement.select(\".tsi-errorMessageContainer\").selectAll(\".tsi-errorMessages\")\r\n .data(rangeErrors)\r\n .enter()\r\n .append(\"div\")\r\n .classed(\"tsi-errorMessage\", true)\r\n .text(function (d) { return d; });\r\n }\r\n };\r\n SingleDateTimePicker.prototype.checkDateTimeValidity = function () {\r\n var parsedMillis = this.parseUserInputDateTime();\r\n var errorCheck = this.dateTimeIsValid(parsedMillis);\r\n this.displayErrors(errorCheck.errors);\r\n this.setIsValid(errorCheck.rangeIsValid);\r\n };\r\n SingleDateTimePicker.prototype.dateTimeIsValid = function (prospectiveMillis) {\r\n var accumulatedErrors = [];\r\n if (isNaN(prospectiveMillis)) {\r\n accumulatedErrors.push('*time is invalid');\r\n }\r\n else {\r\n var firstDateTime = Utils.offsetFromUTC(new Date(this.minMillis), this.chartOptions.offset);\r\n var lastDateTime = Utils.offsetFromUTC(new Date(this.maxMillis), this.chartOptions.offset);\r\n if (prospectiveMillis < this.minMillis) {\r\n accumulatedErrors.push(\"*date/time is before first possible date and time (\" + this.getTimeFormat()(firstDateTime) + \")\");\r\n }\r\n if (prospectiveMillis > this.maxMillis) {\r\n accumulatedErrors.push(\"*date/time is after last possible date and time (\" + this.getTimeFormat()(lastDateTime) + \")\");\r\n }\r\n }\r\n return {\r\n rangeIsValid: (accumulatedErrors.length == 0),\r\n errors: accumulatedErrors\r\n };\r\n };\r\n SingleDateTimePicker.prototype.getTimeFormat = function () {\r\n return Utils.timeFormat(true, true, this.chartOptions.offset, true, 0, null, this.chartOptions.dateLocale);\r\n };\r\n SingleDateTimePicker.prototype.parseUserInputDateTime = function () {\r\n return Utils.parseUserInputDateTime(this.timeInput.node().value, this.chartOptions.offset);\r\n };\r\n SingleDateTimePicker.prototype.convertToCalendarDate = function (millis) {\r\n return this.roundDay(Utils.adjustDateFromTimezoneOffset(Utils.offsetFromUTC(new Date(millis), this.chartOptions.offset)));\r\n };\r\n SingleDateTimePicker.prototype.updateDisplayedDateTime = function (fromInput) {\r\n if (fromInput === void 0) { fromInput = false; }\r\n var selectedDate = new Date(this.millis);\r\n this.calendarPicker.setDate(this.convertToCalendarDate(this.millis), fromInput);\r\n if (!fromInput) {\r\n this.timeInput.node().value = this.createTimeString(Utils.offsetFromUTC(selectedDate));\r\n }\r\n };\r\n SingleDateTimePicker.prototype.createTimeString = function (currDate) {\r\n var offsetDate = Utils.offsetFromUTC(currDate, this.chartOptions.offset);\r\n return this.getTimeFormat()(currDate);\r\n };\r\n // convert to representation such that: convertedDate.toString() === originalDate.toISOString()\r\n SingleDateTimePicker.prototype.convertToLocal = function (date) {\r\n return new Date(date.valueOf() + date.getTimezoneOffset() * 60 * 1000);\r\n };\r\n SingleDateTimePicker.prototype.createTimePicker = function () {\r\n var _this = this;\r\n var self = this;\r\n var timeLabel = this.timeControls.append(\"h4\").classed(\"tsi-timeLabel\", true).text(this.getString('Date/Time'));\r\n this.timeInput = this.timeControls.append('input').attr('class', 'tsi-dateTimeInput tsi-input')\r\n .on('input', function () {\r\n _this.checkDateTimeValidity();\r\n if (_this.isValid) {\r\n var parsedMillis = _this.parseUserInputDateTime();\r\n _this.setMillis(parsedMillis, false);\r\n _this.updateDisplayedDateTime(true);\r\n }\r\n })\r\n .on('keydown', function (event) {\r\n if (event.keyCode === 9 && event.shiftKey && _this.chartOptions.dTPIsModal) { // tab\r\n _this.saveButton.node().focus();\r\n event.preventDefault();\r\n }\r\n });\r\n };\r\n return SingleDateTimePicker;\r\n}(ChartComponent));\r\nexport default SingleDateTimePicker;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './DateTimeButtonSingle.scss';\r\nimport { DateTimeButton } from '../../Interfaces/DateTimeButton';\r\nimport SingleDateTimePicker from '../SingleDateTimePicker/SingleDateTimePicker';\r\nvar DateTimeButtonSingle = /** @class */ (function (_super) {\r\n __extends(DateTimeButtonSingle, _super);\r\n function DateTimeButtonSingle(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.sDTPOnSet = function (millis) {\r\n if (millis === void 0) { millis = null; }\r\n if (millis !== null) {\r\n _this.dateTimeButton.text(_this.buttonDateTimeFormat(millis));\r\n _this.selectedMillis = millis;\r\n _this.onSet(millis);\r\n }\r\n _this.closeSDTP();\r\n };\r\n return _this;\r\n }\r\n DateTimeButtonSingle.prototype.closeSDTP = function () {\r\n this.dateTimePickerContainer.style(\"display\", \"none\");\r\n this.dateTimeButton.node().focus();\r\n };\r\n DateTimeButtonSingle.prototype.render = function (chartOptions, minMillis, maxMillis, selectedMillis, onSet) {\r\n var _this = this;\r\n if (chartOptions === void 0) { chartOptions = {}; }\r\n if (selectedMillis === void 0) { selectedMillis = null; }\r\n if (onSet === void 0) { onSet = null; }\r\n _super.prototype.render.call(this, chartOptions, minMillis, maxMillis, onSet);\r\n this.selectedMillis = selectedMillis;\r\n d3.select(this.renderTarget).classed('tsi-dateTimeContainerSingle', true);\r\n this.dateTimeButton.text(this.buttonDateTimeFormat(selectedMillis));\r\n if (!this.dateTimePicker) {\r\n this.dateTimePicker = new SingleDateTimePicker(this.dateTimePickerContainer.node());\r\n }\r\n var targetElement = d3.select(this.renderTarget);\r\n var dateTimeTextChildren = (targetElement.select(\".tsi-dateTimePickerContainer\")).selectAll(\"*\");\r\n this.dateTimeButton.on(\"click\", function () {\r\n _this.chartOptions.dTPIsModal = true;\r\n _this.dateTimePickerContainer.style(\"display\", \"block\");\r\n _this.dateTimePicker.render(_this.chartOptions, _this.minMillis, _this.maxMillis, _this.selectedMillis, _this.sDTPOnSet);\r\n });\r\n };\r\n return DateTimeButtonSingle;\r\n}(DateTimeButton));\r\nexport default DateTimeButtonSingle;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './PlaybackControls.scss';\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport Utils from '../../Utils';\r\nimport { TemporalXAxisComponent } from '../../Interfaces/TemporalXAxisComponent';\r\nvar PlaybackControls = /** @class */ (function (_super) {\r\n __extends(PlaybackControls, _super);\r\n function PlaybackControls(renderTarget, initialTimeStamp) {\r\n if (initialTimeStamp === void 0) { initialTimeStamp = null; }\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.handleRadius = 7;\r\n _this.minimumPlaybackInterval = 1000; // 1 second\r\n _this.playbackInterval = null;\r\n _this.selectedTimeStamp = initialTimeStamp;\r\n return _this;\r\n }\r\n Object.defineProperty(PlaybackControls.prototype, \"currentTimeStamp\", {\r\n get: function () {\r\n return this.selectedTimeStamp;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PlaybackControls.prototype.render = function (start, end, onSelectTimeStamp, options, playbackSettings) {\r\n var _this = this;\r\n this.end = end;\r\n this.selectTimeStampCallback = onSelectTimeStamp;\r\n this.chartOptions.setOptions(options);\r\n this.playbackSettings = playbackSettings;\r\n this.timeFormatter = Utils.timeFormat(true, false, this.chartOptions.offset, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale);\r\n var targetElement = d3.select(this.renderTarget);\r\n _super.prototype.themify.call(this, targetElement, this.chartOptions.theme);\r\n targetElement.html('');\r\n var sliderContainer = targetElement.append('div')\r\n .classed('tsi-playback-timeline', true);\r\n var sliderContainerWidth = sliderContainer.node().clientWidth;\r\n var sliderContainerHeight = sliderContainer.node().clientHeight;\r\n this.trackXOffset = this.handleRadius + 8;\r\n this.trackYOffset = Math.floor(sliderContainerHeight / 2);\r\n this.trackWidth = sliderContainerWidth - (2 * this.trackXOffset);\r\n this.timeStampToPosition = d3.scaleTime()\r\n .domain([start, end])\r\n .range([0, this.trackWidth]);\r\n var timeAxisContainer = sliderContainer.append('div')\r\n .classed('tsi-playback-axis', true)\r\n .style('top', this.trackYOffset + 6 + \"px\")\r\n .style('left', this.trackXOffset + \"px\")\r\n .style('width', this.trackWidth + \"px\");\r\n var timeAxis = new TimeAxis(timeAxisContainer.node());\r\n timeAxis.render(this.chartOptions, this.timeStampToPosition);\r\n var gWrapper = sliderContainer\r\n .append('svg')\r\n .append('g');\r\n sliderContainer.append('div')\r\n .classed('tsi-playback-input', true)\r\n .style('left', this.trackXOffset + \"px\")\r\n .style('width', this.trackWidth + \"px\");\r\n this.track = gWrapper\r\n .append('g')\r\n .classed('tsi-playback-track', true);\r\n gWrapper.call(d3.drag()\r\n .container(sliderContainer.select('.tsi-playback-input').node())\r\n .on('start.interrupt', function () { gWrapper.interrupt(); })\r\n .on('start drag', function (event) {\r\n _this.onDrag(event.x);\r\n })\r\n .on('end', function () {\r\n _this.onDragEnd();\r\n }));\r\n this.track.append('line')\r\n .classed('tsi-left-of-handle', true)\r\n .attr('y1', this.trackYOffset)\r\n .attr('y2', this.trackYOffset);\r\n this.track.append('line')\r\n .classed('tsi-right-of-handle', true)\r\n .attr('y1', this.trackYOffset)\r\n .attr('y2', this.trackYOffset);\r\n this.handleElement = gWrapper.append('circle')\r\n .classed('tsi-playback-handle', true)\r\n .attr('r', this.handleRadius)\r\n .attr('cy', this.trackYOffset);\r\n this.controlsContainer = targetElement.append('div')\r\n .classed('tsi-playback-buttons', true);\r\n this.playButton = this.controlsContainer.append('button')\r\n .classed('tsi-play-button', this.playbackInterval === null)\r\n .classed('tsi-pause-button', this.playbackInterval !== null)\r\n .on('click', function () {\r\n if (_this.playbackInterval === null) {\r\n _this.play();\r\n }\r\n else {\r\n _this.pause();\r\n }\r\n });\r\n this.controlsContainer.append('span')\r\n .classed('tsi-playback-timestamp', true)\r\n .style('margin', \"0 \" + this.trackXOffset + \"px\");\r\n this.selectedTimeStamp = this.selectedTimeStamp || start;\r\n var handlePosition = this.timeStampToPosition(this.selectedTimeStamp);\r\n this.updateSelection(handlePosition, this.selectedTimeStamp);\r\n };\r\n PlaybackControls.prototype.play = function () {\r\n if (this.playbackInterval === null) {\r\n // Default to an interval if one is not provided. Also, the interval should\r\n // not be lower than the minimum playback interval.\r\n var playbackIntervalMs = Math.max(this.playbackSettings.intervalMillis || this.minimumPlaybackInterval, this.minimumPlaybackInterval);\r\n this.next();\r\n this.playbackInterval = window.setInterval(this.next.bind(this), playbackIntervalMs);\r\n this.playButton\r\n .classed('tsi-play-button', false)\r\n .classed('tsi-pause-button', true);\r\n }\r\n };\r\n PlaybackControls.prototype.pause = function () {\r\n // Pause only if component is in 'play' mode (i.e. an interval has ben set)\r\n // otherwise, do nothing.\r\n if (this.playbackInterval !== null) {\r\n window.clearInterval(this.playbackInterval);\r\n this.playbackInterval = null;\r\n this.playButton\r\n .classed('tsi-play-button', true)\r\n .classed('tsi-pause-button', false);\r\n }\r\n };\r\n PlaybackControls.prototype.next = function () {\r\n // If we've reached the end of the available time stamps, do nothing until \r\n // the end moves forward.\r\n if (this.selectedTimeStamp.valueOf() === this.end.valueOf()) {\r\n return;\r\n }\r\n var newValue = this.selectedTimeStamp.valueOf() + this.playbackSettings.stepSizeMillis;\r\n newValue = Math.min(newValue, this.end.valueOf());\r\n this.selectedTimeStamp = new Date(newValue);\r\n var handlePosition = this.timeStampToPosition(this.selectedTimeStamp);\r\n this.updateSelection(handlePosition, this.selectedTimeStamp);\r\n this.selectTimeStampCallback(this.selectedTimeStamp);\r\n };\r\n PlaybackControls.prototype.clamp = function (number, min, max) {\r\n var clamped = Math.max(number, min);\r\n return Math.min(clamped, max);\r\n };\r\n PlaybackControls.prototype.onDrag = function (positionX) {\r\n this.wasPlayingWhenDragStarted = this.wasPlayingWhenDragStarted ||\r\n (this.playbackInterval !== null);\r\n this.pause();\r\n var handlePosition = this.clamp(positionX, 0, this.trackWidth);\r\n this.selectedTimeStamp = this.timeStampToPosition.invert(handlePosition);\r\n this.updateSelection(handlePosition, this.selectedTimeStamp);\r\n };\r\n PlaybackControls.prototype.onDragEnd = function () {\r\n this.selectTimeStampCallback(this.selectedTimeStamp);\r\n if (this.wasPlayingWhenDragStarted) {\r\n this.play();\r\n this.wasPlayingWhenDragStarted = false;\r\n }\r\n };\r\n PlaybackControls.prototype.updateSelection = function (handlePositionX, timeStamp) {\r\n this.track.select('.tsi-left-of-handle')\r\n .attr('x1', this.trackXOffset)\r\n .attr('x2', this.trackXOffset + handlePositionX);\r\n this.track.select('.tsi-right-of-handle')\r\n .attr('x1', this.trackXOffset + handlePositionX)\r\n .attr('x2', this.trackXOffset + this.trackWidth);\r\n this.handleElement\r\n .attr('cx', this.trackXOffset + handlePositionX);\r\n this.controlsContainer\r\n .select('.tsi-playback-timestamp')\r\n .text(this.timeFormatter(timeStamp));\r\n };\r\n return PlaybackControls;\r\n}(Component));\r\nvar TimeAxis = /** @class */ (function (_super) {\r\n __extends(TimeAxis, _super);\r\n function TimeAxis(renderTarget) {\r\n return _super.call(this, renderTarget) || this;\r\n }\r\n TimeAxis.prototype.render = function (options, timeScale) {\r\n this.chartOptions.setOptions(options);\r\n this.x = timeScale;\r\n if (this.chartOptions.xAxisHidden) {\r\n return;\r\n }\r\n var targetElement = d3.select(this.renderTarget);\r\n targetElement.html('');\r\n this.chartWidth = targetElement.node().clientWidth;\r\n this.xAxis = targetElement.append('svg')\r\n .classed('xAxis', true)\r\n .data([this.x]);\r\n this.drawXAxis(0, true, true);\r\n };\r\n return TimeAxis;\r\n}(TemporalXAxisComponent));\r\nexport default PlaybackControls;\r\n","import Utils from '../Utils';\r\nvar TsqRange = /** @class */ (function () {\r\n function TsqRange(from, to) {\r\n this.from = from;\r\n this.to = to;\r\n }\r\n TsqRange.prototype.setNeatBucketSizeByNumerOfBuckets = function (targetNumberOfBuckets) {\r\n var timeRangeMs = Math.max(this.to.valueOf() - this.from.valueOf(), 1);\r\n var roughBucketsize = Math.ceil(timeRangeMs / targetNumberOfBuckets);\r\n this.setNeatBucketSizeByRoughBucketSize(roughBucketsize);\r\n };\r\n TsqRange.prototype.setNeatBucketSizeByRoughBucketSize = function (roughBucketSizeMillis) {\r\n var neatIntervalIndex = 1;\r\n for (; neatIntervalIndex < TsqRange.NeatIntervalsMs.length; neatIntervalIndex++) {\r\n if (TsqRange.NeatIntervalsMs[neatIntervalIndex] > roughBucketSizeMillis) {\r\n break;\r\n }\r\n }\r\n this.bucketSizeMs = TsqRange.NeatIntervalsMs[neatIntervalIndex - 1];\r\n };\r\n TsqRange.prototype.alignWithServerEpoch = function () {\r\n var fromMs = Utils.adjustStartMillisToAbsoluteZero(this.from.valueOf(), this.bucketSizeMs);\r\n var toMs = Utils.roundToMillis(this.to.valueOf(), this.bucketSizeMs);\r\n this.from = new Date(fromMs);\r\n this.to = new Date(toMs);\r\n };\r\n Object.defineProperty(TsqRange.prototype, \"fromMillis\", {\r\n get: function () {\r\n return this.from.valueOf();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TsqRange.prototype, \"toMillis\", {\r\n get: function () {\r\n return this.to.valueOf();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TsqRange.prototype, \"bucketSizeMillis\", {\r\n get: function () {\r\n return this.bucketSizeMs;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TsqRange.prototype, \"bucketSizeStr\", {\r\n get: function () {\r\n var bucketSize = TsqRange.millisToLargestUnit(this.bucketSizeMs);\r\n return \"\" + bucketSize.value + bucketSize.unit;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TsqRange.millisToLargestUnit = function (interval) {\r\n var value, unit;\r\n if (interval < 1000) {\r\n value = interval;\r\n unit = 'ms';\r\n }\r\n else if (interval < 1000 * 60) {\r\n value = Math.ceil(interval / 1000);\r\n unit = 's';\r\n }\r\n else if (interval < 1000 * 60 * 60) {\r\n value = Math.ceil(interval / (1000 * 60));\r\n unit = 'm';\r\n }\r\n else if (interval < 1000 * 60 * 60 * 24) {\r\n value = Math.ceil(interval / (1000 * 60 * 60));\r\n unit = 'h';\r\n }\r\n else {\r\n value = Math.ceil(interval / (1000 * 60 * 60 * 24));\r\n unit = 'd';\r\n }\r\n return { value: value, unit: unit };\r\n };\r\n // List of interval values that would divide a time range neatly\r\n TsqRange.NeatIntervals = [\r\n '1ms', '2ms', '4ms', '5ms', '8ms', '10ms', '20ms', '25ms', '40ms', '50ms', '100ms', '125ms', '200ms', '250ms', '500ms',\r\n '1s', '2s', '3s', '4s', '5s', '6s', '10s', '12s', '15s', '20s', '30s',\r\n '1m', '2m', '3m', '4m', '5m', '6m', '10m', '12m', '15m', '20m', '30m',\r\n '1h', '2h', '3h', '4h', '6h', '8h', '12h',\r\n '1d', '2d', '3d', '4d', '5d', '6d', '7d'\r\n ];\r\n TsqRange.NeatIntervalsMs = [\r\n 1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500,\r\n 1000, 2000, 3000, 4000, 5000, 6000, 10000, 12000, 15000, 20000, 30000,\r\n 60000, 120000, 180000, 240000, 300000, 360000, 600000, 720000, 900000, 1200000, 1800000,\r\n 3600000, 7200000, 10800000, 14400000, 21600000, 28800000, 43200000,\r\n 86400000, 172800000, 259200000, 345600000, 432000000, 518400000, 604800000\r\n ];\r\n return TsqRange;\r\n}());\r\nexport { TsqRange };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport * as d3 from 'd3';\r\nimport { Component } from \"./../../Interfaces/Component\";\r\nimport PlaybackControls from '../PlaybackControls';\r\nimport ServerClient from '../../../ServerClient';\r\nimport { TsqRange } from '../../Models/TsqRange';\r\nvar HistoryPlayback = /** @class */ (function (_super) {\r\n __extends(HistoryPlayback, _super);\r\n function HistoryPlayback(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.numberOfBuckets = 1000;\r\n _this.defaultPlaybackRate = 3000; // 3 seconds\r\n _this.fetchAvailabilityFrequency = 30000; // 30 seconds\r\n _this.playbackSliderHeight = 88;\r\n _this.previewApiFlag = '?api-version=2018-11-01-preview';\r\n _this.serverClient = new ServerClient();\r\n _this.currentCancelTrigger = null;\r\n return _this;\r\n }\r\n HistoryPlayback.prototype.onGraphicLoaded = function () { };\r\n HistoryPlayback.prototype.renderBase = function (environmentFqdn, getToken, data, chartOptions) {\r\n var _this = this;\r\n this.environmentFqdn = environmentFqdn;\r\n this.getAuthToken = getToken;\r\n this.tsqExpressions = data;\r\n this.chartOptions.setOptions(chartOptions);\r\n this.playbackRate = this.chartOptions.updateInterval || this.defaultPlaybackRate;\r\n this.getAuthToken().then(function (authToken) {\r\n _this.serverClient.getAvailability(authToken, _this.environmentFqdn, _this.previewApiFlag)\r\n .then(function (availabilityResponse) {\r\n if (!_this.availabilityInterval) {\r\n _this.availabilityInterval = window.setInterval(_this.pollAvailability.bind(_this), _this.fetchAvailabilityFrequency);\r\n }\r\n var _a = _this.parseAvailabilityResponse(availabilityResponse), from = _a.from, to = _a.to;\r\n _this.updateAvailability(from, to);\r\n _this.targetElement = d3.select(_this.renderTarget);\r\n _this.targetElement.html('');\r\n _this.targetElement.classed('tsi-process-graphic-target', true);\r\n _super.prototype.themify.call(_this, _this.targetElement, _this.chartOptions.theme);\r\n _this.componentContainer = _this.targetElement\r\n .append('div')\r\n .classed('tsi-process-graphic-container', true);\r\n _this.component = _this.componentContainer\r\n .append('div')\r\n .classed('tsi-process-graphic', true);\r\n _this.playbackControlsContainer = _this.targetElement\r\n .append('div')\r\n .classed('tsi-playback-controls-container', true);\r\n _this.loadResources().then(function () {\r\n var initialTimeStamp = _this.chartOptions.initialValue instanceof Date ? _this.chartOptions.initialValue : from;\r\n _this.playbackControls = new PlaybackControls(_this.playbackControlsContainer.node(), initialTimeStamp);\r\n _this.onSelecTimestamp(initialTimeStamp);\r\n _this.draw();\r\n if (initialTimeStamp) {\r\n _this.playbackControls.play();\r\n }\r\n window.addEventListener('resize', function () {\r\n _this.draw();\r\n });\r\n });\r\n })\r\n .catch(function (reason) {\r\n console.error(\"Failed while fetching data availability: \" + reason);\r\n });\r\n })\r\n .catch(function (reason) {\r\n console.error(\"Failed to acquire authentication token: \" + reason);\r\n });\r\n };\r\n HistoryPlayback.prototype.pauseAvailabilityUpdates = function () {\r\n if (this.availabilityInterval) {\r\n window.clearInterval(this.availabilityInterval);\r\n }\r\n };\r\n HistoryPlayback.prototype.pollAvailability = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.getAuthToken().then(function (authToken) {\r\n return _this.serverClient.getAvailability(authToken, _this.environmentFqdn, _this.previewApiFlag)\r\n .then(function (availabilityResponse) {\r\n var _a = _this.parseAvailabilityResponse(availabilityResponse), from = _a.from, to = _a.to;\r\n if (from.valueOf() !== _this.availability.fromMillis ||\r\n to.valueOf() !== _this.availability.toMillis) {\r\n _this.updateAvailability(from, to);\r\n _this.playbackControls.render(_this.availability.from, _this.availability.to, _this.onSelecTimestamp.bind(_this), _this.chartOptions, { intervalMillis: _this.playbackRate, stepSizeMillis: _this.availability.bucketSizeMillis });\r\n return true;\r\n }\r\n return false;\r\n })\r\n .catch(function (reason) {\r\n console.error(\"Failed to update data availability: \" + reason);\r\n return null;\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n HistoryPlayback.prototype.onSelecTimestamp = function (timeStamp) {\r\n var _this = this;\r\n var queryWindow = this.calcQueryWindow(timeStamp);\r\n var tsqArray = this.tsqExpressions.map(function (tsqExpression) {\r\n tsqExpression.searchSpan = {\r\n from: queryWindow.fromMillis,\r\n to: queryWindow.toMillis,\r\n bucketSize: queryWindow.bucketSize\r\n };\r\n return tsqExpression.toTsq();\r\n });\r\n this.getAuthToken().then(function (authToken) {\r\n var _a = _this.serverClient.getCancellableTsqResults(authToken, _this.environmentFqdn, tsqArray), promise = _a[0], cancelTrigger = _a[1];\r\n // We keep track of the last AJAX call we made to the server, and cancel it if it hasn't finished yet. This is\r\n // a cheap way to avoid a scenario where we get out-of-order responses back from the server during 'play' mode.\r\n // We can revisit this at a later time if we need to handle it in a more sophisticated way.\r\n if (_this.currentCancelTrigger) {\r\n _this.currentCancelTrigger();\r\n }\r\n _this.currentCancelTrigger = cancelTrigger;\r\n promise.then(function (results) {\r\n _this.getDataPoints(results);\r\n });\r\n });\r\n };\r\n HistoryPlayback.prototype.calcQueryWindow = function (timeStamp) {\r\n var timelineOffset = this.availability.fromMillis;\r\n var queryToMillis = Math.ceil((timeStamp.valueOf() - timelineOffset) / this.availability.bucketSizeMillis) * this.availability.bucketSizeMillis + timelineOffset;\r\n return {\r\n fromMillis: queryToMillis - this.availability.bucketSizeMillis,\r\n toMillis: queryToMillis,\r\n bucketSize: this.availability.bucketSizeStr\r\n };\r\n };\r\n HistoryPlayback.prototype.drawBase = function () {\r\n this.playbackControlsContainer\r\n .style('width', this.renderTarget.clientWidth + \"px\")\r\n .style('height', this.playbackSliderHeight + \"px\");\r\n this.playbackControls.render(this.availability.from, this.availability.to, this.onSelecTimestamp.bind(this), this.chartOptions, { intervalMillis: this.playbackRate, stepSizeMillis: this.availability.bucketSizeMillis });\r\n };\r\n HistoryPlayback.prototype.updateAvailability = function (from, to) {\r\n this.availability = new TsqRange(from, to);\r\n if (this.chartOptions.bucketSizeMillis && this.chartOptions.bucketSizeMillis > 0) {\r\n this.availability.setNeatBucketSizeByRoughBucketSize(this.chartOptions.bucketSizeMillis);\r\n }\r\n else {\r\n this.availability.setNeatBucketSizeByNumerOfBuckets(this.numberOfBuckets);\r\n }\r\n this.availability.alignWithServerEpoch();\r\n };\r\n HistoryPlayback.prototype.parseAvailabilityResponse = function (response) {\r\n var range = response && response.availability && response.availability.range;\r\n var from = (range && range.from && new Date(range.from)) || null;\r\n var to = (range && range.to && new Date(range.to)) || null;\r\n if (from === null || to === null) {\r\n throw 'Query to get availability returned a response with an unexpected structure';\r\n }\r\n return { from: from, to: to };\r\n };\r\n return HistoryPlayback;\r\n}(Component));\r\nexport default HistoryPlayback;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport './ProcessGraphic.scss';\r\nimport HistoryPlayback from \"./../../Components/HistoryPlayback\";\r\nimport ServerClient from '../../../ServerClient';\r\nimport Utils from '../../Utils';\r\nvar ProcessGraphic = /** @class */ (function (_super) {\r\n __extends(ProcessGraphic, _super);\r\n function ProcessGraphic(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.serverClient = new ServerClient();\r\n _this.currentCancelTrigger = null;\r\n return _this;\r\n }\r\n ProcessGraphic.prototype.render = function (environmentFqdn, getToken, graphicSrc, data, chartOptions) {\r\n this.graphicSrc = graphicSrc;\r\n this.renderBase(environmentFqdn, getToken, data, chartOptions);\r\n };\r\n ProcessGraphic.prototype.loadResources = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var image = new Image();\r\n image.onload = function () {\r\n _this.graphic = image;\r\n _this.graphicOriginalWidth = image.width;\r\n _this.graphicOriginalHeight = image.height;\r\n _this.component.node().appendChild(_this.graphic);\r\n resolve(null);\r\n };\r\n image.onerror = function (errorMessage) {\r\n console.log(errorMessage);\r\n reject(errorMessage);\r\n };\r\n image.src = _this.graphicSrc;\r\n });\r\n };\r\n ProcessGraphic.prototype.draw = function () {\r\n var graphicContainerWidth = this.renderTarget.clientWidth;\r\n var graphicContainerHeight = this.renderTarget.clientHeight - this.playbackSliderHeight;\r\n this.componentContainer\r\n .style('width', graphicContainerWidth + \"px\")\r\n .style('height', graphicContainerHeight + \"px\");\r\n var resizedImageDim = this.getResizedImageDimensions(graphicContainerWidth, graphicContainerHeight, this.graphicOriginalWidth, this.graphicOriginalHeight);\r\n this.component\r\n .style('width', resizedImageDim.width + \"px\")\r\n .style('height', resizedImageDim.height + \"px\");\r\n this.drawBase();\r\n };\r\n ProcessGraphic.prototype.getResizedImageDimensions = function (containerWidth, containerHeight, imageWidth, imageHeight) {\r\n if (containerWidth >= imageWidth && containerHeight >= imageHeight) {\r\n return {\r\n width: imageWidth,\r\n height: imageHeight\r\n };\r\n }\r\n // Calculate the factor we would need to multiply width by to make it fit in the container.\r\n // Do the same for height. The smallest of those two corresponds to the largest size reduction\r\n // needed. Multiply both width and height by the smallest factor to a) ensure we maintain the\r\n // aspect ratio of the image b) ensure the image fits inside the container.\r\n var widthFactor = containerWidth / imageWidth;\r\n var heightFactor = containerHeight / imageHeight;\r\n var resizeFactor = Math.min(widthFactor, heightFactor);\r\n return {\r\n width: imageWidth * resizeFactor,\r\n height: imageHeight * resizeFactor\r\n };\r\n };\r\n ProcessGraphic.prototype.getDataPoints = function (results) {\r\n var _this = this;\r\n if (Array.isArray(results)) {\r\n var dataPoints = results.map(function (r, i) {\r\n var value = _this.parseTsqResponse(r);\r\n var color = typeof (_this.tsqExpressions[i].color) === 'function'\r\n ? _this.tsqExpressions[i].color(value)\r\n : _this.tsqExpressions[i].color;\r\n return {\r\n value: value,\r\n alias: _this.tsqExpressions[i].alias,\r\n x: _this.tsqExpressions[i].positionX,\r\n y: _this.tsqExpressions[i].positionY,\r\n color: _this.sanitizeAttribute(color),\r\n onClick: _this.tsqExpressions[i].onElementClick\r\n };\r\n });\r\n this.updateDataMarkers(dataPoints);\r\n }\r\n };\r\n ProcessGraphic.prototype.updateDataMarkers = function (graphicValues) {\r\n var _this = this;\r\n var textElements = this.component.selectAll('div')\r\n .data(graphicValues);\r\n var newElements = textElements.enter()\r\n .append('div')\r\n .classed('tsi-process-graphic-label', true);\r\n newElements.append('div')\r\n .classed('title', true);\r\n newElements.append('div')\r\n .classed('value', true);\r\n newElements.merge(textElements)\r\n .classed('tsi-dark', false)\r\n .classed('tsi-light', false)\r\n .classed(Utils.getTheme(this.chartOptions.theme), true)\r\n .style('left', function (tsqe) { return tsqe.x + \"%\"; })\r\n .style('top', function (tsqe) { return tsqe.y + \"%\"; });\r\n // Trigger glow css animation when values update.\r\n var highlightCssClass = 'tsi-label-highlight';\r\n this.component.selectAll('.tsi-process-graphic-label')\r\n .data(graphicValues)\r\n .classed(highlightCssClass, true)\r\n .classed('clickable', function (tsqe) { return tsqe.onClick !== null; })\r\n .on('animationend', function () {\r\n d3.select(this).classed(highlightCssClass, false);\r\n })\r\n .on('click', function (event, tsqe) {\r\n if (typeof (tsqe.onClick) === 'function') {\r\n tsqe.onClick({\r\n timeStamp: _this.playbackControls.currentTimeStamp,\r\n value: tsqe.value,\r\n color: tsqe.color\r\n });\r\n }\r\n });\r\n this.component.selectAll('.title')\r\n .data(graphicValues)\r\n .text(function (tsqe) { return tsqe.alias || ''; });\r\n this.component.selectAll('.value')\r\n .data(graphicValues)\r\n .text(function (tsqe) { return tsqe.value !== null ? Utils.formatYAxisNumber(tsqe.value) : '--'; })\r\n .style('color', function (tsqe) { return tsqe.color; });\r\n };\r\n ProcessGraphic.prototype.parseTsqResponse = function (response) {\r\n return (response && response.properties && response.properties[0] && response.properties[0].values)\r\n ? response.properties[0].values[0]\r\n : null;\r\n };\r\n ProcessGraphic.prototype.sanitizeAttribute = function (str) {\r\n var sanitized = String(str);\r\n var illegalChars = ['\"', \"'\", '?', '<', '>', ';'];\r\n illegalChars.forEach(function (c) { sanitized = sanitized.split(c).join(''); });\r\n return sanitized;\r\n };\r\n return ProcessGraphic;\r\n}(HistoryPlayback));\r\nexport default ProcessGraphic;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as d3 from 'd3';\r\nimport { Component } from '../../Interfaces/Component';\r\nimport Utils from '../../Utils';\r\nimport './ColorPicker.scss';\r\nimport { KeyCodes } from '../../Constants/Enums';\r\n;\r\nvar ColorPicker = /** @class */ (function (_super) {\r\n __extends(ColorPicker, _super);\r\n function ColorPicker(renderTarget, componentId) {\r\n if (componentId === void 0) { componentId = Utils.guid(); }\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.getSelectedColorValue = function () {\r\n return _this.selectedColor;\r\n };\r\n _this.showColorGrid = function () {\r\n _this.colorPickerElem.select(\".tsi-colorGrid\").style(\"display\", \"flex\");\r\n _this.isColorGridVisible = true;\r\n _this.colorPickerElem.selectAll(\".tsi-colorItem\").nodes()[0].focus();\r\n _this.colorPickerElem.select(\".tsi-colorPickerButton\").attr(\"aria-expanded\", true);\r\n };\r\n _this.hideColorGrid = function (withFocusBackToPickerButton) {\r\n if (withFocusBackToPickerButton === void 0) { withFocusBackToPickerButton = false; }\r\n _this.colorPickerElem.select(\".tsi-colorGrid\").style(\"display\", \"none\");\r\n _this.isColorGridVisible = false;\r\n _this.colorPickerElem.select(\".tsi-colorPickerButton\").attr(\"aria-expanded\", false);\r\n if (withFocusBackToPickerButton) {\r\n _this.colorPickerElem.select(\".tsi-colorPickerButton\").node().focus();\r\n }\r\n };\r\n _this.setSelectedColor = function (cStr, gridItem) {\r\n _this.colorPickerElem.select(\".tsi-selectedColor\").classed(\"tsi-noColor\", false);\r\n _this.colorPickerElem.select(\".tsi-selectedColor\").style(\"background-color\", cStr);\r\n _this.colorPickerElem.select(\".tsi-selectedColorValue\").text(cStr);\r\n _this.colorPickerElem.select(\".tsi-colorItem.tsi-selected\").classed(\"tsi-selected\", false);\r\n _this.colorPickerElem.select(\".tsi-colorItem.tsi-selected\").attr(\"aria-selected\", false);\r\n _this.colorPickerElem.select(\".tsi-colorPickerButton\").attr(\"aria-label\", (_this.selectedColor ? _this.selectedColor : _this.getString('No color')) + ' ' + _this.getString('Select color'));\r\n gridItem.classed(\"tsi-selected\", true);\r\n gridItem.attr(\"aria-selected\", true);\r\n _this.selectedColor = cStr;\r\n };\r\n _this.getColorPickerElem = function () {\r\n return _this.colorPickerElem;\r\n };\r\n _this.componentId = componentId;\r\n return _this;\r\n }\r\n ColorPicker.prototype.render = function (options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n this.chartOptions.setOptions(options);\r\n this.selectedColor = this.chartOptions.defaultColor;\r\n if (this.chartOptions.colors.indexOf(this.selectedColor) === -1) {\r\n this.chartOptions.colors.push(this.selectedColor);\r\n }\r\n this.colorPickerElem = d3.select(this.renderTarget).classed(\"tsi-colorPicker\", true);\r\n this.colorPickerElem.text('');\r\n _super.prototype.themify.call(this, this.colorPickerElem, this.chartOptions.theme);\r\n // color selection button\r\n var colorPickerButton = this.colorPickerElem.append('button').classed(\"tsi-colorPickerButton\", true)\r\n .attr(\"title\", this.getString('Select color'))\r\n .attr(\"aria-label\", (this.selectedColor ? this.selectedColor : this.getString('No color')) + ' ' + this.getString('Select color'))\r\n .attr(\"aria-controls\", \"tsi-colorGrid_\" + this.componentId)\r\n .on('click', function (event) {\r\n if (_this.isColorGridVisible) {\r\n _this.hideColorGrid(true);\r\n }\r\n else {\r\n _this.chartOptions.onClick(event);\r\n _this.showColorGrid();\r\n }\r\n });\r\n if (this.selectedColor) {\r\n colorPickerButton.append('div').classed(\"tsi-selectedColor\", true).style(\"background-color\", this.selectedColor);\r\n }\r\n else {\r\n colorPickerButton.append('div').classed(\"tsi-selectedColor\", true).classed(\"tsi-noColor\", true);\r\n }\r\n colorPickerButton.append('span').classed(\"tsi-selectedColorValue\", true).classed(\"hidden\", this.chartOptions.isColorValueHidden)\r\n .attr(\"id\", \"tsi-selectedColorValue_\" + this.componentId)\r\n .text(this.selectedColor ? this.selectedColor : this.getString('No color'));\r\n // color grid\r\n var colorGridElem = this.colorPickerElem.append('div').classed(\"tsi-colorGrid\", true).attr(\"id\", \"tsi-colorGrid_\" + this.componentId).attr(\"role\", \"grid\");\r\n var colorGridRowElem = colorGridElem.append('div').classed(\"tsi-colorGridRow\", true).attr(\"role\", \"row\");\r\n this.chartOptions.colors.forEach(function (c, idx) {\r\n var gridItem = colorGridRowElem.append('div').classed(\"tsi-colorItem\", true).classed(\"tsi-selected\", c === _this.selectedColor)\r\n .attr(\"tabindex\", 0)\r\n .attr(\"role\", \"gridcell\")\r\n .attr(\"aria-label\", c)\r\n .attr(\"aria-selected\", c === _this.selectedColor)\r\n .style(\"background-color\", c)\r\n .on('click', function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n _this.chartOptions.onSelect(c);\r\n _this.hideColorGrid(true);\r\n _this.setSelectedColor(c, gridItem);\r\n })\r\n .on('keydown', function (event) {\r\n if (event.keyCode === KeyCodes.Tab && !event.shiftKey && idx === _this.chartOptions.colors.length - 1) { // tab\r\n event.preventDefault();\r\n _this.colorPickerElem.selectAll(\".tsi-colorItem\").nodes()[0].focus();\r\n }\r\n else if (event.keyCode === KeyCodes.Enter) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n _this.chartOptions.onSelect(c);\r\n _this.hideColorGrid(true);\r\n _this.setSelectedColor(c, gridItem);\r\n }\r\n else if (event.keyCode === KeyCodes.Esc) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n _this.hideColorGrid(true);\r\n }\r\n });\r\n });\r\n };\r\n return ColorPicker;\r\n}(Component));\r\nexport default ColorPicker;\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as atlas from 'azure-maps-control';\r\nimport './GeoProcessGraphic.scss';\r\nimport HistoryPlayback from \"./../../Components/HistoryPlayback\";\r\nimport ServerClient from '../../../ServerClient';\r\nvar GeoProcessGraphic = /** @class */ (function (_super) {\r\n __extends(GeoProcessGraphic, _super);\r\n function GeoProcessGraphic(renderTarget) {\r\n var _this = _super.call(this, renderTarget) || this;\r\n _this.serverClient = new ServerClient();\r\n _this.currentCancelTrigger = null;\r\n return _this;\r\n }\r\n GeoProcessGraphic.prototype.render = function (environmentFqdn, getToken, data, chartOptions) {\r\n this.zoom = chartOptions.zoom;\r\n this.center = chartOptions.center;\r\n this.bearing = chartOptions.bearing;\r\n this.pitch = chartOptions.pitch;\r\n this.maxZoom = chartOptions.maxZoom;\r\n this.minZoom = chartOptions.minZoom;\r\n this.duration = chartOptions.duration;\r\n this.azureMapsSubscriptionKey = chartOptions.subscriptionKey;\r\n this.width = chartOptions.width;\r\n this.height = chartOptions.height;\r\n this.theme = chartOptions.theme;\r\n this.renderBase(environmentFqdn, getToken, data, chartOptions);\r\n };\r\n GeoProcessGraphic.prototype.loadResources = function () {\r\n var _this = this;\r\n this.component.node().style.width = this.width + \"px\";\r\n this.component.node().style.height = this.height + \"px\";\r\n this.map = new atlas.Map(this.component.node(), {\r\n authOptions: {\r\n authType: atlas.AuthenticationType.subscriptionKey,\r\n subscriptionKey: this.azureMapsSubscriptionKey\r\n }\r\n });\r\n this.map.events.add('ready', function () {\r\n _this.dataSource = new atlas.source.DataSource();\r\n _this.map.sources.add(_this.dataSource);\r\n var _loop_1 = function (i) {\r\n var popup = new atlas.Popup({\r\n content: \"<div class = 'tsi-gpgPopUp id= tsi-popup\" + i + \"'></div>\",\r\n pixelOffset: [0, -30]\r\n });\r\n var marker = new atlas.HtmlMarker({\r\n htmlContent: \"<div class = tsi-geoprocess-graphic> <img class='tsi-gpgcircleImage \\n id= tsi-htmlMarker\" + i + \"' src= \\\"\" + _this.tsqExpressions[i].image + '\" /> </div>',\r\n position: [0, 0],\r\n popup: popup\r\n });\r\n _this.map.markers.add(marker);\r\n _this.map.popups.add(popup);\r\n _this.map.events.add('click', marker, function () {\r\n marker.togglePopup();\r\n });\r\n };\r\n for (var i = 0; i < _this.tsqExpressions.length; i++) {\r\n _loop_1(i);\r\n }\r\n });\r\n this.map.setCamera({\r\n center: this.center,\r\n bearing: this.bearing,\r\n pitch: this.pitch,\r\n zoom: this.zoom,\r\n maxZoom: this.maxZoom,\r\n minZoom: this.minZoom,\r\n type: \"fly\",\r\n duration: this.duration\r\n });\r\n return Promise.resolve();\r\n };\r\n GeoProcessGraphic.prototype.draw = function () {\r\n this.drawBase();\r\n };\r\n GeoProcessGraphic.prototype.getDataPoints = function (results) {\r\n var _this = this;\r\n var dataPoints = results.map(function (r) {\r\n return _this.parseTsqResponse(r);\r\n });\r\n this.updateDataMarkers(dataPoints);\r\n };\r\n GeoProcessGraphic.prototype.parseTsqResponse = function (response) {\r\n var parsedResponse = {};\r\n if (response && response.properties) {\r\n for (var i = 0; i < response.properties.length; i++) {\r\n response.properties[i] && response.properties[i].name && response.properties[i].values ?\r\n parsedResponse[response.properties[i].name] = response.properties[i].values[0]\r\n : null;\r\n }\r\n }\r\n return parsedResponse;\r\n };\r\n GeoProcessGraphic.prototype.updateDataMarkers = function (dataPoints) {\r\n for (var i = 0; i < dataPoints.length; i++) {\r\n var lat = dataPoints[i][this.tsqExpressions[i].positionXVariableName];\r\n var lon = dataPoints[i][this.tsqExpressions[i].positionYVariableName];\r\n this.map.markers.getMarkers()[i].setOptions({\r\n position: [lat, lon]\r\n });\r\n var dataPointArr = Object.entries(dataPoints[i]);\r\n this.map.popups.getPopups()[i].setOptions({\r\n position: [lat, lon],\r\n content: this.createTable(dataPointArr, i)\r\n });\r\n }\r\n };\r\n GeoProcessGraphic.prototype.createTable = function (dataPointArr, idx) {\r\n var gpgTooltipDiv = document.createElement('div');\r\n gpgTooltipDiv.className = 'tsi-gpgTooltip tsi-' + this.theme;\r\n var gpgTooltipInnerDiv = document.createElement('div');\r\n gpgTooltipInnerDiv.className = 'tsi-gpgTooltipInner';\r\n var gpgTooltipTitleDiv = document.createElement('div');\r\n gpgTooltipTitleDiv.className = 'tsi-gpgTooltipTitle';\r\n var title = document.createTextNode(this.tsqExpressions[idx].alias);\r\n gpgTooltipTitleDiv.appendChild(title);\r\n var gpgTooltipTable = document.createElement('table');\r\n gpgTooltipTable.className = 'tsi-gpgTooltipValues';\r\n gpgTooltipTable.classList.add('tsi-gpgTooltipTable');\r\n for (var i = 0; i < dataPointArr.length; i++) {\r\n var spacer = document.createElement('tr');\r\n spacer.className = 'tsi-gpgTableSpacer';\r\n gpgTooltipTable.appendChild(spacer);\r\n var gpgTooltipValueRow = document.createElement('tr');\r\n var gpgValueLabelCell = document.createElement('td');\r\n gpgValueLabelCell.className = 'tsi-gpgValueLabel';\r\n var labelName = document.createTextNode(dataPointArr[i][0]);\r\n gpgValueLabelCell.appendChild(labelName);\r\n gpgTooltipValueRow.appendChild(gpgValueLabelCell);\r\n var gpgValueCell = document.createElement('td');\r\n gpgValueCell.className = 'tsi-gpgValueCell';\r\n var cellData = document.createTextNode(dataPointArr[i][1].toFixed(5));\r\n gpgValueCell.appendChild(cellData);\r\n gpgTooltipValueRow.appendChild(gpgValueCell);\r\n gpgTooltipTable.appendChild(gpgTooltipValueRow);\r\n }\r\n gpgTooltipInnerDiv.appendChild(gpgTooltipTitleDiv);\r\n gpgTooltipInnerDiv.appendChild(gpgTooltipTable);\r\n gpgTooltipDiv.appendChild(gpgTooltipInnerDiv);\r\n return gpgTooltipDiv;\r\n };\r\n return GeoProcessGraphic;\r\n}(HistoryPlayback));\r\nexport default GeoProcessGraphic;\r\n","var transformTsqResultsForVisualization = function (tsqResults, options) {\r\n var result = [];\r\n tsqResults.forEach(function (tsqr, i) {\r\n var transformedAggregate = {};\r\n var aggregatesObject = {};\r\n transformedAggregate[options[i].alias] = { '': aggregatesObject };\r\n if (tsqr.hasOwnProperty('__tsiError__'))\r\n transformedAggregate[''] = {};\r\n else {\r\n tsqr.timestamps.forEach(function (ts, j) {\r\n aggregatesObject[ts] = tsqr.properties.reduce(function (p, c) {\r\n p[c.name] = aggregatesObject[ts] && aggregatesObject[ts][c.name] !== null ? aggregatesObject[ts][c.name] : c['values'][j];\r\n return p;\r\n }, {});\r\n });\r\n }\r\n result.push(transformedAggregate);\r\n });\r\n return result;\r\n};\r\nexport { transformTsqResultsForVisualization };\r\n","import LineChart from \"./Components/LineChart/LineChart\";\r\nimport AvailabilityChart from \"./Components/AvailabilityChart/AvailabilityChart\";\r\nimport PieChart from \"./Components/PieChart/PieChart\";\r\nimport ScatterPlot from \"./Components/ScatterPlot/ScatterPlot\";\r\nimport GroupedBarChart from \"./Components/GroupedBarChart/GroupedBarChart\";\r\nimport Grid from \"./Components/Grid/Grid\";\r\nimport Slider from \"./Components/Slider/Slider\";\r\nimport Hierarchy from \"./Components/Hierarchy/Hierarchy\";\r\nimport AggregateExpression from \"./Models/AggregateExpression\";\r\nimport Heatmap from \"./Components/Heatmap/Heatmap\";\r\nimport EventsTable from \"./Components/EventsTable/EventsTable\";\r\nimport ModelSearch from \"./Components/ModelSearch/ModelSearch\";\r\nimport DateTimePicker from \"./Components/DateTimePicker/DateTimePicker\";\r\nimport TimezonePicker from \"./Components/TimezonePicker/TimezonePicker\";\r\nimport Utils from \"./Utils\";\r\nimport './styles.scss';\r\nimport EllipsisMenu from \"./Components/EllipsisMenu/EllipsisMenu\";\r\nimport TsqExpression from \"./Models/TsqExpression\";\r\nimport ModelAutocomplete from \"./Components/ModelAutocomplete/ModelAutocomplete\";\r\nimport HierarchyNavigation from \"./Components/HierarchyNavigation/HierarchyNavigation\";\r\nimport SingleDateTimePicker from \"./Components/SingleDateTimePicker/SingleDateTimePicker\";\r\nimport DateTimeButtonSingle from \"./Components/DateTimeButtonSingle/DateTimeButtonSingle\";\r\nimport DateTimeButtonRange from \"./Components/DateTimeButtonRange/DateTimeButtonRange\";\r\nimport ProcessGraphic from './Components/ProcessGraphic/ProcessGraphic';\r\nimport PlaybackControls from './Components/PlaybackControls/PlaybackControls';\r\nimport ColorPicker from \"./Components/ColorPicker/ColorPicker\";\r\nimport GeoProcessGraphic from \"./Components/GeoProcessGraphic/GeoProcessGraphic\";\r\nimport { transformTsqResultsForVisualization } from \"./Utils/Transformers\";\r\nvar UXClient = /** @class */ (function () {\r\n function UXClient() {\r\n // Public facing components have class constructors exposed as public UXClient members.\r\n // This allows for typings to be bundled while maintaining 'new Component()' syntax\r\n this.DateTimePicker = DateTimePicker;\r\n this.PieChart = PieChart;\r\n this.ScatterPlot = ScatterPlot;\r\n this.BarChart = GroupedBarChart;\r\n this.LineChart = LineChart;\r\n this.AvailabilityChart = AvailabilityChart;\r\n this.Grid = Grid;\r\n this.Slider = Slider;\r\n this.Hierarchy = Hierarchy;\r\n this.AggregateExpression = AggregateExpression;\r\n this.TsqExpression = TsqExpression;\r\n this.Heatmap = Heatmap;\r\n this.EventsTable = EventsTable;\r\n this.ModelSearch = ModelSearch;\r\n this.ModelAutocomplete = ModelAutocomplete;\r\n this.HierarchyNavigation = HierarchyNavigation;\r\n this.TimezonePicker = TimezonePicker;\r\n this.EllipsisMenu = EllipsisMenu;\r\n this.SingleDateTimePicker = SingleDateTimePicker;\r\n this.DateTimeButtonSingle = DateTimeButtonSingle;\r\n this.DateTimeButtonRange = DateTimeButtonRange;\r\n this.ProcessGraphic = ProcessGraphic;\r\n this.PlaybackControls = PlaybackControls;\r\n this.ColorPicker = ColorPicker;\r\n this.GeoProcessGraphic = GeoProcessGraphic;\r\n this.transformTsqResultsForVisualization = transformTsqResultsForVisualization;\r\n }\r\n UXClient.prototype.UXClient = function () {\r\n };\r\n UXClient.prototype.transformTsxToEventsArray = function (events, options) {\r\n var timezoneOffset = options.timezoneOffset ? options.timezoneOffset : 0;\r\n var rows = [];\r\n var eventSourceProperties = {};\r\n var nameToStrippedPropName = {};\r\n var valueToStrippedValueMap = {};\r\n var _loop_1 = function () {\r\n if (events[eventIdx].hasOwnProperty('schema')) {\r\n eventSourceProperties[events[eventIdx].schema.rid] = {};\r\n eventSourceProperties[events[eventIdx].schema.rid].propertyNames = events[eventIdx].schema.properties.reduce(function (prev, curr) {\r\n prev.push({ name: curr.name, type: curr.type });\r\n return prev;\r\n }, []);\r\n eventSourceProperties[events[eventIdx].schema.rid].eventSourceName = events[eventIdx].schema['$esn'];\r\n eventSourceId = events[eventIdx].schema.rid;\r\n }\r\n else {\r\n eventSourceId = events[eventIdx].schemaRid;\r\n }\r\n timeStamp = (new Date((new Date(events[eventIdx]['$ts'])).valueOf() - timezoneOffset)).toISOString().slice(0, -1).replace('T', ' ');\r\n event = { 'timestamp ($ts)': timeStamp };\r\n // lts logic\r\n lts = events[eventIdx]['$lts'] ? events[eventIdx]['$lts'] : null;\r\n if (lts) {\r\n event['LocalTimestamp_DateTime'] = {\r\n value: lts.replace('T', ' '),\r\n name: 'LocalTimestamp',\r\n type: 'DateTime'\r\n };\r\n }\r\n event[\"EventSourceName_String\"] = {\r\n value: eventSourceProperties[eventSourceId].eventSourceName,\r\n name: 'EventSourceName',\r\n type: 'String'\r\n };\r\n for (var propIdx in eventSourceProperties[eventSourceId].propertyNames) {\r\n name = eventSourceProperties[eventSourceId].propertyNames[propIdx].name;\r\n if (!nameToStrippedPropName.hasOwnProperty(name))\r\n nameToStrippedPropName[name] = Utils.stripForConcat(name);\r\n strippedName = nameToStrippedPropName[name];\r\n type = eventSourceProperties[eventSourceId].propertyNames[propIdx].type;\r\n columnNameAndType = strippedName + \"_\" + type;\r\n if (!valueToStrippedValueMap.hasOwnProperty(String(events[eventIdx].values[propIdx])))\r\n valueToStrippedValueMap[String(events[eventIdx].values[propIdx])] = Utils.stripForConcat(String(events[eventIdx].values[propIdx]));\r\n eventObject = {\r\n value: valueToStrippedValueMap[String(events[eventIdx].values[propIdx])],\r\n name: strippedName,\r\n type: type\r\n };\r\n event[columnNameAndType] = eventObject;\r\n }\r\n if (events[eventIdx].hasOwnProperty('$op')) {\r\n var defaultType_1 = 'String';\r\n var otherProps_1 = JSON.parse(events[eventIdx]['$op']);\r\n Object.keys(otherProps_1).forEach(function (propNameRaw) {\r\n var strippedNameOP = Utils.stripForConcat(propNameRaw);\r\n var columnNameAndTypeOP = strippedNameOP + '_String';\r\n event[columnNameAndTypeOP] = {\r\n value: otherProps_1[propNameRaw],\r\n name: strippedNameOP,\r\n type: defaultType_1\r\n };\r\n });\r\n }\r\n rows.push(event);\r\n };\r\n var eventSourceId, timeStamp, event, lts, name, strippedName, type, columnNameAndType, eventObject;\r\n for (var eventIdx in events) {\r\n _loop_1();\r\n }\r\n return rows;\r\n };\r\n UXClient.prototype.toISONoMillis = function (dateTime) {\r\n return dateTime.toISOString().slice(0, -5) + \"Z\";\r\n };\r\n //specifiedRange gives the subset of availability buckets to be returned. If not included, will return all buckets\r\n UXClient.prototype.transformAvailabilityForVisualization = function (availabilityTsx) {\r\n var _this = this;\r\n var from = new Date(availabilityTsx.range.from);\r\n var to = new Date(availabilityTsx.range.to);\r\n var rawBucketSize = Utils.parseTimeInput(availabilityTsx.intervalSize);\r\n var buckets = {};\r\n var startBucket = Math.round(Math.floor(from.valueOf() / rawBucketSize) * rawBucketSize);\r\n var firstKey = this.toISONoMillis(new Date(startBucket));\r\n var firstCount = availabilityTsx.distribution[firstKey] ? availabilityTsx.distribution[firstKey] : 0;\r\n // reset first key if greater than the availability range from\r\n if (startBucket < (new Date(availabilityTsx.range.from)).valueOf())\r\n firstKey = this.toISONoMillis(new Date(availabilityTsx.range.from));\r\n buckets[firstKey] = { count: firstCount };\r\n Object.keys(availabilityTsx.distribution).forEach(function (key) {\r\n var formattedISO = _this.toISONoMillis(new Date(key));\r\n buckets[formattedISO] = { count: availabilityTsx.distribution[key] };\r\n });\r\n //set end time value\r\n var lastBucket = Math.round(Math.floor(to.valueOf() / rawBucketSize) * rawBucketSize);\r\n // pad out if range is less than one bucket;\r\n if (startBucket == lastBucket) {\r\n for (var i = startBucket; i <= startBucket + rawBucketSize; i += (rawBucketSize / 60)) {\r\n if (buckets[this.toISONoMillis(new Date(i))] == undefined)\r\n buckets[this.toISONoMillis(new Date(i))] = { count: 0 };\r\n }\r\n //reset startBucket to count 0 if not the start time\r\n if (startBucket != from.valueOf()) {\r\n buckets[this.toISONoMillis(new Date(startBucket))] = { count: 0 };\r\n }\r\n }\r\n return [{ \"availabilityCount\": { \"\": buckets } }];\r\n };\r\n UXClient.prototype.transformAggregatesForVisualization = function (aggregates, options) {\r\n var result = [];\r\n aggregates.forEach(function (agg, i) {\r\n var transformedAggregate = {};\r\n var aggregatesObject = {};\r\n transformedAggregate[options[i].alias] = aggregatesObject;\r\n if (agg.hasOwnProperty('__tsiError__'))\r\n transformedAggregate[''] = {};\r\n else if (agg.hasOwnProperty('aggregate')) {\r\n agg.dimension.forEach(function (d, j) {\r\n var dateTimeToValueObject = {};\r\n aggregatesObject[d] = dateTimeToValueObject;\r\n agg.aggregate.dimension.forEach(function (dt, k) {\r\n var measuresObject = {};\r\n dateTimeToValueObject[dt] = measuresObject;\r\n options[i].measureTypes.forEach(function (t, l) {\r\n if (agg.aggregate.measures[j][k] != null && agg.aggregate.measures[j][k] != undefined &&\r\n agg.aggregate.measures[j][k][l] != null && agg.aggregate.measures[j][k][l] != undefined)\r\n measuresObject[t] = agg.aggregate.measures[j][k][l];\r\n else\r\n measuresObject[t] = null;\r\n });\r\n });\r\n });\r\n }\r\n else {\r\n var dateTimeToValueObject = {};\r\n aggregatesObject[''] = dateTimeToValueObject;\r\n agg.dimension.forEach(function (dt, j) {\r\n var measuresObject = {};\r\n dateTimeToValueObject[dt] = measuresObject;\r\n options[i].measureTypes.forEach(function (t, l) {\r\n measuresObject[t] = agg.measures[j][l];\r\n });\r\n });\r\n }\r\n result.push(transformedAggregate);\r\n });\r\n return result;\r\n };\r\n // exposed publicly to use for highlighting elements in the well on hover/focus\r\n UXClient.prototype.createEntityKey = function (aggName, aggIndex) {\r\n if (aggIndex === void 0) { aggIndex = 0; }\r\n return Utils.createEntityKey(aggName, aggIndex);\r\n };\r\n UXClient.prototype.transformTsqResultsToEventsArray = function (results) {\r\n var flattenedResults = [];\r\n results.forEach(function (tsqr) {\r\n tsqr.timestamps.forEach(function (ts, idx) {\r\n var event = {};\r\n event['timestamp ($ts)'] = ts;\r\n tsqr.properties.forEach(function (p) {\r\n event[p.name + \"_\" + p.type] = { name: p.name, type: p.type, value: p.values[idx] };\r\n });\r\n flattenedResults.push(event);\r\n });\r\n });\r\n return flattenedResults.sort(function (a, b) { return (new Date(a['timestamp ($ts)'])).valueOf() < (new Date(b['timestamp ($ts)'])).valueOf() ? -1 : 1; });\r\n };\r\n return UXClient;\r\n}());\r\nexport default UXClient;\r\n","import ServerClient from \"./ServerClient/ServerClient\";\r\nimport UXClient from \"./UXClient/UXClient\";\r\nimport Utils from \"./UXClient/Utils\";\r\nvar TsiClient = /** @class */ (function () {\r\n function TsiClient() {\r\n this.server = new ServerClient();\r\n this.ux = new UXClient();\r\n this.utils = Utils;\r\n }\r\n return TsiClient;\r\n}());\r\nexport default TsiClient;\r\nwindow.TsiClient = TsiClient;\r\n"],"sourceRoot":""} |