@hpcc-js/common 2.73.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/index.css +2 -0
  2. package/dist/index.css.map +7 -0
  3. package/dist/index.js +30 -15313
  4. package/dist/index.js.map +7 -1
  5. package/package.json +28 -34
  6. package/src/CanvasWidget.ts +1 -1
  7. package/src/Class.ts +5 -0
  8. package/src/Database.ts +10 -6
  9. package/src/Entity.ts +5 -5
  10. package/src/EntityCard.ts +1 -1
  11. package/src/EntityPin.ts +1 -1
  12. package/src/EntityRect.ts +54 -36
  13. package/src/EntityVertex.ts +2 -2
  14. package/src/FAChar.ts +14 -7
  15. package/src/HTMLWidget.ts +1 -1
  16. package/src/Icon.ts +27 -15
  17. package/src/Image.ts +16 -7
  18. package/src/List.ts +9 -4
  19. package/src/Menu.ts +11 -6
  20. package/src/ProgressBar.ts +28 -18
  21. package/src/PropertyExt.ts +1 -24
  22. package/src/ResizeSurface.ts +6 -2
  23. package/src/SVGWidget.ts +5 -7
  24. package/src/SVGZoomWidget.ts +3 -3
  25. package/src/Shape.ts +1 -1
  26. package/src/Surface.ts +32 -17
  27. package/src/Text.ts +1 -1
  28. package/src/TextBox.ts +34 -19
  29. package/src/TitleBar.ts +3 -3
  30. package/src/Widget.ts +7 -8
  31. package/src/WidgetArray.ts +7 -5
  32. package/src/__package__.ts +1 -1
  33. package/src/index.ts +32 -32
  34. package/types/CanvasWidget.d.ts +1 -2
  35. package/types/Class.d.ts +2 -1
  36. package/types/Database.d.ts +9 -18
  37. package/types/Entity.d.ts +5 -6
  38. package/types/EntityCard.d.ts +1 -2
  39. package/types/EntityPin.d.ts +1 -2
  40. package/types/EntityRect.d.ts +35 -20
  41. package/types/EntityVertex.d.ts +2 -3
  42. package/types/FAChar.d.ts +11 -18
  43. package/types/HTMLWidget.d.ts +1 -2
  44. package/types/IList.d.ts +0 -1
  45. package/types/IMenu.d.ts +0 -1
  46. package/types/Icon.d.ts +23 -40
  47. package/types/Image.d.ts +15 -26
  48. package/types/List.d.ts +6 -7
  49. package/types/Menu.d.ts +10 -13
  50. package/types/Palette.d.ts +0 -1
  51. package/types/Platform.d.ts +0 -1
  52. package/types/ProgressBar.d.ts +19 -10
  53. package/types/PropertyExt.d.ts +1 -13
  54. package/types/ResizeSurface.d.ts +5 -6
  55. package/types/SVGWidget.d.ts +1 -3
  56. package/types/SVGZoomWidget.d.ts +2 -3
  57. package/types/Shape.d.ts +1 -2
  58. package/types/Surface.d.ts +27 -50
  59. package/types/Text.d.ts +1 -2
  60. package/types/TextBox.d.ts +32 -57
  61. package/types/TitleBar.d.ts +2 -3
  62. package/types/Transition.d.ts +0 -1
  63. package/types/Utility.d.ts +0 -1
  64. package/types/Widget.d.ts +4 -5
  65. package/types/WidgetArray.d.ts +5 -4
  66. package/types/__package__.d.ts +1 -2
  67. package/types/index.d.ts +32 -33
  68. package/dist/index.es6.js +0 -15067
  69. package/dist/index.es6.js.map +0 -1
  70. package/dist/index.min.js +0 -2
  71. package/dist/index.min.js.map +0 -1
  72. package/font-awesome/css/font-awesome.css +0 -2337
  73. package/font-awesome/css/font-awesome.css.map +0 -7
  74. package/font-awesome/css/font-awesome.min.css +0 -4
  75. package/types/CanvasWidget.d.ts.map +0 -1
  76. package/types/Class.d.ts.map +0 -1
  77. package/types/Database.d.ts.map +0 -1
  78. package/types/Entity.d.ts.map +0 -1
  79. package/types/EntityCard.d.ts.map +0 -1
  80. package/types/EntityPin.d.ts.map +0 -1
  81. package/types/EntityRect.d.ts.map +0 -1
  82. package/types/EntityVertex.d.ts.map +0 -1
  83. package/types/FAChar.d.ts.map +0 -1
  84. package/types/HTMLWidget.d.ts.map +0 -1
  85. package/types/IList.d.ts.map +0 -1
  86. package/types/IMenu.d.ts.map +0 -1
  87. package/types/Icon.d.ts.map +0 -1
  88. package/types/Image.d.ts.map +0 -1
  89. package/types/List.d.ts.map +0 -1
  90. package/types/Menu.d.ts.map +0 -1
  91. package/types/Palette.d.ts.map +0 -1
  92. package/types/Platform.d.ts.map +0 -1
  93. package/types/ProgressBar.d.ts.map +0 -1
  94. package/types/PropertyExt.d.ts.map +0 -1
  95. package/types/ResizeSurface.d.ts.map +0 -1
  96. package/types/SVGWidget.d.ts.map +0 -1
  97. package/types/SVGZoomWidget.d.ts.map +0 -1
  98. package/types/Shape.d.ts.map +0 -1
  99. package/types/Surface.d.ts.map +0 -1
  100. package/types/Text.d.ts.map +0 -1
  101. package/types/TextBox.d.ts.map +0 -1
  102. package/types/TitleBar.d.ts.map +0 -1
  103. package/types/Transition.d.ts.map +0 -1
  104. package/types/Utility.d.ts.map +0 -1
  105. package/types/Widget.d.ts.map +0 -1
  106. package/types/WidgetArray.d.ts.map +0 -1
  107. package/types/__package__.d.ts.map +0 -1
  108. package/types/index.d.ts.map +0 -1
  109. package/types-3.4/CanvasWidget.d.ts +0 -9
  110. package/types-3.4/Class.d.ts +0 -13
  111. package/types-3.4/Database.d.ts +0 -137
  112. package/types-3.4/Entity.d.ts +0 -89
  113. package/types-3.4/EntityCard.d.ts +0 -14
  114. package/types-3.4/EntityPin.d.ts +0 -23
  115. package/types-3.4/EntityRect.d.ts +0 -46
  116. package/types-3.4/EntityVertex.d.ts +0 -31
  117. package/types-3.4/FAChar.d.ts +0 -30
  118. package/types-3.4/HTMLWidget.d.ts +0 -28
  119. package/types-3.4/IList.d.ts +0 -5
  120. package/types-3.4/IMenu.d.ts +0 -6
  121. package/types-3.4/Icon.d.ts +0 -63
  122. package/types-3.4/Image.d.ts +0 -34
  123. package/types-3.4/List.d.ts +0 -16
  124. package/types-3.4/Menu.d.ts +0 -29
  125. package/types-3.4/Palette.d.ts +0 -20
  126. package/types-3.4/Platform.d.ts +0 -6
  127. package/types-3.4/ProgressBar.d.ts +0 -22
  128. package/types-3.4/PropertyExt.d.ts +0 -115
  129. package/types-3.4/ResizeSurface.d.ts +0 -24
  130. package/types-3.4/SVGWidget.d.ts +0 -78
  131. package/types-3.4/SVGZoomWidget.d.ts +0 -74
  132. package/types-3.4/Shape.d.ts +0 -35
  133. package/types-3.4/Surface.d.ts +0 -70
  134. package/types-3.4/Text.d.ts +0 -38
  135. package/types-3.4/TextBox.d.ts +0 -77
  136. package/types-3.4/TitleBar.d.ts +0 -118
  137. package/types-3.4/Transition.d.ts +0 -12
  138. package/types-3.4/Utility.d.ts +0 -103
  139. package/types-3.4/Widget.d.ts +0 -154
  140. package/types-3.4/WidgetArray.d.ts +0 -7
  141. package/types-3.4/__package__.d.ts +0 -4
  142. package/types-3.4/index.d.ts +0 -53
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es6.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/create.js","../../../node_modules/d3-selection/src/local.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/point.js","../../../node_modules/d3-selection/src/mouse.js","../../../node_modules/d3-selection/src/selectAll.js","../../../node_modules/d3-selection/src/touch.js","../../../node_modules/d3-selection/src/touches.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-color/src/math.js","../../../node_modules/d3-color/src/lab.js","../../../node_modules/d3-color/src/cubehelix.js","../../../node_modules/d3-interpolate/src/basis.js","../../../node_modules/d3-interpolate/src/basisClosed.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/discrete.js","../../../node_modules/d3-interpolate/src/hue.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-interpolate/src/zoom.js","../../../node_modules/d3-interpolate/src/hsl.js","../../../node_modules/d3-interpolate/src/lab.js","../../../node_modules/d3-interpolate/src/hcl.js","../../../node_modules/d3-interpolate/src/cubehelix.js","../../../node_modules/d3-interpolate/src/piecewise.js","../../../node_modules/d3-interpolate/src/quantize.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/linear.js","../../../node_modules/d3-ease/src/quad.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-ease/src/poly.js","../../../node_modules/d3-ease/src/sin.js","../../../node_modules/d3-ease/src/math.js","../../../node_modules/d3-ease/src/exp.js","../../../node_modules/d3-ease/src/circle.js","../../../node_modules/d3-ease/src/bounce.js","../../../node_modules/d3-ease/src/back.js","../../../node_modules/d3-ease/src/elastic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-transition/src/active.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/d3-array/src/pairs.js","../../../node_modules/d3-array/src/cross.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/variance.js","../../../node_modules/d3-array/src/deviation.js","../../../node_modules/d3-array/src/extent.js","../../../node_modules/d3-array/src/array.js","../../../node_modules/d3-array/src/constant.js","../../../node_modules/d3-array/src/identity.js","../../../node_modules/d3-array/src/range.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-array/src/threshold/sturges.js","../../../node_modules/d3-array/src/histogram.js","../../../node_modules/d3-array/src/quantile.js","../../../node_modules/d3-array/src/threshold/freedmanDiaconis.js","../../../node_modules/d3-array/src/threshold/scott.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/mean.js","../../../node_modules/d3-array/src/median.js","../../../node_modules/d3-array/src/merge.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-array/src/permute.js","../../../node_modules/d3-array/src/scan.js","../../../node_modules/d3-array/src/shuffle.js","../../../node_modules/d3-array/src/sum.js","../../../node_modules/d3-array/src/transpose.js","../../../node_modules/d3-array/src/zip.js","../../../node_modules/d3-collection/src/map.js","../../../node_modules/d3-collection/src/nest.js","../../../node_modules/d3-collection/src/set.js","../../../node_modules/d3-collection/src/keys.js","../../../node_modules/d3-collection/src/values.js","../../../node_modules/d3-collection/src/entries.js","../../../node_modules/d3-dsv/src/dsv.js","../../../node_modules/d3-dsv/src/csv.js","../../../node_modules/d3-dsv/src/tsv.js","../../../node_modules/d3-dsv/src/autoType.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time/src/utcMinute.js","../../../node_modules/d3-time/src/utcHour.js","../../../node_modules/d3-time/src/utcDay.js","../../../node_modules/d3-time/src/utcWeek.js","../../../node_modules/d3-time/src/utcMonth.js","../../../node_modules/d3-time/src/utcYear.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-time-format/src/isoFormat.js","../../../node_modules/d3-time-format/src/isoParse.js","../src/Class.ts","../src/PropertyExt.ts","../src/Utility.ts","../src/Database.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/Widget.ts","../src/HTMLWidget.ts","../src/CanvasWidget.ts","../src/Platform.ts","../src/Transition.ts","../src/SVGWidget.ts","../src/Text.ts","../src/FAChar.ts","../../../node_modules/colorbrewer/index.es.js","../../../node_modules/d3-scale/src/array.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-scale/src/band.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js","../../../node_modules/d3-scale/src/identity.js","../../../node_modules/d3-scale/src/nice.js","../../../node_modules/d3-scale/src/log.js","../../../node_modules/d3-scale/src/pow.js","../../../node_modules/d3-scale/src/quantile.js","../../../node_modules/d3-scale/src/quantize.js","../../../node_modules/d3-scale/src/threshold.js","../../../node_modules/d3-scale/src/time.js","../../../node_modules/d3-scale/src/utcTime.js","../../../node_modules/d3-scale/src/colors.js","../../../node_modules/d3-scale/src/category10.js","../../../node_modules/d3-scale/src/category20b.js","../../../node_modules/d3-scale/src/category20c.js","../../../node_modules/d3-scale/src/category20.js","../../../node_modules/d3-scale/src/cubehelix.js","../../../node_modules/d3-scale/src/rainbow.js","../../../node_modules/d3-scale/src/viridis.js","../../../node_modules/d3-scale/src/sequential.js","../src/Palette.ts","../src/Shape.ts","../src/Icon.ts","../src/Entity.ts","../src/EntityCard.ts","../src/EntityPin.ts","../src/EntityRect.ts","../src/TextBox.ts","../src/EntityVertex.ts","../src/Image.ts","../src/List.ts","../src/Menu.ts","../src/ProgressBar.ts","../../../node_modules/d3-drag/src/noevent.js","../../../node_modules/d3-drag/src/nodrag.js","../../../node_modules/d3-drag/src/constant.js","../../../node_modules/d3-drag/src/event.js","../../../node_modules/d3-drag/src/drag.js","../src/Surface.ts","../src/ResizeSurface.ts","../../../node_modules/d3-zoom/src/constant.js","../../../node_modules/d3-zoom/src/event.js","../../../node_modules/d3-zoom/src/transform.js","../../../node_modules/d3-zoom/src/noevent.js","../../../node_modules/d3-zoom/src/zoom.js","../src/TitleBar.ts","../src/SVGZoomWidget.ts","../src/WidgetArray.ts","../../../node_modules/d3-brush/src/constant.js","../../../node_modules/d3-brush/src/event.js","../../../node_modules/d3-brush/src/noevent.js","../../../node_modules/d3-brush/src/brush.js","../src/index.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/common\";\nexport const PKG_VERSION = \"2.73.0\";\nexport const BUILD_VERSION = \"2.107.0\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. 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/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\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\";\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;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\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","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\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","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\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\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 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","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\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","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\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\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\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 = {},\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 = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[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 = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\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[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\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 = 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","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\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 enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\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","import {Selection} from \"./index\";\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 default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\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 var size = 0;\n this.each(function() { ++size; });\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 namespace from \"../namespace\";\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\";\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 creator from \"../creator\";\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","import creator from \"../creator\";\nimport selector from \"../selector\";\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","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\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.capture);\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, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\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.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\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 if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\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\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\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\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\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 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};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index\";\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","import creator from \"./creator\";\nimport select from \"./select\";\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 {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","var noop = {value: function() {}};\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","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(null, 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","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(function(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 interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\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.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","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 function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\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 {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 decompose, {identity} from \"./decompose.js\";\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 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 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.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","export default function piecewise(interpolate, values) {\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","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 {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 {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 {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 {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","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","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 {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 {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}\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_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 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 end: transition_end\n};\n","export function linear(t) {\n return +t;\n}\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","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","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","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 return defaultTiming.time = now(), defaultTiming;\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 {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 function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return x;\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\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","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(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 start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - 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","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\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.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\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 for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\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","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) 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","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","import deviation from \"../deviation\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n}\n","import ascending from \"./ascending\";\nimport number from \"./number\";\nimport quantile from \"./quantile\";\n\nexport default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n","import ascending from \"./ascending\";\n\nexport default function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n","export default function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","import min from \"./min\";\n\nexport default function(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\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\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\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","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","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","// [[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 {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 \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return 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","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\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 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","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","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\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(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return 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 {\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[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[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[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[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[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 var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\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 {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 { classID2Meta, ClassMeta } from \"@hpcc-js/util\";\n\nfunction applyMixins(derivedCtor: any, baseCtors: any[]) {\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor).forEach(name => {\n if (name !== \"constructor\") {\n const descriptor = Object.getOwnPropertyDescriptor(baseCtor, name);\n Object.defineProperty(derivedCtor, name, descriptor);\n }\n });\n });\n}\n\nexport class Class {\n _class: string;\n\n class(): string;\n class(_: string): this;\n class(_?: string): string | this {\n if (!arguments.length) return this._class;\n this._class = _;\n return this;\n }\n\n classID() {\n return this._class.split(\" \").pop();\n }\n\n classMeta(): ClassMeta {\n return classID2Meta(this.classID());\n }\n\n implements(source) {\n applyMixins(this, [source]);\n }\n\n mixin(mixinClass) {\n this.implements(mixinClass.prototype);\n // Special case mixins ---\n if (mixinClass.prototype.hasOwnProperty(\"_class\")) {\n this._class += \" \" + mixinClass.prototype._class.split(\" \").pop();\n }\n }\n\n overrideMethod<M extends keyof this>(methodID: M, newMethod: this[M]): this {\n if (this[methodID] === undefined) {\n throw new Error(`Method: ${methodID.toString()} does not exist.`);\n }\n const origMethod = this[methodID];\n this[methodID] = function () {\n arguments[arguments.length] = origMethod;\n arguments.length++;\n return (newMethod as any).apply(this, arguments);\n } as any;\n return this;\n }\n\n cssTag(id: string): string {\n return (\"\" + id).replace(/[^a-z0-9]/g, (s) => {\n const c = s.charCodeAt(0);\n if (c === 32) return \"-\";\n if (c >= 65 && c <= 90) return \"_\" + s.toLowerCase();\n return \"_0x\" + c.toString(16);\n });\n }\n}\nClass.prototype._class = \"common_Class\";\n","import { hashSum } from \"@hpcc-js/util\";\nimport { event as d3Event } from \"d3-selection\";\nimport { Class } from \"./Class\";\n\nconst GEN_PUB_STUBS: boolean = false;\n\nfunction deepEqual(a, b) {\n if (a === b) return true;\n\n const arrA = Array.isArray(a);\n const arrB = Array.isArray(b);\n let i;\n\n if (arrA && arrB) {\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++)\n if (!deepEqual(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n const keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n\n const dateA = a instanceof Date;\n const dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() === b.getTime();\n if (dateA != dateB) return false;\n\n const regexpA = a instanceof RegExp;\n const regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() === b.toString();\n if (regexpA != regexpB) return false;\n\n for (i = 0; i < keys.length; i++)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = 0; i < keys.length; i++)\n if (!deepEqual(a[keys[i]], b[keys[i]])) return false;\n\n return true;\n }\n\n return false;\n}\n\nconst __meta_ = \"__meta_\";\nconst __private_ = \"__private_\";\nconst __prop_ = \"_\";\nconst __prop_data_ = \"__prop_\";\nconst __default_ = \"__default_\";\n\nfunction isMeta(key) {\n return key.indexOf(__meta_) === 0;\n}\n\nfunction isPrivate(obj, key) {\n return obj[__private_ + key] || obj[__private_ + __meta_ + key];\n}\n\nexport interface IAutoExpand extends PropertyExt {\n // AutoExpand items may have \"incomplete\" instances while the user is editing them in the PropertyEditor\n owner(): PropertyExt;\n owner(_: PropertyExt): this;\n valid(): boolean;\n}\n\nexport type TagTypes = \"Private\" | \"Shared\" | \"Basic\" | \"Intermediate\" | \"Advanced\" | \"Theme\" | \"Serial\";\nexport type PublishTypes = \"any\" | \"number\" | \"boolean\" | \"string\" | \"set\" | \"array\" | \"object\" | \"widget\" | \"widgetArray\" | \"propertyArray\" | \"html-color\" | \"proxy\";\nexport interface IPublishExt {\n override?: boolean;\n disable?: (w) => boolean;\n validate?: (w) => boolean;\n hidden?: (w) => boolean;\n optional?: boolean;\n tags?: TagTypes[];\n autoExpand?: new () => IAutoExpand;\n noDeserialize?: boolean;\n render?: boolean;\n icons?: string[];\n editor_input?: (context, widget, cell, param) => void;\n saveButton?: string;\n saveButtonID?: string;\n number?: any;\n reset?: boolean;\n // Amcharts - really needed?\n min?: number;\n max?: number;\n step?: number;\n inputType?: string;\n internal?: boolean;\n range?: { min: number, max: number, step: number };\n multiline?: boolean;\n}\n\nexport class Meta {\n id;\n type: PublishTypes;\n origDefaultValue;\n defaultValue;\n description;\n set;\n ext: IPublishExt;\n checkedAssign;\n\n constructor(id, defaultValue, type, description, set, ext?: IPublishExt) {\n ext = ext || {};\n this.id = id;\n this.type = type;\n this.origDefaultValue = defaultValue;\n this.defaultValue = ext.optional && defaultValue === null ? undefined : defaultValue;\n this.description = description;\n this.set = set;\n this.ext = ext;\n\n switch (type) {\n case \"any\":\n this.checkedAssign = _ => _;\n break;\n case \"set\":\n this.checkedAssign = function (_) {\n if ((window as any).__hpcc_debug) {\n const options = typeof set === \"function\" ? set.call(this) : set;\n if (options && options.length && options.indexOf(_) < 0) {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + JSON.stringify(options));\n }\n }\n return _;\n };\n break;\n case \"html-color\":\n this.checkedAssign = function (_) {\n if ((window as any).__hpcc_debug && _ && _ !== \"red\") {\n const litmus = \"red\";\n const d = document.createElement(\"div\");\n d.style.color = litmus;\n d.style.color = _;\n // Element's style.color will be reverted to litmus or set to \"\" if an invalid color is given\n if (d.style.color === litmus || d.style.color === \"\") {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n }\n return _;\n };\n break;\n case \"boolean\":\n this.checkedAssign = function (_) {\n return typeof (_) === \"string\" && [\"false\", \"off\", \"0\"].indexOf(_.toLowerCase()) >= 0 ? false : Boolean(_);\n };\n break;\n case \"number\":\n this.checkedAssign = function (_) {\n return Number(_);\n };\n break;\n case \"string\":\n this.checkedAssign = function (_) {\n return String(_);\n };\n break;\n case \"array\":\n this.checkedAssign = function (_) {\n if (!(_ instanceof Array)) {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n return _;\n };\n break;\n case \"object\":\n this.checkedAssign = function (_) {\n if (!(_ instanceof Object)) {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n return _;\n };\n break;\n case \"widget\":\n this.checkedAssign = function (_) {\n if (!_._class || _._class.indexOf(\"common_PropertyExt\") < 0) {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n return _;\n };\n break;\n case \"widgetArray\":\n this.checkedAssign = function (_) {\n if (_.some(function (row) { return (!row._class || row._class.indexOf(\"common_Widget\") < 0); })) {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n return _;\n };\n break;\n case \"propertyArray\":\n this.checkedAssign = function (_) {\n if (_.some(function (row) { return !row.publishedProperties; })) {\n console.error(\"Invalid value for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n return _;\n };\n break;\n default:\n this.checkedAssign = function (_) {\n if ((window as any).__hpcc_debug) {\n console.error(\"Unchecked property type for '\" + this.classID() + \".\" + id + \"': \" + _ + \" expected \" + type);\n }\n return _;\n };\n break;\n }\n }\n}\n\nclass MetaProxy {\n id: string;\n type;\n proxy;\n method;\n defaultValue;\n ext: IPublishExt;\n\n constructor(id: string, proxy, method, defaultValue, ext?: IPublishExt) {\n this.id = id;\n this.type = \"proxy\";\n this.proxy = proxy;\n this.method = method;\n this.defaultValue = defaultValue;\n this.ext = ext || {};\n }\n}\n\nfunction isMetaProxy(meta: Meta | MetaProxy): meta is MetaProxy {\n return meta.type === \"proxy\";\n}\n\nexport interface IMonitorHandle {\n remove(): void;\n}\n\nlet propExtID = 0;\nexport class PropertyExt extends Class {\n protected _id: string;\n private _watchArrIdx: number;\n private _watchArr: any;\n private _publishedProperties: Meta[] = [];\n\n constructor() {\n super();\n this.calcPublishedProperties();\n\n this._id = \"_pe\" + (++propExtID);\n this._watchArrIdx = 0;\n this._watchArr = {};\n\n this.publishedProperties(true).forEach(function (meta) {\n switch (meta.type) {\n case \"array\":\n case \"widgetArray\":\n case \"propertyArray\":\n this[meta.id + \"_reset\"]();\n break;\n }\n }, this);\n }\n\n id(): string;\n id(_: string): this;\n id(_?): string | this {\n if (!arguments.length) return this._id;\n this._id = _;\n return this;\n }\n\n // Publish Properties ---\n calcPublishedProperties(includePrivate = false, expandProxies = false): void {\n this._publishedProperties = [];\n const protoStack = [];\n let __proto__ = Object.getPrototypeOf(this);\n while (__proto__) {\n if (__proto__ === PropertyExt.prototype) {\n break;\n }\n protoStack.unshift(__proto__);\n __proto__ = Object.getPrototypeOf(__proto__);\n }\n for (__proto__ of protoStack) {\n for (const key in __proto__) {\n if (__proto__.hasOwnProperty(key)) {\n if (isMeta(key)) {\n this._publishedProperties.push(this[key]);\n }\n }\n }\n }\n }\n\n resolvePublishedProxy(meta: Meta | MetaProxy) {\n let item = this;\n while (meta instanceof MetaProxy) {\n item = item[meta.proxy];\n meta = item.publishedProperty(meta.method);\n }\n return meta;\n }\n\n publishedProperties(includePrivate = false, expandProxies = false): Meta[] {\n return this._publishedProperties.filter(meta => includePrivate || !isPrivate(this, meta.id)).map(meta => {\n if (expandProxies && isMetaProxy(meta)) {\n const selfProp = meta;\n let item = this;\n while (meta.type === \"proxy\") {\n item = item[(meta as any).proxy];\n meta = item.publishedProperty((meta as any).method);\n }\n if (meta.id !== selfProp.id) {\n meta = JSON.parse(JSON.stringify(meta)); // Clone meta so we can safely replace the id.\n meta.id = selfProp.id;\n }\n }\n return meta;\n });\n }\n\n widgetWalker(visitor: (item: PropertyExt) => void) {\n visitor(this);\n this.publishedProperties(false, true).forEach(publishItem => {\n switch (publishItem.type) {\n case \"widget\":\n const widget: PropertyExt = this[publishItem.id]();\n if (widget) {\n widget.widgetWalker(visitor);\n }\n break;\n case \"widgetArray\":\n case \"propertyArray\":\n const widgets: PropertyExt[] = this[publishItem.id]();\n if (widgets) {\n widgets.forEach((widget) => {\n widget.widgetWalker(visitor);\n });\n }\n break;\n }\n });\n }\n\n propertyWalker(visitor: (context: this, publishItem: Meta) => void, filter?: (context: this, publishItem: Meta) => boolean) {\n const context = this;\n this.publishedProperties(false, true).forEach(function (publishItem) {\n if (typeof (filter) !== \"function\" || filter(context, publishItem)) {\n visitor(context, publishItem);\n }\n });\n }\n\n serialize(): { __class, [id: string]: any } {\n const retVal = {\n __class: this.classID()\n };\n for (const prop of this.publishedProperties()) {\n if (prop.id === \"fields\") continue;\n const val = (this as any)[prop.id]();\n switch (prop.type) {\n case \"propertyArray\":\n if ((this as any)[`${prop.id}_modified`]()) {\n }\n const serialization = val.filter(item => item.valid()).map(item => item.serialize()).filter(item => item !== undefined);\n if (serialization) {\n retVal[prop.id] = serialization;\n }\n break;\n case \"widget\":\n retVal[prop.id] = val?.serialize();\n break;\n default:\n if ((this as any)[`${prop.id}_modified`]()) {\n if (!(val instanceof Object)) {\n retVal[prop.id] = val;\n }\n }\n }\n }\n return retVal;\n }\n\n deserialize(props?: { __class, [id: string]: any }): this {\n if (!props) return this;\n for (const prop of this.publishedProperties()) {\n const val = props[prop.id];\n if (val !== undefined) {\n switch (prop.type) {\n case \"propertyArray\":\n if (prop.ext && prop.ext.autoExpand) {\n this[`${prop.id}`](val.map(item => new prop.ext.autoExpand().deserialize(item)));\n }\n break;\n case \"widget\":\n const currVal = this[`${prop.id}`]();\n if (currVal.classID() === val.__class) {\n currVal.deserialize(val);\n } else {\n console.warn(\"Dynamic class initialization not supported.\");\n }\n break;\n default:\n this[`${prop.id}`](val);\n }\n }\n }\n return this;\n }\n\n publishedProperty(id) {\n return this[__meta_ + id];\n }\n\n publishedModified() {\n return this.publishedProperties().some(function (prop) {\n return this[prop.id + \"_modified\"]();\n }, this);\n }\n\n publishReset(privateArr?, exceptionsArr?) {\n privateArr = (privateArr || []).map(function (id) { return __meta_ + id; });\n exceptionsArr = (exceptionsArr || []).map(function (id) { return __meta_ + id; });\n for (const key in this) {\n if (isMeta(key)) {\n const isPrivateItem = !privateArr.length || (privateArr.length && privateArr.indexOf(key) >= 0);\n const isException = exceptionsArr.indexOf(key) >= 0;\n if (isPrivateItem && !isException) {\n this[__private_ + key] = true;\n }\n }\n }\n }\n static prevClassID: string = \"\";\n publish(id: string, defaultValue, type?: PublishTypes, description?: string, set?: string[] | (() => string[] | Array<{ value: string, text: string }>) | IPublishExt, ext: IPublishExt = {}): void {\n if (GEN_PUB_STUBS) {\n if (PropertyExt.prevClassID !== (this as any).constructor.name) {\n PropertyExt.prevClassID = (this as any).constructor.name;\n console.info(`// ${PropertyExt.prevClassID} ---`);\n }\n let jsType: string = type;\n switch (type) {\n case \"set\":\n case \"html-color\":\n jsType = \"string\";\n break;\n case \"array\":\n case \"widgetArray\":\n case \"propertyArray\":\n jsType = \"any[]\";\n break;\n }\n console.info(` ${id}(): ${jsType};\n ${id}(_: ${jsType}): this;\n ${id}_exists(): boolean;`);\n }\n if (id.indexOf(\"_\") === 0) {\n id = id.slice(1);\n }\n if (this[__meta_ + id] !== undefined && !ext.override) {\n throw new Error(id + \" is already published.\");\n }\n const meta = this[__meta_ + id] = new Meta(id, defaultValue, type, description, set, ext);\n if (meta.ext.internal) {\n this[__private_ + id] = true;\n }\n Object.defineProperty(this, __prop_ + id, {\n set(_) {\n if (_ === undefined) {\n _ = null;\n } else if (_ === \"\" && meta.ext.optional) {\n _ = null;\n } else if (_ !== null) {\n _ = meta.checkedAssign.call(this, _);\n }\n this.broadcast(id, _, this[__prop_data_ + id]);\n if (_ === null) {\n delete this[__prop_data_ + id];\n } else {\n this[__prop_data_ + id] = _;\n }\n },\n\n get() {\n if (this[id + \"_disabled\"]()) return this[id + \"_default\"]();\n return this[__prop_data_ + id] !== undefined ? this[__prop_data_ + id] : this[id + \"_default\"]();\n },\n configurable: true\n });\n if (this[id]) {\n } else {\n if (type === \"propertyArray\") {\n this[id] = function (_) {\n if (!arguments.length) return this[__prop_ + id];\n this[__prop_ + id] = _.map(item => {\n if (!meta.ext.noDeserialize && meta.ext.autoExpand && !(item instanceof meta.ext.autoExpand)) {\n item = new meta.ext.autoExpand().deserialize(item);\n }\n item.owner(this);\n return item;\n });\n return this;\n };\n } else {\n this[id] = function (_) {\n if (!arguments.length) return this[__prop_ + id];\n this[__prop_ + id] = _;\n return this;\n };\n }\n }\n this[id + \"_disabled\"] = function () {\n return ext && ext.disable ? !!ext.disable(this) : false;\n };\n this[id + \"_hidden\"] = function () {\n return ext && ext.hidden ? !!ext.hidden(this) : false;\n };\n this[id + \"_valid\"] = function () {\n return ext && ext.validate ? this[id + \"_disabled\"]() || (ext.optional && !this[id + \"_exists\"]()) || (ext.autoExpand && !this.valid()) || !!ext.validate(this) : true;\n };\n this[id + \"_modified\"] = function () {\n if (type === \"propertyArray\") {\n return this[__prop_data_ + id] && (this[__prop_data_ + id].some(item => item.valid()));\n }\n return this[__prop_data_ + id] !== undefined;\n };\n this[id + \"_exists\"] = function () {\n if (this[__prop_data_ + id] != null && !(this[__prop_data_ + id] === \"\" && ext.optional === true)) return true;\n if (this[id + \"_default\"]() != null && !(this[id + \"_default\"]() === \"\" && ext.optional === true)) return true;\n return false;\n };\n this[id + \"_default\"] = function (_) {\n if (!arguments.length) return this[__default_ + id] !== undefined ? this[__default_ + id] : meta.defaultValue;\n if (_ === \"\") {\n _ = null;\n }\n if (_ === null) {\n delete this[__default_ + id];\n } else {\n this[__default_ + id] = _;\n }\n return this;\n };\n this[id + \"_reset\"] = function () {\n switch (type) {\n case \"widget\":\n if (this[__prop_data_ + id]) {\n this[__prop_data_ + id].target(null);\n }\n break;\n case \"widgetArray\":\n if (this[__prop_data_ + id]) {\n this[__prop_data_ + id].forEach(function (widget) {\n widget.target(null);\n });\n }\n break;\n }\n\n switch (type) {\n case \"array\":\n case \"widgetArray\":\n case \"propertyArray\":\n this[__default_ + id] = this[id + \"_default\"]().map(function (row) { return row; });\n break;\n }\n delete this[__prop_data_ + id];\n return this;\n };\n this[id + \"_options\"] = function () {\n if (typeof set === \"function\") {\n const retVal = meta.ext.optional ? [null] : [];\n return retVal.concat(set.apply(this, arguments));\n }\n return set;\n };\n }\n\n publishWidget(prefix, WidgetType, id) {\n for (const key in WidgetType.prototype) {\n if (key.indexOf(\"__meta\") === 0) {\n const publishItem = WidgetType.prototype[key];\n this.publishProxy(prefix + __prop_data_ + publishItem.id, id, publishItem.method || publishItem.id);\n }\n }\n }\n\n publishProxy(id: string, proxy, method?, defaultValue?) {\n method = method || id;\n if (this[__meta_ + id] !== undefined) {\n throw new Error(id + \" is already published.\");\n }\n this[__meta_ + id] = new MetaProxy(id, proxy, method, defaultValue);\n this[id] = function (_) {\n if (!arguments.length) return defaultValue === undefined || this[id + \"_modified\"]() ? this[proxy][method]() : defaultValue;\n if (defaultValue !== undefined && _ === defaultValue) {\n this[proxy][method + \"_reset\"]();\n } else {\n this[proxy][method](_);\n }\n return this;\n };\n this[id + \"_disabled\"] = function () {\n return this[proxy][method + \"_disabled\"]();\n };\n this[id + \"_modified\"] = function () {\n return this[proxy][method + \"_modified\"]() && (defaultValue === undefined || this[proxy][method]() !== defaultValue);\n };\n this[id + \"_exists\"] = function () {\n return this[proxy][method + \"_exists\"]();\n };\n this[id + \"_default\"] = function (_) {\n if (!arguments.length) return this[proxy][method + \"_default\"]();\n this[proxy][method + \"_default\"](_);\n return this;\n };\n this[id + \"_reset\"] = function () {\n this[proxy][method + \"_reset\"]();\n return this;\n };\n this[id + \"_options\"] = function () {\n return this[proxy][method + \"_options\"]();\n };\n }\n\n monitorProperty(propID: string, func: (id: string, newVal: any, oldVal: any) => void): IMonitorHandle {\n const meta = this.publishedProperty(propID);\n switch (meta.type) {\n case \"proxy\":\n if (this[meta.proxy]) {\n return this[meta.proxy].monitorProperty(meta.method, function (_key, newVal, oldVal) {\n func(meta.id, newVal, oldVal);\n });\n } else {\n return {\n remove: () => { }\n };\n }\n default:\n const idx = this._watchArrIdx++;\n this._watchArr[idx] = { propertyID: propID, callback: func };\n const context = this;\n return {\n remove: () => {\n delete context._watchArr[idx];\n }\n };\n }\n }\n\n monitor(func: (id: string, newVal: any, oldVal: any, source: PropertyExt) => void): { remove: () => void } {\n const idx = this._watchArrIdx++;\n this._watchArr[idx] = { propertyID: undefined, callback: func };\n return {\n remove: () => {\n delete this._watchArr[idx];\n }\n };\n }\n\n broadcast(key, newVal, oldVal, source?) {\n source = source || this;\n if (!deepEqual(newVal, oldVal)) {\n for (const idx in this._watchArr) {\n const monitor = this._watchArr[idx];\n if ((monitor.propertyID === undefined || monitor.propertyID === key) && monitor.callback) {\n // console.log(`${this.classID()}->broadcast(${key}, ${newVal}, ${oldVal})`);\n setTimeout(function (monitor2) {\n monitor2.callback(key, newVal, oldVal, source);\n }, 0, monitor);\n }\n }\n }\n }\n\n applyTheme(theme) {\n if (!theme) {\n return;\n }\n const clsArr = this._class.split(\" \");\n for (const i in clsArr) {\n if (theme[clsArr[i]]) {\n for (const paramName in theme[clsArr[i]]) {\n if (paramName === \"overrideTags\" && theme[clsArr[i]][paramName] instanceof Object) {\n for (const param in theme[clsArr[i]][paramName]) {\n if (this.publishedProperty(paramName).ext) {\n this.publishedProperty(paramName).ext.tags = theme[clsArr[i]][paramName][param];\n }\n }\n continue;\n }\n if (this.publishedProperty(paramName)) {\n this.publishedProperty(paramName).defaultValue = theme[clsArr[i]][paramName];\n }\n }\n }\n }\n }\n\n copyPropsTo(other: PropertyExt, ignore: string[] = []): this {\n this.publishedProperties(false).filter(meta => ignore.indexOf(meta.id) < 0).forEach(meta => {\n if (this[meta.id + \"_exists\"]()) {\n other[meta.id](this[meta.id]());\n } else {\n other[meta.id + \"_reset\"]();\n }\n });\n return this;\n }\n\n private metaHash(meta): string {\n if (this[meta.id + \"_exists\"]()) {\n let value = this[meta.id]();\n const proxyMeta = this.resolvePublishedProxy(meta);\n switch (proxyMeta.type) {\n case \"widget\":\n value = value.hashSum();\n break;\n case \"widgetArray\":\n case \"propertyArray\":\n value = hashSum(value.map(v => v.hashSum()));\n break;\n default:\n }\n return value;\n }\n return \"\";\n }\n\n propertyHash(properties: string[] = [], more = {}): string {\n const props: { [key: string]: any } = more;\n this.publishedProperties(false).filter(meta => properties.length === 0 || properties.indexOf(meta.id) >= 0).forEach(meta => {\n props[meta.id] = this.metaHash(meta);\n });\n return hashSum(props);\n }\n\n hashSum(ignore: string[] = [], more = {}): string {\n ignore = [...ignore, \"classed\"];\n const props: { [key: string]: any } = more;\n this.publishedProperties(false).filter(meta => ignore.indexOf(meta.id) < 0).forEach(meta => {\n props[meta.id] = this.metaHash(meta);\n });\n return hashSum(props);\n }\n\n // Events ---\n on(eventID, func, stopPropagation = false): this {\n const context = this;\n this.overrideMethod(eventID, function (...args: any[]) {\n const origFunc = args[args.length - 1];\n let retVal;\n if (stopPropagation) {\n if (d3Event && d3Event.stopPropagation) {\n d3Event.stopPropagation();\n }\n [].push.call(args, origFunc);\n } else {\n retVal = origFunc.apply(context, args);\n }\n const retVal2 = func.apply(context, args);\n return retVal2 !== undefined ? retVal2 : retVal;\n });\n return this;\n }\n}\nPropertyExt.prototype._class += \" common_PropertyExt\";\n\nexport function publish(defaultValue, type?: PublishTypes, description?: string, set?: string[] | (() => string[] | Array<{ value: string, text: string }>) | IPublishExt, ext: IPublishExt = {}) {\n return function (target: any, key: string) {\n if (!key) throw new Error(\"???\");\n if (ext.reset) {\n target.publishReset();\n }\n target.publish(key, defaultValue, type, description, set, ext);\n };\n}\nexport type publish<T, U> = {\n (_: U): T;\n (): U;\n};\n\nexport function publishProxy(proxy: string, method?: string, defaultValue?, ext: { reset?: boolean } = {}) {\n return function (target: any, key: string) {\n if (ext.reset) {\n target.publishReset();\n }\n target.publishProxy(key, proxy, method, defaultValue);\n };\n}\n","import { isArray } from \"@hpcc-js/util\";\nimport { ascending as d3Ascending, descending as d3Descending } from \"d3-array\";\nimport { select as d3Select, Selection as d3SelectionT } from \"d3-selection\";\nimport { timeFormat as d3TimeFormat } from \"d3-time-format\";\n\nfunction _naturalSort(a, b, order, idx, sortCaseSensitive) {\n const re = /(^([+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?$|^0x[0-9a-f]+$|\\d+)/gi;\n const sre = /(^[ ]*|[ ]*$)/g;\n const dre = /(^([\\w ]+,?[\\w ]+)?[\\w ]+,?[\\w ]+\\d+:\\d+(:\\d+)?[\\w ]?|^\\d{1,4}[\\/\\-]\\d{1,4}[\\/\\-]\\d{1,4}|^\\w+, \\w+ \\d+, \\d{4})/;\n const ore = /^0/;\n const i = function (s) { return !sortCaseSensitive && (\"\" + s).toLowerCase() || \"\" + s; };\n // convert all to strings strip whitespace\n const x = i(idx ? a[idx] : a).replace(sre, \"\") || \"\";\n const y = i(idx ? b[idx] : b).replace(sre, \"\") || \"\";\n // chunk/tokenize\n const xN = x.replace(re, \"\\0$1\\0\").replace(/\\0$/, \"\").replace(/^\\0/, \"\").split(\"\\0\");\n const yN = y.replace(re, \"\\0$1\\0\").replace(/\\0$/, \"\").replace(/^\\0/, \"\").split(\"\\0\");\n // numeric or date detection\n const xD = (xN.length !== 1 && x.match(dre) && Date.parse(x));\n const yD = xD && y.match(dre) && Date.parse(y) || null;\n let oFxNcL;\n let oFyNcL;\n // first try and sort Hex codes or Dates\n if (yD) {\n if (xD < yD) {\n return order === \"ascending\" ? -1 : 1;\n } else if (xD > yD) {\n return order === \"ascending\" ? 1 : -1;\n }\n }\n // natural sorting through split numeric strings and default strings\n for (let cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {\n // find floats not starting with \"0\", string or 0 if not defined (Clint Priest)\n oFxNcL = !(xN[cLoc] || \"\").match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;\n oFyNcL = !(yN[cLoc] || \"\").match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;\n // handle numeric vs string comparison - number < string - (Kyle Adams)\n if (isNaN(oFxNcL) !== isNaN(oFyNcL)) {\n return (isNaN(oFxNcL)) ? 1 : -1;\n } else if (typeof oFxNcL !== typeof oFyNcL) {\n // rely on string comparison if different types - i.e. \"02\" < 2 != \"02\" < \"2\"\n oFxNcL += \"\";\n oFyNcL += \"\";\n }\n if (oFxNcL < oFyNcL) { return order === \"ascending\" ? -1 : 1; }\n if (oFxNcL > oFyNcL) { return order === \"ascending\" ? 1 : -1; }\n }\n return 0;\n}\n\n// Selection Bag(s) ---\nexport class SelectionBase {\n protected __widget;\n private __svgGlowID: string;\n\n constructor(widget) {\n // Can't import Widget or SVGWidget as it breaks AMD loading...\n this.__widget = widget;\n }\n\n svgGlowID(): string {\n if (this.__svgGlowID === undefined) {\n this.__svgGlowID = this.__widget.svgGlowID && this.__widget.svgGlowID() || \"\";\n }\n return this.__svgGlowID;\n }\n}\n\nexport interface ISelectionItem {\n _id: string;\n element(): d3SelectionT<Element, any, Element, any>;\n}\n\nexport class SelectionBag extends SelectionBase {\n items: { [key: string]: ISelectionItem };\n constructor(widget) {\n super(widget);\n this.items = {};\n }\n\n clear() {\n for (const key in this.items) {\n this.items[key].element()\n .classed(\"selected\", false)\n .attr(\"filter\", null)\n ;\n }\n this.items = {};\n }\n\n isEmpty() {\n for (const _key in this.items) { // jshint ignore:line\n return false;\n }\n return true;\n }\n\n append(item: ISelectionItem) {\n this.items[item._id] = item;\n item.element()\n .classed(\"selected\", true)\n .attr(\"filter\", this.svgGlowID() ? `url(#${this.svgGlowID()})` : null)\n ;\n }\n\n remove(item: ISelectionItem) {\n this.items[item._id].element()\n .classed(\"selected\", false)\n .attr(\"filter\", null)\n ;\n delete this.items[item._id];\n }\n\n isSelected(item: ISelectionItem) {\n return this.items[item._id] !== undefined;\n }\n\n get() {\n const retVal = [];\n for (const key in this.items) {\n retVal.push(this.items[key]);\n }\n return retVal;\n }\n\n set(itemArray: ISelectionItem[]) {\n this.clear();\n itemArray.forEach(function (item) {\n this.append(item);\n }, this);\n }\n\n click = function (item: ISelectionItem, evt) {\n if (evt.ctrlKey) {\n if (this.items[item._id]) {\n this.remove(item);\n } else {\n this.append(item);\n }\n } else {\n this.clear();\n this.append(item);\n }\n };\n}\n\nexport class SimpleSelection extends SelectionBase {\n constructor(widget, widgetElement, skipBringToTop?) {\n super(widget);\n this.widgetElement(widgetElement);\n this.skipBringToTop(skipBringToTop);\n }\n\n _widgetElement;\n widgetElement(_?) {\n if (!arguments.length) return this._widgetElement;\n this._widgetElement = _;\n return this;\n }\n\n _skipBringToTop;\n skipBringToTop(_) {\n if (!arguments.length) return this._skipBringToTop;\n this._skipBringToTop = _;\n return this;\n }\n\n _initialSelection: (d) => boolean;\n enter(elements) {\n const context = this;\n elements\n .each(function (d) {\n const selected: boolean = context._initialSelection ? context._initialSelection(d.data) : false;\n d3Select(this)\n .classed(\"selected\", selected)\n .classed(\"deselected\", !selected)\n .attr(\"filter\", context.svgGlowID() && selected ? `url(#${context.svgGlowID()})` : null)\n ;\n })\n .on(\"click.SimpleSelection\", function () {\n context.click(this);\n })\n .on(\"mouseover.SimpleSelection\", function () {\n context.mouseOver(this);\n })\n .on(\"mouseout.SimpleSelection\", function () {\n context.mouseOut(this);\n })\n ;\n }\n click(domNode): boolean {\n if (!this._skipBringToTop) {\n domNode.parentNode.appendChild(domNode);\n }\n const element = d3Select(domNode);\n const wasSelected = element.classed(\"selected\");\n this._widgetElement.selectAll(\".selected\")\n .classed(\"selected\", false)\n .classed(\"deselected\", true)\n .attr(\"filter\", null)\n ;\n if (!wasSelected) {\n element\n .classed(\"selected\", true)\n .classed(\"deselected\", false)\n .attr(\"filter\", this.svgGlowID() ? `url(#${this.svgGlowID()})` : null)\n ;\n }\n return !wasSelected;\n }\n mouseOver(domNode) {\n d3Select(domNode)\n .classed(\"over\", true)\n ;\n }\n mouseOut(domNode) {\n d3Select(domNode)\n .classed(\"over\", null)\n ;\n }\n selected(domNode) {\n return d3Select(domNode).classed(\"selected\");\n }\n selection(_) {\n if (!arguments.length) {\n return this.selection2().map(row => JSON.stringify(row));\n }\n this.selection2(d => _.indexOf(JSON.stringify(d)) >= 0);\n return this;\n }\n selection2(): any[];\n selection2(isSelected: (d) => boolean): this;\n selection2(isSelected?: (d) => boolean): any[] | this {\n if (!arguments.length) {\n const retVal: any[] = [];\n if (this._widgetElement) {\n this._widgetElement.selectAll(\".selected\")\n .each(d => retVal.push(d))\n ;\n }\n return retVal;\n }\n if (this._widgetElement) {\n const context = this;\n this._widgetElement.selectAll(\".selected,.deselected\")\n .each(function (d) {\n const selected = isSelected(d);\n d3Select(this)\n .classed(\"selected\", selected)\n .classed(\"deselected\", !selected)\n .attr(\"filter\", (selected && context.svgGlowID()) ? `url(#${context.svgGlowID()})` : null)\n ;\n if (selected && !context._skipBringToTop) {\n safeRaise(this);\n }\n })\n ;\n } else {\n this._initialSelection = isSelected;\n }\n return this;\n }\n}\n\nexport function SimpleSelectionMixin(skipBringToTop) {\n this._selection = new SimpleSelection(this, null, skipBringToTop);\n}\n\nSimpleSelectionMixin.prototype.serializeState = function () {\n return {\n selection: this._selection.selection(),\n data: this.data()\n };\n};\n\nSimpleSelectionMixin.prototype.deserializeState = function (state) {\n if (state) {\n this._selection.selection(state.selection);\n if (state.data) {\n this.data(state.data);\n }\n }\n return this;\n};\n\nconst perf: any = window.performance;\nconst now = perf && (perf.now || perf.mozNow || perf.msNow || perf.oNow || perf.webkitNow);\n\nconst faCharMap = { \"fa-500px\": \"\", \"fa-address-book\": \"\", \"fa-address-book-o\": \"\", \"fa-address-card\": \"\", \"fa-address-card-o\": \"\", \"fa-adjust\": \"\", \"fa-adn\": \"\", \"fa-align-center\": \"\", \"fa-align-justify\": \"\", \"fa-align-left\": \"\", \"fa-align-right\": \"\", \"fa-amazon\": \"\", \"fa-ambulance\": \"\", \"fa-american-sign-language-interpreting\": \"\", \"fa-anchor\": \"\", \"fa-android\": \"\", \"fa-angellist\": \"\", \"fa-angle-double-down\": \"\", \"fa-angle-double-left\": \"\", \"fa-angle-double-right\": \"\", \"fa-angle-double-up\": \"\", \"fa-angle-down\": \"\", \"fa-angle-left\": \"\", \"fa-angle-right\": \"\", \"fa-angle-up\": \"\", \"fa-apple\": \"\", \"fa-archive\": \"\", \"fa-area-chart\": \"\", \"fa-arrow-circle-down\": \"\", \"fa-arrow-circle-left\": \"\", \"fa-arrow-circle-o-down\": \"\", \"fa-arrow-circle-o-left\": \"\", \"fa-arrow-circle-o-right\": \"\", \"fa-arrow-circle-o-up\": \"\", \"fa-arrow-circle-right\": \"\", \"fa-arrow-circle-up\": \"\", \"fa-arrow-down\": \"\", \"fa-arrow-left\": \"\", \"fa-arrow-right\": \"\", \"fa-arrow-up\": \"\", \"fa-arrows\": \"\", \"fa-arrows-alt\": \"\", \"fa-arrows-h\": \"\", \"fa-arrows-v\": \"\", \"fa-asl-interpreting\": \"\", \"fa-assistive-listening-systems\": \"\", \"fa-asterisk\": \"\", \"fa-at\": \"\", \"fa-audio-description\": \"\", \"fa-automobile\": \"\", \"fa-backward\": \"\", \"fa-balance-scale\": \"\", \"fa-ban\": \"\", \"fa-bandcamp\": \"\", \"fa-bank\": \"\", \"fa-bar-chart\": \"\", \"fa-bar-chart-o\": \"\", \"fa-barcode\": \"\", \"fa-bars\": \"\", \"fa-bath\": \"\", \"fa-bathtub\": \"\", \"fa-battery\": \"\", \"fa-battery-0\": \"\", \"fa-battery-1\": \"\", \"fa-battery-2\": \"\", \"fa-battery-3\": \"\", \"fa-battery-4\": \"\", \"fa-battery-empty\": \"\", \"fa-battery-full\": \"\", \"fa-battery-half\": \"\", \"fa-battery-quarter\": \"\", \"fa-battery-three-quarters\": \"\", \"fa-bed\": \"\", \"fa-beer\": \"\", \"fa-behance\": \"\", \"fa-behance-square\": \"\", \"fa-bell\": \"\", \"fa-bell-o\": \"\", \"fa-bell-slash\": \"\", \"fa-bell-slash-o\": \"\", \"fa-bicycle\": \"\", \"fa-binoculars\": \"\", \"fa-birthday-cake\": \"\", \"fa-bitbucket\": \"\", \"fa-bitbucket-square\": \"\", \"fa-bitcoin\": \"\", \"fa-black-tie\": \"\", \"fa-blind\": \"\", \"fa-bluetooth\": \"\", \"fa-bluetooth-b\": \"\", \"fa-bold\": \"\", \"fa-bolt\": \"\", \"fa-bomb\": \"\", \"fa-book\": \"\", \"fa-bookmark\": \"\", \"fa-bookmark-o\": \"\", \"fa-braille\": \"\", \"fa-briefcase\": \"\", \"fa-btc\": \"\", \"fa-bug\": \"\", \"fa-building\": \"\", \"fa-building-o\": \"\", \"fa-bullhorn\": \"\", \"fa-bullseye\": \"\", \"fa-bus\": \"\", \"fa-buysellads\": \"\", \"fa-cab\": \"\", \"fa-calculator\": \"\", \"fa-calendar\": \"\", \"fa-calendar-check-o\": \"\", \"fa-calendar-minus-o\": \"\", \"fa-calendar-o\": \"\", \"fa-calendar-plus-o\": \"\", \"fa-calendar-times-o\": \"\", \"fa-camera\": \"\", \"fa-camera-retro\": \"\", \"fa-car\": \"\", \"fa-caret-down\": \"\", \"fa-caret-left\": \"\", \"fa-caret-right\": \"\", \"fa-caret-square-o-down\": \"\", \"fa-caret-square-o-left\": \"\", \"fa-caret-square-o-right\": \"\", \"fa-caret-square-o-up\": \"\", \"fa-caret-up\": \"\", \"fa-cart-arrow-down\": \"\", \"fa-cart-plus\": \"\", \"fa-cc\": \"\", \"fa-cc-amex\": \"\", \"fa-cc-diners-club\": \"\", \"fa-cc-discover\": \"\", \"fa-cc-jcb\": \"\", \"fa-cc-mastercard\": \"\", \"fa-cc-paypal\": \"\", \"fa-cc-stripe\": \"\", \"fa-cc-visa\": \"\", \"fa-certificate\": \"\", \"fa-chain\": \"\", \"fa-chain-broken\": \"\", \"fa-check\": \"\", \"fa-check-circle\": \"\", \"fa-check-circle-o\": \"\", \"fa-check-square\": \"\", \"fa-check-square-o\": \"\", \"fa-chevron-circle-down\": \"\", \"fa-chevron-circle-left\": \"\", \"fa-chevron-circle-right\": \"\", \"fa-chevron-circle-up\": \"\", \"fa-chevron-down\": \"\", \"fa-chevron-left\": \"\", \"fa-chevron-right\": \"\", \"fa-chevron-up\": \"\", \"fa-child\": \"\", \"fa-chrome\": \"\", \"fa-circle\": \"\", \"fa-circle-o\": \"\", \"fa-circle-o-notch\": \"\", \"fa-circle-thin\": \"\", \"fa-clipboard\": \"\", \"fa-clock-o\": \"\", \"fa-clone\": \"\", \"fa-close\": \"\", \"fa-cloud\": \"\", \"fa-cloud-download\": \"\", \"fa-cloud-upload\": \"\", \"fa-cny\": \"\", \"fa-code\": \"\", \"fa-code-fork\": \"\", \"fa-codepen\": \"\", \"fa-codiepie\": \"\", \"fa-coffee\": \"\", \"fa-cog\": \"\", \"fa-cogs\": \"\", \"fa-columns\": \"\", \"fa-comment\": \"\", \"fa-comment-o\": \"\", \"fa-commenting\": \"\", \"fa-commenting-o\": \"\", \"fa-comments\": \"\", \"fa-comments-o\": \"\", \"fa-compass\": \"\", \"fa-compress\": \"\", \"fa-connectdevelop\": \"\", \"fa-contao\": \"\", \"fa-copy\": \"\", \"fa-copyright\": \"\", \"fa-creative-commons\": \"\", \"fa-credit-card\": \"\", \"fa-credit-card-alt\": \"\", \"fa-crop\": \"\", \"fa-crosshairs\": \"\", \"fa-css3\": \"\", \"fa-cube\": \"\", \"fa-cubes\": \"\", \"fa-cut\": \"\", \"fa-cutlery\": \"\", \"fa-dashboard\": \"\", \"fa-dashcube\": \"\", \"fa-database\": \"\", \"fa-deaf\": \"\", \"fa-deafness\": \"\", \"fa-dedent\": \"\", \"fa-delicious\": \"\", \"fa-desktop\": \"\", \"fa-deviantart\": \"\", \"fa-diamond\": \"\", \"fa-digg\": \"\", \"fa-dollar\": \"\", \"fa-dot-circle-o\": \"\", \"fa-download\": \"\", \"fa-dribbble\": \"\", \"fa-drivers-license\": \"\", \"fa-drivers-license-o\": \"\", \"fa-dropbox\": \"\", \"fa-drupal\": \"\", \"fa-edge\": \"\", \"fa-edit\": \"\", \"fa-eercast\": \"\", \"fa-eject\": \"\", \"fa-ellipsis-h\": \"\", \"fa-ellipsis-v\": \"\", \"fa-empire\": \"\", \"fa-envelope\": \"\", \"fa-envelope-o\": \"\", \"fa-envelope-open\": \"\", \"fa-envelope-open-o\": \"\", \"fa-envelope-square\": \"\", \"fa-envira\": \"\", \"fa-eraser\": \"\", \"fa-etsy\": \"\", \"fa-eur\": \"\", \"fa-euro\": \"\", \"fa-exchange\": \"\", \"fa-exclamation\": \"\", \"fa-exclamation-circle\": \"\", \"fa-exclamation-triangle\": \"\", \"fa-expand\": \"\", \"fa-expeditedssl\": \"\", \"fa-external-link\": \"\", \"fa-external-link-square\": \"\", \"fa-eye\": \"\", \"fa-eye-slash\": \"\", \"fa-eyedropper\": \"\", \"fa-fa\": \"\", \"fa-facebook\": \"\", \"fa-facebook-f\": \"\", \"fa-facebook-official\": \"\", \"fa-facebook-square\": \"\", \"fa-fast-backward\": \"\", \"fa-fast-forward\": \"\", \"fa-fax\": \"\", \"fa-feed\": \"\", \"fa-female\": \"\", \"fa-fighter-jet\": \"\", \"fa-file\": \"\", \"fa-file-archive-o\": \"\", \"fa-file-audio-o\": \"\", \"fa-file-code-o\": \"\", \"fa-file-excel-o\": \"\", \"fa-file-image-o\": \"\", \"fa-file-movie-o\": \"\", \"fa-file-o\": \"\", \"fa-file-pdf-o\": \"\", \"fa-file-photo-o\": \"\", \"fa-file-picture-o\": \"\", \"fa-file-powerpoint-o\": \"\", \"fa-file-sound-o\": \"\", \"fa-file-text\": \"\", \"fa-file-text-o\": \"\", \"fa-file-video-o\": \"\", \"fa-file-word-o\": \"\", \"fa-file-zip-o\": \"\", \"fa-files-o\": \"\", \"fa-film\": \"\", \"fa-filter\": \"\", \"fa-fire\": \"\", \"fa-fire-extinguisher\": \"\", \"fa-firefox\": \"\", \"fa-first-order\": \"\", \"fa-flag\": \"\", \"fa-flag-checkered\": \"\", \"fa-flag-o\": \"\", \"fa-flash\": \"\", \"fa-flask\": \"\", \"fa-flickr\": \"\", \"fa-floppy-o\": \"\", \"fa-folder\": \"\", \"fa-folder-o\": \"\", \"fa-folder-open\": \"\", \"fa-folder-open-o\": \"\", \"fa-font\": \"\", \"fa-font-awesome\": \"\", \"fa-fonticons\": \"\", \"fa-fort-awesome\": \"\", \"fa-forumbee\": \"\", \"fa-forward\": \"\", \"fa-foursquare\": \"\", \"fa-free-code-camp\": \"\", \"fa-frown-o\": \"\", \"fa-futbol-o\": \"\", \"fa-gamepad\": \"\", \"fa-gavel\": \"\", \"fa-gbp\": \"\", \"fa-ge\": \"\", \"fa-gear\": \"\", \"fa-gears\": \"\", \"fa-genderless\": \"\", \"fa-get-pocket\": \"\", \"fa-gg\": \"\", \"fa-gg-circle\": \"\", \"fa-gift\": \"\", \"fa-git\": \"\", \"fa-git-square\": \"\", \"fa-github\": \"\", \"fa-github-alt\": \"\", \"fa-github-square\": \"\", \"fa-gitlab\": \"\", \"fa-gittip\": \"\", \"fa-glass\": \"\", \"fa-glide\": \"\", \"fa-glide-g\": \"\", \"fa-globe\": \"\", \"fa-google\": \"\", \"fa-google-plus\": \"\", \"fa-google-plus-circle\": \"\", \"fa-google-plus-official\": \"\", \"fa-google-plus-square\": \"\", \"fa-google-wallet\": \"\", \"fa-graduation-cap\": \"\", \"fa-gratipay\": \"\", \"fa-grav\": \"\", \"fa-group\": \"\", \"fa-h-square\": \"\", \"fa-hacker-news\": \"\", \"fa-hand-grab-o\": \"\", \"fa-hand-lizard-o\": \"\", \"fa-hand-o-down\": \"\", \"fa-hand-o-left\": \"\", \"fa-hand-o-right\": \"\", \"fa-hand-o-up\": \"\", \"fa-hand-paper-o\": \"\", \"fa-hand-peace-o\": \"\", \"fa-hand-pointer-o\": \"\", \"fa-hand-rock-o\": \"\", \"fa-hand-scissors-o\": \"\", \"fa-hand-spock-o\": \"\", \"fa-hand-stop-o\": \"\", \"fa-handshake-o\": \"\", \"fa-hard-of-hearing\": \"\", \"fa-hashtag\": \"\", \"fa-hdd-o\": \"\", \"fa-header\": \"\", \"fa-headphones\": \"\", \"fa-heart\": \"\", \"fa-heart-o\": \"\", \"fa-heartbeat\": \"\", \"fa-history\": \"\", \"fa-home\": \"\", \"fa-hospital-o\": \"\", \"fa-hotel\": \"\", \"fa-hourglass\": \"\", \"fa-hourglass-1\": \"\", \"fa-hourglass-2\": \"\", \"fa-hourglass-3\": \"\", \"fa-hourglass-end\": \"\", \"fa-hourglass-half\": \"\", \"fa-hourglass-o\": \"\", \"fa-hourglass-start\": \"\", \"fa-houzz\": \"\", \"fa-html5\": \"\", \"fa-i-cursor\": \"\", \"fa-id-badge\": \"\", \"fa-id-card\": \"\", \"fa-id-card-o\": \"\", \"fa-ils\": \"\", \"fa-image\": \"\", \"fa-imdb\": \"\", \"fa-inbox\": \"\", \"fa-indent\": \"\", \"fa-industry\": \"\", \"fa-info\": \"\", \"fa-info-circle\": \"\", \"fa-inr\": \"\", \"fa-instagram\": \"\", \"fa-institution\": \"\", \"fa-internet-explorer\": \"\", \"fa-intersex\": \"\", \"fa-ioxhost\": \"\", \"fa-italic\": \"\", \"fa-joomla\": \"\", \"fa-jpy\": \"\", \"fa-jsfiddle\": \"\", \"fa-key\": \"\", \"fa-keyboard-o\": \"\", \"fa-krw\": \"\", \"fa-language\": \"\", \"fa-laptop\": \"\", \"fa-lastfm\": \"\", \"fa-lastfm-square\": \"\", \"fa-leaf\": \"\", \"fa-leanpub\": \"\", \"fa-legal\": \"\", \"fa-lemon-o\": \"\", \"fa-level-down\": \"\", \"fa-level-up\": \"\", \"fa-life-bouy\": \"\", \"fa-life-buoy\": \"\", \"fa-life-ring\": \"\", \"fa-life-saver\": \"\", \"fa-lightbulb-o\": \"\", \"fa-line-chart\": \"\", \"fa-link\": \"\", \"fa-linkedin\": \"\", \"fa-linkedin-square\": \"\", \"fa-linode\": \"\", \"fa-linux\": \"\", \"fa-list\": \"\", \"fa-list-alt\": \"\", \"fa-list-ol\": \"\", \"fa-list-ul\": \"\", \"fa-location-arrow\": \"\", \"fa-lock\": \"\", \"fa-long-arrow-down\": \"\", \"fa-long-arrow-left\": \"\", \"fa-long-arrow-right\": \"\", \"fa-long-arrow-up\": \"\", \"fa-low-vision\": \"\", \"fa-magic\": \"\", \"fa-magnet\": \"\", \"fa-mail-forward\": \"\", \"fa-mail-reply\": \"\", \"fa-mail-reply-all\": \"\", \"fa-male\": \"\", \"fa-map\": \"\", \"fa-map-marker\": \"\", \"fa-map-o\": \"\", \"fa-map-pin\": \"\", \"fa-map-signs\": \"\", \"fa-mars\": \"\", \"fa-mars-double\": \"\", \"fa-mars-stroke\": \"\", \"fa-mars-stroke-h\": \"\", \"fa-mars-stroke-v\": \"\", \"fa-maxcdn\": \"\", \"fa-meanpath\": \"\", \"fa-medium\": \"\", \"fa-medkit\": \"\", \"fa-meetup\": \"\", \"fa-meh-o\": \"\", \"fa-mercury\": \"\", \"fa-microchip\": \"\", \"fa-microphone\": \"\", \"fa-microphone-slash\": \"\", \"fa-minus\": \"\", \"fa-minus-circle\": \"\", \"fa-minus-square\": \"\", \"fa-minus-square-o\": \"\", \"fa-mixcloud\": \"\", \"fa-mobile\": \"\", \"fa-mobile-phone\": \"\", \"fa-modx\": \"\", \"fa-money\": \"\", \"fa-moon-o\": \"\", \"fa-mortar-board\": \"\", \"fa-motorcycle\": \"\", \"fa-mouse-pointer\": \"\", \"fa-music\": \"\", \"fa-navicon\": \"\", \"fa-neuter\": \"\", \"fa-newspaper-o\": \"\", \"fa-object-group\": \"\", \"fa-object-ungroup\": \"\", \"fa-odnoklassniki\": \"\", \"fa-odnoklassniki-square\": \"\", \"fa-opencart\": \"\", \"fa-openid\": \"\", \"fa-opera\": \"\", \"fa-optin-monster\": \"\", \"fa-outdent\": \"\", \"fa-pagelines\": \"\", \"fa-paint-brush\": \"\", \"fa-paper-plane\": \"\", \"fa-paper-plane-o\": \"\", \"fa-paperclip\": \"\", \"fa-paragraph\": \"\", \"fa-paste\": \"\", \"fa-pause\": \"\", \"fa-pause-circle\": \"\", \"fa-pause-circle-o\": \"\", \"fa-paw\": \"\", \"fa-paypal\": \"\", \"fa-pencil\": \"\", \"fa-pencil-square\": \"\", \"fa-pencil-square-o\": \"\", \"fa-percent\": \"\", \"fa-phone\": \"\", \"fa-phone-square\": \"\", \"fa-photo\": \"\", \"fa-picture-o\": \"\", \"fa-pie-chart\": \"\", \"fa-pied-piper\": \"\", \"fa-pied-piper-alt\": \"\", \"fa-pied-piper-pp\": \"\", \"fa-pinterest\": \"\", \"fa-pinterest-p\": \"\", \"fa-pinterest-square\": \"\", \"fa-plane\": \"\", \"fa-play\": \"\", \"fa-play-circle\": \"\", \"fa-play-circle-o\": \"\", \"fa-plug\": \"\", \"fa-plus\": \"\", \"fa-plus-circle\": \"\", \"fa-plus-square\": \"\", \"fa-plus-square-o\": \"\", \"fa-podcast\": \"\", \"fa-power-off\": \"\", \"fa-print\": \"\", \"fa-product-hunt\": \"\", \"fa-puzzle-piece\": \"\", \"fa-qq\": \"\", \"fa-qrcode\": \"\", \"fa-question\": \"\", \"fa-question-circle\": \"\", \"fa-question-circle-o\": \"\", \"fa-quora\": \"\", \"fa-quote-left\": \"\", \"fa-quote-right\": \"\", \"fa-ra\": \"\", \"fa-random\": \"\", \"fa-ravelry\": \"\", \"fa-rebel\": \"\", \"fa-recycle\": \"\", \"fa-reddit\": \"\", \"fa-reddit-alien\": \"\", \"fa-reddit-square\": \"\", \"fa-refresh\": \"\", \"fa-registered\": \"\", \"fa-remove\": \"\", \"fa-renren\": \"\", \"fa-reorder\": \"\", \"fa-repeat\": \"\", \"fa-reply\": \"\", \"fa-reply-all\": \"\", \"fa-resistance\": \"\", \"fa-retweet\": \"\", \"fa-rmb\": \"\", \"fa-road\": \"\", \"fa-rocket\": \"\", \"fa-rotate-left\": \"\", \"fa-rotate-right\": \"\", \"fa-rouble\": \"\", \"fa-rss\": \"\", \"fa-rss-square\": \"\", \"fa-rub\": \"\", \"fa-ruble\": \"\", \"fa-rupee\": \"\", \"fa-s15\": \"\", \"fa-safari\": \"\", \"fa-save\": \"\", \"fa-scissors\": \"\", \"fa-scribd\": \"\", \"fa-search\": \"\", \"fa-search-minus\": \"\", \"fa-search-plus\": \"\", \"fa-sellsy\": \"\", \"fa-send\": \"\", \"fa-send-o\": \"\", \"fa-server\": \"\", \"fa-share\": \"\", \"fa-share-alt\": \"\", \"fa-share-alt-square\": \"\", \"fa-share-square\": \"\", \"fa-share-square-o\": \"\", \"fa-shekel\": \"\", \"fa-sheqel\": \"\", \"fa-shield\": \"\", \"fa-ship\": \"\", \"fa-shirtsinbulk\": \"\", \"fa-shopping-bag\": \"\", \"fa-shopping-basket\": \"\", \"fa-shopping-cart\": \"\", \"fa-shower\": \"\", \"fa-sign-in\": \"\", \"fa-sign-language\": \"\", \"fa-sign-out\": \"\", \"fa-signal\": \"\", \"fa-signing\": \"\", \"fa-simplybuilt\": \"\", \"fa-sitemap\": \"\", \"fa-skyatlas\": \"\", \"fa-skype\": \"\", \"fa-slack\": \"\", \"fa-sliders\": \"\", \"fa-slideshare\": \"\", \"fa-smile-o\": \"\", \"fa-snapchat\": \"\", \"fa-snapchat-ghost\": \"\", \"fa-snapchat-square\": \"\", \"fa-snowflake-o\": \"\", \"fa-soccer-ball-o\": \"\", \"fa-sort\": \"\", \"fa-sort-alpha-asc\": \"\", \"fa-sort-alpha-desc\": \"\", \"fa-sort-amount-asc\": \"\", \"fa-sort-amount-desc\": \"\", \"fa-sort-asc\": \"\", \"fa-sort-desc\": \"\", \"fa-sort-down\": \"\", \"fa-sort-numeric-asc\": \"\", \"fa-sort-numeric-desc\": \"\", \"fa-sort-up\": \"\", \"fa-soundcloud\": \"\", \"fa-space-shuttle\": \"\", \"fa-spinner\": \"\", \"fa-spoon\": \"\", \"fa-spotify\": \"\", \"fa-square\": \"\", \"fa-square-o\": \"\", \"fa-stack-exchange\": \"\", \"fa-stack-overflow\": \"\", \"fa-star\": \"\", \"fa-star-half\": \"\", \"fa-star-half-empty\": \"\", \"fa-star-half-full\": \"\", \"fa-star-half-o\": \"\", \"fa-star-o\": \"\", \"fa-steam\": \"\", \"fa-steam-square\": \"\", \"fa-step-backward\": \"\", \"fa-step-forward\": \"\", \"fa-stethoscope\": \"\", \"fa-sticky-note\": \"\", \"fa-sticky-note-o\": \"\", \"fa-stop\": \"\", \"fa-stop-circle\": \"\", \"fa-stop-circle-o\": \"\", \"fa-street-view\": \"\", \"fa-strikethrough\": \"\", \"fa-stumbleupon\": \"\", \"fa-stumbleupon-circle\": \"\", \"fa-subscript\": \"\", \"fa-subway\": \"\", \"fa-suitcase\": \"\", \"fa-sun-o\": \"\", \"fa-superpowers\": \"\", \"fa-superscript\": \"\", \"fa-support\": \"\", \"fa-table\": \"\", \"fa-tablet\": \"\", \"fa-tachometer\": \"\", \"fa-tag\": \"\", \"fa-tags\": \"\", \"fa-tasks\": \"\", \"fa-taxi\": \"\", \"fa-telegram\": \"\", \"fa-television\": \"\", \"fa-tencent-weibo\": \"\", \"fa-terminal\": \"\", \"fa-text-height\": \"\", \"fa-text-width\": \"\", \"fa-th\": \"\", \"fa-th-large\": \"\", \"fa-th-list\": \"\", \"fa-themeisle\": \"\", \"fa-thermometer\": \"\", \"fa-thermometer-0\": \"\", \"fa-thermometer-1\": \"\", \"fa-thermometer-2\": \"\", \"fa-thermometer-3\": \"\", \"fa-thermometer-4\": \"\", \"fa-thermometer-empty\": \"\", \"fa-thermometer-full\": \"\", \"fa-thermometer-half\": \"\", \"fa-thermometer-quarter\": \"\", \"fa-thermometer-three-quarters\": \"\", \"fa-thumb-tack\": \"\", \"fa-thumbs-down\": \"\", \"fa-thumbs-o-down\": \"\", \"fa-thumbs-o-up\": \"\", \"fa-thumbs-up\": \"\", \"fa-ticket\": \"\", \"fa-times\": \"\", \"fa-times-circle\": \"\", \"fa-times-circle-o\": \"\", \"fa-times-rectangle\": \"\", \"fa-times-rectangle-o\": \"\", \"fa-tint\": \"\", \"fa-toggle-down\": \"\", \"fa-toggle-left\": \"\", \"fa-toggle-off\": \"\", \"fa-toggle-on\": \"\", \"fa-toggle-right\": \"\", \"fa-toggle-up\": \"\", \"fa-trademark\": \"\", \"fa-train\": \"\", \"fa-transgender\": \"\", \"fa-transgender-alt\": \"\", \"fa-trash\": \"\", \"fa-trash-o\": \"\", \"fa-tree\": \"\", \"fa-trello\": \"\", \"fa-tripadvisor\": \"\", \"fa-trophy\": \"\", \"fa-truck\": \"\", \"fa-try\": \"\", \"fa-tty\": \"\", \"fa-tumblr\": \"\", \"fa-tumblr-square\": \"\", \"fa-turkish-lira\": \"\", \"fa-tv\": \"\", \"fa-twitch\": \"\", \"fa-twitter\": \"\", \"fa-twitter-square\": \"\", \"fa-umbrella\": \"\", \"fa-underline\": \"\", \"fa-undo\": \"\", \"fa-universal-access\": \"\", \"fa-university\": \"\", \"fa-unlink\": \"\", \"fa-unlock\": \"\", \"fa-unlock-alt\": \"\", \"fa-unsorted\": \"\", \"fa-upload\": \"\", \"fa-usb\": \"\", \"fa-usd\": \"\", \"fa-user\": \"\", \"fa-user-circle\": \"\", \"fa-user-circle-o\": \"\", \"fa-user-md\": \"\", \"fa-user-o\": \"\", \"fa-user-plus\": \"\", \"fa-user-secret\": \"\", \"fa-user-times\": \"\", \"fa-users\": \"\", \"fa-vcard\": \"\", \"fa-vcard-o\": \"\", \"fa-venus\": \"\", \"fa-venus-double\": \"\", \"fa-venus-mars\": \"\", \"fa-viacoin\": \"\", \"fa-viadeo\": \"\", \"fa-viadeo-square\": \"\", \"fa-video-camera\": \"\", \"fa-vimeo\": \"\", \"fa-vimeo-square\": \"\", \"fa-vine\": \"\", \"fa-vk\": \"\", \"fa-volume-control-phone\": \"\", \"fa-volume-down\": \"\", \"fa-volume-off\": \"\", \"fa-volume-up\": \"\", \"fa-warning\": \"\", \"fa-wechat\": \"\", \"fa-weibo\": \"\", \"fa-weixin\": \"\", \"fa-whatsapp\": \"\", \"fa-wheelchair\": \"\", \"fa-wheelchair-alt\": \"\", \"fa-wifi\": \"\", \"fa-wikipedia-w\": \"\", \"fa-window-close\": \"\", \"fa-window-close-o\": \"\", \"fa-window-maximize\": \"\", \"fa-window-minimize\": \"\", \"fa-window-restore\": \"\", \"fa-windows\": \"\", \"fa-won\": \"\", \"fa-wordpress\": \"\", \"fa-wpbeginner\": \"\", \"fa-wpexplorer\": \"\", \"fa-wpforms\": \"\", \"fa-wrench\": \"\", \"fa-xing\": \"\", \"fa-xing-square\": \"\", \"fa-y-combinator\": \"\", \"fa-y-combinator-square\": \"\", \"fa-yahoo\": \"\", \"fa-yc\": \"\", \"fa-yc-square\": \"\", \"fa-yelp\": \"\", \"fa-yen\": \"\", \"fa-yoast\": \"\", \"fa-youtube\": \"\", \"fa-youtube-play\": \"\", \"fa-youtube-square\": \"\" };\nconst faClassMap = {\n \"fa-arrows\": \"fas fa-arrows-alt\",\n \"fa-address-book-o\": \"fa fa-address-book\",\n \"fa-address-card-o\": \"fa fa-address-card\",\n \"fa-arrow-circle-o-down\": \"fa fa-arrow-alt-circle-down\",\n \"fa-arrow-circle-o-left\": \"fa fa-arrow-alt-circle-left\",\n \"fa-arrow-circle-o-right\": \"fa fa-arrow-alt-circle-right\",\n \"fa-arrow-circle-o-up\": \"fa fa-arrow-alt-circle-up\",\n \"fa-arrows-h\": \"fas fa-arrows-alt-h\",\n \"fa-arrows-v\": \"fas fa-arrows-alt-v\",\n \"fa-bell-o\": \"fa fa-bell\",\n \"fa-bell-slash-o\": \"fa fa-bell-slash\",\n \"fa-bitbucket-square\": \"fab fa-bitbucket\",\n \"fa-bookmark-o\": \"fa fa-bookmark\",\n \"fa-building-o\": \"fa fa-building\",\n \"fa-check-circle-o\": \"fa fa-check-circle\",\n \"fa-check-square-o\": \"fa fa-check-square\",\n \"fa-circle-o\": \"fa fa-circle\",\n \"fa-circle-thin\": \"fa fa-circle\",\n \"fa-cloud-download\": \"fas fa-cloud-download-alt\",\n \"fa-cloud-upload\": \"fas fa-cloud-upload-alt\",\n \"fa-comment-o\": \"fa fa-comment\",\n \"fa-commenting-o\": \"fa fa-comment-dots\",\n \"fa-comments-o\": \"fa fa-comments\",\n \"fa-credit-card-alt\": \"fas fa-credit-card\",\n \"fa-cutlery\": \"fas fa-utensils\",\n \"fa-dashboard\": \"fas fa-tachometer-alt\",\n \"fa-diamond\": \"fa fa-gem\",\n \"fa-drivers-license-o\": \"fa fa-address-card\",\n \"fa-envelope-o\": \"fa fa-envelope\",\n \"fa-envelope-open-o\": \"fa fa-envelope-open\",\n \"fa-exchange\": \"fas fa-exchange-alt\",\n \"fa-external-link\": \"fas fa-external-link-alt\",\n \"fa-external-link-square\": \"fas fa-external-link-square-alt\",\n \"fa-facebook-official\": \"fab fa-facebook-square\",\n \"fa-file-o\": \"fa fa-file\",\n \"fa-file-text-o\": \"fa fa-file-alt\",\n \"fa-flag-o\": \"fa fa-flag\",\n \"fa-folder-o\": \"fa fa-folder\",\n \"fa-folder-open-o\": \"fa fa-folder-open\",\n \"fa-heart-o\": \"fa fa-heart\",\n \"fa-hourglass-o\": \"fa fa-hourglass\",\n \"fa-id-card-o\": \"fa fa-id-card\",\n \"fa-level-down\": \"fas fa-level-down-alt\",\n \"fa-level-up\": \"fas fa-level-up-alt\",\n \"fa-long-arrow-down\": \"fas fa-long-arrow-alt-down\",\n \"fa-long-arrow-left\": \"fas fa-long-arrow-alt-left\",\n \"fa-long-arrow-right\": \"fas fa-long-arrow-alt-right\",\n \"fa-long-arrow-up\": \"fas fa-long-arrow-alt-up\",\n \"fa-mail-reply\": \"fas fa-reply\",\n \"fa-map-o\": \"fa fa-map\",\n \"fa-meanpath\": \"fas fa-square\",\n \"fa-minus-square-o\": \"fa fa-minus-square\",\n \"fa-paper-plane-o\": \"fa fa-paper-plane\",\n \"fa-pause-circle-o\": \"fa fa-pause-circle\",\n \"fa-pencil\": \"fas fa-pencil-alt\",\n \"fa-play-circle-o\": \"fa fa-play-circle\",\n \"fa-plus-square-o\": \"fa fa-plus-square\",\n \"fa-question-circle-o\": \"fa fa-question-circle\",\n \"fa-reply\": \"fas fa-reply\",\n \"fa-send-o\": \"fa fa-paper-plane\",\n \"fa-share-square-o\": \"fa fa-share-square\",\n \"fa-shield\": \"fas fa-shield-alt\",\n \"fa-sign-in\": \"fas fa-sign-in-alt\",\n \"fa-sign-out\": \"fas fa-sign-out-alt\",\n \"fa-spoon\": \"fas fa-utensil-spoon\",\n \"fa-square-o\": \"fa fa-square\",\n \"fa-star-half-empty\": \"fa fa-star-half\",\n \"fa-star-half-full\": \"fas fa-star-half-alt\",\n \"fa-star-half-o\": \"fa fa-star-half\",\n \"fa-star-o\": \"fa fa-star\",\n \"fa-sticky-note-o\": \"fa fa-sticky-note\",\n \"fa-stop-circle-o\": \"fa fa-stop-circle\",\n \"fa-tachometer\": \"fas fa-tachometer-alt\",\n \"fa-thumbs-o-down\": \"fa fa-thumbs-down\",\n \"fa-thumbs-o-up\": \"fa fa-thumbs-up\",\n \"fa-ticket\": \"fas fa-ticket-alt\",\n \"fa-times-circle-o\": \"fa fa-times-circle\",\n \"fa-times-rectangle\": \"fas fa-window-close\",\n \"fa-times-rectangle-o\": \"fa fa-window-close\",\n \"fa-trash-o\": \"fa fa-trash-alt\",\n \"fa-user-circle-o\": \"fa fa-user-circle\",\n \"fa-user-o\": \"fa fa-user\",\n \"fa-vcard-o\": \"fa fa-address-card\",\n \"fa-wheelchair-alt\": \"fas fa-wheelchair\",\n \"fa-window-close\": \"fas fa-window-close\",\n \"fa-window-close-o\": \"fa fa-window-close\",\n \"fa-youtube-play\": \"fab fa-youtube\",\n \"fa-youtube-square\": \"fab fa-youtube-square\"\n};\nexport function faKeys(): string[] {\n return Object.keys(faCharMap);\n}\n\nexport function fa5Class(key: string): string {\n return faClassMap[key] ? faClassMap[key] : key;\n}\n\nexport function faChar(key: string, defChar: string = \"fa-question\"): string {\n if (key.indexOf(\"fa-\") === 0) {\n return faCharMap[key] || faCharMap[defChar];\n }\n return key;\n}\n\nexport function faCode(key: string): number {\n return faChar(key).charCodeAt(0);\n}\n\nexport function removeHTMLFromString(str: string, div?: HTMLDivElement) {\n div = div ? div : document.createElement(\"div\");\n div.innerHTML = str;\n return div.textContent || div.innerText || \"\";\n}\n\n// Template ---\n// https://github.com/Matt-Esch/string-template (MIT)\nconst nargs = /\\{([0-9a-zA-Z_\\s\\[\\]]+)\\}/g;\nconst nargs2 = /\\{\\{([0-9a-zA-Z_\\s\\[\\]]+)\\}\\}/g;\n\nexport function templateFields(tpl: string): string[] {\n if (!tpl) return [];\n const retVal: string[] = [];\n const matches = tpl.match(nargs);\n if (matches && matches.length) {\n for (const tplField of matches) {\n retVal.push(tplField.substring(1, tplField.length - 1));\n }\n }\n return retVal;\n}\n\nexport function template(tpl: string, _args) {\n if (!tpl) return \"\";\n let args;\n\n if (arguments.length === 2 && typeof arguments[1] === \"object\") {\n args = arguments[1];\n } else {\n args = new Array(arguments.length - 1);\n for (let i = 1; i < arguments.length; ++i) {\n args[i - 1] = arguments[i];\n }\n }\n\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n\n // Array handling\n for (const key in args) {\n if (isArray(args[key])) {\n args[key].forEach(function (row, idx) {\n args[key + \"[\" + idx + \"]\"] = row;\n });\n }\n }\n\n return tpl\n .replace(nargs2, function replaceArg(match, i) {\n const result = args.hasOwnProperty(i) ? args[i] : null;\n if (result === null || result === undefined) {\n return match;\n }\n return removeHTMLFromString(result);\n })\n .replace(nargs, function replaceArg(match, i, index) {\n const result = args.hasOwnProperty(i) ? args[i] : null;\n if (result === null || result === undefined) {\n return \"\";\n }\n return result;\n })\n ;\n}\n\nexport function naturalSort(data, order, idx, sortCaseSensitive) {\n return data.slice(0).sort(function (a, b) {\n return _naturalSort(a, b, order, idx, sortCaseSensitive);\n });\n}\n\nexport function multiSort(data, sortBy) {\n if (sortBy && sortBy.length) {\n data.sort(function (l, r) {\n for (let i = 0; i < sortBy.length; ++i) {\n const lVal = l[sortBy[i].idx];\n const rVal = r[sortBy[i].idx];\n if (lVal !== rVal) {\n return sortBy[i].reverse ? d3Descending(lVal, rVal) : d3Ascending(lVal, rVal);\n }\n }\n return 0;\n });\n }\n return data;\n}\n\nexport const Selection = SelectionBag;\n\nexport function urlParams() {\n const retVal = {};\n const url = window.location.href;\n const idx = url.indexOf(\"?\");\n if (idx >= 0) {\n url.substring(idx + 1).split(\"&\").forEach(function (param) {\n const paramParts = param.split(\"=\");\n switch (paramParts.length) {\n case 1:\n retVal[decodeURIComponent(paramParts[0])] = undefined;\n break;\n case 2:\n retVal[decodeURIComponent(paramParts[0])] = decodeURIComponent(paramParts[1]);\n break;\n default:\n throw new Error(\"Invalid URL Param: \" + param);\n }\n });\n }\n return retVal;\n}\n\nexport function endsWith(str: string, searchStr: string, pos?: number) {\n const subjectString = str.toString();\n if (typeof pos !== \"number\" || !isFinite(pos) || Math.floor(pos) !== pos || pos > subjectString.length) {\n pos = subjectString.length;\n }\n pos -= searchStr.length;\n const lastIndex = subjectString.indexOf(searchStr, pos);\n return lastIndex !== -1 && lastIndex === pos;\n}\n\nexport function d3ArrayAdapter(array) {\n return {\n ownerDocument: {\n createElement(_tagName) {\n return {\n get __data__() { return this.row; },\n set __data__(_) { this.row = array[this.index] = _; }\n };\n },\n\n createElementNS(_ns, tagName) {\n return this.createElement(tagName);\n }\n },\n\n querySelectorAll(selectors) {\n if (selectors) throw new Error(\"unsupported\");\n const context = this;\n return array.map(function (row, idx) {\n return {\n ownerDocument: context.ownerDocument,\n parentNode: context,\n get __data__() { return row; },\n set __data__(_) { array[idx] = _; }\n };\n });\n },\n\n appendChild(node) {\n node.parentNode = this;\n node.index = array.length;\n array.push(null);\n return node;\n },\n\n insertBefore(node, referenceNode) {\n const idx = array.indexOf(node.__data__);\n const refIdx = array.indexOf(referenceNode.__data__);\n if (idx > refIdx) {\n array.splice(refIdx, 0, array.splice(idx, 1)[0]);\n } else if (idx < refIdx - 1) {\n array.splice(refIdx - 1, 0, array.splice(idx, 1)[0]);\n }\n return node;\n },\n\n removeChild(node) {\n array.splice(array.indexOf(node.__data__), 1);\n return node;\n }\n };\n}\n\nexport function downloadBlob(blob: Blob, filename: string) {\n let a = document.createElement(\"a\");\n if (navigator[\"msSaveBlob\"]) { // IE10+\n a = null;\n return navigator[\"msSaveBlob\"](blob, filename);\n } else if (\"download\" in a) { // html 5\n a.href = URL.createObjectURL(blob);\n a.setAttribute(\"download\", filename);\n document.body.appendChild(a);\n setTimeout(function () {\n a.click();\n document.body.removeChild(a);\n }, 10);\n return true;\n }\n}\n\nexport function timestamp() {\n const currentdate = new Date();\n const timeFormat = d3TimeFormat(\"%Y-%m-%dT%H_%M_%S\");\n return timeFormat(currentdate);\n}\n\nexport function downloadString(format: \"CSV\" | \"TSV\" | \"JSON\" | \"TEXT\" | \"SVG\", blob: string, id?: string) {\n const filename = id || (\"data_\" + timestamp()) + \".\" + format.toLowerCase();\n\n let mimeType = \"\";\n switch (format) {\n case \"TSV\":\n mimeType = \"text/tab-seperated-values\";\n break;\n case \"JSON\":\n mimeType = \"application/json\";\n break;\n case \"SVG\":\n mimeType = \"image/svg+xml\";\n break;\n case \"CSV\":\n case \"TEXT\":\n default:\n mimeType = \"text/csv\";\n }\n downloadBlob(new Blob([blob], { type: mimeType }), filename);\n}\n\nexport function widgetPath(classID) {\n return \"../\" + classID.split(\"_\").join(\"/\");\n}\n\nexport function parseClassID(classID, prefix = \"..\") {\n const parts = classID.split(\".\");\n const classParts = parts[0].split(\"_\");\n return {\n package: `@hpcc-js/${classParts[0]}`,\n path: prefix + \"/\" + parts[0].split(\"_\").join(\"/\"),\n widgetID: classParts.length > 1 ? classParts[1] : null,\n memberWidgetID: parts.length > 1 ? parts[1] : null\n };\n}\n\nexport function checksum(s) {\n if (s instanceof Array) {\n s = s.join(\"\") + s.length;\n }\n switch (typeof s) {\n case \"string\":\n break;\n default:\n s = \"\" + s;\n }\n let chk = 0x12345678;\n for (let i = 0, l = s.length; i < l; ++i) {\n chk += (s.charCodeAt(i) * (i + 1));\n }\n return (chk & 0xffffffff).toString(16);\n}\nexport function getTime() {\n return (now && now.call(perf)) || (new Date().getTime());\n}\nexport function mixin(dest, _sources) {\n dest = dest || {};\n for (let i = 1, l = arguments.length; i < l; i++) {\n _mixin(dest, arguments[i]);\n }\n return dest;\n}\n\nfunction _mixin(dest, source) {\n let s;\n const empty = {};\n for (const key in source) {\n s = source[key];\n if (!(key in dest) || (dest[key] !== s && (!(key in empty) || empty[key] !== s))) {\n dest[key] = s;\n }\n }\n return dest;\n}\n\nexport function exists(prop, scope) {\n if (!prop || !scope) {\n return false;\n }\n const propParts = prop.split(\".\");\n let testScope = scope;\n for (let i = 0; i < propParts.length; ++i) {\n const item = propParts[i];\n if (testScope[item] === undefined) {\n return false;\n }\n testScope = testScope[item];\n }\n return true;\n}\n\nexport function logStringify(obj) {\n const cache = [];\n return JSON.stringify(obj, function (_key, value) {\n if (typeof value === \"object\" && value !== null) {\n if (cache.indexOf(value) !== -1) {\n return;\n }\n\n cache.push(value);\n }\n return value;\n });\n}\n\nexport function debounce(func, threshold = 100, execAsap = false) {\n return function debounced(..._dummyArgs) {\n const obj = this || {};\n const args = arguments;\n function delayed() {\n if (!execAsap)\n func.apply(obj, args);\n obj.__hpcc_debounce_timeout = null;\n }\n if (obj.__hpcc_debounce_timeout)\n clearTimeout(obj.__hpcc_debounce_timeout);\n else if (execAsap)\n func.apply(obj, args);\n obj.__hpcc_debounce_timeout = setTimeout(delayed, threshold);\n };\n}\n\nexport function parseVersionString(versionString) {\n const _sp = versionString.split(\".\");\n return {\n major: parseInt(_sp[0].replace(\"v\", \"\")),\n minor: parseInt(_sp[1]),\n patch: parseInt(_sp[2].split(\"-\")[0])\n };\n}\n\nexport type TextSize = { width: number; height: number; };\nlet g_fontSizeContext: CanvasRenderingContext2D;\nconst g_fontSizeContextCache: { [key: string]: TextSize } = {};\n\nexport function textSize(_text: string | string[], fontName: string = \"Verdana\", fontSize: number = 12, bold: boolean = false): Readonly<TextSize> {\n g_fontSizeContext = globalCanvasContext();\n const text = _text instanceof Array ? _text : [_text];\n const hash = `${bold}::${fontSize}::${fontName}::${text.join(\"::\")}`;\n let retVal = g_fontSizeContextCache[hash];\n if (!retVal) {\n retVal = { width: 0, height: 0 };\n g_fontSizeContext.font = `${bold ? \"bold \" : \"\"}${fontSize}px ${fontName}`;\n text.forEach(line => {\n const textMeasurement = g_fontSizeContext.measureText(\"\" + line);\n const width = textMeasurement.width;\n const height = (textMeasurement.fontBoundingBoxDescent + textMeasurement.fontBoundingBoxAscent) * text.length;\n g_fontSizeContextCache[hash] = retVal = {\n width: width > retVal.width ? width : retVal.width,\n height: height > retVal.height ? height : retVal.height\n };\n });\n }\n return retVal;\n}\n\nexport type TextRect = { width: number; height: number; top: number; right: number; bottom: number; left: number; };\nlet g_fontCanvas;\nconst g_fontRectContextCache: { [key: string]: TextRect } = {};\nexport function textRect(text: string, fontName: string = \"Verdana\", fontSize: number = 12, bold: boolean = false): Readonly<TextRect> {\n // This function is relatively expensive and should be used conservatively\n g_fontCanvas = globalCanvasElement();\n g_fontSizeContext = globalCanvasContext();\n const hash = `${bold}::${fontSize}::${fontName}::${text}`;\n let retVal = g_fontRectContextCache[hash];\n if (!retVal) {\n const font = `${bold ? \"bold \" : \"\"}${fontSize}px '${fontName}'`;\n g_fontSizeContext.font = font;\n const m = g_fontSizeContext.measureText(text);\n const w = g_fontCanvas.width = Math.ceil(m.width);\n const h = g_fontCanvas.height = fontSize * 1.5;\n const canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n g_fontSizeContext.font = font;\n g_fontSizeContext.fillStyle = \"black\";\n g_fontSizeContext.textAlign = \"start\";\n g_fontSizeContext.textBaseline = \"top\";\n g_fontSizeContext.fillText(text, 0, 0);\n\n let top, right, bottom, left = 0;\n if (w > 0) {\n const data = g_fontSizeContext.getImageData(0, 0, w, h).data;\n for (let y = 0; y < h; y++) {\n for (let x = 0; x < w; x++) {\n const i = (x + y * w) * 4;\n if (data[i + 3] !== 0) {\n if (top === undefined) {\n top = y;\n }\n if (left === undefined || left > x) {\n left = x;\n }\n if (right === undefined || right < x) {\n right = x;\n }\n bottom = y;\n }\n }\n }\n }\n retVal = {\n width: right - left + 1,\n height: bottom - top + 1,\n top,\n right,\n bottom,\n left\n };\n g_fontRectContextCache[hash] = retVal;\n }\n return retVal;\n}\n\nfunction globalCanvasElement() {\n if (!g_fontCanvas) {\n g_fontCanvas = document.getElementById(\"hpcc_js_font_size\");\n if (!g_fontCanvas) {\n g_fontCanvas = document.createElement(\"canvas\");\n g_fontCanvas.id = \"hpcc_js_font_size\";\n document.body.appendChild(g_fontCanvas);\n }\n }\n return g_fontCanvas;\n}\n\nfunction globalCanvasContext() {\n if (!g_fontSizeContext) {\n g_fontCanvas = globalCanvasElement();\n g_fontSizeContext = (g_fontCanvas as HTMLCanvasElement).getContext(\"2d\");\n }\n return g_fontSizeContext;\n}\n\nexport function safeRaise(domNode: Element) {\n const target = domNode;\n let nextSibling = target.nextSibling;\n while (nextSibling) {\n target.parentNode.insertBefore(nextSibling, target);\n nextSibling = target.nextSibling;\n }\n}\n","import { deviation as d3Deviation, max as d3Max, mean as d3Mean, median as d3Median, min as d3Min, sum as d3Sum, variance as d3Variance } from \"d3-array\";\nimport { map as d3Map, nest as d3Nest } from \"d3-collection\";\nimport { csvFormatRows as d3CsvFormatRows, csvParse as d3CsvParse, tsvFormatRows as d3TsvFormatRows, tsvParse as d3TsvParse } from \"d3-dsv\";\nimport { format as d3Format } from \"d3-format\";\nimport { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { PropertyExt } from \"./PropertyExt\";\nimport * as Utility from \"./Utility\";\n\nconst d3Aggr = {\n min: d3Min,\n max: d3Max,\n mean: d3Mean,\n median: d3Median,\n variance: d3Variance,\n deviation: d3Deviation,\n sum: d3Sum\n};\n\nlet lastFoundFormat = null;\n\nexport interface INestedColumn {\n label: string;\n columns: Array<string | INestedColumn>;\n}\n\n// Field ---\nexport type FieldType = \"string\" | \"number\" | \"boolean\" | \"date\" | \"time\" | \"hidden\" | \"nested\";\n\nexport class Field extends PropertyExt {\n private _owner: Grid;\n idx: number;\n protected _children: Field[] = [];\n\n constructor(id?) {\n super();\n\n this._id = id || this._id;\n }\n\n owner(): Grid;\n owner(_: Grid): this;\n owner(_?: Grid): Grid | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n checksum(): string {\n return Utility.checksum(this.label() + this.type() + this.mask() + this.format());\n }\n\n typeTransformer(_: any) {\n switch (this.type()) {\n case \"number\":\n return Number(_);\n case \"string\":\n return String(_);\n case \"boolean\":\n return typeof (_) === \"string\" && [\"false\", \"off\", \"0\"].indexOf(_.toLowerCase()) >= 0 ? false : Boolean(_);\n case \"time\":\n case \"date\":\n return this.maskTransformer(_);\n }\n return _;\n }\n\n maskTransformer(_) {\n return this.formatter(this.mask()).parse(String(_));\n }\n\n formatTransformer(_) {\n return this.formatter(this.format())(_);\n }\n\n parse(_) {\n if (!_) {\n return _;\n }\n try {\n return this.typeTransformer(_);\n } catch (e) {\n console.warn(\"Unable to parse: \" + _);\n return null;\n }\n }\n\n transform(_) {\n if (!_) {\n return _;\n }\n try {\n return this.formatTransformer(this.typeTransformer(_));\n } catch (e) {\n console.warn(\"Unable to transform: \" + _);\n return null;\n }\n }\n\n clone() {\n const context = this;\n const retVal = new Field(this._id);\n cloneProp(retVal, \"label\");\n cloneProp(retVal, \"type\");\n cloneProp(retVal, \"mask\");\n cloneProp(retVal, \"format\");\n\n function cloneProp(dest, key) {\n dest[key + \"_default\"](context[key + \"_default\"]());\n if (context[key + \"_exists\"]()) {\n dest[key](context[key]());\n }\n }\n return retVal;\n }\n\n formatter(format) {\n let retVal;\n if (!format) {\n retVal = function (_) {\n return _;\n };\n retVal.parse = function (_) {\n return _;\n };\n return retVal;\n }\n switch (this.type()) {\n case \"time\":\n case \"date\":\n return d3TimeFormat(format);\n }\n retVal = d3Format(format);\n retVal.parse = function (_) {\n return _;\n };\n return retVal;\n }\n\n children(): Field[];\n children(_: Array<string | INestedColumn | Field>, asDefault?: boolean): this;\n children(_?: Array<string | INestedColumn | Field>, asDefault?: boolean): Field[] | this {\n if (_ === void 0) return this._children;\n this.type(\"nested\");\n const fieldsArr = this._children;\n this._children = _.map((field: string | INestedColumn | Field, idx): Field => {\n if (field instanceof Field) {\n fieldsArr[idx] = field;\n return field;\n } else if (typeof field === \"string\") {\n if (asDefault) {\n return (fieldsArr[idx] || new Field()).label_default(field);\n } else {\n return (fieldsArr[idx] || new Field()).label(field);\n }\n } else {\n if (asDefault) {\n return (fieldsArr[idx] || new Field())\n .label_default(field.label)\n .children(field.columns) as Field\n ;\n } else {\n return (fieldsArr[idx] || new Field())\n .label(field.label)\n .children(field.columns) as Field\n ;\n }\n }\n }, this);\n return this;\n }\n\n label_default: { (): string; (x: string): Field; };\n label: { (): string; (x: string): Field; };\n mask: { (): string; (x: string): Field; };\n format: { (): string; (x: string): Field; };\n}\nField.prototype._class += \" common_Database.Field\";\n\nexport interface Field {\n type(): FieldType;\n type(_: FieldType): this;\n}\n\nField.prototype.publish(\"label\", \"\", \"string\", \"Label\", null, { optional: true });\nField.prototype.publish(\"type\", \"\", \"set\", \"Type\", [\"\", \"string\", \"number\", \"boolean\", \"date\", \"time\", \"hidden\", \"nested\"], { optional: true });\nField.prototype.publish(\"mask\", \"\", \"string\", \"Time Mask\", null, { disable: (w: any) => w.type() !== \"time\", optional: true });\nField.prototype.publish(\"format\", \"\", \"string\", \"Format\", null, { optional: true });\n\n// Grid ---\nexport class Grid extends PropertyExt {\n _dataChecksum: boolean;\n _dataVersion: number;\n\n private _data = [];\n private _dataChecksums = [];\n\n constructor(dataChecksum?) {\n super();\n dataChecksum = dataChecksum || false;\n this._dataChecksum = dataChecksum;\n this._dataVersion = 0;\n this.clear();\n }\n\n clear() {\n this.fields([]);\n this._data = [];\n this._dataChecksums = [];\n ++this._dataVersion;\n return this;\n }\n\n // Backward compatability ---\n resetColumns() {\n const fields = this.fields() as Field[];\n this.legacyColumns([]);\n this.legacyColumns(fields.map(function (field) {\n return field.label();\n }));\n }\n\n legacyColumns(_?, asDefault?): any | Grid {\n if (!arguments.length) return this.row(0);\n this.row(0, _, asDefault);\n return this;\n }\n\n legacyData(_?, _clone?) {\n return Grid.prototype.data.apply(this, arguments);\n }\n\n // Meta ---\n schema() {\n }\n\n field(idx) {\n return this.fields()[idx];\n }\n\n fieldByLabel(_, ignoreCase?) {\n return this.fields().filter(function (field: Field, idx) {\n field.idx = idx;\n return ignoreCase ? field.label().toLowerCase() === _.toLowerCase() : field.label() === _;\n })[0];\n }\n\n data(_?, clone?): any | Grid {\n if (!arguments.length) return this._data;\n this._data = clone ? _.map(function (d) { return d.map(function (d2) { return d2; }); }) : _;\n this._dataCalcChecksum();\n return this;\n }\n\n parsedData() {\n const context = this;\n return this._data.map(function (row) {\n return row.map(function (cell, idx) {\n return context.fields()[idx].parse(cell);\n });\n });\n }\n\n formattedData() {\n return this._data.map(row => {\n return this.fields().map((field, idx) => {\n return field.transform(row[idx]);\n });\n });\n }\n\n fieldsChecksum() {\n return Utility.checksum(this.fields().map(function (field) { return field.checksum(); }));\n }\n\n dataChecksum() {\n return Utility.checksum(this._dataChecksum ? this._dataChecksums : this._dataVersion);\n }\n\n checksum() {\n return Utility.checksum([this.dataChecksum(), this.fieldsChecksum()]);\n }\n\n // Row Access ---\n private _dataCalcChecksum(idx?) {\n ++this._dataVersion;\n if (this._dataChecksum) {\n if (arguments.length) {\n this._dataChecksums[idx] = Utility.checksum(this._data[idx]);\n } else {\n this._dataChecksums = this._data.map(function (row) { return Utility.checksum(row); });\n }\n }\n return this;\n }\n\n row(row?, _?, asDefault?): any | Grid {\n if (arguments.length < 2) return row === 0 ? this.fields().map(function (d) { return d.label(); }) : this._data[row - 1];\n if (row === 0) {\n const fieldsArr = this.fields();\n this.fields(_.map(function (field: string | INestedColumn, idx) {\n if (typeof field === \"string\") {\n if (asDefault) {\n return (fieldsArr[idx] || new Field()).label_default(field);\n } else {\n return (fieldsArr[idx] || new Field()).label(field);\n }\n } else {\n if (asDefault) {\n return (fieldsArr[idx] || new Field())\n .label_default(field.label)\n .children(field.columns)\n ;\n } else {\n return (fieldsArr[idx] || new Field())\n .label(field.label)\n .children(field.columns)\n ;\n }\n }\n }, this));\n } else {\n this._data[row - 1] = _;\n this._dataCalcChecksum(row - 1);\n }\n return this;\n }\n\n rows(_?): any | Grid {\n if (!arguments.length) return [this.row(0)].concat(this._data);\n this.row(0, _[0]);\n this._data = _.filter(function (_row, idx) { return idx > 0; });\n this._dataCalcChecksum();\n return this;\n }\n\n // Column Access ---\n column(col, _?): any | Grid {\n if (arguments.length < 2) return [this.fields()[col].label()].concat(this._data.map(function (row, _idx) { return row[col]; }));\n _.forEach(function (d, idx) {\n if (idx === 0) {\n this.fields()[col] = new Field().label(_[0]);\n } else {\n this._data[idx - 1][col] = d;\n this._dataCalcChecksum(idx - 1);\n }\n }, this);\n return this;\n }\n\n columnData(col, _): any | Grid {\n if (arguments.length < 2) return this._data.map(function (row, _idx) { return row[col]; });\n _.forEach(function (d, idx) {\n this._data[idx][col] = d;\n this._dataCalcChecksum(idx);\n }, this);\n return this;\n }\n\n columns(_?): any | Grid {\n if (!arguments.length) return this.fields().map(function (_col, idx) {\n return this.column(idx);\n }, this);\n _.forEach(function (_col, idx) {\n this.column(idx, _[idx]);\n }, this);\n return this;\n }\n\n // Cell Access ---\n cell(row, col, _) {\n if (arguments.length < 3) return this.row(row)[col];\n if (row === 0) {\n this.fields()[col] = new Field().label(_);\n } else {\n this._data[row][col] = _;\n this._dataCalcChecksum(row);\n }\n return this;\n }\n\n // Grid Access ---\n grid(_?) {\n return Grid.prototype.rows.apply(this, arguments);\n }\n\n // Hipie Helpers ---\n\n hipieMappings(columns, missingDataString) {\n missingDataString = missingDataString || \"\";\n if (!this.fields().length || !this._data.length) {\n return [];\n }\n const mappedColumns = [];\n let hasRollup = false;\n columns.forEach(function (mapping, idx) {\n const mappedColumn = {\n groupby: false,\n func: \"\",\n params: []\n };\n if (mapping.hasFunction()) {\n mappedColumn.func = mapping.function();\n if (mappedColumn.func === \"SCALE\") {\n mappedColumn.groupby = true;\n } else {\n hasRollup = true;\n }\n\n mapping.params().forEach(function (param) {\n const field = this.fieldByLabel(param, true);\n mappedColumn.params.push(field ? field.idx : -1);\n }, this);\n } else {\n mappedColumn.groupby = true;\n const field = this.fieldByLabel(mapping.id(), true);\n mappedColumn.params.push(field ? field.idx : -1);\n }\n mappedColumns.push(mappedColumn);\n }, this);\n\n if (hasRollup) {\n const retVal = [];\n this.rollup(mappedColumns.filter(function (mappedColumn) {\n return mappedColumn.groupby === true;\n }).map(function (d) {\n return d.params[0];\n }), function (leaves) {\n const row = mappedColumns.map(function (mappedColumn) {\n const param1 = mappedColumn.params[0];\n const param2 = mappedColumn.params[1];\n switch (mappedColumn.func) {\n case \"SUM\":\n return d3Sum(leaves, function (d) { return d[param1]; });\n case \"AVE\":\n return d3Mean(leaves, function (d) { return d[param1] / d[param2]; });\n case \"MIN\":\n return d3Min(leaves, function (d) { return d[param1]; });\n case \"MAX\":\n return d3Max(leaves, function (d) { return d[param1]; });\n case \"SCALE\":\n console.warn(\"Unexpected function: \" + mappedColumn.func);\n // All leaves should have the same values, use mean just in case they don't?\n return d3Mean(leaves, function (d) { return d[param1] / +param2; });\n }\n // All leaves should have the same value.\n return leaves[0][param1];\n });\n retVal.push(row);\n return row;\n });\n return retVal;\n } else {\n return this._data.map(function (row) {\n return mappedColumns.map(function (mappedColumn) {\n const param1 = mappedColumn.params[0];\n const param2 = mappedColumn.params[1];\n switch (mappedColumn.func) {\n case \"SCALE\":\n return row[param1] / +param2;\n case \"SUM\":\n case \"AVE\":\n case \"MIN\":\n case \"MAX\":\n console.warn(\"Unexpected function: \" + mappedColumn.func);\n }\n return row[param1];\n });\n });\n }\n }\n\n legacyView() {\n return new LegacyView(this);\n }\n\n nestView(columnIndicies) {\n return new RollupView(this, columnIndicies);\n }\n\n rollupView(columnIndicies, rollupFunc?) {\n return new RollupView(this, columnIndicies, rollupFunc);\n }\n\n aggregateView(columnIndicies, aggrType, aggrColumn, aggrDeltaColumn = \"\") {\n const context = this;\n return new RollupView(this, columnIndicies, function (values) {\n switch (aggrType) {\n case null:\n case undefined:\n case \"\":\n values.aggregate = values.length;\n return values;\n default:\n const columns = context.legacyColumns();\n const colIdx = columns.indexOf(aggrColumn);\n const deltaIdx = columns.indexOf(aggrDeltaColumn);\n values.aggregate = d3Aggr[aggrType](values, function (value) {\n return (+value[colIdx] - (deltaIdx >= 0 ? +value[deltaIdx] : 0)) / (deltaIdx >= 0 ? +value[deltaIdx] : 1);\n });\n return values;\n }\n });\n }\n\n // Nesting ---\n private _nest(columnIndicies, _rollup?) {\n if (!(columnIndicies instanceof Array)) {\n columnIndicies = [columnIndicies];\n }\n const nest = d3Nest();\n columnIndicies.forEach(function (idx) {\n nest.key(function (d) {\n return d[idx];\n });\n });\n return nest;\n }\n\n nest(columnIndicies) {\n return this._nest(columnIndicies)\n .entries(this._data)\n ;\n }\n\n rollup(columnIndicies, rollup) {\n return this._nest(columnIndicies)\n .rollup(rollup)\n .entries(this._data)\n ;\n }\n\n // Util ---\n length() {\n return this._data.length + 1;\n }\n\n width() {\n return this.fields().length;\n }\n\n pivot() {\n this.resetColumns();\n this.rows(this.columns());\n return this;\n }\n\n clone(deep) {\n return new Grid()\n .fields(this.fields(), deep)\n .data(this.data(), deep)\n ;\n }\n\n filter(filter) {\n const filterIdx = {};\n this.row(0).forEach(function (col, idx) {\n filterIdx[col] = idx;\n });\n return new Grid()\n .fields(this.fields(), true)\n .data(this.data().filter(function (row) {\n for (const key in filter) {\n if (filter[key] !== row[filterIdx[key]]) {\n return false;\n }\n }\n return true;\n }))\n ;\n }\n\n analyse(columns) {\n if (!(columns instanceof Array)) {\n columns = [columns];\n }\n const retVal = [];\n columns.forEach(function (col) {\n const rollup = this.rollup(col, function (leaves) {\n return leaves.length;\n });\n retVal.push(rollup);\n const keys = rollup.map(function (d) { return d.key; });\n this.fields()[col].isBoolean = typeTest(keys, isBoolean);\n this.fields()[col].isNumber = typeTest(keys, isNumber);\n this.fields()[col].isString = !this.fields()[col].isNumber && typeTest(keys, isString);\n this.fields()[col].isUSState = this.fields()[col].isString && typeTest(keys, isUSState);\n this.fields()[col].isDateTime = this.fields()[col].isString && typeTest(keys, isDateTime);\n this.fields()[col].isDateTimeFormat = lastFoundFormat;\n this.fields()[col].isDate = !this.fields()[col].isDateTime && typeTest(keys, isDate);\n this.fields()[col].isDateFormat = lastFoundFormat;\n this.fields()[col].isTime = this.fields()[col].isString && !this.fields()[col].isDateTime && !this.fields()[col].isDate && typeTest(keys, isTime);\n this.fields()[col].isTimeFormat = lastFoundFormat;\n }, this);\n return retVal;\n }\n\n // Import/Export ---\n jsonObj(_?): any | Grid {\n if (!arguments.length) return this._data.map(function (row) {\n const retVal = {};\n this.row(0).forEach(function (col, idx) {\n retVal[col] = row[idx];\n });\n return retVal;\n }, this);\n this.clear();\n this.data(_.map(function (row) {\n const retVal = [];\n for (const key in row) {\n let colIdx = this.row(0).indexOf(key);\n if (colIdx < 0) {\n colIdx = this.fields().length;\n this.fields().push(new Field().label(key));\n }\n retVal[colIdx] = row[key];\n }\n return retVal;\n }, this));\n return this;\n }\n\n json(_: string | object): this;\n json(): string;\n json(_?: string | object): string | this {\n if (!arguments.length) return JSON.stringify(this.jsonObj(), null, \" \");\n if (typeof (_) === \"string\") {\n _ = JSON.parse(_);\n }\n this.jsonObj(_);\n return this;\n }\n\n csv(_: string): this;\n csv(): string;\n csv(_?: string): string | this {\n if (!arguments.length) {\n const temp = document.createElement(\"div\");\n return d3CsvFormatRows(this.grid().map(row => {\n return row.map(cell => {\n return Utility.removeHTMLFromString(cell, temp);\n });\n }));\n }\n this.jsonObj(d3CsvParse(_));\n return this;\n }\n\n tsv(_: string): this;\n tsv(): string;\n tsv(_?: string): string | this {\n if (!arguments.length) return d3TsvFormatRows(this.grid());\n this.jsonObj(d3TsvParse(_));\n return this;\n }\n}\nGrid.prototype._class += \" common_Database.Grid\";\nexport interface Grid {\n fields(): Field[];\n fields(_: Field[], clone?: boolean): this;\n}\n\nGrid.prototype.publish(\"fields\", [], \"propertyArray\", \"Fields\");\nconst fieldsOrig = Grid.prototype.fields;\nGrid.prototype.fields = function (_?, clone?) {\n if (!arguments.length) return fieldsOrig.apply(this, arguments);\n return fieldsOrig.call(this, clone ? _.map(function (d) { return d.clone(); }) : _);\n};\n\n// Views ---\nexport class LegacyView {\n _grid;\n _parsedData;\n _parsedDataChecksum;\n _formattedData;\n _formattedDataChecksum;\n\n constructor(grid) {\n this._grid = grid;\n }\n\n checksum() {\n const value = this._grid.on.apply(this._grid, arguments);\n return value === this._grid ? this : value;\n }\n\n fields() {\n const value = this._grid.on.apply(this._grid, arguments);\n return value === this._grid ? this : value;\n }\n\n grid() {\n return this._grid;\n }\n columns(_?) {\n if (!arguments.length) return this._grid.legacyColumns();\n this._grid.legacyColumns(_);\n return this;\n }\n rawData(_?) {\n if (!arguments.length) return this._grid.legacyData();\n this._grid.legacyData(_);\n return this;\n }\n formattedData() {\n if (this._formattedDataChecksum !== this._grid.checksum()) {\n this._formattedDataChecksum = this._grid.checksum();\n this._formattedData = this._grid.formattedData();\n }\n return this._formattedData;\n }\n parsedData() {\n if (this._parsedDataChecksum !== this._grid.checksum()) {\n this._parsedDataChecksum = this._grid.checksum();\n this._parsedData = this._grid.parsedData();\n }\n return this._parsedData;\n }\n protected _whichData(opts?) {\n if (opts) {\n if (opts.parsed) {\n return this.formattedData();\n } else if (opts.formatted) {\n return this.formattedData();\n }\n }\n return this.rawData();\n }\n data(_) {\n return LegacyView.prototype.rawData.apply(this, arguments);\n }\n}\n\nexport class RollupView extends LegacyView {\n _columnIndicies;\n _rollup;\n _nestChecksum;\n _nest;\n\n constructor(grid, columns, rollup?) {\n super(grid);\n if (!(columns instanceof Array)) {\n columns = [columns];\n }\n this._columnIndicies = columns.filter(function (column) { return column; }).map(function (column) {\n switch (typeof column) {\n case \"string\":\n return this._grid.fieldByLabel(column).idx;\n }\n return column;\n }, this);\n\n rollup = rollup || function (d) { return d; };\n this._rollup = rollup;\n }\n\n nest() {\n if (this._nestChecksum !== this._grid.checksum()) {\n this._nestChecksum = this._grid.checksum();\n\n const nest = d3Nest();\n this._columnIndicies.forEach(function (idx) {\n nest.key(function (d) {\n return d[idx];\n });\n });\n this._nest = nest\n .rollup(this._rollup)\n ;\n }\n return this._nest;\n }\n entries(opts?) {\n return this.nest().entries(this._whichData(opts));\n }\n map(opts) {\n return this.nest().map(this._whichData(opts));\n }\n d3Map(opts) {\n return this.nest().map(this._whichData(opts), d3Map);\n }\n _walkData(entries, prevRow = []) {\n let retVal = [];\n entries.forEach(function (entry) {\n if (entry instanceof Array) {\n retVal.push(prevRow.concat([entry]));\n } else if (entry.values instanceof Array) {\n retVal = retVal.concat(this._walkData(entry.values, prevRow.concat([entry.key])));\n } else if (entry.value instanceof Array) {\n retVal = retVal.concat(this._walkData(entry.value, prevRow.concat([entry.key])));\n }\n }, this);\n return retVal;\n }\n data(opts) {\n return this._walkData(this.entries(opts));\n }\n}\n\n// --- --- ---\nfunction typeTest(cells, test) {\n if (!(cells instanceof Array)) {\n cells = [cells];\n }\n return cells.filter(function (d) { return d !== \"\"; }).every(test);\n}\nfunction isBoolean(cell) {\n return typeof cell === \"boolean\";\n}\nfunction isNumber(cell) {\n return typeof cell === \"number\" || !isNaN(cell);\n}\nfunction isString(cell) {\n return typeof cell === \"string\";\n}\nconst dateTimeFormats = [\n];\nconst dateFormats = [\n \"%Y-%m-%d\",\n \"%Y%m%d\"\n];\nconst timeFormats = [\n \"%H:%M:%S.%LZ\",\n \"%H:%M:%SZ\",\n \"%H:%M:%S\"\n];\ndateFormats.forEach(function (d) {\n timeFormats.forEach(function (t) {\n dateTimeFormats.push(d + \"T\" + t);\n });\n});\nfunction formatPicker(formats, cell) {\n for (let i = 0; i < formats.length; ++i) {\n const date = d3TimeParse(formats[i])(cell);\n if (date) {\n lastFoundFormat = formats[i];\n return formats[i];\n }\n }\n return null;\n}\nfunction isDateTime(cell) {\n return formatPicker(dateTimeFormats, cell);\n}\nfunction isDate(cell) {\n return formatPicker(dateFormats, cell);\n}\nfunction isTime(cell) {\n return formatPicker(timeFormats, cell);\n}\nfunction isUSState(cell) {\n return [\"AL\", \"AK\", \"AZ\", \"AR\", \"CA\", \"CO\", \"CT\", \"DE\", \"FL\", \"GA\", \"HI\", \"ID\", \"IL\", \"IN\", \"IA\", \"KS\", \"KY\", \"LA\", \"ME\", \"MD\", \"MA\", \"MI\", \"MN\", \"MS\", \"MO\", \"MT\", \"NE\", \"NV\", \"NH\", \"NJ\", \"NM\", \"NY\", \"NC\", \"ND\", \"OH\", \"OK\", \"OR\", \"PA\", \"RI\", \"SC\", \"SD\", \"TN\", \"TX\", \"UT\", \"VT\", \"VA\", \"WA\", \"WV\", \"WI\", \"WY\", \"AS\", \"DC\", \"FM\", \"GU\", \"MH\", \"MP\", \"PW\", \"PR\", \"VI\"].indexOf(String(cell).toUpperCase()) >= 0;\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\nimport { Field, Grid } from \"./Database\";\nimport { } from \"./Platform\";\nimport { PropertyExt } from \"./PropertyExt\";\nimport { debounce, textRect, TextRect, textSize, TextSize } from \"./Utility\";\n\nimport \"../src/Widget.css\";\n\nexport type IPrimative = boolean | number | string | object;\nexport type IFieldType = \"boolean\" | \"number\" | \"string\" | \"dataset\" | \"object\" | \"any\";\nexport interface InputField {\n id: string;\n type: IFieldType;\n multi?: boolean;\n default?: IPrimative | InputField[];\n children?: InputField[];\n}\n\nexport interface IPos {\n x: number;\n y: number;\n}\n\nexport interface ISize {\n width: number;\n height: number;\n}\n\nexport interface BBox {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface DataMetaT {\n min?: number;\n max?: number;\n mean?: number;\n stdDev?: number;\n sum?: number;\n}\n\nlet widgetID = 0;\nexport abstract class Widget extends PropertyExt {\n _idSeed: string;\n\n protected _tag: string;\n protected _isRootNode: boolean = true;\n\n protected _db = new Grid();\n protected _pos;\n protected _prevPos;\n protected _size;\n protected _widgetScale;\n protected _visible;\n protected _display;\n protected _dataMeta: DataMetaT = {};\n\n protected _target: null | HTMLElement | SVGElement;\n protected _placeholderElement;\n protected _parentWidget;\n\n protected _element;\n\n protected _renderCount;\n\n protected _overlayElement;\n\n constructor() {\n super();\n this._class = Object.getPrototypeOf(this)._class;\n this._id = this._idSeed + widgetID++;\n\n this._db = new Grid();\n this._pos = { x: 0, y: 0 };\n this._size = { width: 0, height: 0 };\n this._widgetScale = 1;\n this._visible = true;\n\n this._target = null;\n this._placeholderElement = null;\n this._parentWidget = null;\n\n this._element = d3Select(null);\n\n this._renderCount = 0;\n\n if ((window as any).__hpcc_debug) {\n if ((window as any).g_all === undefined) {\n (window as any).g_all = {};\n }\n (window as any).g_all[this._id] = this;\n }\n if ((window as any).__hpcc_theme) {\n this.applyTheme((window as any).__hpcc_theme);\n }\n }\n\n columnChecksum() {\n return this._db.fieldsChecksum();\n }\n\n dataChecksum() {\n return this._db.dataChecksum();\n }\n\n importJSON(_: string | object): this {\n this._db.json(_);\n return this;\n }\n\n importCSV(_: string): this {\n this._db.csv(_);\n return this;\n }\n\n importTSV(_: string): this {\n this._db.tsv(_);\n return this;\n }\n\n export(_: \"JSON\" | \"CSV\" | \"TSV\" = \"JSON\") {\n switch (_) {\n case \"CSV\":\n return this._db.csv();\n case \"TSV\":\n return this._db.tsv();\n case \"JSON\":\n default:\n return this._db.json();\n }\n }\n\n leakCheck(newNode) {\n const context = this;\n const watchArray = [newNode];\n const destructObserver = new MutationObserver(function (mutations) {\n let leaks = false;\n mutations.forEach(function (mutation) {\n for (let i = 0; i < mutation.removedNodes.length; ++i) {\n const node = mutation.removedNodes.item(i);\n if (watchArray.indexOf(node) >= 0 && context._target) {\n leaks = true;\n destructObserver.disconnect();\n }\n }\n });\n if (leaks) {\n console.error(\"leak: \" + context.id() + \" - \" + context.classID() + \"\\t\\twidget.target(null); was not called for this widget before it was removed from the page.\");\n }\n });\n let pNode = newNode.parentNode;\n while (pNode) {\n destructObserver.observe(pNode, { childList: true });\n watchArray.push(pNode);\n pNode = pNode.parentNode;\n }\n }\n\n renderCount(): number {\n return this._renderCount;\n }\n\n // Implementation ---\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n if (!arguments.length) return this._db.legacyColumns();\n this._db.legacyColumns(_, asDefault);\n return this;\n }\n\n protected columnIdx(column: string): number {\n return this.columns().indexOf(column);\n }\n\n protected cellIdxFunc<T>(colIdx: number, defValue?: T): (row: any) => T {\n return colIdx < 0 ? () => defValue : row => row[colIdx];\n }\n\n protected cellFunc<T>(column: string, defValue?: T): (row: any) => T {\n return this.cellIdxFunc<T>(this.columnIdx(column), defValue);\n }\n\n parsedData() {\n return this._db.parsedData();\n }\n\n formattedData() {\n return this._db.formattedData();\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n if (!arguments.length) return this._db.legacyData();\n this._db.legacyData(_);\n return this;\n }\n\n cloneData() {\n return this.data().map(function (row) { return row.slice(0); });\n }\n\n flattenData(columns: string[] = this.columns(), data: any = this.data()) {\n const retVal = [];\n data.forEach(function (row, rowIdx) {\n columns.filter(function (_col, idx) { return idx > 0; }).forEach(function (_col, idx) {\n const val = row[idx + 1];\n if (typeof val !== \"undefined\") {\n const newItem = {\n rowIdx,\n colIdx: idx + 1,\n label: row[0],\n value: val\n };\n retVal.push(newItem);\n }\n }, this);\n }, this);\n return retVal;\n }\n\n rowToObj(row: any[]): object {\n if (!row) return {};\n const retVal: any = {};\n this.fields().forEach(function (field, idx) {\n retVal[field.label_default() || field.label()] = row[idx];\n });\n if (row.length === this.columns().length + 1) {\n retVal.__lparam = row[this.columns().length];\n }\n return retVal;\n }\n\n pos(): IPos;\n pos(_: IPos): this;\n pos(_?: IPos): IPos | this {\n if (!arguments.length) return this._pos;\n this._pos = _;\n if (this._overlayElement) {\n this._overlayElement\n .attr(\"transform\", \"translate(\" + _.x + \",\" + _.y + \")scale(\" + this._widgetScale + \")\")\n ;\n }\n return this;\n }\n\n x(): number;\n x(_): this;\n x(_?): number | this {\n if (!arguments.length) return this._pos.x;\n this.pos({ x: _, y: this._pos.y });\n return this;\n }\n\n y(): number;\n y(_): this;\n y(_?): number | this {\n if (!arguments.length) return this._pos.y;\n this.pos({ x: this._pos.x, y: _ });\n return this;\n }\n\n size(): ISize;\n size(_): this;\n size(_?): ISize | this {\n if (!arguments.length) return this._size;\n this._size = _;\n if (this._overlayElement) {\n this._overlayElement\n .attr(\"width\", _.width)\n .attr(\"height\", _.height)\n ;\n }\n return this;\n }\n\n width(): number;\n width(_): this;\n width(_?): number | this {\n if (!arguments.length) return this._size.width;\n this.size({ width: _, height: this._size.height });\n return this;\n }\n\n height(): number;\n height(_): this;\n height(_?): number | this {\n if (!arguments.length) return this._size.height;\n this.size({ width: this._size.width, height: _ });\n return this;\n }\n\n resize(size?: ISize, delta: ISize = { width: 0, height: 0 }) {\n let width;\n let height;\n if (size && size.width && size.height) {\n width = size.width;\n height = size.height;\n } else {\n const style = window.getComputedStyle(this._target, null);\n width = parseFloat(style.getPropertyValue(\"width\")) - delta.width;\n height = parseFloat(style.getPropertyValue(\"height\")) - delta.height;\n }\n this.size({\n width,\n height\n });\n return this;\n }\n\n scale(): number;\n scale(_): Widget;\n scale(_?): number | Widget {\n if (!arguments.length) return this._widgetScale;\n this._widgetScale = _;\n if (this._overlayElement) {\n this._overlayElement\n .attr(\"transform\", \"translate(\" + _.x + \",\" + _.y + \")scale(\" + this._widgetScale + \")\")\n ;\n }\n return this;\n }\n\n visible(): boolean;\n visible(_): this;\n visible(_?): boolean | this {\n if (!arguments.length) return this._visible;\n this._visible = _;\n if (this._element) {\n this._element\n .style(\"visibility\", this._visible ? null : \"hidden\")\n .style(\"opacity\", this._visible ? null : 0)\n ;\n }\n return this;\n }\n\n display(): boolean;\n display(_): this;\n display(_?): boolean | this {\n if (!arguments.length) return this._display;\n this._display = _;\n if (this._element) {\n this._element.style(\"display\", this._display ? null : \"none\");\n }\n return this;\n }\n\n dataMeta(): DataMetaT;\n dataMeta(_): this;\n dataMeta(_?): DataMetaT | this {\n if (!arguments.length) return this._dataMeta;\n this._dataMeta = _;\n return this;\n }\n\n private _appData = new Object({});\n appData(key: string): any;\n appData(key: string, value: any): this;\n appData(key: string, value?: any): any | this {\n if (arguments.length < 2) return this._appData[key];\n this._appData[key] = value;\n return this;\n }\n\n calcSnap(snapSize) {\n function snap(x, gridSize) {\n function snapDelta(x2, gridSize2) {\n let dx = x2 % gridSize2;\n if (Math.abs(dx) > gridSize2 - Math.abs(dx)) {\n dx = (gridSize2 - Math.abs(dx)) * (dx < 0 ? 1 : -1);\n }\n return dx;\n }\n return x - snapDelta(x, gridSize);\n }\n const l = snap(this._pos.x - this._size.width / 2, snapSize);\n const t = snap(this._pos.y - this._size.height / 2, snapSize);\n const r = snap(this._pos.x + this._size.width / 2, snapSize);\n const b = snap(this._pos.y + this._size.height / 2, snapSize);\n const w = r - l;\n const h = b - t;\n return [{ x: l + w / 2, y: t + h / 2 }, { width: w, height: h }];\n }\n\n // DOM/SVG Node Helpers ---\n toWidget(domNode): Widget | null {\n if (!domNode) {\n return null;\n }\n const element = d3Select(domNode);\n if (element) {\n const widget = element.datum();\n if (widget && widget instanceof Widget) {\n return widget;\n }\n }\n return null;\n }\n\n parentOverlay() {\n return null;\n }\n\n locateParentWidget(domNode?): Widget | null {\n domNode = domNode || (this._target ? this._target.parentNode : null);\n if (domNode) {\n const widget = this.toWidget(domNode);\n if (widget) {\n return widget;\n } else if (domNode.parentNode) {\n return this.locateParentWidget(domNode.parentNode);\n }\n }\n return null;\n }\n\n locateSVGNode(domNode): SVGSVGElement | null {\n if (!domNode) {\n return null;\n }\n if (domNode.tagName === \"svg\") {\n return domNode;\n }\n return this.locateSVGNode(domNode.parentNode);\n }\n\n locateOverlayNode() {\n let widget = this.locateParentWidget(this._target);\n while (widget) {\n const retVal = widget.parentOverlay();\n if (retVal) {\n return retVal;\n }\n widget = this.locateParentWidget(widget._target.parentNode);\n }\n return null;\n }\n\n locateAncestor(classID): Widget | null {\n return this.locateClosestAncestor([classID]);\n }\n\n locateClosestAncestor(classIDArr): Widget | null {\n let widget = this.locateParentWidget(this._target);\n while (widget) {\n if (classIDArr.indexOf(widget.classID()) !== -1) {\n return widget;\n }\n widget = this.locateParentWidget(widget._target.parentNode);\n }\n return null;\n }\n\n getAbsolutePos(domNode, w, h) {\n const root = this.locateSVGNode(domNode);\n if (!root) {\n return null;\n }\n let pos = root.createSVGPoint();\n const ctm = domNode.getCTM();\n pos = pos.matrixTransform(ctm);\n const retVal: any = {\n x: pos.x,\n y: pos.y\n };\n if (w !== undefined && h !== undefined) {\n let size = root.createSVGPoint();\n size.x = w;\n size.y = h;\n size = size.matrixTransform(ctm);\n retVal.width = size.x - pos.x;\n retVal.height = size.y - pos.y;\n }\n return retVal;\n }\n\n hasOverlay() {\n return this._overlayElement;\n }\n\n syncOverlay() {\n if (this._size.width && this._size.height) {\n const newPos = this.getAbsolutePos(this._overlayElement.node(), this._size.width, this._size.height);\n if (newPos && (!this._prevPos || newPos.x !== this._prevPos.x || newPos.y !== this._prevPos.y || newPos.width !== this._prevPos.width || newPos.height !== this._prevPos.height)) {\n const xScale = newPos.width / this._size.width;\n const yScale = newPos.height / this._size.height;\n this._placeholderElement\n .style(\"left\", newPos.x - (newPos.width / xScale) / 2 + \"px\")\n .style(\"top\", newPos.y - (newPos.height / yScale) / 2 + \"px\")\n .style(\"width\", newPos.width / xScale + \"px\")\n .style(\"height\", newPos.height / yScale + \"px\")\n ;\n const transform = \"scale(\" + xScale + \",\" + yScale + \")\";\n this._placeholderElement\n .style(\"transform\", transform)\n .style(\"-moz-transform\", transform)\n .style(\"-ms-transform\", transform)\n .style(\"-webkit-transform\", transform)\n .style(\"-o-transform\", transform)\n ;\n }\n this._prevPos = newPos;\n }\n }\n\n getBBox(refresh = false, round = false): BBox {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n textSize(_text: string | string[], fontName: string = \"Verdana\", fontSize: number = 12, bold: boolean = false): Readonly<TextSize> {\n return textSize(_text, fontName, fontSize, bold);\n }\n\n textRect(_text: string, fontName: string = \"Verdana\", fontSize: number = 12, bold: boolean = false): Readonly<TextRect> {\n return textRect(_text, fontName, fontSize, bold);\n }\n\n element() {\n return this._element;\n }\n\n node() {\n return this._element.node();\n }\n\n target(): null | HTMLElement | SVGElement;\n target(_: null | string | HTMLElement | SVGElement): this;\n target(_?: null | string | HTMLElement | SVGElement): null | HTMLElement | SVGElement | this {\n if (!arguments.length) return this._target;\n if (this._target && _) {\n throw new Error(\"Target can only be assigned once.\");\n }\n if (_ === null) {\n this._target = null;\n if (this.renderCount()) {\n this.exit();\n }\n } else if (typeof _ === \"string\") {\n this._target = document.getElementById(_);\n } else if (_ instanceof HTMLElement || _ instanceof SVGElement) {\n this._target = _;\n }\n return this;\n }\n\n isDOMHidden(): boolean {\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n // Note: Will return false for visible===hidden (which is ok as it still takes up space on the page)\n return this._isRootNode && this._placeholderElement.node().offsetParent === null;\n }\n\n hasSize() {\n return !isNaN(this.width()) && !isNaN(this.height());\n }\n\n protected publishedWidgets(): Widget[] {\n let widgets = [];\n this.publishedProperties(true).forEach(function (meta) {\n if (!meta.ext || meta.ext.render !== false) {\n switch (meta.type) {\n case \"widget\":\n const widget = this[meta.id]();\n if (widget) {\n widgets.push(widget);\n }\n break;\n case \"widgetArray\":\n widgets = widgets.concat(this[meta.id]());\n break;\n }\n }\n }, this);\n return widgets;\n }\n\n // Render ---\n private _prevNow = 0;\n render(callback?: (w: Widget) => void) {\n if ((window as any).__hpcc_debug) {\n const now = Date.now();\n if (now - this._prevNow < 500) {\n console.error(\"Double Render: \" + (now - this._prevNow) + \" - \" + this.id() + \" - \" + this.classID());\n }\n this._prevNow = now;\n }\n\n callback = callback || function () { };\n if (!this._placeholderElement || !this.visible() || this.isDOMHidden() || !this.hasSize()) {\n callback(this);\n return this;\n }\n if (this._placeholderElement) {\n if (!this._tag)\n throw new Error(\"No DOM tag specified\");\n\n const elements = this._placeholderElement.selectAll(\"#\" + this._id).data([this], function (d) { return d._id; });\n elements.enter().append(this._tag)\n .classed(this._class, true)\n .attr(\"id\", this._id)\n // .attr(\"opacity\", 0.50) // Uncomment to debug position offsets ---\n .each(function (context2) {\n context2._element = d3Select(this);\n context2.enter(this, context2._element);\n if ((window as any).__hpcc_debug) {\n context2.leakCheck(this);\n }\n })\n .merge(elements)\n .each(function (context2) {\n const element = d3Select(this);\n const classed = context2.classed();\n for (const key in classed) {\n element.classed(key, classed[key]);\n }\n context2.preUpdate(this, context2._element);\n context2.update(this, context2._element);\n context2.postUpdate(this, context2._element);\n })\n ;\n elements.exit()\n .each(function (context2) {\n d3Select(this).datum(null);\n context2.exit(this, context2._element);\n })\n .remove()\n ;\n this._renderCount++;\n }\n\n // ASync Render Contained Widgets ---\n const widgets = this.publishedWidgets();\n\n const context = this;\n switch (widgets.length) {\n case 0:\n callback(this);\n break;\n case 1:\n widgets[0].render(function () {\n callback(context);\n });\n break;\n default:\n let renderCount = widgets.length;\n widgets.forEach(function (widget, _idx) {\n setTimeout(function () {\n widget.render(function () {\n if (--renderCount === 0) {\n callback(context);\n }\n });\n }, 0);\n });\n break;\n }\n return this;\n }\n\n renderPromise(): Promise<Widget> {\n return new Promise((resolve, reject) => {\n this.render((w: Widget) => {\n resolve(w);\n });\n });\n }\n\n private _lazyRender = debounce(function (debouncedCallback?: (w: Widget) => void) {\n this.render(debouncedCallback);\n }, 100);\n\n lazyRender(callback?: (w: Widget) => void): this {\n this._lazyRender(callback);\n return this;\n }\n\n animationFrameRender(): this {\n if (requestAnimationFrame) {\n requestAnimationFrame(() => {\n this.render();\n });\n } else {\n // Not a real replacement for requestAnimationFrame ---\n this.renderPromise();\n }\n return this;\n }\n\n enter(_domNode: HTMLElement, _element) { }\n preUpdate(_domNode: HTMLElement, _element) { }\n update(_domNode: HTMLElement, _element) { }\n postUpdate(_domNode: HTMLElement, _element) { }\n exit(_domNode?: HTMLElement, _element?) {\n this.publishedWidgets().forEach(w => w.target(null));\n }\n}\nWidget.prototype._class += \" common_Widget\";\n\nexport interface Widget {\n fields(): Field[];\n fields(_: Field[]): this;\n classed(classID: string): boolean;\n classed(classID: string, _: boolean): this;\n classed(): { [classID: string]: boolean };\n classed(_: { [classID: string]: boolean }): this;\n}\n\nWidget.prototype._idSeed = \"_w\";\n\nWidget.prototype.publishProxy(\"fields\", \"_db\", \"fields\");\nWidget.prototype.publish(\"classed\", {}, \"object\", \"HTML Classes\", null, { tags: [\"Private\"] });\nconst origClassed = Widget.prototype.classed;\nWidget.prototype.classed = function (this: Widget, str_obj?: string | { [classID: string]: boolean }, _?: boolean) {\n if (typeof str_obj === \"string\") {\n if (arguments.length === 1) return origClassed.call(this)[str_obj];\n const classed = origClassed.call(this);\n origClassed.call(this, { ...classed, [str_obj]: _ });\n return this;\n }\n return origClassed.apply(this, arguments);\n};\n","import { select as d3Select } from \"d3-selection\";\nimport { Widget } from \"./Widget\";\n\nexport class HTMLWidget extends Widget {\n\n private observer;\n protected _drawStartPos: \"origin\" | \"center\";\n protected _boundingBox;\n\n constructor() {\n super();\n\n this._drawStartPos = \"origin\";\n this._tag = \"div\";\n this._boundingBox = null;\n }\n\n calcFrameWidth(element) {\n const retVal = parseFloat(element.style(\"padding-left\")) +\n parseFloat(element.style(\"padding-right\")) +\n parseFloat(element.style(\"margin-left\")) +\n parseFloat(element.style(\"margin-right\")) +\n parseFloat(element.style(\"border-left-width\")) +\n parseFloat(element.style(\"border-right-width\"))\n ;\n return retVal;\n }\n\n calcWidth(element) {\n return parseFloat(element.style(\"width\")) - this.calcFrameWidth(element);\n }\n\n calcFrameHeight(element) {\n const retVal = parseFloat(element.style(\"padding-top\")) +\n parseFloat(element.style(\"padding-bottom\")) +\n parseFloat(element.style(\"margin-top\")) +\n parseFloat(element.style(\"margin-bottom\")) +\n parseFloat(element.style(\"border-top-width\")) +\n parseFloat(element.style(\"border-bottom-width\"))\n ;\n return retVal;\n }\n\n calcHeight(element) {\n return parseFloat(element.style(\"height\")) + this.calcFrameHeight(element);\n }\n\n hasHScroll(element?) {\n element = element || this._element;\n return element.property(\"scrollWidth\") > element.property(\"clientWidth\");\n }\n\n hasVScroll(element?) {\n element = element || this._element;\n return element.property(\"scrollHeight\") > element.property(\"clientHeight\");\n }\n\n clientWidth() {\n return this._size.width - this.calcFrameWidth(this._element);\n }\n\n clientHeight() {\n return this._size.height - this.calcFrameHeight(this._element);\n }\n\n getBBox(refresh = false, round = false) {\n if (refresh || this._boundingBox === null) {\n const domNode = this._element.node() ? this._element.node().firstElementChild : null; // Needs to be first child, as element has its width/height forced onto it.\n if (domNode instanceof Element) {\n const rect = domNode.getBoundingClientRect();\n this._boundingBox = {\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height\n };\n }\n }\n if (this._boundingBox === null) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n return {\n x: (round ? Math.round(this._boundingBox.x) : this._boundingBox.x) * this._widgetScale,\n y: (round ? Math.round(this._boundingBox.y) : this._boundingBox.y) * this._widgetScale,\n width: (round ? Math.round(this._boundingBox.width) : this._boundingBox.width) * this._widgetScale,\n height: (round ? Math.round(this._boundingBox.height) : this._boundingBox.height) * this._widgetScale\n };\n }\n\n reposition(pos?) {\n // const retVal = super.reposition(pos);\n if (this._placeholderElement) {\n this._placeholderElement\n .style(\"left\", pos.x + \"px\")\n .style(\"top\", pos.y + \"px\")\n ;\n }\n return this;\n }\n\n resize(size?) {\n const retVal = super.resize(size);\n if (this._placeholderElement) {\n this._placeholderElement\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n }\n return retVal;\n }\n\n // Properties ---\n target(): null | HTMLElement | SVGElement;\n target(_: null | string | HTMLElement | SVGElement): this;\n target(_?: null | string | HTMLElement | SVGElement): null | HTMLElement | SVGElement | this {\n const retVal = super.target.apply(this, arguments);\n if (arguments.length) {\n if (this._target instanceof SVGElement) {\n // Target is a SVG Node, so create an item in the Overlay and force it \"over\" the overlay element (cough) ---\n this._isRootNode = false;\n const overlay = this.locateOverlayNode();\n this._placeholderElement = overlay.append(\"div\")\n .style(\"position\", \"absolute\")\n .style(\"top\", \"0px\")\n .style(\"left\", \"0px\")\n .style(\"overflow\", \"hidden\")\n ;\n this._overlayElement = d3Select(this._target);\n\n this._prevPos = null;\n this.observer = new MutationObserver(_mutation => {\n this.syncOverlay();\n });\n\n let domNode = this._overlayElement.node();\n while (domNode) {\n this.observer.observe(domNode, { attributes: true });\n domNode = domNode.parentNode;\n }\n } else if (this._target) { // HTMLElement\n this._placeholderElement = d3Select(this._target);\n if (!this._size.width && !this._size.height) {\n const width = parseFloat(this._placeholderElement.style(\"width\"));\n const height = parseFloat(this._placeholderElement.style(\"height\"));\n this.size({\n width,\n height\n });\n }\n this._placeholderElement = d3Select(this._target).append(\"div\");\n }\n }\n return retVal;\n }\n\n postUpdate(domNode, element) {\n super.postUpdate(domNode, element);\n if (this._drawStartPos === \"origin\") {\n this._element\n .style(\"position\", \"relative\")\n .style(\"left\", this._pos.x + \"px\")\n .style(\"top\", this._pos.y + \"px\")\n ;\n } else {\n const bbox = this.getBBox(true);\n this._element\n .style(\"position\", \"relative\")\n .style(\"float\", \"left\")\n .style(\"left\", this._pos.x + (this._size.width - bbox.width) / 2 + \"px\")\n .style(\"top\", this._pos.y + (this._size.height - bbox.height) / 2 + \"px\")\n ;\n }\n }\n\n exit(domNode?, element?) {\n if (this.observer) {\n this.observer.disconnect();\n }\n this._prevPos = null;\n if (this._placeholderElement) {\n this._placeholderElement.remove();\n }\n super.exit(domNode, element);\n }\n}\nHTMLWidget.prototype._class += \" common_HTMLWidget\";\n","import { HTMLWidget } from \"./HTMLWidget\";\n\nexport class CanvasWidget extends HTMLWidget {\n\n _ctx: CanvasRenderingContext2D;\n constructor() {\n super();\n this._tag = \"canvas\";\n }\n\n resize(size) {\n const retVal = super.resize(size);\n try {\n this._element.attr(\"width\", this._size.width);\n this._element.attr(\"height\", this._size.height);\n this.resetContext();\n } catch (e) {\n console.error(e);\n }\n return retVal;\n }\n\n resetContext() {\n this._ctx = this._element.node().getContext(\"2d\");\n }\n\n click(d, c) {\n // console.log(d);\n }\n}\nCanvasWidget.prototype._class += \" common_CanvasWidget\";\n","const _version = \"1.14.2-dev\";\nexport function version() {\n return _version;\n}\n\nexport const ieVersion = (function () {\n const ua = navigator.userAgent;\n let tem;\n const M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n if (/trident/i.test(M[1])) {\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\n return parseFloat(tem[1]);\n }\n if (/msie/i.test(M[1])) {\n return parseFloat(M[2]);\n }\n return null;\n})();\n\nexport const isIE = ieVersion !== null;\nexport const svgMarkerGlitch = isIE && ieVersion <= 12;\n\nlet _scrollBarWidth = null;\nexport function getScrollbarWidth() {\n if (_scrollBarWidth === null) {\n const outer = document.createElement(\"div\");\n outer.style.visibility = \"hidden\";\n outer.style.width = \"100px\";\n // @ts-ignore\n outer.style.msOverflowStyle = \"scrollbar\";\n\n document.body.appendChild(outer);\n\n const widthNoScroll = outer.offsetWidth;\n outer.style.overflow = \"scroll\";\n\n const inner = document.createElement(\"div\");\n inner.style.width = \"100%\";\n outer.appendChild(inner);\n\n const widthWithScroll = inner.offsetWidth;\n\n outer.parentNode.removeChild(outer);\n\n _scrollBarWidth = widthNoScroll - widthWithScroll;\n }\n return _scrollBarWidth;\n}\n\n// Polyfills ---\n(window as any).MutationObserver = (window as any).MutationObserver || (window as any).WebKitMutationObserver || (window as any).MozMutationObserver || function (callback) {\n // Just enough for HTMLOverlay and C3 ---\n this.callback = callback;\n this.listeners = [];\n\n const MutationListener = function (callback2, domNode, type) {\n this.callback = callback2;\n this.domNode = domNode;\n this.type = type;\n };\n MutationListener.prototype = {\n handleEvent(evt) {\n const mutation = {\n type: this.type,\n target: this.domNode,\n addedNodes: [],\n removedNodes: [],\n previousSibling: evt.target.previousSibling,\n nextSibling: evt.target.nextSibling,\n attributeName: null,\n attributeNamespace: null,\n oldValue: null\n };\n this.callback([mutation]);\n }\n };\n\n this.observe = function (domNode, config) {\n let listener = null;\n if (config.attributes) {\n listener = new MutationListener(this.callback, domNode, \"attributes\");\n this.listeners.push(listener);\n domNode.addEventListener(\"DOMAttrModified\", listener, true);\n }\n\n if (config.characterData) {\n listener = new MutationListener(this.callback, domNode, \"characterData\");\n this.listeners.push(listener);\n domNode.addEventListener(\"DOMCharacterDataModified\", listener, true);\n }\n\n if (config.childList) {\n listener = new MutationListener(this.callback, domNode, \"childList\");\n this.listeners.push(listener);\n domNode.addEventListener(\"DOMNodeInserted\", listener, true);\n domNode.addEventListener(\"DOMNodeRemoved\", listener, true);\n }\n };\n\n this.disconnect = function () {\n this.listeners.forEach(function (item) {\n switch (item.type) {\n case \"attributes\":\n item.domNode.removeEventListener(\"DOMAttrModified\", item, true);\n break;\n case \"characterData\":\n item.domNode.removeEventListener(\"DOMCharacterDataModified\", item, true);\n break;\n case \"childList\":\n item.domNode.removeEventListener(\"DOMNodeRemoved\", item, true);\n item.domNode.removeEventListener(\"DOMNodeInserted\", item, true);\n break;\n }\n });\n this.listeners = [];\n };\n};\n\n(Math as any).sign = (Math as any).sign || function (x) {\n x = +x; // convert to a number\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n};\n","import { easeCubicInOut as d3CubicInOut } from \"d3-ease\";\n\nexport class Transition {\n\n protected _widget;\n protected _duration;\n protected _delay;\n protected _ease;\n\n constructor(widget) {\n this._widget = widget;\n this._duration = 250;\n this._delay = 0;\n this._ease = d3CubicInOut;\n }\n\n duration(_) {\n if (!arguments.length) return this._duration;\n this._duration = _;\n return this._widget;\n }\n\n delay(_) {\n if (!arguments.length) return this._delay;\n this._delay = _;\n return this._widget;\n }\n\n ease(_) {\n if (!arguments.length) return this._ease;\n this._ease = _;\n return this._widget;\n }\n\n apply(selection) {\n if (this._duration || this._delay) {\n return selection.transition()\n .duration(this._duration)\n .delay(this._delay)\n .ease(this._ease)\n ;\n }\n return selection;\n }\n}\n","import { rgb as d3Rgb } from \"d3-color\";\nimport { select as d3Select } from \"d3-selection\";\nimport { fontAwsesomeStyle } from \"./FAChar\";\nimport { svgMarkerGlitch } from \"./Platform\";\nimport { Transition } from \"./Transition\";\nimport { debounce, downloadBlob, downloadString, timestamp } from \"./Utility\";\nimport { ISize, Widget } from \"./Widget\";\n\ntype Point = { x: number, y: number };\ntype Rect = { x: number, y: number, width: number, height: number };\n\nconst lerp = function (point: Point, that: Point, t: number): Point {\n // From https://github.com/thelonious/js-intersections\n return {\n x: point.x + (that.x - point.x) * t,\n y: point.y + (that.y - point.y) * t\n };\n};\n\ntype LineIntersection = { type: \"Intersection\" | \"No Intersection\" | \"Coincident\" | \"Parallel\", points: Point[] };\nconst intersectLineLine = function (a1: Point, a2: Point, b1: Point, b2: Point): LineIntersection {\n // From https://github.com/thelonious/js-intersections\n const result: LineIntersection = { type: \"Parallel\", points: [] };\n const uaT = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x);\n const ubT = (a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x);\n const uB = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y);\n\n if (uB !== 0) {\n const ua = uaT / uB;\n const ub = ubT / uB;\n\n if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {\n result.type = \"Intersection\";\n result.points.push({\n x: a1.x + ua * (a2.x - a1.x),\n y: a1.y + ua * (a2.y - a1.y)\n });\n } else {\n result.type = \"No Intersection\";\n }\n } else {\n if (uaT === 0 || ubT === 0) {\n result.type = \"Coincident\";\n } else {\n result.type = \"Parallel\";\n }\n }\n\n return result;\n};\n\ntype CircleIntersection = { type: \"Outside\" | \"Tangent\" | \"Inside\" | \"Intersection\", points: Point[] };\nconst intersectCircleLine = function (c: Point, r: number, a1: Point, a2: Point): CircleIntersection {\n // From https://github.com/thelonious/js-intersections\n const result: CircleIntersection = { type: \"Intersection\", points: [] };\n const a = (a2.x - a1.x) * (a2.x - a1.x) +\n (a2.y - a1.y) * (a2.y - a1.y);\n const b = 2 * ((a2.x - a1.x) * (a1.x - c.x) +\n (a2.y - a1.y) * (a1.y - c.y));\n const cc = c.x * c.x + c.y * c.y + a1.x * a1.x + a1.y * a1.y -\n 2 * (c.x * a1.x + c.y * a1.y) - r * r;\n const deter = b * b - 4 * a * cc;\n\n if (deter < 0) {\n result.type = \"Outside\";\n } else if (deter === 0) {\n result.type = \"Tangent\";\n // NOTE: should calculate this point\n } else {\n const e = Math.sqrt(deter);\n const u1 = (-b + e) / (2 * a);\n const u2 = (-b - e) / (2 * a);\n\n if ((u1 < 0 || u1 > 1) && (u2 < 0 || u2 > 1)) {\n if ((u1 < 0 && u2 < 0) || (u1 > 1 && u2 > 1)) {\n result.type = \"Outside\";\n } else {\n result.type = \"Inside\";\n }\n } else {\n result.type = \"Intersection\";\n\n if (0 <= u1 && u1 <= 1)\n result.points.push(lerp(a1, a2, u1));\n\n if (0 <= u2 && u2 <= 1)\n result.points.push(lerp(a1, a2, u2));\n }\n }\n\n return result;\n};\n\nexport class SVGGlowFilter {\n protected filter;\n protected feOffset;\n protected feColorMatrix;\n protected feGaussianBlur;\n protected feBlend;\n\n constructor(target, id: string) {\n this.filter = target.append(\"filter\")\n .attr(\"id\", id)\n .attr(\"width\", \"130%\")\n .attr(\"height\", \"130%\");\n this.feOffset = this.filter.append(\"feOffset\")\n .attr(\"result\", \"offOut\")\n .attr(\"in\", \"SourceGraphic\")\n .attr(\"dx\", \"0\")\n .attr(\"dy\", \"0\");\n this.feColorMatrix = this.filter.append(\"feColorMatrix\")\n .attr(\"result\", \"matrixOut\")\n .attr(\"in\", \"offOut\")\n .attr(\"type\", \"matrix\")\n .attr(\"values\", this.rgb2ColorMatrix(\"red\"))\n ;\n this.feGaussianBlur = this.filter.append(\"feGaussianBlur\")\n .attr(\"result\", \"blurOut\")\n .attr(\"in\", \"matrixOut\")\n .attr(\"stdDeviation\", \"3\")\n ;\n this.feBlend = this.filter.append(\"feBlend\")\n .attr(\"in\", \"SourceGraphic\")\n .attr(\"in2\", \"blurOut\")\n .attr(\"mode\", \"normal\")\n ;\n }\n\n rgb2ColorMatrix(color: string): string {\n const rgb = d3Rgb(color);\n return [\n rgb.r / 255, 0, 0, 0, rgb.r ? 1 : 0,\n 0, rgb.g / 255, 0, 0, rgb.g ? 1 : 0,\n 0, 0, rgb.b / 255, 0, rgb.b ? 1 : 0,\n 0, 0, 0, 1, 0\n ].join(\" \");\n }\n\n update(color: string) {\n this.feColorMatrix.attr(\"values\", this.rgb2ColorMatrix(color));\n }\n}\n\nexport class SVGWidget extends Widget {\n static _class = \"common_SVGWidget\";\n\n _tag;\n\n protected _boundingBox;\n protected transition;\n protected _drawStartPos: \"center\" | \"origin\";\n protected _svgSelectionFilter;\n protected _parentRelativeDiv;\n protected _parentOverlay;\n\n constructor() {\n super();\n\n this._tag = \"g\";\n\n this._boundingBox = null;\n\n this.transition = new Transition(this);\n\n this._drawStartPos = \"center\";\n }\n\n // Properties ---\n move(_, transitionDuration?) {\n const retVal = this.pos(_);\n if (arguments.length) {\n (transitionDuration ? this._element.transition().duration(transitionDuration) : this._element)\n .attr(\"transform\", `translate(${_.x} ${_.y})scale(${this._widgetScale})`)\n ;\n }\n return retVal;\n }\n\n _enableOverflow = false;\n enableOverflow(): boolean;\n enableOverflow(_: boolean): this;\n enableOverflow(_?: boolean): boolean | this {\n if (!arguments.length) return this._enableOverflow;\n this._enableOverflow = _;\n return this;\n }\n\n _enableOverflowScroll = true;\n enableOverflowScroll(): boolean;\n enableOverflowScroll(_: boolean): this;\n enableOverflowScroll(_?: boolean): boolean | this {\n if (!arguments.length) return this._enableOverflowScroll;\n this._enableOverflowScroll = _;\n return this;\n }\n\n size(): ISize;\n size(_): this;\n size(_?): ISize | this {\n const retVal = super.size.apply(this, arguments);\n if (arguments.length) {\n this._boundingBox = null;\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n if (this._parentRelativeDiv) {\n this._parentRelativeDiv\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n switch (this._drawStartPos) {\n case \"origin\":\n this.pos({\n x: 0,\n y: 0\n });\n break;\n case \"center\":\n /* falls through */\n default:\n this.pos({\n x: this._size.width / 2,\n y: this._size.height / 2\n });\n break;\n }\n }\n if (!isNaN(this._size.width)) this._placeholderElement.attr(\"width\", this._size.width);\n if (!isNaN(this._size.height)) this._placeholderElement.attr(\"height\", this._size.height);\n return retVal;\n }\n // Glow Highlighting ---\n svgGlowID(): string {\n return `sel${this.id()}_glow`;\n }\n\n target(): null | HTMLElement | SVGElement;\n target(_: null | string | HTMLElement | SVGElement): this;\n target(_?: null | string | HTMLElement | SVGElement): null | HTMLElement | SVGElement | this {\n const retVal = super.target.apply(this, arguments);\n if (arguments.length) {\n if (this._target instanceof SVGElement) {\n this._isRootNode = false;\n this._placeholderElement = d3Select(this._target);\n this._parentWidget = this._placeholderElement.datum();\n if (!this._parentWidget || this._parentWidget._id === this._id) {\n this._parentWidget = this.locateParentWidget(this._target.parentNode);\n }\n this._parentOverlay = this.locateOverlayNode();\n const svg = this.locateSVGNode(this._target);\n const svgDefs = d3Select(svg).select<SVGDefsElement>(\"defs\");\n this._svgSelectionFilter = new SVGGlowFilter(svgDefs, this.svgGlowID());\n } else if (this._target) {\n // Target is a DOM Node, so create a SVG Element ---\n this._parentRelativeDiv = d3Select(this._target).append(\"div\")\n .style(\"position\", \"relative\")\n ;\n this._placeholderElement = this._parentRelativeDiv.append(\"svg\")\n .style(\"position\", \"absolute\")\n .style(\"top\", \"0px\")\n .style(\"left\", \"0px\")\n ;\n const svgDefs = this._placeholderElement.append(\"defs\");\n this._svgSelectionFilter = new SVGGlowFilter(svgDefs, this.svgGlowID());\n this._parentOverlay = this._parentRelativeDiv.append(\"div\")\n .style(\"position\", \"absolute\")\n .style(\"top\", \"0px\")\n .style(\"left\", \"0px\")\n ;\n if (this._size.width && this._size.height) {\n this.resize(this._size);\n } else {\n this.resize({ width: 0, height: 0 });\n }\n }\n }\n return retVal;\n }\n\n parentOverlay() {\n return this._parentOverlay;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n if (this._svgSelectionFilter) {\n this._svgSelectionFilter.update(this.selectionGlowColor());\n }\n }\n\n postUpdate(domNode, element) {\n super.postUpdate(domNode, element);\n let transX;\n let transY;\n if (this._drawStartPos === \"origin\" && this._target instanceof SVGElement) {\n transX = (this._pos.x - this._size.width / 2);\n transY = (this._pos.y - this._size.height / 2);\n this._element.attr(\"transform\", \"translate(\" + transX + \",\" + transY + \")scale(\" + this._widgetScale + \")\");\n } else {\n transX = this._pos.x;\n transY = this._pos.y;\n if (this._enableOverflow) {\n // Individual Widgets will need to size and position themselves corrrectly (and have calculated a BBox) ---\n if ((transX < 0 || transY < 0) && this._boundingBox) {\n transX = transX < 0 ? 0 : transX;\n transY = transY < 0 ? 0 : transY;\n if (this._enableOverflowScroll) {\n this._parentRelativeDiv.style(\"overflow\", \"scroll\");\n }\n this._placeholderElement.attr(\"width\", this._boundingBox.width);\n this._placeholderElement.attr(\"height\", this._boundingBox.height);\n } else {\n this._parentRelativeDiv.style(\"overflow\", null);\n }\n }\n this._element.attr(\"transform\", \"translate(\" + transX + \",\" + transY + \")scale(\" + this._widgetScale + \")\");\n }\n }\n\n exit(domNode?, element?) {\n if (this._parentRelativeDiv) {\n this._parentOverlay.remove();\n this._placeholderElement.remove();\n this._parentRelativeDiv.remove();\n }\n super.exit(domNode, element);\n }\n\n getOffsetPos(): Point {\n let retVal = { x: 0, y: 0 };\n if (this._parentWidget) {\n retVal = this._parentWidget.getOffsetPos();\n retVal.x += this._pos.x;\n retVal.y += this._pos.y;\n return retVal;\n }\n return retVal;\n }\n\n getBBox(refresh = false, round = false): Rect {\n if (refresh || this._boundingBox === null) {\n const svgNode: SVGElement = this._element.node();\n if (svgNode instanceof SVGElement) {\n this._boundingBox = (svgNode as any).getBBox();\n }\n }\n if (this._boundingBox === null) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n return {\n x: (round ? Math.round(this._boundingBox.x) : this._boundingBox.x) * this._widgetScale,\n y: (round ? Math.round(this._boundingBox.y) : this._boundingBox.y) * this._widgetScale,\n width: (round ? Math.round(this._boundingBox.width) : this._boundingBox.width) * this._widgetScale,\n height: (round ? Math.round(this._boundingBox.height) : this._boundingBox.height) * this._widgetScale\n };\n }\n\n // Intersections ---\n contains(point: Point): boolean {\n return this.containsRect(point);\n }\n\n containsRect(point: Point): boolean {\n const size = this.getBBox();\n return point.x >= size.x && point.x <= size.x + size.width && point.y >= size.y && point.y <= size.y + size.height;\n }\n\n containsCircle(radius: number, point: Point) {\n const center = this.getOffsetPos();\n return this.distance(center, point) <= radius;\n }\n\n intersection(pointA: Point, pointB: Point): Point | null {\n return this.intersectRect(pointA, pointB);\n }\n\n intersectRect(pointA: Point, pointB: Point): Point | null {\n const center = this.getOffsetPos();\n const size = this.getBBox();\n if (pointA.x === pointB.x && pointA.y === pointB.y) {\n return pointA;\n }\n const TL = { x: center.x - size.width / 2, y: center.y - size.height / 2 };\n const TR = { x: center.x + size.width / 2, y: center.y - size.height / 2 };\n const BR = { x: center.x + size.width / 2, y: center.y + size.height / 2 };\n const BL = { x: center.x - size.width / 2, y: center.y + size.height / 2 };\n let intersection = intersectLineLine(TL, TR, pointA, pointB);\n if (intersection.points.length) {\n return { x: intersection.points[0].x, y: intersection.points[0].y };\n }\n intersection = intersectLineLine(TR, BR, pointA, pointB);\n if (intersection.points.length) {\n return { x: intersection.points[0].x, y: intersection.points[0].y };\n }\n intersection = intersectLineLine(BR, BL, pointA, pointB);\n if (intersection.points.length) {\n return { x: intersection.points[0].x, y: intersection.points[0].y };\n }\n intersection = intersectLineLine(BL, TL, pointA, pointB);\n if (intersection.points.length) {\n return { x: intersection.points[0].x, y: intersection.points[0].y };\n }\n return null;\n }\n\n intersectRectRect(rect1: Rect, rect2: Rect): Rect {\n const x = Math.max(rect1.x, rect2.x);\n const y = Math.max(rect1.y, rect2.y);\n const xLimit = (rect1.x < rect2.x) ? Math.min(rect1.x + rect1.width, rect2.x + rect2.width) : Math.min(rect2.x + rect2.width, rect1.x + rect1.width);\n const yLimit = (rect1.y < rect2.y) ? Math.min(rect1.y + rect1.height, rect2.y + rect2.height) : Math.min(rect2.y + rect2.height, rect1.y + rect1.height);\n return {\n x,\n y,\n width: xLimit - x,\n height: yLimit - y\n };\n }\n\n intersectCircle(radius: number, pointA: Point, pointB: Point): Point | null {\n const center = this.getOffsetPos();\n const intersection = intersectCircleLine(center, radius, pointA, pointB);\n if (intersection.points.length) {\n return { x: intersection.points[0].x, y: intersection.points[0].y };\n }\n return null;\n }\n\n distance(pointA: Point, pointB: Point): number {\n return Math.sqrt((pointA.x - pointB.x) * (pointA.x - pointB.x) + (pointA.y - pointB.y) * (pointA.y - pointB.y));\n }\n\n // Download ---\n serializeSVG(extraStyles: string = fontAwsesomeStyle): string {\n const origSvg = this.locateSVGNode(this._element.node());\n const cloneSVG = origSvg.cloneNode(true) as SVGSVGElement;\n const origNodes = d3Select(origSvg).selectAll(\"*\").nodes();\n d3Select(cloneSVG).selectAll(\"*\").each(function (this: SVGElement, d, i) {\n const compStyles = window.getComputedStyle(origNodes[i] as SVGElement);\n for (let i = 0; i < compStyles.length; ++i) {\n const styleName = compStyles.item(i);\n const styleValue = compStyles.getPropertyValue(styleName);\n const stylePriority = compStyles.getPropertyPriority(styleName);\n this.style.setProperty(styleName, styleValue, stylePriority);\n }\n });\n\n if (extraStyles) {\n const defs = cloneSVG.getElementsByTagName(\"defs\");\n if (defs.length) {\n const extraStyle = document.createElement(\"style\");\n extraStyle.setAttribute(\"type\", \"text/css\");\n extraStyle.innerText = extraStyles;\n defs[0].appendChild(extraStyle);\n }\n }\n\n const serializer = new XMLSerializer();\n return serializer.serializeToString(cloneSVG);\n }\n\n toBlob(extraStyles: string = fontAwsesomeStyle): Blob {\n return new Blob([this.serializeSVG(extraStyles)], { type: \"image/svg+xml\" });\n }\n\n rasterize(extraStyles: string = fontAwsesomeStyle, ...extraWidgets: SVGWidget[]): Promise<Blob> {\n const widgets = [this, ...extraWidgets];\n const sizes = widgets.map(widget => widget.locateSVGNode(widget.element().node()).getBoundingClientRect());\n const width = sizes.reduce((prev, curr) => prev + curr.width, 0);\n const height = Math.max(...sizes.map(s => s.height));\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width + \"px\";\n const ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"white\";\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = \"transparent\";\n return new Promise((resolve, reject) => {\n let xPos = 0;\n Promise.all(widgets.map((widget, i) => {\n const x = xPos;\n const y = (height - sizes[i].height) / 2;\n xPos += sizes[i].width;\n return new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.onerror = reject;\n image.onload = () => {\n ctx.drawImage(image, 0, 0, sizes[i].width, sizes[i].height, x, y, sizes[i].width, sizes[i].height);\n resolve();\n };\n image.src = URL.createObjectURL(widget.toBlob(extraStyles));\n });\n })).then(() => {\n ctx.canvas.toBlob(resolve); // Not supported by Edge browser\n });\n });\n }\n\n downloadSVG(extraStyles: string = fontAwsesomeStyle) {\n downloadString(\"SVG\", this.serializeSVG(extraStyles));\n }\n\n downloadPNG(filename: string = `image_${timestamp()}`, extraStyles: string = fontAwsesomeStyle, ...extraWidgets: SVGWidget[]) {\n this.rasterize(extraStyles, ...extraWidgets).then(blob => downloadBlob(blob, `${filename}.png`));\n }\n\n // IE Fixers ---\n _pushMarkers(element?) {\n if (svgMarkerGlitch) {\n element = element || this._element;\n element.selectAll(\"path[marker-start],path[marker-end]\")\n .attr(\"fixme-start\", function () { return this.getAttribute(\"marker-start\"); })\n .attr(\"fixme-end\", function () { return this.getAttribute(\"marker-end\"); })\n .attr(\"marker-start\", null)\n .attr(\"marker-end\", null)\n ;\n }\n }\n\n _popMarkers(element?) {\n if (svgMarkerGlitch) {\n element = element || this._element;\n element.selectAll(\"path[fixme-start],path[fixme-end]\")\n .attr(\"marker-start\", function () {\n return this.getAttribute(\"fixme-start\");\n })\n .attr(\"marker-end\", function () { return this.getAttribute(\"fixme-end\"); })\n .attr(\"fixme-start\", null)\n .attr(\"fixme-end\", null)\n ;\n }\n }\n\n _popMarkersDebounced = debounce(function (element) {\n if (svgMarkerGlitch) {\n this._popMarkers(element);\n }\n }, 250);\n\n _fixIEMarkers(element?) {\n if (svgMarkerGlitch) {\n this._pushMarkers(element);\n this._popMarkersDebounced(element);\n }\n }\n}\nSVGWidget.prototype._class += \" common_SVGWidget\";\n\nexport interface SVGWidget {\n selectionGlowColor(): string;\n selectionGlowColor(_: string): this;\n}\n\nSVGWidget.prototype.publish(\"selectionGlowColor\", \"red\", \"html-color\", \"Selection Glow Color\");\n","import { SVGWidget } from \"./SVGWidget\";\n\nimport \"../src/Text.css\";\n\nexport class Text extends SVGWidget {\n\n private _textElement;\n\n constructor() {\n super();\n }\n\n getBBox(refresh = false, round = false) {\n const textParts = this.text().split(\"\\n\");\n const lineHeight = this.fontSize() || 12;\n const height = lineHeight * textParts.length;\n const widths: number[] = textParts.map(line => {\n return this.textSize(line, this.fontFamily() || \"Verdana\", lineHeight).width;\n });\n const width = Math.max(...widths);\n const retVal = {\n x: - width / 2,\n y: - height / 2 - lineHeight / (this.fontFamily() === \"FontAwesome\" ? 4 : 6), // baseLine offset\n width,\n height\n };\n switch (this.anchor()) {\n case \"start\":\n retVal.x = 0;\n break;\n case \"end\":\n retVal.x = -width;\n break;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n delete this._prevHash;\n this._textElement = element.append(\"text\")\n .on(\"click\", () => {\n this.click();\n })\n .on(\"dblclick\", () => {\n this.dblclick();\n })\n ;\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum([], { width: this.width() });\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n\n const bbox = this.getBBox();\n\n this._textElement\n .style(\"font-size\", this.fontSize())\n .style(\"text-anchor\", this.anchor())\n .attr(\"transform\", d => `rotate(${this.rotation()}) translate(0,${bbox.y})`)\n ;\n\n const width = this.width();\n const context = this;\n const textParts = this.text().split(\"\\n\");\n const textLine = this._textElement.selectAll(\"tspan\").data(textParts);\n textLine.enter().append(\"tspan\")\n .attr(\"class\", function (_d, i) { return \"tspan_\" + i; })\n .attr(\"dy\", \"1em\")\n .attr(\"x\", \"0\")\n .merge(textLine)\n .style(\"font-family\", this.fontFamily())\n .style(\"fill\", this.colorFill())\n .style(\"stroke\", this.colorStroke())\n .text((d: string) => {\n if (!width) return d;\n let retVal = d;\n const lineHeight = context.fontSize() || 12;\n let clipPos = retVal.length - 1;\n while (clipPos > -3 && this.textSize(retVal, this.fontFamily() || \"Verdana\", lineHeight).width > width) {\n retVal = retVal.substr(0, --clipPos) + \"...\".substr(0, clipPos + 3);\n }\n return retVal;\n })\n ;\n textLine.exit()\n .remove()\n ;\n\n }\n }\n\n click() {\n }\n\n dblclick() {\n }\n}\nText.prototype._class += \" common_Text\";\n\nexport interface Text {\n text(): string;\n text(_: string): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n fontSize(): number;\n fontSize(_: number): this;\n anchor(): \"start\" | \"middle\" | \"end\";\n anchor(_: \"start\" | \"middle\" | \"end\"): this;\n colorFill(): string;\n colorFill(_: string): this;\n colorFill_default(): string;\n colorFill_default(_: string): this;\n colorStroke(): string;\n colorStroke(_: string): this;\n colorStroke_default(): string;\n colorStroke_default(_: string): this;\n rotation(): number;\n rotation(_: number): Text;\n}\n\nText.prototype.publish(\"text\", \"\", \"string\", \"Display Text\", null, { tags: [\"Basic\"] });\nText.prototype.publish(\"fontFamily\", null, \"string\", \"Font Family\", null, { tags: [\"Intermediate\"], optional: true });\nText.prototype.publish(\"fontSize\", null, \"number\", \"Font Size (pixels)\", null, { tags: [\"Intermediate\"] });\nText.prototype.publish(\"anchor\", \"middle\", \"set\", \"Anchor Position\", [\"start\", \"middle\", \"end\"], { tags: [\"Intermediate\"] });\nText.prototype.publish(\"colorFill\", null, \"html-color\", \"Fill Color\", null, { tags: [\"Basic\"] });\nText.prototype.publish(\"colorStroke\", null, \"html-color\", \"Fill Color\", null, { tags: [\"Basic\"] });\nText.prototype.publish(\"rotation\", 0, \"number\", \"Degrees of rotation\", null, { tags: [\"Basic\"] });\n","import { SVGWidget } from \"./SVGWidget\";\nimport { Text } from \"./Text\";\nimport * as Utility from \"./Utility\";\n\nimport \"../src/FAChar.css\";\n\nexport class FAChar extends SVGWidget {\n\n protected _text;\n\n constructor() {\n super();\n\n this._text = new Text()\n .fontFamily(\"FontAwesome\")\n ;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._text\n .target(domNode)\n ;\n element\n .on(\"click\", () => {\n this.click();\n })\n .on(\"dblclick\", () => {\n this.dblclick();\n })\n ;\n }\n\n calcChar(): string {\n return Utility.faChar(this.char());\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._text\n .text(this.calcChar())\n .fontFamily(this.text_fontFamily())\n .scale((this.fontSize() || 14) / 14) // Scale rather than fontSize to prevent Chrome glitch ---\n .render()\n ;\n }\n\n exit(domNode, element) {\n this._text\n .target(null)\n ;\n\n super.exit(domNode, element);\n }\n\n click() {\n // console.log(\"Click:\", this);\n }\n\n dblclick() {\n // console.log(\"Double click:\", this);\n }\n\n char: { (): string; (_: string): FAChar; };\n fontSize: { (): number; (_: number): FAChar; };\n text_colorFill: { (): string; (_: string): FAChar; };\n text_fontFamily: { (): string; (_: string): FAChar; };\n}\nFAChar.prototype._class += \" common_FAChar\";\n\nFAChar.prototype.publish(\"char\", \"\", \"set\", \"Font Awesome Item\", Utility.faKeys(), { tags: [\"Private\"] });\nFAChar.prototype.publish(\"fontSize\", null, \"number\", \"Font Size\", null, { tags: [\"Private\"] });\nFAChar.prototype.publishProxy(\"text_colorFill\", \"_text\", \"colorFill\");\nFAChar.prototype.publishProxy(\"text_fontFamily\", \"_text\", \"fontFamily\", \"FontAwesome\");\n\n// openssl base64 -A -in fontawesome-webfont.ttf -out tmp.txt\nconst fontAwesomeOpenType = \"AAEAAAANAIAAAwBQRkZUTWu+R7kAAoaQAAAAHEdERUYC8AAEAAKGcAAAACBPUy8yiDJ6QAAAAVgAAABgY21hcAq/On8AAAyoAAAC8mdhc3D//wADAAKGaAAAAAhnbHlmj/euTQAAGqwAAky8aGVhZBCJ5S0AAADcAAAANmhoZWEPAwq1AAABFAAAACRobXR4RXkYhQAAAbgAAArwbG9jYQL1olwAAA+cAAALEG1heHADLAIcAAABOAAAACBuYW1l45eLrAACZ2gAAASGcG9zdK+Pm6EAAmvwAAAadQABAAAABAHLkM94WV8PPPUACwcAAAAAANQzzTIAAAAA1DPNMv///wAJAQYAAAAACAACAAEAAAAAAAEAAAYA/wAAAAkA/////wkBAAEAAAAAAAAAAAAAAAAAAAK1AAEAAALDAhkAJwAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAwZpAZAABQAABIwEMwAAAIYEjAQzAAACcwAAAYoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHlycwBAACD1AAYA/wAAAAYAAQAAAAABAAAAAAAAAAAAAAAgAAEDgABwAAAAAAJVAAABwAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAXQYAAAAGgAAABwAAAAcAAAAGgAAABoAAAAUAAAAHgAAABoAAAAcAAAAHAAAABwAAeQWAAG4GgAAABoAAAAYAAAAHAAAABgAAAAWAAAAGgAAaBgAAAAYAAAAHgAAyBoAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAEgAAABwAAQAaAAAADAAAABIAAAAaAAAAFgAAABwAAAAYAAAAHgAAABoAACgUAAAAGgAAAB4AAAAaAAAAFgAAABAAAAAcAAAAGAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHgAAABgAAAAQAAAAGAAAABAAAAAcAAAAGgAAABoAAAAcAAAAEAAAABwAAAAaAAHoFgAAABgAAAAYAAAAGgAAABwAAAAQAAAAGAgABBQAAmgUAAFoGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAQAYAAAAGgAA1BoAANQcAAAAGAAAABgAADQWAAAAFgAAABoAAegYAAAAGAAAABwAAAAWAAAAHAAAABwAAAAcAABAFgAAABoAAAAcAAAAHAAAABgAAAAcAAFoHAABaB4AAAAaAAAAGgAAAB4AAAAMAAEAHAAAACAAAAAYAAAAGAAAABwAAAAcAAAAHgAAABwAAAAYAAAAGAAAAA4AAAAcAAAAGgAAABgAAAASAAAAHAAAABgAAAAaAAAAGAAAABoAAAAYAAAAFgAAABYAAAAUAAAAGAAAABoAALAQAAF8GAAAABoAAAAeAAAAFgAAABgAAAAcAAAAHAABABgAAAgcAAAAHAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAaAABUHAAAABYAABQcAAAAGAAAAB4AAAAaAABAHgAAABoAAcwcAAAEHAAAABYAABAYAAAAGAAAABgAAAAcAAAAHAAAPBwAAAAYAAAAGgAAABoAAGwcAAEAGAAAABgAAAAYAAAAJAAAAB4AAAAQAAAAEAAAAAoAAQAKAAAAGgAAABAAAAAQAAAAEAAAABwAAAAYAAAAGAAAABwAAKAcAAAAHAAAABwAAAAOAAAEHAAAABoAAAAcAAAAEAAAABwAAAAeAAAAHgAAABYAAAAWAAAAHAAAABwAAQAeAAAAFgAAABgAAAAWAAAAFgAAAB4AAQAcAAAAHgAAABoAAQAYAAAAGAAAABAAALQQAAA0EgABNBIAATQKAAC0CgAANBIAATQSAAE0HgAAAB4AAAASAAAADAAAABgAAAAaAAAAGgAAABwAAQAYAAAAHAAAABoAAAAaAAAAHgAAABwAAAAcAAAAGAAAABgAAAAYAAAAHgAAAB4AAAAcAAEAHAABABoAADQeAAC0HAAAABoAAAgWAAAIGgAAABAAAAAaAAAAEAABgAoAAAAKAAGIGAAAFBgAABQeAAAEGgAAABIAAAAWAAA0FAAAABoAAAAWAAAMGgAAkBwAAAAYAAAAGAAAABgAAAAYAAAAFgAAABwAADAcAAAAEgAAABgAAAAWAAAABgAAABgAAAAYAAAAHAAA2BgAAAAWAAAAEAAADBAAAAwYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABAAAAAQAAAAEAAA0A4IAAAQDAAQFAAAABwAAAAUAADgGAAAABgAAAAaAACIGgAAiBwAAIgcAACIGAAAiBgAAIgaAAAAGgAAABgAAAAYAABsFgAAFBgAAAAcAAAAHAABABgAACwYAAAAGAAAABgAAAAWAAAAGAAAABAAARAYAAAADAAADAwAAAwcAAEAHAAAABYAAAAaAAAAFgAAABgAACwYAAAAGAAAABQAALAYAAAAFAAAABAAAAAYAAAAHAAAsBgAAAAcAAEAGgAAgB4D//wcAAAAGAAAABYAAAAUAABUGAAAABgAAAAYAAAAGAAAABoAAAAYAAAAEgAAABYAAAAiAAAAGgAAABgAAAAcAAAAHAAAACAAAAAkAAAAGAABtBgAAAAcAAAAGAAAABgAAAAeAAAAGAAAACAAAAAYAAAAH9gApBgAAAAYAAAAGAAAABwAAAAYAAAAFAABABoAAAAMAAEAHAAAACQAAAAgAAAAGAAAABwAAAAYAAAAHAAAQCAAAAAgAAAAGAAAgBgAAAAQAAAAJAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAACcHAAAACAAAAAcAAAAHAAAgBwAAEwcAAAAGAAAABwAARAYAAAAFAAA5BwAAEggAAAAHAAAABwAAAAYAAAAGAAAABwAAPgUAABgGAAAABgAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAABkHAABkBgAAWQgAAAAIAAAqBwAAAAYAAAkHAAAnCQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACAAADggAAA4FgAAABgAAAAYAAAAHAAAABwAAAAcAAAAIAAAABwAAAAgAAAAHAAAABgAAAAgAAAAIAAAACQAAAAYAAAAIAAAABQAACwgAAAAGAAAABgAAAAYAAAAIAAAABgAAAAYAAAAIAAAACAAAAAYAAAAIAAAACAAAAAaAAAAGgAAACAAAAAgAABMGAAAACQAAAAYAAAAHAAAABQAAAgYAAAAFAAAABgAAAgcAAAAHAAACB4AAAQgAAAYGAAAABQAAAggAAAQFAAAABQAAAAcAAAAHAAAABgAAAAUAAAAGAAAABwAAAAgAAAAIAAAACAAAAAYAAAAGAAAABgAAAAcAAAAGAAAACPgAVAkAAAAHAAAACQAAAAkAAAAJAAAACQAAAAkAAAAFAAAABAAAAAgAAAAJAAAABgAAAAYAAAAJAAAACQAAAAcAAAAJAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABwAAAAcAAAAIAAAA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AAD8uAAA/QwAAP1gAAD9tAAA/ggAAP64AAD/CAABABQAAQW0AAEG9AABB/gAAQjQAAEJZAABChAAAQqYAAELGAABDAQAAQykAAENLAABDgAAAQ+IAAERLAABEaAAARLMAAETOAABE+QAARSQAAEVKAABFaQAARZYAAEW/AABF8AAARiEAAEZeAABGnwAARtUAAEc1AABHUAAAR3UAAEekAABHwQAAR98AAEgpAABIcAAASJ4AAEjCAABI2wAASQEAAEkzAABJ2gAASjoAAEqTAABLFQAAS5MAAExdAABMfQAATLgAAEzMAABM7AAATSoAAE1dAABNlQAATckAAE4DAABOUgAAToQAAE68AABO5AAATyEAAE82AABP1gAAUAcAAFBwAABQsgAAUPIAAFEnAABRUgAAUZIAAFHcAABSEgAAUl4AAFKIAABSuQAAUvUAAFMoAABTRgAAU5AAAFQQAABUaAAAVLgAAFTRAABVCAAAVVMAAFWYAABVtQAAVdYAAFYNAABWKAAAVoEAAFaiAABW2QAAVvgAAFcfAABXdgAAV6gAAFglAABYUgAAWG8AAFi8AABY1gAAWSsAAFldAABZmgAAWfcAAFotAABaVwAAWp4AAFuhAABcEAAAXPgAAF2EAABd8gAAXiQAAF5iAABeowAAXtoAAF8jAABfRwAAX2kAAF/XAABf5gAAX/4AAGAbAABgXQAAYKQAAGDNAABg6QAAYTIAAGFsAABhqQAAYh0AAGJjAABijgAAYs4AAGLoAABjkwAAY6oAAGPVAABkBAAAZEUAAGTkAABlBQAAZUEAAGV/AABlvgAAZegAAGZfAABmsgAAZwQAAGdCAABndgAAZ58AAGfGAABn+gAAaDEAAGiDAABozQAAaR4AAGlsAABpoAAAadMAAGoHAABqJAAAajsAAGo7AABqOwAAalYAAGqKAABqyAAAavMAAGsrAABragAAa4gAAGuiAABrwQAAa+oAAGwQAABsIgAAba8AAG3bAABuOAAAbl0AAG6BAABupQAAbskAAG7pAABvAgAAbx4AAG9TAABvkwAAb6kAAG/IAABwEgAAcEYAAHBxAABwwQAAcPkAAHEoAABxVQAAcYoAAHG7AAByAwAAckMAAHKiAABy6AAAcz4AAHOHAABz5QAAdBsAAHRZAAB0twAAdNQAAHT+AAB1YQAAdZ4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AgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwDSAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQCUBWdsYXNzBW11c2ljBnNlYXJjaAhlbnZlbG9wZQVoZWFydARzdGFyCnN0YXJfZW1wdHkEdXNlcgRmaWxtCHRoX2xhcmdlAnRoB3RoX2xpc3QCb2sGcmVtb3ZlB3pvb21faW4Iem9vbV9vdXQDb2ZmBnNpZ25hbANjb2cFdHJhc2gEaG9tZQhmaWxlX2FsdAR0aW1lBHJvYWQMZG93bmxvYWRfYWx0CGRvd25sb2FkBnVwbG9hZAVpbmJveAtwbGF5X2NpcmNsZQZyZXBlYXQHcmVmcmVzaAhsaXN0X2FsdARsb2NrBGZsYWcKaGVhZHBob25lcwp2b2x1bWVfb2ZmC3ZvbHVtZV9kb3duCXZvbHVtZV91cAZxcmNvZGUHYmFyY29kZQN0YWcEdGFncwRib29rCGJvb2ttYXJrBXByaW50BmNhbWVyYQRmb250BGJvbGQGaXRhbGljC3RleHRfaGVpZ2h0CnRleHRfd2lkdGgKYWxpZ25fbGVmdAxhbGlnbl9jZW50ZXILYWxpZ25fcmlnaHQNYWxpZ25fanVzdGlmeQRsaXN0C2luZGVudF9sZWZ0DGluZGVudF9yaWdodA5mYWNldGltZV92aWRlbwdwaWN0dXJlBnBlbmNpbAptYXBfbWFya2VyBmFkanVzdAR0aW50BGVkaXQFc2hhcmUFY2hlY2sEbW92ZQ1zdGVwX2JhY2t3YXJkDWZhc3RfYmFja3dhcmQIYmFja3dhcmQEcGxheQVwYXVzZQRzdG9wB2ZvcndhcmQMZmFzdF9mb3J3YXJkDHN0ZXBfZm9yd2FyZAVlamVjdAxjaGV2cm9uX2xlZnQNY2hldnJvbl9yaWdodAlwbHVzX3NpZ24KbWludXNfc2lnbgtyZW1vdmVfc2lnbgdva19zaWduDXF1ZXN0aW9uX3NpZ24JaW5mb19zaWduCnNjcmVlbnNob3QNcmVtb3ZlX2NpcmNsZQlva19jaXJjbGUKYmFuX2NpcmNsZQphcnJvd19sZWZ0C2Fycm93X3JpZ2h0CGFycm93X3VwCmFycm93X2Rvd24Jc2hhcmVfYWx0C3Jlc2l6ZV9mdWxsDHJlc2l6ZV9zbWFsbBBleGNsYW1hdGlvbl9zaWduBGdpZnQEbGVhZgRmaXJlCGV5ZV9vcGVuCWV5ZV9jbG9zZQx3YXJuaW5nX3NpZ24FcGxhbmUIY2FsZW5kYXIGcmFuZG9tB2NvbW1lbnQGbWFnbmV0CmNoZXZyb25fdXAMY2hldnJvbl9kb3duB3JldHdlZXQNc2hvcHBpbmdfY2FydAxmb2xkZXJfY2xvc2ULZm9sZGVyX29wZW4PcmVzaXplX3ZlcnRpY2FsEXJlc2l6ZV9ob3Jpem9udGFsCWJhcl9jaGFydAx0d2l0dGVyX3NpZ24NZmFjZWJvb2tfc2lnbgxjYW1lcmFfcmV0cm8Da2V5BGNvZ3MIY29tbWVudHMNdGh1bWJzX3VwX2FsdA90aHVtYnNfZG93bl9hbHQJc3Rhcl9oYWxmC2hlYXJ0X2VtcHR5B3NpZ25vdXQNbGlua2VkaW5fc2lnbgdwdXNocGluDWV4dGVybmFsX2xpbmsGc2lnbmluBnRyb3BoeQtnaXRodWJfc2lnbgp1cGxvYWRfYWx0BWxlbW9uBXBob25lC2NoZWNrX2VtcHR5DmJvb2ttYXJrX2VtcHR5CnBob25lX3NpZ24HdHdpdHRlcghmYWNlYm9vawZnaXRodWIGdW5sb2NrC2NyZWRpdF9jYXJkA3JzcwNoZGQIYnVsbGhvcm4EYmVsbAtjZXJ0aWZpY2F0ZQpoYW5kX3JpZ2h0CWhhbmRfbGVmdAdoYW5kX3VwCWhhbmRfZG93bhFjaXJjbGVfYXJyb3dfbGVmdBJjaXJjbGVfYXJyb3dfcmlnaHQPY2lyY2xlX2Fycm93X3VwEWNpcmNsZV9hcnJvd19kb3duBWdsb2JlBndyZW5jaAV0YXNrcwZmaWx0ZXIJYnJpZWZjYXNlCmZ1bGxzY3JlZW4FZ3JvdXAEbGluawVjbG91ZAZiZWFrZXIDY3V0BGNvcHkKcGFwZXJfY2xpcARzYXZlCnNpZ25fYmxhbmsHcmVvcmRlcgJ1bAJvbA1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQV0YWJsZQVtYWdpYwV0cnVjawlwaW50ZXJlc3QOcGludGVyZXN0X3NpZ24QZ29vZ2xlX3BsdXNfc2lnbgtnb29nbGVfcGx1cwVtb25leQpjYXJldF9kb3duCGNhcmV0X3VwCmNhcmV0X2xlZnQLY2FyZXRfcmlnaHQHY29sdW1ucwRzb3J0CXNvcnRfZG93bgdzb3J0X3VwDGVudmVsb3BlX2FsdAhsaW5rZWRpbgR1bmRvBWxlZ2FsCWRhc2hib2FyZAtjb21tZW50X2FsdAxjb21tZW50c19hbHQEYm9sdAdzaXRlbWFwCHVtYnJlbGxhBXBhc3RlCmxpZ2h0X2J1bGIIZXhjaGFuZ2UOY2xvdWRfZG93bmxvYWQMY2xvdWRfdXBsb2FkB3VzZXJfbWQLc3RldGhvc2NvcGUIc3VpdGNhc2UIYmVsbF9hbHQGY29mZmVlBGZvb2QNZmlsZV90ZXh0X2FsdAhidWlsZGluZwhob3NwaXRhbAlhbWJ1bGFuY2UGbWVka2l0C2ZpZ2h0ZXJfamV0BGJlZXIGaF9zaWduBGYwZmURZG91YmxlX2FuZ2xlX2xlZnQSZG91YmxlX2FuZ2xlX3JpZ2h0D2RvdWJsZV9hbmdsZV91cBFkb3VibGVfYW5nbGVfZG93bgphbmdsZV9sZWZ0C2FuZ2xlX3JpZ2h0CGFuZ2xlX3VwCmFuZ2xlX2Rvd24HZGVza3RvcAZsYXB0b3AGdGFibGV0DG1vYmlsZV9waG9uZQxjaXJjbGVfYmxhbmsKcXVvdGVfbGVmdAtxdW90ZV9yaWdodAdzcGlubmVyBmNpcmNsZQVyZXBseQpnaXRodWJfYWx0EGZvbGRlcl9jbG9zZV9hbHQPZm9sZGVyX29wZW5fYWx0CmV4cGFuZF9hbHQMY29sbGFwc2VfYWx0BXNtaWxlBWZyb3duA21laAdnYW1lcGFkCGtleWJvYXJkCGZsYWdfYWx0DmZsYWdfY2hlY2tlcmVkCHRlcm1pbmFsBGNvZGUJcmVwbHlfYWxsD3N0YXJfaGFsZl9lbXB0eQ5sb2NhdGlvbl9hcnJvdwRjcm9wCWNvZGVfZm9yawZ1bmxpbmsEXzI3OQtleGNsYW1hdGlvbgtzdXBlcnNjcmlwdAlzdWJzY3JpcHQEXzI4MwxwdXp6bGVfcGllY2UKbWljcm9waG9uZQ5taWNyb3Bob25lX29mZgZzaGllbGQOY2FsZW5kYXJfZW1wdHkRZmlyZV9leHRpbmd1aXNoZXIGcm9ja2V0Bm1heGNkbhFjaGV2cm9uX3NpZ25fbGVmdBJjaGV2cm9uX3NpZ25fcmlnaHQPY2hldnJvbl9zaWduX3VwEWNoZXZyb25fc2lnbl9kb3duBWh0bWw1BGNzczMGYW5jaG9yCnVubG9ja19hbHQIYnVsbHNleWUTZWxsaXBzaXNfaG9yaXpvbnRhbBFlbGxpcHNpc192ZXJ0aWNhbARfMzAzCXBsYXlfc2lnbgZ0aWNrZXQObWludXNfc2lnbl9hbHQLY2hlY2tfbWludXMIbGV2ZWxfdXAKbGV2ZWxfZG93bgpjaGVja19zaWduCWVkaXRfc2lnbgRfMzEyCnNoYXJlX3NpZ24HY29tcGFzcwhjb2xsYXBzZQxjb2xsYXBzZV90b3AEXzMxNwNldXIDZ2JwA3VzZANpbnIDanB5A3J1YgNrcncDYnRjBGZpbGUJZmlsZV90ZXh0EHNvcnRfYnlfYWxwaGFiZXQEXzMyORJzb3J0X2J5X2F0dHJpYnV0ZXMWc29ydF9ieV9hdHRyaWJ1dGVzX2FsdA1zb3J0X2J5X29yZGVyEXNvcnRfYnlfb3JkZXJfYWx0BF8zMzQEXzMzNQx5b3V0dWJlX3NpZ24HeW91dHViZQR4aW5nCXhpbmdfc2lnbgx5b3V0dWJlX3BsYXkHZHJvcGJveA1zdGFja2V4Y2hhbmdlCWluc3RhZ3JhbQZmbGlja3IDYWRuBGYxNzEOYml0YnVja2V0X3NpZ24GdHVtYmxyC3R1bWJscl9zaWduD2xvbmdfYXJyb3dfZG93bg1sb25nX2Fycm93X3VwD2xvbmdfYXJyb3dfbGVmdBBsb25nX2Fycm93X3JpZ2h0B3dpbmRvd3MHYW5kcm9pZAVsaW51eAdkcmliYmxlBXNreXBlCmZvdXJzcXVhcmUGdHJlbGxvBmZlbWFsZQRtYWxlBmdpdHRpcANzdW4EXzM2NgdhcmNoaXZlA2J1ZwJ2awV3ZWlibwZyZW5yZW4EXzM3Mg5zdGFja19leGNoYW5nZQRfMzc0FWFycm93X2NpcmNsZV9hbHRfbGVmdARfMzc2DmRvdF9jaXJjbGVfYWx0BF8zNzgMdmltZW9fc3F1YXJlBF8zODANcGx1c19zcXVhcmVfbwRfMzgyBF8zODMEXzM4NARfMzg1BF8zODYEXzM4NwRfMzg4BF8zODkHdW5pRjFBMARmMWExBF8zOTIEXzM5MwRmMWE0BF8zOTUEXzM5NgRfMzk3BF8zOTgEXzM5OQRfNDAwBGYxYWIEXzQwMgRfNDAzBF80MDQHdW5pRjFCMQRfNDA2BF80MDcEXzQwOARfNDA5BF80MTAEXzQxMQRfNDEyBF80MTMEXzQxNARfNDE1BF80MTYEXzQxNwRfNDE4BF80MTkHdW5pRjFDMAd1bmlGMUMxBF80MjIEXzQyMwRfNDI0BF80MjUEXzQyNgRfNDI3BF80MjgEXzQyOQRfNDMwBF80MzEEXzQzMgRfNDMzBF80MzQHdW5pRjFEMAd1bmlGMUQxB3VuaUYxRDIEXzQzOARfNDM5B3VuaUYxRDUHdW5pRjFENgd1bmlGMUQ3BF80NDMEXzQ0NARfNDQ1BF80NDYEXzQ0NwRfNDQ4BF80NDkHdW5pRjFFMARfNDUxBF80NTIEXzQ1MwRfNDU0BF80NTUEXzQ1NgRfNDU3BF80NTgEXzQ1OQRfNDYwBF80NjEEXzQ2MgRfNDYzBF80NjQHdW5pRjFGMARfNDY2BF80NjcEZjFmMwRfNDY5BF80NzAEXzQ3MQRfNDcyBF80NzMEXzQ3NARfNDc1BF80NzYEZjFmYwRfNDc4BF80NzkEXzQ4MARfNDgxBF80ODIEXzQ4MwRfNDg0BF80ODUEXzQ4NgRfNDg3BF80ODgEXzQ4OQRfNDkwBF80OTEEXzQ5MgRfNDkzBF80OTQEZjIxMARfNDk2BGYyMTIEXzQ5OARfNDk5BF81MDAEXzUwMQRfNTAyBF81MDMEXzUwNARfNTA1BF81MDYEXzUwNwRfNTA4BF81MDkFdmVudXMEXzUxMQRfNTEyBF81MTMEXzUxNARfNTE1BF81MTYEXzUxNwRfNTE4BF81MTkEXzUyMARfNTIxBF81MjIEXzUyMwRfNTI0BF81MjUEXzUyNgRfNTI3BF81MjgEXzUyOQRfNTMwBF81MzEEXzUzMgRfNTMzBF81MzQEXzUzNQRfNTM2BF81MzcEXzUzOARfNTM5BF81NDAEXzU0MQRfNTQyBF81NDMEXzU0NARfNTQ1BF81NDYEXzU0NwRfNTQ4BF81NDkEXzU1MARfNTUxBF81NTIEXzU1MwRfNTU0BF81NTUEXzU1NgRfNTU3BF81NTgEXzU1OQRfNTYwBF81NjEEXzU2MgRfNTYzBF81NjQEXzU2NQRfNTY2BF81NjcEXzU2OARfNTY5BGYyNjAEZjI2MQRfNTcyBGYyNjMEXzU3NARfNTc1BF81NzYEXzU3NwRfNTc4BF81NzkEXzU4MARfNTgxBF81ODIEXzU4MwRfNTg0BF81ODUEXzU4NgRfNTg3BF81ODgEXzU4OQRfNTkwBF81OTEEXzU5MgRfNTkzBF81OTQEXzU5NQRfNTk2BF81OTcEXzU5OARmMjdlB3VuaUYyODAHdW5pRjI4MQRfNjAyBF82MDMEXzYwNAd1bmlGMjg1B3VuaUYyODYEXzYwNwRfNjA4BF82MDkEXzYxMARfNjExBF82MTIEXzYxMwRfNjE0BF82MTUEXzYxNgRfNjE3BF82MTgEXzYxOQRfNjIwBF82MjEEXzYyMgRfNjIzBF82MjQEXzYyNQRfNjI2BF82MjcEXzYyOARfNjI5B3VuaUYyQTAHdW5pRjJBMQd1bmlGMkEyB3VuaUYyQTMHdW5pRjJBNAd1bmlGMkE1B3VuaUYyQTYHdW5pRjJBNwd1bmlGMkE4B3VuaUYyQTkHdW5pRjJBQQd1bmlGMkFCB3VuaUYyQUMHdW5pRjJBRAd1bmlGMkFFB3VuaUYyQjAHdW5pRjJCMQd1bmlGMkIyB3VuaUYyQjMHdW5pRjJCNAd1bmlGMkI1B3VuaUYyQjYHdW5pRjJCNwd1bmlGMkI4B3VuaUYyQjkHdW5pRjJCQQd1bmlGMkJCB3VuaUYyQkMHdW5pRjJCRAd1bmlGMkJFB3VuaUYyQzAHdW5pRjJDMQd1bmlGMkMyB3VuaUYyQzMHdW5pRjJDNAd1bmlGMkM1B3VuaUYyQzYHdW5pRjJDNwd1bmlGMkM4B3VuaUYyQzkHdW5pRjJDQQd1bmlGMkNCB3VuaUYyQ0MHdW5pRjJDRAd1bmlGMkNFB3VuaUYyRDAHdW5pRjJEMQd1bmlGMkQyB3VuaUYyRDMHdW5pRjJENAd1bmlGMkQ1B3VuaUYyRDYHdW5pRjJENwd1bmlGMkQ4B3VuaUYyRDkHdW5pRjJEQQd1bmlGMkRCB3VuaUYyREMHdW5pRjJERAd1bmlGMkRFB3VuaUYyRTAHdW5pRjJFMQd1bmlGMkUyB3VuaUYyRTMHdW5pRjJFNAd1bmlGMkU1B3VuaUYyRTYHdW5pRjJFNwRfNjk4B3VuaUYyRTkHdW5pRjJFQQd1bmlGMkVCB3VuaUYyRUMHdW5pRjJFRAd1bmlGMkVFAAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAQLCAAEABAAAAAIAAAAAAAEAAAAAzD2izwAAAADLTzwwAAAAANQxaLk=\";\nexport const fontAwsesomeStyle = `\\\n@font-face {\\\n font-family: \"FontAwesome\";\\\n src: url(\"data:font/opentype;base64,${fontAwesomeOpenType}\") format(\"opentype\");\\\n}`;\n","var index = {\n schemeGroups: {\n sequential: [\"BuGn\", \"BuPu\", \"GnBu\", \"OrRd\", \"PuBu\", \"PuBuGn\", \"PuRd\", \"RdPu\", \"YlGn\", \"YlGnBu\", \"YlOrBr\", \"YlOrRd\"],\n singlehue: [\"Blues\", \"Greens\", \"Greys\", \"Oranges\", \"Purples\", \"Reds\"],\n diverging: [\"BrBG\", \"PiYG\", \"PRGn\", \"PuOr\", \"RdBu\", \"RdGy\", \"RdYlBu\", \"RdYlGn\", \"Spectral\"],\n qualitative: [\"Accent\", \"Dark2\", \"Paired\", \"Pastel1\", \"Pastel2\", \"Set1\", \"Set2\", \"Set3\"]\n }, YlGn: {\n 3: [\"#f7fcb9\", \"#addd8e\", \"#31a354\"],\n 4: [\"#ffffcc\", \"#c2e699\", \"#78c679\", \"#238443\"],\n 5: [\"#ffffcc\", \"#c2e699\", \"#78c679\", \"#31a354\", \"#006837\"],\n 6: [\"#ffffcc\", \"#d9f0a3\", \"#addd8e\", \"#78c679\", \"#31a354\", \"#006837\"],\n 7: [\"#ffffcc\", \"#d9f0a3\", \"#addd8e\", \"#78c679\", \"#41ab5d\", \"#238443\", \"#005a32\"],\n 8: [\"#ffffe5\", \"#f7fcb9\", \"#d9f0a3\", \"#addd8e\", \"#78c679\", \"#41ab5d\", \"#238443\", \"#005a32\"],\n 9: [\"#ffffe5\", \"#f7fcb9\", \"#d9f0a3\", \"#addd8e\", \"#78c679\", \"#41ab5d\", \"#238443\", \"#006837\", \"#004529\"]\n }, YlGnBu: {\n 3: [\"#edf8b1\", \"#7fcdbb\", \"#2c7fb8\"],\n 4: [\"#ffffcc\", \"#a1dab4\", \"#41b6c4\", \"#225ea8\"],\n 5: [\"#ffffcc\", \"#a1dab4\", \"#41b6c4\", \"#2c7fb8\", \"#253494\"],\n 6: [\"#ffffcc\", \"#c7e9b4\", \"#7fcdbb\", \"#41b6c4\", \"#2c7fb8\", \"#253494\"],\n 7: [\"#ffffcc\", \"#c7e9b4\", \"#7fcdbb\", \"#41b6c4\", \"#1d91c0\", \"#225ea8\", \"#0c2c84\"],\n 8: [\"#ffffd9\", \"#edf8b1\", \"#c7e9b4\", \"#7fcdbb\", \"#41b6c4\", \"#1d91c0\", \"#225ea8\", \"#0c2c84\"],\n 9: [\"#ffffd9\", \"#edf8b1\", \"#c7e9b4\", \"#7fcdbb\", \"#41b6c4\", \"#1d91c0\", \"#225ea8\", \"#253494\", \"#081d58\"]\n }, GnBu: {\n 3: [\"#e0f3db\", \"#a8ddb5\", \"#43a2ca\"],\n 4: [\"#f0f9e8\", \"#bae4bc\", \"#7bccc4\", \"#2b8cbe\"],\n 5: [\"#f0f9e8\", \"#bae4bc\", \"#7bccc4\", \"#43a2ca\", \"#0868ac\"],\n 6: [\"#f0f9e8\", \"#ccebc5\", \"#a8ddb5\", \"#7bccc4\", \"#43a2ca\", \"#0868ac\"],\n 7: [\"#f0f9e8\", \"#ccebc5\", \"#a8ddb5\", \"#7bccc4\", \"#4eb3d3\", \"#2b8cbe\", \"#08589e\"],\n 8: [\"#f7fcf0\", \"#e0f3db\", \"#ccebc5\", \"#a8ddb5\", \"#7bccc4\", \"#4eb3d3\", \"#2b8cbe\", \"#08589e\"],\n 9: [\"#f7fcf0\", \"#e0f3db\", \"#ccebc5\", \"#a8ddb5\", \"#7bccc4\", \"#4eb3d3\", \"#2b8cbe\", \"#0868ac\", \"#084081\"]\n }, BuGn: {\n 3: [\"#e5f5f9\", \"#99d8c9\", \"#2ca25f\"],\n 4: [\"#edf8fb\", \"#b2e2e2\", \"#66c2a4\", \"#238b45\"],\n 5: [\"#edf8fb\", \"#b2e2e2\", \"#66c2a4\", \"#2ca25f\", \"#006d2c\"],\n 6: [\"#edf8fb\", \"#ccece6\", \"#99d8c9\", \"#66c2a4\", \"#2ca25f\", \"#006d2c\"],\n 7: [\"#edf8fb\", \"#ccece6\", \"#99d8c9\", \"#66c2a4\", \"#41ae76\", \"#238b45\", \"#005824\"],\n 8: [\"#f7fcfd\", \"#e5f5f9\", \"#ccece6\", \"#99d8c9\", \"#66c2a4\", \"#41ae76\", \"#238b45\", \"#005824\"],\n 9: [\"#f7fcfd\", \"#e5f5f9\", \"#ccece6\", \"#99d8c9\", \"#66c2a4\", \"#41ae76\", \"#238b45\", \"#006d2c\", \"#00441b\"]\n }, PuBuGn: {\n 3: [\"#ece2f0\", \"#a6bddb\", \"#1c9099\"],\n 4: [\"#f6eff7\", \"#bdc9e1\", \"#67a9cf\", \"#02818a\"],\n 5: [\"#f6eff7\", \"#bdc9e1\", \"#67a9cf\", \"#1c9099\", \"#016c59\"],\n 6: [\"#f6eff7\", \"#d0d1e6\", \"#a6bddb\", \"#67a9cf\", \"#1c9099\", \"#016c59\"],\n 7: [\"#f6eff7\", \"#d0d1e6\", \"#a6bddb\", \"#67a9cf\", \"#3690c0\", \"#02818a\", \"#016450\"],\n 8: [\"#fff7fb\", \"#ece2f0\", \"#d0d1e6\", \"#a6bddb\", \"#67a9cf\", \"#3690c0\", \"#02818a\", \"#016450\"],\n 9: [\"#fff7fb\", \"#ece2f0\", \"#d0d1e6\", \"#a6bddb\", \"#67a9cf\", \"#3690c0\", \"#02818a\", \"#016c59\", \"#014636\"]\n }, PuBu: {\n 3: [\"#ece7f2\", \"#a6bddb\", \"#2b8cbe\"],\n 4: [\"#f1eef6\", \"#bdc9e1\", \"#74a9cf\", \"#0570b0\"],\n 5: [\"#f1eef6\", \"#bdc9e1\", \"#74a9cf\", \"#2b8cbe\", \"#045a8d\"],\n 6: [\"#f1eef6\", \"#d0d1e6\", \"#a6bddb\", \"#74a9cf\", \"#2b8cbe\", \"#045a8d\"],\n 7: [\"#f1eef6\", \"#d0d1e6\", \"#a6bddb\", \"#74a9cf\", \"#3690c0\", \"#0570b0\", \"#034e7b\"],\n 8: [\"#fff7fb\", \"#ece7f2\", \"#d0d1e6\", \"#a6bddb\", \"#74a9cf\", \"#3690c0\", \"#0570b0\", \"#034e7b\"],\n 9: [\"#fff7fb\", \"#ece7f2\", \"#d0d1e6\", \"#a6bddb\", \"#74a9cf\", \"#3690c0\", \"#0570b0\", \"#045a8d\", \"#023858\"]\n }, BuPu: {\n 3: [\"#e0ecf4\", \"#9ebcda\", \"#8856a7\"],\n 4: [\"#edf8fb\", \"#b3cde3\", \"#8c96c6\", \"#88419d\"],\n 5: [\"#edf8fb\", \"#b3cde3\", \"#8c96c6\", \"#8856a7\", \"#810f7c\"],\n 6: [\"#edf8fb\", \"#bfd3e6\", \"#9ebcda\", \"#8c96c6\", \"#8856a7\", \"#810f7c\"],\n 7: [\"#edf8fb\", \"#bfd3e6\", \"#9ebcda\", \"#8c96c6\", \"#8c6bb1\", \"#88419d\", \"#6e016b\"],\n 8: [\"#f7fcfd\", \"#e0ecf4\", \"#bfd3e6\", \"#9ebcda\", \"#8c96c6\", \"#8c6bb1\", \"#88419d\", \"#6e016b\"],\n 9: [\"#f7fcfd\", \"#e0ecf4\", \"#bfd3e6\", \"#9ebcda\", \"#8c96c6\", \"#8c6bb1\", \"#88419d\", \"#810f7c\", \"#4d004b\"]\n }, RdPu: {\n 3: [\"#fde0dd\", \"#fa9fb5\", \"#c51b8a\"],\n 4: [\"#feebe2\", \"#fbb4b9\", \"#f768a1\", \"#ae017e\"],\n 5: [\"#feebe2\", \"#fbb4b9\", \"#f768a1\", \"#c51b8a\", \"#7a0177\"],\n 6: [\"#feebe2\", \"#fcc5c0\", \"#fa9fb5\", \"#f768a1\", \"#c51b8a\", \"#7a0177\"],\n 7: [\"#feebe2\", \"#fcc5c0\", \"#fa9fb5\", \"#f768a1\", \"#dd3497\", \"#ae017e\", \"#7a0177\"],\n 8: [\"#fff7f3\", \"#fde0dd\", \"#fcc5c0\", \"#fa9fb5\", \"#f768a1\", \"#dd3497\", \"#ae017e\", \"#7a0177\"],\n 9: [\"#fff7f3\", \"#fde0dd\", \"#fcc5c0\", \"#fa9fb5\", \"#f768a1\", \"#dd3497\", \"#ae017e\", \"#7a0177\", \"#49006a\"]\n }, PuRd: {\n 3: [\"#e7e1ef\", \"#c994c7\", \"#dd1c77\"],\n 4: [\"#f1eef6\", \"#d7b5d8\", \"#df65b0\", \"#ce1256\"],\n 5: [\"#f1eef6\", \"#d7b5d8\", \"#df65b0\", \"#dd1c77\", \"#980043\"],\n 6: [\"#f1eef6\", \"#d4b9da\", \"#c994c7\", \"#df65b0\", \"#dd1c77\", \"#980043\"],\n 7: [\"#f1eef6\", \"#d4b9da\", \"#c994c7\", \"#df65b0\", \"#e7298a\", \"#ce1256\", \"#91003f\"],\n 8: [\"#f7f4f9\", \"#e7e1ef\", \"#d4b9da\", \"#c994c7\", \"#df65b0\", \"#e7298a\", \"#ce1256\", \"#91003f\"],\n 9: [\"#f7f4f9\", \"#e7e1ef\", \"#d4b9da\", \"#c994c7\", \"#df65b0\", \"#e7298a\", \"#ce1256\", \"#980043\", \"#67001f\"]\n }, OrRd: {\n 3: [\"#fee8c8\", \"#fdbb84\", \"#e34a33\"],\n 4: [\"#fef0d9\", \"#fdcc8a\", \"#fc8d59\", \"#d7301f\"],\n 5: [\"#fef0d9\", \"#fdcc8a\", \"#fc8d59\", \"#e34a33\", \"#b30000\"],\n 6: [\"#fef0d9\", \"#fdd49e\", \"#fdbb84\", \"#fc8d59\", \"#e34a33\", \"#b30000\"],\n 7: [\"#fef0d9\", \"#fdd49e\", \"#fdbb84\", \"#fc8d59\", \"#ef6548\", \"#d7301f\", \"#990000\"],\n 8: [\"#fff7ec\", \"#fee8c8\", \"#fdd49e\", \"#fdbb84\", \"#fc8d59\", \"#ef6548\", \"#d7301f\", \"#990000\"],\n 9: [\"#fff7ec\", \"#fee8c8\", \"#fdd49e\", \"#fdbb84\", \"#fc8d59\", \"#ef6548\", \"#d7301f\", \"#b30000\", \"#7f0000\"]\n }, YlOrRd: {\n 3: [\"#ffeda0\", \"#feb24c\", \"#f03b20\"],\n 4: [\"#ffffb2\", \"#fecc5c\", \"#fd8d3c\", \"#e31a1c\"],\n 5: [\"#ffffb2\", \"#fecc5c\", \"#fd8d3c\", \"#f03b20\", \"#bd0026\"],\n 6: [\"#ffffb2\", \"#fed976\", \"#feb24c\", \"#fd8d3c\", \"#f03b20\", \"#bd0026\"],\n 7: [\"#ffffb2\", \"#fed976\", \"#feb24c\", \"#fd8d3c\", \"#fc4e2a\", \"#e31a1c\", \"#b10026\"],\n 8: [\"#ffffcc\", \"#ffeda0\", \"#fed976\", \"#feb24c\", \"#fd8d3c\", \"#fc4e2a\", \"#e31a1c\", \"#b10026\"],\n 9: [\"#ffffcc\", \"#ffeda0\", \"#fed976\", \"#feb24c\", \"#fd8d3c\", \"#fc4e2a\", \"#e31a1c\", \"#bd0026\", \"#800026\"]\n }, YlOrBr: {\n 3: [\"#fff7bc\", \"#fec44f\", \"#d95f0e\"],\n 4: [\"#ffffd4\", \"#fed98e\", \"#fe9929\", \"#cc4c02\"],\n 5: [\"#ffffd4\", \"#fed98e\", \"#fe9929\", \"#d95f0e\", \"#993404\"],\n 6: [\"#ffffd4\", \"#fee391\", \"#fec44f\", \"#fe9929\", \"#d95f0e\", \"#993404\"],\n 7: [\"#ffffd4\", \"#fee391\", \"#fec44f\", \"#fe9929\", \"#ec7014\", \"#cc4c02\", \"#8c2d04\"],\n 8: [\"#ffffe5\", \"#fff7bc\", \"#fee391\", \"#fec44f\", \"#fe9929\", \"#ec7014\", \"#cc4c02\", \"#8c2d04\"],\n 9: [\"#ffffe5\", \"#fff7bc\", \"#fee391\", \"#fec44f\", \"#fe9929\", \"#ec7014\", \"#cc4c02\", \"#993404\", \"#662506\"]\n }, Purples: {\n 3: [\"#efedf5\", \"#bcbddc\", \"#756bb1\"],\n 4: [\"#f2f0f7\", \"#cbc9e2\", \"#9e9ac8\", \"#6a51a3\"],\n 5: [\"#f2f0f7\", \"#cbc9e2\", \"#9e9ac8\", \"#756bb1\", \"#54278f\"],\n 6: [\"#f2f0f7\", \"#dadaeb\", \"#bcbddc\", \"#9e9ac8\", \"#756bb1\", \"#54278f\"],\n 7: [\"#f2f0f7\", \"#dadaeb\", \"#bcbddc\", \"#9e9ac8\", \"#807dba\", \"#6a51a3\", \"#4a1486\"],\n 8: [\"#fcfbfd\", \"#efedf5\", \"#dadaeb\", \"#bcbddc\", \"#9e9ac8\", \"#807dba\", \"#6a51a3\", \"#4a1486\"],\n 9: [\"#fcfbfd\", \"#efedf5\", \"#dadaeb\", \"#bcbddc\", \"#9e9ac8\", \"#807dba\", \"#6a51a3\", \"#54278f\", \"#3f007d\"]\n }, Blues: {\n 3: [\"#deebf7\", \"#9ecae1\", \"#3182bd\"],\n 4: [\"#eff3ff\", \"#bdd7e7\", \"#6baed6\", \"#2171b5\"],\n 5: [\"#eff3ff\", \"#bdd7e7\", \"#6baed6\", \"#3182bd\", \"#08519c\"],\n 6: [\"#eff3ff\", \"#c6dbef\", \"#9ecae1\", \"#6baed6\", \"#3182bd\", \"#08519c\"],\n 7: [\"#eff3ff\", \"#c6dbef\", \"#9ecae1\", \"#6baed6\", \"#4292c6\", \"#2171b5\", \"#084594\"],\n 8: [\"#f7fbff\", \"#deebf7\", \"#c6dbef\", \"#9ecae1\", \"#6baed6\", \"#4292c6\", \"#2171b5\", \"#084594\"],\n 9: [\"#f7fbff\", \"#deebf7\", \"#c6dbef\", \"#9ecae1\", \"#6baed6\", \"#4292c6\", \"#2171b5\", \"#08519c\", \"#08306b\"]\n }, Greens: {\n 3: [\"#e5f5e0\", \"#a1d99b\", \"#31a354\"],\n 4: [\"#edf8e9\", \"#bae4b3\", \"#74c476\", \"#238b45\"],\n 5: [\"#edf8e9\", \"#bae4b3\", \"#74c476\", \"#31a354\", \"#006d2c\"],\n 6: [\"#edf8e9\", \"#c7e9c0\", \"#a1d99b\", \"#74c476\", \"#31a354\", \"#006d2c\"],\n 7: [\"#edf8e9\", \"#c7e9c0\", \"#a1d99b\", \"#74c476\", \"#41ab5d\", \"#238b45\", \"#005a32\"],\n 8: [\"#f7fcf5\", \"#e5f5e0\", \"#c7e9c0\", \"#a1d99b\", \"#74c476\", \"#41ab5d\", \"#238b45\", \"#005a32\"],\n 9: [\"#f7fcf5\", \"#e5f5e0\", \"#c7e9c0\", \"#a1d99b\", \"#74c476\", \"#41ab5d\", \"#238b45\", \"#006d2c\", \"#00441b\"]\n }, Oranges: {\n 3: [\"#fee6ce\", \"#fdae6b\", \"#e6550d\"],\n 4: [\"#feedde\", \"#fdbe85\", \"#fd8d3c\", \"#d94701\"],\n 5: [\"#feedde\", \"#fdbe85\", \"#fd8d3c\", \"#e6550d\", \"#a63603\"],\n 6: [\"#feedde\", \"#fdd0a2\", \"#fdae6b\", \"#fd8d3c\", \"#e6550d\", \"#a63603\"],\n 7: [\"#feedde\", \"#fdd0a2\", \"#fdae6b\", \"#fd8d3c\", \"#f16913\", \"#d94801\", \"#8c2d04\"],\n 8: [\"#fff5eb\", \"#fee6ce\", \"#fdd0a2\", \"#fdae6b\", \"#fd8d3c\", \"#f16913\", \"#d94801\", \"#8c2d04\"],\n 9: [\"#fff5eb\", \"#fee6ce\", \"#fdd0a2\", \"#fdae6b\", \"#fd8d3c\", \"#f16913\", \"#d94801\", \"#a63603\", \"#7f2704\"]\n }, Reds: {\n 3: [\"#fee0d2\", \"#fc9272\", \"#de2d26\"],\n 4: [\"#fee5d9\", \"#fcae91\", \"#fb6a4a\", \"#cb181d\"],\n 5: [\"#fee5d9\", \"#fcae91\", \"#fb6a4a\", \"#de2d26\", \"#a50f15\"],\n 6: [\"#fee5d9\", \"#fcbba1\", \"#fc9272\", \"#fb6a4a\", \"#de2d26\", \"#a50f15\"],\n 7: [\"#fee5d9\", \"#fcbba1\", \"#fc9272\", \"#fb6a4a\", \"#ef3b2c\", \"#cb181d\", \"#99000d\"],\n 8: [\"#fff5f0\", \"#fee0d2\", \"#fcbba1\", \"#fc9272\", \"#fb6a4a\", \"#ef3b2c\", \"#cb181d\", \"#99000d\"],\n 9: [\"#fff5f0\", \"#fee0d2\", \"#fcbba1\", \"#fc9272\", \"#fb6a4a\", \"#ef3b2c\", \"#cb181d\", \"#a50f15\", \"#67000d\"]\n }, Greys: {\n 3: [\"#f0f0f0\", \"#bdbdbd\", \"#636363\"],\n 4: [\"#f7f7f7\", \"#cccccc\", \"#969696\", \"#525252\"],\n 5: [\"#f7f7f7\", \"#cccccc\", \"#969696\", \"#636363\", \"#252525\"],\n 6: [\"#f7f7f7\", \"#d9d9d9\", \"#bdbdbd\", \"#969696\", \"#636363\", \"#252525\"],\n 7: [\"#f7f7f7\", \"#d9d9d9\", \"#bdbdbd\", \"#969696\", \"#737373\", \"#525252\", \"#252525\"],\n 8: [\"#ffffff\", \"#f0f0f0\", \"#d9d9d9\", \"#bdbdbd\", \"#969696\", \"#737373\", \"#525252\", \"#252525\"],\n 9: [\"#ffffff\", \"#f0f0f0\", \"#d9d9d9\", \"#bdbdbd\", \"#969696\", \"#737373\", \"#525252\", \"#252525\", \"#000000\"]\n }, PuOr: {\n 3: [\"#f1a340\", \"#f7f7f7\", \"#998ec3\"],\n 4: [\"#e66101\", \"#fdb863\", \"#b2abd2\", \"#5e3c99\"],\n 5: [\"#e66101\", \"#fdb863\", \"#f7f7f7\", \"#b2abd2\", \"#5e3c99\"],\n 6: [\"#b35806\", \"#f1a340\", \"#fee0b6\", \"#d8daeb\", \"#998ec3\", \"#542788\"],\n 7: [\"#b35806\", \"#f1a340\", \"#fee0b6\", \"#f7f7f7\", \"#d8daeb\", \"#998ec3\", \"#542788\"],\n 8: [\"#b35806\", \"#e08214\", \"#fdb863\", \"#fee0b6\", \"#d8daeb\", \"#b2abd2\", \"#8073ac\", \"#542788\"],\n 9: [\"#b35806\", \"#e08214\", \"#fdb863\", \"#fee0b6\", \"#f7f7f7\", \"#d8daeb\", \"#b2abd2\", \"#8073ac\", \"#542788\"],\n 10: [\"#7f3b08\", \"#b35806\", \"#e08214\", \"#fdb863\", \"#fee0b6\", \"#d8daeb\", \"#b2abd2\", \"#8073ac\", \"#542788\", \"#2d004b\"],\n 11: [\"#7f3b08\", \"#b35806\", \"#e08214\", \"#fdb863\", \"#fee0b6\", \"#f7f7f7\", \"#d8daeb\", \"#b2abd2\", \"#8073ac\", \"#542788\", \"#2d004b\"]\n }, BrBG: {\n 3: [\"#d8b365\", \"#f5f5f5\", \"#5ab4ac\"],\n 4: [\"#a6611a\", \"#dfc27d\", \"#80cdc1\", \"#018571\"],\n 5: [\"#a6611a\", \"#dfc27d\", \"#f5f5f5\", \"#80cdc1\", \"#018571\"],\n 6: [\"#8c510a\", \"#d8b365\", \"#f6e8c3\", \"#c7eae5\", \"#5ab4ac\", \"#01665e\"],\n 7: [\"#8c510a\", \"#d8b365\", \"#f6e8c3\", \"#f5f5f5\", \"#c7eae5\", \"#5ab4ac\", \"#01665e\"],\n 8: [\"#8c510a\", \"#bf812d\", \"#dfc27d\", \"#f6e8c3\", \"#c7eae5\", \"#80cdc1\", \"#35978f\", \"#01665e\"],\n 9: [\"#8c510a\", \"#bf812d\", \"#dfc27d\", \"#f6e8c3\", \"#f5f5f5\", \"#c7eae5\", \"#80cdc1\", \"#35978f\", \"#01665e\"],\n 10: [\"#543005\", \"#8c510a\", \"#bf812d\", \"#dfc27d\", \"#f6e8c3\", \"#c7eae5\", \"#80cdc1\", \"#35978f\", \"#01665e\", \"#003c30\"],\n 11: [\"#543005\", \"#8c510a\", \"#bf812d\", \"#dfc27d\", \"#f6e8c3\", \"#f5f5f5\", \"#c7eae5\", \"#80cdc1\", \"#35978f\", \"#01665e\", \"#003c30\"]\n }, PRGn: {\n 3: [\"#af8dc3\", \"#f7f7f7\", \"#7fbf7b\"],\n 4: [\"#7b3294\", \"#c2a5cf\", \"#a6dba0\", \"#008837\"],\n 5: [\"#7b3294\", \"#c2a5cf\", \"#f7f7f7\", \"#a6dba0\", \"#008837\"],\n 6: [\"#762a83\", \"#af8dc3\", \"#e7d4e8\", \"#d9f0d3\", \"#7fbf7b\", \"#1b7837\"],\n 7: [\"#762a83\", \"#af8dc3\", \"#e7d4e8\", \"#f7f7f7\", \"#d9f0d3\", \"#7fbf7b\", \"#1b7837\"],\n 8: [\"#762a83\", \"#9970ab\", \"#c2a5cf\", \"#e7d4e8\", \"#d9f0d3\", \"#a6dba0\", \"#5aae61\", \"#1b7837\"],\n 9: [\"#762a83\", \"#9970ab\", \"#c2a5cf\", \"#e7d4e8\", \"#f7f7f7\", \"#d9f0d3\", \"#a6dba0\", \"#5aae61\", \"#1b7837\"],\n 10: [\"#40004b\", \"#762a83\", \"#9970ab\", \"#c2a5cf\", \"#e7d4e8\", \"#d9f0d3\", \"#a6dba0\", \"#5aae61\", \"#1b7837\", \"#00441b\"],\n 11: [\"#40004b\", \"#762a83\", \"#9970ab\", \"#c2a5cf\", \"#e7d4e8\", \"#f7f7f7\", \"#d9f0d3\", \"#a6dba0\", \"#5aae61\", \"#1b7837\", \"#00441b\"]\n }, PiYG: {\n 3: [\"#e9a3c9\", \"#f7f7f7\", \"#a1d76a\"],\n 4: [\"#d01c8b\", \"#f1b6da\", \"#b8e186\", \"#4dac26\"],\n 5: [\"#d01c8b\", \"#f1b6da\", \"#f7f7f7\", \"#b8e186\", \"#4dac26\"],\n 6: [\"#c51b7d\", \"#e9a3c9\", \"#fde0ef\", \"#e6f5d0\", \"#a1d76a\", \"#4d9221\"],\n 7: [\"#c51b7d\", \"#e9a3c9\", \"#fde0ef\", \"#f7f7f7\", \"#e6f5d0\", \"#a1d76a\", \"#4d9221\"],\n 8: [\"#c51b7d\", \"#de77ae\", \"#f1b6da\", \"#fde0ef\", \"#e6f5d0\", \"#b8e186\", \"#7fbc41\", \"#4d9221\"],\n 9: [\"#c51b7d\", \"#de77ae\", \"#f1b6da\", \"#fde0ef\", \"#f7f7f7\", \"#e6f5d0\", \"#b8e186\", \"#7fbc41\", \"#4d9221\"],\n 10: [\"#8e0152\", \"#c51b7d\", \"#de77ae\", \"#f1b6da\", \"#fde0ef\", \"#e6f5d0\", \"#b8e186\", \"#7fbc41\", \"#4d9221\", \"#276419\"],\n 11: [\"#8e0152\", \"#c51b7d\", \"#de77ae\", \"#f1b6da\", \"#fde0ef\", \"#f7f7f7\", \"#e6f5d0\", \"#b8e186\", \"#7fbc41\", \"#4d9221\", \"#276419\"]\n }, RdBu: {\n 3: [\"#ef8a62\", \"#f7f7f7\", \"#67a9cf\"],\n 4: [\"#ca0020\", \"#f4a582\", \"#92c5de\", \"#0571b0\"],\n 5: [\"#ca0020\", \"#f4a582\", \"#f7f7f7\", \"#92c5de\", \"#0571b0\"],\n 6: [\"#b2182b\", \"#ef8a62\", \"#fddbc7\", \"#d1e5f0\", \"#67a9cf\", \"#2166ac\"],\n 7: [\"#b2182b\", \"#ef8a62\", \"#fddbc7\", \"#f7f7f7\", \"#d1e5f0\", \"#67a9cf\", \"#2166ac\"],\n 8: [\"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#d1e5f0\", \"#92c5de\", \"#4393c3\", \"#2166ac\"],\n 9: [\"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#f7f7f7\", \"#d1e5f0\", \"#92c5de\", \"#4393c3\", \"#2166ac\"],\n 10: [\"#67001f\", \"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#d1e5f0\", \"#92c5de\", \"#4393c3\", \"#2166ac\", \"#053061\"],\n 11: [\"#67001f\", \"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#f7f7f7\", \"#d1e5f0\", \"#92c5de\", \"#4393c3\", \"#2166ac\", \"#053061\"]\n }, RdGy: {\n 3: [\"#ef8a62\", \"#ffffff\", \"#999999\"],\n 4: [\"#ca0020\", \"#f4a582\", \"#bababa\", \"#404040\"],\n 5: [\"#ca0020\", \"#f4a582\", \"#ffffff\", \"#bababa\", \"#404040\"],\n 6: [\"#b2182b\", \"#ef8a62\", \"#fddbc7\", \"#e0e0e0\", \"#999999\", \"#4d4d4d\"],\n 7: [\"#b2182b\", \"#ef8a62\", \"#fddbc7\", \"#ffffff\", \"#e0e0e0\", \"#999999\", \"#4d4d4d\"],\n 8: [\"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#e0e0e0\", \"#bababa\", \"#878787\", \"#4d4d4d\"],\n 9: [\"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#ffffff\", \"#e0e0e0\", \"#bababa\", \"#878787\", \"#4d4d4d\"],\n 10: [\"#67001f\", \"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#e0e0e0\", \"#bababa\", \"#878787\", \"#4d4d4d\", \"#1a1a1a\"],\n 11: [\"#67001f\", \"#b2182b\", \"#d6604d\", \"#f4a582\", \"#fddbc7\", \"#ffffff\", \"#e0e0e0\", \"#bababa\", \"#878787\", \"#4d4d4d\", \"#1a1a1a\"]\n }, RdYlBu: {\n 3: [\"#fc8d59\", \"#ffffbf\", \"#91bfdb\"],\n 4: [\"#d7191c\", \"#fdae61\", \"#abd9e9\", \"#2c7bb6\"],\n 5: [\"#d7191c\", \"#fdae61\", \"#ffffbf\", \"#abd9e9\", \"#2c7bb6\"],\n 6: [\"#d73027\", \"#fc8d59\", \"#fee090\", \"#e0f3f8\", \"#91bfdb\", \"#4575b4\"],\n 7: [\"#d73027\", \"#fc8d59\", \"#fee090\", \"#ffffbf\", \"#e0f3f8\", \"#91bfdb\", \"#4575b4\"],\n 8: [\"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee090\", \"#e0f3f8\", \"#abd9e9\", \"#74add1\", \"#4575b4\"],\n 9: [\"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee090\", \"#ffffbf\", \"#e0f3f8\", \"#abd9e9\", \"#74add1\", \"#4575b4\"],\n 10: [\"#a50026\", \"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee090\", \"#e0f3f8\", \"#abd9e9\", \"#74add1\", \"#4575b4\", \"#313695\"],\n 11: [\"#a50026\", \"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee090\", \"#ffffbf\", \"#e0f3f8\", \"#abd9e9\", \"#74add1\", \"#4575b4\", \"#313695\"]\n }, Spectral: {\n 3: [\"#fc8d59\", \"#ffffbf\", \"#99d594\"],\n 4: [\"#d7191c\", \"#fdae61\", \"#abdda4\", \"#2b83ba\"],\n 5: [\"#d7191c\", \"#fdae61\", \"#ffffbf\", \"#abdda4\", \"#2b83ba\"],\n 6: [\"#d53e4f\", \"#fc8d59\", \"#fee08b\", \"#e6f598\", \"#99d594\", \"#3288bd\"],\n 7: [\"#d53e4f\", \"#fc8d59\", \"#fee08b\", \"#ffffbf\", \"#e6f598\", \"#99d594\", \"#3288bd\"],\n 8: [\"#d53e4f\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#e6f598\", \"#abdda4\", \"#66c2a5\", \"#3288bd\"],\n 9: [\"#d53e4f\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#ffffbf\", \"#e6f598\", \"#abdda4\", \"#66c2a5\", \"#3288bd\"],\n 10: [\"#9e0142\", \"#d53e4f\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#e6f598\", \"#abdda4\", \"#66c2a5\", \"#3288bd\", \"#5e4fa2\"],\n 11: [\"#9e0142\", \"#d53e4f\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#ffffbf\", \"#e6f598\", \"#abdda4\", \"#66c2a5\", \"#3288bd\", \"#5e4fa2\"]\n }, RdYlGn: {\n 3: [\"#fc8d59\", \"#ffffbf\", \"#91cf60\"],\n 4: [\"#d7191c\", \"#fdae61\", \"#a6d96a\", \"#1a9641\"],\n 5: [\"#d7191c\", \"#fdae61\", \"#ffffbf\", \"#a6d96a\", \"#1a9641\"],\n 6: [\"#d73027\", \"#fc8d59\", \"#fee08b\", \"#d9ef8b\", \"#91cf60\", \"#1a9850\"],\n 7: [\"#d73027\", \"#fc8d59\", \"#fee08b\", \"#ffffbf\", \"#d9ef8b\", \"#91cf60\", \"#1a9850\"],\n 8: [\"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#d9ef8b\", \"#a6d96a\", \"#66bd63\", \"#1a9850\"],\n 9: [\"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#ffffbf\", \"#d9ef8b\", \"#a6d96a\", \"#66bd63\", \"#1a9850\"],\n 10: [\"#a50026\", \"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#d9ef8b\", \"#a6d96a\", \"#66bd63\", \"#1a9850\", \"#006837\"],\n 11: [\"#a50026\", \"#d73027\", \"#f46d43\", \"#fdae61\", \"#fee08b\", \"#ffffbf\", \"#d9ef8b\", \"#a6d96a\", \"#66bd63\", \"#1a9850\", \"#006837\"]\n }, Accent: {\n 3: [\"#7fc97f\", \"#beaed4\", \"#fdc086\"],\n 4: [\"#7fc97f\", \"#beaed4\", \"#fdc086\", \"#ffff99\"],\n 5: [\"#7fc97f\", \"#beaed4\", \"#fdc086\", \"#ffff99\", \"#386cb0\"],\n 6: [\"#7fc97f\", \"#beaed4\", \"#fdc086\", \"#ffff99\", \"#386cb0\", \"#f0027f\"],\n 7: [\"#7fc97f\", \"#beaed4\", \"#fdc086\", \"#ffff99\", \"#386cb0\", \"#f0027f\", \"#bf5b17\"],\n 8: [\"#7fc97f\", \"#beaed4\", \"#fdc086\", \"#ffff99\", \"#386cb0\", \"#f0027f\", \"#bf5b17\", \"#666666\"]\n }, Dark2: {\n 3: [\"#1b9e77\", \"#d95f02\", \"#7570b3\"],\n 4: [\"#1b9e77\", \"#d95f02\", \"#7570b3\", \"#e7298a\"],\n 5: [\"#1b9e77\", \"#d95f02\", \"#7570b3\", \"#e7298a\", \"#66a61e\"],\n 6: [\"#1b9e77\", \"#d95f02\", \"#7570b3\", \"#e7298a\", \"#66a61e\", \"#e6ab02\"],\n 7: [\"#1b9e77\", \"#d95f02\", \"#7570b3\", \"#e7298a\", \"#66a61e\", \"#e6ab02\", \"#a6761d\"],\n 8: [\"#1b9e77\", \"#d95f02\", \"#7570b3\", \"#e7298a\", \"#66a61e\", \"#e6ab02\", \"#a6761d\", \"#666666\"]\n }, Paired: {\n 3: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\"],\n 4: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\"],\n 5: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\"],\n 6: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\"],\n 7: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\", \"#fdbf6f\"],\n 8: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\", \"#fdbf6f\", \"#ff7f00\"],\n 9: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\", \"#fdbf6f\", \"#ff7f00\", \"#cab2d6\"],\n 10: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\", \"#fdbf6f\", \"#ff7f00\", \"#cab2d6\", \"#6a3d9a\"],\n 11: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\", \"#fdbf6f\", \"#ff7f00\", \"#cab2d6\", \"#6a3d9a\", \"#ffff99\"],\n 12: [\"#a6cee3\", \"#1f78b4\", \"#b2df8a\", \"#33a02c\", \"#fb9a99\", \"#e31a1c\", \"#fdbf6f\", \"#ff7f00\", \"#cab2d6\", \"#6a3d9a\", \"#ffff99\", \"#b15928\"]\n }, Pastel1: {\n 3: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\"],\n 4: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\", \"#decbe4\"],\n 5: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\", \"#decbe4\", \"#fed9a6\"],\n 6: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\", \"#decbe4\", \"#fed9a6\", \"#ffffcc\"],\n 7: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\", \"#decbe4\", \"#fed9a6\", \"#ffffcc\", \"#e5d8bd\"],\n 8: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\", \"#decbe4\", \"#fed9a6\", \"#ffffcc\", \"#e5d8bd\", \"#fddaec\"],\n 9: [\"#fbb4ae\", \"#b3cde3\", \"#ccebc5\", \"#decbe4\", \"#fed9a6\", \"#ffffcc\", \"#e5d8bd\", \"#fddaec\", \"#f2f2f2\"]\n }, Pastel2: {\n 3: [\"#b3e2cd\", \"#fdcdac\", \"#cbd5e8\"],\n 4: [\"#b3e2cd\", \"#fdcdac\", \"#cbd5e8\", \"#f4cae4\"],\n 5: [\"#b3e2cd\", \"#fdcdac\", \"#cbd5e8\", \"#f4cae4\", \"#e6f5c9\"],\n 6: [\"#b3e2cd\", \"#fdcdac\", \"#cbd5e8\", \"#f4cae4\", \"#e6f5c9\", \"#fff2ae\"],\n 7: [\"#b3e2cd\", \"#fdcdac\", \"#cbd5e8\", \"#f4cae4\", \"#e6f5c9\", \"#fff2ae\", \"#f1e2cc\"],\n 8: [\"#b3e2cd\", \"#fdcdac\", \"#cbd5e8\", \"#f4cae4\", \"#e6f5c9\", \"#fff2ae\", \"#f1e2cc\", \"#cccccc\"]\n }, Set1: {\n 3: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\"],\n 4: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\"],\n 5: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\", \"#ff7f00\"],\n 6: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\", \"#ff7f00\", \"#ffff33\"],\n 7: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\", \"#ff7f00\", \"#ffff33\", \"#a65628\"],\n 8: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\", \"#ff7f00\", \"#ffff33\", \"#a65628\", \"#f781bf\"],\n 9: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\", \"#ff7f00\", \"#ffff33\", \"#a65628\", \"#f781bf\", \"#999999\"]\n }, Set2: {\n 3: [\"#66c2a5\", \"#fc8d62\", \"#8da0cb\"],\n 4: [\"#66c2a5\", \"#fc8d62\", \"#8da0cb\", \"#e78ac3\"],\n 5: [\"#66c2a5\", \"#fc8d62\", \"#8da0cb\", \"#e78ac3\", \"#a6d854\"],\n 6: [\"#66c2a5\", \"#fc8d62\", \"#8da0cb\", \"#e78ac3\", \"#a6d854\", \"#ffd92f\"],\n 7: [\"#66c2a5\", \"#fc8d62\", \"#8da0cb\", \"#e78ac3\", \"#a6d854\", \"#ffd92f\", \"#e5c494\"],\n 8: [\"#66c2a5\", \"#fc8d62\", \"#8da0cb\", \"#e78ac3\", \"#a6d854\", \"#ffd92f\", \"#e5c494\", \"#b3b3b3\"]\n }, Set3: {\n 3: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\"],\n 4: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\"],\n 5: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\"],\n 6: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\"],\n 7: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\", \"#b3de69\"],\n 8: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\", \"#b3de69\", \"#fccde5\"],\n 9: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\", \"#b3de69\", \"#fccde5\", \"#d9d9d9\"],\n 10: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\", \"#b3de69\", \"#fccde5\", \"#d9d9d9\", \"#bc80bd\"],\n 11: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\", \"#b3de69\", \"#fccde5\", \"#d9d9d9\", \"#bc80bd\", \"#ccebc5\"],\n 12: [\"#8dd3c7\", \"#ffffb3\", \"#bebada\", \"#fb8072\", \"#80b1d3\", \"#fdb462\", \"#b3de69\", \"#fccde5\", \"#d9d9d9\", \"#bc80bd\", \"#ccebc5\", \"#ffed6f\"]\n }\n};\n\nexport default index;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : slice.call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), 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()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 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 = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\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 ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], 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 = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), 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()\n .domain(domain())\n .range(range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\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().paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\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] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(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}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : 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 {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\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 return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity() {\n var domain = [0, 1];\n\n function scale(x) {\n return +x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.copy = function() {\n return identity().domain(domain);\n };\n\n return linearish(scale);\n}\n","export default function(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} from \"d3-format\";\nimport constant from \"./constant\";\nimport nice from \"./nice\";\nimport {default as continuous, copy} from \"./continuous\";\n\nfunction deinterpolate(a, b) {\n return (b = Math.log(b / a))\n ? function(x) { return Math.log(x / a) / b; }\n : constant(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0\n ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\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 : function(x) { return 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), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport default function log() {\n var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\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 = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\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, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var 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 = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n scale.copy = function() {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}\n","import constant from \"./constant\";\nimport {linearish} from \"./linear\";\nimport {default as continuous, copy} from \"./continuous\";\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nexport default function pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent)))\n ? function(x) { return (raise(x, exponent) - a) / b; }\n : constant(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function(t) { return raise(a + b * t, 1 / exponent); };\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function() {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\n\nexport function sqrt() {\n return pow().exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [];\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 if (!isNaN(x = +x)) return 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 (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], 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 = slice.call(_), rescale()) : range.slice();\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 };\n\n return scale;\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1];\n\n function scale(x) {\n if (x <= x) return range[bisect(domain, x, 0, n)];\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 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).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.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range);\n };\n\n return linearish(scale);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n n = 1;\n\n function scale(x) {\n if (x <= x) return range[bisect(domain, x, 0, n)];\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), 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.copy = function() {\n return threshold()\n .domain(domain)\n .range(range);\n };\n\n return scale;\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\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(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\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 var 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 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 function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\n\nexport default function() {\n return calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n}\n","export default function(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n}\n","import colors from \"./colors\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"./colors\";\n\nexport default colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n","import colors from \"./colors\";\n\nexport default colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n","import colors from \"./colors\";\n\nexport default colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\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 rainbow = 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 rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}\n","import colors from \"./colors\";\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 {linearish} from \"./linear\";\n\nexport default function sequential(interpolator) {\n var x0 = 0,\n x1 = 1,\n clamp = false;\n\n function scale(x) {\n var t = (x - x0) / (x1 - x0);\n return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], 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 scale.copy = function() {\n return sequential(interpolator).domain([x0, x1]).clamp(clamp);\n };\n\n return linearish(scale);\n}\n","import * as _colorbrewer from \"colorbrewer\";\nimport { values as d3Values } from \"d3-collection\";\nimport { rgb as d3RGB } from \"d3-color\";\nimport { interpolateLab as d3InterpolateLab } from \"d3-interpolate\";\nimport { interpolateInferno as d3InterpolateInferno, interpolateMagma as d3InterpolateMagma, interpolatePlasma as d3InterpolatePlasma, interpolateViridis as d3InterpolateViridis, scaleLinear as d3ScaleLinear, scaleOrdinal as d3ScaleOrdinal, scaleQuantize as d3ScaleQuantize, scaleSequential as d3ScaleSequential, schemeCategory10 as d3SchemeCategory10, schemeCategory20 as d3SchemeCategory20, schemeCategory20b as d3SchemeCategory20b, schemeCategory20c as d3SchemeCategory20c } from \"d3-scale\";\nimport { select as d3Select } from \"d3-selection\";\n\nconst d3Schemes = {\n category10: d3SchemeCategory10,\n category20: d3SchemeCategory20,\n category20b: d3SchemeCategory20b,\n category20c: d3SchemeCategory20c\n};\n\nconst m_colorbrewer = _colorbrewer.default || _colorbrewer;\n\nconst m_d3 = {\n Viridis: d3InterpolateViridis,\n Magma: d3InterpolateMagma,\n Inferno: d3InterpolateInferno,\n Plasma: d3InterpolatePlasma\n};\n\nconst d3Ordinal = [\n \"category10\", \"category20\", \"category20b\", \"category20c\"\n];\n\nconst brewerOrdinal = [\n \"Accent\", \"Dark2\", \"Paired\", \"Pastel1\", \"Pastel2\", \"Set1\", \"Set2\", \"Set3\"\n];\n\nconst hpccOrdinal = [\n \"hpcc10\", \"hpcc20\"\n];\n\n// These color schemes are from www.flatuicolors.com\nconst flatuiSchemes = {\n FlatUI_default: [\"rgb(26, 188, 156)\", \"rgb(46, 204, 113)\", \"rgb(52, 152, 219)\", \"rgb(155, 89, 182)\", \"rgb(52, 73, 94)\", \"rgb(22, 160, 133)\", \"rgb(39, 174, 96)\", \"rgb(41, 128, 185)\", \"rgb(142, 68, 173)\", \"rgb(44, 62, 80)\", \"rgb(241, 196, 15)\", \"rgb(230, 126, 34)\", \"rgb(231, 76, 60)\", \"rgb(236, 240, 241)\", \"rgb(149, 165, 166)\", \"rgb(243, 156, 18)\", \"rgb(211, 84, 0)\", \"rgb(192, 57, 43)\", \"rgb(189, 195, 199)\", \"rgb(127, 140, 141)\"],\n FlatUI_American: [\"rgb(85, 239, 196)\", \"rgb(129, 236, 236)\", \"rgb(116, 185, 255)\", \"rgb(162, 155, 254)\", \"rgb(223, 230, 233)\", \"rgb(0, 184, 148)\", \"rgb(0, 206, 201)\", \"rgb(9, 132, 227)\", \"rgb(108, 92, 231)\", \"rgb(178, 190, 195)\", \"rgb(255, 234, 167)\", \"rgb(250, 177, 160)\", \"rgb(255, 118, 117)\", \"rgb(253, 121, 168)\", \"rgb(99, 110, 114)\", \"rgb(253, 203, 110)\", \"rgb(225, 112, 85)\", \"rgb(214, 48, 49)\", \"rgb(232, 67, 147)\", \"rgb(45, 52, 54)\"],\n FlatUI_Aussie: [\"rgb(246, 229, 141)\", \"rgb(255, 190, 118)\", \"rgb(255, 121, 121)\", \"rgb(186, 220, 88)\", \"rgb(223, 249, 251)\", \"rgb(249, 202, 36)\", \"rgb(240, 147, 43)\", \"rgb(235, 77, 75)\", \"rgb(106, 176, 76)\", \"rgb(199, 236, 238)\", \"rgb(126, 214, 223)\", \"rgb(224, 86, 253)\", \"rgb(104, 109, 224)\", \"rgb(48, 51, 107)\", \"rgb(149, 175, 192)\", \"rgb(34, 166, 179)\", \"rgb(190, 46, 221)\", \"rgb(72, 52, 212)\", \"rgb(19, 15, 64)\", \"rgb(83, 92, 104)\"],\n FlatUI_British: [\"rgb(0, 168, 255)\", \"rgb(156, 136, 255)\", \"rgb(251, 197, 49)\", \"rgb(76, 209, 55)\", \"rgb(72, 126, 176)\", \"rgb(0, 151, 230)\", \"rgb(140, 122, 230)\", \"rgb(225, 177, 44)\", \"rgb(68, 189, 50)\", \"rgb(64, 115, 158)\", \"rgb(232, 65, 24)\", \"rgb(245, 246, 250)\", \"rgb(127, 143, 166)\", \"rgb(39, 60, 117)\", \"rgb(53, 59, 72)\", \"rgb(194, 54, 22)\", \"rgb(220, 221, 225)\", \"rgb(113, 128, 147)\", \"rgb(25, 42, 86)\", \"rgb(47, 54, 64)\"],\n FlatUI_Canadian: [\"rgb(255, 159, 243)\", \"rgb(254, 202, 87)\", \"rgb(255, 107, 107)\", \"rgb(72, 219, 251)\", \"rgb(29, 209, 161)\", \"rgb(243, 104, 224)\", \"rgb(255, 159, 67)\", \"rgb(238, 82, 83)\", \"rgb(10, 189, 227)\", \"rgb(16, 172, 132)\", \"rgb(0, 210, 211)\", \"rgb(84, 160, 255)\", \"rgb(95, 39, 205)\", \"rgb(200, 214, 229)\", \"rgb(87, 101, 116)\", \"rgb(1, 163, 164)\", \"rgb(46, 134, 222)\", \"rgb(52, 31, 151)\", \"rgb(131, 149, 167)\", \"rgb(34, 47, 62)\"],\n FlatUI_Chinese: [\"rgb(236, 204, 104)\", \"rgb(255, 127, 80)\", \"rgb(255, 107, 129)\", \"rgb(164, 176, 190)\", \"rgb(87, 96, 111)\", \"rgb(255, 165, 2)\", \"rgb(255, 99, 72)\", \"rgb(255, 71, 87)\", \"rgb(116, 125, 140)\", \"rgb(47, 53, 66)\", \"rgb(123, 237, 159)\", \"rgb(112, 161, 255)\", \"rgb(83, 82, 237)\", \"rgb(255, 255, 255)\", \"rgb(223, 228, 234)\", \"rgb(46, 213, 115)\", \"rgb(30, 144, 255)\", \"rgb(55, 66, 250)\", \"rgb(241, 242, 246)\", \"rgb(206, 214, 224)\"],\n FlatUI_Dutch: [\"rgb(255, 195, 18)\", \"rgb(196, 229, 56)\", \"rgb(18, 203, 196)\", \"rgb(253, 167, 223)\", \"rgb(237, 76, 103)\", \"rgb(247, 159, 31)\", \"rgb(163, 203, 56)\", \"rgb(18, 137, 167)\", \"rgb(217, 128, 250)\", \"rgb(181, 52, 113)\", \"rgb(238, 90, 36)\", \"rgb(0, 148, 50)\", \"rgb(6, 82, 221)\", \"rgb(153, 128, 250)\", \"rgb(131, 52, 113)\", \"rgb(234, 32, 39)\", \"rgb(0, 98, 102)\", \"rgb(27, 20, 100)\", \"rgb(87, 88, 187)\", \"rgb(111, 30, 81)\"],\n FlatUI_French: [\"rgb(250, 211, 144)\", \"rgb(248, 194, 145)\", \"rgb(106, 137, 204)\", \"rgb(130, 204, 221)\", \"rgb(184, 233, 148)\", \"rgb(246, 185, 59)\", \"rgb(229, 80, 57)\", \"rgb(74, 105, 189)\", \"rgb(96, 163, 188)\", \"rgb(120, 224, 143)\", \"rgb(250, 152, 58)\", \"rgb(235, 47, 6)\", \"rgb(30, 55, 153)\", \"rgb(60, 99, 130)\", \"rgb(56, 173, 169)\", \"rgb(229, 142, 38)\", \"rgb(183, 21, 64)\", \"rgb(12, 36, 97)\", \"rgb(10, 61, 98)\", \"rgb(7, 153, 146)\"],\n FlatUI_German: [\"rgb(252, 92, 101)\", \"rgb(253, 150, 68)\", \"rgb(254, 211, 48)\", \"rgb(38, 222, 129)\", \"rgb(43, 203, 186)\", \"rgb(235, 59, 90)\", \"rgb(250, 130, 49)\", \"rgb(247, 183, 49)\", \"rgb(32, 191, 107)\", \"rgb(15, 185, 177)\", \"rgb(69, 170, 242)\", \"rgb(75, 123, 236)\", \"rgb(165, 94, 234)\", \"rgb(209, 216, 224)\", \"rgb(119, 140, 163)\", \"rgb(45, 152, 218)\", \"rgb(56, 103, 214)\", \"rgb(136, 84, 208)\", \"rgb(165, 177, 194)\", \"rgb(75, 101, 132)\"],\n FlatUI_Indian: [\"rgb(254, 164, 127)\", \"rgb(37, 204, 247)\", \"rgb(234, 181, 67)\", \"rgb(85, 230, 193)\", \"rgb(202, 211, 200)\", \"rgb(249, 127, 81)\", \"rgb(27, 156, 252)\", \"rgb(248, 239, 186)\", \"rgb(88, 177, 159)\", \"rgb(44, 58, 71)\", \"rgb(179, 55, 113)\", \"rgb(59, 59, 152)\", \"rgb(253, 114, 114)\", \"rgb(154, 236, 219)\", \"rgb(214, 162, 232)\", \"rgb(109, 33, 79)\", \"rgb(24, 44, 97)\", \"rgb(252, 66, 123)\", \"rgb(189, 197, 129)\", \"rgb(130, 88, 159)\"],\n FlatUI_Russian: [\"rgb(243, 166, 131)\", \"rgb(247, 215, 148)\", \"rgb(119, 139, 235)\", \"rgb(231, 127, 103)\", \"rgb(207, 106, 135)\", \"rgb(241, 144, 102)\", \"rgb(245, 205, 121)\", \"rgb(84, 109, 229)\", \"rgb(225, 95, 65)\", \"rgb(196, 69, 105)\", \"rgb(120, 111, 166)\", \"rgb(248, 165, 194)\", \"rgb(99, 205, 218)\", \"rgb(234, 134, 133)\", \"rgb(89, 98, 117)\", \"rgb(87, 75, 144)\", \"rgb(247, 143, 179)\", \"rgb(61, 193, 211)\", \"rgb(230, 103, 103)\", \"rgb(48, 57, 82)\"],\n FlatUI_Spanish: [\"rgb(64, 64, 122)\", \"rgb(112, 111, 211)\", \"rgb(247, 241, 227)\", \"rgb(52, 172, 224)\", \"rgb(51, 217, 178)\", \"rgb(44, 44, 84)\", \"rgb(71, 71, 135)\", \"rgb(170, 166, 157)\", \"rgb(34, 112, 147)\", \"rgb(33, 140, 116)\", \"rgb(255, 82, 82)\", \"rgb(255, 121, 63)\", \"rgb(209, 204, 192)\", \"rgb(255, 177, 66)\", \"rgb(255, 218, 121)\", \"rgb(179, 57, 57)\", \"rgb(205, 97, 51)\", \"rgb(132, 129, 122)\", \"rgb(204, 142, 53)\", \"rgb(204, 174, 98)\"],\n FlatUI_Swedish: [\"rgb(239, 87, 119)\", \"rgb(87, 95, 207)\", \"rgb(75, 207, 250)\", \"rgb(52, 231, 228)\", \"rgb(11, 232, 129)\", \"rgb(245, 59, 87)\", \"rgb(60, 64, 198)\", \"rgb(15, 188, 249)\", \"rgb(0, 216, 214)\", \"rgb(5, 196, 107)\", \"rgb(255, 192, 72)\", \"rgb(255, 221, 89)\", \"rgb(255, 94, 87)\", \"rgb(210, 218, 226)\", \"rgb(72, 84, 96)\", \"rgb(255, 168, 1)\", \"rgb(255, 211, 42)\", \"rgb(255, 63, 52)\", \"rgb(128, 142, 155)\", \"rgb(30, 39, 46)\"],\n FlatUI_Turkish: [\"rgb(205, 132, 241)\", \"rgb(255, 204, 204)\", \"rgb(255, 77, 77)\", \"rgb(255, 175, 64)\", \"rgb(255, 250, 101)\", \"rgb(197, 108, 240)\", \"rgb(255, 184, 184)\", \"rgb(255, 56, 56)\", \"rgb(255, 159, 26)\", \"rgb(255, 242, 0)\", \"rgb(50, 255, 126)\", \"rgb(126, 255, 245)\", \"rgb(24, 220, 255)\", \"rgb(125, 95, 255)\", \"rgb(75, 75, 75)\", \"rgb(58, 227, 116)\", \"rgb(103, 230, 220)\", \"rgb(23, 192, 235)\", \"rgb(113, 88, 226)\", \"rgb(61, 61, 61)\"]\n};\nconst flatuiOrdinal = Object.keys(flatuiSchemes);\n\nconst ordinalCache = {};\n\nexport interface PaletteFunc {\n switch(id?: string, colors?: string[]);\n type(): \"ordinal\" | \"rainbow\";\n}\n\nexport interface OrdinalPaletteFunc extends PaletteFunc {\n (label: string): string;\n}\nexport function fetchOrdinalItem(): string[];\nexport function fetchOrdinalItem(id: string, colors?: string[]): OrdinalPaletteFunc;\nexport function fetchOrdinalItem(id?: string, colors?: string[]): string[] | OrdinalPaletteFunc {\n if (!id) return palette_ordinal();\n let retVal = ordinalCache[id];\n if (!retVal) {\n retVal = palette_ordinal(id, colors);\n ordinalCache[id] = retVal;\n }\n return retVal;\n}\n\nfunction palette_ordinal(id?, colors?): any {\n if (!id) return [\"default\"].concat(d3Ordinal.concat(brewerOrdinal).concat(hpccOrdinal).concat(flatuiOrdinal));\n let scale = null;\n\n if (colors) {\n scale = d3ScaleOrdinal().range(colors);\n } else {\n if (d3Ordinal.indexOf(id) >= 0) {\n scale = d3ScaleOrdinal(d3Schemes[id]);\n } else if (flatuiOrdinal.indexOf(id) >= 0) {\n scale = d3ScaleOrdinal().range(flatuiSchemes[id]);\n } else if (hpccOrdinal.indexOf(id) >= 0) {\n let newColors = [];\n switch (id) {\n case \"hpcc10\":\n const defColors = palette_ordinal(\"default\").colors();\n newColors = defColors.filter(function (_item, idx) {\n if (idx % 2) {\n return true;\n }\n return false;\n });\n break;\n case \"hpcc20\":\n newColors = palette_ordinal(\"category10\").colors().concat(palette_ordinal(\"hpcc10\").colors());\n break;\n }\n scale = d3ScaleOrdinal().range(newColors);\n } else if (brewerOrdinal.indexOf(id) >= 0) {\n let largestPalette = 12;\n while (largestPalette > 0) {\n if (m_colorbrewer[id][largestPalette]) {\n scale = d3ScaleOrdinal().range(m_colorbrewer[id][largestPalette]);\n break;\n }\n --largestPalette;\n }\n }\n if (!scale) {\n // Default to Category20 ---\n scale = d3ScaleOrdinal(d3SchemeCategory20);\n }\n colors = scale.range();\n }\n const ordinal: any = function (_) {\n return scale(_);\n };\n ordinal.type = function () {\n return \"ordinal\";\n };\n ordinal.id = function (_) {\n if (!arguments.length) return id;\n id = _;\n return ordinal;\n };\n ordinal.colors = function (_) {\n if (!arguments.length) return colors;\n colors = _;\n return ordinal;\n };\n ordinal.clone = function (newID) {\n ordinalCache[newID] = palette_ordinal(newID, this.colors());\n return ordinalCache[newID];\n\n };\n ordinal.cloneNotExists = function (newID) {\n if (ordinalCache[newID]) {\n return ordinalCache[newID];\n }\n return this.clone(newID);\n };\n ordinal.switch = function (_id, _colors) {\n if (id === _id) {\n return this;\n }\n return arguments.length ? fetchOrdinalItem(_id, _colors) : fetchOrdinalItem();\n };\n\n return ordinal;\n}\n\nconst rainbowCache = {};\nexport interface RainbowPaletteFunc extends PaletteFunc {\n (value: number, domainLow: number, domainHigh: number): string;\n}\nexport function fetchRainbowItem(): string[];\nexport function fetchRainbowItem(id: string): RainbowPaletteFunc;\nexport function fetchRainbowItem(id: string, colors: string[], steps?: number): RainbowPaletteFunc;\nexport function fetchRainbowItem(id?: string, colors?: string[], steps?: number): string[] | RainbowPaletteFunc {\n if (!id) return palette_rainbow();\n let retVal = rainbowCache[id];\n if (!retVal) {\n retVal = palette_rainbow(id, colors, steps);\n rainbowCache[id] = retVal;\n }\n return retVal;\n}\n\nfunction palette_rainbow(id?, _colors?, _steps?) {\n if (!arguments.length) {\n const retVal = [\"default\"];\n for (const key in m_colorbrewer) {\n if (brewerOrdinal.indexOf(key) === -1) {\n retVal.push(key);\n }\n }\n return retVal;\n }\n\n let scale = null;\n let colors = _colors;\n\n const _custom = function (colors, steps?) {\n steps = steps || 32;\n const subPaletteSize = Math.ceil(steps / (colors.length - 1));\n const range = [];\n let prevColor = null;\n colors.forEach(function (color) {\n if (prevColor) {\n const scale = d3ScaleLinear()\n .domain([0, subPaletteSize])\n .range([prevColor, color])\n .interpolate(d3InterpolateLab as any)\n ;\n for (let i = 0; i < subPaletteSize; ++i) {\n range.push(scale(i));\n }\n }\n prevColor = color;\n });\n scale = d3ScaleQuantize().domain([0, 100]).range(range);\n return scale;\n };\n\n if (_colors) {\n scale = _custom(_colors, _steps);\n } else {\n if (m_colorbrewer[id]) {\n let largestPalette = 12;\n while (largestPalette > 0) {\n if (m_colorbrewer[id][largestPalette]) {\n scale = _custom(m_colorbrewer[id][largestPalette]);\n break;\n }\n --largestPalette;\n }\n }\n if (m_d3[id]) {\n scale = d3ScaleSequential(m_d3[id]).domain([0, 100]);\n }\n if (!scale) {\n scale = _custom(m_colorbrewer.RdYlGn[11]);\n }\n colors = scale.range ? scale.range() : scale;\n\n }\n const rainbow: any = function (x, low, high) {\n if (low === high) {\n return scale.domain([low - 1, high + 1])(x);\n }\n return scale.domain([low, high])(x);\n };\n rainbow.type = function () {\n return \"rainbow\";\n };\n rainbow.id = function (_) {\n if (!arguments.length) return id;\n id = _;\n return rainbow;\n };\n rainbow.colors = function (_) {\n if (!arguments.length) return colors;\n colors = _;\n return rainbow;\n };\n rainbow.clone = function (newID) {\n rainbowCache[newID] = palette_rainbow(newID, this.colors());\n return rainbowCache[newID];\n };\n rainbow.cloneNotExists = function (newID) {\n if (rainbowCache[newID]) {\n return rainbowCache[newID];\n }\n return this.clone(newID);\n };\n rainbow.switch = function (_id, _colors) {\n if (id === _id) {\n return this;\n }\n return arguments.length ? fetchRainbowItem(_id, _colors) : fetchRainbowItem();\n };\n\n return rainbow;\n}\n\nexport function test(ordinalDivID, brewerDivID, customDivID, customArr, steps) {\n d3Select(ordinalDivID)\n .selectAll(\".palette\")\n .data(palette_ordinal(), function (d: any) { return d; })\n .enter().append(\"span\")\n .attr(\"class\", \"palette\")\n .attr(\"title\", function (d: any) { return d; })\n .on(\"click\", function (d: any) {\n console.info(d3Values(d.value).map(JSON.stringify as any).join(\"\\n\"));\n })\n .selectAll(\".swatch\").data(function (d) { return palette_ordinal(d).colors(); })\n .enter().append(\"span\")\n .attr(\"class\", \"swatch\")\n .style(\"background-color\", function (d: any) { return d; });\n\n d3Select(brewerDivID)\n .selectAll(\".palette\")\n .data(palette_rainbow(), function (d: any) { return d; })\n .enter().append(\"span\")\n .attr(\"class\", \"palette\")\n .attr(\"title\", function (d: any) { return d; })\n .on(\"click\", function (d: any) {\n console.info(d3Values(d.value).map(JSON.stringify as any).join(\"\\n\"));\n })\n .selectAll(\".swatch2\").data(function (d) { return palette_rainbow(d).colors(); })\n .enter().append(\"span\")\n .attr(\"class\", \"swatch2\")\n .style(\"height\", (256 / 32) + \"px\")\n .style(\"background-color\", function (d: any) { return d; });\n\n const palette = { id: customArr.join(\"_\") + steps, scale: palette_rainbow(\"custom\", customArr, steps) };\n d3Select(customDivID)\n .selectAll(\".palette\")\n .data([palette], function (d: any) { return d.id; })\n .enter().append(\"span\")\n .attr(\"class\", \"palette\")\n .attr(\"title\", function () { return \"aaa\"; /*d.from + \"->\" + d.to;*/ })\n .on(\"click\", function (d) {\n console.info(d3Values(d.id).map(JSON.stringify as any).join(\"\\n\"));\n })\n .selectAll(\".swatch2\").data(function () {\n const retVal = [];\n for (let i = 0; i <= 255; ++i) {\n retVal.push(palette.scale(i, 0, 255));\n }\n return retVal;\n })\n .enter().append(\"span\")\n .attr(\"class\", \"swatch2\")\n .style(\"background-color\", function (d) { return d; });\n}\n\nm_colorbrewer.RdWhGr = {\n 3: [\"red\", \"white\", \"green\"]\n};\n\nexport const ordinal = fetchOrdinalItem;\nexport const rainbow = fetchRainbowItem;\nexport function textColor(backgroundColor: string): string {\n let rgb;\n switch (backgroundColor) {\n case \"\":\n case \"transparent\":\n rgb = d3RGB(\"white\");\n break;\n default:\n rgb = d3RGB(backgroundColor);\n }\n return ((rgb.r * 0.299 + rgb.g * 0.587 + rgb.b * 0.114) > 149) ? \"black\" : \"white\";\n}\n","import { select as d3Select } from \"d3-selection\";\nimport { SVGWidget } from \"./SVGWidget\";\n\nimport \"../src/Shape.css\";\n\nexport class Shape extends SVGWidget {\n protected _tooltipElement;\n\n constructor() {\n super();\n }\n\n contains(point) {\n switch (this.shape()) {\n case \"circle\":\n return this.containsCircle(this.radius(), point);\n }\n return SVGWidget.prototype.intersection.apply(this, arguments);\n }\n\n intersection(pointA, pointB) {\n switch (this.shape()) {\n case \"circle\":\n return this.intersectCircle(this.radius(), pointA, pointB);\n }\n return SVGWidget.prototype.intersection.apply(this, arguments);\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n delete this._prevHash;\n }\n\n _prevHash;\n update(_domNode, element) {\n const shape = element.selectAll(\"rect,circle,ellipse,path\").data([this.shape()], function (d) { return d; });\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n\n const context = this;\n shape.enter().append(this.getShapeElementTag(this.shape()))\n .attr(\"class\", \"common_Shape\")\n .each(function () {\n const element2 = d3Select(this);\n context._tooltipElement = element2.append(\"title\");\n })\n .on(\"click\", () => {\n this.click();\n })\n .on(\"dblclick\", () => {\n this.dblclick();\n })\n .merge(shape)\n .style(\"fill\", this.colorFill())\n .style(\"stroke\", this.colorStroke())\n .each(function () {\n const element2 = d3Select(this);\n context._tooltipElement.text(context.tooltip());\n switch (context.shape()) {\n case \"circle\":\n const radius = context.radius();\n element2\n .attr(\"r\", radius)\n ;\n break;\n case \"square\":\n const width = Math.max(context.width(), context.height());\n element2\n .attr(\"x\", -width / 2)\n .attr(\"y\", -width / 2)\n .attr(\"rx\", context.cornerRadius())\n .attr(\"ry\", context.cornerRadius())\n .attr(\"width\", width)\n .attr(\"height\", width)\n ;\n break;\n case \"rect\":\n element2\n .attr(\"x\", -context.width() / 2)\n .attr(\"y\", -context.height() / 2)\n .attr(\"rx\", context.cornerRadius())\n .attr(\"ry\", context.cornerRadius())\n .attr(\"width\", context.width())\n .attr(\"height\", context.height())\n ;\n break;\n case \"ellipse\":\n element2\n .attr(\"rx\", context.width() / 2)\n .attr(\"ry\", context.height() / 2)\n ;\n break;\n case \"pin\":\n element2\n .attr(\"d\", context.pinPath())\n ;\n break;\n }\n })\n ;\n shape.exit().remove();\n }\n }\n getShapeElementTag(_shape) {\n switch (_shape) {\n case \"square\":\n return \"rect\";\n case \"pin\":\n return \"path\";\n }\n return _shape;\n }\n pinPath() {\n const radius = this.cornerRadius();\n const arrow_h = this.arrowHeight();\n const arrow_w = this.arrowWidth();\n const width = this.width();\n const height = this.height() - arrow_h;\n const x = 0 - width / 2;\n const y = 0 - height;\n const arrow_b = (width - radius * 2 - arrow_w) / 2;\n return \"M\" + x + \",\" + y +\n \"a\" + -radius + \",\" + -radius + \" 0 0 1 \" + radius + \",\" + -radius +\n \"h\" + (width + -radius * 2) +\n \"a\" + radius + \",\" + radius + \" 0 0 1 \" + radius + \",\" + radius +\n \"v\" + (height + -radius * 2) +\n \"a\" + radius + \",\" + radius + \" 0 0 1 \" + -radius + \",\" + radius +\n \"h\" + -arrow_b +\n \"l\" + -arrow_w / 2 + \",\" + arrow_h +\n \"l\" + -arrow_w / 2 + \",\" + -arrow_h +\n \"h\" + -arrow_b +\n \"a\" + -radius + \",\" + -radius + \" 0 0 1 \" + -radius + \",\" + -radius +\n \"z\";\n }\n\n click() {\n }\n\n dblclick() {\n }\n\n}\nShape.prototype._class += \" common_Shape\";\n\nexport interface Shape {\n shape(): string;\n shape(_: string): this;\n colorStroke(): string;\n colorStroke(_: string): this;\n colorFill(): string;\n colorFill(_: string): this;\n colorFill_exists(): boolean;\n radius(): number;\n radius(_: number): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n arrowHeight(): number;\n arrowHeight(_: number): this;\n arrowWidth(): number;\n arrowWidth(_: number): this;\n tooltip(): string;\n tooltip(_: string): this;\n}\n\nShape.prototype.publish(\"shape\", \"circle\", \"set\", \"Shape Type\", [\"circle\", \"square\", \"rect\", \"ellipse\", \"pin\"], { tags: [\"Private\"] });\nShape.prototype.publish(\"width\", 24, \"number\", \"Width\", null, { tags: [\"Private\"] });\nShape.prototype.publish(\"height\", 24, \"number\", \"Height\", null, { tags: [\"Private\"] });\nShape.prototype.publish(\"colorStroke\", null, \"html-color\", \"Stroke Color\", null, { optional: true });\nShape.prototype.publish(\"colorFill\", null, \"html-color\", \"Fill Color\", null, { optional: true });\nShape.prototype.publish(\"radius\", null, \"number\", \"Radius\", null, { tags: [\"Private\"] });\nShape.prototype.publish(\"cornerRadius\", 3, \"number\", \"cornerRadius\");\nShape.prototype.publish(\"arrowHeight\", 5, \"number\", \"arrowHeight\");\nShape.prototype.publish(\"arrowWidth\", 10, \"number\", \"arrowWidth\");\nShape.prototype.publish(\"tooltip\", \"\", \"string\", \"Tooltip\", null, { tags: [\"Private\"] });\n\nconst _origRadius = Shape.prototype.radius;\nShape.prototype.radius = function (_?) {\n const retVal = _origRadius.apply(this, arguments);\n if (arguments.length) {\n this.width(_);\n this.height(_);\n return retVal;\n }\n return Math.max(this.width(), this.height()) / 2;\n};\n","import { FAChar } from \"./FAChar\";\nimport { textColor } from \"./Palette\";\nimport { Shape } from \"./Shape\";\nimport { SVGWidget } from \"./SVGWidget\";\n\nimport \"../src/Icon.css\";\n\nexport class Icon extends SVGWidget {\n\n protected _shapeWidget;\n protected _faChar;\n protected _defs;\n protected _root;\n protected _tooltipElement;\n\n constructor() {\n super();\n\n this._shapeWidget = new Shape();\n this._faChar = new FAChar();\n }\n\n getBBox(refresh = false, round = false) {\n const diameter = this.diameter();\n return {\n x: - diameter / 2,\n y: - diameter / 2,\n width: diameter,\n height: diameter\n };\n }\n\n contains(point) {\n return this._shapeWidget.contains(point);\n }\n\n intersection(pointA, pointB) {\n return this._shapeWidget.intersection(pointA, pointB);\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n delete this._prevHash;\n this._defs = element.append(\"defs\");\n this._defs.append(\"clipPath\")\n .attr(\"id\", \"clip_\" + this.id() + \"_circle\")\n .append(\"circle\")\n .attr(\"x\", 0)\n .attr(\"y\", 0)\n ;\n this._defs.append(\"clipPath\")\n .attr(\"id\", \"clip_\" + this.id() + \"_square\")\n .append(\"rect\")\n ;\n this._root = element.append(\"g\");\n this._shapeWidget\n .target(this._root.node())\n ;\n this._faChar\n .target(element.node())\n ;\n this._tooltipElement = element.append(\"title\");\n const context = this;\n element\n .on(\"click\", function (el) {\n context.click(el);\n })\n .on(\"dblclick\", function (el) {\n context.dblclick(el);\n })\n ;\n }\n\n click(_domNode) {\n // console.log(\"Clicked the icon\");\n }\n\n dblclick(_domNode) {\n // console.log(\"Double clicked the icon\");\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n\n const diameter = this.diameter();\n const radius = diameter / 2;\n this._defs.select(\"circle\")\n .attr(\"r\", radius)\n ;\n this._defs.select(\"rect\")\n .attr(\"x\", -radius)\n .attr(\"y\", -radius)\n .attr(\"width\", diameter)\n .attr(\"height\", diameter)\n ;\n this._faChar\n .fontSize(diameter * (100 - this.paddingPercent()) / 100)\n .render()\n ;\n this._shapeWidget\n .shape(this.shape())\n .width(diameter)\n .height(diameter)\n .render()\n ;\n const image = this._root.selectAll(\"image\").data(this.imageUrl() ? [this.imageUrl()] : [], function (d) { return d; });\n image.enter()\n .append(\"image\")\n .attr(\"xlink:href\", this.imageUrl())\n .merge(image)\n .attr(\"clip-path\", \"url(#clip_\" + this.id() + \"_\" + this.shape() + \")\")\n .attr(\"x\", -radius)\n .attr(\"y\", -radius)\n .attr(\"width\", diameter)\n .attr(\"height\", diameter)\n ;\n if (this.shape_colorFill_exists() && !this.image_colorFill_exists()) {\n this.image_colorFill(textColor(this.shape_colorFill()));\n }\n image.exit()\n .remove()\n ;\n this._tooltipElement.text(this.tooltip());\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n this._shapeWidget\n .target(null)\n ;\n this._faChar\n .target(null)\n ;\n }\n\n shape: { (): string; (_: string): Icon; };\n faChar: { (): string; (_: string): Icon; };\n imageUrl: { (): string; (_: string): Icon; };\n image_colorFill: { (): string; (_: string): Icon; };\n image_colorFill_exists: () => boolean;\n tooltip: { (): string; (_: string): Icon; };\n diameter: { (): number; (_: number): Icon; };\n paddingPercent: { (): number; (_: number): Icon; };\n shape_colorFill: { (): string; (_: string): Icon; };\n shape_colorFill_exists: () => boolean;\n shape_colorStroke: { (): string; (_: string): Icon; };\n}\nIcon.prototype._class += \" common_Icon\";\n\nIcon.prototype.publish(\"shape\", \"circle\", \"set\", \"Shape Type\", [\"circle\", \"square\"], { tags: [\"Private\"] });\nIcon.prototype.publishProxy(\"faChar\", \"_faChar\", \"char\");\nIcon.prototype.publishProxy(\"fontFamily\", \"_faChar\", \"text_fontFamily\");\nIcon.prototype.publish(\"imageUrl\", null, \"string\", \"Image URL\", null, { optional: true });\nIcon.prototype.publishProxy(\"image_colorFill\", \"_faChar\", \"text_colorFill\");\nIcon.prototype.publish(\"tooltip\", \"\", \"string\", \"Tooltip\", null, { tags: [\"Private\"] });\nIcon.prototype.publish(\"diameter\", 24, \"number\", \"Diameter\", null, { tags: [\"Private\"] });\nIcon.prototype.publish(\"paddingPercent\", 45, \"number\", \"Padding Percent\", null, { tags: [\"Private\"] });\nIcon.prototype.publishProxy(\"shape_colorFill\", \"_shapeWidget\", \"colorFill\");\nIcon.prototype.publishProxy(\"shape_colorStroke\", \"_shapeWidget\", \"colorStroke\");\n","import { local as d3Local } from \"d3-selection\";\nimport { Icon } from \"./Icon\";\nimport { Shape } from \"./Shape\";\nimport { SVGWidget } from \"./SVGWidget\";\nimport { Text } from \"./Text\";\nimport { BBox, Widget } from \"./Widget\";\n\nexport interface IAnnotation {\n faChar: string;\n tooltip?: string;\n shape_colorFill?: string;\n shape_colorStroke?: string;\n image_colorFill?: string;\n shape?: string;\n}\n\nexport class Entity extends SVGWidget {\n protected _icon_widget: Icon;\n protected _background_widget: Shape;\n protected _title_widget: Text;\n protected _desc_widget: Text;\n protected _annotation_widgets: { [idx: number]: { widget: SVGWidget, bbox: BBox } };\n protected _element_anno;\n protected _element_background;\n protected _element_desc;\n protected _element_icon;\n protected _element_title;\n\n private _annotationLocal = d3Local<Icon>();\n\n constructor() {\n super();\n\n this._background_widget = new Shape();\n this._icon_widget = new Icon();\n this._title_widget = new Text();\n this._desc_widget = new Text();\n this._annotation_widgets = {};\n }\n getAnnotationsBBox(): BBox {\n let retVal: BBox;\n for (const key in this._annotation_widgets) {\n const bbox = this._annotation_widgets[key].bbox;\n if (!retVal) {\n retVal = bbox;\n } else {\n retVal.x = Math.min(retVal.x, bbox.x);\n retVal.y = Math.min(retVal.y, bbox.y);\n retVal.width = Math.max(retVal.width, bbox.width);\n retVal.height = Math.max(retVal.height, bbox.height);\n }\n }\n return retVal || { x: 0, y: 0, width: 0, height: 0 };\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .on(\"mouseover\", () => {\n element.classed(\"hovering\", true);\n this.render();\n })\n .on(\"mouseout\", () => {\n element.classed(\"hovering\", false);\n this.render();\n })\n ;\n\n this._element_background = element.append(\"g\").attr(\"class\", \"entity_shape\");\n this._element_icon = element.append(\"g\").attr(\"class\", \"entity_icon\");\n this._element_title = element.append(\"g\").attr(\"class\", \"entity_title\");\n this._element_desc = element.append(\"g\").attr(\"class\", \"entity_desc\");\n this._element_anno = element.append(\"g\").attr(\"class\", \"entity_anno\");\n\n this._background_widget\n .target(this._element_background.node());\n this._icon_widget\n .shape_colorFill(\"none\")\n .shape_colorStroke(\"none\")\n .target(this._element_icon.node());\n this._title_widget\n .target(this._element_title.node());\n this._desc_widget\n .target(this._element_desc.node());\n }\n update(domNode, element) {\n super.update(domNode, element);\n this._desc_widget\n .fontSize(this.descriptionFontSize());\n const context = this;\n this._annotation_widgets = {};\n let annoXPos = 0;\n const annotations = this._element_anno.selectAll(\".annotation\").data([...this.annotationIcons()].reverse());\n annotations.enter().append(\"g\")\n .attr(\"class\", \"annotation\")\n .each(function (this: SVGGElement, d, idx) {\n const anno = new Icon()\n .diameter(context.annotationDiameter())\n .paddingPercent(context.annotationPaddingPercent())\n .target(this)\n .shape(\"square\")\n ;\n context._annotationLocal.set(this, anno);\n })\n .merge(annotations)\n .each(function (this: SVGGElement, d, idx) {\n const anno = context._annotationLocal.get(this);\n if (typeof d.faChar !== \"undefined\") anno.faChar(d.faChar);\n if (typeof d.shape !== \"undefined\") anno.shape(d.shape);\n if (typeof d.image_colorFill !== \"undefined\") anno.image_colorFill(d.image_colorFill);\n if (typeof d.shape_colorFill !== \"undefined\") anno.shape_colorFill(d.shape_colorFill);\n if (typeof d.shape_colorStroke !== \"undefined\") anno.shape_colorStroke(d.shape_colorStroke);\n const annoDiam = anno.diameter();\n anno\n .x(annoXPos - annoDiam)\n .y(annoDiam / 2)\n .render()\n ;\n annoXPos -= annoDiam + context.annotationSpacing();\n context._annotation_widgets[idx] = {\n widget: anno,\n bbox: anno.getBBox(true)\n };\n });\n annotations.exit()\n .each(function (this: HTMLElement, d, idx) {\n const anno = context._annotationLocal.get(this);\n anno.target(null);\n })\n .remove();\n }\n exit(domNode, element) {\n this._desc_widget.target(null);\n this._title_widget.target(null);\n this._icon_widget.target(null);\n this._background_widget.target(null);\n super.exit(domNode, element);\n }\n moveAnnotations(x_offset: number, y_offset: number) {\n this._element_anno.attr(\"transform\", `translate(${x_offset}, ${y_offset})`);\n }\n render(callback?: (w: Widget) => void) {\n return super.render(w => {\n this._background_widget.render();\n this._icon_widget.render();\n this._title_widget.render();\n this._desc_widget.render();\n if (callback) {\n callback(w);\n }\n });\n }\n}\nEntity.prototype._class += \" common_Entity\";\n\nexport interface Entity {\n arrowHeight(): number;\n arrowHeight(_: number): this;\n arrowWidth(): number;\n arrowWidth(_: number): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n padding(): number;\n padding(_: number): this;\n paddingPercent(): number;\n paddingPercent(_: number): this;\n\n annotationIcons(): IAnnotation[];\n annotationIcons(_: IAnnotation[]): this;\n annotationDiameter(): number;\n annotationDiameter(_: number): this;\n annotationSpacing(): number;\n annotationSpacing(_: number): this;\n annotationPaddingPercent(): number;\n annotationPaddingPercent(_: number): this;\n icon(): string;\n icon(_: string): this;\n iconColor(): string;\n iconColor(_: string): this;\n iconDiameter(): number;\n iconDiameter(_: number): this;\n iconPaddingPercent(): number;\n iconPaddingPercent(_: number): this;\n description(): string;\n description(_: string): this;\n descriptionColor(): string;\n descriptionColor(_: string): this;\n descriptionFontFamily(): string;\n descriptionFontFamily(_: string): this;\n descriptionFontSize(): number;\n descriptionFontSize(_: number): this;\n title(): string;\n title(_: string): this;\n titleColor(): string;\n titleColor(_: string): this;\n titleFontFamily(): string;\n titleFontFamily(_: string): this;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n backgroundShape(): string;\n backgroundShape(_: string): this;\n backgroundColorFill(): string;\n backgroundColorFill(_: string): this;\n backgroundColorStroke(): string;\n backgroundColorStroke(_: string): this;\n}\n\nEntity.prototype.publish(\"padding\", 8, \"number\", \"padding\");\n\nEntity.prototype.publish(\"annotationPaddingPercent\", 38, \"number\", \"annotationPaddingPercent\");\nEntity.prototype.publish(\"annotationDiameter\", 14, \"number\", \"Annotation Diameter\");\nEntity.prototype.publish(\"annotationIcons\", [], \"array\", \"annotationIcons\"); // TODO: is this really used?\nEntity.prototype.publish(\"annotationSpacing\", 3, \"number\", \"annotationSpacing\");\n\nEntity.prototype.publishProxy(\"icon\", \"_icon_widget\", \"faChar\");\nEntity.prototype.publishProxy(\"iconColor\", \"_icon_widget\", \"image_colorFill\");\nEntity.prototype.publishProxy(\"iconDiameter\", \"_icon_widget\", \"diameter\");\nEntity.prototype.publishProxy(\"iconPaddingPercent\", \"_icon_widget\", \"paddingPercent\");\n\nEntity.prototype.publishProxy(\"title\", \"_title_widget\", \"text\");\nEntity.prototype.publishProxy(\"titleColor\", \"_title_widget\", \"colorFill\");\nEntity.prototype.publishProxy(\"titleFontFamily\", \"_title_widget\", \"fontFamily\");\nEntity.prototype.publishProxy(\"titleFontSize\", \"_title_widget\", \"fontSize\");\n\nEntity.prototype.publishProxy(\"description\", \"_desc_widget\", \"text\");\nEntity.prototype.publishProxy(\"descriptionColor\", \"_desc_widget\", \"colorFill\");\nEntity.prototype.publishProxy(\"descriptionFontFamily\", \"_desc_widget\", \"fontFamily\");\nEntity.prototype.publishProxy(\"descriptionFontSize\", \"_desc_widget\", \"fontSize\");\n\nEntity.prototype.publishProxy(\"backgroundShape\", \"_background_widget\", \"shape\");\nEntity.prototype.publishProxy(\"backgroundColorFill\", \"_background_widget\", \"colorFill\");\nEntity.prototype.publishProxy(\"backgroundColorStroke\", \"_background_widget\", \"colorStroke\");\n\nEntity.prototype.publishProxy(\"cornerRadius\", \"_background_widget\");\nEntity.prototype.publishProxy(\"arrowHeight\", \"_background_widget\");\nEntity.prototype.publishProxy(\"arrowWidth\", \"_background_widget\");\n","import { Entity } from \"./Entity\";\n\nexport class EntityCard extends Entity {\n protected _element_textbox;\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update() {\n super.update.apply(this, arguments);\n\n this._icon_widget.render();\n this._title_widget.render();\n this._desc_widget.render();\n const icon_bbox = this._icon_widget.getBBox(true);\n const title_bbox = this._title_widget.getBBox(true);\n const desc_bbox = this._desc_widget.getBBox(true);\n\n let anno_w = 0;\n let anno_h = 0;\n const anno_gap = this.annotationSpacing();\n for (const i of Object.keys(this._annotation_widgets)) {\n anno_w += this._annotation_widgets[i].bbox.width + anno_gap;\n anno_h = anno_h > this._annotation_widgets[i].bbox.height ? anno_h : this._annotation_widgets[i].bbox.height;\n }\n\n const _background_h = this.fixedHeight() !== null ? this.fixedHeight() : Math.max(\n title_bbox.height + desc_bbox.height + (this.padding() * 3),\n anno_h + icon_bbox.height + (this.padding() * 3)\n );\n const _background_w = this.fixedWidth() !== null ? this.fixedWidth() : Math.max(\n title_bbox.width + icon_bbox.width + (this.padding() * 3),\n anno_w + desc_bbox.width + (this.padding() * 3)\n );\n this._background_widget\n .height(_background_h)\n .width(_background_w);\n\n this._title_widget.move({\n x: -(_background_w / 2) + (title_bbox.width / 2) + this.padding(),\n y: -(_background_h / 2) + (title_bbox.height / 2) + this.padding()\n });\n this._icon_widget.move({\n x: (_background_w / 2) - (icon_bbox.width / 2) - this.padding(),\n y: -(_background_h / 2) + (icon_bbox.height / 2) + this.padding()\n });\n this._desc_widget.move({\n x: -(_background_w / 2) + (desc_bbox.width / 2) + this.padding(),\n y: (_background_h / 2) - (desc_bbox.height / 2) - this.padding()\n });\n this.moveAnnotations((_background_w / 2), (_background_h / 2) - anno_h - this.padding());\n }\n}\nEntityCard.prototype._class += \" common_EntityCard\";\n\nexport interface EntityCard {\n fixedWidth(): number;\n fixedWidth(_: number): this;\n fixedHeight(): number;\n fixedHeight(_: number): this;\n}\n\nEntityCard.prototype.publish(\"fixedWidth\", null, \"number\", \"fixedWidth\");\nEntityCard.prototype.publish(\"fixedHeight\", null, \"number\", \"fixedHeight\");\n","import { Entity } from \"./Entity\";\n\nexport class EntityPin extends Entity {\n protected _element_textbox;\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element) {\n super.update.apply(this, arguments);\n\n const is_hovering = element.classed(\"hovering\");\n\n this._icon_widget.render();\n this._desc_widget.render();\n this._title_widget.render();\n const title_bbox = !this.titleOnlyShowOnHover() || is_hovering ? this._title_widget.getBBox(true) : { height: 0, width: 0 };\n const icon_bbox = !this.iconOnlyShowOnHover() || is_hovering ? this._icon_widget.getBBox(true) : { height: 0, width: 0 };\n const desc_bbox = !this.descriptionOnlyShowOnHover() || is_hovering ? this._desc_widget.getBBox(true) : { height: 0, width: 0 };\n const _anno_h = !this.annotationOnlyShowOnHover() || is_hovering ? this.annotationIcons().length > 0 ? this.annotationDiameter() + this.padding() : 0 : 0;\n const background_bbox = this.calcBackgroundBBox(is_hovering, title_bbox, icon_bbox, desc_bbox, _anno_h);\n\n this._title_widget.display(!this.titleOnlyShowOnHover() || is_hovering);\n this._icon_widget.display(!this.iconOnlyShowOnHover() || is_hovering);\n this._desc_widget.display(!this.descriptionOnlyShowOnHover() || is_hovering);\n\n this._background_widget\n .height(background_bbox.height)\n .width(background_bbox.width);\n const icon_y = -background_bbox.height + icon_bbox.height + (this.padding() / 2);\n const title_y = icon_y + (icon_bbox.height / 2) + (title_bbox.height / 2) + this.padding();\n const desc_y = title_y + (title_bbox.height / 2) + (desc_bbox.height / 2) + this.padding();\n const anno_y = desc_y + (desc_bbox.height / 2) + this.padding();\n this._title_widget.move({\n x: 0,\n y: title_y\n });\n this._desc_widget.move({\n x: 0,\n y: desc_y\n });\n this._icon_widget.move({\n x: 0,\n y: icon_y\n });\n this.moveAnnotations(background_bbox.width / 2, anno_y);\n\n }\n calcHeight() {\n const is_hovering = true;\n this._icon_widget.render();\n this._desc_widget.render();\n this._title_widget.render();\n const title_bbox = !this.titleOnlyShowOnHover() || is_hovering ? this._title_widget.getBBox(true) : { height: 0, width: 0 };\n const icon_bbox = !this.iconOnlyShowOnHover() || is_hovering ? this._icon_widget.getBBox(true) : { height: 0, width: 0 };\n const desc_bbox = !this.descriptionOnlyShowOnHover() || is_hovering ? this._desc_widget.getBBox(true) : { height: 0, width: 0 };\n const _anno_h = !this.annotationOnlyShowOnHover() || is_hovering ? this.annotationIcons().length > 0 ? this.annotationDiameter() + this.padding() : 0 : 0;\n const background_bbox = this.calcBackgroundBBox(is_hovering, title_bbox, icon_bbox, desc_bbox, _anno_h);\n\n return background_bbox.height;\n }\n calcBackgroundBBox(is_hovering, title_bbox, icon_bbox, desc_bbox, _anno_h) {\n const content_width = Math.max(title_bbox.width, icon_bbox.width, desc_bbox.width);\n const background_bbox = {\n width: content_width + (this.padding() * 2),\n height: icon_bbox.height + title_bbox.height + _anno_h + this.arrowHeight() + desc_bbox.height + (this.padding() * 5)\n };\n let remove_padding = 0;\n if (this.titleOnlyShowOnHover() && !is_hovering) {\n remove_padding += this.padding();\n }\n if (this.iconOnlyShowOnHover() && !is_hovering) {\n remove_padding += this.padding();\n }\n if (this.descriptionOnlyShowOnHover() && !is_hovering) {\n remove_padding += this.padding();\n }\n if (this.annotationIcons().length === 0 || this.annotationOnlyShowOnHover() && !is_hovering) {\n remove_padding += this.padding();\n }\n background_bbox.height -= remove_padding;\n return background_bbox;\n }\n}\nEntityPin.prototype._class += \" common_EntityPin\";\n\nexport interface EntityPin {\n titleOnlyShowOnHover(): boolean;\n titleOnlyShowOnHover(_: boolean): this;\n iconOnlyShowOnHover(): boolean;\n iconOnlyShowOnHover(_: boolean): this;\n descriptionOnlyShowOnHover(): boolean;\n descriptionOnlyShowOnHover(_: boolean): this;\n annotationOnlyShowOnHover(): boolean;\n annotationOnlyShowOnHover(_: boolean): this;\n}\n\nEntityPin.prototype.publish(\"titleOnlyShowOnHover\", false, \"boolean\", \"titleOnlyShowOnHover\");\nEntityPin.prototype.publish(\"iconOnlyShowOnHover\", false, \"boolean\", \"iconOnlyShowOnHover\");\nEntityPin.prototype.publish(\"descriptionOnlyShowOnHover\", false, \"boolean\", \"descriptionOnlyShowOnHover\");\nEntityPin.prototype.publish(\"annotationOnlyShowOnHover\", false, \"boolean\", \"annotationOnlyShowOnHover\");\n","import { local as d3Local, select as d3Select } from \"d3-selection\";\nimport { Entity } from \"./Entity\";\nimport { HTMLWidget } from \"./HTMLWidget\";\nimport { publish } from \"./PropertyExt\";\nimport * as Utility from \"./Utility\";\nimport { InputField } from \"./Widget\";\n\nimport \"../src/EntityRect.css\";\n\nexport class EntityRect extends Entity {\n protected _element_textbox;\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n update(domNode, element) {\n this._desc_widget.text(\"\");\n super.update(domNode, element);\n }\n render(callback?: (w: EntityRect) => void) {\n return super.render((w: EntityRect) => {\n const icon_bbox = w.icon() === \"\" ? { width: 0, height: 0 } : this._icon_widget.getBBox(true);\n const title_bbox = this._title_widget.getBBox(true);\n const annotations_bbox = this.getAnnotationsBBox();\n\n let width = this.fixedWidth();\n if (!width) {\n width = icon_bbox.width + title_bbox.width + annotations_bbox.width + this.padding() * 4;\n }\n\n let height = this.fixedHeight();\n if (!height) {\n height = Math.max(icon_bbox.height, title_bbox.height, annotations_bbox.height) + this.padding() * 2;\n }\n\n this._background_widget\n .width(width)\n .height(height)\n .render()\n ;\n\n this._icon_widget.move({\n x: -(width / 2) + (icon_bbox.width),\n y: 0\n });\n\n this.moveAnnotations(width / 2, -annotations_bbox.height / 2);\n const iconWidth = icon_bbox.width > 0 ? icon_bbox.width + this.padding() : 0;\n const titleX = -(width / 2) + iconWidth + this.padding();\n const annoWidth = this.padding() / 2 + annotations_bbox.width + this.padding();\n const titleW = width - iconWidth - annoWidth;\n\n this._title_widget\n .move({\n x: titleX,\n y: 0\n })\n .anchor(\"start\")\n .width(titleW)\n .render()\n ;\n\n if (callback) {\n callback(w);\n }\n });\n }\n}\nEntityRect.prototype._class += \" common_EntityRect\";\n\nexport interface EntityRect {\n fixedWidth(): number;\n fixedWidth(_: number): this;\n fixedHeight(): number;\n fixedHeight(_: number): this;\n}\n\nEntityRect.prototype.publish(\"fixedWidth\", null, \"number\", \"fixedWidth\");\nEntityRect.prototype.publish(\"fixedHeight\", null, \"number\", \"fixedHeight\");\n\nexport class EntityRectList extends HTMLWidget {\n static __inputs: InputField[] = [{\n id: \"borderColor\",\n type: \"string\"\n }, {\n id: \"icon\",\n type: \"string\"\n }, {\n id: \"iconColor\",\n type: \"string\"\n }, {\n id: \"title\",\n type: \"string\"\n }];\n\n @publish(64, \"number\", \"fixedHeight\")\n fixedHeight: publish<this, number>;\n @publish(\"#f8f8f8\", \"string\", \"Default Background Color\", null, { inputType: \"html-color\" })\n backgroundColor: publish<this, string>;\n @publish(null, \"set\", \"Background Color Column\", function () { return this.columns(); }, { optional: true })\n backgroundColorColumn: publish<this, string>;\n @publish(\"black\", \"string\", \"Default Border Color\", null, { inputType: \"html-color\" })\n borderColor: publish<this, string>;\n @publish(null, \"set\", \"Border Color Column\", function () { return this.columns(); }, { optional: true })\n borderColorColumn: publish<this, string>;\n @publish(\"\", \"string\", \"Icon\")\n icon: publish<this, string>;\n @publish(null, \"set\", \"Icon Column\", function () { return this.columns(); }, { optional: true })\n iconColumn: publish<this, string>;\n @publish(\"red\", \"string\", \"Default Icon Color\", null, { inputType: \"html-color\" })\n iconColor: publish<this, string>;\n @publish(null, \"set\", \"Icon Color Column \", function () { return this.columns(); }, { optional: true })\n iconColorColumn: publish<this, string>;\n @publish(null, \"set\", \"Title Column\", function () { return this.columns(); }, { optional: true })\n titleColumn: publish<this, string>;\n @publish(\"black\", \"string\", \"Default Title Color\", null, { inputType: \"html-color\" })\n titleColor: publish<this, string>;\n @publish(null, \"set\", \"Title Color Column \", function () { return this.columns(); }, { optional: true })\n titleColorColumn: publish<this, string>;\n @publish(null, \"set\", \"Description Column\", function () { return this.columns(); }, { optional: true })\n descriptionColumn: publish<this, string>;\n @publish(\"black\", \"string\", \"Default Description Color\", null, { inputType: \"html-color\" })\n descriptionColor: publish<this, string>;\n @publish(null, \"set\", \"Description Color Column \", function () { return this.columns(); }, { optional: true })\n descriptionColorColumn: publish<this, string>;\n\n private _enityRectLocal = d3Local<EntityRect>();\n\n constructor() {\n super();\n Utility.SimpleSelectionMixin.call(this, true);\n }\n\n entityRectData() {\n const columns = this.columns();\n const idxColumns = [\n \"backgroundColor\",\n \"borderColor\",\n \"icon\",\n \"iconColor\",\n \"title\",\n \"titleColor\",\n \"description\",\n \"descriptionColor\"\n ];\n const idxs = idxColumns.map(idxColumn => columns.indexOf(this[`${idxColumn}Column`]()));\n return this.data().map(row => {\n const retVal = {\n origRow: row\n };\n for (let i = 0; i < idxColumns.length; ++i) {\n retVal[idxColumns[i]] = idxs[i] >= 0 ? row[idxs[i]] : typeof this[`${idxColumns[i]}`] === \"function\" ? this[`${idxColumns[i]}`]() : \"\";\n }\n return retVal;\n }, this);\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode)\n .style(\"overflow-x\", \"hidden\")\n .style(\"overflow-y\", \"scroll\")\n ;\n this._selection.widgetElement(element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n const margin = { left: 8, top: 8, right: 8, bottom: 8 };\n const width = this.width() - margin.left - margin.right - 20; // -20 for VScroll (could do better)\n const height = this.fixedHeight() - margin.top - margin.bottom;\n\n const svg = element.selectAll(\"svg\").data(this.entityRectData());\n svg.enter().append(\"svg\")\n .attr(\"class\", \"entityRectItem\")\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n context.click(context.rowToObj(d.origRow), context.titleColumn(), context._selection.selected(this));\n })\n .on(\"dblclick\", function (d) {\n context.dblclick(context.rowToObj(d.origRow), context.titleColumn(), context._selection.selected(this));\n })\n .each(function () {\n const entityRect = new EntityRect()\n .target(this)\n ;\n context._enityRectLocal.set(this, entityRect);\n })\n .merge(svg)\n .style(\"border-color\", d => d.borderColor)\n .each(function (d) {\n context._enityRectLocal.get(this)\n .pos({ x: width / 2, y: height / 2 })\n .resize({ width, height })\n .fixedWidth(width)\n .fixedHeight(height)\n .backgroundShape(\"rect\")\n .backgroundColorFill(d.backgroundColor)\n .backgroundColorStroke(\"none\")\n .icon(d.icon)\n .iconColor(d.iconColor)\n .iconDiameter(height / 2.6666)\n .iconPaddingPercent(0)\n .title(d.title)\n .titleFontSize(height / 2.6666)\n .titleColor(d.titleColor)\n .description(d.description)\n .descriptionColor(d.descriptionColor)\n .render()\n ;\n })\n ;\n svg.exit().remove();\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, column, selected) {\n // console.log(\"Click: \" + JSON.stringify(row) + \", \" + column + \",\" + selected);\n }\n\n dblclick(row, column, selected) {\n // console.log(\"Double click: \" + JSON.stringify(row) + \", \" + column + \",\" + selected);\n }\n\n // SimpleSelectionMixin\n _selection;\n}\nEntityRectList.prototype._class += \" common_EntityRectList\";\n","import { textColor } from \"./Palette\";\nimport { Shape } from \"./Shape\";\nimport { SVGWidget } from \"./SVGWidget\";\nimport { Text } from \"./Text\";\nimport { ISize } from \"./Widget\";\n\nimport \"../src/TextBox.css\";\n\nexport class TextBox extends SVGWidget {\n\n protected _shape: Shape;\n protected _text: Text;\n\n constructor() {\n super();\n\n this._shape = new Shape()\n .shape(\"rect\")\n .on(\"click\", () => {\n this.click();\n })\n .on(\"dblclick\", () => {\n this.dblclick();\n })\n ;\n this._text = new Text()\n .on(\"click\", () => {\n this.click();\n })\n .on(\"dblclick\", () => {\n this.dblclick();\n })\n ;\n }\n\n padding(_) {\n this.paddingLeft(_);\n this.paddingRight(_);\n this.paddingTop(_);\n this.paddingBottom(_);\n return this;\n }\n\n getTextX(width) {\n switch (this.anchor()) {\n case \"start\":\n return -width / 2;\n case \"end\":\n return width / 2;\n }\n return 0;\n }\n\n getBBox(refresh = false, round = false) {\n const textBBox = this._text.getBBox(true);\n const width = this.fixedSize() ? this.fixedSize().width : textBBox.width + this.paddingLeft() + this.paddingRight();\n const height = this.fixedSize() ? this.fixedSize().height : textBBox.height + this.paddingTop() + this.paddingBottom();\n return {\n x: -width - 2,\n y: -height - 2,\n width,\n height\n };\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n delete this._prevHash;\n this._shape\n .target(domNode)\n .tooltip(this.tooltip())\n ;\n this._text\n .target(domNode)\n ;\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n\n const textBBox = this._text.getBBox(true);\n const size = {\n width: this.fixedSize() ? this.fixedSize().width : textBBox.width + this.paddingLeft() + this.paddingRight(),\n height: this.fixedSize() ? this.fixedSize().height : textBBox.height + this.paddingTop() + this.paddingBottom()\n };\n\n this._shape\n .width(size.width)\n .height(size.height)\n .render()\n ;\n\n this._text\n .x(this.getTextX(textBBox.width))\n .colorFill_default(this._shape.colorFill_exists() ? textColor(this._shape.colorFill()) : undefined)\n .render()\n ;\n\n if (this.fixedSize()) {\n switch (this.anchor()) {\n case \"start\":\n this._text\n .x(-this.fixedSize().width / 2 + textBBox.width / 2 + (this.paddingLeft() + this.paddingRight()) / 2)\n .render()\n ;\n break;\n case \"end\":\n this._text\n .x(this.fixedSize().width / 2 - textBBox.width / 2 - (this.paddingLeft() + this.paddingRight()) / 2)\n .render()\n ;\n break;\n }\n }\n this._text.visible(textBBox.width <= size.width && textBBox.height <= size.height);\n }\n }\n\n exit(domNode, element) {\n this._shape\n .target(null)\n ;\n this._text\n .target(null)\n ;\n super.exit(domNode, element);\n }\n\n click() {\n }\n\n dblclick() {\n }\n\n text: { (): string; (_: string): TextBox; };\n fontSize: { (): number; (_: number): TextBox; };\n shape_colorFill: { (): string; (_: string): TextBox; };\n shape_colorStroke: { (): string; (_: string): TextBox; };\n text_colorFill: { (): string; (_: string): TextBox; };\n text_fontFamily: { (): string; (_: string): TextBox; };\n paddingLeft: { (): number; (_: number): TextBox; };\n paddingRight: { (): number; (_: number): TextBox; };\n paddingTop: { (): number; (_: number): TextBox; };\n paddingBottom: { (): number; (_: number): TextBox; };\n anchor: { (): \"start\" | \"middle\" | \"end\"; (_: \"start\" | \"middle\" | \"end\"): TextBox; };\n fixedSize: { (): ISize; (_: ISize): TextBox; };\n tooltip: { (): string; (_: string): TextBox; };\n}\nTextBox.prototype._class += \" common_TextBox\";\n\nTextBox.prototype.publishProxy(\"text\", \"_text\");\nTextBox.prototype.publishProxy(\"fontSize\", \"_text\", \"fontSize\");\nTextBox.prototype.publishProxy(\"shape_colorStroke\", \"_shape\", \"colorStroke\");\nTextBox.prototype.publishProxy(\"shape_colorFill\", \"_shape\", \"colorFill\");\nTextBox.prototype.publishProxy(\"text_colorFill\", \"_text\", \"colorFill\");\nTextBox.prototype.publishProxy(\"text_fontFamily\", \"_text\", \"fontFamily\");\nTextBox.prototype.publish(\"paddingLeft\", 4, \"number\", \"Left padding (in pixels)\", null, { tags: [\"Private\"] });\nTextBox.prototype.publish(\"paddingRight\", 4, \"number\", \"Right padding (in pixels)\", null, { tags: [\"Private\"] });\nTextBox.prototype.publish(\"paddingTop\", 4, \"number\", \"Top padding (in pixels)\", null, { tags: [\"Private\"] });\nTextBox.prototype.publish(\"paddingBottom\", 4, \"number\", \"Bottom padding (in pixels)\", null, { tags: [\"Private\"] });\nTextBox.prototype.publishProxy(\"anchor\", \"_text\");\nTextBox.prototype.publish(\"fixedSize\", null);\n\nTextBox.prototype.publish(\"tooltip\", \"\", \"string\", \"Tooltip\", null, { tags: [\"Private\"] });\n","import { Entity } from \"./Entity\";\nimport { TextBox } from \"./TextBox\";\n\nexport class EntityVertex extends Entity {\n protected _textbox_widget: TextBox;\n protected _element_textbox;\n constructor() {\n super();\n this._textbox_widget = new TextBox();\n }\n enter(domNode, element) {\n this._element_textbox = element.append(\"g\").attr(\"class\", \"entity_textbox\");\n super.enter(domNode, element);\n this._textbox_widget.target(this._element_textbox.node());\n }\n update() {\n super.update.apply(this, arguments);\n this._textbox_widget\n .text(this._title_widget.text());\n this._icon_widget\n .shape_colorFill(this.iconColorFill())\n .shape_colorStroke(this.iconColorStroke());\n this._background_widget\n .colorFill(\"none\")\n .colorStroke(\"none\");\n\n this._icon_widget.render();\n this._textbox_widget.render();\n const icon_bbox = this._icon_widget.getBBox(true);\n const text_bbox = this._textbox_widget.getBBox(true);\n let _icon_x = 0;\n let _icon_y = -(text_bbox.height / 2) - (icon_bbox.height / 3);\n switch (this.iconAnchor()) {\n case \"start\":\n _icon_x = -(text_bbox.width / 2) + (icon_bbox.width / 3);\n break;\n case \"end\":\n _icon_x = (text_bbox.width / 2) - (icon_bbox.width / 3);\n break;\n case \"left\":\n _icon_x = -(text_bbox.width / 2) - (icon_bbox.width / 2);\n _icon_y = 0;\n break;\n }\n this._icon_widget.move({\n x: _icon_x,\n y: _icon_y\n });\n this.moveAnnotations(text_bbox.width / 2, text_bbox.height / 2);\n }\n exit(domNode, element) {\n this._textbox_widget.target(null);\n super.exit(domNode, element);\n }\n}\nEntityVertex.prototype._class += \" common_EntityVertex\";\n\nexport interface EntityVertex {\n iconAnchor(): string;\n iconAnchor(_: string): this;\n iconColorFill(): string;\n iconColorFill(_: string): this;\n iconColorStroke(): string;\n iconColorStroke(_: string): this;\n shape_colorStroke(): string;\n shape_colorStroke(_: string): this;\n shape_colorFill(): string;\n shape_colorFill(_: string): this;\n text_colorFill(): string;\n text_colorFill(_: string): this;\n\n textboxColorStroke(): string;\n textboxColorStroke(_: string): this;\n textboxColorFill(): string;\n textboxColorFill(_: string): this;\n textboxFontColor(): string;\n textboxFontColor(_: string): this;\n}\n\nEntityVertex.prototype.publish(\"iconAnchor\", \"start\", \"set\", \"Horizontal anchor position of icon\", [\"\", \"start\", \"middle\", \"end\", \"left\"]);\nEntityVertex.prototype.publish(\"iconColorFill\", null, \"html-color\", \"iconColorFill\");\nEntityVertex.prototype.publish(\"iconColorStroke\", null, \"html-color\", \"iconColorStroke\");\n\nEntityVertex.prototype.publishProxy(\"textboxColorStroke\", \"_textbox_widget\", \"shape_colorStroke\");\nEntityVertex.prototype.publishProxy(\"textboxColorFill\", \"_textbox_widget\", \"shape_colorFill\");\nEntityVertex.prototype.publishProxy(\"textboxFontColor\", \"_textbox_widget\", \"text_colorFill\");\n","import { select as d3Select } from \"d3-selection\";\nimport { HTMLWidget } from \"./HTMLWidget\";\n\nexport class Image extends HTMLWidget {\n private _imgElement;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const img = element.selectAll(\"img\").data(this.source() ? [this.source()] : [], function (d) { return d; });\n img.enter()\n .append(\"img\")\n .attr(\"src\", this.source())\n .style(\"opacity\", 0)\n .on(\"load\", function () {\n context._imgElement = d3Select(this);\n context.styleImageElement();\n context._imgElement.style(\"opacity\", 1);\n })\n ;\n this.styleImageElement();\n img.exit()\n .remove()\n ;\n }\n\n styleImageElement() {\n if (!this._imgElement) return;\n switch (this.sizing()) {\n case \"actual\":\n this._imgElement.style(\"width\", \"auto\");\n this._imgElement.style(\"height\", \"auto\");\n break;\n case \"fit\":\n if (this.lockAspectRatio()) {\n this._imgElement.style(\"width\", \"auto\");\n this._imgElement.style(\"height\", \"auto\");\n const bbox = this._imgElement.node().getBoundingClientRect();\n const xScale = bbox.width / this.width();\n const yScale = bbox.height / this.height();\n if (xScale > yScale) {\n this._imgElement.style(\"width\", this.width() + \"px\");\n this._imgElement.style(\"height\", (bbox.height / xScale) + \"px\");\n } else {\n this._imgElement.style(\"width\", (bbox.width / yScale) + \"px\");\n this._imgElement.style(\"height\", this.height() + \"px\");\n }\n } else {\n this._imgElement.style(\"width\", this.width() + \"px\");\n this._imgElement.style(\"height\", this.height() + \"px\");\n }\n break;\n case \"custom\":\n this._imgElement.style(\"width\", this.customWidth());\n this._imgElement.style(\"height\", this.customHeight());\n break;\n }\n switch (this.alignment()) {\n case \"origin\":\n break;\n case \"center\":\n const bbox = this._imgElement.node().getBoundingClientRect();\n this._imgElement.style(\"margin-left\", `${(this.width() - bbox.width) / 2}px`);\n this._imgElement.style(\"margin-top\", `${(this.height() - bbox.height) / 2}px`);\n break;\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n source: { (): string; (_: string): Image; };\n sizing: { (): string; (_: string): Image; };\n customWidth: { (): string; (_: string): Image; };\n customHeight: { (): string; (_: string): Image; };\n lockAspectRatio: { (): boolean; (_: boolean): Image; };\n alignment: { (): string; (_: string): Image; };\n}\nImage.prototype._class += \" common_Image\";\n\nImage.prototype.publish(\"source\", null, \"string\", \"Image Source\", null, { tags: [\"Basic\"] });\nImage.prototype.publish(\"sizing\", \"actual\", \"set\", \"Controls sizing mode\", [\"actual\", \"fit\", \"custom\"], { tags: [\"Basic\"] });\nImage.prototype.publish(\"customWidth\", \"50%\", \"string\", \"Applies this width to IMG element if 'sizing' is set to 'custom' (user should set 'px' or 'em' etc.)\", null, { tags: [\"Basic\"], disable: (w) => w.sizing() !== \"custom\" });\nImage.prototype.publish(\"customHeight\", \"20%\", \"string\", \"Applies this height to IMG element if 'sizing' is set to 'custom' (user should set 'px' or 'em' etc.)\", null, { tags: [\"Basic\"], disable: (w) => w.sizing() !== \"custom\" });\nImage.prototype.publish(\"lockAspectRatio\", true, \"boolean\", \"Locks the aspect ratio when scaling/stretching\", null, { tags: [\"Basic\"], disable: (w) => w.sizing() !== \"fit\" });\nImage.prototype.publish(\"alignment\", \"center\", \"set\", \"Image Alignment\", [\"center\", \"origin\"], { tags: [\"Basic\"] });\n","import { IList } from \"./IList\";\nimport { SVGWidget } from \"./SVGWidget\";\nimport { TextBox } from \"./TextBox\";\n\nimport \"../src/List.css\";\n\nexport class List extends SVGWidget implements IList {\n\n protected _listWidgets;\n\n constructor() {\n super();\n\n this._listWidgets = {};\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n const line = element.selectAll(\".line\").data(this.data(), function (d) { return d; });\n const lineEnter = line.enter().append(\"g\")\n .attr(\"class\", \"line\")\n .each(function (d) {\n const newTextBox = new TextBox()\n .target(this)\n .paddingTop(0)\n .paddingBottom(0)\n .paddingLeft(8)\n .paddingRight(8)\n .text(d)\n .render()\n ;\n newTextBox.element()\n .on(\"click\", function (d2) {\n context.click(d2.text());\n })\n .on(\"dblclick\", function (d2) {\n context.dblclick(d2.text());\n })\n ;\n context._listWidgets[d] = newTextBox;\n })\n ;\n\n let listHeight = 0;\n let listWidth = 0;\n for (const key in this._listWidgets) {\n if (!this._listWidgets.hasOwnProperty(key)) continue;\n const bbox = this._listWidgets[key].getBBox();\n listHeight += bbox.height;\n if (listWidth < bbox.width)\n listWidth = bbox.width;\n }\n\n let yPos = -listHeight / 2; // + lineHeight / 2;\n lineEnter.merge(line).each(function (d) {\n const widget = context._listWidgets[d];\n const bbox = widget.getBBox();\n widget\n .pos({ x: 0, y: yPos + bbox.height / 2 })\n .anchor(context.anchor())\n .fixedSize({ width: listWidth, height: bbox.height })\n .render()\n ;\n yPos += bbox.height;\n });\n line.exit()\n .remove()\n .each(function (d) {\n context._listWidgets[d].target(null);\n delete context._listWidgets[d];\n })\n ;\n }\n\n exit(domNode, element) {\n for (const key in this._listWidgets) {\n if (this._listWidgets.hasOwnProperty(key)) {\n this._listWidgets[key].target(null);\n }\n }\n super.exit(domNode, element);\n }\n\n // Events ---\n click(d) {\n // console.log(\"Click: \" + d);\n }\n\n dblclick(d) {\n // console.log(\"Double click: \" + d);\n }\n\n anchor: { (): string; (_: string): List; };\n}\nList.prototype._class += \" common_List\";\n\nList.prototype.publish(\"anchor\", \"start\", \"set\", \"Anchor Position\", [\"\", \"start\", \"middle\", \"end\"], { tags: [\"Private\"] });\n","import { event as d3Event, select as d3Select } from \"d3-selection\";\nimport { Icon } from \"./Icon\";\nimport { IMenu } from \"./IMenu\";\nimport { List } from \"./List\";\nimport { SVGWidget } from \"./SVGWidget\";\n\nimport \"../src/Menu.css\";\n\nexport class Menu extends SVGWidget implements IMenu {\n protected _icon = new Icon().shape(\"square\").diameter(14).paddingPercent(0);\n protected _list = new List();\n protected _open;\n\n constructor() {\n super();\n\n const context = this;\n this._list.click = function (d) {\n d3Event.stopPropagation();\n context.hideMenu();\n context.click(d);\n };\n this._open = false;\n }\n\n toggleMenu() {\n if (!this._open) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n\n showMenu() {\n this.preShowMenu();\n this._open = true;\n this._list\n .data(this.data())\n .render()\n ;\n\n const bbox = this._icon.getBBox(true);\n const menuBBox = this._list.getBBox(true);\n const pos = {\n x: bbox.width / 2 - menuBBox.width / 2,\n y: bbox.height / 2 + menuBBox.height / 2\n };\n this._list\n .move(pos)\n ;\n const context = this;\n d3Select(\"body\")\n .on(\"click.\" + this._id, function () {\n if (context._open) {\n context.hideMenu();\n }\n })\n ;\n }\n\n hideMenu() {\n d3Select(\"body\")\n .on(\"click.\" + this._id, null)\n ;\n this._open = false;\n this._list\n .data([])\n .render()\n ;\n this.postHideMenu();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._icon\n .target(domNode)\n .render()\n ;\n\n this._list\n .target(domNode)\n .render()\n ;\n\n const context = this;\n this._icon.element()\n .on(\"click\", function () {\n d3Event.stopPropagation();\n context.toggleMenu();\n })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element\n .classed(\"disabled\", this.data().length === 0)\n ;\n\n this._icon\n .faChar(this.faChar())\n .paddingPercent(this.paddingPercent())\n .render()\n ;\n }\n\n exit(domNode, element) {\n this._icon\n .target(null)\n ;\n\n this._list\n .target(null)\n ;\n\n super.exit(domNode, element);\n }\n\n // Events ---\n click(d) {\n }\n preShowMenu() {\n }\n postHideMenu() {\n }\n\n faChar: { (): string; (_: string): Menu; };\n paddingPercent: { (): number; (_: number): Menu; };\n}\nMenu.prototype._class += \" common_Menu\";\n\nMenu.prototype.publishProxy(\"faChar\", \"_icon\", null, \"\\uf0c9\");\nMenu.prototype.publishProxy(\"paddingPercent\", \"_icon\", null, 10);\n","import { PropertyExt, publish } from \"./PropertyExt\";\n\nexport class ProgressBar extends PropertyExt {\n\n @publish(5000, \"number\", \"Half Life\")\n halfLife: publish<this, number>;\n @publish(1.2, \"number\", \"Decay\")\n decay: publish<this, number>;\n @publish(2, \"number\", \"Size\")\n size: publish<this, number>;\n @publish(\"#2ed573\", \"string\", \"Color\")\n color: publish<this, string>;\n @publish(true, \"boolean\", \"Bar Blur\")\n blurBar: publish<this, boolean>;\n @publish(50, \"number\", \"Blur Size\")\n blurSize: publish<this, number>;\n @publish(\"#7bed9f\", \"string\", \"Blur Color (hex)\", null, { optional: true })\n blurColor: publish<this, string>;\n @publish(0.35, \"number\", \"Blur Opacity\")\n blurOpacity: publish<this, number>;\n\n protected _elementID: string;\n protected _running: boolean = false;\n protected _style;\n\n constructor() {\n super();\n }\n\n calcCSS(halflife: number, perc: number) {\n const bar_size = this.size();\n const bar_color = this.color();\n const blur_opacity = this.blurOpacity();\n const blur_opacity_hex = blur_opacity * 255 >= 16 ? Math.floor(blur_opacity * 255).toString(16).slice(-2) : \"00\";\n const blur_color = this.blurColor() || bar_color;\n const blur_size = this.blurSize();\n const blur_fx = this.blurBar() ? `background: radial-gradient(ellipse at 50% 50%, ${blur_color}${blur_opacity_hex}, ${blur_color}00, #00000000 ${blur_size}px);` : \"\";\n return `\n #${this._elementID}::before{\n content:\" \";display:block;position:absolute;\n height:${bar_size}px;width:${perc}%;\n left:0;top:0;\n background-color: ${bar_color};\n transition: width ${(halflife / 1000)}s;\n }\n #${this._elementID}::after{\n content:\" \";display:block;position:absolute;\n height:${blur_size}px;width:${blur_size * 2}px;\n left:calc(${perc}% - ${blur_size}px);\n top:${-((blur_size / 2) - (bar_size / 2))}px;\n background-color: ${bar_color};\n transition: left ${(halflife / 1000)}s;\n transform: rotate(1deg) translate(-${blur_size / 2.5}px,0px) scale(1.5,0.5);\n ${blur_fx}\n }\n `;\n }\n\n start() {\n this._running = true;\n this.updateProgress(this.halfLife(), 10);\n }\n\n finish() {\n this.updateProgress(100, 100);\n }\n\n enter(domNode, element) {\n this._elementID = element.attr(\"id\");\n if (!this._elementID) throw new Error(\"Target element requires an id attribute.\");\n this._style = element.insert(\"style\");\n }\n\n exit(_domNode, _element) {\n this._running = false;\n if (this._style)\n this._style.remove();\n delete this._style;\n }\n\n protected updateProgress(halflife: number, perc: number) {\n if (!this._running) return;\n if (this._style) {\n this._style.html(this.calcCSS(halflife, perc));\n }\n\n const percLimit = 95;\n halflife *= this.decay();\n perc = perc ? perc : 10;\n if (perc < percLimit) {\n setTimeout(() => {\n const _remaining = 100 - perc;\n this.updateProgress(halflife, perc + (_remaining / 2));\n }, perc === 10 ? 100 : halflife);\n } else if (perc === 100) {\n setTimeout(() => {\n this._running = false;\n if (this._style) {\n this._style.html(\"\");\n }\n }, halflife);\n }\n }\n}\nProgressBar.prototype._class += \" common_ProgressBar\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\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, true);\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(x) {\n return function() {\n return x;\n };\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\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 {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {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() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(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)\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() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\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\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\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();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\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();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\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","import { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\nimport { Icon } from \"./Icon\";\nimport { Menu } from \"./Menu\";\nimport { Shape } from \"./Shape\";\nimport { SVGWidget } from \"./SVGWidget\";\nimport { Text } from \"./Text\";\n\nimport \"../src/Surface.css\";\n\nexport class Surface extends SVGWidget {\n _origMenuParam;\n _origShowContent;\n\n protected _iconWidget;\n protected _containerWidget;\n protected _titleRectWidget;\n protected _textWidget;\n _menuWidget;\n protected _surfaceButtons;\n\n protected _clipRect;\n protected buttonContainer;\n\n constructor() {\n super();\n\n this._iconWidget = new Icon()\n .faChar(\"\\uf07b\")\n .paddingPercent(50)\n ;\n this._containerWidget = new Shape()\n .class(\"container\")\n .shape(\"rect\")\n ;\n this._titleRectWidget = new Shape()\n .class(\"title\")\n .shape(\"rect\")\n ;\n this._textWidget = new Text()\n .class(\"title\")\n ;\n this._menuWidget = new Menu()\n .paddingPercent(0)\n ;\n const context = this;\n this._menuWidget.preShowMenu = function () {\n if (context.content() && context.content().hasOverlay()) {\n context.content().visible(false);\n }\n };\n this._menuWidget.postHideMenu = function () {\n if (context.content() && context.content().hasOverlay()) {\n context.content().visible(true);\n }\n };\n\n this._surfaceButtons = [];\n }\n\n enter(_domNode, _element) {\n super.enter(_domNode, _element);\n const element = _element.append(\"g\").attr(\"class\", \"frame\");\n const domNode = element.node();\n this._clipRect = element.append(\"defs\").append(\"clipPath\")\n .attr(\"id\", this.id() + \"_clip\")\n .append(\"rect\")\n .attr(\"x\", 0)\n .attr(\"y\", 0)\n .attr(\"width\", this._size.width)\n .attr(\"height\", this._size.height)\n ;\n this._titleRectWidget\n .target(domNode)\n .render()\n .display(this.showTitle() && this.showIcon())\n ;\n this._iconWidget\n .target(domNode)\n .render()\n ;\n this._menuWidget\n .target(_domNode)\n ;\n this._textWidget\n .target(domNode)\n ;\n this._containerWidget\n .target(domNode)\n ;\n this.buttonContainer = d3Select(this._target).append(\"div\").attr(\"class\", \"svg-button-container\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n let width = this.width() - 1;\n const height = this.height() - 1;\n\n this._iconWidget\n .display(this.showTitle() && this.showIcon())\n .shape(this.icon_shape())\n .render()\n ;\n this._menuWidget\n .render()\n ;\n this._textWidget\n .text(this.title())\n .display(this.showTitle())\n .render()\n ;\n\n const surfaceButtons = this.buttonContainer.selectAll(\".surface-button\").data(this.buttonAnnotations());\n surfaceButtons.enter().append(\"button\").attr(\"class\", \"surface-button\")\n .each(function (button, idx) {\n const el = context._surfaceButtons[idx] = d3Select(this)\n .attr(\"class\", \"surface-button \" + (button.class ? button.class : \"\"))\n .attr(\"id\", button.id)\n .style(\"padding\", button.padding)\n .style(\"width\", button.width)\n .style(\"height\", button.height)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function (d) { context.click(d); });\n if (button.font === \"FontAwesome\") {\n el\n .append(\"i\")\n .attr(\"class\", \"fa\")\n .text(function () { return button.label; });\n } else {\n el\n .text(function () { return button.label; });\n }\n })\n ;\n surfaceButtons.exit()\n .each(function (_d, idx) {\n const element2 = d3Select(this);\n delete context._surfaceButtons[idx];\n element2.remove();\n })\n ;\n\n const buttonClientHeight = this.showTitle() ? Math.max.apply(null, this._surfaceButtons.map(function (d) { return d.node().offsetHeight; })) : 0;\n const iconClientSize = this.showTitle() && this.showIcon() ? this._iconWidget.getBBox(true) : { width: 0, height: 0 };\n const textClientSize = this._textWidget.getBBox(true);\n const menuClientSize = this._menuWidget.getBBox(true);\n const _titleRegionHeight = Math.max(iconClientSize.height, textClientSize.height, menuClientSize.height, buttonClientHeight);\n const titleRegionHeight = this.showTitle() ? _titleRegionHeight : 0;\n const yTitle = (-height + _titleRegionHeight) / 2;\n\n const titleTextHeight = this.showTitle() ? Math.max(textClientSize.height, menuClientSize.height, buttonClientHeight) : 0;\n const titleTextWidth = this.showTitle() ? textClientSize.width + menuClientSize.width : 0;\n if (titleTextWidth > width) {\n width = titleTextWidth;\n }\n\n const topMargin = titleRegionHeight <= titleTextHeight ? 0 : (titleRegionHeight - titleTextHeight) / 2;\n const leftMargin = topMargin;\n\n this._titleRectWidget\n .pos({ x: leftMargin, y: yTitle })\n .width(width - leftMargin * 2)\n .height(titleTextHeight)\n .display(this.showTitle())\n .render()\n ;\n this._iconWidget\n .move({ x: -width / 2 + iconClientSize.width / 2, y: yTitle })\n ;\n this._menuWidget\n .move({ x: width / 2 - menuClientSize.width / 2 - this.menuPadding(), y: yTitle })\n ;\n this._textWidget\n .move({ x: (iconClientSize.width / 2 - menuClientSize.width / 2) / 2, y: yTitle })\n ;\n\n const xPos = context._titleRectWidget.node().getBoundingClientRect().left + (context._size.width - leftMargin * 2) - context.buttonGutter() - this.buttonContainer.node().offsetWidth;\n const yPos = context._titleRectWidget.node().getBoundingClientRect().top + ((titleTextHeight - this.buttonContainer.node().offsetHeight) / 2);\n if (!isNaN(xPos)) {\n this.buttonContainer.style(\"left\", xPos + \"px\");\n }\n if (!isNaN(yPos)) {\n this.buttonContainer.style(\"top\", yPos + \"px\");\n }\n\n if (this.showTitle()) {\n this._containerWidget\n .pos({ x: leftMargin / 2, y: titleRegionHeight / 2 - topMargin / 2 })\n .width(width - leftMargin)\n .height(height - titleRegionHeight + topMargin)\n .render()\n ;\n } else {\n this._containerWidget\n .pos({ x: 0, y: 0 })\n .width(width)\n .height(height)\n .render()\n ;\n }\n\n if (this.showContent()) {\n const xOffset = leftMargin;\n const yOffset = titleRegionHeight - topMargin;\n\n const content = element.selectAll(\".content\").data(this.content() ? [this.content()] : [], function (d) { return d._id; });\n content.enter().append(\"g\")\n .attr(\"class\", \"content\")\n .attr(\"clip-path\", \"url(#\" + this.id() + \"_clip)\")\n .each(function (d) {\n d.target(this);\n })\n .merge(content)\n .attr(\"transform\", \"translate(\" + (leftMargin / 2) + \", \" + (titleRegionHeight / 2 - topMargin / 2) + \")\")\n .each(function (d) {\n const padding = {\n left: 0,\n top: 0,\n right: 1,\n bottom: 1\n };\n d\n .resize({\n width: width - xOffset - (padding.left + padding.right),\n height: height - yOffset - (padding.top + padding.bottom)\n })\n ;\n })\n ;\n if (this.content()) {\n this._clipRect\n .attr(\"x\", -(width - xOffset) / 2)\n .attr(\"y\", -(height - yOffset) / 2)\n .attr(\"width\", width - xOffset)\n .attr(\"height\", height - yOffset)\n ;\n }\n content.exit().transition()\n .each(function (d) { d.target(null); })\n .remove()\n ;\n }\n\n if (this._menuWidget.element() && this._menuWidget.element().node() && this._menuWidget.element().node().parentNode) {\n this._menuWidget.element().node().parentNode.appendChild(this._menuWidget.element().node()); // Make sure menu is on top (Z-Order POV)\n }\n }\n\n exit(domNode, element) {\n this._titleRectWidget\n .target(null)\n ;\n this._iconWidget\n .target(null)\n ;\n this._menuWidget\n .target(null)\n ;\n this._textWidget\n .target(null)\n ;\n this._containerWidget\n .target(null)\n ;\n if (this.content()) {\n this.content().target(null);\n }\n super.exit(domNode, element);\n }\n\n intersection(pointA, pointB) {\n const hits = [];\n const i1 = this._iconWidget.intersection(pointA, pointB, this._pos);\n if (i1) {\n hits.push({ i: i1, d: this.distance(i1, pointB) });\n }\n const i2 = this._titleRectWidget.intersection(pointA, pointB);\n if (i2) {\n hits.push({ i: i2, d: this.distance(i2, pointB) });\n }\n const i3 = this._containerWidget.intersection(pointA, pointB);\n if (i3) {\n hits.push({ i: i3, d: this.distance(i3, pointB) });\n }\n let nearest = null;\n hits.forEach(function (item) {\n if (nearest === null || nearest.d > item.d) {\n nearest = item;\n }\n });\n return nearest && nearest.i ? nearest.i : null;\n }\n\n click(d) {\n }\n\n showTitle: { (): boolean; (_: boolean): Surface; };\n title: { (): string; (_: string): Surface; };\n titleFontSize: { (): string; (_: string): Surface; };\n showIcon: { (): boolean; (_: boolean): Surface; };\n icon_faChar: { (): string; (_: string): Surface; };\n icon_shape: { (): string; (_: string): Surface; };\n content: { (): any; (_: any): Surface; };\n buttonAnnotations: { (): any[]; (_: any[]): Surface; };\n buttonGutter: { (): number; (_: number): Surface; };\n showContent: { (): boolean; (_: boolean): Surface; };\n menu: { (): any[]; (_: any[]): Surface; };\n menuPadding: { (): number; (_: number): Surface; };\n}\nSurface.prototype._class += \" common_Surface\";\n\nSurface.prototype.publish(\"showTitle\", true, \"boolean\", \"Show Title\", null, { tags: [\"Basic\"] });\nSurface.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Basic\"] });\nSurface.prototype.publishProxy(\"titleFontSize\", \"_textWidget\", \"fontSize\");\nSurface.prototype.publish(\"showIcon\", true, \"boolean\", \"Show Title\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publishProxy(\"icon_faChar\", \"_iconWidget\", \"faChar\");\nSurface.prototype.publishProxy(\"icon_shape\", \"_iconWidget\", \"shape\");\n\nSurface.prototype.publish(\"content\", null, \"widget\", \"Content\", null, { tags: [\"Private\"] });\n\nSurface.prototype.publish(\"buttonAnnotations\", [], \"array\", \"Button Array\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"buttonGutter\", 25, \"number\", \"Space Between Menu and Buttons\", null, { tags: [\"Intermediate\"] });\n\nSurface.prototype.publish(\"showContent\", true, \"boolean\", \"Show Content\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"menu\", [], \"array\", \"Menu List Data\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"menuPadding\", 2, \"number\", \"Menu Padding\", null, { tags: [\"Advanced\"] });\n\nSurface.prototype._origMenuParam = Surface.prototype.menu;\nSurface.prototype.menu = function (this: Surface, _?) {\n Surface.prototype._origMenuParam.apply(this, arguments);\n if (arguments.length) {\n this._menuWidget.data(_);\n return this;\n }\n return this._menuWidget.data();\n};\n\nSurface.prototype._origShowContent = Surface.prototype.showContent;\nSurface.prototype.showContent = function (_?) {\n const retVal = Surface.prototype._origShowContent.apply(this, arguments);\n if (arguments.length) {\n if (this.content()) {\n this.content().visible(this.showContent());\n }\n }\n return retVal;\n};\n","import { dispatch as d3Dispatch } from \"d3-dispatch\";\nimport { drag as d3Drag } from \"d3-drag\";\nimport { event as d3Event, select as d3Select } from \"d3-selection\";\nimport { Surface } from \"./Surface\";\n\nimport \"../src/ResizeSurface.css\";\n\nexport class ResizeSurface extends Surface {\n\n protected handleWidth;\n protected handles;\n protected dispatch;\n protected drag;\n protected _domNode;\n protected _dragHandlePos;\n protected _dragStartPos;\n protected _dragStartSize;\n protected _prevPosSize;\n protected _textPosSize;\n protected _iconPosSize;\n\n constructor() {\n super();\n\n this.handleWidth = 8;\n this.handles = [{ loc: \"NW\" }, { loc: \"N\" }, { loc: \"NE\" }, { loc: \"E\" }, { loc: \"SE\" }, { loc: \"S\" }, { loc: \"SW\" }, { loc: \"W\" }];\n\n const context = this;\n this.dispatch = d3Dispatch(\"sizestart\", \"size\", \"sizeend\");\n this.drag = d3Drag()\n .subject(function (d) { return d; })\n ;\n this.drag\n .on(\"start\", function (d) {\n context.dispatch.call(\"sizestart\", context, d.loc);\n if (context.allowResize()) {\n d3Event.sourceEvent.stopPropagation();\n context._dragHandlePos = { x: d.x, y: d.y };\n context._dragStartPos = context.pos();\n context._dragStartSize = context.size();\n context._prevPosSize = {\n x: context._dragStartPos.x,\n y: context._dragStartPos.y,\n width: context._dragStartSize.width,\n height: context._dragStartSize.height\n };\n context._textPosSize = context._textWidget.getBBox(true);\n context._iconPosSize = context._iconWidget.getBBox(true);\n context.showContent(false);\n }\n })\n .on(\"drag\", function (d) {\n if (context.allowResize()) {\n d3Event.sourceEvent.stopPropagation();\n const _dx = d3Event.x - context._dragHandlePos.x;\n const _dy = d3Event.y - context._dragHandlePos.y;\n const delta = { x: 0, y: 0, w: 0, h: 0 };\n switch (d.loc) {\n case \"NW\":\n delta.x = _dx / 2;\n delta.w = -_dx;\n /* falls through */\n case \"N\":\n delta.y = _dy / 2;\n delta.h = -_dy;\n break;\n case \"NE\":\n delta.y = _dy / 2;\n delta.h = -_dy;\n /* falls through */\n case \"E\":\n delta.x = _dx / 2;\n delta.w = _dx;\n break;\n case \"SE\":\n delta.x = _dx / 2;\n delta.w = _dx;\n /* falls through */\n case \"S\":\n delta.y = _dy / 2;\n delta.h = _dy;\n break;\n case \"SW\":\n delta.y = _dy / 2;\n delta.h = _dy;\n /* falls through */\n case \"W\":\n delta.x = _dx / 2;\n delta.w = -_dx;\n break;\n }\n const posSize = {\n x: context._dragStartPos.x + delta.x,\n y: context._dragStartPos.y + delta.y,\n width: context._dragStartSize.width + delta.w,\n height: context._dragStartSize.height + delta.h\n };\n if (posSize.width < context._iconPosSize.width * 2 + context._textPosSize.width) {\n posSize.x = context._prevPosSize.x;\n posSize.width = context._prevPosSize.width;\n }\n if (posSize.height < context._textPosSize.height + 48) {\n posSize.y = context._prevPosSize.y;\n posSize.height = context._prevPosSize.height;\n }\n context\n .pos({ x: posSize.x, y: posSize.y })\n .size({ width: posSize.width, height: posSize.height })\n .render()\n .getBBox(true)\n ;\n context.dispatch.call(\"size\", context, d.loc);\n context._prevPosSize = posSize;\n }\n })\n .on(\"end\", function (d) {\n if (context.allowResize()) {\n d3Event.sourceEvent.stopPropagation();\n context\n .showContent(true)\n .render()\n ;\n context._containerWidget.getBBox(true);\n context._titleRectWidget.getBBox(true);\n context.dispatch.call(\"sizeend\", context, d.loc);\n }\n })\n ;\n }\n\n move(_) {\n const retVal = super.move.apply(this, arguments);\n this.updateHandles(this._domNode, this._element);\n return retVal;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this.updateHandles(domNode, element);\n }\n\n updateHandles(_domNode, _element) {\n const sizeHandles = this._placeholderElement.selectAll(\"rect\").data(this.handles, function (d) { return d.loc; });\n const sizeHandlesEnter = sizeHandles.enter().append(\"rect\")\n .attr(\"class\", function (d) { return \"resize\" + d.loc; })\n .call(this.drag)\n ;\n\n const l = this._pos.x + this._containerWidget._pos.x - this._containerWidget.width() / 2;\n const t = this._pos.y + this._titleRectWidget._pos.y - this._titleRectWidget.height() / 2;\n const r = this._pos.x + this._containerWidget._pos.x + this._containerWidget.width() / 2;\n const b = this._pos.y + this._containerWidget._pos.y + this._containerWidget.height() / 2;\n const w = r - l;\n const h = b - t;\n const context = this;\n sizeHandlesEnter.merge(sizeHandles)\n .each(function (d) {\n switch (d.loc) {\n case \"NW\":\n d.x = l - context.handleWidth / 2;\n d.y = t - context.handleWidth / 2;\n d.width = context.handleWidth;\n d.height = context.handleWidth;\n break;\n case \"N\":\n d.x = l + context.handleWidth / 2;\n d.y = t - context.handleWidth / 2;\n d.width = w - context.handleWidth;\n d.height = context.handleWidth;\n break;\n case \"NE\":\n d.x = r - context.handleWidth / 2;\n d.y = t - context.handleWidth / 2;\n d.width = context.handleWidth;\n d.height = context.handleWidth;\n break;\n case \"E\":\n d.x = r - context.handleWidth / 2;\n d.y = t + context.handleWidth / 2;\n d.width = context.handleWidth;\n d.height = h - context.handleWidth;\n break;\n case \"SE\":\n d.x = r - context.handleWidth / 2;\n d.y = b - context.handleWidth / 2;\n d.width = context.handleWidth;\n d.height = context.handleWidth;\n break;\n case \"S\":\n d.x = l + context.handleWidth / 2;\n d.y = b - context.handleWidth / 2;\n d.width = w - context.handleWidth;\n d.height = context.handleWidth;\n break;\n case \"SW\":\n d.x = l - context.handleWidth / 2;\n d.y = b - context.handleWidth / 2;\n d.width = context.handleWidth;\n d.height = context.handleWidth;\n break;\n case \"W\":\n d.x = l - context.handleWidth / 2;\n d.y = t + context.handleWidth / 2;\n d.width = context.handleWidth;\n d.height = h - context.handleWidth;\n break;\n }\n d3Select(this)\n .attr(\"x\", d.x)\n .attr(\"y\", d.y)\n .attr(\"width\", d.width)\n .attr(\"height\", d.height)\n ;\n })\n ;\n }\n allowResize: { (): boolean; (_: boolean): ResizeSurface; };\n}\nResizeSurface.prototype._class += \" common_ResizeSurface\";\n\nResizeSurface.prototype.publish(\"allowResize\", true, \"boolean\", \"Sets if surface can be resized\", null, { tags: [\"Private\", \"Shared\"] });\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\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","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\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 {event, customEvent, select, mouse, touch} 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.\nfunction defaultFilter() {\n return !event.ctrlKey && !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() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\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 touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\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(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\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) {\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);\n };\n\n zoom.scaleTo = function(selection, k, p) {\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);\n };\n\n zoom.translateBy = function(selection, x, y) {\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 });\n };\n\n zoom.translateTo = function(selection, x, y, p) {\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);\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) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\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.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\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 customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\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 = mouse(this);\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();\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() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\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.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(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, arguments), translateExtent);\n\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started, i, t, p;\n\n nopropagation();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\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) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\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 g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation();\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 var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\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 return zoom;\n}\n","import { event as d3Event } from \"d3-selection\";\nimport { HTMLWidget } from \"./HTMLWidget\";\nimport { fa5Class } from \"./Utility\";\nimport { Widget } from \"./Widget\";\n\nimport \"../src/TitleBar.css\";\n\n// Lite button for titlebar ---\nexport class Button extends HTMLWidget {\n private _enabled = true;\n private _i;\n\n constructor() {\n super();\n this._tag = \"a\";\n }\n\n enter(domNode: HTMLElement, element) {\n super.enter(domNode, element);\n const context = this;\n this._i = this._element\n .attr(\"href\", \"#\")\n .on(\"click\", function () {\n context.click();\n d3Event.preventDefault();\n })\n .on(\"mousemove\", this.mouseMove)\n .on(\"mouseout\", this.mouseOut)\n .append(\"i\")\n ;\n }\n\n update(domNode: HTMLElement, element) {\n super.update(domNode, element);\n element\n .classed(\"disabled\", !this.enabled())\n .attr(\"title\", this.tooltip())\n ;\n this._i.attr(\"class\", `fa ${fa5Class(this.faChar())} fa-lg fa-fw`);\n }\n\n // Events ---\n click() {\n }\n\n mouseMove(d, idx, groups) {\n }\n\n mouseOut(d, idx, groups) {\n }\n\n enabled(): boolean;\n enabled(_: boolean): this;\n enabled(_?: boolean): boolean | this {\n if (!arguments.length) return this._enabled;\n this._enabled = _;\n return this;\n }\n}\nButton.prototype._class += \" common_Button\";\nexport interface Button {\n faChar(): string;\n faChar(_: string): this;\n tooltip(): string;\n tooltip(_: string): this;\n}\nButton.prototype.publish(\"faChar\", \"\", \"string\", \"FontAwesome class\");\nButton.prototype.publish(\"tooltip\", \"\", \"string\", \"Displays as the button alt text attribute\");\n\n// Sticky button ---\nexport class StickyButton extends Button {\n\n enter(domNode: HTMLElement, element) {\n super.enter(domNode, element);\n }\n\n update(domNode: HTMLElement, element) {\n super.update(domNode, element);\n element.classed(\"selected\", this.selected());\n }\n}\nStickyButton.prototype._class += \" common_StickyButton\";\nexport interface StickyButton {\n selected(): boolean;\n selected(_: boolean): this;\n}\nStickyButton.prototype.publish(\"selected\", false, \"boolean\");\n\n// Toggle button ---\nexport class ToggleButton extends StickyButton {\n\n enter(domNode: HTMLElement, element) {\n element.on(\"click.sel\", (d, idx, groups) => {\n this\n .selected(!this.selected())\n .render()\n ;\n d3Event.preventDefault();\n });\n super.enter(domNode, element);\n }\n}\nToggleButton.prototype._class += \" common_ToggleButton\";\n\n// Spacer ---\nexport class Spacer extends HTMLWidget {\n\n enter(domNode: HTMLElement, element) {\n super.enter(domNode, element);\n element\n .attr(\"class\", this.vline() ? \"spacer vline\" : \"spacer\")\n .attr(\"href\", \"#\")\n .append(\"i\")\n ;\n }\n}\nSpacer.prototype._class += \" common_Spacer\";\n\nexport interface Spacer {\n vline(): boolean;\n vline(_: boolean): this;\n}\nSpacer.prototype.publish(\"vline\", true, \"boolean\");\n\nexport class SelectDropDown extends HTMLWidget {\n private _enabled = true;\n\n constructor() {\n super();\n this._tag = \"select\";\n }\n\n enabled(): boolean;\n enabled(_: boolean): this;\n enabled(_?: boolean): boolean | this {\n if (!arguments.length) return this._enabled;\n this._enabled = _;\n return this;\n }\n\n enter(domNode: HTMLSelectElement, element) {\n super.enter(domNode, element);\n const context = this;\n element.on(\"change\", function (d) {\n const values = context.values();\n for (const key in context.values()) {\n if (this.value === values[key]) {\n context.selected(key);\n break;\n }\n }\n context.click(this.value);\n });\n }\n\n update(domNode: HTMLElement, element) {\n super.update(domNode, element);\n element\n .classed(\"disabled\", !this.enabled())\n .attr(\"title\", this.tooltip())\n ;\n\n const values = this.values();\n\n const options = element.selectAll(\".icon-bar-select-option\").data(Object.keys(values));\n const optionUpdate = options.enter().append(\"option\")\n .attr(\"class\", \"icon-bar-select-option\")\n .merge(options)\n .attr(\"value\", r => values[r])\n .attr(\"selected\", r => r === this.selected() ? \"selected\" : null)\n .text(r => r)\n ;\n options.exit().remove();\n optionUpdate.order();\n }\n\n // Events ---\n click(value) {\n }\n\n mouseMove(d, idx, groups) {\n }\n\n mouseOut(d, idx, groups) {\n }\n}\nSelectDropDown.prototype._class += \" common_SelectDropDown\";\nexport interface SelectDropDown {\n values(): { [key: string]: string };\n values(_: { [key: string]: string }): this;\n selected(): string;\n selected(_: string): this;\n tooltip(): string;\n tooltip(_: string): this;\n}\nSelectDropDown.prototype.publish(\"values\", {}, \"object\", \"Label, Values\");\nSelectDropDown.prototype.publish(\"selected\", \"\", \"string\", \"Selected Item\");\nSelectDropDown.prototype.publish(\"tooltip\", \"\", \"string\", \"Displays as the button alt text attribute\");\n\n// IconBar ---\nexport class IconBar extends HTMLWidget {\n _divIconBar;\n _buttons: Widget[] = [];\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._divIconBar = element.append(\"div\")\n .attr(\"class\", \"icon-bar\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n let buttons = this.buttons().filter(button => this.hiddenButtons().indexOf(button) < 0);\n buttons = buttons.reduce((prev, item, idx) => {\n if (item instanceof Spacer) {\n if ((prev.length === 0 || idx === buttons.length - 1)) {\n return prev;\n } else if (buttons[idx + 1] instanceof Spacer) {\n return prev;\n }\n }\n prev.push(item);\n return prev;\n }, []);\n const icons = this._divIconBar.selectAll(\".icon-bar-item\").data(buttons, (d: Widget) => d.id());\n icons.enter().append(\"div\")\n .attr(\"class\", \"icon-bar-item\")\n .each(function (this: HTMLElement, d: Widget) {\n d.target(this);\n })\n .merge(icons)\n .each(function (d: Widget) {\n d.render();\n })\n ;\n icons.exit()\n .each(function (d: Widget) {\n d.target(null);\n })\n .remove()\n ;\n icons.order();\n }\n\n exit(domNode, element) {\n this.buttons().forEach(b => b.target(null));\n super.exit(domNode, element);\n }\n}\nIconBar.prototype._class += \" common_IconBar\";\n\nexport interface IconBar {\n buttons(): Widget[];\n buttons(_: Widget[]): this;\n hiddenButtons(): Widget[];\n hiddenButtons(_: Widget[]): this;\n}\nIconBar.prototype.publish(\"buttons\", [], \"widgetArray\", null, { internal: true });\nIconBar.prototype.publish(\"hiddenButtons\", [], \"widgetArray\", null, { internal: true });\n\n// SelectionBar ---\nexport class SelectionButton extends StickyButton {\n _owner: SelectionBar;\n\n enter(domNode: HTMLElement, element) {\n element.on(\"click.sel\", (d, idx, groups) => {\n this.selected(true).render();\n d3Event.preventDefault();\n });\n super.enter(domNode, element);\n }\n\n selected(): boolean;\n selected(_: boolean): this;\n selected(_?: boolean): boolean | this {\n const retVal = super.selected.apply(this, arguments);\n if (_ && this._owner) {\n this._owner.buttons().filter(sb => sb !== this && sb instanceof SelectionButton).forEach((sb: SelectionButton) => sb.selected(false).render());\n this._owner.selected(this);\n }\n return retVal;\n }\n}\nSelectionButton.prototype._class += \" common_SelectionButton\";\n\nexport class SelectionBar extends IconBar {\n\n buttons(): Array<SelectionButton | Spacer>;\n buttons(_: Array<SelectionButton | Spacer>): this;\n buttons(_?: Array<SelectionButton | Spacer>): Array<SelectionButton | Spacer> | this {\n const retVal = super.buttons.apply(this, arguments);\n if (arguments.length) {\n _.filter(b => b instanceof SelectionButton).forEach((sb: SelectionButton) => {\n sb._owner = this;\n });\n }\n return retVal;\n }\n\n // Events ---\n selected(row: SelectionButton) {\n }\n}\nSelectionBar.prototype._class += \" common_SelectionBar\";\n\n// Titlebar ---\nexport class TitleBar extends IconBar {\n\n _divTitle;\n _divTitleIcon;\n _divTitleText;\n _divDescriptionText;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n this._divTitle = element.append(\"div\")\n .attr(\"class\", \"title-title\")\n .style(\"min-width\", \"0px\")\n ;\n this._divTitleIcon = this._divTitle.append(\"div\")\n .attr(\"class\", \"title-icon\")\n .style(\"font-family\", this.titleIconFont())\n .style(\"font-size\", `${this.titleIconFontSize()}px`)\n .style(\"width\", `${this.titleIconFontSize()}px`)\n ;\n this._divTitle.append(\"div\")\n .attr(\"class\", \"data-count\")\n ;\n this._divTitleText = this._divTitle.append(\"div\")\n .attr(\"class\", \"title-text\")\n .style(\"font-family\", this.titleFont())\n .style(\"font-size\", `${this.titleFontSize()}px`)\n ;\n this._divDescriptionText = this._divTitle.append(\"div\")\n .attr(\"class\", \"description-text\")\n .style(\"font-family\", this.descriptionFont())\n ;\n\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n this._divTitleIcon\n .text(this.titleIcon())\n .style(\"display\", this.titleIcon() !== \"\" ? \"inline-block\" : \"none\")\n ;\n this._divTitleText\n .text(this.title())\n .attr(\"title\", this.title())\n ;\n this._divDescriptionText\n .style(\"display\", this.description_exists() ? \"block\" : \"none\")\n .style(\"font-size\", this.description_exists() ? `${this.descriptionFontSize()}px` : null)\n .style(\"line-height\", this.description_exists() ? `${this.descriptionFontSize()}px` : null)\n .text(this.description())\n ;\n\n super.update(domNode, element);\n }\n}\nTitleBar.prototype._class += \" common_TitleBar\";\n\nexport interface TitleBar {\n title(): string;\n title(_: string): this;\n titleIcon(): string;\n titleIcon(_: string): this;\n titleIconFont(): string;\n titleIconFont(_: string): this;\n titleFont(): string;\n titleFont(_: string): this;\n titleIconFontSize(): number;\n titleIconFontSize(_: number): this;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n description(): string;\n description(_: string): this;\n description_exists(): boolean;\n descriptionFont(): string;\n descriptionFont(_: string): this;\n descriptionFontSize(): number;\n descriptionFontSize(_: number): this;\n}\nTitleBar.prototype.publish(\"titleIcon\", \"\", \"string\", \"Icon text\");\nTitleBar.prototype.publish(\"titleIconFont\", \"\", \"string\", \"Icon font-family\");\nTitleBar.prototype.publish(\"titleIconFontSize\", 28, \"number\", \"Icon font-size (pixels)\");\nTitleBar.prototype.publish(\"title\", \"\", \"string\", \"Title text\");\nTitleBar.prototype.publish(\"titleFont\", \"\", \"string\", \"Title font-family\");\nTitleBar.prototype.publish(\"titleFontSize\", 20, \"number\", \"Title font-size (pixels)\");\nTitleBar.prototype.publish(\"description\", null, \"string\", \"Description text\", null, { optional: true });\nTitleBar.prototype.publish(\"descriptionFont\", \"\", \"string\", \"Description font-family\");\nTitleBar.prototype.publish(\"descriptionFontSize\", 10, \"number\", \"Description font-size (pixels)\");\n","import { event as d3Event, mouse as d3Mouse } from \"d3-selection\";\nimport { zoom as d3Zoom, zoomIdentity as d3ZoomIdentity } from \"d3-zoom\";\nimport { SVGWidget } from \"./SVGWidget\";\nimport { safeRaise } from \"./Utility\";\nimport { Button, IconBar, Spacer, ToggleButton } from \"./TitleBar\";\n\nimport \"../src/SVGZoomWidget.css\";\n\nexport type MouseMode = \"zoom\" | \"marqueeSelection\";\n\nexport class SVGZoomWidget extends SVGWidget {\n\n protected _renderElement;\n\n private _currZoom;\n protected _zoomScale = 1;\n protected _zoomTranslate = [0, 0];\n protected _zoomRoot;\n protected _zoomGrab;\n protected _zoomG;\n private _prevZoomable;\n\n protected _marqueeSelectionRoot;\n protected _marqueeSelection;\n\n protected _autoSelectionMode = false;\n\n protected _toggleMarqueeSelection = new ToggleButton().faChar(\"fa-square-o\").tooltip(\"Marquee Selection\")\n .on(\"click\", () => {\n if (this._toggleMarqueeSelection.selected()) {\n this.mouseMode(\"marqueeSelection\");\n }\n this.updateIconBar();\n })\n ;\n\n protected _toggleZoom = new ToggleButton().faChar(\"fa-mouse-pointer\").tooltip(\"Zoom\")\n .on(\"click\", () => {\n if (this._toggleZoom.selected()) {\n this.mouseMode(\"zoom\");\n }\n this.updateIconBar();\n })\n ;\n\n _iconBar = new IconBar()\n .buttons([\n this._toggleMarqueeSelection,\n this._toggleZoom,\n new Spacer().vline(false),\n new Button().faChar(\"fa-arrows-alt\").tooltip(\"Zoom to fit\")\n .on(\"click\", () => {\n this.zoomToFit();\n }),\n new Spacer().vline(false),\n new Button().faChar(\"fa-plus\").tooltip(\"Zoom in\")\n .on(\"click\", () => {\n this.zoomPlus();\n }),\n new Button().faChar(\"fa-minus\").tooltip(\"Zoom out\")\n .on(\"click\", () => {\n this.zoomMinus();\n })\n ])\n ;\n\n constructor() {\n super();\n\n this._currZoom = d3Zoom()\n .scaleExtent([0.05, 20])\n .on(\"zoom end\", (evt) => {\n this.onZoomed();\n })\n ;\n }\n\n getScreenBBox(target: any) {\n let targetel = target;\n\n while (targetel.getScreenCTM == null && targetel.parentNode == null) {\n targetel = targetel.parentNode;\n }\n\n const bbox: any = {};\n const matrix = targetel.getScreenCTM();\n const tbbox = targetel.getBBox();\n const width = tbbox.width;\n const height = tbbox.height;\n const x = tbbox.x;\n const y = tbbox.y;\n const point = this._placeholderElement.node().createSVGPoint();\n point.x = x;\n point.y = y;\n\n bbox.nw = point.matrixTransform(matrix);\n point.x += width;\n bbox.ne = point.matrixTransform(matrix);\n point.y += height;\n bbox.se = point.matrixTransform(matrix);\n point.x -= width;\n bbox.sw = point.matrixTransform(matrix);\n point.y -= height / 2;\n bbox.w = point.matrixTransform(matrix);\n point.x += width;\n bbox.e = point.matrixTransform(matrix);\n point.x -= width / 2;\n point.y -= height / 2;\n bbox.n = point.matrixTransform(matrix);\n point.y += height;\n bbox.s = point.matrixTransform(matrix);\n\n return {\n x: bbox.nw.x,\n y: bbox.nw.y,\n width: bbox.se.x - bbox.nw.x,\n height: bbox.se.y - bbox.nw.y\n };\n }\n\n zoomScale(): number {\n return this._zoomScale;\n }\n\n zoomTranslate(): number[] {\n return this._zoomTranslate;\n }\n\n zoomExtent(range): void {\n this._currZoom.scaleExtent(range);\n }\n\n zoomTo(translate?, scale?, transitionDuration = 250) {\n translate = translate || this._zoomTranslate;\n scale = scale || this._zoomScale;\n transitionDuration = transitionDuration === undefined ? this.zoomDuration() : transitionDuration;\n\n this._zoomRoot.transition().duration(transitionDuration)\n .call(this._currZoom.transform, d3ZoomIdentity.translate(translate[0], translate[1]).scale(scale))\n ;\n }\n\n zoomPlus() {\n this._zoomRoot.transition()\n .call(this._currZoom.scaleBy, 1.33)\n ;\n }\n\n zoomMinus() {\n this._zoomRoot.transition()\n .call(this._currZoom.scaleBy, 1 / 1.33)\n ;\n }\n\n centerOnBBox(bbox, transitionDuration?) {\n if (bbox.width && bbox.height) {\n const x = bbox.x + bbox.width / 2;\n const y = bbox.y + bbox.height / 2;\n const width = this.width();\n const height = this.height();\n\n const scale = this.zoomScale();\n const translate = [width / 2 - scale * x, height / 2 - scale * y];\n this.zoomTo(translate, scale, transitionDuration);\n }\n }\n\n getRenderElementBBox() {\n return this._renderElement.node().getBBox();\n }\n\n calcZoomToBBox(bbox, widthOnly: boolean = false, scale?: number) {\n const width = this.width();\n const height = this.height();\n if (bbox.width && bbox.height) {\n const x = bbox.x + bbox.width / 2;\n const y = bbox.y + bbox.height / 2;\n const dx = bbox.width;\n const dy = bbox.height;\n\n let newScale = scale || 1 / (widthOnly ? dx / width : Math.max(dx / width, dy / height));\n if (this.zoomToFitLimit_exists() && newScale > this.zoomToFitLimit()) {\n newScale = this.zoomToFitLimit();\n }\n const translate = [width / 2 - newScale * x, height / 2 - newScale * y];\n return { translate, newScale };\n }\n return { translate: [width / 2, height / 2], newScale: scale };\n }\n\n zoomToBBox(bbox, transitionDuration?, widthOnly: boolean = false, scale?: number) {\n const { translate, newScale } = this.calcZoomToBBox(bbox, widthOnly, scale);\n this.zoomTo(translate, newScale, transitionDuration);\n }\n\n zoomToScale(scale, transitionDuration?) {\n if (this._renderElement) {\n const bbox = this.getRenderElementBBox();\n this.zoomToBBox(bbox, transitionDuration, undefined, scale);\n }\n }\n\n zoomToWidth(transitionDuration?) {\n if (this._renderElement) {\n const bbox = this.getRenderElementBBox();\n this.zoomToBBox(bbox, transitionDuration, true);\n }\n }\n\n zoomToFit(transitionDuration?) {\n if (this._renderElement) {\n const bbox = this.getRenderElementBBox();\n this.zoomToBBox(bbox, transitionDuration);\n }\n }\n\n onZoomed() {\n if (d3Event && d3Event.transform && this.mouseMode() === \"zoom\") {\n this.zoomed(d3Event.transform);\n }\n }\n\n zoomed(transform) {\n this._zoomScale = transform.k;\n this._zoomTranslate = [transform.x, transform.y];\n this._zoomG.attr(\"transform\", transform);\n }\n\n updateIconBar() {\n this._toggleMarqueeSelection.selected(this.mouseMode() === \"marqueeSelection\").render();\n this._toggleZoom.selected(this.mouseMode() === \"zoom\").render();\n }\n\n mousedownMarqueeSelection() {\n const p = d3Mouse(this._marqueeSelectionRoot.node());\n this._marqueeSelection = this.element().append(\"rect\")\n .attr(\"class\", \"marqueeSelection\")\n .attr(\"rx\", 6)\n .attr(\"ry\", 6)\n .attr(\"x\", p[0])\n .attr(\"y\", p[1])\n .attr(\"width\", 0)\n .attr(\"height\", 0)\n ;\n this.startMarqueeSelection();\n }\n\n mousemoveMarqueeSelection() {\n if (this._marqueeSelection) {\n const p = d3Mouse(this._marqueeSelectionRoot.node());\n const d = {\n x: parseInt(this._marqueeSelection.attr(\"x\"), 10),\n y: parseInt(this._marqueeSelection.attr(\"y\"), 10),\n width: parseInt(this._marqueeSelection.attr(\"width\"), 10),\n height: parseInt(this._marqueeSelection.attr(\"height\"), 10)\n };\n const move = {\n x: p[0] - d.x,\n y: p[1] - d.y\n };\n\n if (move.x < 1 || (move.x * 2 < d.width)) {\n d.x = p[0];\n d.width -= move.x;\n } else {\n d.width = move.x;\n }\n\n if (move.y < 1 || (move.y * 2 < d.height)) {\n d.y = p[1];\n d.height -= move.y;\n } else {\n d.height = move.y;\n }\n\n this._marqueeSelection\n .attr(\"x\", d.x)\n .attr(\"y\", d.y)\n .attr(\"width\", d.width)\n .attr(\"height\", d.height)\n ;\n\n this.updateMarqueeSelection({\n x: (d.x - this._zoomTranslate[0]) / this._zoomScale,\n y: (d.y - this._zoomTranslate[1]) / this._zoomScale,\n width: d.width / this._zoomScale,\n height: d.height / this._zoomScale\n });\n }\n }\n\n mouseupMarqueeSelection() {\n if (this._marqueeSelection) {\n this._marqueeSelection.remove();\n delete this._marqueeSelection;\n if (this._autoSelectionMode) {\n this._autoSelectionMode = false;\n this.mouseMode(\"zoom\");\n this.updateIconBar();\n }\n this.endMarqueeSelection();\n }\n }\n\n enter(domNode, _element) {\n super.enter(domNode, _element);\n _element.style(\"user-select\", \"none\");\n\n this._marqueeSelectionRoot = _element.append(\"rect\")\n .attr(\"class\", \"zoomBackground\")\n .attr(\"width\", this.width())\n .attr(\"height\", this.height())\n .style(\"fill\", \"transparent\")\n .style(\"cursor\", \"crosshair\")\n .on(\"mousedown\", () => {\n this.mousedownMarqueeSelection();\n })\n .on(\"mousemove\", () => {\n this.mousemoveMarqueeSelection();\n })\n .on(\"mouseup mouseout\", () => {\n this.mouseupMarqueeSelection();\n })\n ;\n\n this._zoomRoot = _element.append(\"g\");\n\n this._zoomGrab = this._zoomRoot.append(\"rect\")\n .attr(\"class\", \"zoomBackground\")\n .attr(\"width\", this.width())\n .attr(\"height\", this.height())\n .on(\"mousedown\", () => {\n if (d3Event.shiftKey && this.mouseMode() === \"zoom\") {\n d3Event.stopPropagation();\n this.mouseMode(\"marqueeSelection\");\n this._autoSelectionMode = true;\n this.mousedownMarqueeSelection();\n }\n })\n ;\n this._zoomG = this._zoomRoot.append(\"g\");\n this._renderElement = this._zoomG.append(\"g\");\n\n if (this._prevZoomable !== this.zoomable()) {\n if (this.zoomable()) {\n this._zoomRoot.call(this._currZoom);\n } else {\n this._zoomRoot.on(\".zoom\", null);\n }\n this._prevZoomable = this.zoomable();\n }\n\n this._iconBar.target(this._zoomRoot.node());\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._zoomGrab\n .attr(\"width\", this.width())\n .attr(\"height\", this.height())\n ;\n\n this._marqueeSelectionRoot\n .attr(\"width\", this.width())\n .attr(\"height\", this.height())\n ;\n\n this._iconBar\n .visible(this.zoomable() && this.showToolbar())\n .render((w: IconBar) => {\n const bbox = w.getBBox();\n w.reposition({ x: this.width() - bbox.width - 4, y: -4 });\n })\n ;\n }\n\n exit(domNode, element) {\n this._iconBar.target(null);\n super.exit(domNode, element);\n }\n\n // Events\n startMarqueeSelection() {\n }\n\n updateMarqueeSelection(rect: { x: number, y: number, width: number, height: number }) {\n }\n\n endMarqueeSelection() {\n }\n}\nSVGZoomWidget.prototype._class += \" common_SVGZoomWidget\";\n\nexport interface SVGZoomWidget {\n showToolbar(): boolean;\n showToolbar(_: boolean): this;\n zoomable(): boolean;\n zoomable(_: boolean): this;\n zoomDuration(): number;\n zoomDuration(_: number): this;\n zoomToFitLimit(): number;\n zoomToFitLimit(_: number): this;\n zoomToFitLimit_exists(): boolean;\n mouseMode(_: MouseMode): this;\n mouseMode(): MouseMode;\n}\nSVGZoomWidget.prototype.publish(\"showToolbar\", true, \"boolean\", \"Show Toolbar\");\nSVGZoomWidget.prototype.publish(\"zoomable\", true, \"boolean\", \"Enable/Disable Zooming\");\nSVGZoomWidget.prototype.publish(\"zoomDuration\", 250, \"number\", \"Transition Duration\");\nSVGZoomWidget.prototype.publish(\"zoomToFitLimit\", undefined, \"number\", \"Zoom to fit limit\", undefined, { optional: true });\nSVGZoomWidget.prototype.publish(\"mouseMode\", \"zoom\", \"set\", \"Mouse Mode (zoom | marqueeSelection)\", [\"zoom\", \"marqueeSelection\"]);\n\nconst _origMouseMode = SVGZoomWidget.prototype.mouseMode;\nSVGZoomWidget.prototype.mouseMode = function (_?, transitionDuration?) {\n const retVal = _origMouseMode.apply(this, arguments);\n if (arguments.length) {\n if (_ === \"zoom\") {\n safeRaise(this._zoomRoot.node());\n } else {\n safeRaise(this._marqueeSelectionRoot.node());\n }\n this.updateIconBar();\n }\n return retVal;\n};\n","import { publish } from \"./PropertyExt\";\nimport { Widget } from \"./Widget\";\n\nexport class WidgetArray extends Widget {\n\n @publish([], \"widgetArray\", \"Widget Array\")\n content: publish<this, Widget[]>;\n\n constructor() {\n super();\n }\n}\nWidgetArray.prototype._class += \" common_WidgetArray\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\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 {customEvent, event, touch, mouse, 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\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\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() {\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) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\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().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\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() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\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 pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\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 nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\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 = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.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();\n }\n }\n\n function ended() {\n nopropagation();\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();\n }\n\n function keydowned() {\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();\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();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\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();\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();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\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 * from \"./__package__\";\nexport * from \"./CanvasWidget\";\nexport * from \"./Class\";\nimport * as Database from \"./Database\";\nexport { Database };\nexport * from \"./Entity\";\nexport * from \"./EntityCard\";\nexport * from \"./EntityPin\";\nexport * from \"./EntityRect\";\nexport * from \"./EntityVertex\";\nexport * from \"./FAChar\";\nexport * from \"./HTMLWidget\";\nexport * from \"./Icon\";\nexport * from \"./IList\";\nexport * from \"./Image\";\nexport * from \"./IMenu\";\nexport * from \"./List\";\nexport * from \"./Menu\";\nimport * as Palette from \"./Palette\";\nexport { Palette };\nimport * as Platform from \"./Platform\";\nexport { Platform };\nexport * from \"./ProgressBar\";\nexport * from \"./PropertyExt\";\nexport * from \"./ResizeSurface\";\nexport * from \"./Shape\";\nexport * from \"./Surface\";\nexport * from \"./SVGWidget\";\nexport * from \"./SVGZoomWidget\";\nexport * from \"./Text\";\nexport * from \"./TextBox\";\nexport * from \"./TitleBar\";\nimport * as Utility from \"./Utility\";\nexport { Utility };\nexport * from \"./Widget\";\nexport * from \"./WidgetArray\";\n\nexport * from \"d3-array\";\nexport * from \"d3-brush\";\nexport * from \"d3-collection\";\nexport * from \"d3-color\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-format\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-scale\";\nexport * from \"d3-selection\";\nexport * from \"d3-time-format\";\nexport * from \"d3-transition\";\nexport * from \"d3-zoom\";\n\nimport { event as _d3Event } from \"d3-selection\";\nexport const d3Event = () => _d3Event;\n"],"names":["Selection","empty","constant","ascending","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","styleFunction","textConstant","textFunction","raise","parseTypenames","root","local","point","get","set","timeout","now","hsl","degrees","t0","t1","lab","hcl","cubehelix","linear","hue","rgb","colorRgb","basis","value","number","string","date","identity","colorHsl","color","colorLab","colorHcl","colorCubehelix","interpolateNumber","interpolateTransform","Transition","style","exponent","easeCubicInOut","variance","array","slice","map","range","bisect","quantile","deviation","min","pad","formatYear","locale","defaultLocale","formatLocale","interval","durationSecond","durationMinute","durationHour","durationDay","durationWeek","day","timeMonday","timeDay","timeYear","timeSunday","timeThursday","d3Event","d3Select","d3Ascending","timeFormat","d3TimeFormat","Utility.checksum","format","d3Format","d3CsvFormatRows","Utility.removeHTMLFromString","d3CsvParse","d3TsvFormatRows","d3TsvParse","d3Map","d3TimeParse","d3CubicInOut","d3Rgb","Utility.faChar","Utility.faKeys","ordinal","interpolateValue","deinterpolate","reinterpolate","threshold","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","timeMillisecond","utcWeek","utcSecond","utcMillisecond","interpolateCubehelixLong","rainbow","_colorbrewer.default","d3InterpolateMagma","d3InterpolateInferno","d3InterpolatePlasma","d3ScaleOrdinal","d3ScaleLinear","d3InterpolateLab","d3ScaleQuantize","d3ScaleSequential","d3RGB","d3Local","Utility.SimpleSelectionMixin","Image","nopropagation","noevent","defaultFilter","defaultTouchable","nodrag","d3Dispatch","defaultExtent","dragEnable","d3ZoomIdentity","d3Mouse","brush","interpolate","_d3Event"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,203,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,252,253,254,255,256,259,260,261,262,263,267,268,269,270]}